function array(e){for(i=0;i=0){e=e%2147483648;e>>=t;e+=1073741824>>t-1}else e>>=t;return e}function shl1(e){e=e%2147483648;if(e&1073741824==1073741824){e-=1073741824;e*=2;e+=2147483648}else e*=2;return e}function shl(e,t){e=integer(e);t=integer(t);for(var n=0;n=0)if(r>=0)return(n&r)+2147483648;else return n&t;else if(r>=0)return e&r;else return e&t}function or(e,t){e=integer(e);t=integer(t);var n=e-2147483648;var r=t-2147483648;if(n>=0)if(r>=0)return(n|r)+2147483648;else return(n|t)+2147483648;else if(r>=0)return(e|r)+2147483648;else return e|t}function xor(e,t){e=integer(e);t=integer(t);var n=e-2147483648;var r=t-2147483648;if(n>=0)if(r>=0)return n^r;else return(n^t)+2147483648;else if(r>=0)return(e^r)+2147483648;else return e^t}function not(e){e=integer(e);return 4294967295-e}function F(e,t,n){return or(and(e,t),and(not(e),n))}function G(e,t,n){return or(and(e,n),and(t,not(n)))}function H(e,t,n){return xor(xor(e,t),n)}function I(e,t,n){return xor(t,or(e,not(n)))}function rotateLeft(e,t){return or(shl(e,t),shr(e,32-t))}function FF(e,t,n,r,i,s,o){e=e+F(t,n,r)+i+o;e=rotateLeft(e,s);e=e+t;return e}function GG(e,t,n,r,i,s,o){e=e+G(t,n,r)+i+o;e=rotateLeft(e,s);e=e+t;return e}function HH(e,t,n,r,i,s,o){e=e+H(t,n,r)+i+o;e=rotateLeft(e,s);e=e+t;return e}function II(e,t,n,r,i,s,o){e=e+I(t,n,r)+i+o;e=rotateLeft(e,s);e=e+t;return e}function transform(e,t){var n=0,r=0,s=0,o=0;var u=transformBuffer;n=state[0];r=state[1];s=state[2];o=state[3];for(i=0;i<16;i++){u[i]=and(e[i*4+t],255);for(j=1;j<4;j++){u[i]+=shl(and(e[i*4+j+t],255),j*8)}}n=FF(n,r,s,o,u[0],S11,3614090360);o=FF(o,n,r,s,u[1],S12,3905402710);s=FF(s,o,n,r,u[2],S13,606105819);r=FF(r,s,o,n,u[3],S14,3250441966);n=FF(n,r,s,o,u[4],S11,4118548399);o=FF(o,n,r,s,u[5],S12,1200080426);s=FF(s,o,n,r,u[6],S13,2821735955);r=FF(r,s,o,n,u[7],S14,4249261313);n=FF(n,r,s,o,u[8],S11,1770035416);o=FF(o,n,r,s,u[9],S12,2336552879);s=FF(s,o,n,r,u[10],S13,4294925233);r=FF(r,s,o,n,u[11],S14,2304563134);n=FF(n,r,s,o,u[12],S11,1804603682);o=FF(o,n,r,s,u[13],S12,4254626195);s=FF(s,o,n,r,u[14],S13,2792965006);r=FF(r,s,o,n,u[15],S14,1236535329);n=GG(n,r,s,o,u[1],S21,4129170786);o=GG(o,n,r,s,u[6],S22,3225465664);s=GG(s,o,n,r,u[11],S23,643717713);r=GG(r,s,o,n,u[0],S24,3921069994);n=GG(n,r,s,o,u[5],S21,3593408605);o=GG(o,n,r,s,u[10],S22,38016083);s=GG(s,o,n,r,u[15],S23,3634488961);r=GG(r,s,o,n,u[4],S24,3889429448);n=GG(n,r,s,o,u[9],S21,568446438);o=GG(o,n,r,s,u[14],S22,3275163606);s=GG(s,o,n,r,u[3],S23,4107603335);r=GG(r,s,o,n,u[8],S24,1163531501);n=GG(n,r,s,o,u[13],S21,2850285829);o=GG(o,n,r,s,u[2],S22,4243563512);s=GG(s,o,n,r,u[7],S23,1735328473);r=GG(r,s,o,n,u[12],S24,2368359562);n=HH(n,r,s,o,u[5],S31,4294588738);o=HH(o,n,r,s,u[8],S32,2272392833);s=HH(s,o,n,r,u[11],S33,1839030562);r=HH(r,s,o,n,u[14],S34,4259657740);n=HH(n,r,s,o,u[1],S31,2763975236);o=HH(o,n,r,s,u[4],S32,1272893353);s=HH(s,o,n,r,u[7],S33,4139469664);r=HH(r,s,o,n,u[10],S34,3200236656);n=HH(n,r,s,o,u[13],S31,681279174);o=HH(o,n,r,s,u[0],S32,3936430074);s=HH(s,o,n,r,u[3],S33,3572445317);r=HH(r,s,o,n,u[6],S34,76029189);n=HH(n,r,s,o,u[9],S31,3654602809);o=HH(o,n,r,s,u[12],S32,3873151461);s=HH(s,o,n,r,u[15],S33,530742520);r=HH(r,s,o,n,u[2],S34,3299628645);n=II(n,r,s,o,u[0],S41,4096336452);o=II(o,n,r,s,u[7],S42,1126891415);s=II(s,o,n,r,u[14],S43,2878612391);r=II(r,s,o,n,u[5],S44,4237533241);n=II(n,r,s,o,u[12],S41,1700485571);o=II(o,n,r,s,u[3],S42,2399980690);s=II(s,o,n,r,u[10],S43,4293915773);r=II(r,s,o,n,u[1],S44,2240044497);n=II(n,r,s,o,u[8],S41,1873313359);o=II(o,n,r,s,u[15],S42,4264355552);s=II(s,o,n,r,u[6],S43,2734768916);r=II(r,s,o,n,u[13],S44,1309151649);n=II(n,r,s,o,u[4],S41,4149444226);o=II(o,n,r,s,u[11],S42,3174756917);s=II(s,o,n,r,u[2],S43,718787259);r=II(r,s,o,n,u[9],S44,3951481745);state[0]+=n;state[1]+=r;state[2]+=s;state[3]+=o}function init(){count[0]=count[1]=0;state[0]=1732584193;state[1]=4023233417;state[2]=2562383102;state[3]=271733878;for(i=0;i=63){transform(buffer,0)}}function finish(){var e=new array(8);var t;var n=0,r=0,i=0;for(n=0;n<4;n++){e[n]=and(shr(count[0],n*8),255)}for(n=0;n<4;n++){e[n+4]=and(shr(count[1],n*8),255)}r=and(shr(count[0],3),63);i=r<56?56-r:120-r;t=new array(64);t[0]=128;for(n=0;n?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"