function rl(i,t){return i<>>32-t}function cvt(i){var t="";var r;var e;for(r=7;r>=0;r--){e=i>>>r*4&15;t=t+e.toString(16)}return t}function SHA1(i){var t;var r,e;var a=new Array(80);var n=1732584193;var s=4023233417;var g=2562383102;var d=271733878;var o=3285377520;var u,h,l,v,b;var f;var c=i.length;var m=new Array;for(r=0;r>>29);m.push(c<<3&4294967295);for(t=0;t=0||ua.indexOf(" firefox/")>=0||ua.indexOf(" gecko/")>=0){var StringMaker=function(){this.str="";this.length=0;this.append=function(i){this.str+=i;this.length+=i.length};this.prepend=function(i){this.str=i+this.str;this.length+=i.length};this.toString=function(){return this.str}}}else{var StringMaker=function(){this.parts=[];this.length=0;this.append=function(i){this.parts.push(i);this.length+=i.length};this.prepend=function(i){this.parts.unshift(i);this.length+=i.length};this.toString=function(){return this.parts.join("")}}}var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function encode64(i){var t=new StringMaker;var r,e,a;var n,s,g,d;var o=0;while(o>2;s=(r&3)<<4|e>>4;g=(e&15)<<2|a>>6;d=a&63;if(isNaN(e)){g=d=64}else if(isNaN(a)){d=64}t.append(keyStr.charAt(n)+keyStr.charAt(s)+keyStr.charAt(g)+keyStr.charAt(d))}return t.toString()}function decode64(i){var t=new StringMaker;var r,e,a;var n,s,g,d;var o=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(o>4;e=(s&15)<<4|g>>2;a=(g&3)<<6|d;t.append(String.fromCharCode(r));if(g!=64){t.append(String.fromCharCode(e))}if(d!=64){t.append(String.fromCharCode(a))}}return t.toString()}function decode64_2hex(i){var t=new StringMaker;var r,e,a;var n,s,g,d;var o=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(o>4;e=(s&15)<<4|g>>2;a=(g&3)<<6|d;t.append(String.fromCharCode(r));if(g!=64){t.append(String.fromCharCode(e))}if(d!=64){t.append(String.fromCharCode(a))}}return t.toString()}var biRadixBase=2;var biRadixBits=16;var bitsPerDigit=biRadixBits;var biRadix=1<<16;var biHalfRadix=biRadix>>>1;var biRadixSquared=biRadix*biRadix;var maxDigitVal=biRadix-1;var maxInteger=9999999999999998;var maxDigits;var ZERO_ARRAY;var bigZero,bigOne;function setMaxDigits(i){maxDigits=i;ZERO_ARRAY=new Array(maxDigits);for(var t=0;t0){t.digits[r++]=i&maxDigitVal;i>>=biRadixBits}return t}function reverseStr(i){var t="";for(var r=i.length-1;r>-1;--r){t+=i.charAt(r)}return t}var hexatrigesimalToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");function biToString(i,t){var r=new BigInt;r.digits[0]=t;var e=biDivideModulo(i,r);var a=hexatrigesimalToChar[e[1].digits[0]];while(biCompare(e[0],bigZero)==1){e=biDivideModulo(e[0],r);digit=e[1].digits[0];a+=hexatrigesimalToChar[e[1].digits[0]]}return(i.isNeg?"-":"")+reverseStr(a)}function biToDecimal(i){var t=new BigInt;t.digits[0]=10;var r=biDivideModulo(i,t);var e=String(r[1].digits[0]);while(biCompare(r[0],bigZero)==1){r=biDivideModulo(r[0],t);e+=String(r[1].digits[0])}return(i.isNeg?"-":"")+reverseStr(e)}var hexToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");function digitToHex(t){var r=15;var e="";for(i=0;i<4;++i){e+=hexToChar[t&r];t>>>=4}return reverseStr(e)}function biToHex(i){var t="";var r=biHighIndex(i);for(var e=biHighIndex(i);e>-1;--e){t+=digitToHex(i.digits[e])}return t}function charToHex(i){var t=48;var r=t+9;var e=97;var a=e+25;var n=65;var s=65+25;var g;if(i>=t&&i<=r){g=i-t}else if(i>=n&&i<=s){g=10+i-n}else if(i>=e&&i<=a){g=10+i-e}else{g=0}return g}function hexToDigit(i){var t=0;var r=Math.min(i.length,4);for(var e=0;e0;e-=4,++a){t.digits[a]=hexToDigit(i.substr(Math.max(e-4,0),Math.min(e,4)))}return t}function biFromString(i,t){var r=i.charAt(0)=="-";var e=r?1:0;var a=new BigInt;var n=new BigInt;n.digits[0]=1;for(var s=i.length-1;s>=e;s--){var g=i.charCodeAt(s);var d=charToHex(g);var o=biMultiplyDigit(n,d);a=biAdd(a,o);n=biMultiplyDigit(n,t)}a.isNeg=r;return a}function biDump(i){return(i.isNeg?"-":"")+i.digits.join(" ")}function biAdd(i,t){var r;if(i.isNeg!=t.isNeg){t.isNeg=!t.isNeg;r=biSubtract(i,t);t.isNeg=!t.isNeg}else{r=new BigInt;var e=0;var a;for(var n=0;n=biRadix)}r.isNeg=i.isNeg}return r}function biSubtract(i,t){var r;if(i.isNeg!=t.isNeg){t.isNeg=!t.isNeg;r=biAdd(i,t);t.isNeg=!t.isNeg}else{r=new BigInt;var e,a;a=0;for(var n=0;n0&&i.digits[t]==0)--t;return t}function biNumBits(i){var t=biHighIndex(i);var r=i.digits[t];var e=(t+1)*bitsPerDigit;var a;for(a=e;a>e-bitsPerDigit;--a){if((r&32768)!=0)break;r<<=1}return a}function biMultiply(i,t){var r=new BigInt;var e;var a=biHighIndex(i);var n=biHighIndex(t);var s,g,d;for(var o=0;o<=n;++o){e=0;d=o;for(j=0;j<=a;++j,++d){g=r.digits[d]+i.digits[j]*t.digits[o]+e;r.digits[d]=g&maxDigitVal;e=g>>>biRadixBits}r.digits[o+a+1]=e}r.isNeg=i.isNeg!=t.isNeg;return r}function biMultiplyDigit(i,t){var r,e,a;result=new BigInt;r=biHighIndex(i);e=0;for(var n=0;n<=r;++n){a=result.digits[n]+i.digits[n]*t+e;result.digits[n]=a&maxDigitVal;e=a>>>biRadixBits}result.digits[1+r]=e;return result}function arrayCopy(i,t,r,e,a){var n=Math.min(t+a,i.length);for(var s=t,g=e;s0;--s,--g){e.digits[s]=e.digits[s]<>>n}e.digits[0]=e.digits[s]<>>a|(e.digits[g]&lowBitMasks[a])<>>=a;e.isNeg=i.isNeg;return e}function biMultiplyByRadixPower(i,t){var r=new BigInt;arrayCopy(i.digits,0,r.digits,t,r.digits.length-t);return r}function biDivideByRadixPower(i,t){var r=new BigInt;arrayCopy(i.digits,t,r.digits,0,r.digits.length-t);return r}function biModuloByRadixPower(i,t){var r=new BigInt;arrayCopy(i.digits,0,r.digits,0,t);return r}function biCompare(i,t){if(i.isNeg!=t.isNeg){return 1-2*Number(i.isNeg)}for(var r=i.digits.length-1;r>=0;--r){if(i.digits[r]!=t.digits[r]){if(i.isNeg){return 1-2*Number(i.digits[r]>t.digits[r])}else{return 1-2*Number(i.digits[r]g;--h){var l=h>=s.digits.length?0:s.digits[h];var v=h-1>=s.digits.length?0:s.digits[h-1];var b=h-2>=s.digits.length?0:s.digits[h-2];var f=g>=t.digits.length?0:t.digits[g];var c=g-1>=t.digits.length?0:t.digits[g-1];if(l==f){n.digits[h-g-1]=maxDigitVal}else{n.digits[h-g-1]=Math.floor((l*biRadix+v)/f)}var m=n.digits[h-g-1]*(f*biRadix+c);var p=l*biRadixSquared+(v*biRadix+b);while(m>p){--n.digits[h-g-1];m=n.digits[h-g-1]*(f*biRadix|c);p=l*biRadix*biRadix+(v*biRadix+b)}u=biMultiplyByRadixPower(t,h-g-1);s=biSubtract(s,biMultiplyDigit(u,n.digits[h-g-1]));if(s.isNeg){s=biAdd(s,u);--n.digits[h-g-1]}}s=biShiftRight(s,d);n.isNeg=i.isNeg!=a;if(i.isNeg){if(a){n=biAdd(n,bigOne)}else{n=biSubtract(n,bigOne)}t=biShiftRight(t,d);s=biSubtract(t,s)}if(s.digits[0]==0&&biHighIndex(s)==0)s.isNeg=false;return new Array(n,s)}function biDivide(i,t){return biDivideModulo(i,t)[0]}function biModulo(i,t){return biDivideModulo(i,t)[1]}function biMultiplyMod(i,t,r){return biModulo(biMultiply(i,t),r)}function biPow(i,t){var r=bigOne;var e=i;while(true){if((t&1)!=0)r=biMultiply(r,e);t>>=1;if(t==0)break;e=biMultiply(e,e)}return r}function biPowMod(i,t,r){var e=bigOne;var a=i;var n=t;while(true){if((n.digits[0]&1)!=0)e=biMultiplyMod(e,a,r);n=biShiftRight(n,1);if(n.digits[0]==0&&biHighIndex(n)==0)break;a=biMultiplyMod(a,a,r)}return e}function biFromRaw(i){var t=new BigInt;var r=i.length;for(var e=0,a=0;e-1;--i){r+=String.fromCharCode(t.digits[i]/256,t.digits[i]%256)}return reverseStr(r)}function BarrettMu(i){this.modulus=biCopy(i);this.k=biHighIndex(this.modulus)+1;var t=new BigInt;t.digits[2*this.k]=1;this.mu=biDivide(t,this.modulus);this.bkplus1=new BigInt;this.bkplus1.digits[this.k+1]=1;this.modulo=BarrettMu_modulo;this.multiplyMod=BarrettMu_multiplyMod;this.powMod=BarrettMu_powMod}function BarrettMu_modulo(i){var t=biDivideByRadixPower(i,this.k-1);var r=biMultiply(t,this.mu);var e=biDivideByRadixPower(r,this.k+1);var a=biModuloByRadixPower(i,this.k+1);var n=biMultiply(e,this.modulus);var s=biModuloByRadixPower(n,this.k+1);var g=biSubtract(a,s);if(g.isNeg){g=biAdd(g,this.bkplus1)}var d=biCompare(g,this.modulus)>=0;while(d){g=biSubtract(g,this.modulus);d=biCompare(g,this.modulus)>=0}return g}function BarrettMu_multiplyMod(i,t){var r=biMultiply(i,t);return this.modulo(r)}function BarrettMu_powMod(i,t){var r=new BigInt;r.digits[0]=1;var e=i;var a=t;while(true){if((a.digits[0]&1)!=0)r=this.multiplyMod(r,e);a=biShiftRight(a,1);if(a.digits[0]==0&&biHighIndex(a)==0)break;e=this.multiplyMod(e,e)}return r}function rsasec_key(i,t,r){setMaxDigits(160);this.e=biFromRaw(decode64(i));this.m=biFromRaw(decode64(t));this.chunkSize=parseInt(r);this.radix=16;this.barrett=new BarrettMu(this.m)}function rsasec_crypt(i,t){var r=new Array;var e=i.length;var a=0;while(a