CJam, <s>152 149 148</s> 145 bytes, printable ------------------------------- "/T*-(sK14A+z.;^?%PSS$63V+>TPUmus_']WX_gw{nPd8m$8&(90xHynXHokX1#M6}(WPM1Cc1b5tN-AkA]Of1B|[,V3Z]WEGcrF@3a$":i35f-92b2b26,65f+:c_m*]z{~SS+?S}%52/N* Pretty straightforward approach [Try it online here][1] (Now only if I knew how to do a non printable character version) [1]: http://cjam.aditsu.net/