#!/usr/bin/perl -w @k=split//,'colin@colinhorne.co.uk'; @p=sub{$_=shift;my@r;for(split/,/){push@r,sub{my@r;$_=shift;for(/.{8}/g){push@r ,chr(eval"0b$_")}@r}->(sprintf('%032b',eval("0x$_")))}@r}->("291a1f1d,4e210d00" .",18010b1a,4f220b17,4243274f,16080a1e");{my$buf=0;my$count=0;sub d{$buf=(($buf <<1)|($_?1:0))&255;print chr($buf)unless(++$count%8)}}sub{my$f=shift;for(0..$#p ){for my$b(map{2**$_}(reverse(0..7))){local$_=(ord($k[$_%$#k])^ord($p[$_]))&$b; &$f}}}->(\&d);print"\n";