$/=$_;($,,$a,$c,@_)=@_;$k{$c}=$w=$a;socket S,2,1,6;bind S,&a;for(listen S,5;$SIG{ALRM}=i;m! (\S+) ([e-i])(.*?)/!s&&($k{$w=$1}=$`eq$,)&&&$2){alarm 9;(accept(C,S),alarm 0)?read C,$_,1e6:($_="$, $a f".shift)}sub i{}sub t{socket C,2,1,6;$k{$w}&&=connect(C,&a)&&print C"$, ".pop;close C}sub h{t"$_ i/"for keys k}sub a{$w=~/:/;pack'CxnC4x8',2,$',split'\.',$`}sub f{$w=$_,t"$1 $3/"for keys k}sub e{open C,'>',$3;print C $'}sub g{open(C,'<',$3)&&t"$a e$3/".;&h}