var Module = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; return ( function(Module) { Module = Module || {}; var d;d||(d=typeof Module !== 'undefined' ? Module : {});var m={},q;for(q in d)d.hasOwnProperty(q)&&(m[q]=d[q]);d.arguments=[];d.thisProgram="./this.program";d.quit=function(a,b){throw b;};d.preRun=[];d.postRun=[];var r=!1,u=!1,aa=!1,ba=!1;r="object"===typeof window;u="function"===typeof importScripts;aa="object"===typeof process&&"function"===typeof require&&!r&&!u;ba=!r&&!aa&&!u;var v=""; if(aa){v=__dirname+"/";var ca,da;d.read=function(a,b){ca||(ca=require("fs"));da||(da=require("path"));a=da.normalize(a);a=ca.readFileSync(a);return b?a:a.toString()};d.readBinary=function(a){a=d.read(a,!0);a.buffer||(a=new Uint8Array(a));a.buffer||w("Assertion failed: undefined");return a};1=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e} function ka(a,b,c){var e=A;if(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}if(127>=g){if(b>=c)break;e[b++]=g}else{if(2047>=g){if(b+1>=c)break;e[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;e[b++]=224|g>>12}else{if(b+3>=c)break;e[b++]=240|g>>18;e[b++]=128|g>>12&63}e[b++]=128|g>>6&63}e[b++]=128|g&63}}e[b]=0}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le"); function la(a){0ra&&y("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+ra+"! (TOTAL_STACK=5242880)"); d.buffer?buffer=d.buffer:"object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(z=new WebAssembly.Memory({initial:ra/65536}),buffer=z.buffer):buffer=new ArrayBuffer(ra);qa();C[1812]=5250160;function sa(a){for(;0>2]}var Ja={};function Ka(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var La=void 0;function K(a){for(var b="";A[a];)b+=La[A[a++]];return b} var L={},M={},Ma={};function Na(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Oa(a,b){a=Na(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} function Pa(a){var b=Error,c=Oa(a,function(b){this.name=a;this.message=b;b=Error(b).stack;void 0!==b&&(this.stack=this.toString()+"\n"+b.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var N=void 0;function O(a){throw new N(a);}var Qa=void 0;function Ra(a){throw new Qa(a);} function P(a,b,c){function e(b){b=c(b);b.length!==a.length&&Ra("Mismatched type converter count");for(var e=0;e>2])}function eb(a,b,c){if(b===c)return a;if(void 0===c.ja)return null;a=eb(a,b,c.ja);return null===a?null:c.Da(a)} var V={};function fb(a,b){for(void 0===b&&O("ptr should not be undefined");a.ja;)b=a.qa(b),a=a.ja;return V[b]}function gb(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};return Object.create(a,{ba:{value:b}})} function W(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=void 0;void 0!==b.ja?this.toWireType=ab:(this.toWireType=e?$a:cb,this.ka=null)}function hb(a,b,c){d.hasOwnProperty(a)||Ra("Replacing nonexistant public symbol");void 0!==d[a].ga&&void 0!==c?d[a].ga[c]=b:(d[a]=b,d[a].ra=c)} function X(a,b){a=K(a);if(void 0!==d["FUNCTION_TABLE_"+a])var c=d["FUNCTION_TABLE_"+a][b];else if("undefined"!==typeof FUNCTION_TABLE)c=FUNCTION_TABLE[b];else{c=d["dynCall_"+a];void 0===c&&(c=d["dynCall_"+a.replace(/f/g,"d")],void 0===c&&O("No dynCall invoker for signature: "+a));for(var e=[],f=1;f>2)+e]);return c}function nb(a){for(;a.length;){var b=a.pop();a.pop()(b)}} function ob(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Oa(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} function pb(a,b,c,e,f){var g=b.length;2>g&&O("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,l=!1;for(c=1;c>2])};case 3:return function(a){return this.fromWireType(pa[a>>3])};default:throw new TypeError("Unknown float type: "+a);}} function tb(a,b,c){switch(b){case 0:return c?function(a){return B[a]}:function(a){return A[a]};case 1:return c?function(a){return ma[a>>1]}:function(a){return na[a>>1]};case 2:return c?function(a){return C[a>>2]}:function(a){return D[a>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function ub(){return B.length}function vb(a){a=la(a);var b=buffer.byteLength;try{return-1!==z.grow((a-b)/65536)?(buffer=z.buffer,!0):!1}catch(c){return!1}}for(var wb=Array(256),xb=0;256>xb;++xb)wb[xb]=String.fromCharCode(xb); La=wb;N=d.BindingError=Pa("BindingError");Qa=d.InternalError=Pa("InternalError");T.prototype.isAliasOf=function(a){if(!(this instanceof T&&a instanceof T))return!1;var b=this.ba.fa.da,c=this.ba.ea,e=a.ba.fa.da;for(a=a.ba.ea;b.ja;)c=b.qa(c),b=b.ja;for(;e.ja;)a=e.qa(a),e=e.ja;return b===e&&c===a};T.prototype.clone=function(){this.ba.ea||Ta(this);if(this.ba.pa)return this.ba.count.value+=1,this;var a=Object.create(Object.getPrototypeOf(this),{ba:{value:Sa(this.ba)}});a.ba.count.value+=1;a.ba.na=!1;return a}; 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){var a=this.ba;a.ha?a.ia.ma(a.ha):a.fa.da.ma(a.ea)}this.ba.pa||(this.ba.ha=void 0,this.ba.ea=void 0)};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;return this}; W.prototype.Ga=function(a){this.Ba&&(a=this.Ba(a));return a};W.prototype.za=function(a){this.ma&&this.ma(a)};W.prototype.argPackAdvance=8;W.prototype.readValueFromPointer=db;W.prototype.deleteObject=function(a){if(null!==a)a["delete"]()}; W.prototype.fromWireType=function(a){function b(){return this.ta?gb(this.da.oa,{fa:this.Ja,ea:c,ia:this,ha:a}):gb(this.da.oa,{fa:this,ea:a})}var c=this.Ga(a);if(!c)return this.za(a),null;var e=fb(this.da,c);if(void 0!==e){if(0===e.ba.count.value)return e.ba.ea=c,e.ba.ha=a,e.clone();e=e.clone();this.za(a);return e}e=this.da.Fa(c);e=Va[e];if(!e)return b.call(this);e=this.sa?e.Ca:e.pointerType;var f=eb(c,this.da,e.da);return null===f?b.call(this):this.ta?gb(e.da.oa,{fa:e,ea:f,ia:this,ha:a}):gb(e.da.oa, {fa:e,ea:f})};d.getInheritedInstanceCount=function(){return Object.keys(V).length};d.getLiveInheritedInstances=function(){var a=[],b;for(b in V)V.hasOwnProperty(b)&&a.push(V[b]);return a};d.flushPendingDeletes=Ua;d.setDelayFunction=function(a){R=a;S.length&&R&&R(Ua)};ib=d.UnboundTypeError=Pa("UnboundTypeError");d.count_emval_handles=function(){for(var a=0,b=5;b>2]=a);return a},u:function(a,b){I=b;try{return Ja.Ha(),J(),J(),J(),J(),0}catch(c){return"undefined"!==typeof FS&&c instanceof FS.xa||w(c),-c.Aa}},m:function(a,b){I=b;try{var c=J(),e=J(),f=J();for(b=a=0;b>2],h=C[e+(8*b+4)>>2],l=0;l>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);var F=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){var c=b.da;var f=c.oa}else f=T.prototype;b=Oa(F,function(){if(Object.getPrototypeOf(this)!==h)throw new N("Use 'new' to construct "+n);if(void 0===p.la)throw new N(n+" has no accessible constructor");var a=p.la[arguments.length];if(void 0=== a)throw new N("Tried to invoke ctor of "+n+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(p.la).toString()+") parameters instead!");return a.apply(this,arguments)});var h=Object.create(f,{constructor:{value:b}});b.prototype=h;var p=new Ya(n,b,h,Da,c,g,l,k);c=new W(n,p,!0,!1);f=new W(n+"*",p,!1,!1);var t=new W(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){var h=mb(b,c);f=X(e,f);P([],[a],function(a){a=a[0];var c= "constructor "+a.name;void 0===a.da.la&&(a.da.la=[]);if(void 0!==a.da.la[b-1])throw new N("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));var a=[],k=Array(b);k[0]=g;for(var h=1;h>>l}}var p=-1!=b.indexOf("unsigned");Q(a,{name:b,fromWireType:g,toWireType:function(a,c){if("number"!== typeof c&&"boolean"!==typeof c)throw new TypeError('Cannot convert "'+U(c)+'" to '+this.name);if(cf)throw new TypeError('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+"]!");return p?c>>>0:c|0},argPackAdvance:8,readValueFromPointer:tb(b,h,0!==e),ka:null})},c:function(a,b,c){function e(a){a>>=2;var b=D;return new f(b.buffer,b[a+1],b[a])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array, Float32Array,Float64Array][b];c=K(c);Q(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{Ia:!0})},o:function(a,b){b=K(b);var c="std::string"===b;Q(a,{name:b,fromWireType:function(a){var b=D[a>>2];if(c){var e=A[a+4+b],h=0;0!=e&&(h=e,A[a+4+b]=0);var l=a+4;for(e=0;e<=b;++e){var p=a+4+e;if(0==A[p]){l=l?ja(A,l,void 0):"";if(void 0===k)var k=l;else k+=String.fromCharCode(0),k+=l;l=p+1}}0!=h&&(A[a+4+b]=h)}else{k=Array(b);for(e=0;e=e&&(e=65536+((e&1023)<<10)|b.charCodeAt(++c)&1023);127>=e?++a:a=2047>=e?a+2:65535>=e?a+3:a+4}return a}:function(){return b.length})(),l=yb(4+f+1);D[l>>2]=f;if(c&&e)ka(b,l+ 4,f+1);else if(e)for(e=0;e>2],g=Array(c),k=a+4>>f,n=0;n>2]=h;for(var n=k+4>>f,t=0;t=b?b=la(2*b):b=Math.min(la((3*b+2147483648)/4),2147418112);if(!vb(b))return!1;qa();return!0},w:function(){w("OOM")},a:7248},buffer);d.asm=zb;d.___errno_location=function(){return d.asm.D.apply(null,arguments)}; var kb=d.___getTypeName=function(){return d.asm.E.apply(null,arguments)},Y=d._free=function(){return d.asm.F.apply(null,arguments)},yb=d._malloc=function(){return d.asm.G.apply(null,arguments)},Ga=d.globalCtors=function(){return d.asm.aa.apply(null,arguments)};d.dynCall_i=function(){return d.asm.H.apply(null,arguments)};d.dynCall_ii=function(){return d.asm.I.apply(null,arguments)};d.dynCall_iidiiii=function(){return d.asm.J.apply(null,arguments)}; d.dynCall_iii=function(){return d.asm.K.apply(null,arguments)};d.dynCall_iiii=function(){return d.asm.L.apply(null,arguments)};d.dynCall_iiiid=function(){return d.asm.M.apply(null,arguments)};d.dynCall_iiiidd=function(){return d.asm.N.apply(null,arguments)};d.dynCall_iiiidi=function(){return d.asm.O.apply(null,arguments)};d.dynCall_iiiii=function(){return d.asm.P.apply(null,arguments)};d.dynCall_jiji=function(){return d.asm.Q.apply(null,arguments)}; d.dynCall_v=function(){return d.asm.R.apply(null,arguments)};d.dynCall_vi=function(){return d.asm.S.apply(null,arguments)};d.dynCall_vii=function(){return d.asm.T.apply(null,arguments)};d.dynCall_viid=function(){return d.asm.U.apply(null,arguments)};d.dynCall_viii=function(){return d.asm.V.apply(null,arguments)};d.dynCall_viiid=function(){return d.asm.W.apply(null,arguments)};d.dynCall_viiidd=function(){return d.asm.X.apply(null,arguments)};d.dynCall_viiidi=function(){return d.asm.Y.apply(null,arguments)}; d.dynCall_viiii=function(){return d.asm.Z.apply(null,arguments)};d.dynCall_viiiii=function(){return d.asm._.apply(null,arguments)};d.dynCall_viiiiii=function(){return d.asm.$.apply(null,arguments)};d.asm=zb;d.then=function(a){if(d.calledRun)a(d);else{var b=d.onRuntimeInitialized;d.onRuntimeInitialized=function(){b&&b();a(d)}}return d};function x(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}x.prototype=Error();x.prototype.constructor=x; G=function Ab(){d.calledRun||Bb();d.calledRun||(G=Ab)}; function Bb(){function a(){if(!d.calledRun&&(d.calledRun=!0,!ha)){xa||(xa=!0,sa(ua));sa(va);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var a=d.postRun.shift();wa.unshift(a)}sa(wa)}}if(!(0