Forked from http://rxtx.qbang.org/