def f i=I-1,j=J,m=N m<2?0:(j-n=m/2)/m==0?f(i%n,j-n,n)+n*n*-~i/=n:j/n*n*n+f(j%n,i,n)end puts' '+'_'*~-N=4<<gets.hex,(1..N/=4).map{|i|J=0 '|'+(1..N*2).map{[i/N+f(I=i)>f ? :_:' ',f<(J+=1;f)?:|:'_']}*''}
Note that non-ascii characters in the above source code will be escaped (such as \x9f).