varfa={"f64-rem":function(a,b){returna%b},"debugger":function(){debugger}};"object"!==typeofWebAssembly&&y("no native wasm support detected");varz,ha=!1,ia="undefined"!==typeofTextDecoder?newTextDecoder("utf8"):void0;
functionla(a){0<a%65536&&(a+=65536-a%65536);returna}varbuffer,B,A,ma,na,C,D,oa,pa;functionqa(){d.HEAP8=B=newInt8Array(buffer);d.HEAP16=ma=newInt16Array(buffer);d.HEAP32=C=newInt32Array(buffer);d.HEAPU8=A=newUint8Array(buffer);d.HEAPU16=na=newUint16Array(buffer);d.HEAPU32=D=newUint32Array(buffer);d.HEAPF32=oa=newFloat32Array(buffer);d.HEAPF64=pa=newFloat64Array(buffer)}varra=d.TOTAL_MEMORY||16777216;5242880>ra&&y("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+ra+"! (TOTAL_STACK=5242880)");
varE=0,za=null,G=null;d.preloadedImages={};d.preloadedAudios={};functionAa(){vara=H;returnString.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}varH="psimpl.wasm";if(!Aa()){varBa=H;H=d.locateFile?d.locateFile(Ba,v):v+Ba}functionCa(){try{if(d.wasmBinary)returnnewUint8Array(d.wasmBinary);if(d.readBinary)returnd.readBinary(H);throw"both async and sync fetching of the wasm failed";}catch(a){w(a)}}
functionEa(){returnd.wasmBinary||!r&&!u||"function"!==typeoffetch?newPromise(function(a){a(Ca())}):fetch(H,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+H+"'";returna.arrayBuffer()}).catch(function(){returnCa()})}
functionFa(a){functionb(a){d.asm=a.exports;E--;d.monitorRunDependencies&&d.monitorRunDependencies(E);0==E&&(null!==za&&(clearInterval(za),za=null),G&&(a=G,G=null,a()))}functionc(a){b(a.instance)}functione(a){Ea().then(function(a){returnWebAssembly.instantiate(a,f)}).then(a,function(a){y("failed to asynchronously prepare wasm: "+a);w(a)})}varf={env:a,global:{NaN:NaN,Infinity:Infinity},"global.Math":Math,asm2wasm:fa};E++;d.monitorRunDependencies&&d.monitorRunDependencies(E);if(d.instantiateWasm)try{returnd.instantiateWasm(f,
b)}catch(g){returny("Module.instantiateWasm callback failed with error: "+g),!1}d.wasmBinary||"function"!==typeofWebAssembly.instantiateStreaming||Aa()||"function"!==typeoffetch?e(c):WebAssembly.instantiateStreaming(fetch(H,{credentials:"same-origin"}),f).then(c,function(a){y("wasm streaming compile failed: "+a);y("falling back to ArrayBuffer instantiation");e(c)});return{}}
d.asm=function(a,b){b.memory=z;b.table=newWebAssembly.Table({initial:96,maximum:96,element:"anyfunc"});b.__memory_base=1024;b.__table_base=0;returnFa(b)};ua.push({Ea:function(){Ga()}});functionHa(){return!!Ha.ya}varIa=[null,[],[]],I=0;functionJ(){I+=4;returnC[I-4>>2]}varJa={};functionKa(a){switch(a){case1:return0;case2:return1;case4:return2;case8:return3;default:thrownewTypeError("Unknown type size: "+a);}}varLa=void0;functionK(a){for(varb="";A[a];)b+=La[A[a++]];returnb}
functionP(a,b,c){functione(b){b=c(b);b.length!==a.length&&Ra("Mismatched type converter count");for(vare=0;e<a.length;++e)Q(a[e],b[e])}a.forEach(function(a){Ma[a]=b});varf=Array(b.length),g=[],h=0;b.forEach(function(a,b){M.hasOwnProperty(a)?f[b]=M[a]:(g.push(a),L.hasOwnProperty(a)||(L[a]=[]),L[a].push(function(){f[b]=M[a];++h;h===g.length&&e(f)}))});0===g.length&&e(f)}
functionQ(a,b,c){c=c||{};if(!("argPackAdvance"inb))thrownewTypeError("registerType registeredInstance requires argPackAdvance");vare=b.name;a||O('type "'+e+'" must have a positive integer typeid pointer');if(M.hasOwnProperty(a)){if(c.Ia)return;O("Cannot register type '"+e+"' twice")}M[a]=b;deleteMa[a];L.hasOwnProperty(a)&&(b=L[a],deleteL[a],b.forEach(function(a){a()}))}functionSa(a){return{count:a.count,na:a.na,pa:a.pa,ea:a.ea,fa:a.fa,ha:a.ha,ia:a.ia}}
functionTa(a){O(a.ba.fa.da.name+" instance already deleted")}varR=void0,S=[];functionUa(){for(;S.length;){vara=S.pop();a.ba.na=!1;a["delete"]()}}functionT(){}varVa={};functionWa(a,b,c){if(void0===a[b].ga){vare=a[b];a[b]=function(){a[b].ga.hasOwnProperty(arguments.length)||O("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].ga+")!");returna[b].ga[arguments.length].apply(this,arguments)};a[b].ga=[];a[b].ga[e.ra]=e}}
functionXa(a,b,c){d.hasOwnProperty(a)?((void0===c||void0!==d[a].ga&&void0!==d[a].ga[c])&&O("Cannot register public name '"+a+"' twice"),Wa(d,a,a),d.hasOwnProperty(c)&&O("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].ga[c]=b):(d[a]=b,void0!==c&&(d[a].Pa=c))}functionYa(a,b,c,e,f,g,h,l){this.name=a;this.constructor=b;this.oa=c;this.ma=e;this.ja=f;this.Fa=g;this.qa=h;this.Da=l;this.Ka=[]}
functionZa(a,b,c){for(;b!==c;)b.qa||O("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.qa(a),b=b.ja;returna}function$a(a,b){if(null===b)returnthis.va&&O("null is not a valid "+this.name),0;b.ba||O('Cannot pass "'+U(b)+'" as a '+this.name);b.ba.ea||O("Cannot pass deleted object as a pointer of type "+this.name);returnZa(b.ba.ea,b.ba.fa.da,this.da)}
functionab(a,b){if(null===b){this.va&&O("null is not a valid "+this.name);if(this.ta){varc=this.La();null!==a&&a.push(this.ma,c);returnc}return0}b.ba||O('Cannot pass "'+U(b)+'" as a '+this.name);b.ba.ea||O("Cannot pass deleted object as a pointer of type "+this.name);!this.sa&&b.ba.fa.sa&&O("Cannot convert argument of type "+(b.ba.ia?b.ba.ia.name:b.ba.fa.name)+" to parameter type "+this.name);c=Za(b.ba.ea,b.ba.fa.da,this.da);if(this.ta)switch(void0===b.ba.ha&&O("Passing raw pointer to smart pointer is illegal"),
this.Na){case0:b.ba.ia===this?c=b.ba.ha:O("Cannot convert argument of type "+(b.ba.ia?b.ba.ia.name:b.ba.fa.name)+" to parameter type "+this.name);break;case1:c=b.ba.ha;break;case2:if(b.ba.ia===this)c=b.ba.ha;else{vare=b.clone();c=this.Ma(c,bb(function(){e["delete"]()}));null!==a&&a.push(this.ma,c)}break;default:O("Unsupporting sharing policy")}returnc}
functioncb(a,b){if(null===b)returnthis.va&&O("null is not a valid "+this.name),0;b.ba||O('Cannot pass "'+U(b)+'" as a '+this.name);b.ba.ea||O("Cannot pass deleted object as a pointer of type "+this.name);b.ba.fa.sa&&O("Cannot convert argument of type "+b.ba.fa.name+" to parameter type "+this.name);returnZa(b.ba.ea,b.ba.fa.da,this.da)}functiondb(a){returnthis.fromWireType(D[a>>2])}functioneb(a,b,c){if(b===c)returna;if(void0===c.ja)returnnull;a=eb(a,b,c.ja);returnnull===a?null:c.Da(a)}
varV={};functionfb(a,b){for(void0===b&&O("ptr should not be undefined");a.ja;)b=a.qa(b),a=a.ja;returnV[b]}functiongb(a,b){b.fa&&b.ea||Ra("makeClassHandle requires ptr and ptrType");!!b.ia!==!!b.ha&&Ra("Both smartPtrType and smartPtr must be specified");b.count={value:1};returnObject.create(a,{ba:{value:b}})}
functionW(a,b,c,e){this.name=a;this.da=b;this.va=c;this.sa=e;this.ta=!1;this.ma=this.Ma=this.La=this.Ba=this.Na=this.Ja=void0;void0!==b.ja?this.toWireType=ab:(this.toWireType=e?$a:cb,this.ka=null)}functionhb(a,b,c){d.hasOwnProperty(a)||Ra("Replacing nonexistant public symbol");void0!==d[a].ga&&void0!==c?d[a].ga[c]=b:(d[a]=b,d[a].ra=c)}
functionX(a,b){a=K(a);if(void0!==d["FUNCTION_TABLE_"+a])varc=d["FUNCTION_TABLE_"+a][b];elseif("undefined"!==typeofFUNCTION_TABLE)c=FUNCTION_TABLE[b];else{c=d["dynCall_"+a];void0===c&&(c=d["dynCall_"+a.replace(/f/g,"d")],void0===c&&O("No dynCall invoker for signature: "+a));for(vare=[],f=1;f<a.length;++f)e.push("a"+f);f="return function "+("dynCall_"+a+"_"+b)+"("+e.join(", ")+") {\n";f+=" return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n";c=(newFunction("dynCall","rawFunction",
f+"};\n"))(c,b)}"function"!==typeofc&&O("unknown function pointer with signature "+a+": "+b);returnc}varib=void0;functionjb(a){a=kb(a);varb=K(a);Y(a);returnb}functionlb(a,b){functionc(a){f[a]||M[a]||(Ma[a]?Ma[a].forEach(c):(e.push(a),f[a]=!0))}vare=[],f={};b.forEach(c);thrownewib(a+": "+e.map(jb).join([", "]));}functionmb(a,b){for(varc=[],e=0;e<a;e++)c.push(C[(b>>2)+e]);returnc}functionnb(a){for(;a.length;){varb=a.pop();a.pop()(b)}}
functionob(a){varb=Function;if(!(binstanceofFunction))thrownewTypeError("new_ called with constructor type "+typeofb+" which is not a function");varc=Oa(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=newc;a=b.apply(c,a);returnainstanceofObject?a:c}
functionpb(a,b,c,e,f){varg=b.length;2>g&&O("argTypes array size mismatch! Must at least get return value and 'this' types!");varh=null!==b[1]&&null!==c,l=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void0===b[c].ka){l=!0;break}varp="void"!==b[0].name,k="",n="";for(c=0;c<g-2;++c)k+=(0!==c?", ":"")+"arg"+c,n+=(0!==c?", ":"")+"arg"+c+"Wired";a="return function "+Na(a)+"("+k+") {\nif (arguments.length !== "+(g-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
T.prototype["delete"]=function(){this.ba.ea||Ta(this);this.ba.na&&!this.ba.pa&&O("Object already scheduled for deletion");--this.ba.count.value;if(0===this.ba.count.value){vara=this.ba;a.ha?a.ia.ma(a.ha):a.fa.da.ma(a.ea)}this.ba.pa||(this.ba.ha=void0,this.ba.ea=void0)};T.prototype.isDeleted=function(){return!this.ba.ea};T.prototype.deleteLater=function(){this.ba.ea||Ta(this);this.ba.na&&!this.ba.pa&&O("Object already scheduled for deletion");S.push(this);1===S.length&&R&&R(Ua);this.ba.na=!0;returnthis};
y)(ja(k,0)),k.length=0):k.push(p)}a+=h}returna}catch(n){return"undefined"!==typeofFS&&ninstanceofFS.xa||w(n),-n.Aa}},t:function(a,b){I=b;try{returnJa.Ha(),0}catch(c){return"undefined"!==typeofFS&&cinstanceofFS.xa||w(c),-c.Aa}},s:function(a,b,c,e,f){varg=Ka(c);b=K(b);Q(a,{name:b,fromWireType:function(a){return!!a},toWireType:function(a,b){returnb?e:f},argPackAdvance:8,readValueFromPointer:function(a){if(1===c)vare=B;elseif(2===c)e=ma;elseif(4===c)e=C;elsethrownewTypeError("Unknown boolean type size: "+
b);returnthis.fromWireType(e[a>>g])},ka:null})},r:function(a,b,c,e,f,g,h,l,p,k,n,t,Da){n=K(n);g=X(f,g);l&&(l=X(h,l));k&&(k=X(p,k));Da=X(t,Da);varF=Na(n);Xa(F,function(){lb("Cannot construct "+n+" due to unbound types",[e])});P([a,b,c],e?[e]:[],function(b){b=b[0];if(e){varc=b.da;varf=c.oa}elsef=T.prototype;b=Oa(F,function(){if(Object.getPrototypeOf(this)!==h)thrownewN("Use 'new' to construct "+n);if(void0===p.la)thrownewN(n+" has no accessible constructor");vara=p.la[arguments.length];if(void0===
a)thrownewN("Tried to invoke ctor of "+n+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(p.la).toString()+") parameters instead!");returna.apply(this,arguments)});varh=Object.create(f,{constructor:{value:b}});b.prototype=h;varp=newYa(n,b,h,Da,c,g,l,k);c=newW(n,p,!0,!1);f=newW(n+"*",p,!1,!1);vart=newW(n+" const*",p,!1,!0);Va[a]={pointerType:f,Ca:t};hb(F,b);return[c,f,t]})},q:function(a,b,c,e,f,g){varh=mb(b,c);f=X(e,f);P([],[a],function(a){a=a[0];varc=
"constructor "+a.name;void0===a.da.la&&(a.da.la=[]);if(void0!==a.da.la[b-1])thrownewN("Cannot register multiple constructors with identical number of parameters ("+(b-1)+") for class '"+a.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");a.da.la[b-1]=function(){lb("Cannot construct "+a.name+" due to unbound types",h)};P([],h,function(e){a.da.la[b-1]=function(){arguments.length!==b-1&&O(c+" called with "+arguments.length+" arguments, expected "+
(b-1));vara=[],k=Array(b);k[0]=g;for(varh=1;h<b;++h)k[h]=e[h].toWireType(a,arguments[h-1]);k=f.apply(null,k);nb(a);returne[0].fromWireType(k)};return[]});return[]})},k:function(a,b,c,e,f,g,h,l){varp=mb(c,e);b=K(b);g=X(f,g);P([],[a],function(a){functione(){lb("Cannot call "+f+" due to unbound types",p)}a=a[0];varf=a.name+"."+b;l&&a.da.Ka.push(b);vark=a.da.oa,F=k[b];void0===F||void0===F.ga&&F.className!==a.name&&F.ra===c-2?(e.ra=c-2,e.className=a.name,k[b]=e):(Wa(k,b,f),k[b].ga[c-2]=e);P([],
p,function(e){e=pb(f,e,a,g,h);void0===k[b].ga?(e.ra=c-2,k[b]=e):k[b].ga[c-2]=e;return[]});return[]})},C:function(a,b){b=K(b);Q(a,{name:b,fromWireType:function(a){varb=Z[a].value;rb(a);returnb},toWireType:function(a,b){returnbb(b)},argPackAdvance:8,readValueFromPointer:db,ka:null})},p:function(a,b,c){c=Ka(c);b=K(b);Q(a,{name:b,fromWireType:function(a){returna},toWireType:function(a,b){if("number"!==typeofb&&"boolean"!==typeofb)thrownewTypeError('Cannot convert "'+U(b)+'" to '+this.name);returnb},
argPackAdvance:8,readValueFromPointer:sb(b,c),ka:null})},g:function(a,b,c,e,f,g){varh=mb(b,c);a=K(a);f=X(e,f);Xa(a,function(){lb("Cannot call "+a+" due to unbound types",h)},b-1);P([],h,function(c){c=[c[0],null].concat(c.slice(1));hb(a,pb(a,c,null,f,g),b-1);return[]})},e:function(a,b,c,e,f){functiong(a){returna}b=K(b);-1===f&&(f=4294967295);varh=Ka(c);if(0===e){varl=32-8*c;g=function(a){returna<<l>>>l}}varp=-1!=b.indexOf("unsigned");Q(a,{name:b,fromWireType:g,toWireType:function(a,c){if("number"!==
typeofc&&"boolean"!==typeofc)thrownewTypeError('Cannot convert "'+U(c)+'" to '+this.name);if(c<e||c>f)thrownewTypeError('Passing a number "'+U(c)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");returnp?c>>>0:c|0},argPackAdvance:8,readValueFromPointer:tb(b,h,0!==e),ka:null})},c:function(a,b,c){functione(a){a>>=2;varb=D;returnnewf(b.buffer,b[a+1],b[a])}varf=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,
returnk},toWireType:function(a,b){binstanceofArrayBuffer&&(b=newUint8Array(b));vare="string"===typeofb;e||binstanceofUint8Array||binstanceofUint8ClampedArray||binstanceofInt8Array||O("Cannot pass non-string to std::string");varf=(c&&e?function(){for(vara=0,c=0;c<b.length;++c){vare=b.charCodeAt(c);55296<=e&&57343>=e&&(e=65536+((e&1023)<<10)|b.charCodeAt(++c)&1023);127>=e?++a:a=2047>=e?a+2:65535>=e?a+3:a+4}returna}:function(){returnb.length})(),l=yb(4+f+1);D[l>>2]=f;if(c&&e)ka(b,l+
4,f+1);elseif(e)for(e=0;e<f;++e){varp=b.charCodeAt(e);255<p&&(Y(l),O("String has UTF-16 code units that do not fit in 8 bits"));A[l+4+e]=p}elsefor(e=0;e<f;++e)A[l+4+e]=b[e];null!==a&&a.push(Y,l);returnl},argPackAdvance:8,readValueFromPointer:db,ka:function(a){Y(a)}})},B:function(a,b,c){c=K(c);if(2===b){vare=function(){returnna};varf=1}else4===b&&(e=function(){returnD},f=2);Q(a,{name:c,fromWireType:function(a){for(varb=e(),c=D[a>>2],g=Array(c),k=a+4>>f,n=0;n<c;++n)g[n]=String.fromCharCode(b[k+
n]);Y(a);returng.join("")},toWireType:function(a,c){varg=e(),h=c.length,k=yb(4+h*b);D[k>>2]=h;for(varn=k+4>>f,t=0;t<h;++t)g[n+t]=c.charCodeAt(t);null!==a&&a.push(Y,k);returnk},argPackAdvance:8,readValueFromPointer:db,ka:function(a){Y(a)}})},A:function(a,b){b=K(b);Q(a,{Oa:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},j:rb,i:function(a){4<a&&(Z[a].wa+=1)},d:function(a,b){varc=M[a];void0===c&&O("_emval_take_value has unknown type "+jb(a));a=c.readValueFromPointer(b);
d.dynCall_viiii=function(){returnd.asm.Z.apply(null,arguments)};d.dynCall_viiiii=function(){returnd.asm._.apply(null,arguments)};d.dynCall_viiiiii=function(){returnd.asm.$.apply(null,arguments)};d.asm=zb;d.then=function(a){if(d.calledRun)a(d);else{varb=d.onRuntimeInitialized;d.onRuntimeInitialized=function(){b&&b();a(d)}}returnd};functionx(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}x.prototype=Error();x.prototype.constructor=x;
a()},1)):a())}}d.run=Bb;functionw(a){if(d.onAbort)d.onAbort(a);void0!==a?(ea(a),y(a),a=JSON.stringify(a)):a="";ha=!0;throw"abort("+a+"). Build with -s ASSERTIONS=1 for more info.";}d.abort=w;if(d.preInit)for("function"==typeofd.preInit&&(d.preInit=[d.preInit]);0<d.preInit.length;)d.preInit.pop()();d.noExitRuntime=!0;Bb();