functiona(b){throwb}varaa=void0,l=!0,pa=null,n=!1,za=[],Da="object"===typeofprocess,Ea="object"===typeofwindow,Fa="function"===typeofimportScripts,Ja=!Ea&&!Da&&!Fa;if(Da){print=(function(b){process.stdout.write(b+"\n")});printErr=(function(b){process.stderr.write(b+"\n")});varMa=require("fs");read=(function(b){varc=Ma.readFileSync(b).toString();!c&&"/"!=b[0]&&(b=__dirname.split("/").slice(0,-1).join("/")+"/src/"+b,c=Ma.readFileSync(b).toString());returnc});load=(function(b){Na(read(b))});za=process.argv.slice(2)}else{Ja?(this.read||(this.read=(function(b){snarf(b)})),"undefined"!=typeofscriptArgs?za=scriptArgs:"undefined"!=typeofarguments&&(za=arguments)):Ea?(this.print=printErr=(function(b){console.log(b)}),this.read=(function(b){varc=newXMLHttpRequest;c.open("GET",b,n);c.send(pa);returnc.responseText}),this.arguments&&(za=arguments)):Fa?this.load=importScripts:a("Unknown runtime environment. Where are we?")}functionNa(b){eval.call(pa,b)}"undefined"==typeofload&&"undefined"!=typeofread&&(this.load=(function(b){Na(read(b))}));"undefined"===typeofprintErr&&(this.printErr=(function(){}));"undefined"===typeofprint&&(this.print=printErr);try{this.Module=Module}catch(Qa){this.Module=Module={}}Module.arguments||(Module.arguments=za);Module.print&&(print=Module.print);functionWa(b){if(Xa==1){return1}varc={"%i1":1,"%i8":1,"%i16":2,"%i32":4,"%i64":8,"%float":4,"%double":8}["%"+b];if(!c){if(b[b.length-1]=="*"){c=Xa}else{if(b[0]=="i"){b=parseInt(b.substr(1));Ya(b%8==0);c=b/8}}}returnc}functioncb(b){varc=q;q=q+b;q=q+3>>2<<2;returnc}functiondb(b){varc=eb;eb=eb+b;eb=eb+3>>2<<2;if(eb>=fb){for(;fb<=eb;){fb=2*fb+4095>>12<<12}varb=v,d=newArrayBuffer(fb);v=newInt8Array(d);gb=newInt16Array(d);y=newInt32Array(d);z=newUint8Array(d);A=newUint16Array(d);C=newUint32Array(d);lb=newFloat32Array(d);mb=newFloat64Array(d);v.set(b)}returnc}varXa=4,ub={},vb;functionwb(b){print(b+":\n"+Error().stack);a("Assertion: "+b)}functionYa(b,c){b||wb("Assertion failed: "+c)}varMb=this;Module.ccall=(function(b,c,d,e){try{varg=eval("_"+b)}catch(h){try{g=Mb.Module["_"+b]}catch(j){}}Ya(g,"Cannot call unknown function "+b+" (perhaps LLVM optimizations or closure removed it?)");vari=0,b=e?e.map((function(b){if(d[i++]=="string"){varc=q;cb(b.length+1);Nb(b,c);b=c}returnb})):[];return(function(b,c){returnc=="string"?Vb(b):b})(g.apply(pa,b),c)});functionWb(b,c,d){d=d||"i8";d[d.length-1]==="*"&&(d="i32");switch(d){case"i1":v[b]=c;break;case"i8":v[b]=c;break;case"i16":gb[b>>1]=c;break;case"i32":y[b>>2]=c;break;case"i64":y[b>>2]=c;break;case"float":lb[b>>2]=c;break;case"double":Yb[0]=c;y[b>>2]=Zb[0];y[b+4>>2]=Zb[1];break;default:wb("invalid type for setValue: "+d)}}Module.setValue=Wb;Module.getValue=(function(b,c){c=c||"i8";c[c.length-1]==="*"&&(c="i32");switch(c){case"i1":returnv[b];case"i8":returnv[b];case"i16":returngb[b>>1];case"i32":returny[b>>2];case"i64":returny[b>>2];case"float":returnlb[b>>2];case"double":returnZb[0]=y[b>>2],Zb[1]=y[b+4>>2],Yb[0];default:wb("invalid type for setValue: "+c)}returnpa});var$b=1,D=2;Module.ALLOC_NORMAL=0;Module.ALLOC_STACK=$b;Module.ALLOC_STATIC=D;functionG(b,c,d){vare,g;if(typeofb==="number"){e=l;g=b}else{e=n;g=b.length}varh=typeofc==="string"?c:pa,d=[ac,cb,db][d===aa?D:d](Math.max(g,h?1:c.length));if(e){bc(d,0,g);returnd}e=0;for(varj;e<g;){vari=b[e];typeofi==="function"&&(i=ub.xa(i));j=h||c[e];if(j===0){e++}else{j=="i64"&&(j="i32");Wb(d+e,i,j);e=e+Wa(j)}}returnd}Module.allocate=G;functionVb(b,c){for(vard=typeofc=="undefined",e="",g=0,h,j=String.fromCharCode(0);;){h=String.fromCharCode(z[b+g]);if(d&&h==j){break}e=e+h;g=g+1;if(!d&&g==c){break}}returne}Module.Pointer_stringify=Vb;Module.Array_stringify=(function(b){for(varc="",d=0;d<b.length;d++){c=c+String.fromCharCode(b[d])}returnc});vardc,ec=4096,v,z,gb,A,y,C,lb,mb,q,fc,eb,hc=Module.TOTAL_STACK||5242880,fb=Module.TOTAL_MEMORY||10485760;Ya(!!Int32Array&&!!Float64Array&&!!(newInt32Array(1)).subarray&&!!(newInt32Array(1)).set,"Cannot fallback to non-typed array case: Code is too specialized");varic=newArrayBu