libcelt7.js
Version:
celt 0.7.1 compiled to JavaScript using emscripten
82 lines (81 loc) • 245 kB
JavaScript
var Module = function(Module) {
Module = Module || {};
var Module = Module;
var b;b||(b=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var g={},l;for(l in b)b.hasOwnProperty(l)&&(g[l]=b[l]);var n=!1,q=!1,r=!1,aa=!1;
if(b.ENVIRONMENT)if("WEB"===b.ENVIRONMENT)n=!0;else if("WORKER"===b.ENVIRONMENT)q=!0;else if("NODE"===b.ENVIRONMENT)r=!0;else if("SHELL"===b.ENVIRONMENT)aa=!0;else throw Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else n="object"===typeof window,q="function"===typeof importScripts,r="object"===typeof process&&"function"===typeof require&&!n&&!q,aa=!n&&!r&&!q;
if(r){b.print||(b.print=console.log);b.printErr||(b.printErr=console.warn);var ba,ca;b.read=function(a,c){ba||(ba=null);ca||(ca=require("path"));a=ca.normalize(a);var d=ba.readFileSync(a);return c?d:d.toString()};b.readBinary=function(a){a=b.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};b.load=function(a){da(read(a))};b.thisProgram||(b.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");b.arguments=process.argv.slice(2);"undefined"!==
typeof module&&(module.exports=b);process.on("uncaughtException",function(a){if(!(a instanceof u))throw a;});b.inspect=function(){return"[Emscripten Module object]"}}else if(aa)b.print||(b.print=print),"undefined"!=typeof printErr&&(b.printErr=printErr),b.read="undefined"!=typeof read?read:function(){throw"no read() available";},b.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?
b.arguments=scriptArgs:"undefined"!=typeof arguments&&(b.arguments=arguments),"function"===typeof quit&&(b.quit=function(a){quit(a)}),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(n||q)b.read=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText},q&&(b.readBinary=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)}),b.readAsync=
function(a,c,d){var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=function(){200==e.status||0==e.status&&e.response?c(e.response):d()};e.onerror=d;e.send(null)},"undefined"!=typeof arguments&&(b.arguments=arguments),"undefined"!==typeof console?(b.print||(b.print=function(a){console.log(a)}),b.printErr||(b.printErr=function(a){console.warn(a)})):b.print||(b.print=function(){}),q&&(b.load=importScripts),"undefined"===typeof b.setWindowTitle&&(b.setWindowTitle=function(a){document.title=
a});else throw"Unknown runtime environment. Where are we?";function da(a){eval.call(null,a)}!b.load&&b.read&&(b.load=function(a){da(b.read(a))});b.print||(b.print=function(){});b.printErr||(b.printErr=b.print);b.arguments||(b.arguments=[]);b.thisProgram||(b.thisProgram="./this.program");b.quit||(b.quit=function(a,c){throw c;});b.print=b.print;b.e=b.printErr;b.preRun=[];b.postRun=[];for(l in g)g.hasOwnProperty(l)&&(b[l]=g[l]);
var g=void 0,x={G:function(a){return tempRet0=a},C:function(){return tempRet0},g:function(){return v},c:function(a){v=a},t:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?x.h:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},A:function(a){return Math.max(x.t(a),x.h)},H:16,V:function(a,c){"double"===c||"i64"===c?a&7&&(assert(4===(a&7)),a+=4):assert(0===
(a&3));return a},O:function(a,c,d){return d||"i64"!=a&&"double"!=a?a?Math.min(c||(a?x.A(a):0),x.h):Math.min(c,8):8},j:function(a,c,d){return d&&d.length?b["dynCall_"+a].apply(null,[c].concat(d)):b["dynCall_"+a].call(null,c)},d:[],u:function(a){for(var c=0;c<x.d.length;c++)if(!x.d[c])return x.d[c]=a,2*(1+c);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},F:function(a){x.d[(a-2)/2]=null},b:function(a){x.b.l||(x.b.l={});x.b.l[a]||(x.b.l[a]=1,b.e(a))},
k:{},Q:function(a,c){assert(c);x.k[c]||(x.k[c]={});var d=x.k[c];d[a]||(d[a]=1===c.length?function(){return x.j(c,a)}:2===c.length?function(d){return x.j(c,a,[d])}:function(){return x.j(c,a,Array.prototype.slice.call(arguments))});return d[a]},P:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},f:function(a){var c=v;v=v+a|0;v=v+15&-16;return c},m:function(a){var c=y;y=y+a|0;y=y+15&-16;return c},r:function(a){var c=
z[A>>2];a=(c+a+15|0)&-16;z[A>>2]=a;if(a=a>=B)ea(),a=!0;return a?(z[A>>2]=c,0):c},p:function(a,c){return Math.ceil(a/(c?c:16))*(c?c:16)},U:function(a,c,d){return d?+(a>>>0)+4294967296*+(c>>>0):+(a>>>0)+4294967296*+(c|0)},o:8,h:4,I:0};b.Runtime=x;x.addFunction=x.u;x.removeFunction=x.F;var E=0;function assert(a,c){a||F("Assertion failed: "+c)}
function fa(a){var c=b["_"+a];if(!c)try{c=eval("_"+a)}catch(d){}assert(c,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return c}var ga,ha;
(function(){function a(a){a=a.toString().match(f).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}function c(){if(!k){k={};for(var c in d)d.hasOwnProperty(c)&&(k[c]=a(d[c]))}}var d={stackSave:function(){x.g()},stackRestore:function(){x.c()},arrayToC:function(a){var c=x.f(a.length);ia(a,c);return c},stringToC:function(a){var c=0;if(null!==a&&void 0!==a&&0!==a){var d=(a.length<<2)+1,c=x.f(d);G(a,c,d)}return c}},e={string:d.stringToC,array:d.arrayToC};ha=function(a,c,d,f,k){a=fa(a);var C=
[],D=0;if(f)for(var t=0;t<f.length;t++){var R=e[d[t]];R?(0===D&&(D=x.g()),C[t]=R(f[t])):C[t]=f[t]}d=a.apply(null,C);"string"===c&&(d=H(d));if(0!==D){if(k&&k.async){EmterpreterAsync.J.push(function(){x.c(D)});return}x.c(D)}return d};var f=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,k=null;ga=function(d,e,f){f=f||[];var w=fa(d);d=f.every(function(a){return"number"===a});var K="string"!==e;if(K&&d)return w;var C=f.map(function(a,c){return"$"+c});e="(function("+
C.join(",")+") {";var D=f.length;if(!d){c();e+="var stack = "+k.stackSave.body+";";for(var t=0;t<D;t++){var R=C[t],L=f[t];"number"!==L&&(L=k[L+"ToC"],e+="var "+L.arguments+" = "+R+";",e+=L.body+";",e+=R+"=("+L.returnValue+");")}}f=a(function(){return w}).returnValue;e+="var ret = "+f+"("+C.join(",")+");";K||(f=a(function(){return H}).returnValue,e+="ret = "+f+"(ret);");d||(c(),e+=k.stackRestore.body.replace("()","(stack)")+";");return eval(e+"return ret})")}})();b.ccall=ha;b.cwrap=ga;
function ja(a,c,d){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":I[a>>0]=c;break;case "i8":I[a>>0]=c;break;case "i16":J[a>>1]=c;break;case "i32":z[a>>2]=c;break;case "i64":tempI64=[c>>>0,(tempDouble=c,1<=+ka(tempDouble)?0<tempDouble?(la(+ma(tempDouble/4294967296),4294967295)|0)>>>0:~~+na((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];z[a>>2]=tempI64[0];z[a+4>>2]=tempI64[1];break;case "float":M[a>>2]=c;break;case "double":oa[a>>3]=c;break;default:F("invalid type for setValue: "+
d)}}b.setValue=ja;function pa(a,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":return I[a>>0];case "i8":return I[a>>0];case "i16":return J[a>>1];case "i32":return z[a>>2];case "i64":return z[a>>2];case "float":return M[a>>2];case "double":return oa[a>>3];default:F("invalid type for setValue: "+c)}return null}b.getValue=pa;b.ALLOC_NORMAL=0;b.ALLOC_STACK=1;b.ALLOC_STATIC=2;b.ALLOC_DYNAMIC=3;b.ALLOC_NONE=4;
function N(a,c,d,e){var f,k;"number"===typeof a?(f=!0,k=a):(f=!1,k=a.length);var h="string"===typeof c?c:null,m;4==d?m=e:m=["function"===typeof O?O:x.m,x.f,x.m,x.r][void 0===d?2:d](Math.max(k,h?1:c.length));if(f){e=m;assert(0==(m&3));for(a=m+(k&-4);e<a;e+=4)z[e>>2]=0;for(a=m+k;e<a;)I[e++>>0]=0;return m}if("i8"===h)return a.subarray||a.slice?P.set(a,m):P.set(new Uint8Array(a),m),m;e=0;for(var p,w;e<k;)f=a[e],"function"===typeof f&&(f=x.R(f)),d=h||c[e],0===d?e++:("i64"==d&&(d="i32"),ja(m+e,f,d),w!==
d&&(p=x.t(d),w=d),e+=p);return m}b.allocate=N;b.getMemory=function(a){return qa?Q?O(a):x.r(a):x.m(a)};function H(a,c){if(0===c||!a)return"";for(var d=0,e,f=0;;){e=P[a+f>>0];d|=e;if(0==e&&!c)break;f++;if(c&&f==c)break}c||(c=f);e="";if(128>d){for(;0<c;)d=String.fromCharCode.apply(String,P.subarray(a,a+Math.min(c,1024))),e=e?e+d:d,a+=1024,c-=1024;return e}return b.UTF8ToString(a)}b.Pointer_stringify=H;b.AsciiToString=function(a){for(var c="";;){var d=I[a++>>0];if(!d)return c;c+=String.fromCharCode(d)}};
b.stringToAscii=function(a,c){return ra(a,c,!1)};var sa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;
function ta(a,c){for(var d=c;a[d];)++d;if(16<d-c&&a.subarray&&sa)return sa.decode(a.subarray(c,d));for(var e,f,k,h,m,p,d="";;){e=a[c++];if(!e)return d;e&128?(f=a[c++]&63,192==(e&224)?d+=String.fromCharCode((e&31)<<6|f):(k=a[c++]&63,224==(e&240)?e=(e&15)<<12|f<<6|k:(h=a[c++]&63,240==(e&248)?e=(e&7)<<18|f<<12|k<<6|h:(m=a[c++]&63,248==(e&252)?e=(e&3)<<24|f<<18|k<<12|h<<6|m:(p=a[c++]&63,e=(e&1)<<30|f<<24|k<<18|h<<12|m<<6|p))),65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>
10,56320|e&1023)))):d+=String.fromCharCode(e)}}b.UTF8ArrayToString=ta;b.UTF8ToString=function(a){return ta(P,a)};
function ua(a,c,d,e){if(!(0<e))return 0;var f=d;e=d+e-1;for(var k=0;k<a.length;++k){var h=a.charCodeAt(k);55296<=h&&57343>=h&&(h=65536+((h&1023)<<10)|a.charCodeAt(++k)&1023);if(127>=h){if(d>=e)break;c[d++]=h}else{if(2047>=h){if(d+1>=e)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=e)break;c[d++]=224|h>>12}else{if(2097151>=h){if(d+3>=e)break;c[d++]=240|h>>18}else{if(67108863>=h){if(d+4>=e)break;c[d++]=248|h>>24}else{if(d+5>=e)break;c[d++]=252|h>>30;c[d++]=128|h>>24&63}c[d++]=128|h>>18&63}c[d++]=128|
h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;return d-f}b.stringToUTF8Array=ua;function G(a,c,d){return ua(a,P,c,d)}b.stringToUTF8=G;function va(a){for(var c=0,d=0;d<a.length;++d){var e=a.charCodeAt(d);55296<=e&&57343>=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++d)&1023);127>=e?++c:c=2047>=e?c+2:65535>=e?c+3:2097151>=e?c+4:67108863>=e?c+5:c+6}return c}b.lengthBytesUTF8=va;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");
function wa(a){return a.replace(/__Z[\w\d_]+/g,function(a){var d;a:{var e=b.___cxa_demangle||b.__cxa_demangle;if(e)try{var f=a.substr(1),k=va(f)+1,h=O(k);G(f,h,k);var m=O(4),p=e(h,0,0,m);if(0===pa(m,"i32")&&p){d=H(p);break a}}catch(w){}finally{h&&xa(h),m&&xa(m),p&&xa(p)}else x.b("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");d=a}return a===d?a:a+" ["+d+"]"})}
function ya(){var a;a:{a=Error();if(!a.stack){try{throw Error(0);}catch(c){a=c}if(!a.stack){a="(no stack trace available)";break a}}a=a.stack.toString()}b.extraStackTrace&&(a+="\n"+b.extraStackTrace());return wa(a)}b.stackTrace=ya;var buffer,I,P,J,za,z,Aa,M,oa,Ba,y,qa,Ca,v,Da,Ea,A;Ba=y=Ca=v=Da=Ea=A=0;qa=!1;
function ea(){F("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+B+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}var Fa=b.TOTAL_STACK||5242880,B=b.TOTAL_MEMORY||16777216;
B<Fa&&b.e("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+B+"! (TOTAL_STACK="+Fa+")");b.buffer?buffer=b.buffer:buffer=new ArrayBuffer(B);b.HEAP8=I=new Int8Array(buffer);b.HEAP16=J=new Int16Array(buffer);b.HEAP32=z=new Int32Array(buffer);b.HEAPU8=P=new Uint8Array(buffer);b.HEAPU16=za=new Uint16Array(buffer);b.HEAPU32=Aa=new Uint32Array(buffer);b.HEAPF32=M=new Float32Array(buffer);b.HEAPF64=oa=new Float64Array(buffer);z[0]=1668509029;J[1]=25459;
if(115!==P[2]||99!==P[3])throw"Runtime error: expected the system to be little-endian!";b.HEAP=void 0;b.buffer=buffer;b.HEAP8=I;b.HEAP16=J;b.HEAP32=z;b.HEAPU8=P;b.HEAPU16=za;b.HEAPU32=Aa;b.HEAPF32=M;b.HEAPF64=oa;function S(a){for(;0<a.length;){var c=a.shift();if("function"==typeof c)c();else{var d=c.N;"number"===typeof d?void 0===c.i?b.dynCall_v(d):b.dynCall_vi(d,c.i):d(void 0===c.i?null:c.i)}}}var Ga=[],Ha=[],Ia=[],Ja=[],Ka=[],Q=!1;function La(a){Ga.unshift(a)}b.addOnPreRun=La;b.addOnInit=function(a){Ha.unshift(a)};
b.addOnPreMain=function(a){Ia.unshift(a)};b.addOnExit=function(a){Ja.unshift(a)};function Ma(a){Ka.unshift(a)}b.addOnPostRun=Ma;function Na(a,c,d){d=Array(0<d?d:va(a)+1);a=ua(a,d,0,d.length);c&&(d.length=a);return d}b.intArrayFromString=Na;b.intArrayToString=function(a){for(var c=[],d=0;d<a.length;d++){var e=a[d];255<e&&(e&=255);c.push(String.fromCharCode(e))}return c.join("")};
b.writeStringToMemory=function(a,c,d){x.b("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var e,f;d&&(f=c+va(a),e=I[f]);G(a,c,Infinity);d&&(I[f]=e)};function ia(a,c){I.set(a,c)}b.writeArrayToMemory=ia;function ra(a,c,d){for(var e=0;e<a.length;++e)I[c++>>0]=a.charCodeAt(e);d||(I[c>>0]=0)}b.writeAsciiToMemory=ra;Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,c){var d=a&65535,e=c&65535;return d*e+((a>>>16)*e+d*(c>>>16)<<16)|0});Math.S=Math.imul;
Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var c=0;32>c;c++)if(a&1<<31-c)return c;return 32});Math.L=Math.clz32;Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)});Math.trunc=Math.trunc;var ka=Math.abs,na=Math.ceil,ma=Math.floor,la=Math.min,T=0,Oa=null,U=null;b.addRunDependency=function(){T++;b.monitorRunDependencies&&b.monitorRunDependencies(T)};
b.removeRunDependency=function(){T--;b.monitorRunDependencies&&b.monitorRunDependencies(T);if(0==T&&(null!==Oa&&(clearInterval(Oa),Oa=null),U)){var a=U;U=null;a()}};b.preloadedImages={};b.preloadedAudios={};Ba=x.o;y=Ba+6336;Ha.push();
N([53,124,11,60,4,76,10,61,170,96,153,61,157,160,5,62,122,115,75,62,23,228,141,62,57,241,185,62,25,97,232,62,115,207,11,63,100,7,35,63,245,13,57,63,33,35,77,63,217,151,94,63,235,211,108,63,64,91,119,63,15,210,125,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,4,0,0,1,20,0,0,8,0,0,0,9,12,0,0,10,16,0,0,11,32,0,0,6,36,0,0,7,44,0,0,95,10,0,0,103,10,0,0,120,10,0,0,133,10,0,0,148,10,0,0,165,10,0,0,189,10,0,0,203,10,0,0,1,0,0,0,171,170,170,170,205,204,204,204,
183,109,219,182,57,142,227,56,163,139,46,186,197,78,236,196,239,238,238,238,241,240,240,240,27,202,107,40,61,207,243,60,167,55,189,233,41,92,143,194,19,218,75,104,53,194,114,79,223,123,239,189,225,131,15,62,139,175,248,138,173,27,76,145,151,111,249,150,25,156,143,193,131,190,160,47,165,79,250,164,207,70,125,103,209,88,31,26,251,250,250,250,29,82,19,140,135,181,111,88,9,238,35,184,243,216,138,160,21,151,12,193,191,239,251,190,193,15,252,192,107,76,164,7,141,18,63,163,119,169,39,227,249,241,227,199,
99,201,47,150,133,56,43,63,175,22,55,97,177,72,25,120,219,67,46,43,253,252,252,252,103,235,208,111,233,71,63,250,211,47,253,210,245,211,79,63,159,91,226,212,161,163,2,95,75,129,90,191,109,177,50,124,87,27,67,211,217,143,253,216,67,172,40,141,101,9,108,218,143,94,25,219,145,192,219,15,187,164,242,97,221,207,253,220,71,217,253,70,201,105,190,86,179,222,47,235,213,120,233,38,127,191,223,239,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,
0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,6,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,7,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,9,0,0,0,10,
0,0,0,10,0,0,0,10,0,0,0,9,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,11,0,0,0,10,0,0,0,10,0,0,0,9,0,0,0,9,0,0,0,8,0,0,0,11,0,0,0,10,0,0,0,10,0,0,0,1,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,12,0,0,0,12,0,0,0,11,0,0,0,11,0,0,0,17,0,0,0,12,0,0,0,15,0,0,0,15,0,0,0,20,0,0,0,18,0,0,0,10,0,0,0,1,
0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,14,0,0,0,17,0,0,0,18,0,0,0,21,0,0,0,22,0,0,0,27,0,0,0,29,0,0,0,39,0,0,0,37,0,0,0,38,0,0,0,40,0,0,0,35,0,0,0,1,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,13,0,0,0,14,0,0,0,18,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,32,0,0,0,35,0,0,0,38,0,0,0,38,0,0,0,42,0,0,0,50,0,0,0,59,0,0,0,54,0,0,0,31,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,12,0,
0,0,14,0,0,0,20,0,0,0,22,0,0,0,25,0,0,0,28,0,0,0,30,0,0,0,35,0,0,0,42,0,0,0,46,0,0,0,50,0,0,0,55,0,0,0,60,0,0,0,62,0,0,0,62,0,0,0,72,0,0,0,82,0,0,0,62,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,12,0,0,0,13,0,0,0,15,0,0,0,18,0,0,0,22,0,0,0,30,0,0,0,32,0,0,0,35,0,0,0,40,0,0,0,45,0,0,0,55,0,0,0,62,0,0,0,66,0,0,0,70,0,0,0,85,0,0,0,90,0,0,0,92,0,0,0,92,0,0,0,92,0,0,0,102,0,0,0,92,0,0,0,0,0,240,64,113,61,170,191,0,0,0,192,61,10,215,190,123,20,46,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,180,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,127,255,127,255,127,196,5,27,1,109,0,60,0,40,0,29,0,24,0,20,0,18,0,16,0,14,0,13,0,255,127,255,127,255,127,255,127,148,4,238,0,95,0,53,0,36,0,27,0,22,0,18,0,16,0,15,0,13,0,0,0,100,0,200,0,44,1,144,1,254,1,118,2,2,3,152,3,56,4,246,4,200,5,184,6,208,7,16,9,140,10,78,12,116,14,48,17,180,20,0,25,20,
30,28,37,224,46,140,60,32,78,100,101,110,111,114,109,97,108,105,115,101,95,98,97,110,100,115,40,41,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,102,111,114,32,62,50,32,99,104,97,110,110,101,108,115,0,98,97,110,100,115,46,99,0,79,110,108,121,32,109,111,110,111,32,97,110,100,32,115,116,101,114,101,111,32,115,117,112,112,111,114,116,101,100,0,78,85,76,76,32,112,97,115,115,101,100,32,116,111,32,99,101,108,116,95,101,110,99,111,100,101,114,95,100,101,115,116,114,111,121,0,70,114,101,
101,105,110,103,32,97,110,32,101,110,99,111,100,101,114,32,119,104,105,99,104,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,67,69,76,84,32,101,110,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,78,85,76,76,32,112,97,115,115,101,100,32,97,115,32,97,110,32,101,110,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,82,101,102,101,114,101,110,99,105,110,103,32,97,110,32,
101,110,99,111,100,101,114,32,116,104,97,116,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,78,85,76,76,32,112,97,115,115,101,100,32,97,32,100,101,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,82,101,102,101,114,101,110,99,105,110,103,32,97,32,100,101,99,111,100,101,114,32,116,104,97,116,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,67,
69,76,84,32,100,101,99,111,100,101,114,32,115,116,114,117,99,116,117,114,101,0,78,85,76,76,32,112,97,115,115,101,100,32,116,111,32,99,101,108,116,95,100,101,99,111,100,101,114,95,100,101,115,116,114,111,121,0,70,114,101,101,105,110,103,32,97,32,100,101,99,111,100,101,114,32,119,104,105,99,104,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,117,110,107,110,111,119,110,32,101,114,114,111,114,0,115,117,99,99,101,115,115,0,105,110,118,97,108,105,100,32,97,114,103,
117,109,101,110,116,0,105,110,118,97,108,105,100,32,109,111,100,101,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,0,99,111,114,114,117,112,116,101,100,32,115,116,114,101,97,109,0,114,101,113,117,101,115,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,105,110,118,97,108,105,100,32,115,116,97,116,101,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,84,114,121,105,110,103,32,116,111,32,114,101,97,100,32,114,97,119,32,98,105,116,
115,32,98,101,102,111,114,101,32,116,104,101,32,98,101,103,105,110,110,105,110,103,32,111,102,32,116,104,101,32,115,116,114,101,97,109,0,101,110,116,100,101,99,46,99,0,117,105,110,116,32,100,101,99,111,100,101,32,101,114,114,111,114,0,110,111,116,105,102,105,99,97,116,105,111,110,58,32,37,115,10,0,114,97,110,103,101,32,101,110,99,111,100,101,114,32,111,118,101,114,102,108,111,119,10,0,101,110,116,101,110,99,46,99,0,98,121,116,101,32,98,117,102,102,101,114,32,99,111,108,108,105,115,105,111,110,0,73,
110,45,112,108,97,99,101,32,70,70,84,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,107,105,115,115,95,102,102,116,46,99,0,70,97,116,97,108,32,40,105,110,116,101,114,110,97,108,41,32,101,114,114,111,114,32,105,110,32,37,115,44,32,108,105,110,101,32,37,100,58,32,37,115,10,0,85,115,105,110,103,32,97,32,109,111,100,101,32,116,104,97,116,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,
67,69,76,84,32,109,111,100,101,0,119,97,114,110,105,110,103,58,32,37,115,10,0,83,97,109,112,108,105,110,103,32,114,97,116,101,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,51,50,32,107,72,122,32,97,110,100,32,57,54,32,107,72,122,0,79,110,108,121,32,101,118,101,110,32,102,114,97,109,101,32,115,105,122,101,115,32,102,114,111,109,32,54,52,32,116,111,32,49,48,50,52,32,97,114,101,32,115,117,112,112,111,114,116,101,100,0,78,85,76,76,32,112,97,115,115,101,100,32,116,111,32,99,101,108,116,
95,109,111,100,101,95,100,101,115,116,114,111,121,0,70,114,101,101,105,110,103,32,97,32,109,111,100,101,32,119,104,105,99,104,32,104,97,115,32,97,108,114,101,97,100,121,32,98,101,101,110,32,102,114,101,101,100,0,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,67,69,76,84,32,109,111,100,101,32,115,116,114,117,99,116,117,114,101,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,
17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,
78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,
116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,
32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,
111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,
111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,
100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,
101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,
101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,
101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,
114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,
111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,
112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,
97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,
115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",4,x.o);var Pa=y;y+=16;var V=0;function W(){V+=4;return z[V-4>>2]}
var Qa={},Ra=N([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,
0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",2);function X(){X.a||(X.a=[]);X.a.push(x.g());return X.a.length-1}function Y(a,c){V=c;try{var d=W(),e=W(),f=W(),k=0;Y.buffer||(Y.a=[null,[],[]],Y.q=function(a,c){var d=Y.a[a];assert(d);0===c||10===c?((1===a?b.print:b.printErr)(ta(d,0)),d.length=0):d.push(c)});for(var h=0;h<f;h++){for(var m=z[e+8*h>>2],p=z[e+(8*h+4)>>2],w=0;w<p;w++)Y.q(d,P[m+w]);k+=p}return k}catch(K){return"undefined"!==typeof FS&&K instanceof FS.n||F(K),-K.s}}
Ja.push(function(){var a=b._fflush;a&&a(0);if(a=Y.q){var c=Y.a;c[1].length&&a(1,10);c[2].length&&a(2,10)}});A=N(1,"i32",2);Ca=v=x.p(y);Da=Ca+Fa;Ea=x.p(Da);z[A>>2]=Ea;qa=!0;b.v={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};
b.w={abort:F,assert:assert,enlargeMemory:function(){ea()},getTotalMemory:function(){return B},abortOnCannotGrowMemory:ea,invoke_ii:function(a,c){try{return b.dynCall_ii(a,c)}catch(d){if("number"!==typeof d&&"longjmp"!==d)throw d;b.setThrew(1,0)}},invoke_iiii:function(a,c,d,e){try{return b.dynCall_iiii(a,c,d,e)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;b.setThrew(1,0)}},___syscall6:function(a,c){V=c;try{var d=Qa.B();FS.close(d);return 0}catch(e){return"undefined"!==typeof FS&&e instanceof
FS.n||F(e),-e.s}},___setErrNo:function(a){b.___errno_location&&(z[b.___errno_location()>>2]=a);return a},_abort:function(){b.abort()},_emscripten_memcpy_big:function(a,c,d){P.set(P.subarray(c,c+d),a);return a},___syscall140:function(a,c){V=c;try{var d=Qa.B();W();var e=W(),f=W(),k=W();FS.T(d,e,k);z[f>>2]=d.position;d.D&&0===e&&0===k&&(d.D=null);return 0}catch(h){return"undefined"!==typeof FS&&h instanceof FS.n||F(h),-h.s}},_llvm_stackrestore:function(a){var c=X.a[a];X.a.splice(a,1);x.c(c)},_llvm_stacksave:X,
___syscall146:Y,DYNAMICTOP_PTR:A,tempDoublePtr:Pa,ABORT:E,STACKTOP:v,STACK_MAX:Da,cttz_i8:Ra};// EMSCRIPTEN_START_ASM
var Z=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0;var z=0;var A=global.Math.floor;var B=global.Math.abs;var C=global.Math.sqrt;var D=global.Math.pow;var E=global.Math.cos;var F=global.Math.sin;var G=global.Math.tan;var H=global.Math.acos;var I=global.Math.asin;var J=global.Math.atan;var K=global.Math.atan2;var L=global.Math.exp;var M=global.Math.log;var N=global.Math.ceil;var O=global.Math.imul;var P=global.Math.min;var Q=global.Math.max;var R=global.Math.clz32;var S=env.abort;var T=env.assert;var U=env.enlargeMemory;var V=env.getTotalMemory;var W=env.abortOnCannotGrowMemory;var X=env.invoke_ii;var Y=env.invoke_iiii;var Z=env.___syscall6;var _=env.___setErrNo;var $=env._abort;var aa=env._emscripten_memcpy_big;var ba=env.___syscall140;var ca=env._llvm_stackrestore;var da=env._llvm_stacksave;var ea=env.___syscall146;var fa=0.0;
// EMSCRIPTEN_START_FUNCS
function ia(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ja(){return l|0}function ka(a){a=a|0;l=a}function la(a,b){a=a|0;b=b|0;l=a;m=b}function ma(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function na(a){a=a|0;z=a}function oa(){return z|0}function pa(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;s=l;l=l+48|0;n=s+40|0;o=s+36|0;p=s+32|0;t=s+28|0;q=s+24|0;r=s+20|0;h=s+16|0;i=s+12|0;j=s+8|0;k=s+4|0;m=s;c[n>>2]=a;c[o>>2]=d;c[p>>2]=e;c[t>>2]=f;c[i>>2]=c[(c[n>>2]|0)+24>>2];c[j>>2]=c[t>>2];c[h>>2]=c[(c[n>>2]|0)+12>>2];c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[j>>2]|0))break;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[n>>2]|0)+16>>2]|0))break;g[m>>2]=1.000000013351432e-10;c[k>>2]=b[(c[i>>2]|0)+(c[q>>2]<<1)>>1];while(1){if((c[k>>2]|0)>=(b[(c[i>>2]|0)+((c[q>>2]|0)+1<<1)>>1]|0))break;u=+g[(c[o>>2]|0)+((c[k>>2]|0)+(O(c[r>>2]|0,c[h>>2]|0)|0)<<2)>>2];u=u*+g[(c[o>>2]|0)+((c[k>>2]|0)+(O(c[r>>2]|0,c[h>>2]|0)|0)<<2)>>2];g[m>>2]=+g[m>>2]+u;c[k>>2]=(c[k>>2]|0)+1}u=+C(+(+g[m>>2]));g[(c[p>>2]|0)+((c[q>>2]|0)+(O(c[r>>2]|0,c[(c[n>>2]|0)+16>>2]|0)|0)<<2)>>2]=u;c[q>>2]=(c[q>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}l=s;return}function qa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;u=l;l=l+48|0;q=u+44|0;r=u+40|0;s=u+36|0;t=u+32|0;v=u+28|0;i=u+24|0;j=u+20|0;k=u+16|0;m=u+12|0;n=u+8|0;o=u+4|0;p=u;c[q>>2]=a;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[v>>2]=h;c[m>>2]=c[(c[q>>2]|0)+24>>2];c[n>>2]=c[v>>2];c[k>>2]=c[(c[q>>2]|0)+12>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[n>>2]|0))break;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[(c[q>>2]|0)+16>>2]|0))break;g[p>>2]=1.0/(+g[(c[t>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[(c[q>>2]|0)+16>>2]|0)|0)<<2)>>2]+1.0e-10);c[o>>2]=b[(c[m>>2]|0)+(c[i>>2]<<1)>>1];while(1){if((c[o>>2]|0)>=(b[(c[m>>2]|0)+((c[i>>2]|0)+1<<1)>>1]|0))break;w=+g[(c[r>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2];g[(c[s>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2]=w*+g[p>>2];c[o>>2]=(c[o>>2]|0)+1}c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=u;return}function ra(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;f=m+24|0;g=m+20|0;n=m+16|0;h=m+12|0;i=m+8|0;j=m+4|0;k=m;c[f>>2]=a;c[g>>2]=d;c[n>>2]=e;c[j>>2]=c[(c[f>>2]|0)+24>>2];c[k>>2]=c[n>>2];c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[k>>2]|0))break;c[h>>2]=0;do{n=(c[g>>2]|0)+(b[(c[j>>2]|0)+(c[h>>2]<<1)>>1]<<2)+((O(c[i>>2]|0,b[(c[(c[f>>2]|0)+24>>2]|0)+((c[(c[f>>2]|0)+16>>2]|0)+1<<1)>>1]|0)|0)<<2)|0;+Hd(n,1.0,(b[(c[j>>2]|0)+((c[h>>2]|0)+1<<1)>>1]|0)-(b[(c[j>>2]|0)+(c[h>>2]<<1)>>1]|0)|0,1);n=(c[h>>2]|0)+1|0;c[h>>2]=n}while((n|0)<(c[(c[f>>2]|0)+16>>2]|0));c[i>>2]=(c[i>>2]|0)+1}l=m;return}function sa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;u=l;l=l+48|0;q=u+44|0;r=u+40|0;s=u+36|0;t=u+32|0;v=u+28|0;i=u+24|0;j=u+20|0;k=u+16|0;m=u+12|0;n=u+8|0;o=u+4|0;p=u;c[q>>2]=a;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[v>>2]=h;c[m>>2]=c[(c[q>>2]|0)+24>>2];c[n>>2]=c[v>>2];c[k>>2]=c[(c[q>>2]|0)+12>>2];if((c[n>>2]|0)>2)ta(2128,2180,200);c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[n>>2]|0))break;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[(c[q>>2]|0)+16>>2]|0))break;g[p>>2]=+g[(c[t>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[(c[q>>2]|0)+16>>2]|0)|0)<<2)>>2];c[o>>2]=b[(c[m>>2]|0)+(c[i>>2]<<1)>>1];do{w=+g[(c[r>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2];g[(c[s>>2]|0)+((c[o>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2]=w*+g[p>>2];v=(c[o>>2]|0)+1|0;c[o>>2]=v}while((v|0)<(b[(c[m>>2]|0)+((c[i>>2]|0)+1<<1)>>1]|0));c[i>>2]=(c[i>>2]|0)+1}c[i>>2]=b[(c[m>>2]|0)+(c[(c[q>>2]|0)+16>>2]<<1)>>1];while(1){if((c[i>>2]|0)>=(b[(c[m>>2]|0)+((c[(c[q>>2]|0)+16>>2]|0)+1<<1)>>1]|0))break;g[(c[s>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2]=0.0;c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=u;return}function ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;e=h;g=h+20|0;f=h+16|0;h=h+12|0;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[472]|0;a=c[h>>2]|0;b=c[g>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=a;c[e+8>>2]=b;ze(d,2985,e)|0;$()}function ua(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;H=l;l=l+96|0;G=H+84|0;I=H+80|0;D=H+76|0;k=H+72|0;m=H+68|0;F=H+64|0;J=H+60|0;E=H+56|0;n=H+52|0;o=H+48|0;p=H+44|0;q=H+40|0;r=H+36|0;s=H+32|0;t=H+28|0;u=H+24|0;v=H+20|0;w=H+16|0;x=H+12|0;y=H+8|0;z=H+4|0;B=H;c[I>>2]=a;c[D>>2]=b;c[k>>2]=d;c[m>>2]=e;c[F>>2]=f;c[J>>2]=h;c[E>>2]=i;c[r>>2]=c[J>>2];g[s>>2]=0.0;g[t>>2]=0.0;g[u>>2]=0.0;c[v>>2]=c[(c[I>>2]|0)+20>>2];c[w>>2]=c[(c[I>>2]|0)+12>>2];g[q>>2]=1.0/+(c[v>>2]|0);c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[r>>2]|0))break;g[x>>2]=1.0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[v>>2]|0))break;g[y>>2]=+g[(c[D>>2]|0)+((c[n>>2]|0)+(O(c[o>>2]|0,c[w>>2]|0)|0)<<2)>>2];g[z>>2]=+g[x>>2]*+g[(c[k>>2]|0)+((c[n>>2]|0)+(O(c[o>>2]|0,c[w>>2]|0)|0)<<2)>>2];g[s>>2]=+g[s>>2]+ +g[y>>2]*+g[z>>2];g[t>>2]=+g[t>>2]+ +g[z>>2]*+g[z>>2];g[u>>2]=+g[u>>2]+ +g[y>>2]*+g[y>>2];g[x>>2]=+g[x>>2]-+g[q>>2];c[n>>2]=(c[n>>2]|0)+1}c[o>>2]=(c[o>>2]|0)+1}g[B>>2]=+(c[m>>2]|0)*.04;if(+g[B>>2]<1.0)g[B>>2]=1.0;g[p>>2]=+g[s>>2]/(+g[t>>2]+.1+ +g[u>>2]*.03);if(+g[s>>2]<+g[B>>2]*.5*+C(+(+g[t>>2]*+g[u>>2]+1.0)))g[p>>2]=0.0;J=~~+A(+((+g[p>>2]-.5)*20.0));c[c[F>>2]>>2]=J;g[p>>2]=+(c[c[F>>2]>>2]|0)*.05+.5;if(1.0>+g[c[E>>2]>>2]*+g[p>>2])j=1.0;else j=+g[c[E>>2]>>2]*+g[p>>2];g[c[E>>2]>>2]=j;if(+g[c[E>>2]>>2]>2.0){c[c[F>>2]>>2]=9;g[c[E>>2]>>2]=2.0}a=c[F>>2]|0;if((c[c[F>>2]>>2]|0)<0){c[a>>2]=0;c[G>>2]=0;J=c[G>>2]|0;l=H;return J|0}if((c[a>>2]|0)>15)c[c[F>>2]>>2]=15;c[G>>2]=1;J=c[G>>2]|0;l=H;return J|0}function va(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;t=l;l=l+64|0;w=t+52|0;r=t+48|0;s=t+44|0;v=t+40|0;u=t+36|0;x=t+32|0;i=t+28|0;j=t+24|0;k=t+20|0;m=t+16|0;n=t+12|0;o=t+8|0;p=t+4|0;q=t;c[w>>2]=a;c[r>>2]=b;c[s>>2]=d;c[v>>2]=e;c[u>>2]=f;c[x>>2]=h;c[o>>2]=c[x>>2];c[p>>2]=c[(c[w>>2]|0)+20>>2];c[k>>2]=c[(c[w>>2]|0)+12>>2];g[m>>2]=+(c[v>>2]|0)*.05+.5;g[n>>2]=+g[m>>2]/+(c[p>>2]|0);if(c[u>>2]|0)g[m>>2]=-+g[m>>2];else g[n>>2]=-+g[n>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[o>>2]|0))break;g[q>>2]=+g[m>>2];c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[p>>2]|0))break;y=+g[q>>2]*+g[(c[s>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)>>2];x=(c[r>>2]|0)+((c[i>>2]|0)+(O(c[j>>2]|0,c[k>>2]|0)|0)<<2)|0;g[x>>2]=+g[x>>2]+y;g[q>>2]=+g[q>>2]+ +g[n>>2];c[i>>2]=(c[i>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}l=t;return}function wa(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;E=l;l=l+80|0;y=E+76|0;z=E+72|0;B=E+68|0;D=E+64|0;F=E+60|0;j=E+56|0;k=E+52|0;m=E+48|0;n=E+44|0;A=E+40|0;o=E+36|0;p=E+32|0;q=E+28|0;r=E+24|0;s=E+20|0;t=E+16|0;u=E+12|0;v=E+8|0;w=E+4|0;x=E;c[y>>2]=a;c[z>>2]=d;c[B>>2]=e;c[D>>2]=f;c[F>>2]=h;c[n>>2]=0;g[A>>2]=1.0000000036274937e-15;c[o>>2]=c[F>>2];c[p>>2]=c[(c[y>>2]|0)+24>>2];c[m>>2]=c[(c[y>>2]|0)+12>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[o>>2]|0))break;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[y>>2]|0)+16>>2]|0))break;c[s>>2]=0;g[t>>2]=1.0000000036274937e-15;g[u>>2]=1.0000000036274937e-15;c[v>>2]=(c[z>>2]|0)+(b[(c[p>>2]|0)+(c[j>>2]<<1)>>1]<<2)+((O(c[k>>2]|0,c[m>>2]|0)|0)<<2);c[r>>2]=(b[(c[p>>2]|0)+((c[j>>2]|0)+1<<1)>>1]|0)-(b[(c[p>>2]|0)+(c[j>>2]<<1)>>1]|0);c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[r>>2]|0))break;i=+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2];if((+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2]<0.0?-i:i)>+g[t>>2]){i=+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2];g[t>>2]=+g[(c[v>>2]|0)+(c[q>>2]<<2)>>2]<0.0?-i:i;c[s>>2]=c[q>>2]}c[q>>2]=(c[q>>2]|0)+1}g[u>>2]=1.0-+g[t>>2]*+g[t>>2];if((c[s>>2]|0)<((c[r>>2]|0)-1|0))g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)+1<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)+1<<2)>>2];if((c[s>>2]|0)<((c[r>>2]|0)-2|0))g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)+2<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)+2<<2)>>2];if((c[s>>2]|0)>0)g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)-1<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)-1<<2)>>2];if((c[s>>2]|0)>1)g[u>>2]=+g[u>>2]-+g[(c[v>>2]|0)+((c[s>>2]|0)-2<<2)>>2]*+g[(c[v>>2]|0)+((c[s>>2]|0)-2<<2)>>2];g[u>>2]=+g[u>>2]>1.0000000036274937e-15?+g[u>>2]:1.0000000036274937e-15;if((c[r>>2]|0)>7){g[x>>2]=+C(+(+g[u>>2]));g[x>>2]=.02>+g[x>>2]?.02:+g[x>>2];g[w>>2]=+g[t>>2]/+g[x>>2];g[A>>2]=+g[A>>2]+ +g[w>>2];c[n>>2]=(c[n>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}c[k>>2]=(c[k>>2]|0)+1}if((c[n>>2]|0)>0)g[A>>2]=+g[A>>2]/+(c[n>>2]|0);g[A>>2]=+g[A>>2]*.5+ +g[c[B>>2]>>2]*.5;i=+g[A>>2];if(c[c[D>>2]>>2]|0){c[c[D>>2]>>2]=i<3.0&1;i=+g[A>>2];F=c[B>>2]|0;g[F>>2]=i;F=c[D>>2]|0;F=c[F>>2]|0;l=E;return F|0}else{c[c[D>>2]>>2]=i<1.8&1;i=+g[A>>2];F=c[B>>2]|0;g[F>>2]=i;F=c[D>>2]|0;F=c[F>>2]|0;l=E;return F|0}return 0}function xa(a,d,f,h,i,j,k,m,n){a=a|0;d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;M=l;l=l+112|0;L=M+96|0;o=M+92|0;p=M+84|0;N=M+80|0;q=M+76|0;r=M+72|0;s=M+68|0;t=M+64|0;u=M+60|0;v=M+56|0;w=M+52|0;x=M+48|0;y=M+44|0;z=M+40|0;A=M+36|0;B=M+32|0;D=M+28|0;E=M+24|0;F=M+20|0;G=M+16|0;H=M+12|0;I=M+8|0;J=M+4|0;K=M;c[L>>2]=a;c[o>>2]=d;c[M+88>>2]=f;c[p>>2]=h;c[N>>2]=i;c[q>>2]=j;c[r>>2]=k;c[s>>2]=m;c[t>>2]=n;c[y>>2]=c[(c[L>>2]|0)+24>>2];if(c[N>>2]|0)a=c[(c[L>>2]|0)+60>>2]|0;else a=1;c[A>>2]=a;n=e[(c[y>>2]|0)+((c[(c[L>>2]|0)+16>>2]|0)+1<<1)>>1]|0;c[B>>2]=da()|0;N=l;l=l+((1*(n<<2)|0)+15&-16)|0;c[z>>2]=N;c[x>>2]=0;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[(c[L>>2]|0)+16>>2]|0))break;c[E>>2]=(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0);c[H>>2]=c[(c[L>>2]|0)+40>>2];a=c[t>>2]|0;if(c[s>>2]|0)c[D>>2]=td(a,4)|0;else c[D>>2]=ld(a,4)|0;if(c[u>>2]|0)c[x>>2]=(c[x>>2]|0)-(c[D>>2]|0);c[w>>2]=(c[r>>2]<<4)-(c[D>>2]|0)-1;N=(c[(c[L>>2]|0)+16>>2]|0)-(c[u>>2]|0)|0;c[I>>2]=N;c[I>>2]=(c[I>>2]|0)>3?3:N;c[I>>2]=(c[x>>2]|0)/(c[I>>2]|0)|0;c[F>>2]=ya(c[L>>2]|0,c[(c[H>>2]|0)+(c[u>>2]<<2)>>2]|0,c[E>>2]|0,(c[(c[p>>2]|0)+(c[u>>2]<<2)>>2]|0)+(c[I>>2]|0)|0)|0;c[J>>2]=za(c[(c[H>>2]|0)+(c[u>>2]<<2)>>2]|0,c[E>>2]|0,c[F>>2]|0)|0;c[w>>2]=(c[w>>2]|0)-(c[J>>2]|0);while(1){if(!((c[w>>2]|0)<0?(c[F>>2]|0)>0:0))break;c[w>>2]=(c[w>>2]|0)+(c[J>>2]|0);c[F>>2]=(c[F>>2]|0)+-1;c[J>>2]=za(c[(c[H>>2]|0)+(c[u>>2]<<2)>>2]|0,c[E>>2]|0,c[F>>2]|0)|0;c[w>>2]=(c[w>>2]|0)-(c[J>>2]|0)}c[x>>2]=(c[x>>2]|0)+((c[(c[p>>2]|0)+(c[u>>2]<<2)>>2]|0)+(c[D>>2]|0));g[G>>2]=+C(+(+((b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0)|0)));do if((c[F>>2]|0)>0){c[K>>2]=c[q>>2]|0?c[A>>2]|0:0;a=(c[o>>2]|0)+(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]<<2)|0;d=(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0)|0;f=c[F>>2]|0;h=c[K>>2]|0;i=c[t>>2]|0;if(c[s>>2]|0){Cd(a,d,f,h,i);break}else{Gd(a,d,f,h,i);break}}else Id(c[L>>2]|0,(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0)-(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0)|0,c[z>>2]|0,(c[o>>2]|0)+(b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]<<2)|0,b[(c[y>>2]|0)+(c[u>>2]<<1)>>1]|0,c[A>>2]|0);while(0);c[v>>2]=b[(c[y>>2]|0)+(c[u>>2]<<1)>>1];while(1){if((c[v>>2]|0)>=(b[(c[y>>2]|0)+((c[u>>2]|0)+1<<1)>>1]|0))break;g[(c[z>>2]|0)+(c[v>>2]<<2)>>2]=+g[G>>2]*+g[(c[o>>2]|0)+(c[v>>2]<<2)>>2];c[v>>2]=(c[v>>2]|0)+1}c[u>>2]=(c[u>>2]|0)+1}ca(c[B>>2]|0);l=M;return}function ya(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;j=o+32|0;k=o+24|0;m=o+16|0;n=o+12|0;g=o+8|0;h=o+4|0;i=o;c[o+28>>2]=a;c[k>>2]=d;c[o+20>>2]=e;c[m>>2]=f;c[g>>2]=0;c[h>>2]=39;c[n>>2]=0;while(1){if((c[n>>2]|0)>=6)break;c[i>>2]=(c[g>>2]|0)+(c[h>>2]|0)>>1;a=c[i>>2]|0;if((b[(c[k>>2]|0)+(c[i>>2]<<1)>>1]|0)>=(c[m>>2]|0))c[h>>2]=a;else c[g>>2]=a;c[n>>2]=(c[n>>2]|0)+1}if(((c[m>>2]|0)-(b[(c[k>>2]|0)+(c[g>>2]<<1)>>1]|0)|0)<=((b[(c[k>>2]|0)+(c[h>>2]<<1)>>1]|0)-(c[m>>2]|0)|0)){c[j>>2]=c[g>>2];n=c[j>>2]|0;l=o;return n|0}else{c[j>>2]=c[h>>2];n=c[j>>2]|0;l=o;return n|0}return 0}function za(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;g=h+8|0;f=h;c[g>>2]=a;c[h+4>>2]=d;c[f>>2]=e;l=h;return b[(c[g>>2]|0)+(c[f>>2]<<1)>>1]|0}function Aa(a,d,f,h,i,j,k,m){a=a|0;d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ea=0,fa=0;ea=l;l=l+160|0;aa=ea+156|0;ba=ea+152|0;n=ea+148|0;o=ea+144|0;fa=ea+140|0;p=ea+136|0;q=ea+132|0;r=ea+128|0;s=ea+124|0;t=ea+120|0;u=ea+116|0;v=ea+112|0;w=ea+108|0;x=ea+104|0;y=ea+100|0;z=ea+96|0;B=ea+92|0;D=ea+88|0;E=ea+84|0;F=ea+80|0;G=ea+76|0;H=ea+72|0;I=ea+68|0;J=ea+64|0;L=ea+60|0;M=ea+56|0;N=ea+52|0;P=ea+48|0;Q=ea+44|0;R=ea+40|0;S=ea+36|0;T=ea+32|0;U=ea+28|0;V=ea+24|0;W=ea+20|0;X=ea+16|0;Y=ea+12|0;Z=ea+8|0;_=ea+4|0;$=ea;c[aa>>2]=a;c[ba>>2]=d;c[n>>2]=f;c[o>>2]=h;c[fa>>2]=i;c[p>>2]=j;c[q>>2]=k;c[r>>2]=m;c[w>>2]=c[(c[aa>>2]|0)+24>>2];if(c[fa>>2]|0)a=c[(c[aa>>2]|0)+60>>2]|0;else a=1;c[y>>2]=a;m=e[(c[w>>2]|0)+((c[(c[aa>>2]|0)+16>>2]|0)+1<<1)>>1]|0;c[D>>2]=da()|0;fa=l;l=l+((1*(m<<2)|0)+15&-16)|0;c[x>>2]=fa;c[v>>2]=0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[(c[aa>>2]|0)+16>>2]|0))break;c[X>>2]=(c[ba>>2]|0)+(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]<<2);c[Y>>2]=(c[X>>2]|0)+(b[(c[w>>2]|0)+((c[(c[aa>>2]|0)+16>>2]|0)+1<<1)>>1]<<2);c[I>>2]=c[(c[aa>>2]|0)+40>>2];c[M>>2]=(b[(c[w>>2]|0)+((c[s>>2]|0)+1<<1)>>1]|0)-(b[(c[w>>2]|0)+(c[s>>2]<<1)>>1]|0);c[E>>2]=td(c[r>>2]|0,4)|0;if(c[s>>2]|0)c[v>>2]=(c[v>>2]|0)-(c[E>>2]|0);c[u>>2]=(c[q>>2]<<4)-(c[E>>2]|0)-1;fa=(c[(c[aa>>2]|0)+16>>2]|0)-(c[s>>2]|0)|0;c[N>>2]=fa;c[N>>2]=(c[N>>2]|0)>3?3:fa;c[N>>2]=(c[v>>2]|0)/(c[N>>2]|0)|0;if(((c[u>>2]|0)+1|0)<((c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[N>>2]|0)|0))a=(c[u>>2]|0)+1|0;else a=(c[(c[o>>2]|0)+(c[s>>2]<<2)>>2]|0)+(c[N>>2]|0)|0;c[J>>2]=a;c[J>>2]=(c[J>>2]|0)<0?0:a;m=c[J>>2]|0;fa=(c[M>>2]|0)-1<<1;fa=m-(O(fa,40-(hb(c[M>>2]|0,4)|0)|0)|0)|0;c[L>>2]=(fa|0)/((c[M>>2]|0)-1<<5|0)|0;if((c[L>>2]|0)>((c[J>>2]>>4)-1|0))c[L>>2]=(c[J>>2]>>4)-1;if((c[L>>2]|0)<0)c[L>>2]=0;if((c[L>>2]|0)>14)c[L>>2]=14;Ba(c[aa>>2]|0,c[X>>2]|0,c[Y>>2]|0,c[n>>2]|0,(c[L>>2]|0)==0&1,c[s>>2]|0,1);g[z>>2]=+Hd(c[X>>2]|0,1.0,c[M>>2]|0,1);g[B>>2]=+Hd(c[Y>>2]|0,1.0,c[M>>2]|0,1);c[S>>2]=~~+A(+(+K(+(+g[B>>2]),+(+g[z>>2]))*10430.38208+.5));c[W>>2]=hb((1<<c[L>>2])+1|0,4)|0;if(!(c[L>>2]|0))c[S>>2]=0;else{c[Z>>2]=14-(c[L>>2]|0);c[S>>2]=(c[S>>2]|0)+(1<<c[Z>>2]>>1)>>c[Z>>2];dc(c[r>>2]|0,c[S>>2]|0,(1<<c[L>>2])+1|0);c[S>>2]=c[S>>2]<<c[Z>>2]}do if(c[S>>2]|0)if((c[S>>2]|0)==16384){c[Q>>2]=0;c[R>>2]=32767;c[V>>2]=1e4;break}else{c[Q>>2]=(Ca(c[S>>2]&65535)|0)<<16>>16;c[R>>2]=(Ca(16384-(c[S>>2]|0)&65535)|0)<<16>>16;m=(c[M>>2]|0)-1|0;fa=hb(c[R>>2]|0,6)|0;c[V>>2]=(O(m,fa-(hb(c[Q>>2]|0,6)|0)|0)|0)>>2;break}else{c[Q>>2]=32767;c[R>>2]=0;c[V