or download this
$;^=$;;$:='+';${::}{$:}=$_,for{},[];$==65;@+=map{$=<<=1;
$=^=131,if+128&$=;chr$=}0..1<<8;@+{@+}=(0..126)x$=;print
map{$:=$+[$+{$:}+$+{z}];$/=$;;$/=$;eq$/?$_:$+[$+{$/}+$+{
$:}]^$_,for@_;$/}@_=split//,"gi!EVpr/'Vts\6X0Kw\tZj'TF".
"\36\5\e?S\b/1! P84&p{\\0FY[\aW%\ck";