diff --git a/examples/playcanvas/index.html b/examples/playcanvas/index.html index e24cbe027..64959da16 100644 --- a/examples/playcanvas/index.html +++ b/examples/playcanvas/index.html @@ -14,9 +14,9 @@ - - - + + + diff --git a/examples/playcanvas/index.js b/examples/playcanvas/index.js index dc57ffadd..2389180ed 100644 --- a/examples/playcanvas/index.js +++ b/examples/playcanvas/index.js @@ -23,8 +23,8 @@ if (!modelInfo) { throw new Error('Model not specified or not found in list.'); } -//const pcRoot = '../../libs/playcanvas/v1.64.0'; // TODO: Relative path specification does not work and needs to be investigated -const pcRoot = '/gltf-test/libs/playcanvas/v1.64.0'; +//const pcRoot = '../../libs/playcanvas/v1.65.0'; // TODO: Relative path specification does not work and needs to be investigated +const pcRoot = '/gltf-test/libs/playcanvas/v1.65.0'; const DEFAULT_NAME = "[default]"; diff --git a/libs/playcanvas/v1.65.0/basis/basis.js b/libs/playcanvas/v1.65.0/basis/basis.js new file mode 100644 index 000000000..e9d08aea7 --- /dev/null +++ b/libs/playcanvas/v1.65.0/basis/basis.js @@ -0,0 +1,36 @@ + +var BASIS = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(BASIS) { + BASIS = BASIS || {}; + +var Module=typeof BASIS!=="undefined"?BASIS:{};var Promise=function(){function noop(){}function bind(fn,thisArg){return function(){fn.apply(thisArg,arguments)}}function Promise(fn){if(!(this instanceof Promise))throw new TypeError("Promises must be constructed via new");if(typeof fn!=="function")throw new TypeError("not a function");this._state=0;this._handled=false;this._value=undefined;this._deferreds=[];doResolve(fn,this)}function handle(self,deferred){while(self._state===3){self=self._value}if(self._state===0){self._deferreds.push(deferred);return}self._handled=true;Promise._immediateFn(function(){var cb=self._state===1?deferred.onFulfilled:deferred.onRejected;if(cb===null){(self._state===1?resolve:reject)(deferred.promise,self._value);return}var ret;try{ret=cb(self._value)}catch(e){reject(deferred.promise,e);return}resolve(deferred.promise,ret)})}function resolve(self,newValue){try{if(newValue===self)throw new TypeError("A promise cannot be resolved with itself.");if(newValue&&(typeof newValue==="object"||typeof newValue==="function")){var then=newValue.then;if(newValue instanceof Promise){self._state=3;self._value=newValue;finale(self);return}else if(typeof then==="function"){doResolve(bind(then,newValue),self);return}}self._state=1;self._value=newValue;finale(self)}catch(e){reject(self,e)}}function reject(self,newValue){self._state=2;self._value=newValue;finale(self)}function finale(self){if(self._state===2&&self._deferreds.length===0){Promise._immediateFn(function(){if(!self._handled){Promise._unhandledRejectionFn(self._value)}})}for(var i=0,len=self._deferreds.length;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +// EMSCRIPTEN_START_ASM +function instantiate(Ra){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>>0<9){o=m;break b}o=c;if((g|0)!=15){break b}o=m+7>>>3|0;X=-6}ra=J(c,d);da=p?p:t;t=0;c:{if(!j){break c}if(l>>>0>15){break a}k=(J(k,192)+da|0)+J(l,12)|0;Ja=k+24|0;l=D[k+28>>2];if(ra>>>0<=l>>>0){break c}if(G[k+32>>2]>>0){Ya(Ja,ra,(l+1|0)==(ra|0),4);l=D[k+28>>2]}Va(D[Ja>>2]+(l<<2)|0,0,ra-l<<2);D[k+28>>2]=ra}if(!(f?e:1)){break a}k=D[a+176>>2];D[u+8>>2]=0;D[u>>2]=0;D[u+4>>2]=0;if(k){Ya(u,k,(k|0)==1,4);l=D[u+4>>2];Va(D[u>>2]+(l<<2)|0,0,k-l<<2);D[u+4>>2]=k}D[u+12>>2]=k>>>1;d:{if((g&-2)==6){za=bb(J(ra,12));if(!za){break d}Ka=(ra<<3)+za|0}k=D[da+4>>2];e:{if(k>>>0>=c>>>0){break e}if(G[da+8>>2]>>0){Ya(da,c,(k+1|0)==(c|0),4)}D[da+4>>2]=c;k=D[da+16>>2];if((k|0)==(c|0)){break e}if(!(c>>>0>>0|G[da+20>>2]>=c>>>0)){Ya(da+12|0,c,(k+1|0)==(c|0),4)}D[da+16>>2]=c}k=D[a>>2];_=k?k:a;if(!D[_+8>>2]){break d}k=D[_+20>>2];if(!k){break d}if(d){A=e+f|0;yb=i^1;sa=o<<2;La=o<<1;ub=j^1;vb=k+D[a+176>>2]|0;wb=u+32|5;Da=u+32|14;ba=u+32|12;V=X>>>0>8?s:s?s:n;ta=V;k=0;ma=3;while(1){f:{if(!c){break f}ha=(ta|0)<4?ta:4;T=J(o,$);Aa=J(c,$);ga=$<<2;va=J(ga,o);s=1;Ma=$&1;Ea=J(Ma,12)+da|0;xb=J(!Ma,12)+da|0;ya=o;X=0;g:{while(1){z=X<<2;h:{if(X&1){break h}i:{j:{k:{if(!Ma){if(Ga){Ga=Ga-1|0;break i}if(y>>>0>15){break j}l:{if(e>>>0>=A>>>0){t=0;break l}t=E[e|0]<>>0<8){break k}y=f;break j}pa=E[(z+D[da+12>>2]|0)+2|0];break h}m:{if(e>>>0>=A>>>0){t=0;break m}t=E[e|0]<>2]+((k&1023)<<2)>>2];n:{if((p|0)<=-1){f=D[a+56>>2];t=10;while(1){l=k>>>t|0;t=t+1|0;p=C[f+((l&1)+(p^-1)<<1)>>1];if((p|0)<0){continue}break}f=p;break n}t=p>>>16|0;f=p&65535}p=y-t|0;t=k>>>t|0;Ga=0;if((f|0)!=256){y=p;k=t;Z=f;break i}if(p>>>0<=4){o:{if(e>>>0>=A>>>0){l=0;break o}l=E[e|0]<>>5|0;k=f;p:{if(!(t&16)){break p}if(!(y>>>0>4)){q:{if(e>>>0>=A>>>0){t=0;break q}t=E[e|0]<>>5|0;k=f;if(!(t&16)){break p}if(!(y>>>0>4)){r:{if(e>>>0>=A>>>0){t=0;break r}t=E[e|0]<>>5|0;k=f;if(!(t&16)){break p}if(!(y>>>0>4)){s:{if(e>>>0>=A>>>0){t=0;break s}t=E[e|0]<>>5|0;k=f;if(!(t&16)){break p}if(!(y>>>0>4)){t:{if(e>>>0>=A>>>0){t=0;break t}t=E[e|0]<>>5|0;k=f;if(!(t&16)){break p}if(!(y>>>0>4)){u:{if(e>>>0>=A>>>0){t=0;break u}t=E[e|0]<>>5|0;k=f;if(!(t&16)){break p}if(!(y>>>0>4)){v:{if(e>>>0>=A>>>0){t=0;break v}t=E[e|0]<>>5|0;k=f;if(!(t&16)){break p}if(y>>>0<=4){w:{if(e>>>0>=A>>>0){t=0;break w}t=E[e|0]<>>5|0}Ga=l+2|0}B[(z+D[da+12>>2]|0)+2|0]=Z>>>4;pa=Z}m=pa&3;pa=pa>>>2|0;x:{y:{z:{A:{B:{C:{l=D[xb>>2];D:{E:{F:{G:{switch(m|0){case 0:if(X){break D}if(!za){break g}break x;case 1:f=X;if($){break E}if(za){break x}break g;case 2:if(j){f=D[D[Ja>>2]+(X+Aa<<2)>>2];ca=f&65535;l=f>>>16|0;break A}if($?X:0){break F}if(!za){break g}break x;default:break G}}if(y>>>0>15){break B}H:{if(e>>>0>=A>>>0){t=0;break H}t=E[e|0]<>>0<8){break C}y=f;break B}f=X-1|0}ca=F[l+(f<<2)>>1]}C[z+D[Ea>>2]>>1]=ca;break z}I:{if(e>>>0>=A>>>0){t=0;break I}t=E[e|0]<>2]+((k&1023)<<2)>>2];J:{if((p|0)<=-1){f=D[a+92>>2];t=10;while(1){l=k>>>t|0;t=t+1|0;p=C[f+((l&1)+(p^-1)<<1)>>1];if((p|0)<0){continue}break}break J}t=p>>>16|0;p=p&65535}f=p+ca|0;l=D[_+8>>2];ca=f-(f>>>0>>0?0:l)|0;y=y-t|0;k=k>>>t|0;l=0}C[z+D[Ea>>2]>>1]=ca;if((ub|(m|0)!=2)!=1){break y}}K:{if(Ba){Ba=Ba-1|0}else{L:{if(y>>>0>15){break L}M:{if(e>>>0>=A>>>0){t=0;break M}t=E[e|0]<>>0>=8){y=f;break L}N:{if(e>>>0>=A>>>0){t=0;break N}t=E[e|0]<>2]+((k&1023)<<2)>>2];O:{if((p|0)<=-1){f=D[a+128>>2];t=10;while(1){l=k>>>t|0;t=t+1|0;p=C[f+((l&1)+(p^-1)<<1)>>1];if((p|0)<0){continue}break}l=p;break O}t=p>>>16|0;l=p&65535}y=y-t|0;k=k>>>t|0;P:{Q:{if((l|0)==(vb|0)){if(y>>>0>15){break P}R:{if(e>>>0>=A>>>0){t=0;break R}t=E[e|0]<>>0<8){break Q}y=f;break P}Ba=0;t=D[_+20>>2];if((t|0)<=(l|0)){break K}if(!D[a+176>>2]){break y}m=D[u+12>>2];f=m+1|0;D[u+12>>2]=f;D[D[u>>2]+(m<<2)>>2]=l;if((f|0)!=D[u+4>>2]){break y}D[u+12>>2]=f>>>1;break y}S:{if(e>>>0>=A>>>0){t=0;break S}t=E[e|0]<>2]+((k&1023)<<2)>>2];T:{if((p|0)<=-1){f=D[a+164>>2];t=10;while(1){l=k>>>t|0;t=t+1|0;p=C[f+((l&1)+(p^-1)<<1)>>1];if((p|0)<0){continue}break}l=p;break T}t=p>>>16|0;l=p&65535}k=k>>>t|0;y=y-t|0;f=y;U:{if((l|0)!=63){break U}if(y>>>0<=7){V:{if(e>>>0>=A>>>0){t=0;break V}t=E[e|0]<>>8|0;if(!(k&128)){k=t;break U}W:{if(f>>>0>7){y=f;break W}X:{if(e>>>0>=A>>>0){p=0;break X}p=E[e|0]<>>8|0;l=t<<7&16256|l;m=y-8|0;f=m;if(!(t&128)){break U}Y:{if(m>>>0>7){y=m;break Y}Z:{if(e>>>0>=A>>>0){t=0;break Z}t=E[e|0]<>>8|0;l=n<<14&2080768|l;m=y-8|0;f=m;if(!(n&128)){break U}_:{if(m>>>0>7){y=m;break _}$:{if(e>>>0>=A>>>0){t=0;break $}t=E[e|0]<>>8|0;l=n<<21&266338304|l;m=y-8|0;f=m;if(!(n&128)){break U}aa:{if(m>>>0>7){y=m;f=k;break aa}ba:{if(e>>>0>=A>>>0){t=0;break ba}t=E[e|0]<>>8|0;l=f<<28|l;f=y-8|0}y=f;Ba=l+3|0;if(Ba>>>0>ra>>>0){if(!za){break g}break x}Ba=l+2|0}l=D[_+20>>2];t=l}f=l-t|0;if((f|0)>=D[u+4>>2]){if(!za){break g}break x}m=D[u>>2];n=m+(f<<2)|0;l=D[n>>2];if(!f){break y}f=m+(f<<1&-4)|0;m=D[f>>2];D[f>>2]=l;D[n>>2]=m}if(!(G[_+20>>2]>l>>>0?G[_+8>>2]>ca>>>0:0)){if(!za){break g}break x}m=o-z|0;f=(m|0)<4;if(j){D[D[Ja>>2]+(X+Aa<<2)>>2]=l<<16|ca}v=f?m:4;n=(ya|0)<4?ya:4;x=D[_+16>>2];w=x+J(l,11)|0;I=D[_+4>>2];t=I+(ca<<3)|0;ca:{da:{ea:{fa:{ga:{ha:{ia:{switch(g|0){case 2:n=J(X+T|0,h)+b|0;f=E[t+4|0];l=E[w+8|0];m=E[w+9|0];if((l|0)==(m|0)){m=E[t+2|0];p=m>>>2|0;m=m<<3;s=E[t+1|0];s=s<<3|s>>>2;f=D[((f<<4)+(l<<2)|0)+29120>>2];t=E[t|0];t=f+(t<<3|t>>>2)|0;ja:{if(t>>>0<256){break ja}l=(t|0)>-1;t=255;if(l){break ja}t=0}m=m|p;l=f+s|0;ka:{if(l>>>0<256){break ka}p=(l|0)>-1;l=255;if(p){break ka}l=0}m=f+m|0;la:{if(m>>>0<256){break la}f=(m|0)>-1;m=255;if(f){break la}m=0}f=170;m=m<<1;l=l<<1;p=t<<1;t=E[m+422465|0]|(E[l+423489|0]<<5|E[p+422465|0]<<11);l=E[m+422464|0]|(E[l+423488|0]<<5|E[p+422464|0]<<11);ma:{if(yb&(t|0)==(l|0)){if(!l){t=0;m=1;f=85;break ma}t=l-1|0;f=0}if(l>>>0>=t>>>0){m=l;break ma}f=f|85;m=t;t=l}B[n+2|0]=t;B[n|0]=m;f=J(f,16843009);B[n+4|0]=f;B[n+5|0]=f>>>8;B[n+6|0]=f>>>16;B[n+7|0]=f>>>24;B[n+3|0]=t>>>8;B[n+1|0]=m>>>8;break ca}if(!(E[w+10|0]!=2|f>>>0<7|((m|0)!=3|l))){eb(u+32|0,t,f);t=1;f=E[(E[u+34|0]<<1)+422976|0]|(E[(E[u+33|0]<<1)+424e3|0]<<5|E[(E[u+32|0]<<1)+422976|0]<<11);s=E[(E[u+46|0]<<1)+422976|0]|(E[(E[u+45|0]<<1)+424e3|0]<<5|E[(E[u+44|0]<<1)+422976|0]<<11);na:{if((f|0)==(s|0)){if(!f){f=0;m=1;l=1;break na}t=0;s=f-1|0}l=0;if(f>>>0>=s>>>0){m=f;f=s;break na}l=1;t=0;m=s}B[n+2|0]=f;B[n|0]=m;B[n+3|0]=f>>>8;B[n+1|0]=m>>>8;f=E[n+4|0]&-4|((E[w|0]&3)==3?t:l);B[n+4|0]=f;f=f&-15|((E[w|0]&12)==12?t:l)<<2;B[n+4|0]=f;f=f&-59|((E[w|0]&48)==48?t:l)<<4;B[n+4|0]=f;B[n+4|0]=f&21|(E[w|0]>191?t:l)<<6;f=E[n+5|0]&-4|((E[w+1|0]&3)==3?t:l);B[n+5|0]=f;f=f&-15|((E[w+1|0]&12)==12?t:l)<<2;B[n+5|0]=f;f=f&-59|((E[w+1|0]&48)==48?t:l)<<4;B[n+5|0]=f;B[n+5|0]=f&21|(E[w+1|0]>191?t:l)<<6;f=E[n+6|0]&-4|((E[w+2|0]&3)==3?t:l);B[n+6|0]=f;f=f&-15|((E[w+2|0]&12)==12?t:l)<<2;B[n+6|0]=f;f=f&-59|((E[w+2|0]&48)==48?t:l)<<4;B[n+6|0]=f;B[n+6|0]=f&21|(E[w+2|0]>191?t:l)<<6;f=E[n+7|0]&-4|((E[w+3|0]&3)==3?t:l);B[n+7|0]=f;f=f&-15|((E[w+3|0]&12)==12?t:l)<<2;B[n+7|0]=f;f=f&-59|((E[w+3|0]&48)==48?t:l)<<4;B[n+7|0]=f;B[n+7|0]=f&21|(E[w+3|0]>191?t:l)<<6;break ca}m=J(D[((l<<4)+(m<<2)|0)+424512>>2],10);p=f<<5;f=m+J(p+E[t|0]|0,60)<<2;O=f;l=m+J(p+E[t+2|0]|0,60)<<2;m=m+J(p+E[t+1|0]|0,60)<<2;p=F[l+91110>>1]+(F[m+152550>>1]+F[f+91110>>1]|0)|0;s=F[l+91106>>1]+(F[m+152546>>1]+F[f+91106>>1]|0)|0;t=p>>>0>>0;v=F[l+91114>>1]+(F[m+152554>>1]+F[f+91114>>1]|0)|0;p=t?p:s;s=v>>>0

>>0;x=s?2:t;t=F[l+91118>>1]+(F[m+152558>>1]+F[f+91118>>1]|0)|0;p=s?v:p;s=t>>>0

>>0;x=s?3:x;v=F[l+91122>>1]+(F[m+152562>>1]+F[f+91122>>1]|0)|0;p=s?t:p;s=v>>>0

>>0;x=s?4:x;t=F[l+91126>>1]+(F[m+152566>>1]+F[f+91126>>1]|0)|0;p=s?v:p;s=t>>>0

>>0;x=s?5:x;v=F[l+91130>>1]+(F[m+152570>>1]+F[f+91130>>1]|0)|0;p=s?t:p;s=v>>>0

>>0;x=s?6:x;t=F[l+91134>>1]+(F[m+152574>>1]+F[f+91134>>1]|0)|0;p=s?v:p;s=t>>>0

>>0;x=s?7:x;v=F[l+91138>>1]+(F[m+152578>>1]+F[f+91138>>1]|0)|0;p=s?t:p;s=v>>>0

>>0;s=F[l+91142>>1]+(F[m+152582>>1]+F[f+91142>>1]|0)>>>0<(s?v:p)>>>0?9:s?8:x;f=s<<2;p=O+f|0;t=f+l|0;f=f+m|0;l=E[p+91104|0]<<11&63488|E[t+91104|0]|E[f+152544|0]<<5;m=E[t+91105|0]|E[p+91105|0]<<11&63488|E[f+152545|0]<<5;f=l>>>0>>0;p=f?l:m;B[n+2|0]=p;l=f?m:l;B[n|0]=l;B[n+3|0]=p>>>8;B[n+1|0]=l>>>8;if((l|0)==(p|0)){f=n;s=f;if(i){l=0}else{m=l?l:1;B[n|0]=m;p=l?l-1|0:0;B[n+2|0]=p;B[n+1|0]=m>>>8;B[n+3|0]=p>>>8;l=l?0:85}l=J(l,16843009);B[s+4|0]=l;B[f+5|0]=l>>>8;B[f+6|0]=l>>>16;B[f+7|0]=l>>>24;break ca}f=(s<<8)+(f?427136:424576)|0;B[n+4|0]=E[f+E[w|0]|0];B[n+5|0]=E[f+E[w+1|0]|0];B[n+6|0]=E[f+E[w+2|0]|0];B[n+7|0]=E[f+E[w+3|0]|0];break ca;case 4:m=J(X+T|0,h)+b|0;l=E[t+4|0];n=E[w+8|0];f=E[w+9|0];if((n|0)==(f|0)){f=E[t|0];l=D[((l<<4)+(n<<2)|0)+29120>>2]+(f<<3|f>>>2)|0;oa:{if(l>>>0<256){f=l;break oa}f=0;if((l|0)<0){break oa}f=255}B[m+2|0]=0;B[m+3|0]=0;B[m+4|0]=0;B[m+5|0]=0;B[m+1|0]=f;B[m|0]=f;B[m+6|0]=0;B[m+7|0]=0;break ca}if(E[w+10|0]!=2){s=0;pa:{qa:{switch(n|0){case 0:s=(f|0)==3?0:((f|0)==2)<<1;break pa;case 1:break qa;default:break pa}}s=(f|0)==3?1:(f|0)==2?3:0}f=E[t|0]+(l<<5)<<4|s<<2;l=F[f+213984>>1];B[m|0]=l;B[m+1|0]=l>>>8;f=F[f+213986>>1];n=f>>>J(E[w|0]&3,3)&7;l=E[m+2|0];B[m+2|0]=n|l&248;p=l&192;l=E[m+3|0]<<8;n=f>>>J(E[w|0]>>>2&3,3)<<3&56|(n|(p|l));B[m+2|0]=n;l=f>>>J(E[w|0]>>>4&3,3)<<6&448|(n&63|l&65024);B[m+2|0]=l;B[m+3|0]=l>>>8;n=f>>>J(E[w|0]>>>6|0,3)<<1&14;l=l>>>8|0;B[m+3|0]=n|l&241;p=l&129;l=E[m+4|0]<<8;n=f>>>J(E[w+1|0]&3,3)<<4&112|(p|(l|n));B[m+3|0]=n;l=f>>>J(E[w+1|0]>>>2&3,3)<<7&896|(n&127|l&64512);B[m+3|0]=l;B[m+4|0]=l>>>8;l=l>>>8&227|f>>>J(E[w+1|0]>>>4&3,3)<<2&28;B[m+4|0]=l;B[m+4|0]=l&31|f>>>J(E[w+1|0]>>>6|0,3)<<5;n=f>>>J(E[w+2|0]&3,3)&7;l=E[m+5|0];B[m+5|0]=n|l&248;p=l&192;l=E[m+6|0]<<8;n=f>>>J(E[w+2|0]>>>2&3,3)<<3&56|(n|(p|l));B[m+5|0]=n;l=f>>>J(E[w+2|0]>>>4&3,3)<<6&448|(n&63|l&65024);B[m+5|0]=l;B[m+6|0]=l>>>8;n=l>>>8&241;l=E[m+7|0]<<8;n=n|(l|f>>>J(E[w+2|0]>>>6|0,3)<<1&14);B[m+6|0]=n;n=n&143|(l|f>>>J(E[w+3|0]&3,3)<<4&112);B[m+6|0]=n;p=n&127;n=f>>>J(E[w+3|0]>>>2&3,3)<<7;B[m+6|0]=p|n;l=(n&768|l&64512)>>>8|0;B[m+7|0]=l;l=l&227|f>>>J(E[w+3|0]>>>4&3,3)<<2&28;B[m+7|0]=l;B[m+7|0]=l&31|f>>>J(E[w+3|0]>>>6|0,3)<<5;break ca}eb(u+32|0,t,l);l=E[(u+32|0)+(n<<2)|0];B[m+1|0]=E[(u+32|0)+(f<<2)|0];B[m|0]=l;l=E[m+2|0]&248|(f|0)==(E[w|0]&3);B[m+2|0]=l;l=l&193|((f|0)==(E[w|0]>>>2&3))<<3;B[m+2|0]=l;n=E[w|0];p=E[m+3|0];B[m+3|0]=p&254;B[m+2|0]=l&9|((f|0)==(n>>>4&3))<<6;l=p&240|((f|0)==(E[w|0]>>>6|0))<<1;B[m+3|0]=l;l=l&130|((f|0)==(E[w+1|0]&3))<<4;B[m+3|0]=l;n=E[w+1|0];p=E[m+4|0];B[m+4|0]=p&252;B[m+3|0]=l&18|((f|0)==(n>>>2&3))<<7;l=((f|0)==(E[w+1|0]>>>4&3))<<2;B[m+4|0]=l|p&224;B[m+4|0]=l|((f|0)==(E[w+1|0]>>>6|0))<<5;l=E[m+5|0]&248|(f|0)==(E[w+2|0]&3);B[m+5|0]=l;l=l&193|((f|0)==(E[w+2|0]>>>2&3))<<3;B[m+5|0]=l;n=E[w+2|0];p=E[m+6|0];B[m+6|0]=p&254;B[m+5|0]=l&9|((f|0)==(n>>>4&3))<<6;l=p&240|((f|0)==(E[w+2|0]>>>6|0))<<1;B[m+6|0]=l;l=l&130|((f|0)==(E[w+3|0]&3))<<4;B[m+6|0]=l;n=E[w+3|0];p=E[m+7|0];B[m+7|0]=p&252;B[m+6|0]=l&18|((f|0)==(n>>>2&3))<<7;l=((f|0)==(E[w+3|0]>>>4&3))<<2;B[m+7|0]=l|p&224;B[m+7|0]=l|((f|0)==(E[w+3|0]>>>6|0))<<5;break ca;case 6:p=0;v=E[w+4|0]|E[w+5|0]<<8|E[w+6|0]<<16|E[w+7|0]<<24;f=E[t|0];qa=qa&7|(f>>>0<31?f<<3:-8);z=qa&255;f=E[t+4|0];ma=ma&3|f<<5|f<<2;m=ma&255;f=m>>>8|0;n=m<<24;m=f;l=n;f=E[t+2|0];Ca=Ca&7|(f>>>0<31?f:31)<<3;n=Ca&255;f=n>>>16|0;n=l|n<<16;x=f|m;f=E[t+1|0];ua=ua&7|(f>>>0<31?f:31)<<3;m=ua&255;f=m>>>24|0;s=X+Aa|0;l=(s<<3)+za|0;D[l>>2]=m<<8|n|z|p;D[l+4>>2]=f|x|v;f=E[t+2|0];l=f>>>2|0;m=f<<3;f=E[t+1|0];n=f<<3|f>>>2;v=E[t+4|0]<<4;f=D[(v+(E[w+8|0]<<2)|0)+29120>>2];p=E[t|0];z=(p<<3|p>>>2)&255;t=f+z|0;ra:{if(t>>>0<256){break ra}p=(t|0)>-1;t=255;if(p){break ra}t=0}l=l|m;m=E[w+9|0];w=n&255;p=w+f|0;sa:{if(p>>>0<256){break sa}n=(p|0)>-1;p=255;if(n){break sa}p=0}x=l&255;l=x+f|0;ta:{if(l>>>0<256){break ta}f=(l|0)>-1;l=255;if(f){break ta}l=0}n=D[(v+(m<<2)|0)+29120>>2];f=n+z|0;ua:{if(f>>>0<256){break ua}m=(f|0)>-1;f=255;if(m){break ua}f=0}m=n+w|0;va:{if(m>>>0<256){break va}v=(m|0)>-1;m=255;if(v){break va}m=0}n=n+x|0;if(n>>>0<256){v=n;break ea}v=0;if((n|0)<0){break ea}n=218847;break da;case 7:p=0;s=E[w|0]|E[w+1|0]<<8|E[w+2|0]<<16|E[w+3|0]<<24;f=E[t|0];qa=qa&7|(f>>>0<31?f<<3:-8);v=qa&255;f=E[t+4|0];ma=ma&3|f<<5|f<<2;m=ma&255;f=m>>>8|0;n=m<<24;m=f;l=n;f=E[t+2|0];Ca=Ca&7|(f>>>0<31?f:31)<<3;n=Ca&255;f=n>>>16|0;n=l|n<<16;x=f|m;f=E[t+1|0];ua=ua&7|(f>>>0<31?f:31)<<3;m=ua&255;f=m>>>24|0;z=X+Aa|0;l=(z<<3)+za|0;D[l>>2]=m<<8|n|v|p;D[l+4>>2]=f|x|s;f=E[t+2|0];n=f>>>2|0;f=f<<3;l=E[t+1|0];p=l<<3|l>>>2;s=E[t+4|0]<<4;m=D[(s+(E[w+8|0]<<2)|0)+29120>>2];l=E[t|0];t=(l<<3|l>>>2)&255;l=m+t|0;wa:{if(l>>>0<256){break wa}v=(l|0)>-1;l=255;if(v){break wa}l=0}n=f|n;v=E[w+9|0];w=p&255;f=w+m|0;xa:{if(f>>>0<256){break xa}p=(f|0)>-1;f=255;if(p){break xa}f=0}x=n&255;m=x+m|0;ya:{if(m>>>0<256){break ya}n=(m|0)>-1;m=255;if(n){break ya}m=0}p=D[(s+(v<<2)|0)+29120>>2];s=p+t|0;za:{if(s>>>0<256){break za}n=(s|0)>-1;s=255;if(n){break za}s=0}n=p+w|0;Aa:{if(n>>>0<256){break Aa}t=(n|0)>-1;n=255;if(t){break Aa}n=0}v=p+x|0;Ba:{if(v>>>0<256){break Ba}p=(v|0)>-1;v=255;if(p){break Ba}v=0}w=z<<2;p=w+r|0;t=D[_+16>>2]+J(F[p+2>>1],11)|0;z=E[t+9|0];p=D[_+4>>2]+(F[p>>1]<<3)|0;x=E[p+4|0]<<4;p=E[p+1|0];p=(p<<3|p>>>2)&255;t=D[(x+(E[t+8|0]<<2)|0)+29120>>2]+p|0;Ca:{if(t>>>0<256){break Ca}I=(t|0)>-1;t=255;if(I){break Ca}t=0}p=p+D[(x+(z<<2)|0)+29120>>2]|0;Da:{if(p>>>0<256){break Da}z=(p|0)>-1;p=255;if(z){break Da}p=0}if((t&255)==255){f=E[l+218080|0]<<10|E[f+218080|0]<<5|E[m+218336|0]<<1|32768}else{f=E[l+218336|0]<<8|E[t+219104|0]<<12|E[f+218336|0]<<4|E[m+219360|0]<<1}l=w+Ka|0;if(p-239>>>0<=16){f=f&65535|(E[v+218592|0]|(E[n+218592|0]<<5|E[s+218592|0]<<10))<<16|-2147483648}else{f=f&65535|(E[v+218848|0]|(E[s+218848|0]<<8|E[p+219616|0]<<12|E[n+218848|0]<<4))<<16}D[l>>2]=f;break ca;case 11:l=J(X+T|0,h)+b|0;m=E[t+4|0];Ea:{Fa:{p=E[w+8|0];f=E[w+9|0];if((p|0)!=(f|0)){s=0;switch(p|0){case 1:break Ea;case 0:break Fa;default:break fa}}n=l;f=E[t|0];m=D[((m<<4)+(p<<2)|0)+29120>>2]+(f<<3|f>>>2)|0;Ga:{if(m>>>0<256){f=m;break Ga}f=0;if((m|0)<0){break Ga}f=255}C[n>>1]=f|7424;f=F[204304]|F[204305]<<16;C[l+2>>1]=f;C[l+4>>1]=f>>>16;C[l+6>>1]=F[204306];break ca}s=(f|0)==3?0:((f|0)==2)<<1;break fa}s=(f|0)==3?1:(f|0)==2?3:0;break fa;case 12:C[u+40>>1]=0;p=J(X+T|0,h)+b|0;n=255;m=1;Ha:{if(!q){break Ha}v=x+J(F[p+2>>1],11)|0;m=E[v+10|0];if((m|0)!=1){break Ha}l=I+(F[p>>1]<<3)|0;f=E[l+1|0];f=f<<3|f>>>2;l=E[l+4|0]<<4;s=f+D[l+29120>>2]|0;Ia:{if(s>>>0<256){break Ia}m=(s|0)>-1;s=255;if(m){break Ia}s=0}D[u+112>>2]=s;s=f+D[l+29124>>2]|0;Ja:{if(s>>>0<256){break Ja}m=(s|0)>-1;s=255;if(m){break Ja}s=0}D[u+116>>2]=s;s=f+D[l+29128>>2]|0;Ka:{if(s>>>0<256){break Ka}m=(s|0)>-1;s=255;if(m){break Ka}s=0}D[u+120>>2]=s;l=f+D[l+29132>>2]|0;La:{if(l>>>0<256){break La}f=(l|0)>-1;l=255;if(f){break La}l=0}D[u+124>>2]=l;n=D[(u+112|0)+(E[v+8|0]<<2)>>2];m=1}l=E[w+9|0];f=E[w+8|0];s=E[t+4|0];v=E[w+10|0];if(!((v|0)!=1|(m|0)!=1)){l=E[t+2|0];m=l>>>2|0;l=l<<3;v=E[t+1|0];v=v<<3|v>>>2;f=D[((s<<4)+(f<<2)|0)+29120>>2];t=E[t|0];t=f+(t<<3|t>>>2)|0;Ma:{if(t>>>0<256){break Ma}s=(t|0)>-1;t=255;if(s){break Ma}t=0}l=l|m;s=f+v|0;Na:{if(s>>>0<256){break Na}m=(s|0)>-1;s=255;if(m){break Na}s=0}v=f+l|0;Oa:{if(v>>>0<256){break Oa}f=(v|0)>-1;v=255;if(f){break Oa}v=0}D[p+12>>2]=0;D[p+4>>2]=-1;D[p+8>>2]=0;B[p|0]=252;B[p+1|0]=253;B[p+2|0]=255;B[p+3|0]=255;f=t<<8|t;l=16;t=64;while(1){m=p+(t>>3)|0;w=m;O=E[m|0];m=t&7;B[w|0]=O|f<(l|0)?l:f;f=w>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}f=s<<8|s;l=16;while(1){m=p+(t>>3)|0;s=m;w=E[m|0];m=t&7;B[s|0]=w|f<(l|0)?l:f;f=s>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}f=v<<8|v;l=16;while(1){m=p+(t>>3)|0;s=m;v=E[m|0];m=t&7;B[s|0]=v|f<(l|0)?l:f;f=s>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}f=n<<8|n;l=16;while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}break ca}if(!(v>>>0>2|m>>>0>2)){eb(u+112|0,t,s);f=(u+112|0)+(f<<2)|0;m=E[f|0];B[u+32|0]=m;n=E[f+1|0];B[u+34|0]=n;f=E[f+2|0];B[u+36|0]=f;s=(u+112|0)+(l<<2)|0;t=E[s|0];B[u+33|0]=t;v=E[s+1|0];B[u+35|0]=v;s=E[s+2|0];B[u+37|0]=s;z=s+(t+v|0)|0;H=f+(m+n|0)|0;if(z>>>0>>0){B[u+37|0]=f;B[u+36|0]=s;B[u+35|0]=n;B[u+34|0]=v;B[u+33|0]=m;B[u+32|0]=t}Pa:{if(q){s=x+J(F[p+2>>1],11)|0;f=I+(F[p>>1]<<3)|0;m=E[f+1|0];m=m<<3|m>>>2;t=E[f+4|0]<<4;n=m+D[t+29120>>2]|0;Qa:{if(n>>>0<256){break Qa}f=(n|0)>-1;n=255;if(f){break Qa}n=0}f=E[s+9|0];v=E[s+8|0];D[u+96>>2]=n;n=m+D[t+29124>>2]|0;Ra:{if(n>>>0<256){break Ra}x=(n|0)>-1;n=255;if(x){break Ra}n=0}D[u+100>>2]=n;n=m+D[t+29128>>2]|0;Sa:{if(n>>>0<256){break Sa}x=(n|0)>-1;n=255;if(x){break Sa}n=0}D[u+104>>2]=n;m=m+D[t+29132>>2]|0;Ta:{if(m>>>0<256){break Ta}n=(m|0)>-1;m=255;if(n){break Ta}m=0}D[u+108>>2]=m;B[u+38|0]=D[(u+96|0)+(v<<2)>>2];B[u+39|0]=D[(u+96|0)+(f<<2)>>2];m=E[s|0];B[u+43|0]=(f|0)==(m&3);B[u+49|0]=(f|0)==(m>>>6|0);B[u+45|0]=(f|0)==(m>>>2&3);B[u+47|0]=(f|0)==(m>>>4&3);m=E[s+1|0];B[u+51|0]=(f|0)==(m&3);B[u+57|0]=(f|0)==(m>>>6|0);B[u+53|0]=(f|0)==(m>>>2&3);B[u+55|0]=(f|0)==(m>>>4&3);m=E[s+2|0];B[u+59|0]=(f|0)==(m&3);B[u+65|0]=(f|0)==(m>>>6|0);B[u+61|0]=(f|0)==(m>>>2&3);B[u+63|0]=(f|0)==(m>>>4&3);m=E[s+3|0];B[u+67|0]=(f|0)==(m&3);B[u+73|0]=(f|0)==(m>>>6|0);B[u+69|0]=(f|0)==(m>>>2&3);B[u+71|0]=(f|0)==(m>>>4&3);break Pa}B[u+73|0]=0;B[u+71|0]=0;B[u+69|0]=0;B[u+67|0]=0;B[u+65|0]=0;B[u+63|0]=0;B[u+61|0]=0;B[u+59|0]=0;B[u+57|0]=0;B[u+55|0]=0;B[u+53|0]=0;B[u+51|0]=0;B[u+49|0]=0;B[u+47|0]=0;B[u+45|0]=0;B[u+43|0]=0;C[u+38>>1]=65535}f=z>>>0>>0;m=E[w|0];B[u+48|0]=f^(l|0)==(m>>>6|0);B[u+42|0]=f^(l|0)==(m&3);B[u+46|0]=f^(l|0)==(m>>>4&3);B[u+44|0]=f^(l|0)==(m>>>2&3);m=E[w+1|0];B[u+56|0]=f^(l|0)==(m>>>6|0);B[u+50|0]=f^(l|0)==(m&3);B[u+54|0]=f^(l|0)==(m>>>4&3);B[u+52|0]=f^(l|0)==(m>>>2&3);m=E[w+2|0];B[u+64|0]=f^(l|0)==(m>>>6|0);B[u+58|0]=f^(l|0)==(m&3);B[u+62|0]=f^(l|0)==(m>>>4&3);B[u+60|0]=f^(l|0)==(m>>>2&3);m=E[w+3|0];B[u+72|0]=f^(l|0)==(m>>>6|0);B[u+66|0]=f^(l|0)==(m&3);B[u+70|0]=f^(l|0)==(m>>>4&3);B[u+68|0]=f^(l|0)==(m>>>2&3);D[p+12>>2]=0;B[p+11|0]=192;B[p+3|0]=0;B[p+4|0]=0;B[p+5|0]=0;B[p+6|0]=0;B[p+7|0]=0;B[p+8|0]=0;B[p+9|0]=0;B[p+10|0]=0;B[p+2|0]=1;B[p|0]=65;B[p+1|0]=132;l=8;t=17;f=E[u+32|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+33|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+34|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+35|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+36|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+37|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+38|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}l=8;f=E[u+39|0];while(1){m=p+(t>>3)|0;n=m;s=E[m|0];m=t&7;B[n|0]=s|f<(l|0)?l:f;f=n>>>m|0;t=m+t|0;l=l-m|0;if(l){continue}break}t=0;while(1){f=127-t|0;l=p+(f>>>3|0)|0;m=l;n=E[l|0];l=u+42|0;B[m|0]=n|E[l+t|0]<<(f&7);f=126-t|0;m=p+(f>>>3|0)|0;B[m|0]=E[m|0]|E[l+(t|1)|0]<<(f&6);t=t+2|0;if((t|0)!=32){continue}break}break ca}Ua:{if(q){v=I+(F[p>>1]<<3)|0;m=E[v+4|0];n=x+J(F[p+2>>1],11)|0;z=E[n+8|0];x=E[n+9|0];if((z|0)==(x|0)){n=E[v+1|0];v=n<<3|n>>>2;m=m<<4;n=v+D[m+29120>>2]|0;Va:{if(n>>>0<256){break Va}x=(n|0)>-1;n=255;if(x){break Va}n=0}D[u+112>>2]=n;n=v+D[m+29124>>2]|0;Wa:{if(n>>>0<256){break Wa}x=(n|0)>-1;n=255;if(x){break Wa}n=0}D[u+116>>2]=n;n=v+D[m+29128>>2]|0;Xa:{if(n>>>0<256){break Xa}x=(n|0)>-1;n=255;if(x){break Xa}n=0}D[u+120>>2]=n;m=v+D[m+29132>>2]|0;Ya:{if(m>>>0<256){break Ya}n=(m|0)>-1;m=255;if(n){break Ya}m=0}D[u+124>>2]=m;B[u+73|0]=1;B[u+71|0]=1;B[u+69|0]=1;B[u+67|0]=1;B[u+65|0]=1;B[u+63|0]=1;B[u+61|0]=1;B[u+59|0]=1;B[u+57|0]=1;B[u+55|0]=1;B[u+53|0]=1;B[u+51|0]=1;B[u+49|0]=1;B[u+47|0]=1;B[u+45|0]=1;B[u+43|0]=1;C[u+38>>1]=F[(D[(u+112|0)+(z<<2)>>2]<<1)+445312>>1];break Ua}if(!(E[n+10|0]!=2|m>>>0<7|((x|0)!=3|z))){eb(u+112|0,v,m);B[u+38|0]=E[E[u+113|0]+445824|0];B[u+39|0]=E[E[u+125|0]+445824|0];m=E[n|0];B[u+43|0]=(m&3)==3?3:0;B[u+45|0]=(m&12)==12?3:0;B[u+47|0]=(m&48)==48?3:0;B[u+49|0]=(m&192)==192?3:0;m=E[n+1|0];B[u+51|0]=(m&3)==3?3:0;B[u+53|0]=(m&12)==12?3:0;B[u+55|0]=(m&48)==48?3:0;B[u+57|0]=(m&192)==192?3:0;m=E[n+2|0];B[u+59|0]=(m&3)==3?3:0;B[u+61|0]=(m&12)==12?3:0;B[u+63|0]=(m&48)==48?3:0;B[u+65|0]=(m&192)==192?3:0;m=E[n+3|0];B[u+67|0]=(m&3)==3?3:0;B[u+69|0]=(m&12)==12?3:0;B[u+71|0]=(m&48)==48?3:0;B[u+73|0]=(m&192)==192?3:0;break Ua}x=D[((z<<4)+(x<<2)|0)+445056>>2];v=E[v+1|0];z=E[(x+(J(v,48)+J(m,6)|0)|0)+443520|0]<<2;C[u+38>>1]=F[(z+(J(v+(m<<5)|0,60)+J(x,10)<<2)|0)+29600>>1];m=z+347120|0;v=E[n|0];B[u+43|0]=E[m+(v&3)|0];B[u+49|0]=E[m+(v>>>6|0)|0];B[u+47|0]=E[m+(v>>>4&3)|0];B[u+45|0]=E[m+(v>>>2&3)|0];v=E[n+1|0];B[u+57|0]=E[m+(v>>>6|0)|0];B[u+51|0]=E[m+(v&3)|0];B[u+55|0]=E[m+(v>>>4&3)|0];B[u+53|0]=E[m+(v>>>2&3)|0];v=E[n+2|0];B[u+65|0]=E[m+(v>>>6|0)|0];B[u+59|0]=E[m+(v&3)|0];B[u+63|0]=E[m+(v>>>4&3)|0];B[u+61|0]=E[m+(v>>>2&3)|0];n=E[n+3|0];B[u+73|0]=E[m+(n>>>6|0)|0];B[u+67|0]=E[m+(n&3)|0];B[u+71|0]=E[m+(n>>>4&3)|0];B[u+69|0]=E[m+(n>>>2&3)|0];break Ua}B[u+73|0]=0;B[u+71|0]=0;B[u+69|0]=0;B[u+67|0]=0;B[u+65|0]=0;B[u+63|0]=0;B[u+61|0]=0;B[u+59|0]=0;B[u+57|0]=0;B[u+55|0]=0;B[u+53|0]=0;B[u+51|0]=0;B[u+49|0]=0;B[u+47|0]=0;B[u+45|0]=0;B[u+43|0]=0;C[u+38>>1]=257}Za:{if((f|0)==(l|0)){eb(u+112|0,t,s);t=1;f=(u+112|0)+(f<<2)|0;m=E[f|0]<<1;l=E[m+445312|0];B[u+32|0]=l;m=E[m+445313|0];B[u+33|0]=m;s=E[f+1|0]<<1;n=E[s+445312|0];B[u+34|0]=n;s=E[s+445313|0];B[u+35|0]=s;v=E[f+2|0]<<1;f=E[v+445312|0];B[u+36|0]=f;v=E[v+445313|0];B[u+37|0]=v;if((D[(v<<2)+445120>>2]+(D[(s<<2)+445120>>2]+D[(m<<2)+445120>>2]|0)|0)<(D[(f<<2)+445120>>2]+(D[(n<<2)+445120>>2]+D[(l<<2)+445120>>2]|0)|0)){B[u+37|0]=f;B[u+36|0]=v;B[u+35|0]=n;B[u+34|0]=s;B[u+33|0]=l;B[u+32|0]=m;t=2}B[u+72|0]=t;B[u+70|0]=t;B[u+68|0]=t;B[u+66|0]=t;B[u+64|0]=t;B[u+62|0]=t;B[u+60|0]=t;B[u+58|0]=t;B[u+56|0]=t;B[u+54|0]=t;B[u+52|0]=t;B[u+50|0]=t;B[u+48|0]=t;B[u+46|0]=t;B[u+44|0]=t;B[u+42|0]=t;break Za}if(!(E[w+10|0]!=2|s>>>0<7|(E[w+8|0]|E[w+9|0]!=3))){eb(u+112|0,t,s);l=E[E[u+112|0]+445824|0];B[u+32|0]=l;m=E[E[u+124|0]+445824|0];B[u+33|0]=m;n=E[E[u+113|0]+445824|0];B[u+34|0]=n;s=E[E[u+125|0]+445824|0];B[u+35|0]=s;t=E[E[u+114|0]+445824|0];B[u+36|0]=t;v=E[E[u+126|0]+445824|0];B[u+37|0]=v;z=D[(v<<2)+445120>>2]+(D[(s<<2)+445120>>2]+D[(m<<2)+445120>>2]|0)|0;x=D[(t<<2)+445120>>2]+(D[(n<<2)+445120>>2]+D[(l<<2)+445120>>2]|0)|0;if((z|0)<(x|0)){B[u+37|0]=t;B[u+36|0]=v;B[u+35|0]=n;B[u+34|0]=s;B[u+33|0]=l;B[u+32|0]=m}m=E[w|0];l=(f|0)==(m>>>6|0)?0:3;s=l^3;n=l;l=(z|0)<(x|0);B[u+48|0]=l?s:n;n=(f|0)==(m&3)?0:3;B[u+42|0]=l?n^3:n;n=(f|0)==(m>>>4&3)?0:3;B[u+46|0]=l?n^3:n;m=(f|0)==(m>>>2&3)?0:3;B[u+44|0]=l?m^3:m;m=E[w+1|0];n=(f|0)==(m>>>6|0)?0:3;B[u+56|0]=l?n^3:n;n=(f|0)==(m&3)?0:3;B[u+50|0]=l?n^3:n;n=(f|0)==(m>>>4&3)?0:3;B[u+54|0]=l?n^3:n;m=(f|0)==(m>>>2&3)?0:3;B[u+52|0]=l?m^3:m;m=E[w+2|0];n=(f|0)==(m>>>6|0)?0:3;B[u+64|0]=l?n^3:n;n=(f|0)==(m&3)?0:3;B[u+58|0]=l?n^3:n;n=(f|0)==(m>>>4&3)?0:3;B[u+62|0]=l?n^3:n;m=(f|0)==(m>>>2&3)?0:3;B[u+60|0]=l?m^3:m;m=E[w+3|0];n=(f|0)==(m>>>6|0)?0:3;B[u+72|0]=l?n^3:n;n=(f|0)==(m&3)?0:3;B[u+66|0]=l?n^3:n;n=(f|0)==(m>>>4&3)?0:3;B[u+70|0]=l?n^3:n;f=(f|0)==(m>>>2&3)?0:3;B[u+68|0]=l?f^3:f;break Za}n=J(D[((f<<4)+(l<<2)|0)+445056>>2],10);m=s<<5;f=n+J(m+E[t+2|0]|0,60)<<2;l=n+J(m+E[t+1|0]|0,60)<<2;m=n+J(m+E[t|0]|0,60)<<2;s=F[f+29606>>1]+(F[l+29606>>1]+F[m+29606>>1]|0)|0;t=F[f+29602>>1]+(F[l+29602>>1]+F[m+29602>>1]|0)|0;n=s>>>0>>0;O=f;x=n;v=F[f+29610>>1]+(F[l+29610>>1]+F[m+29610>>1]|0)|0;n=n?s:t;s=v>>>0>>0;x=s?2:x;t=F[f+29614>>1]+(F[l+29614>>1]+F[m+29614>>1]|0)|0;n=s?v:n;s=t>>>0>>0;x=s?3:x;v=F[f+29618>>1]+(F[l+29618>>1]+F[m+29618>>1]|0)|0;n=s?t:n;s=v>>>0>>0;x=s?4:x;t=F[f+29622>>1]+(F[l+29622>>1]+F[m+29622>>1]|0)|0;n=s?v:n;s=t>>>0>>0;x=s?5:x;v=F[f+29626>>1]+(F[l+29626>>1]+F[m+29626>>1]|0)|0;n=s?t:n;s=v>>>0>>0;x=s?6:x;t=F[f+29630>>1]+(F[l+29630>>1]+F[m+29630>>1]|0)|0;n=s?v:n;s=t>>>0>>0;x=s?7:x;v=F[f+29634>>1]+(F[l+29634>>1]+F[m+29634>>1]|0)|0;n=s?t:n;s=v>>>0>>0;f=(F[f+29638>>1]+(F[l+29638>>1]+F[m+29638>>1]|0)>>>0<(s?v:n)>>>0?9:s?8:x)<<2;s=O+f|0;n=E[s+29601|0];B[u+37|0]=n;s=E[s+29600|0];B[u+36|0]=s;t=f+l|0;l=E[t+29601|0];B[u+35|0]=l;t=E[t+29600|0];B[u+34|0]=t;v=f+m|0;m=E[v+29601|0];B[u+33|0]=m;v=E[v+29600|0];B[u+32|0]=v;z=D[(n<<2)+445120>>2]+(D[(l<<2)+445120>>2]+D[(m<<2)+445120>>2]|0)|0;x=D[(s<<2)+445120>>2]+(D[(t<<2)+445120>>2]+D[(v<<2)+445120>>2]|0)|0;if((z|0)<(x|0)){B[u+37|0]=s;B[u+36|0]=n;B[u+35|0]=t;B[u+34|0]=l;B[u+33|0]=v;B[u+32|0]=m}f=f+347120|0;m=E[w|0];l=E[f+(m>>>6|0)|0];s=3-l|0;n=l;l=(z|0)<(x|0);B[u+48|0]=l?s:n;n=E[f+(m&3)|0];B[u+42|0]=l?3-n|0:n;n=E[f+(m>>>4&3)|0];B[u+46|0]=l?3-n|0:n;m=E[f+(m>>>2&3)|0];B[u+44|0]=l?3-m|0:m;m=E[w+1|0];n=E[f+(m>>>6|0)|0];B[u+56|0]=l?3-n|0:n;n=E[f+(m&3)|0];B[u+50|0]=l?3-n|0:n;n=E[f+(m>>>4&3)|0];B[u+54|0]=l?3-n|0:n;m=E[f+(m>>>2&3)|0];B[u+52|0]=l?3-m|0:m;m=E[w+2|0];n=E[f+(m>>>6|0)|0];B[u+64|0]=l?3-n|0:n;n=E[f+(m&3)|0];B[u+58|0]=l?3-n|0:n;n=E[f+(m>>>4&3)|0];B[u+62|0]=l?3-n|0:n;m=E[f+(m>>>2&3)|0];B[u+60|0]=l?3-m|0:m;m=E[w+3|0];n=E[f+(m>>>6|0)|0];B[u+72|0]=l?3-n|0:n;n=E[f+(m&3)|0];B[u+66|0]=l?3-n|0:n;n=E[f+(m>>>4&3)|0];B[u+70|0]=l?3-n|0:n;f=E[f+(m>>>2&3)|0];B[u+68|0]=l?3-f|0:f}D[p+8>>2]=0;D[p+12>>2]=0;B[p+7|0]=192;t=0;B[p+3|0]=0;B[p+4|0]=0;B[p+5|0]=0;B[p+6|0]=0;B[p+2|0]=1;B[p|0]=66;B[p+1|0]=132;D[u+112>>2]=17;kc(p,u+32|0,u+112|0,4);kc(p,wb,u+112|0,4);while(1){f=126-(t<<1)|0;l=p+(f>>>3|0)|0;m=l;n=E[l|0];l=u+42|0;B[m|0]=n|E[E[l+t|0]+223968|0]<<(f&6);f=t|1;m=126-(f<<1)|0;n=p+(m>>>3|0)|0;B[n|0]=E[n|0]|E[E[f+l|0]+223968|0]<<(m&4);t=t+2|0;if((t|0)!=32){continue}break};break ca;case 13:m=J(X+T|0,h)+b|0;f=E[t+4|0];l=E[w+8|0];n=E[w+9|0];if((l|0)==(n|0)){n=E[t+2|0];p=n>>>2|0;n=n<<3;s=E[t+1|0];s=s<<3|s>>>2;f=D[((f<<4)+(l<<2)|0)+29120>>2];t=E[t|0];t=f+(t<<3|t>>>2)|0;_a:{if(t>>>0<256){break _a}l=(t|0)>-1;t=255;if(l){break _a}t=0}n=n|p;l=f+s|0;$a:{if(l>>>0<256){break $a}p=(l|0)>-1;l=255;if(p){break $a}l=0}f=f+n|0;ab:{if(f>>>0<256){break ab}n=(f|0)>-1;f=255;if(n){break ab}f=0}n=t<<1;p=E[n+446592|0];l=l<<1;s=E[l+447104|0]<<5;f=f<<1;B[m|0]=s|E[f+446592|0];B[m+1|0]=(s|p<<10)>>>8;n=E[n+446593|0];f=E[f+446593|0];l=E[l+447105|0];B[m+4|0]=85;B[m+5|0]=85;B[m+6|0]=85;B[m+7|0]=85;p=f;f=l<<5;B[m+2|0]=p|f;B[m+3|0]=(f|n<<11)>>>8;break ca}if(!(E[w+10|0]!=2|f>>>0<7|((n|0)!=3|l))){eb(u+32|0,t,f);f=E[(E[u+32|0]<<1)+448129|0];l=E[u+44|0];n=E[u+46|0];p=E[u+45|0];s=E[(E[u+33|0]<<1)+448129|0]<<5;B[m|0]=s|E[(E[u+34|0]<<1)+448129|0];B[m+1|0]=(s|f<<10)>>>8;f=E[(l<<1)+448129|0];l=E[(p<<1)+448641|0]<<5;B[m+2|0]=l|E[(n<<1)+448129|0];B[m+3|0]=(l|f<<11)>>>8;B[m+4|0]=E[w|0];B[m+5|0]=E[w+1|0];B[m+6|0]=E[w+2|0];B[m+7|0]=E[w+3|0];break ca}n=J(D[((l<<4)+(n<<2)|0)+449152>>2],10);p=f<<5;f=n+J(p+E[t+2|0]|0,60)<<2;l=n+J(p+E[t+1|0]|0,60)<<2;n=n+J(p+E[t|0]|0,60)<<2;s=F[f+224246>>1]+(F[l+285686>>1]+F[n+224246>>1]|0)|0;t=F[f+224242>>1]+(F[l+285682>>1]+F[n+224242>>1]|0)|0;p=s>>>0>>0;O=f;x=p;v=F[f+224250>>1]+(F[l+285690>>1]+F[n+224250>>1]|0)|0;p=p?s:t;s=v>>>0

>>0;x=s?2:x;t=F[f+224254>>1]+(F[l+285694>>1]+F[n+224254>>1]|0)|0;p=s?v:p;s=t>>>0

>>0;x=s?3:x;v=F[f+224258>>1]+(F[l+285698>>1]+F[n+224258>>1]|0)|0;p=s?t:p;s=v>>>0

>>0;x=s?4:x;t=F[f+224262>>1]+(F[l+285702>>1]+F[n+224262>>1]|0)|0;p=s?v:p;s=t>>>0

>>0;x=s?5:x;v=F[f+224266>>1]+(F[l+285706>>1]+F[n+224266>>1]|0)|0;p=s?t:p;s=v>>>0

>>0;x=s?6:x;t=F[f+224270>>1]+(F[l+285710>>1]+F[n+224270>>1]|0)|0;p=s?v:p;s=t>>>0

>>0;x=s?7:x;v=F[f+224274>>1]+(F[l+285714>>1]+F[n+224274>>1]|0)|0;p=s?t:p;s=v>>>0

>>0;p=F[f+224278>>1]+(F[l+285718>>1]+F[n+224278>>1]|0)>>>0<(s?v:p)>>>0?9:s?8:x;f=p<<2;s=O+f|0;l=f+l|0;t=E[l+285681|0]<<5;B[m+2|0]=E[s+224241|0]|t;l=E[l+285680|0]<<5;B[m|0]=l|E[s+224240|0];n=f+n|0;B[m+3|0]=(t|E[n+224241|0]<<11)>>>8;B[m+1|0]=(l|E[n+224240|0]<<10)>>>8;l=E[w|0];if((p|0)==6){B[m+4|0]=l;B[m+5|0]=E[w+1|0];B[m+6|0]=E[w+2|0];B[m+7|0]=E[w+3|0];break ca}n=E[w+1|0];p=E[w+2|0];s=E[w+3|0];f=f+347120|0;B[m+4|0]=E[f+(l>>>2&3)|0]<<2|E[f+(l&3)|0]|E[f+(l>>>4&3)|0]<<4|E[f+(l>>>6|0)|0]<<6;B[m+7|0]=E[f+(s&3)|0]|E[f+(s>>>2&3)|0]<<2|E[f+(s>>>4&3)|0]<<4|E[f+(s>>>6|0)|0]<<6;B[m+6|0]=E[f+(p&3)|0]|E[f+(p>>>2&3)|0]<<2|E[f+(p>>>4&3)|0]<<4|E[f+(p>>>6|0)|0]<<6;B[m+5|0]=E[f+(n&3)|0]|E[f+(n>>>2&3)|0]<<2|E[f+(n>>>4&3)|0]<<4|E[f+(n>>>6|0)|0]<<6;break ca;case 16:dd(J(X+T|0,h)+b|0,t,w);break ca;case 17:m=J(X+T|0,h)+b|0;D[m+4>>2]=D[m+4>>2]&2147450878|32768;z=x+J(F[m+2>>1],11)|0;l=I+(F[m>>1]<<3)|0;f=E[l+1|0];f=f<<3|f>>>2;l=E[l+4|0]<<4;s=f+D[l+29120>>2]|0;bb:{if(s>>>0<256){break bb}n=(s|0)>-1;s=255;if(n){break bb}s=0}x=E[z+10|0];D[u+112>>2]=s;v=f+D[l+29124>>2]|0;cb:{if(v>>>0<256){break cb}n=(v|0)>-1;v=255;if(n){break cb}v=0}D[u+116>>2]=v;n=f+D[l+29128>>2]|0;db:{if(n>>>0<256){break db}p=(n|0)>-1;n=255;if(p){break db}n=0}D[u+120>>2]=n;f=f+D[l+29132>>2]|0;eb:{if(f>>>0<256){break eb}l=(f|0)>-1;f=255;if(l){break eb}f=0}D[u+124>>2]=f;p=E[z+8|0];l=D[(u+112|0)+(p<<2)>>2];fb:{if((x|0)==1){break fb}x=E[z+9|0];x=p>>>0>x>>>0?p:x;while(1){if((p|0)==(x|0)){break fb}p=p+1|0;if(D[(u+112|0)+(p<<2)>>2]==(l|0)){continue}break}l=-1;break ga}if((l|0)<250){break ga}dd(m,t,w);break ca;case 20:f=J(X+T|0,h)+b|0;C[f+2>>1]=l;C[f>>1]=ca;break ca;case 23:l=E[t+1|0];n=l<<3|l>>>2;f=E[t+4|0]<<4;l=n+D[f+29120>>2]|0;gb:{if(l>>>0<256){break gb}p=(l|0)>-1;l=255;if(p){break gb}l=0}D[u+32>>2]=l;l=n+D[f+29124>>2]|0;hb:{if(l>>>0<256){break hb}p=(l|0)>-1;l=255;if(p){break hb}l=0}p=z+va|0;D[u+36>>2]=l;l=n+D[f+29128>>2]|0;ib:{if(l>>>0<256){break ib}s=(l|0)>-1;l=255;if(s){break ib}l=0}p=p<<2;D[u+40>>2]=l;t=n+D[f+29132>>2]|0;jb:{if(t>>>0<256){break jb}f=(t|0)>-1;t=255;if(f){break jb}t=0}p=b+p|0;D[u+44>>2]=t;if((m|0)>3){break ha}if((V|0)==(ga|0)){break ca}l=v&-2;z=v&1;n=0;while(1){kb:{if(!m){break kb}s=E[n+w|0];t=0;f=l;if((v|0)!=1){while(1){B[(t<<2|3)+p|0]=D[(u+32|(s>>>(t<<1)&3)<<2)>>2];x=t|1;B[(x<<2|3)+p|0]=D[(u+32|(s>>>(x<<1)&3)<<2)>>2];t=t+2|0;f=f-2|0;if(f){continue}break}}if(!z){break kb}B[(t<<2|3)+p|0]=D[(u+32|(s>>>(t<<1)&3)<<2)>>2]}p=p+sa|0;n=n+1|0;if((ha|0)!=(n|0)){continue}break};break ca;case 0:f=J(X+T|0,h)+b|0;l=E[t|0];qa=qa&7|(l>>>0<31?l<<3:-8);l=E[t+4|0];ma=ma&3|l<<5|l<<2;l=E[t+2|0];Ca=Ca&7|(l>>>0<31?l:31)<<3;l=E[t+1|0];ua=ua&7|(l>>>0<31?l:31)<<3;D[f>>2]=qa&255|(ma<<24|(Ca&255)<<16|(ua&255)<<8);D[f+4>>2]=E[w+4|0]|E[w+5|0]<<8|(E[w+6|0]<<16|E[w+7|0]<<24);break ca;case 18:l=J(X+T|0,h)+b|0;m=E[t+4|0];lb:{mb:{nb:{p=E[w+8|0];f=E[w+9|0];if((p|0)!=(f|0)){s=0;switch(p|0){case 1:break mb;case 0:break nb;default:break lb}}n=l;f=E[t|0];m=D[((m<<4)+(p<<2)|0)+29120>>2]+(f<<3|f>>>2)|0;ob:{if(m>>>0<256){f=m;break ob}f=0;if((m|0)<0){break ob}f=255}C[n>>1]=f|7424;f=F[204304]|F[204305]<<16;B[l+2|0]=f;B[l+3|0]=f>>>8;B[l+4|0]=f>>>16;B[l+5|0]=f>>>24;f=F[204306];B[l+6|0]=f;B[l+7|0]=f>>>8;break ca}s=(f|0)==3?0:((f|0)==2)<<1;break lb}s=(f|0)==3?1:(f|0)==2?3:0}f=E[t|0]+(m<<5)<<4|s<<2;m=E[f+408625|0];C[l>>1]=m<<4&3840|E[f+408624|0]|m<<12;t=F[f+408626>>1];p=E[w|0];f=(t>>>J(p>>>2&3,3)&7)<<1;n=(t>>>J(p&3,3)&7)<<13;s=t>>>J(p>>>4&3,3)<<21&14680064|t>>>J(p>>>6|0,3)<<9&3584;p=E[w+1|0];z=f|n|(t>>>J(p&3,3)&7)<<10;f=t>>>J(p>>>2&3,3)&7;n=f>>>2|0;f=t>>>J(p>>>6|0,3)<<6&448|(t>>>J(p>>>4&3,3)<<18&1835008|(f<<30|s));v=E[w+3|0];w=E[w+2|0];B[l+7|0]=f|(t>>>J(v>>>6|0,3)&7|t>>>J(w>>>6|0,3)<<3&56);m=f;f=n|z|(t>>>J(w&3,3)&7)<<7;B[l+2|0]=f>>>8;B[l+3|0]=(t>>>J(v&3,3)&7)<<4|f;m=t>>>J(w>>>2&3,3)<<27&939524096|m;s=m|t>>>J(w>>>4&3,3)<<15&229376;B[l+5|0]=(f&65535)<<16|s>>>16;B[l+4|0]=(f&16777215)<<8|(t>>>J(v>>>2&3,3)<<24&117440512|m)>>>24;B[l+6|0]=(f&255)<<24|(t>>>J(v>>>4&3,3)<<12&28672|s)>>>8;break ca;case 27:eb(u+32|0,t,E[t+4|0]);f=J(E[u+33|0],15)+128|0;C[u+112>>1]=(f>>>8|0)+f>>>8;f=J(E[u+37|0],15)+128|0;C[u+114>>1]=(f>>>8|0)+f>>>8;f=J(E[u+41|0],15)+128|0;C[u+116>>1]=(f>>>8|0)+f>>>8;f=J(E[u+45|0],15)+128|0;C[u+118>>1]=(f>>>8|0)+f>>>8;if((V|0)==(ga|0)){break ca}f=v&-2;x=v&1;l=(z+va<<1)+b|0;s=0;while(1){pb:{if((o|0)==(z|0)){break pb}n=E[s+w|0];t=0;m=f;if((v|0)!=1){while(1){p=t<<1;C[p+l>>1]=F[(u+112|0)+((n>>>p&3)<<1)>>1];p=p|2;C[p+l>>1]=F[(u+112|0)+((n>>>p&3)<<1)>>1];t=t+2|0;m=m-2|0;if(m){continue}break}}if(!x){break pb}m=t<<1;C[m+l>>1]=F[(u+112|0)+((n>>>m&3)<<1)>>1]}l=l+La|0;s=s+1|0;if((ha|0)!=(s|0)){continue}break};break ca;case 28:eb(u+32|0,t,E[t+4|0]);f=J(E[u+33|0],15)+128|0;l=(f>>>8|0)+f&16128;f=J(E[u+32|0],15)+128|0;l=l|(f>>>8|0)+f<<4&61440;f=J(E[u+34|0],15)+128|0;C[u+112>>1]=l|((f>>>8|0)+f&16128)>>>4|15;f=J(E[u+37|0],15)+128|0;l=(f>>>8|0)+f&16128;f=J(E[u+36|0],15)+128|0;l=l|(f>>>8|0)+f<<4&61440;f=J(E[u+38|0],15)+128|0;C[u+114>>1]=l|((f>>>8|0)+f&16128)>>>4|15;f=J(E[u+41|0],15)+128|0;l=(f>>>8|0)+f&16128;f=J(E[u+40|0],15)+128|0;l=l|(f>>>8|0)+f<<4&61440;f=J(E[u+42|0],15)+128|0;C[u+116>>1]=l|((f>>>8|0)+f&16128)>>>4|15;f=J(E[u+45|0],15)+128|0;l=(f>>>8|0)+f&16128;f=J(E[u+44|0],15)+128|0;l=l|(f>>>8|0)+f<<4&61440;f=J(E[u+46|0],15)+128|0;C[u+118>>1]=l|((f>>>8|0)+f&16128)>>>4|15;if((V|0)==(ga|0)){break ca}f=v&-2;x=v&1;l=(z+va<<1)+b|0;s=0;while(1){qb:{if((o|0)==(z|0)){break qb}n=E[s+w|0];t=0;m=f;if((v|0)!=1){while(1){p=t<<1;C[p+l>>1]=F[(u+112|0)+((n>>>p&3)<<1)>>1];p=p|2;C[p+l>>1]=F[(u+112|0)+((n>>>p&3)<<1)>>1];t=t+2|0;m=m-2|0;if(m){continue}break}}if(!x){break qb}m=t<<1;C[m+l>>1]=F[(u+112|0)+((n>>>m&3)<<1)>>1]}l=l+La|0;s=s+1|0;if((ha|0)!=(s|0)){continue}break};break ca;case 26:eb(u+32|0,t,E[t+4|0]);f=J(E[u+34|0],15)+128|0;l=(f>>>8|0)+f>>>4&1008;f=J(E[u+32|0],15)+128|0;m=(f>>>8|0)+f<<4&61440;f=J(E[u+33|0],15)+128|0;C[u+112>>1]=l|(m|(f>>>8|0)+f&16128);f=J(E[u+38|0],15)+128|0;l=(f>>>8|0)+f>>>4&1008;f=J(E[u+36|0],15)+128|0;m=(f>>>8|0)+f<<4&61440;f=J(E[u+37|0],15)+128|0;C[u+114>>1]=l|(m|(f>>>8|0)+f&16128);f=J(E[u+42|0],15)+128|0;l=(f>>>8|0)+f>>>4&1008;f=J(E[u+40|0],15)+128|0;m=(f>>>8|0)+f<<4&61440;f=J(E[u+41|0],15)+128|0;C[u+116>>1]=l|(m|(f>>>8|0)+f&16128);f=J(E[u+46|0],15)+128|0;l=(f>>>8|0)+f>>>4&1008;f=J(E[u+44|0],15)+128|0;m=(f>>>8|0)+f<<4&61440;f=J(E[u+45|0],15)+128|0;C[u+118>>1]=l|(m|(f>>>8|0)+f&16128);if((V|0)==(ga|0)){break ca}f=v&-2;x=v&1;l=(z+va<<1)+b|0;n=0;while(1){rb:{if((o|0)==(z|0)){break rb}p=E[n+w|0];t=0;m=f;if((v|0)!=1){while(1){s=t<<1;I=s+l|0;C[I>>1]=F[(u+112|0)+((p>>>s&3)<<1)>>1]|F[I>>1]&15;s=s|2;I=s+l|0;C[I>>1]=F[(u+112|0)+((p>>>s&3)<<1)>>1]|F[I>>1]&15;t=t+2|0;m=m-2|0;if(m){continue}break}}if(!x){break rb}m=t<<1;s=m+l|0;C[s>>1]=F[(u+112|0)+((p>>>m&3)<<1)>>1]|F[s>>1]&15}l=l+La|0;n=n+1|0;if((ha|0)!=(n|0)){continue}break};break ca;case 24:case 25:eb(u+32|0,t,E[t+4|0]);sb:{if((g|0)!=24){f=J(E[u+33|0],63)+128|0;l=(f>>>8|0)+f>>>3&8160;f=J(E[u+34|0],31)+128|0;l=l|(f>>>8|0)+f<<3&63488;f=J(E[u+32|0],31)+128|0;C[u+112>>1]=l|(f>>>8|0)+f>>>8;f=J(E[u+37|0],63)+128|0;l=(f>>>8|0)+f>>>3&8160;f=J(E[u+38|0],31)+128|0;l=l|(f>>>8|0)+f<<3&63488;f=J(E[u+36|0],31)+128|0;C[u+114>>1]=l|(f>>>8|0)+f>>>8;f=J(E[u+41|0],63)+128|0;l=(f>>>8|0)+f>>>3&8160;f=J(E[u+42|0],31)+128|0;l=l|(f>>>8|0)+f<<3&63488;f=J(E[u+40|0],31)+128|0;C[u+116>>1]=l|(f>>>8|0)+f>>>8;t=Da;f=ba;break sb}f=J(E[u+33|0],63)+128|0;l=(f>>>8|0)+f>>>3&8160;f=J(E[u+32|0],31)+128|0;l=l|(f>>>8|0)+f<<3&63488;f=J(E[u+34|0],31)+128|0;C[u+112>>1]=l|(f>>>8|0)+f>>>8;f=J(E[u+37|0],63)+128|0;l=(f>>>8|0)+f>>>3&8160;f=J(E[u+36|0],31)+128|0;l=l|(f>>>8|0)+f<<3&63488;f=J(E[u+38|0],31)+128|0;C[u+114>>1]=l|(f>>>8|0)+f>>>8;f=J(E[u+41|0],63)+128|0;l=(f>>>8|0)+f>>>3&8160;f=J(E[u+40|0],31)+128|0;l=l|(f>>>8|0)+f<<3&63488;f=J(E[u+42|0],31)+128|0;C[u+116>>1]=l|(f>>>8|0)+f>>>8;t=ba;f=Da}l=J(E[ba+1|0],63)+128|0;m=(l>>>8|0)+l>>>3&8160;l=J(E[t|0],31)+128|0;f=J(E[f|0],31)+128|0;C[u+118>>1]=m|(l>>>8|0)+l<<3&63488|(f>>>8|0)+f>>>8;if((V|0)==(ga|0)){break ca}l=(z+va<<1)+b|0;f=v&-2;x=v&1;s=0;while(1){tb:{if((o|0)==(z|0)){break tb}n=E[s+w|0];t=0;m=f;if((v|0)!=1){while(1){p=t<<1;C[p+l>>1]=F[(u+112|0)+((n>>>p&3)<<1)>>1];p=p|2;C[p+l>>1]=F[(u+112|0)+((n>>>p&3)<<1)>>1];t=t+2|0;m=m-2|0;if(m){continue}break}}if(!x){break tb}m=t<<1;C[m+l>>1]=F[(u+112|0)+((n>>>m&3)<<1)>>1]}l=l+La|0;s=s+1|0;if((ha|0)!=(s|0)){continue}break};break ca;case 22:eb(u+32|0,t,E[t+4|0]);if((V|0)==(ga|0)){break ca}t=(z+va<<2)+b|0;v=0;while(1){if((o|0)!=(z|0)){m=E[w+v|0];p=0;while(1){f=p<<2;l=u+32|(m>>>(p<<1)&3)<<2;B[f+t|0]=E[l|0];B[(f|1)+t|0]=E[l+1|0];B[(f|2)+t|0]=E[l+2|0];B[(f|3)+t|0]=255;p=p+1|0;if((n|0)!=(p|0)){continue}break}}t=t+sa|0;v=v+1|0;if((ha|0)!=(v|0)){continue}break};break ca;case 21:break ia;default:break ca}}eb(u+32|0,t,E[t+4|0]);if((V|0)==(ga|0)){break ca}p=(z+va<<2)+b|0;v=0;while(1){if((o|0)!=(z|0)){m=E[w+v|0];t=0;while(1){f=t<<2;l=u+32|(m>>>(t<<1)&3)<<2;B[f+p|0]=E[l|0];B[(f|1)+p|0]=E[l+1|0];B[(f|2)+p|0]=E[l+2|0];t=t+1|0;if((n|0)!=(t|0)){continue}break}}p=p+sa|0;v=v+1|0;if((ha|0)!=(v|0)){continue}break}break ca}l=0;if((V|0)==(ga|0)){break ca}while(1){f=E[l+w|0];B[p+3|0]=D[(u+32|(f&3)<<2)>>2];B[p+7|0]=D[(u+32|f&12)>>2];B[p+11|0]=D[(u+32|f>>>2&12)>>2];B[p+15|0]=D[(u+32|f>>>4&12)>>2];p=p+sa|0;l=l+1|0;if((ha|0)!=(l|0)){continue}break}break ca}x=E[w+9|0];p=E[w+8|0];Y=E[w+10|0];P=E[t+4|0];I=E[t|0];H=E[t+1|0];Q=E[t+2|0];R=f>>>0<256?f:f>>31^-1;B[u+111|0]=R;ia=n>>>0<256?n:n>>31^-1;B[u+107|0]=ia;W=v>>>0<256?v:v>>31^-1;B[u+103|0]=W;ja=s>>>0<256?s:s>>31^-1;B[u+99|0]=ja;s=P<<4;v=D[s+29132>>2];f=Q<<3|Q>>>2;n=v+f|0;Q=n>>>0<256?n:n>>31^-1;B[u+110|0]=Q;n=H<<3|H>>>2;H=n+v|0;P=H>>>0<256?H:H>>31^-1;B[u+109|0]=P;O=v;v=I<<3|I>>>2;I=O+v|0;Qa=I>>>0<256?I:I>>31^-1;B[u+108|0]=Qa;I=D[s+29128>>2];H=I+f|0;Ra=H>>>0<256?H:H>>31^-1;B[u+106|0]=Ra;H=n+I|0;Sa=H>>>0<256?H:H>>31^-1;B[u+105|0]=Sa;I=v+I|0;Ua=I>>>0<256?I:I>>31^-1;B[u+104|0]=Ua;I=D[s+29124>>2];H=I+f|0;Na=H>>>0<256?H:H>>31^-1;B[u+102|0]=Na;H=n+I|0;H=H>>>0<256?H:H>>31^-1;B[u+101|0]=H;I=v+I|0;Oa=I>>>0<256?I:I>>31^-1;B[u+100|0]=Oa;O=f;f=D[s+29120>>2];I=O+f|0;Pa=I>>>0<256?I:I>>31^-1;B[u+98|0]=Pa;n=f+n|0;B[u+97|0]=n>>>0<256?n:n>>31^-1;f=f+v|0;tb=f>>>0<256?f:f>>31^-1;B[u+96|0]=tb;ub:{vb:{wb:{if(Y>>>0<2){break wb}Y=p>>>0>x>>>0?p:x;n=(u+96|0)+(p<<2)|0;f=p;while(1){if((f|0)==(Y|0)){break wb}v=E[n|0];f=f+1|0;I=(u+96|0)+(f<<2)|0;if(!(E[n+2|0]==E[I+2|0]?(v|0)!=E[I|0]|E[n+1|0]!=E[I+1|0]:1)){continue}break}if((l|0)<0){break vb}M=K(K(v>>>0)*K(.003921568859368563));U=K(K(E[n+2|0])*K(.003921568859368563));ea=K(K(E[n+1|0])*K(.003921568859368563));f=(u+96|0)+(x<<2)|0;fa=K(K(E[f+2|0])*K(.003921568859368563));aa=K(K(E[f+1|0])*K(.003921568859368563));ka=K(K(E[f|0])*K(.003921568859368563));oa=K(K(l|0)*K(.003921568859368563));la=oa;break ub}if((l|0)>=0){f=E[t+2|0];v=f>>>2|0;f=f<<3;n=E[t+1|0];w=n<<3|n>>>2;n=E[t|0];t=n<<3|n>>>2;n=D[(s+(p<<2)|0)+29120>>2];p=t+n|0;xb:{if(p>>>0<256){break xb}s=(p|0)>-1;p=255;if(s){break xb}p=0}s=f|v;f=n+w|0;yb:{if(f>>>0<256){break yb}t=(f|0)>-1;f=255;if(t){break yb}f=0}t=n+s|0;zb:{if(t>>>0<256){break zb}n=(t|0)>-1;t=255;if(n){break zb}t=0}v=l<<1;w=E[v+449728|0];n=(w<<5|w<<1)-l|0;O=J(n,n)<<1;n=((J(f,15)+128&65535)>>>0)/255|0;s=n<<1|n>>>3;s=(s<<3|s>>>2)-f|0;x=J(s,s);s=((J(p,15)+128&65535)>>>0)/255|0;z=s<<1|s>>>3;z=(z<<3|z>>>2)-p|0;H=x+J(z,z)|0;z=((J(t,7)+128&65535)>>>0)/255|0;x=z<<2|z>>>1;x=(x<<3|x>>>2)-t|0;x=(O+H|0)+J(x,x)|0;if(!((l|0)>2?x:0)){D[m>>2]=0;D[m+4>>2]=z<<1&14|(w<<12&28672|(s<<8&3840|n<<4&240))|32768;break ca}I=((J(t,15)+128&65535)>>>0)/255|0;Q=I<<1|I>>>3;Q=(Q<<3|Q>>>2)-t|0;O=H+J(Q,Q)|0;ia=E[v+450240|0];H=ia<<1|1;H=(H<<4|H)-l|0;H=O+(J(H,H)<<1)|0;Y=f<<1;Q=E[Y+451265|0];P=Q<<1|Q>>>3;O=J(P<<3|P>>>2,3);Y=E[Y+451264|0];P=Y<<1|Y>>>3;f=(O+J(P<<3|P>>>2,5)>>>3|0)-f|0;O=J(f,f);P=p<<1;f=E[P+451265|0];R=f<<1|f>>>3;W=J(R<<3|R>>>2,3);P=E[P+451264|0];R=P<<1|P>>>3;p=(W+J(R<<3|R>>>2,5)>>>3|0)-p|0;O=O+J(p,p)|0;R=t<<1;p=E[R+450753|0];W=p<<1|p>>>3;ja=J(W<<3|W>>>2,3);R=E[R+450752|0];W=R<<2|R>>>1;t=(ja+J(W<<3|W>>>2,5)>>>3|0)-t|0;O=O+J(t,t)|0;W=E[v+449217|0];t=W<<1|1;ja=J(t<<4|t,3);t=E[v+449216|0];l=(ja+J(t<<5|t<<1,5)>>>3|0)-l|0;l=O+(J(l,l)<<1)|0;if(!(l>>>0>=x>>>0|l>>>0>=H>>>0)){D[m>>2]=1431655765;D[m+4>>2]=W<<28&1879048192|(t<<12&28672|(p<<16&983040|(Q<<20&15728640|(f<<24&251658240|(R<<1&14|(P<<8&3840|Y<<4&240))))))|32768;break ca}if(x>>>0>>0){D[m>>2]=0;D[m+4>>2]=z<<1&14|(w<<12&28672|(s<<8&3840|n<<4&240))|32768;break ca}D[m>>2]=-1;D[m+4>>2]=ia<<28&1879048192|(I<<16&983040|(s<<24&251658240|n<<20&15728640))|32768;break ca}la=K(K(E[((u+96|0)+(E[z+8|0]<<2)|0)+3|0])*K(.003921568859368563));oa=K(K(E[((u+96|0)+(E[z+9|0]<<2)|0)+3|0])*K(.003921568859368563));f=(u+96|0)+(p<<2)|0;ka=K(K(E[f|0])*K(.003921568859368563));M=ka;aa=K(K(E[f+1|0])*K(.003921568859368563));ea=aa;fa=K(K(E[f+2|0])*K(.003921568859368563));U=fa;break ub}Ab:{Bb:{if(!v){break Bb}f=(u+96|0)+(x<<2)|0;l=E[f|0];if(!E[n+1|0]|(l|0)==255|(!E[n+2|0]|E[f+1|0]==255)){break Bb}if(E[f+2|0]==255){break Bb}p=(u+96|0)+(E[z+8|0]<<2)|0;if(!E[p+3|0]){break Bb}s=(u+96|0)+(E[z+9|0]<<2)|0;if(E[s+3|0]!=255){break Ab}}f=0;s=0;v=0;n=0;t=0;while(1){p=t>>>2|0;x=E[p+w|0];l=(u+32|0)+(t<<2)|0;O=E[p+z|0];p=t<<1&6;I=E[(u+96|(O>>>p&3)<<2)+3|0];B[l+3|0]=I;p=u+96|(x>>>p&3)<<2;x=E[p+2|0];B[l+2|0]=x;H=E[p+1|0];B[l+1|0]=H;O=l;l=E[p|0];B[O|0]=l;n=n+I|0;v=v+x|0;s=s+H|0;f=f+l|0;t=t+1|0;if((t|0)!=16){continue}break}M=K(v>>>0);Qb=K(M*K(.00024509805371053517));U=K(f>>>0);Rb=K(U*K(.00024509805371053517));Fb=K(n>>>0);Gb=K(Fb*K(.0625));Hb=K(M*K(.0625));Ib=K(s>>>0);Jb=K(Ib*K(.0625));Kb=K(U*K(.0625));fa=K(0);t=0;aa=K(0);ka=K(0);oa=K(0);while(1){f=(u+32|0)+(t<<2)|0;na=K(K(E[f+2|0])-Hb);wa=K(K(E[f+3|0])-Gb);zb=K(na*wa);Ha=K(K(E[f+1|0])-Jb);Ab=K(Ha*wa);xa=K(K(E[f|0])-Kb);Bb=K(xa*wa);la=t?oa:xa;M=t?ka:Ha;U=t?aa:na;ea=t?fa:wa;Ia=K(K(K(K(la*la)+K(M*M))+K(U*U))+K(ea*ea));if(Ia!=K(0)){Ia=K(K(1)/K(S(Ia)));ea=K(ea*Ia);la=K(la*Ia);U=K(U*Ia);M=K(M*Ia)}fa=K(fa+K(K(K(K(Bb*la)+K(Ab*M))+K(zb*U))+K(K(wa*wa)*ea)));wa=K(xa*na);Ia=K(Ha*na);aa=K(aa+K(K(K(K(wa*la)+K(Ia*M))+K(K(na*na)*U))+K(zb*ea)));na=K(xa*Ha);ka=K(ka+K(K(K(K(na*la)+K(K(Ha*Ha)*M))+K(Ia*U))+K(Ab*ea)));oa=K(oa+K(K(K(K(K(xa*xa)*la)+K(na*M))+K(wa*U))+K(Bb*ea)));t=t+1|0;if((t|0)!=16){continue}break}M=K(K(fa*fa)+K(K(aa*aa)+K(K(oa*oa)+K(ka*ka))));if(M!=K(0)){M=K(K(1)/K(S(M)));fa=K(fa*M);aa=K(aa*M);oa=K(oa*M);ka=K(ka*M);M=K(K(fa*fa)+K(K(aa*aa)+K(K(oa*oa)+K(ka*ka))))}if(Mea?M:ea;U=UK(1))){break Cb}Ha=K(1)}la=K(M*K(.003921568859368563));ea=K(fa*na);M=K(Ia+xa);Db:{if(UK(1))){break Db}wa=K(1)}oa=K(oa*la);U=K(Ab+ea);na=K(0);xa=K(0);Eb:{if(MK(1))){break Eb}xa=K(1)}M=K(ka*la);ka=K(zb+oa);Fb:{if(UK(1))){break Fb}na=K(1)}aa=K(aa*la);U=K(Bb+M);ea=K(0);M=K(0);Gb:{if(kaK(1))){break Gb}M=K(1)}ka=K(fa*la);fa=K(Ia+aa);Hb:{if(UK(1))){break Hb}ea=K(1)}aa=K(Ab+ka);la=K(0);U=K(0);Ib:{if(faK(1))){break Ib}U=K(1)}Jb:{if(aaK(1))){break Jb}la=K(1)}if(!(la>2]=J(ja&255,3);D[u+20>>2]=J(W&255,3);D[u+24>>2]=J(ia&255,3);D[u+28>>2]=J(R&255,3);D[u+32>>2]=(E[u+97|0]+(tb&255)|0)+(Pa&255);D[u+36>>2]=((H&255)+(Oa&255)|0)+(Na&255);D[u+40>>2]=((Sa&255)+(Ua&255)|0)+(Ra&255);D[u+44>>2]=((P&255)+(Qa&255)|0)+(Q&255);M=K(K(l>>>0)*K(.003921568859368563));la=K(K(v>>>0)*K(.003921568859368563));Ha=K(E[s+3|0]);U=K(K(E[f+2|0])*K(.003921568859368563));ea=K(K(E[f+1|0])*K(.003921568859368563));xa=K(E[p+3|0]);na=K(K(E[n+2|0])*K(.003921568859368563));wa=K(K(E[n+1|0])*K(.003921568859368563));f=E[w|0];Qa=D[(u+32|(f&3)<<2)>>2];l=E[z|0];Ra=D[(u+16|(l&3)<<2)>>2];n=Qa-Ra|0;Sa=D[(u+32|f&12)>>2];Ua=D[(u+16|l&12)>>2];p=Sa-Ua|0;t=(n|0)>(p|0)?n:p;Na=D[(u+32|f>>>2&12)>>2];Oa=D[(u+16|l>>>2&12)>>2];s=Na-Oa|0;t=(s|0)<(t|0)?t:s;Pa=D[(u+32|f>>>4&12)>>2];Wa=D[(u+16|l>>>4&12)>>2];f=Pa-Wa|0;x=(f|0)<(t|0)?t:f;l=E[w+1|0];Xa=D[(u+32|(l&3)<<2)>>2];t=E[z+1|0];Za=D[(u+16|(t&3)<<2)>>2];v=Xa-Za|0;I=(v|0)<(x|0)?x:v;_a=D[(u+32|l&12)>>2];$a=D[(u+16|t&12)>>2];x=_a-$a|0;H=(x|0)<(I|0)?I:x;ab=D[(u+32|l>>>2&12)>>2];cb=D[(u+16|t>>>2&12)>>2];I=ab-cb|0;H=(H|0)>(I|0)?H:I;db=D[(u+32|l>>>4&12)>>2];fb=D[(u+16|t>>>4&12)>>2];l=db-fb|0;Y=(l|0)<(H|0)?H:l;t=E[w+2|0];gb=D[(u+32|(t&3)<<2)>>2];H=E[z+2|0];hb=D[(u+16|(H&3)<<2)>>2];Q=gb-hb|0;P=(Q|0)<(Y|0)?Y:Q;ib=D[(u+32|t&12)>>2];jb=D[(u+16|H&12)>>2];Y=ib-jb|0;R=(P|0)>(Y|0)?P:Y;kb=D[(u+32|t>>>2&12)>>2];lb=D[(u+16|H>>>2&12)>>2];P=kb-lb|0;R=(P|0)<(R|0)?R:P;mb=D[(u+32|t>>>4&12)>>2];nb=D[(u+16|H>>>4&12)>>2];t=mb-nb|0;W=(t|0)<(R|0)?R:t;H=E[w+3|0];ob=D[(u+32|(H&3)<<2)>>2];R=E[z+3|0];pb=D[(u+16|(R&3)<<2)>>2];ia=ob-pb|0;ja=(W|0)>(ia|0)?W:ia;qb=D[(u+32|H&12)>>2];rb=D[(u+16|R&12)>>2];W=qb-rb|0;O=(W|0)<(ja|0)?ja:W;sb=D[(u+32|H>>>2&12)>>2];Cb=D[(u+16|R>>>2&12)>>2];ja=sb-Cb|0;O=(ja|0)<(O|0)?O:ja;Db=D[(u+32|H>>>4&12)>>2];Eb=D[(u+16|R>>>4&12)>>2];H=Db-Eb|0;n=(n|0)<(p|0)?n:p;n=(n|0)<(s|0)?n:s;f=(f|0)>(n|0)?n:f;f=(f|0)<(v|0)?f:v;f=(f|0)<(x|0)?f:x;f=(f|0)<(I|0)?f:I;f=(f|0)<(l|0)?f:l;f=(f|0)<(Q|0)?f:Q;f=(f|0)<(Y|0)?f:Y;f=(f|0)<(P|0)?f:P;f=(f|0)<(t|0)?f:t;f=(f|0)<(ia|0)?f:ia;f=(f|0)<(W|0)?f:W;f=(f|0)<(ja|0)?f:ja;O=((H|0)<(O|0)?O:H)-((f|0)<(H|0)?f:H)|0;f=Qa+Ra|0;l=Sa+Ua|0;p=(f|0)>(l|0)?f:l;n=Na+Oa|0;s=(n|0)<(p|0)?p:n;p=Pa+Wa|0;t=(p|0)<(s|0)?s:p;s=Xa+Za|0;v=(s|0)<(t|0)?t:s;t=_a+$a|0;x=(t|0)<(v|0)?v:t;v=ab+cb|0;I=(v|0)<(x|0)?x:v;x=db+fb|0;H=(x|0)<(I|0)?I:x;I=gb+hb|0;Q=(H|0)>(I|0)?H:I;H=ib+jb|0;Y=(H|0)<(Q|0)?Q:H;Q=kb+lb|0;P=(Q|0)<(Y|0)?Y:Q;Y=mb+nb|0;R=(P|0)>(Y|0)?P:Y;P=ob+pb|0;ia=(P|0)<(R|0)?R:P;R=qb+rb|0;W=(R|0)<(ia|0)?ia:R;ia=sb+Cb|0;ja=(W|0)>(ia|0)?W:ia;W=Db+Eb|0;f=(f|0)<(l|0)?f:l;f=(f|0)<(n|0)?f:n;f=(f|0)<(p|0)?f:p;f=(f|0)<(s|0)?f:s;f=(f|0)<(t|0)?f:t;f=(f|0)<(v|0)?f:v;f=(f|0)<(x|0)?f:x;f=(f|0)<(I|0)?f:I;f=(f|0)<(H|0)?f:H;f=(f|0)<(Q|0)?f:Q;f=(f|0)<(Y|0)?f:Y;f=(f|0)<(P|0)?f:P;f=(f|0)<(R|0)?f:R;f=(f|0)<(ia|0)?f:ia;Kb:{if((O|0)<=(((W|0)<(ja|0)?ja:W)-((f|0)<(W|0)?f:W)|0)){ka=M;aa=ea;fa=U;M=la;ea=wa;U=na;break Kb}ka=la;aa=wa;fa=na}oa=K(Ha*K(.003921568859368563));la=K(xa*K(.003921568859368563))}aa=K(K(aa*K(15))+K(.5));Lb:{if(K(L(aa))>>0<256?f:f>>31^-1)&255;l=n<<20&15728640;aa=K(K(ka*K(15))+K(.5));Mb:{if(K(L(aa))>>0<256?f:f>>31^-1)&255;l=l|p<<24&251658240;fa=K(K(fa*K(15))+K(.5));Nb:{if(K(L(fa))>>0<256?f:f>>31^-1)&255;l=l|x<<16&983040;fa=K(K(oa*K(7))+K(.5));Ob:{if(K(L(fa))>>0<256?f:f>>31^-1;l=l|H<<28&1879048192;M=K(K(M*K(15))+K(.5));Pb:{if(K(L(M))>>0<256?f:f>>31^-1)&255;l=l|s<<8&3840;M=K(K(ea*K(15))+K(.5));Qb:{if(K(L(M))>>0<256?f:f>>31^-1)&255;t=l|v<<4&240;l=m;M=K(K(U*K(7))+K(.5));Rb:{if(K(L(M))>>0<256?f:f>>31^-1)&255;t=Q<<1&14|t;M=K(K(la*K(7))+K(.5));Sb:{if(K(L(M))>>0<256?f:f>>31^-1;D[l+4>>2]=t|f<<12&28672|32768;l=p<<1|p>>>3;p=(l<<3|(l&252)>>>2)&255;l=s<<1|s>>>3;I=(l<<3|(l&252)>>>2)&255;t=p-I|0;l=H<<1|1;s=(f<<5|f<<1)&254;p=((l<<4|l)&255)-s|0;f=n<<1|n>>>3;l=(f<<3|(f&252)>>>2)&255;f=v<<1|v>>>3;H=(f<<3|(f&252)>>>2)&255;v=l-H|0;f=x<<1|x>>>3;l=(f<<3|(f&252)>>>2)&255;f=Q<<2|Q>>>1;Q=(f<<3|(f&252)>>>2)&255;x=l-Q|0;n=((J(t,t)+J(p,p)|0)+J(v,v)|0)+J(x,x)|0;f=n>>>1|0;l=J(n,13)>>>4|0;n=J(n,3)>>>4|0;if(!(x|(t|v))){t=J(p,E[u+99|0]-s|0);D[u+32>>2]=(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0));t=J(p,E[u+103|0]-s|0);D[u+36>>2]=(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0));t=J(p,E[u+107|0]-s|0);D[u+40>>2]=(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0));t=l;l=J(p,E[u+111|0]-s|0);D[u+44>>2]=(((t|0)<=(l|0))+((f|0)<=(l|0))|0)+((l|0)>=(n|0));f=E[z|0];B[m|0]=D[(u+32|f&12)>>2]<<2|D[(u+32|(f&3)<<2)>>2]|D[(u+32|f>>>2&12)>>2]<<4|D[(u+32|f>>>4&12)>>2]<<6;f=E[z+1|0];B[m+1|0]=D[(u+32|f&12)>>2]<<2|D[(u+32|(f&3)<<2)>>2]|D[(u+32|f>>>2&12)>>2]<<4|D[(u+32|f>>>4&12)>>2]<<6;f=E[z+2|0];B[m+2|0]=D[(u+32|f&12)>>2]<<2|D[(u+32|(f&3)<<2)>>2]|D[(u+32|f>>>2&12)>>2]<<4|D[(u+32|f>>>4&12)>>2]<<6;f=E[z+3|0];B[m+3|0]=D[(u+32|f&12)>>2]<<2|D[(u+32|(f&3)<<2)>>2]|D[(u+32|f>>>2&12)>>2]<<4|D[(u+32|f>>>4&12)>>2]<<6;break ca}D[u+16>>2]=J(p,E[u+99|0]-s|0);D[u+20>>2]=J(p,E[u+103|0]-s|0);D[u+24>>2]=J(p,E[u+107|0]-s|0);D[u+36>>2]=(J(v,E[u+101|0]-H|0)+J(t,E[u+100|0]-I|0)|0)+J(x,E[u+102|0]-Q|0);D[u+40>>2]=(J(v,E[u+105|0]-H|0)+J(t,E[u+104|0]-I|0)|0)+J(x,E[u+106|0]-Q|0);D[u+32>>2]=(J(v,E[u+97|0]-H|0)+J(t,(tb&255)-I|0)|0)+J(x,E[u+98|0]-Q|0);D[u+28>>2]=J(p,E[u+111|0]-s|0);D[u+44>>2]=(J(v,E[u+109|0]-H|0)+J(t,E[u+108|0]-I|0)|0)+J(x,E[u+110|0]-Q|0);p=E[z|0];s=E[w|0];t=D[(u+16|p&12)>>2]+D[(u+32|s&12)>>2]|0;v=(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0))<<2;t=D[(u+16|(p&3)<<2)>>2]+D[(u+32|(s&3)<<2)>>2]|0;v=v|(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0));t=D[(u+16|p>>>2&12)>>2]+D[(u+32|s>>>2&12)>>2]|0;p=D[(u+16|p>>>4&12)>>2]+D[(u+32|s>>>4&12)>>2]|0;B[m|0]=v|(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0))<<4|(((p|0)>=(l|0))+((f|0)<=(p|0))|0)+((n|0)<=(p|0))<<6;p=E[z+1|0];s=E[w+1|0];t=D[(u+16|p&12)>>2]+D[(u+32|s&12)>>2]|0;v=(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0))<<2;t=D[(u+16|(p&3)<<2)>>2]+D[(u+32|(s&3)<<2)>>2]|0;v=v|(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0));t=D[(u+16|p>>>2&12)>>2]+D[(u+32|s>>>2&12)>>2]|0;p=D[(u+16|p>>>4&12)>>2]+D[(u+32|s>>>4&12)>>2]|0;B[m+1|0]=v|(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0))<<4|(((p|0)>=(l|0))+((f|0)<=(p|0))|0)+((n|0)<=(p|0))<<6;p=E[z+2|0];s=E[w+2|0];t=D[(u+16|p&12)>>2]+D[(u+32|s&12)>>2]|0;v=(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0))<<2;t=D[(u+16|(p&3)<<2)>>2]+D[(u+32|(s&3)<<2)>>2]|0;v=v|(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0));t=D[(u+16|p>>>2&12)>>2]+D[(u+32|s>>>2&12)>>2]|0;p=D[(u+16|p>>>4&12)>>2]+D[(u+32|s>>>4&12)>>2]|0;B[m+2|0]=v|(((t|0)>=(l|0))+((f|0)<=(t|0))|0)+((n|0)<=(t|0))<<4|(((p|0)>=(l|0))+((f|0)<=(p|0))|0)+((n|0)<=(p|0))<<6;t=m;m=E[z+3|0];p=E[w+3|0];s=D[(u+16|m&12)>>2]+D[(u+32|p&12)>>2]|0;v=(((s|0)>=(l|0))+((f|0)<=(s|0))|0)+((n|0)<=(s|0))<<2;s=D[(u+16|(m&3)<<2)>>2]+D[(u+32|(p&3)<<2)>>2]|0;v=v|(((s|0)>=(l|0))+((f|0)<=(s|0))|0)+((n|0)<=(s|0));s=D[(u+16|m>>>2&12)>>2]+D[(u+32|p>>>2&12)>>2]|0;v=v|(((s|0)>=(l|0))+((f|0)<=(s|0))|0)+((n|0)<=(s|0))<<4;s=l;l=D[(u+16|m>>>4&12)>>2]+D[(u+32|p>>>4&12)>>2]|0;B[t+3|0]=v|(((s|0)<=(l|0))+((f|0)<=(l|0))|0)+((l|0)>=(n|0))<<6;break ca}f=E[t|0]+(m<<5)<<4|s<<2;m=E[f+219873|0];C[l>>1]=m<<4&3840|E[f+219872|0]|m<<12;t=F[f+219874>>1];p=E[w|0];n=(t>>>J(p>>>2&3,3)&7)<<1;f=(t>>>J(p&3,3)&7)<<13;p=t>>>J(p>>>4&3,3)<<21&14680064|t>>>J(p>>>6|0,3)<<9&3584;f=f|n;n=E[w+1|0];s=f|(t>>>J(n&3,3)&7)<<10;m=t>>>J(n>>>2&3,3)&7;f=m>>>2|0;m=t>>>J(n>>>6|0,3)<<6&448|(t>>>J(n>>>4&3,3)<<18&1835008|(m<<30|p));v=E[w+3|0];w=E[w+2|0];B[l+7|0]=m|(t>>>J(v>>>6|0,3)&7|t>>>J(w>>>6|0,3)<<3&56);s=f|s;n=(t>>>J(w&3,3)&7)<<7;f=m;n=n|s;m=n;B[l+2|0]=m>>>8;B[l+3|0]=(t>>>J(v&3,3)&7)<<4|m;f=t>>>J(w>>>2&3,3)<<27&939524096|f;s=f|t>>>J(w>>>4&3,3)<<15&229376;B[l+5|0]=(m&65535)<<16|s>>>16;B[l+4|0]=(m&16777215)<<8|(t>>>J(v>>>2&3,3)<<24&117440512|f)>>>24;B[l+6|0]=(m&255)<<24|(t>>>J(v>>>4&3,3)<<12&28672|s)>>>8;break ca}n=v+218592|0}D[(s<<2)+Ka>>2]=E[t+218080|0]<<10&31744|E[p+218080|0]<<5|E[l+218336|0]<<1|(E[n|0]|(E[m+218592|0]<<5|E[f+218592|0]<<10))<<16|-2147450880}ya=ya-4|0;X=X+1|0;s=X>>>0>>0;if((c|0)!=(X|0)){continue}break f}break}Ta(za)}if(!(s&1)){break f}t=0;break d}ta=ta-4|0;$=$+1|0;if(($|0)!=(d|0)){continue}break}t=0;if(Ga){break d}}Tb:{Ub:{switch(g-6|0){case 0:Ba=Ka;ya=b;f=0;e=0;A=0;da=0;w=Fa-160|0;Fa=w;Da=d;X=d-1|0;Vb:{pa=c;v=c-1|0;if(!v){break Vb}e=1;a=v;while(1){if(a>>>0<2){break Vb}a=a>>>1|0;e=e+1|0;continue}}Wb:{if(!X){break Wb}f=1;a=X;while(1){if(a>>>0<2){break Wb}a=a>>>1|0;f=f+1|0;continue}}if((Da|0)>=1){ga=e>>>0>>0?e:f;$=ga<<1;ia=-1<<$^-1;W=(v&1)<<2;while(1){e=A-1|0;f=0;while(1){c=f<<2;b=Ba+(J(pa,X&e+f)<<2)|0;D[c+(w+20|0)>>2]=b;d=c+(w+32|0)|0;a=D[b+(v<<2)>>2];D[d>>2]=(J(((a>>>26&31)+(a>>>21&31)|0)+(a>>>16&31)|0,255)>>>0)/31;c=c+(w+96|0)|0;g=a&30;D[c>>2]=(J((g+(a>>>5&31)|0)+(a>>>10&31)+(g>>>4)|0,255)>>>0)/31;a=D[b>>2];D[d+16>>2]=(J(((a>>>26&31)+(a>>>21&31)|0)+(a>>>16&31)|0,255)>>>0)/31;g=a&30;D[c+16>>2]=(J((g+(a>>>5&31)|0)+(a>>>10&31)+(g>>>4)|0,255)>>>0)/31;a=D[b+W>>2];D[d+32>>2]=(J(((a>>>26&31)+(a>>>21&31)|0)+(a>>>16&31)|0,255)>>>0)/31;b=a&30;D[c+32>>2]=(J((b+(a>>>5&31)|0)+(a>>>10&31)+(b>>>4)|0,255)>>>0)/31;f=f+1|0;if((f|0)!=3){continue}break}z=0;l=D[w+56>>2];c=D[w+40>>2];k=D[w+120>>2];b=D[w+104>>2];r=D[w+52>>2];a=D[w+36>>2];n=D[w+48>>2];e=D[w+32>>2];q=D[w+116>>2];f=D[w+100>>2];m=D[w+112>>2];d=D[w+96>>2];Xb:{if((pa|0)<=0){s=D[w+72>>2];ba=D[w+136>>2];Ka=D[w+68>>2];Z=D[w+132>>2];y=D[w+64>>2];t=D[w+128>>2];break Xb}ja=F[((A&255)<<1)+412720>>1]|F[(A>>>7&33554430)+412720>>1]<<16;Ma=A>>>ga<<$;Ea=D[w+28>>2];tb=D[w+24>>2];yb=D[w+20>>2];j=d;p=f;i=e;o=a;h=b;g=c;while(1){c=l;b=k;a=r;e=n;f=q;d=m;m=ja|F[(z>>>7&33554430)+412720>>1]<<17|F[((z&255)<<1)+412720>>1]<<1;k=m;Yb:{if((pa|0)==(Da|0)){break Yb}m=m&ia;k=m|z>>>ga<<$;if(pa>>>0>Da>>>0){break Yb}k=m|Ma}ub=(k<<3)+ya|0;D[ub+4>>2]=D[Ba+(da<<2)>>2];k=(da<<3)+za|0;l=D[k>>2];m=l>>>25&112;l=E[(l>>>19&31)+414512|0]+(E[(l>>>11&31)+414512|0]+E[(l>>>3&31)+414512|0]|0)<<4;D[w+12>>2]=D[m+413232>>2]+l;D[w+8>>2]=l+D[m+413236>>2];D[w+4>>2]=l+D[m+413244>>2];D[w>>2]=l+D[m+413240>>2];m=E[k+5|0];n=E[k+7|0];l=m&240|n>>>4;q=J(f,6);r=q+J(d,6)|0;va=r+(j+p<<1)|0;s=D[w+(E[l+413360|0]<<2)>>2]-va<<4;Z=J(a,6);T=Z+J(e,6)|0;vb=T+(i+o<<1)|0;wb=(vb|0)<(va|0);s=wb?0-s|0:s;y=m<<4&240|n&15;ha=f+p|0;m=d+j|0;ma=ha+m<<2;n=D[w+(E[y+413360|0]<<2)>>2]-ma<<4;ba=0-n|0;t=n;x=a+o|0;n=e+i|0;xb=x+n<<2;Qa=(xb|0)<(ma|0);t=Qa?ba:t;Ga=q+(J(p,6)+(m<<1)|0)|0;m=D[w+(E[y+413616|0]<<2)>>2]-Ga<<4;Ra=Z+(J(o,6)+(n<<1)|0)|0;Sa=(Ra|0)<(Ga|0);Z=Sa?0-m|0:m;ca=J(d,3);qa=J(f,9);Y=qa+J(p,3)|0;Ca=ca+(Y+j|0)|0;j=D[w+(E[l+413616|0]<<2)>>2]-Ca<<4;V=J(e,3);ua=J(a,9);P=ua+J(o,3)|0;Ua=V+(P+i|0)|0;Na=(Ua|0)<(Ca|0);Ka=Na?0-j|0:j;q=E[k+4|0];_=E[k+6|0];k=q<<4&240|_&15;Ja=d+f<<3;i=D[w+(E[k+413360|0]<<2)>>2]-Ja<<4;Oa=a+e<<3;Pa=(Oa|0)<(Ja|0);ba=Pa?0-i|0:i;z=z+1|0;sa=(v&z)<<2;i=D[sa+yb>>2];m=i&30;j=D[sa+tb>>2];n=j&30;_=q&240|_>>>4;m=(J((m+(i>>>5&31)|0)+(i>>>10&31)+(m>>>4)|0,255)>>>0)/31|0;q=(J((n+(j>>>5&31)|0)+(j>>>10&31)+(n>>>4)|0,255)>>>0)/31|0;La=(r+(m<<1)|0)+(q<<1)|0;n=D[w+(E[_+413360|0]<<2)>>2]-La<<4;O=0-n|0;ta=n;n=(J(((i>>>26&31)+(i>>>21&31)|0)+(i>>>16&31)|0,255)>>>0)/31|0;r=(J(((j>>>26&31)+(j>>>21&31)|0)+(j>>>16&31)|0,255)>>>0)/31|0;Wa=(T+(n<<1)|0)+(r<<1)|0;Xa=(Wa|0)<(La|0);i=Xa?O:ta;j=J(f,12);ta=j+(d<<2)|0;T=D[w+(E[k+413616|0]<<2)>>2]-ta<<4;H=0-T|0;O=T;T=J(a,12);Za=T+(e<<2)|0;_a=(Za|0)<(ta|0);ra=_a?H:O;$a=J(q,3);Aa=$a+((ca+qa|0)+m|0)|0;ca=D[w+(E[_+413616|0]<<2)>>2]-Aa<<4;ab=J(r,3);cb=ab+((V+ua|0)+n|0)|0;db=(cb|0)<(Aa|0);ca=db?0-ca|0:ca;I=ha<<3;V=D[w+(E[y+413872|0]<<2)>>2]-I<<4;fb=x<<3;gb=(fb|0)<(I|0);V=gb?0-V|0:V;H=j+(p<<2)|0;p=D[w+(E[l+413872|0]<<2)>>2]-H<<4;hb=T+(o<<2)|0;ib=(hb|0)<(H|0);o=ib?0-p|0:p;Q=(J(ha,6)+(h<<1)|0)+(b<<1)|0;p=D[w+(E[y+414128|0]<<2)>>2]-Q<<4;jb=(J(x,6)+(g<<1)|0)+(c<<1)|0;kb=(jb|0)<(Q|0);p=kb?0-p|0:p;y=D[w+(E[l+414128|0]<<2)>>2];l=J(b,3);x=l+(h+Y|0)|0;h=y-x<<4;lb=J(c,3);mb=lb+(g+P|0)|0;nb=(mb|0)<(x|0);h=nb?0-h|0:h;Y=f<<4;g=D[w+(E[k+413872|0]<<2)>>2]-Y<<4;ob=a<<4;pb=(ob|0)<(Y|0);y=pb?0-g|0:g;P=j+(q<<2)|0;g=D[w+(E[_+413872|0]<<2)>>2]-P<<4;qb=T+(r<<2)|0;rb=(qb|0)<(P|0);ha=rb?0-g|0:g;R=j+(b<<2)|0;g=D[w+(E[k+414128|0]<<2)>>2]-R<<4;O=T+(c<<2)|0;sb=(O|0)<(R|0);j=sb?0-g|0:g;g=D[sa+Ea>>2];k=g&30;T=D[w+(E[_+414128|0]<<2)>>2];k=(J((k+(g>>>5&31)|0)+(g>>>10&31)+(k>>>4)|0,255)>>>0)/31|0;_=l+(k+(qa+$a|0)|0)|0;l=T-_<<4;sa=0-l|0;T=l;l=(J(((g>>>26&31)+(g>>>21&31)|0)+(g>>>16&31)|0,255)>>>0)/31|0;qa=lb+(l+(ua+ab|0)|0)|0;ua=(qa|0)<(_|0);g=ua?sa:T;T=vb-va|0;T=wb?0-T|0:T;T=(s|0)>(J(T,13)|0)?12:(s|0)>T<<3?8:((s|0)>(J(T,3)|0))<<2;s=xb-ma|0;s=Qa?0-s|0:s;t=T|((t|0)>(J(s,13)|0)?3:(t|0)>s<<3?2:(t|0)>(J(s,3)|0));s=Ra-Ga|0;s=Sa?0-s|0:s;t=t|((Z|0)>(J(s,13)|0)?768:(Z|0)>s<<3?512:((Z|0)>(J(s,3)|0))<<8);s=Ua-Ca|0;s=Na?0-s|0:s;t=t|((Ka|0)>(J(s,13)|0)?3072:(Ka|0)>s<<3?2048:((Ka|0)>(J(s,3)|0))<<10);s=Oa-Ja|0;s=Pa?0-s|0:s;t=t|((ba|0)>(J(s,13)|0)?48:(ba|0)>s<<3?32:((ba|0)>(J(s,3)|0))<<4);s=Wa-La|0;s=Xa?0-s|0:s;s=t|((i|0)>(J(s,13)|0)?192:(i|0)>s<<3?128:((i|0)>(J(s,3)|0))<<6);i=Za-ta|0;i=_a?0-i|0:i;s=s|((ra|0)>(J(i,13)|0)?12288:(ra|0)>i<<3?8192:((ra|0)>(J(i,3)|0))<<12);i=cb-Aa|0;i=db?0-i|0:i;s=s|((ca|0)>(J(i,13)|0)?49152:(ca|0)>i<<3?32768:((ca|0)>(J(i,3)|0))<<14);i=fb-I|0;i=gb?0-i|0:i;s=s|((V|0)>(J(i,13)|0)?196608:(V|0)>i<<3?131072:((V|0)>(J(i,3)|0))<<16);i=hb-H|0;i=ib?0-i|0:i;o=s|((o|0)>(J(i,13)|0)?786432:(o|0)>i<<3?524288:((o|0)>(J(i,3)|0))<<18);i=jb-Q|0;i=kb?0-i|0:i;o=o|((p|0)>(J(i,13)|0)?50331648:(p|0)>i<<3?33554432:((p|0)>(J(i,3)|0))<<24);i=mb-x|0;i=nb?0-i|0:i;i=o|((h|0)>(J(i,13)|0)?201326592:(h|0)>i<<3?134217728:((h|0)>(J(i,3)|0))<<26);h=ob-Y|0;h=pb?0-h|0:h;i=i|((y|0)>(J(h,13)|0)?3145728:(y|0)>h<<3?2097152:((y|0)>(J(h,3)|0))<<20);h=qb-P|0;h=rb?0-h|0:h;i=i|((ha|0)>(J(h,13)|0)?12582912:(ha|0)>h<<3?8388608:((ha|0)>(J(h,3)|0))<<22);h=O-R|0;h=sb?0-h|0:h;i=i|((j|0)>(J(h,13)|0)?805306368:(j|0)>h<<3?536870912:((j|0)>(J(h,3)|0))<<28);h=qa-_|0;h=ua?0-h|0:h;D[ub>>2]=i|((g|0)>(J(h,13)|0)?-1073741824:(g|0)>h<<3?-2147483648:((g|0)>(J(h,3)|0))<<30);da=da+1|0;s=l;ba=k;Ka=r;Z=q;y=n;t=m;j=d;p=f;i=e;o=a;h=b;g=c;if((z|0)!=(pa|0)){continue}break}}D[w+64>>2]=y;D[w+128>>2]=t;D[w+132>>2]=Z;D[w+68>>2]=Ka;D[w+136>>2]=ba;D[w+72>>2]=s;D[w+112>>2]=m;D[w+96>>2]=d;D[w+116>>2]=q;D[w+100>>2]=f;D[w+48>>2]=n;D[w+32>>2]=e;D[w+52>>2]=r;D[w+36>>2]=a;D[w+120>>2]=k;D[w+104>>2]=b;D[w+56>>2]=l;D[w+40>>2]=c;A=A+1|0;if((Da|0)!=(A|0)){continue}break}}Fa=w+160|0;break Tb;case 1:break Ub;default:break Tb}}m=b;tb=D[_+4>>2];yb=D[_+16>>2];j=0;k=0;T=0;ra=0;A=Fa-176|0;Fa=A;X=d;w=d-1|0;Zb:{Da=c;Ba=c-1|0;if(!Ba){break Zb}j=1;a=Ba;while(1){if(a>>>0<2){break Zb}a=a>>>1|0;j=j+1|0;continue}}_b:{if(!w){break _b}k=1;a=w;while(1){if(a>>>0<2){break _b}a=a>>>1|0;k=k+1|0;continue}}if((X|0)>=1){Ga=j>>>0>>0?j:k;qa=Ga<<1;ub=-1<>2]=c;b=D[c+(Ba<<2)>>2];$b:{if(b&32768){z=(b>>>1&15)+414544|0;l=(b>>>5&31)+414512|0;n=255;e=(b>>>10&31)+414512|0;break $b}z=(b>>>1&7)+414560|0;l=(b>>>4&15)+414544|0;n=E[(b>>>12&7)+414568|0];e=(b>>>8&15)+414544|0}a=d+(A+112|0)|0;D[a>>2]=E[z|0]+(E[e|0]+(E[l|0]+n|0)|0);e=b>>>16|0;ac:{if((b|0)<=-1){z=(e&31)+414512|0;l=(b>>>21&31)+414512|0;i=(b>>>26&31)+414512|0;b=255;break ac}z=(e&15)+414544|0;l=(b>>>20&15)+414544|0;i=(b>>>24&15)+414544|0;b=E[(b>>>28|0)+414568|0]}d=d+(A+48|0)|0;D[d>>2]=E[z|0]+(E[i|0]+(b+E[l|0]|0)|0);b=D[c>>2];bc:{if(b&32768){z=(b>>>1&15)+414544|0;l=(b>>>5&31)+414512|0;n=255;e=(b>>>10&31)+414512|0;break bc}z=(b>>>1&7)+414560|0;l=(b>>>4&15)+414544|0;n=E[(b>>>12&7)+414568|0];e=(b>>>8&15)+414544|0}D[a+16>>2]=E[z|0]+(E[e|0]+(E[l|0]+n|0)|0);e=b>>>16|0;cc:{if((b|0)<=-1){z=(e&31)+414512|0;l=(b>>>21&31)+414512|0;i=(b>>>26&31)+414512|0;b=255;break cc}z=(e&15)+414544|0;l=(b>>>20&15)+414544|0;i=(b>>>24&15)+414544|0;b=E[(b>>>28|0)+414568|0]}D[d+16>>2]=E[z|0]+(E[i|0]+(b+E[l|0]|0)|0);b=D[c+vb>>2];dc:{if(b&32768){z=(b>>>5&31)+414512|0;l=(b>>>10&31)+414512|0;i=255;c=(b>>>1&15)+414544|0;break dc}z=(b>>>4&15)+414544|0;l=(b>>>8&15)+414544|0;i=E[(b>>>12&7)+414568|0];c=(b>>>1&7)+414560|0}D[a+32>>2]=E[c|0]+(E[l|0]+(E[z|0]+i|0)|0);a=b>>>16|0;ec:{if((b|0)<=-1){j=(a&31)+414512|0;h=(b>>>21&31)+414512|0;z=(b>>>26&31)+414512|0;a=255;break ec}j=(a&15)+414544|0;h=(b>>>20&15)+414544|0;z=(b>>>24&15)+414544|0;a=E[(b>>>28|0)+414568|0]}D[d+32>>2]=E[j|0]+(E[z|0]+(a+E[h|0]|0)|0);k=k+1|0;if((k|0)!=3){continue}break}a=D[A+72>>2];p=D[A+56>>2];f=D[A+136>>2];o=D[A+120>>2];l=D[A+68>>2];n=D[A+52>>2];d=D[A+64>>2];ya=D[A+48>>2];i=D[A+132>>2];q=D[A+116>>2];g=D[A+128>>2];pa=D[A+112>>2];fc:{if((Da|0)<1){s=D[A+88>>2];v=D[A+152>>2];ba=D[A+84>>2];Z=D[A+148>>2];y=D[A+80>>2];t=D[A+144>>2];break fc}wb=F[((T&255)<<1)+412720>>1]|F[(T>>>7&33554430)+412720>>1]<<16;xb=T>>>Ga<>2];Ra=D[A+40>>2];Sa=D[A+36>>2];Ua=(J(T,Da)<<2)+r|0;z=0;e=g;k=i;h=d;j=l;c=f;b=a;while(1){a=Ua+(z<<2)|0;g=tb+(F[a>>1]<<3)|0;V=F[a+2>>1];f=wb|F[(z>>>7&33554430)+412720>>1]<<17|F[((z&255)<<1)+412720>>1]<<1;a=f;gc:{if((X|0)==(Da|0)){break gc}f=f&ub;a=f|z>>>Ga<>>0>>0){break gc}a=f|xb}a=(a<<3)+m|0;D[a+4>>2]=D[(ra<<2)+Ka>>2];ca=(ra<<3)+za|0;d=D[ca>>2];f=d>>>25&112;d=E[(d>>>19&31)+414512|0]+(E[(d>>>11&31)+414512|0]+E[(d>>>3&31)+414512|0]|0)<<4;i=D[f+413244>>2]+d|0;i=(i|0)<12240?i:12240;D[A+28>>2]=(i|0)>0?i:0;i=d+D[f+413240>>2]|0;i=(i|0)<12240?i:12240;D[A+24>>2]=(i|0)>0?i:0;i=d+D[f+413236>>2]|0;i=(i|0)<12240?i:12240;D[A+20>>2]=(i|0)>0?i:0;d=d+D[f+413232>>2]|0;d=(d|0)<12240?d:12240;D[A+16>>2]=(d|0)>0?d:0;f=E[E[g+1|0]+414512|0]<<4;d=E[g+4|0]<<4;g=f+D[d+414396>>2]|0;g=(g|0)<4080?g:4080;D[A+12>>2]=(g|0)>0?g:0;g=f+D[d+414392>>2]|0;g=(g|0)<4080?g:4080;D[A+8>>2]=(g|0)>0?g:0;g=f+D[d+414388>>2]|0;g=(g|0)<4080?g:4080;D[A+4>>2]=(g|0)>0?g:0;d=f+D[d+414384>>2]|0;d=(d|0)<4080?d:4080;D[A>>2]=(d|0)>0?d:0;z=z+1|0;i=(Ba&z)<<2;d=D[i+Sa>>2];hc:{if(d&32768){y=(d>>>1&15)+414544|0;g=(d>>>10&31)+414512|0;l=(d>>>5&31)+414512|0;f=255;break hc}y=(d>>>1&7)+414560|0;g=(d>>>8&15)+414544|0;l=(d>>>4&15)+414544|0;f=E[(d>>>12&7)+414568|0]}s=d>>>16|0;ha=E[l|0];ic:{if((d|0)<=-1){t=(s&31)+414512|0;ba=(d>>>26&31)+414512|0;Z=255;d=(d>>>21&31)+414512|0;break ic}t=(s&15)+414544|0;ba=(d>>>24&15)+414544|0;Z=E[(d>>>28|0)+414568|0];d=(d>>>20&15)+414544|0}s=E[d|0];d=D[i+Ra>>2];jc:{if(d&32768){_=(d>>>1&15)+414544|0;v=(d>>>10&31)+414512|0;da=255;l=(d>>>5&31)+414512|0;break jc}_=(d>>>1&7)+414560|0;v=(d>>>8&15)+414544|0;da=E[(d>>>12&7)+414568|0];l=(d>>>4&15)+414544|0}ha=f+ha|0;g=E[g|0];Z=s+Z|0;ba=E[ba|0];f=d>>>16|0;l=E[l|0]+da|0;ga=E[v|0];kc:{if((d|0)<=-1){s=(f&31)+414512|0;v=(d>>>21&31)+414512|0;da=(d>>>26&31)+414512|0;d=255;break kc}s=(f&15)+414544|0;v=(d>>>20&15)+414544|0;da=(d>>>24&15)+414544|0;d=E[(d>>>28|0)+414568|0]}g=g+ha|0;$=E[y|0];va=ba+Z|0;ma=E[t|0];l=l+ga|0;ga=E[_|0];x=E[da|0]+(d+E[v|0]|0)|0;R=E[s|0];y=D[i+Qa>>2];lc:{if(y&32768){_=(y>>>1&15)+414544|0;da=255;Ca=(y>>>5&31)+414512|0;v=(y>>>10&31)+414512|0;break lc}_=(y>>>1&7)+414560|0;da=E[(y>>>12&7)+414568|0];Ca=(y>>>4&15)+414544|0;v=(y>>>8&15)+414544|0}ua=y>>>16|0;s=a;a=yb+J(V,11)|0;d=E[a|0];f=E[ca+4|0];i=J(k,6);P=i+J(e,6)|0;Ja=P+(q+pa<<1)|0;t=D[(A|d&12)>>2]+(D[(A+16|f&12)>>2]-Ja|0)<<4;ha=J(j,6);ia=ha+J(h,6)|0;Na=ia+(n+ya<<1)|0;Oa=(Na|0)<(Ja|0);t=Oa?0-t|0:t;sa=k+q|0;Aa=e+pa|0;La=sa+Aa<<2;Z=D[(A|(d&3)<<2)>>2]+(D[(A+16|(f&3)<<2)>>2]-La|0)<<4;ta=j+n|0;I=h+ya|0;Pa=ta+I<<2;Wa=(Pa|0)<(La|0);Z=Wa?0-Z|0:Z;ba=E[a+1|0];V=E[ca+5|0];Aa=i+(J(q,6)+(Aa<<1)|0)|0;i=D[(A|(ba&3)<<2)>>2]+(D[(A+16|(V&3)<<2)>>2]-Aa|0)<<4;Xa=ha+(J(n,6)+(I<<1)|0)|0;Za=(Xa|0)<(Aa|0);ha=Za?0-i|0:i;W=J(e,3);I=J(k,9);Ma=I+J(q,3)|0;H=W+(Ma+pa|0)|0;i=D[(A|ba&12)>>2]+(D[(A+16|V&12)>>2]-H|0)<<4;ja=J(h,3);Q=J(j,9);Ea=Q+J(n,3)|0;_a=ja+(Ea+ya|0)|0;$a=(_a|0)<(H|0);ya=$a?0-i|0:i;Y=e+k<<3;i=D[(A|d>>>2&12)>>2]+(D[(A+16|f>>>2&12)>>2]-Y|0)<<4;ab=h+j<<3;cb=(ab|0)<(Y|0);pa=cb?0-i|0:i;g=g+$|0;i=l+ga|0;P=(P+(g<<1)|0)+(i<<1)|0;d=D[(A|d>>>4&12)>>2]+(D[(A+16|f>>>4&12)>>2]-P|0)<<4;$=0-d|0;f=d;d=ma+va|0;l=x+R|0;db=(ia+(d<<1)|0)+(l<<1)|0;fb=(db|0)<(P|0);f=fb?$:f;ga=J(k,12);R=ga+(e<<2)|0;$=D[(A|ba>>>2&12)>>2]+(D[(A+16|V>>>2&12)>>2]-R|0)<<4;x=0-$|0;O=$;$=J(j,12);gb=$+(h<<2)|0;hb=(gb|0)<(R|0);va=hb?x:O;ib=J(i,3);ia=ib+((I+W|0)+g|0)|0;ba=D[(A|ba>>>4&12)>>2]+(D[(A+16|V>>>4&12)>>2]-ia|0)<<4;jb=J(l,3);kb=jb+((Q+ja|0)+d|0)|0;lb=(kb|0)<(ia|0);ba=lb?0-ba|0:ba;V=E[a+2|0];ma=E[ca+6|0];W=sa<<3;x=D[(A|(V&3)<<2)>>2]+(D[(A+16|(ma&3)<<2)>>2]-W|0)<<4;mb=ta<<3;nb=(mb|0)<(W|0);x=nb?0-x|0:x;ja=ga+(q<<2)|0;q=D[(A|V&12)>>2]+(D[(A+16|ma&12)>>2]-ja|0)<<4;ob=$+(n<<2)|0;pb=(ob|0)<(ja|0);n=pb?0-q|0:q;a=E[a+3|0];q=E[ca+7|0];sa=(J(sa,6)+(o<<1)|0)+(c<<1)|0;ca=D[(A|(a&3)<<2)>>2]+(D[(A+16|(q&3)<<2)>>2]-sa|0)<<4;qb=(J(ta,6)+(p<<1)|0)+(b<<1)|0;rb=(qb|0)<(sa|0);ca=rb?0-ca|0:ca;O=J(c,3);ta=O+(o+Ma|0)|0;o=D[(A|a&12)>>2]+(D[(A+16|q&12)>>2]-ta|0)<<4;sb=J(b,3);Cb=sb+(p+Ea|0)|0;Db=(Cb|0)<(ta|0);o=Db?0-o|0:o;Ma=k<<4;p=D[(A|V>>>2&12)>>2]+(D[(A+16|ma>>>2&12)>>2]-Ma|0)<<4;Eb=j<<4;Lb=(Eb|0)<(Ma|0);p=Lb?0-p|0:p;Ea=D[(A+16|ma>>>4&12)>>2];ma=ga+(i<<2)|0;V=D[(A|V>>>4&12)>>2]+(Ea-ma|0)<<4;Mb=$+(l<<2)|0;Nb=(Mb|0)<(ma|0);V=Nb?0-V|0:V;Ea=ga+(c<<2)|0;ga=D[(A|a>>>2&12)>>2]+(D[(A+16|q>>>2&12)>>2]-Ea|0)<<4;Ob=$+(b<<2)|0;Pb=(Ob|0)<(Ea|0);ga=Pb?0-ga|0:ga;$=Na-Ja|0;$=Oa?0-$|0:$;$=(t|0)>(J($,13)|0)?12:(t|0)>$<<3?8:((t|0)>(J($,3)|0))<<2;t=Pa-La|0;t=Wa?0-t|0:t;Z=$|((Z|0)>(J(t,13)|0)?3:(Z|0)>t<<3?2:(Z|0)>(J(t,3)|0));t=Xa-Aa|0;t=Za?0-t|0:t;Z=Z|((ha|0)>(J(t,13)|0)?768:(ha|0)>t<<3?512:((ha|0)>(J(t,3)|0))<<8);t=_a-H|0;t=$a?0-t|0:t;Z=Z|((ya|0)>(J(t,13)|0)?3072:(ya|0)>t<<3?2048:((ya|0)>(J(t,3)|0))<<10);t=ab-Y|0;t=cb?0-t|0:t;Z=Z|((pa|0)>(J(t,13)|0)?48:(pa|0)>t<<3?32:((pa|0)>(J(t,3)|0))<<4);t=db-P|0;t=fb?0-t|0:t;t=Z|((f|0)>(J(t,13)|0)?192:(f|0)>t<<3?128:((f|0)>(J(t,3)|0))<<6);f=gb-R|0;f=hb?0-f|0:f;t=t|((va|0)>(J(f,13)|0)?12288:(va|0)>f<<3?8192:((va|0)>(J(f,3)|0))<<12);f=kb-ia|0;f=lb?0-f|0:f;t=t|((ba|0)>(J(f,13)|0)?49152:(ba|0)>f<<3?32768:((ba|0)>(J(f,3)|0))<<14);f=mb-W|0;f=nb?0-f|0:f;t=t|((x|0)>(J(f,13)|0)?196608:(x|0)>f<<3?131072:((x|0)>(J(f,3)|0))<<16);f=ob-ja|0;f=pb?0-f|0:f;n=t|((n|0)>(J(f,13)|0)?786432:(n|0)>f<<3?524288:((n|0)>(J(f,3)|0))<<18);f=qb-sa|0;f=rb?0-f|0:f;n=n|((ca|0)>(J(f,13)|0)?50331648:(ca|0)>f<<3?33554432:((ca|0)>(J(f,3)|0))<<24);f=Cb-ta|0;f=Db?0-f|0:f;n=n|((o|0)>(J(f,13)|0)?201326592:(o|0)>f<<3?134217728:((o|0)>(J(f,3)|0))<<26);f=Eb-Ma|0;f=Lb?0-f|0:f;n=n|((p|0)>(J(f,13)|0)?3145728:(p|0)>f<<3?2097152:((p|0)>(J(f,3)|0))<<20);f=Mb-ma|0;f=Nb?0-f|0:f;n=n|((V|0)>(J(f,13)|0)?12582912:(V|0)>f<<3?8388608:((V|0)>(J(f,3)|0))<<22);f=Ob-Ea|0;f=Pb?0-f|0:f;t=n|((ga|0)>(J(f,13)|0)?805306368:(ga|0)>f<<3?536870912:((ga|0)>(J(f,3)|0))<<28);f=E[_|0]+(E[v|0]+(E[Ca|0]+da|0)|0)|0;o=O+(f+(I+ib|0)|0)|0;a=D[(A|a>>>4&12)>>2]+(D[(A+16|q>>>4&12)>>2]-o|0)<<4;q=0-a|0;n=a;mc:{if((y|0)<=-1){da=(y>>>21&31)+414512|0;_=(y>>>26&31)+414512|0;p=(ua&31)+414512|0;a=255;break mc}da=(y>>>20&15)+414544|0;_=(y>>>24&15)+414544|0;p=(ua&15)+414544|0;a=E[(y>>>28|0)+414568|0]}y=q;a=E[p|0]+(E[_|0]+(E[da|0]+a|0)|0)|0;p=sb+(a+(Q+jb|0)|0)|0;q=(p|0)<(o|0);n=q?y:n;o=p-o|0;o=q?0-o|0:o;D[s>>2]=((n|0)>(J(o,13)|0)?-1073741824:(n|0)>o<<3?-2147483648:((n|0)>(J(o,3)|0))<<30)|t;ra=ra+1|0;p=b;o=c;n=j;ya=h;q=k;pa=e;t=g;e=t;Z=i;k=i;y=d;h=d;ba=l;j=l;v=f;c=f;s=a;b=s;if((z|0)!=(Da|0)){continue}break}}D[A+80>>2]=y;D[A+144>>2]=t;D[A+148>>2]=Z;D[A+84>>2]=ba;D[A+152>>2]=v;D[A+88>>2]=s;D[A+128>>2]=g;D[A+112>>2]=pa;D[A+132>>2]=i;D[A+116>>2]=q;D[A+64>>2]=d;D[A+48>>2]=ya;D[A+68>>2]=l;D[A+52>>2]=n;D[A+136>>2]=f;D[A+120>>2]=o;D[A+72>>2]=a;D[A+56>>2]=p;T=T+1|0;if((X|0)!=(T|0)){continue}break}}Fa=A+176|0}t=1;if(!za){break d}Ta(za)}a=D[u>>2];if(!a){break a}Ta(a)}Fa=u+128|0;return t}function vc(a,b,c,d,e,f,g,h,i,j,k,l){var 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,H=0,I=0,K=0,L=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,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Ia=0,Ja=0;m=D[a>>2];a:{if(!m|G[a+92>>2]<=b>>>0){break a}b:{if(G[a+44>>2]>=2){if(d>>>0<=5){break b}break a}if(d){break a}}n=D[a+40>>2];if((n>>>0>1?n:1)>>>0<=c>>>0){break a}ha=a+780|0;c:{if(D[a+52>>2]!=2){n=D[a+88>>2]+J(b,24)|0;ia=m+(E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24))|0;u=E[n+8|0]|E[n+9|0]<<8|(E[n+10|0]<<16|E[n+11|0]<<24);break c}if(D[ha+420>>2]!=(b|0)){n=D[a+88>>2]+J(b,24)|0;u=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);o=D[a>>2];p=E[n+8|0]|E[n+9|0]<<8|(E[n+10|0]<<16|E[n+11|0]<<24);ia=D[ha+412>>2];oa=E[n+16|0]|E[n+17|0]<<8|(E[n+18|0]<<16|E[n+19|0]<<24);d:{if((ia|0)!=(oa|0)){if(ia>>>0<=oa>>>0){e:{if(G[ha+416>>2]>=oa>>>0){m=D[ha+408>>2];break e}n=oa;f:{if((n|0)!=(ia+1|0)){break f}m=oa;L=pf(m);if(!Ga&(L|0)==1){break f}ia=0;L=0-(m>>>0<1)|0;t=L;n=t;r=n|n>>>16;n=r;w=n|n>>>8;n=w;q=n|n>>>4;n=q;x=((n|n>>>2)&1)<<31;n=m-1|t;n=(t&65535)<<16|n>>>16|n;n=(r&255)<<24|n>>>8|n;n=(w&15)<<28|n>>>4|n;n=(q&3)<<30|n>>>2|n;n=(x|n>>>1|n)+1|0;if(oa>>>0>n>>>0){break d}}ia=0;m=yb(D[ha+408>>2],n);if(!m){break d}D[ha+416>>2]=n;D[ha+408>>2]=m;ia=D[ha+412>>2]}Va(m+ia|0,0,oa-ia|0)}D[ha+412>>2]=oa}if(D[a+52>>2]==2){ia=0;va=D[ha+408>>2];n=-64;y=bb(160816);if(y){D[y+29564>>2]=0;D[y+29556>>2]=0;D[y+29560>>2]=0;D[y+29636>>2]=0;D[y+29620>>2]=0;D[y+29368>>2]=0;D[y+160812>>2]=0;D[y+29652>>2]=0;D[y+29656>>2]=0;D[y+29612>>2]=0;D[y+29616>>2]=0;D[y+29668>>2]=0;D[y+29672>>2]=0;D[y+29628>>2]=134217729;D[y+29576>>2]=0;D[y+29580>>2]=0;D[y+29604>>2]=0;D[y+29608>>2]=0;D[y+29540>>2]=0;D[y+29544>>2]=0;D[y+29596>>2]=0;D[y+29600>>2]=0;D[y+29584>>2]=0;D[y+29588>>2]=0;ta=oa;n=o+u|0;g:{h:{S=D[y+29540>>2]?1:5;i:{if(S>>>0>p>>>0){ma=va;break i}N=y+29448|0;X=y+29376|0;Ba=y+29356|0;Ca=y+29416|0;ua=y+29488|0;za=ua;ma=va;while(1){if(((E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24))&-16)==407710288){m=-72;if(p>>>0<8){break g}m=-14;L=E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24);if(L>>>0>4294967287){break g}m=L+8|0;m=m>>>0>p>>>0?-72:m;if(m>>>0>4294967176){break g}n=n+m|0;p=p-m|0;if(S>>>0<=p>>>0){continue}break i}D[y+29356>>2]=0;D[y+29360>>2]=0;D[y+29416>>2]=0;D[y+29420>>2]=0;D[y+29592>>2]=0;D[y+29440>>2]=0;D[y+29444>>2]=0;D[y+29432>>2]=3;D[y+29436>>2]=0;m=y+29364|0;D[m>>2]=0;D[m+4>>2]=0;m=y+29424|0;D[m>>2]=0;D[m+4>>2]=0;m=y+10280|0;D[m>>2]=201326604;D[y+29372>>2]=D[y+29540>>2]?1:5;D[y+12>>2]=m;D[y+8>>2]=y+4120;D[y+4>>2]=y+6176;D[y>>2]=y+16;L=D[104529];m=y+26668|0;D[m>>2]=D[104528];D[m+4>>2]=L;D[y+26676>>2]=D[104530];L=D[Ba>>2];if(!(!ta|(L|0)==(ma|0))){D[y+29368>>2]=L;D[y+29356>>2]=ma;m=D[y+29360>>2];D[y+29360>>2]=ma;D[y+29364>>2]=(m-L|0)+ma}u=D[y+29540>>2];if((u?5:9)>>>0>p>>>0){m=-72;break h}L=u?1:5;o=E[(L+n|0)-1|0];m=o&32;m=(!m+(D[(o>>>4&12)+419600>>2]+(L+D[((o&3)<<2)+419584>>2]|0)|0)|0)+(m>>>5&o>>>0<64)|0;if(m>>>0>4294967176){break h}if(m+3>>>0>p>>>0){m=-72;break h}w=0;q=0;D[X>>2]=0;D[X+4>>2]=0;D[X+32>>2]=0;D[X+36>>2]=0;D[X+24>>2]=0;D[X+28>>2]=0;D[X+16>>2]=0;D[X+20>>2]=0;D[X+8>>2]=0;D[X+12>>2]=0;o=m;L=u?1:5;j:{if(L>>>0>m>>>0){m=L;break j}m=-1;if(!n){break j}m=1;k:{l:{m:{n:{o:{p:{t=o;q:{r:{if((u|0)==1){x=n;if(o){break r}x=-72;break q}m=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);if((m|0)!=-47205080){break p}m=L;x=(m+n|0)-1|0}r=E[x|0];u=r&32;x=(!u+(D[(r>>>4&12)+419600>>2]+(D[((r&3)<<2)+419584>>2]+m|0)|0)|0)+(u>>>5&r>>>0<64)|0}if(t>>>0>>0){break k}D[X+24>>2]=x;x=-14;m=n+L|0;r=E[m-1|0];if(r&8){break k}S=r&32;if(!S){x=-16;m=E[m|0];if(m>>>0>167){break k}u=m&7;m=(m>>>3|0)+10|0;q=m&31;if((m&63)>>>0>=32){x=1<>>32-q;q=1<>>3,x>>>3|0)+q|0;w=u;m=x+Ga|0;q=q>>>0>w>>>0?m+1|0:m;L=L+1|0}t=r>>>6|0;u=r>>>2|0;x=0;switch((r&3)-1|0){case 2:break m;case 1:break n;case 0:break o;default:break l}}x=-10;if((m&-16)!=407710288){break k}x=8;if(o>>>0<8){break k}D[X>>2]=0;D[X+4>>2]=0;D[X+32>>2]=0;D[X+36>>2]=0;D[X+24>>2]=0;D[X+28>>2]=0;D[X+16>>2]=0;D[X+20>>2]=0;D[X+8>>2]=0;D[X+12>>2]=0;m=E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24);D[X+20>>2]=1;D[X>>2]=m;D[X+4>>2]=0;m=0;break j}x=E[n+L|0];L=L+1|0;break l}m=n+L|0;x=E[m|0]|E[m+1|0]<<8;L=L+2|0;break l}m=n+L|0;x=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);L=L+4|0}r=u&1;s:{t:{switch(t-1|0){default:u=-1;m=-1;if(!S){break s}u=E[n+L|0];m=0;break s;case 0:m=n+L|0;L=(E[m|0]|E[m+1|0]<<8)+256|0;m=L>>>0<256;u=L;break s;case 1:m=n+L|0;u=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);m=0;break s;case 2:break t}}m=n+L|0;u=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);m=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24)}D[X+32>>2]=r;D[X+28>>2]=x;D[X>>2]=u;D[X+4>>2]=m;x=0;D[X+20>>2]=0;L=S?u:w;D[X+8>>2]=L;m=S?m:q;D[X+12>>2]=m;D[X+16>>2]=!m&L>>>0<131072?L:131072}m=x}if(m>>>0>4294967176){break h}if(m){m=-72;break h}u:{v:{if(D[y+29608>>2]!=1){break v}t=D[y+29604>>2];if(!t|!D[y+29588>>2]){break v}w=D[t+4>>2]-1|0;q=D[y+29404>>2];u=nf(rf(nf(q,0,-2048144761,-1640531535)^374761417,Ga^668265263,23),Ga,668265295,-1028477379)-1640531463|0;m=Ga+374761393|0;m=u>>>0<2654435833?m+1|0:m;r=nf(u^m>>>1,m,668265295,-1028477379);u=Ga;m=u;m=nf(r^((m&536870911)<<3|r>>>29),m^m>>>29,-1640531463,374761393);L=(m^Ga)&w;u=D[t>>2];while(1){r=D[u+(L<<2)>>2];if(!r){break v}w:{if(G[r+8>>2]<8){break w}m=D[r+4>>2];if((E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24))!=-332356553){break w}m=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);if((m|0)==(q|0)){break w}L=(w&L)+1|0;if(m){continue}}break}q=D[y+29584>>2];x:{if(!q){break x}L=D[q+27320>>2];u=D[q+27316>>2];y:{z:{m=D[q>>2];if(m){if(!u){break z}Ha[u|0](L,m);Ha[u|0](L,q);break x}if(!u){break y}Ha[u|0](L,q);break x}Ta(m)}Ta(q)}D[y+29600>>2]=0;D[y+29584>>2]=0;D[y+29588>>2]=0;D[y+29600>>2]=-1;D[y+29588>>2]=r;S=D[y+29404>>2];D[y+29592>>2]=S;break u}S=D[y+29404>>2]}if(!(!S|D[y+29592>>2]==(S|0))){m=-32;break h}A:{if(!D[y+29408>>2]){D[y+29548>>2]=0;break A}m=D[y+29544>>2];D[y+29548>>2]=!m;if(m){break A}D[y+29480>>2]=2048144761;D[y+29484>>2]=1640531534;D[y+29472>>2]=0;D[y+29476>>2]=0;D[y+29464>>2]=668265295;D[y+29468>>2]=-1028477379;D[y+29456>>2]=-1379879466;D[y+29460>>2]=1625958382;D[y+29448>>2]=0;D[y+29452>>2]=0;D[ua+32>>2]=0;D[ua+36>>2]=0;D[za+24>>2]=0;D[za+28>>2]=0;m=ua;D[m+16>>2]=0;D[m+20>>2]=0;D[m+8>>2]=0;D[m+12>>2]=0;D[m>>2]=0;D[m+4>>2]=0}wa=ma+ta|0;m=Ca;u=D[m+4>>2];L=o+D[m>>2]|0;D[m>>2]=L;D[m+4>>2]=o>>>0>L>>>0?u+1|0:u;p=p-o|0;n=n+o|0;L=ma;while(1){if(p>>>0<3){m=-72;break h}xa=E[n|0]|E[n+1|0]<<8;u=xa|E[n+2|0]<<16;o=u>>>3|0;q=xa>>>1&3;S=q;m=-20;B:{switch(q-1|0){default:S=o;break;case 2:break h;case 0:break B}}Aa=p-3|0;if(Aa>>>0>>0){m=-72;break h}_=n+3|0;C:{D:{switch(q|0){case 0:if(wa-L>>>0>>0){m=-70;break h}if(!L){m=0;if(!S){break C}m=-74;break h}Xa(L,_,S);m=S;break C;case 1:if(o>>>0>wa-L>>>0){m=-70;break h}if(!L){m=0;if(u>>>0<8){break C}m=-74;break h}Va(L,E[_|0],o);m=o;break C;case 2:break D;default:break h}}pa=L;ca=wa-L|0;P=0;v=Fa-192|0;Fa=v;m=y+29384|0;n=D[m+4>>2];ya=!n&G[m>>2]>33554432|(n|0)!=0;u=-72;E:{if(S>>>0>131071){break E}u=-20;F:{if(S>>>0<3){break F}G:{H:{I:{J:{K:{m=E[_|0];fa=m&3;switch(fa-1|0){case 0:break I;case 1:break J;case 2:break K;default:break H}}if(D[y+29440>>2]){break J}u=-30;break F}if(S>>>0<5){break F}q=3;o=E[_|0]|E[_+1|0]<<8|(E[_+2|0]<<16|E[_+3|0]<<24);L:{M:{N:{O:{P:{m=m>>>2&3;switch(m-2|0){case 1:break N;case 0:break O;default:break P}}n=o>>>14&1023;p=o>>>4&1023;r=!m;break L}q=4;p=o>>>4&16383;n=o>>>18|0;break M}q=5;p=o>>>4&262143;n=E[_+4|0]<<10|o>>>22}r=0}if(p>>>0>131072){break F}t=n+q|0;if(t>>>0>S>>>0){break F}if(!D[y+29596>>2]|p>>>0<769){break G}m=0;while(1){if(m>>>0>=16324){break G}m=m+512|0;continue}}n=2;Q:{R:{switch((m>>>2&3)-1|0){default:n=1;p=m>>>3|0;break Q;case 0:p=(E[_|0]|E[_+1|0]<<8)>>>4|0;break Q;case 2:break R}}if(S>>>0<4){break F}m=E[_|0]|E[_+1|0]<<8|E[_+2|0]<<16;if(m>>>0>2097167){break F}n=3;p=m>>>4|0}m=Va(y+29688|0,E[n+_|0],p+32|0);D[y+29568>>2]=p;D[y+29552>>2]=m;u=n+1|0;break F}n=2;p=S;S:{T:{switch((m>>>2&3)-1|0){default:n=1;o=m>>>3|0;break S;case 0:o=(E[_|0]|E[_+1|0]<<8)>>>4|0;break S;case 2:break T}}n=3;o=(E[_|0]|E[_+1|0]<<8|E[_+2|0]<<16)>>>4|0}m=n+o|0;if(p>>>0>>0){if(m>>>0>S>>>0){break F}n=Xa(y+29688|0,n+_|0,o);D[y+29568>>2]=o;D[y+29552>>2]=n;n=n+o|0;B[n+24|0]=0;B[n+25|0]=0;B[n+26|0]=0;B[n+27|0]=0;B[n+28|0]=0;B[n+29|0]=0;B[n+30|0]=0;B[n+31|0]=0;B[n+16|0]=0;B[n+17|0]=0;B[n+18|0]=0;B[n+19|0]=0;B[n+20|0]=0;B[n+21|0]=0;B[n+22|0]=0;B[n+23|0]=0;B[n+8|0]=0;B[n+9|0]=0;B[n+10|0]=0;B[n+11|0]=0;B[n+12|0]=0;B[n+13|0]=0;B[n+14|0]=0;B[n+15|0]=0;B[n|0]=0;B[n+1|0]=0;B[n+2|0]=0;B[n+3|0]=0;B[n+4|0]=0;B[n+5|0]=0;B[n+6|0]=0;B[n+7|0]=0;u=m;break F}D[y+29568>>2]=o;D[y+29552>>2]=n+_;u=m;break F}U:{if((fa|0)==3){o=q+_|0;w=y+29688|0;s=D[y+12>>2];if(r){r=0;V:{if(E[s+1|0]){x=-72;W:{if(!n){break W}X:{Y:{Z:{if(n>>>0>=4){m=E[(n+o|0)-1|0];x=-1;if(!m){break X}if(n>>>0<=4294967176){break Z}x=n;break W}q=E[o|0];_:{switch(n-2|0){case 1:q=E[o+2|0]<<16|q;case 0:q=(E[o+1|0]<<8)+q|0;break;default:break _}}m=E[(n+o|0)-1|0];x=-20;if(!m){break W}n=(M(m)-(n<<3)|0)+9|0;break Y}r=n-4|0;n=o+r|0;q=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);n=M(m)-23|0}I=s+4|0;H=p+w|0;K=0-F[s+2>>1]&31;$:{aa:{if(n>>>0<=32){V=H-3|0;ba:{while(1){ca:{if((r|0)>=4){x=n&7;q=n>>>3|0;n=1;break ca}if(!r){x=H-2|0;r=0;s=o;break aa}m=n>>>3|0;s=(o+r|0)-m|0;q=o>>>0>s>>>0?r:m;x=n-(q<<3)|0;n=o>>>0<=s>>>0}r=r-q|0;s=o+r|0;q=E[s|0]|E[s+1|0]<<8|(E[s+2|0]<<16|E[s+3|0]<<24);if(!n|w>>>0>=V>>>0){break ba}m=I+(q<>>K<<2)|0;n=F[m>>1];B[w|0]=n;B[w+1|0]=n>>>8;w=E[m+3|0]+w|0;m=E[m+2|0]+x|0;x=I+(q<>>K<<2)|0;n=F[x>>1];B[w|0]=n;B[w+1|0]=n>>>8;w=w+E[x+3|0]|0;n=m+E[x+2|0]|0;if(n>>>0<33){continue}break}x=H-2|0;break $}n=x}s=o+r|0;x=H-2|0;if(n>>>0>32){break $}}while(1){da:{if((r|0)>=4){m=n&7;q=n>>>3|0;n=1;break da}if(!r){break $}m=n>>>3|0;s=s-m|0;q=o>>>0>s>>>0?r:m;m=n-(q<<3)|0;n=o>>>0<=s>>>0}r=r-q|0;s=o+r|0;q=E[s|0]|E[s+1|0]<<8|(E[s+2|0]<<16|E[s+3|0]<<24);if(!(n?w>>>0<=x>>>0:0)){n=m;break $}V=I+(q<>>K<<2)|0;n=F[V>>1];B[w|0]=n;B[w+1|0]=n>>>8;w=E[V+3|0]+w|0;n=E[V+2|0]+m|0;if(n>>>0<=32){continue}break}}if(w>>>0<=x>>>0){while(1){r=I+(q<>>K<<2)|0;m=F[r>>1];B[w|0]=m;B[w+1|0]=m>>>8;n=E[r+2|0]+n|0;w=E[r+3|0]+w|0;if(w>>>0<=x>>>0){continue}break}}ea:{if(w>>>0>=H>>>0){break ea}m=q<>>K|0;q=I+(m<<2)|0;B[w|0]=E[q|0];if(E[q+3|0]==1){n=E[q+2|0]+n|0;break ea}if(n>>>0>31){break ea}n=E[(I+(m<<2)|0)+2|0]+n|0;n=n>>>0<32?n:32}x=(o|0)!=(s|0)?-20:(n|0)!=32?-20:p}}m=x;break V}m=$c(w,p,o,n,s)}break U}fa:{if(E[s+1|0]){m=Yc(w,p,o,n,s);break fa}m=_c(w,p,o,n,s)}break U}w=y+27308|0;V=q+_|0;sa=y+29688|0;x=y+10280|0;if(r){m=ad(x,V,n,w);if(m>>>0>4294967176){break U}if(n>>>0>m>>>0){m=$c(sa,p,m+V|0,n-m|0,x)}else{m=-72}break U}m=-70;ga:{if(!p){break ga}m=-20;if(!n){break ga}o=p>>>8|0;q=J(n>>>0

>>0?(n<<4>>>0)/(p>>>0)|0:15,24);m=J(o,D[q+416748>>2])+D[q+416744>>2]|0;ha:{if((m>>>3|0)+m>>>0>2]+J(o,D[q+416740>>2])>>>0){o=V;m=n;A=0;T=Fa-448|0;Fa=T;I=-44;r=x;la=D[r>>2];R=w;Y=Va(w+624|0,0,108);W=la&255;ia:{if(W>>>0>12){break ia}Z=R+1244|0;w=bd(Z,Y,T+8|0,T+12|0,o,m,T+16|0);if(w>>>0<=4294967176){o=D[T+12>>2];if(o>>>0>W>>>0){break ia}ja=R+732|0;qa=R+676|0;da=r+4|0;aa=R+680|0;m=o;while(1){K=m;m=m-1|0;if(!D[Y+(K<<2)>>2]){continue}break}m=1;U=K+1|0;ja:{if(U>>>0<2){break ja}ba=K&3;if(K-1>>>0>=3){I=K&-4;while(1){$=m<<2;s=D[$+Y>>2];D[aa+$>>2]=A;q=$+4|0;H=D[q+Y>>2];s=s+A|0;D[q+aa>>2]=s;q=$+8|0;Q=D[q+Y>>2];H=s+H|0;D[q+aa>>2]=H;q=$+12|0;s=D[q+Y>>2];z=q+aa|0;q=H+Q|0;D[z>>2]=q;A=q+s|0;m=m+4|0;I=I-4|0;if(I){continue}break}}if(!ba){break ja}while(1){s=m<<2;q=D[s+Y>>2];D[s+aa>>2]=A;m=m+1|0;A=q+A|0;ba=ba-1|0;if(ba){continue}break}}D[aa>>2]=A;$=D[T+8>>2];ka:{if(!$){break ka}m=0;if(($|0)!=1){H=$&-2;while(1){s=E[m+Z|0];q=aa+(s<<2)|0;I=D[q>>2];D[q>>2]=I+1;q=(I<<1)+ja|0;B[q+1|0]=s;B[q|0]=m;I=m|1;s=E[I+Z|0];q=aa+(s<<2)|0;Q=D[q>>2];D[q>>2]=Q+1;q=(Q<<1)+ja|0;B[q+1|0]=s;B[q|0]=I;m=m+2|0;H=H-2|0;if(H){continue}break}}if(!($&1)){break ka}s=E[m+Z|0];q=aa+(s<<2)|0;H=D[q>>2];D[q>>2]=H+1;q=(H<<1)+ja|0;B[q+1|0]=s;B[q|0]=m}Q=0;D[R+680>>2]=0;la:{if(U>>>0>=2){m=1;$=K-1|0;if($){Z=(o^-1)+W|0;ga=K&-2;while(1){q=m<<2;I=D[q+Y>>2];D[q+R>>2]=Q;H=m+1|0;q=H<<2;s=D[q+Y>>2];z=q+R|0;q=(I<>2]=q;Q=q+(s<>2]=Q}na=o+1|0;s=na-K|0;Z=(W-s|0)+1|0;if(U>>>0<2|s>>>0>=Z>>>0){break la}q=K&-4;o=K&3;Q=s;while(1){I=1;H=q;if($>>>0>=3){while(1){K=J(Q,52)+R|0;U=I<<2;D[K+U>>2]=D[R+U>>2]>>>Q;m=U+4|0;D[m+K>>2]=D[m+R>>2]>>>Q;m=U+8|0;D[m+K>>2]=D[m+R>>2]>>>Q;m=U+12|0;D[m+K>>2]=D[m+R>>2]>>>Q;I=I+4|0;H=H-4|0;if(H){continue}break}}m=o;if(m){while(1){K=I<<2;D[K+(J(Q,52)+R|0)>>2]=D[K+R>>2]>>>Q;I=I+1|0;m=m-1|0;if(m){continue}break}}Q=Q+1|0;if(Z>>>0>Q>>>0){continue}break}break la}na=o+1|0;s=na-K|0}D[T+432>>2]=D[R+48>>2];m=D[R+44>>2];D[T+424>>2]=D[R+40>>2];D[T+428>>2]=m;m=D[R+36>>2];D[T+416>>2]=D[R+32>>2];D[T+420>>2]=m;m=D[R+28>>2];D[T+408>>2]=D[R+24>>2];D[T+412>>2]=m;m=D[R+20>>2];D[T+400>>2]=D[R+16>>2];D[T+404>>2]=m;m=D[R+4>>2];D[T+384>>2]=D[R>>2];D[T+388>>2]=m;m=D[R+12>>2];D[T+392>>2]=D[R+8>>2];D[T+396>>2]=m;if(A){Z=na-W|0;z=0;while(1){o=(z<<1)+ja|0;m=E[o+1|0];ka=na-m|0;ra=W-ka|0;ea=1<>2];ma:{if(s>>>0<=ra>>>0){K=Z+ka|0;o=((K|0)>1?K:1)<<2;q=D[o+qa>>2];H=J(ka,52)+R|0;D[T- -64>>2]=D[H+48>>2];m=D[H+44>>2];D[T+56>>2]=D[H+40>>2];D[T+60>>2]=m;m=D[H+36>>2];D[T+48>>2]=D[H+32>>2];D[T+52>>2]=m;m=D[H+28>>2];D[T+40>>2]=D[H+24>>2];D[T+44>>2]=m;m=D[H+20>>2];D[T+32>>2]=D[H+16>>2];D[T+36>>2]=m;m=D[H+12>>2];D[T+24>>2]=D[H+8>>2];D[T+28>>2]=m;m=D[H+4>>2];D[T+16>>2]=D[H>>2];D[T+20>>2]=m;aa=A-q|0;O=(ga<<2)+da|0;na:{if((K|0)<2){break na}m=D[o+(T+16|0)>>2];if(!m){break na}K=ka<<16&16711680|Y|16777216;H=m&7;Q=0;if(m-1>>>0>=7){ba=m&-8;while(1){o=Q<<2;m=o+O|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|4)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|8)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|12)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|16)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|20)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|24)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;m=O+(o|28)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;Q=Q+8|0;ba=ba-8|0;if(ba){continue}break}}if(!H){break na}while(1){m=O+(Q<<2)|0;C[m>>1]=K;C[m+2>>1]=K>>>16;Q=Q+1|0;H=H-1|0;if(H){continue}break}}if(aa){K=(q<<1)+ja|0;H=0;while(1){q=K+(H<<1)|0;m=E[q+1|0];U=na-m|0;o=(T+16|0)+(m<<2)|0;Q=D[o>>2];I=Q+(1<>1]=q;C[m+2>>1]=q>>>16;Q=Q+1|0;if(I>>>0>Q>>>0){continue}break}D[o>>2]=I;H=H+1|0;if((aa|0)!=(H|0)){continue}break}}m=ga+ea|0;break ma}m=ga+ea|0;if(ga>>>0>=m>>>0){break ma}q=ka<<16&16711680|Y|16777216;if(ra>>>0<=2){I=ea&7;while(1){o=(ga<<2)+da|0;C[o>>1]=q;C[o+2>>1]=q>>>16;ga=ga+1|0;I=I-1|0;if(I){continue}break}}if(ra>>>0<3){break ma}while(1){o=(ga<<2)+da|0;C[o>>1]=q;C[o+2>>1]=q>>>16;C[o+28>>1]=q;C[o+30>>1]=q>>>16;C[o+24>>1]=q;C[o+26>>1]=q>>>16;C[o+20>>1]=q;C[o+22>>1]=q>>>16;C[o+16>>1]=q;C[o+18>>1]=q>>>16;C[o+12>>1]=q;C[o+14>>1]=q>>>16;C[o+8>>1]=q;C[o+10>>1]=q>>>16;C[o+4>>1]=q;C[o+6>>1]=q>>>16;ga=ga+8|0;if((ga|0)!=(m|0)){continue}break}}D[$>>2]=m;z=z+1|0;if((A|0)!=(z|0)){continue}break}}D[r>>2]=la&-16777216|W<<16|W|256}I=w}Fa=T+448|0;m=I;if(m>>>0>4294967176){break ga}o=-72;if(n>>>0<=m>>>0){break ha}m=Yc(sa,p,m+V|0,n-m|0,x);break ga}m=ad(x,V,n,w);if(m>>>0>4294967176){break ga}o=-72;if(n>>>0<=m>>>0){break ha}o=_c(sa,p,m+V|0,n-m|0,x)}m=o}}if(m>>>0>4294967176){break F}D[y+29568>>2]=p;D[y+29440>>2]=1;D[y+29552>>2]=y+29688;if((fa|0)==2){D[y+12>>2]=y+10280}n=p+y|0;m=n+29712|0;B[m|0]=0;B[m+1|0]=0;B[m+2|0]=0;B[m+3|0]=0;B[m+4|0]=0;B[m+5|0]=0;B[m+6|0]=0;B[m+7|0]=0;m=n+29704|0;B[m|0]=0;B[m+1|0]=0;B[m+2|0]=0;B[m+3|0]=0;B[m+4|0]=0;B[m+5|0]=0;B[m+6|0]=0;B[m+7|0]=0;m=n+29696|0;B[m|0]=0;B[m+1|0]=0;B[m+2|0]=0;B[m+3|0]=0;B[m+4|0]=0;B[m+5|0]=0;B[m+6|0]=0;B[m+7|0]=0;n=n+29688|0;B[n|0]=0;B[n+1|0]=0;B[n+2|0]=0;B[n+3|0]=0;B[n+4|0]=0;B[n+5|0]=0;B[n+6|0]=0;B[n+7|0]=0;u=t}if(u>>>0>4294967176){break E}w=D[y+29596>>2];n=u>>>0<4294967177;q=n?u+_|0:_;s=q;x=-72;n=S-(n?u:0)|0;oa:{pa:{if(!n){break pa}m=n;p=E[s|0];if(!p){D[v+36>>2]=0;m=(m|0)==1?1:-72;break oa}o=p<<24>>24;t=s+1|0;qa:{if((o|0)>-1){break qa}if((o|0)==-1){if((m|0)<3){break pa}p=(E[s+1|0]|E[s+2|0]<<8)+32512|0;t=s+3|0;break qa}if((m|0)<2){break pa}p=(E[s+1|0]|p<<8)-32768|0;t=s+2|0}o=t;D[v+36>>2]=p;r=o+1|0;t=m+s|0;if(r>>>0>t>>>0){break pa}x=-20;o=E[o|0];u=y+27308|0;m=ec(y+16|0,y,o>>>6|0,35,9,r,t-r|0,417824,417968,418128,D[y+29444>>2],D[y+29596>>2],p,u);if(m>>>0>4294967176){break pa}r=m>>>0<4294967177?m+r|0:r;m=ec(y+4120|0,y+8|0,o>>>4&3,31,8,r,t-r|0,417120,417248,418656,D[y+29444>>2],D[y+29596>>2],p,u);if(m>>>0>4294967176){break pa}z=o>>>2&3;o=m>>>0<4294967177?m+r|0:r;m=ec(y+6176|0,y+4|0,z,52,9,o,t-o|0,417376,417600,418928,D[y+29444>>2],D[y+29596>>2],p,u);if(m>>>0>4294967176){break pa}x=(m+o|0)-s|0}m=x}if(m>>>0>4294967176){u=m;break E}ba=D[v+36>>2];if(!L){u=-70;if((ba|0)>0){break E}}r=n-m|0;O=m+q|0;ra:{sa:{ta:{if(w){D[y+29596>>2]=0;break ta}m=y+29384|0;n=D[m>>2];if(!D[m+4>>2]&n>>>0<16777217|(ba|0)<=4){break sa}n=D[y+8>>2];m=n+8|0;p=D[n+4>>2];u=0;n=0;while(1){u=(E[(m+(n<<3)|0)+2|0]>22)+u|0;n=n+1|0;if(!(n>>>p|0)){continue}break}D[y+29596>>2]=0;if(u<<8-p>>>0<20){break ra}}n=D[y+29552>>2];D[v+188>>2]=n;ka=L+ca|0;na=D[y+29568>>2]+n|0;ua:{if(!ba){o=L;break ua}ja=D[y+29368>>2];ra=D[y+29364>>2];V=D[y+29360>>2];D[y+29444>>2]=1;D[v+92>>2]=D[y+26676>>2];Q=y+26668|0;m=Q;n=D[m+4>>2];D[v+84>>2]=D[m>>2];D[v+88>>2]=n;D[v+100>>2]=ja;D[v+96>>2]=V;Y=L-V|0;D[v+104>>2]=Y;u=-20;if(!r){break E}D[v+52>>2]=O;D[v+56>>2]=O+4;va:{if(r>>>0>=4){n=r-4|0;m=O+n|0;D[v+48>>2]=m;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A;if(A>>>0<16777216){break E}x=M(A>>>24|0)-23|0;D[v+44>>2]=x;if(r>>>0<=4294967176){break va}break E}D[v+48>>2]=O;A=E[O|0];D[v+40>>2]=A;wa:{switch(r-2|0){case 1:A=E[O+2|0]<<16|A;case 0:A=(E[O+1|0]<<8)+A|0;D[v+40>>2]=A;break;default:break wa}}n=E[(r+O|0)-1|0];if(!n){break E}x=(M(n)-(r<<3)|0)+9|0;D[v+44>>2]=x;n=0}p=D[y>>2];m=D[p+4>>2];x=m+x|0;D[v+44>>2]=x;q=D[(m<<2)+419456>>2]&A>>>0-x;D[v+60>>2]=q;xa:{if(x>>>0>32){break xa}o=v;ya:{if((n|0)>=4){n=n-(x>>>3|0)|0;D[v+48>>2]=O+n;x=x&7;break ya}if(!n){n=0;break xa}m=x>>>3|0;m=(n+O|0)-m>>>0>>0?n:m;n=n-m|0;D[v+48>>2]=O+n;x=x-(m<<3)|0}D[o+44>>2]=x;m=n+O|0;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A}fa=p+8|0;D[v- -64>>2]=fa;p=D[y+8>>2];m=D[p+4>>2];x=m+x|0;D[v+44>>2]=x;W=D[(m<<2)+419456>>2]&A>>>0-x;D[v+68>>2]=W;za:{if(x>>>0>32){break za}o=v;Aa:{if((n|0)>=4){n=n-(x>>>3|0)|0;D[v+48>>2]=O+n;x=x&7;break Aa}if(!n){n=0;break za}m=x>>>3|0;m=(n+O|0)-m>>>0>>0?n:m;n=n-m|0;D[v+48>>2]=O+n;x=x-(m<<3)|0}D[o+44>>2]=x;m=n+O|0;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A}o=(ba|0)<4;la=p+8|0;D[v+72>>2]=la;p=D[y+4>>2];m=D[p+4>>2];x=m+x|0;D[v+44>>2]=x;H=D[(m<<2)+419456>>2]&A>>>0-x;D[v+76>>2]=H;Ba:{if(x>>>0>32){break Ba}w=v;Ca:{if((n|0)>=4){n=n-(x>>>3|0)|0;D[v+48>>2]=O+n;x=x&7;break Ca}if(!n){n=0;break Ba}m=x>>>3|0;m=(n+O|0)-m>>>0>>0?n:m;n=n-m|0;D[v+48>>2]=O+n;x=x-(m<<3)|0}D[w+44>>2]=x;m=n+O|0;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A}sa=o?ba:4;aa=p+8|0;D[v+80>>2]=aa;Da:{if(x>>>0<=32){$=(sa|0)>0?sa:0;p=n;w=n;r=n;o=n;t=n;while(1){s=v;Ea:{Fa:{if((t|0)>=4){m=x&7;D[v+44>>2]=m;n=t-(x>>>3|0)|0;p=O+n|0;D[v+48>>2]=p;A=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);break Fa}if(!t){m=x;t=0;break Ea}n=x>>>3|0;n=(t+O|0)-n>>>0>>0?t:n;m=x-(n<<3)|0;D[v+44>>2]=m;n=t-n|0;p=O+n|0;D[v+48>>2]=p;A=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24)}D[s+40>>2]=A;p=n;w=n;r=n;o=n;t=n}if((P|0)==($|0)){x=m;P=$;break Da}q=fa+(q<<3)|0;K=D[q+4>>2];I=D[q>>2];U=(K&65535)<<16|I>>>16;z=U&255;q=aa+(H<<3)|0;H=D[q+4>>2];R=D[q>>2];qa=(H&65535)<<16|R>>>16;ea=qa&255;x=la+(W<<3)|0;q=D[x+4>>2];Z=q;s=H;W=K;ca=D[x>>2];q=(q&65535)<<16|ca>>>16;da=q&255;Ga:{if(da>>>0>=2){Ha:{if(!(!ya|da>>>0<25)){q=32-m|0;q=q>>>0>da>>>0?da:q;da=da-q|0;x=A<>>0-q<>>0>32){break Ia}o=v;Ja:{if((r|0)>=4){n=r-(q>>>3|0)|0;D[v+48>>2]=O+n;q=q&7;break Ja}if(!r){r=0;o=0;t=0;break Ia}n=q>>>3|0;m=(r+O|0)-n>>>0>>0?r:n;n=r-m|0;D[v+48>>2]=O+n;q=q-(m<<3)|0}D[o+44>>2]=q;m=n+O|0;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A;p=n;w=n;r=n;o=n;t=n}x=x+Z|0;if(!da){break Ha}x=(A<>>0-da|0)+x|0;q=q+da|0;break Ha}x=Z+(A<>>0-q|0)|0;m=m+da|0;if(m>>>0>32){q=m;break Ha}Ka:{if((o|0)>=4){q=m&7;D[v+44>>2]=q;n=o-(m>>>3|0)|0;m=O+n|0;D[v+48>>2]=m;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A;break Ka}if(!o){o=0;q=m;t=0;break Ha}n=m>>>3|0;p=(o+O|0)-n>>>0>>0?o:n;n=o-p|0;o=O+n|0;D[v+48>>2]=o;A=E[o|0]|E[o+1|0]<<8|(E[o+2|0]<<16|E[o+3|0]<<24);D[v+40>>2]=A;q=m-(p<<3)|0}p=n;w=n;r=n;o=n;t=n}Z=D[v+88>>2];m=D[v+84>>2];D[v+84>>2]=x;D[v+88>>2]=m;D[v+92>>2]=Z;break Ga}if(!da){if(W){x=D[v+84>>2];q=m;break Ga}x=D[v+88>>2];D[v+88>>2]=D[v+84>>2];D[v+84>>2]=x;q=m;break Ga}q=m+1|0;D[v+44>>2]=q;Z=Z+(!W+(A<>>31|0)|0)|0;La:{Ma:{if((Z|0)==3){m=D[v+84>>2]-1|0;x=!m+m|0;break Ma}m=D[((Z<<2)+v|0)+84>>2];x=!m+m|0;if((Z|0)==1){break La}}D[v+92>>2]=D[v+88>>2]}D[v+88>>2]=D[v+84>>2];D[v+84>>2]=x}Z=z+ea|0;Na:{if(!ea){m=q;break Na}m=q+ea|0;D[v+44>>2]=m;s=(A<>>0-qa|0)+s|0}Oa:{if(Z>>>0<20|m>>>0>32){break Oa}Pa:{if((w|0)>=4){n=w-(m>>>3|0)|0;D[v+48>>2]=O+n;m=m&7;break Pa}if(!w){w=0;r=0;o=0;t=0;break Oa}n=m>>>3|0;p=(w+O|0)-n>>>0>>0?w:n;n=w-p|0;D[v+48>>2]=O+n;m=m-(p<<3)|0}p=n+O|0;A=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);D[v+40>>2]=A;p=n;w=n;r=n;o=n;t=n}q=I;Z=(K&16777215)<<8|q>>>24;K=R;I=(H&16777215)<<8|K>>>24;if(z){W=(A<>>0-U|0)+W|0;m=m+z|0}Qa:{if(m>>>0>32){break Qa}Ra:{if((p|0)>=4){n=p-(m>>>3|0)|0;D[v+48>>2]=O+n;m=m&7;break Ra}if(!p){p=0;w=0;r=0;o=0;t=0;break Qa}o=p;n=m>>>3|0;p=(p+O|0)-n>>>0>>0?p:n;n=o-p|0;D[v+48>>2]=O+n;m=m-(p<<3)|0}p=n+O|0;A=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);D[v+40>>2]=A;p=n;w=n;r=n;o=n;t=n}R=Y+W|0;Y=R+s|0;D[v+104>>2]=Y;H=Z&255;m=m+H|0;q=(A>>>0-m&D[(H<<2)+419456>>2])+(q&65535)|0;D[v+60>>2]=q;H=I&255;m=H+m|0;H=(D[(H<<2)+419456>>2]&A>>>0-m)+(K&65535)|0;D[v+76>>2]=H;K=(R+(x>>>0>R>>>0?ja:V)|0)-x|0;Sa:{if(m>>>0>32){break Sa}Ta:{if((n|0)>=4){n=n-(m>>>3|0)|0;D[v+48>>2]=O+n;m=m&7;break Ta}if(!n){n=0;p=0;w=0;r=0;o=0;t=0;break Sa}p=m>>>3|0;p=(n+O|0)-p>>>0>>0?n:p;n=n-p|0;D[v+48>>2]=O+n;m=m-(p<<3)|0}p=n+O|0;A=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);D[v+40>>2]=A;p=n;w=n;r=n;o=n;t=n}I=(v+112|0)+(P<<4)|0;D[I+12>>2]=K;D[I+8>>2]=x;D[I+4>>2]=s;D[I>>2]=W;s=ca>>>24|0;x=m+s|0;D[v+44>>2]=x;W=(D[(s<<2)+419456>>2]&A>>>0-x)+(ca&65535)|0;D[v+68>>2]=W;P=P+1|0;if(x>>>0<=32){continue}break}}if((P|0)<(sa|0)){break E}}qa=ka-32|0;Z=v+96|0;$=v+100|0;o=L;Ua:{while(1){if(x>>>0>=33){if((P|0)<(ba|0)){break E}break Ua}m=D[v+48>>2];Y=D[v+56>>2];Va:{if(m>>>0>=Y>>>0){s=x&7;D[v+44>>2]=s;m=m-(x>>>3|0)|0;D[v+48>>2]=m;D[v+40>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);break Va}p=D[v+52>>2];if((p|0)==(m|0)){s=x;break Va}n=x>>>3|0;n=p>>>0>m-n>>>0?m-p|0:n;m=m-n|0;D[v+48>>2]=m;s=x-(n<<3)|0;D[v+44>>2]=s;D[v+40>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24)}if((P|0)>=(ba|0)){break Ua}n=D[v+64>>2]+(D[v+60>>2]<<3)|0;w=D[n+4>>2];H=D[n>>2];R=(w&65535)<<16|H>>>16;fa=R&255;n=D[v+80>>2]+(D[v+76>>2]<<3)|0;x=D[n+4>>2];K=D[n>>2];I=(x&65535)<<16|K>>>16;la=I&255;p=D[v+72>>2]+(D[v+68>>2]<<3)|0;n=D[p+4>>2];aa=n;q=x;W=w;U=D[p>>2];n=(n&65535)<<16|U>>>16;p=n&255;Wa:{if(p>>>0>=2){Xa:{if(!(!ya|p>>>0<25)){n=32-s|0;n=n>>>0>p>>>0?p:n;ca=p-n|0;r=D[v+40>>2];t=r<>>0-n<>>0>32){break Ya}z=v;Za:{if(m>>>0>=Y>>>0){m=m-(n>>>3|0)|0;D[v+48>>2]=m;n=n&7;break Za}s=D[v+52>>2];if((s|0)==(m|0)){break Ya}p=n>>>3|0;p=s>>>0>m-p>>>0?m-s|0:p;m=m-p|0;D[v+48>>2]=m;n=n-(p<<3)|0}D[z+44>>2]=n;r=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=r}t=t+aa|0;if(!ca){break Xa}t=(r<>>0-ca|0)+t|0;n=n+ca|0;break Xa}t=aa+(D[v+40>>2]<>>0-n|0)|0;p=p+s|0;if(p>>>0>32){n=p;break Xa}if(m>>>0>=Y>>>0){n=p&7;D[v+44>>2]=n;m=m-(p>>>3|0)|0;D[v+48>>2]=m;D[v+40>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);break Xa}r=D[v+52>>2];if((r|0)==(m|0)){n=p;break Xa}n=p>>>3|0;n=r>>>0>m-n>>>0?m-r|0:n;m=m-n|0;D[v+48>>2]=m;n=p-(n<<3)|0;D[v+44>>2]=n;D[v+40>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24)}r=D[v+88>>2];p=D[v+84>>2];D[v+84>>2]=t;D[v+88>>2]=p;D[v+92>>2]=r;break Wa}if(!p){if(W){t=D[v+84>>2];n=s;break Wa}t=D[v+88>>2];D[v+88>>2]=D[v+84>>2];D[v+84>>2]=t;n=s;break Wa}n=s+1|0;D[v+44>>2]=n;r=aa+!W+(D[v+40>>2]<>>31)|0;_a:{$a:{if((r|0)==3){p=D[v+84>>2]-1|0;t=!p+p|0;break $a}p=D[((r<<2)+v|0)+84>>2];t=!p+p|0;if((r|0)==1){break _a}}D[v+92>>2]=D[v+88>>2]}D[v+88>>2]=D[v+84>>2];D[v+84>>2]=t}s=q;if(la){s=(D[v+40>>2]<>>0-I|0)+s|0;n=n+la|0}ab:{if(fa+la>>>0<20|n>>>0>32){break ab}r=v;bb:{if(m>>>0>=Y>>>0){m=m-(n>>>3|0)|0;D[v+48>>2]=m;n=n&7;break bb}q=D[v+52>>2];if((q|0)==(m|0)){break ab}p=n>>>3|0;p=q>>>0>m-p>>>0?m-q|0:p;m=m-p|0;D[v+48>>2]=m;n=n-(p<<3)|0}D[r+44>>2]=n;D[v+40>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24)}q=K;x=(x&16777215)<<8|q>>>24;p=H;r=(w&16777215)<<8|p>>>24;if(fa){W=(D[v+40>>2]<>>0-R|0)+W|0;n=n+fa|0}cb:{if(n>>>0>32){break cb}z=v;db:{if(m>>>0>=Y>>>0){m=m-(n>>>3|0)|0;D[v+48>>2]=m;n=n&7;break db}K=D[v+52>>2];if((K|0)==(m|0)){break cb}w=n>>>3|0;w=K>>>0>m-w>>>0?m-K|0:w;m=m-w|0;D[v+48>>2]=m;n=n-(w<<3)|0}D[z+44>>2]=n;D[v+40>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24)}K=D[v+104>>2]+W|0;D[v+104>>2]=K+s;A=D[v+40>>2];w=r&255;n=n+w|0;D[v+60>>2]=(A>>>0-n&D[(w<<2)+419456>>2])+(p&65535);p=x&255;n=n+p|0;D[v+76>>2]=(D[(p<<2)+419456>>2]&A>>>0-n)+(q&65535);x=D[(t>>>0>K>>>0?$:Z)>>2];eb:{if(n>>>0>32){break eb}w=v;fb:{if(m>>>0>=Y>>>0){m=m-(n>>>3|0)|0;D[v+48>>2]=m;n=n&7;break fb}q=D[v+52>>2];if((q|0)==(m|0)){break eb}p=n>>>3|0;p=q>>>0>m-p>>>0?m-q|0:p;m=m-p|0;D[v+48>>2]=m;n=n-(p<<3)|0}D[w+44>>2]=n;A=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[v+40>>2]=A}m=U>>>24|0;n=n+m|0;D[v+44>>2]=n;D[v+68>>2]=(D[(m<<2)+419456>>2]&A>>>0-n)+(U&65535);gb:{hb:{I=D[v+188>>2];U=(v+112|0)+((P&3)<<4)|0;H=D[U>>2];r=I+H|0;ib:{if(r>>>0>na>>>0){break ib}q=D[U+4>>2];w=H+q|0;if(qa>>>0>>0){break ib}if(w+32>>>0<=ka-o>>>0){break hb}}n=D[U+12>>2];D[v+24>>2]=D[U+8>>2];D[v+28>>2]=n;n=D[U+4>>2];D[v+16>>2]=D[U>>2];D[v+20>>2]=n;w=fc(o,ka,v+16|0,v+188|0,na,V,ra,ja);break gb}n=o+H|0;R=D[U+8>>2];p=E[I+4|0]|E[I+5|0]<<8|(E[I+6|0]<<16|E[I+7|0]<<24);m=E[I|0]|E[I+1|0]<<8|(E[I+2|0]<<16|E[I+3|0]<<24);B[o|0]=m;B[o+1|0]=m>>>8;B[o+2|0]=m>>>16;B[o+3|0]=m>>>24;B[o+4|0]=p;B[o+5|0]=p>>>8;B[o+6|0]=p>>>16;B[o+7|0]=p>>>24;p=E[I+12|0]|E[I+13|0]<<8|(E[I+14|0]<<16|E[I+15|0]<<24);m=E[I+8|0]|E[I+9|0]<<8|(E[I+10|0]<<16|E[I+11|0]<<24);B[o+8|0]=m;B[o+9|0]=m>>>8;B[o+10|0]=m>>>16;B[o+11|0]=m>>>24;B[o+12|0]=p;B[o+13|0]=p>>>8;B[o+14|0]=p>>>16;B[o+15|0]=p>>>24;jb:{if(H>>>0<17){break jb}p=E[I+20|0]|E[I+21|0]<<8|(E[I+22|0]<<16|E[I+23|0]<<24);m=E[I+16|0]|E[I+17|0]<<8|(E[I+18|0]<<16|E[I+19|0]<<24);B[o+16|0]=m;B[o+17|0]=m>>>8;B[o+18|0]=m>>>16;B[o+19|0]=m>>>24;B[o+20|0]=p;B[o+21|0]=p>>>8;B[o+22|0]=p>>>16;B[o+23|0]=p>>>24;p=E[I+28|0]|E[I+29|0]<<8|(E[I+30|0]<<16|E[I+31|0]<<24);m=E[I+24|0]|E[I+25|0]<<8|(E[I+26|0]<<16|E[I+27|0]<<24);B[o+24|0]=m;B[o+25|0]=m>>>8;B[o+26|0]=m>>>16;B[o+27|0]=m>>>24;B[o+28|0]=p;B[o+29|0]=p>>>8;B[o+30|0]=p>>>16;B[o+31|0]=p>>>24;if((H-16|0)<17){break jb}m=I+16|0;p=o+32|0;while(1){I=E[m+20|0]|E[m+21|0]<<8|(E[m+22|0]<<16|E[m+23|0]<<24);H=E[m+16|0]|E[m+17|0]<<8|(E[m+18|0]<<16|E[m+19|0]<<24);B[p|0]=H;B[p+1|0]=H>>>8;B[p+2|0]=H>>>16;B[p+3|0]=H>>>24;B[p+4|0]=I;B[p+5|0]=I>>>8;B[p+6|0]=I>>>16;B[p+7|0]=I>>>24;I=E[m+28|0]|E[m+29|0]<<8|(E[m+30|0]<<16|E[m+31|0]<<24);H=E[m+24|0]|E[m+25|0]<<8|(E[m+26|0]<<16|E[m+27|0]<<24);B[p+8|0]=H;B[p+9|0]=H>>>8;B[p+10|0]=H>>>16;B[p+11|0]=H>>>24;B[p+12|0]=I;B[p+13|0]=I>>>8;B[p+14|0]=I>>>16;B[p+15|0]=I>>>24;I=E[m+36|0]|E[m+37|0]<<8|(E[m+38|0]<<16|E[m+39|0]<<24);H=E[m+32|0]|E[m+33|0]<<8|(E[m+34|0]<<16|E[m+35|0]<<24);B[p+16|0]=H;B[p+17|0]=H>>>8;B[p+18|0]=H>>>16;B[p+19|0]=H>>>24;B[p+20|0]=I;B[p+21|0]=I>>>8;B[p+22|0]=I>>>16;B[p+23|0]=I>>>24;I=E[m+44|0]|E[m+45|0]<<8|(E[m+46|0]<<16|E[m+47|0]<<24);H=E[m+40|0]|E[m+41|0]<<8|(E[m+42|0]<<16|E[m+43|0]<<24);B[p+24|0]=H;B[p+25|0]=H>>>8;B[p+26|0]=H>>>16;B[p+27|0]=H>>>24;B[p+28|0]=I;B[p+29|0]=I>>>8;B[p+30|0]=I>>>16;B[p+31|0]=I>>>24;m=m+32|0;p=p+32|0;if(p>>>0>>0){continue}break}}m=n-R|0;D[v+188>>2]=r;if(R>>>0>n-V>>>0){if(R>>>0>n-ra>>>0){break E}p=m-V|0;m=p+ja|0;if(m+q>>>0<=ja>>>0){hb(n,m,q);break gb}q=p+q|0;n=hb(n,m,0-p|0)-p|0;m=V}if(R>>>0>=16){r=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);p=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[n|0]=p;B[n+1|0]=p>>>8;B[n+2|0]=p>>>16;B[n+3|0]=p>>>24;B[n+4|0]=r;B[n+5|0]=r>>>8;B[n+6|0]=r>>>16;B[n+7|0]=r>>>24;r=E[m+12|0]|E[m+13|0]<<8|(E[m+14|0]<<16|E[m+15|0]<<24);p=E[m+8|0]|E[m+9|0]<<8|(E[m+10|0]<<16|E[m+11|0]<<24);B[n+8|0]=p;B[n+9|0]=p>>>8;B[n+10|0]=p>>>16;B[n+11|0]=p>>>24;B[n+12|0]=r;B[n+13|0]=r>>>8;B[n+14|0]=r>>>16;B[n+15|0]=r>>>24;if((q|0)<17){break gb}p=n+q|0;n=n+16|0;while(1){r=E[m+20|0]|E[m+21|0]<<8|(E[m+22|0]<<16|E[m+23|0]<<24);q=E[m+16|0]|E[m+17|0]<<8|(E[m+18|0]<<16|E[m+19|0]<<24);B[n|0]=q;B[n+1|0]=q>>>8;B[n+2|0]=q>>>16;B[n+3|0]=q>>>24;B[n+4|0]=r;B[n+5|0]=r>>>8;B[n+6|0]=r>>>16;B[n+7|0]=r>>>24;r=E[m+28|0]|E[m+29|0]<<8|(E[m+30|0]<<16|E[m+31|0]<<24);q=E[m+24|0]|E[m+25|0]<<8|(E[m+26|0]<<16|E[m+27|0]<<24);B[n+8|0]=q;B[n+9|0]=q>>>8;B[n+10|0]=q>>>16;B[n+11|0]=q>>>24;B[n+12|0]=r;B[n+13|0]=r>>>8;B[n+14|0]=r>>>16;B[n+15|0]=r>>>24;r=E[m+36|0]|E[m+37|0]<<8|(E[m+38|0]<<16|E[m+39|0]<<24);q=E[m+32|0]|E[m+33|0]<<8|(E[m+34|0]<<16|E[m+35|0]<<24);B[n+16|0]=q;B[n+17|0]=q>>>8;B[n+18|0]=q>>>16;B[n+19|0]=q>>>24;B[n+20|0]=r;B[n+21|0]=r>>>8;B[n+22|0]=r>>>16;B[n+23|0]=r>>>24;r=E[m+44|0]|E[m+45|0]<<8|(E[m+46|0]<<16|E[m+47|0]<<24);q=E[m+40|0]|E[m+41|0]<<8|(E[m+42|0]<<16|E[m+43|0]<<24);B[n+24|0]=q;B[n+25|0]=q>>>8;B[n+26|0]=q>>>16;B[n+27|0]=q>>>24;B[n+28|0]=r;B[n+29|0]=r>>>8;B[n+30|0]=r>>>16;B[n+31|0]=r>>>24;m=m+32|0;n=n+32|0;if(p>>>0>n>>>0){continue}break}break gb}kb:{if(R>>>0<=7){B[n|0]=E[m|0];B[n+1|0]=E[m+1|0];B[n+2|0]=E[m+2|0];B[n+3|0]=E[m+3|0];p=m;m=R<<2;r=p+D[m+419616>>2]|0;p=E[r|0]|E[r+1|0]<<8|(E[r+2|0]<<16|E[r+3|0]<<24);B[n+4|0]=p;B[n+5|0]=p>>>8;B[n+6|0]=p>>>16;B[n+7|0]=p>>>24;m=r-D[m+419648>>2]|0;break kb}r=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);p=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[n|0]=p;B[n+1|0]=p>>>8;B[n+2|0]=p>>>16;B[n+3|0]=p>>>24;B[n+4|0]=r;B[n+5|0]=r>>>8;B[n+6|0]=r>>>16;B[n+7|0]=r>>>24}if(q>>>0<9){break gb}p=n+q|0;A=n+8|0;m=m+8|0;if((A-m|0)<=15){while(1){q=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);n=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[A|0]=n;B[A+1|0]=n>>>8;B[A+2|0]=n>>>16;B[A+3|0]=n>>>24;B[A+4|0]=q;B[A+5|0]=q>>>8;B[A+6|0]=q>>>16;B[A+7|0]=q>>>24;m=m+8|0;A=A+8|0;if(p>>>0>A>>>0){continue}break gb}}H=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);r=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[A|0]=r;B[A+1|0]=r>>>8;B[A+2|0]=r>>>16;B[A+3|0]=r>>>24;B[A+4|0]=H;B[A+5|0]=H>>>8;B[A+6|0]=H>>>16;B[A+7|0]=H>>>24;H=E[m+12|0]|E[m+13|0]<<8|(E[m+14|0]<<16|E[m+15|0]<<24);r=E[m+8|0]|E[m+9|0]<<8|(E[m+10|0]<<16|E[m+11|0]<<24);B[A+8|0]=r;B[A+9|0]=r>>>8;B[A+10|0]=r>>>16;B[A+11|0]=r>>>24;B[A+12|0]=H;B[A+13|0]=H>>>8;B[A+14|0]=H>>>16;B[A+15|0]=H>>>24;if((q|0)<25){break gb}n=n+24|0;while(1){r=E[m+20|0]|E[m+21|0]<<8|(E[m+22|0]<<16|E[m+23|0]<<24);q=E[m+16|0]|E[m+17|0]<<8|(E[m+18|0]<<16|E[m+19|0]<<24);B[n|0]=q;B[n+1|0]=q>>>8;B[n+2|0]=q>>>16;B[n+3|0]=q>>>24;B[n+4|0]=r;B[n+5|0]=r>>>8;B[n+6|0]=r>>>16;B[n+7|0]=r>>>24;r=E[m+28|0]|E[m+29|0]<<8|(E[m+30|0]<<16|E[m+31|0]<<24);q=E[m+24|0]|E[m+25|0]<<8|(E[m+26|0]<<16|E[m+27|0]<<24);B[n+8|0]=q;B[n+9|0]=q>>>8;B[n+10|0]=q>>>16;B[n+11|0]=q>>>24;B[n+12|0]=r;B[n+13|0]=r>>>8;B[n+14|0]=r>>>16;B[n+15|0]=r>>>24;r=E[m+36|0]|E[m+37|0]<<8|(E[m+38|0]<<16|E[m+39|0]<<24);q=E[m+32|0]|E[m+33|0]<<8|(E[m+34|0]<<16|E[m+35|0]<<24);B[n+16|0]=q;B[n+17|0]=q>>>8;B[n+18|0]=q>>>16;B[n+19|0]=q>>>24;B[n+20|0]=r;B[n+21|0]=r>>>8;B[n+22|0]=r>>>16;B[n+23|0]=r>>>24;r=E[m+44|0]|E[m+45|0]<<8|(E[m+46|0]<<16|E[m+47|0]<<24);q=E[m+40|0]|E[m+41|0]<<8|(E[m+42|0]<<16|E[m+43|0]<<24);B[n+24|0]=q;B[n+25|0]=q>>>8;B[n+26|0]=q>>>16;B[n+27|0]=q>>>24;B[n+28|0]=r;B[n+29|0]=r>>>8;B[n+30|0]=r>>>16;B[n+31|0]=r>>>24;m=m+32|0;n=n+32|0;if(p>>>0>n>>>0){continue}break}}if(w>>>0<=4294967176){D[U>>2]=W;D[(U|4)>>2]=s;D[(U|8)>>2]=t;D[U+12>>2]=(x+K|0)-t;P=P+1|0;o=o+w|0;x=D[v+44>>2];continue}break}u=w;break E}P=P-sa|0;if((ba|0)>(P|0)){w=ka-32|0;while(1){lb:{mb:{s=D[v+188>>2];m=(v+112|0)+((P&3)<<4)|0;t=D[m>>2];q=s+t|0;nb:{if(q>>>0>na>>>0){break nb}x=D[m+4>>2];p=t+x|0;if(w>>>0>>0){break nb}if(p+32>>>0<=ka-o>>>0){break mb}}n=D[m+12>>2];D[v+8>>2]=D[m+8>>2];D[v+12>>2]=n;n=D[m+4>>2];D[v>>2]=D[m>>2];D[v+4>>2]=n;p=fc(o,ka,v,v+188|0,na,V,ra,ja);break lb}n=o+t|0;K=D[m+8>>2];r=E[s+4|0]|E[s+5|0]<<8|(E[s+6|0]<<16|E[s+7|0]<<24);m=E[s|0]|E[s+1|0]<<8|(E[s+2|0]<<16|E[s+3|0]<<24);B[o|0]=m;B[o+1|0]=m>>>8;B[o+2|0]=m>>>16;B[o+3|0]=m>>>24;B[o+4|0]=r;B[o+5|0]=r>>>8;B[o+6|0]=r>>>16;B[o+7|0]=r>>>24;r=E[s+12|0]|E[s+13|0]<<8|(E[s+14|0]<<16|E[s+15|0]<<24);m=E[s+8|0]|E[s+9|0]<<8|(E[s+10|0]<<16|E[s+11|0]<<24);B[o+8|0]=m;B[o+9|0]=m>>>8;B[o+10|0]=m>>>16;B[o+11|0]=m>>>24;B[o+12|0]=r;B[o+13|0]=r>>>8;B[o+14|0]=r>>>16;B[o+15|0]=r>>>24;ob:{if(t>>>0<17){break ob}r=E[s+20|0]|E[s+21|0]<<8|(E[s+22|0]<<16|E[s+23|0]<<24);m=E[s+16|0]|E[s+17|0]<<8|(E[s+18|0]<<16|E[s+19|0]<<24);B[o+16|0]=m;B[o+17|0]=m>>>8;B[o+18|0]=m>>>16;B[o+19|0]=m>>>24;B[o+20|0]=r;B[o+21|0]=r>>>8;B[o+22|0]=r>>>16;B[o+23|0]=r>>>24;r=E[s+28|0]|E[s+29|0]<<8|(E[s+30|0]<<16|E[s+31|0]<<24);m=E[s+24|0]|E[s+25|0]<<8|(E[s+26|0]<<16|E[s+27|0]<<24);B[o+24|0]=m;B[o+25|0]=m>>>8;B[o+26|0]=m>>>16;B[o+27|0]=m>>>24;B[o+28|0]=r;B[o+29|0]=r>>>8;B[o+30|0]=r>>>16;B[o+31|0]=r>>>24;if((t-16|0)<17){break ob}m=s+16|0;t=o+32|0;while(1){s=E[m+20|0]|E[m+21|0]<<8|(E[m+22|0]<<16|E[m+23|0]<<24);r=E[m+16|0]|E[m+17|0]<<8|(E[m+18|0]<<16|E[m+19|0]<<24);B[t|0]=r;B[t+1|0]=r>>>8;B[t+2|0]=r>>>16;B[t+3|0]=r>>>24;B[t+4|0]=s;B[t+5|0]=s>>>8;B[t+6|0]=s>>>16;B[t+7|0]=s>>>24;s=E[m+28|0]|E[m+29|0]<<8|(E[m+30|0]<<16|E[m+31|0]<<24);r=E[m+24|0]|E[m+25|0]<<8|(E[m+26|0]<<16|E[m+27|0]<<24);B[t+8|0]=r;B[t+9|0]=r>>>8;B[t+10|0]=r>>>16;B[t+11|0]=r>>>24;B[t+12|0]=s;B[t+13|0]=s>>>8;B[t+14|0]=s>>>16;B[t+15|0]=s>>>24;s=E[m+36|0]|E[m+37|0]<<8|(E[m+38|0]<<16|E[m+39|0]<<24);r=E[m+32|0]|E[m+33|0]<<8|(E[m+34|0]<<16|E[m+35|0]<<24);B[t+16|0]=r;B[t+17|0]=r>>>8;B[t+18|0]=r>>>16;B[t+19|0]=r>>>24;B[t+20|0]=s;B[t+21|0]=s>>>8;B[t+22|0]=s>>>16;B[t+23|0]=s>>>24;s=E[m+44|0]|E[m+45|0]<<8|(E[m+46|0]<<16|E[m+47|0]<<24);r=E[m+40|0]|E[m+41|0]<<8|(E[m+42|0]<<16|E[m+43|0]<<24);B[t+24|0]=r;B[t+25|0]=r>>>8;B[t+26|0]=r>>>16;B[t+27|0]=r>>>24;B[t+28|0]=s;B[t+29|0]=s>>>8;B[t+30|0]=s>>>16;B[t+31|0]=s>>>24;m=m+32|0;t=t+32|0;if(t>>>0>>0){continue}break}}m=n-K|0;D[v+188>>2]=q;if(K>>>0>n-V>>>0){if(K>>>0>n-ra>>>0){break E}q=m-V|0;m=q+ja|0;if(m+x>>>0<=ja>>>0){hb(n,m,x);break lb}x=q+x|0;n=hb(n,m,0-q|0)-q|0;m=V}if(K>>>0>=16){r=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);q=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[n|0]=q;B[n+1|0]=q>>>8;B[n+2|0]=q>>>16;B[n+3|0]=q>>>24;B[n+4|0]=r;B[n+5|0]=r>>>8;B[n+6|0]=r>>>16;B[n+7|0]=r>>>24;r=E[m+12|0]|E[m+13|0]<<8|(E[m+14|0]<<16|E[m+15|0]<<24);q=E[m+8|0]|E[m+9|0]<<8|(E[m+10|0]<<16|E[m+11|0]<<24);B[n+8|0]=q;B[n+9|0]=q>>>8;B[n+10|0]=q>>>16;B[n+11|0]=q>>>24;B[n+12|0]=r;B[n+13|0]=r>>>8;B[n+14|0]=r>>>16;B[n+15|0]=r>>>24;if((x|0)<17){break lb}q=n+x|0;n=n+16|0;while(1){t=E[m+20|0]|E[m+21|0]<<8|(E[m+22|0]<<16|E[m+23|0]<<24);r=E[m+16|0]|E[m+17|0]<<8|(E[m+18|0]<<16|E[m+19|0]<<24);B[n|0]=r;B[n+1|0]=r>>>8;B[n+2|0]=r>>>16;B[n+3|0]=r>>>24;B[n+4|0]=t;B[n+5|0]=t>>>8;B[n+6|0]=t>>>16;B[n+7|0]=t>>>24;t=E[m+28|0]|E[m+29|0]<<8|(E[m+30|0]<<16|E[m+31|0]<<24);r=E[m+24|0]|E[m+25|0]<<8|(E[m+26|0]<<16|E[m+27|0]<<24);B[n+8|0]=r;B[n+9|0]=r>>>8;B[n+10|0]=r>>>16;B[n+11|0]=r>>>24;B[n+12|0]=t;B[n+13|0]=t>>>8;B[n+14|0]=t>>>16;B[n+15|0]=t>>>24;t=E[m+36|0]|E[m+37|0]<<8|(E[m+38|0]<<16|E[m+39|0]<<24);r=E[m+32|0]|E[m+33|0]<<8|(E[m+34|0]<<16|E[m+35|0]<<24);B[n+16|0]=r;B[n+17|0]=r>>>8;B[n+18|0]=r>>>16;B[n+19|0]=r>>>24;B[n+20|0]=t;B[n+21|0]=t>>>8;B[n+22|0]=t>>>16;B[n+23|0]=t>>>24;t=E[m+44|0]|E[m+45|0]<<8|(E[m+46|0]<<16|E[m+47|0]<<24);r=E[m+40|0]|E[m+41|0]<<8|(E[m+42|0]<<16|E[m+43|0]<<24);B[n+24|0]=r;B[n+25|0]=r>>>8;B[n+26|0]=r>>>16;B[n+27|0]=r>>>24;B[n+28|0]=t;B[n+29|0]=t>>>8;B[n+30|0]=t>>>16;B[n+31|0]=t>>>24;m=m+32|0;n=n+32|0;if(q>>>0>n>>>0){continue}break}break lb}pb:{if(K>>>0<=7){B[n|0]=E[m|0];B[n+1|0]=E[m+1|0];B[n+2|0]=E[m+2|0];B[n+3|0]=E[m+3|0];q=m;m=K<<2;r=q+D[m+419616>>2]|0;q=E[r|0]|E[r+1|0]<<8|(E[r+2|0]<<16|E[r+3|0]<<24);B[n+4|0]=q;B[n+5|0]=q>>>8;B[n+6|0]=q>>>16;B[n+7|0]=q>>>24;m=r-D[m+419648>>2]|0;break pb}r=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);q=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[n|0]=q;B[n+1|0]=q>>>8;B[n+2|0]=q>>>16;B[n+3|0]=q>>>24;B[n+4|0]=r;B[n+5|0]=r>>>8;B[n+6|0]=r>>>16;B[n+7|0]=r>>>24}if(x>>>0<9){break lb}q=n+x|0;A=n+8|0;m=m+8|0;if((A-m|0)<=15){while(1){r=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);n=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[A|0]=n;B[A+1|0]=n>>>8;B[A+2|0]=n>>>16;B[A+3|0]=n>>>24;B[A+4|0]=r;B[A+5|0]=r>>>8;B[A+6|0]=r>>>16;B[A+7|0]=r>>>24;m=m+8|0;A=A+8|0;if(q>>>0>A>>>0){continue}break lb}}t=E[m+4|0]|E[m+5|0]<<8|(E[m+6|0]<<16|E[m+7|0]<<24);r=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);B[A|0]=r;B[A+1|0]=r>>>8;B[A+2|0]=r>>>16;B[A+3|0]=r>>>24;B[A+4|0]=t;B[A+5|0]=t>>>8;B[A+6|0]=t>>>16;B[A+7|0]=t>>>24;t=E[m+12|0]|E[m+13|0]<<8|(E[m+14|0]<<16|E[m+15|0]<<24);r=E[m+8|0]|E[m+9|0]<<8|(E[m+10|0]<<16|E[m+11|0]<<24);B[A+8|0]=r;B[A+9|0]=r>>>8;B[A+10|0]=r>>>16;B[A+11|0]=r>>>24;B[A+12|0]=t;B[A+13|0]=t>>>8;B[A+14|0]=t>>>16;B[A+15|0]=t>>>24;if((x|0)<25){break lb}n=n+24|0;while(1){t=E[m+20|0]|E[m+21|0]<<8|(E[m+22|0]<<16|E[m+23|0]<<24);r=E[m+16|0]|E[m+17|0]<<8|(E[m+18|0]<<16|E[m+19|0]<<24);B[n|0]=r;B[n+1|0]=r>>>8;B[n+2|0]=r>>>16;B[n+3|0]=r>>>24;B[n+4|0]=t;B[n+5|0]=t>>>8;B[n+6|0]=t>>>16;B[n+7|0]=t>>>24;t=E[m+28|0]|E[m+29|0]<<8|(E[m+30|0]<<16|E[m+31|0]<<24);r=E[m+24|0]|E[m+25|0]<<8|(E[m+26|0]<<16|E[m+27|0]<<24);B[n+8|0]=r;B[n+9|0]=r>>>8;B[n+10|0]=r>>>16;B[n+11|0]=r>>>24;B[n+12|0]=t;B[n+13|0]=t>>>8;B[n+14|0]=t>>>16;B[n+15|0]=t>>>24;t=E[m+36|0]|E[m+37|0]<<8|(E[m+38|0]<<16|E[m+39|0]<<24);r=E[m+32|0]|E[m+33|0]<<8|(E[m+34|0]<<16|E[m+35|0]<<24);B[n+16|0]=r;B[n+17|0]=r>>>8;B[n+18|0]=r>>>16;B[n+19|0]=r>>>24;B[n+20|0]=t;B[n+21|0]=t>>>8;B[n+22|0]=t>>>16;B[n+23|0]=t>>>24;t=E[m+44|0]|E[m+45|0]<<8|(E[m+46|0]<<16|E[m+47|0]<<24);r=E[m+40|0]|E[m+41|0]<<8|(E[m+42|0]<<16|E[m+43|0]<<24);B[n+24|0]=r;B[n+25|0]=r>>>8;B[n+26|0]=r>>>16;B[n+27|0]=r>>>24;B[n+28|0]=t;B[n+29|0]=t>>>8;B[n+30|0]=t>>>16;B[n+31|0]=t>>>24;m=m+32|0;n=n+32|0;if(q>>>0>n>>>0){continue}break}}if(p>>>0>4294967176){u=p;break E}o=o+p|0;P=P+1|0;if((ba|0)!=(P|0)){continue}break}}n=D[v+88>>2];D[Q>>2]=D[v+84>>2];D[Q+4>>2]=n;D[Q+8>>2]=D[v+92>>2];n=D[v+188>>2]}u=-70;m=na-n|0;if(m>>>0>ka-o>>>0){break E}if(!o){u=0-pa|0;break E}u=(Xa(o,n,m)+m|0)-pa|0;break E}D[y+29596>>2]=0}u=0;z=Fa-112|0;Fa=z;s=D[y+29552>>2];D[z+92>>2]=s;H=L;ca=H+ca|0;la=D[y+29568>>2]+s|0;qb:{rb:{if(!ba){m=L;break rb}aa=D[y+29368>>2];Z=D[y+29364>>2];I=D[y+29360>>2];D[y+29444>>2]=1;D[z+76>>2]=D[y+26676>>2];x=y+26668|0;m=x;n=D[m+4>>2];D[z+68>>2]=D[m>>2];D[z+72>>2]=n;if(!r){u=-20;break qb}D[z+36>>2]=O;D[z+40>>2]=O+4;sb:{tb:{ub:{if(r>>>0>=4){u=r-4|0;n=O+u|0;D[z+32>>2]=n;o=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);D[z+24>>2]=o;if(o>>>0>=16777216){break ub}u=-20;break qb}D[z+32>>2]=O;o=E[O|0];D[z+24>>2]=o;vb:{switch(r-2|0){case 1:o=E[O+2|0]<<16|o;case 0:o=(E[O+1|0]<<8)+o|0;D[z+24>>2]=o;break;default:break vb}}n=E[(r+O|0)-1|0];if(n){break tb}u=-20;break qb}s=M(o>>>24|0)-23|0;D[z+28>>2]=s;if(r>>>0<=4294967176){break sb}u=-20;break qb}s=(M(n)-(r<<3)|0)+9|0;D[z+28>>2]=s}p=D[y>>2];n=D[p+4>>2];w=n+s|0;D[z+28>>2]=w;n=D[(n<<2)+419456>>2]&o>>>0-w;D[z+44>>2]=n;wb:{if(w>>>0>32){break wb}q=z;xb:{if((u|0)>=4){u=u-(w>>>3|0)|0;D[z+32>>2]=O+u;w=w&7;break xb}if(!u){u=0;break wb}m=w>>>3|0;m=(u+O|0)-m>>>0>>0?u:m;u=u-m|0;D[z+32>>2]=O+u;w=w-(m<<3)|0}D[q+28>>2]=w;m=u+O|0;o=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[z+24>>2]=o}s=p+8|0;D[z+48>>2]=s;p=D[y+8>>2];m=D[p+4>>2];P=m+w|0;D[z+28>>2]=P;w=D[(m<<2)+419456>>2]&o>>>0-P;D[z+52>>2]=w;yb:{if(P>>>0>32){break yb}q=z;zb:{if((u|0)>=4){u=u-(P>>>3|0)|0;D[z+32>>2]=O+u;P=P&7;break zb}if(!u){u=0;break yb}m=P>>>3|0;m=(u+O|0)-m>>>0>>0?u:m;u=u-m|0;D[z+32>>2]=O+u;P=P-(m<<3)|0}D[q+28>>2]=P;m=u+O|0;o=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24);D[z+24>>2]=o}ea=p+8|0;D[z+56>>2]=ea;q=D[y+4>>2];m=D[q+4>>2];p=m+P|0;D[z+28>>2]=p;P=D[(m<<2)+419456>>2]&o>>>0-p;D[z+60>>2]=P;Ab:{if(p>>>0>32){break Ab}o=u+O|0;t=z;Bb:{if((u|0)>=4){m=o-(p>>>3|0)|0;D[z+32>>2]=m;p=p&7;break Bb}if(!u){break Ab}r=o;m=p>>>3|0;o=o-m>>>0>>0?u:m;m=r-o|0;D[z+32>>2]=m;p=p-(o<<3)|0}D[t+28>>2]=p;D[z+24>>2]=E[m|0]|E[m+1|0]<<8|(E[m+2|0]<<16|E[m+3|0]<<24)}o=q+8|0;D[z- -64>>2]=o;$=ca-32|0;m=L;u=0;while(1){q=(n<<3)+s|0;n=D[q+4>>2];K=D[q>>2];R=(n&65535)<<16|K>>>16;U=R&255;o=(P<<3)+o|0;t=D[o+4>>2];V=D[o>>2];Q=(t&65535)<<16|V>>>16;qa=Q&255;r=(w<<3)+ea|0;w=D[r+4>>2];P=w;q=t;o=n;s=n;pa=D[r>>2];n=(w&65535)<<16|pa>>>16;r=n&255;Cb:{if(r>>>0>=2){Db:{if(!(!ya|r>>>0<25)){n=32-p|0;n=n>>>0>r>>>0?r:n;fa=r-n|0;ea=D[z+24>>2];r=ea<

>>0-n<>>0>32){break Eb}W=z;Y=D[z+32>>2];Fb:{if(Y>>>0>=G[z+40>>2]){p=Y-(n>>>3|0)|0;D[z+32>>2]=p;n=n&7;break Fb}w=D[z+36>>2];if((w|0)==(Y|0)){break Eb}p=n>>>3|0;w=w>>>0>Y-p>>>0?Y-w|0:p;p=Y-w|0;D[z+32>>2]=p;n=n-(w<<3)|0}D[W+28>>2]=n;ea=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);D[z+24>>2]=ea}w=r+P|0;if(!fa){break Db}w=(ea<>>0-fa|0)+w|0;n=n+fa|0;break Db}w=P+(D[z+24>>2]<

>>0-n|0)|0;p=p+r|0;if(p>>>0>32){n=p;break Db}P=D[z+32>>2];if(P>>>0>=G[z+40>>2]){n=p&7;D[z+28>>2]=n;p=P-(p>>>3|0)|0;D[z+32>>2]=p;D[z+24>>2]=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);break Db}r=D[z+36>>2];if((r|0)==(P|0)){n=p;break Db}W=p;n=p>>>3|0;p=r>>>0>P-n>>>0?P-r|0:n;n=W-(p<<3)|0;D[z+28>>2]=n;p=P-p|0;D[z+32>>2]=p;D[z+24>>2]=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24)}r=D[z+72>>2];p=D[z+68>>2];D[z+68>>2]=w;D[z+72>>2]=p;D[z+76>>2]=r;break Cb}if(!r){if(s){w=D[z+68>>2];n=p;break Cb}w=D[z+72>>2];D[z+72>>2]=D[z+68>>2];D[z+68>>2]=w;n=p;break Cb}n=p+1|0;D[z+28>>2]=n;r=P+!s+(D[z+24>>2]<

>>31)|0;Gb:{Hb:{if((r|0)==3){p=D[z+68>>2]-1|0;w=!p+p|0;break Hb}p=D[(z+(r<<2)|0)+68>>2];w=!p+p|0;if((r|0)==1){break Gb}}D[z+76>>2]=D[z+72>>2]}D[z+72>>2]=D[z+68>>2];D[z+68>>2]=w}p=q;if(qa){p=(D[z+24>>2]<>>0-Q|0)+p|0;n=n+qa|0}Ib:{if(U+qa>>>0<20|n>>>0>32){break Ib}W=z;Q=D[z+32>>2];Jb:{if(Q>>>0>=G[z+40>>2]){P=Q-(n>>>3|0)|0;D[z+32>>2]=P;n=n&7;break Jb}r=D[z+36>>2];if((r|0)==(Q|0)){break Ib}q=n>>>3|0;q=r>>>0>Q-q>>>0?Q-r|0:q;P=Q-q|0;D[z+32>>2]=P;n=n-(q<<3)|0}D[W+28>>2]=n;D[z+24>>2]=E[P|0]|E[P+1|0]<<8|(E[P+2|0]<<16|E[P+3|0]<<24)}r=V;Q=(t&16777215)<<8|r>>>24;q=K;V=(o&16777215)<<8|q>>>24;if(U){s=(D[z+24>>2]<>>0-R|0)+s|0;n=n+U|0}Kb:{if(n>>>0>32){break Kb}P=z;K=D[z+32>>2];Lb:{if(K>>>0>=G[z+40>>2]){o=K-(n>>>3|0)|0;D[z+32>>2]=o;n=n&7;break Lb}t=D[z+36>>2];if((t|0)==(K|0)){break Kb}o=n>>>3|0;t=t>>>0>K-o>>>0?K-t|0:o;o=K-t|0;D[z+32>>2]=o;n=n-(t<<3)|0}D[P+28>>2]=n;D[z+24>>2]=E[o|0]|E[o+1|0]<<8|(E[o+2|0]<<16|E[o+3|0]<<24)}o=D[z+24>>2];t=V&255;n=n+t|0;D[z+44>>2]=(o>>>0-n&D[(t<<2)+419456>>2])+(q&65535);q=Q&255;n=n+q|0;D[z+60>>2]=(o>>>0-n&D[(q<<2)+419456>>2])+(r&65535);Mb:{if(n>>>0>32){break Mb}t=z;r=D[z+32>>2];Nb:{if(r>>>0>=G[z+40>>2]){o=r-(n>>>3|0)|0;D[z+32>>2]=o;n=n&7;break Nb}q=D[z+36>>2];if((q|0)==(r|0)){break Mb}o=n>>>3|0;q=q>>>0>r-o>>>0?r-q|0:o;o=r-q|0;D[z+32>>2]=o;n=n-(q<<3)|0}D[t+28>>2]=n;o=E[o|0]|E[o+1|0]<<8|(E[o+2|0]<<16|E[o+3|0]<<24);D[z+24>>2]=o}q=pa>>>24|0;n=n+q|0;D[z+28>>2]=n;D[z+52>>2]=(D[(q<<2)+419456>>2]&o>>>0-n)+(pa&65535);D[z+96>>2]=s;D[z+100>>2]=p;D[z+104>>2]=w;Ob:{Pb:{t=D[z+92>>2];q=t+s|0;Qb:{if(q>>>0>la>>>0){break Qb}P=p+s|0;if($>>>0>>0){break Qb}if(P+32>>>0<=ca-m>>>0){break Pb}}n=D[z+108>>2];D[z+16>>2]=D[z+104>>2];D[z+20>>2]=n;n=D[z+100>>2];D[z+8>>2]=D[z+96>>2];D[z+12>>2]=n;P=fc(m,ca,z+8|0,z+92|0,la,I,Z,aa);break Ob}o=m+s|0;r=E[t+4|0]|E[t+5|0]<<8|(E[t+6|0]<<16|E[t+7|0]<<24);n=E[t|0]|E[t+1|0]<<8|(E[t+2|0]<<16|E[t+3|0]<<24);B[m|0]=n;B[m+1|0]=n>>>8;B[m+2|0]=n>>>16;B[m+3|0]=n>>>24;B[m+4|0]=r;B[m+5|0]=r>>>8;B[m+6|0]=r>>>16;B[m+7|0]=r>>>24;r=E[t+12|0]|E[t+13|0]<<8|(E[t+14|0]<<16|E[t+15|0]<<24);n=E[t+8|0]|E[t+9|0]<<8|(E[t+10|0]<<16|E[t+11|0]<<24);B[m+8|0]=n;B[m+9|0]=n>>>8;B[m+10|0]=n>>>16;B[m+11|0]=n>>>24;B[m+12|0]=r;B[m+13|0]=r>>>8;B[m+14|0]=r>>>16;B[m+15|0]=r>>>24;Rb:{if(s>>>0<17){break Rb}r=E[t+20|0]|E[t+21|0]<<8|(E[t+22|0]<<16|E[t+23|0]<<24);n=E[t+16|0]|E[t+17|0]<<8|(E[t+18|0]<<16|E[t+19|0]<<24);B[m+16|0]=n;B[m+17|0]=n>>>8;B[m+18|0]=n>>>16;B[m+19|0]=n>>>24;B[m+20|0]=r;B[m+21|0]=r>>>8;B[m+22|0]=r>>>16;B[m+23|0]=r>>>24;r=E[t+28|0]|E[t+29|0]<<8|(E[t+30|0]<<16|E[t+31|0]<<24);n=E[t+24|0]|E[t+25|0]<<8|(E[t+26|0]<<16|E[t+27|0]<<24);B[m+24|0]=n;B[m+25|0]=n>>>8;B[m+26|0]=n>>>16;B[m+27|0]=n>>>24;B[m+28|0]=r;B[m+29|0]=r>>>8;B[m+30|0]=r>>>16;B[m+31|0]=r>>>24;if((s-16|0)<17){break Rb}n=t+16|0;s=m+32|0;while(1){t=E[n+20|0]|E[n+21|0]<<8|(E[n+22|0]<<16|E[n+23|0]<<24);r=E[n+16|0]|E[n+17|0]<<8|(E[n+18|0]<<16|E[n+19|0]<<24);B[s|0]=r;B[s+1|0]=r>>>8;B[s+2|0]=r>>>16;B[s+3|0]=r>>>24;B[s+4|0]=t;B[s+5|0]=t>>>8;B[s+6|0]=t>>>16;B[s+7|0]=t>>>24;t=E[n+28|0]|E[n+29|0]<<8|(E[n+30|0]<<16|E[n+31|0]<<24);r=E[n+24|0]|E[n+25|0]<<8|(E[n+26|0]<<16|E[n+27|0]<<24);B[s+8|0]=r;B[s+9|0]=r>>>8;B[s+10|0]=r>>>16;B[s+11|0]=r>>>24;B[s+12|0]=t;B[s+13|0]=t>>>8;B[s+14|0]=t>>>16;B[s+15|0]=t>>>24;t=E[n+36|0]|E[n+37|0]<<8|(E[n+38|0]<<16|E[n+39|0]<<24);r=E[n+32|0]|E[n+33|0]<<8|(E[n+34|0]<<16|E[n+35|0]<<24);B[s+16|0]=r;B[s+17|0]=r>>>8;B[s+18|0]=r>>>16;B[s+19|0]=r>>>24;B[s+20|0]=t;B[s+21|0]=t>>>8;B[s+22|0]=t>>>16;B[s+23|0]=t>>>24;t=E[n+44|0]|E[n+45|0]<<8|(E[n+46|0]<<16|E[n+47|0]<<24);r=E[n+40|0]|E[n+41|0]<<8|(E[n+42|0]<<16|E[n+43|0]<<24);B[s+24|0]=r;B[s+25|0]=r>>>8;B[s+26|0]=r>>>16;B[s+27|0]=r>>>24;B[s+28|0]=t;B[s+29|0]=t>>>8;B[s+30|0]=t>>>16;B[s+31|0]=t>>>24;n=n+32|0;s=s+32|0;if(o>>>0>s>>>0){continue}break}}n=o-w|0;D[z+92>>2]=q;if(o-I>>>0>>0){if(o-Z>>>0>>0){P=-20;break Ob}q=n-I|0;n=q+aa|0;if(aa>>>0>=n+p>>>0){hb(o,n,p);break Ob}n=hb(o,n,0-q|0);p=p+q|0;D[z+100>>2]=p;o=n-q|0;n=I}if(w>>>0>=16){w=E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24);q=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);B[o|0]=q;B[o+1|0]=q>>>8;B[o+2|0]=q>>>16;B[o+3|0]=q>>>24;B[o+4|0]=w;B[o+5|0]=w>>>8;B[o+6|0]=w>>>16;B[o+7|0]=w>>>24;w=E[n+12|0]|E[n+13|0]<<8|(E[n+14|0]<<16|E[n+15|0]<<24);q=E[n+8|0]|E[n+9|0]<<8|(E[n+10|0]<<16|E[n+11|0]<<24);B[o+8|0]=q;B[o+9|0]=q>>>8;B[o+10|0]=q>>>16;B[o+11|0]=q>>>24;B[o+12|0]=w;B[o+13|0]=w>>>8;B[o+14|0]=w>>>16;B[o+15|0]=w>>>24;if((p|0)<17){break Ob}p=o+p|0;s=o+16|0;while(1){q=E[n+20|0]|E[n+21|0]<<8|(E[n+22|0]<<16|E[n+23|0]<<24);o=E[n+16|0]|E[n+17|0]<<8|(E[n+18|0]<<16|E[n+19|0]<<24);B[s|0]=o;B[s+1|0]=o>>>8;B[s+2|0]=o>>>16;B[s+3|0]=o>>>24;B[s+4|0]=q;B[s+5|0]=q>>>8;B[s+6|0]=q>>>16;B[s+7|0]=q>>>24;q=E[n+28|0]|E[n+29|0]<<8|(E[n+30|0]<<16|E[n+31|0]<<24);o=E[n+24|0]|E[n+25|0]<<8|(E[n+26|0]<<16|E[n+27|0]<<24);B[s+8|0]=o;B[s+9|0]=o>>>8;B[s+10|0]=o>>>16;B[s+11|0]=o>>>24;B[s+12|0]=q;B[s+13|0]=q>>>8;B[s+14|0]=q>>>16;B[s+15|0]=q>>>24;q=E[n+36|0]|E[n+37|0]<<8|(E[n+38|0]<<16|E[n+39|0]<<24);o=E[n+32|0]|E[n+33|0]<<8|(E[n+34|0]<<16|E[n+35|0]<<24);B[s+16|0]=o;B[s+17|0]=o>>>8;B[s+18|0]=o>>>16;B[s+19|0]=o>>>24;B[s+20|0]=q;B[s+21|0]=q>>>8;B[s+22|0]=q>>>16;B[s+23|0]=q>>>24;q=E[n+44|0]|E[n+45|0]<<8|(E[n+46|0]<<16|E[n+47|0]<<24);o=E[n+40|0]|E[n+41|0]<<8|(E[n+42|0]<<16|E[n+43|0]<<24);B[s+24|0]=o;B[s+25|0]=o>>>8;B[s+26|0]=o>>>16;B[s+27|0]=o>>>24;B[s+28|0]=q;B[s+29|0]=q>>>8;B[s+30|0]=q>>>16;B[s+31|0]=q>>>24;n=n+32|0;s=s+32|0;if(p>>>0>s>>>0){continue}break}break Ob}Sb:{if(w>>>0<=7){B[o|0]=E[n|0];B[o+1|0]=E[n+1|0];B[o+2|0]=E[n+2|0];B[o+3|0]=E[n+3|0];q=n;n=w<<2;w=q+D[n+419616>>2]|0;q=E[w|0]|E[w+1|0]<<8|(E[w+2|0]<<16|E[w+3|0]<<24);B[o+4|0]=q;B[o+5|0]=q>>>8;B[o+6|0]=q>>>16;B[o+7|0]=q>>>24;n=w-D[n+419648>>2]|0;break Sb}w=E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24);q=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);B[o|0]=q;B[o+1|0]=q>>>8;B[o+2|0]=q>>>16;B[o+3|0]=q>>>24;B[o+4|0]=w;B[o+5|0]=w>>>8;B[o+6|0]=w>>>16;B[o+7|0]=w>>>24}if(p>>>0<9){break Ob}q=o+p|0;s=o+8|0;n=n+8|0;if((s-n|0)<=15){while(1){o=E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24);p=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);B[s|0]=p;B[s+1|0]=p>>>8;B[s+2|0]=p>>>16;B[s+3|0]=p>>>24;B[s+4|0]=o;B[s+5|0]=o>>>8;B[s+6|0]=o>>>16;B[s+7|0]=o>>>24;n=n+8|0;s=s+8|0;if(q>>>0>s>>>0){continue}break Ob}}r=E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24);w=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);B[s|0]=w;B[s+1|0]=w>>>8;B[s+2|0]=w>>>16;B[s+3|0]=w>>>24;B[s+4|0]=r;B[s+5|0]=r>>>8;B[s+6|0]=r>>>16;B[s+7|0]=r>>>24;r=E[n+12|0]|E[n+13|0]<<8|(E[n+14|0]<<16|E[n+15|0]<<24);w=E[n+8|0]|E[n+9|0]<<8|(E[n+10|0]<<16|E[n+11|0]<<24);B[s+8|0]=w;B[s+9|0]=w>>>8;B[s+10|0]=w>>>16;B[s+11|0]=w>>>24;B[s+12|0]=r;B[s+13|0]=r>>>8;B[s+14|0]=r>>>16;B[s+15|0]=r>>>24;if((p|0)<25){break Ob}s=o+24|0;while(1){o=E[n+20|0]|E[n+21|0]<<8|(E[n+22|0]<<16|E[n+23|0]<<24);p=E[n+16|0]|E[n+17|0]<<8|(E[n+18|0]<<16|E[n+19|0]<<24);B[s|0]=p;B[s+1|0]=p>>>8;B[s+2|0]=p>>>16;B[s+3|0]=p>>>24;B[s+4|0]=o;B[s+5|0]=o>>>8;B[s+6|0]=o>>>16;B[s+7|0]=o>>>24;o=E[n+28|0]|E[n+29|0]<<8|(E[n+30|0]<<16|E[n+31|0]<<24);p=E[n+24|0]|E[n+25|0]<<8|(E[n+26|0]<<16|E[n+27|0]<<24);B[s+8|0]=p;B[s+9|0]=p>>>8;B[s+10|0]=p>>>16;B[s+11|0]=p>>>24;B[s+12|0]=o;B[s+13|0]=o>>>8;B[s+14|0]=o>>>16;B[s+15|0]=o>>>24;o=E[n+36|0]|E[n+37|0]<<8|(E[n+38|0]<<16|E[n+39|0]<<24);p=E[n+32|0]|E[n+33|0]<<8|(E[n+34|0]<<16|E[n+35|0]<<24);B[s+16|0]=p;B[s+17|0]=p>>>8;B[s+18|0]=p>>>16;B[s+19|0]=p>>>24;B[s+20|0]=o;B[s+21|0]=o>>>8;B[s+22|0]=o>>>16;B[s+23|0]=o>>>24;o=E[n+44|0]|E[n+45|0]<<8|(E[n+46|0]<<16|E[n+47|0]<<24);p=E[n+40|0]|E[n+41|0]<<8|(E[n+42|0]<<16|E[n+43|0]<<24);B[s+24|0]=p;B[s+25|0]=p>>>8;B[s+26|0]=p>>>16;B[s+27|0]=p>>>24;B[s+28|0]=o;B[s+29|0]=o>>>8;B[s+30|0]=o>>>16;B[s+31|0]=o>>>24;n=n+32|0;s=s+32|0;if(q>>>0>s>>>0){continue}break}}n=D[z+28>>2];Tb:{if(n>>>0>32){p=n;break Tb}o=D[z+32>>2];if(o>>>0>=G[z+40>>2]){p=n&7;D[z+28>>2]=p;n=o-(n>>>3|0)|0;D[z+32>>2]=n;D[z+24>>2]=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);break Tb}p=D[z+36>>2];if((p|0)==(o|0)){p=n;break Tb}q=n;n=n>>>3|0;n=p>>>0>o-n>>>0?o-p|0:n;p=q-(n<<3)|0;D[z+28>>2]=p;n=o-n|0;D[z+32>>2]=n;D[z+24>>2]=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24)}o=ba-1|0;n=P>>>0<4294967177;ba=n?o:ba;u=n?u:P;m=m+P|0;if(!(!o|P>>>0>4294967176)){w=D[z+52>>2];ea=D[z+56>>2];P=D[z+60>>2];o=D[z+64>>2];n=D[z+44>>2];s=D[z+48>>2];continue}break}if(u>>>0>4294967176){break qb}if(ba){u=-20;break qb}if(p>>>0<=32){n=D[z+32>>2];if(n>>>0>=G[z+40>>2]){u=-20;break qb}if((n|0)!=D[z+36>>2]){u=-20;break qb}u=-20;if((p|0)!=32){break qb}}n=D[z+72>>2];D[x>>2]=D[z+68>>2];D[x+4>>2]=n;D[x+8>>2]=D[z+76>>2];s=D[z+92>>2]}u=-70;n=la-s|0;if(n>>>0>ca-m>>>0){break qb}if(!m){u=0-H|0;break qb}u=(Xa(m,s,n)+n|0)-H|0}Fa=z+112|0}Fa=v+192|0;m=u;if(m>>>0>4294967176){break h}}if(D[y+29548>>2]){n=L;o=D[N+4>>2];p=m+D[N>>2]|0;D[N>>2]=p;D[N+4>>2]=m>>>0>p>>>0?o+1|0:o;o=D[N+72>>2];p=o+m|0;Ub:{Vb:{if(p>>>0<=31){if(!n){break Vb}Xa((o+N|0)+40|0,n,m);p=D[N+72>>2]+m|0;break Vb}H=n+m|0;if(o){Xa(o+(N+40|0)|0,n,32-o|0);q=D[N+72>>2];D[N+72>>2]=0;p=D[N+12>>2];o=D[N+8>>2];u=nf(E[N+40|0]|E[N+41|0]<<8|(E[N+42|0]<<16|E[N+43|0]<<24),E[N+44|0]|E[N+45|0]<<8|(E[N+46|0]<<16|E[N+47|0]<<24),668265295,-1028477379);o=o+u|0;p=Ga+p|0;Ia=N,Ja=nf(rf(o,o>>>0>>0?p+1|0:p,31),Ga,-2048144761,-1640531535),D[Ia+8>>2]=Ja;D[N+12>>2]=Ga;p=D[N+20>>2];o=D[N+16>>2];u=nf(E[N+48|0]|E[N+49|0]<<8|(E[N+50|0]<<16|E[N+51|0]<<24),E[N+52|0]|E[N+53|0]<<8|(E[N+54|0]<<16|E[N+55|0]<<24),668265295,-1028477379);o=o+u|0;p=Ga+p|0;Ia=N,Ja=nf(rf(o,o>>>0>>0?p+1|0:p,31),Ga,-2048144761,-1640531535),D[Ia+16>>2]=Ja;D[N+20>>2]=Ga;p=D[N+28>>2];o=D[N+24>>2];u=nf(E[N+56|0]|E[N+57|0]<<8|(E[N+58|0]<<16|E[N+59|0]<<24),E[N+60|0]|E[N+61|0]<<8|(E[N+62|0]<<16|E[N+63|0]<<24),668265295,-1028477379);o=o+u|0;p=Ga+p|0;Ia=N,Ja=nf(rf(o,o>>>0>>0?p+1|0:p,31),Ga,-2048144761,-1640531535),D[Ia+24>>2]=Ja;D[N+28>>2]=Ga;p=D[N+36>>2];w=D[N+32>>2];o=N- -64|0;u=nf(E[o|0]|E[o+1|0]<<8|(E[o+2|0]<<16|E[o+3|0]<<24),E[o+4|0]|E[o+5|0]<<8|(E[o+6|0]<<16|E[o+7|0]<<24),668265295,-1028477379);o=w+u|0;p=Ga+p|0;Ia=N,Ja=nf(rf(o,o>>>0>>0?p+1|0:p,31),Ga,-2048144761,-1640531535),D[Ia+32>>2]=Ja;D[N+36>>2]=Ga;n=(n-q|0)+32|0}if(H>>>0>=n+32>>>0){V=H-32|0;p=D[N+32>>2];s=D[N+36>>2];t=D[N+24>>2];K=D[N+28>>2];w=D[N+16>>2];q=D[N+20>>2];o=D[N+8>>2];x=D[N+12>>2];while(1){r=nf(E[n+24|0]|E[n+25|0]<<8|(E[n+26|0]<<16|E[n+27|0]<<24),E[n+28|0]|E[n+29|0]<<8|(E[n+30|0]<<16|E[n+31|0]<<24),668265295,-1028477379)+p|0;u=s+Ga|0;p=nf(rf(r,p>>>0>r>>>0?u+1|0:u,31),Ga,-2048144761,-1640531535);s=Ga;r=nf(E[n+16|0]|E[n+17|0]<<8|(E[n+18|0]<<16|E[n+19|0]<<24),E[n+20|0]|E[n+21|0]<<8|(E[n+22|0]<<16|E[n+23|0]<<24),668265295,-1028477379)+t|0;u=K+Ga|0;t=nf(rf(r,r>>>0>>0?u+1|0:u,31),Ga,-2048144761,-1640531535);K=Ga;r=nf(E[n+8|0]|E[n+9|0]<<8|(E[n+10|0]<<16|E[n+11|0]<<24),E[n+12|0]|E[n+13|0]<<8|(E[n+14|0]<<16|E[n+15|0]<<24),668265295,-1028477379)+w|0;u=q+Ga|0;w=nf(rf(r,r>>>0>>0?u+1|0:u,31),Ga,-2048144761,-1640531535);q=Ga;r=nf(E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24),E[n+4|0]|E[n+5|0]<<8|(E[n+6|0]<<16|E[n+7|0]<<24),668265295,-1028477379)+o|0;u=x+Ga|0;o=nf(rf(r,o>>>0>r>>>0?u+1|0:u,31),Ga,-2048144761,-1640531535);x=Ga;n=n+32|0;if(V>>>0>=n>>>0){continue}break}D[N+32>>2]=p;D[N+36>>2]=s;D[N+24>>2]=t;D[N+28>>2]=K;D[N+16>>2]=w;D[N+20>>2]=q;D[N+8>>2]=o;D[N+12>>2]=x}if(n>>>0>=H>>>0){break Ub}p=H-n|0;Xa(N+40|0,n,p)}D[N+72>>2]=p}}p=Aa-S|0;n=S+_|0;L=m+L|0;if(!(xa&1)){continue}break}q=D[y+29376>>2];u=D[y+29380>>2];if((q|0)!=-1|(u|0)!=-1){m=-20;o=L-ma|0;if((q|0)!=(o|0)|o>>31!=(u|0)){break h}}if(D[y+29408>>2]){m=-22;if(p>>>0<4){break h}if(!D[y+29544>>2]){S=N+40|0;I=D[N+72>>2];P=S+I|0;o=D[N+4>>2];H=o;pa=D[N>>2];Wb:{if(!o&pa>>>0>=32|o){o=D[N+20>>2];K=o;V=D[N+16>>2];q=rf(V,o,7);u=Ga;o=D[N+12>>2];x=o;w=q;s=D[N+8>>2];q=rf(s,o,1);Q=w+q|0;w=Ga+u|0;o=D[N+28>>2];t=o;r=D[N+24>>2];u=rf(r,o,12);$=u+Q|0;R=Ga+(q>>>0>Q>>>0?w+1|0:w)|0;o=D[N+36>>2];w=o;q=D[N+32>>2];o=rf(q,o,18);Q=o+$|0;u=Ga+(u>>>0>$>>>0?R+1|0:R)|0;o=nf(nf(rf(nf(s,x,668265295,-1028477379),Ga,31),Ga,-2048144761,-1640531535)^Q,Ga^(o>>>0>Q>>>0?u+1|0:u),-2048144761,-1640531535);u=o-1028477341|0;o=Ga-((o>>>0<1028477341)+2048144776|0)|0;o=nf(nf(rf(nf(V,K,668265295,-1028477379),Ga,31),Ga,-2048144761,-1640531535)^u,Ga^o,-2048144761,-1640531535);u=o-1028477341|0;o=Ga-((o>>>0<1028477341)+2048144776|0)|0;o=nf(nf(rf(nf(r,t,668265295,-1028477379),Ga,31),Ga,-2048144761,-1640531535)^u,Ga^o,-2048144761,-1640531535);u=o-1028477341|0;o=Ga-((o>>>0<1028477341)+2048144776|0)|0;o=nf(nf(rf(nf(q,w,668265295,-1028477379),Ga,31),Ga,-2048144761,-1640531535)^u,Ga^o,-2048144761,-1640531535);u=o-1028477341|0;x=Ga-((o>>>0<1028477341)+2048144776|0)|0;break Wb}o=D[N+28>>2]+668265263|0;u=D[N+24>>2]+374761413|0;x=u>>>0<374761413?o+1|0:o}q=u+pa|0;o=q;u=x+H|0;x=o>>>0>>0?u+1|0:u;u=N+48|0;Xb:{if(P>>>0>>0){q=S;break Xb}while(1){q=nf(rf(nf(rf(nf(E[S|0]|E[S+1|0]<<8|(E[S+2|0]<<16|E[S+3|0]<<24),E[S+4|0]|E[S+5|0]<<8|(E[S+6|0]<<16|E[S+7|0]<<24),668265295,-1028477379),Ga,31),Ga,-2048144761,-1640531535)^o,x^Ga,27),Ga,-2048144761,-1640531535);o=q-1028477341|0;x=Ga-((q>>>0<1028477341)+2048144776|0)|0;q=u;S=q;u=q+8|0;if(P>>>0>=u>>>0){continue}break}}S=q+4|0;Yb:{if(P>>>0>>0){S=q;break Yb}q=nf(rf(nf(E[q|0]|E[q+1|0]<<8|(E[q+2|0]<<16|E[q+3|0]<<24),0,-2048144761,-1640531535)^o,x^Ga,23),Ga,668265295,-1028477379)-1640531463|0;o=q;u=Ga+374761393|0;x=o>>>0<2654435833?u+1|0:u}if(P>>>0>S>>>0){u=(I+N|0)+40|0;while(1){o=nf(rf(nf(E[S|0],0,374761413,668265263)^o,x^Ga,11),Ga,-2048144761,-1640531535);x=Ga;S=S+1|0;if((u|0)!=(S|0)){continue}break}}u=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);w=nf(o^x>>>1,x,668265295,-1028477379);q=Ga;o=q;o=nf(w^((o&536870911)<<3|w>>>29),o^o>>>29,-1640531463,374761393);if((o^Ga)!=(u|0)){break h}}p=p-4|0;n=n+4|0}m=L-ma|0;if(m>>>0>=4294967177){break h}Da=1;ta=ta-m|0;ma=m+ma|0;S=D[y+29540>>2]?1:5;if(S>>>0<=p>>>0){continue}break}}m=-72;if(p){break g}m=ma-va|0;break g}m=(m|0)==-10?Da?-72:m:m}n=m;Zb:{if(D[y+29576>>2]|!y){break Zb}o=D[y+29564>>2];q=D[y+29560>>2];u=D[y+29584>>2];_b:{if(!u){break _b}p=D[u+27320>>2];L=D[u+27316>>2];$b:{ac:{m=D[u>>2];if(m){if(!L){break ac}Ha[L|0](p,m);Ha[L|0](p,u);break _b}if(!L){break $b}Ha[L|0](p,u);break _b}Ta(m)}Ta(u)}D[y+29600>>2]=0;D[y+29584>>2]=0;D[y+29588>>2]=0;m=D[y+29616>>2];bc:{if(!m){break bc}if(q){Ha[q|0](o,m);break bc}Ta(m)}D[y+29616>>2]=0;p=D[y+29604>>2];if(p){cc:{dc:{ec:{m=D[p>>2];if(m){if(!q){break ec}Ha[q|0](o,m);Ha[q|0](o,p);break cc}if(!q){break dc}Ha[q|0](o,p);break cc}Ta(m)}Ta(p)}D[y+29604>>2]=0}if(q){Ha[q|0](o,y);break Zb}Ta(y)}}if((n|0)!=(oa|0)|n>>>0>4294967176){break d}}ia=1}if(!ia){break a}D[ha+420>>2]=b}ia=D[ha+408>>2];u=D[ha+412>>2]}n=D[a+32>>2]>>>b|0;m=n>>>0>1?n:1;o=m+3>>>2|0;n=D[a+28>>2]>>>b|0;n=n>>>0>1?n:1;L=n+3>>>2|0;fc:{gc:{switch(D[a+156>>2]){case 0:if(!D[a+196>>2]){break a}k=d;d=D[a+40>>2];c=k+J(D[a+44>>2],c+J(d>>>0>1?d:1,b)|0)|0;if(c>>>0>=G[a+148>>2]){break a}d=b;b=D[a+88>>2]+J(b,24)|0;b=E[b|0]|E[b+1|0]<<8|(E[b+2|0]<<16|E[b+3|0]<<24);c=D[a+144>>2]+J(c,20)|0;k=b+(E[c+4|0]|E[c+5|0]<<8|(E[c+6|0]<<16|E[c+7|0]<<24))|0;l=b+(E[c+12|0]|E[c+13|0]<<8|(E[c+14|0]<<16|E[c+15|0]<<24))|0;b=E[c+16|0]|E[c+17|0]<<8|(E[c+18|0]<<16|E[c+19|0]<<24);if(gc(a+188|0,g,e,f,D[a>>2],D[a+4>>2],L,o,n,m,d,k,E[c+8|0]|E[c+9|0]<<8|(E[c+10|0]<<16|E[c+11|0]<<24),b?l:0,b,h,E[a+1204|0],E[a+1205|0],i,ha,j)){break fc}break a;case 1:break gc;default:break a}}p=J(o,L)<<4;b=J(p,J(D[a+44>>2],c)+d|0);if(b>>>0>=u>>>0|u-b>>>0

>>0&b>>>0<=u>>>0){break a}if(!Nb(g,e,f,b+ia|0,p,L,o,n,m,0,p,h,E[a+1204|0],i,j,k,l)){break a}}Ea=1}return Ea}function cb(a,b,c,d,e,f,g,h,i,j,k,l,m){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,A=0,G=0,I=0,M=0,N=0,O=0,P=0,Q=K(0),R=0,S=0,T=K(0),U=0,V=0,W=0,X=K(0),Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=K(0),ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=K(0),Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ua=0,Wa=0,Za=0,$a=0,ab=0,bb=0,cb=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=K(0),nb=K(0),ob=K(0),pb=K(0),qb=0,rb=0,sb=0,tb=0,ub=0,vb=K(0),wb=K(0),yb=K(0),zb=K(0),Ab=K(0),Bb=K(0),Cb=0,Db=0,Gb=K(0),Hb=0,Ib=0;v=Fa-256|0;Fa=v;a:{if(!E[422448]){break a}u=f-21|0;b:{if(j){break b}if(u>>>0<9){j=h;break b}j=b;if((f|0)!=15){break b}j=h+7>>>3|0;u=-6}if(J(b,c)<<4>>>0>e>>>0){break a}if((f&-2)!=6){n=1;if(!c|!b){break a}Z=j<<2;wa=j<<1;V=J(g,j);P=v+216|0;e=0;la=(f|0)==24;q=u>>>0>8?k:k?k:i;I=q;while(1){_=(I|0)<4?I:4;U=S<<2;Y=J(U,j);i=J(S,V)+a|0;u=j;r=1;n=e;N=0;while(1){c:{o=(u|0)<4?u:4;d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{switch(f|0){case 29:p=_a(d,v+104|0,0,0);if(p){db(D[v+208>>2],D[v+212>>2],P,v+104|0,v)}if((q|0)==(U|0)){break f}e=N<<2;if((e|0)!=(j|0)){break l}break f;case 24:case 25:p=_a(d,v+104|0,0,0);if(p){db(D[v+208>>2],D[v+212>>2],P,v+104|0,v)}if((q|0)==(U|0)){break g}e=N<<2;if((e|0)!=(j|0)){break k}break g;case 22:s=_a(d,v+104|0,0,0);if(s){db(D[v+208>>2],D[v+212>>2],P,v+104|0,v)}if((q|0)==(U|0)){break h}e=N<<2;if((e|0)!=(j|0)){break j}break h;case 18:if(!_a(d,v+104|0,0,1)){break i}l=(l|0)>0?l:0;e=D[v+208>>2];if((e|0)!=8){db(e,D[v+212>>2],P,v+104|0,v);if((l|0)!=3){Ha[2](i,l+v|0,4);break d}Fb(v+104|0,v,i);break d}C[i>>1]=E[l+P|0]|3328;e=F[204304]|F[204305]<<16;C[i+2>>1]=e;C[i+4>>1]=e>>>16;C[i+6>>1]=F[204306];break d;case 12:if(!_a(d,v+104|0,1,0)){break i}h=D[v+208>>2];if((h|0)!=8){r=Fa-48|0;Fa=r;p=v+104|0;s=E[p+20|0];B[i+2|0]=0;B[i+3|0]=0;B[i+4|0]=0;B[i+5|0]=0;B[i+6|0]=0;B[i+7|0]=0;B[i+8|0]=0;B[i+9|0]=0;B[i+8|0]=0;B[i+9|0]=0;B[i+10|0]=0;B[i+11|0]=0;B[i+12|0]=0;B[i+13|0]=0;B[i+14|0]=0;B[i+15|0]=0;e=D[(h<<2)+26544>>2];B[i|0]=e;e=e>>>8|0;B[i+1|0]=e;k=D[p>>2];e=e|(E[p+4|0]<<3)-8;B[i+1|0]=e;A=J(k,12)+23568|0;n:{if(D[p+4>>2]==1){k=D[p+12>>2];B[i+2|0]=k>>>3;B[i+1|0]=e|k<<5;k=17;break n}o=D[p+8>>2];e=10;k=13;while(1){n=(k>>3)+i|0;t=n;x=E[n|0];n=k&7;B[t|0]=x|o<>>n|0;k=k+n|0;e=e-n|0;if(e){continue}break}e=(k>>3)+i|0;n=k&7;o=(D[p+12>>2]<<2&60)<>>0>=3){B[e+1|0]=E[e+1|0]|o>>>8}k=k+6|0}w=s?32:16;G=D[A>>2];if(E[p+20|0]){e=(126-J(w,G)>>3)+i|0;B[e|0]=E[e|0]|E[p+16|0]<<6}e=D[p+4>>2];n=D[p+12>>2];D[r+44>>2]=k;D[r+32>>2]=0;D[r+24>>2]=0;D[r+28>>2]=0;D[r+16>>2]=0;D[r+20>>2]=0;n=J(e,(n>>2)+1|0);z=n<<1;e=E[h+23440|0];y=D[J(e,12)+23568>>2];o:{p:{q:{h=1497965>>>e&1;r:{if(!h){s=5;e=z+4|0;break r}if(1797559>>>e&1){break q}s=3;e=z+2|0}x=(e|0)/(s|0)|0;if((x|0)<1){break o}A=0;if(h){break p}while(1){B[r+12|0]=0;D[r+8>>2]=0;e=J(s,A);if((e|0)<(z|0)){h=(e+p|0)+21|0;e=z-e|0;e=(e|0)>(s|0)?s:e;Xa(r+8|0,h,(e|0)>1?e:1)}kc(r+16|0,r+8|0,r+44|0,y);A=A+1|0;if((x|0)!=(A|0)){continue}break}break o}if((e&253)==1|(n|0)<1){break o}e=0;while(1){h=k>>3;n=h+(r+16|0)|0;o=k&7;s=E[(e+p|0)+21|0]<>>0>8-o>>>0){h=h+r|0;B[h+17|0]=E[h+17|0]|s>>>8}k=k+y|0;e=e+1|0;if((z|0)!=(e|0)){continue}break}break o}M=y+3|0;e=J(y,3);O=e+5|0;h=y<<1;R=h+5|0;W=h+3|0;h=e+7|0;t=-1<>2]=0;e=J(s,A);s:{if((e|0)>=(z|0)){o=0;n=0;e=0;break s}o=(e+p|0)+21|0;e=z-e|0;e=(e|0)>(s|0)?s:e;Xa(r+8|0,o,(e|0)>1?e:1);o=E[r+9|0];n=E[r+8|0];e=E[r+10|0]}if(h){ma=n&t|(e&t)<>>y|0,25)+(n>>>y|0)|0)+J(o>>>y|0,5)|0)+414592|0];o=ma|(e&7)<>>3&3)<>>5&3)<>3)|0;ma=n;ta=E[n|0];n=k&7;B[ma|0]=ta|o<>>n|0;k=k+n|0;e=e-n|0;if(e){continue}break}}A=A+1|0;if((x|0)!=(A|0)){continue}break}}D[i>>2]=D[i>>2]|D[r+16>>2];D[i+4>>2]=D[i+4>>2]|D[r+20>>2];D[i+8>>2]=D[i+8>>2]|D[r+24>>2];D[i+12>>2]=D[i+12>>2]|D[r+28>>2];k=0;t:{u:{switch(G-1|0){case 0:while(1){e=127-k|0;h=(e>>>3|0)+i|0;o=h;n=E[h|0];h=p+39|0;B[o|0]=n|E[h+k|0]<<(e&7);e=126-k|0;n=(e>>>3|0)+i|0;B[n|0]=E[n|0]|E[h+(k|1)|0]<<(e&6);k=k+2|0;if((w|0)!=(k|0)){continue}break};break t;case 1:while(1){e=126-(k<<1)|0;h=(e>>>3|0)+i|0;o=h;n=E[h|0];h=p+39|0;B[o|0]=n|E[E[h+k|0]+223968|0]<<(e&6);e=k|1;n=126-(e<<1)|0;o=(n>>>3|0)+i|0;B[o|0]=E[o|0]|E[E[e+h|0]+223968|0]<<(n&4);k=k+2|0;if((w|0)!=(k|0)){continue}break};break t;case 2:while(1){h=J(k,-3)+125|0;e=(h>>>3|0)+i|0;n=E[E[(k+p|0)+39|0]+26620|0]<<(h&7);B[e|0]=n|E[e|0];if(h>>>0<=119){B[e+1|0]=E[e+1|0]|n>>>8}k=k+1|0;if((w|0)!=(k|0)){continue}break};break t;case 3:while(1){e=(124-(k<<2)>>3)+i|0;h=e;o=E[e|0];e=p+39|0;B[h|0]=o|E[E[e+k|0]+26640|0]<<4;h=k|1;n=(124-(h<<2)>>3)+i|0;B[n|0]=E[n|0]|E[E[e+h|0]+26640|0];k=k+2|0;if((w|0)!=(k|0)){continue}break};break t;case 4:break u;default:break t}}while(1){h=J(k,-5)+123|0;e=(h>>>3|0)+i|0;n=E[E[(k+p|0)+39|0]+26656|0]<<(h&7);B[e|0]=n|E[e|0];if(h>>>0<=119){B[e+1|0]=E[e+1|0]|n>>>8}k=k+1|0;if((w|0)!=(k|0)){continue}break}}Fa=r+48|0;break d}n=E[P+3|0];o=E[P+2|0];r=E[P+1|0];e=E[P|0];D[i+12>>2]=0;D[i+4>>2]=-1;D[i+8>>2]=0;B[i|0]=252;B[i+1|0]=253;B[i+2|0]=255;B[i+3|0]=255;k=e|e<<8;e=16;h=64;while(1){p=(h>>3)+i|0;t=p;x=E[p|0];p=h&7;B[t|0]=x|k<>>p|0;h=h+p|0;e=e-p|0;if(e){continue}break};k=r|r<<8;e=16;while(1){r=(h>>3)+i|0;t=r;x=E[r|0];r=h&7;B[t|0]=x|k<>>r|0;h=h+r|0;e=e-r|0;if(e){continue}break};k=o|o<<8;e=16;while(1){o=(h>>3)+i|0;r=o;t=E[o|0];o=h&7;B[r|0]=t|k<>>o|0;h=h+o|0;e=e-o|0;if(e){continue}break};k=n|n<<8;e=16;while(1){n=(h>>3)+i|0;o=n;r=E[n|0];n=h&7;B[o|0]=r|k<>>n|0;h=h+n|0;e=e-n|0;if(e){continue}break};break d;case 8:case 9:if(!_a(d,v+104|0,0,0)){break i}n=0;p=0;k=Fa-48|0;Fa=k;e=Va(v,0,96);h=v+104|0;o=D[h+104>>2];r=E[o+23440|0];v:{w:{x:{y:{z:{A:{B:{switch(o|0){case 0:case 5:case 10:case 12:case 14:case 15:case 18:D[e>>2]=6;p=r<<9;T=K(K(E[(p|E[h+21|0]<<1)+429696|0])/K(255));H[k+32>>2]=T;C:{if(o-15>>>0<=2){n=p+429696|0;r=E[n+(E[h+22|0]<<1)|0];H[k+36>>2]=T;H[k+40>>2]=T;T=K(K(r>>>0)/K(255));H[k+16>>2]=T;H[k+20>>2]=T;H[k+24>>2]=T;H[k+44>>2]=K(E[n+(E[h+23|0]<<1)|0])/K(255);H[k+28>>2]=K(E[n+(E[h+24|0]<<1)|0])/K(255);p=o-8|0;n=4;break C}n=E[o+23536|0];p=p+429696|0;H[k+36>>2]=K(E[p+(E[h+23|0]<<1)|0])/K(255);H[k+40>>2]=K(E[p+(E[h+25|0]<<1)|0])/K(255);H[k+16>>2]=K(E[p+(E[h+22|0]<<1)|0])/K(255);H[k+20>>2]=K(E[p+(E[h+24|0]<<1)|0])/K(255);H[k+24>>2]=K(E[p+(E[h+26|0]<<1)|0])/K(255);p=o-8|0;if(p>>>0<=6){r=(r<<9)+429696|0;H[k+44>>2]=K(E[r+(E[h+27|0]<<1)|0])/K(255);H[k+28>>2]=K(E[r+(E[h+28|0]<<1)|0])/K(255);break C}D[k+28>>2]=1065353216;D[k+44>>2]=1065353216}xb(n&255,7,k+32|0,k+16|0,k+4|0,k,k+8|0);D[e+40>>2]=D[k+4>>2];D[e+52>>2]=D[k>>2];if(p>>>0>=10){B[e+55|0]=127;B[e+43|0]=127}D[e+64>>2]=D[k+8>>2];D[e+68>>2]=D[k+12>>2];r=e;D:{E:{switch(o-5|0){case 9:B[e+8|0]=E[E[h+39|0]+26960|0];B[e+9|0]=E[E[h+40|0]+26960|0];B[e+10|0]=E[E[h+41|0]+26960|0];B[e+11|0]=E[E[h+42|0]+26960|0];B[e+12|0]=E[E[h+43|0]+26960|0];B[e+13|0]=E[E[h+44|0]+26960|0];B[e+14|0]=E[E[h+45|0]+26960|0];B[e+15|0]=E[E[h+46|0]+26960|0];B[e+16|0]=E[E[h+47|0]+26960|0];B[e+17|0]=E[E[h+48|0]+26960|0];B[e+18|0]=E[E[h+49|0]+26960|0];B[e+19|0]=E[E[h+50|0]+26960|0];B[e+20|0]=E[E[h+51|0]+26960|0];B[e+21|0]=E[E[h+52|0]+26960|0];B[e+22|0]=E[E[h+53|0]+26960|0];e=E[h+54|0]+26960|0;break D;case 13:B[e+8|0]=E[E[h+39|0]+26928|0];B[e+9|0]=E[E[h+40|0]+26928|0];B[e+10|0]=E[E[h+41|0]+26928|0];B[e+11|0]=E[E[h+42|0]+26928|0];B[e+12|0]=E[E[h+43|0]+26928|0];B[e+13|0]=E[E[h+44|0]+26928|0];B[e+14|0]=E[E[h+45|0]+26928|0];B[e+15|0]=E[E[h+46|0]+26928|0];B[e+16|0]=E[E[h+47|0]+26928|0];B[e+17|0]=E[E[h+48|0]+26928|0];B[e+18|0]=E[E[h+49|0]+26928|0];B[e+19|0]=E[E[h+50|0]+26928|0];B[e+20|0]=E[E[h+51|0]+26928|0];B[e+21|0]=E[E[h+52|0]+26928|0];B[e+22|0]=E[E[h+53|0]+26928|0];e=E[h+54|0]+26928|0;break D;default:B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];e=h+54|0;break D;case 0:case 7:break E}}B[e+8|0]=E[E[h+39|0]+26964|0];B[e+9|0]=E[E[h+40|0]+26964|0];B[e+10|0]=E[E[h+41|0]+26964|0];B[e+11|0]=E[E[h+42|0]+26964|0];B[e+12|0]=E[E[h+43|0]+26964|0];B[e+13|0]=E[E[h+44|0]+26964|0];B[e+14|0]=E[E[h+45|0]+26964|0];B[e+15|0]=E[E[h+46|0]+26964|0];B[e+16|0]=E[E[h+47|0]+26964|0];B[e+17|0]=E[E[h+48|0]+26964|0];B[e+18|0]=E[E[h+49|0]+26964|0];B[e+19|0]=E[E[h+50|0]+26964|0];B[e+20|0]=E[E[h+51|0]+26964|0];B[e+21|0]=E[E[h+52|0]+26964|0];B[e+22|0]=E[E[h+53|0]+26964|0];e=E[h+54|0]+26964|0}B[r+23|0]=E[e|0];break w;case 1:D[e>>2]=3;H[k+32>>2]=K(E[h+21|0])/K(255);H[k+36>>2]=K(E[h+23|0])/K(255);n=E[h+25|0];D[k+44>>2]=1065353216;H[k+40>>2]=K(n>>>0)/K(255);H[k+16>>2]=K(E[h+22|0])/K(255);H[k+20>>2]=K(E[h+24|0])/K(255);n=E[h+26|0];D[k+28>>2]=1065353216;H[k+24>>2]=K(n>>>0)/K(255);D[k+4>>2]=0;D[k>>2]=0;xb(3,7,k+32|0,k+16|0,k+4|0,k,k+8|0);B[e+42|0]=E[k+6|0];C[e+40>>1]=F[k+4>>1];C[e+44>>1]=F[k+4>>1];B[e+46|0]=E[k+6|0];n=E[k|0];B[e+52|0]=n;B[e+56|0]=n;n=E[k+1|0];B[e+57|0]=n;B[e+53|0]=n;n=E[k+2|0];B[e+58|0]=n;B[e+54|0]=n;n=D[k+8>>2];D[e+64>>2]=n;o=D[k+12>>2];D[e+76>>2]=o;D[e+72>>2]=n;D[e+68>>2]=o;B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];B[e+23|0]=E[h+54|0];break w;case 2:D[e>>2]=1;D[e+4>>2]=E[J(D[h+108>>2],6)+21616|0];W=43795755>>>D[h+108>>2]&1;t=h+21|0;while(1){n=0;s=J(p,6);o=s+t|0;r=E[o+3|0];X=K(K((r<<4|r)>>>0)/K(255));vb=K(X*K(127));T=K(K(vb*K(.5))+K(.5));F:{if(K(L(T))63?126:r<<1;T=K(K(K((((w&64)>>>6|w<<1)&253)>>>0)/K(255))-X);T=K(T*T);r=E[o+2|0];qa=K(K((r<<4|r)>>>0)/K(255));wb=K(qa*K(127));Q=K(K(wb*K(.5))+K(.5));G:{if(K(L(Q))63?126:r<<1;Q=K(K(K((((G&64)>>>6|G<<1)&253)>>>0)/K(255))-qa);T=K(K(Q*Q)+T);r=E[o|0];mb=K(K((r<<4|r)>>>0)/K(255));yb=K(mb*K(127));Q=K(K(yb*K(.5))+K(.5));H:{if(K(L(Q))63?126:r<<1;Q=K(K(K((((x&64)>>>6|x<<1)&253)>>>0)/K(255))-mb);za=K(Q*Q);r=E[t+(s|1)|0];nb=K(K((r<<4|r)>>>0)/K(255));zb=K(nb*K(127));Q=K(K(zb*K(.5))+K(.5));I:{if(K(L(Q))63?126:r<<1;Q=K(K(K((((M&64)>>>6|M<<1)&253)>>>0)/K(255))-nb);Q=K(K(K(za+K(Q*Q))+K(0))+T);r=E[o+5|0];ob=K(K((r<<4|r)>>>0)/K(255));Ab=K(ob*K(127));T=K(K(Ab*K(.5))+K(.5));J:{if(K(L(T))63?126:r<<1;T=K(K(K((((O&64)>>>6|O<<1)&253)>>>0)/K(255))-ob);Gb=K(T*T);T=K(1e9);r=0;s=0;y=0;z=0;A=0;za=Q;o=E[o+4|0];pb=K(K((o<<4|o)>>>0)/K(255));Bb=K(pb*K(127));Q=K(K(Bb*K(.5))+K(.5));K:{if(K(L(Q))63?126:o<<1;Q=K(K(K((((o&64)>>>6|o<<1)&253)>>>0)/K(255))-pb);Q=K(za+K(K(Q*Q)+Gb));if(Q>>1|0;s=(w&255)>>>1|0;y=(G&255)>>>1|0;z=(M&255)>>>1|0;A=(x&255)>>>1|0;T=Q;n=(O&255)>>>1|0}w=0;Q=K(K(K(vb+K(-1))*K(.5))+K(.5));L:{if(K(L(Q))63?127:o<<1|1;Q=K(K(K((((o&64)>>>6|o<<1)&255)>>>0)/K(255))-X);Q=K(Q*Q);X=K(K(K(wb+K(-1))*K(.5))+K(.5));M:{if(K(L(X))63?127:G<<1|1;X=K(K(K((((G&64)>>>6|G<<1)&255)>>>0)/K(255))-qa);X=K(X*X);qa=K(K(K(zb+K(-1))*K(.5))+K(.5));N:{if(K(L(qa))63?127:x<<1|1;qa=K(K(K((((x&64)>>>6|x<<1)&255)>>>0)/K(255))-nb);qa=K(qa*qa);Q=K(X+Q);X=K(K(K(yb+K(-1))*K(.5))+K(.5));O:{if(K(L(X))63?127:M<<1|1;X=K(K(K((((M&64)>>>6|M<<1)&255)>>>0)/K(255))-mb);Q=K(K(K(K(X*X)+qa)+K(0))+Q);X=K(K(K(Ab+K(-1))*K(.5))+K(.5));P:{if(K(L(X))63?127:O<<1|1;X=K(K(K((((O&64)>>>6|O<<1)&255)>>>0)/K(255))-ob);X=K(X*X);za=Q;Q=K(K(K(Bb+K(-1))*K(.5))+K(.5));Q:{if(K(L(Q))63?127:R<<1|1;Q=K(K(K((((R&64)>>>6|R<<1)&255)>>>0)/K(255))-pb);if(T>K(za+K(K(Q*Q)+X))){w=1;s=(o&254)>>>1|0;y=(G&254)>>>1|0;z=(x&254)>>>1|0;A=(M&254)>>>1|0;r=(R&254)>>>1|0;n=(O&254)>>>1|0}G=W?p:1-p|0;o=e+(G<<2)|0;B[o+42|0]=r;B[o+41|0]=y;B[o+40|0]=A;B[o+54|0]=n;B[o+53|0]=s;B[o+52|0]=z;D[(e+(G<<3)|0)- -64>>2]=w;p=p+1|0;if((p|0)!=2){continue}break};B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];B[e+23|0]=E[h+54|0];break w;case 3:D[e>>2]=2;D[e+4>>2]=E[J(D[h+108>>2],6)+21936|0];p=1;n=(r<<9)+429696|0;z=E[n+(E[h+22|0]<<1)|0];o=e+40|0;r=J(E[J(D[h+108>>2],6)+21940|0],3);y=E[r+22016|0]<<2;s=o+y|0;B[s|0]=(J(E[n+(E[h+21|0]<<1)|0],31)+127>>>0)/255;A=e+52|0;y=y+A|0;B[y|0]=(J(z,31)+127>>>0)/255;z=E[n+(E[h+24|0]<<1)|0];B[s+1|0]=(J(E[n+(E[h+23|0]<<1)|0],31)+127>>>0)/255;B[y+1|0]=(J(z,31)+127>>>0)/255;z=E[n+(E[h+26|0]<<1)|0];B[s+2|0]=(J(E[n+(E[h+25|0]<<1)|0],31)+127>>>0)/255;B[y+2|0]=(J(z,31)+127>>>0)/255;z=E[n+(E[h+28|0]<<1)|0];y=E[r+22017|0]<<2;s=y+o|0;B[s|0]=(J(E[n+(E[h+27|0]<<1)|0],31)+127>>>0)/255;y=y+A|0;B[y|0]=(J(z,31)+127>>>0)/255;z=E[n+(E[h+30|0]<<1)|0];B[s+1|0]=(J(E[n+(E[h+29|0]<<1)|0],31)+127>>>0)/255;B[y+1|0]=(J(z,31)+127>>>0)/255;z=E[n+(E[h+32|0]<<1)|0];B[s+2|0]=(J(E[n+(E[h+31|0]<<1)|0],31)+127>>>0)/255;B[y+2|0]=(J(z,31)+127>>>0)/255;s=E[n+(E[h+34|0]<<1)|0];r=E[r+22018|0]<<2;o=r+o|0;B[o|0]=(J(E[n+(E[h+33|0]<<1)|0],31)+127>>>0)/255;r=r+A|0;B[r|0]=(J(s,31)+127>>>0)/255;s=E[n+(E[h+36|0]<<1)|0];B[o+1|0]=(J(E[n+(E[h+35|0]<<1)|0],31)+127>>>0)/255;B[r+1|0]=(J(s,31)+127>>>0)/255;s=E[n+(E[h+38|0]<<1)|0];B[o+2|0]=(J(E[n+(E[h+37|0]<<1)|0],31)+127>>>0)/255;B[r+2|0]=(J(s,31)+127>>>0)/255;B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];B[e+23|0]=E[h+54|0];break v;case 4:D[e>>2]=3;D[e+4>>2]=E[J(D[h+108>>2],6)+21616|0];o=D[h+108>>2];D[k+44>>2]=1065353216;D[k+28>>2]=1065353216;p=1;n=(r<<9)+429696|0;H[k+32>>2]=K(E[n+(E[h+21|0]<<1)|0])/K(255);H[k+16>>2]=K(E[n+(E[h+22|0]<<1)|0])/K(255);H[k+36>>2]=K(E[n+(E[h+23|0]<<1)|0])/K(255);H[k+20>>2]=K(E[n+(E[h+24|0]<<1)|0])/K(255);H[k+40>>2]=K(E[n+(E[h+25|0]<<1)|0])/K(255);H[k+24>>2]=K(E[n+(E[h+26|0]<<1)|0])/K(255);D[k+8>>2]=0;D[k+12>>2]=0;D[k+4>>2]=0;D[k>>2]=0;xb(3,7,k+32|0,k+16|0,k+4|0,k,k+8|0);A=e+40|0;o=43795755>>>o&1;y=!o;s=y<<2;r=A+s|0;B[r+2|0]=E[k+6|0];C[r>>1]=F[k+4>>1];z=e+52|0;s=z+s|0;B[s+2|0]=E[k+2|0];C[s>>1]=F[k>>1];B[r+3|0]=127;B[s+3|0]=127;s=e- -64|0;r=s+(y<<3)|0;D[r>>2]=D[k+8>>2];D[r+4>>2]=D[k+12>>2];H[k+32>>2]=K(E[n+(E[h+27|0]<<1)|0])/K(255);H[k+16>>2]=K(E[n+(E[h+28|0]<<1)|0])/K(255);H[k+36>>2]=K(E[n+(E[h+29|0]<<1)|0])/K(255);H[k+20>>2]=K(E[n+(E[h+30|0]<<1)|0])/K(255);H[k+40>>2]=K(E[n+(E[h+31|0]<<1)|0])/K(255);H[k+24>>2]=K(E[n+(E[h+32|0]<<1)|0])/K(255);D[k+8>>2]=0;D[k+12>>2]=0;D[k+4>>2]=0;D[k>>2]=0;xb(3,7,k+32|0,k+16|0,k+4|0,k,k+8|0);r=o<<2;n=r+A|0;B[n+2|0]=E[k+6|0];C[n>>1]=F[k+4>>1];r=r+z|0;B[r+2|0]=E[k+2|0];C[r>>1]=F[k>>1];B[n+3|0]=127;B[r+3|0]=127;n=s+(o<<3)|0;D[n>>2]=D[k+8>>2];D[n+4>>2]=D[k+12>>2];B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];B[e+23|0]=E[h+54|0];break v;case 6:case 11:case 13:case 17:D[e>>2]=5;D[e+92>>2]=D[h+16>>2]+1&3;if(o-15>>>0<=2){n=(r<<9)+429696|0;o=(J(E[n+(E[h+21|0]<<1)|0],127)+127>>>0)/255|0;B[e+40|0]=o;r=E[n+(E[h+22|0]<<1)|0];B[e+41|0]=o;B[e+42|0]=o;o=(J(r,127)+127>>>0)/255|0;B[e+53|0]=o;B[e+52|0]=o;B[e+54|0]=o;B[e+43|0]=E[n+(E[h+23|0]<<1)|0];B[e+55|0]=E[n+(E[h+24|0]<<1)|0];break y}A=D[h+16>>2];y=A?0:3;p=(r<<9)+429696|0;n=E[p+(E[h+21|0]<<1)|0];s=E[p+(E[h+22|0]<<1)|0];if(A){s=(J(s&255,127)+127>>>0)/255|0;n=(J(n&255,127)+127>>>0)/255|0}A=e+y|0;B[A+52|0]=s;B[A+40|0]=n;n=E[p+(E[h+24|0]<<1)|0];p=E[p+(E[h+23|0]<<1)|0];s=D[h+16>>2]==1;A=s?3:1;if(!s){p=(J(p&255,127)+127>>>0)/255|0;n=(J(n&255,127)+127>>>0)/255|0}s=e+A|0;B[s+52|0]=n;B[s+40|0]=p;n=(r<<9)+429696|0;p=E[n+(E[h+26|0]<<1)|0];n=E[n+(E[h+25|0]<<1)|0];s=D[h+16>>2]==2;A=s?3:2;if(!s){p=(J(p&255,127)+127>>>0)/255|0;n=(J(n&255,127)+127>>>0)/255|0}s=e+A|0;B[s+52|0]=p;B[s+40|0]=n;s=D[h+16>>2];p=255;n=255;if(o-8>>>0<=6){r=(r<<9)+429696|0;n=E[r+(E[h+28|0]<<1)|0];p=E[r+(E[h+27|0]<<1)|0]}if(s>>>0<=2){break A}break z;case 7:D[e>>2]=2;D[e+4>>2]=E[J(D[h+108>>2],6)+21808|0];p=1;n=(r<<9)+429696|0;o=h+21|0;A=D[h+108>>2];y=E[J(A,6)+21812|0];s=y&1;z=0-s&6;r=o+z|0;B[e+40|0]=(J(E[n+(E[r|0]<<1)|0],31)+127>>>0)/255;B[e+52|0]=(J(E[n+(E[o+(z|1)|0]<<1)|0],31)+127>>>0)/255;B[e+41|0]=(J(E[n+(E[r+2|0]<<1)|0],31)+127>>>0)/255;B[e+53|0]=(J(E[n+(E[r+3|0]<<1)|0],31)+127>>>0)/255;B[e+42|0]=(J(E[n+(E[r+4|0]<<1)|0],31)+127>>>0)/255;B[e+54|0]=(J(E[n+(E[r+5|0]<<1)|0],31)+127>>>0)/255;A=J(!(s^87040>>>A&1),6);r=A+o|0;B[e+44|0]=(J(E[n+(E[r|0]<<1)|0],31)+127>>>0)/255;B[e+56|0]=(J(E[n+(E[o+(A|1)|0]<<1)|0],31)+127>>>0)/255;B[e+45|0]=(J(E[n+(E[r+2|0]<<1)|0],31)+127>>>0)/255;B[e+57|0]=(J(E[n+(E[r+3|0]<<1)|0],31)+127>>>0)/255;B[e+46|0]=(J(E[n+(E[r+4|0]<<1)|0],31)+127>>>0)/255;B[e+58|0]=(J(E[n+(E[r+5|0]<<1)|0],31)+127>>>0)/255;r=D[(y<<1&508)+414884>>2];s=J(s?1-r|0:r,6);r=s+o|0;B[e+48|0]=(J(E[n+(E[r|0]<<1)|0],31)+127>>>0)/255;B[e+60|0]=(J(E[n+(E[o+(s|1)|0]<<1)|0],31)+127>>>0)/255;B[e+49|0]=(J(E[n+(E[r+2|0]<<1)|0],31)+127>>>0)/255;B[e+61|0]=(J(E[n+(E[r+3|0]<<1)|0],31)+127>>>0)/255;B[e+50|0]=(J(E[n+(E[r+4|0]<<1)|0],31)+127>>>0)/255;B[e+62|0]=(J(E[n+(E[r+5|0]<<1)|0],31)+127>>>0)/255;B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];B[e+23|0]=E[h+54|0];break v;case 8:o=E[h+115|0]<<3;r=E[h+114|0]<<3;p=E[h+113|0]<<3;s=E[h+112|0]<<3;n=F[o+440452>>1]+(F[r+440452>>1]+(F[p+440452>>1]+F[s+440452>>1]|0)|0)|0;o=F[o+440448>>1]+(F[r+440448>>1]+(F[p+440448>>1]+F[s+440448>>1]|0)|0)|0;if(!(!o|!n)){D[e>>2]=5;B[e+40|0]=E[(E[h+112|0]<<2)+442498|0];B[e+52|0]=E[(E[h+112|0]<<2)+442499|0];B[e+41|0]=E[(E[h+113|0]<<2)+442498|0];B[e+53|0]=E[(E[h+113|0]<<2)+442499|0];B[e+42|0]=E[(E[h+114|0]<<2)+442498|0];n=E[(E[h+114|0]<<2)+442499|0];D[e+8>>2]=16843009;D[e+12>>2]=16843009;B[e+54|0]=n;D[e+16>>2]=16843009;D[e+20>>2]=16843009;B[e+43|0]=E[h+115|0];B[e+55|0]=E[h+115|0];break w}D[e>>2]=6;o=n>>>0>>0;n=o<<2;B[e+40|0]=E[(n|E[h+112|0]<<3)+440450|0];B[e+52|0]=E[(n|E[h+112|0]<<3)+440451|0];B[e+41|0]=E[(n|E[h+113|0]<<3)+440450|0];B[e+53|0]=E[(n|E[h+113|0]<<3)+440451|0];B[e+42|0]=E[(n|E[h+114|0]<<3)+440450|0];B[e+54|0]=E[(n|E[h+114|0]<<3)+440451|0];B[e+43|0]=E[(n|E[h+115|0]<<3)+440450|0];h=E[(n|E[h+115|0]<<3)+440451|0];D[e+68>>2]=o;D[e+64>>2]=o;B[e+55|0]=h;D[e+8>>2]=84215045;D[e+12>>2]=84215045;D[e+16>>2]=84215045;D[e+20>>2]=84215045;break w;case 9:case 16:break B;default:break v}}D[e>>2]=7;D[e+4>>2]=E[J(D[h+108>>2],6)+21616|0];A=43795755>>>D[h+108>>2]&1;y=o-15>>>0>2;o=h+21|0;z=r<<9;r=z+429696|0;s=1;while(1){t=k;R:{if(!y){p=n<<2;T=K(K(E[r+(E[p+o|0]<<1)|0])/K(255));H[k+32>>2]=T;w=E[r+(E[o+(p|1)|0]<<1)|0];H[k+36>>2]=T;H[k+40>>2]=T;T=K(K(w>>>0)/K(255));H[k+16>>2]=T;H[k+20>>2]=T;H[k+24>>2]=T;H[k+44>>2]=K(E[r+(E[o+(p|2)|0]<<1)|0])/K(255);x=p|3;break R}p=n<<3;H[k+32>>2]=K(E[r+(E[p+o|0]<<1)|0])/K(255);H[k+36>>2]=K(E[r+(E[o+(p|2)|0]<<1)|0])/K(255);H[k+40>>2]=K(E[r+(E[o+(p|4)|0]<<1)|0])/K(255);H[k+44>>2]=K(E[r+(E[o+(p|6)|0]<<1)|0])/K(255);H[k+16>>2]=K(E[r+(E[o+(p|1)|0]<<1)|0])/K(255);H[k+20>>2]=K(E[r+(E[o+(p|3)|0]<<1)|0])/K(255);H[k+24>>2]=K(E[r+(E[o+(p|5)|0]<<1)|0])/K(255);x=p|7}H[t+28>>2]=K(E[(E[(x+h|0)+21|0]<<1|z)+429696|0])/K(255);D[k+8>>2]=0;D[k+12>>2]=0;D[k+4>>2]=0;D[k>>2]=0;xb(4,5,k+32|0,k+16|0,k+4|0,k,k+8|0);n=n^A^1;p=e+(n<<2)|0;D[p+40>>2]=D[k+4>>2];D[p+52>>2]=D[k>>2];n=e+(n<<3)|0;D[n- -64>>2]=D[k+8>>2];D[n+68>>2]=D[k+12>>2];p=s&1;s=0;n=1;if(p){continue}break}B[e+8|0]=E[h+39|0];B[e+9|0]=E[h+40|0];B[e+10|0]=E[h+41|0];B[e+11|0]=E[h+42|0];B[e+12|0]=E[h+43|0];B[e+13|0]=E[h+44|0];B[e+14|0]=E[h+45|0];B[e+15|0]=E[h+46|0];B[e+16|0]=E[h+47|0];B[e+17|0]=E[h+48|0];B[e+18|0]=E[h+49|0];B[e+19|0]=E[h+50|0];B[e+20|0]=E[h+51|0];B[e+21|0]=E[h+52|0];B[e+22|0]=E[h+53|0];B[e+23|0]=E[h+54|0];break w}n=(J(n,127)+127>>>0)/255|0;p=(J(p,127)+127>>>0)/255|0}r=e+s|0;B[r+52|0]=n;B[r+40|0]=p;if((o|0)==13){break x}}B[e+8|0]=E[h+39|0];B[e+24|0]=E[h+40|0];B[e+9|0]=E[h+41|0];B[e+25|0]=E[h+42|0];B[e+10|0]=E[h+43|0];B[e+26|0]=E[h+44|0];B[e+11|0]=E[h+45|0];B[e+27|0]=E[h+46|0];B[e+12|0]=E[h+47|0];B[e+28|0]=E[h+48|0];B[e+13|0]=E[h+49|0];B[e+29|0]=E[h+50|0];B[e+14|0]=E[h+51|0];B[e+30|0]=E[h+52|0];B[e+15|0]=E[h+53|0];B[e+31|0]=E[h+54|0];B[e+16|0]=E[h+55|0];B[e+32|0]=E[h+56|0];B[e+17|0]=E[h+57|0];B[e+33|0]=E[h+58|0];B[e+18|0]=E[h+59|0];B[e+34|0]=E[h+60|0];B[e+19|0]=E[h+61|0];B[e+35|0]=E[h+62|0];B[e+20|0]=E[h+63|0];B[e+36|0]=E[h- -64|0];B[e+21|0]=E[h+65|0];B[e+37|0]=E[h+66|0];B[e+22|0]=E[h+67|0];B[e+38|0]=E[h+68|0];B[e+23|0]=E[h+69|0];B[e+39|0]=E[h+70|0];break w}B[e+8|0]=E[h+39|0]?3:0;B[e+24|0]=E[h+40|0]?3:0;B[e+9|0]=E[h+41|0]?3:0;B[e+25|0]=E[h+42|0]?3:0;B[e+10|0]=E[h+43|0]?3:0;B[e+26|0]=E[h+44|0]?3:0;B[e+11|0]=E[h+45|0]?3:0;B[e+27|0]=E[h+46|0]?3:0;B[e+12|0]=E[h+47|0]?3:0;B[e+28|0]=E[h+48|0]?3:0;B[e+13|0]=E[h+49|0]?3:0;B[e+29|0]=E[h+50|0]?3:0;B[e+14|0]=E[h+51|0]?3:0;B[e+30|0]=E[h+52|0]?3:0;B[e+15|0]=E[h+53|0]?3:0;B[e+31|0]=E[h+54|0]?3:0;B[e+16|0]=E[h+55|0]?3:0;B[e+32|0]=E[h+56|0]?3:0;B[e+17|0]=E[h+57|0]?3:0;B[e+33|0]=E[h+58|0]?3:0;B[e+18|0]=E[h+59|0]?3:0;B[e+34|0]=E[h+60|0]?3:0;B[e+19|0]=E[h+61|0]?3:0;B[e+35|0]=E[h+62|0]?3:0;B[e+20|0]=E[h+63|0]?3:0;B[e+36|0]=E[h- -64|0]?3:0;B[e+21|0]=E[h+65|0]?3:0;B[e+37|0]=E[h+66|0]?3:0;B[e+22|0]=E[h+67|0]?3:0;B[e+38|0]=E[h+68|0]?3:0;B[e+23|0]=E[h+69|0]?3:0;B[e+39|0]=E[h+70|0]?3:0}p=1}Fa=k+48|0;if(!p){break i}n=Fa-112|0;r=D[v>>2];A=E[r+26496|0];M=r-4|0;k=24240;S:{if(M>>>0<3){break S}e=D[v+4>>2]<<4;k=e+24256|0;if(138>>>r&1){break S}k=e+25280|0}e=D[v+12>>2];D[n+96>>2]=D[v+8>>2];D[n+100>>2]=e;e=D[v+20>>2];D[n+104>>2]=D[v+16>>2];D[n+108>>2]=e;e=D[v+36>>2];D[n+88>>2]=D[v+32>>2];D[n+92>>2]=e;e=D[v+28>>2];D[n+80>>2]=D[v+24>>2];D[n+84>>2]=e;D[n+72>>2]=E[v+48|0]|E[v+49|0]<<8|(E[v+50|0]<<16|E[v+51|0]<<24);e=E[v+44|0]|E[v+45|0]<<8|(E[v+46|0]<<16|E[v+47|0]<<24);D[n+64>>2]=E[v+40|0]|E[v+41|0]<<8|(E[v+42|0]<<16|E[v+43|0]<<24);D[n+68>>2]=e;D[n+56>>2]=E[v+60|0]|E[v+61|0]<<8|(E[v+62|0]<<16|E[v+63|0]<<24);e=E[v+56|0]|E[v+57|0]<<8|(E[v+58|0]<<16|E[v+59|0]<<24);D[n+48>>2]=E[v+52|0]|E[v+53|0]<<8|(E[v+54|0]<<16|E[v+55|0]<<24);D[n+52>>2]=e;e=D[v+84>>2];D[n+32>>2]=D[v+80>>2];D[n+36>>2]=e;e=D[v+76>>2];D[n+24>>2]=D[v+72>>2];D[n+28>>2]=e;e=D[v+68>>2];D[n+16>>2]=D[v+64>>2];D[n+20>>2]=e;D[n+8>>2]=-1;D[n>>2]=-1;D[n+4>>2]=-1;O=A>>>0>1?A:1;G=r&-3;w=r&-2;h=(w|0)==4;R=D[v+88>>2];o=1<>>1|0;e=0;$=r+26528|0;while(1){y=e<<2;z=y+n|0;if(e){t=D[v+4>>2]+26368|0;T:{if(!((e|0)!=1|G)){break T}p=D[v+4>>2];t=p+26432|0;if(!((e|0)!=2|G)){break T}t=p+26304|0}x=E[t|0]}else{x=0}D[z>>2]=x;U:{if(W&E[x+(n+96|0)|0]){if(E[k|0]==(e|0)){B[n+96|0]=o+(E[n+96|0]^-1)}if(E[k+1|0]==(e|0)){B[n+97|0]=o+(E[n+97|0]^-1)}if(E[k+2|0]==(e|0)){B[n+98|0]=o+(E[n+98|0]^-1)}if(E[k+3|0]==(e|0)){B[n+99|0]=o+(E[n+99|0]^-1)}if(E[k+4|0]==(e|0)){B[n+100|0]=o+(E[n+100|0]^-1)}if(E[k+5|0]==(e|0)){B[n+101|0]=o+(E[n+101|0]^-1)}if(E[k+6|0]==(e|0)){B[n+102|0]=o+(E[n+102|0]^-1)}if(E[k+7|0]==(e|0)){B[n+103|0]=o+(E[n+103|0]^-1)}if(E[k+8|0]==(e|0)){B[n+104|0]=o+(E[n+104|0]^-1)}if(E[k+9|0]==(e|0)){B[n+105|0]=o+(E[n+105|0]^-1)}if(E[k+10|0]==(e|0)){B[n+106|0]=o+(E[n+106|0]^-1)}if(E[k+11|0]==(e|0)){B[n+107|0]=o+(E[n+107|0]^-1)}if(E[k+12|0]==(e|0)){B[n+108|0]=o+(E[n+108|0]^-1)}if(E[k+13|0]==(e|0)){B[n+109|0]=o+(E[n+109|0]^-1)}if(E[k+14|0]==(e|0)){B[n+110|0]=o+(E[n+110|0]^-1)}if(E[k+15|0]==(e|0)){B[n+111|0]=o+(E[n+111|0]^-1)}V:{if((w|0)!=4){p=y+(n- -64|0)|0;z=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);s=y+(n+48|0)|0;t=E[s|0]|E[s+1|0]<<8|(E[s+2|0]<<16|E[s+3|0]<<24);B[p|0]=t;B[p+1|0]=t>>>8;B[p+2|0]=t>>>16;B[p+3|0]=t>>>24;B[s|0]=z;B[s+1|0]=z>>>8;B[s+2|0]=z>>>16;B[s+3|0]=z>>>24;break V}p=y+(n- -64|0)|0;z=E[p|0];s=y+(n+48|0)|0;B[p|0]=E[s|0];B[s|0]=z;z=E[p+1|0]|E[p+2|0]<<8;t=E[s+1|0]|E[s+2|0]<<8;B[p+1|0]=t;B[p+2|0]=t>>>8;B[s+1|0]=z;B[s+2|0]=z>>>8}if((r|0)==1){break U}p=(n+16|0)+(e<<3)|0;Hb=p,Ib=rf(D[p>>2],D[p+4>>2],32),D[Hb>>2]=Ib;D[p+4>>2]=Ga}if((w|0)!=4){break U}p=1<>>1)){break U}if(E[k|0]==(e|0)){B[n+80|0]=p+(E[n+80|0]^-1)}if(E[k+1|0]==(e|0)){B[n+81|0]=p+(E[n+81|0]^-1)}if(E[k+2|0]==(e|0)){B[n+82|0]=p+(E[n+82|0]^-1)}if(E[k+3|0]==(e|0)){B[n+83|0]=p+(E[n+83|0]^-1)}if(E[k+4|0]==(e|0)){B[n+84|0]=p+(E[n+84|0]^-1)}if(E[k+5|0]==(e|0)){B[n+85|0]=p+(E[n+85|0]^-1)}if(E[k+6|0]==(e|0)){B[n+86|0]=p+(E[n+86|0]^-1)}if(E[k+7|0]==(e|0)){B[n+87|0]=p+(E[n+87|0]^-1)}if(E[k+8|0]==(e|0)){B[n+88|0]=p+(E[n+88|0]^-1)}if(E[k+9|0]==(e|0)){B[n+89|0]=p+(E[n+89|0]^-1)}if(E[k+10|0]==(e|0)){B[n+90|0]=p+(E[n+90|0]^-1)}if(E[k+11|0]==(e|0)){B[n+91|0]=p+(E[n+91|0]^-1)}if(E[k+12|0]==(e|0)){B[n+92|0]=p+(E[n+92|0]^-1)}if(E[k+13|0]==(e|0)){B[n+93|0]=p+(E[n+93|0]^-1)}if(E[k+14|0]==(e|0)){B[n+94|0]=p+(E[n+94|0]^-1)}if(E[k+15|0]==(e|0)){B[n+95|0]=p+(E[n+95|0]^-1)}p=y+(n- -64|0)|0;s=E[p+3|0];t=p;p=y+(n+48|0)|0;B[t+3|0]=E[p+3|0];B[p+3|0]=s}e=e+1|0;if((O|0)!=(e|0)){continue}break};B[i|0]=0;B[i+1|0]=0;B[i+2|0]=0;B[i+3|0]=0;B[i+4|0]=0;B[i+5|0]=0;B[i+6|0]=0;B[i+7|0]=0;B[i+8|0]=0;B[i+9|0]=0;B[i+10|0]=0;B[i+11|0]=0;B[i+12|0]=0;B[i+13|0]=0;B[i+14|0]=0;B[i+15|0]=0;k=0;e=0;p=r+1|0;if(r>>>0<=p>>>0){o=1<>>3|0)+i|0;t=k;x=E[k|0];k=e&7;B[t|0]=x|o<>>0

>>0?k:p;e=e+k|0;o=o>>>k|0;p=p-k|0;if(p){continue}break}if((w|0)==4){o=D[v+92>>2];p=2;while(1){k=(e>>>3|0)+i|0;t=k;x=E[k|0];k=e&7;B[t|0]=x|o<>>0

>>0?k:p;e=e+k|0;o=o>>>k|0;p=p-k|0;if(p){continue}break}}k=h;if((r|0)==4){h=(e>>>3|0)+i|0;B[h|0]=E[h|0]|D[v+88>>2]<<(e&7);e=e+1|0}}if(M>>>0>=3){p=142>>>r&1?6:4;o=D[v+4>>2];while(1){h=(e>>>3|0)+i|0;t=h;x=E[h|0];h=e&7;B[t|0]=x|o<>>0

>>0?h:p;e=e+h|0;o=o>>>h|0;p=p-h|0;if(p){continue}break}}G=A>>>0>1?A:1;x=r>>>0>3?4:3;y=0;s=r+26520|0;z=r+26512|0;while(1){h=0;while(1){w=h<<2;M=(y|0)==3;p=M?B[s|0]:E[z|0];if(p){o=E[(w+(n- -64|0)|0)+y|0];while(1){t=(e>>>3|0)+i|0;O=t;R=E[t|0];t=e&7;B[O|0]=R|o<>>0>t>>>0?t:p;e=e+t|0;o=o>>>t|0;p=p-t|0;if(p){continue}break}}p=M?B[s|0]:E[z|0];if(p){o=E[(w+(n+48|0)|0)+y|0];while(1){w=(e>>>3|0)+i|0;t=w;M=E[w|0];w=e&7;B[t|0]=M|o<>>0>w>>>0?w:p;e=e+w|0;o=o>>>w|0;p=p-w|0;if(p){continue}break}}h=h+1|0;if((G|0)!=(h|0)){continue}break}y=y+1|0;if((x|0)!=(y|0)){continue}break};if(!(52>>>r&1)){o=A>>>0>1?A:1;p=0;while(1){h=(e>>>3|0)+i|0;s=(n+16|0)+(p<<3)|0;B[h|0]=E[h|0]|D[s>>2]<<(e&7);h=e+1|0;if((r|0)==1){e=h}else{A=(h>>>3|0)+i|0;B[A|0]=E[A|0]|D[s+4>>2]<<(h&7);e=e+2|0}p=p+1|0;if((o|0)!=(p|0)){continue}break}}A=0;h=D[n+8>>2];s=D[n+4>>2];y=D[n>>2];w=r+26504|0;t=r+26528|0;while(1){z=A<<2;o=D[v+88>>2];W:{if(o){p=E[t|0]-o|0;x=n+80|0;break W}p=E[w|0];x=n+96|0}G=z|1;p=p-((z|0)==(y|0)|(s|0)==(z|0)|(h|0)==(z|0))|0;if(p){o=E[z+x|0];while(1){x=(e>>>3|0)+i|0;M=x;O=E[x|0];x=e&7;B[M|0]=O|o<>>0>x>>>0?x:p;e=e+x|0;o=o>>>x|0;p=p-x|0;if(p){continue}break}o=D[v+88>>2]}X:{if(o){p=E[t|0]-o|0;x=n+80|0;break X}p=E[w|0];x=n+96|0}p=p-((y|0)==(G|0)|(s|0)==(G|0)|(h|0)==(G|0))|0;if(p){o=E[G+x|0];while(1){G=(e>>>3|0)+i|0;x=G;M=E[G|0];G=e&7;B[x|0]=M|o<>>0>G>>>0?G:p;e=e+G|0;o=o>>>G|0;p=p-G|0;if(p){continue}break}o=D[v+88>>2]}G=z|2;Y:{if(o){p=E[t|0]-o|0;x=n+80|0;break Y}p=E[w|0];x=n+96|0}z=z|3;p=p-((y|0)==(G|0)|(s|0)==(G|0)|(h|0)==(G|0))|0;if(p){o=E[G+x|0];while(1){G=(e>>>3|0)+i|0;x=G;M=E[G|0];G=e&7;B[x|0]=M|o<>>0>G>>>0?G:p;e=e+G|0;o=o>>>G|0;p=p-G|0;if(p){continue}break}o=D[v+88>>2]}Z:{if(o){p=E[t|0]-o|0;o=n+80|0;break Z}p=E[w|0];o=n+96|0}p=p-((z|0)==(y|0)|(s|0)==(z|0)|(h|0)==(z|0))|0;if(p){o=E[o+z|0];while(1){z=(e>>>3|0)+i|0;x=z;G=E[z|0];z=e&7;B[x|0]=G|o<>>0>z>>>0?z:p;e=e+z|0;o=o>>>z|0;p=p-z|0;if(p){continue}break}}A=A+1|0;if((A|0)!=4){continue}break};if(k){A=0;z=r+26528|0;r=r+26504|0;while(1){k=A<<2;o=D[v+88>>2];_:{if(o){p=E[r|0]+o|0;t=n+96|0;break _}p=E[z|0];t=n+80|0}w=k|1;p=p-((k|0)==(y|0)|(k|0)==(s|0)|(h|0)==(k|0))|0;if(p){o=E[k+t|0];while(1){t=(e>>>3|0)+i|0;x=t;G=E[t|0];t=e&7;B[x|0]=G|o<>>0>t>>>0?t:p;e=e+t|0;o=o>>>t|0;p=p-t|0;if(p){continue}break}o=D[v+88>>2]}$:{if(o){p=E[r|0]+o|0;t=n+96|0;break $}p=E[z|0];t=n+80|0}p=p-((w|0)==(y|0)|(s|0)==(w|0)|(h|0)==(w|0))|0;if(p){o=E[w+t|0];while(1){w=(e>>>3|0)+i|0;t=w;x=E[w|0];w=e&7;B[t|0]=x|o<>>0>w>>>0?w:p;e=e+w|0;o=o>>>w|0;p=p-w|0;if(p){continue}break}o=D[v+88>>2]}w=k|2;aa:{if(o){p=E[r|0]+o|0;t=n+96|0;break aa}p=E[z|0];t=n+80|0}k=k|3;p=p-((w|0)==(y|0)|(s|0)==(w|0)|(h|0)==(w|0))|0;if(p){o=E[w+t|0];while(1){w=(e>>>3|0)+i|0;t=w;x=E[w|0];w=e&7;B[t|0]=x|o<>>0>w>>>0?w:p;e=e+w|0;o=o>>>w|0;p=p-w|0;if(p){continue}break}o=D[v+88>>2]}ba:{if(o){p=E[r|0]+o|0;o=n+96|0;break ba}p=E[z|0];o=n+80|0}p=p-((k|0)==(y|0)|(k|0)==(s|0)|(h|0)==(k|0))|0;if(p){o=E[k+o|0];while(1){k=(e>>>3|0)+i|0;t=k;x=E[k|0];k=e&7;B[t|0]=x|o<>>0

>>0?k:p;e=e+k|0;o=o>>>k|0;p=p-k|0;if(p){continue}break}}A=A+1|0;if((A|0)!=4){continue}break}}break d;case 5:if(!_a(d,v+104|0,0,1)){break i}m=(m|0)<0?3:m;l=(l|0)>0?l:0;e=D[v+208>>2];if((e|0)!=8){db(e,D[v+212>>2],P,v+104|0,v);Eb(i,l+v|0);Eb(i+8|0,m+v|0);break d}e=E[l+P|0];B[i+2|0]=0;B[i+3|0]=0;B[i+4|0]=0;B[i+5|0]=0;B[i+1|0]=e;B[i|0]=e;B[i+6|0]=0;B[i+7|0]=0;e=E[m+P|0];B[i+10|0]=0;B[i+11|0]=0;B[i+12|0]=0;B[i+13|0]=0;B[i+9|0]=e;B[i+8|0]=e;B[i+14|0]=0;B[i+15|0]=0;break d;case 4:if(!_a(d,v+104|0,0,1)){break i}l=(l|0)>0?l:0;e=D[v+208>>2];if((e|0)!=8){db(e,D[v+212>>2],P,v+104|0,v);Eb(i,l+v|0);break d}e=E[l+P|0];B[i+2|0]=0;B[i+3|0]=0;B[i+4|0]=0;B[i+5|0]=0;B[i+1|0]=e;B[i|0]=e;B[i+6|0]=0;B[i+7|0]=0;break d;case 3:n=0;r=Fa-224|0;Fa=r;p=_a(d,r+72|0,0,1);ca:{if(!p){break ca}h=D[r+176>>2];if((h|0)==8){e=E[r+187|0];B[i+2|0]=0;B[i+3|0]=0;B[i+4|0]=0;B[i+5|0]=0;B[i+1|0]=e;B[i|0]=e;B[i+6|0]=0;B[i+7|0]=0;o=170;h=E[r+186|0]<<1;k=E[r+185|0]<<1;s=E[r+184|0]<<1;e=E[h+422465|0]|(E[k+423489|0]<<5|E[s+422465|0]<<11);h=E[h+422464|0]|(E[k+423488|0]<<5|E[s+422464|0]<<11);da:{if((e|0)==(h|0)){if(!h){e=0;k=1;o=85;break da}o=0;e=h-1|0}if(e>>>0<=h>>>0){k=h;break da}o=o|85;k=e;e=h}B[i+10|0]=e;B[i+8|0]=k;h=J(o,16843009);B[i+12|0]=h;B[i+13|0]=h>>>8;B[i+14|0]=h>>>16;B[i+15|0]=h>>>24;B[i+11|0]=e>>>8;B[i+9|0]=k>>>8;break ca}e=i+8|0;db(h,D[r+180>>2],r+184|0,r+72|0,r);Eb(i,r|3);if(E[r+188|0]){Ec(r+72|0,e);break ca}if(E[r+189|0]){Dc(r+72|0,r,e);break ca}Ob(e,r,0)}Fa=r+224|0;if(p){break d}break a;case 2:n=0;r=Fa-224|0;Fa=r;p=_a(d,r+72|0,0,1);ea:{if(!p){break ea}e=D[r+176>>2];if((e|0)==8){o=170;h=E[r+186|0]<<1;k=E[r+185|0]<<1;s=E[r+184|0]<<1;e=E[h+422465|0]|(E[k+423489|0]<<5|E[s+422465|0]<<11);h=E[h+422464|0]|(E[k+423488|0]<<5|E[s+422464|0]<<11);fa:{if((e|0)==(h|0)){if(!h){e=0;k=1;o=85;break fa}o=0;e=h-1|0}if(e>>>0<=h>>>0){k=h;break fa}o=o|85;k=e;e=h}B[i+2|0]=e;B[i|0]=k;h=J(o,16843009);B[i+4|0]=h;B[i+5|0]=h>>>8;B[i+6|0]=h>>>16;B[i+7|0]=h>>>24;B[i+3|0]=e>>>8;B[i+1|0]=k>>>8;break ea}if(E[r+188|0]){Ec(r+72|0,i);break ea}db(e,D[r+180>>2],r+184|0,r+72|0,r);if(E[r+189|0]){Dc(r+72|0,r,i);break ea}Ob(i,r,0)}Fa=r+224|0;if(p){break d}break a;case 1:if(!_a(d,v+104|0,0,1)){break i}e=D[v+208>>2];if((e|0)!=8){db(e,D[v+212>>2],P,v+104|0,v)}Fb(v+104|0,v,i);Gc(v+104|0,v,i+8|0);break d;case 0:if(!_a(d,v+104|0,0,1)){break i}e=D[v+208>>2];if((e|0)!=8){db(e,D[v+212>>2],P,v+104|0,v)}Gc(v+104|0,v,i);break d;default:if(!(n&1)){break i}break d;case 19:break m}}n=0;l=(l|0)>0?l:0;h=l;m=(m|0)<0?3:m;k=m;e=Fa-224|0;Fa=e;o=_a(d,e+72|0,0,1);ga:{if(!o){break ga}r=D[e+176>>2];if((r|0)==8){r=e+184|0;C[i>>1]=E[r+h|0]|3328;h=F[204304]|F[204305]<<16;C[i+2>>1]=h;C[i+4>>1]=h>>>16;p=F[204306];C[i+6>>1]=p;C[i+8>>1]=E[k+r|0]|3328;C[i+10>>1]=h;C[i+12>>1]=h>>>16;C[i+14>>1]=p;break ga}db(r,D[e+180>>2],e+184|0,e+72|0,e);ha:{if((h|0)==3){Fb(e+72|0,e,i);break ha}Ha[2](i,e+h|0,4)}if((k|0)==3){Fb(e+72|0,e,i+8|0);break ga}Ha[2](i+8|0,e+k|0,4)}Fa=e+224|0;if(!o){break a}break d}h=(e+Y<<1)+a|0;e=0;while(1){n=0;while(1){k=((e<<4)+v|0)+(n<<2)|0;s=E[k|0];A=E[k+1|0];y=n<<1;z=J(E[k+2|0],15)+128|0;z=(z>>>8|0)+z>>>4|0;k=J(E[k+3|0],15)+128|0;B[y+h|0]=z&240|(k>>>8|0)+k>>>8;k=J(s,15)+128|0;t=(k>>>8|0)+k<<4&61440;k=J(A,15)+128|0;B[(y|1)+h|0]=(z|(t|(k>>>8|0)+k&16128))>>>8;n=n+1|0;if((o|0)!=(n|0)){continue}break}h=h+wa|0;e=e+1|0;if((_|0)!=(e|0)){continue}break}break f}n=(e+Y<<1)+a|0;k=0;if(!la){while(1){e=0;while(1){s=e<<1;h=((k<<4)+v|0)+(e<<2)|0;A=J(E[h+1|0],63)+128|0;t=(A>>>8|0)+A>>>3&8160;A=J(E[h+2|0],31)+128|0;h=J(E[h|0],31)+128|0;h=t|(A>>>8|0)+A<<3&260096|(h>>>8|0)+h>>>8;B[s+n|0]=h;B[(s|1)+n|0]=h>>>8;e=e+1|0;if((o|0)!=(e|0)){continue}break}n=n+wa|0;k=k+1|0;if((_|0)!=(k|0)){continue}break g}}while(1){e=0;while(1){s=e<<1;h=((k<<4)+v|0)+(e<<2)|0;A=J(E[h+1|0],63)+128|0;t=(A>>>8|0)+A>>>3&8160;A=J(E[h|0],31)+128|0;h=J(E[h+2|0],31)+128|0;h=t|(A>>>8|0)+A<<3&260096|(h>>>8|0)+h>>>8;B[s+n|0]=h;B[(s|1)+n|0]=h>>>8;e=e+1|0;if((o|0)!=(e|0)){continue}break}n=n+wa|0;k=k+1|0;if((_|0)!=(k|0)){continue}break}break g}e=(e+Y<<2)+a|0;h=0;while(1){k=0;while(1){n=k<<2;p=n+((h<<4)+v|0)|0;B[e+n|0]=E[p|0];B[(n|1)+e|0]=E[p+1|0];B[(n|2)+e|0]=E[p+2|0];B[(n|3)+e|0]=E[p+3|0];k=k+1|0;if((o|0)!=(k|0)){continue}break}e=e+Z|0;h=h+1|0;if((_|0)!=(h|0)){continue}break}break h}n=0;break a}if(s){break d}break e}if(!p){break e}break d}if(p){break d}}n=0;if(r){break a}break c}u=u-4|0;i=g+i|0;d=d+16|0;n=1;N=N+1|0;r=N>>>0>>0;if((b|0)!=(N|0)){continue}}break}I=I-4|0;e=n;n=1;S=S+1|0;if((S|0)!=(c|0)){continue}break}break a}ia:{if((f|0)==7){t=d;wa=a;q=Fa-384|0;Fa=q;p=b;w=c;ja:{if(!p|!w){break ja}if((of(p<<2)|0)!=1){break ja}if((of(w<<2)|0)!=1){break ja}D[q+8>>2]=0;D[q>>2]=0;D[q+4>>2]=0;a=J(p,w);if(a){Ya(q,a,(a|0)==1,4);Y=D[q>>2];b=D[q+4>>2];Va(Y+(b<<2)|0,0,a-b<<2);D[q+4>>2]=a}u=q+344|0;ka:{while(1){j=0;o=J(p,U);i=o;if(!_a(t+(o<<4)|0,q+232|0,0,0)){break ka}la:{while(1){db(D[q+336>>2],D[q+340>>2],u,q+232|0,q+160|0);f=255;k=0;S=255;g=255;h=255;c=0;b=0;m=0;n=0;while(1){a=(q+160|0)+(k<<2)|0;d=E[a+3|0];c=d>>>0<(c&255)>>>0?c:d;e=E[a+2|0];b=e>>>0<(b&255)>>>0?b:e;l=E[a+1|0];m=l>>>0<(m&255)>>>0?m:l;a=E[a|0];n=a>>>0<(n&255)>>>0?n:a;f=d>>>0>(f&255)>>>0?f:d;S=e>>>0>(S&255)>>>0?S:e;g=l>>>0>(g&255)>>>0?g:l;h=a>>>0>(h&255)>>>0?h:a;k=k+1|0;if((k|0)!=16){continue}break}a=f&255;if((a|0)==255){a=E[(h&255)+218080|0]<<10|E[(g&255)+218080|0]<<5|E[(S&255)+218336|0]<<1|32768}else{a=E[(h&255)+218336|0]<<8|E[a+219104|0]<<12|E[(g&255)+218336|0]<<4|E[(S&255)+219360|0]<<1}d=(i<<2)+Y|0;c=c&255;ma:{if(c-239>>>0>16){a=a&65535|(E[(b&255)+218848|0]|(E[(n&255)+218848|0]<<8|E[c+219616|0]<<12|E[(m&255)+218848|0]<<4))<<16;break ma}a=a&65535|(E[(b&255)+218592|0]|(E[(m&255)+218592|0]<<5|E[(n&255)+218592|0]<<10))<<16|-2147483648}D[d>>2]=a;j=j+1|0;if((p|0)==(j|0)){break la}i=j+o|0;if(_a(t+(i<<4)|0,q+232|0,0,0)){continue}break}if(j>>>0

>>0){break ka}}U=U+1|0;if((w|0)!=(U|0)){continue}break}G=w-1|0;d=0;e=0;na:{_=p-1|0;if(!_){break na}e=1;a=_;while(1){if(a>>>0<2){break na}a=a>>>1|0;e=e+1|0;continue}}oa:{if(!G){break oa}d=1;a=G;while(1){if(a>>>0<2){break oa}a=a>>>1|0;d=d+1|0;continue}}if((w|0)>=1){la=d>>>0>e>>>0?e:d;W=la<<1;ta=-1<>2]=f;a=g+(q+160|0)|0;b=a;e=D[f+(_<<2)>>2];pa:{if(e&32768){m=(e>>>10&31)+414512|0;n=255;c=(e>>>1&15)+414544|0;h=(e>>>5&31)+414512|0;break pa}m=(e>>>8&15)+414544|0;n=E[(e>>>12&7)+414568|0];c=(e>>>1&7)+414560|0;h=(e>>>4&15)+414544|0}D[b>>2]=E[c|0]+(E[m|0]+(E[h|0]+n|0)|0);b=e>>>16|0;qa:{if((e|0)<=-1){c=(b&31)+414512|0;b=(e>>>21&31)+414512|0;m=(e>>>26&31)+414512|0;e=255;break qa}c=(b&15)+414544|0;b=(e>>>20&15)+414544|0;m=(e>>>24&15)+414544|0;e=E[(e>>>28|0)+414568|0]}h=g+(q+96|0)|0;D[h>>2]=E[c|0]+(E[m|0]+(e+E[b|0]|0)|0);b=a;e=D[f>>2];ra:{if(e&32768){m=(e>>>10&31)+414512|0;n=255;g=(e>>>1&15)+414544|0;c=(e>>>5&31)+414512|0;break ra}m=(e>>>8&15)+414544|0;n=E[(e>>>12&7)+414568|0];g=(e>>>1&7)+414560|0;c=(e>>>4&15)+414544|0}D[b+16>>2]=E[g|0]+(E[m|0]+(E[c|0]+n|0)|0);b=e>>>16|0;sa:{if((e|0)<=-1){c=(b&31)+414512|0;b=(e>>>21&31)+414512|0;m=(e>>>26&31)+414512|0;e=255;break sa}c=(b&15)+414544|0;b=(e>>>20&15)+414544|0;m=(e>>>24&15)+414544|0;e=E[(e>>>28|0)+414568|0]}D[h+16>>2]=E[c|0]+(E[m|0]+(e+E[b|0]|0)|0);b=D[f+rb>>2];ta:{if(b&32768){c=(b>>>5&31)+414512|0;m=255;e=(b>>>1&15)+414544|0;f=(b>>>10&31)+414512|0;break ta}c=(b>>>4&15)+414544|0;m=E[(b>>>12&7)+414568|0];e=(b>>>1&7)+414560|0;f=(b>>>8&15)+414544|0}D[a+32>>2]=E[e|0]+(E[f|0]+(E[c|0]+m|0)|0);a=b>>>16|0;ua:{if((b|0)<=-1){e=(a&31)+414512|0;f=(b>>>21&31)+414512|0;c=(b>>>26&31)+414512|0;a=255;break ua}e=(a&15)+414544|0;f=(b>>>20&15)+414544|0;c=(b>>>24&15)+414544|0;a=E[(b>>>28|0)+414568|0]}D[h+32>>2]=E[e|0]+(E[c|0]+(a+E[f|0]|0)|0);d=d+1|0;if((d|0)!=3){continue}break}S=0;a=D[q+120>>2];N=D[q+104>>2];i=D[q+184>>2];I=D[q+168>>2];c=D[q+116>>2];m=D[q+100>>2];g=D[q+112>>2];z=D[q+96>>2];b=D[q+180>>2];n=D[q+164>>2];h=D[q+176>>2];A=D[q+160>>2];va:{if((p|0)<=0){s=D[q+136>>2];y=D[q+200>>2];u=D[q+132>>2];o=D[q+196>>2];r=D[q+128>>2];P=D[q+192>>2];break va}sb=F[((x&255)<<1)+412720>>1]|F[(x>>>7&33554430)+412720>>1]<<16;tb=x>>>la<>2];kb=D[q+88>>2];lb=D[q+84>>2];l=h;d=b;f=g;e=c;k=i;j=a;while(1){if(_a(t+(U<<4)|0,q+232|0,0,0)){db(D[q+336>>2],D[q+340>>2],qb,q+232|0,q+16|0)}a=sb|F[(S>>>7&33554430)+412720>>1]<<17|F[((S&255)<<1)+412720>>1]<<1;b=a;wa:{if((p|0)==(w|0)){break wa}a=a&ta;b=a|S>>>la<>>0>w>>>0){break wa}b=a|tb}Aa=(b<<3)+wa|0;D[Aa+4>>2]=D[(U<<2)+Y>>2];S=S+1|0;c=(_&S)<<2;a=D[c+lb>>2];xa:{if(a&32768){b=(a>>>5&31)+414512|0;h=(a>>>10&31)+414512|0;i=255;P=(a>>>1&15)+414544|0;break xa}b=(a>>>4&15)+414544|0;h=(a>>>8&15)+414544|0;i=E[(a>>>12&7)+414568|0];P=(a>>>1&7)+414560|0}u=a>>>16|0;ya:{if((a|0)<=-1){g=(a>>>21&31)+414512|0;s=(a>>>26&31)+414512|0;y=255;M=(u&31)+414512|0;break ya}g=(a>>>20&15)+414544|0;s=(a>>>24&15)+414544|0;y=E[(a>>>28|0)+414568|0];M=(u&15)+414544|0}b=E[b|0];g=E[g|0];a=D[c+kb>>2];za:{if(a&32768){u=(a>>>5&31)+414512|0;o=(a>>>10&31)+414512|0;r=255;O=(a>>>1&15)+414544|0;break za}u=(a>>>4&15)+414544|0;o=(a>>>8&15)+414544|0;r=E[(a>>>12&7)+414568|0];O=(a>>>1&7)+414560|0}i=b+i|0;h=E[h|0];g=g+y|0;s=E[s|0];b=a>>>16|0;y=E[u|0]+r|0;R=E[o|0];Aa:{if((a|0)<=-1){u=(b&31)+414512|0;o=(a>>>21&31)+414512|0;r=(a>>>26&31)+414512|0;a=255;break Aa}u=(b&15)+414544|0;o=(a>>>20&15)+414544|0;r=(a>>>24&15)+414544|0;a=E[(a>>>28|0)+414568|0]}b=h+i|0;h=E[P|0];g=g+s|0;i=E[M|0];P=y+R|0;s=E[O|0];y=E[r|0]+(a+E[o|0]|0)|0;M=E[u|0];a=D[c+ub>>2];Ba:{if(a&32768){u=(a>>>5&31)+414512|0;o=(a>>>10&31)+414512|0;r=255;O=(a>>>1&15)+414544|0;break Ba}u=(a>>>4&15)+414544|0;o=(a>>>8&15)+414544|0;r=E[(a>>>12&7)+414568|0];O=(a>>>1&7)+414560|0}h=b+h|0;g=g+i|0;b=s+P|0;c=y+M|0;P=a>>>16|0;i=E[O|0]+(E[o|0]+(E[u|0]+r|0)|0)|0;Ca:{if((a|0)<=-1){s=(P&31)+414512|0;y=(a>>>21&31)+414512|0;$=255;ma=(a>>>26&31)+414512|0;break Ca}s=(P&15)+414544|0;y=(a>>>20&15)+414544|0;$=E[(a>>>28|0)+414568|0];ma=(a>>>24&15)+414544|0}a=J(d,6);M=a+J(l,6)|0;ga=M+(n+A<<1)|0;u=(E[q+23|0]+(E[q+22|0]+(E[q+21|0]+E[q+20|0]|0)|0)<<4)-ga<<4;r=J(e,6);O=r+J(f,6)|0;Ba=O+(m+z<<1)|0;Ca=(Ba|0)<(ga|0);u=Ca?0-u|0:u;V=d+n|0;P=l+A|0;ha=V+P<<2;o=(E[q+19|0]+(E[q+18|0]+(E[q+17|0]+E[q+16|0]|0)|0)<<4)-ha<<4;aa=e+m|0;R=f+z|0;Da=aa+R<<2;Ea=(Da|0)<(ha|0);o=Ea?0-o|0:o;ba=a+(J(n,6)+(P<<1)|0)|0;a=(E[q+35|0]+(E[q+34|0]+(E[q+33|0]+E[q+32|0]|0)|0)<<4)-ba<<4;Ia=r+(J(m,6)+(R<<1)|0)|0;Ja=(Ia|0)<(ba|0);r=Ja?0-a|0:a;R=J(d,9);oa=R+J(n,3)|0;Z=J(l,3);ia=oa+(Z+A|0)|0;a=(E[q+39|0]+(E[q+38|0]+(E[q+37|0]+E[q+36|0]|0)|0)<<4)-ia<<4;ca=J(e,9);na=ca+J(m,3)|0;da=J(f,3);Ka=na+(da+z|0)|0;La=(Ka|0)<(ia|0);P=La?0-a|0:a;ja=d+l<<3;a=(E[q+27|0]+(E[q+26|0]+(E[q+25|0]+E[q+24|0]|0)|0)<<4)-ja<<4;Ma=e+f<<3;Na=(Ma|0)<(ja|0);A=Na?0-a|0:a;ka=(M+(h<<1)|0)+(b<<1)|0;a=(E[q+31|0]+(E[q+30|0]+(E[q+29|0]+E[q+28|0]|0)|0)<<4)-ka<<4;Oa=(O+(g<<1)|0)+(c<<1)|0;ua=(Oa|0)<(ka|0);z=ua?0-a|0:a;a=J(d,12);ea=a+(l<<2)|0;M=(E[q+43|0]+(E[q+42|0]+(E[q+41|0]+E[q+40|0]|0)|0)<<4)-ea<<4;sa=0-M|0;O=M;M=J(e,12);va=M+(f<<2)|0;Pa=(va|0)<(ea|0);O=Pa?sa:O;ra=R+J(b,3)|0;fa=(ra+Z|0)+h|0;R=(E[q+47|0]+(E[q+46|0]+(E[q+45|0]+E[q+44|0]|0)|0)<<4)-fa<<4;Qa=ca+J(c,3)|0;Ra=(Qa+da|0)+g|0;Sa=(Ra|0)<(fa|0);R=Sa?0-R|0:R;ca=V<<3;Z=(E[q+51|0]+(E[q+50|0]+(E[q+49|0]+E[q+48|0]|0)|0)<<4)-ca<<4;Ua=aa<<3;Wa=(Ua|0)<(ca|0);Z=Wa?0-Z|0:Z;da=a+(n<<2)|0;n=(E[q+55|0]+(E[q+54|0]+(E[q+53|0]+E[q+52|0]|0)|0)<<4)-da<<4;Za=M+(m<<2)|0;$a=(Za|0)<(da|0);m=$a?0-n|0:n;pa=(J(V,6)+(I<<1)|0)+(k<<1)|0;n=(E[q+67|0]+(E[q+66|0]+(E[q+65|0]+E[q+64|0]|0)|0)<<4)-pa<<4;xa=(J(aa,6)+(N<<1)|0)+(j<<1)|0;ab=(xa|0)<(pa|0);n=ab?0-n|0:n;ya=J(k,3);aa=ya+(I+oa|0)|0;I=(E[q+71|0]+(E[q+70|0]+(E[q+69|0]+E[q+68|0]|0)|0)<<4)-aa<<4;bb=J(j,3);cb=bb+(N+na|0)|0;eb=(cb|0)<(aa|0);N=eb?0-I|0:I;I=E[q+59|0]+(E[q+58|0]+(E[q+57|0]+(E[q+56|0]-d|0)|0)|0)<<8;fb=e<<4;gb=d<<4;hb=(fb|0)<(gb|0);I=hb?0-I|0:I;oa=a+(b<<2)|0;V=(E[q+63|0]+(E[q+62|0]+(E[q+61|0]+E[q+60|0]|0)|0)<<4)-oa<<4;ib=M+(c<<2)|0;jb=(ib|0)<(oa|0);V=jb?0-V|0:V;na=a+(k<<2)|0;a=(E[q+75|0]+(E[q+74|0]+(E[q+73|0]+E[q+72|0]|0)|0)<<4)-na<<4;Cb=M+(j<<2)|0;Db=(Cb|0)<(na|0);M=Db?0-a|0:a;ra=(ra+ya|0)+i|0;a=(E[q+79|0]+(E[q+78|0]+(E[q+77|0]+E[q+76|0]|0)|0)<<4)-ra<<4;ya=0-a|0;sa=a;a=E[s|0]+(E[ma|0]+($+E[y|0]|0)|0)|0;$=a+(Qa+bb|0)|0;ma=($|0)<(ra|0);s=ma?ya:sa;y=Ba-ga|0;y=Ca?0-y|0:y;y=(u|0)>(J(y,13)|0)?12:(u|0)>y<<3?8:((u|0)>(J(y,3)|0))<<2;u=Da-ha|0;u=Ea?0-u|0:u;o=y|((o|0)>(J(u,13)|0)?3:(o|0)>u<<3?2:(o|0)>(J(u,3)|0));u=Ia-ba|0;u=Ja?0-u|0:u;o=o|((r|0)>(J(u,13)|0)?768:(r|0)>u<<3?512:((r|0)>(J(u,3)|0))<<8);u=Ka-ia|0;u=La?0-u|0:u;o=o|((P|0)>(J(u,13)|0)?3072:(P|0)>u<<3?2048:((P|0)>(J(u,3)|0))<<10);u=Ma-ja|0;u=Na?0-u|0:u;o=o|((A|0)>(J(u,13)|0)?48:(A|0)>u<<3?32:((A|0)>(J(u,3)|0))<<4);u=Oa-ka|0;u=ua?0-u|0:u;o=o|((z|0)>(J(u,13)|0)?192:(z|0)>u<<3?128:((z|0)>(J(u,3)|0))<<6);u=va-ea|0;u=Pa?0-u|0:u;o=o|((O|0)>(J(u,13)|0)?12288:(O|0)>u<<3?8192:((O|0)>(J(u,3)|0))<<12);u=Ra-fa|0;u=Sa?0-u|0:u;o=o|((R|0)>(J(u,13)|0)?49152:(R|0)>u<<3?32768:((R|0)>(J(u,3)|0))<<14);u=Ua-ca|0;u=Wa?0-u|0:u;o=o|((Z|0)>(J(u,13)|0)?196608:(Z|0)>u<<3?131072:((Z|0)>(J(u,3)|0))<<16);u=Za-da|0;u=$a?0-u|0:u;o=o|((m|0)>(J(u,13)|0)?786432:(m|0)>u<<3?524288:((m|0)>(J(u,3)|0))<<18);m=xa-pa|0;m=ab?0-m|0:m;o=o|((n|0)>(J(m,13)|0)?50331648:(n|0)>m<<3?33554432:((n|0)>(J(m,3)|0))<<24);m=cb-aa|0;m=eb?0-m|0:m;o=o|((N|0)>(J(m,13)|0)?201326592:(N|0)>m<<3?134217728:((N|0)>(J(m,3)|0))<<26);m=fb-gb|0;m=hb?0-m|0:m;o=o|((I|0)>(J(m,13)|0)?3145728:(I|0)>m<<3?2097152:((I|0)>(J(m,3)|0))<<20);m=ib-oa|0;m=jb?0-m|0:m;o=o|((V|0)>(J(m,13)|0)?12582912:(V|0)>m<<3?8388608:((V|0)>(J(m,3)|0))<<22);m=Cb-na|0;m=Db?0-m|0:m;o=o|((M|0)>(J(m,13)|0)?805306368:(M|0)>m<<3?536870912:((M|0)>(J(m,3)|0))<<28);m=$-ra|0;m=ma?0-m|0:m;D[Aa>>2]=o|((s|0)>(J(m,13)|0)?-1073741824:(s|0)>m<<3?-2147483648:((s|0)>(J(m,3)|0))<<30);U=U+1|0;N=j;I=k;m=e;z=f;n=d;A=l;P=h;l=h;o=b;d=o;r=g;f=r;u=c;e=u;y=i;k=i;s=a;j=a;if((p|0)!=(S|0)){continue}break}}D[q+128>>2]=r;D[q+192>>2]=P;D[q+196>>2]=o;D[q+132>>2]=u;D[q+200>>2]=y;D[q+136>>2]=s;D[q+176>>2]=h;D[q+160>>2]=A;D[q+180>>2]=b;D[q+164>>2]=n;D[q+112>>2]=g;D[q+96>>2]=z;D[q+116>>2]=c;D[q+100>>2]=m;D[q+184>>2]=i;D[q+168>>2]=I;D[q+120>>2]=a;D[q+104>>2]=N;x=x+1|0;if((w|0)!=(x|0)){continue}break}}Y=D[q>>2]}if(Y){Ta(Y)}}break ia}z=d;wa=a;g=0;e=0;q=Fa-384|0;Fa=q;A=c;Da:{if(!b|!A){break Da}s=b;if((of(s<<2)|0)!=1){break Da}if((of(A<<2)|0)!=1){break Da}D[q+8>>2]=0;D[q>>2]=0;D[q+4>>2]=0;a=J(s,A);if(a){Ya(q,a,(a|0)==1,4);g=D[q>>2];b=D[q+4>>2];Va(g+(b<<2)|0,0,a-b<<2);D[q+4>>2]=a}ra=q+344|0;Ea:{while(1){a=0;ta=J(e,s);d=ta;if(!_a(z+(d<<4)|0,q+232|0,0,0)){break Ea}Fa:{while(1){db(D[q+336>>2],D[q+340>>2],ra,q+232|0,q+160|0);b=E[q+162|0];c=E[q+166|0];h=b>>>0>c>>>0?b:c;f=E[q+170|0];i=f>>>0>>0?h:f;h=E[q+174|0];j=h>>>0>>0?i:h;i=E[q+178|0];k=i>>>0>>0?j:i;j=E[q+182|0];l=j>>>0>>0?k:j;k=E[q+186|0];m=k>>>0>>0?l:k;l=E[q+190|0];n=l>>>0<(m&255)>>>0?m:l;m=E[q+194|0];u=m>>>0<(n&255)>>>0?n:m;n=E[q+198|0];o=n>>>0<(u&255)>>>0?u:n;u=E[q+202|0];r=u>>>0<(o&255)>>>0?o:u;o=E[q+206|0];p=o>>>0<(r&255)>>>0?r:o;r=E[q+210|0];N=r>>>0<(p&255)>>>0?p:r;p=E[q+214|0];I=p>>>0<(N&255)>>>0?N:p;N=E[q+218|0];pa=N>>>0<(I&255)>>>0?I:N;I=E[q+161|0];P=E[q+165|0];w=I>>>0>P>>>0?I:P;y=E[q+169|0];_=w>>>0>y>>>0?w:y;w=E[q+173|0];t=w>>>0<_>>>0?_:w;_=E[q+177|0];G=t>>>0>_>>>0?t:_;t=E[q+181|0];S=G>>>0>t>>>0?G:t;G=E[q+185|0];U=G>>>0>>0?S:G;S=E[q+189|0];Y=S>>>0<(U&255)>>>0?U:S;U=E[q+193|0];x=U>>>0<(Y&255)>>>0?Y:U;Y=E[q+197|0];M=Y>>>0<(x&255)>>>0?x:Y;x=E[q+201|0];O=x>>>0<(M&255)>>>0?M:x;M=E[q+205|0];R=M>>>0<(O&255)>>>0?O:M;O=E[q+209|0];Z=O>>>0<(R&255)>>>0?R:O;R=E[q+213|0];V=R>>>0<(Z&255)>>>0?Z:R;Z=E[q+217|0];oa=Z>>>0<(V&255)>>>0?V:Z;V=E[q+160|0];la=E[q+164|0];$=V>>>0>la>>>0?V:la;W=E[q+168|0];ga=W>>>0<$>>>0?$:W;$=E[q+172|0];ha=$>>>0>>0?ga:$;ga=E[q+176|0];aa=ga>>>0>>0?ha:ga;ha=E[q+180|0];ba=aa>>>0>ha>>>0?aa:ha;aa=E[q+184|0];ia=aa>>>0>>0?ba:aa;ba=E[q+188|0];ja=ba>>>0<(ia&255)>>>0?ia:ba;ia=E[q+192|0];ka=ia>>>0<(ja&255)>>>0?ja:ia;ja=E[q+196|0];ea=ja>>>0<(ka&255)>>>0?ka:ja;ka=E[q+200|0];fa=ka>>>0<(ea&255)>>>0?ea:ka;ea=E[q+204|0];ca=ea>>>0<(fa&255)>>>0?fa:ea;fa=E[q+208|0];da=fa>>>0<(ca&255)>>>0?ca:fa;ca=E[q+212|0];na=ca>>>0<(da&255)>>>0?da:ca;da=E[q+216|0];na=da>>>0<(na&255)>>>0?na:da;ma=(d<<2)+g|0;d=V>>>0>>0?V:la;d=d>>>0>>0?d:W;d=d>>>0<$>>>0?d:$;d=d>>>0>>0?d:ga;d=d>>>0>>0?d:ha;d=d>>>0>>0?d:aa;d=ba>>>0>(d&255)>>>0?d:ba;d=ia>>>0>(d&255)>>>0?d:ia;d=ja>>>0>(d&255)>>>0?d:ja;d=ka>>>0>(d&255)>>>0?d:ka;d=ea>>>0>(d&255)>>>0?d:ea;d=fa>>>0>(d&255)>>>0?d:fa;d=ca>>>0>(d&255)>>>0?d:ca;V=da>>>0>(d&255)>>>0?d:da;d=E[q+220|0];I=I>>>0

>>0?I:P;I=y>>>0>I>>>0?I:y;I=w>>>0>I>>>0?I:w;I=I>>>0<_>>>0?I:_;I=I>>>0>>0?I:t;I=G>>>0>I>>>0?I:G;I=S>>>0>(I&255)>>>0?I:S;I=U>>>0>(I&255)>>>0?I:U;I=Y>>>0>(I&255)>>>0?I:Y;I=x>>>0>(I&255)>>>0?I:x;I=M>>>0>(I&255)>>>0?I:M;I=O>>>0>(I&255)>>>0?I:O;I=R>>>0>(I&255)>>>0?I:R;P=Z>>>0>(I&255)>>>0?I:Z;I=E[q+221|0];b=b>>>0>>0?b:c;b=b>>>0>>0?b:f;b=b>>>0>>0?b:h;b=b>>>0>>0?b:i;b=b>>>0>>0?b:j;b=b>>>0>>0?b:k;b=l>>>0>(b&255)>>>0?b:l;b=m>>>0>(b&255)>>>0?b:m;b=n>>>0>(b&255)>>>0?b:n;b=u>>>0>(b&255)>>>0?b:u;b=o>>>0>(b&255)>>>0?b:o;b=r>>>0>(b&255)>>>0?b:r;b=p>>>0>(b&255)>>>0?b:p;c=N>>>0>(b&255)>>>0?b:N;b=E[q+222|0];D[ma>>2]=E[((d>>>0>(V&255)>>>0?V:d)&255)+218080|0]<<10&31744|E[((I>>>0>(P&255)>>>0?P:I)&255)+218080|0]<<5|E[((b>>>0>(c&255)>>>0?c:b)&255)+218336|0]<<1|(E[((b>>>0<(pa&255)>>>0?pa:b)&255)+218592|0]|(E[((I>>>0<(oa&255)>>>0?oa:I)&255)+218592|0]<<5|E[((d>>>0<(na&255)>>>0?na:d)&255)+218592|0]<<10))<<16|-2147450880;a=a+1|0;if((s|0)==(a|0)){break Fa}d=a+ta|0;if(_a(z+(d<<4)|0,q+232|0,0,0)){continue}break}if(a>>>0>>0){break Ea}}e=e+1|0;if((A|0)!=(e|0)){continue}break}_=A-1|0;b=0;c=0;Ga:{y=s-1|0;if(!y){break Ga}c=1;a=y;while(1){if(a>>>0<2){break Ga}a=a>>>1|0;c=c+1|0;continue}}Ha:{if(!_){break Ha}b=1;a=_;while(1){if(a>>>0<2){break Ha}a=a>>>1|0;b=b+1|0;continue}}if((A|0)<1){break Ea}Z=D[q>>2];V=b>>>0>c>>>0?c:b;la=V<<1;na=-1<>2]=c;e=d+(q+96|0)|0;a=D[c+(y<<2)>>2];D[e>>2]=(J(((a>>>26&31)+(a>>>21&31)|0)+(a>>>16&31)|0,255)>>>0)/31;d=d+(q+160|0)|0;g=a&30;D[d>>2]=(J((g+(a>>>5&31)|0)+(a>>>10&31)+(g>>>4)|0,255)>>>0)/31;a=D[c>>2];D[e+16>>2]=(J(((a>>>26&31)+(a>>>21&31)|0)+(a>>>16&31)|0,255)>>>0)/31;g=a&30;D[d+16>>2]=(J((g+(a>>>5&31)|0)+(a>>>10&31)+(g>>>4)|0,255)>>>0)/31;a=D[c+ta>>2];D[e+32>>2]=(J(((a>>>26&31)+(a>>>21&31)|0)+(a>>>16&31)|0,255)>>>0)/31;c=a&30;D[d+32>>2]=(J((c+(a>>>5&31)|0)+(a>>>10&31)+(c>>>4)|0,255)>>>0)/31;b=b+1|0;if((b|0)!=3){continue}break}U=0;n=D[q+120>>2];e=D[q+104>>2];u=D[q+184>>2];f=D[q+168>>2];h=D[q+116>>2];b=D[q+100>>2];l=D[q+112>>2];c=D[q+96>>2];i=D[q+180>>2];a=D[q+164>>2];m=D[q+176>>2];d=D[q+160>>2];Ia:{if((s|0)<=0){t=D[q+136>>2];N=D[q+200>>2];I=D[q+132>>2];G=D[q+196>>2];w=D[q+128>>2];P=D[q+192>>2];break Ia}qb=F[((S&255)<<1)+412720>>1]|F[(S>>>7&33554430)+412720>>1]<<16;rb=S>>>V<>2];tb=D[q+88>>2];ub=D[q+84>>2];p=d;j=a;o=c;k=b;r=f;g=e;while(1){e=n;f=u;b=h;c=l;a=i;d=m;if(_a(z+(Y<<4)|0,q+232|0,0,0)){db(D[q+336>>2],D[q+340>>2],ra,q+232|0,q+16|0)}h=qb|F[(U>>>7&33554430)+412720>>1]<<17|F[((U&255)<<1)+412720>>1]<<1;i=h;Ja:{if((s|0)==(A|0)){break Ja}h=h&na;i=h|U>>>V<>>0>A>>>0){break Ja}i=h|rb}kb=(i<<3)+wa|0;D[kb+4>>2]=D[Z+(Y<<2)>>2];h=J(a,6);u=h+J(d,6)|0;W=u+(j+p<<1)|0;i=(E[q+22|0]+(E[q+21|0]+E[q+20|0]|0)<<4)-W<<4;m=0-i|0;l=i;i=J(b,6);w=i+J(c,6)|0;lb=w+(k+o<<1)|0;Aa=(lb|0)<(W|0);N=Aa?m:l;M=a+j|0;l=d+p|0;$=M+l<<2;m=(E[q+18|0]+(E[q+17|0]+E[q+16|0]|0)<<4)-$<<4;t=0-m|0;n=m;O=b+k|0;m=c+o|0;ma=O+m<<2;Ba=(ma|0)<($|0);I=Ba?t:n;ga=h+(J(j,6)+(l<<1)|0)|0;h=(E[q+34|0]+(E[q+33|0]+E[q+32|0]|0)<<4)-ga<<4;Ca=i+(J(k,6)+(m<<1)|0)|0;Da=(Ca|0)<(ga|0);P=Da?0-h|0:h;G=J(a,9);R=G+J(j,3)|0;x=J(d,3);ha=R+(x+p|0)|0;h=(E[q+38|0]+(E[q+37|0]+E[q+36|0]|0)<<4)-ha<<4;ea=J(b,9);pa=ea+J(k,3)|0;fa=J(c,3);Ea=pa+(fa+o|0)|0;Ia=(Ea|0)<(ha|0);o=Ia?0-h|0:h;aa=a+d<<3;h=(E[q+26|0]+(E[q+25|0]+E[q+24|0]|0)<<4)-aa<<4;Ja=b+c<<3;Ka=(Ja|0)<(aa|0);p=Ka?0-h|0:h;U=U+1|0;ba=(y&U)<<2;h=D[ba+ub>>2];i=h&30;n=D[ba+tb>>2];l=n&30;m=(J((i+(h>>>5&31)|0)+(h>>>10&31)+(i>>>4)|0,255)>>>0)/31|0;i=(J((l+(n>>>5&31)|0)+(n>>>10&31)+(l>>>4)|0,255)>>>0)/31|0;ia=(u+(m<<1)|0)+(i<<1)|0;l=(E[q+30|0]+(E[q+29|0]+E[q+28|0]|0)<<4)-ia<<4;u=0-l|0;t=l;l=(J(((h>>>26&31)+(h>>>21&31)|0)+(h>>>16&31)|0,255)>>>0)/31|0;h=(J(((n>>>26&31)+(n>>>21&31)|0)+(n>>>16&31)|0,255)>>>0)/31|0;La=(w+(l<<1)|0)+(h<<1)|0;Ma=(La|0)<(ia|0);w=Ma?u:t;n=J(a,12);ja=n+(d<<2)|0;u=(E[q+42|0]+(E[q+41|0]+E[q+40|0]|0)<<4)-ja<<4;sa=0-u|0;t=u;u=J(b,12);Na=u+(c<<2)|0;Oa=(Na|0)<(ja|0);t=Oa?sa:t;ua=G+J(i,3)|0;ka=ua+(m+x|0)|0;G=(E[q+46|0]+(E[q+45|0]+E[q+44|0]|0)<<4)-ka<<4;va=ea+J(h,3)|0;Pa=(va+fa|0)+l|0;Qa=(Pa|0)<(ka|0);G=Qa?0-G|0:G;ea=M<<3;x=(E[q+50|0]+(E[q+49|0]+E[q+48|0]|0)<<4)-ea<<4;Ra=O<<3;Sa=(Ra|0)<(ea|0);x=Sa?0-x|0:x;fa=n+(j<<2)|0;j=(E[q+54|0]+(E[q+53|0]+E[q+52|0]|0)<<4)-fa<<4;Ua=u+(k<<2)|0;Wa=(Ua|0)<(fa|0);j=Wa?0-j|0:j;ca=(J(M,6)+(r<<1)|0)+(f<<1)|0;k=(E[q+66|0]+(E[q+65|0]+E[q+64|0]|0)<<4)-ca<<4;Za=(J(O,6)+(g<<1)|0)+(e<<1)|0;$a=(Za|0)<(ca|0);k=$a?0-k|0:k;xa=J(f,3);da=xa+(r+R|0)|0;r=(E[q+70|0]+(E[q+69|0]+E[q+68|0]|0)<<4)-da<<4;ab=J(e,3);ya=ab+(g+pa|0)|0;bb=(ya|0)<(da|0);r=bb?0-r|0:r;g=E[q+58|0]+(E[q+57|0]+(E[q+56|0]-a|0)|0)<<8;cb=b<<4;eb=a<<4;fb=(cb|0)<(eb|0);M=fb?0-g|0:g;pa=n+(i<<2)|0;g=(E[q+62|0]+(E[q+61|0]+E[q+60|0]|0)<<4)-pa<<4;gb=u+(h<<2)|0;hb=(gb|0)<(pa|0);O=hb?0-g|0:g;oa=n+(f<<2)|0;g=(E[q+74|0]+(E[q+73|0]+E[q+72|0]|0)<<4)-oa<<4;ib=u+(e<<2)|0;jb=(ib|0)<(oa|0);R=jb?0-g|0:g;g=D[ba+sb>>2];n=g&30;u=(J((n+(g>>>5&31)|0)+(g>>>10&31)+(n>>>4)|0,255)>>>0)/31|0;ba=ua+(xa+u|0)|0;n=(E[q+78|0]+(E[q+77|0]+E[q+76|0]|0)<<4)-ba<<4;xa=0-n|0;sa=n;n=(J(((g>>>26&31)+(g>>>21&31)|0)+(g>>>16&31)|0,255)>>>0)/31|0;ua=n+(va+ab|0)|0;va=(ua|0)<(ba|0);g=va?xa:sa;W=lb-W|0;W=Aa?0-W|0:W;sa=(N|0)>(J(W,13)|0)?12:(N|0)>W<<3?8:((N|0)>(J(W,3)|0))<<2;N=ma-$|0;N=Ba?0-N|0:N;I=sa|((I|0)>(J(N,13)|0)?3:(I|0)>N<<3?2:(I|0)>(J(N,3)|0));N=Ca-ga|0;N=Da?0-N|0:N;I=I|((P|0)>(J(N,13)|0)?768:(P|0)>N<<3?512:((P|0)>(J(N,3)|0))<<8);N=Ea-ha|0;N=Ia?0-N|0:N;I=I|((o|0)>(J(N,13)|0)?3072:(o|0)>N<<3?2048:((o|0)>(J(N,3)|0))<<10);o=Ja-aa|0;o=Ka?0-o|0:o;p=I|((p|0)>(J(o,13)|0)?48:(p|0)>o<<3?32:((p|0)>(J(o,3)|0))<<4);o=La-ia|0;o=Ma?0-o|0:o;p=p|((w|0)>(J(o,13)|0)?192:(w|0)>o<<3?128:((w|0)>(J(o,3)|0))<<6);o=Na-ja|0;o=Oa?0-o|0:o;t=p|((t|0)>(J(o,13)|0)?12288:(t|0)>o<<3?8192:((t|0)>(J(o,3)|0))<<12);o=Pa-ka|0;o=Qa?0-o|0:o;t=t|((G|0)>(J(o,13)|0)?49152:(G|0)>o<<3?32768:((G|0)>(J(o,3)|0))<<14);o=Ra-ea|0;o=Sa?0-o|0:o;t=t|((x|0)>(J(o,13)|0)?196608:(x|0)>o<<3?131072:((x|0)>(J(o,3)|0))<<16);o=Ua-fa|0;o=Wa?0-o|0:o;o=t|((j|0)>(J(o,13)|0)?786432:(j|0)>o<<3?524288:((j|0)>(J(o,3)|0))<<18);j=Za-ca|0;j=$a?0-j|0:j;k=o|((k|0)>(J(j,13)|0)?50331648:(k|0)>j<<3?33554432:((k|0)>(J(j,3)|0))<<24);j=ya-da|0;j=bb?0-j|0:j;k=k|((r|0)>(J(j,13)|0)?201326592:(r|0)>j<<3?134217728:((r|0)>(J(j,3)|0))<<26);j=cb-eb|0;j=fb?0-j|0:j;k=k|((M|0)>(J(j,13)|0)?3145728:(M|0)>j<<3?2097152:((M|0)>(J(j,3)|0))<<20);j=gb-pa|0;j=hb?0-j|0:j;k=k|((O|0)>(J(j,13)|0)?12582912:(O|0)>j<<3?8388608:((O|0)>(J(j,3)|0))<<22);j=ib-oa|0;j=jb?0-j|0:j;k=k|((R|0)>(J(j,13)|0)?805306368:(R|0)>j<<3?536870912:((R|0)>(J(j,3)|0))<<28);j=ua-ba|0;j=va?0-j|0:j;D[kb>>2]=k|((g|0)>(J(j,13)|0)?-1073741824:(g|0)>j<<3?-2147483648:((g|0)>(J(j,3)|0))<<30);Y=Y+1|0;t=n;N=u;I=h;G=i;w=l;P=m;p=d;j=a;o=c;k=b;r=f;g=e;if((s|0)!=(U|0)){continue}break}}D[q+128>>2]=w;D[q+192>>2]=P;D[q+196>>2]=G;D[q+132>>2]=I;D[q+200>>2]=N;D[q+136>>2]=t;D[q+176>>2]=m;D[q+160>>2]=d;D[q+180>>2]=i;D[q+164>>2]=a;D[q+112>>2]=l;D[q+96>>2]=c;D[q+116>>2]=h;D[q+100>>2]=b;D[q+184>>2]=u;D[q+168>>2]=f;D[q+120>>2]=n;D[q+104>>2]=e;S=S+1|0;if((A|0)!=(S|0)){continue}break}}a=D[q>>2];if(a){Ta(a)}}}Fa=q+384|0;n=1}Fa=v+256|0;return n}function Wd(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;if(!D[112944]){n=Fa-112|0;Fa=n;if(!E[422448]){i=Fa-1040|0;Fa=i;while(1){a:{if(!(898768>>>e&1?1:1797559>>>e&1?1497965>>>e&1:0)){break a}a=J(e,12);f=D[a+23568>>2];j=(D[a+23572>>2]<<1|1)+(D[a+23576>>2]<<2)<>>e&1;c=299592>>>e&1;b:{if(!(b|c)){k=j>>>0>1?j:1;b=0;while(1){a=8;c=0;while(1){h=(a|0)<(f|0);d=h?0:a-f|0;c=b>>>(h?f-a|0:0)<0){continue}break}D[i+(b<<2)>>2]=c<<8|b;b=b+1|0;if((k|0)!=(b|0)){continue}break}break b}d=e<<3;a=d+23824|0;d=d+23828|0;m=-1<>>0>1?j:1;h=D[a>>2];l=D[d>>2];c=0;while(1){d=c&m;b=0;a=E[h|0];if((a|0)!=48){b=d>>>a-97<<1&2}a=E[h+1|0];if((a|0)!=48){b=d>>>a-97&1|b}a=b<<1;b=E[h+2|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+3|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+4|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+5|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+6|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+7|0];if((b|0)!=48){a=a|d>>>b-97&1}b=a<<1;a=E[h+8|0];if((a|0)!=48){b=d>>>a-97&1|b}d=d&1?511:0;D[i+(c<<2)>>2]=((d^J(l,c>>>f|0)+b)>>>2|d&128)<<8|c;c=c+1|0;if((k|0)!=(c|0)){continue}break}break b}if(!c){k=j>>>0>1?j:1;h=0;while(1){b=h&m;a=8;c=0;while(1){l=(a|0)<(f|0);d=l?0:a-f|0;c=b>>>(l?f-a|0:0)<0){continue}break}D[i+(h<<2)>>2]=c<<8|h;h=h+1|0;if((k|0)!=(h|0)){continue}break}break b}k=j>>>0>1?j:1;h=D[a>>2];l=D[d>>2];c=0;while(1){d=c&m;b=0;a=E[h|0];if((a|0)!=48){b=d>>>a-97<<1&2}a=E[h+1|0];if((a|0)!=48){b=d>>>a-97&1|b}a=b<<1;b=E[h+2|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+3|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+4|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+5|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+6|0];if((b|0)!=48){a=a|d>>>b-97&1}a=a<<1;b=E[h+7|0];if((b|0)!=48){a=a|d>>>b-97&1}b=a<<1;a=E[h+8|0];if((a|0)!=48){b=d>>>a-97&1|b}d=d&1?511:0;D[i+(c<<2)>>2]=((d^J(l,c>>>f|0)+b)>>>2|d&128)<<8|c;c=c+1|0;if((k|0)!=(c|0)){continue}break}}Zb(i,i+(j<<2)|0,i+1032|0);a=0;if((k|0)!=1){f=k&-2;while(1){b=(e<<9)+429696|0;d=D[i+(a<<2)>>2];c=b+((d&255)<<1)|0;B[c+1|0]=a;B[c|0]=d>>>8;c=a|1;h=D[i+(c<<2)>>2];d=b+((h&255)<<1)|0;B[d+1|0]=c;B[d|0]=h>>>8;a=a+2|0;f=f-2|0;if(f){continue}break}}if(!(k&1)){break a}b=D[i+(a<<2)>>2];d=e<<9|(b&255)<<1;B[d+429697|0]=a;B[d+429696|0]=b>>>8}e=e+1|0;if((e|0)!=21){continue}break}f=0;while(1){e=0;b=65535;while(1){k=J(e,86)+32|0;a=0;while(1){h=(k+J(a,42)>>>6|0)-f|0;j=J(h,h);h=j>>>0<(b&65535)>>>0;j=h?j:b;m=a|1;b=(k+J(m,42)>>>6|0)-f|0;l=J(b,b);b=(j&65535)>>>0>l>>>0;d=b?m:h?a:d;c=b?e:h?e:c;b=b?l:j;a=a+2|0;if((a|0)!=128){continue}break}e=e+1|0;if((e|0)!=128){continue}break}k=f<<3;B[k+440451|0]=d;B[k+440450|0]=c;C[k+440448>>1]=b;b=65535;e=0;while(1){h=J(e<<1|1,43)+32|0;a=0;while(1){j=(J(a<<1|1,21)+h>>>6|0)-f|0;l=J(j,j);m=l>>>0<(b&65535)>>>0;o=a|1;j=(J(o<<1|1,21)+h>>>6|0)-f|0;j=J(j,j);l=m?l:b;b=j>>>0<(l&65535)>>>0;d=b?o:m?a:d;c=b?e:m?e:c;b=b?j:l;a=a+2|0;if((a|0)!=128){continue}break}e=e+1|0;if((e|0)!=128){continue}break}B[k+440455|0]=d;B[k+440454|0]=c;C[k+440452>>1]=b;f=f+1|0;if((f|0)!=256){continue}break}e=0;while(1){b=0;f=65535;while(1){k=J(b<<1|b>>>6,43)+32|0;a=0;while(1){d=a>>>6|0;l=a|1;c=(k+J(d|l<<1,21)>>>6|0)-e|0;m=J(c,c);d=(k+J(d|a<<1,21)>>>6|0)-e|0;c=J(d,d);d=c>>>0<(f&65535)>>>0;f=d?c:f;c=m>>>0<(f&65535)>>>0;f=c?m:f;h=c?b:d?b:h;j=c?l:d?a:j;a=a+2|0;if((a|0)!=128){continue}break}b=b+1|0;if((b|0)!=128){continue}break}a=e<<2;B[a+442499|0]=j;B[a+442498|0]=h;C[a+442496>>1]=f;e=e+1|0;if((e|0)!=256){continue}break}Fa=i+1040|0;while(1){b=0;while(1){d=J(g,48)+J(b,6)|0;a=J((b<<5)+g|0,240);c=F[a+29802>>1];e=F[a+29806>>1];f=c>>>0>e>>>0;h=f;c=f?e:c;e=F[a+29810>>1];f=c>>>0>e>>>0;h=f?2:h;c=f?e:c;e=F[a+29814>>1];f=c>>>0>e>>>0;h=f?3:h;c=f?e:c;e=F[a+29818>>1];f=c>>>0>e>>>0;h=f?4:h;c=f?e:c;e=F[a+29822>>1];f=c>>>0>e>>>0;h=f?5:h;c=f?e:c;e=F[a+29826>>1];f=c>>>0>e>>>0;h=f?6:h;c=f?e:c;e=F[a+29830>>1];f=(c&65535)>>>0>e>>>0;h=f?7:h;c=f?e:c;e=F[a+29834>>1];f=(c&65535)>>>0>e>>>0;B[d+443525|0]=F[a+29838>>1]<((f?e:c)&65535)>>>0?9:f?8:h;c=F[a+29762>>1];e=F[a+29766>>1];f=c>>>0>e>>>0;h=f;c=f?e:c;e=F[a+29770>>1];f=c>>>0>e>>>0;h=f?2:h;c=f?e:c;e=F[a+29774>>1];f=c>>>0>e>>>0;h=f?3:h;c=f?e:c;e=F[a+29778>>1];f=c>>>0>e>>>0;h=f?4:h;c=f?e:c;e=F[a+29782>>1];f=c>>>0>e>>>0;h=f?5:h;c=f?e:c;e=F[a+29786>>1];f=c>>>0>e>>>0;h=f?6:h;c=f?e:c;e=F[a+29790>>1];f=(c&65535)>>>0>e>>>0;h=f?7:h;c=f?e:c;e=F[a+29794>>1];f=(c&65535)>>>0>e>>>0;B[d+443524|0]=F[a+29798>>1]<((f?e:c)&65535)>>>0?9:f?8:h;c=F[a+29722>>1];e=F[a+29726>>1];f=c>>>0>e>>>0;h=f;c=f?e:c;e=F[a+29730>>1];f=c>>>0>e>>>0;h=f?2:h;c=f?e:c;e=F[a+29734>>1];f=c>>>0>e>>>0;h=f?3:h;c=f?e:c;e=F[a+29738>>1];f=c>>>0>e>>>0;h=f?4:h;c=f?e:c;e=F[a+29742>>1];f=c>>>0>e>>>0;h=f?5:h;c=f?e:c;e=F[a+29746>>1];f=c>>>0>e>>>0;h=f?6:h;c=f?e:c;e=F[a+29750>>1];f=(c&65535)>>>0>e>>>0;h=f?7:h;c=f?e:c;e=F[a+29754>>1];f=(c&65535)>>>0>e>>>0;B[d+443523|0]=F[a+29758>>1]<((f?e:c)&65535)>>>0?9:f?8:h;c=F[a+29682>>1];e=F[a+29686>>1];f=c>>>0>e>>>0;h=f;c=f?e:c;e=F[a+29690>>1];f=c>>>0>e>>>0;h=f?2:h;c=f?e:c;e=F[a+29694>>1];f=c>>>0>e>>>0;h=f?3:h;c=f?e:c;e=F[a+29698>>1];f=c>>>0>e>>>0;h=f?4:h;c=f?e:c;e=F[a+29702>>1];f=c>>>0>e>>>0;h=f?5:h;c=f?e:c;e=F[a+29706>>1];f=c>>>0>e>>>0;h=f?6:h;c=f?e:c;e=F[a+29710>>1];f=(c&65535)>>>0>e>>>0;h=f?7:h;c=f?e:c;e=F[a+29714>>1];f=(c&65535)>>>0>e>>>0;B[d+443522|0]=F[a+29718>>1]<((f?e:c)&65535)>>>0?9:f?8:h;c=F[a+29642>>1];e=F[a+29646>>1];f=c>>>0>e>>>0;h=f;c=f?e:c;e=F[a+29650>>1];f=c>>>0>e>>>0;h=f?2:h;c=f?e:c;e=F[a+29654>>1];f=c>>>0>e>>>0;h=f?3:h;c=f?e:c;e=F[a+29658>>1];f=c>>>0>e>>>0;h=f?4:h;c=f?e:c;e=F[a+29662>>1];f=c>>>0>e>>>0;h=f?5:h;c=f?e:c;e=F[a+29666>>1];f=c>>>0>e>>>0;h=f?6:h;c=f?e:c;e=F[a+29670>>1];f=(c&65535)>>>0>e>>>0;h=f?7:h;c=f?e:c;e=F[a+29674>>1];f=(c&65535)>>>0>e>>>0;B[d+443521|0]=F[a+29678>>1]<((f?e:c)&65535)>>>0?9:f?8:h;h=d+443520|0;d=F[a+29602>>1];c=F[a+29606>>1];e=d>>>0>c>>>0;f=e;d=e?c:d;c=F[a+29610>>1];e=d>>>0>c>>>0;f=e?2:f;d=e?c:d;c=F[a+29614>>1];e=d>>>0>c>>>0;f=e?3:f;d=e?c:d;c=F[a+29618>>1];e=d>>>0>c>>>0;f=e?4:f;d=e?c:d;c=F[a+29622>>1];e=d>>>0>c>>>0;f=e?5:f;d=e?c:d;c=F[a+29626>>1];e=d>>>0>c>>>0;f=e?6:f;d=e?c:d;c=F[a+29630>>1];e=(d&65535)>>>0>c>>>0;f=e?7:f;d=e?c:d;c=F[a+29634>>1];e=(d&65535)>>>0>c>>>0;B[h|0]=F[a+29638>>1]<((e?c:d)&65535)>>>0?9:e?8:f;b=b+1|0;if((b|0)!=8){continue}break}g=g+1|0;if((g|0)!=32){continue}break}d=0;D[111275]=4;D[111270]=3;D[111271]=1;D[111265]=5;D[111266]=2;D[111326]=124;D[111327]=131;D[111324]=108;D[111325]=147;D[111322]=92;D[111323]=163;D[111320]=76;D[111321]=179;D[111318]=59;D[111319]=196;D[111316]=43;D[111317]=212;D[111314]=27;D[111315]=228;D[111312]=11;D[111313]=244;D[111310]=119;D[111311]=136;D[111308]=103;D[111309]=152;D[111306]=86;D[111307]=169;D[111304]=70;D[111305]=185;D[111302]=54;D[111303]=201;D[111300]=38;D[111301]=217;D[111298]=21;D[111299]=234;D[111296]=5;D[111297]=250;D[111294]=113;D[111295]=142;D[111292]=97;D[111293]=158;D[111290]=81;D[111291]=174;D[111288]=65;D[111289]=190;D[111286]=48;D[111287]=207;D[111284]=32;D[111285]=223;D[111282]=16;D[111283]=239;D[111280]=0;D[111281]=255;D[111267]=0;while(1){a=d<<1;g=a+445312|0;f=a+445313|0;b=2147483647;e=0;while(1){a=D[(e<<2)+445120>>2];i=J(a<<8|a,43)+32|0;a=0;while(1){c=D[(a<<2)+445120>>2];h=((i+J(c<<8|c,21)|0)/64>>8)-d|0;c=h>>31;c=c^c+h;if((c|0)<(b|0)){B[f|0]=a;B[g|0]=e;b=c}a=a+1|0;if((a|0)!=48){continue}break}e=e+1|0;if((e|0)!=48){continue}break}d=d+1|0;if((d|0)!=256){continue}break}d=0;while(1){b=2147483647;a=0;while(1){e=D[(a<<2)+445120>>2]-d|0;c=e>>31;c=c^c+e;if((c|0)<(b|0)){B[d+445824|0]=a;b=c}e=a|1;g=D[(e<<2)+445120>>2]-d|0;c=g>>31;c=c^c+g;if((c|0)<(b|0)){B[d+445824|0]=e;b=c}a=a+2|0;if((a|0)!=48){continue}break}d=d+1|0;if((d|0)!=256){continue}break}D[n+104>>2]=-556347706;D[n+108>>2]=-528409;D[n+96>>2]=-1667986300;D[n+100>>2]=-1112167003;D[n+88>>2]=1515342402;D[n+92>>2]=2071161699;D[n+80>>2]=403703808;D[n+84>>2]=959523105;e=0;while(1){a=e<<1;i=a+422465|0;h=a+422464|0;g=0;d=256;while(1){c=E[(n+80|0)+g|0];a=0;while(1){f=E[(n+80|0)+a|0];k=((c+(f<<1)>>>0)/3|0)-e|0;b=k>>31;j=f-c|0;f=j>>31;b=(((J(f^f+j,3)&65535)>>>0)/100|0)+(b^b+k)|0;if((b|0)<(d|0)){B[h|0]=a;B[i|0]=g;d=b}a=a+1|0;if((a|0)!=32){continue}break}g=g+1|0;if((g|0)!=32){continue}break}e=e+1|0;if((e|0)!=256){continue}break}b=0;while(1){a=b<<1;e=a+422977|0;g=a+422976|0;a=0;d=256;while(1){f=E[(n+80|0)+a|0]-b|0;c=f>>31;c=c^c+f;if((c|0)<(d|0)){B[g|0]=a;B[e|0]=0;d=c}f=a|1;i=E[f+(n+80|0)|0]-b|0;c=i>>31;c=c^c+i;if((c|0)<(d|0)){B[g|0]=f;B[e|0]=0;d=c}a=a+2|0;if((a|0)!=32){continue}break}b=b+1|0;if((b|0)!=256){continue}break}e=0;a=0;while(1){d=a>>>4|0;B[(n+16|0)+a|0]=d|a<<2;b=a|1;B[b+(n+16|0)|0]=d|b<<2;b=a|2;B[b+(n+16|0)|0]=d|b<<2;b=a|3;B[b+(n+16|0)|0]=d|b<<2;a=a+4|0;if((a|0)!=64){continue}break}while(1){a=e<<1;i=a+423489|0;h=a+423488|0;g=0;d=256;while(1){c=E[(n+16|0)+g|0];a=0;while(1){f=E[(n+16|0)+a|0];k=((c+(f<<1)>>>0)/3|0)-e|0;b=k>>31;j=f-c|0;f=j>>31;b=(((J(f^f+j,3)&65535)>>>0)/100|0)+(b^b+k)|0;if((b|0)<(d|0)){B[h|0]=a;B[i|0]=g;d=b}a=a+1|0;if((a|0)!=64){continue}break}g=g+1|0;if((g|0)!=64){continue}break}e=e+1|0;if((e|0)!=256){continue}break}b=0;while(1){a=b<<1;e=a+424001|0;g=a+424e3|0;a=0;d=256;while(1){f=E[(n+16|0)+a|0]-b|0;c=f>>31;c=c^c+f;if((c|0)<(d|0)){B[g|0]=a;B[e|0]=0;d=c}f=a|1;i=E[f+(n+16|0)|0]-b|0;c=i>>31;c=c^c+i;if((c|0)<(d|0)){B[g|0]=f;B[e|0]=0;d=c}a=a+2|0;if((a|0)!=64){continue}break}b=b+1|0;if((b|0)!=256){continue}break}d=0;D[106139]=4;D[106134]=3;D[106135]=1;D[106129]=5;D[106130]=2;D[106131]=0;while(1){a=d<<2;b=E[E[a+347120|0]+29572|0];B[n+12|0]=b;B[n+8|0]=E[b+21604|0];b=E[E[a+347121|0]+29572|0];B[n+13|0]=b;B[n+9|0]=E[b+21604|0];b=E[E[a+347122|0]+29572|0];B[n+14|0]=b;B[n+10|0]=E[b+21604|0];a=E[E[a+347123|0]+29572|0];B[n+15|0]=a;B[n+11|0]=E[a+21604|0];a=0;while(1){b=a>>>6&3;c=E[b+(n+8|0)|0];e=a>>>4&3;g=E[e+(n+8|0)|0];f=a&3;i=E[f+(n+8|0)|0];h=a>>>2&3;k=E[h+(n+8|0)|0];j=(d<<8)+a|0;B[j+424576|0]=E[f+(n+12|0)|0]|E[h+(n+12|0)|0]<<2|E[e+(n+12|0)|0]<<4|E[b+(n+12|0)|0]<<6;B[j+427136|0]=i|k<<2|g<<4|c<<6;a=a+1|0;if((a|0)!=256){continue}break}d=d+1|0;if((d|0)!=10){continue}break}d=0;while(1){a=d<<1;g=a+446081|0;f=a+446080|0;e=0;b=256;while(1){a=e<<1|e>>>3;i=J(a<<3|a>>2,5);a=0;while(1){h=((i+J(a<<3|a>>>2,3)|0)/8|0)-d|0;c=h>>31;c=c^c+h;if((c|0)<(b|0)){B[f|0]=e;B[g|0]=a;b=c}a=a+1|0;if((a|0)!=32){continue}break}e=e+1|0;if((e|0)!=16){continue}break}d=d+1|0;if((d|0)!=256){continue}break}d=0;while(1){a=d<<1;g=a+446593|0;f=a+446592|0;e=0;b=256;while(1){i=J(e<<3|e>>>2,5);a=0;while(1){h=((i+J(a<<3|a>>>2,3)|0)/8|0)-d|0;c=h>>31;c=c^c+h;if((c|0)<(b|0)){B[f|0]=e;B[g|0]=a;b=c}a=a+1|0;if((a|0)!=32){continue}break}e=e+1|0;if((e|0)!=32){continue}break}d=d+1|0;if((d|0)!=256){continue}break}d=0;while(1){a=d<<1;g=a+447105|0;f=a+447104|0;e=0;b=256;while(1){i=J(e<<3|e>>>2,5);a=0;while(1){h=((i+J(a<<2|a>>>4,3)|0)/8|0)-d|0;c=h>>31;c=c^c+h;if((c|0)<(b|0)){B[f|0]=e;B[g|0]=a;b=c}a=a+1|0;if((a|0)!=64){continue}break}e=e+1|0;if((e|0)!=32){continue}break}d=d+1|0;if((d|0)!=256){continue}break}d=0;while(1){a=d<<1;c=a+447616|0;C[c>>1]=0;e=a+447617|0;a=d;g=16-a|0;b=g>>31;b=b^b+g;if(b>>>0>>0){B[c|0]=0;B[e|0]=1;a=b}g=33-d|0;b=g>>31;b=b^b+g;if(b>>>0>>0){B[c|0]=0;B[e|0]=2;a=b}g=49-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=3;a=b}g=66-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=4;a=b}g=82-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=5;a=b}g=99-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=6;a=b}g=115-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=7;a=b}g=140-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=8;a=b}g=156-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=9;a=b}g=173-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=10;a=b}g=189-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=11;a=b}g=206-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=12;a=b}g=222-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=13;a=b}g=239-d|0;b=g>>31;b=b^b+g;if((b|0)<(a|0)){B[c|0]=0;B[e|0]=14;a=b}if((255-d|0)<(a|0)){B[c|0]=0;B[e|0]=15}d=d+1|0;if((d|0)!=256){continue}break}b=0;while(1){a=b<<1;e=a+448129|0;g=a+448128|0;a=0;d=256;while(1){f=a>>>2|0;i=(f|a<<3)-b|0;c=i>>31;c=c^c+i;if((c|0)<(d|0)){B[g|0]=0;B[e|0]=a;d=c}i=a|1;f=(f|i<<3)-b|0;c=f>>31;c=c^c+f;if((c|0)<(d|0)){B[g|0]=0;B[e|0]=i;d=c}a=a+2|0;if((a|0)!=32){continue}break}b=b+1|0;if((b|0)!=256){continue}break}b=0;while(1){a=b<<1;e=a+448641|0;g=a+448640|0;a=0;d=256;while(1){f=a>>>4|0;i=(f|a<<2)-b|0;c=i>>31;c=c^c+i;if((c|0)<(d|0)){B[g|0]=0;B[e|0]=a;d=c}i=a|1;f=(f|i<<2)-b|0;c=f>>31;c=c^c+f;if((c|0)<(d|0)){B[g|0]=0;B[e|0]=i;d=c}a=a+2|0;if((a|0)!=64){continue}break}b=b+1|0;if((b|0)!=256){continue}break}D[112299]=4;D[112294]=3;D[112295]=1;D[112289]=5;D[112290]=2;D[112291]=0;d=0;while(1){g=2147483647;e=0;c=0;a=0;while(1){b=J(a<<5|a<<1,5);o=d-(b+765>>>3|0)|0;l=o>>31;p=d-(b+663>>>3|0)|0;m=p>>31;q=d-(b+561>>>3|0)|0;j=q>>31;r=d-(b+459>>>3|0)|0;k=r>>31;s=d-(b+357>>>3|0)|0;h=s>>31;t=d-(b+255>>>3|0)|0;i=t>>31;u=d-(b+153>>>3|0)|0;f=u>>31;v=d-(b+51>>>3|0)|0;b=v>>31;v=b^b+v;b=(v|0)<(g|0);u=f^f+u;g=b?v:g;f=(u|0)<(g|0);t=i^i+t;g=f?u:g;i=(t|0)<(g|0);s=h^h+s;g=i?t:g;h=(s|0)<(g|0);r=k^k+r;g=h?s:g;k=(r|0)<(g|0);q=j^j+q;g=k?r:g;j=(q|0)<(g|0);p=m^m+p;g=j?q:g;m=(p|0)<(g|0);o=l^l+o;g=m?p:g;l=(o|0)<(g|0);g=l?o:g;c=l?7:m?6:j?5:k?4:h?3:i?2:f?1:b?0:c;e=m?a:l?a:k?a:j?a:i?a:h?a:b?a:f?a:e;a=a+1|0;if((a|0)!=8){continue}break}a=d<<1;B[a+449217|0]=c;B[a+449216|0]=e;d=d+1|0;if((d|0)!=256){continue}break}a=0;while(1){h=a-34|0;d=h>>31;k=a-68|0;b=k>>31;j=a-102|0;c=j>>31;m=a-136|0;e=m>>31;l=a-170|0;g=l>>31;o=a-204|0;f=o>>31;p=a-238|0;i=p>>31;q=a<<1;d=d^d+h;h=d>>>0>>0;r=h;b=b^b+k;d=h?d:a;h=(b|0)<(d|0);c=c^c+j;d=h?b:d;b=(c|0)<(d|0);h=b?3:h?2:r;e=e^e+m;d=b?c:d;b=(e|0)<(d|0);h=b?4:h;c=g^g+l;d=b?e:d;b=(c|0)<(d|0);h=b?5:h;e=f^f+o;d=b?c:d;b=(e|0)<(d|0);d=(i^i+p)<((b?e:d)|0)?7:b?6:h;B[q+449729|0]=d;B[q+449728|0]=d;a=a+1|0;if((a|0)!=256){continue}break}a=0;while(1){k=a-51|0;d=k>>31;j=a-17|0;b=j>>31;m=a-85|0;c=m>>31;l=a-119|0;e=l>>31;o=a-153|0;g=o>>31;p=a-187|0;f=p>>31;q=a-221|0;i=q>>31;r=a-255|0;h=r>>31;s=a<<1;d=d^d+k;b=b^b+j;k=d>>>0>>0;c=c^c+m;d=k?d:b;b=(c|0)<(d|0);j=b?2:k;e=e^e+l;d=b?c:d;b=(e|0)<(d|0);j=b?3:j;c=g^g+o;d=b?e:d;b=(c|0)<(d|0);g=b?4:j;e=f^f+p;d=b?c:d;b=(e|0)<(d|0);f=b?5:g;c=i^i+q;d=b?e:d;b=(c|0)<(d|0);d=(h^h+r)<((b?c:d)|0)?7:b?6:f;B[s+450241|0]=d;B[s+450240|0]=d;a=a+1|0;if((a|0)!=256){continue}break}d=0;while(1){g=2147483647;a=0;e=0;c=0;while(1){b=a<<2|a>>>1;b=J(b<<3|b>>>2,5);w=d-(b+765>>>3|0)|0;v=w>>31;x=d-(b+717>>>3|0)|0;u=x>>31;y=d-(b+666>>>3|0)|0;t=y>>31;z=d-(b+618>>>3|0)|0;s=z>>31;A=d-(b+567>>>3|0)|0;r=A>>31;H=d-(b+519>>>3|0)|0;q=H>>31;I=d-(b+468>>>3|0)|0;p=I>>31;K=d-(b+420>>>3|0)|0;o=K>>31;L=d-(b+345>>>3|0)|0;l=L>>31;M=d-(b+297>>>3|0)|0;m=M>>31;N=d-(b+246>>>3|0)|0;j=N>>31;O=d-(b+198>>>3|0)|0;k=O>>31;P=d-(b+147>>>3|0)|0;h=P>>31;Q=d-(b+99>>>3|0)|0;i=Q>>31;R=d-(b+48>>>3|0)|0;f=R>>31;S=d-(b>>>3|0)|0;b=S>>31;S=b^b+S;b=(S|0)<(g|0);R=f^f+R;g=b?S:g;f=(R|0)<(g|0);Q=i^i+Q;g=f?R:g;i=(Q|0)<(g|0);P=h^h+P;g=i?Q:g;h=(P|0)<(g|0);O=k^k+O;g=h?P:g;k=(O|0)<(g|0);N=j^j+N;g=k?O:g;j=(N|0)<(g|0);M=m^m+M;g=j?N:g;m=(M|0)<(g|0);L=l^l+L;g=m?M:g;l=(L|0)<(g|0);K=o^o+K;g=l?L:g;o=(K|0)<(g|0);I=p^p+I;g=o?K:g;p=(I|0)<(g|0);H=q^q+H;g=p?I:g;q=(H|0)<(g|0);A=r^r+A;g=q?H:g;r=(A|0)<(g|0);z=s^s+z;g=r?A:g;s=(z|0)<(g|0);y=t^t+y;g=s?z:g;t=(y|0)<(g|0);x=u^u+x;g=t?y:g;u=(x|0)<(g|0);w=v^v+w;g=u?x:g;v=(w|0)<(g|0);g=v?w:g;e=v?15:u?14:t?13:s?12:r?11:q?10:p?9:o?8:l?7:m?6:j?5:k?4:h?3:i?2:f?1:b?0:e;c=u?a:v?a:s?a:t?a:q?a:r?a:o?a:p?a:m?a:l?a:k?a:j?a:i?a:h?a:b?a:f?a:c;a=a+1|0;if((a|0)!=8){continue}break}a=d<<1;B[a+450753|0]=e;B[a+450752|0]=c;d=d+1|0;if((d|0)!=256){continue}break}d=0;while(1){g=2147483647;a=0;e=0;c=0;while(1){b=a<<1|a>>>3;b=J(b<<3|b>>>2,5);w=d-(b+765>>>3|0)|0;v=w>>31;x=d-(b+717>>>3|0)|0;u=x>>31;y=d-(b+666>>>3|0)|0;t=y>>31;z=d-(b+618>>>3|0)|0;s=z>>31;A=d-(b+567>>>3|0)|0;r=A>>31;H=d-(b+519>>>3|0)|0;q=H>>31;I=d-(b+468>>>3|0)|0;p=I>>31;K=d-(b+420>>>3|0)|0;o=K>>31;L=d-(b+345>>>3|0)|0;l=L>>31;M=d-(b+297>>>3|0)|0;m=M>>31;N=d-(b+246>>>3|0)|0;j=N>>31;O=d-(b+198>>>3|0)|0;k=O>>31;P=d-(b+147>>>3|0)|0;h=P>>31;Q=d-(b+99>>>3|0)|0;i=Q>>31;R=d-(b+48>>>3|0)|0;f=R>>31;S=d-(b>>>3|0)|0;b=S>>31;S=b^b+S;b=(S|0)<(g|0);R=f^f+R;g=b?S:g;f=(R|0)<(g|0);Q=i^i+Q;g=f?R:g;i=(Q|0)<(g|0);P=h^h+P;g=i?Q:g;h=(P|0)<(g|0);O=k^k+O;g=h?P:g;k=(O|0)<(g|0);N=j^j+N;g=k?O:g;j=(N|0)<(g|0);M=m^m+M;g=j?N:g;m=(M|0)<(g|0);L=l^l+L;g=m?M:g;l=(L|0)<(g|0);K=o^o+K;g=l?L:g;o=(K|0)<(g|0);I=p^p+I;g=o?K:g;p=(I|0)<(g|0);H=q^q+H;g=p?I:g;q=(H|0)<(g|0);A=r^r+A;g=q?H:g;r=(A|0)<(g|0);z=s^s+z;g=r?A:g;s=(z|0)<(g|0);y=t^t+y;g=s?z:g;t=(y|0)<(g|0);x=u^u+x;g=t?y:g;u=(x|0)<(g|0);w=v^v+w;g=u?x:g;v=(w|0)<(g|0);g=v?w:g;e=v?15:u?14:t?13:s?12:r?11:q?10:p?9:o?8:l?7:m?6:j?5:k?4:h?3:i?2:f?1:b?0:e;c=u?a:v?a:s?a:t?a:q?a:r?a:o?a:p?a:m?a:l?a:k?a:j?a:i?a:h?a:b?a:f?a:c;a=a+1|0;if((a|0)!=16){continue}break}a=d<<1;B[a+451265|0]=e;B[a+451264|0]=c;d=d+1|0;if((d|0)!=256){continue}break}B[422448]=1}Fa=n+112|0;b=Sa(12);D[b+8>>2]=0;D[b>>2]=0;D[b+4>>2]=0;a=D[b+4>>2];c=D[5400];if((a|0)!=(c|0)){c:{if(a>>>0>c>>>0){break c}if(c>>>0>G[b+8>>2]){Ya(b,c,(c|0)==(a+1|0),16);a=D[b+4>>2]}d=c-a|0;if(!d){break c}Va(D[b>>2]+(a<<4)|0,0,d<<4)}D[b+4>>2]=c}if(c){while(1){a=D[b>>2]+(T<<4)|0;d=D[(T<<2)+5216>>2];B[a+15|0]=d>>>30;B[a|0]=d&3;B[a+14|0]=d>>>28&3;B[a+13|0]=d>>>26&3;B[a+12|0]=d>>>24&3;B[a+11|0]=d>>>22&3;B[a+10|0]=d>>>20&3;B[a+9|0]=d>>>18&3;B[a+8|0]=d>>>16&3;B[a+7|0]=d>>>14&3;B[a+6|0]=d>>>12&3;B[a+5|0]=d>>>10&3;B[a+4|0]=d>>>8&3;d=d&255;B[a+3|0]=d>>>6;B[a+2|0]=d>>>4&3;B[a+1|0]=d>>>2&3;T=T+1|0;if((c|0)!=(T|0)){continue}break}}D[112944]=b}}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,C=0,F=0,G=0,H=0,I=0,K=0,L=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;f=Fa-16|0;Fa=f;d=E[b+4|0]|E[b+5|0]<<8|(E[b+6|0]<<16|E[b+7|0]<<24);g=E[b|0]|E[b+1|0]<<8|(E[b+2|0]<<16|E[b+3|0]<<24);B[a|0]=g;B[a+1|0]=g>>>8;B[a+2|0]=g>>>16;B[a+3|0]=g>>>24;B[a+4|0]=d;B[a+5|0]=d>>>8;B[a+6|0]=d>>>16;B[a+7|0]=d>>>24;d=E[b+12|0]|E[b+13|0]<<8|(E[b+14|0]<<16|E[b+15|0]<<24);b=E[b+8|0]|E[b+9|0]<<8|(E[b+10|0]<<16|E[b+11|0]<<24);B[a+8|0]=b;B[a+9|0]=b>>>8;B[a+10|0]=b>>>16;B[a+11|0]=b>>>24;B[a+12|0]=d;B[a+13|0]=d>>>8;B[a+14|0]=d>>>16;B[a+15|0]=d>>>24;if(E[c+8|0]){B[a+15|0]=E[a+14|0];b=E[a+12|0]|E[a+13|0]<<8;B[a+13|0]=b;B[a+14|0]=b>>>8;B[a+11|0]=E[a+10|0];b=E[a+8|0]|E[a+9|0]<<8;B[a+9|0]=b;B[a+10|0]=b>>>8;B[a+7|0]=E[a+6|0];b=E[a+4|0]|E[a+5|0]<<8;B[a+5|0]=b;B[a+6|0]=b>>>8;B[a+3|0]=E[a+2|0];b=E[a|0]|E[a+1|0]<<8;B[a+1|0]=b;B[a+2|0]=b>>>8}if(E[c+9|0]){b=E[a+12|0]|E[a+13|0]<<8|(E[a+14|0]<<16|E[a+15|0]<<24);d=E[a+8|0]|E[a+9|0]<<8|(E[a+10|0]<<16|E[a+11|0]<<24);B[a+12|0]=d;B[a+13|0]=d>>>8;B[a+14|0]=d>>>16;B[a+15|0]=d>>>24;d=E[a+4|0]|E[a+5|0]<<8|(E[a+6|0]<<16|E[a+7|0]<<24);B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;d=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);B[a+4|0]=d;B[a+5|0]=d>>>8;B[a+6|0]=d>>>16;B[a+7|0]=d>>>24;B[a|0]=b;B[a+1|0]=b>>>8;B[a+2|0]=b>>>16;B[a+3|0]=b>>>24}V=E[c+12|0];a:{if(E[c+6|0]){t=a+3|0;u=a+2|0;v=a+1|0;w=a+7|0;x=a+6|0;g=a+5|0;e=a+4|0;y=a+11|0;z=a+10|0;A=a+9|0;C=a+15|0;F=a+14|0;G=a+13|0;H=a+12|0;d=a;b=a+8|0;break a}t=a+15|0;u=a+14|0;v=a+13|0;d=a+12|0;w=a+11|0;x=a+10|0;g=a+9|0;e=a+8|0;y=a+7|0;z=a+6|0;A=a+5|0;C=a+3|0;F=a+2|0;G=a+1|0;H=a;b=a+4|0}b=E[b|0];e=E[e|0];g=E[g|0];d=E[d|0];I=E[C|0];l=I;K=E[y|0];o=K;L=E[w|0];m=L;M=E[t|0];j=M;N=E[F|0];n=N;O=E[z|0];p=O;P=E[x|0];q=P;Q=E[u|0];i=Q;R=E[G|0];r=R;S=E[A|0];k=S;T=E[v|0];s=T;U=E[H|0];h=U;t=0;u=0;v=0;w=0;x=0;y=0;z=0;A=0;C=0;F=0;G=0;H=0;b:{c:{d:{switch(V|0){case 2:l=M;o=Q;m=T;j=d;n=L;p=P;q=g;i=e;r=K;k=O;g=S;s=b;h=I;b=N;e=R;d=U;break c;case 1:l=d;o=e;m=b;j=U;n=T;p=g;q=S;i=R;r=Q;k=P;g=O;s=N;h=M;b=L;e=K;d=I;break c;case 3:break c;case 0:break d;default:break b}}l=U;o=R;m=N;j=I;n=b;p=S;q=O;i=K;r=e;k=g;g=P;s=L;h=d;b=T;e=Q;d=M}W=d;t=e;u=b;v=h;w=s;x=g;y=k;z=r;A=i;C=q;F=p;G=n;H=j;X=m;Y=o;Z=l}B[a+15|0]=W;B[a+14|0]=t;B[a+13|0]=u;B[a+12|0]=v;B[a+11|0]=w;B[a+10|0]=x;B[a+9|0]=y;B[a+8|0]=z;B[a+7|0]=A;B[a+6|0]=C;B[a+5|0]=F;B[a+4|0]=G;B[a+3|0]=H;B[a+2|0]=X;B[a+1|0]=Y;B[a|0]=Z;if(E[c+7|0]){d=0;B[f|0]=0;B[f+1|0]=0;B[f+2|0]=0;B[f+3|0]=0;B[f+4|0]=0;B[f+5|0]=0;B[f+6|0]=0;B[f+7|0]=0;B[f+8|0]=0;B[f+9|0]=0;B[f+10|0]=0;B[f+11|0]=0;B[f+12|0]=0;B[f+13|0]=0;B[f+14|0]=0;B[f+15|0]=0;while(1){e=0;h=d-1|0;k=h>>>0>3;if(!k){b=h<<2;g=E[b+a|0];b=E[(b|1)+a|0];e=b>>>0>>0?g:b}i=d<<2;m=i+a|0;b=E[m|0];b=b>>>0>>0?e:b;j=i|1;o=j+a|0;g=E[o|0];g=b>>>0>g>>>0?b:g;b=d+1|0;e=f+i|0;l=d>>>0>2;if(!l){d=b<<2;n=E[d+a|0];g=g>>>0>n>>>0?g:n;d=E[(d|1)+a|0];g=d>>>0>>0?g:d}B[e|0]=g;e=0;if(!k){d=h<<2;g=E[d+a|0];e=E[(d|1)+a|0];g=e>>>0>>0?g:e;d=E[(d|2)+a|0];e=d>>>0>>0?g:d}d=E[m|0];d=d>>>0>>0?e:d;g=E[o|0];d=d>>>0>g>>>0?d:g;m=i|2;g=m+a|0;e=E[g|0];d=d>>>0>e>>>0?d:e;j=f+j|0;if(!l){e=b<<2;n=E[e+a|0];d=d>>>0>n>>>0?d:n;n=E[(e|1)+a|0];d=d>>>0>n>>>0?d:n;e=E[(e|2)+a|0];d=d>>>0>e>>>0?d:e}B[j|0]=d;e=0;if(!k){d=h<<2;e=E[(d|1)+a|0];j=E[(d|2)+a|0];e=e>>>0>j>>>0?e:j;d=E[(d|3)+a|0];e=d>>>0>>0?e:d}d=E[o|0];d=d>>>0>>0?e:d;e=E[g|0];d=d>>>0>e>>>0?d:e;i=i|3;o=i+a|0;e=E[o|0];d=d>>>0>e>>>0?d:e;m=f+m|0;if(!l){e=b<<2;j=E[(e|1)+a|0];d=d>>>0>j>>>0?d:j;j=E[(e|2)+a|0];d=d>>>0>j>>>0?d:j;e=E[(e|3)+a|0];d=d>>>0>e>>>0?d:e}B[m|0]=d;d=0;if(!k){d=h<<2;e=E[(d|2)+a|0];d=E[(d|3)+a|0];d=d>>>0>>0?e:d}g=E[g|0];d=d>>>0>g>>>0?d:g;g=E[o|0];d=d>>>0>g>>>0?d:g;g=f+i|0;if(!l){e=b<<2;h=E[(e|2)+a|0];d=d>>>0>h>>>0?d:h;e=E[(e|3)+a|0];d=d>>>0>e>>>0?d:e}B[g|0]=d;d=b;if((b|0)!=4){continue}break}b=D[f+12>>2];d=D[f+8>>2];B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=D[f+4>>2];d=D[f>>2];B[a|0]=d;B[a+1|0]=d>>>8;B[a+2|0]=d>>>16;B[a+3|0]=d>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24}if(E[c+10|0]){d=0;B[f|0]=0;B[f+1|0]=0;B[f+2|0]=0;B[f+3|0]=0;B[f+4|0]=0;B[f+5|0]=0;B[f+6|0]=0;B[f+7|0]=0;B[f+8|0]=0;B[f+9|0]=0;B[f+10|0]=0;B[f+11|0]=0;B[f+12|0]=0;B[f+13|0]=0;B[f+14|0]=0;B[f+15|0]=0;while(1){e=99;h=d-1|0;k=h>>>0>3;if(!k){b=h<<2;g=E[b+a|0];g=g>>>0<99?g:99;b=E[(b|1)+a|0];e=b>>>0>g>>>0?g:b}i=d<<2;m=i+a|0;b=E[m|0];b=b>>>0>e>>>0?e:b;j=i|1;o=j+a|0;g=E[o|0];g=b>>>0>>0?b:g;b=d+1|0;e=f+i|0;l=d>>>0>2;if(!l){d=b<<2;n=E[d+a|0];g=g>>>0>>0?g:n;d=E[(d|1)+a|0];g=d>>>0>g>>>0?g:d}B[e|0]=g;e=99;if(!k){d=h<<2;g=E[d+a|0];g=g>>>0<99?g:99;e=E[(d|1)+a|0];g=e>>>0>g>>>0?g:e;d=E[(d|2)+a|0];e=d>>>0>g>>>0?g:d}d=E[m|0];d=d>>>0>e>>>0?e:d;g=E[o|0];d=d>>>0>>0?d:g;m=i|2;g=m+a|0;e=E[g|0];d=d>>>0>>0?d:e;j=f+j|0;if(!l){e=b<<2;n=E[e+a|0];d=d>>>0>>0?d:n;n=E[(e|1)+a|0];d=d>>>0>>0?d:n;e=E[(e|2)+a|0];d=d>>>0>>0?d:e}B[j|0]=d;e=99;if(!k){d=h<<2;e=E[(d|1)+a|0];e=e>>>0<99?e:99;j=E[(d|2)+a|0];e=e>>>0>>0?e:j;d=E[(d|3)+a|0];e=d>>>0>e>>>0?e:d}d=E[o|0];d=d>>>0>e>>>0?e:d;e=E[g|0];d=d>>>0>>0?d:e;i=i|3;o=i+a|0;e=E[o|0];d=d>>>0>>0?d:e;m=f+m|0;if(!l){e=b<<2;j=E[(e|1)+a|0];d=d>>>0>>0?d:j;j=E[(e|2)+a|0];d=d>>>0>>0?d:j;e=E[(e|3)+a|0];d=d>>>0>>0?d:e}B[m|0]=d;d=99;if(!k){d=h<<2;e=E[(d|2)+a|0];e=e>>>0<99?e:99;d=E[(d|3)+a|0];d=d>>>0>e>>>0?e:d}g=E[g|0];d=d>>>0>>0?d:g;g=E[o|0];d=d>>>0>>0?d:g;g=f+i|0;if(!l){e=b<<2;h=E[(e|2)+a|0];d=d>>>0>>0?d:h;e=E[(e|3)+a|0];d=d>>>0>>0?d:e}B[g|0]=d;d=b;if((b|0)!=4){continue}break}b=D[f+12>>2];d=D[f+8>>2];B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=D[f+4>>2];d=D[f>>2];B[a|0]=d;B[a+1|0]=d>>>8;B[a+2|0]=d>>>16;B[a+3|0]=d>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24}if(E[c+11|0]){i=0;B[f|0]=0;B[f+1|0]=0;B[f+2|0]=0;B[f+3|0]=0;B[f+4|0]=0;B[f+5|0]=0;B[f+6|0]=0;B[f+7|0]=0;B[f+8|0]=0;B[f+9|0]=0;B[f+10|0]=0;B[f+11|0]=0;B[f+12|0]=0;B[f+13|0]=0;B[f+14|0]=0;B[f+15|0]=0;while(1){b=i<<2;d=E[b+a|0];k=b|1;h=E[k+a|0];g=((i>>>0>1?i:1)<<2)+a|0;i=i+1|0;e=(i>>>0<3?i:3)<<2;l=((d<<3)-((h+(d+E[g-4|0]|0)|0)+E[e+a|0]|0)|0)/4<<16>>16;l=(l|0)<3?l:3;B[b+f|0]=(l|0)>0?l:0;j=f+k|0;l=d+E[g-3|0]|0;k=b|2;d=E[k+a|0];l=((h<<3)-(E[(e|1)+a|0]+(l+d|0)|0)|0)/4<<16>>16;l=(l|0)<3?l:3;B[j|0]=(l|0)>0?l:0;j=f+k|0;k=h+E[g-2|0]|0;h=b|3;b=E[h+a|0];k=((d<<3)-(E[(e|2)+a|0]+(k+b|0)|0)|0)/4<<16>>16;k=(k|0)<3?k:3;B[j|0]=(k|0)>0?k:0;b=((b<<3)-(E[(e|3)+a|0]+(b+(d+E[g-1|0]|0)|0)|0)|0)/4<<16>>16;b=(b|0)<3?b:3;B[f+h|0]=(b|0)>0?b:0;if((i|0)!=4){continue}break}b=D[f+12>>2];d=D[f+8>>2];B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=D[f+4>>2];d=D[f>>2];B[a|0]=d;B[a+1|0]=d>>>8;B[a+2|0]=d>>>16;B[a+3|0]=d>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24}if(E[c+1|0]){b=E[a+15|0];d=E[a+14|0];g=E[a+13|0];e=E[a+12|0];h=E[a+11|0];i=E[a+10|0];k=E[a+9|0];l=E[a+8|0];o=E[a+7|0];m=E[a+6|0];j=E[a+5|0];n=E[a+4|0];p=E[a+3|0];q=E[a|0];r=E[a+1|0];s=E[a+2|0];B[f+8|0]=0;B[f+9|0]=0;B[f+10|0]=0;B[f+11|0]=0;B[f+12|0]=0;B[f+13|0]=0;B[f+14|0]=0;B[f+15|0]=0;B[f|0]=0;B[f+1|0]=0;B[f+2|0]=0;B[f+3|0]=0;B[f+4|0]=0;B[f+5|0]=0;B[f+6|0]=0;B[f+7|0]=0;k=q|r<<2|s<<4|p<<6|n<<8|j<<10|m<<12|o<<14|l<<16|k<<18|i<<20|h<<22|e<<24|g<<26|d<<28|b<<30;g=0;while(1){d=g<<2;e=E[d+a|0];j=d+f|0;e:{f:{g:{h:{b=k?k:1;b=J(b&65535,36969)+(b>>>16|0)|0;h=b?b:1;h=J(h&65535,36969)+(h>>>16|0)|0;i=(J(h&65535^h>>>16,6)>>>16)+(J(b&65535^b>>>16,6)>>>16)|0;switch(i|0){case 10:break g;case 0:break h;default:break f}}b=e-2|0;break e}b=e+2|0;break e}b=e-1|0;if(i>>>0<=2){break e}b=e+(i>>>0>7)|0}b=(b|0)<3?b:3;B[j|0]=(b|0)>0?b:0;b=d|1;e=E[b+a|0];j=b+f|0;i:{j:{k:{l:{b=h?h:1;b=J(b&65535,36969)+(b>>>16|0)|0;h=b?b:1;h=J(h&65535,36969)+(h>>>16|0)|0;i=(J(h&65535^h>>>16,6)>>>16)+(J(b&65535^b>>>16,6)>>>16)|0;switch(i|0){case 0:break k;case 10:break l;default:break j}}b=e+2|0;break i}b=e-2|0;break i}b=e-1|0;if(i>>>0<=2){break i}b=e+(i>>>0>7)|0}b=(b|0)<3?b:3;B[j|0]=(b|0)>0?b:0;b=d|2;e=E[b+a|0];j=b+f|0;m:{n:{o:{p:{b=h?h:1;b=J(b&65535,36969)+(b>>>16|0)|0;h=b?b:1;h=J(h&65535,36969)+(h>>>16|0)|0;i=(J(h&65535^h>>>16,6)>>>16)+(J(b&65535^b>>>16,6)>>>16)|0;switch(i|0){case 0:break o;case 10:break p;default:break n}}b=e+2|0;break m}b=e-2|0;break m}b=e-1|0;if(i>>>0<=2){break m}b=e+(i>>>0>7)|0}b=(b|0)<3?b:3;B[j|0]=(b|0)>0?b:0;b=d|3;d=E[b+a|0];j=b+f|0;q:{r:{s:{t:{b=h?h:1;b=J(b&65535,36969)+(b>>>16|0)|0;e=b?b:1;k=J(e&65535,36969)+(e>>>16|0)|0;e=(J(k&65535^k>>>16,6)>>>16)+(J(b&65535^b>>>16,6)>>>16)|0;switch(e|0){case 0:break s;case 10:break t;default:break r}}b=d+2|0;break q}b=d-2|0;break q}b=d-1|0;if(e>>>0<=2){break q}b=d+(e>>>0>7)|0}b=(b|0)<3?b:3;B[j|0]=(b|0)>0?b:0;g=g+1|0;if((g|0)!=4){continue}break}b=D[f+12>>2];d=D[f+8>>2];B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=D[f+4>>2];d=D[f>>2];B[a|0]=d;B[a+1|0]=d>>>8;B[a+2|0]=d>>>16;B[a+3|0]=d>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24}if(E[c+3|0]){B[a+15|0]=E[E[a+15|0]+91061|0];B[a+14|0]=E[E[a+14|0]+91061|0];B[a+13|0]=E[E[a+13|0]+91061|0];B[a+12|0]=E[E[a+12|0]+91061|0];B[a+11|0]=E[E[a+11|0]+91061|0];B[a+10|0]=E[E[a+10|0]+91061|0];B[a+9|0]=E[E[a+9|0]+91061|0];B[a+8|0]=E[E[a+8|0]+91061|0];B[a+7|0]=E[E[a+7|0]+91061|0];B[a+6|0]=E[E[a+6|0]+91061|0];B[a+5|0]=E[E[a+5|0]+91061|0];B[a+4|0]=E[E[a+4|0]+91061|0];B[a+3|0]=E[E[a+3|0]+91061|0];B[a+2|0]=E[E[a+2|0]+91061|0];B[a+1|0]=E[E[a+1|0]+91061|0];B[a|0]=E[E[a|0]+91061|0]}if(E[c+4|0]){b=E[a|0]+1|0;b=b>>>0<3?b:3;B[f|0]=(b|0)>0?b:0;b=E[a+1|0]+1|0;b=b>>>0<3?b:3;B[f+1|0]=(b|0)>0?b:0;b=E[a+2|0]+1|0;b=b>>>0<3?b:3;B[f+2|0]=(b|0)>0?b:0;b=E[a+3|0]+1|0;b=b>>>0<3?b:3;B[f+3|0]=(b|0)>0?b:0;b=E[a+4|0]+1|0;b=b>>>0<3?b:3;B[f+4|0]=(b|0)>0?b:0;b=E[a+5|0]+1|0;b=b>>>0<3?b:3;B[f+5|0]=(b|0)>0?b:0;b=E[a+6|0]+1|0;b=b>>>0<3?b:3;B[f+6|0]=(b|0)>0?b:0;b=E[a+7|0]+1|0;b=b>>>0<3?b:3;B[f+7|0]=(b|0)>0?b:0;b=E[a+8|0]+1|0;b=b>>>0<3?b:3;B[f+8|0]=(b|0)>0?b:0;b=E[a+9|0]+1|0;b=b>>>0<3?b:3;B[f+9|0]=(b|0)>0?b:0;b=E[a+10|0]+1|0;b=b>>>0<3?b:3;B[f+10|0]=(b|0)>0?b:0;b=E[a+11|0]+1|0;b=b>>>0<3?b:3;B[f+11|0]=(b|0)>0?b:0;b=E[a+12|0]+1|0;b=b>>>0<3?b:3;B[f+12|0]=(b|0)>0?b:0;b=E[a+13|0]+1|0;b=b>>>0<3?b:3;B[f+13|0]=(b|0)>0?b:0;b=E[a+14|0]+1|0;b=b>>>0<3?b:3;B[f+14|0]=(b|0)>0?b:0;b=E[a+15|0]+1|0;b=b>>>0<3?b:3;B[f+15|0]=(b|0)>0?b:0;b=D[f+12>>2];d=D[f+8>>2];B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=D[f+4>>2];d=D[f>>2];B[a|0]=d;B[a+1|0]=d>>>8;B[a+2|0]=d>>>16;B[a+3|0]=d>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24}b=E[c|0];if(b){b=(b<<2)+91072|0;B[a+15|0]=E[b+E[a+15|0]|0];B[a+14|0]=E[b+E[a+14|0]|0];B[a+13|0]=E[b+E[a+13|0]|0];B[a+12|0]=E[b+E[a+12|0]|0];B[a+11|0]=E[b+E[a+11|0]|0];B[a+10|0]=E[b+E[a+10|0]|0];B[a+9|0]=E[b+E[a+9|0]|0];B[a+8|0]=E[b+E[a+8|0]|0];B[a+7|0]=E[b+E[a+7|0]|0];B[a+6|0]=E[b+E[a+6|0]|0];B[a+5|0]=E[b+E[a+5|0]|0];B[a+4|0]=E[b+E[a+4|0]|0];B[a+3|0]=E[b+E[a+3|0]|0];B[a+2|0]=E[b+E[a+2|0]|0];B[a+1|0]=E[b+E[a+1|0]|0];B[a|0]=E[b+E[a|0]|0]}if(E[c+5|0]){B[a+15|0]=3-E[a+15|0];B[a+14|0]=3-E[a+14|0];B[a+13|0]=3-E[a+13|0];B[a+12|0]=3-E[a+12|0];B[a+11|0]=3-E[a+11|0];B[a+10|0]=3-E[a+10|0];B[a+9|0]=3-E[a+9|0];B[a+8|0]=3-E[a+8|0];B[a+7|0]=3-E[a+7|0];B[a+6|0]=3-E[a+6|0];B[a+5|0]=3-E[a+5|0];B[a+4|0]=3-E[a+4|0];B[a+3|0]=3-E[a+3|0];B[a+2|0]=3-E[a+2|0];B[a+1|0]=3-E[a+1|0];B[a|0]=3-E[a|0]}if(E[c+2|0]){c=0;i=Fa-16|0;Fa=i;B[f|0]=0;B[f+1|0]=0;B[f+2|0]=0;B[f+3|0]=0;B[f+4|0]=0;B[f+5|0]=0;B[f+6|0]=0;B[f+7|0]=0;B[f+8|0]=0;B[f+9|0]=0;B[f+10|0]=0;B[f+11|0]=0;B[f+12|0]=0;B[f+13|0]=0;B[f+14|0]=0;B[f+15|0]=0;while(1){k=c<<2;e=c+1|0;l=e<<2;m=c-1|0;o=m<<2;g=0;while(1){b=g;h=0;u:{if(m>>>0>3){break u}g=0;d=b-1|0;if(d>>>0<=3){B[i|0]=E[a+(d+o|0)|0];g=1}d=a+(b+o|0)|0;B[g+i|0]=E[d|0];j=g+1|0;h=j;if(b>>>0>2){break u}B[i+j|0]=E[d+1|0];h=g|2}d=b-1|0;g=d>>>0>3;if(!g){B[h+i|0]=E[a+(d+k|0)|0];h=h+1|0}j=b>>>0>2;if(!j){B[h+i|0]=E[(a+(b+k|0)|0)+1|0];h=h+1|0}v:{if(c>>>0>=3){g=b+1|0;break v}if(!g){B[h+i|0]=E[a+(d+l|0)|0];h=h+1|0}B[h+i|0]=E[a+(b+l|0)|0];g=b+1|0;d=h+1|0;if(j){h=d;break v}B[d+i|0]=E[a+(g+l|0)|0];h=h+2|0}ac(i,h+i|0,i+8|0);B[(b+k|0)+f|0]=E[i+(h>>>1|0)|0];if((g|0)!=4){continue}break}c=e;if((e|0)!=4){continue}break}Fa=i+16|0;b=D[f+12>>2];c=D[f+8>>2];B[a+8|0]=c;B[a+9|0]=c>>>8;B[a+10|0]=c>>>16;B[a+11|0]=c>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=D[f+4>>2];c=D[f>>2];B[a|0]=c;B[a+1|0]=c>>>8;B[a+2|0]=c>>>16;B[a+3|0]=c>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24}Fa=f+16|0}function ef(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;m=Sa(1228);n=Fa-32|0;Fa=n;D[m>>2]=0;c=D[112944];i=m+4|0;b=i;D[b+188>>2]=0;D[b+192>>2]=0;D[b+144>>2]=0;D[b+148>>2]=0;D[b+88>>2]=0;D[b+92>>2]=0;D[b+152>>2]=0;D[b+196>>2]=0;D[b+200>>2]=0;D[b+204>>2]=0;D[b+208>>2]=0;D[b+212>>2]=0;D[b+96>>2]=0;D[b+100>>2]=0;D[b+104>>2]=0;D[b+108>>2]=0;D[b+112>>2]=0;D[b+116>>2]=0;D[b+120>>2]=0;D[b+216>>2]=c;Va(b+220|0,0,556);Va(b+780|0,0,420);Lb(b);D[n+8>>2]=a;c=m+1212|0;cd(c,n+8|0);B[m+1224|0]=0;if(D[112944]){b=D[a>>2];h=$(2452)|0;b=_(b|0,h|0)|0;X(h|0);r=+ga(b|0,421640,n+8|0);fa(D[n+8>>2]);X(b|0);b=la(4836)|0;h=$(2107)|0;s=_(b|0,h|0)|0;X(h|0);X(b|0);b=D[a>>2];h=$(2095)|0;b=_(b|0,h|0)|0;X(h|0);c=D[c>>2];aa(s|0);D[n+24>>2]=r<4294967296&r>=0?~~r>>>0:0;D[n+16>>2]=c;D[n+8>>2]=s;t=ka(b|0,3,414896,n+8|0)|0;X(b|0);a:{if(B[451788]&1){break a}if(!ob(451788)){break a}v=451784,w=ja(2,414936)|0,D[v>>2]=w;nb(451788)}b=D[112946];aa(D[a>>2]);D[n+8>>2]=D[a>>2];ma(b|0,t|0,1336,n+8|0);a=D[m+1212>>2];b=D[m+1216>>2];h=0;Lb(i);b:{c:{if(!a|b>>>0<81){break c}c=a;g=12;f=29576;d:{while(1){d=E[c|0];e=E[f|0];if((d|0)==(e|0)){f=f+1|0;c=c+1|0;g=g-1|0;if(g){continue}break d}break}h=d-e|0}if(h){break c}D[i+4>>2]=b;D[i>>2]=a;Xa(i+8|0,a,80);if(D[i+20>>2]|D[i+24>>2]!=1){break c}a=D[i+28>>2];if(!a){break c}c=D[i+32>>2];if(D[i+36>>2]|!c){break c}e:{switch(D[i+44>>2]-1|0){case 5:if((a|0)!=(c|0)){break c}break;case 0:break e;default:break c}}a=D[i+48>>2];if(a-1>>>0>15){break c}c=D[i+52>>2];if(c>>>0>2){break c}if((c|0)==1){c=D[i+80>>2];if(c>>>0<21){break c}h=D[i+72>>2];if(h>>>0<80|b>>>0>>0){break c}}b=D[i+92>>2];f=1;f:{if((b|0)==(a|0)){break f}if(!(a>>>0>>0|a>>>0<=G[i+96>>2])){g:{if((a|0)!=(b+1|0)){h=a;break g}h=a;c=a;f=pf(c);if(!Ga&(f|0)==1){break g}e=0-(c>>>0<1)|0;f=e|e>>>16;g=f;g=g|g>>>8;d=g;d=d|d>>>4;c=c-1|e;c=(e&65535)<<16|c>>>16|c;c=(f&255)<<24|c>>>8|c;c=(g&15)<<28|c>>>4|c;c=(d&3)<<30|c>>>2|c;h=(((d|d>>>2)&1)<<31|c>>>1|c)+1|0;f=0;if(a>>>0>h>>>0){break f}}g=bb(J(h,24));f=0;if(!g){break f}f=D[i+88>>2];k=J(b,24);h:{if(!k){break h}l=J(b,24)-24|0;d=((l>>>0)/24|0)+1&3;i:{if(!d){b=g;c=f;break i}b=g;c=f;while(1){e=E[c+4|0]|E[c+5|0]<<8|(E[c+6|0]<<16|E[c+7|0]<<24);j=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);B[b|0]=j;B[b+1|0]=j>>>8;B[b+2|0]=j>>>16;B[b+3|0]=j>>>24;B[b+4|0]=e;B[b+5|0]=e>>>8;B[b+6|0]=e>>>16;B[b+7|0]=e>>>24;e=E[c+12|0]|E[c+13|0]<<8|(E[c+14|0]<<16|E[c+15|0]<<24);j=E[c+8|0]|E[c+9|0]<<8|(E[c+10|0]<<16|E[c+11|0]<<24);B[b+8|0]=j;B[b+9|0]=j>>>8;B[b+10|0]=j>>>16;B[b+11|0]=j>>>24;B[b+12|0]=e;B[b+13|0]=e>>>8;B[b+14|0]=e>>>16;B[b+15|0]=e>>>24;e=E[c+20|0]|E[c+21|0]<<8|(E[c+22|0]<<16|E[c+23|0]<<24);j=E[c+16|0]|E[c+17|0]<<8|(E[c+18|0]<<16|E[c+19|0]<<24);B[b+16|0]=j;B[b+17|0]=j>>>8;B[b+18|0]=j>>>16;B[b+19|0]=j>>>24;B[b+20|0]=e;B[b+21|0]=e>>>8;B[b+22|0]=e>>>16;B[b+23|0]=e>>>24;b=b+24|0;c=c+24|0;d=d-1|0;if(d){continue}break}}if(l>>>0<72){break h}k=f+k|0;while(1){d=E[c+4|0]|E[c+5|0]<<8|(E[c+6|0]<<16|E[c+7|0]<<24);e=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);B[b|0]=e;B[b+1|0]=e>>>8;B[b+2|0]=e>>>16;B[b+3|0]=e>>>24;B[b+4|0]=d;B[b+5|0]=d>>>8;B[b+6|0]=d>>>16;B[b+7|0]=d>>>24;d=E[c+12|0]|E[c+13|0]<<8|(E[c+14|0]<<16|E[c+15|0]<<24);e=E[c+8|0]|E[c+9|0]<<8|(E[c+10|0]<<16|E[c+11|0]<<24);B[b+8|0]=e;B[b+9|0]=e>>>8;B[b+10|0]=e>>>16;B[b+11|0]=e>>>24;B[b+12|0]=d;B[b+13|0]=d>>>8;B[b+14|0]=d>>>16;B[b+15|0]=d>>>24;d=E[c+20|0]|E[c+21|0]<<8|(E[c+22|0]<<16|E[c+23|0]<<24);e=E[c+16|0]|E[c+17|0]<<8|(E[c+18|0]<<16|E[c+19|0]<<24);B[b+16|0]=e;B[b+17|0]=e>>>8;B[b+18|0]=e>>>16;B[b+19|0]=e>>>24;B[b+20|0]=d;B[b+21|0]=d>>>8;B[b+22|0]=d>>>16;B[b+23|0]=d>>>24;d=E[c+28|0]|E[c+29|0]<<8|(E[c+30|0]<<16|E[c+31|0]<<24);e=E[c+24|0]|E[c+25|0]<<8|(E[c+26|0]<<16|E[c+27|0]<<24);B[b+24|0]=e;B[b+25|0]=e>>>8;B[b+26|0]=e>>>16;B[b+27|0]=e>>>24;B[b+28|0]=d;B[b+29|0]=d>>>8;B[b+30|0]=d>>>16;B[b+31|0]=d>>>24;d=E[c+36|0]|E[c+37|0]<<8|(E[c+38|0]<<16|E[c+39|0]<<24);e=E[c+32|0]|E[c+33|0]<<8|(E[c+34|0]<<16|E[c+35|0]<<24);B[b+32|0]=e;B[b+33|0]=e>>>8;B[b+34|0]=e>>>16;B[b+35|0]=e>>>24;B[b+36|0]=d;B[b+37|0]=d>>>8;B[b+38|0]=d>>>16;B[b+39|0]=d>>>24;d=E[c+44|0]|E[c+45|0]<<8|(E[c+46|0]<<16|E[c+47|0]<<24);e=E[c+40|0]|E[c+41|0]<<8|(E[c+42|0]<<16|E[c+43|0]<<24);B[b+40|0]=e;B[b+41|0]=e>>>8;B[b+42|0]=e>>>16;B[b+43|0]=e>>>24;B[b+44|0]=d;B[b+45|0]=d>>>8;B[b+46|0]=d>>>16;B[b+47|0]=d>>>24;d=E[c+52|0]|E[c+53|0]<<8|(E[c+54|0]<<16|E[c+55|0]<<24);e=E[c+48|0]|E[c+49|0]<<8|(E[c+50|0]<<16|E[c+51|0]<<24);B[b+48|0]=e;B[b+49|0]=e>>>8;B[b+50|0]=e>>>16;B[b+51|0]=e>>>24;B[b+52|0]=d;B[b+53|0]=d>>>8;B[b+54|0]=d>>>16;B[b+55|0]=d>>>24;d=E[c+60|0]|E[c+61|0]<<8|(E[c+62|0]<<16|E[c+63|0]<<24);e=E[c+56|0]|E[c+57|0]<<8|(E[c+58|0]<<16|E[c+59|0]<<24);B[b+56|0]=e;B[b+57|0]=e>>>8;B[b+58|0]=e>>>16;B[b+59|0]=e>>>24;B[b+60|0]=d;B[b+61|0]=d>>>8;B[b+62|0]=d>>>16;B[b+63|0]=d>>>24;d=c- -64|0;j=E[d+4|0]|E[d+5|0]<<8|(E[d+6|0]<<16|E[d+7|0]<<24);e=b- -64|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);B[e|0]=d;B[e+1|0]=d>>>8;B[e+2|0]=d>>>16;B[e+3|0]=d>>>24;B[e+4|0]=j;B[e+5|0]=j>>>8;B[e+6|0]=j>>>16;B[e+7|0]=j>>>24;d=E[c+76|0]|E[c+77|0]<<8|(E[c+78|0]<<16|E[c+79|0]<<24);e=E[c+72|0]|E[c+73|0]<<8|(E[c+74|0]<<16|E[c+75|0]<<24);B[b+72|0]=e;B[b+73|0]=e>>>8;B[b+74|0]=e>>>16;B[b+75|0]=e>>>24;B[b+76|0]=d;B[b+77|0]=d>>>8;B[b+78|0]=d>>>16;B[b+79|0]=d>>>24;d=E[c+84|0]|E[c+85|0]<<8|(E[c+86|0]<<16|E[c+87|0]<<24);e=E[c+80|0]|E[c+81|0]<<8|(E[c+82|0]<<16|E[c+83|0]<<24);B[b+80|0]=e;B[b+81|0]=e>>>8;B[b+82|0]=e>>>16;B[b+83|0]=e>>>24;B[b+84|0]=d;B[b+85|0]=d>>>8;B[b+86|0]=d>>>16;B[b+87|0]=d>>>24;d=E[c+92|0]|E[c+93|0]<<8|(E[c+94|0]<<16|E[c+95|0]<<24);e=E[c+88|0]|E[c+89|0]<<8|(E[c+90|0]<<16|E[c+91|0]<<24);B[b+88|0]=e;B[b+89|0]=e>>>8;B[b+90|0]=e>>>16;B[b+91|0]=e>>>24;B[b+92|0]=d;B[b+93|0]=d>>>8;B[b+94|0]=d>>>16;B[b+95|0]=d>>>24;b=b+96|0;c=c+96|0;if((k|0)!=(c|0)){continue}break}}if(f){Ta(f)}D[i+96>>2]=h;D[i+88>>2]=g}D[i+92>>2]=a;f=1}if(!f){break c}a=D[i+48>>2];a=a?J(a,24):24;if(G[i+4>>2]>>0){break c}Xa(D[i+88>>2],D[i>>2]+80|0,a);b=D[i+4>>2];c=D[i+92>>2];if(c){h=D[i+88>>2];f=0;g=D[i+52>>2];d=(g|0)!=1;while(1){a=h+J(f,24)|0;e=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);if(e>>>0<80|b>>>0>>0){break c}a=E[a+16|0]|E[a+17|0]<<8|(E[a+18|0]<<16|E[a+19|0]<<24);if((a|0)<0){break c}j:{if(!d){if(!a){break j}break c}if(!g){break j}if(!a){break c}}f=f+1|0;if((c|0)!=(f|0)){continue}break}}a=D[i+60>>2];c=a-44|0;if((c|0)!=16?c:0){break c}c=D[i+56>>2];if(c>>>0<80|b>>>0>>0){break c}e=D[i>>2];b=D[i+104>>2];f=1;k:{if((a|0)==(b|0)){break k}if(a>>>0>=b>>>0){if(a>>>0>G[i+108>>2]){l:{if((a|0)!=(b+1|0)){b=a;break l}b=a;h=b;f=pf(b);if(!Ga&(f|0)==1){break l}j=0-(h>>>0<1)|0;b=j;f=b|b>>>16;g=f;g=g|g>>>8;d=g;d=d|d>>>4;k=(b&65535)<<16;b=h-1|b;b=k|b>>>16|b;b=(f&255)<<24|b>>>8|b;b=(g&15)<<28|b>>>4|b;b=(d&3)<<30|b>>>2|b;b=(((d|d>>>2)&1)<<31|b>>>1|b)+1|0;f=0;if(a>>>0>b>>>0){break k}}h=yb(D[i+100>>2],b);f=0;if(!h){break k}D[i+108>>2]=b;D[i+100>>2]=h;b=D[i+104>>2]}Va(D[i+100>>2]+b|0,0,a-b|0)}D[i+104>>2]=a;f=1}if(!f){break c}a=c+e|0;Xa(D[i+100>>2],a,D[i+60>>2]);b=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);if((b|0)!=D[i+60>>2]|((b|0)!=(D[i- -64>>2]-D[i+56>>2]|0)?D[i+68>>2]:0)){break c}c=E[a+31|0];g=E[a+13|0];h=E[a+14|0];f=E[a+12|0];D[i+172>>2]=E[a+15|0];D[i+168>>2]=h;D[i+164>>2]=g;D[i+160>>2]=f;if(h-1>>>0>1){break c}m:{n:{switch(f-163|0){case 0:D[i+156>>2]=0;h=(b|0)==60;B[i+1204|0]=h;D[i+180>>2]=c&15;D[i+176>>2]=h?2:1;if((b|0)!=60){break m}D[i+184>>2]=E[a+47|0]&15;break m;case 3:break n;default:break c}}D[i+176>>2]=1;D[i+156>>2]=1;a=c&15;D[i+180>>2]=a;B[i+1204|0]=(a|0)==3|(a|0)==5}k=D[i- -64>>2];f=D[i+68>>2];a=!k;o:{if(!f){break o}p:{if(k>>>0<80|G[i+4>>2]>>0){break p}l=D[i>>2];c=Fa-304|0;Fa=c;q:{r:{s:{t:{g=i+112|0;a=D[g+8>>2];u:{if(a>>>0<8){b=bb(192);if(!b){break t}h=D[g>>2];a=D[g+4>>2];if(a){d=J(a,24)+h|0;a=b;while(1){a=wb(a,h);e=D[h+12>>2];if(e){Ta(e)}e=D[h>>2];if(e){Ta(e)}a=a+24|0;h=h+24|0;if((d|0)!=(h|0)){continue}break}h=D[g>>2]}if(h){Ta(h)}D[g+8>>2]=8;D[g>>2]=b;break u}if(a>>>0<=8){break u}D[c+40>>2]=0;D[c+32>>2]=0;D[c+36>>2]=0;a=D[g+4>>2];a=a>>>0<8?8:a;if(a){b=J(a,24);h=bb(b);if(!h){break s}D[c+40>>2]=a;D[c+32>>2]=h}j=Fa-272|0;Fa=j;e=c+32|0;if((g|0)!=(e|0)){u=e;v:{w:{x:{h=D[g+4>>2];b=h>>>0>G[e+8>>2];y:{if(!b){b=D[e+4>>2];if(b){z:{if(b){a=D[e>>2];b=a+J(b,24)|0;while(1){h=D[a+12>>2];if(h){Ta(h)}h=D[a>>2];if(h){Ta(h)}a=a+24|0;if((b|0)!=(a|0)){continue}break}break z}a=0-b|0;if(!a){break z}a=J(a,24);Va(D[e>>2]+J(b,24)|0,0,a-((a-24>>>0)%24|0)|0)}D[e+4>>2]=0}a=D[e>>2];break y}d=D[e>>2];if(d){a=D[e+4>>2];if(a){a=J(a,24)+d|0;while(1){b=D[d+12>>2];if(b){Ta(b)}b=D[d>>2];if(b){Ta(b)}d=d+24|0;if((a|0)!=(d|0)){continue}break}d=D[e>>2]}Ta(d);d=0;D[e+8>>2]=0;D[e>>2]=0;D[e+4>>2]=0;h=D[g+4>>2];b=(h|0)!=0}a=0;if(!b){break y}b=J(h,24);a=bb(b);if(!a){break x}b=D[e+4>>2];if(b){o=J(b,24);d=0;b=a;while(1){b=wb(b,d);p=D[d+12>>2];if(p){Ta(p)}p=D[d>>2];if(p){Ta(p)}b=b+24|0;d=d+24|0;if((o|0)!=(d|0)){continue}break}d=D[e>>2]}if(d){Ta(d)}D[e+8>>2]=h;D[e>>2]=a}b=D[g+4>>2];d=0;if(!b){break v}d=D[g>>2];while(1){wb(a,d);d=d+24|0;a=a+24|0;b=b-1|0;if(b){continue}break}break w}D[j>>2]=b;jb(j+16|0,1776,j);Db(j+16|0,D[105120]);ia();T()}d=D[g+4>>2]}D[u+4>>2]=d}Fa=j+272|0;h=D[g>>2];D[g>>2]=D[c+32>>2];D[c+32>>2]=h;a=D[g+4>>2];D[g+4>>2]=D[c+36>>2];D[c+36>>2]=a;b=D[g+8>>2];D[g+8>>2]=D[c+40>>2];D[c+40>>2]=b;if(!h){break u}if(a){a=J(a,24)+h|0;while(1){b=D[h+12>>2];if(b){Ta(b)}b=D[h>>2];if(b){Ta(b)}h=h+24|0;if((a|0)!=(h|0)){continue}break}h=D[c+32>>2]}Ta(h)}Fa=c+304|0;break q}D[c>>2]=192;jb(c+48|0,1776,c);break r}D[c+16>>2]=b;jb(c+48|0,1776,c+16|0)}Db(c+48|0,D[105120]);ia();T()}d=k+l|0;while(1){a=1;if(f>>>0<5){break o}a=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);if(a>>>0<2){break p}j=f-4|0;if(j>>>0>>0){break p}h=D[i+116>>2];b=D[i+116>>2]+1|0;g=1;A:{if((h|0)==(b|0)){break A}B:{if(b>>>0>>0){c=D[i+112>>2];h=c+J(h,24)|0;g=c+J(b,24)|0;while(1){c=D[g+12>>2];if(c){Ta(c)}c=D[g>>2];if(c){Ta(c)}g=g+24|0;if((h|0)!=(g|0)){continue}break}break B}if(b>>>0>G[i+120>>2]){C:{if((b|0)!=(h+1|0)){f=b;break C}f=b;c=b;g=pf(b);if(!Ga&(g|0)==1){break C}l=0-(c>>>0<1)|0;f=l;g=f;g=g|g>>>16;e=g;e=e|e>>>8;k=e|e>>>4;c=c-1|f;c=(f&65535)<<16|c>>>16|c;c=(g&255)<<24|c>>>8|c;c=(e&15)<<28|c>>>4|c;c=(k&3)<<30|c>>>2|c;f=(((k|k>>>2)&1)<<31|c>>>1|c)+1|0;g=0;if(b>>>0>f>>>0){break A}}c=bb(J(f,24));g=0;if(!c){break A}g=D[i+112>>2];if(h){e=J(h,24)+g|0;h=c;while(1){h=wb(h,g);k=D[g+12>>2];if(k){Ta(k)}k=D[g>>2];if(k){Ta(k)}h=h+24|0;g=g+24|0;if((e|0)!=(g|0)){continue}break}g=D[i+112>>2]}if(g){Ta(g)}D[i+120>>2]=f;D[i+112>>2]=c;h=D[i+116>>2]}c=b-h|0;if(!c){break B}c=J(c,24);Va(D[i+112>>2]+J(h,24)|0,0,c-((c-24>>>0)%24|0)|0)}D[i+116>>2]=b;g=1}if(!g){break p}c=d+4|0;e=D[i+112>>2]+J(D[i+116>>2]-1|0,24)|0;g=e;while(1){b=c;h=a;if(!a){break p}D:{E:{a=D[e+4>>2];f=D[g+8>>2];if(a>>>0>=f>>>0){c=a+1|0;if(f>>>0>>0){break E}}f=D[e>>2];break D}a=c;f=pf(c);if(!(!Ga&(f|0)==1)){o=0-(a>>>0<1)|0;f=o;d=f;d=d|d>>>16;k=d|d>>>8;l=k|k>>>4;a=a-1|f;a=(f&65535)<<16|a>>>16|a;a=(d&255)<<24|a>>>8|a;a=(k&15)<<28|a>>>4|a;a=(l&3)<<30|a>>>2|a;a=(((l|l>>>2)&1)<<31|a>>>1|a)+1|0;if(c>>>0>a>>>0){break p}}f=yb(D[e>>2],a);if(!f){break p}D[e>>2]=f;D[g+8>>2]=a;a=D[e+4>>2]}c=b+1|0;B[a+f|0]=E[b|0];f=D[e+4>>2];D[e+4>>2]=f+1;a=h-1|0;j=j-1|0;if(E[f+D[e>>2]|0]){continue}break}d=D[e+16>>2];if((d|0)!=(a|0)){if(a>>>0>=d>>>0){F:{if(G[e+20>>2]>=a>>>0){g=D[e+12>>2];break F}f=a;G:{if((d+1|0)!=(a|0)){break G}g=a;d=pf(a);if(!Ga&(d|0)==1){break G}o=0-(g>>>0<1)|0;g=o;d=g;d=d|d>>>16;k=d|d>>>8;l=k|k>>>4;f=f-1|g;f=(g&65535)<<16|f>>>16|f;f=(d&255)<<24|f>>>8|f;f=(k&15)<<28|f>>>4|f;f=(l&3)<<30|f>>>2|f;f=(((l|l>>>2)&1)<<31|f>>>1|f)+1|0;if(f>>>0>>0){break p}}g=yb(D[e+12>>2],f);if(!g){break p}D[e+12>>2]=g;D[e+20>>2]=f;d=D[e+16>>2]}Va(d+g|0,0,a-d|0)}D[e+16>>2]=a}if(a){Xa(D[e+12>>2],c,a);j=j-a|0;c=b+h|0}a=D[i>>2]-c&3;f=j-a|0;d=a+c|0;if(a>>>0<=j>>>0){continue}break}}a=0}if(!a){break c}a=D[i+116>>2];q=1;if(!a){break b}b=D[i+112>>2];f=0;while(1){if(cc(D[b+J(f,24)>>2],3178)){q=1;f=f+1|0;if((a|0)!=(f|0)){continue}break c}break}q=1;B[i+1205|0]=1}}H:{if(q){break H}a=D[m+1212>>2];if(!a){break H}Ta(a);D[m+1220>>2]=0;D[m+1212>>2]=0;D[m+1216>>2]=0}D[m>>2]=-559038750;B[m+1224|0]=1;X(t|0);X(s|0)}Fa=n+32|0;return m|0}function Wb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=Fa-352|0;Fa=h;a:{if(D[a>>2]){break a}D[h+344>>2]=0;D[h+348>>2]=0;D[h+336>>2]=0;D[h+340>>2]=0;D[h+328>>2]=0;D[h+332>>2]=0;D[h+320>>2]=0;D[h+312>>2]=0;D[h+316>>2]=0;D[h+304>>2]=0;D[h+308>>2]=0;D[h+296>>2]=0;D[h+300>>2]=0;D[h+288>>2]=0;D[h+292>>2]=0;D[h+280>>2]=0;D[h+272>>2]=0;D[h+276>>2]=0;D[h+264>>2]=0;D[h+268>>2]=0;D[h+256>>2]=0;D[h+260>>2]=0;D[h+248>>2]=0;D[h+252>>2]=0;D[h+240>>2]=0;D[h+232>>2]=0;D[h+236>>2]=0;D[h+224>>2]=0;D[h+228>>2]=0;D[h+216>>2]=0;D[h+220>>2]=0;D[h+208>>2]=0;D[h+212>>2]=0;D[h+200>>2]=0;D[h+192>>2]=0;D[h+196>>2]=0;D[h+184>>2]=0;D[h+188>>2]=0;D[h+176>>2]=0;D[h+180>>2]=0;D[h+168>>2]=0;D[h+172>>2]=0;b:{if(!(d?c:1)){break b}D[h+344>>2]=0;D[h+348>>2]=0;D[h+336>>2]=c;D[h+332>>2]=c;D[h+328>>2]=d;D[h+340>>2]=c+d;if(!fb(h+328|0,h+288|0)){break b}if(!fb(h+328|0,h+248|0)){break b}if(!fb(h+328|0,h+208|0)){break b}if(!fb(h+328|0,h+168|0)|!D[h+292>>2]|(!D[h+252>>2]|!D[h+212>>2])){break b}if(!D[h+172>>2]){break b}c=h;d=D[h+348>>2];c:{if(d){i=D[h+344>>2];d=d-1|0;break c}d=D[h+332>>2];if(d>>>0>2]){D[h+332>>2]=d+1;d=E[d|0]}else{d=0}i=d|D[h+344>>2];d=7}D[c+348>>2]=d;D[h+344>>2]=i>>>1;c=a+4|0;d=D[c+4>>2];m=b;if((d|0)!=(b|0)){if(!(m>>>0<=G[c+8>>2]|d>>>0>m>>>0)){Ya(c,m,(m|0)==(d+1|0),8)}D[c+4>>2]=m}D[h+160>>2]=1052688;if(m){r=i&1;t=r?1:3;while(1){k=D[h+348>>2];d:{if(k>>>0>=16){j=D[h+344>>2];break d}i=D[h+332>>2];d=D[h+340>>2];e:{if(i>>>0>=d>>>0){c=0;break e}b=i+1|0;D[h+332>>2]=b;c=E[i|0]<>2]=b;j=D[h+344>>2]|c;D[h+344>>2]=j;if(k>>>0>=8){k=b;break d}if(d>>>0<=i>>>0){b=0}else{D[h+332>>2]=i+1;b=E[i|0]<>2]=k;j=b|D[h+344>>2];D[h+344>>2]=j}c=D[D[h+180>>2]+((j&1023)<<2)>>2];f:{if((c|0)<=-1){i=10;b=D[h+192>>2];while(1){d=j>>>i|0;i=i+1|0;c=C[b+((d&1)+(c^-1)<<1)>>1];if((c|0)<0){continue}break}break f}i=c>>>16|0;c=c&65535}D[h+348>>2]=k-i;D[h+344>>2]=j>>>i;o=l<<3;B[(o+D[a+4>>2]|0)+4|0]=c+u&7;u=E[(o+D[a+4>>2]|0)+4|0];k=0;while(1){p=h;g:{h:{i:{j:{k:{s=(h+160|0)+k|0;q=E[s|0];if(q>>>0<=9){b=D[h+348>>2];if(b>>>0>=16){j=D[h+344>>2];break h}i=D[h+332>>2];n=D[h+340>>2];l:{if(i>>>0>=n>>>0){c=0;break l}d=i+1|0;D[h+332>>2]=d;c=E[i|0]<>2]=d;j=D[h+344>>2]|c;D[h+344>>2]=j;if(b>>>0<8){break k}b=d;break h}b=D[h+348>>2];n=D[h+340>>2];m:{if(q>>>0<=21){if(b>>>0>=16){j=D[h+344>>2];break i}c=D[h+332>>2];n:{if(n>>>0<=c>>>0){d=0;break n}i=c+1|0;D[h+332>>2]=i;d=E[c|0]<>2]=i;j=D[h+344>>2]|d;D[h+344>>2]=j;if(b>>>0<8){break m}b=i;break i}if(b>>>0>=16){j=D[h+344>>2];break j}c=D[h+332>>2];o:{if(n>>>0<=c>>>0){d=0;break o}i=c+1|0;D[h+332>>2]=i;d=E[c|0]<>2]=i;j=D[h+344>>2]|d;D[h+344>>2]=j;if(b>>>0>=8){b=i;break j}if(c>>>0>=n>>>0){c=0}else{D[h+332>>2]=c+1;c=E[c|0]<>2]=b;j=c|D[h+344>>2];D[h+344>>2]=j;break j}if(c>>>0>=n>>>0){c=0}else{D[h+332>>2]=c+1;c=E[c|0]<>2]=b;j=c|D[h+344>>2];D[h+344>>2]=j;break i}if(i>>>0>=n>>>0){c=0}else{D[h+332>>2]=i+1;c=E[i|0]<>2]=b;j=c|D[h+344>>2];D[h+344>>2]=j;break h}c=D[D[h+220>>2]+((j&1023)<<2)>>2];p:{if((c|0)<=-1){i=10;d=D[h+232>>2];while(1){n=j>>>i|0;i=i+1|0;c=C[d+((n&1)+(c^-1)<<1)>>1];if((c|0)<0){continue}break}break p}i=c>>>16|0;c=c&65535}d=c;D[h+344>>2]=j>>>i;b=b-i|0;break g}c=D[D[h+260>>2]+((j&1023)<<2)>>2];q:{if((c|0)<=-1){i=10;d=D[h+272>>2];while(1){n=j>>>i|0;i=i+1|0;c=C[d+((n&1)+(c^-1)<<1)>>1];if((c|0)<0){continue}break}break q}i=c>>>16|0;c=c&65535}d=c;D[h+344>>2]=j>>>i;b=b-i|0;break g}c=D[D[h+300>>2]+((j&1023)<<2)>>2];r:{if((c|0)<=-1){i=10;d=D[h+312>>2];while(1){n=j>>>i|0;i=i+1|0;c=C[d+((n&1)+(c^-1)<<1)>>1];if((c|0)<0){continue}break}break r}i=c>>>16|0;c=c&65535}d=c;D[h+344>>2]=j>>>i;b=b-i|0}D[p+348>>2]=b;b=d+q&31;B[(o+D[a+4>>2]|0)+k|0]=b;B[s|0]=b;k=k+1|0;if((t|0)!=(k|0)){continue}break}if(r){b=o+D[a+4>>2]|0;B[b+1|0]=E[b|0];b=o+D[a+4>>2]|0;B[b+2|0]=E[b|0]}l=l+1|0;if((m|0)!=(l|0)){continue}break}}i=0;b=a+16|0;c=D[b+4>>2];if((c|0)!=(e|0)){if(!(c>>>0>e>>>0|G[b+8>>2]>=e>>>0)){Ya(b,e,(c+1|0)==(e|0),11)}D[b+4>>2]=e}if(!(g?f:1)){break b}D[h+336>>2]=f;D[h+332>>2]=f;D[h+328>>2]=g;b=f+g|0;D[h+340>>2]=b;D[h+152>>2]=0;D[h+144>>2]=0;D[h+148>>2]=0;D[h+136>>2]=0;D[h+140>>2]=0;D[h+128>>2]=0;D[h+132>>2]=0;D[h+120>>2]=0;D[h+124>>2]=0;s:{if((g|0)<1){d=f;break s}d=f+1|0;D[h+332>>2]=d;i=E[f|0]}t:{u:{v:{if(i&1){j=0;if(b>>>0>d>>>0){D[h+332>>2]=d+1;j=E[d|0]}D[h+348>>2]=7;D[h+344>>2]=j>>>1;D[h+112>>2]=0;D[h+104>>2]=0;D[h+108>>2]=0;D[h+96>>2]=0;D[h+100>>2]=0;D[h+88>>2]=0;D[h+92>>2]=0;D[h+80>>2]=0;D[h+84>>2]=0;l=j<<3&8|i>>>5;if(l){if(!fb(h+328|0,h+80|0)|!D[h+84>>2]){break u}}w:{if(e){g=i>>>1&15;b=0;c=1;while(1){d=0;i=0;if(g){i=wc(h+328|0,g)}if(l){d=Ab(h+328|0,h+80|0)}f=D[a+28>>2];if(G[f+4>>2]<=i>>>0){break w}c=sc(h+24|0,d);pc(h+40|0,D[f>>2]+(i<<4)|0,c);i=0;while(1){c=J(b,11);f=c+D[a+16>>2]|0;d=f+i|0;k=d;p=E[d|0]&252;d=i<<2;m=E[d+(h+40|0)|0];B[k|0]=p|m;k=qf(i);f=f-(i>>>3|0)|0;m=E[m+91088|0];B[f+7|0]=k&E[f+7|0]|(m&1)<>>1<>2]|0;k=f+i|0;m=E[(h+40|0)+(d|1)|0];B[k|0]=E[k|0]&243|m<<2;k=i+4|0;f=f-(k>>>3|0)|0;j=16<>>1<>2]|0;k=f+i|0;j=E[(h+40|0)+(d|2)|0];B[k|0]=E[k|0]&207|j<<4;k=i&7;m=qf(k);f=f-(i+8>>>3|0)|0;j=E[j+91088|0];B[f+7|0]=m&E[f+7|0]|(j&1)<>>1<>2]|0;k=f+i|0;m=E[(h+40|0)+(d|3)|0];B[k|0]=E[k|0]&63|m<<6;d=f;f=i+12|0;d=d-(f>>>3|0)|0;f=f&7;k=qf(f);m=E[m+91088|0];B[d+7|0]=k&E[d+7|0]|(m&1)<>>1<>2]|0);b=b+1|0;c=e>>>0>b>>>0;if((b|0)!=(e|0)){continue}break}}mb(h+80|0);i=1;break t}mb(h+80|0);i=0;if(!c){break v}break t}if(i&2){j=0;if(b>>>0>d>>>0){D[h+332>>2]=d+1;j=E[d|0]}D[h+348>>2]=6;D[h+344>>2]=j>>>2;D[h+112>>2]=0;D[h+104>>2]=0;D[h+108>>2]=0;D[h+96>>2]=0;D[h+100>>2]=0;D[h+88>>2]=0;D[h+92>>2]=0;D[h+80>>2]=0;D[h+84>>2]=0;b=0;x:{if(!fb(h+328|0,h+80|0)){break x}b=0;if(!D[h+84>>2]){break x}k=0;D[h+72>>2]=0;b=h- -64|0;D[b>>2]=0;D[b+4>>2]=0;D[h+56>>2]=0;D[h+60>>2]=0;D[h+48>>2]=0;D[h+52>>2]=0;D[h+40>>2]=0;D[h+44>>2]=0;o=j<<2&12|i>>>6;y:{if(o){g=1;if(!fb(h+328|0,h+40|0)|!D[h+44>>2]){break y}}if(e){m=i>>>2&15;b=0;c=0;while(1){if(b){b=b-1|0}else{c=Ab(h+328|0,h+80|0);b=7}i=0;z:{if(c&1){d=0;if(m){i=wc(h+328|0,m)}if(o){d=Ab(h+328|0,h+40|0)}f=D[a+28>>2];g=1;if(G[f+4>>2]<=i>>>0){break y}d=sc(h+8|0,d);pc(h+24|0,D[f>>2]+(i<<4)|0,d);i=0;while(1){d=J(k,11);g=d+D[a+16>>2]|0;f=g+i|0;p=f;l=E[f|0]&252;f=i<<2;j=E[f+(h+24|0)|0];B[p|0]=l|j;l=qf(i);g=g-(i>>>3|0)|0;j=E[j+91088|0];B[g+7|0]=l&E[g+7|0]|(j&1)<>>1<>2]|0;l=g+i|0;j=E[(h+24|0)+(f|1)|0];B[l|0]=E[l|0]&243|j<<2;l=i+4|0;g=g-(l>>>3|0)|0;n=16<>>1<>2]|0;l=g+i|0;n=E[(h+24|0)+(f|2)|0];B[l|0]=E[l|0]&207|n<<4;l=i&7;j=qf(l);g=g-(i+8>>>3|0)|0;n=E[n+91088|0];B[g+7|0]=j&E[g+7|0]|(n&1)<>>1<>2]|0;g=d+i|0;l=E[(h+24|0)+(f|3)|0];B[g|0]=E[g|0]&63|l<<6;f=i+12|0;d=d-(f>>>3|0)|0;f=f&7;g=qf(f);l=E[l+91088|0];B[d+7|0]=g&E[d+7|0]|(l&1)<>>1<>2];if(j>>>0>=8){d=D[h+344>>2]}else{d=D[h+332>>2];if(d>>>0>=G[h+340>>2]){d=0}else{D[h+332>>2]=d+1;d=E[d|0]<>2]}D[h+348>>2]=j-8;D[h+344>>2]=d>>>8;f=J(k,11);g=f+D[a+16>>2]|0;l=g+i|0;j=d&3;B[l|0]=j|E[l|0]&252;l=qf(i);g=g-(i>>>3|0)|0;j=E[j+91088|0];B[g+7|0]=l&E[g+7|0]|(j&1)<>>1<>2]|0;l=g+i|0;j=d>>>2&3;B[l|0]=E[l|0]&243|j<<2;l=i+4|0;g=g-(l>>>3|0)|0;n=16<>>1<>2]|0;l=g+i|0;n=d>>>4&3;B[l|0]=E[l|0]&207|n<<4;l=i&7;j=qf(l);g=g-(i+8>>>3|0)|0;n=E[n+91088|0];B[g+7|0]=j&E[g+7|0]|(n&1)<>>1<>2]|0;g=f+i|0;B[g|0]=E[g|0]&63|d&192;g=i+12|0;f=f-(g>>>3|0)|0;g=g&7;l=qf(g);d=E[(d>>>6&3)+91088|0];B[f+7|0]=l&E[f+7|0]|(d&1)<>>1<>>1|0;zb(D[a+16>>2]+J(k,11)|0);k=k+1|0;if((k|0)!=(e|0)){continue}break}}g=0}d=g;mb(h+40|0);b=!d}mb(h+80|0);i=0;if(b){break v}break t}D[h+348>>2]=5;D[h+344>>2]=i>>>3;if(i&4){if(!e){break v}b=0;while(1){i=0;while(1){j=D[h+348>>2];if(j>>>0>=8){c=D[h+344>>2]}else{c=D[h+332>>2];if(c>>>0>=G[h+340>>2]){c=0}else{D[h+332>>2]=c+1;c=E[c|0]<>2]}D[h+348>>2]=j-8;D[h+344>>2]=c>>>8;d=J(b,11);f=d+D[a+16>>2]|0;g=f+i|0;k=c&3;B[g|0]=k|E[g|0]&252;g=qf(i);f=f-(i>>>3|0)|0;k=E[k+91088|0];B[f+7|0]=g&E[f+7|0]|(k&1)<>>1<>2]|0;g=f+i|0;k=c>>>2&3;B[g|0]=E[g|0]&243|k<<2;g=i+4|0;f=f-(g>>>3|0)|0;m=16<>>1<>2]|0;g=f+i|0;m=c>>>4&3;B[g|0]=E[g|0]&207|m<<4;g=i&7;k=qf(g);f=f-(i+8>>>3|0)|0;m=E[m+91088|0];B[f+7|0]=k&E[f+7|0]|(m&1)<>>1<>2]|0;g=f+i|0;B[g|0]=E[g|0]&63|c&192;g=i+12|0;f=f-(g>>>3|0)|0;g=g&7;k=qf(g);c=E[(c>>>6&3)+91088|0];B[f+7|0]=k&E[f+7|0]|(c&1)<>>1<>2]|0);b=b+1|0;if((e|0)!=(b|0)){continue}break}break v}i=0;if(!fb(h+328|0,h+120|0)){break t}A:{if(e>>>0>=2){if(!D[h+124>>2]){break t}D[h+80>>2]=0;break A}D[h+80>>2]=0;if(!e){break v}}b=0;while(1){d=0;i=0;B:{if(!b){while(1){f=(h+80|0)+d|0;j=D[h+348>>2];if(j>>>0>=8){c=D[h+344>>2]}else{c=D[h+332>>2];if(c>>>0>=G[h+340>>2]){c=0}else{D[h+332>>2]=c+1;c=E[c|0]<>2]}B[f|0]=c;D[h+348>>2]=j-8;D[h+344>>2]=c>>>8;f=D[a+16>>2];g=f+d|0;i=c&3;B[g|0]=i|E[g|0]&252;g=qf(d);f=f-(d>>>3|0)|0;i=E[i+91088|0];B[f+7|0]=g&E[f+7|0]|(i&1)<>>1<>2];g=f+d|0;i=c>>>2&3;B[g|0]=E[g|0]&243|i<<2;g=d+4|0;f=f-(g>>>3|0)|0;k=16<>>1<>2];g=f+d|0;k=c>>>4&3;B[g|0]=E[g|0]&207|k<<4;g=d&7;i=qf(g);f=f-(d+8>>>3|0)|0;k=E[k+91088|0];B[f+7|0]=i&E[f+7|0]|(k&1)<>>1<>2];g=f+d|0;B[g|0]=E[g|0]&63|c&192;g=d+12|0;f=f-(g>>>3|0)|0;g=g&7;i=qf(g);c=E[(c>>>6&3)+91088|0];B[f+7|0]=i&E[f+7|0]|(c&1)<>>1<>2];break B}while(1){d=(h+80|0)+i|0;c=Ab(h+328|0,h+120|0)^E[d|0];B[d|0]=c;d=J(b,11);f=d+D[a+16>>2]|0;g=f+i|0;k=c&3;B[g|0]=k|E[g|0]&252;g=qf(i);f=f-(i>>>3|0)|0;k=E[k+91088|0];B[f+7|0]=g&E[f+7|0]|(k&1)<>>1<>2]|0;g=f+i|0;k=c>>>2&3;B[g|0]=E[g|0]&243|k<<2;g=i+4|0;f=f-(g>>>3|0)|0;m=16<>>1<>2]|0;g=f+i|0;m=c>>>4&3;B[g|0]=E[g|0]&207|m<<4;g=i&7;k=qf(g);f=f-(i+8>>>3|0)|0;m=E[m+91088|0];B[f+7|0]=k&E[f+7|0]|(m&1)<>>1<>2]|0;g=f+i|0;B[g|0]=E[g|0]&63|c&192;g=i+12|0;f=f-(g>>>3|0)|0;g=g&7;k=qf(g);c=E[(c>>>6&3)+91088|0];B[f+7|0]=k&E[f+7|0]|(c&1)<>>1<>2]|0}zb(c);b=b+1|0;if((e|0)!=(b|0)){continue}break}}i=1;break t}mb(h+80|0);i=0}mb(h+120|0)}a=D[h+192>>2];if(a){Ta(a)}a=D[h+180>>2];if(a){Ta(a)}a=D[h+168>>2];if(a){Ta(a)}a=D[h+232>>2];if(a){Ta(a)}a=D[h+220>>2];if(a){Ta(a)}a=D[h+208>>2];if(a){Ta(a)}a=D[h+272>>2];if(a){Ta(a)}a=D[h+260>>2];if(a){Ta(a)}a=D[h+248>>2];if(a){Ta(a)}a=D[h+312>>2];if(a){Ta(a)}a=D[h+300>>2];if(a){Ta(a)}a=D[h+288>>2];if(!a){break a}Ta(a)}Fa=h+352|0;return i}function _a(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,G=0,H=0,I=0,K=0;u=Fa-48|0;g=E[a|0]&127;a:{if((g|0)==69){break a}m=E[g+26704|0];D[b+104>>2]=m;g=D[(m<<3)+23220>>2];b:{if((m|0)==8){c=(g>>>3|0)+a|0;p=g&7;B[b+112|0]=(E[c+1|0]<<8|E[c|0])>>>p;c=(g+8>>>3|0)+a|0;B[b+113|0]=(E[c+1|0]<<8|E[c|0])>>>p;c=(g+16>>>3|0)+a|0;B[b+114|0]=(E[c+1|0]<<8|E[c|0])>>>p;c=(g+24>>>3|0)+a|0;B[b+115|0]=(E[c+1|0]<<8|E[c|0])>>>p;f=1;if(!d){break a}B[b+118|0]=0;B[b+119|0]=E[(g+32>>>3|0)+a|0]>>>p&1;c=g+33|0;d=(c>>>3|0)+a|0;c=c&7;f=E[d|0]>>>c|0;f=c>>>0>=6?E[d+1|0]<<8-c|f:f;D[b+124>>2]=0;D[b+120>>2]=f&7;c=g+36|0;h=(c>>>3|0)+a|0;i=c&7;c=E[h|0]>>>i|0;d=b;if((i|0)==7){c=c|E[h+1|0]<<1}D[d+136>>2]=c&3;c=g+38|0;i=(c>>>3|0)+a|0;h=c&7;c=E[i|0]>>>h|0;if(h>>>0>=4){c=c|E[i+1|0]<<8-h}D[d+140>>2]=c&31;c=g+43|0;i=(c>>>3|0)+a|0;h=c&7;c=E[i|0]>>>h|0;if(h>>>0>=4){c=c|E[i+1|0]<<8-h}D[d+144>>2]=c&31;a=(g+48>>>3|0)+a|0;c=E[a|0];a=E[a+1|0];D[b+128>>2]=0;D[b+132>>2]=0;D[b+148>>2]=(a<<8-p|c>>>p)&31;break b}c:{if(d){B[b+116|0]=E[(g>>>3|0)+a|0]>>>(g&7)&1;d=g+1|0;l=7424>>>m&1;if(!l){h=E[(d>>>3|0)+a|0]>>>(d&7)&1;d=g+2|0}B[b+117|0]=h;s=d&7;B[b+118|0]=E[(d>>>3|0)+a|0]>>>s&1;g=d+1|0;B[b+119|0]=E[(g>>>3|0)+a|0]>>>(g&7)&1;g=d+2|0;e=(g>>>3|0)+a|0;q=g&7;g=E[e|0]>>>q|0;h=b;if(q>>>0>=6){g=g|E[e+1|0]<<8-q}D[h+120>>2]=g&7;g=d+5|0;e=(g>>>3|0)+a|0;q=g&7;g=E[e|0]>>>q|0;if(q>>>0>=6){g=g|E[e+1|0]<<8-q}D[h+124>>2]=g&7;e=d+8|0;h=0;j=b;if(!l){h=(e>>>3|0)+a|0;g=E[h|0]>>>s|0;if(s>>>0>=4){g=g|E[h+1|0]<<8-s}e=d+13|0;h=g&31}D[j+128>>2]=h;if(m-8>>>0<=9){s=(e>>>3|0)+a|0;h=e&7;d=E[s|0]>>>h|0;g=b;if(h){d=d|E[s+1|0]<<8-h}D[g+132>>2]=d&255;e=e+8|0;break c}D[b+132>>2]=0;break c}e=g+E[m+26832|0]|0}k=1;d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{q=m>>>0>16;d=1;n:{if(q){break n}if(!(1<>>3|0)+a|0;h=e&7;d=E[s|0]>>>h|0;g=b;if(h>>>0>=4){d=d|E[s+1|0]<<8-h}D[g+108>>2]=d&31;e=e+5|0;k=0;d=2}s=d;d=0;if(q){break k}if(1<>2];if(d>>>0>18){break a}d=J(d,6)+21810|0;break h}s=(e>>>3|0)+a|0;h=e&7;d=E[s|0]>>>h|0;g=b;if(h>>>0>=5){d=d|E[s+1|0]<<8-h}d=d&15;D[g+108>>2]=d;e=e+4|0;k=0;s=3;break i}d=D[b+108>>2];if(d>>>0>29){break a}d=F[J(d,6)+21618>>1]}A=1;switch(m-6|0){case 11:break f;case 0:case 5:case 7:break g;default:break d}}d=D[b+108>>2]}if(d>>>0>10){break a}d=J(d,6)+21938|0}d=F[d>>1];A=1;break d}f=(e>>>3|0)+a|0;q=e&7;g=E[f|0]>>>q|0;h=b;if((q|0)==7){g=g|E[f+1|0]<<1}D[h+16>>2]=g&3;e=e+2|0;break e}D[b+16>>2]=3}A=2;G=1}D[b+4>>2]=s;B[b+20|0]=G;D[b+8>>2]=d&65535;D[b+12>>2]=E[m+26864|0];D[b>>2]=E[m+23408|0];f=1;x=E[m+23536|0];j=J(x,s);q=j<<1;v=E[m+23440|0];o=1497965>>>v&1;o:{if(!o){f=1797559>>>v&1;l=(q+4>>>0)/5|0;r=3;n=8;h=5;break o}n=7;if(1797559>>>v&1){l=0;h=0;break o}l=(q+2>>>0)/3|0;r=5;f=0;h=3}if(l){y=l-1|0;g=q-J(y,h)|0;z=f?7:(g|0)==1?3:(g|0)==2?5:7;d=0;t=g-1|0;K=(t<<2)+414868|0;while(1){f=(d|0)!=(y|0);g=f|o;f=g?f?n:z:8;f=t>>>0>3|g?f:D[K>>2];I=(e>>>3|0)+a|0;w=e&7;g=E[I|0]>>>w|0;H=(u+16|0)+(d<<2)|0;w=8-w|0;if((w|0)<(f|0)){g=g|E[I+1|0]<>2]=(-1<>2];y=-1<>>3|0)+a|0;t=e&7;f=E[z|0]>>>t|0;t=8-t|0;if((t|0)<(o|0)){f=f|E[z+1|0]<>2];n=n+1|0;g=h}H=q;q=(q>>>0)/(r>>>0)|0;f=H-J(r,q)<>>0<2){break r}d=D[b+108>>2];if((s|0)==3){l=J(d,3)+23104|0;q=(d<<4)+22528|0;break r}if((m|0)==7){l=J(d,3)+23152|0;q=(d<<4)+22704|0;break q}l=J(d,3)+23008|0;q=(d<<4)+22048|0}if((m|0)!=18){break q}f=0;while(1){j=b+f|0;p=h-!f|0;if(p){i=(e>>>3|0)+a|0;l=e&7;d=E[i|0]>>>l|0;e=e+p|0;l=8-l|0;if((l|0)<(p|0)){d=d|E[i+1|0]<>>3|0)+a|0]>>>g;d=f;g=d&31;if((d&63)>>>0>=32){d=r<>>32-g;j=r<>>0>f>>>0){continue}break}}f=-1<>>0>=32?d>>>l|0:((1<>>l);e=a<<1;a=e&31;B[b+41|0]=f&((e&63)>>>0>=32?d>>>a|0:((1<>>a);a=d;e=e+h|0;d=e&31;B[b+42|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+43|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+44|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+45|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+46|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+47|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+48|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+49|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+50|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+51|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+52|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+53|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+54|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+55|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+56|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+57|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+58|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+59|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+60|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+61|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+62|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+63|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b- -64|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+65|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+66|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+67|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+68|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+69|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);g=e+h|0;a=g&31;B[b+70|0]=f&((g&63)>>>0>=32?p>>>a|0:((1<>>a);break p}if(k){if(33793>>>m&1){d=i;B[b+39|0]=d&7;a=p;B[b+54|0]=a>>>27&15;B[b+53|0]=a>>>23&15;B[b+52|0]=a>>>19&15;B[b+51|0]=a>>>15&15;B[b+50|0]=a>>>11&15;B[b+49|0]=a>>>7&15;B[b+48|0]=a>>>3&15;B[b+47|0]=((a&2147483647)<<1|d>>>31)&15;B[b+46|0]=d>>>27&15;B[b+45|0]=d>>>23&15;B[b+44|0]=d>>>19&15;B[b+43|0]=d>>>15&15;B[b+42|0]=d>>>11&15;B[b+41|0]=d>>>7&15;B[b+40|0]=d>>>3&15;break p}B[b+39|0]=e&i;d=p;e=a&31;B[b+40|0]=f&((a&63)>>>0>=32?d>>>e|0:((1<>>e);e=a+h|0;a=e&31;B[b+41|0]=f&((e&63)>>>0>=32?d>>>a|0:((1<>>a);a=d;e=e+h|0;d=e&31;B[b+42|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+43|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+44|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+45|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+46|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+47|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+48|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+49|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+50|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+51|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+52|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);e=e+h|0;d=e&31;B[b+53|0]=f&((e&63)>>>0>=32?a>>>d|0:((1<>>d);g=e+h|0;a=g&31;B[b+54|0]=f&((g&63)>>>0>=32?p>>>a|0:((1<>>a);break p}g=E[l+2|0];n=E[l|0];l=E[l+1|0];k=!g|(!n|!l);B[b+39|0]=(k?e:f)&i;d=p;j=k?a:h;k=j&31;r=(n|0)==1|(l|0)==1|(g|0)==1;B[b+40|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);j=j+(r?a:h)|0;k=j&31;o=(n|0)==2|(l|0)==2|(g|0)==2;B[b+41|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);j=j+(o?a:h)|0;k=j&31;r=(n|0)==3|(l|0)==3|(g|0)==3;B[b+42|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);j=j+(r?a:h)|0;k=j&31;o=(n|0)==4|(l|0)==4|(g|0)==4;B[b+43|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);j=j+(o?a:h)|0;k=j&31;r=(n|0)==5|(l|0)==5|(g|0)==5;B[b+44|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);j=j+(r?a:h)|0;k=j&31;o=(n|0)==6|(l|0)==6|(g|0)==6;B[b+45|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);j=j+(o?a:h)|0;k=j&31;r=(n|0)==7|(l|0)==7|(g|0)==7;B[b+46|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);j=j+(r?a:h)|0;k=j&31;o=(n|0)==8|(l|0)==8|(g|0)==8;B[b+47|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);j=j+(o?a:h)|0;k=j&31;r=(n|0)==9|(l|0)==9|(g|0)==9;B[b+48|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);j=j+(r?a:h)|0;k=j&31;o=(n|0)==10|(l|0)==10|(g|0)==10;B[b+49|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);j=j+(o?a:h)|0;k=j&31;r=(n|0)==11|(l|0)==11|(g|0)==11;B[b+50|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);j=j+(r?a:h)|0;k=j&31;o=(n|0)==12|(l|0)==12|(g|0)==12;B[b+51|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);j=j+(o?a:h)|0;k=j&31;r=(n|0)==13|(l|0)==13|(g|0)==13;B[b+52|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(r?e:f);r=j+(r?a:h)|0;j=r;k=j&31;o=(n|0)==14|(l|0)==14|(g|0)==14;B[b+53|0]=((j&63)>>>0>=32?d>>>k|0:((1<>>k)&(o?e:f);d=i;i=j+(o?a:h)|0;a=i&31;B[b+54|0]=((i&63)>>>0>=32?p>>>a|0:((1<>>a)&((n|0)==15?e:(l|0)==15?e:(g|0)==15?e:f)}if(!c|m-15>>>0<3){break b}d=0;B[u+14|0]=0;C[u+12>>1]=0;c=x>>>0>1?x:1;a=c&254;e=c&1;c=b+21|0;p=(v<<9)+429696|0;l=0;s:{while(1){i=J(d,x);f=i<<1;g=f+c|0;if((E[p+(E[g+3|0]<<1)|0]+E[p+(E[c+(f|1)|0]<<1)|0]|0)+E[p+(E[g+5|0]<<1)|0]>>>0>>0){f=0;g=a;while(1){m=f+i<<1;l=m+c|0;n=E[l|0];m=c+(m|1)|0;B[l|0]=E[m|0];B[m|0]=n;m=i+(f|1)<<1;l=m+c|0;n=E[l|0];m=c+(m|1)|0;B[l|0]=E[m|0];B[m|0]=n;f=f+2|0;g=g-2|0;if(g){continue}break}if(e){g=f+i<<1;i=g+c|0;f=E[i|0];g=c+(g|1)|0;B[i|0]=E[g|0];B[g|0]=f}l=1;B[(u+12|0)+d|0]=1;d=d+1|0;if((s|0)!=(d|0)){continue}break s}d=d+1|0;if((s|0)!=(d|0)){continue}break}if(!(l&1)){break b}}a=-1<>2]=c;D[b+451896>>2]=c;a=a+1|0;if((a|0)!=64){continue}break}Sb(48);ca(1628,1,414964,414968,4,5);oa(414992,3077,415e3,6,414968,7);a=Sa(4);D[a>>2]=0;b=Sa(4);D[b>>2]=0;Y(414992,2299,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=4;b=Sa(4);D[b>>2]=4;Y(414992,2828,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=8;b=Sa(4);D[b>>2]=8;Y(414992,2025,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=12;b=Sa(4);D[b>>2]=12;Y(414992,5101,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=16;b=Sa(4);D[b>>2]=16;Y(414992,5031,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=20;b=Sa(4);D[b>>2]=20;Y(414992,1389,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=24;b=Sa(4);D[b>>2]=24;Y(414992,3008,421556,415002,10,a|0,421556,415006,11,b|0);a=Sa(4);D[a>>2]=25;b=Sa(4);D[b>>2]=25;Y(414992,2037,421556,415002,10,a|0,421556,415006,11,b|0);a=Sa(4);D[a>>2]=28;b=Sa(4);D[b>>2]=28;Y(414992,1440,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=32;b=Sa(4);D[b>>2]=32;Y(414992,1714,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=36;b=Sa(4);D[b>>2]=36;Y(414992,2317,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=40;b=Sa(4);D[b>>2]=40;Y(414992,1522,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=44;b=Sa(4);D[b>>2]=44;Y(414992,1733,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=48;b=Sa(4);D[b>>2]=48;Y(414992,2336,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=52;b=Sa(4);D[b>>2]=52;Y(414992,1704,421640,415002,8,a|0,421640,415006,9,b|0);a=Sa(4);D[a>>2]=56;b=Sa(4);D[b>>2]=56;Y(414992,2307,421640,415002,8,a|0,421640,415006,9,b|0);na(414992);oa(415032,3104,415e3,12,414968,13);a=Sa(4);D[a>>2]=0;b=Sa(4);D[b>>2]=0;Y(415032,2558,421640,415002,14,a|0,421640,415006,15,b|0);a=Sa(4);D[a>>2]=4;b=Sa(4);D[b>>2]=4;Y(415032,1272,421640,415002,14,a|0,421640,415006,15,b|0);a=Sa(4);D[a>>2]=8;b=Sa(4);D[b>>2]=8;Y(415032,3269,421640,415002,14,a|0,421640,415006,15,b|0);a=Sa(4);D[a>>2]=12;b=Sa(4);D[b>>2]=12;Y(415032,3258,421640,415002,14,a|0,421640,415006,15,b|0);a=Sa(4);D[a>>2]=16;b=Sa(4);D[b>>2]=16;Y(415032,1555,421640,415002,14,a|0,421640,415006,15,b|0);a=Sa(4);D[a>>2]=20;b=Sa(4);D[b>>2]=20;Y(415032,2692,421556,415002,16,a|0,421556,415006,17,b|0);a=Sa(4);D[a>>2]=21;b=Sa(4);D[b>>2]=21;Y(415032,2681,421556,415002,16,a|0,421556,415006,17,b|0);na(415032);oa(415068,3045,415e3,18,414968,19);a=Sa(4);D[a>>2]=0;b=Sa(4);D[b>>2]=0;Y(415068,1752,421640,415002,20,a|0,421640,415006,21,b|0);a=Sa(4);D[a>>2]=4;b=Sa(4);D[b>>2]=4;Y(415068,2355,421640,415002,20,a|0,421640,415006,21,b|0);a=Sa(4);D[a>>2]=8;b=Sa(4);D[b>>2]=8;Y(415068,1763,421640,415002,20,a|0,421640,415006,21,b|0);a=Sa(4);D[a>>2]=12;b=Sa(4);D[b>>2]=12;Y(415068,2366,421640,415002,20,a|0,421640,415006,21,b|0);na(415068);ha(415116,1363,4,1);W(415116,3925,0);W(415116,4165,1);W(415116,3937,2);W(415116,4153,3);W(415116,3401,4);W(415116,3515,5);W(415116,4090,6);W(415116,3897,8);W(415116,4136,9);W(415116,4102,10);W(415116,3870,11);W(415116,4078,12);W(415116,3913,17);W(415116,3881,18);W(415116,4119,19);W(415116,5058,20);W(415116,5074,21);W(415116,5021,13);W(415116,4852,14);W(415116,4842,15);W(415116,4897,16);W(415116,1499,22);ca(2384,2,415124,415002,22,23);ca(3202,2,415132,415002,24,25);ca(2987,2,415132,415002,24,26);ca(2969,2,415132,415002,24,27);ca(2538,2,415124,415002,22,28);ca(1251,2,415124,415002,22,29);ha(415172,2766,4,0);W(415172,3745,0);W(415172,1088,1);W(415172,1062,2);W(415172,1910,3);W(415172,2785,4);ha(415208,1346,4,1);W(415208,3370,0);W(415208,4887,1);ra(415232,415256,415288,0,415304,30,415307,0,415307,0,2839,414968,31);qa(415232,2,415312,415002,32,33);a=Sa(4);D[a>>2]=34;Z(415232,2760,2,415320,415328,35,a|0,0);a=Sa(4);D[a>>2]=36;Z(415232,3190,2,415332,415002,37,a|0,0);a=Sa(4);D[a>>2]=38;Z(415232,3761,2,415340,415002,39,a|0,0);a=Sa(4);D[a>>2]=40;Z(415232,2012,2,415332,415002,37,a|0,0);a=Sa(4);D[a>>2]=41;Z(415232,1565,3,415348,415360,42,a|0,0);a=Sa(4);D[a>>2]=43;Z(415232,2568,4,415376,415392,44,a|0,0);a=Sa(4);D[a>>2]=45;Z(415232,1283,4,415376,415392,44,a|0,0);a=Sa(4);D[a>>2]=46;Z(415232,1865,5,415408,415428,47,a|0,0);a=Sa(4);D[a>>2]=48;Z(415232,2664,2,415332,415002,37,a|0,0);a=Sa(4);D[a>>2]=49;Z(415232,2865,8,415440,415472,50,a|0,0);a=Sa(4);D[a>>2]=51;Z(415232,3065,2,415484,415002,52,a|0,0);a=Sa(4);D[a>>2]=53;Z(415232,3091,3,415492,415360,54,a|0,0);a=Sa(4);D[a>>2]=55;Z(415232,3027,4,415504,415392,56,a|0,0);ha(415552,1644,4,0);W(415552,4964,2);W(415552,1453,4);W(415552,1578,8);W(415552,2052,16);W(415552,1024,32);ra(415648,415696,415748,0,415304,57,415307,0,415307,0,2114,414968,58);qa(415648,1,415764,415304,59,60);a=Sa(8);D[a+4>>2]=0;D[a>>2]=61;Z(415648,1895,6,415776,415800,62,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=63;Z(415648,1954,3,415808,415360,64,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=65;Z(415648,2865,20,415824,415904,66,a|0,0);ca(2880,19,415936,416016,67,68);ca(4998,1,416040,415304,69,70);ca(2910,1,416040,415304,69,71);ha(416080,2277,4,0);W(416080,3630,0);W(416080,3242,1);W(416080,3665,2);ea(3690,421640,0);ea(3769,421640,166);ea(3377,421640,163);ea(3643,421640,2);ea(3578,421640,16);ea(3308,421640,16);ea(3462,421640,1);ea(3971,421640,2);ha(416120,2950,4,0);W(416120,3818,0);W(416120,3410,3);W(416120,3552,4);W(416120,4178,15);W(416120,4024,0);W(416120,3844,0);W(416120,4051,3);W(416120,3436,4);W(416120,3525,5);W(416120,3490,6);ha(416164,1967,4,0);W(416164,3715,0);W(416164,4812,1);W(416164,3948,1);W(416164,3280,2);W(416164,3600,3);W(416164,5128,4);W(416164,3217,5);W(416164,3339,6);W(416164,3793,7);W(416164,4937,8);W(416164,4862,9);W(416164,4909,10);W(416164,3997,11);oa(416208,2196,415e3,72,414968,73);a=Sa(4);D[a>>2]=0;b=Sa(4);D[b>>2]=0;Y(416208,1131,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=4;b=Sa(4);D[b>>2]=4;Y(416208,1120,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=8;b=Sa(4);D[b>>2]=8;Y(416208,1142,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=12;b=Sa(4);D[b>>2]=12;Y(416208,2558,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=16;b=Sa(4);D[b>>2]=16;Y(416208,1272,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=20;b=Sa(4);D[b>>2]=20;Y(416208,2512,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=24;b=Sa(4);D[b>>2]=24;Y(416208,1222,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=28;b=Sa(4);D[b>>2]=28;Y(416208,3269,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=32;b=Sa(4);D[b>>2]=32;Y(416208,3258,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=36;b=Sa(4);D[b>>2]=36;Y(416208,1616,421640,415002,74,a|0,421640,415006,75,b|0);a=Sa(4);D[a>>2]=40;b=Sa(4);D[b>>2]=40;Y(416208,2692,421556,415002,76,a|0,421556,415006,77,b|0);a=Sa(4);D[a>>2]=41;b=Sa(4);D[b>>2]=41;Y(416208,2681,421556,415002,76,a|0,421556,415006,77,b|0);na(416208);oa(416236,2153,415e3,78,414968,79);a=Sa(4);D[a>>2]=0;b=Sa(4);D[b>>2]=0;Y(416236,1409,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=4;b=Sa(4);D[b>>2]=4;Y(416236,2728,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=8;b=Sa(4);D[b>>2]=8;Y(416236,2527,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=12;b=Sa(4);D[b>>2]=12;Y(416236,1239,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=16;b=Sa(4);D[b>>2]=16;Y(416236,2441,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=20;b=Sa(4);D[b>>2]=20;Y(416236,1177,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=24;b=Sa(4);D[b>>2]=24;Y(416236,1199,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=28;b=Sa(4);D[b>>2]=28;Y(416236,1188,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=32;b=Sa(4);D[b>>2]=32;Y(416236,2805,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=36;b=Sa(4);D[b>>2]=36;Y(416236,1326,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=40;b=Sa(4);D[b>>2]=40;Y(416236,2498,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=44;b=Sa(4);D[b>>2]=44;Y(416236,1298,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=48;b=Sa(4);D[b>>2]=48;Y(416236,2470,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=52;b=Sa(4);D[b>>2]=52;Y(416236,1312,421640,415002,80,a|0,421640,415006,81,b|0);a=Sa(4);D[a>>2]=56;b=Sa(4);D[b>>2]=56;Y(416236,2484,421640,415002,80,a|0,421640,415006,81,b|0);na(416236);ra(416256,416276,416308,0,415304,82,415307,0,415307,0,2849,414968,83);qa(416256,2,416324,415002,84,85);a=Sa(8);D[a+4>>2]=0;D[a>>2]=86;Z(416256,2942,2,416332,415002,87,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=88;Z(416256,2760,2,416340,415328,89,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=90;Z(416256,2737,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=92;Z(416256,3683,3,416356,415360,93,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=94;Z(416256,2143,2,416368,415002,95,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=96;Z(416256,1055,3,416376,415360,97,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=98;Z(416256,1427,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=99;Z(416256,1048,3,416524,415360,100,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=101;Z(416256,2712,3,416536,415360,102,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=103;Z(416256,2748,4,416560,415392,104,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=105;Z(416256,2518,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=106;Z(416256,1229,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=107;Z(416256,2086,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=108;Z(416256,1535,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=109;Z(416256,1545,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=110;Z(416256,1399,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=111;Z(416256,3761,2,416332,415002,87,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=112;Z(416256,3362,2,416332,415002,87,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=113;Z(416256,3190,2,416332,415002,87,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=114;Z(416256,2408,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=115;Z(416256,1991,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=116;Z(416256,3119,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=117;Z(416256,1692,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=118;Z(416256,1935,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=119;Z(416256,5111,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=120;Z(416256,5041,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=121;Z(416256,2215,2,416332,415002,87,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=122;Z(416256,1664,5,416576,415428,123,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=124;Z(416256,2178,5,416608,415428,125,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=126;Z(416256,1865,6,416640,415800,127,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=128;Z(416256,2664,2,416348,415002,91,a|0,0);a=Sa(8);D[a+4>>2]=0;D[a>>2]=129;Z(416256,2865,10,416672,416712,130,a|0,0);Ha[131](451800)|0}function bd(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=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,G=0,H=0,I=0,J=0,K=0;o=-72;a:{b:{if(!f){break b}h=B[e|0];w=h&255;c:{if((h|0)<=-1){g=w-126>>>1|0;if(g>>>0>=f>>>0){break b}o=-20;h=w-127|0;if(h>>>0>=256){break b}if(!h){break a}e=e+1|0;f=0;while(1){k=e+(f>>>1|0)|0;B[a+f|0]=E[k|0]>>>4;B[(f|1)+a|0]=E[k|0]&15;f=f+2|0;if(h>>>0>f>>>0){continue}break}w=g;break c}if(f>>>0<=w>>>0){break b}J=a;h=g;u=Fa-528|0;Fa=u;D[u+8>>2]=255;K=e+1|0;s=hc(u+16|0,u+8|0,u+12|0,K,w);d:{if(s>>>0>4294967176){g=s;break d}g=-44;f=D[u+12>>2];if(f>>>0>6){break d}p=D[u+8>>2];o=(p<<1)+2|0;e=f;n=e&31;if((e&63)>>>0>=32){e=1<>>32-n;x=1<>31;e=r<<2|e>>>30;r=j<<2;o=x+r|0;e=e+n|0;e=o>>>0>>0?e+1|0:e;n=G+o|0;e=n>>>0>>0?e+1|0:e;n=n+11|0;if(n>>>0<11){e=e+1|0}n=n&-4;if(!e&n>>>0>356|e){break d}H=u+16|0;o=h;e=j<<2;I=h+e|0;n=-46;h=356-e|0;e=f;g=e&31;if((e&63)>>>0>=32){e=1<>>32-g;j=1<>>0>>0?e+1|0:e;g=g+8|0;if(g>>>0<8){e=e+1|0}e:{if(!e&g>>>0>h>>>0|e|p>>>0>255){break e}n=-44;if(f>>>0>12){break e}y=o+4|0;z=1<>16;f:{if(!p){e=g;break f}n=e&-2;e=g;while(1){v=q<<1;h=F[v+H>>1];g:{if((h|0)==65535){B[((e<<2)+y|0)+2|0]=q;e=e-1|0;h=1;break g}t=(j|0)>h<<16>>16?t:0}C[v+I>>1]=h;v=q|1;A=v<<1;h=F[A+H>>1];h:{if((h|0)!=65535){t=(j|0)>h<<16>>16?t:0;break h}B[((e<<2)+y|0)+2|0]=v;e=e-1|0;h=1}C[I+A>>1]=h;q=q+2|0;n=n-2|0;if(n){continue}break}}if(l){h=F[(q<<1)+H>>1];i:{if((h|0)!=65535){t=(j|0)>h<<16>>16?t:0;break i}B[((e<<2)+y|0)+2|0]=q;e=e-1|0;h=1}C[I+(q<<1)>>1]=h}C[o+2>>1]=t;C[o>>1]=f;v=((z>>>3)+(z>>>1)|0)+3|0;q=0;j:{if((e|0)==(g|0)){A=(r+I|0)+2|0;e=0;while(1){r=e;x=C[(e<<1)+H>>1];G=q+A|0;h=G;e=k;B[h|0]=e;B[h+1|0]=e>>>8;B[h+2|0]=e>>>16;B[h+3|0]=e>>>24;B[h+4|0]=m;B[h+5|0]=m>>>8;B[h+6|0]=m>>>16;B[h+7|0]=m>>>24;k:{if((x|0)<9){break k}e=x-9|0;h=(e>>>3|0)+1|0;n=h&7;t=8;if(e>>>0>=56){e=h&1073741816;while(1){l=t+G|0;h=k;B[l|0]=h;B[l+1|0]=h>>>8;B[l+2|0]=h>>>16;B[l+3|0]=h>>>24;h=m;B[l+4|0]=h;B[l+5|0]=h>>>8;B[l+6|0]=h>>>16;B[l+7|0]=h>>>24;j=k;B[l+56|0]=j;B[l+57|0]=j>>>8;B[l+58|0]=j>>>16;B[l+59|0]=j>>>24;B[l+60|0]=h;B[l+61|0]=h>>>8;B[l+62|0]=h>>>16;B[l+63|0]=h>>>24;B[l+48|0]=j;B[l+49|0]=j>>>8;B[l+50|0]=j>>>16;B[l+51|0]=j>>>24;B[l+52|0]=h;B[l+53|0]=h>>>8;B[l+54|0]=h>>>16;B[l+55|0]=h>>>24;B[l+40|0]=j;B[l+41|0]=j>>>8;B[l+42|0]=j>>>16;B[l+43|0]=j>>>24;B[l+44|0]=h;B[l+45|0]=h>>>8;B[l+46|0]=h>>>16;B[l+47|0]=h>>>24;B[l+32|0]=j;B[l+33|0]=j>>>8;B[l+34|0]=j>>>16;B[l+35|0]=j>>>24;B[l+36|0]=h;B[l+37|0]=h>>>8;B[l+38|0]=h>>>16;B[l+39|0]=h>>>24;B[l+24|0]=j;B[l+25|0]=j>>>8;B[l+26|0]=j>>>16;B[l+27|0]=j>>>24;B[l+28|0]=h;B[l+29|0]=h>>>8;B[l+30|0]=h>>>16;B[l+31|0]=h>>>24;B[l+16|0]=j;B[l+17|0]=j>>>8;B[l+18|0]=j>>>16;B[l+19|0]=j>>>24;B[l+20|0]=h;B[l+21|0]=h>>>8;B[l+22|0]=h>>>16;B[l+23|0]=h>>>24;B[l+8|0]=j;B[l+9|0]=j>>>8;B[l+10|0]=j>>>16;B[l+11|0]=j>>>24;B[l+12|0]=h;B[l+13|0]=h>>>8;B[l+14|0]=h>>>16;B[l+15|0]=h>>>24;t=t- -64|0;e=e-8|0;if(e){continue}break}}if(!n){break k}while(1){h=t+G|0;e=k;B[h|0]=e;B[h+1|0]=e>>>8;B[h+2|0]=e>>>16;B[h+3|0]=e>>>24;B[h+4|0]=m;B[h+5|0]=m>>>8;B[h+6|0]=m>>>16;B[h+7|0]=m>>>24;t=t+8|0;n=n-1|0;if(n){continue}break}}m=m+16843009|0;e=k+16843009|0;m=e>>>0<16843009?m+1|0:m;k=e;e=r+1|0;q=q+x|0;if((p|0)!=(r|0)){continue}break}k=v<<1;q=0;e=0;while(1){B[(((e&g)<<2)+y|0)+2|0]=E[q+A|0];B[(((g&e+v)<<2)+y|0)+2|0]=E[A+(q|1)|0];e=g&e+k;q=q+2|0;if(z>>>0>q>>>0){continue}break}break j}n=0;while(1){t=0;k=(n<<1)+H|0;if(C[k>>1]>=1){while(1){B[((q<<2)+y|0)+2|0]=n;while(1){q=g&q+v;if(q>>>0>e>>>0){continue}break}t=t+1|0;if((t|0)>1]){continue}break}}k=(n|0)!=(p|0);n=n+1|0;if(k){continue}break}n=-1;if(q){break e}}g=f+1|0;n=0;q=0;while(1){f=(q<<2)+y|0;k=I+(E[f+2|0]<<1)|0;e=F[k>>1];C[k>>1]=e+1;k=g+(M(e)^-32)|0;B[f+3|0]=k;C[f>>1]=(e<>>0>4294967176){break d}e=w-s|0;j=s+K|0;l=a+255|0;q=l-3|0;l:{m:{if(F[o+2>>1]){if(!e){g=-72;break d}n:{o:{if(e>>>0>=4){g=-1;f=E[(e+j|0)-1|0];if(!f){break d}if(e>>>0<=4294967176){break o}g=e;break d}k=E[j|0];p:{switch(e-2|0){case 1:k=E[j+2|0]<<16|k;case 0:k=(E[j+1|0]<<8)+k|0;break;default:break p}}f=E[(e+j|0)-1|0];if(!f){g=-20;break d}e=(M(f)-(e<<3)|0)+9|0;break n}i=e-4|0;e=j+i|0;k=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24);e=M(f)-23|0}f=F[o>>1];m=f+e|0;h=k>>>0-m|0;g=D[(f<<2)+419456>>2];q:{if(m>>>0>32){break q}r:{if((i|0)>=4){k=m>>>3|0;m=m&7;break r}if(!i){i=0;break q}e=m>>>3|0;k=j>>>0>(j+i|0)-e>>>0?i:e;m=m-(k<<3)|0}i=i-k|0;e=j+i|0;k=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24)}p=g&h;s=o+4|0;f=f+m|0;m=g&k>>>0-f;if(f>>>0>32){e=f;f=a;break l}if((i|0)>=4){e=f&7;i=i-(f>>>3|0)|0;f=j+i|0;k=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);break m}if(!i){i=0;e=f;break m}e=f>>>3|0;g=j>>>0>(j+i|0)-e>>>0?i:e;i=i-g|0;e=j+i|0;k=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24);e=f-(g<<3)|0;if(e>>>0<=32){break m}f=a;break l}if(!e){g=-72;break d}s:{t:{if(e>>>0>=4){g=-1;f=E[(e+j|0)-1|0];if(!f){break d}if(e>>>0<=4294967176){break t}g=e;break d}k=E[j|0];u:{switch(e-2|0){case 1:k=E[j+2|0]<<16|k;case 0:k=(E[j+1|0]<<8)+k|0;break;default:break u}}f=E[(e+j|0)-1|0];if(!f){g=-20;break d}e=(M(f)-(e<<3)|0)+9|0;break s}i=e-4|0;e=j+i|0;k=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24);e=M(f)-23|0}f=F[o>>1];m=f+e|0;h=k>>>0-m|0;g=D[(f<<2)+419456>>2];v:{if(m>>>0>32){break v}w:{if((i|0)>=4){k=m>>>3|0;m=m&7;break w}if(!i){i=0;break v}e=m>>>3|0;k=j>>>0>(j+i|0)-e>>>0?i:e;m=m-(k<<3)|0}i=i-k|0;e=j+i|0;k=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24)}p=g&h;r=o+4|0;f=f+m|0;m=g&k>>>0-f;x:{if(f>>>0>32){e=f;f=a;break x}y:{if((i|0)>=4){e=f&7;i=i-(f>>>3|0)|0;f=j+i|0;k=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);break y}if(!i){i=0;e=f;break y}e=f>>>3|0;g=j>>>0>(j+i|0)-e>>>0?i:e;i=i-g|0;e=j+i|0;k=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24);e=f-(g<<3)|0;if(e>>>0<=32){break y}f=a;break x}f=a;while(1){z:{if((i|0)>=4){h=e&7;g=e>>>3|0;e=1;break z}if(!i){i=0;break x}g=e>>>3|0;k=(j+i|0)-g|0;g=j>>>0>k>>>0?i:g;h=e-(g<<3)|0;e=j>>>0<=k>>>0}i=i-g|0;n=j+i|0;k=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);if(f>>>0>=q>>>0){e=h;break x}if(!e){e=h;break x}e=r+(p<<2)|0;p=F[e>>1];g=E[e+3|0];B[f|0]=E[e+2|0];e=r+(m<<2)|0;o=F[e>>1];m=E[e+3|0];B[f+1|0]=E[e+2|0];e=g+h|0;p=p+(D[(g<<2)+419456>>2]&k>>>0-e)|0;g=e+m|0;m=o+(D[(m<<2)+419456>>2]&k>>>0-g)|0;A:{B:{if(g>>>0>32){e=g;break B}if((i|0)>=4){e=g&7;i=i-(g>>>3|0)|0;g=j+i|0;k=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);break A}if(!i){i=0;e=g;break B}e=g>>>3|0;h=n-e|0;k=g;g=h>>>0>>0?i:e;e=k-(g<<3)|0;i=i-g|0;g=j+i|0;k=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);if(h>>>0>=j>>>0){break A}}f=f+2|0;break x}g=r+(p<<2)|0;n=F[g>>1];h=E[g+3|0];B[f+2|0]=E[g+2|0];g=r+(m<<2)|0;o=F[g>>1];m=E[g+3|0];B[f+3|0]=E[g+2|0];e=e+h|0;p=n+(D[(h<<2)+419456>>2]&k>>>0-e)|0;e=e+m|0;m=o+(D[(m<<2)+419456>>2]&k>>>0-e)|0;f=f+4|0;if(e>>>0<33){continue}break}}g=-70;l=l-2|0;if(l>>>0>>0){break d}while(1){h=r+(p<<2)|0;t=F[h>>1];q=E[h+3|0];B[f|0]=E[h+2|0];o=f+1|0;C:{s=e+q|0;if(s>>>0>=33){e=f+2|0}else{D:{E:{if((i|0)>=4){p=s>>>3|0;n=s&7;break E}if(!i){i=0;n=s;h=k;break D}e=s>>>3|0;p=j>>>0>(j+i|0)-e>>>0?i:e;n=s-(p<<3)|0}i=i-p|0;e=j+i|0;h=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24)}if(l>>>0>>0){break d}p=t+(D[(q<<2)+419456>>2]&k>>>0-s)|0;e=r+(m<<2)|0;m=F[e>>1];k=E[e+3|0];B[f+1|0]=E[e+2|0];o=f+2|0;e=k+n|0;if(e>>>0<33){break C}m=p;e=f+3|0}B[o|0]=E[(r+(m<<2)|0)+2|0];g=e-J|0;break d}n=D[(k<<2)+419456>>2]&h>>>0-e;F:{G:{if((i|0)>=4){h=e>>>3|0;e=e&7;break G}if(!i){i=0;break F}f=e;e=e>>>3|0;h=j>>>0>(j+i|0)-e>>>0?i:e;e=f-(h<<3)|0}i=i-h|0;f=j+i|0;h=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24)}k=h;m=m+n|0;f=o;if(l>>>0>=f>>>0){continue}break}break d}f=a;while(1){H:{if((i|0)>=4){g=e&7;k=e>>>3|0;e=1;break H}if(!i){i=0;break l}g=e>>>3|0;h=(j+i|0)-g|0;k=h>>>0>>0?i:g;g=e-(k<<3)|0;e=h>>>0>=j>>>0}i=i-k|0;h=j+i|0;k=E[h|0]|E[h+1|0]<<8|(E[h+2|0]<<16|E[h+3|0]<<24);if(f>>>0>=q>>>0){e=g;break l}if(!e){e=g;break l}e=s+(p<<2)|0;p=F[e>>1];n=E[e+3|0];B[f|0]=E[e+2|0];e=s+(m<<2)|0;m=F[e>>1];o=E[e+3|0];B[f+1|0]=E[e+2|0];p=p+(k<>>0-n|0)|0;e=g+n|0;m=m+(k<>>0-o|0)|0;I:{g=e+o|0;J:{if(g>>>0>32){e=g;break J}if((i|0)>=4){e=g&7;i=i-(g>>>3|0)|0;g=j+i|0;k=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);break I}if(!i){i=0;e=g;break J}e=g>>>3|0;h=h-e|0;k=g;g=h>>>0>>0?i:e;e=k-(g<<3)|0;i=i-g|0;g=j+i|0;k=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);if(h>>>0>=j>>>0){break I}}f=f+2|0;break l}g=s+(p<<2)|0;p=F[g>>1];h=E[g+3|0];B[f+2|0]=E[g+2|0];g=s+(m<<2)|0;m=F[g>>1];n=E[g+3|0];B[f+3|0]=E[g+2|0];p=p+(k<>>0-h|0)|0;e=e+h|0;m=m+(k<>>0-n|0)|0;f=f+4|0;e=e+n|0;if(e>>>0<33){continue}break}}g=-70;r=l-2|0;if(r>>>0>>0){break d}while(1){h=s+(p<<2)|0;l=F[h>>1];p=E[h+3|0];B[f|0]=E[h+2|0];o=f+1|0;K:{h=e+p|0;if(h>>>0>=33){e=f+2|0}else{L:{M:{if((i|0)>=4){n=h&7;h=h>>>3|0;break M}if(!i){i=0;n=h;h=k;break L}n=h;h=h>>>3|0;h=j>>>0>(j+i|0)-h>>>0?i:h;n=n-(h<<3)|0}i=i-h|0;h=j+i|0;h=E[h|0]|E[h+1|0]<<8|(E[h+2|0]<<16|E[h+3|0]<<24)}if(o>>>0>r>>>0){break d}p=l+(k<>>0-p|0)|0;e=s+(m<<2)|0;m=F[e>>1];k=E[e+3|0];B[f+1|0]=E[e+2|0];o=f+2|0;e=k+n|0;if(e>>>0<33){break K}m=p;e=f+3|0}B[o|0]=E[(s+(m<<2)|0)+2|0];g=e-J|0;break d}n=h<>>0-k|0;N:{O:{if((i|0)>=4){h=e>>>3|0;e=e&7;break O}if(!i){i=0;break N}f=e;e=e>>>3|0;h=j>>>0>(j+i|0)-e>>>0?i:e;e=f-(h<<3)|0}i=i-h|0;f=j+i|0;h=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24)}k=h;m=m+n|0;f=o;if(r>>>0>=f>>>0){continue}break}}Fa=u+528|0;h=g;o=h;if(h>>>0>4294967176){break b}}f=b;D[f>>2]=0;D[f+4>>2]=0;e=0;D[f+48>>2]=0;D[f+40>>2]=0;D[f+44>>2]=0;D[f+32>>2]=0;D[f+36>>2]=0;D[f+24>>2]=0;D[f+28>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;D[f+8>>2]=0;D[f+12>>2]=0;o=-20;if(!h){break b}f=0;while(1){g=a+f|0;k=E[g|0];if(k>>>0>11){break b}k=(k<<2)+b|0;D[k>>2]=D[k>>2]+1;e=(1<>1)+e|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}if(!e|e>>>0>4095){break b}f=d;d=32-M(e)|0;D[f>>2]=d;d=(1<>2]=D[a>>2]+1;a=D[b+4>>2];if(a>>>0<2|a&1){break b}D[c>>2]=h+1;o=w+1|0}return o}D[b>>2]=0;D[b+4>>2]=0;D[b+48>>2]=0;D[b+40>>2]=0;D[b+44>>2]=0;D[b+32>>2]=0;D[b+36>>2]=0;D[b+24>>2]=0;D[b+28>>2]=0;D[b+16>>2]=0;D[b+20>>2]=0;D[b+8>>2]=0;D[b+12>>2]=0;return-20}function Ob(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=K(0),k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=K(0),v=K(0),w=0,x=0,y=0,z=0,A=K(0),C=K(0),F=0,G=K(0),I=0,M=K(0),N=K(0),O=0,P=0,Q=K(0),R=K(0),S=0,T=K(0),U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;k=Fa-48|0;Fa=k;a:{b:{if(c&4){e=E[a+4|0];d=E[a+5|0];f=E[a+6|0];i=E[a+7|0];B[k+47|0]=E[(i>>>6|0)+29568|0];B[k+44|0]=E[(i&3)+29568|0];B[k+43|0]=E[(f>>>6|0)+29568|0];B[k+40|0]=E[(f&3)+29568|0];B[k+39|0]=E[(d>>>6|0)+29568|0];B[k+36|0]=E[(d&3)+29568|0];B[k+35|0]=E[(e>>>6|0)+29568|0];B[k+32|0]=E[(e&3)+29568|0];B[k+46|0]=E[(i>>>4&3)+29568|0];B[k+45|0]=E[(i>>>2&3)+29568|0];B[k+42|0]=E[(f>>>4&3)+29568|0];B[k+41|0]=E[(f>>>2&3)+29568|0];B[k+38|0]=E[(d>>>4&3)+29568|0];B[k+37|0]=E[(d>>>2&3)+29568|0];B[k+34|0]=E[(e>>>4&3)+29568|0];B[k+33|0]=E[(e>>>2&3)+29568|0];I=-1;break b}e=E[b+2|0];c:{s=E[b+4|0];f=E[b|0];d=E[b+1|0];if((s|0)!=(f|0)|(d|0)!=E[b+5|0]|((e|0)!=E[b+6|0]|(f|0)!=E[b+8|0])){break c}if((d|0)!=E[b+9|0]|(e|0)!=E[b+10|0]|((f|0)!=E[b+12|0]|(d|0)!=E[b+13|0])){break c}if((e|0)!=E[b+14|0]|(f|0)!=E[b+16|0]|((d|0)!=E[b+17|0]|(e|0)!=E[b+18|0])){break c}if((f|0)!=E[b+20|0]|(d|0)!=E[b+21|0]|((e|0)!=E[b+22|0]|(f|0)!=E[b+24|0])){break c}if((d|0)!=E[b+25|0]|(e|0)!=E[b+26|0]|((f|0)!=E[b+28|0]|(d|0)!=E[b+29|0])){break c}if((e|0)!=E[b+30|0]|(f|0)!=E[b+32|0]|((d|0)!=E[b+33|0]|(e|0)!=E[b+34|0])){break c}if((f|0)!=E[b+36|0]|(d|0)!=E[b+37|0]|((e|0)!=E[b+38|0]|(f|0)!=E[b+40|0])){break c}if((d|0)!=E[b+41|0]|(e|0)!=E[b+42|0]|((f|0)!=E[b+44|0]|(d|0)!=E[b+45|0])){break c}if((e|0)!=E[b+46|0]|(f|0)!=E[b+48|0]|((d|0)!=E[b+49|0]|(e|0)!=E[b+50|0])){break c}if((f|0)!=E[b+52|0]|(d|0)!=E[b+53|0]|((e|0)!=E[b+54|0]|(f|0)!=E[b+56|0])){break c}if((d|0)!=E[b+57|0]|(e|0)!=E[b+58|0]|((f|0)!=E[b+60|0]|(d|0)!=E[b+61|0])){break c}if((e|0)!=E[b+62|0]){break c}h=170;c=e<<1;e=d<<1;d=f<<1;b=E[c+422465|0]|(E[e+423489|0]<<5|E[d+422465|0]<<11);c=E[c+422464|0]|(E[e+423488|0]<<5|E[d+422464|0]<<11);d:{if((b|0)==(c|0)){if(!c){b=0;g=1;h=85;break d}h=0;b=c-1|0}if(b>>>0<=c>>>0){g=c;break d}h=h|85;g=b;b=c}B[a+2|0]=b;B[a|0]=g;c=J(h,16843009);B[a+4|0]=c;B[a+5|0]=c>>>8;B[a+6|0]=c>>>16;B[a+7|0]=c>>>24;B[a+3|0]=b>>>8;B[a+1|0]=g>>>8;break a}i=s;l=1;I=f;o=f;n=f;p=e;q=e;O=e;m=d;t=d;P=d;while(1){i=i&255;o=(i|0)>(o|0)?o:i;n=i>>>0>>0?n:i;h=(l<<2)+b|0;g=E[h+2|0];p=(g|0)>(p|0)?p:g;h=E[h+1|0];m=(h|0)>(m|0)?m:h;q=g>>>0>>0?q:g;t=h>>>0>>0?t:h;I=i+I|0;O=g+O|0;P=h+P|0;l=l+1|0;if((l|0)!=16){i=E[(l<<2)+b|0];continue}break}O=O+8>>>4|0;P=P+8>>>4|0;I=I+8>>>4|0;h=e;g=d;i=f;l=1;while(1){h=(h&255)-O|0;g=(g&255)-P|0;w=J(h,g)+w|0;i=(i&255)-I|0;x=J(i,h)+x|0;y=J(g,i)+y|0;z=J(h,h)+z|0;r=J(g,g)+r|0;F=J(i,i)+F|0;if((l|0)!=16){i=(l<<2)+b|0;h=E[i+2|0];g=E[i+1|0];i=E[i|0];l=l+1|0;continue}break}A=K(K(F|0)*K(.003921568859368563));M=K(n-o|0);j=K(K(y|0)*K(.003921568859368563));C=K(t-m|0);u=K(K(x|0)*K(.003921568859368563));N=K(q-p|0);R=K(K(K(A*M)+K(j*C))+K(u*N));G=K(K(r|0)*K(.003921568859368563));v=K(K(w|0)*K(.003921568859368563));Q=K(K(K(j*M)+K(G*C))+K(v*N));C=K(K(u*M)+K(v*C));M=K(K(z|0)*K(.003921568859368563));C=K(C+K(M*N));N=K(K(K(R*A)+K(Q*j))+K(C*u));T=K(K(K(R*j)+K(Q*G))+K(C*v));C=K(K(K(R*u)+K(Q*v))+K(C*M));R=K(K(K(N*A)+K(T*j))+K(C*u));Q=K(R*A);A=K(K(K(N*j)+K(T*G))+K(C*v));C=K(K(K(N*u)+K(T*v))+K(C*M));N=K(K(Q+K(A*j))+K(C*u));Q=K(L(N));G=K(K(K(R*j)+K(A*G))+K(C*v));j=K(L(G));j=jv?j:v;e:{if(!(j>=K(2))){i=117;h=601;g=306;break e}j=K(K(1024)/j);u=K(u*j);f:{if(K(L(u))>>8|0)>>>8|0;g=J(E[i+1|0],63)+128|0;i=J(E[i+2|0],31)+128|0;m=e?2:m;e=e?d:r;d=(e|0)<(f|0);m=d?3:m;e=d?f:e;d=(e|0)<(o|0);f=d?4:m;e=d?o:e;d=(e|0)<(p|0);f=d?5:f;e=d?p:e;d=(e|0)<(n|0);f=d?6:f;e=d?n:e;d=(e|0)<(q|0);f=d?7:f;e=d?q:e;d=(e|0)<(t|0);f=d?8:f;e=d?t:e;d=(e|0)<(s|0);f=d?9:f;e=d?s:e;d=(e|0)<(l|0);f=d?10:f;e=d?l:e;d=(e|0)<(w|0);f=d?11:f;e=d?w:e;d=(e|0)<(x|0);f=d?12:f;e=d?x:e;d=(e|0)<(y|0);f=d?13:f;e=d?y:e;d=(e|0)<(z|0);e=(((h|0)>((d?z:e)|0)?15:d?14:f)<<2)+b|0;d=J(E[e|0],31)+128|0;f=(d>>>8|0)+d>>>8|0;d=J(E[e+1|0],63)+128|0;e=J(E[e+2|0],31)+128|0;xc(b,F,(g>>>8|0)+g>>>8|0,(i>>>8|0)+i>>>8|0,f,(d>>>8|0)+d>>>8|0,(e>>>8|0)+e>>>8|0,k+32|0)}V=c&2?3:c&1?2:1;i=0;while(1){t=k+32|0;e=k+16|0;c=0;d=0;f=0;h=0;m=0;p=0;g=0;o=0;while(1){n=E[c+t|0];q=(c<<2)+b|0;s=E[q+2|0];m=J(n,s)+m|0;l=E[q+1|0];f=J(l,n)+f|0;q=E[q|0];o=J(q,n)+o|0;p=p+s|0;h=h+l|0;d=d+q|0;g=D[(n<<2)+414736>>2]+g|0;c=c+1|0;if((c|0)!=16){continue}break}G=K((g&255)>>>0);M=K((g>>>16&255)>>>0);j=K((g>>>8&255)>>>0);A=K(K(G*M)-K(j*j));S=K(L(A))>>0);v=K(K(K(d>>>0)*K(3))-u);A=K(K(3)/A);G=K(A*G);j=K(A*K(-j));H[e>>2]=K(G*u)+K(j*v);C=K(j*u);u=K(A*M);H[k>>2]=C+K(u*v);v=K(f>>>0);A=K(K(K(h>>>0)*K(3))-v);H[e+4>>2]=K(G*v)+K(A*j);H[k+4>>2]=K(j*v)+K(A*u);v=K(m>>>0);A=K(K(K(p>>>0)*K(3))-v);H[e+8>>2]=K(G*v)+K(A*j);H[k+8>>2]=K(j*v)+K(A*u);W=b+60|0;X=b+56|0;Y=b+52|0;Z=b+48|0;_=b+44|0;$=b+40|0;aa=b+36|0;ba=b+32|0;ca=b+28|0;da=b+24|0;ea=b+20|0;fa=b+16|0;ga=b+12|0;ha=b+8|0;ia=b+4|0;c=0;while(1){r=c<<2;U=r+e|0;h:{if(!(H[k+r>>2]>K(255)?1:H[U>>2]>>0>>0?d:f;g=E[c+ha|0];m=g>>>0>h>>>0?h:g;h=E[c+ga|0];o=h>>>0>m>>>0?m:h;m=E[c+fa|0];p=o>>>0>>0?o:m;o=E[c+ea|0];n=o>>>0>p>>>0?p:o;p=E[c+da|0];q=n>>>0

>>0?n:p;n=E[c+ca|0];t=n>>>0>q>>>0?q:n;q=E[c+ba|0];s=q>>>0>t>>>0?t:q;t=E[c+aa|0];l=t>>>0>s>>>0?s:t;s=E[c+$|0];w=l>>>0>>0?l:s;l=E[c+_|0];x=l>>>0>w>>>0?w:l;w=E[c+Z|0];y=w>>>0>x>>>0?x:w;x=E[c+Y|0];z=x>>>0>y>>>0?y:x;y=E[c+X|0];F=y>>>0>z>>>0?z:y;z=E[c+W|0];F=z>>>0>F>>>0?F:z;d=d>>>0>f>>>0?d:f;d=d>>>0>g>>>0?d:g;d=d>>>0>h>>>0?d:h;d=d>>>0>m>>>0?d:m;d=d>>>0>o>>>0?d:o;d=d>>>0>p>>>0?d:p;d=d>>>0>n>>>0?d:n;d=d>>>0>q>>>0?d:q;d=d>>>0>t>>>0?d:t;d=d>>>0>s>>>0?d:s;d=d>>>0>l>>>0?d:l;d=d>>>0>w>>>0?d:w;d=d>>>0>x>>>0?d:x;d=d>>>0>y>>>0?d:y;if((F|0)!=((d>>>0>z>>>0?d:z)|0)){break h}j=K(F>>>0);H[U>>2]=j;H[k+r>>2]=j}c=c+1|0;if((c|0)!=3){continue}break}}i:{if(S){if((I|0)<=-1){O=(E[b+62|0]+(E[b+58|0]+(E[b+54|0]+(E[b+50|0]+(E[b+46|0]+(E[b+42|0]+(E[b+38|0]+(E[b+34|0]+(E[b+30|0]+(E[b+26|0]+(E[b+22|0]+(E[b+18|0]+(E[b+14|0]+(E[b+10|0]+(E[b+2|0]+E[b+6|0]|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)+8>>>4|0;P=(E[b+61|0]+(E[b+57|0]+(E[b+53|0]+(E[b+49|0]+(E[b+45|0]+(E[b+41|0]+(E[b+37|0]+(E[b+33|0]+(E[b+29|0]+(E[b+25|0]+(E[b+21|0]+(E[b+17|0]+(E[b+13|0]+(E[b+9|0]+(E[b+1|0]+E[b+5|0]|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)+8>>>4|0;I=(E[b+60|0]+(E[b+56|0]+(E[b+52|0]+(E[b+48|0]+(E[b+44|0]+(E[b+40|0]+(E[b+36|0]+(E[b+32|0]+(E[b+28|0]+(E[b+24|0]+(E[b+20|0]+(E[b+16|0]+(E[b+12|0]+(E[b+8|0]+(E[b|0]+E[b+4|0]|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)|0)+8>>>4|0}c=O<<1;h=E[c+422465|0];e=P<<1;g=E[e+423489|0];d=I<<1;l=E[d+422465|0];m=E[e+423488|0];o=E[d+422464|0];c=E[c+422464|0];break i}j=K(K(H[k+8>>2]*K(.12156862765550613))+K(.5));j:{if(K(L(j))>2]*K(.24705882370471954))+K(.5));k:{if(K(L(j))0;g=g?c:63;m=(g|0)>0;j=K(K(H[k>>2]*K(.12156862765550613))+K(.5));l:{if(K(L(j))0;j=K(K(H[k+24>>2]*K(.12156862765550613))+K(.5));m:{if(K(L(j))0;h=f?e:0;g=m?g:0;l=o?d:0;j=K(K(H[k+20>>2]*K(.24705882370471954))+K(.5));n:{if(K(L(j))0?c:0;j=K(K(H[k+16>>2]*K(.12156862765550613))+K(.5));o:{if(K(L(j))0?c:0;c=n?p:0}xc(b,o,m,c,l,g,h,k+32|0);i=i+1|0;if((V|0)!=(i|0)){continue}break}e=c|m<<5|o<<11;c=e&65535;d=g<<5|h|l<<11;b=d&65535;if((c|0)==(b|0)){c=b?0:1431655765;B[a+4|0]=c;B[a+5|0]=c>>>8;B[a+6|0]=c>>>16;B[a+7|0]=c>>>24;c=b?d-1|0:0;B[a+2|0]=c;b=b?e:1;B[a|0]=b;B[a+3|0]=c>>>8;B[a+1|0]=b>>>8;break a}e=b>>>0>c>>>0;d=e?c:b;B[a+2|0]=d;b=e?b:c;B[a|0]=b;B[a+3|0]=d>>>8;B[a+1|0]=b>>>8;c=E[k+47|0];d=E[k+46|0];f=E[k+45|0];i=E[k+44|0];g=E[k+43|0];h=E[k+42|0];m=E[k+41|0];I=E[k+40|0];o=E[k+39|0];p=E[k+38|0];O=E[k+37|0];P=E[k+36|0];n=E[E[k+32|0]+29572|0]|E[E[k+33|0]+29572|0]<<2|E[E[k+34|0]+29572|0]<<4|E[E[k+35|0]+29572|0]<<6;b=e?85:0;B[a+4|0]=n^b;e=n|E[P+29572|0]<<8|E[O+29572|0]<<10|E[p+29572|0]<<12|E[o+29572|0]<<14;B[a+5|0]=b^e>>>8;e=e|E[I+29572|0]<<16|E[m+29572|0]<<18|E[h+29572|0]<<20|E[g+29572|0]<<22;B[a+6|0]=b^e>>>16;B[a+7|0]=b^(e|E[i+29572|0]<<24|E[f+29572|0]<<26|E[d+29572|0]<<28|E[c+29572|0]<<30)>>>24}Fa=k+48|0}function Yc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=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,C=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0;o=Fa-32|0;Fa=o;f=-20;a:{if(d>>>0<10){break a}h=E[c+4|0]|E[c+5|0]<<8;g=E[c|0]|E[c+1|0]<<8;l=g+6|0;i=E[c+2|0]|E[c+3|0]<<8;q=h+(l+i|0)|0;if(q>>>0>d>>>0){break a}if(!g){f=-72;break a}j=c+6|0;A=F[e+2>>1];b:{if(g>>>0>=4){f=-1;j=E[(g+j|0)-1|0];if(!j){break a}r=g+2|0;g=r+c|0;m=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);g=M(j)-23|0;break b}m=E[j|0];c:{switch(g-2|0){case 1:m=E[c+8|0]<<16|m;case 0:m=(E[c+7|0]<<8)+m|0;break;default:break c}}j=E[(g+j|0)-1|0];if(!j){break a}r=6;g=(M(j)-(g<<3)|0)+9|0}if(!i){f=-72;break a}w=c+l|0;d:{if(i>>>0>=4){f=-1;j=E[(i+w|0)-1|0];if(!j){break a}s=i-4|0;f=s+w|0;y=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);j=M(j)-23|0;break d}y=E[w|0];e:{switch(i-2|0){case 1:y=E[w+2|0]<<16|y;case 0:y=(E[w+1|0]<<8)+y|0;break;default:break e}}f=E[(i+w|0)-1|0];if(!f){f=-20;break a}j=(M(f)-(i<<3)|0)+9|0}f=-72;if(!h){break a}x=i+w|0;l=h+x|0;f:{if(h>>>0>=4){f=-1;i=E[l-1|0];if(!i){break a}u=h-4|0;f=x+u|0;z=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);i=M(i)-23|0;break f}z=E[x|0];g:{switch(h-2|0){case 1:z=E[x+2|0]<<16|z;case 0:z=(E[x+1|0]<<8)+z|0;break;default:break g}}f=E[l-1|0];if(!f){f=-20;break a}i=(M(f)-(h<<3)|0)+9|0}f=Zc(o+8|0,l,d-q|0);if(f>>>0>4294967176){break a}n=e+4|0;p=0-A&31;v=D[o+16>>2];f=D[o+12>>2];k=D[o+8>>2];d=b+3>>>2|0;l=d+a|0;K=a+b|0;L=K-3|0;q=d+l|0;A=q+d|0;h:{if(L>>>0<=A>>>0){e=A;h=q;d=l;break h}P=D[o+24>>2];d=l;h=q;e=A;while(1){t=(m<>>p<<2)+n|0;H=F[t>>1];B[a|0]=H;B[a+1|0]=H>>>8;I=E[t+2|0];H=E[t+3|0];t=(y<>>p<<2)+n|0;C=F[t>>1];B[d|0]=C;B[d+1|0]=C>>>8;C=E[t+2|0];N=E[t+3|0];t=(z<>>p<<2)+n|0;G=F[t>>1];B[h|0]=G;B[h+1|0]=G>>>8;G=E[t+2|0];O=E[t+3|0];t=(k<>>p<<2)+n|0;J=F[t>>1];B[e|0]=J;B[e+1|0]=J>>>8;J=E[t+2|0];t=E[t+3|0];H=a+H|0;g=g+I|0;a=(m<>>p<<2)+n|0;I=F[a>>1];B[H|0]=I;B[H+1|0]=I>>>8;I=E[a+2|0];Q=E[a+3|0];d=d+N|0;j=j+C|0;a=(y<>>p<<2)+n|0;C=F[a>>1];B[d|0]=C;B[d+1|0]=C>>>8;C=E[a+2|0];N=E[a+3|0];h=h+O|0;i=i+G|0;a=(z<>>p<<2)+n|0;G=F[a>>1];B[h|0]=G;B[h+1|0]=G>>>8;G=E[a+2|0];O=E[a+3|0];e=e+t|0;J=f+J|0;f=(k<>>p<<2)+n|0;a=F[f>>1];B[e|0]=a;B[e+1|0]=a>>>8;g=g+I|0;if((r|0)<10){t=3}else{r=r-(g>>>3|0)|0;a=r+c|0;m=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);g=g&7;t=0}I=E[f+3|0];f=E[f+2|0];j=j+C|0;i:{if((s|0)<=3){t=3;break i}s=s-(j>>>3|0)|0;a=s+w|0;y=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);j=j&7}i=i+G|0;j:{if((u|0)<=3){t=3;break j}u=u-(i>>>3|0)|0;a=x+u|0;z=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);i=i&7}e=e+I|0;f=f+J|0;k:{if(v>>>0

>>0){t=3;break k}v=v-(f>>>3|0)|0;k=E[v|0]|E[v+1|0]<<8|(E[v+2|0]<<16|E[v+3|0]<<24);f=f&7}a=H+Q|0;d=d+N|0;h=h+O|0;if(e>>>0>=L>>>0){break h}if(!t){continue}break}}D[o+16>>2]=v;D[o+12>>2]=f;D[o+8>>2]=k;if(a>>>0>l>>>0){f=-20;break a}if(d>>>0>q>>>0){f=-20;break a}f=-20;if(h>>>0>A>>>0){break a}l:{m:{n:{if(g>>>0<=32){v=l-3|0;while(1){o:{if((r|0)>=10){f=g&7;m=g>>>3|0;k=1;break o}if((r|0)==6){k=l-2|0;r=6;f=g;break m}f=g>>>3|0;k=r-f|0;m=(k|0)<6?r-6|0:f;f=g-(m<<3)|0;k=(k|0)>5}r=r-m|0;g=r+c|0;m=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);if(!k|a>>>0>=v>>>0){break n}g=(m<>>p<<2)+n|0;k=F[g>>1];B[a|0]=k;B[a+1|0]=k>>>8;a=E[g+3|0]+a|0;f=E[g+2|0]+f|0;g=(m<>>p<<2)+n|0;k=F[g>>1];B[a|0]=k;B[a+1|0]=k>>>8;a=a+E[g+3|0]|0;g=f+E[g+2|0]|0;if(g>>>0<33){continue}break}}k=l-2|0;break l}k=l-2|0;if(f>>>0<=32){break m}g=f;break l}while(1){p:{if((r|0)>=10){g=f&7;m=f>>>3|0;v=1;break p}if((r|0)==6){r=6;g=f;break l}g=f>>>3|0;v=r-g|0;m=(v|0)<6?r-6|0:g;g=f-(m<<3)|0;v=(v|0)>5}r=r-m|0;f=r+c|0;m=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);if(!v|a>>>0>k>>>0){break l}f=(m<>>p<<2)+n|0;v=F[f>>1];B[a|0]=v;B[a+1|0]=v>>>8;a=E[f+3|0]+a|0;f=E[f+2|0]+g|0;if(f>>>0<=32){continue}break}g=f}if(a>>>0<=k>>>0){while(1){c=(m<>>p<<2)+n|0;f=F[c>>1];B[a|0]=f;B[a+1|0]=f>>>8;g=E[c+2|0]+g|0;a=E[c+3|0]+a|0;if(k>>>0>=a>>>0){continue}break}}q:{if(a>>>0>=l>>>0){break q}f=a;c=m<>>p|0;a=(c<<2)+n|0;B[f|0]=E[a|0];if(E[a+3|0]==1){g=E[a+2|0]+g|0;break q}if(g>>>0>31){break q}a=E[((c<<2)+n|0)+2|0]+g|0;g=a>>>0<32?a:32}r:{s:{t:{if(j>>>0<=32){l=q-3|0;while(1){u:{if((s|0)>=4){c=j&7;f=j>>>3|0;a=1;break u}if(!s){f=q-2|0;s=0;k=w;c=j;break s}c=j>>>3|0;a=(w+s|0)-c|0;f=a>>>0>>0?s:c;c=j-(f<<3)|0;a=a>>>0>=w>>>0}s=s-f|0;k=s+w|0;y=E[k|0]|E[k+1|0]<<8|(E[k+2|0]<<16|E[k+3|0]<<24);if(!a|d>>>0>=l>>>0){break t}a=(y<>>p<<2)+n|0;f=F[a>>1];B[d|0]=f;B[d+1|0]=f>>>8;d=E[a+3|0]+d|0;c=E[a+2|0]+c|0;a=(y<>>p<<2)+n|0;f=F[a>>1];B[d|0]=f;B[d+1|0]=f>>>8;d=d+E[a+3|0]|0;j=c+E[a+2|0]|0;if(j>>>0<33){continue}break}}k=w+s|0;f=q-2|0;break r}f=q-2|0;if(c>>>0<=32){break s}j=c;break r}while(1){v:{if((s|0)>=4){j=c&7;a=c>>>3|0;c=1;break v}if(!s){j=c;break r}a=c>>>3|0;l=k-a|0;a=l>>>0>>0?s:a;j=c-(a<<3)|0;c=l>>>0>=w>>>0}s=s-a|0;k=s+w|0;y=E[k|0]|E[k+1|0]<<8|(E[k+2|0]<<16|E[k+3|0]<<24);if(!c|d>>>0>f>>>0){break r}a=(y<>>p<<2)+n|0;c=F[a>>1];B[d|0]=c;B[d+1|0]=c>>>8;d=E[a+3|0]+d|0;c=E[a+2|0]+j|0;if(c>>>0<=32){continue}break}j=c}if(d>>>0<=f>>>0){while(1){a=(y<>>p<<2)+n|0;c=F[a>>1];B[d|0]=c;B[d+1|0]=c>>>8;j=E[a+2|0]+j|0;d=E[a+3|0]+d|0;if(f>>>0>=d>>>0){continue}break}}w:{if(d>>>0>=q>>>0){break w}c=y<>>p|0;a=(c<<2)+n|0;B[d|0]=E[a|0];if(E[a+3|0]==1){j=E[a+2|0]+j|0;break w}if(j>>>0>31){break w}a=E[((c<<2)+n|0)+2|0]+j|0;j=a>>>0<32?a:32}x:{y:{z:{if(i>>>0<=32){l=A-3|0;while(1){A:{if((u|0)>=4){c=i&7;f=i>>>3|0;a=1;break A}if(!u){f=A-2|0;u=0;d=x;c=i;break y}c=i>>>3|0;a=(u+x|0)-c|0;f=a>>>0>>0?u:c;c=i-(f<<3)|0;a=a>>>0>=x>>>0}u=u-f|0;d=x+u|0;z=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);if(!a|h>>>0>=l>>>0){break z}a=(z<>>p<<2)+n|0;d=F[a>>1];B[h|0]=d;B[h+1|0]=d>>>8;d=E[a+3|0]+h|0;c=E[a+2|0]+c|0;a=(z<>>p<<2)+n|0;f=F[a>>1];B[d|0]=f;B[d+1|0]=f>>>8;h=d+E[a+3|0]|0;i=c+E[a+2|0]|0;if(i>>>0<33){continue}break}}d=u+x|0;f=A-2|0;break x}f=A-2|0;if(c>>>0<=32){break y}i=c;break x}while(1){B:{if((u|0)>=4){i=c&7;a=c>>>3|0;c=1;break B}if(!u){i=c;break x}a=c>>>3|0;d=d-a|0;a=d>>>0>>0?u:a;i=c-(a<<3)|0;c=d>>>0>=x>>>0}u=u-a|0;d=x+u|0;z=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);if(!c|f>>>0>>0){break x}a=(z<>>p<<2)+n|0;c=F[a>>1];B[h|0]=c;B[h+1|0]=c>>>8;h=E[a+3|0]+h|0;c=E[a+2|0]+i|0;if(c>>>0<=32){continue}break}i=c}if(f>>>0>=h>>>0){while(1){a=(z<>>p<<2)+n|0;c=F[a>>1];B[h|0]=c;B[h+1|0]=c>>>8;i=E[a+2|0]+i|0;h=E[a+3|0]+h|0;if(h>>>0<=f>>>0){continue}break}}C:{if(h>>>0>=A>>>0){break C}c=z<>>p|0;a=(c<<2)+n|0;B[h|0]=E[a|0];if(E[a+3|0]==1){i=E[a+2|0]+i|0;break C}if(i>>>0>31){break C}a=E[((c<<2)+n|0)+2|0]+i|0;i=a>>>0<32?a:32}D:{E:{F:{c=D[o+12>>2];if(c>>>0<=32){while(1){a=o;f=D[a+16>>2];A=D[a+24>>2];G:{if(f>>>0>=A>>>0){f=f-(c>>>3|0)|0;D[o+16>>2]=f;m=1;c=c&7;break G}h=D[o+20>>2];if((h|0)==(f|0)){a=K-2|0;h=f;break E}q=c>>>3|0;l=f-q|0;q=h>>>0>l>>>0?f-h|0:q;f=f-q|0;D[o+16>>2]=f;m=h>>>0<=l>>>0;c=c-(q<<3)|0}D[a+12>>2]=c;a=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);D[o+8>>2]=a;if(!m|e>>>0>=L>>>0){break F}f=(a<>>p<<2)+n|0;h=F[f>>1];B[e|0]=h;B[e+1|0]=h>>>8;e=E[f+3|0]+e|0;c=E[f+2|0]+c|0;a=(a<>>p<<2)+n|0;f=F[a>>1];B[e|0]=f;B[e+1|0]=f>>>8;c=c+E[a+2|0]|0;D[o+12>>2]=c;e=e+E[a+3|0]|0;if(c>>>0<33){continue}break}}a=K-2|0;break D}a=K-2|0;if(c>>>0>32){break D}h=D[o+20>>2]}while(1){l=o;H:{if(f>>>0>=A>>>0){f=f-(c>>>3|0)|0;D[o+16>>2]=f;m=1;c=c&7;break H}if((f|0)==(h|0)){break D}m=c>>>3|0;q=f-m|0;s=h>>>0>q>>>0?f-h|0:m;f=f-s|0;D[o+16>>2]=f;m=h>>>0<=q>>>0;c=c-(s<<3)|0}D[l+12>>2]=c;l=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);D[o+8>>2]=l;if(!m|a>>>0>>0){break D}l=(l<>>p<<2)+n|0;q=F[l>>1];B[e|0]=q;B[e+1|0]=q>>>8;c=E[l+2|0]+c|0;D[o+12>>2]=c;e=E[l+3|0]+e|0;if(c>>>0<=32){continue}break}}if(a>>>0>=e>>>0){while(1){f=(D[o+8>>2]<>>p<<2)+n|0;c=F[f>>1];B[e|0]=c;B[e+1|0]=c>>>8;c=D[o+12>>2]+E[f+2|0]|0;D[o+12>>2]=c;e=E[f+3|0]+e|0;if(e>>>0<=a>>>0){continue}break}}I:{if(e>>>0>=K>>>0){break I}f=e;e=D[o+8>>2]<>>p|0;a=(e<<2)+n|0;B[f|0]=E[a|0];if(E[a+3|0]==1){c=D[o+12>>2]+E[a+2|0]|0;break I}c=D[o+12>>2];if(c>>>0>31){break I}a=E[((e<<2)+n|0)+2|0]+c|0;c=a>>>0<32?a:32}f=(r|0)==6?(g|0)==32?(k|0)==(w|0)?(j|0)==32?(d|0)==(x|0)?(i|0)==32?D[o+16>>2]==D[o+20>>2]?(c|0)==32?b:-20:-20:-20:-20:-20:-20:-20:-20}Fa=o+32|0;return f}function fc(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;n=-70;m=D[c+4>>2];j=D[c>>2];p=m+j|0;a:{if(p>>>0>b-a>>>0){break a}n=-20;i=D[d>>2];if(j>>>0>e-i>>>0){break a}e=b-32|0;r=i+j|0;b=a+j|0;o=D[c+8>>2];b:{if((j|0)<=7){if((j|0)<1){break b}while(1){B[a|0]=E[i|0];i=i+1|0;a=a+1|0;if(b>>>0>a>>>0){continue}break}break b}if(b>>>0<=e>>>0){k=E[i+4|0]|E[i+5|0]<<8|(E[i+6|0]<<16|E[i+7|0]<<24);l=E[i|0]|E[i+1|0]<<8|(E[i+2|0]<<16|E[i+3|0]<<24);B[a|0]=l;B[a+1|0]=l>>>8;B[a+2|0]=l>>>16;B[a+3|0]=l>>>24;B[a+4|0]=k;B[a+5|0]=k>>>8;B[a+6|0]=k>>>16;B[a+7|0]=k>>>24;k=E[i+12|0]|E[i+13|0]<<8|(E[i+14|0]<<16|E[i+15|0]<<24);l=E[i+8|0]|E[i+9|0]<<8|(E[i+10|0]<<16|E[i+11|0]<<24);B[a+8|0]=l;B[a+9|0]=l>>>8;B[a+10|0]=l>>>16;B[a+11|0]=l>>>24;B[a+12|0]=k;B[a+13|0]=k>>>8;B[a+14|0]=k>>>16;B[a+15|0]=k>>>24;if((j|0)<17){break b}a=a+16|0;while(1){j=E[i+20|0]|E[i+21|0]<<8|(E[i+22|0]<<16|E[i+23|0]<<24);k=E[i+16|0]|E[i+17|0]<<8|(E[i+18|0]<<16|E[i+19|0]<<24);B[a|0]=k;B[a+1|0]=k>>>8;B[a+2|0]=k>>>16;B[a+3|0]=k>>>24;B[a+4|0]=j;B[a+5|0]=j>>>8;B[a+6|0]=j>>>16;B[a+7|0]=j>>>24;j=E[i+28|0]|E[i+29|0]<<8|(E[i+30|0]<<16|E[i+31|0]<<24);k=E[i+24|0]|E[i+25|0]<<8|(E[i+26|0]<<16|E[i+27|0]<<24);B[a+8|0]=k;B[a+9|0]=k>>>8;B[a+10|0]=k>>>16;B[a+11|0]=k>>>24;B[a+12|0]=j;B[a+13|0]=j>>>8;B[a+14|0]=j>>>16;B[a+15|0]=j>>>24;j=E[i+36|0]|E[i+37|0]<<8|(E[i+38|0]<<16|E[i+39|0]<<24);k=E[i+32|0]|E[i+33|0]<<8|(E[i+34|0]<<16|E[i+35|0]<<24);B[a+16|0]=k;B[a+17|0]=k>>>8;B[a+18|0]=k>>>16;B[a+19|0]=k>>>24;B[a+20|0]=j;B[a+21|0]=j>>>8;B[a+22|0]=j>>>16;B[a+23|0]=j>>>24;j=E[i+44|0]|E[i+45|0]<<8|(E[i+46|0]<<16|E[i+47|0]<<24);k=E[i+40|0]|E[i+41|0]<<8|(E[i+42|0]<<16|E[i+43|0]<<24);B[a+24|0]=k;B[a+25|0]=k>>>8;B[a+26|0]=k>>>16;B[a+27|0]=k>>>24;B[a+28|0]=j;B[a+29|0]=j>>>8;B[a+30|0]=j>>>16;B[a+31|0]=j>>>24;i=i+32|0;a=a+32|0;if(b>>>0>a>>>0){continue}break}break b}if(a>>>0<=e>>>0){j=E[i+4|0]|E[i+5|0]<<8|(E[i+6|0]<<16|E[i+7|0]<<24);k=E[i|0]|E[i+1|0]<<8|(E[i+2|0]<<16|E[i+3|0]<<24);B[a|0]=k;B[a+1|0]=k>>>8;B[a+2|0]=k>>>16;B[a+3|0]=k>>>24;B[a+4|0]=j;B[a+5|0]=j>>>8;B[a+6|0]=j>>>16;B[a+7|0]=j>>>24;j=E[i+12|0]|E[i+13|0]<<8|(E[i+14|0]<<16|E[i+15|0]<<24);k=E[i+8|0]|E[i+9|0]<<8|(E[i+10|0]<<16|E[i+11|0]<<24);B[a+8|0]=k;B[a+9|0]=k>>>8;B[a+10|0]=k>>>16;B[a+11|0]=k>>>24;B[a+12|0]=j;B[a+13|0]=j>>>8;B[a+14|0]=j>>>16;B[a+15|0]=j>>>24;q=e-a|0;if((q|0)>=17){a=a+16|0;j=i;while(1){k=E[j+20|0]|E[j+21|0]<<8|(E[j+22|0]<<16|E[j+23|0]<<24);l=E[j+16|0]|E[j+17|0]<<8|(E[j+18|0]<<16|E[j+19|0]<<24);B[a|0]=l;B[a+1|0]=l>>>8;B[a+2|0]=l>>>16;B[a+3|0]=l>>>24;B[a+4|0]=k;B[a+5|0]=k>>>8;B[a+6|0]=k>>>16;B[a+7|0]=k>>>24;k=E[j+28|0]|E[j+29|0]<<8|(E[j+30|0]<<16|E[j+31|0]<<24);l=E[j+24|0]|E[j+25|0]<<8|(E[j+26|0]<<16|E[j+27|0]<<24);B[a+8|0]=l;B[a+9|0]=l>>>8;B[a+10|0]=l>>>16;B[a+11|0]=l>>>24;B[a+12|0]=k;B[a+13|0]=k>>>8;B[a+14|0]=k>>>16;B[a+15|0]=k>>>24;k=E[j+36|0]|E[j+37|0]<<8|(E[j+38|0]<<16|E[j+39|0]<<24);l=E[j+32|0]|E[j+33|0]<<8|(E[j+34|0]<<16|E[j+35|0]<<24);B[a+16|0]=l;B[a+17|0]=l>>>8;B[a+18|0]=l>>>16;B[a+19|0]=l>>>24;B[a+20|0]=k;B[a+21|0]=k>>>8;B[a+22|0]=k>>>16;B[a+23|0]=k>>>24;k=E[j+44|0]|E[j+45|0]<<8|(E[j+46|0]<<16|E[j+47|0]<<24);l=E[j+40|0]|E[j+41|0]<<8|(E[j+42|0]<<16|E[j+43|0]<<24);B[a+24|0]=l;B[a+25|0]=l>>>8;B[a+26|0]=l>>>16;B[a+27|0]=l>>>24;B[a+28|0]=k;B[a+29|0]=k>>>8;B[a+30|0]=k>>>16;B[a+31|0]=k>>>24;j=j+32|0;a=a+32|0;if(e>>>0>a>>>0){continue}break}}i=i+q|0;a=e}if(a>>>0>=b>>>0){break b}while(1){B[a|0]=E[i|0];i=i+1|0;a=a+1|0;if((b|0)!=(a|0)){continue}break}}a=b-o|0;D[d>>2]=r;c:{d:{if(b-f>>>0>>0){if(b-g>>>0>>0){break a}a=a-f|0;d=a+h|0;if(d+m>>>0<=h>>>0){hb(b,d,m);break c}b=hb(b,d,0-a|0);m=a+m|0;D[c+4>>2]=m;b=b-a|0;break d}f=a}c=b+m|0;if((m|0)<=7){if((m|0)<1){break c}while(1){B[b|0]=E[f|0];f=f+1|0;b=b+1|0;if(c>>>0>b>>>0){continue}break}break c}a=b-f|0;e:{if(a>>>0<=7){B[b|0]=E[f|0];B[b+1|0]=E[f+1|0];B[b+2|0]=E[f+2|0];B[b+3|0]=E[f+3|0];d=f;f=a<<2;a=d+D[f+419616>>2]|0;d=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);B[b+4|0]=d;B[b+5|0]=d>>>8;B[b+6|0]=d>>>16;B[b+7|0]=d>>>24;f=a-D[f+419648>>2]|0;break e}a=E[f+4|0]|E[f+5|0]<<8|(E[f+6|0]<<16|E[f+7|0]<<24);d=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=a;B[b+5|0]=a>>>8;B[b+6|0]=a>>>16;B[b+7|0]=a>>>24}a=b+8|0;i=f+8|0;if(c>>>0<=e>>>0){e=a+m|0;if((a-i|0)<=15){while(1){b=E[i+4|0]|E[i+5|0]<<8|(E[i+6|0]<<16|E[i+7|0]<<24);c=E[i|0]|E[i+1|0]<<8|(E[i+2|0]<<16|E[i+3|0]<<24);B[a|0]=c;B[a+1|0]=c>>>8;B[a+2|0]=c>>>16;B[a+3|0]=c>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24;i=i+8|0;a=a+8|0;if(e>>>0>a>>>0){continue}break c}}c=E[i+4|0]|E[i+5|0]<<8|(E[i+6|0]<<16|E[i+7|0]<<24);d=E[i|0]|E[i+1|0]<<8|(E[i+2|0]<<16|E[i+3|0]<<24);B[a|0]=d;B[a+1|0]=d>>>8;B[a+2|0]=d>>>16;B[a+3|0]=d>>>24;B[a+4|0]=c;B[a+5|0]=c>>>8;B[a+6|0]=c>>>16;B[a+7|0]=c>>>24;c=E[i+12|0]|E[i+13|0]<<8|(E[i+14|0]<<16|E[i+15|0]<<24);d=E[i+8|0]|E[i+9|0]<<8|(E[i+10|0]<<16|E[i+11|0]<<24);B[a+8|0]=d;B[a+9|0]=d>>>8;B[a+10|0]=d>>>16;B[a+11|0]=d>>>24;B[a+12|0]=c;B[a+13|0]=c>>>8;B[a+14|0]=c>>>16;B[a+15|0]=c>>>24;if((m|0)<17){break c}a=b+24|0;while(1){b=E[i+20|0]|E[i+21|0]<<8|(E[i+22|0]<<16|E[i+23|0]<<24);c=E[i+16|0]|E[i+17|0]<<8|(E[i+18|0]<<16|E[i+19|0]<<24);B[a|0]=c;B[a+1|0]=c>>>8;B[a+2|0]=c>>>16;B[a+3|0]=c>>>24;B[a+4|0]=b;B[a+5|0]=b>>>8;B[a+6|0]=b>>>16;B[a+7|0]=b>>>24;b=E[i+28|0]|E[i+29|0]<<8|(E[i+30|0]<<16|E[i+31|0]<<24);c=E[i+24|0]|E[i+25|0]<<8|(E[i+26|0]<<16|E[i+27|0]<<24);B[a+8|0]=c;B[a+9|0]=c>>>8;B[a+10|0]=c>>>16;B[a+11|0]=c>>>24;B[a+12|0]=b;B[a+13|0]=b>>>8;B[a+14|0]=b>>>16;B[a+15|0]=b>>>24;b=E[i+36|0]|E[i+37|0]<<8|(E[i+38|0]<<16|E[i+39|0]<<24);c=E[i+32|0]|E[i+33|0]<<8|(E[i+34|0]<<16|E[i+35|0]<<24);B[a+16|0]=c;B[a+17|0]=c>>>8;B[a+18|0]=c>>>16;B[a+19|0]=c>>>24;B[a+20|0]=b;B[a+21|0]=b>>>8;B[a+22|0]=b>>>16;B[a+23|0]=b>>>24;b=E[i+44|0]|E[i+45|0]<<8|(E[i+46|0]<<16|E[i+47|0]<<24);c=E[i+40|0]|E[i+41|0]<<8|(E[i+42|0]<<16|E[i+43|0]<<24);B[a+24|0]=c;B[a+25|0]=c>>>8;B[a+26|0]=c>>>16;B[a+27|0]=c>>>24;B[a+28|0]=b;B[a+29|0]=b>>>8;B[a+30|0]=b>>>16;B[a+31|0]=b>>>24;i=i+32|0;a=a+32|0;if(e>>>0>a>>>0){continue}break}break c}f:{if(a>>>0>e>>>0){e=a;break f}g=e-a|0;g:{if((a-i|0)<=15){b=i;while(1){d=E[b+4|0]|E[b+5|0]<<8|(E[b+6|0]<<16|E[b+7|0]<<24);f=E[b|0]|E[b+1|0]<<8|(E[b+2|0]<<16|E[b+3|0]<<24);B[a|0]=f;B[a+1|0]=f>>>8;B[a+2|0]=f>>>16;B[a+3|0]=f>>>24;B[a+4|0]=d;B[a+5|0]=d>>>8;B[a+6|0]=d>>>16;B[a+7|0]=d>>>24;b=b+8|0;a=a+8|0;if(e>>>0>a>>>0){continue}break}break g}d=E[i+4|0]|E[i+5|0]<<8|(E[i+6|0]<<16|E[i+7|0]<<24);f=E[i|0]|E[i+1|0]<<8|(E[i+2|0]<<16|E[i+3|0]<<24);B[a|0]=f;B[a+1|0]=f>>>8;B[a+2|0]=f>>>16;B[a+3|0]=f>>>24;B[a+4|0]=d;B[a+5|0]=d>>>8;B[a+6|0]=d>>>16;B[a+7|0]=d>>>24;d=E[i+12|0]|E[i+13|0]<<8|(E[i+14|0]<<16|E[i+15|0]<<24);f=E[i+8|0]|E[i+9|0]<<8|(E[i+10|0]<<16|E[i+11|0]<<24);B[a+8|0]=f;B[a+9|0]=f>>>8;B[a+10|0]=f>>>16;B[a+11|0]=f>>>24;B[a+12|0]=d;B[a+13|0]=d>>>8;B[a+14|0]=d>>>16;B[a+15|0]=d>>>24;if((g|0)<17){break g}a=b+24|0;b=i;while(1){d=E[b+20|0]|E[b+21|0]<<8|(E[b+22|0]<<16|E[b+23|0]<<24);f=E[b+16|0]|E[b+17|0]<<8|(E[b+18|0]<<16|E[b+19|0]<<24);B[a|0]=f;B[a+1|0]=f>>>8;B[a+2|0]=f>>>16;B[a+3|0]=f>>>24;B[a+4|0]=d;B[a+5|0]=d>>>8;B[a+6|0]=d>>>16;B[a+7|0]=d>>>24;d=E[b+28|0]|E[b+29|0]<<8|(E[b+30|0]<<16|E[b+31|0]<<24);f=E[b+24|0]|E[b+25|0]<<8|(E[b+26|0]<<16|E[b+27|0]<<24);B[a+8|0]=f;B[a+9|0]=f>>>8;B[a+10|0]=f>>>16;B[a+11|0]=f>>>24;B[a+12|0]=d;B[a+13|0]=d>>>8;B[a+14|0]=d>>>16;B[a+15|0]=d>>>24;d=E[b+36|0]|E[b+37|0]<<8|(E[b+38|0]<<16|E[b+39|0]<<24);f=E[b+32|0]|E[b+33|0]<<8|(E[b+34|0]<<16|E[b+35|0]<<24);B[a+16|0]=f;B[a+17|0]=f>>>8;B[a+18|0]=f>>>16;B[a+19|0]=f>>>24;B[a+20|0]=d;B[a+21|0]=d>>>8;B[a+22|0]=d>>>16;B[a+23|0]=d>>>24;d=E[b+44|0]|E[b+45|0]<<8|(E[b+46|0]<<16|E[b+47|0]<<24);f=E[b+40|0]|E[b+41|0]<<8|(E[b+42|0]<<16|E[b+43|0]<<24);B[a+24|0]=f;B[a+25|0]=f>>>8;B[a+26|0]=f>>>16;B[a+27|0]=f>>>24;B[a+28|0]=d;B[a+29|0]=d>>>8;B[a+30|0]=d>>>16;B[a+31|0]=d>>>24;b=b+32|0;a=a+32|0;if(e>>>0>a>>>0){continue}break}}i=g+i|0}if(c>>>0<=e>>>0){break c}while(1){B[e|0]=E[i|0];i=i+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}n=p}return n}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,F=0,G=0,H=0,I=0;f=Fa-32|0;Fa=f;a:{if(D[a+104>>2]==8){b=D[a+120>>2];B[c+3|0]=b<<5|E[a+119|0]<<1|b<<2;d=D[a+140>>2];b=c;b:{if(E[a+119|0]){B[c|0]=d<<3;B[c+1|0]=E[a+144|0]<<3;e=E[a+148|0]<<3;break b}B[c|0]=d|d<<4;d=D[a+144>>2];B[c+1|0]=d<<4|d;d=D[a+148>>2];e=d<<4|d}B[b+2|0]=e;a=D[(D[a+136>>2]<<2)+26976>>2];B[c+4|0]=a;B[c+5|0]=a>>>8;B[c+6|0]=a>>>16;B[c+7|0]=a>>>24;break a}d=E[a+118|0];A=E[a+119|0];B[c+3|0]=d|A<<1|D[a+120>>2]<<5|D[a+124>>2]<<2;j=d<<5;n=((E[j+27007|0]<<4)+b|0)+(E[j+27006|0]<<2)|0;F=E[n|0];o=((E[j+27005|0]<<4)+b|0)+(E[j+27004|0]<<2)|0;G=E[o|0];i=((E[j+27003|0]<<4)+b|0)+(E[j+27002|0]<<2)|0;H=E[i|0];m=((E[j+27001|0]<<4)+b|0)+(E[j+27e3|0]<<2)|0;I=E[m|0];h=((E[j+26999|0]<<4)+b|0)+(E[j+26998|0]<<2)|0;p=E[h|0];g=((E[j+26997|0]<<4)+b|0)+(E[j+26996|0]<<2)|0;q=E[g|0];e=((E[j+26995|0]<<4)+b|0)+(E[j+26994|0]<<2)|0;r=E[e|0];d=((E[j+26993|0]<<4)+b|0)+(E[j+26992|0]<<2)|0;s=E[d|0];t=E[n+1|0];u=E[o+1|0];k=E[i+1|0];v=E[m+1|0];w=E[h+1|0];x=E[g+1|0];y=E[e+1|0];l=E[d+1|0];n=E[n+2|0];o=E[o+2|0];i=E[i+2|0];m=E[m+2|0];h=E[h+2|0];g=E[g+2|0];e=E[e+2|0];d=E[d+2|0];B[f+11|0]=0;z=A?31:15;B[f+10|0]=((J(z,n+(o+(i+(m+(h+(g+(d+e|0)|0)|0)|0)|0)|0)|0)+1020&65535)>>>0)/2040;B[f+9|0]=((J(t+(u+(k+(v+(w+(x+(l+y|0)|0)|0)|0)|0)|0)|0,z)+1020&65535)>>>0)/2040;B[f+8|0]=((J(F+(G+(H+(I+(p+(q+(r+s|0)|0)|0)|0)|0)|0)|0,z)+1020&65535)>>>0)/2040;if(!(7424>>>D[a+104>>2]&1)){yc(f+16|0,f+8|0,D[a+128>>2],z,0);D[f+8>>2]=D[f+16>>2]}n=((E[j+27023|0]<<4)+b|0)+(E[j+27022|0]<<2)|0;F=E[n|0];o=((E[j+27021|0]<<4)+b|0)+(E[j+27020|0]<<2)|0;G=E[o|0];i=((E[j+27019|0]<<4)+b|0)+(E[j+27018|0]<<2)|0;H=E[i|0];m=((E[j+27017|0]<<4)+b|0)+(E[j+27016|0]<<2)|0;I=E[m|0];h=((E[j+27015|0]<<4)+b|0)+(E[j+27014|0]<<2)|0;p=E[h|0];g=((E[j+27013|0]<<4)+b|0)+(E[j+27012|0]<<2)|0;q=E[g|0];e=((E[j+27011|0]<<4)+b|0)+(E[j+27010|0]<<2)|0;r=E[e|0];d=((E[j+27009|0]<<4)+b|0)+(E[j+27008|0]<<2)|0;s=E[d|0];t=E[n+1|0];u=E[o+1|0];k=E[i+1|0];v=E[m+1|0];w=E[h+1|0];x=E[g+1|0];y=E[e+1|0];l=E[d+1|0];n=E[n+2|0];o=E[o+2|0];i=E[i+2|0];m=E[m+2|0];h=E[h+2|0];g=E[g+2|0];e=E[e+2|0];d=E[d+2|0];B[f+15|0]=0;m=((J(n+(o+(i+(m+(h+(g+(d+e|0)|0)|0)|0)|0)|0)|0,z)+1020&65535)>>>0)/2040|0;B[f+14|0]=m;h=((J(t+(u+(k+(v+(w+(x+(l+y|0)|0)|0)|0)|0)|0)|0,z)+1020&65535)>>>0)/2040|0;B[f+13|0]=h;d=((J(F+(G+(H+(I+(p+(q+(r+s|0)|0)|0)|0)|0)|0)|0,z)+1020&65535)>>>0)/2040|0;B[f+12|0]=d;if(!(7424>>>D[a+104>>2]&1)){yc(f+16|0,f+8|4,D[a+128>>2],z,1);d=D[f+16>>2];D[f+12>>2]=d;m=d>>>16|0;h=d>>>8|0}c:{if(!A){B[c|0]=E[f+8|0]<<4|d;d=E[f+10|0]<<4|m;a=E[f+9|0]<<4|h;break c}g=E[f+9|0];e=E[f+10|0];a=d&255;d=E[f+8|0];a=a-d|0;a=(a|0)<3?a:3;a=(a|0)>-4?a:-4;B[c|0]=((a|0)<0?a+8|0:a)|d<<3;a=(m&255)-e|0;a=(a|0)<3?a:3;a=(a|0)>-4?a:-4;d=e<<3|((a|0)<0?a+8|0:a);a=(h&255)-g|0;a=(a|0)<3?a:3;a=(a|0)>-4?a:-4;a=g<<3|((a|0)<0?a+8|0:a)}B[c+2|0]=d;B[c+1|0]=a;u=0;k=0;v=0;while(1){h=E[c|0];g=E[c+3|0];d:{if(g&2){if(v){d=E[c+2|0];a=E[c+1|0];e=d&7|a<<3&56;i=((e>>>0>31?-8:0)|e>>>3)+(a>>>3|0)|0;a=e&7;d=((a>>>0>3?-8:0)|a)+(d>>>3|0)|0;a=h&7;l=((a>>>0>3?-8:0)|a)+((h&248)>>>3|0)|0;if((d|(l|i))>>>0>=32){a=(d|0)<31?d:31;d=(a|0)>0?a:0;a=(l|0)<31?l:31;l=(a|0)>0?a:0;a=(i|0)<31?i:31;i=(a|0)>0?a:0}h=d<<3|d>>>2;d=l<<3|l>>>2;e=i<<3|i>>>2;break d}d=h&-8|(h&224)>>>5;h=J(E[c+2|0]>>>3|0,540672)>>>16|0;a=E[c+1|0];e=(a<<3&1792|a<<8&63488)>>>8|0;break d}e:{if(v){d=h&15;l=E[c+2|0]&15;a=E[c+1|0]&15;break e}l=E[c+2|0]>>>4|0;d=(h&240)>>>4|0;a=E[c+1|0]>>>4|0}d=J(d,17);h=J(l,17);e=J(a,17)}a=255;n=g>>>(v?2:5)&7;g=D[(n<<4)+29120>>2];o=d&255;d=g+o|0;f:{if(d>>>0<256){a=d;break f}if((d|0)>-1){break f}a=0}d=255;i=e&255;e=i+g|0;g:{if(e>>>0<256){d=e;break g}if((e|0)>-1){break g}d=0}m=h&255;e=m+g|0;h:{if(e>>>0<256){g=e;break h}g=0;if((e|0)<0){break h}g=255}h=255;B[f+19|0]=255;B[f+18|0]=g;B[f+17|0]=d;B[f+16|0]=a;e=D[(n<<4)+29124>>2];a=e+o|0;i:{if(a>>>0<256){h=a;break i}if((a|0)>-1){break i}h=0}l=e+i|0;j:{if(l>>>0<256){break j}a=(l|0)>-1;l=255;if(a){break j}l=0}d=255;B[f+23|0]=255;g=f;e=e+m|0;k:{if(e>>>0<256){a=e;break k}a=0;if((e|0)<0){break k}a=255}B[g+22|0]=a;B[f+21|0]=l;B[f+20|0]=h;g=D[(n<<4)+29128>>2];a=g+o|0;l:{if(a>>>0<256){d=a;break l}if((a|0)>-1){break l}d=0}l=i+g|0;m:{if(l>>>0<256){break m}a=(l|0)>-1;l=255;if(a){break m}l=0}a=255;B[f+27|0]=255;h=f;g=g+m|0;n:{if(g>>>0<256){e=g;break n}e=0;if((g|0)<0){break n}e=255}B[h+26|0]=e;B[f+25|0]=l;B[f+24|0]=d;e=D[(n<<4)+29132>>2];d=e+o|0;o:{if(d>>>0<256){a=d;break o}if((d|0)>-1){break o}a=0}i=e+i|0;p:{if(i>>>0<256){break p}d=(i|0)>-1;i=255;if(d){break p}i=0}B[f+31|0]=255;g=f;e=e+m|0;q:{if(e>>>0<256){d=e;break q}d=0;if((e|0)<0){break q}d=255}B[g+30|0]=d;B[f+29|0]=i;B[f+28|0]=a;d=(J(E[f+25|0],183)+J(E[f+24|0],54)|0)+J(E[f+26|0],19)|0;a=(J(E[f+21|0],183)+J(E[f+20|0],54)|0)+J(E[f+22|0],19)|0;p=d+a|0;q=a+((J(E[f+17|0],183)+J(E[f+16|0],54)|0)+J(E[f+18|0],19)|0)|0;r=((d+J(E[f+28|0],54)|0)+J(E[f+29|0],183)|0)+J(E[f+30|0],19)|0;s=v<<3;t=v<<1;r:{if(B[c+3|0]&1){d=s<<2;a=d+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;w=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];a=(d|4)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;x=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];y=t+4|0;a=(d|8)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;l=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];n=t+8|0;a=(d|12)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;o=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];i=t+12|0;a=(d|16)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;m=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];h=t|1;a=(d|20)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;g=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];e=t+5|0;a=(d|24)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;d=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];a=t+9|0;k=w>>>1<>>1<>>1<>>1<>>1<>>1<>>1<>>0>>0)+(d>>>0

>>0)|0)+(d>>>0>>0)|0)+414717|0];d=(J(E[k+17|0],366)+J(E[k+16|0],108)|0)+J(E[k+18|0],38)|0;x=E[(((d>>>0>>0)+(d>>>0

>>0)|0)+(d>>>0>>0)|0)+414717|0];y=s|1;d=(J(E[k+33|0],366)+J(E[k+32|0],108)|0)+J(E[k+34|0],38)|0;l=E[(((d>>>0>>0)+(d>>>0

>>0)|0)+(d>>>0>>0)|0)+414717|0];n=s|2;d=(J(E[k+49|0],366)+J(E[k+48|0],108)|0)+J(E[k+50|0],38)|0;o=E[(((d>>>0>>0)+(d>>>0

>>0)|0)+(d>>>0>>0)|0)+414717|0];i=s|3;a=(a|4)+b|0;a=(J(E[a+1|0],366)+J(E[a|0],108)|0)+J(E[a+2|0],38)|0;m=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];h=s|4;a=(J(E[k+21|0],366)+J(E[k+20|0],108)|0)+J(E[k+22|0],38)|0;g=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];e=s|5;a=(J(E[k+37|0],366)+J(E[k+36|0],108)|0)+J(E[k+38|0],38)|0;d=E[(((a>>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];a=s|6;k=j|w>>>1<>>1<>>1<>>1<>>1<>>1<>>1<>>0>>0)+(a>>>0

>>0)|0)+(a>>>0>>0)|0)+414717|0];k=a>>>1<>>8;C[c+6>>1]=u<<8|(u&65280)>>>8}Fa=f+32|0}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,G=K(0),H=0,I=0,M=K(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,_=0,$=0,aa=K(0),ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;w=Fa-96|0;Fa=w;l=J(c,15)+b|0;d=E[l|0];p=J(c,14)+b|0;f=E[p|0];q=J(c,13)+b|0;k=E[q|0];Q=J(c,12)+b|0;o=E[Q|0];R=J(c,11)+b|0;h=E[R|0];S=J(c,10)+b|0;e=E[S|0];T=J(c,9)+b|0;j=E[T|0];U=(c<<3)+b|0;r=E[U|0];V=J(c,7)+b|0;i=E[V|0];W=J(c,6)+b|0;x=E[W|0];X=J(c,5)+b|0;y=E[X|0];Y=(c<<2)+b|0;z=E[Y|0];Z=J(c,3)+b|0;A=E[Z|0];_=(c<<1)+b|0;g=E[_|0];$=b+c|0;H=E[$|0];m=E[b|0];n=m>>>0>>0?H:m;n=g>>>0>n>>>0?g:n;n=n>>>0>>0?A:n;n=n>>>0>>0?z:n;n=n>>>0>>0?y:n;n=n>>>0>>0?x:n;n=i>>>0>n>>>0?i:n;n=n>>>0>>0?r:n;n=j>>>0>n>>>0?j:n;n=e>>>0>n>>>0?e:n;n=h>>>0>n>>>0?h:n;n=o>>>0>n>>>0?o:n;n=k>>>0>n>>>0?k:n;n=f>>>0>n>>>0?f:n;n=d>>>0>n>>>0?d:n;H=m>>>0>H>>>0?H:m;g=g>>>0>>0?g:H;A=g>>>0>A>>>0?A:g;z=z>>>0>>0?z:A;y=y>>>0>>0?y:z;x=x>>>0>>0?x:y;i=i>>>0>>0?i:x;r=i>>>0>r>>>0?r:i;j=j>>>0>>0?j:r;e=e>>>0>>0?e:j;h=e>>>0>h>>>0?h:e;o=h>>>0>o>>>0?o:h;k=k>>>0>>0?k:o;f=f>>>0>>0?f:k;h=d>>>0>>0?d:f;a:{if((n|0)==(h|0)){C[a>>1]=h|3328;b=F[204304]|F[204305]<<16;C[a+2>>1]=b;C[a+4>>1]=b>>>16;C[a+6>>1]=F[204306];break a}f=n-h|0;if(f>>>0<=5){c=n-2|0;c=(c>>>0<256?c:c>>31^-1)&255;C[a>>1]=c|7424;h=E[p|0];e=E[q|0];j=E[Q|0];k=3-c|0;r=E[(k+E[l|0]|0)+414752|0];f=E[(k+E[$|0]|0)+414752|0]<<1;c=E[(k+E[b|0]|0)+414752|0]<<13;b=E[(k+E[_|0]|0)+414752|0];o=b>>>11|0;b=b<<21;f=o|(c|f);o=E[(k+E[Y|0]|0)+414752|0]<<10;d=b;b=E[(k+E[Z|0]|0)+414752|0];c=b>>>23|0;b=d|b<<9;f=o|(c|f);d=b;b=E[(k+E[X|0]|0)+414752|0];c=b>>>2|0;d=d|b<<30;b=E[(k+E[W|0]|0)+414752|0];o=b>>>14|0;b=d|b<<18;f=o|(c|f);o=E[(k+E[U|0]|0)+414752|0]<<7;d=b;b=E[(k+E[V|0]|0)+414752|0];c=b>>>26|0;b=d|b<<6;f=o|(c|f);d=b;b=E[(k+E[T|0]|0)+414752|0];c=b>>>5|0;d=d|b<<27;b=E[(k+E[S|0]|0)+414752|0];o=b>>>17|0;b=d|b<<15;f=o|(c|f);d=b;b=E[(k+E[R|0]|0)+414752|0];c=b>>>29|0;b=d|b<<3;c=c|f;d=a;B[d+7|0]=b|r;f=c|E[(j+k|0)+414752|0]<<4;B[d+3|0]=f;d=f;B[a+2|0]=d>>>8;f=E[(e+k|0)+414752|0];o=f>>>8|0;b=b|f<<24;f=d|o;o=f;d=a;B[d+4|0]=(f&16777215)<<8|b>>>24;f=E[(h+k|0)+414752|0];c=f>>>20|0;b=b|f<<12;f=c|o;d=b;B[a+6|0]=(f&255)<<24|d>>>8;B[a+5|0]=(f&65535)<<16|d>>>16;break a}k=w;G=K(f>>>0);M=lb(K(G/K(25)));b:{if(K(L(M))1?d:1;D[k+64>>2]=o;j=w;G=lb(K(G/K(19)));c:{if(K(L(G))1?d:1;D[j+68>>2]=k;D[w+72>>2]=k;D[w+76>>2]=k;f=w;G=K(h>>>0);M=K(K(n>>>0)-G);aa=lb(K(K(M*K(.5199999809265137))+G));d:{if(K(L(aa))>>0<256?d:d>>31^-1)&255;D[f+80>>2]=n;f=w;G=lb(K(K(M*K(.5263158082962036))+G));e:{if(K(L(G))>>0<256?d:d>>31^-1)&255;D[f+84>>2]=r;D[w+88>>2]=r;D[w+92>>2]=r;Q=J(k,9);R=J(o,12);S=J(k,6);T=J(k,7);U=J(o,7);V=k<<2;W=J(k,5);X=o<<2;Y=J(k,-10);Z=J(o,-13);_=J(k,-3);$=J(k,-7);ca=J(k,-5);da=J(k,-6);ea=J(o,-5);x=0;fa=0-(k<<3)|0;ga=0-(o<<3)|0;ba=k<<1;ha=0-ba|0;ia=0-(o<<1)|0;ja=(k|o)!=1;y=0;z=0;A=0;H=0;while(1){f=-1;h=-1;e=-1;j=-1;d=0;i=E[J(c,x)+b|0];f:{if((i-7&255)>>>0>=242){while(1){g=r+J(k,B[d+29352|0])|0;m=((g>>>0<256?g:g>>31^-1)&255)-i|0;g=m>>31;g=(g^g+m)<<3|d;j=g>>>0>j>>>0?j:g;g=r+J(k,B[d+29336|0])|0;m=((g>>>0<256?g:g>>31^-1)&255)-i|0;g=m>>31;g=(g^g+m)<<3|d;e=e>>>0>>0?e:g;g=r+J(k,B[d+29312|0])|0;m=((g>>>0<256?g:g>>31^-1)&255)-i|0;g=m>>31;g=(g^g+m)<<3|d;h=h>>>0>>0?h:g;g=n+J(o,B[d+29264|0])|0;m=((g>>>0<256?g:g>>31^-1)&255)-i|0;g=m>>31;g=(g^g+m)<<3|d;f=f>>>0>>0?f:g;d=d+1|0;if((d|0)!=8){continue}break f}}d=r-i|0;f=n-i|0;if(!ja){g=d-1|0;h=g>>31;q=d-2|0;e=q>>31;s=d-3|0;j=s>>31;t=d-10|0;i=t>>31;u=d+1|0;m=u>>31;v=d+2|0;l=v>>31;I=d+9|0;p=I>>31;h=(h^h+g)<<3;g=(e^e+q)<<3;e=g|1;h=e>>>0>h>>>0?h:e;e=(j^j+s)<<3|2;e=e>>>0>h>>>0?h:e;h=(i^i+t)<<3|3;e=e>>>0>>0?e:h;j=d>>31;j=(j+d^j)<<3|4;e=e>>>0>>0?e:j;q=(m^m+u)<<3;j=q|5;e=e>>>0>>0?e:j;j=(l^l+v)<<3|6;e=e>>>0>>0?e:j;i=(p^p+I)<<3|7;j=e>>>0>>0?e:i;s=d-5|0;e=s>>31;t=d-7|0;m=t>>31;u=d+4|0;l=u>>31;v=d+6|0;p=v>>31;e=(e^e+s)<<3|1;e=e>>>0>g>>>0?g:e;m=(m^m+t)<<3|2;e=e>>>0>>0?e:m;e=e>>>0>>0?e:h;m=q|4;e=e>>>0>>0?e:m;l=(l^l+u)<<3|5;e=e>>>0>>0?e:l;l=(p^p+v)<<3|6;e=e>>>0>>0?e:l;e=e>>>0>>0?e:i;s=d-6|0;l=s>>31;t=d-8|0;p=t>>31;u=d+5|0;q=u>>31;v=d+7|0;d=v>>31;l=(l^l+s)<<3|1;g=g>>>0>>0?g:l;l=(p^p+t)<<3|2;g=g>>>0>>0?g:l;h=h>>>0>g>>>0?g:h;h=h>>>0>>0?h:m;g=(q^q+u)<<3|5;h=h>>>0>>0?h:g;d=(d^d+v)<<3|6;d=d>>>0>h>>>0?h:d;h=d>>>0>>0?d:i;s=f-2|0;d=s>>31;t=f-5|0;i=t>>31;u=f-8|0;g=u>>31;v=f-13|0;m=v>>31;I=f+1|0;l=I>>31;N=f+4|0;p=N>>31;O=f+7|0;q=O>>31;P=f+12|0;f=P>>31;d=(d^d+s)<<3;i=(i^i+t)<<3|1;d=d>>>0>>0?d:i;i=(g^g+u)<<3|2;d=d>>>0>>0?d:i;i=(m^m+v)<<3|3;d=d>>>0>>0?d:i;i=(l^l+I)<<3|4;d=d>>>0>>0?d:i;i=(p^p+N)<<3|5;d=d>>>0>>0?d:i;i=(q^q+O)<<3|6;d=d>>>0>>0?d:i;f=(f^f+P)<<3|7;f=d>>>0>>0?d:f;break f}g=d-k|0;h=g>>31;q=d+ha|0;e=q>>31;s=d+_|0;j=s>>31;t=d+Y|0;i=t>>31;u=d+k|0;m=u>>31;v=d+ba|0;l=v>>31;I=d+Q|0;p=I>>31;h=(h^h+g)<<3;g=(e^e+q)<<3;e=g|1;h=e>>>0>h>>>0?h:e;e=(j^j+s)<<3|2;e=e>>>0>h>>>0?h:e;h=(i^i+t)<<3|3;e=e>>>0>>0?e:h;j=d>>31;j=(j+d^j)<<3|4;e=e>>>0>>0?e:j;q=(m^m+u)<<3;j=q|5;e=e>>>0>>0?e:j;j=(l^l+v)<<3|6;e=e>>>0>>0?e:j;i=(p^p+I)<<3|7;j=e>>>0>>0?e:i;s=d+ca|0;e=s>>31;t=d+$|0;m=t>>31;u=d+V|0;l=u>>31;v=d+S|0;p=v>>31;e=(e^e+s)<<3|1;e=e>>>0>g>>>0?g:e;m=(m^m+t)<<3|2;e=e>>>0>>0?e:m;e=e>>>0>>0?e:h;m=q|4;e=e>>>0>>0?e:m;l=(l^l+u)<<3|5;e=e>>>0>>0?e:l;l=(p^p+v)<<3|6;e=e>>>0>>0?e:l;e=e>>>0>>0?e:i;s=d+da|0;l=s>>31;t=d+fa|0;p=t>>31;u=d+W|0;q=u>>31;v=d+T|0;d=v>>31;l=(l^l+s)<<3|1;g=g>>>0>>0?g:l;l=(p^p+t)<<3|2;g=g>>>0>>0?g:l;h=h>>>0>g>>>0?g:h;h=h>>>0>>0?h:m;g=(q^q+u)<<3|5;h=h>>>0>>0?h:g;d=(d^d+v)<<3|6;d=d>>>0>h>>>0?h:d;h=d>>>0>>0?d:i;s=f+ia|0;d=s>>31;t=f+ea|0;i=t>>31;u=f+ga|0;g=u>>31;v=f+Z|0;m=v>>31;I=f+o|0;l=I>>31;N=f+X|0;p=N>>31;O=f+U|0;q=O>>31;P=f+R|0;f=P>>31;d=(d^d+s)<<3;i=(i^i+t)<<3|1;d=d>>>0>>0?d:i;i=(g^g+u)<<3|2;d=d>>>0>>0?d:i;i=(m^m+v)<<3|3;d=d>>>0>>0?d:i;i=(l^l+I)<<3|4;d=d>>>0>>0?d:i;i=(p^p+N)<<3|5;d=d>>>0>>0?d:i;i=(q^q+O)<<3|6;d=d>>>0>>0?d:i;f=(f^f+P)<<3|7;f=d>>>0>>0?d:f}d=w+x|0;B[d|0]=f&7;B[d+16|0]=h&7;B[d+32|0]=e&7;B[d+48|0]=j&7;d=j>>>3|0;H=J(d,d)+H|0;d=e>>>3|0;A=J(d,d)+A|0;d=h>>>3|0;z=J(d,d)+z|0;d=f>>>3|0;y=J(d,d)+y|0;x=x+1|0;if((x|0)!=16){continue}break}c=y>>>0>z>>>0;d=c?z:y;b=d>>>0>A>>>0;b=(b?A:d)>>>0>H>>>0?3:b?2:c;c=b<<2;C[a>>1]=E[c|w+80]|F[(c|w- -64)>>1]<<12|(E[b+414758|0]&15)<<8;h=(b<<4)+w|0;b=h;k=E[b+14|0];f=E[b+13|0];d=E[b+12|0];e=E[b+15|0];r=E[b+1|0]<<1|E[b|0]<<13;b=E[b+2|0];c=b>>>11|0;b=b<<21;j=c|r;o=b;c=E[h+3|0];b=c>>>23|0;c=o|c<<9;b=b|j;j=c;r=E[h+4|0]<<10|b;c=E[h+5|0];b=c>>>2|0;c=c<<30|j;j=b|r;o=c;b=E[h+6|0];c=b>>>14|0;b=o|b<<18;j=c|j;o=b;c=E[h+7|0];b=c>>>26|0;c=o|c<<6;b=b|j;j=c;r=E[h+8|0]<<7|b;c=E[h+9|0];b=c>>>5|0;c=c<<27|j;j=b|r;o=c;b=E[h+10|0];c=b>>>17|0;b=o|b<<15;j=c|j;o=b;c=E[h+11|0];b=c>>>29|0;c=o|c<<3;B[a+7|0]=c|e;o=b|j|d<<4;d=o;b=a;B[b+3|0]=d;B[b+2|0]=d>>>8;d=d|f>>>8;h=d;o=b;c=c|f<<24;B[b+4|0]=(d&16777215)<<8|c>>>24;d=k;b=d>>>20|0;c=c|d<<12;k=b|h;b=k;f=o;d=c;B[f+6|0]=(b&255)<<24|d>>>8;B[f+5|0]=(b&65535)<<16|d>>>16}Fa=w+96|0}function _c(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=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,C=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0;m=Fa-32|0;Fa=m;f=-20;a:{if(d>>>0<10){break a}v=E[c+4|0]|E[c+5|0]<<8;h=E[c|0]|E[c+1|0]<<8;l=h+6|0;i=E[c+2|0]|E[c+3|0]<<8;n=v+(l+i|0)|0;if(n>>>0>d>>>0){break a}if(!h){f=-72;break a}j=c+6|0;o=F[e+2>>1];b:{if(h>>>0>=4){f=-1;j=E[(h+j|0)-1|0];if(!j){break a}z=h+2|0;f=z+c|0;k=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);h=M(j)-23|0;break b}k=E[j|0];c:{switch(h-2|0){case 1:k=E[c+8|0]<<16|k;case 0:k=(E[c+7|0]<<8)+k|0;break;default:break c}}f=E[(h+j|0)-1|0];if(!f){f=-20;break a}z=6;h=(M(f)-(h<<3)|0)+9|0}if(!i){f=-72;break a}t=c+l|0;d:{if(i>>>0>=4){f=-1;j=E[(i+t|0)-1|0];if(!j){break a}x=i-4|0;f=x+t|0;p=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);j=M(j)-23|0;break d}p=E[t|0];e:{switch(i-2|0){case 1:p=E[t+2|0]<<16|p;case 0:p=(E[t+1|0]<<8)+p|0;break;default:break e}}f=E[(i+t|0)-1|0];if(!f){f=-20;break a}j=(M(f)-(i<<3)|0)+9|0}f=-72;if(!v){break a}w=i+t|0;i=v+w|0;f:{if(v>>>0>=4){f=-1;l=E[i-1|0];if(!l){break a}g=v-4|0;f=g+w|0;y=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);l=M(l)-23|0;break f}y=E[w|0];g:{switch(v-2|0){case 1:y=E[w+2|0]<<16|y;case 0:y=(E[w+1|0]<<8)+y|0;break;default:break g}}f=E[i-1|0];if(!f){f=-20;break a}l=(M(f)-(v<<3)|0)+9|0}f=Zc(m+8|0,i,d-n|0);if(f>>>0>4294967176){break a}q=e+4|0;r=0-o&31;f=D[m+16>>2];v=D[m+12>>2];J=D[m+8>>2];d=b+3>>>2|0;A=d+a|0;C=A+d|0;G=C+d|0;I=a+b|0;K=I-3|0;h:{if(G>>>0>=K>>>0){o=f;i=x;n=g;d=z;u=G;s=C;e=A;break h}L=1;N=D[m+24>>2];e=A;s=C;u=G;while(1){d=(k<>>r<<1)+q|0;i=E[d+1|0];B[a|0]=E[d|0];d=(p<>>r<<1)+q|0;n=E[d+1|0];B[e|0]=E[d|0];d=(y<>>r<<1)+q|0;o=E[d+1|0];B[s|0]=E[d|0];d=(J<>>r<<1)+q|0;H=E[d+1|0];B[u|0]=E[d|0];i=h+i|0;d=(k<>>r<<1)+q|0;h=E[d+1|0];B[a+1|0]=E[d|0];n=j+n|0;d=(p<>>r<<1)+q|0;j=E[d+1|0];B[e+1|0]=E[d|0];o=l+o|0;d=(y<>>r<<1)+q|0;l=E[d+1|0];B[s+1|0]=E[d|0];H=v+H|0;d=(J<>>r<<1)+q|0;v=E[d+1|0];B[u+1|0]=E[d|0];h=h+i|0;i:{if((z|0)<10){d=z;break i}d=z-(h>>>3|0)|0;i=d+c|0;k=E[i|0]|E[i+1|0]<<8|(E[i+2|0]<<16|E[i+3|0]<<24);h=h&7}j=j+n|0;j:{if((x|0)<4){i=x;break j}i=x-(j>>>3|0)|0;n=t+i|0;p=E[n|0]|E[n+1|0]<<8|(E[n+2|0]<<16|E[n+3|0]<<24);j=j&7}o=l+o|0;k:{if((g|0)<4){l=o;n=g;break k}l=o&7;n=g-(o>>>3|0)|0;o=w+n|0;y=E[o|0]|E[o+1|0]<<8|(E[o+2|0]<<16|E[o+3|0]<<24)}v=v+H|0;u=u+2|0;l:{if(f>>>0>>0){o=f;break l}o=f-(v>>>3|0)|0;J=E[o|0]|E[o+1|0]<<8|(E[o+2|0]<<16|E[o+3|0]<<24);v=v&7}s=s+2|0;e=e+2|0;a=a+2|0;O=(x|0)>3;P=(g|0)>3;Q=(z|0)>9;H=f>>>0>=N>>>0;z=d;g=n;x=i;f=o;L=Q&(O&P)&L&H;if(L&u>>>0>>0){continue}break}}D[m+16>>2]=o;D[m+12>>2]=v;D[m+8>>2]=J;if(a>>>0>A>>>0){f=-20;break a}if(e>>>0>C>>>0){f=-20;break a}f=-20;if(s>>>0>G>>>0){break a}m:{n:{o:{p:{if(h>>>0>32){break p}x=A-3|0;q:{while(1){r:{if((d|0)>=10){f=h&7;k=h>>>3|0;h=1;break r}if((d|0)==6){f=h;d=6;break q}f=h>>>3|0;g=d-f|0;k=(g|0)<6?d-6|0:f;f=h-(k<<3)|0;h=(g|0)>5}d=d-k|0;g=d+c|0;k=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);if(!(!h|a>>>0>=x>>>0)){g=(k<>>r<<1)+q|0;h=E[g+1|0];B[a|0]=E[g|0];g=f+h|0;h=(k<>>r<<1)+q|0;f=E[h+1|0];B[a+1|0]=E[h|0];a=a+2|0;h=f+g|0;if(h>>>0<=32){continue}break p}break}if(f>>>0<=32){break q}h=f;break p}h=f;while(1){s:{if((d|0)>=10){f=h&7;k=h>>>3|0;h=1;break s}if((d|0)==6){d=6;break p}f=h>>>3|0;g=d-f|0;k=(g|0)<6?d-6|0:f;f=h-(k<<3)|0;h=(g|0)>5}d=d-k|0;g=d+c|0;k=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);g=a>>>0>=A>>>0;if(g|!h){break o}g=(k<>>r<<1)+q|0;h=E[g+1|0];B[a|0]=E[g|0];a=a+1|0;h=f+h|0;if(h>>>0<=32){continue}break}}if(a>>>0>>0){break n}break m}h=f;if(g){break m}}while(1){f=(k<>>r<<1)+q|0;c=E[f+1|0];B[a|0]=E[f|0];h=c+h|0;a=a+1|0;if((A|0)!=(a|0)){continue}break}}t:{u:{v:{w:{x:{if(j>>>0<=32){g=C-3|0;while(1){y:{if((i|0)>=4){c=j&7;f=j>>>3|0;a=1;break y}if(!i){i=0;k=t;c=j;break w}a=j>>>3|0;x=(i+t|0)-a|0;f=t>>>0>x>>>0?i:a;c=j-(f<<3)|0;a=t>>>0<=x>>>0}i=i-f|0;k=t+i|0;p=E[k|0]|E[k+1|0]<<8|(E[k+2|0]<<16|E[k+3|0]<<24);if(!a|e>>>0>=g>>>0){break x}f=(p<>>r<<1)+q|0;a=E[f+1|0];B[e|0]=E[f|0];f=a+c|0;c=(p<>>r<<1)+q|0;a=E[c+1|0];B[e+1|0]=E[c|0];e=e+2|0;j=a+f|0;if(j>>>0<33){continue}break}}k=i+t|0;break v}if(c>>>0<=32){break w}j=c;break v}j=c;while(1){z:{if((i|0)>=4){c=j&7;f=j>>>3|0;j=1;break z}if(!i){break v}a=j>>>3|0;g=k-a|0;f=g>>>0>>0?i:a;c=j-(f<<3)|0;j=g>>>0>=t>>>0}i=i-f|0;k=t+i|0;p=E[k|0]|E[k+1|0]<<8|(E[k+2|0]<<16|E[k+3|0]<<24);a=e>>>0>=C>>>0;if(j?a:1){j=c;if(a){break t}break u}f=(p<>>r<<1)+q|0;a=E[f+1|0];B[e|0]=E[f|0];e=e+1|0;j=a+c|0;if(j>>>0<=32){continue}break}}if(e>>>0>=C>>>0){break t}}while(1){c=(p<>>r<<1)+q|0;a=E[c+1|0];B[e|0]=E[c|0];j=a+j|0;e=e+1|0;if((C|0)!=(e|0)){continue}break}}A:{B:{C:{D:{E:{if(l>>>0<=32){g=G-3|0;while(1){F:{if((n|0)>=4){c=l&7;f=l>>>3|0;a=1;break F}if(!n){n=0;p=w;c=l;break D}a=l>>>3|0;e=(n+w|0)-a|0;f=e>>>0>>0?n:a;c=l-(f<<3)|0;a=e>>>0>=w>>>0}n=n-f|0;p=w+n|0;y=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);if(!a|g>>>0<=s>>>0){break E}e=(y<>>r<<1)+q|0;a=E[e+1|0];B[s|0]=E[e|0];e=a+c|0;c=(y<>>r<<1)+q|0;a=E[c+1|0];B[s+1|0]=E[c|0];s=s+2|0;l=a+e|0;if(l>>>0<33){continue}break}}p=n+w|0;break C}if(c>>>0<=32){break D}l=c;break C}l=c;while(1){G:{if((n|0)>=4){c=l&7;f=l>>>3|0;e=1;break G}if(!n){break C}a=l>>>3|0;e=p-a|0;f=e>>>0>>0?n:a;c=l-(f<<3)|0;e=e>>>0>=w>>>0}n=n-f|0;p=w+n|0;y=E[p|0]|E[p+1|0]<<8|(E[p+2|0]<<16|E[p+3|0]<<24);a=s>>>0>=G>>>0;if(e?a:1){l=c;if(a){break A}break B}e=(y<>>r<<1)+q|0;a=E[e+1|0];B[s|0]=E[e|0];s=s+1|0;l=a+c|0;if(l>>>0<=32){continue}break}}if(s>>>0>=G>>>0){break A}}while(1){c=(y<>>r<<1)+q|0;a=E[c+1|0];B[s|0]=E[c|0];l=a+l|0;s=s+1|0;if((G|0)!=(s|0)){continue}break}}c=D[m+12>>2];H:{I:{J:{if(c>>>0>32){break J}K:{while(1){g=m;f=D[m+16>>2];x=D[m+24>>2];L:{if(f>>>0>=x>>>0){f=f-(c>>>3|0)|0;D[m+16>>2]=f;e=1;c=c&7;break L}o=D[m+20>>2];e=f;if((o|0)==(f|0)){break K}a=c>>>3|0;e=f-a|0;a=e>>>0>>0?f-o|0:a;f=f-a|0;D[m+16>>2]=f;e=e>>>0>=o>>>0;c=c-(a<<3)|0}D[g+12>>2]=c;g=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);D[m+8>>2]=g;if(!(!e|u>>>0>=K>>>0)){e=(g<>>r<<1)+q|0;a=E[e+1|0];B[u|0]=E[e|0];e=a+c|0;c=(g<>>r<<1)+q|0;a=E[c|0];c=e+E[c+1|0]|0;D[m+12>>2]=c;B[u+1|0]=a;u=u+2|0;if(c>>>0<=32){continue}break J}break}if(c>>>0>32){break J}e=D[m+20>>2]}while(1){a=m;M:{if(f>>>0>=x>>>0){f=f-(c>>>3|0)|0;D[m+16>>2]=f;z=1;c=c&7;break M}if((e|0)==(f|0)){break J}g=c>>>3|0;o=f-g|0;g=e>>>0>o>>>0?f-e|0:g;f=f-g|0;D[m+16>>2]=f;z=e>>>0<=o>>>0;c=c-(g<<3)|0}D[a+12>>2]=c;a=E[f|0]|E[f+1|0]<<8|(E[f+2|0]<<16|E[f+3|0]<<24);D[m+8>>2]=a;g=u>>>0>=I>>>0;if(z?g:1){if(g){break H}break I}g=(a<>>r<<1)+q|0;a=E[g|0];c=E[g+1|0]+c|0;D[m+12>>2]=c;B[u|0]=a;u=u+1|0;if(c>>>0<=32){continue}break}}if(u>>>0>=I>>>0){break H}a=D[m+8>>2]}e=(a<>>r<<1)+q|0;a=E[e|0];D[m+12>>2]=E[e+1|0]+c;B[u|0]=a;c=u+1|0;if((I|0)==(c|0)){break H}while(1){f=D[m+12>>2];e=(D[m+8>>2]<>>r<<1)+q|0;a=E[e|0];D[m+12>>2]=f+E[e+1|0];B[c|0]=a;c=c+1|0;if((I|0)!=(c|0)){continue}break}}f=(d|0)==6?(h|0)==32?(k|0)==(t|0)?(j|0)==32?(p|0)==(w|0)?(l|0)==32?D[m+16>>2]==D[m+20>>2]?D[m+12>>2]==32?b:-20:-20:-20:-20:-20:-20:-20:-20}Fa=m+32|0;return f}function gc(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){var v=0,w=0,x=0,y=0,z=0;y=Fa-16|0;Fa=y;z=l+m|0;x=z>>>0>>0?1:x;v=z;a:{if(!x&v>>>0>f>>>0|x){break a}v=n;z=v+o|0;x=0;x=v>>>0>z>>>0?1:x;v=z;if(!x&f>>>0>>0|x?o:0){break a}f=8;if((b&-2)==8){if((of(g<<2)|0)!=1){break a}if((of(h<<2)|0)!=1){break a}}v=4;b:{c:{d:{e:{f:{g:{h:{i:{z=(b|0)==9?q?9:8:b;switch(z|0){case 0:case 2:case 4:case 8:case 9:case 11:case 18:case 19:case 20:break e;case 1:case 3:case 5:case 6:case 7:case 10:case 12:case 17:case 21:break f;case 13:break g;case 14:case 15:case 16:break h;default:break i}}f=0;break e}v=2}b=J(g,h);break d}f=16}b=J(g,h);if(z-13>>>0>3){break c}v=f}if(J(u?u:j,s?s:i)>>>0<=d>>>0){break b}break a}if((z|0)==17){break a}v=f;if(b>>>0>d>>>0){break a}}x=e+l|0;d=e+n|0;l=!(p&4)|q^1;e=l?x:d;f=l?m:o;l=l^1;j:{switch(z|0){case 0:w=Wa(a,c,g,h,e,f,0,v,0,r,l,k,i,j,s,t,0,0,u);break a;case 2:w=Wa(a,c,g,h,e,f,2,v,1,r,l,k,i,j,s,t,0,0,u);break a;case 4:w=Wa(a,c,g,h,e,f,4,v,0,r,l,k,i,j,s,t,0,0,u);break a;case 8:w=Wa(a,c,g,h,e,f,6,v,0,r,l,k,i,j,s,t,0,0,u);break a;case 9:D[y+8>>2]=0;D[y>>2]=0;D[y+4>>2]=0;e=D[y+4>>2];if((e|0)!=(b|0)){if(b>>>0>=e>>>0){if(G[y+8>>2]>>0){Ya(y,b,(e+1|0)==(b|0),4);e=D[y+4>>2]}Va(D[y>>2]+(e<<2)|0,0,b-e<<2)}D[y+4>>2]=b}if(Wa(a,D[y>>2],g,h,d,o,20,4,0,r,1,k,i,j,g,t,0,0,0)){w=Wa(a,c,g,h,x,m,7,v,0,r,0,k,i,j,s,t,0,D[y>>2],0)}a=D[y>>2];if(!a){break a}Ta(a);break a;case 1:k:{if(!q){if(!h|!g){break k}p=(s?s:g)<<4;b=g&-2;q=g&1;n=0;while(1){l=J(n,p);f=b;if((g|0)!=1){while(1){d=c+l|0;B[d|0]=255;B[d+1|0]=29;e=F[204304]|F[204305]<<16;B[d+2|0]=e;B[d+3|0]=e>>>8;B[d+4|0]=e>>>16;B[d+5|0]=e>>>24;o=F[204306];B[d+6|0]=o;B[d+7|0]=o>>>8;B[d+16|0]=255;B[d+17|0]=29;B[d+18|0]=e;B[d+19|0]=e>>>8;B[d+20|0]=e>>>16;B[d+21|0]=e>>>24;B[d+22|0]=o;B[d+23|0]=o>>>8;l=l+32|0;f=f-2|0;if(f){continue}break}}if(q){d=c+l|0;B[d|0]=255;B[d+1|0]=29;e=F[204304]|F[204305]<<16;B[d+2|0]=e;B[d+3|0]=e>>>8;B[d+4|0]=e>>>16;B[d+5|0]=e>>>24;e=F[204306];B[d+6|0]=e;B[d+7|0]=e>>>8}n=n+1|0;if((n|0)!=(h|0)){continue}break}break k}if(!Wa(a,c,g,h,d,o,11,v,0,r,1,k,i,j,s,t,0,0,u)){break a}}w=Wa(a,c+8|0,g,h,x,m,0,v,0,r,0,k,i,j,s,t,0,0,u);break a;case 3:l:{if(!q){if(!h|!g){break l}n=(s?s:g)<<4;b=g&-4;d=g&3;p=g-1>>>0<3;o=0;while(1){l=J(n,o);f=b;if(!p){while(1){e=c+l|0;B[e+2|0]=0;B[e+3|0]=0;B[e+4|0]=0;B[e+5|0]=0;B[e|0]=255;B[e+1|0]=255;B[e+6|0]=0;B[e+7|0]=0;B[e+18|0]=0;B[e+19|0]=0;B[e+20|0]=0;B[e+21|0]=0;B[e+16|0]=255;B[e+17|0]=255;B[e+22|0]=0;B[e+23|0]=0;B[e+34|0]=0;B[e+35|0]=0;B[e+36|0]=0;B[e+37|0]=0;B[e+32|0]=255;B[e+33|0]=255;B[e+38|0]=0;B[e+39|0]=0;B[e+50|0]=0;B[e+51|0]=0;B[e+52|0]=0;B[e+53|0]=0;B[e+48|0]=255;B[e+49|0]=255;B[e+54|0]=0;B[e+55|0]=0;l=l- -64|0;f=f-4|0;if(f){continue}break}}f=d;if(d){while(1){e=c+l|0;B[e+2|0]=0;B[e+3|0]=0;B[e+4|0]=0;B[e+5|0]=0;B[e|0]=255;B[e+1|0]=255;B[e+6|0]=0;B[e+7|0]=0;l=l+16|0;f=f-1|0;if(f){continue}break}}o=o+1|0;if((o|0)!=(h|0)){continue}break}break l}if(!Wa(a,c,g,h,d,o,4,v,0,r,1,k,i,j,s,t,0,0,u)){break a}}w=Wa(a,c+8|0,g,h,x,m,2,v,0,r,0,k,i,j,s,t,0,0,u);break a;case 5:if(!Wa(a,c,g,h,x,m,4,v,0,r,0,k,i,j,s,t,0,0,u)){break a}e=c+8|0;if(q){w=Wa(a,e,g,h,d,o,4,v,0,r,1,k,i,j,s,t,0,0,u);break a}w=1;if(!h|!g){break a}i=(s?s:g)<<4;a=g&-4;b=g&3;g=g-1>>>0<3;f=0;while(1){c=J(f,i);l=a;if(!g){while(1){d=c+e|0;B[d+2|0]=0;B[d+3|0]=0;B[d+4|0]=0;B[d+5|0]=0;B[d|0]=255;B[d+1|0]=255;B[d+6|0]=0;B[d+7|0]=0;B[d+18|0]=0;B[d+19|0]=0;B[d+20|0]=0;B[d+21|0]=0;B[d+16|0]=255;B[d+17|0]=255;B[d+22|0]=0;B[d+23|0]=0;B[d+34|0]=0;B[d+35|0]=0;B[d+36|0]=0;B[d+37|0]=0;B[d+32|0]=255;B[d+33|0]=255;B[d+38|0]=0;B[d+39|0]=0;B[d+50|0]=0;B[d+51|0]=0;B[d+52|0]=0;B[d+53|0]=0;B[d+48|0]=255;B[d+49|0]=255;B[d+54|0]=0;B[d+55|0]=0;c=c- -64|0;l=l-4|0;if(l){continue}break}}l=b;if(l){while(1){d=c+e|0;B[d+2|0]=0;B[d+3|0]=0;B[d+4|0]=0;B[d+5|0]=0;B[d|0]=255;B[d+1|0]=255;B[d+6|0]=0;B[d+7|0]=0;c=c+16|0;l=l-1|0;if(l){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break};break a;case 10:if(q){if(!Wa(a,c,g,h,d,o,20,v,0,r,1,k,i,j,s,t,0,0,u)){break a}w=Wa(a,c,g,h,x,m,12,v,0,r,0,k,i,j,s,t,1,0,u);break a}w=Wa(a,c,g,h,x,m,12,v,0,r,0,k,i,j,s,t,0,0,u);break a;case 11:w=Wa(a,c,g,h,e,f,13,v,0,r,l,k,i,j,s,t,0,0,u);break a;case 12:m:{if(!q){if(!h|!g){break m}n=(s?s:g)<<4;b=g&-4;d=g&3;p=g-1>>>0<3;o=0;while(1){l=J(n,o);f=b;if(!p){while(1){e=c+l|0;B[e+2|0]=0;B[e+3|0]=0;B[e+4|0]=0;B[e+5|0]=0;B[e|0]=255;B[e+1|0]=255;B[e+6|0]=0;B[e+7|0]=0;B[e+18|0]=0;B[e+19|0]=0;B[e+20|0]=0;B[e+21|0]=0;B[e+16|0]=255;B[e+17|0]=255;B[e+22|0]=0;B[e+23|0]=0;B[e+34|0]=0;B[e+35|0]=0;B[e+36|0]=0;B[e+37|0]=0;B[e+32|0]=255;B[e+33|0]=255;B[e+38|0]=0;B[e+39|0]=0;B[e+50|0]=0;B[e+51|0]=0;B[e+52|0]=0;B[e+53|0]=0;B[e+48|0]=255;B[e+49|0]=255;B[e+54|0]=0;B[e+55|0]=0;l=l- -64|0;f=f-4|0;if(f){continue}break}}f=d;if(d){while(1){e=c+l|0;B[e+2|0]=0;B[e+3|0]=0;B[e+4|0]=0;B[e+5|0]=0;B[e|0]=255;B[e+1|0]=255;B[e+6|0]=0;B[e+7|0]=0;l=l+16|0;f=f-1|0;if(f){continue}break}}o=o+1|0;if((o|0)!=(h|0)){continue}break}break m}if(!Wa(a,c,g,h,d,o,4,v,0,r,1,k,i,j,s,t,0,0,u)){break a}}w=Wa(a,c+8|0,g,h,x,m,13,v,0,r,0,k,i,j,s,t,0,0,u);break a;case 18:w=Wa(a,c,g,h,e,f,16,v,0,r,l,k,i,j,s,t,0,0,u);break a;case 19:if(q){if(!Wa(a,c,g,h,d,o,20,v,0,r,1,k,i,j,s,t,0,0,u)){break a}w=Wa(a,c,g,h,x,m,17,v,0,r,0,k,i,j,s,t,1,0,u);break a}w=Wa(a,c,g,h,x,m,16,v,0,r,0,k,i,j,s,t,0,0,u);break a;case 13:l=22;if(q){l=21;if(!Wa(a,c,g,h,d,o,23,4,0,r,1,k,i,j,s,t,0,0,u)){break a}}w=Wa(a,c,g,h,x,m,l,4,0,r,0,k,i,j,s,t,0,0,u);break a;case 14:case 15:w=Wa(a,c,g,h,e,f,(z|0)==14?24:25,2,0,r,l,k,i,j,s,t,0,0,u);break a;case 16:l=28;if(q){l=26;if(!Wa(a,c,g,h,d,o,27,2,0,r,1,k,i,j,s,t,0,0,u)){break a}}w=Wa(a,c,g,h,x,m,l,2,0,r,0,k,i,j,s,t,0,0,u);break a;case 20:w=Wa(a,c,g,h,e,f,18,v,0,r,l,k,i,j,s,t,0,0,u);break a;case 21:break j;default:break a}}n=c+8|0;n:{if(!q){if(!h|!g){break n}p=(s?s:g)<<4;b=g&-2;w=g&1;q=0;while(1){l=J(p,q);f=b;if((g|0)!=1){while(1){d=l+n|0;B[d|0]=255;B[d+1|0]=29;e=F[204304]|F[204305]<<16;B[d+2|0]=e;B[d+3|0]=e>>>8;B[d+4|0]=e>>>16;B[d+5|0]=e>>>24;o=F[204306];B[d+6|0]=o;B[d+7|0]=o>>>8;B[d+16|0]=255;B[d+17|0]=29;B[d+18|0]=e;B[d+19|0]=e>>>8;B[d+20|0]=e>>>16;B[d+21|0]=e>>>24;B[d+22|0]=o;B[d+23|0]=o>>>8;l=l+32|0;f=f-2|0;if(f){continue}break}}if(w){d=l+n|0;B[d|0]=255;B[d+1|0]=29;e=F[204304]|F[204305]<<16;B[d+2|0]=e;B[d+3|0]=e>>>8;B[d+4|0]=e>>>16;B[d+5|0]=e>>>24;e=F[204306];B[d+6|0]=e;B[d+7|0]=e>>>8}q=q+1|0;if((q|0)!=(h|0)){continue}break}break n}if(!Wa(a,n,g,h,d,o,18,v,0,r,1,k,i,j,s,t,0,0,u)){break a}}w=Wa(a,c,g,h,x,m,18,v,0,r,0,k,i,j,s,t,0,0,u)}Fa=y+16|0;return w}function dc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=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,F=0,G=0,H=0,K=0;g=Fa-80|0;Fa=g;D[g+76>>2]=b;G=g+55|0;v=g+56|0;b=0;a:while(1){b:{if((p|0)<0){break b}if((2147483647-p|0)<(b|0)){D[112953]=61;p=-1;break b}p=b+p|0}c:{d:{e:{f:{g:{h:{i:{m=g;j:{k:{l:{f=D[g+76>>2];b=f;h=E[b|0];if(h){while(1){m:{h=h&255;n:{if(!h){h=b;break n}if((h|0)!=37){break m}h=b;while(1){if(E[b+1|0]!=37){break n}j=b+2|0;D[g+76>>2]=j;h=h+1|0;i=E[b+2|0];b=j;if((i|0)==37){continue}break}}b=h-f|0;if(a){rb(a,f,b)}if(b){continue a}b=D[g+76>>2];if(E[b+2|0]!=36|B[D[g+76>>2]+1|0]-48>>>0>=10){break l}r=B[b+1|0]-48|0;x=1;b=b+3|0;break k}j=b+1|0;D[g+76>>2]=j;h=E[b+1|0];b=j;continue}}n=p;if(a){break d}if(!x){break j}b=1;while(1){a=D[(b<<2)+e>>2];if(a){Qc((b<<3)+d|0,a,c);n=1;b=b+1|0;if((b|0)!=10){continue}break d}break}n=1;if(b>>>0>=10){break d}while(1){if(D[(b<<2)+e>>2]){break e}b=b+1|0;if((b|0)!=10){continue}break}break d}r=-1;b=b+1|0}D[m+76>>2]=b;k=0;i=B[b|0];h=i-32|0;o:{if(h>>>0>31){break o}h=1<>2]=j;i=B[b+1|0];b=i-32|0;if(b>>>0>=32){break p}b=1<>>0>=10){break s}b=D[g+76>>2];if(E[b+2|0]!=36){break s}D[((B[b+1|0]<<2)+e|0)-192>>2]=10;o=D[((B[b+1|0]<<3)+d|0)-384>>2];x=1;b=b+3|0;break r}if(x){break e}x=0;o=0;if(a){b=D[c>>2];D[c>>2]=b+4;o=D[b>>2]}b=D[g+76>>2]+1|0}D[j+76>>2]=b;if((o|0)>-1){break q}o=0-o|0;k=k|8192;break q}o=Pc(g+76|0);if((o|0)<0){break e}b=D[g+76>>2]}l=-1;t:{if(E[b|0]!=46){break t}if(E[b+1|0]==42){u:{if(B[b+2|0]-48>>>0>=10){break u}b=D[g+76>>2];if(E[b+3|0]!=36){break u}D[((B[b+2|0]<<2)+e|0)-192>>2]=10;l=D[((B[b+2|0]<<3)+d|0)-384>>2];b=b+4|0;D[g+76>>2]=b;break t}if(x){break e}if(a){b=D[c>>2];D[c>>2]=b+4;l=D[b>>2]}else{l=0}b=D[g+76>>2]+2|0;D[g+76>>2]=b;break t}D[g+76>>2]=b+1;l=Pc(g+76|0);b=D[g+76>>2]}h=0;while(1){m=h;n=-1;if(B[b|0]-65>>>0>57){break d}i=b+1|0;D[g+76>>2]=i;h=B[b|0];b=i;h=E[(h+J(m,58)|0)+420431|0];if(h-1>>>0<8){continue}break}if((h|0)==19){break h}if(!h){break d}if((r|0)>=0){D[(r<<2)+e>>2]=h;h=(r<<3)+d|0;b=D[h+4>>2];D[g+64>>2]=D[h>>2];D[g+68>>2]=b;break g}if(a){break i}}n=0;break d}Qc(g- -64|0,h,c);i=D[g+76>>2];break f}if((r|0)>-1){break d}}b=0;if(!a){continue}}j=k&-65537;h=k&8192?j:k;n=0;r=1152;k=v;v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{H:{I:{J:{K:{b=B[i-1|0];b=m?(b&15)==3?b&-33:b:b;switch(b-88|0){case 11:break v;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break c;case 9:case 13:case 14:case 15:break w;case 27:break B;case 12:case 17:break E;case 23:break F;case 0:case 32:break G;case 24:break H;case 22:break I;case 29:break J;default:break K}}L:{switch(b-65|0){case 1:case 3:break c;case 0:case 4:case 5:case 6:break w;case 2:break z;default:break L}}if((b|0)==83){break A}break c}i=D[g+64>>2];j=D[g+68>>2];r=1152;break D}b=0;M:{switch(m&255){case 0:D[D[g+64>>2]>>2]=p;continue;case 1:D[D[g+64>>2]>>2]=p;continue;case 2:f=D[g+64>>2];D[f>>2]=p;D[f+4>>2]=p>>31;continue;case 3:C[D[g+64>>2]>>1]=p;continue;case 4:B[D[g+64>>2]]=p;continue;case 6:D[D[g+64>>2]>>2]=p;continue;case 7:break M;default:continue}}f=D[g+64>>2];D[f>>2]=p;D[f+4>>2]=p>>31;continue}l=l>>>0>8?l:8;h=h|8;b=120}f=v;s=b&32;m=D[g+68>>2];j=m;i=D[g+64>>2];if(j|i){while(1){f=f-1|0;B[f|0]=s|E[(i&15)+420960|0];q=!j&i>>>0>15|(j|0)!=0;m=j;j=j>>>4|0;i=(m&15)<<28|i>>>4;if(q){continue}break}}if(!(D[g+64>>2]|D[g+68>>2])|!(h&8)){break C}r=(b>>>4|0)+1152|0;n=2;break C}b=v;f=D[g+68>>2];j=f;i=D[g+64>>2];if(f|i){while(1){b=b-1|0;B[b|0]=i&7|48;m=!j&i>>>0>7|(j|0)!=0;f=j;j=f>>>3|0;i=(f&7)<<29|i>>>3;if(m){continue}break}}f=b;if(!(h&8)){break C}b=v-f|0;l=(b|0)<(l|0)?l:b+1|0;break C}b=D[g+68>>2];j=b;i=D[g+64>>2];if((b|0)<-1?1:(b|0)<=-1){j=0-(((i|0)!=0)+j|0)|0;i=0-i|0;D[g+64>>2]=i;D[g+68>>2]=j;n=1;r=1152;break D}if(h&2048){n=1;r=1153;break D}n=h&1;r=n?1154:1152}b=v;N:{if(j>>>0<1){f=i;break N}while(1){m=i;z=0;F=0;f=j;u=f;O:{if(!f){Ga=0;f=(m>>>0)/10|0;break O}w=61-M(u)|0;s=0-w|0;q=w&63;t=q&31;if(q>>>0>=32){A=0;u=u>>>t|0}else{A=u>>>t|0;u=((1<>>t}q=s&63;s=q&31;if(q>>>0>=32){y=m<>>32-s|f<>>31;s=f;q=A<<1|u>>>31;m=0-(q+(f>>>0>9)|0)>>31;f=m&10;u=s-f|0;A=q-(f>>>0>s>>>0)|0;y=y<<1|t>>>31;t=F|t<<1;z=m&1;F=z;w=w-1|0;if(w){continue}break}}Ga=y<<1|t>>>31;f=z|t<<1}q=Ga;m=q;b=b-1|0;H=b,K=i-nf(f,m,10,0)|48,B[H|0]=K;q=j>>>0>9;i=f;j=m;if(q){continue}break}}if(f){while(1){b=b-1|0;j=(f>>>0)/10|0;B[b|0]=f-J(j,10)|48;i=f>>>0>9;f=j;if(i){continue}break}}f=b}h=(l|0)>-1?h&-65537:h;i=D[g+68>>2];j=i;b=D[g+64>>2];if(!(l|((b|0)!=0|(i|0)!=0))){l=0;f=v;break c}b=!(b|j)+(v-f|0)|0;l=(b|0)<(l|0)?l:b;break c}b=l;k=(b|0)!=0;f=D[g+64>>2];f=f?f:5173;h=f;P:{Q:{R:{S:{if(!(h&3)|!b){break S}while(1){if(!E[h|0]){break R}b=b-1|0;k=(b|0)!=0;h=h+1|0;if(!(h&3)){break S}if(b){continue}break}}if(!k){break Q}}T:{if(!E[h|0]|b>>>0<4){break T}while(1){i=D[h>>2];if((i^-1)&i-16843009&-2139062144){break T}h=h+4|0;b=b-4|0;if(b>>>0>3){continue}break}}if(!b){break Q}while(1){m=h;if(!E[h|0]){break P}h=h+1|0;b=b-1|0;if(b){continue}break}}m=0}b=m;k=b?b:f+l|0;h=j;l=b?b-f|0:l;break c}k=D[g+64>>2];if(l){break y}b=0;kb(a,32,o,0,h);break x}D[g+12>>2]=0;D[g+8>>2]=D[g+64>>2];D[g+64>>2]=g+8;l=-1;k=g+8|0}b=0;U:{while(1){f=D[k>>2];if(!f){break U}j=Oc(g+4|0,f);f=(j|0)<0;if(!(f|j>>>0>l-b>>>0)){k=k+4|0;b=b+j|0;if(l>>>0>b>>>0){continue}break U}break}n=-1;if(f){break d}}kb(a,32,o,b,h);if(!b){b=0;break x}k=0;i=D[g+64>>2];while(1){f=D[i>>2];if(!f){break x}f=Oc(g+4|0,f);k=f+k|0;if((k|0)>(b|0)){break x}rb(a,g+4|0,f);i=i+4|0;if(b>>>0>k>>>0){continue}break}}kb(a,32,o,b,h^8192);b=(b|0)<(o|0)?o:b;continue}b=Ha[0](a,I[g+64>>3],o,l,h,b)|0;continue}B[g+55|0]=D[g+64>>2];l=1;f=G;h=j;break c}n=-1}Fa=g+80|0;return n}i=k-f|0;j=(i|0)>(l|0)?i:l;k=j+n|0;b=(k|0)>(o|0)?k:o;kb(a,32,b,k,h);rb(a,r,n);kb(a,48,b,k,h^65536);kb(a,48,j,i,0);rb(a,f,i);kb(a,32,b,k,h^8192);continue}}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,H=0,I=0,M=0,N=K(0),O=0,P=0,Q=0,R=0,S=0,T=0,U=K(0),V=K(0),W=K(0),X=K(0);i=Fa-448|0;Fa=i;O=J(c,15)+b|0;d=E[O|0];P=J(c,14)+b|0;e=E[P|0];Q=J(c,13)+b|0;j=E[Q|0];R=J(c,12)+b|0;f=E[R|0];S=J(c,11)+b|0;k=E[S|0];v=J(c,10)+b|0;m=E[v|0];w=J(c,9)+b|0;l=E[w|0];x=(c<<3)+b|0;g=E[x|0];y=J(c,7)+b|0;n=E[y|0];z=J(c,6)+b|0;o=E[z|0];A=J(c,5)+b|0;p=E[A|0];H=(c<<2)+b|0;q=E[H|0];I=J(c,3)+b|0;r=E[I|0];M=(c<<1)+b|0;s=E[M|0];T=b+c|0;t=E[T|0];u=E[b|0];h=t>>>0>u>>>0?t:u;h=h>>>0>>0?s:h;h=h>>>0>>0?r:h;h=h>>>0>>0?q:h;h=h>>>0

>>0?p:h;h=h>>>0>>0?o:h;h=h>>>0>>0?n:h;h=g>>>0>h>>>0?g:h;h=h>>>0>>0?l:h;h=h>>>0>>0?m:h;h=h>>>0>>0?k:h;h=f>>>0>h>>>0?f:h;h=j>>>0>h>>>0?j:h;h=e>>>0>h>>>0?e:h;h=d>>>0>h>>>0?d:h;t=t>>>0>>0?t:u;s=s>>>0>>0?s:t;r=r>>>0>>0?r:s;q=q>>>0>>0?q:r;p=p>>>0>>0?p:q;o=o>>>0

>>0?o:p;n=n>>>0>>0?n:o;g=g>>>0>>0?g:n;l=g>>>0>l>>>0?l:g;m=l>>>0>m>>>0?m:l;k=k>>>0>>0?k:m;f=f>>>0>>0?f:k;j=j>>>0>>0?j:f;e=e>>>0>>0?e:j;d=e>>>0>d>>>0?d:e;a:{if((h|0)==(d|0)){C[a>>1]=d|3328;b=F[204304]|F[204305]<<16;C[a+2>>1]=b;C[a+4>>1]=b>>>16;C[a+6>>1]=F[204306];break a}e=h-d|0;if(e>>>0<=5){c=h-2|0;c=(c>>>0<256?c:c>>31^-1)&255;C[a>>1]=c|7424;k=E[P|0];m=E[Q|0];l=E[R|0];j=3-c|0;g=E[(j+E[O|0]|0)+414752|0];e=E[(j+E[T|0]|0)+414752|0]<<1;c=E[(j+E[b|0]|0)+414752|0]<<13;b=E[(j+E[M|0]|0)+414752|0];f=b>>>11|0;b=b<<21;e=f|(c|e);f=E[(j+E[H|0]|0)+414752|0]<<10;d=b;b=E[(j+E[I|0]|0)+414752|0];c=b>>>23|0;b=d|b<<9;e=f|(c|e);d=b;b=E[(j+E[A|0]|0)+414752|0];c=b>>>2|0;d=d|b<<30;b=E[(j+E[z|0]|0)+414752|0];f=b>>>14|0;b=d|b<<18;e=f|(c|e);f=E[(j+E[x|0]|0)+414752|0]<<7;d=b;b=E[(j+E[y|0]|0)+414752|0];c=b>>>26|0;b=d|b<<6;e=f|(c|e);d=b;b=E[(j+E[w|0]|0)+414752|0];c=b>>>5|0;d=d|b<<27;b=E[(j+E[v|0]|0)+414752|0];f=b>>>17|0;b=d|b<<15;e=f|(c|e);d=b;b=E[(j+E[S|0]|0)+414752|0];c=b>>>29|0;b=d|b<<3;c=c|e;d=a;B[d+7|0]=b|g;e=c|E[(j+l|0)+414752|0]<<4;c=e;B[d+3|0]=c;B[d+2|0]=c>>>8;e=E[(j+m|0)+414752|0];f=e>>>8|0;b=b|e<<24;e=c|f;f=e;B[d+4|0]=(e&16777215)<<8|b>>>24;e=E[(j+k|0)+414752|0];c=e>>>20|0;b=b|e<<12;e=c|f;c=e;B[d+6|0]=(c&255)<<24|b>>>8;B[d+5|0]=(c&65535)<<16|b>>>16;break a}U=K(d>>>0);W=K(K(h>>>0)-U);X=K(e>>>0);e=0;while(1){f=e<<2;k=f+(i+320|0)|0;d=e<<3;j=B[d+29251|0];N=K(B[d+29255|0]-j|0);V=lb(K(X/N));b:{if(K(L(V))>2]=(d|0)>1?d:1;f=f+(i+384|0)|0;N=lb(K(K(W*K(K(0-j|0)/N))+U));c:{if(K(L(N))>2]=(d>>>0<256?d:d>>31^-1)&255;e=e+1|0;if((e|0)!=16){continue}break}D[i+312>>2]=0;D[i+316>>2]=0;D[i+304>>2]=0;D[i+308>>2]=0;D[i+296>>2]=0;D[i+300>>2]=0;D[i+288>>2]=0;D[i+292>>2]=0;D[i+280>>2]=0;D[i+284>>2]=0;D[i+272>>2]=0;D[i+276>>2]=0;D[i+264>>2]=0;D[i+268>>2]=0;D[i+256>>2]=0;D[i+260>>2]=0;k=0;while(1){d=k<<3;t=d+29255|0;u=d+29254|0;h=d+29253|0;O=d+29252|0;P=d+29251|0;Q=d+29250|0;R=d+29249|0;S=d+29248|0;d=k<<2;v=d+(i+256|0)|0;m=D[v>>2];j=D[d+(i+384|0)>>2];f=D[d+(i+320|0)>>2];l=0;e=-1;g=0;while(1){d=E[J(c,l)+b|0];d:{if((d|0)==(e|0)){B[((k<<4)+i|0)+l|0]=g&7;d=g>>>3|0;m=J(d,d)+m|0;break d}e=j+J(f,B[S|0])|0;w=((e>>>0<256?e:e>>31^-1)&255)-d|0;e=w>>31;g=j+J(f,B[R|0])|0;x=((g>>>0<256?g:g>>31^-1)&255)-d|0;g=x>>31;n=j+J(f,B[Q|0])|0;y=((n>>>0<256?n:n>>31^-1)&255)-d|0;n=y>>31;o=j+J(f,B[P|0])|0;z=((o>>>0<256?o:o>>31^-1)&255)-d|0;o=z>>31;p=j+J(f,B[O|0])|0;A=((p>>>0<256?p:p>>31^-1)&255)-d|0;p=A>>31;q=j+J(f,B[h|0])|0;H=((q>>>0<256?q:q>>31^-1)&255)-d|0;q=H>>31;r=j+J(f,B[u|0])|0;I=((r>>>0<256?r:r>>31^-1)&255)-d|0;r=I>>31;s=j+J(f,B[t|0])|0;M=((s>>>0<256?s:s>>31^-1)&255)-d|0;s=M>>31;e=(e^e+w)<<3;g=(g^g+x)<<3|1;e=e>>>0>>0?e:g;g=(n^n+y)<<3|2;e=e>>>0>>0?e:g;g=(o^o+z)<<3|3;e=e>>>0>>0?e:g;g=(p^p+A)<<3|4;e=e>>>0>>0?e:g;g=(q^q+H)<<3|5;e=e>>>0>>0?e:g;g=(r^r+I)<<3|6;e=e>>>0>>0?e:g;g=(s^s+M)<<3|7;g=e>>>0>>0?e:g;B[((k<<4)+i|0)+l|0]=g&7;e=g>>>3|0;m=J(e,e)+m|0;e=d}l=l+1|0;if((l|0)!=16){continue}break}D[v>>2]=m;k=k+1|0;if((k|0)!=16){continue}break}b=D[i+260>>2];c=D[i+256>>2];d=b>>>0>>0;e=D[i+264>>2];b=d?b:c;c=e>>>0>>0;f=c?2:d;d=D[i+268>>2];b=c?e:b;c=d>>>0>>0;f=c?3:f;e=D[i+272>>2];b=c?d:b;c=e>>>0>>0;f=c?4:f;d=D[i+276>>2];b=c?e:b;c=d>>>0>>0;f=c?5:f;e=D[i+280>>2];b=c?d:b;c=e>>>0>>0;f=c?6:f;d=D[i+284>>2];b=c?e:b;c=d>>>0>>0;f=c?7:f;e=D[i+288>>2];b=c?d:b;c=e>>>0>>0;f=c?8:f;d=D[i+292>>2];b=c?e:b;c=d>>>0>>0;f=c?9:f;e=D[i+296>>2];b=c?d:b;c=e>>>0>>0;f=c?10:f;d=D[i+300>>2];b=c?e:b;c=d>>>0>>0;f=c?11:f;e=D[i+304>>2];b=c?d:b;c=e>>>0>>0;f=c?12:f;d=D[i+308>>2];b=c?e:b;c=d>>>0>>0;f=c?13:f;e=D[i+312>>2];b=c?d:b;c=e>>>0>>0;b=G[i+316>>2]<(c?e:b)>>>0?15:c?14:f;c=b<<2;C[a>>1]=F[c+(i+320|0)>>1]<<12|E[c+(i+384|0)|0]|b<<8&3840;k=(b<<4)+i|0;b=k;j=E[b+14|0];e=E[b+13|0];d=E[b+12|0];m=E[b+15|0];g=E[b+1|0]<<1|E[b|0]<<13;b=E[b+2|0];c=b>>>11|0;b=b<<21;l=c|g;f=b;c=E[k+3|0];b=c>>>23|0;c=f|c<<9;b=b|l;l=c;g=E[k+4|0]<<10|b;c=E[k+5|0];b=c>>>2|0;c=c<<30|l;l=b|g;f=c;b=E[k+6|0];c=b>>>14|0;b=f|b<<18;l=c|l;f=b;c=E[k+7|0];b=c>>>26|0;c=f|c<<6;b=b|l;l=c;g=E[k+8|0]<<7|b;c=E[k+9|0];b=c>>>5|0;c=c<<27|l;l=b|g;f=c;b=E[k+10|0];c=b>>>17|0;b=f|b<<15;l=c|l;f=b;c=E[k+11|0];b=c>>>29|0;c=f|c<<3;B[a+7|0]=c|m;f=b|l|d<<4;d=f;b=a;B[b+3|0]=d;B[b+2|0]=d>>>8;d=d|e>>>8;k=d;f=b;c=c|e<<24;B[b+4|0]=(d&16777215)<<8|c>>>24;d=j;b=d>>>20|0;c=c|d<<12;j=b|k;b=j;e=f;B[e+6|0]=(b&255)<<24|c>>>8;B[e+5|0]=(b&65535)<<16|c>>>16}Fa=i+448|0}function ad(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;p=Fa-16|0;Fa=p;D[p+12>>2]=0;D[p+8>>2]=0;f=-44;n=d+740|0;t=bd(n,d,p+8|0,p+12|0,b,c,d+128|0);a:{b:{if(t>>>0>4294967176){break b}q=D[p+12>>2];b=D[a>>2];if(q>>>0>(b&255)+1>>>0){break a}D[a>>2]=b&-16776961|q<<16&16711680;l=d- -64|0;m=D[p+8>>2];f=0;c:{if((q|0)<0){break c}c=q+1|0;j=c&3;b=0;if(q>>>0>=3){r=c&-4;while(1){h=f<<2;e=D[h+d>>2];D[h+l>>2]=b;c=h|4;g=D[c+d>>2];i=c+l|0;c=b+e|0;D[i>>2]=c;b=h|8;e=D[b+d>>2];g=c+g|0;D[b+l>>2]=g;b=h|12;c=D[b+d>>2];h=b+l|0;b=e+g|0;D[h>>2]=b;b=b+c|0;f=f+4|0;r=r-4|0;if(r){continue}break}}if(!j){break c}while(1){g=f<<2;c=D[g+d>>2];D[g+l>>2]=b;f=f+1|0;b=b+c|0;j=j-1|0;if(j){continue}break}}i=d+484|0;f=0;if((m|0)>3){g=m-3|0;while(1){b=l+(E[f+n|0]<<2)|0;c=D[b>>2];D[b>>2]=c+1;B[c+i|0]=f;c=f|1;b=l+(E[c+n|0]<<2)|0;e=D[b>>2];D[b>>2]=e+1;B[e+i|0]=c;c=f|2;b=l+(E[c+n|0]<<2)|0;e=D[b>>2];D[b>>2]=e+1;B[e+i|0]=c;c=f|3;b=l+(E[c+n|0]<<2)|0;e=D[b>>2];D[b>>2]=e+1;B[e+i|0]=c;f=f+4|0;if((g|0)>(f|0)){continue}break}}d:{if((f|0)>=(m|0)){break d}b=f+1|0;if(m-f&1){c=l+(E[f+n|0]<<2)|0;g=D[c>>2];D[c>>2]=g+1;B[g+i|0]=f;f=b}if((b|0)==(m|0)){break d}while(1){b=l+(E[f+n|0]<<2)|0;c=D[b>>2];D[b>>2]=c+1;B[c+i|0]=f;c=f+1|0;b=l+(E[c+n|0]<<2)|0;g=D[b>>2];D[b>>2]=g+1;B[g+i|0]=c;f=f+2|0;if((m|0)!=(f|0)){continue}break}}u=q+1|0;if(u>>>0<2){break b}o=a+4|0;j=D[d>>2];c=0;f=1;while(1){r=f;h=u-f|0;k=D[(f<<2)+d>>2];e:{f:{g:{h:{i:{j:{m=1<>1;switch(s-1|0){case 0:break g;case 1:break h;case 3:break i;case 7:break j;default:break f}}if((k|0)<1){break e}m=h<<8&65280;f=0;b=c;if((k|0)!=1){g=k&-2;while(1){e=o+(b<<1)|0;a=nf(m|E[i+(f+j|0)|0],0,65537,65537);h=a;B[e+8|0]=h;B[e+9|0]=h>>>8;B[e+10|0]=h>>>16;B[e+11|0]=h>>>24;h=Ga;B[e+12|0]=h;B[e+13|0]=h>>>8;B[e+14|0]=h>>>16;B[e+15|0]=h>>>24;B[e|0]=a;B[e+1|0]=a>>>8;B[e+2|0]=a>>>16;B[e+3|0]=a>>>24;B[e+4|0]=h;B[e+5|0]=h>>>8;B[e+6|0]=h>>>16;B[e+7|0]=h>>>24;a=nf(m|E[i+((f|1)+j|0)|0],0,65537,65537);h=a;B[e+24|0]=h;B[e+25|0]=h>>>8;B[e+26|0]=h>>>16;B[e+27|0]=h>>>24;h=Ga;B[e+28|0]=h;B[e+29|0]=h>>>8;B[e+30|0]=h>>>16;B[e+31|0]=h>>>24;B[e+16|0]=a;B[e+17|0]=a>>>8;B[e+18|0]=a>>>16;B[e+19|0]=a>>>24;B[e+20|0]=h;B[e+21|0]=h>>>8;B[e+22|0]=h>>>16;B[e+23|0]=h>>>24;f=f+2|0;b=b+16|0;g=g-2|0;if(g){continue}break}}if(!(k&1)){break e}g=o+(b<<1)|0;a=nf(m|E[i+(f+j|0)|0],0,65537,65537);b=a;B[g+8|0]=b;B[g+9|0]=b>>>8;B[g+10|0]=b>>>16;B[g+11|0]=b>>>24;b=Ga;B[g+12|0]=b;B[g+13|0]=b>>>8;B[g+14|0]=b>>>16;B[g+15|0]=b>>>24;B[g|0]=a;B[g+1|0]=a>>>8;B[g+2|0]=a>>>16;B[g+3|0]=a>>>24;B[g+4|0]=b;B[g+5|0]=b>>>8;B[g+6|0]=b>>>16;B[g+7|0]=b>>>24;break e}if((k|0)<1){break e}e=h<<8&65280;f=0;h=c;if((k|0)!=1){b=k&-2;while(1){a=o+(h<<1)|0;g=nf(e|E[i+(f+j|0)|0],0,65537,65537);B[a|0]=g;B[a+1|0]=g>>>8;B[a+2|0]=g>>>16;B[a+3|0]=g>>>24;g=Ga;B[a+4|0]=g;B[a+5|0]=g>>>8;B[a+6|0]=g>>>16;B[a+7|0]=g>>>24;g=nf(e|E[i+((f|1)+j|0)|0],0,65537,65537);B[a+8|0]=g;B[a+9|0]=g>>>8;B[a+10|0]=g>>>16;B[a+11|0]=g>>>24;g=Ga;B[a+12|0]=g;B[a+13|0]=g>>>8;B[a+14|0]=g>>>16;B[a+15|0]=g>>>24;f=f+2|0;h=h+8|0;b=b-2|0;if(b){continue}break}}if(!(k&1)){break e}b=o+(h<<1)|0;a=nf(e|E[i+(f+j|0)|0],0,65537,65537);B[b|0]=a;B[b+1|0]=a>>>8;B[b+2|0]=a>>>16;B[b+3|0]=a>>>24;a=Ga;B[b+4|0]=a;B[b+5|0]=a>>>8;B[b+6|0]=a>>>16;B[b+7|0]=a>>>24;break e}if((k|0)<1){break e}b=0;g=c;if((k|0)!=1){a=k&-2;while(1){e=o+(g<<1)|0;f=E[i+(b+j|0)|0];B[e+2|0]=f;B[e+3|0]=h;B[e+1|0]=h;B[e|0]=f;f=E[i+((b|1)+j|0)|0];B[e+5|0]=h;B[e+4|0]=f;B[e+6|0]=f;B[e+7|0]=h;b=b+2|0;g=g+4|0;a=a-2|0;if(a){continue}break}}if(!(k&1)){break e}a=E[i+(b+j|0)|0];b=o+(g<<1)|0;B[b+3|0]=h;B[b+1|0]=h;B[b|0]=a;B[b+2|0]=a;break e}if((k|0)<1){break e}f=0;g=c;if((k|0)!=1){a=k&-2;while(1){b=E[i+(f+j|0)|0];e=o+(g<<1)|0;B[e+1|0]=h;B[e|0]=b;b=E[i+((f|1)+j|0)|0];B[e+3|0]=h;B[e+2|0]=b;f=f+2|0;g=g+2|0;a=a-2|0;if(a){continue}break}}if(!(k&1)){break e}b=E[i+(f+j|0)|0];a=o+(g<<1)|0;B[a+1|0]=h;B[a|0]=b;break e}g=0;if((k|0)<=0){break e}l=h<<8&65280;a=c;while(1){if((m|0)>=2){n=o+(a<<1)|0;b=nf(l|E[i+(g+j|0)|0],0,65537,65537);f=Ga;h=0;while(1){e=n+(h<<1)|0;B[e+24|0]=b;B[e+25|0]=b>>>8;B[e+26|0]=b>>>16;B[e+27|0]=b>>>24;B[e+28|0]=f;B[e+29|0]=f>>>8;B[e+30|0]=f>>>16;B[e+31|0]=f>>>24;B[e+16|0]=b;B[e+17|0]=b>>>8;B[e+18|0]=b>>>16;B[e+19|0]=b>>>24;B[e+20|0]=f;B[e+21|0]=f>>>8;B[e+22|0]=f>>>16;B[e+23|0]=f>>>24;B[e+8|0]=b;B[e+9|0]=b>>>8;B[e+10|0]=b>>>16;B[e+11|0]=b>>>24;B[e+12|0]=f;B[e+13|0]=f>>>8;B[e+14|0]=f>>>16;B[e+15|0]=f>>>24;B[e|0]=b;B[e+1|0]=b>>>8;B[e+2|0]=b>>>16;B[e+3|0]=b>>>24;B[e+4|0]=f;B[e+5|0]=f>>>8;B[e+6|0]=f>>>16;B[e+7|0]=f>>>24;h=h+16|0;if((s|0)>(h|0)){continue}break}}a=a+s|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}f=r+1|0;j=k+j|0;c=J(k,s)+c|0;if((q|0)!=(r|0)){continue}break}}f=t}Fa=p+16|0;return f}function db(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=Fa-416|0;Fa=g;a:{if((a|0)==8){D[e>>2]=D[c>>2];D[e+4>>2]=D[c>>2];D[e+8>>2]=D[c>>2];D[e+12>>2]=D[c>>2];D[e+16>>2]=D[c>>2];D[e+20>>2]=D[c>>2];D[e+24>>2]=D[c>>2];D[e+28>>2]=D[c>>2];D[e+32>>2]=D[c>>2];D[e+36>>2]=D[c>>2];D[e+40>>2]=D[c>>2];D[e+44>>2]=D[c>>2];D[e+48>>2]=D[c>>2];D[e+52>>2]=D[c>>2];D[e+56>>2]=D[c>>2];D[e+60>>2]=D[c>>2];break a}r=E[a+23376|0];c=E[a+23440|0];j=E[a+23472|0];h=E[a+23536|0];f=a-8|0;k=f>>>0>6?h:4;b:{if((k|0)!=2){u=j>>>0>1?j:1;t=k>>>0>3?k:3;s=t-h|0;i=s+1&3;q=f>>>0<7;p=d+21|0;o=(c<<9)+429696|0;while(1){l=(g+384|0)+(n<<3)|0;m=l|4;if(k){f=J(k,n);c=0;while(1){v=c+f<<1;B[c+l|0]=E[o+(E[p+v|0]<<1)|0];B[c+m|0]=E[o+(E[p+(v|1)|0]<<1)|0];c=c+1|0;if((k|0)!=(c|0)){continue}break}}c:{if(q){break c}c=h;f=i;if(f){while(1){B[c+l|0]=255;B[c+m|0]=255;c=c+1|0;f=f-1|0;if(f){continue}break}}if(s>>>0<3){break c}while(1){B[c+l|0]=255;B[c+m|0]=255;f=c+1|0;B[f+l|0]=255;B[f+m|0]=255;f=c+2|0;B[f+l|0]=255;B[f+m|0]=255;f=c+3|0;B[f+l|0]=255;B[f+m|0]=255;c=c+4|0;if((f|0)!=(t|0)){continue}break}}n=n+1|0;if((u|0)!=(n|0)){continue}break}break b}p=j>>>0>1?j:1;h=0;f=d+21|0;i=(c<<9)+429696|0;while(1){l=h<<2;m=E[i+(E[l+f|0]<<1)|0];o=E[i+(E[f+(l|2)|0]<<1)|0];n=E[i+(E[f+(l|1)|0]<<1)|0];c=(g+384|0)+(h<<3)|0;B[c+7|0]=E[i+(E[f+(l|3)|0]<<1)|0];B[c+6|0]=n;B[c+5|0]=n;B[c+4|0]=n;B[c+3|0]=o;B[c+2|0]=m;B[c+1|0]=m;B[c|0]=m;h=h+1|0;if((p|0)!=(h|0)){continue}break}}l=D[(r<<2)+26896>>2];d:{if((k|0)==2){j=j>>>0>1?j:1;c=0;while(1){h=(g+384|0)+(c<<3)|0;f=E[h+7|0];k=f<<8|f;f=E[h+3|0];m=f<<8|f;f=E[h+4|0];n=f<<8|f;h=E[h|0];p=h<<8|h;h=0;while(1){i=h<<2;f=i+((c<<7)+g|0)|0;i=D[i+l>>2];o=64-i|0;B[f+3|0]=(J(o,m)+J(i,k)|0)+32>>>14;i=(J(p,o)+J(i,n)|0)+32>>>14|0;B[f+2|0]=i;B[f+1|0]=i;B[f|0]=i;h=h+1|0;if(!(h>>>r|0)){continue}break}c=c+1|0;if((j|0)!=(c|0)){continue}break}break d}if(k){i=0;c=3-k|0;m=(c>>>0>3?0:c)+1|0;j=j>>>0>1?j:1;while(1){n=(g+384|0)+(i<<3)|0;p=n|4;f=0;while(1){c=f<<2;o=c+((i<<7)+g|0)|0;u=o+k|0;t=c+l|0;h=0;while(1){s=D[t>>2];c=h;q=E[c+n|0];h=J(64-s|0,q<<8|q);q=E[c+p|0];B[c+o|0]=(h+J(s,q<<8|q)|0)+32>>>14;h=c+1|0;if((k|0)!=(h|0)){continue}break}if(c>>>0<=2){Va(u,255,m)}f=f+1|0;if(!(f>>>r|0)){continue}break}i=i+1|0;if((j|0)!=(i|0)){continue}break}break d}c=j>>>0>1?j:1;j=c&1;f=0;h=0;if(!(458083>>>a&1)){i=c&254;while(1){c=0;while(1){D[((h<<7)+g|0)+(c<<2)>>2]=-1;c=c+1|0;if(!(c>>>r|0)){continue}break}k=h|1;c=0;while(1){D[((k<<7)+g|0)+(c<<2)>>2]=-1;c=c+1|0;if(!(c>>>r|0)){continue}break}h=h+2|0;i=i-2|0;if(i){continue}break}}if(!j){break d}c=(h<<7)+g|0;while(1){D[c+(f<<2)>>2]=-1;f=f+1|0;if(!(f>>>r|0)){continue}break}}if(!(382655>>>a&1)){c=0;f=d+39|0;while(1){a=(c<<2)+e|0;h=c<<1;b=(E[h+f|0]<<2)+g|0;h=(E[f+(h|1)|0]<<2)+g|0;B[a|0]=E[(D[d+16>>2]?b:h)|0];B[a+1|0]=E[(D[d+16>>2]==1?h:b)+1|0];B[a+2|0]=E[(D[d+16>>2]==2?h:b)+2|0];B[a+3|0]=E[(D[d+16>>2]==3?h:b)+3|0];c=c+1|0;if((c|0)!=16){continue}break}break a}c=26688;e:{if(!(66204>>>a&1)){break e}f:{switch(a-3|0){case 0:c=(b<<4)+22528|0;break e;case 4:c=(b<<4)+22704|0;break e;default:break f}}c=(b<<4)+22048|0}b=c;c=e;g:{if(457827>>>a&1){D[e>>2]=D[(E[d+39|0]<<2)+g>>2];D[e+4>>2]=D[(E[d+40|0]<<2)+g>>2];D[e+8>>2]=D[(E[d+41|0]<<2)+g>>2];D[e+12>>2]=D[(E[d+42|0]<<2)+g>>2];D[e+16>>2]=D[(E[d+43|0]<<2)+g>>2];D[e+20>>2]=D[(E[d+44|0]<<2)+g>>2];D[e+24>>2]=D[(E[d+45|0]<<2)+g>>2];D[e+28>>2]=D[(E[d+46|0]<<2)+g>>2];D[e+32>>2]=D[(E[d+47|0]<<2)+g>>2];D[e+36>>2]=D[(E[d+48|0]<<2)+g>>2];D[e+40>>2]=D[(E[d+49|0]<<2)+g>>2];D[e+44>>2]=D[(E[d+50|0]<<2)+g>>2];D[e+48>>2]=D[(E[d+51|0]<<2)+g>>2];D[e+52>>2]=D[(E[d+52|0]<<2)+g>>2];D[e+56>>2]=D[(E[d+53|0]<<2)+g>>2];a=0;break g}D[e>>2]=D[((E[b|0]<<7)+g|0)+(E[d+39|0]<<2)>>2];D[e+4>>2]=D[((E[b+1|0]<<7)+g|0)+(E[d+40|0]<<2)>>2];D[e+8>>2]=D[((E[b+2|0]<<7)+g|0)+(E[d+41|0]<<2)>>2];D[e+12>>2]=D[((E[b+3|0]<<7)+g|0)+(E[d+42|0]<<2)>>2];D[e+16>>2]=D[((E[b+4|0]<<7)+g|0)+(E[d+43|0]<<2)>>2];D[e+20>>2]=D[((E[b+5|0]<<7)+g|0)+(E[d+44|0]<<2)>>2];D[e+24>>2]=D[((E[b+6|0]<<7)+g|0)+(E[d+45|0]<<2)>>2];D[e+28>>2]=D[((E[b+7|0]<<7)+g|0)+(E[d+46|0]<<2)>>2];D[e+32>>2]=D[((E[b+8|0]<<7)+g|0)+(E[d+47|0]<<2)>>2];D[e+36>>2]=D[((E[b+9|0]<<7)+g|0)+(E[d+48|0]<<2)>>2];D[e+40>>2]=D[((E[b+10|0]<<7)+g|0)+(E[d+49|0]<<2)>>2];D[e+44>>2]=D[((E[b+11|0]<<7)+g|0)+(E[d+50|0]<<2)>>2];D[e+48>>2]=D[((E[b+12|0]<<7)+g|0)+(E[d+51|0]<<2)>>2];D[e+52>>2]=D[((E[b+13|0]<<7)+g|0)+(E[d+52|0]<<2)>>2];D[e+56>>2]=D[((E[b+14|0]<<7)+g|0)+(E[d+53|0]<<2)>>2];a=E[b+15|0]}D[c+60>>2]=D[((a<<7)+g|0)+(E[d+54|0]<<2)>>2]}Fa=g+416|0}function Eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;c=E[b|0];d=E[b+16|0];g=c>>>0>>0?c:d;e=E[b+32|0];h=e>>>0>g>>>0?g:e;g=E[b+48|0];i=g>>>0>h>>>0?h:g;h=E[b+4|0];k=E[b+20|0];j=h>>>0>>0?h:k;l=E[b+36|0];f=j>>>0>>0?j:l;j=E[b+52|0];f=f>>>0>>0?f:j;o=f>>>0>i>>>0?i:f;i=E[b+8|0];f=E[b+24|0];q=f>>>0>i>>>0?i:f;m=E[b+40|0];n=m>>>0>q>>>0?q:m;q=E[b+56|0];n=n>>>0>>0?n:q;p=o>>>0>>0?o:n;o=E[b+12|0];n=E[b+28|0];r=o>>>0>>0?o:n;s=E[b+44|0];t=r>>>0>>0?r:s;r=E[b+60|0];t=r>>>0>t>>>0?t:r;p=p>>>0>>0?p:t;B[a+1|0]=p;c=c>>>0>d>>>0?c:d;c=c>>>0>e>>>0?c:e;c=c>>>0>g>>>0?c:g;d=h>>>0>k>>>0?h:k;d=d>>>0>l>>>0?d:l;d=d>>>0>j>>>0?d:j;c=c>>>0>d>>>0?c:d;d=f>>>0>>0?i:f;d=d>>>0>m>>>0?d:m;d=d>>>0>q>>>0?d:q;c=c>>>0>d>>>0?c:d;d=o>>>0>n>>>0?o:n;d=d>>>0>s>>>0?d:s;d=d>>>0>r>>>0?d:r;d=c>>>0>d>>>0?c:d;B[a|0]=d;if((d|0)==(p|0)){B[a+2|0]=0;B[a+3|0]=0;B[a+4|0]=0;B[a+5|0]=0;B[a+6|0]=0;B[a+7|0]=0;return}q=E[b+60|0];o=E[b+56|0];n=E[b+52|0];s=E[b+48|0];r=E[b+44|0];t=E[b+40|0];u=E[b+36|0];m=E[b+32|0];g=J(p,-14)+4|0;c=g+J(E[b+20|0],14)|0;e=d-p|0;h=J(e,13);k=J(e,11);l=J(e,9);j=J(e,7);i=J(e,5);f=J(e,3);d=D[((((((((c|0)>=(h|0))+((k|0)<=(c|0))|0)+((l|0)<=(c|0))|0)+((j|0)<=(c|0))|0)+((i|0)<=(c|0))|0)+((f|0)<=(c|0))|0)+((c|0)>=(e|0))<<2)+29472>>2]<<12;c=g+J(E[b+4|0],14)|0;p=d|D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29472>>2];c=g+J(E[b|0],14)|0;d=D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29440>>2];c=g+J(E[b+16|0],14)|0;p=p|(d|D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29440>>2]<<12);c=g+J(E[b+8|0],14)|0;d=D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29504>>2];c=g+J(E[b+24|0],14)|0;d=p|(d|D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29504>>2]<<12);c=g+J(E[b+12|0],14)|0;b=g+J(E[b+28|0],14)|0;b=d|(D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29536>>2]|D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29536>>2]<<12);B[a+2|0]=b;B[a+4|0]=b>>>16;B[a+3|0]=b>>>8;c=g+J(m,14)|0;m=D[((((((((c|0)>=(h|0))+((c|0)>=(k|0))|0)+((c|0)>=(l|0))|0)+((c|0)>=(j|0))|0)+((c|0)>=(i|0))|0)+((c|0)>=(f|0))|0)+((c|0)>=(e|0))<<2)+29440>>2];c=m>>>8|0;d=b|m<<24;b=g+J(u,14)|0;b=D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29472>>2];m=b>>>8|0;b=d|b<<24;m=c|m;d=b;b=g+J(t,14)|0;b=D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29504>>2];c=b>>>8|0;b=d|b<<24;c=c|m;d=b;b=g+J(r,14)|0;b=D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29536>>2];m=b>>>8|0;b=d|b<<24;m=c|m;c=m;B[a+5|0]=(c&16777215)<<8|b>>>24;b=g+J(s,14)|0;s=D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29440>>2]<<4|c;b=g+J(n,14)|0;c=D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29472>>2]<<4;b=g+J(o,14)|0;o=c|s|D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29504>>2]<<4;b=g+J(q,14)|0;c=D[((((((((b|0)>=(h|0))+((b|0)>=(k|0))|0)+((b|0)>=(l|0))|0)+((b|0)>=(j|0))|0)+((b|0)>=(i|0))|0)+((b|0)>=(f|0))|0)+((b|0)>=(e|0))<<2)+29536>>2]<<4;e=c|o;c=e;d=a;B[d+7|0]=c>>>8;B[d+6|0]=c}function ue(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(D[a>>2]==-559038750){c=a+4|0;a:{b:{if(!D[c>>2]){break b}a=1;if(D[c+52>>2]!=1){break a}a=1;if(D[c+196>>2]){break a}l=D[c>>2]+D[c+72>>2]|0;a=l;b=E[a+4|0]|E[a+5|0]<<8|(E[a+6|0]<<16|E[a+7|0]<<24);e=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);B[c+124|0]=e;B[c+125|0]=e>>>8;B[c+126|0]=e>>>16;B[c+127|0]=e>>>24;B[c+128|0]=b;B[c+129|0]=b>>>8;B[c+130|0]=b>>>16;B[c+131|0]=b>>>24;b=E[a+12|0]|E[a+13|0]<<8|(E[a+14|0]<<16|E[a+15|0]<<24);e=E[a+8|0]|E[a+9|0]<<8|(E[a+10|0]<<16|E[a+11|0]<<24);B[c+132|0]=e;B[c+133|0]=e>>>8;B[c+134|0]=e>>>16;B[c+135|0]=e>>>24;B[c+136|0]=b;B[c+137|0]=b>>>8;B[c+138|0]=b>>>16;B[c+139|0]=b>>>24;a=E[a+16|0]|E[a+17|0]<<8|(E[a+18|0]<<16|E[a+19|0]<<24);B[c+140|0]=a;B[c+141|0]=a>>>8;B[c+142|0]=a>>>16;B[c+143|0]=a>>>24;b=D[c+128>>2];c:{if(!b){break c}e=D[c+132>>2];if(!e){break c}h=D[c+136>>2];if(!F[c+126>>1]|(!h|!F[c+124>>1])){break c}a=D[c+40>>2];a=J(D[c+48>>2],J(D[c+44>>2],a>>>0>1?a:1));j=J(a,20);if(G[c+80>>2]<(D[c+140>>2]+(h+(e+(b+j|0)|0)|0)|0)+20>>>0){break c}d=D[c+148>>2];if((d|0)!=(a|0)){if(!(a>>>0>>0|a>>>0<=G[c+152>>2])){h=a;g=j;d:{if((a|0)!=(d+1|0)){break d}b=a;e=pf(b);g=j;if(!Ga&(e|0)==1){break d}e=0-(b>>>0<1)|0;h=e|e>>>16;g=h;g=g|g>>>8;i=g|g>>>4;b=b-1|e;b=(e&65535)<<16|b>>>16|b;b=(h&255)<<24|b>>>8|b;b=(g&15)<<28|b>>>4|b;b=(i&3)<<30|b>>>2|b;h=(((i|i>>>2)&1)<<31|b>>>1|b)+1|0;if(a>>>0>h>>>0){break c}g=J(h,20)}g=bb(g);if(!g){break c}e=D[c+144>>2];d=J(d,20);e:{if(!d){break e}i=d-20|0;f:{if((i>>>0)/20&1){b=e;f=g;break f}D[g>>2]=E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24);D[g+4>>2]=E[e+4|0]|E[e+5|0]<<8|(E[e+6|0]<<16|E[e+7|0]<<24);D[g+8>>2]=E[e+8|0]|E[e+9|0]<<8|(E[e+10|0]<<16|E[e+11|0]<<24);D[g+12>>2]=E[e+12|0]|E[e+13|0]<<8|(E[e+14|0]<<16|E[e+15|0]<<24);D[g+16>>2]=E[e+16|0]|E[e+17|0]<<8|(E[e+18|0]<<16|E[e+19|0]<<24);b=e+20|0;f=g+20|0}if(i>>>0<20){break e}i=d+e|0;while(1){d=E[b|0]|E[b+1|0]<<8|(E[b+2|0]<<16|E[b+3|0]<<24);B[f|0]=d;B[f+1|0]=d>>>8;B[f+2|0]=d>>>16;B[f+3|0]=d>>>24;d=E[b+4|0]|E[b+5|0]<<8|(E[b+6|0]<<16|E[b+7|0]<<24);B[f+4|0]=d;B[f+5|0]=d>>>8;B[f+6|0]=d>>>16;B[f+7|0]=d>>>24;d=E[b+8|0]|E[b+9|0]<<8|(E[b+10|0]<<16|E[b+11|0]<<24);B[f+8|0]=d;B[f+9|0]=d>>>8;B[f+10|0]=d>>>16;B[f+11|0]=d>>>24;d=E[b+12|0]|E[b+13|0]<<8|(E[b+14|0]<<16|E[b+15|0]<<24);B[f+12|0]=d;B[f+13|0]=d>>>8;B[f+14|0]=d>>>16;B[f+15|0]=d>>>24;d=E[b+16|0]|E[b+17|0]<<8|(E[b+18|0]<<16|E[b+19|0]<<24);B[f+16|0]=d;B[f+17|0]=d>>>8;B[f+18|0]=d>>>16;B[f+19|0]=d>>>24;d=E[b+20|0]|E[b+21|0]<<8|(E[b+22|0]<<16|E[b+23|0]<<24);B[f+20|0]=d;B[f+21|0]=d>>>8;B[f+22|0]=d>>>16;B[f+23|0]=d>>>24;d=E[b+24|0]|E[b+25|0]<<8|(E[b+26|0]<<16|E[b+27|0]<<24);B[f+24|0]=d;B[f+25|0]=d>>>8;B[f+26|0]=d>>>16;B[f+27|0]=d>>>24;d=E[b+28|0]|E[b+29|0]<<8|(E[b+30|0]<<16|E[b+31|0]<<24);B[f+28|0]=d;B[f+29|0]=d>>>8;B[f+30|0]=d>>>16;B[f+31|0]=d>>>24;d=E[b+32|0]|E[b+33|0]<<8|(E[b+34|0]<<16|E[b+35|0]<<24);B[f+32|0]=d;B[f+33|0]=d>>>8;B[f+34|0]=d>>>16;B[f+35|0]=d>>>24;d=E[b+36|0]|E[b+37|0]<<8|(E[b+38|0]<<16|E[b+39|0]<<24);B[f+36|0]=d;B[f+37|0]=d>>>8;B[f+38|0]=d>>>16;B[f+39|0]=d>>>24;f=f+40|0;b=b+40|0;if((i|0)!=(b|0)){continue}break}}if(e){Ta(e)}D[c+152>>2]=h;D[c+144>>2]=g}D[c+148>>2]=a}g=l+20|0;Xa(D[c+144>>2],g,j);g:{if(!a){break g}e=D[c+144>>2];h=0;if(!E[c+1204|0]){while(1){f=0;b=e+J(h,20)|0;if(!(E[b+8|0]|E[b+9|0]<<8|(E[b+10|0]<<16|E[b+11|0]<<24))){break c}h=h+1|0;if((a|0)!=(h|0)){continue}break g}}while(1){f=0;b=e+J(h,20)|0;if(!(E[b+8|0]|E[b+9|0]<<8|(E[b+10|0]<<16|E[b+11|0]<<24))|!(E[b+16|0]|E[b+17|0]<<8|(E[b+18|0]<<16|E[b+19|0]<<24))){break c}h=h+1|0;if((a|0)!=(h|0)){continue}break}}f=0;a=c+188|0;b=g+j|0;e=b+D[c+128>>2]|0;if(!lc(a,e+D[c+132>>2]|0,D[c+136>>2])){break c}f=Wb(a,F[c+124>>1],b,D[c+128>>2],F[c+126>>1],e,D[c+132>>2])}if(!f){break b}m=1;if(E[c+1205|0]|D[c+44>>2]!=1|G[c+40>>2]<2){break b}a=D[c+148>>2];if(!a){break b}b=D[c+144>>2];while(1){if(!(E[b+J(k,20)|0]&2)){k=k+1|0;if((a|0)!=(k|0)){continue}break b}break}B[c+1205|0]=1}a=m}}else{a=0}return a|0}function ec(a,b,c,d,e,f,g,h,i,j,k,l,m,n){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;u=Fa-128|0;Fa=u;D[u+124>>2]=d;p=-1;a:{b:{switch(c|0){case 1:if(!g){p=-72;break a}p=-20;c=E[f|0];if(c>>>0>d>>>0){break a}c=c<<2;d=D[c+i>>2];c=D[c+h>>2];B[a+11|0]=0;D[a>>2]=0;D[a+4>>2]=0;D[a+12>>2]=c;B[a+10|0]=d;C[a+8>>1]=0;D[b>>2]=a;p=1;break a;case 0:D[b>>2]=j;p=0;break a;case 3:if(!k){p=-20;break a}p=0;if(!l|(m|0)<25){break a}a=(8<>>0>d>>>0){continue}break};break a;case 2:break b;default:break a}}p=-20;f=hc(u,u+124|0,u+120|0,f,g);if(f>>>0>4294967176){break a}c=D[u+120>>2];if(c>>>0>e>>>0){break a}l=0;e=0;A=n+106|0;g=a;t=g+8|0;s=1;j=c;v=1<>2];if((y|0)!=-1){w=65536<>16;c=y+1|0;z=c&1;if(!y){c=d;break f}m=c&-2;c=d;while(1){p=q<<1;r=F[p+k>>1];g:{if((r|0)==65535){D[((c<<3)+t|0)+4>>2]=q;c=c-1|0;r=1;break g}s=(w|0)>r<<16>>16?s:0}C[n+p>>1]=r;x=q|1;p=x<<1;r=F[p+k>>1];h:{if((r|0)!=65535){s=(w|0)>r<<16>>16?s:0;break h}D[((c<<3)+t|0)+4>>2]=x;c=c-1|0;r=1}C[n+p>>1]=r;q=q+2|0;m=m-2|0;if(m){continue}break}break f}D[g+4>>2]=j;D[g>>2]=1;r=((v>>>3)+(v>>>1)|0)+3|0;break e}if(z){r=F[(q<<1)+k>>1];i:{if((r|0)!=65535){s=(w|0)>r<<16>>16?s:0;break i}D[((c<<3)+t|0)+4>>2]=q;c=c-1|0;r=1}C[(q<<1)+n>>1]=r}D[g+4>>2]=j;D[g>>2]=s;r=((v>>>3)+(v>>>1)|0)+3|0;q=0;if((c|0)!=(d|0)){break d}c=0;while(1){g=c;w=C[(c<<1)+k>>1];z=q+A|0;c=z;B[c|0]=e;B[c+1|0]=e>>>8;B[c+2|0]=e>>>16;B[c+3|0]=e>>>24;B[c+4|0]=l;B[c+5|0]=l>>>8;B[c+6|0]=l>>>16;B[c+7|0]=l>>>24;j:{if((w|0)<9){break j}p=w-9|0;c=(p>>>3|0)+1|0;m=c&7;s=8;if(p>>>0>=56){x=c&1073741816;while(1){o=s+z|0;B[o|0]=e;B[o+1|0]=e>>>8;B[o+2|0]=e>>>16;B[o+3|0]=e>>>24;p=l;B[o+4|0]=p;B[o+5|0]=p>>>8;B[o+6|0]=p>>>16;B[o+7|0]=p>>>24;c=e;B[o+56|0]=c;B[o+57|0]=c>>>8;B[o+58|0]=c>>>16;B[o+59|0]=c>>>24;B[o+60|0]=p;B[o+61|0]=p>>>8;B[o+62|0]=p>>>16;B[o+63|0]=p>>>24;B[o+48|0]=c;B[o+49|0]=c>>>8;B[o+50|0]=c>>>16;B[o+51|0]=c>>>24;B[o+52|0]=p;B[o+53|0]=p>>>8;B[o+54|0]=p>>>16;B[o+55|0]=p>>>24;B[o+40|0]=c;B[o+41|0]=c>>>8;B[o+42|0]=c>>>16;B[o+43|0]=c>>>24;B[o+44|0]=p;B[o+45|0]=p>>>8;B[o+46|0]=p>>>16;B[o+47|0]=p>>>24;B[o+32|0]=c;B[o+33|0]=c>>>8;B[o+34|0]=c>>>16;B[o+35|0]=c>>>24;B[o+36|0]=p;B[o+37|0]=p>>>8;B[o+38|0]=p>>>16;B[o+39|0]=p>>>24;B[o+24|0]=c;B[o+25|0]=c>>>8;B[o+26|0]=c>>>16;B[o+27|0]=c>>>24;B[o+28|0]=p;B[o+29|0]=p>>>8;B[o+30|0]=p>>>16;B[o+31|0]=p>>>24;B[o+16|0]=c;B[o+17|0]=c>>>8;B[o+18|0]=c>>>16;B[o+19|0]=c>>>24;B[o+20|0]=p;B[o+21|0]=p>>>8;B[o+22|0]=p>>>16;B[o+23|0]=p>>>24;B[o+8|0]=c;B[o+9|0]=c>>>8;B[o+10|0]=c>>>16;B[o+11|0]=c>>>24;B[o+12|0]=p;B[o+13|0]=p>>>8;B[o+14|0]=p>>>16;B[o+15|0]=p>>>24;s=s- -64|0;x=x-8|0;if(x){continue}break}}if(!m){break j}while(1){c=s+z|0;B[c|0]=e;B[c+1|0]=e>>>8;B[c+2|0]=e>>>16;B[c+3|0]=e>>>24;B[c+4|0]=l;B[c+5|0]=l>>>8;B[c+6|0]=l>>>16;B[c+7|0]=l>>>24;s=s+8|0;m=m-1|0;if(m){continue}break}}c=l+16843009|0;e=e+16843009|0;l=e>>>0<16843009?c+1|0:c;c=g+1|0;q=q+w|0;if((g|0)!=(y|0)){continue}break}}e=r<<1;q=0;c=0;while(1){D[(((c&d)<<3)+t|0)+4>>2]=E[q+A|0];D[(((d&c+r)<<3)+t|0)+4>>2]=E[(q|1)+A|0];c=d&c+e;q=q+2|0;if(v>>>0>q>>>0){continue}break}break c}m=0;while(1){e=m;g=C[(e<<1)+k>>1];k:{if((g|0)<1){break k}if((g|0)!=1){m=g&-2;while(1){D[((q<<3)+t|0)+4>>2]=e;while(1){q=d&q+r;if(q>>>0>c>>>0){continue}break}D[((q<<3)+t|0)+4>>2]=e;while(1){q=d&q+r;if(q>>>0>c>>>0){continue}break}m=m-2|0;if(m){continue}break}}if(!(g&1)){break k}D[((q<<3)+t|0)+4>>2]=e;while(1){q=d&q+r;if(q>>>0>c>>>0){continue}break}}m=e+1|0;if((e|0)!=(y|0)){continue}break}}e=j+1|0;j=0;while(1){k=(j<<3)+t|0;d=D[k+4>>2];c=(d<<1)+n|0;g=F[c>>1];C[c>>1]=g+1;c=e+(M(g)^-32)|0;B[k+3|0]=c;C[k>>1]=(g<>2];D[k+4>>2]=D[c+h>>2];j=j+1|0;if((v|0)!=(j|0)){continue}break}D[b>>2]=a;p=f}Fa=u+128|0;return p}function gd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;e=Fa-256|0;Fa=e;g=D[a+4>>2];a:{if(!b){if((g|0)>=1){D[a+4>>2]=0}b=D[a+16>>2];if((b|0)>=1){D[a+16>>2]=b&-1073741824}d=1;b=D[a+28>>2];if((b|0)<1){break a}D[a+28>>2]=b&-2147483648;break a}if((b|0)!=(g|0)){if(b>>>0>=g>>>0){if(G[a+8>>2]>>0){Ya(a,b,(g+1|0)==(b|0),1);g=D[a+4>>2]}Va(D[a>>2]+g|0,0,b-g|0)}D[a+4>>2]=b}Xa(D[a>>2],c,b);if(D[a+16>>2]){D[a+16>>2]=0}n=a+12|0;g=0;if(G[a+20>>2]<1024){Ya(n,1024,0,4);g=D[a+16>>2]}Va(D[a+12>>2]+(g<<2)|0,0,1024-g<<2);D[a+16>>2]=1024;if(D[a+28>>2]){D[a+28>>2]=0}m=a+24|0;f=b<<1;if(f){if(f>>>0>G[a+32>>2]){Ya(m,f,0,2);h=D[a+28>>2]}Va(D[a+24>>2]+(h<<1)|0,0,f-h<<1);D[a+28>>2]=f}Va(e+128|0,0,128);g=0;while(1){f=E[c+g|0];if(f>>>0>31){break a}f=(e+128|0)+(f<<2)|0;D[f>>2]=D[f>>2]+1;g=g+1|0;if((g|0)!=(b|0)){continue}break}f=D[e+184>>2];i=D[e+180>>2];g=D[e+176>>2];h=D[e+172>>2];j=D[e+168>>2];k=D[e+164>>2];l=D[e+160>>2];o=D[e+156>>2];p=D[e+152>>2];q=D[e+148>>2];r=D[e+144>>2];s=D[e+140>>2];t=D[e+136>>2];u=D[e+132>>2];D[e>>2]=0;D[e+4>>2]=0;d=u<<1;D[e+8>>2]=d;d=d+t<<1;D[e+12>>2]=d;d=d+s<<1;D[e+16>>2]=d;d=d+r<<1;D[e+20>>2]=d;d=d+q<<1;D[e+24>>2]=d;d=d+p<<1;D[e+28>>2]=d;d=d+o<<1;D[e+32>>2]=d;d=d+l<<1;D[e+36>>2]=d;d=d+k<<1;D[e+40>>2]=d;d=d+j<<1;D[e+44>>2]=d;d=d+h<<1;D[e+48>>2]=d;d=d+g<<1;D[e+52>>2]=d;d=d+i<<1;D[e+56>>2]=d;d=d+f<<1;D[e+60>>2]=d;v=D[e+188>>2];d=d+v<<1;D[e+64>>2]=d;w=D[e+192>>2];d=d+w<<1;D[e+68>>2]=d;x=D[e+196>>2];d=d+x<<1;D[e+72>>2]=d;y=D[e+200>>2];d=d+y<<1;D[e+76>>2]=d;z=D[e+204>>2];d=d+z<<1;D[e+80>>2]=d;A=D[e+208>>2];d=d+A<<1;D[e+84>>2]=d;B=D[e+212>>2];d=d+B<<1;D[e+88>>2]=d;H=D[e+216>>2];d=d+H<<1;D[e+92>>2]=d;I=D[e+220>>2];d=d+I<<1;D[e+96>>2]=d;J=D[e+224>>2];d=d+J<<1;D[e+100>>2]=d;K=D[e+228>>2];d=d+K<<1;D[e+104>>2]=d;L=D[e+232>>2];d=d+L<<1;D[e+108>>2]=d;M=D[e+236>>2];d=d+M<<1;D[e+112>>2]=d;N=D[e+240>>2];d=d+N<<1;D[e+116>>2]=d;O=D[e+244>>2];d=d+O<<1;D[e+120>>2]=d;P=D[e+248>>2];d=d+P<<1;D[e+124>>2]=d;if((d|0)!=-2147483648){d=0;if(((((((((((((((((f+(i+(g+(h+(j+(k+(l+((((((t+u|0)+s|0)+r|0)+q|0)+p|0)+o|0)|0)|0)|0)|0)|0)|0)|0)+v|0)+w|0)+x|0)+y|0)+z|0)+A|0)+B|0)+H|0)+I|0)+J|0)+K|0)+L|0)+M|0)+N|0)+O|0)+P>>>0>1){break a}}if((b|0)<1){d=1;break a}f=-1;l=0;while(1){j=E[c+l|0];b:{if(!j){break b}i=(j<<2)+e|0;g=D[i>>2];D[i>>2]=g+1;d=j&3;h=0;c:{if(j-1>>>0<3){break c}k=j&252;while(1){h=g>>>3&1|(g>>>2&1|(g&2|(g<<2&4|h)))<<1;g=g>>>4|0;k=k-4|0;if(!k){break c}h=h<<3;continue}}if(d){while(1){h=g&1|h<<1;g=g>>>1|0;d=d-1|0;if(d){continue}break}}if(j>>>0<=10){if(h>>>0>=1024){break b}i=1<>2]+(h<<2)|0;if(D[d>>2]){d=0;break a}D[d>>2]=g;h=h+i|0;if(h>>>0<1024){continue}break}break b}i=D[n>>2]+((h&1023)<<2)|0;g=D[i>>2];d:{if(g){i=f;f=g;break d}D[i>>2]=f;i=f-2|0}if((f|0)>-1){d=0;break a}k=h>>>9|0;if((j|0)>11){while(1){d=0;k=k>>>1|0;f=f-(k&1)|0;if((f|0)>-1){break a}g=D[a+28>>2];h=f^-1;e:{if((g|0)>(h|0)){break e}f=0-f|0;if((f|0)==(g|0)){break e}if(g>>>0<=f>>>0){if(f>>>0>G[a+32>>2]){Ya(m,f,(f|0)==(g+1|0),2);g=D[a+28>>2]}Va(D[m>>2]+(g<<1)|0,0,f-g<<1)}D[a+28>>2]=f}g=D[m>>2]+(h<<1)|0;f=C[g>>1];f:{if(!f){C[g>>1]=i;f=i;i=f-2|0;break f}if((f|0)>-1){break a}}j=j-1|0;if((j|0)>11){continue}break}}f=(k>>>1&1)-f|0;if((f|0)<1){d=0;break a}h=D[a+28>>2];if((f|0)>(h|0)){if(f>>>0>=h>>>0){if(f>>>0>G[a+32>>2]){Ya(m,f,(f|0)==(h+1|0),2);h=D[a+28>>2]}Va(D[m>>2]+(h<<1)|0,0,f-h<<1)}D[a+28>>2]=f}d=0;f=D[m>>2]+(f-1<<1)|0;if(F[f>>1]){break a}C[f>>1]=l;f=i}d=1;l=l+1|0;if((l|0)!=(b|0)){continue}break}}Fa=e+256|0;return d}function td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Fa-96|0;Fa=d;D[a>>2]=0;D[a+4>>2]=0;D[a+56>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;a:{if(D[b>>2]!=-559038751){break a}D[d+76>>2]=0;D[d+60>>2]=0;D[d+68>>2]=0;D[d+72>>2]=0;D[d+52>>2]=0;D[d+56>>2]=0;b:{c:{c=D[b+596>>2];if(!Cc(c,D[b+600>>2])){break c}h=c+8|0;e=65535;b=69;while(1){f=E[h|0]^(e&65280)>>>8;f=f>>>4^f;e=(f|e<<8)^f<<5;f=e^f<<12;if((b|0)==1){if(((f^-1)&65535)!=(E[c+6|0]|E[c+7|0]<<8)){break c}h=E[c+65|0]|E[c+66|0]<<8|(E[c+67|0]<<16|E[c+68|0]<<24);D[d>>2]=E[c+2|0]|E[c+3|0]<<8;D[d+4>>2]=J(E[c+14|0]|(E[c+15|0]<<8|E[c+16|0]<<16),23)+77;D[d+8>>2]=E[c+48|0]|E[c+49|0]<<8;D[d+12>>2]=E[c+50|0]|E[c+51|0]<<8|(E[c+52|0]<<16|E[c+53|0]<<24);D[d+16>>2]=E[c+54|0]|(E[c+55|0]<<8|E[c+56|0]<<16);D[d+20>>2]=E[c+39|0]|E[c+40|0]<<8;D[d+24>>2]=E[c+41|0]|E[c+42|0]<<8|(E[c+43|0]<<16|E[c+44|0]<<24);D[d+28>>2]=E[c+45|0]|(E[c+46|0]<<8|E[c+47|0]<<16);D[d+32>>2]=E[c+57|0]|E[c+58|0]<<8|(E[c+59|0]<<16|E[c+60|0]<<24);D[d+36>>2]=E[c+61|0]|E[c+62|0]<<8|(E[c+63|0]<<16|E[c+64|0]<<24);D[d+88>>2]=E[c+20|0];B[d+93|0]=!E[c+20|0];B[d+92|0]=E[c+21|0]>>>1&1;B[d+94|0]=E[c+21|0]>>>2&1;f=E[c+14|0]|(E[c+15|0]<<8|E[c+16|0]<<16);b=D[d+56>>2];if((f|0)!=(b|0)){if(!(b>>>0>f>>>0|G[d+60>>2]>=f>>>0)){Ya(d+52|0,f,(b+1|0)==(f|0),52)}D[d+56>>2]=f}D[d+40>>2]=0;b=E[c+23|0];D[d+44>>2]=b;if(b>>>0>5){break c}D[d+48>>2]=E[c+24|0]|(E[c+25|0]<<8|E[c+26|0]<<16);D[d+80>>2]=E[c+31|0]|E[c+32|0]<<8|(E[c+33|0]<<16|E[c+34|0]<<24);D[d+84>>2]=E[c+35|0]|E[c+36|0]<<8|(E[c+37|0]<<16|E[c+38|0]<<24);if(D[d+72>>2]){D[d+72>>2]=0}k=d+68|0;e=0;g=d;b=E[c+17|0]|(E[c+18|0]<<8|E[c+19|0]<<16);if(b){if(b>>>0>G[d+76>>2]){Ya(k,b,(b|0)==1,4);e=D[d+72>>2]}Va(D[d+68>>2]+(e<<2)|0,0,b-e<<2);D[d+72>>2]=b;b=E[c+17|0]|(E[c+18|0]<<8|E[c+19|0]<<16)}else{b=0}D[g+64>>2]=b;d:{if(!f){h=0;break d}l=c+h|0;h=1;while(1){b=l+J(i,23)|0;D[d+40>>2]=D[d+40>>2]+(E[b+17|0]|E[b+18|0]<<8|(E[b+19|0]<<16|E[b+20|0]<<24));e=D[d+52>>2]+J(i,52)|0;D[e>>2]=E[b+5|0]|E[b+6|0]<<8;D[e+4>>2]=E[b+7|0]|E[b+8|0]<<8;D[e+8>>2]=E[b+9|0]<<2|E[b+10|0]<<10;D[e+12>>2]=E[b+11|0]<<2|E[b+12|0]<<10;g=E[b+9|0]|E[b+10|0]<<8;D[e+16>>2]=g;j=E[b+11|0]|E[b+12|0]<<8;D[e+20>>2]=j;D[e+24>>2]=J(g,j);g=E[b+17|0]|E[b+18|0]<<8|(E[b+19|0]<<16|E[b+20|0]<<24);D[e+32>>2]=i;D[e+28>>2]=g;D[e+36>>2]=E[b|0]|(E[b+1|0]<<8|E[b+2|0]<<16);D[e+40>>2]=E[b+3|0];D[e+44>>2]=E[b+21|0]|E[b+22|0]<<8;B[e+48|0]=B[b+4|0]&1;B[e+49|0]=E[b+4|0]>>>1&1;e=E[b|0]|(E[b+1|0]<<8|E[b+2|0]<<16);if(e>>>0>=(E[c+17|0]|(E[c+18|0]<<8|E[c+19|0]<<16))>>>0){break d}g=D[k>>2]+(e<<2)|0;e=D[g>>2];j=g;g=E[b+3|0]+1|0;D[j>>2]=e>>>0>g>>>0?e:g;if(G[D[k>>2]+((E[b|0]|(E[b+1|0]<<8|E[b+2|0]<<16))<<2)>>2]>=17){break d}i=i+1|0;h=i>>>0>>0;if((f|0)!=(i|0)){continue}break}}b=(h^-1)&1;break b}else{f=E[h+1|0]^(f&65280)>>>8;f=f>>>4^f;e=(f|e<<8)^f<<5^f<<12;b=b-2|0;h=h+2|0;continue}}}b=0}if(b){D[a>>2]=D[d>>2];D[a+4>>2]=D[d+48>>2];D[a+8>>2]=D[d+64>>2];D[a+12>>2]=D[d+80>>2];D[a+16>>2]=D[d+84>>2];D[a+20>>2]=D[d+88>>2];B[a+24|0]=E[d+92|0];B[a+25|0]=E[d+94|0];D[a+28>>2]=D[d+20>>2];D[a+32>>2]=D[d+24>>2];D[a+36>>2]=D[d+28>>2];D[a+40>>2]=D[d+8>>2];D[a+44>>2]=D[d+12>>2];D[a+48>>2]=D[d+16>>2];D[a+52>>2]=D[d+32>>2];D[a+56>>2]=D[d+36>>2]}a=D[d+68>>2];if(a){Ta(a)}a=D[d+52>>2];if(!a){break a}Ta(a)}Fa=d+96|0}function fb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Fa-96|0;Fa=f;if(D[b+4>>2]>=1){D[b+4>>2]=0}d=D[b+16>>2];if((d|0)>=1){D[b+16>>2]=d&-1073741824}d=D[b+28>>2];if((d|0)>=1){D[b+28>>2]=d&-2147483648}h=D[a+12>>2];d=D[a+20>>2];a:{if(d>>>0>=14){e=D[a+16>>2];break a}c=D[a+4>>2];if(h>>>0>c>>>0){g=c+1|0;D[a+4>>2]=g;e=E[c|0]<>2]=g;e=D[a+16>>2]|e;D[a+16>>2]=e;if(d>>>0>=6){d=g;break a}if(c>>>0>=h>>>0){e=0}else{D[a+4>>2]=c+1;e=E[c|0]<>2]=d;e=e|D[a+16>>2];D[a+16>>2]=e}g=d-14|0;D[a+20>>2]=g;c=e>>>14|0;D[a+16>>2]=c;j=e&16383;b:{if(!j){e=1;break b}B[f+77|0]=0;B[f+78|0]=0;B[f+79|0]=0;B[f+80|0]=0;B[f+81|0]=0;B[f+82|0]=0;B[f+83|0]=0;B[f+84|0]=0;D[f+72>>2]=0;D[f+76>>2]=0;D[f+64>>2]=0;D[f+68>>2]=0;e=a;if(g>>>0<=4){i=D[a+4>>2];if(i>>>0>=h>>>0){g=0}else{D[a+4>>2]=i+1;g=E[i|0]<>2]=d;i=c>>>5|0;D[a+16>>2]=i;e=0;g=c&31;if(g-1>>>0>20){break b}while(1){if(d>>>0>2){c=i}else{c=D[a+4>>2];if(c>>>0>=h>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=d;i=c>>>3|0;D[a+16>>2]=i;B[E[e+91040|0]+(f- -64|0)|0]=c&7;e=e+1|0;if((g|0)!=(e|0)){continue}break}e=0;D[f+56>>2]=0;D[f+48>>2]=0;D[f+52>>2]=0;D[f+40>>2]=0;D[f+44>>2]=0;D[f+32>>2]=0;D[f+36>>2]=0;D[f+24>>2]=0;D[f+28>>2]=0;c:{if(!gd(f+24|0,21,f- -64|0)|!D[f+28>>2]){break c}D[f+16>>2]=0;D[f+8>>2]=0;D[f+12>>2]=0;Ya(f+8|0,j,(j|0)==1,1);k=D[f+8>>2];d=D[f+12>>2];Va(k+d|0,0,j-d|0);D[f+12>>2]=j;h=0;d:{e:{while(1){l=D[a+12>>2];c=D[a+20>>2];f:{if(c>>>0>=16){i=D[a+16>>2];break f}d=D[a+4>>2];g:{if(l>>>0<=d>>>0){e=0;break g}g=d+1|0;D[a+4>>2]=g;e=E[d|0]<>2]=g;i=D[a+16>>2]|e;D[a+16>>2]=i;if(c>>>0>=8){c=g;break f}if(d>>>0>=l>>>0){d=0}else{D[a+4>>2]=d+1;d=E[d|0]<>2]=c;i=d|D[a+16>>2];D[a+16>>2]=i}e=D[D[f+36>>2]+((i&1023)<<2)>>2];h:{if((e|0)<=-1){d=10;g=D[f+48>>2];while(1){m=i>>>d|0;d=d+1|0;e=C[g+((m&1)+(e^-1)<<1)>>1];if((e|0)<0){continue}break}g=e;break h}d=e>>>16|0;g=e&65535}e=c-d|0;D[a+20>>2]=e;d=i>>>d|0;D[a+16>>2]=d;i:{if((g|0)<=16){B[h+k|0]=g;h=h+1|0;break i}j:{switch(g-17|0){case 0:if(e>>>0<=2){c=D[a+4>>2];if(c>>>0>=l>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=e-3;D[a+16>>2]=d>>>3;h=((d&7)+h|0)+3|0;break i;case 1:if(e>>>0<=6){c=D[a+4>>2];if(c>>>0>=l>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=e-7;D[a+16>>2]=d>>>7;h=((d&127)+h|0)+11|0;break i;default:break j}}c=0;if(!h){break e}k:{if((g|0)==19){if(e>>>0<=1){c=D[a+4>>2];if(c>>>0>=l>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=e-2;D[a+16>>2]=d>>>2;d=(d&3)+3|0;break k}if(e>>>0<=6){c=D[a+4>>2];if(c>>>0>=l>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=e-7;D[a+16>>2]=d>>>7;d=(d&127)+7|0}e=0;c=E[(h+k|0)-1|0];if(!c){break d}g=h>>>0>j>>>0?h:j;while(1){if((g|0)==(h|0)){break d}B[h+k|0]=c;h=h+1|0;d=d-1|0;if(d){continue}break}}if(h>>>0>>0){continue}break}c=0;if((h|0)!=(j|0)){break e}c=gd(b,j,k)}e=c;if(!k){break c}}Ta(k)}a=D[f+48>>2];if(a){Ta(a)}a=D[f+36>>2];if(a){Ta(a)}a=D[f+24>>2];if(!a){break b}Ta(a)}Fa=f+96|0;return e}function dd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Fa-16|0;Fa=k;f=D[a+4>>2]&2147450878|-2147450880;D[a+4>>2]=f;e=E[b+4|0];g=E[c+8|0];d=E[c+9|0];a:{if((g|0)==(d|0)){c=E[b+2|0];d=c>>>2|0;h=c<<3;c=E[b+1|0];i=c<<3|c>>>2;e=D[((e<<4)+(g<<2)|0)+29120>>2];b=E[b|0];c=e+(b<<3|b>>>2)|0;b:{if(c>>>0<256){break b}b=(c|0)>-1;c=255;if(b){break b}c=0}g=d|h;b=e+i|0;c:{if(b>>>0<256){break c}d=(b|0)>-1;b=255;if(d){break c}b=0}e=e+g|0;d:{if(e>>>0<256){break d}g=(e|0)>-1;e=255;if(g){break d}e=0}e=e<<1;b=b<<1;c=c<<1;g=E[e+446080|0]<<1&30|(f&-32768|(E[b+446592|0]<<5&992|E[c+446592|0]<<10&31744));D[a+4>>2]=g;e=E[e+446081|0];b=E[b+446593|0];c=E[c+446593|0];D[a>>2]=1431655765;D[a+4>>2]=e<<16&2031616|(b<<21&65011712|(g&-2147418114|c<<26&2080374784));break a}if(!(E[c+10|0]!=2|e>>>0<7|((d|0)!=3|g))){eb(k,b,e);b=E[k+14|0];e=E[k+13|0];g=E[k+12|0];d=E[(E[k+2|0]<<1)+447617|0]<<1&30|(D[a+4>>2]&-32767|(E[(E[k+1|0]<<1)+448129|0]<<5&992|E[(E[k|0]<<1)+448129|0]<<10&31744));D[a+4>>2]=d;D[a+4>>2]=E[(b<<1)+448129|0]<<16&2031616|(E[(e<<1)+448129|0]<<21&65011712|(d&-2147418113|E[(g<<1)+448129|0]<<26&2080374784));B[a|0]=E[c|0];B[a+1|0]=E[c+1|0];B[a+2|0]=E[c+2|0];B[a+3|0]=E[c+3|0];break a}d=J(D[((g<<4)+(d<<2)|0)+449152>>2],10);f=e<<5;e=d+J(f+E[b+1|0]|0,60)<<2;g=d+J(f+E[b+2|0]|0,60)<<2;b=d+J(f+E[b|0]|0,60)<<2;d=F[g+347174>>1]+(F[e+224246>>1]+F[b+224246>>1]|0)|0;f=F[g+347170>>1]+(F[e+224242>>1]+F[b+224242>>1]|0)|0;h=d>>>0>>0;i=F[g+347178>>1]+(F[e+224250>>1]+F[b+224250>>1]|0)|0;d=h?d:f;f=i>>>0>>0;j=f?2:h;h=F[g+347182>>1]+(F[e+224254>>1]+F[b+224254>>1]|0)|0;d=f?i:d;f=h>>>0>>0;j=f?3:j;i=F[g+347186>>1]+(F[e+224258>>1]+F[b+224258>>1]|0)|0;d=f?h:d;f=i>>>0>>0;j=f?4:j;h=F[g+347190>>1]+(F[e+224262>>1]+F[b+224262>>1]|0)|0;d=f?i:d;f=h>>>0>>0;j=f?5:j;i=F[g+347194>>1]+(F[e+224266>>1]+F[b+224266>>1]|0)|0;d=f?h:d;f=i>>>0>>0;j=f?6:j;h=F[g+347198>>1]+(F[e+224270>>1]+F[b+224270>>1]|0)|0;d=f?i:d;f=h>>>0>>0;j=f?7:j;i=F[g+347202>>1]+(F[e+224274>>1]+F[b+224274>>1]|0)|0;d=f?h:d;f=i>>>0>>0;d=F[g+347206>>1]+(F[e+224278>>1]+F[b+224278>>1]|0)>>>0<(f?i:d)>>>0?9:f?8:j;f=d<<2;e=e+f|0;b=b+f|0;g=g+f|0;D[a+4>>2]=D[a+4>>2]&-2147450879|(E[e+224240|0]<<5&992|E[b+224240|0]<<10&31744)|E[g+347168|0]<<1&30|E[b+224241|0]<<26&2080374784|E[e+224241|0]<<21&65011712|E[g+347169|0]<<16&2031616;e=E[c|0];if((d|0)==6){B[a|0]=e;B[a+1|0]=E[c+1|0];B[a+2|0]=E[c+2|0];B[a+3|0]=E[c+3|0];break a}g=E[c+1|0];d=E[c+2|0];c=E[c+3|0];b=f+347120|0;B[a|0]=E[b+(e>>>2&3)|0]<<2|E[b+(e&3)|0]|E[b+(e>>>4&3)|0]<<4|E[b+(e>>>6|0)|0]<<6;B[a+3|0]=E[b+(c&3)|0]|E[b+(c>>>2&3)|0]<<2|E[b+(c>>>4&3)|0]<<4|E[b+(c>>>6|0)|0]<<6;B[a+2|0]=E[b+(d&3)|0]|E[b+(d>>>2&3)|0]<<2|E[b+(d>>>4&3)|0]<<4|E[b+(d>>>6|0)|0]<<6;B[a+1|0]=E[b+(g&3)|0]|E[b+(g>>>2&3)|0]<<2|E[b+(g>>>4&3)|0]<<4|E[b+(g>>>6|0)|0]<<6}Fa=k+16|0}function Fb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=K(0),w=0,x=0,y=0,z=0,A=0,G=0,H=0,I=0,M=0,N=K(0);e=D[a+104>>2];d=(e|0)==8;if(!(d|e-8>>>0>9)){i=E[b+3|0];j=E[b+7|0];d=i>>>0>>0?i:j;k=E[b+11|0];d=d>>>0>>0?d:k;n=E[b+15|0];d=d>>>0>>0?d:n;o=E[b+19|0];d=d>>>0>>0?d:o;p=E[b+23|0];d=d>>>0

>>0?d:p;q=E[b+27|0];d=d>>>0>>0?d:q;r=E[b+31|0];d=d>>>0>>0?d:r;s=E[b+35|0];d=d>>>0>>0?d:s;t=E[b+39|0];d=d>>>0>>0?d:t;u=E[b+43|0];d=d>>>0>>0?d:u;l=E[b+47|0];d=d>>>0>>0?d:l;m=E[b+51|0];d=d>>>0>>0?d:m;f=E[b+55|0];d=d>>>0>>0?d:f;g=E[b+59|0];d=d>>>0>>0?d:g;e=E[b+63|0];h=d>>>0>>0?d:e;d=i>>>0>j>>>0?i:j;d=d>>>0>k>>>0?d:k;d=d>>>0>n>>>0?d:n;d=d>>>0>o>>>0?d:o;d=d>>>0>p>>>0?d:p;d=d>>>0>q>>>0?d:q;d=d>>>0>r>>>0?d:r;d=d>>>0>s>>>0?d:s;d=d>>>0>t>>>0?d:t;d=d>>>0>u>>>0?d:u;d=d>>>0>l>>>0?d:l;d=d>>>0>m>>>0?d:m;d=d>>>0>f>>>0?d:f;d=d>>>0>g>>>0?d:g;e=d>>>0>e>>>0?d:e;if((h|0)==(e|0)){C[c>>1]=h|7424;a=F[204304]|F[204305]<<16;C[c+2>>1]=a;C[c+4>>1]=a>>>16;C[c+6>>1]=F[204306];return}d=c;v=K(h>>>0);N=K(K(e>>>0)-v);g=D[a+132>>2];f=(g&15)<<3;h=B[f+29251|0];e=B[f+29255|0];v=lb(K(K(N*K(K(0-h|0)/K(e-h|0)))+v));a:{if(K(L(v))>1]=a&255|g<<8;d=e;e=g>>>4|0;d=a+J(d,e)|0;n=(d>>>0<256?d:d>>31^-1)&255;d=a+J(e,B[f+29254|0])|0;o=(d>>>0<256?d:d>>31^-1)&255;d=a+J(e,B[f+29253|0])|0;p=(d>>>0<256?d:d>>31^-1)&255;d=a+J(e,B[f+29252|0])|0;q=(d>>>0<256?d:d>>31^-1)&255;d=a+J(e,h)|0;r=(d>>>0<256?d:d>>31^-1)&255;d=a+J(e,B[f+29250|0])|0;s=(d>>>0<256?d:d>>31^-1)&255;d=a+J(e,B[f+29249|0])|0;t=(d>>>0<256?d:d>>31^-1)&255;a=a+J(e,B[f+29248|0])|0;u=(a>>>0<256?a:a>>31^-1)&255;while(1){a=y;e=E[((((a&3)<<4)+b|0)+(a&-4)|0)+3|0];d=u-e|0;z=d>>31;a=t-e|0;A=a>>31;l=s-e|0;G=l>>31;m=r-e|0;H=m>>31;f=q-e|0;I=f>>31;g=p-e|0;i=g>>31;h=o-e|0;j=h>>31;e=n-e|0;k=e>>31;d=(z^d+z)<<3;a=(A^a+A)<<3|1;d=a>>>0>d>>>0?d:a;a=(G^l+G)<<3|2;d=a>>>0>d>>>0?d:a;a=(H^m+H)<<3|3;d=a>>>0>d>>>0?d:a;a=(I^f+I)<<3|4;d=a>>>0>d>>>0?d:a;a=(i^g+i)<<3|5;d=a>>>0>d>>>0?d:a;a=(j^h+j)<<3|6;d=a>>>0>d>>>0?d:a;a=(k^e+k)<<3|7;e=(a>>>0>d>>>0?d:a)&7;d=nf(y,x,-3,-1)+45|0;a=d;d=d&31;if((a&63)>>>0>=32){a=e<>>32-d;d=e<>>0<1?x+1|0:x;y=a;if((a|0)!=16|x){continue}break}B[c+7|0]=w;b=M;B[c+6|0]=(b&255)<<24|w>>>8;a=b;B[c+5|0]=(a&65535)<<16|w>>>16;B[c+4|0]=(a&16777215)<<8|w>>>24;B[c+3|0]=a;B[c+2|0]=a>>>8;return}C[c>>1]=d?E[a+115|0]|7424:7679;a=F[204304]|F[204305]<<16;C[c+2>>1]=a;C[c+4>>1]=a>>>16;C[c+6>>1]=F[204306]}function xb(a,b,c,d,e,f,g){var h=0,i=0,j=K(0),k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=K(0),t=0,u=K(0),v=K(0),w=K(0),x=K(0),y=K(0),z=K(0),A=K(0),C=0,F=0,G=K(0),I=0,J=K(0),M=0,N=0,O=0,P=0,Q=0,R=0;p=Fa-16|0;t=7-b|0;q=b+1|0;b=-1<>2]*u)-j)*K(.5))+K(.5));a:{if(K(L(s))>2];v=H[c+12>>2];w=H[d+8>>2];x=H[c+8>>2];y=H[d+4>>2];z=H[c+4>>2];A=H[d>>2];i=h<<1;M=(h|0)<0?k:(i|0)>(r|0)?l:i|k;h=(M&255)<>>q|h;B[p+8|0]=C;m=p;n=k;o=l;A=K(K(K(K(A*u)-j)*K(.5))+K(.5));b:{if(K(L(A))(r|0)?o:h|k;h=(N&255)<>>q|h;B[m|0]=F;m=p;n=k;o=l;z=K(K(K(K(z*u)-j)*K(.5))+K(.5));c:{if(K(L(z))(r|0)?o:h|k;h=(O&255)<>>q|h;m=p;n=k;o=l;y=K(K(K(K(y*u)-j)*K(.5))+K(.5));d:{if(K(L(y))(r|0)?o:h|k;h=(P&255)<>>q|h;m=p;n=k;o=l;x=K(K(K(K(x*u)-j)*K(.5))+K(.5));e:{if(K(L(x))(r|0)?o:h|k;h=(Q&255)<>>q|h;m=p;n=k;o=l;w=K(K(K(K(w*u)-j)*K(.5))+K(.5));f:{if(K(L(w))(r|0)?o:h|k;h=(R&255)<>>q|h;m=p;n=k;o=l;v=K(K(K(K(v*u)-j)*K(.5))+K(.5));g:{if(K(L(v))(r|0)?o:h|k;h=(i&255)<>>q|h;m=p;n=k;o=l;j=K(K(K(K(s*u)-j)*K(.5))+K(.5));h:{if(K(L(j))(r|0)?o:l|k;h=(l&255)<>>q|h;s=K(0);j=K(0);v=K(0);if(a){while(1){h=b<<2;j=K(K((F&255)>>>0)-K(H[h+d>>2]*K(255)));v=K(v+K(j*j));j=K(K((C&255)>>>0)-K(H[c+h>>2]*K(255)));s=K(s+K(j*j));b=b+1|0;if((a|0)!=(b|0)){F=E[b+p|0];C=E[(p+8|0)+b|0];continue}break}j=v}if(s>2]=k;B[e+3|0]=(i&254)>>>1;B[e+2|0]=(Q&254)>>>1;B[e+1|0]=(O&254)>>>1;B[e|0]=(M&254)>>>1;J=s}if(j>2]=k;B[f+3|0]=(l&254)>>>1;B[f+2|0]=(R&254)>>>1;B[f+1|0]=(P&254)>>>1;B[f|0]=(N&254)>>>1;G=j}k=1;b=I;I=0;if(b){continue}break}}function Lb(a){var b=0,c=0,d=0,e=0,f=0;c=Va(a,0,88);a=D[c+88>>2];if(a){Ta(a);D[c+96>>2]=0;D[c+88>>2]=0;D[c+92>>2]=0}a=D[c+100>>2];if(a){Ta(a);D[c+108>>2]=0;D[c+100>>2]=0;D[c+104>>2]=0}a=D[c+112>>2];if(a){d=D[c+116>>2];if(d){d=J(d,24)+a|0;while(1){e=D[a+12>>2];if(e){Ta(e)}e=D[a>>2];if(e){Ta(e)}a=a+24|0;if((d|0)!=(a|0)){continue}break}a=D[c+112>>2]}Ta(a);D[c+120>>2]=0;D[c+112>>2]=0;D[c+116>>2]=0}D[c+124>>2]=0;D[c+128>>2]=0;D[c+140>>2]=0;D[c+132>>2]=0;D[c+136>>2]=0;a=D[c+144>>2];if(a){Ta(a);D[c+152>>2]=0;D[c+144>>2]=0;D[c+148>>2]=0}D[c+156>>2]=0;D[c+160>>2]=0;D[c+180>>2]=0;D[c+184>>2]=0;D[c+172>>2]=0;D[c+176>>2]=0;D[c+164>>2]=0;D[c+168>>2]=0;Mb(c+188|0);e=c+780|0;d=0;while(1){a=e+J(d,12)|0;b=D[a>>2];if(b){Ta(b);D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0}a=e+J(d,192)|0;b=a;f=D[a+24>>2];if(f){Ta(f);D[b+24>>2]=0;D[a+28>>2]=0;D[a+32>>2]=0}b=D[a+36>>2];if(b){Ta(b);D[a+36>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0}b=D[a+48>>2];if(b){Ta(b);D[a+48>>2]=0;D[a+52>>2]=0;D[a+56>>2]=0}b=D[a+60>>2];if(b){Ta(b);D[a+60>>2]=0;b=a- -64|0;D[b>>2]=0;D[b+4>>2]=0}b=D[a+72>>2];if(b){Ta(b);D[a+72>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0}b=D[a+84>>2];if(b){Ta(b);D[a+84>>2]=0;D[a+88>>2]=0;D[a+92>>2]=0}b=D[a+96>>2];if(b){Ta(b);D[a+96>>2]=0;D[a+100>>2]=0;D[a+104>>2]=0}b=D[a+108>>2];if(b){Ta(b);D[a+108>>2]=0;D[a+112>>2]=0;D[a+116>>2]=0}b=D[a+120>>2];if(b){Ta(b);D[a+120>>2]=0;D[a+124>>2]=0;D[a+128>>2]=0}b=D[a+132>>2];if(b){Ta(b);D[a+132>>2]=0;D[a+136>>2]=0;D[a+140>>2]=0}b=D[a+144>>2];if(b){Ta(b);D[a+144>>2]=0;D[a+148>>2]=0;D[a+152>>2]=0}b=D[a+156>>2];if(b){Ta(b);D[a+156>>2]=0;D[a+160>>2]=0;D[a+164>>2]=0}b=D[a+168>>2];if(b){Ta(b);D[a+168>>2]=0;D[a+172>>2]=0;D[a+176>>2]=0}b=D[a+180>>2];if(b){Ta(b);D[a+180>>2]=0;D[a+184>>2]=0;D[a+188>>2]=0}b=D[a+192>>2];if(b){Ta(b);D[a+192>>2]=0;D[a+196>>2]=0;D[a+200>>2]=0}b=D[a+204>>2];if(b){Ta(b);D[a+204>>2]=0;D[a+208>>2]=0;D[a+212>>2]=0}d=d+1|0;if((d|0)!=2){continue}break}a=D[c+1188>>2];if(a){Ta(a);D[c+1196>>2]=0;D[c+1188>>2]=0;D[c+1192>>2]=0}C[c+1204>>1]=0;D[c+1200>>2]=-1}function Ec(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=D[a+104>>2];c=E[i+23440|0]<<9;d=E[(c|E[a+21|0]<<1)+429696|0];f=b;a:{if(i-15>>>0<=2){c=E[(c|E[a+22|0]<<1)+429696|0];e=(J(d,63)+127>>>0)/255|0;e=(e>>>0<63?e:63)<<5;d=(J(d,31)+127>>>0)/255|0;d=d>>>0<31?d:31;g=e|d;B[b|0]=g;h=(e|d<<11)>>>8|0;B[b+1|0]=h;d=(J(c,63)+127>>>0)/255|0;e=(d>>>0<63?d:63)<<5;c=(J(c,31)+127>>>0)/255|0;c=c>>>0<31?c:31;d=e|c;c=(e|c<<11)>>>8|0;break a}c=c+429696|0;e=(J(E[c+(E[a+25|0]<<1)|0],31)+127>>>0)/255|0;g=e>>>0<31?e:31;e=J(E[c+(E[a+23|0]<<1)|0],63);e=e>>>0<15938?(e+127>>>0)/255<<5:2016;g=g|e;B[b|0]=g;d=J(d,31);h=((e|(d>>>0<7778?(d+127>>>0)/255<<11:-2048))&65280)>>>8|0;B[b+1|0]=h;d=(J(E[c+(E[a+26|0]<<1)|0],31)+127>>>0)/255|0;j=d>>>0<31?d:31;d=J(E[c+(E[a+24|0]<<1)|0],63);e=d>>>0<15938?(d+127>>>0)/255<<5:2016;d=j|e;c=J(E[c+(E[a+22|0]<<1)|0],31);c=((e|(c>>>0<7778?(c+127>>>0)/255<<11:-2048))&65280)>>>8|0}B[f+3|0]=c;B[b+2|0]=d;j=d&255|(c&255)<<8;e=g&255|(h&255)<<8;if((j|0)==(e|0)){a=e?0:1431655765;B[b+4|0]=a;B[b+5|0]=a>>>8;B[b+6|0]=a>>>16;B[b+7|0]=a>>>24;a=e?e:1;B[b|0]=a;c=e?e-1|0:0;B[b+2|0]=c;B[b+1|0]=a>>>8;B[b+3|0]=c>>>8;return}if(e>>>0>>0){B[b+2|0]=g;B[b|0]=d;B[b+3|0]=h;B[b+1|0]=c}c=D[(E[i+23376|0]<<2)+422048>>2];d=a+39|0;f=E[i+23504|0]-1|0;i=E[c+E[d+(1<>>0>>0;c=a^E[c+E[d+(9<>>6;c=(c<<4|(a^o)<<2|a^n)<<4|(a^m)<<2|a^l;B[b+6|0]=c>>>6;c=(c<<4|(a^k)<<2|a^h)<<4|(a^g)<<2|a^i;B[b+5|0]=c>>>6;B[b+4|0]=a^p|c<<2}function Zb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;a:while(1){h=b-4|0;b:while(1){d=a;while(1){c:{d:{e:{f:{g:{h:{i:{j:{k:{a=b-d|0;e=a>>2;switch(e|0){case 5:break i;case 4:break j;case 2:break k;case 0:case 1:break c;case 3:break g;default:break h}}a=b-4|0;if(G[a>>2]>=G[d>>2]){break c}$a(d,a);return}Yb(d,d+4|0,d+8|0,b-4|0);return}Xb(d,d+4|0,d+8|0,d+12|0,b-4|0);return}if((a|0)<=123){h=b;g=Fa-16|0;Fa=g;c=d+8|0;pb(d,d+4|0,c);b=d+12|0;while(1){if((b|0)!=(h|0)){if(G[b>>2]>2]){D[g+12>>2]=D[b>>2];e=b;while(1){l:{a=c;D[e>>2]=D[a>>2];if((a|0)==(d|0)){a=d;break l}e=a;c=a-4|0;if(G[g+12>>2]>2]){continue}}break}D[a>>2]=D[g+12>>2]}c=b;b=b+4|0;continue}break}Fa=g+16|0;return}f=((e|0)/2<<2)+d|0;m:{if((a|0)>=3997){a=(e|0)/4<<2;i=Xb(d,a+d|0,f,a+f|0,h);break m}i=pb(d,f,h)}a=h;if(G[d>>2]>=G[f>>2]){while(1){a=a-4|0;if((d|0)==(a|0)){e=d+4|0;if(G[d>>2]>2]){break e}while(1){if((e|0)==(h|0)){break c}if(G[d>>2]>2]){$a(e,h);e=e+4|0;break e}else{e=e+4|0;continue}}}if(G[a>>2]>=G[f>>2]){continue}break}$a(d,a);i=i+1|0}e=d+4|0;if(e>>>0>=a>>>0){break f}while(1){g=e;e=e+4|0;if(G[g>>2]>2]){continue}while(1){a=a-4|0;if(G[a>>2]>=G[f>>2]){continue}break}if(a>>>0>>0){e=g;break f}else{$a(g,a);f=(f|0)==(g|0)?a:f;i=i+1|0;continue}}}pb(d,d+4|0,b-4|0);break c}if(!((e|0)==(f|0)|G[f>>2]>=G[e>>2])){$a(e,f);i=i+1|0}if(!i){g=Mc(d,e);a=e+4|0;if(Mc(a,b)){b=e;a=d;if(!g){continue a}break c}f=2;if(g){break d}}if((e-d|0)<(b-e|0)){Zb(d,e,c);a=e+4|0;continue b}Zb(e+4|0,b,c);b=e;a=d;continue a}f=h;if((f|0)==(e|0)){break c}while(1){a=e;e=a+4|0;if(G[d>>2]>=G[a>>2]){continue}while(1){f=f-4|0;if(G[d>>2]>2]){continue}break}if(a>>>0>>0){$a(a,f);continue}break}f=4}d=a;switch(f-2|0){case 0:continue b;case 2:continue;default:break c}}break}break}break}}function ac(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;a:while(1){h=b-1|0;b:while(1){d=a;while(1){c:{d:{e:{f:{g:{h:{i:{j:{k:{a=b-d|0;switch(a|0){case 5:break i;case 4:break j;case 2:break k;case 0:case 1:break c;case 3:break g;default:break h}}a=b-1|0;if(E[a|0]>=E[d|0]){break c}ab(d,a);return}$b(d,d+1|0,d+2|0,b-1|0);return}_b(d,d+1|0,d+2|0,d+3|0,b-1|0);return}if((a|0)<=30){h=b;g=Fa-16|0;Fa=g;c=d+2|0;qb(d,d+1|0,c);b=d+3|0;while(1){if((b|0)!=(h|0)){if(E[b|0]>>1|0)+d|0;m:{if((a|0)>=1e3){a=a>>>2|0;i=_b(d,a+d|0,f,a+f|0,h);break m}i=qb(d,f,h)}a=h;if(E[d|0]>=E[f|0]){while(1){a=a-1|0;if((d|0)==(a|0)){e=d+1|0;if(E[d|0]=E[f|0]){continue}break}ab(d,a);i=i+1|0}e=d+1|0;if(e>>>0>=a>>>0){break f}while(1){g=e;e=e+1|0;if(E[g|0]=E[f|0]){continue}break}if(a>>>0>>0){e=g;break f}else{ab(g,a);f=(f|0)==(g|0)?a:f;i=i+1|0;continue}}}qb(d,d+1|0,b-1|0);break c}if(!((e|0)==(f|0)|E[f|0]>=E[e|0])){ab(e,f);i=i+1|0}if(!i){g=Nc(d,e);a=e+1|0;if(Nc(a,b)){b=e;a=d;if(!g){continue a}break c}f=2;if(g){break d}}if((e-d|0)<(b-e|0)){ac(d,e,c);a=e+1|0;continue b}ac(e+1|0,b,c);b=e;a=d;continue a}f=h;if((f|0)==(e|0)){break c}while(1){a=e;e=a+1|0;if(E[d|0]>=E[a|0]){continue}while(1){f=f-1|0;if(E[d|0]>>0>>0){ab(a,f);continue}break}f=4}d=a;switch(f-2|0){case 0:continue b;case 2:continue;default:break c}}break}break}break}}function yc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=e?0:-1;m=e?-1:1;j=e?-1:0;f=-2;k=(e|0)!=0;l=!e;a:{b:{switch(c-2|0){case 0:f=i;break a;case 3:case 4:f=0;break a;case 5:f=l;break a;case 9:case 13:f=0;break a;case 16:f=j;break a;case 17:case 18:f=0;break a;case 19:f=k;break a;case 6:case 22:f=0;break a;case 25:f=i;break a;case 26:f=m;break a;case 27:f=k;break a;case 28:f=j;break a;case 29:f=l;break a;case 8:break a;default:break b}}f=((c>>>0)%3|0)-1|0}e=a;h=E[b|0];g=(f|0)==-2?3:f+1|0;c:{if(!h){break c}g=(d+f|0)-1|0;if((d|0)==(h|0)){break c}g=h-f|0;f=f+h|0;g=(f|0)<0?g:(d|0)<(f|0)?g:f}B[e|0]=g;e=-2;d:{e:{switch(c-2|0){case 29:e=l;break d;case 28:e=j;break d;case 27:e=k;break d;case 26:e=m;break d;case 25:e=i;break d;case 6:e=0;break d;case 22:e=k;break d;case 18:case 19:e=0;break d;case 17:e=j;break d;case 13:case 16:e=0;break d;case 9:e=l;break d;case 4:case 5:e=0;break d;case 3:e=i;break d;case 0:e=0;break d;case 8:break d;default:break e}}e=(((c>>>0)/3>>>0)%3|0)-1|0}f=a;g=E[b+1|0];f:{if(g){if((d|0)!=(g|0)){h=g-e|0;e=e+g|0;e=(e|0)<0?h:(d|0)<(e|0)?h:e;break f}e=(d+e|0)-1|0;break f}e=(e|0)==-2?3:e+1|0}B[f+1|0]=e;e=-2;g:{h:{switch(c-2|0){case 29:e=l;break g;case 28:e=j;break g;case 27:e=k;break g;case 26:e=m;break g;case 25:e=i;break g;case 6:e=k;break g;case 19:case 22:e=0;break g;case 18:e=j;break g;case 16:case 17:e=0;break g;case 13:e=l;break g;case 5:case 9:e=0;break g;case 4:e=i;break g;case 0:case 3:e=0;break g;case 8:break g;default:break h}}e=(((c>>>0)/9>>>0)%3|0)-1|0}b=E[b+2|0];if(b){if((b|0)!=(d|0)){f=a;a=b-e|0;c=a;a=b+e|0;B[f+2|0]=(a|0)<0?c:(a|0)>(d|0)?c:a;return}B[a+2|0]=(d+e|0)-1;return}B[a+2|0]=(e|0)==-2?3:e+1|0}function zc(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;p=h>>>0<=21?D[(h<<2)+414764>>2]:p;a:{if(!E[a+589|0]|i&2){break a}if(!ib(b,c)){break a}l=E[b+14|0]|(E[b+15|0]<<8|E[b+16|0]<<16);if(!l){break a}q=E[b+21|0]&4;n=(E[b+65|0]|E[b+66|0]<<8|(E[b+67|0]<<16|E[b+68|0]<<24))+b|0;b:{while(1){o=J(m,23)+n|0;if(E[o+3|0]==(e|0)?(E[o+1|0]<<8|E[o+2|0]<<16|E[o|0])==(d|0):0){break b}m=m+1|0;if((l|0)!=(m|0)){continue}break}return 0}e=E[b+20|0];c:{if(e){break c}if(B[(J(m,23)+n|0)+4|0]&1){break a}if(!q){break c}d=m+1|0;if(d>>>0>=l>>>0){break a}l=J(d,23)+n|0;if(!(B[l+4|0]&1)){break a}r=J(m,23)+n|0;if((E[r+9|0]|E[r+10|0]<<8)!=(E[l+9|0]|E[l+10|0]<<8)){break a}l=J(m,23)+n|0;d=J(d,23)+n|0;if((E[l+11|0]|E[l+12|0]<<8)!=(E[d+11|0]|E[d+12|0]<<8)){break a}}l=J(m,23)+n|0;h=(h|0)==9?q?9:8:h;d:{if((h&-2)!=8){break d}d=J(E[l+11|0]|E[l+12|0]<<8,E[l+9|0]|E[l+10|0]<<8);if(d>>>0>=g>>>0){break d}Va(J(d,p)+f|0,0,J(g-d|0,p));e=E[b+20|0]}if((e&255)==1){a=J(m,23)+n|0;return Nb(h,f,g,b,c,E[l+9|0]|E[l+10|0]<<8,E[l+11|0]|E[l+12|0]<<8,E[a+5|0]|E[a+6|0]<<8,E[a+7|0]|E[a+8|0]<<8,E[a+13|0]|E[a+14|0]<<8|(E[a+15|0]<<16|E[a+16|0]<<24),E[a+17|0]|E[a+18|0]<<8|(E[a+19|0]<<16|E[a+20|0]<<24),i,(q|0)!=0,j,k,-1,-1)}d=0;e=b;p=E[l+9|0]|E[l+10|0]<<8;r=E[l+11|0]|E[l+12|0]<<8;l=J(m,23)+n|0;s=E[l+5|0]|E[l+6|0]<<8;t=E[l+7|0]|E[l+8|0]<<8;o=E[o+3|0];u=E[l+13|0]|E[l+14|0]<<8|(E[l+15|0]<<16|E[l+16|0]<<24);v=E[l+17|0]|E[l+18|0]<<8|(E[l+19|0]<<16|E[l+20|0]<<24);if(q){l=J(m+1|0,23)+n|0;d=E[l+17|0]|E[l+18|0]<<8|(E[l+19|0]<<16|E[l+20|0]<<24);l=E[l+13|0]|E[l+14|0]<<8|(E[l+15|0]<<16|E[l+16|0]<<24)}else{l=0}s=gc(a,h,f,g,e,c,p,r,s,t,o,u,v,l,d,i,(q|0)!=0,E[b+23|0]==3,j,0,k)}return s}function Xc(){var a=0;Ea(421532,2937);Da(421556,2379,1,1,0);a=Fa-16|0;Fa=a;D[a+12>>2]=2173;da(421568,D[a+12>>2],1,-128,127);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=2166;da(421592,D[a+12>>2],1,-128,127);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=2164;da(421580,D[a+12>>2],1,0,255);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1171;da(421604,D[a+12>>2],2,-32768,32767);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1162;da(421616,D[a+12>>2],2,0,65535);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1218;da(421628,D[a+12>>2],4,-2147483648,2147483647);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1209;da(421640,D[a+12>>2],4,0,-1);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=2591;da(421652,D[a+12>>2],4,-2147483648,2147483647);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=2582;da(421664,D[a+12>>2],4,0,-1);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1419;Fc(421676,D[a+12>>2],-2147483648,2147483647);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1418;Fc(421688,D[a+12>>2],0,-1);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=1340;ua(421700,D[a+12>>2],4);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=2858;ua(421712,D[a+12>>2],8);Fa=a+16|0;va(416500,2622);va(419744,4641);pa(419832,4,2596);pa(419924,2,2634);pa(420016,4,2649);Ca(414928,2425);a=Fa-16|0;Fa=a;D[a+12>>2]=4572;ba(420072,0,D[a+12>>2]);Fa=a+16|0;Wc(4674);Vc(4602);Uc(4204);Tc(4235);Sc(4275);Rc(4304);a=Fa-16|0;Fa=a;D[a+12>>2]=4711;ba(420352,4,D[a+12>>2]);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=4741;ba(420392,5,D[a+12>>2]);Fa=a+16|0;Wc(4406);Vc(4373);Uc(4472);Tc(4438);Sc(4539);Rc(4505);a=Fa-16|0;Fa=a;D[a+12>>2]=4342;ba(420432,6,D[a+12>>2]);Fa=a+16|0;a=Fa-16|0;Fa=a;D[a+12>>2]=4780;ba(420472,7,D[a+12>>2]);Fa=a+16|0} +function yb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{if(!a){i=bb(b);break a}if(!b){Ta(a);i=0;break a}b:{if(b>>>0>4294967239){break b}i=a;j=b>>>0>8?b+3&-4:8;d=j+8|0;c:{d:{k=a-4|0;f=k;e=D[f>>2];c=e+f|0;g=D[c>>2];h=g+c|0;e:{f:{if(D[h-4>>2]!=(g|0)){b=d+f|0;if(b+16>>>0<=h>>>0){d=D[c+4>>2];D[d+8>>2]=D[c+8>>2];D[D[c+8>>2]+4>>2]=d;c=h-b|0;D[b>>2]=c;D[(b+(c&-4)|0)-4>>2]=c|1;g=b;e=D[b>>2]-8|0;g:{if(e>>>0<=127){c=(e>>>3|0)-1|0;break g}h=M(e);c=((e>>>29-h^4)-(h<<2)|0)+110|0;if(e>>>0<=4095){break g}c=((e>>>30-h^2)-(h<<1)|0)+71|0;c=c>>>0<63?c:63}d=c<<4;D[g+4>>2]=d+451888;d=d+451896|0;D[b+8>>2]=D[d>>2];D[d>>2]=b;D[D[b+8>>2]+4>>2]=b;e=D[113231];d=c&31;if((c&63)>>>0>=32){c=1<>>32-d;g=1<>2]=b;break d}if(b>>>0>h>>>0){break f}b=D[c+4>>2];D[b+8>>2]=D[c+8>>2];D[D[c+8>>2]+4>>2]=b;b=e+g|0;D[f>>2]=b;break d}if(e>>>0>=d+16>>>0){D[f>>2]=d;D[(f+(d&-4)|0)-4>>2]=d;b=d+f|0;c=e-d|0;D[b>>2]=c;D[(b+(c&-4)|0)-4>>2]=c|1;g=b;f=D[b>>2]-8|0;h:{if(f>>>0<=127){c=(f>>>3|0)-1|0;break h}e=M(f);c=((f>>>29-e^4)-(e<<2)|0)+110|0;if(f>>>0<=4095){break h}c=((f>>>30-e^2)-(e<<1)|0)+71|0;c=c>>>0<63?c:63}d=c<<4;D[g+4>>2]=d+451888;d=d+451896|0;D[b+8>>2]=D[d>>2];D[d>>2]=b;D[D[b+8>>2]+4>>2]=b;d=D[113231];b=c&31;if((c&63)>>>0>=32){c=1<>>32-b;b=1<>>0<=e>>>0){break e}}c=0}break c}D[(f+(b&-4)|0)-4>>2]=b;c=1}if(c){break a}b=bb(j);if(!b){break b}i=D[k>>2]-8|0;Xa(b,a,i>>>0>j>>>0?j:i);Ta(a);l=b}i=l}return i}function bb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=8;a:{b:{if(a>>>0>4294967239){break b}while(1){j=j>>>0>8?j:8;g=D[113231];h=g;e=D[113230];b=e;a=a>>>0>8?a+3&-4:8;c:{if(a>>>0<=127){i=(a>>>3|0)-1|0;break c}c=M(a);i=((a>>>29-c^4)-(c<<2)|0)+110|0;if(a>>>0<=4095){break c}c=((a>>>30-c^2)-(c<<1)|0)+71|0;i=c>>>0<63?c:63}c=i;f=c&31;if((c&63)>>>0>=32){d=0;b=g>>>f|0}else{d=g>>>f|0;b=((1<>>f}c=d;if(b|c){while(1){g=b;d=c;d:{if(c|b){e=d-1|0;f=b-1|0;e=(f|0)!=-1?e+1|0:e;d=M(d^e);b=(d|0)==32?M(b^f)+32|0:d;d=63-b|0;Ga=0-(b>>>0>63)|0;break d}Ga=0;d=64}b=d;e=b&31;if((b&63)>>>0>=32){d=0;e=c>>>e|0}else{d=c>>>e|0;e=((1<>>e}c=d;i=b+i|0;g=i<<4;f=D[g+451896>>2];b=g+451888|0;e:{if((f|0)!=(b|0)){h=Rb(f,j,a);if(h){break b}d=D[f+4>>2];D[d+8>>2]=D[f+8>>2];D[D[f+8>>2]+4>>2]=d;D[f+8>>2]=b;d=g+451892|0;D[f+4>>2]=D[d>>2];D[d>>2]=f;D[D[f+4>>2]+8>>2]=f;i=i+1|0;b=(c&1)<<31|e>>>1;c=c>>>1|0;break e}d=D[113231];k=452920,l=D[113230]&rf(-2,-1,i),D[k>>2]=l;D[113231]=Ga&d;b=e^1}if(b|c){continue}break}h=D[113231];e=D[113230]}f:{if(e|h){c=M(h);c=63-((c|0)==32?M(e)+32|0:c)<<4;g=c+451888|0;b=D[c+451896>>2];g:{if(!h&e>>>0<1073741824){break g}c=98;if((b|0)==(g|0)){break g}while(1){h=Rb(b,j,a);if(h){break b}b=D[b+8>>2];if((g|0)==(b|0)){break g}d=c;c=c-1|0;if(d){continue}break}}if(Sb(a+48|0)){break f}if(!b|(b|0)==(g|0)){break a}while(1){h=Rb(b,j,a);if(h){break b}b=D[b+8>>2];if((g|0)!=(b|0)){continue}break}break a}if(!Sb(a+48|0)){break a}}h=0;if(j-1&j){break b}if(a>>>0<=4294967239){continue}break}}return h}return 0}function Nb(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var r=0,s=0,t=0;r=j+k|0;s=j>>>0>r>>>0;a:{if(s|!s&e>>>0>>0){break a}e=8;if((a&-2)==8){if((of(f<<2)|0)!=1){break a}if((of(g<<2)|0)!=1){break a}}r=4;b:{c:{d:{e:{f:{g:{h:{a=(a|0)==9?m?9:8:a;switch(a|0){case 13:break d;case 0:case 2:case 4:case 8:case 9:case 11:case 18:case 19:case 20:break e;case 14:case 15:case 16:break g;case 1:case 3:case 5:case 6:case 7:case 10:case 12:case 17:case 21:break h;default:break f}}e=16;break e}r=2;break d}e=0}if(a-13>>>0>3){break c}r=e}if(J(o?o:i,n?n:h)>>>0<=c>>>0){break b}break a}if((a|0)==17){break a}r=e;if(J(f,g)>>>0>c>>>0){break a}}c=l&4;i:{switch(a|0){case 0:return cb(b,f,g,d+j|0,k,0,r,h,i,n,o,p,q);case 1:return cb(b,f,g,d+j|0,k,1,r,h,i,n,o,p,q);case 2:return cb(b,f,g,d+j|0,k,2,r,h,i,n,o,p,q);case 3:return cb(b,f,g,d+j|0,k,3,r,h,i,n,o,p,q);case 4:return cb(b,f,g,d+j|0,k,4,r,h,i,n,o,m?c?3:0:0,-1);case 5:return cb(b,f,g,d+j|0,k,5,r,h,i,n,o,0,3);case 6:case 7:return cb(b,f,g,d+j|0,k,8,r,h,i,n,o,-1,-1);case 8:return cb(b,f,g,d+j|0,k,6,r,h,i,n,o,-1,-1);case 9:return cb(b,f,g,d+j|0,k,7,r,h,i,n,o,-1,-1);case 10:return cb(b,f,g,d+j|0,k,12,r,h,i,n,o,-1,-1);case 20:return cb(b,f,g,d+j|0,k,18,r,h,i,n,o,m?c?3:0:0,-1);case 21:return cb(b,f,g,d+j|0,k,19,r,h,i,n,o,0,3);case 13:return cb(b,f,g,d+j|0,k,22,r,h,i,n,o,-1,-1);case 14:return cb(b,f,g,d+j|0,k,24,r,h,i,n,o,-1,-1);case 15:return cb(b,f,g,d+j|0,k,25,r,h,i,n,o,-1,-1);case 16:break i;default:break a}}t=cb(b,f,g,d+j|0,k,29,r,h,i,n,o,-1,-1)}return t}function $c(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!d){return-72}i=F[e+2>>1];a:{b:{c:{if(d>>>0>=4){g=E[(c+d|0)-1|0];f=-1;if(!g){break a}if(d>>>0<=4294967176){break c}return d}h=E[c|0];d:{switch(d-2|0){case 1:h=E[c+2|0]<<16|h;case 0:h=(E[c+1|0]<<8)+h|0;break;default:break d}}f=E[(c+d|0)-1|0];if(!f){return-20}f=(M(f)-(d<<3)|0)+9|0;d=0;break b}f=M(g)-23|0;d=d-4|0;g=d+c|0;h=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24)}k=e+4|0;l=a+b|0;i=0-i&31;e:{f:{g:{h:{i:{if(f>>>0>32){break i}j=l-3|0;while(1){j:{if((d|0)>=4){e=f&7;h=f>>>3|0;f=1;break j}if(!d){d=0;g=c;break h}e=f>>>3|0;g=(c+d|0)-e|0;h=c>>>0>g>>>0?d:e;e=f-(h<<3)|0;f=c>>>0<=g>>>0}d=d-h|0;g=d+c|0;h=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);if(!(f?a>>>0>>0:0)){f=e;break i}f=(h<>>i<<1)+k|0;m=E[f+1|0];B[a|0]=E[f|0];e=e+m|0;f=(h<>>i<<1)+k|0;m=E[f+1|0];B[a+1|0]=E[f|0];a=a+2|0;f=e+m|0;if(f>>>0<=32){continue}break}break g}g=c+d|0;if(f>>>0>32){break g}}while(1){k:{if((d|0)>=4){e=f&7;h=f>>>3|0;f=1;break k}if(!d){break g}e=f>>>3|0;g=g-e|0;h=c>>>0>g>>>0?d:e;e=f-(h<<3)|0;f=c>>>0<=g>>>0}d=d-h|0;g=d+c|0;h=E[g|0]|E[g+1|0]<<8|(E[g+2|0]<<16|E[g+3|0]<<24);j=a>>>0>=l>>>0;if(f?j:1){f=e;if(!j){break f}break e}f=(h<>>i<<1)+k|0;j=E[f+1|0];B[a|0]=E[f|0];a=a+1|0;f=e+j|0;if(f>>>0<=32){continue}break}}if(a>>>0>=l>>>0){break e}}while(1){d=(h<>>i<<1)+k|0;e=E[d+1|0];B[a|0]=E[d|0];f=e+f|0;a=a+1|0;if((l|0)!=(a|0)){continue}break}}f=(c|0)!=(g|0)?-20:(f|0)!=32?-20:b}return f}function hc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=Fa-16|0;Fa=k;a:{if(e>>>0<=7){D[k+8>>2]=0;D[k+12>>2]=0;Xa(k+8|0,d,e);a=hc(a,b,c,k+8|0,8);h=a>>>0<4294967177?a>>>0>e>>>0?-20:a:a;break a}m=D[b>>2]+1|0;q=Va(a,0,m<<1);f=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);g=f&15;h=-44;if(g>>>0>10){break a}D[c>>2]=g+5;a=d+e|0;h=a-4|0;n=a-7|0;o=g+6|0;a=4;f=f>>>4|0;l=32<>>0>=24){while(1){f=e-n|0;c=c+36|0;g=e>>>0>n>>>0;e=g?h:e+3|0;a=g?(f<<3)+a&31:a;f=(E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24))>>>a|0;g=mf(f^-1|-2147483648);if(g>>>0>23){continue}break}}i=g&30;a=(i+a|0)+2|0;c=(J(g>>>1|0,3)+c|0)+(f>>>i&3)|0;if(m>>>0<=c>>>0){break b}f=a>>3;c:{if(!(h>>>0>>0?e>>>0>n>>>0:0)){a=a&7;e=e+f|0;break c}a=(e-h<<3)+a&31;e=h}f=(E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24))>>>a|0}g=l-1&f;i=(l<<1)-1|0;p=i-j|0;if(g>>>0

>>0){f=o-1|0}else{f=f&i;g=f-((f|0)<(l|0)?0:p)|0;f=o}i=g-1|0;C[(c<<1)+q>>1]=i;c=c+1|0;a=a+f|0;j=((g|0)>0?1-g|0:i)+j|0;if((j|0)<(l|0)){if((j|0)<2){break b}f=M(j);o=32-f|0;l=1<<(f^31)}if(c>>>0>=m>>>0){break b}g=!i;f=a>>3;d:{if(!(h>>>0>>0?e>>>0>n>>>0:0)){a=a&7;e=e+f|0;break d}a=(e-h<<3)+a&31;e=h}f=(E[e|0]|E[e+1|0]<<8|(E[e+2|0]<<16|E[e+3|0]<<24))>>>a|0;g=!g;continue}break}h=-20;if((j|0)!=1){break a}h=-48;if(c>>>0>m>>>0){break a}h=-20;if((a|0)>32){break a}D[b>>2]=c-1;h=((a+7>>3)+e|0)-d|0}Fa=k+16|0;return h}function ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=Fa+-64|0;Fa=f;a:{if(Za(b,421544,0)){D[c>>2]=0;e=1;break a}h=a;i=b;b:{if(E[a+8|0]&24){d=1}else{if(!b){break b}d=gb(b,421276);if(!d){break b}d=(E[d+8|0]&24)!=0}g=Za(h,i,d)}if(g){e=1;a=D[c>>2];if(!a){break a}D[c>>2]=D[a>>2];break a}c:{if(!b){break c}d=gb(b,421324);if(!d){break a}b=D[c>>2];if(b){D[c>>2]=D[b>>2]}g=D[d+8>>2];b=D[a+8>>2];if(g&(b^-1)&7|b&(g^-1)&96){break a}e=1;if(Za(D[a+12>>2],D[d+12>>2],0)){break a}if(Za(D[a+12>>2],421532,0)){a=D[d+12>>2];if(!a){break a}e=!gb(a,421376);break a}b=D[a+12>>2];if(!b){break c}e=0;b=gb(b,421324);if(b){if(!(B[a+8|0]&1)){break a}a=b;c=D[d+12>>2];d:{e:{while(1){b=0;if(!c){break d}c=gb(c,421324);if(!c|D[c+8>>2]&(D[a+8>>2]^-1)){break e}b=1;if(Za(D[a+12>>2],D[c+12>>2],0)){break d}if(!(B[a+8|0]&1)){break e}b=D[a+12>>2];if(!b){break e}b=gb(b,421324);if(b){c=D[c+12>>2];a=b;continue}break}a=D[a+12>>2];if(!a){break e}a=gb(a,421436);if(!a){break e}e=Ic(a,D[c+12>>2])}b=e}e=b;break a}b=D[a+12>>2];if(!b){break a}b=gb(b,421436);if(b){if(!(B[a+8|0]&1)){break a}e=Ic(b,D[d+12>>2]);break a}a=D[a+12>>2];if(!a){break a}b=gb(a,421228);if(!b){break a}a=D[d+12>>2];if(!a){break a}a=gb(a,421228);if(!a){break a}Va(f+8|4,0,52);D[f+56>>2]=1;D[f+20>>2]=-1;D[f+16>>2]=b;D[f+8>>2]=a;Ha[D[D[a>>2]+28>>2]](a,f+8|0,D[c>>2],1);a=D[f+32>>2];if(!(!D[c>>2]|(a|0)!=1)){D[c>>2]=D[f+24>>2]}e=(a|0)==1;break a}e=0}Fa=f- -64|0;return e|0}function wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{if(b>>>0>=26){h=D[a+12>>2];d=D[a+20>>2];if(d>>>0>=25){e=D[a+16>>2];break a}c=D[a+4>>2];if(c>>>0>>0){f=c+1|0;D[a+4>>2]=f;e=E[c|0]<>2]=f;e=D[a+16>>2]|e;D[a+16>>2]=e;if(d>>>0<17){break b}d=f;break a}c:{if(!b){d=D[a+20>>2];c=D[a+16>>2];e=0;break c}d=D[a+20>>2];d:{if(d>>>0>=b>>>0){c=D[a+16>>2];break d}g=D[a+12>>2];e=D[a+4>>2];while(1){e:{if(e>>>0>=g>>>0){c=0;break e}f=e+1|0;D[a+4>>2]=f;c=E[e|0]<>2]=d;c=D[a+16>>2]|c;D[a+16>>2]=c;if(b>>>0>d>>>0){continue}break}}e=(-1<>2]=d-b;D[a+16>>2]=c>>>b;return e}f:{if(c>>>0>=h>>>0){e=0;break f}g=c+1|0;D[a+4>>2]=g;e=E[c|0]<>2]=f;e=D[a+16>>2]|e;D[a+16>>2]=e;if(d>>>0>8){d=f;break a}g:{if(c>>>0>=h>>>0){e=0;break g}g=c+1|0;D[a+4>>2]=g;e=E[c|0]<>2]=f;e=D[a+16>>2]|e;D[a+16>>2]=e;if(d){d=f;break a}if(c>>>0>=h>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=d;e=c|D[a+16>>2];D[a+16>>2]=e}d=d-25|0;D[a+20>>2]=d;c=e>>>25|0;D[a+16>>2]=c;i=e&33554431;g=b-25|0;if(g){if(d>>>0>>0){e=D[a+4>>2];while(1){h:{if(e>>>0>=h>>>0){b=0;break h}f=e+1|0;D[a+4>>2]=f;b=E[e|0]<>2]=d;c=b|c;D[a+16>>2]=c;if(d>>>0>>0){continue}break}}i=((-1<>2]=d-g;D[a+16>>2]=c>>>g;return i}function vd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Fa-48|0;Fa=f;a:{if(D[a>>2]!=-559038751|e>>>0>21){break a}k=a+4|0;if(!Cb(k,D[a+596>>2],D[a+600>>2],c,d,f+20|0,f+16|0,f+12|0)){break a}D[f>>2]=0;D[f+4>>2]=0;D[f+8>>2]=0;l=((g|0)!=0)<<2;b:{if(e-13>>>0<4){i=D[f+16>>2];m=i;h=e-13|0;c:{if(h>>>0<=3){h=D[(h<<2)+414852>>2];break c}h=0}g=D[f+20>>2];h=J(m,J(h,g));if(h){Ya(f,h,(h|0)==1,1);g=D[f+4>>2];Va(g+D[f>>2]|0,0,h-g|0);D[f+4>>2]=h;i=D[f+16>>2];j=D[f>>2];g=D[f+20>>2]}j=zc(k,D[a+596>>2],D[a+600>>2],c,d,j,J(g,i),e,l,g,i);break b}i=e>>>0<=21?D[(e<<2)+414764>>2]:0;g=0;if((e&-2)!=8){h=J(i,D[f+12>>2])}else{h=D[f+16>>2]+3&-4;j=h>>>0>8?h:8;h=D[f+20>>2]+3&-4;h=J(j,h>>>0>8?h:8)>>>1&536870904}if(h){Ya(f,h,(h|0)==1,1);g=D[f+4>>2];Va(g+D[f>>2]|0,0,h-g|0);D[f+4>>2]=h;g=D[f>>2]}j=zc(k,D[a+596>>2],D[a+600>>2],c,d,g,(h>>>0)/(i>>>0)|0,e,l,0,0)}c=la(4836)|0;d=$(2107)|0;a=_(c|0,d|0)|0;X(d|0);X(c|0);d=sa(1109)|0;c=D[f>>2];e=D[f+4>>2];aa(a|0);D[f+40>>2]=e;D[f+32>>2]=c;D[f+24>>2]=a;c=ka(d|0,3,414944,f+24|0)|0;X(d|0);b=D[b>>2];d:{if(B[451796]&1){break d}if(!ob(451796)){break d}n=451792,o=ja(2,414956)|0,D[n>>2]=o;nb(451796)}d=D[112948];aa(c|0);D[f+24>>2]=c;ma(d|0,b|0,1336,f+24|0);X(c|0);X(a|0);a=D[f>>2];if(!a){break a}Ta(a)}Fa=f+48|0;return j|0}function wd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(D[a>>2]==-559038751){e=a+4|0;b=D[a+596>>2];d=D[a+600>>2];a:{if(!ib(b,d)){break a}b:{if(!E[b+20|0]){if(D[e+8>>2]){Mb(e)}c:{if(E[b+21|0]&8){c=D[e>>2];if(!c){break a}a=D[c+8>>2];if(!a|(a|0)!=(E[b+39|0]|E[b+40|0]<<8)|D[c+20>>2]!=(E[b+48|0]|E[b+49|0]<<8)){break a}c=E[b+61|0]|E[b+62|0]<<8|(E[b+63|0]<<16|E[b+64|0]<<24);if(!c){break a}a=E[b+57|0]|E[b+58|0]<<8|(E[b+59|0]<<16|E[b+60|0]<<24);if(d>>>0>>0){break a}if(d-a>>>0>=c>>>0){break c}break a}f=E[b+45|0]|(E[b+46|0]<<8|E[b+47|0]<<16);if(!f){break a}g=E[b+54|0]|(E[b+55|0]<<8|E[b+56|0]<<16);if(!g){break a}c=E[b+61|0]|E[b+62|0]<<8|(E[b+63|0]<<16|E[b+64|0]<<24);if(!c){break a}h=E[b+41|0]|E[b+42|0]<<8|(E[b+43|0]<<16|E[b+44|0]<<24);if(d>>>0>>0){break a}i=E[b+50|0]|E[b+51|0]<<8|(E[b+52|0]<<16|E[b+53|0]<<24);if(d>>>0>>0){break a}a=E[b+57|0]|E[b+58|0]<<8|(E[b+59|0]<<16|E[b+60|0]<<24);if(d>>>0>>0|f>>>0>d-h>>>0|(d-a>>>0>>0|g>>>0>d-i>>>0)){break a}if(!Wb(e,E[b+39|0]|E[b+40|0]<<8,b+h|0,f,E[b+48|0]|E[b+49|0]<<8,b+i|0,g)){break a}c=E[b+61|0]|E[b+62|0]<<8|(E[b+63|0]<<16|E[b+64|0]<<24);a=E[b+57|0]|E[b+58|0]<<8|(E[b+59|0]<<16|E[b+60|0]<<24)}if(lc(e,a+b|0,c)){break b}break a}if(!D[e+8>>2]){break b}Mb(e)}j=1;B[e+589|0]=1}}return j|0}function te(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=Fa-96|0;Fa=j;a:{if(D[a>>2]!=-559038750|f>>>0>21){break a}a=a+4|0;if(!Jb(a,j+24|0,c,d,e)){break a}k=D[j+60>>2];m=D[j+40>>2];n=D[j+36>>2];D[j+8>>2]=0;D[j+12>>2]=0;D[j+16>>2]=0;o=((g|0)!=0)<<2;b:{if(f-13>>>0<4){g=f-13|0;c:{if(g>>>0<=3){g=D[(g<<2)+414852>>2];break c}g=0}l=J(m,n);k=J(g,l);if(k){Ya(j+8|0,k,(k|0)==1,1);g=D[j+12>>2];Va(g+D[j+8>>2]|0,0,k-g|0);D[j+12>>2]=k;g=D[j+8>>2]}else{g=0}l=vc(a,c,d,e,g,l,f,o,n,m,h,i);break b}if(f>>>0<=21){l=D[(f<<2)+414764>>2]}else{l=0}if((f&-2)!=8){g=J(k,l)}else{g=m+3&-4;k=g>>>0>8?g:8;g=n+3&-4;g=J(k,g>>>0>8?g:8)>>>1&536870904}if(g){Ya(j+8|0,g,(g|0)==1,1);k=D[j+12>>2];Va(k+D[j+8>>2]|0,0,g-k|0);D[j+12>>2]=g;k=D[j+8>>2]}else{k=0}l=vc(a,c,d,e,k,(g>>>0)/(l>>>0)|0,f,o,0,0,h,i)}c=la(4836)|0;a=$(2107)|0;e=_(c|0,a|0)|0;X(a|0);X(c|0);d=sa(1109)|0;c=D[j+8>>2];a=D[j+12>>2];aa(e|0);D[j+88>>2]=a;D[j+80>>2]=c;D[j+72>>2]=e;c=ka(d|0,3,414944,j+72|0)|0;X(d|0);b=D[b>>2];d:{if(B[451796]&1){break d}if(!ob(451796)){break d}p=451792,q=ja(2,414956)|0,D[p>>2]=q;nb(451796)}a=D[112948];aa(c|0);D[j+72>>2]=c;ma(a|0,b|0,1336,j+72|0);X(c|0);X(e|0);a=D[j+8>>2];if(!a){break a}Ta(a)}Fa=j+96|0;return l|0}function eb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=E[b+2|0];e=d>>>2|0;f=d<<3;d=E[b+1|0];h=d<<3|d>>>2;d=255;b=E[b|0];i=(b<<3|b>>>2)&255;g=D[(c<<4)+29120>>2];b=i+g|0;a:{if(b>>>0<256){d=b;break a}if((b|0)>-1){break a}d=0}f=e|f;b=255;h=h&255;e=h+g|0;b:{if(e>>>0<256){b=e;break b}if((e|0)>-1){break b}b=0}j=f&255;g=j+g|0;c:{if(g>>>0<256){e=g;break c}e=0;if((g|0)<0){break c}e=255}g=255;B[a+3|0]=255;B[a+2|0]=e;B[a+1|0]=b;B[a|0]=d;d=D[(c<<4)+29124>>2];b=d+i|0;d:{if(b>>>0<256){g=b;break d}if((b|0)>-1){break d}g=0}f=d+h|0;e:{if(f>>>0<256){break e}b=(f|0)>-1;f=255;if(b){break e}f=0}b=d+j|0;f:{if(b>>>0<256){d=b;break f}d=0;if((b|0)<0){break f}d=255}b=255;B[a+7|0]=255;B[a+6|0]=d;B[a+5|0]=f;B[a+4|0]=g;e=D[(c<<4)+29128>>2];d=e+i|0;g:{if(d>>>0<256){b=d;break g}if((d|0)>-1){break g}b=0}f=e+h|0;h:{if(f>>>0<256){break h}d=(f|0)>-1;f=255;if(d){break h}f=0}d=e+j|0;i:{if(d>>>0<256){e=d;break i}e=0;if((d|0)<0){break i}e=255}d=255;B[a+11|0]=255;B[a+10|0]=e;B[a+9|0]=f;B[a+8|0]=b;e=D[(c<<4)+29132>>2];b=e+i|0;j:{if(b>>>0<256){d=b;break j}if((b|0)>-1){break j}d=0}c=e+h|0;k:{if(c>>>0<256){break k}b=(c|0)>-1;c=255;if(b){break k}c=0}B[a+15|0]=255;g=a;e=e+j|0;l:{if(e>>>0<256){b=e;break l}b=0;if((e|0)<0){break l}b=255}B[g+14|0]=b;B[a+13|0]=c;B[a+12|0]=d}function de(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(Za(a,D[b+8>>2],e)){if(!(D[b+28>>2]==1|D[b+4>>2]!=(c|0))){D[b+28>>2]=d}return}a:{if(Za(a,D[b>>2],e)){if(!(D[b+20>>2]!=(c|0)?D[b+16>>2]!=(c|0):0)){if((d|0)!=1){break a}D[b+32>>2]=1;return}D[b+32>>2]=d;if(D[b+44>>2]!=4){f=a+16|0;i=f+(D[a+12>>2]<<3)|0;j=b;b:{c:{while(1){d:{if(f>>>0>=i>>>0){break d}C[b+52>>1]=0;Tb(f,b,c,c,1,e);if(E[b+54|0]){break d}e:{if(!E[b+53|0]){break e}if(E[b+52|0]){d=1;if(D[b+24>>2]==1){break c}h=1;g=1;if(E[a+8|0]&2){break e}break c}h=1;d=g;if(!(B[a+8|0]&1)){break c}}f=f+8|0;continue}break}d=g;a=4;if(!h){break b}}a=3}D[j+44>>2]=a;if(d&1){break a}}D[b+20>>2]=c;D[b+40>>2]=D[b+40>>2]+1;if(D[b+36>>2]!=1|D[b+24>>2]!=2){break a}B[b+54|0]=1;return}g=D[a+12>>2];f=a+16|0;Gb(f,b,c,d,e);if((g|0)<2){break a}g=f+(g<<3)|0;f=a+24|0;a=D[a+8>>2];if(D[b+36>>2]!=1?a&2:1){while(1){if(E[b+54|0]){break a}Gb(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break}break a}if(!(a&1)){while(1){if(E[b+54|0]|D[b+36>>2]==1){break a}Gb(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break a}}while(1){if(E[b+54|0]|(D[b+24>>2]==1?D[b+36>>2]==1:0)){break a}Gb(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break}}}function Ac(a,b,c,d,e){var f=0,g=0,h=0,i=0;a:{if(!ib(a,b)){break a}h=E[a+14|0]|(E[a+15|0]<<8|E[a+16|0]<<16);if(!h){break a}g=(E[a+65|0]|E[a+66|0]<<8|(E[a+67|0]<<16|E[a+68|0]<<24))+a|0;b:{while(1){b=J(f,23)+g|0;if(E[b+3|0]==(e|0)?(E[b+1|0]<<8|E[b+2|0]<<16|E[b|0])==(d|0):0){break b}f=f+1|0;if((h|0)!=(f|0)){continue}break}return 0}if((E[a+17|0]|(E[a+18|0]<<8|E[a+19|0]<<16))>>>0<=d>>>0){break a}D[c+4>>2]=e;D[c>>2]=d;i=1;b=c;if(E[a+20|0]){d=E[(J(f,23)+g|0)+4|0]}else{d=E[a+21|0]>>>2|0}B[b+56|0]=d&1;b=J(f,23)+g|0;B[c+57|0]=E[b+4|0]>>>1&1;D[c+16>>2]=E[b+9|0]<<2|E[b+10|0]<<10;D[c+20>>2]=E[b+11|0]<<2|E[b+12|0]<<10;D[c+8>>2]=E[b+5|0]|E[b+6|0]<<8;D[c+12>>2]=E[b+7|0]|E[b+8|0]<<8;e=E[b+9|0]|E[b+10|0]<<8;D[c+24>>2]=e;d=E[b+11|0]|E[b+12|0]<<8;D[c+36>>2]=f;D[c+28>>2]=d;D[c+32>>2]=J(d,e);D[c+40>>2]=E[b+13|0]|E[b+14|0]<<8|(E[b+15|0]<<16|E[b+16|0]<<24);b=E[b+17|0]|E[b+18|0]<<8|(E[b+19|0]<<16|E[b+20|0]<<24);D[c+48>>2]=0;D[c+52>>2]=0;D[c+44>>2]=b;if(E[a+20|0]|!(E[a+21|0]&4)){break a}a=J(f,23)+g|0;D[c+48>>2]=E[a+36|0]|E[a+37|0]<<8|(E[a+38|0]<<16|E[a+39|0]<<24);D[c+52>>2]=E[a+40|0]|E[a+41|0]<<8|(E[a+42|0]<<16|E[a+43|0]<<24)}return i}function Xa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){za(a|0,b|0,c|0)|0;return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if((c|0)<1){c=a;break b}c=a;while(1){B[c|0]=E[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){D[c>>2]=D[b>>2];D[c+4>>2]=D[b+4>>2];D[c+8>>2]=D[b+8>>2];D[c+12>>2]=D[b+12>>2];D[c+16>>2]=D[b+16>>2];D[c+20>>2]=D[b+20>>2];D[c+24>>2]=D[b+24>>2];D[c+28>>2]=D[b+28>>2];D[c+32>>2]=D[b+32>>2];D[c+36>>2]=D[b+36>>2];D[c+40>>2]=D[b+40>>2];D[c+44>>2]=D[b+44>>2];D[c+48>>2]=D[b+48>>2];D[c+52>>2]=D[b+52>>2];D[c+56>>2]=D[b+56>>2];D[c+60>>2]=D[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){D[c>>2]=D[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){B[c|0]=E[b|0];B[c+1|0]=E[b+1|0];B[c+2|0]=E[b+2|0];B[c+3|0]=E[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){B[c|0]=E[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function zb(a){var b=0,c=0,d=0,e=0,f=0;d=Fa-16|0;D[d+8>>2]=0;D[d+12>>2]=0;D[d>>2]=0;D[d+4>>2]=0;f=3;c=E[a|0];b=(c&3)<<2|d;D[b>>2]=D[b>>2]+1;b=c&12|d;D[b>>2]=D[b>>2]+1;b=c>>>2&12|d;D[b>>2]=D[b>>2]+1;c=c>>>4&12|d;D[c>>2]=D[c>>2]+1;c=E[a+1|0];b=(c&3)<<2|d;D[b>>2]=D[b>>2]+1;b=c&12|d;D[b>>2]=D[b>>2]+1;b=c>>>2&12|d;D[b>>2]=D[b>>2]+1;c=c>>>4&12|d;D[c>>2]=D[c>>2]+1;c=E[a+2|0];b=(c&3)<<2|d;D[b>>2]=D[b>>2]+1;b=c&12|d;D[b>>2]=D[b>>2]+1;b=c>>>2&12|d;D[b>>2]=D[b>>2]+1;c=c>>>4&12|d;D[c>>2]=D[c>>2]+1;c=E[a+3|0];b=(c&3)<<2|d;D[b>>2]=D[b>>2]+1;b=c&12|d;D[b>>2]=D[b>>2]+1;b=c>>>2&12|d;D[b>>2]=D[b>>2]+1;c=c>>>4&12|d;D[c>>2]=D[c>>2]+1;B[a+10|0]=0;B[a+8|0]=3;B[a+9|0]=0;b=a+10|0;c=a+8|0;a:{b:{c:{d:{e:{f:{if(!D[d>>2]){if(!D[d+4>>2]){break e}B[a+10|0]=1;B[c|0]=1;f=1;e=1;break f}B[a+10|0]=1;B[c|0]=0;if(!D[d+4>>2]){break d}B[a+10|0]=2;f=0;e=2}B[a+9|0]=1}if(!D[d+8>>2]){break a}e=e+1|0;B[a+10|0]=e;b=c;if(f>>>0<3){break b}break c}e=2;if(D[d+8>>2]){break c}e=1;break a}B[b|0]=2}B[a+9|0]=2}if(D[d+12>>2]){B[a+9|0]=3;B[a+10|0]=e+1}} +function Sb(a){var b=0,c=0,d=0,e=0,f=0,g=0;c=D[105611];d=a+3&-4;b=c+d|0;a:{b:{if(b>>>0<=c>>>0?d:0){break b}if(b>>>0>Ia()<<16>>>0){if(!(Aa(b|0)|0)){break b}}D[105611]=b;break a}D[112953]=48;c=-1}if((c|0)!=-1){b=a+c|0;d=b-16|0;D[d+12>>2]=16;D[d>>2]=16;g=d;a=D[113228];if(a){e=D[a+8>>2]}else{e=0}c:{d:{if((e|0)==(c|0)){e=c-(D[c-4>>2]&-2)|0;f=D[e-4>>2];D[a+8>>2]=b;a=e-(f&-2)|0;b=c-16|0;if(!(B[(a+D[a>>2]|0)-4|0]&1)){break d}b=D[a+4>>2];D[b+8>>2]=D[a+8>>2];D[D[a+8>>2]+4>>2]=b;b=d-a|0;D[a>>2]=b;break c}D[c+12>>2]=16;D[c>>2]=16;D[c+8>>2]=b;D[c+4>>2]=a;D[113228]=c;b=c+16|0}a=b;b=g-a|0;D[a>>2]=b}D[((b&-4)+a|0)-4>>2]=b|1;g=a;e=D[a>>2]-8|0;e:{if(e>>>0<=127){b=(e>>>3|0)-1|0;break e}f=M(e);b=((e>>>29-f^4)-(f<<2)|0)+110|0;if(e>>>0<=4095){break e}b=((e>>>30-f^2)-(f<<1)|0)+71|0;b=b>>>0<63?b:63}d=b<<4;D[g+4>>2]=d+451888;d=d+451896|0;D[a+8>>2]=D[d>>2];D[d>>2]=a;D[D[a+8>>2]+4>>2]=a;d=D[113231];a=b&31;if((b&63)>>>0>=32){b=1<>>32-a;a=1<>>0<=d>>>0){break a}b=1;g=e+1|0;if(g>>>0>>0){while(1){f=J(g,23)+i|0;if((E[f+1|0]<<8|E[f+2|0]<<16|E[f|0])==(d|0)){f=E[f+3|0]+1|0;b=b>>>0>f>>>0?b:f;g=g+1|0;if((g|0)!=(h|0)){continue}}break}if(b>>>0>16){break a}}B[c+40|0]=0;D[c+4>>2]=b;D[c>>2]=d;j=1;b=c;if(E[a+20|0]){a=E[(J(e,23)+i|0)+4|0]}else{a=E[a+21|0]>>>2|0}B[b+40|0]=a&1;a=J(e,23)+i|0;B[c+41|0]=E[a+4|0]>>>1&1;D[c+16>>2]=E[a+9|0]<<2|E[a+10|0]<<10;D[c+20>>2]=E[a+11|0]<<2|E[a+12|0]<<10;D[c+8>>2]=E[a+5|0]|E[a+6|0]<<8;D[c+12>>2]=E[a+7|0]|E[a+8|0]<<8;b=E[a+9|0]|E[a+10|0]<<8;D[c+24>>2]=b;a=E[a+11|0]|E[a+12|0]<<8;D[c+36>>2]=e;D[c+28>>2]=a;D[c+32>>2]=J(a,b)}return j}function Jd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Sa(608);e=Fa-32|0;Fa=e;D[d>>2]=0;c=D[112944];b=d+4|0;D[b>>2]=0;D[b+4>>2]=0;D[b+28>>2]=c;D[b+24>>2]=0;D[b+16>>2]=0;D[b+20>>2]=0;D[b+8>>2]=0;D[b+12>>2]=0;Va(b+32|0,0,556);B[b+589|0]=0;D[e+8>>2]=a;cd(d+596|0,e+8|0);if(D[112944]){b=D[a>>2];c=$(2452)|0;b=_(b|0,c|0)|0;X(c|0);g=+ga(b|0,421640,e+8|0);fa(D[e+8>>2]);X(b|0);c=la(4836)|0;f=$(2107)|0;b=_(c|0,f|0)|0;X(f|0);X(c|0);c=D[a>>2];f=$(2095)|0;c=_(c|0,f|0)|0;X(f|0);f=D[d+596>>2];aa(b|0);D[e+24>>2]=g<4294967296&g>=0?~~g>>>0:0;D[e+16>>2]=f;D[e+8>>2]=b;f=ka(c|0,3,414896,e+8|0)|0;X(c|0);a:{if(B[451788]&1){break a}if(!ob(451788)){break a}h=451784,i=ja(2,414936)|0,D[h>>2]=i;nb(451788)}c=D[112946];aa(D[a>>2]);D[e+8>>2]=D[a>>2];ma(c|0,f|0,1336,e+8|0);b:{if(Cc(D[d+596>>2],D[d+600>>2])){break b}a=D[d+596>>2];if(!a){break b}Ta(a);D[d+604>>2]=0;D[d+596>>2]=0;D[d+600>>2]=0}D[d>>2]=-559038751;X(f|0);X(b|0)}Fa=e+32|0;return d|0}function ic(a){var b=0;b=D[a+396>>2];if(b){Ta(b)}b=D[a+384>>2];if(b){Ta(b)}b=D[a+372>>2];if(b){Ta(b)}b=D[a+360>>2];if(b){Ta(b)}b=D[a+348>>2];if(b){Ta(b)}b=D[a+336>>2];if(b){Ta(b)}b=D[a+324>>2];if(b){Ta(b)}b=D[a+312>>2];if(b){Ta(b)}b=D[a+300>>2];if(b){Ta(b)}b=D[a+288>>2];if(b){Ta(b)}b=D[a+276>>2];if(b){Ta(b)}b=D[a+264>>2];if(b){Ta(b)}b=D[a+252>>2];if(b){Ta(b)}b=D[a+240>>2];if(b){Ta(b)}b=D[a+228>>2];if(b){Ta(b)}b=D[a+216>>2];if(b){Ta(b)}b=D[a+204>>2];if(b){Ta(b)}b=D[a+192>>2];if(b){Ta(b)}b=D[a+180>>2];if(b){Ta(b)}b=D[a+168>>2];if(b){Ta(b)}b=D[a+156>>2];if(b){Ta(b)}b=D[a+144>>2];if(b){Ta(b)}b=D[a+132>>2];if(b){Ta(b)}b=D[a+120>>2];if(b){Ta(b)}b=D[a+108>>2];if(b){Ta(b)}b=D[a+96>>2];if(b){Ta(b)}b=D[a+84>>2];if(b){Ta(b)}b=D[a+72>>2];if(b){Ta(b)}b=D[a+60>>2];if(b){Ta(b)}b=D[a+48>>2];if(b){Ta(b)}b=D[a+36>>2];if(b){Ta(b)}b=D[a+24>>2];if(b){Ta(b)}b=D[a+12>>2];if(b){Ta(b)}a=D[a>>2];if(a){Ta(a)}}function Rb(a,b,c){var d=0,e=0,f=0,g=0;d=a+4|0;e=(d+b|0)-1&0-b;b=D[a>>2];if(e+c>>>0<=(b+a|0)-4>>>0){f=D[a+4>>2];D[f+8>>2]=D[a+8>>2];D[D[a+8>>2]+4>>2]=f;if((d|0)!=(e|0)){e=e-d|0;f=a-(D[a-4>>2]&-2)|0;d=e+D[f>>2]|0;D[f>>2]=d;D[(f+(d&-4)|0)-4>>2]=d;a=a+e|0;b=b-e|0;D[a>>2]=b}a:{if(c+24>>>0<=b>>>0){d=(a+c|0)+8|0;b=(b-c|0)-8|0;D[d>>2]=b;D[(d+(b&-4)|0)-4>>2]=b|1;g=d;f=D[d>>2]-8|0;b:{if(f>>>0<=127){e=(f>>>3|0)-1|0;break b}b=M(f);e=((f>>>29-b^4)-(b<<2)|0)+110|0;if(f>>>0<=4095){break b}b=((f>>>30-b^2)-(b<<1)|0)+71|0;e=b>>>0<63?b:63}b=e;e=b<<4;D[g+4>>2]=e+451888;e=e+451896|0;D[d+8>>2]=D[e>>2];D[e>>2]=d;D[D[d+8>>2]+4>>2]=d;e=D[113231];d=b&31;if((b&63)>>>0>=32){b=1<>>32-d;g=1<>2]=b;D[((b&-4)+a|0)-4>>2]=b;break a}D[(a+b|0)-4>>2]=b}a=a+4|0}else{a=0}return a}function jb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=Fa-16|0;Fa=f;D[f+12>>2]=c;e=Fa-160|0;Fa=e;Xa(e+8|0,420976,144);D[e+52>>2]=a;D[e+28>>2]=a;d=-2-a|0;g=d>>>0<2147483647?d:2147483647;D[e+56>>2]=g;a=a+g|0;D[e+36>>2]=a;D[e+24>>2]=a;a=e+8|0;d=Fa-208|0;Fa=d;D[d+204>>2]=c;Va(d+160|0,0,40);D[d+200>>2]=D[d+204>>2];a:{if((dc(0,b,d+200|0,d+80|0,d+160|0)|0)<0){break a}h=D[a+76>>2]>=0;c=D[a>>2];if(B[a+74|0]<=0){D[a>>2]=c&-33}i=c&32;b:{if(D[a+48>>2]){dc(a,b,d+200|0,d+80|0,d+160|0);break b}D[a+48>>2]=80;D[a+16>>2]=d+80;D[a+28>>2]=d;D[a+20>>2]=d;c=D[a+44>>2];D[a+44>>2]=d;dc(a,b,d+200|0,d+80|0,d+160|0);if(!c){break b}Ha[D[a+36>>2]](a,0,0)|0;D[a+48>>2]=0;D[a+44>>2]=c;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0}D[a>>2]=D[a>>2]|i;if(!h){break a}}Fa=d+208|0;if(g){a=D[e+28>>2];B[a-((a|0)==D[e+24>>2])|0]=0}Fa=e+160|0;Fa=f+16|0}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=Fa-32|0;Fa=e;f=D[a+28>>2];D[e+16>>2]=f;d=D[a+20>>2];D[e+28>>2]=c;D[e+24>>2]=b;b=d-f|0;D[e+20>>2]=b;f=b+c|0;j=2;b=e+16|0;a:{b:{d=ta(D[a+60>>2],e+16|0,2,e+12|0)|0;if(d){D[112953]=d;d=-1}else{d=0}c:{if(!d){while(1){d=D[e+12>>2];if((d|0)==(f|0)){break c}if((d|0)<=-1){break b}g=D[b+4>>2];h=g>>>0>>0;i=(h<<3)+b|0;g=d-(h?g:0)|0;D[i>>2]=g+D[i>>2];i=(h?12:4)+b|0;D[i>>2]=D[i>>2]-g;f=f-d|0;b=h?b+8|0:b;j=j-h|0;d=ta(D[a+60>>2],b|0,j|0,e+12|0)|0;if(d){D[112953]=d;d=-1}else{d=0}if(!d){continue}break}}if((f|0)!=-1){break b}}b=D[a+44>>2];D[a+28>>2]=b;D[a+20>>2]=b;D[a+16>>2]=b+D[a+48>>2];a=c;break a}D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a>>2]=D[a>>2]|32;a=0;if((j|0)==2){break a}a=c-D[b+4>>2]|0}Fa=e+32|0;return a|0}function hb(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return Xa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}B[d|0]=E[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;B[d|0]=E[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;D[c+a>>2]=D[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;B[c+a|0]=E[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){D[d>>2]=D[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){B[d|0]=E[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Vd(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0;i=Fa-48|0;Fa=i;a:{if(!D[112944]){break a}D[i+40>>2]=0;D[i+32>>2]=0;D[i+36>>2]=0;vb(d,i+32|0);b:{if(!D[i+36>>2]){break b}d=D[b>>2];n=$(2459)|0;d=_(d|0,n|0)|0;X(n|0);s=+ga(d|0,421640,i+16|0);fa(D[i+16>>2]);X(d|0);if(s<4294967296&s>=0){d=~~s>>>0}else{d=0}if(!d){break b}D[i+24>>2]=0;D[i+16>>2]=0;D[i+20>>2]=0;Ya(i+16|0,d,(d|0)==1,1);n=D[i+20>>2];Va(n+D[i+16>>2]|0,0,d-n|0);D[i+20>>2]=d;if(Nb(a,D[i+16>>2],c,D[i+32>>2],D[i+36>>2],e,f,g,h,j,k,l,m,o,p,q,r)){t=Bb(b,i+16|0)}a=D[i+16>>2];if(!a){break b}Ta(a)}a=D[i+32>>2];if(!a){break a}Ta(a)}Fa=i+48|0;return t|0}function lf(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0;t=Fa-32|0;Fa=t;a:{if(!D[112944]){break a}D[t+24>>2]=0;D[t+16>>2]=0;D[t+20>>2]=0;vb(e,t+16|0);b:{if(!D[t+20>>2]){break b}e=D[c>>2];u=$(2459)|0;e=_(e|0,u|0)|0;X(u|0);v=+ga(e|0,421640,t|0);fa(D[t>>2]);X(e|0);if(v<4294967296&v>=0){e=~~v>>>0}else{e=0}if(!e){break b}D[t+8>>2]=0;D[t>>2]=0;D[t+4>>2]=0;Ya(t,e,(e|0)==1,1);u=D[t+4>>2];Va(u+D[t>>2]|0,0,e-u|0);D[t+4>>2]=e;if(gc(a,b,D[t>>2],d,D[t+16>>2],D[t+20>>2],f,g,h,i,j,k,l,m,n,o,p,q,r,a+588|0,s)){w=Bb(c,t)}a=D[t>>2];if(!a){break b}Ta(a)}a=D[t+16>>2];if(!a){break a}Ta(a)}Fa=t+32|0;return w|0}function vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=Fa-32|0;Fa=f;e=D[a>>2];d=$(2452)|0;c=_(e|0,d|0)|0;X(d|0);h=+ga(c|0,421640,f+8|0);fa(D[f+8>>2]);X(c|0);d=D[b+4>>2];e=d;if(h<4294967296&h>=0){c=~~h>>>0}else{c=0}if((e|0)!=(c|0)){if(c>>>0>=d>>>0){if(c>>>0>G[b+8>>2]){Ya(b,c,(c|0)==(d+1|0),1);d=D[b+4>>2]}Va(D[b>>2]+d|0,0,c-d|0)}D[b+4>>2]=c}e=la(4836)|0;g=$(2107)|0;d=_(e|0,g|0)|0;X(g|0);X(e|0);e=D[a>>2];g=$(2095)|0;e=_(e|0,g|0)|0;X(g|0);b=D[b>>2];aa(d|0);D[f+24>>2]=c;D[f+16>>2]=b;D[f+8>>2]=d;b=ka(e|0,3,414896,f+8|0)|0;X(e|0);a:{if(B[451788]&1){break a}if(!ob(451788)){break a}i=451784,j=ja(2,414936)|0,D[i>>2]=j;nb(451788)}c=D[112946];aa(D[a>>2]);D[f+8>>2]=D[a>>2];ma(c|0,b|0,1336,f+8|0);X(b|0);X(d|0);Fa=f+32|0}function Va(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}f=a+c|0;B[f-1|0]=b;B[a|0]=b;if(c>>>0<3){break a}B[f-2|0]=b;B[a+1|0]=b;B[f-3|0]=b;B[a+2|0]=b;if(c>>>0<7){break a}B[f-4|0]=b;B[a+3|0]=b;if(c>>>0<9){break a}f=0-a&3;e=f+a|0;d=J(b&255,16843009);D[e>>2]=d;b=c-f&-4;c=b+e|0;D[c-4>>2]=d;if(b>>>0<9){break a}D[e+8>>2]=d;D[e+4>>2]=d;D[c-8>>2]=d;D[c-12>>2]=d;if(b>>>0<25){break a}D[e+24>>2]=d;D[e+20>>2]=d;D[e+16>>2]=d;D[e+12>>2]=d;D[c-16>>2]=d;D[c-20>>2]=d;D[c-24>>2]=d;D[c-28>>2]=d;c=b;b=e&4|24;c=c-b|0;if(c>>>0<32){break a}d=nf(d,0,1,1);f=Ga;b=b+e|0;while(1){D[b+24>>2]=d;e=f;D[b+28>>2]=e;D[b+16>>2]=d;D[b+20>>2]=e;D[b+8>>2]=d;D[b+12>>2]=e;D[b>>2]=d;D[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Mb(a){var b=0;b=D[a+4>>2];if(b){Ta(b);D[a+12>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0}b=D[a+16>>2];if(b){Ta(b);D[a+24>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0}if(D[a+36>>2]>=1){D[a+36>>2]=0}b=D[a+48>>2];if((b|0)>=1){D[a+48>>2]=b&-1073741824}b=D[a+60>>2];if((b|0)>=1){D[a+60>>2]=b&-2147483648}if(D[a+72>>2]>=1){D[a+72>>2]=0}b=D[a+84>>2];if((b|0)>=1){D[a+84>>2]=b&-1073741824}b=D[a+96>>2];if((b|0)>=1){D[a+96>>2]=b&-2147483648}if(D[a+108>>2]>=1){D[a+108>>2]=0}b=D[a+120>>2];if((b|0)>=1){D[a+120>>2]=b&-1073741824}b=D[a+132>>2];if((b|0)>=1){D[a+132>>2]=b&-2147483648}if(D[a+144>>2]>=1){D[a+144>>2]=0}b=D[a+156>>2];if((b|0)>=1){D[a+156>>2]=b&-1073741824}b=D[a+168>>2];if((b|0)>=1){D[a+168>>2]=b&-2147483648}D[a+176>>2]=0}function lc(a,b,c){var d=0,e=0,f=0,g=0;d=Fa-32|0;Fa=d;a:{if(!(c?b:1)){break a}D[d+24>>2]=0;D[d+28>>2]=0;D[d+16>>2]=b;D[d+12>>2]=b;D[d+8>>2]=c;D[d+20>>2]=b+c;if(!fb(d+8|0,a+32|0)|!D[a+36>>2]){break a}if(!fb(d+8|0,a+68|0)|!D[a+72>>2]){break a}if(!fb(d+8|0,a+104|0)|!D[a+108>>2]){break a}if(!fb(d+8|0,a+140|0)|!D[a+144>>2]){break a}f=D[d+28>>2];b:{if(f>>>0>=13){b=D[d+24>>2];break b}e=D[d+12>>2];g=D[d+20>>2];c:{if(e>>>0>=g>>>0){b=0;break c}c=e+1|0;D[d+12>>2]=c;b=E[e|0]<>2]=c;b=D[d+24>>2]|b;D[d+24>>2]=b;if(f>>>0>=5){break b}if(e>>>0>=g>>>0){b=0}else{D[d+12>>2]=e+1;b=E[e|0]<>2]=f+16;b=b|D[d+24>>2];D[d+24>>2]=b}D[d+24>>2]=b>>>13;D[a+176>>2]=b&8191;e=1}Fa=d+32|0;return e}function Qc(a,b,c){a:{if(b>>>0>20){break a}b:{switch(b-9|0){case 0:b=D[c>>2];D[c>>2]=b+4;D[a>>2]=D[b>>2];return;case 1:b=D[c>>2];D[c>>2]=b+4;b=D[b>>2];D[a>>2]=b;D[a+4>>2]=b>>31;return;case 2:b=D[c>>2];D[c>>2]=b+4;D[a>>2]=D[b>>2];D[a+4>>2]=0;return;case 3:b=D[c>>2]+7&-8;D[c>>2]=b+8;c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;return;case 4:b=D[c>>2];D[c>>2]=b+4;b=C[b>>1];D[a>>2]=b;D[a+4>>2]=b>>31;return;case 5:b=D[c>>2];D[c>>2]=b+4;D[a>>2]=F[b>>1];D[a+4>>2]=0;return;case 6:b=D[c>>2];D[c>>2]=b+4;b=B[b|0];D[a>>2]=b;D[a+4>>2]=b>>31;return;case 7:b=D[c>>2];D[c>>2]=b+4;D[a>>2]=E[b|0];D[a+4>>2]=0;return;case 8:b=D[c>>2]+7&-8;D[c>>2]=b+8;I[a>>3]=I[b>>3];return;case 9:break b;default:break a}}Ha[0](a,c)}}function Dc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=D[a+104>>2];B[c|0]=1;B[c+1|0]=0;B[c+2|0]=0;B[c+3|0]=0;e=a+39|0;f=E[d+23504|0]-1|0;d=D[(E[d+23376|0]<<2)+422048>>2];g=E[E[e+(1<>>6;d=(d<<4|n<<2|m)<<4|l<<2|k;B[c+6|0]=d>>>6;d=(d<<4|j<<2|i)<<4|h<<2|g;B[c+5|0]=d>>>6;B[c+4|0]=a|d<<2;Ob(c,b,4)}function Ta(a){var b=0,c=0,d=0,e=0,f=0;if(a){c=a-4|0;e=D[c>>2];d=e;b=c;f=D[a-8>>2];a=f&-2;if((a|0)!=(f|0)){b=c-a|0;d=D[b+4>>2];D[d+8>>2]=D[b+8>>2];D[D[b+8>>2]+4>>2]=d;d=a+e|0}a=c+e|0;c=D[a>>2];if((c|0)!=D[(a+c|0)-4>>2]){e=D[a+4>>2];D[e+8>>2]=D[a+8>>2];D[D[a+8>>2]+4>>2]=e;d=d+c|0}D[b>>2]=d;D[((d&-4)+b|0)-4>>2]=d|1;f=b;d=D[b>>2]-8|0;a:{if(d>>>0<=127){a=(d>>>3|0)-1|0;break a}e=M(d);a=((d>>>29-e^4)-(e<<2)|0)+110|0;if(d>>>0<=4095){break a}a=((d>>>30-e^2)-(e<<1)|0)+71|0;a=a>>>0<63?a:63}c=a<<4;D[f+4>>2]=c+451888;c=c+451896|0;D[b+8>>2]=D[c>>2];D[c>>2]=b;D[D[b+8>>2]+4>>2]=b;c=D[113231];b=a&31;if((a&63)>>>0>=32){a=1<>>32-b;b=1<>>d|0,3)+(e>>>d|0)|0)+J(k>>>d|0,9)|0)+J(l>>>d|0,27)|0)+J(m>>>d|0,81)|0)+223984|0];n=d+2|0;i=-1<>2];while(1){g=(e>>3)+a|0;e=e&7;B[g|0]=E[g|0]|f<>2]|0;D[c>>2]=e;f=f>>>g|0;b=b-g|0;if(b){continue}break}}f=J(d,3);b=f+6|0;if(b){f=(h>>>4&1)<>>7<>>5&3)<>>2&3|(i&k)<<2)|(i&l)<>2];while(1){d=(e>>3)+a|0;g=d;h=E[d|0];d=e&7;B[g|0]=h|f<>2]|0;D[c>>2]=e;f=f>>>d|0;b=b-d|0;if(b){continue}break}}}function Bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=Fa-32|0;Fa=c;if(D[b+4>>2]){e=D[a>>2];f=$(2459)|0;e=_(e|0,f|0)|0;X(f|0);h=+ga(e|0,421628,c+8|0);fa(D[c+8>>2]);X(e|0);i=D[b+4>>2];d=i;if(L(h)<2147483648){e=~~h}else{e=-2147483648}if(d>>>0<=e>>>0){d=la(4836)|0;g=$(2107)|0;f=_(d|0,g|0)|0;X(g|0);X(d|0);d=sa(1109)|0;g=D[b>>2];b=D[b+4>>2];aa(f|0);D[c+24>>2]=b;D[c+16>>2]=g;D[c+8>>2]=f;b=ka(d|0,3,414944,c+8|0)|0;X(d|0);a=D[a>>2];a:{if(B[451796]&1){break a}if(!ob(451796)){break a}j=451792,k=ja(2,414956)|0,D[j>>2]=k;nb(451796)}d=D[112948];aa(b|0);D[c+8>>2]=b;ma(d|0,a|0,1336,c+8|0);X(b|0);X(f|0)}a=e>>>0>=i>>>0}else{a=0}Fa=c+32|0;return a}function Mc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=Fa-16|0;Fa=e;g=1;a:{b:{switch(b-a>>2){case 2:b=b-4|0;if(G[b>>2]>=G[a>>2]){break a}$a(a,b);break a;case 3:pb(a,a+4|0,b-4|0);break a;case 4:Yb(a,a+4|0,a+8|0,b-4|0);break a;case 5:Xb(a,a+4|0,a+8|0,a+12|0,b-4|0);break a;case 0:case 1:break a;default:break b}}c=a+8|0;pb(a,a+4|0,c);d=a+12|0;while(1){if((b|0)==(d|0)){break a}c:{if(G[d>>2]>2]){D[e+12>>2]=D[d>>2];h=d;while(1){d:{f=c;D[h>>2]=D[c>>2];if((a|0)==(c|0)){f=a;break d}h=f;c=f-4|0;if(G[e+12>>2]>2]){continue}}break}D[f>>2]=D[e+12>>2];i=i+1|0;if((i|0)==8){break c}}c=d;d=c+4|0;continue}break}g=(d+4|0)==(b|0)}Fa=e+16|0;return g}function Nc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=Fa-16|0;Fa=e;g=1;a:{b:{switch(b-a|0){case 2:b=b-1|0;if(E[b|0]>=E[a|0]){break a}ab(a,b);break a;case 3:qb(a,a+1|0,b-1|0);break a;case 4:$b(a,a+1|0,a+2|0,b-1|0);break a;case 5:_b(a,a+1|0,a+2|0,a+3|0,b-1|0);break a;case 0:case 1:break a;default:break b}}c=a+2|0;qb(a,a+1|0,c);d=a+3|0;while(1){if((b|0)==(d|0)){break a}c:{if(E[d|0]>2]<=c>>>0){break a}b:{if(G[a+44>>2]>=2){if(e>>>0<=5){break b}break a}if(e){break a}}f=D[a+40>>2];if((f>>>0>1?f:1)>>>0<=d>>>0){break a}f=D[a+28>>2];g=D[a+32>>2];D[b+4>>2]=d;D[b+8>>2]=e;D[b>>2]=c;g=g>>>c|0;g=g>>>0>1?g:1;D[b+16>>2]=g;f=f>>>c|0;f=f>>>0>1?f:1;D[b+12>>2]=f;g=g+3|0;h=g>>>2|0;D[b+32>>2]=h;f=f+3|0;i=f>>>2|0;D[b+28>>2]=i;D[b+24>>2]=g&-4;D[b+20>>2]=f&-4;D[b+36>>2]=J(h,i);f=E[a+1204|0];B[b+41|0]=0;B[b+40|0]=f;g=1;if(!D[a+148>>2]){break a}f=D[a+144>>2];h=D[a+44>>2];a=D[a+40>>2];B[b+41|0]=(E[f+J(J(h,J(a>>>0>1?a:1,c)+d|0)+e|0,20)|0]>>>1^-1)&1}return g}function ae(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if(Za(a,D[b+8>>2],f)){Ub(b,c,d,e);return}h=E[b+53|0];g=D[a+12>>2];B[b+53|0]=0;i=E[b+52|0];B[b+52|0]=0;j=a+16|0;Tb(j,b,c,d,e,f);k=E[b+53|0];h=h|k;l=E[b+52|0];i=i|l;a:{if((g|0)<2){break a}j=j+(g<<3)|0;g=a+24|0;while(1){if(E[b+54|0]){break a}b:{if(l){if(D[b+24>>2]==1){break a}if(E[a+8|0]&2){break b}break a}if(!k){break b}if(!(B[a+8|0]&1)){break a}}C[b+52>>1]=0;Tb(g,b,c,d,e,f);k=E[b+53|0];h=k|h;l=E[b+52|0];i=l|i;g=g+8|0;if(j>>>0>g>>>0){continue}break}}B[b+53|0]=(h&255)!=0;B[b+52|0]=(i&255)!=0}function xc(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0;f=f<<2|f>>>4;i=c<<2|c>>>4;c=f-i|0;e=e<<3|e>>>2;j=b<<3|b>>>2;b=e-j|0;g=g<<3|g>>>2;k=d<<3|d>>>2;d=g-k|0;l=(J(c,(i+(f<<1)>>>0)/3|0)+J(b,((e<<1)+j>>>0)/3|0)|0)+J(d,((g<<1)+k>>>0)/3|0)|0;m=(J(c,(f+(i<<1)>>>0)/3|0)+J(b,(e+(j<<1)>>>0)/3|0)|0)+J(d,(g+(k<<1)>>>0)/3|0)|0;n=l+m|0;g=((J(c,f)+J(b,e)|0)+J(d,g)|0)+l|0;i=((J(c,i)+J(b,j)|0)+J(d,k)|0)+m|0;f=0;while(1){e=(f<<2)+a|0;e=(J(c,E[e+1|0])+J(b,E[e|0])|0)+J(d,E[e+2|0])<<1;B[f+h|0]=E[((((e|0)<=(i|0))+((e|0)<(n|0))|0)+((e|0)<(g|0))|0)+5198|0];f=f+1|0;if((f|0)!=16){continue}break}}function _e(a,b){a=a|0;b=b|0;D[a>>2]=0;D[a+4>>2]=0;D[a+56>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;if(D[b>>2]==-559038750){D[a>>2]=D[b+24>>2];D[a+4>>2]=D[b+28>>2];D[a+8>>2]=D[b+32>>2];D[a+12>>2]=D[b+36>>2];D[a+16>>2]=D[b+40>>2];D[a+20>>2]=D[b+44>>2];D[a+24>>2]=D[b+48>>2];D[a+28>>2]=D[b+52>>2];D[a+32>>2]=D[b+56>>2];D[a+36>>2]=D[b+60>>2];D[a+40>>2]=D[b- -64>>2];D[a+44>>2]=D[b+68>>2];D[a+48>>2]=D[b+72>>2];D[a+52>>2]=D[b+76>>2];D[a+56>>2]=D[b+84>>2]}}function Ab(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=10;d=D[a+20>>2];a:{if(d>>>0>=16){e=D[a+16>>2];break a}c=D[a+4>>2];h=D[a+12>>2];if(c>>>0>>0){f=c+1|0;D[a+4>>2]=f;e=E[c|0]<>2]=f;e=D[a+16>>2]|e;D[a+16>>2]=e;if(d>>>0>=8){d=f;break a}if(c>>>0>=h>>>0){c=0}else{D[a+4>>2]=c+1;c=E[c|0]<>2]=d;e=c|D[a+16>>2];D[a+16>>2]=e}c=D[D[b+12>>2]+((e&1023)<<2)>>2];b:{if((c|0)<=-1){b=D[b+24>>2];while(1){f=e>>>g|0;g=g+1|0;c=C[b+((f&1)+(c^-1)<<1)>>1];if((c|0)<0){continue}break}break b}g=c>>>16|0;c=c&65535}D[a+20>>2]=d-g;D[a+16>>2]=e>>>g;return c}function Qb(a,b,c){var d=0,e=0,f=0,g=0;f=b;e=D[c+16>>2];a:{if(!e){e=0;d=E[c+74|0];B[c+74|0]=d-1|d;d=D[c>>2];b:{if(d&8){D[c>>2]=d|32;d=-1;break b}D[c+4>>2]=0;D[c+8>>2]=0;d=D[c+44>>2];D[c+28>>2]=d;D[c+20>>2]=d;D[c+16>>2]=d+D[c+48>>2];d=0}if(d){break a}e=D[c+16>>2]}g=D[c+20>>2];if(e-g>>>0>>0){return Ha[D[c+36>>2]](c,a,b)|0}c:{if(B[c+75|0]>-1){e=b;while(1){d=e;e=b;if(!d){break c}e=d-1|0;if(E[e+a|0]!=10){continue}break}e=Ha[D[c+36>>2]](c,a,d)|0;if(d>>>0>e>>>0){break a}a=a+d|0;g=D[c+20>>2];e=b-d|0;break c}e=b}f=e;Xa(g,a,f);D[c+20>>2]=f+D[c+20>>2];e=b}return e}function Cc(a,b){var c=0,d=0,e=0;a:{if((E[a|0]|E[a+1|0]<<8)!=17011|b>>>0<78|((E[a+2|0]|E[a+3|0]<<8)!=19|(E[a+4|0]|E[a+5|0]<<8)!=77)){break a}if((E[a+8|0]|E[a+9|0]<<8|(E[a+10|0]<<16|E[a+11|0]<<24))+77>>>0>b>>>0){break a}c=E[a+17|0]|(E[a+18|0]<<8|E[a+19|0]<<16);if(!c){break a}e=E[a+14|0];d=e|(E[a+15|0]<<8|E[a+16|0]<<16);if(!d|c>>>0>d>>>0){break a}c=E[a+21|0];b:{if(!E[a+20|0]){if((c&4)>>>2&e){break a}if(c&1){break b}break a}if(c&1){break a}}a=E[a+65|0]|E[a+66|0]<<8|(E[a+67|0]<<16|E[a+68|0]<<24);if(a>>>0>=b>>>0){break a}return b-a>>>0>=J(d,23)>>>0}return 0}function ce(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Za(a,D[b+8>>2],e)){if(!(D[b+28>>2]==1|D[b+4>>2]!=(c|0))){D[b+28>>2]=d}return}a:{if(Za(a,D[b>>2],e)){if(!(D[b+20>>2]!=(c|0)?D[b+16>>2]!=(c|0):0)){if((d|0)!=1){break a}D[b+32>>2]=1;return}D[b+32>>2]=d;b:{if(D[b+44>>2]==4){break b}C[b+52>>1]=0;a=D[a+8>>2];Ha[D[D[a>>2]+20>>2]](a,b,c,c,1,e);if(E[b+53|0]){D[b+44>>2]=3;if(!E[b+52|0]){break b}break a}D[b+44>>2]=4}D[b+20>>2]=c;D[b+40>>2]=D[b+40>>2]+1;if(D[b+36>>2]!=1|D[b+24>>2]!=2){break a}B[b+54|0]=1;return}a=D[a+8>>2];Ha[D[D[a>>2]+24>>2]](a,b,c,d,e)}}function gb(a,b){var c=0,d=0,e=0,f=0;c=Fa+-64|0;Fa=c;d=D[a>>2];e=D[d-4>>2];f=D[d-8>>2];D[c+20>>2]=0;D[c+16>>2]=421180;D[c+12>>2]=a;D[c+8>>2]=b;d=0;Va(c+24|0,0,39);a=a+f|0;a:{if(Za(e,b,0)){D[c+56>>2]=1;Ha[D[D[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=D[c+32>>2]==1?a:0;break a}Ha[D[D[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(D[c+44>>2]){case 0:d=D[c+48>>2]==1?D[c+36>>2]==1?D[c+40>>2]==1?D[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(D[c+32>>2]!=1){if(D[c+48>>2]|D[c+36>>2]!=1|D[c+40>>2]!=1){break a}}d=D[c+24>>2]}Fa=c- -64|0;return d}function Cb(a,b,c,d,e,f,g,h){var i=0,j=0;a:{if(!ib(b,c)){break a}a=E[b+14|0]|(E[b+15|0]<<8|E[b+16|0]<<16);if(!a){break a}c=(E[b+65|0]|E[b+66|0]<<8|(E[b+67|0]<<16|E[b+68|0]<<24))+b|0;b:{while(1){i=c+J(j,23)|0;if(E[i+3|0]==(e|0)?(E[i+1|0]<<8|E[i+2|0]<<16|E[i|0])==(d|0):0){break b}j=j+1|0;if((a|0)!=(j|0)){continue}break}return 0}i=0;if((E[b+17|0]|(E[b+18|0]<<8|E[b+19|0]<<16))>>>0<=d>>>0){break a}a=c+J(j,23)|0;D[f>>2]=E[a+5|0]|E[a+6|0]<<8;D[g>>2]=E[a+7|0]|E[a+8|0]<<8;D[h>>2]=J(E[a+11|0]|E[a+12|0]<<8,E[a+9|0]|E[a+10|0]<<8);i=1}return i}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;g=Fa-288|0;Fa=g;a:{if(G[a+8>>2]>>0){b:{c:{if(!c){break c}c=b;e=pf(b);if(!Ga&(e|0)==1){break c}e=0-(c>>>0<1)|0;i=e|e>>>16;f=i;f=f|f>>>8;h=f|f>>>4;j=b;b=c-1|e;b=(e&65535)<<16|b>>>16|b;b=(i&255)<<24|b>>>8|b;b=(f&15)<<28|b>>>4|b;b=(h&3)<<30|b>>>2|b;c=(((h|h>>>2)&1)<<31|b>>>1|b)+1|0;if(j>>>0<=c>>>0){break b}Hc(5180,17,1,D[105120]);ia();T()}c=b}b=J(c,d);d=yb(D[a>>2],b);if(!d){D[g>>2]=b;jb(g+32|0,1820,g);break a}D[a>>2]=d;D[a+8>>2]=c}Fa=g+288|0;return}Db(g+32|0,D[105120]);ia();T()}function Ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=Fa+-64|0;Fa=c;d=D[a>>2];e=c;a=D[a+4>>2];b=(a>>1)+b|0;f=b;if(a&1){d=D[d+D[b>>2]>>2]}Ha[d|0](e,f);a=Sa(60);D[a+56>>2]=D[c+56>>2];b=D[c+52>>2];D[a+48>>2]=D[c+48>>2];D[a+52>>2]=b;b=D[c+44>>2];D[a+40>>2]=D[c+40>>2];D[a+44>>2]=b;b=D[c+36>>2];D[a+32>>2]=D[c+32>>2];D[a+36>>2]=b;b=D[c+28>>2];D[a+24>>2]=D[c+24>>2];D[a+28>>2]=b;b=D[c+20>>2];D[a+16>>2]=D[c+16>>2];D[a+20>>2]=b;b=D[c+12>>2];D[a+8>>2]=D[c+8>>2];D[a+12>>2]=b;b=D[c+4>>2];D[a>>2]=D[c>>2];D[a+4>>2]=b;Fa=c- -64|0;return a|0}function Zc(a,b,c){var d=0;if(!c){D[a>>2]=0;D[a+4>>2]=0;D[a+16>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;return-72}D[a+12>>2]=b;D[a+16>>2]=b+4;if(c>>>0>=4){d=b+c|0;b=d-4|0;D[a+8>>2]=b;D[a>>2]=E[b|0]|E[b+1|0]<<8|(E[b+2|0]<<16|E[b+3|0]<<24);b=E[d-1|0];if(!b){D[a+4>>2]=0;return-1}D[a+4>>2]=M(b)-23;return c}D[a+8>>2]=b;d=E[b|0];D[a>>2]=d;a:{switch(c-2|0){case 1:d=E[b+2|0]<<16|d;D[a>>2]=d;case 0:D[a>>2]=(E[b+1|0]<<8)+d;break;default:break a}}b=E[(b+c|0)-1|0];if(!b){D[a+4>>2]=0;return-20}D[a+4>>2]=(M(b)-(c<<3)|0)+9;return c}function wb(a,b){var c=0,d=0,e=0,f=0,g=0;d=Fa-288|0;Fa=d;D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;a:{b:{c:{e=a;c=D[b+4>>2];if(c){f=bb(c);if(!f){break c}D[a+8>>2]=c;D[a>>2]=f;c=D[b+4>>2]}else{c=0}D[e+4>>2]=c;Xa(f,D[b>>2],c);D[a+20>>2]=0;D[a+12>>2]=0;D[a+16>>2]=0;e=a;c=D[b+16>>2];if(c){g=bb(c);if(!g){break b}D[a+20>>2]=c;D[a+12>>2]=g;c=D[b+16>>2]}else{c=0}D[e+16>>2]=c;Xa(g,D[b+12>>2],c);Fa=d+288|0;return a}D[d+16>>2]=c;jb(d+32|0,1820,d+16|0);break a}D[d>>2]=c;jb(d+32|0,1820,d)}Db(d+32|0,D[105120]);ia();T()}function yd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=Fa-16|0;Fa=e;a:{if(D[a>>2]!=-559038751|d>>>0>21){break a}if(!Cb(a+4|0,D[a+596>>2],D[a+600>>2],b,c,e+12|0,e+8|0,e+4|0)){break a}if(d-13>>>0<4){b=D[e+8>>2];a=d-13|0;b:{if(a>>>0<=3){a=D[(a<<2)+414852>>2];break b}a=0}f=J(b,J(a,D[e+12>>2]));break a}if(d>>>0<=21){a=D[(d<<2)+414764>>2]}else{a=0}if((d&-2)==8){a=D[e+8>>2]+3&-4;b=a>>>0>8?a:8;a=D[e+12>>2]+3&-4;f=J(b,a>>>0>8?a:8)>>>1&536870904;break a}f=J(a,D[e+4>>2])}Fa=e+16|0;return f|0}function Oc(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!D[D[105597]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){B[a+1|0]=b&63|128;B[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344?b>>>0>=55296:0)){B[a+2|0]=b&63|128;B[a|0]=b>>>12|224;B[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){B[a+3|0]=b&63|128;B[a|0]=b>>>18|240;B[a+2|0]=b>>>6&63|128;B[a+1|0]=b>>>12&63|128;a=4;break a}}D[112953]=25;a=-1}else{a=1}break a}B[a|0]=b;a=1}return a}function xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=Fa-48|0;Fa=f;g=D[a>>2];h=f;a=D[a+4>>2];b=(a>>1)+b|0;i=b;if(a&1){g=D[g+D[b>>2]>>2]}Ha[g|0](h,i,c,d,e);a=Sa(44);D[a+40>>2]=D[f+40>>2];b=D[f+36>>2];D[a+32>>2]=D[f+32>>2];D[a+36>>2]=b;b=D[f+28>>2];D[a+24>>2]=D[f+24>>2];D[a+28>>2]=b;b=D[f+20>>2];D[a+16>>2]=D[f+16>>2];D[a+20>>2]=b;b=D[f+12>>2];D[a+8>>2]=D[f+8>>2];D[a+12>>2]=b;b=D[f+4>>2];D[a>>2]=D[f>>2];D[a+4>>2]=b;Fa=f+48|0;return a|0}function we(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=Fa-48|0;Fa=f;a:{if(D[a>>2]!=-559038750|e>>>0>21){break a}if(!Jb(a+4|0,f,b,c,d)){break a}d=D[f+36>>2];b=D[f+16>>2];c=D[f+12>>2];if(e-13>>>0<4){a=e-13|0;b:{if(a>>>0<=3){a=D[(a<<2)+414852>>2];break b}a=0}g=J(a,J(b,c));break a}if(e>>>0<=21){a=D[(e<<2)+414764>>2]}else{a=0}if((e&-2)==8){a=b+3&-4;b=a>>>0>8?a:8;a=c+3&-4;g=J(b,a>>>0>8?a:8)>>>1&536870904;break a}g=J(a,d)}Fa=f+48|0;return g|0}function sd(a,b){a=a|0;b=b|0;var c=0;c=Fa+-64|0;Fa=c;Ha[D[a>>2]](c,b);b=Sa(60);D[b+56>>2]=D[c+56>>2];a=D[c+52>>2];D[b+48>>2]=D[c+48>>2];D[b+52>>2]=a;a=D[c+44>>2];D[b+40>>2]=D[c+40>>2];D[b+44>>2]=a;a=D[c+36>>2];D[b+32>>2]=D[c+32>>2];D[b+36>>2]=a;a=D[c+28>>2];D[b+24>>2]=D[c+24>>2];D[b+28>>2]=a;a=D[c+20>>2];D[b+16>>2]=D[c+16>>2];D[b+20>>2]=a;a=D[c+12>>2];D[b+8>>2]=D[c+8>>2];D[b+12>>2]=a;a=D[c+4>>2];D[b>>2]=D[c>>2];D[b+4>>2]=a;Fa=c- -64|0;return b|0}function Se(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=Fa-32|0;Fa=e;f=D[a>>2];a=D[a+4>>2];g=b+(a>>1)|0;f=a&1?D[f+D[g>>2]>>2]:f;a=D[c>>2];if(a>>>0<4294967280){a:{b:{if(a>>>0>=11){h=a+16&-16;b=Sa(h);D[e+24>>2]=h|-2147483648;D[e+16>>2]=b;D[e+20>>2]=a;break b}B[e+27|0]=a;b=e+16|0;if(!a){break a}}Xa(b,c+4|0,a)}B[a+b|0]=0;D[e+8>>2]=d;a=Ha[f|0](g,e+16|0,e+8|0)|0;X(D[e+8>>2]);if(B[e+27|0]<=-1){Ta(D[e+16>>2])}Fa=e+32|0;return a|0}bc();T()}function ib(a,b){var c=0;a:{if((E[a|0]|E[a+1|0]<<8)!=17011|b>>>0<78|((E[a+2|0]|E[a+3|0]<<8)!=19|(E[a+4|0]|E[a+5|0]<<8)!=77)){break a}if((E[a+8|0]|E[a+9|0]<<8|(E[a+10|0]<<16|E[a+11|0]<<24))+77>>>0>b>>>0){break a}c=E[a+14|0]|(E[a+15|0]<<8|E[a+16|0]<<16);if(!c|!(E[a+17|0]|(E[a+18|0]<<8|E[a+19|0]<<16))){break a}a=E[a+65|0]|E[a+66|0]<<8|(E[a+67|0]<<16|E[a+68|0]<<24);if(a>>>0>=b>>>0){break a}return b-a>>>0>=J(c,23)>>>0}return 0}function rf(a,b,c){var d=0,e=0,f=0,g=0;g=c&63;f=g;d=f&31;if(f>>>0>=32){d=-1>>>d|0}else{e=-1>>>d|0;d=(1<>>d}f=d&a;d=b&e;e=g&31;if(g>>>0>=32){d=f<>>32-e|d<>>0>=32){d=-1<>>32-c|-1<>>0>=32){c=0;a=d>>>b|0}else{c=d>>>b|0;a=((1<>>b}a=a|g;Ga=c|f;return a} +function jc(a){var b=0;ic(a+180|0);b=D[a+164>>2];if(b){Ta(b)}b=D[a+152>>2];if(b){Ta(b)}b=D[a+140>>2];if(b){Ta(b)}b=D[a+128>>2];if(b){Ta(b)}b=D[a+116>>2];if(b){Ta(b)}b=D[a+104>>2];if(b){Ta(b)}b=D[a+92>>2];if(b){Ta(b)}b=D[a+80>>2];if(b){Ta(b)}b=D[a+68>>2];if(b){Ta(b)}b=D[a+56>>2];if(b){Ta(b)}b=D[a+44>>2];if(b){Ta(b)}b=D[a+32>>2];if(b){Ta(b)}b=D[a+16>>2];if(b){Ta(b)}a=D[a+4>>2];if(a){Ta(a)}}function ed(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Fa-16|0;Fa=d;e=D[a>>2];a=D[a+4>>2];f=b+(a>>1)|0;e=a&1?D[e+D[f>>2]>>2]:e;a=D[c>>2];if(a>>>0<4294967280){a:{b:{if(a>>>0>=11){g=a+16&-16;b=Sa(g);D[d+8>>2]=g|-2147483648;D[d>>2]=b;D[d+4>>2]=a;break b}B[d+11|0]=a;b=d;if(!a){break a}}Xa(b,c+4|0,a)}B[a+b|0]=0;a=Ha[e|0](f,d)|0;if(B[d+11|0]<=-1){Ta(D[d>>2])}Fa=d+16|0;return a|0}bc();T()}function ff(a){a=a|0;var b=0,c=0,d=0,e=0;if(a){c=D[a+1212>>2];if(c){Ta(c)}c=a+4|0;b=D[c+1188>>2];if(b){Ta(b)}ic(c+780|0);jc(c+188|0);b=D[c+144>>2];if(b){Ta(b)}b=D[c+112>>2];if(b){e=D[c+116>>2];if(e){e=J(e,24)+b|0;while(1){d=D[b+12>>2];if(d){Ta(d)}d=D[b>>2];if(d){Ta(d)}b=b+24|0;if((e|0)!=(b|0)){continue}break}b=D[c+112>>2]}Ta(b)}b=D[c+100>>2];if(b){Ta(b)}c=D[c+88>>2];if(c){Ta(c)}Ta(a)}}function kf(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0;u=Fa-16|0;Fa=u;v=D[a+4>>2];b=(v>>1)+b|0;a=D[a>>2];a=v&1?D[D[b>>2]+a>>2]:a;D[u+8>>2]=d;D[u>>2]=f;a=Ha[a|0](b,c,u+8|0,e,u,g,h,i,j,k,l,m,n,o,p,q,r,s,t)|0;X(D[u>>2]);X(D[u+8>>2]);Fa=u+16|0;return a|0}function rd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=Fa-48|0;Fa=d;D[a>>2]=0;D[a+4>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;a:{if(D[b>>2]!=-559038751){break a}if(!Bc(D[b+596>>2],D[b+600>>2],d,c)){break a}D[a>>2]=D[d+8>>2];D[a+4>>2]=D[d+12>>2];D[a+8>>2]=D[d+24>>2];D[a+12>>2]=D[d+28>>2];D[a+16>>2]=D[d+4>>2];B[a+20|0]=E[d+40|0];B[a+21|0]=E[d+41|0]}Fa=d+48|0}function be(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Za(a,D[b+8>>2],e)){if(!(D[b+28>>2]==1|D[b+4>>2]!=(c|0))){D[b+28>>2]=d}return}a:{if(!Za(a,D[b>>2],e)){break a}if(!(D[b+20>>2]!=(c|0)?D[b+16>>2]!=(c|0):0)){if((d|0)!=1){break a}D[b+32>>2]=1;return}D[b+20>>2]=c;D[b+32>>2]=d;D[b+40>>2]=D[b+40>>2]+1;if(!(D[b+36>>2]!=1|D[b+24>>2]!=2)){B[b+54|0]=1}D[b+44>>2]=4}}function Ub(a,b,c,d){B[a+53|0]=1;a:{if(D[a+4>>2]!=(c|0)){break a}B[a+52|0]=1;c=D[a+16>>2];b:{if(!c){D[a+36>>2]=1;D[a+24>>2]=d;D[a+16>>2]=b;if(D[a+48>>2]!=1){break a}if((d|0)==1){break b}break a}if((b|0)==(c|0)){c=D[a+24>>2];if((c|0)==2){D[a+24>>2]=d;c=d}if(D[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}D[a+36>>2]=D[a+36>>2]+1}B[a+54|0]=1}}function ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Fa+-64|0;Fa=d;e=1;a:{if(Za(a,b,0)){break a}e=0;if(!b){break a}b=gb(b,421228);e=0;if(!b){break a}Va(d+8|4,0,52);D[d+56>>2]=1;D[d+20>>2]=-1;D[d+16>>2]=a;D[d+8>>2]=b;Ha[D[D[b>>2]+28>>2]](b,d+8|0,D[c>>2],1);a=D[d+32>>2];if((a|0)==1){D[c>>2]=D[d+24>>2]}e=(a|0)==1}a=e;Fa=d- -64|0;return a|0}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=Fa-32|0;Fa=f;D[f+24>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;D[f+8>>2]=0;D[f>>2]=0;D[f+4>>2]=0;vb(c,f+16|0);vb(e,f);c=D[f+20>>2];a:{if(!c){break a}e=D[f+4>>2];if(!e){break a}g=Wb(a,b,D[f+16>>2],c,d,D[f>>2],e)}a=D[f>>2];if(a){Ta(a)}a=D[f+16>>2];if(a){Ta(a)}Fa=f+32|0;return g|0}function We(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(D[b>>2]!=-559038750){B[a|0]=0;B[a+11|0]=0;return}d=D[D[b+116>>2]+J(c,24)>>2];c=Pb(d);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=c+16&-16;b=Sa(e);D[a+8>>2]=e|-2147483648;D[a>>2]=b;D[a+4>>2]=c;a=b;break b}B[a+11|0]=c;if(!c){break a}}Xa(a,d,c)}B[a+c|0]=0;return}bc();T()}function jf(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0;t=Fa-16|0;Fa=t;D[t+8>>2]=c;D[t>>2]=e;a=Ha[a|0](b,t+8|0,d,t,f,g,h,i,j,k,l,m,n,o,p,q,r,s)|0;X(D[t>>2]);X(D[t+8>>2]);Fa=t+16|0;return a|0}function cd(a,b){var c=0,d=0,e=0;d=Fa-16|0;Fa=d;b=D[D[b>>2]>>2];c=$(2459)|0;b=_(b|0,c|0)|0;X(c|0);e=+ga(b|0,421664,d+12|0);fa(D[d+12>>2]);X(b|0);D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;if(e<4294967296&e>=0){b=~~e>>>0}else{b=0}if(b){Ya(a,b,(b|0)==1,1);c=D[a+4>>2];Va(c+D[a>>2]|0,0,b-c|0);D[a+4>>2]=b}Fa=d+16|0}function lb(a){var b=K(0),c=K(0),d=0,e=0;d=(v(a),x(2));e=d>>>23&255;if(e>>>0<=149){if(e>>>0<=125){return K(a*K(0))}a=(d|0)>-1?a:K(-a);b=K(K(K(a+K(8388608))+K(-8388608))-a);a:{if(b>K(.5)){c=K(K(a+b)+K(-1));break a}a=K(a+b);c=a;if(!(b<=K(-.5))){break a}c=K(a+K(1))}a=c;a=(d|0)>-1?a:K(-a)}return a}function pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=Fa+-64|0;Fa=e;D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;a:{if(D[b>>2]!=-559038751){break a}if(!Ac(D[b+596>>2],D[b+600>>2],e,c,d)){break a}D[a>>2]=D[e+40>>2];D[a+4>>2]=D[e+44>>2];D[a+8>>2]=D[e+48>>2];D[a+12>>2]=D[e+52>>2]}Fa=e- -64|0}function ob(a){var b=0,c=0,d=0,e=0;b=Fa-16|0;Fa=b;D[b+12>>2]=0;D[b+4>>2]=a;D[b>>2]=a;D[b+8>>2]=a+1;a=b;d=Fa-16|0;Fa=d;e=d+8|0;D[e>>2]=D[b+4>>2];if(!E[D[e>>2]]){a:{b:{a=D[a+8>>2];c=E[a|0];if((c|0)!=1){if(c&2){break b}B[a|0]=2;a=1}else{a=0}break a}T()}c=a}Fa=d+16|0;Fa=b+16|0;return c}function Pb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!E[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=D[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}if(!(d&255)){return c-a|0}while(1){d=E[c+1|0];b=c+1|0;c=b;if(d){continue}break}}return b-a|0}function Ve(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Fa-16|0;Fa=d;e=D[a>>2];a=D[a+4>>2];b=(a>>1)+b|0;Ha[(a&1?D[e+D[b>>2]>>2]:e)|0](d,b,c);b=E[d+11|0];e=b<<24>>24;a=(e|0)<0;b=a?D[d+4>>2]:b;c=bb(b+4|0);D[c>>2]=b;f=D[d>>2];Xa(c+4|0,a?f:d,b);if((e|0)<=-1){Ta(f)}Fa=d+16|0;return c|0}function sc(a,b){var c=0;B[a+12|0]=b&3;B[a+3|0]=b>>>8&1;c=b&255;B[a+2|0]=c>>>7;B[a+11|0]=b>>>14&1;B[a+10|0]=b>>>13&1;B[a+9|0]=b>>>12&1;B[a+8|0]=b>>>11&1;B[a+7|0]=b>>>10&1;B[a+1|0]=b>>>9&1;B[a+6|0]=c>>>2&1;B[a+5|0]=c>>>3&1;B[a+4|0]=c>>>6&1;B[a|0]=c>>>4&3;return a}function se(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;k=Fa-16|0;Fa=k;l=D[a+4>>2];b=(l>>1)+b|0;a=D[a>>2];a=l&1?D[D[b>>2]+a>>2]:a;D[k+8>>2]=c;a=Ha[a|0](b,k+8|0,d,e,f,g,h,i,j)|0;X(D[k+8>>2]);Fa=k+16|0;return a|0}function Ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if(D[a>>2]==-559038750){e=b;b=D[a+44>>2];b=J(D[a+48>>2],J(e,b>>>0>1?b:1)+c|0)+d|0;if(b>>>0>2]){a=D[a+148>>2]+J(b,20)|0;a=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24)}else{a=0}}else{a=0}return a|0}function fe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(Za(a,D[b+8>>2],0)){Vb(b,c,d);return}e=D[a+12>>2];f=a+16|0;Jc(f,b,c,d);a:{if((e|0)<2){break a}e=(e<<3)+f|0;a=a+24|0;while(1){Jc(a,b,c,d);if(E[b+54|0]){break a}a=a+8|0;if(e>>>0>a>>>0){continue}break}}}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=Fa-32|0;Fa=d;Ha[D[a>>2]](d+8|0,b,c);a=Sa(24);c=D[d+28>>2];D[a+16>>2]=D[d+24>>2];D[a+20>>2]=c;b=D[d+20>>2];D[a+8>>2]=D[d+16>>2];D[a+12>>2]=b;b=D[d+12>>2];D[a>>2]=D[d+8>>2];D[a+4>>2]=b;Fa=d+32|0;return a|0}function ye(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=a;D[f>>2]=0;D[f+4>>2]=0;D[f+40>>2]=0;D[f+32>>2]=0;D[f+36>>2]=0;D[f+24>>2]=0;D[f+28>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;D[f+8>>2]=0;D[f+12>>2]=0;if(D[b>>2]==-559038750){Jb(b+4|0,a,c,d,e)}}function jd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=Fa-16|0;Fa=g;h=D[a+4>>2];b=(h>>1)+b|0;a=D[a>>2];a=h&1?D[D[b>>2]+a>>2]:a;D[g+8>>2]=d;D[g>>2]=f;a=Ha[a|0](b,c,g+8|0,e,g)|0;X(D[g>>2]);X(D[g+8>>2]);Fa=g+16|0;return a|0}function pb(a,b,c){var d=0,e=0;e=G[c>>2]>2];a:{b:{if(G[b>>2]>=G[a>>2]){d=0;if(!e){break a}$a(b,c);d=1;if(G[b>>2]>=G[a>>2]){break a}$a(a,b);break b}if(e){$a(a,c);return 1}$a(a,b);d=1;if(G[c>>2]>=G[b>>2]){break a}$a(b,c)}d=2}return d}function tc(){var a=0;a=Sa(60);D[a>>2]=0;D[a+4>>2]=0;D[a+56>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;return a|0}function qb(a,b,c){var d=0,e=0;e=E[c|0]=E[a|0]){d=0;if(!e){break a}ab(b,c);d=1;if(E[b|0]>=E[a|0]){break a}ab(a,b);break b}if(e){ab(a,c);return 1}ab(a,b);d=1;if(E[c|0]>=E[b|0]){break a}ab(b,c)}d=2}return d}function Za(a,b,c){if(!c){return D[a+4>>2]==D[b+4>>2]}if((a|0)==(b|0)){return 1}c=Fa-16|0;D[c+8>>2]=a;D[c+12>>2]=D[D[c+8>>2]+4>>2];c=D[c+12>>2];a=Fa-16|0;D[a+8>>2]=b;D[a+12>>2]=D[D[a+8>>2]+4>>2];return!cc(c,D[a+12>>2])}function nf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=J(e,f);g=c&65535;h=a&65535;i=J(g,h);f=(i>>>16|0)+J(f,g)|0;e=(f&65535)+J(e,h)|0;Ga=(J(b,c)+j|0)+J(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Xb(a,b,c,d,e){var f=0;f=Yb(a,b,c,d);if(G[e>>2]>2]){$a(d,e);if(G[d>>2]>=G[c>>2]){return f+1|0}$a(c,d);if(G[c>>2]>=G[b>>2]){return f+2|0}$a(b,c);if(G[b>>2]>=G[a>>2]){return f+3|0}$a(a,b);f=f+4|0}return f}function Vb(a,b,c){var d=0;d=D[a+16>>2];if(!d){D[a+36>>2]=1;D[a+24>>2]=c;D[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(D[a+24>>2]!=2){break a}D[a+24>>2]=c;return}B[a+54|0]=1;D[a+24>>2]=2;D[a+36>>2]=D[a+36>>2]+1}}function _b(a,b,c,d,e){var f=0;f=$b(a,b,c,d);if(E[e|0]=E[c|0]){return f+1|0}ab(c,d);if(E[c|0]>=E[b|0]){return f+2|0}ab(b,c);if(E[b|0]>=E[a|0]){return f+3|0}ab(a,b);f=f+4|0}return f}function re(a){a=a|0;var b=0,c=0,d=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;a=Fa-16|0;D[a+8>>2]=D[b+12>>2];D[a+12>>2]=D[D[a+8>>2]+4>>2];a=D[a+12>>2];c=Pb(a)+1|0;d=bb(c);if(d){a=Xa(d,a,c)}else{a=0}Fa=b+16|0;return a|0}function od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=Fa-16|0;Fa=e;Ha[D[a>>2]](e,b,c,d);a=Sa(16);c=D[e+12>>2];D[a+8>>2]=D[e+8>>2];D[a+12>>2]=c;b=D[e+4>>2];D[a>>2]=D[e>>2];D[a+4>>2]=b;Fa=e+16|0;return a|0}function kb(a,b,c,d,e){var f=0;f=Fa-256|0;Fa=f;if(!(e&73728|(c|0)<=(d|0))){c=c-d|0;d=c>>>0<256;Va(f,b&255,d?c:256);if(!d){while(1){rb(a,f,256);c=c-256|0;if(c>>>0>255){continue}break}}rb(a,f,c)}Fa=f+256|0}function Kb(a,b){var c=0,d=0;d=D[a+116>>2];if(d){b=B[b+11|0]<0?D[b>>2]:b;a=D[a+112>>2];while(1){if(!cc(D[a+J(c,24)>>2],b)){return(a+J(c,24)|0)+12|0}c=c+1|0;if((d|0)!=(c|0)){continue}break}}return 0}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=Fa-16|0;Fa=e;a=wa(D[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){D[112953]=a;a=-1}else{a=0}Fa=e+16|0;Ga=a?-1:D[e+12>>2];return(a?-1:D[e+8>>2])|0}function ld(){var a=0,b=0;a=Sa(996);b=D[112944];D[a>>2]=0;D[a+4>>2]=0;D[a+28>>2]=b;D[a+24>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;Va(a+32|0,0,556);Va(a+588|0,0,408);return a|0}function mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Fa-16|0;Fa=d;e=D[a+4>>2];b=(e>>1)+b|0;a=D[a>>2];a=e&1?D[D[b>>2]+a>>2]:a;D[d+8>>2]=c;a=Ha[a|0](b,d+8|0)|0;X(D[d+8>>2]);Fa=d+16|0;return a|0}function ud(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=Fa-16|0;Fa=i;a=D[a>>2];D[i+8>>2]=c;a=Ha[a|0](b,i+8|0,d,e,f,g,h)|0;X(D[i+8>>2]);Fa=i+16|0;return a|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;c=J(c,24);if(c){c=b+c|0;while(1){a=wb(a,b);d=D[b+12>>2];if(d){Ta(d)}d=D[b>>2];if(d){Ta(d)}a=a+24|0;b=b+24|0;if((c|0)!=(b|0)){continue}break}}}function cc(a,b){var c=0,d=0;c=E[a|0];d=E[b|0];a:{if(!c|(c|0)!=(d|0)){break a}while(1){d=E[b+1|0];c=E[a+1|0];if(!c){break a}b=b+1|0;a=a+1|0;if((c|0)==(d|0)){continue}break}}return c-d|0}function Bd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Fa-16|0;Fa=d;if(D[a>>2]==-559038751){a=Cb(a+4|0,D[a+596>>2],D[a+600>>2],b,c,d+12|0,d+8|0,d+4|0);e=a?D[d+12>>2]:0}Fa=d+16|0;return e|0}function zd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Fa-16|0;Fa=d;if(D[a>>2]==-559038751){a=Cb(a+4|0,D[a+596>>2],D[a+600>>2],b,c,d+12|0,d+8|0,d+4|0);e=a?D[d+8>>2]:0}Fa=d+16|0;return e|0}function Pc(a){var b=0,c=0,d=0;a:{if(B[D[a>>2]]-48>>>0>=10){break a}while(1){c=D[a>>2];d=B[c|0];D[a>>2]=c+1;b=(b+d|0)-48|0;if(B[c+1|0]-48>>>0>=10){break a}b=J(b,10);continue}}return b}function Jc(a,b,c,d){var e=0,f=0,g=0,h=0;f=D[a+4>>2];a=D[a>>2];g=a;h=b;e=0;a:{if(!c){break a}b=f>>8;e=b;if(!(f&1)){break a}e=D[b+D[c>>2]>>2]}Ha[D[D[a>>2]+28>>2]](g,h,e+c|0,f&2?d:2)}function nb(a){var b=0,c=0;b=Fa-16|0;Fa=b;D[b+12>>2]=0;D[b+4>>2]=a;D[b>>2]=a;D[b+8>>2]=a+1;a=Fa-16|0;Fa=a;c=a+8|0;D[c>>2]=D[b+4>>2];B[D[c>>2]]=1;B[D[b+8>>2]]=1;Fa=a+16|0;Fa=b+16|0}function hf(){var a=0;a=Sa(44);D[a>>2]=0;D[a+4>>2]=0;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;return a|0}function Ic(a,b){var c=0;a:{if(!b){break a}b=gb(b,421436);if(!b|D[b+8>>2]&(D[a+8>>2]^-1)){break a}if(!Za(D[a+12>>2],D[b+12>>2],0)){break a}c=Za(D[a+16>>2],D[b+16>>2],0)}return c}function id(a,b){a=a|0;b=b|0;var c=0,d=0;c=Fa-16|0;Fa=c;D[c+8>>2]=0;D[c>>2]=0;D[c+4>>2]=0;vb(b,c);b=D[c+4>>2];if(b){d=lc(a,D[c>>2],b)}a=D[c>>2];if(a){Ta(a)}Fa=c+16|0;return d|0}function Yb(a,b,c,d){var e=0;e=pb(a,b,c);if(G[d>>2]>2]){$a(c,d);if(G[c>>2]>=G[b>>2]){return e+1|0}$a(b,c);if(G[b>>2]>=G[a>>2]){return e+2|0}$a(a,b);e=e+3|0}return e}function ve(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=D[a>>2];a=D[a+4>>2];b=(a>>1)+b|0;h=b;if(a&1){g=D[g+D[b>>2]>>2]}return Ha[g|0](h,c,d,e,f)|0}function $b(a,b,c,d){var e=0;e=qb(a,b,c);if(E[d|0]=E[b|0]){return e+1|0}ab(b,c);if(E[b|0]>=E[a|0]){return e+2|0}ab(a,b);e=e+3|0}return e}function Ed(a){a=a|0;var b=0;if(D[a>>2]==-559038751){b=D[a+596>>2];if(ib(b,D[a+600>>2])){a=E[b+17|0]|(E[b+18|0]<<8|E[b+19|0]<<16)}else{a=0}}else{a=0}return a|0}function ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=D[a>>2];a=D[a+4>>2];b=(a>>1)+b|0;g=b;if(a&1){f=D[f+D[b>>2]>>2]}return Ha[f|0](g,c,d,e)|0}function Te(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(D[a>>2]!=-559038750){break a}a=Kb(a+4|0,b);if(!a){break a}if(!D[a+4>>2]){return 1}d=Bb(c,a)}return d|0}function Dd(a,b){a=a|0;b=b|0;var c=0,d=0;c=Fa-48|0;Fa=c;if(D[a>>2]==-559038751){a=Bc(D[a+596>>2],D[a+600>>2],c,b);d=a?D[c+4>>2]:0}Fa=c+48|0;return d|0}function Gd(a){a=a|0;var b=0,c=0;b=Fa+-64|0;Fa=b;if(D[a>>2]==-559038751){a=Ac(D[a+596>>2],D[a+600>>2],b,0,0);c=a?E[b+56|0]:0}Fa=b- -64|0;return c|0}function $d(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Za(a,D[b+8>>2],f)){Ub(b,c,d,e);return}a=D[a+8>>2];Ha[D[D[a>>2]+20>>2]](a,b,c,d,e,f)}function pf(a){var b=0,c=0,d=0,e=0,f=0;while(1){f=b;d=c;if(a|e){d=a;a=a-1&a;e=e-(d>>>0<1)&e;b=b+1|0;c=b>>>0<1?c+1|0:c;continue}break}Ga=d;return f}function Tb(a,b,c,d,e,f){var g=0,h=0,i=0;g=D[a+4>>2];h=g>>8;a=D[a>>2];i=a;if(g&1){h=D[D[d>>2]+h>>2]}Ha[D[D[a>>2]+20>>2]](i,b,c,d+h|0,g&2?e:2,f)}function le(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=D[a+20>>2];d=D[a+16>>2]-e|0;d=c>>>0>>0?c:d;Xa(e,b,d);D[a+20>>2]=d+D[a+20>>2];return c|0}function Id(a){a=a|0;var b=0;a:{if(D[a>>2]!=-559038751){break a}b=D[a+596>>2];if(!b){break a}Ta(b);D[a+604>>2]=0;D[a+596>>2]=0;D[a+600>>2]=0}}function Fd(a){a=a|0;var b=0;if(D[a>>2]==-559038751){b=D[a+596>>2];if(ib(b,D[a+600>>2])){a=E[b+20|0]}else{a=0}a=(a|0)==1}else{a=0}return a|0}function Gb(a,b,c,d,e){var f=0,g=0,h=0;f=D[a+4>>2];g=f>>8;a=D[a>>2];h=a;if(f&1){g=D[D[c>>2]+g>>2]}Ha[D[D[a>>2]+24>>2]](h,b,c+g|0,f&2?d:2,e)}function cf(a){a=a|0;var b=0;if(D[a>>2]==-559038750){b=D[a+1212>>2];if(b){Ta(b);D[a+1220>>2]=0;D[a+1212>>2]=0;D[a+1216>>2]=0}Lb(a+4|0)}}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Za(a,D[b+8>>2],0)){Vb(b,c,d);return}a=D[a+8>>2];Ha[D[D[a>>2]+28>>2]](a,b,c,d)}function fd(a,b){a=a|0;b=b|0;var c=0,d=0;c=D[a>>2];a=D[a+4>>2];b=(a>>1)+b|0;d=b;if(a&1){c=D[c+D[b>>2]>>2]}return Ha[c|0](d)|0}function Sa(a){var b=0;a=a?a:1;a:{while(1){b=bb(a);if(b){break a}b=D[112970];if(b){Ha[b|0]();continue}break}ia();T()}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(D[a>>2]!=-559038750){break a}a=Kb(a+4|0,b);if(!a){break a}c=D[a+4>>2]}return c|0}function qc(a,b){a=a|0;b=b|0;var c=0;c=Fa-16|0;Fa=c;D[c+8>>2]=b;a=Ha[a|0](c+8|0)|0;X(D[c+8>>2]);Fa=c+16|0;return a|0}function bf(a,b){a=a|0;b=b|0;var c=0,d=0;c=D[a>>2];a=D[a+4>>2];b=(a>>1)+b|0;d=b;if(a&1){c=D[c+D[b>>2]>>2]}Ha[c|0](d)}function Nd(){var a=0;a=Sa(24);D[a>>2]=0;D[a+4>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;return a|0}function $e(a,b){a=a|0;b=b|0;if(D[a>>2]==-559038750){if(!D[a+108>>2]){return 1}a=Bb(b,a+104|0)}else{a=0}return a|0}function $a(a,b){var c=0;c=Fa-16|0;Fa=c;D[c+12>>2]=D[a>>2];D[a>>2]=D[b>>2];D[b>>2]=D[c+12>>2];Fa=c+16|0}function ab(a,b){var c=0;c=Fa-16|0;Fa=c;B[c+15|0]=E[a|0];B[a|0]=E[b|0];B[b|0]=E[c+15|0];Fa=c+16|0}function qe(a){a=a|0;var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;a=D[b+12>>2];Xc();Fa=b+16|0;return a|0}function mb(a){var b=0;b=D[a+24>>2];if(b){Ta(b)}b=D[a+12>>2];if(b){Ta(b)}a=D[a>>2];if(a){Ta(a)}}function _d(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Za(a,D[b+8>>2],f)){Ub(b,c,d,e)}}function Ye(a,b){a=a|0;b=b|0;if(D[a>>2]==-559038750){a=(Kb(a+4|0,b)|0)!=0}else{a=0}return a|0}function Yd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=Ha[a|0](b,c,d,e)|0;ya(Ga|0);return a|0}function Md(){var a=0;a=Sa(16);D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;return a|0}function Hc(a,b,c,d){b=J(b,c);c=b;a:{if(D[d+76>>2]<=-1){a=Qb(a,b,d);break a}a=Qb(a,b,d)}}function of(a){var b=0,c=0;while(1){c=b;if(a){a=a-1&a;b=b+1|0;continue}break}return c}function Wc(a){var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;ba(420112,0,D[b+12>>2]);Fa=b+16|0}function Vc(a){var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;ba(420152,1,D[b+12>>2]);Fa=b+16|0}function Uc(a){var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;ba(420192,2,D[b+12>>2]);Fa=b+16|0}function Tc(a){var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;ba(420232,3,D[b+12>>2]);Fa=b+16|0}function Sc(a){var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;ba(420272,4,D[b+12>>2]);Fa=b+16|0}function Rc(a){var b=0;b=Fa-16|0;Fa=b;D[b+12>>2]=a;ba(420312,5,D[b+12>>2]);Fa=b+16|0}function Td(a){a=a|0;a=a-1|0;a:{if(a>>>0<=18){a=301925>>>a&1;break a}a=0}return a|0}function xd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ha[D[a>>2]](b,c,d,e)|0}function he(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Za(a,D[b+8>>2],0)){Vb(b,c,d)}}function Kd(a){a=a|0;var b=0;if(a){b=D[a+596>>2];if(b){Ta(b)}jc(a+4|0);Ta(a)}}function Ud(a){a=a|0;if(a>>>0<=21){a=D[(a<<2)+414764>>2]}else{a=0}return a|0}function qf(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ha[D[a>>2]](b,c,d)|0}function Xe(a){a=a|0;return(D[a>>2]==-559038750?D[a+120>>2]:0)|0}function Me(a){a=a|0;return(D[a>>2]==-559038750?D[a+160>>2]:0)|0}function Ie(a){a=a|0;return(D[a>>2]==-559038750?D[a+164>>2]:0)|0}function He(a){a=a|0;return(D[a>>2]==-559038750?D[a+168>>2]:0)|0}function Ge(a){a=a|0;return(D[a>>2]==-559038750?D[a+172>>2]:0)|0}function Fe(a){a=a|0;return(D[a>>2]==-559038750?D[a+176>>2]:0)|0}function Ee(a){a=a|0;return(D[a>>2]==-559038750?D[a+180>>2]:0)|0}function De(a){a=a|0;return(D[a>>2]==-559038750?D[a+184>>2]:0)|0}function Ce(a){a=a|0;return(D[a>>2]==-559038750?D[a+188>>2]:0)|0}function Re(a){a=a|0;return(D[a>>2]==-559038750?D[a+32>>2]:0)|0}function Qe(a){a=a|0;return(D[a>>2]==-559038750?D[a+36>>2]:0)|0}function Pe(a){a=a|0;return(D[a>>2]==-559038750?D[a+48>>2]:0)|0}function Oe(a){a=a|0;return(D[a>>2]==-559038750?D[a+44>>2]:0)|0}function Ne(a){a=a|0;return(D[a>>2]==-559038750?D[a+52>>2]:0)|0}function df(a){a=a|0;return D[a>>2]==-559038750&E[a+1224|0]!=0}function Le(a){a=a|0;return D[a>>2]==-559038750&D[a+160>>2]==1}function Je(a){a=a|0;return D[a>>2]==-559038750&E[a+1208|0]!=0}function Cd(a,b,c){a=a|0;b=b|0;c=c|0;return Ha[D[a>>2]](b,c)|0}function Be(a){a=a|0;return D[a>>2]==-559038750&E[a+1209|0]!=0}function Ke(a){a=a|0;return!D[a+160>>2]&D[a>>2]==-559038750}function Rd(a){a=a|0;return(a>>>0>=22?0:4063039>>>a&1)|0}function Kc(a,b,c){a=a|0;b=b|0;c=c|0;return Za(a,b,0)|0}function sb(a,b,c){a=a|0;b=b|0;c=c|0;D[D[a>>2]+b>>2]=c}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;B[D[a>>2]+b|0]=c}function oc(a,b){a=a|0;b=b|0;return Ha[D[a>>2]](b)|0}function tb(a,b){a=a|0;b=b|0;return D[D[a>>2]+b>>2]}function mf(a){if(a){return 31-M(a-1^a)|0}return 32}function md(a){a=a|0;if(a){ic(a+588|0);jc(a);Ta(a)}}function Ib(a,b){a=a|0;b=b|0;return E[D[a>>2]+b|0]}function rc(a,b){a=a|0;b=b|0;return Ha[a|0](b)|0}function Fc(a,b,c,d){xa(a|0,b|0,8,0,c|0,-1,d|0)}function rb(a,b,c){if(!(E[a|0]&32)){Qb(b,c,a)}}function oe(a){a=a|0;return Ba(D[a+60>>2])|0}function Qd(a){a=a|0;return((a|0)==17?8:4)|0}function Hd(a,b){a=a|0;b=b|0;Ha[D[a>>2]](b)}function Sd(a){a=a|0;return a-13>>>0<4|0}function nc(a){a=a|0;return Ha[a|0]()|0}function af(a){a=a|0;return D[a+108>>2]}function Zd(a){a=a|0;return bb(a)|0}function nd(a){a=a|0;return 415648}function gf(a){a=a|0;return 416256}function Ld(a){a=a|0;return 415232}function ub(a){a=a|0;if(a){Ta(a)}}function Db(a,b){Hc(a,1,Pb(a),b)}function je(a){a=a|0;return a|0}function Od(a){a=a|0;Ha[a|0]()}function Pd(a){a=a|0;return 4}function Ua(a){a=a|0;Ta(a)}function uc(){return 1}function bc(){ia();T()}function Lc(a){a=a|0} +// EMSCRIPTEN_END_FUNCS +e=E;p(Qa);var Ha=c([null,me,ke,Xd,Od,Wd,tc,ub,tb,sb,Ib,Hb,Nd,ub,tb,sb,Ib,Hb,Md,ub,tb,sb,rc,Ud,rc,Td,Sd,Rd,Qd,Pd,Ld,Kd,qc,Jd,Id,Hd,Gd,oc,Fd,oc,Ed,Dd,Cd,Bd,Ad,zd,yd,xd,wd,vd,ud,td,sd,rd,qd,pd,od,nd,md,nc,ld,kd,jd,id,mc,lf,kf,jf,Vd,nc,uc,uc,hf,ub,tb,sb,Ib,Hb,tc,ub,tb,sb,gf,ff,qc,ef,df,fd,cf,bf,af,fd,$e,mc,_e,Ze,Ye,ed,Xe,We,Ve,Ue,ed,Te,Se,Re,Qe,Pe,Oe,Ne,Me,Le,Ke,Je,Ie,He,Ge,Fe,Ee,De,Ce,Be,Ae,ze,ye,xe,we,ve,ue,te,se,qe,oe,ne,pe,le,je,Ua,Lc,Lc,Kc,Ua,Kc,Ua,ie,_d,be,he,Ua,$d,ce,ge,Ua,ae,de,fe,Ua,ee]);function Ia(){return A.byteLength/65536|0}function Na(Oa){Oa=Oa|0;var Ja=Ia()|0;var Ka=Ja+Oa|0;if(Ja=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}if(!Math.imul||Math.imul(4294967295,5)!==-5)Math.imul=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};if(!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(x){froundBuffer[0]=x;return froundBuffer[0]}}if(!Math.clz32)Math.clz32=function(x){var n=32;var y=x>>16;if(y){n-=16;x=y}y=x>>8;if(y){n-=8;x=y}y=x>>4;if(y){n-=4;x=y}y=x>>2;if(y){n-=2;x=y}y=x>>1;if(y)return n-2;return n-x};if(!Math.trunc)Math.trunc=function(x){return x<0?Math.ceil(x):Math.floor(x)};var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="<<< WASM_BINARY_FILE >>>";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["P"];addOnInit(Module["asm"]["M"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.includes("unsigned");registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis==="object"){return globalThis}return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i>> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n"}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","Module","__emval_register",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function _abort(){abort()}var _emscripten_memcpy_big=Uint8Array.prototype.copyWithin?function(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}:function(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)};function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return BASIS.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = BASIS; +else if (typeof define === 'function' && define['amd']) + define([], function() { return BASIS; }); +else if (typeof exports === 'object') + exports["BASIS"] = BASIS; diff --git a/libs/playcanvas/v1.65.0/basis/basis.wasm.js b/libs/playcanvas/v1.65.0/basis/basis.wasm.js new file mode 100644 index 000000000..2d24e615b --- /dev/null +++ b/libs/playcanvas/v1.65.0/basis/basis.wasm.js @@ -0,0 +1,21 @@ + +var BASIS = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(BASIS) { + BASIS = BASIS || {}; + +var Module=typeof BASIS!=="undefined"?BASIS:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="basis.wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["L"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["P"];addOnInit(Module["asm"]["M"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.includes("unsigned");registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis==="object"){return globalThis}return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i>> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n"}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","Module","__emval_register",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var asmLibraryArg={"t":__embind_finalize_value_object,"D":__embind_register_bigint,"J":__embind_register_bool,"x":__embind_register_class,"w":__embind_register_class_constructor,"d":__embind_register_class_function,"k":__embind_register_constant,"I":__embind_register_emval,"n":__embind_register_enum,"a":__embind_register_enum_value,"A":__embind_register_float,"i":__embind_register_function,"j":__embind_register_integer,"h":__embind_register_memory_view,"B":__embind_register_std_string,"v":__embind_register_std_wstring,"u":__embind_register_value_object,"c":__embind_register_value_object_field,"K":__embind_register_void,"m":__emval_as,"s":__emval_call_void_method,"b":__emval_decref,"y":__emval_get_global,"p":__emval_get_method_caller,"r":__emval_get_module_property,"e":__emval_get_property,"g":__emval_incref,"q":__emval_new,"f":__emval_new_cstring,"l":__emval_run_destructors,"o":_abort,"F":_emscripten_memcpy_big,"G":_emscripten_resize_heap,"H":_fd_close,"C":_fd_seek,"z":_fd_write,"E":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["M"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["N"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["O"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["Q"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["R"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["S"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return BASIS.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = BASIS; +else if (typeof define === 'function' && define['amd']) + define([], function() { return BASIS; }); +else if (typeof exports === 'object') + exports["BASIS"] = BASIS; diff --git a/libs/playcanvas/v1.65.0/basis/basis.wasm.wasm b/libs/playcanvas/v1.65.0/basis/basis.wasm.wasm new file mode 100644 index 000000000..ffa570fb7 Binary files /dev/null and b/libs/playcanvas/v1.65.0/basis/basis.wasm.wasm differ diff --git a/libs/playcanvas/v1.65.0/draco/draco.js b/libs/playcanvas/v1.65.0/draco/draco.js new file mode 100644 index 000000000..6629469b2 --- /dev/null +++ b/libs/playcanvas/v1.65.0/draco/draco.js @@ -0,0 +1,34 @@ + +var DracoDecoderModule = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(DracoDecoderModule = {}) { + +var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +// EMSCRIPTEN_START_ASM +function instantiate(na){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];s=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;a:{b:{c:{if(g>>>0>k>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break c}d=e+H[b>>2]|0;H[a>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[a>>2]>31){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+12>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;d=H[a+20>>2];x=H[a+12>>2];if((x|0)!=(d|0)?d:0){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[a+16>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(e>>>0>=7){H[B>>2]=e;Qd(1713,B);break c}H[B+664>>2]=c;d:{if(!x){break d}e:{k=H[c>>2];if(x>>>0<=(H[c+8>>2]-k|0)/12>>>0){break e}if(x>>>0<357913942){l=H[c+4>>2];d=N(x,12);e=pa(d);g=d+e|0;e=e+N((l-k|0)/12|0,12)|0;d=e;if((k|0)!=(l|0)){while(1){d=d-12|0;l=l-12|0;H[d>>2]=H[l>>2];H[d+4>>2]=H[l+4>>2];H[d+8>>2]=H[l+8>>2];if((k|0)!=(l|0)){continue}break}}H[c+8>>2]=g;H[c+4>>2]=e;H[c>>2]=d;if(!k){break e}oa(k);break e}break b}f:{switch(H[a+16>>2]){case 0:i=wb(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;g:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break g}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break g}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break g}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break g}H[i+8>>2]=0;if(!ua(i+16|0,b)){break g}if(!ua(i+36|0,b)){break g}if(!ua(i+56|0,b)){break g}if(!ua(i+76|0,b)){break g}A=H[i+4>>2];d=0;g=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;g=pa(b);H[f+8>>2]=g;d=b+g|0;H[f+16>>2]=d;ra(g,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];g=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=g;H[e+8>>2]=H[f+16>>2];g=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;h:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;w=pa(b);H[f+8>>2]=w;g=b+w|0;H[f+16>>2]=g;ra(w,0,b);H[f+12>>2]=g}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);w=H[f+8>>2];g=H[f+12>>2]}H[d+4>>2]=g;H[d>>2]=w;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;m=H[f+28>>2]+1|0;H[f+28>>2]=m;i:{if(!m){break i}y=i+96|0;while(1){n=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];k=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=0;if(t>>>0>A>>>0){break i}d=H[i+12>>2];m=(k|0)!=(d-1|0)?k+1|0:0;if(m>>>0>=d>>>0){break i}q=N(o,12);p=q+H[i+132>>2]|0;l=q+H[i+120>>2]|0;g=H[i>>2];r=m<<2;e=H[r+H[p>>2]>>2];j:{k:{if((g|0)==(e|0)){if(!t){break k}while(1){d=H[l>>2];x=H[d+8>>2];s=H[d+4>>2];n=H[d>>2];q=H[z>>2];m=H[q+4>>2];d=H[q+8>>2];l:{if(m>>>0>>0){H[m+8>>2]=x;H[m+4>>2]=s;H[m>>2]=n;H[q+4>>2]=m+12;break l}r=H[q>>2];g=(m-r|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(d-r|0)/12|0;d=e<<1;k=e>>>0>=178956970?357913941:d>>>0>k>>>0?d:k;if(k){if(k>>>0>=357913942){break a}d=pa(N(k,12))}else{d=0}w=d+N(g,12)|0;H[w+8>>2]=x;H[w+4>>2]=s;H[w>>2]=n;e=w+12|0;if((m|0)!=(r|0)){while(1){w=w-12|0;m=m-12|0;H[w>>2]=H[m>>2];H[w+4>>2]=H[m+4>>2];H[w+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=d+N(k,12);H[q+4>>2]=e;H[q>>2]=w;if(!r){break l}oa(r)}H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}break k}m:{n:{o:{p:{if(t>>>0<=2){d=H[i+108>>2];H[d>>2]=m;w=1;g=H[i+12>>2];if(g>>>0>1){break p}break m}if(K[i+8>>2]>K[i+4>>2]){break i}b=H[i+120>>2];s=o+1|0;x=N(s,12);d=b+x|0;if((d|0)!=(l|0)){Aa(d,H[l>>2],H[l+4>>2]);b=H[i+120>>2]}b=r+H[b+x>>2]|0;H[b>>2]=H[b>>2]+(1<>2];e=32-k|0;q:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break o}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;w=d<>>32-n|0;if((b|0)!=32){break q}H[i+32>>2]=0;H[i+28>>2]=e+4;break q}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break o}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;w=H[g+4>>2]>>>32-b|d<>>32-n}d=t>>>1|0;if(w>>>0>d>>>0){break i}break n}while(1){m=(g-1|0)!=(m|0)?m+1|0:0;H[d+(w<<2)>>2]=m;g=H[i+12>>2];w=w+1|0;if(g>>>0>w>>>0){continue}break}break m}d=t>>>1|0;w=0}r:{s:{e=d-w|0;b=t-e|0;t:{if((b|0)==(e|0)){b=e;break t}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break s}k=H[n>>2];g=H[i+92>>2];d=g+1|0;H[i+92>>2]=d;g=k&-2147483648>>>g;u:{if((d|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break u}break s}if(!g){break s}}}d=b;b=e;break r}d=e}n=H[i+132>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+x|0,g,H[k+4>>2]);if(b){g=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((e|0)!=(w|0)?N(e-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+w>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=m;H[e>>2]=b;H[f+28>>2]=H[f+28>>2]+1}if(!d){break k}g=H[f+28>>2]+H[f+24>>2]|0;b=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((b|0)!=(w|0)?N(b-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}b=(g>>>0)/341|0;b=H[(b<<2)+w>>2]+N(g-N(b,341)|0,12)|0;H[b+8>>2]=s;H[b+4>>2]=m;H[b>>2]=d;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break j}if(!t){break k}while(1){if(H[i+12>>2]){o=H[i+40>>2];n=H[p>>2];w=H[i+96>>2];k=H[i+108>>2];m=0;while(1){q=k+(m<<2)|0;H[w+(H[q>>2]<<2)>>2]=0;g=H[i>>2];e=H[q>>2]<<2;d=H[e+n>>2];v:{if((g|0)==(d|0)){break v}r=e+w|0;u=g-d|0;x=H[i+52>>2];g=32-x|0;if((u|0)<=(g|0)){e=H[i+48>>2];if((e|0)==(o|0)){break i}H[r>>2]=H[e>>2]<>>32-u;d=u+H[i+52>>2]|0;H[i+52>>2]=d;if((d|0)!=32){break v}H[i+52>>2]=0;H[i+48>>2]=e+4;break v}s=H[i+48>>2];d=s+4|0;if((d|0)==(o|0)){break i}e=H[s>>2];H[i+48>>2]=d;d=u-g|0;H[i+52>>2]=d;H[r>>2]=H[s+4>>2]>>>32-d|e<>>32-u}e=H[q>>2]<<2;d=e+w|0;H[d>>2]=H[d>>2]|H[e+H[l>>2]>>2];m=m+1|0;if(m>>>0>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;w=H[f+16>>2];m=H[f+12>>2];g=w-m|0;if(g>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;w=H[f+16>>2];g=w-m|0;if(g>>>0>8){continue}break}}b=170;w:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break w}}x:{if((m|0)==(w|0)){break x}while(1){oa(H[m>>2]);m=m+4|0;if((w|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break x}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break h}}xb(i);break d;case 1:i=wb(B+8|0,3);A=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;y:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break y}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break y}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break y}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break y}H[i+8>>2]=0;if(!ua(i+16|0,b)){break y}if(!ua(i+36|0,b)){break y}if(!ua(i+56|0,b)){break y}if(!ua(i+76|0,b)){break y}p=H[i+4>>2];d=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;t=pa(b);H[f+8>>2]=t;d=b+t|0;H[f+16>>2]=d;ra(t,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];t=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=t;H[e+8>>2]=H[f+16>>2];t=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;z:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;o=pa(b);H[f+8>>2]=o;t=b+o|0;H[f+16>>2]=t;ra(o,0,b);H[f+12>>2]=t}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);t=H[f+12>>2];o=H[f+8>>2]}H[d+4>>2]=t;H[d>>2]=o;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=p;m=H[f+28>>2]+1|0;H[f+28>>2]=m;A:{if(!m){break A}s=i+96|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];d=H[b+4>>2];l=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(l>>>0>p>>>0){break A}b=H[i+12>>2];m=(d|0)!=(b-1|0)?d+1|0:0;if(m>>>0>=b>>>0){break A}b=H[i+120>>2];r=N(q,12);u=b+r|0;e=H[i>>2];x=m<<2;n=r+H[i+132>>2]|0;d=H[x+H[n>>2]>>2];B:{C:{if((e|0)==(d|0)){x=0;if(!l){break C}while(1){b=H[u>>2];y=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];q=H[A>>2];m=H[q+4>>2];b=H[q+8>>2];D:{if(m>>>0>>0){H[m+8>>2]=y;H[m+4>>2]=n;H[m>>2]=k;H[q+4>>2]=m+12;break D}r=H[q>>2];e=(m-r|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-r|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}o=b+N(e,12)|0;H[o+8>>2]=y;H[o+4>>2]=n;H[o>>2]=k;d=o+12|0;if((m|0)!=(r|0)){while(1){o=o-12|0;m=m-12|0;H[o>>2]=H[m>>2];H[o+4>>2]=H[m+4>>2];H[o+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=b+N(g,12);H[q+4>>2]=d;H[q>>2]=o;if(!r){break D}oa(r)}H[i+8>>2]=H[i+8>>2]+1;x=x+1|0;if((l|0)!=(x|0)){continue}break}break C}E:{F:{G:{H:{if(l>>>0<=2){b=H[i+108>>2];H[b>>2]=m;o=1;t=H[i+12>>2];if(t>>>0>1){break H}break E}if(K[i+8>>2]>K[i+4>>2]){break A}k=b;b=r+12|0;Aa(k+b|0,H[u>>2],H[u+4>>2]);b=x+H[b+H[i+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];e=32-k|0;I:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break G}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;d=d<>>32-n|0;if((b|0)!=32){break I}H[i+32>>2]=0;H[i+28>>2]=e+4;break I}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break G}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;d=H[g+4>>2]>>>32-b|d<>>32-n}o=l>>>1|0;if(o>>>0>>0){break A}break F}while(1){m=(t-1|0)!=(m|0)?m+1|0:0;H[b+(o<<2)>>2]=m;o=o+1|0;t=H[i+12>>2];if(o>>>0>>0){continue}break}break E}o=l>>>1|0;d=0}y=q+1|0;J:{K:{e=o-d|0;d=l-e|0;L:{if((d|0)==(e|0)){b=e;break L}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break K}k=H[n>>2];g=H[i+92>>2];b=g+1|0;H[i+92>>2]=b;g=k&-2147483648>>>g;M:{if((b|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break M}break K}if(!g){break K}}b=d}d=e;break J}b=e}n=H[i+132>>2];k=n+r|0;g=H[k>>2];e=g+x|0;H[e>>2]=H[e>>2]+1;Aa(n+N(y,12)|0,g,H[k+4>>2]);if(d){t=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((e|0)!=(o|0)?N(e-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}e=(t>>>0)/341|0;e=H[o+(e<<2)>>2]+N(t-N(e,341)|0,12)|0;H[e+8>>2]=q;H[e+4>>2]=m;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break C}t=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((d|0)!=(o|0)?N(d-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}d=(t>>>0)/341|0;d=H[o+(d<<2)>>2]+N(t-N(d,341)|0,12)|0;H[d+8>>2]=y;H[d+4>>2]=m;H[d>>2]=b;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break B}t=0;if(!l){break C}while(1){if(H[i+12>>2]){o=H[i+40>>2];k=H[n>>2];z=H[i+96>>2];g=H[i+108>>2];m=0;while(1){q=g+(m<<2)|0;H[z+(H[q>>2]<<2)>>2]=0;e=H[i>>2];d=H[q>>2]<<2;b=H[d+k>>2];N:{if((e|0)==(b|0)){break N}r=d+z|0;w=e-b|0;x=H[i+52>>2];e=32-x|0;if((w|0)<=(e|0)){d=H[i+48>>2];if((d|0)==(o|0)){break A}H[r>>2]=H[d>>2]<>>32-w;b=w+H[i+52>>2]|0;H[i+52>>2]=b;if((b|0)!=32){break N}H[i+52>>2]=0;H[i+48>>2]=d+4;break N}y=H[i+48>>2];b=y+4|0;if((b|0)==(o|0)){break A}d=H[y>>2];H[i+48>>2]=b;b=w-e|0;H[i+52>>2]=b;H[r>>2]=H[y+4>>2]>>>32-b|d<>>32-w}d=H[q>>2]<<2;b=d+z|0;H[b>>2]=H[b>>2]|H[d+H[u>>2]>>2];m=m+1|0;if(m>>>0>2]){continue}break}}jb(A,s);H[i+8>>2]=H[i+8>>2]+1;t=t+1|0;if((l|0)!=(t|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;o=H[f+16>>2];m=H[f+12>>2];t=o-m|0;if(t>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;o=H[f+16>>2];t=o-m|0;if(t>>>0>8){continue}break}}b=170;O:{switch((t>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break O}}P:{if((m|0)==(o|0)){break P}while(1){oa(H[m>>2]);m=m+4|0;if((o|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break P}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break z}}xb(i);break d;case 2:f=ub(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Q:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Q}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Q}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Q}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Q}H[f+8>>2]=0;if(!ta(f+16|0,b)){break Q}if(!ua(f+32|0,b)){break Q}if(!ua(f+52|0,b)){break Q}if(!ua(f+72|0,b)){break Q}z=H[f+4>>2];g=0;b=0;h=ca-32|0;ca=h;j=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}d=j<<2;g=pa(d);H[h+8>>2]=g;b=d+g|0;H[h+16>>2]=b;ra(g,0,d);H[h+12>>2]=b}e=H[f+116>>2];d=H[e>>2];if(d){H[e+4>>2]=d;oa(d);j=H[f+12>>2];g=H[h+8>>2];b=H[h+12>>2]}H[e+4>>2]=b;H[e>>2]=g;H[e+8>>2]=H[h+16>>2];g=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;R:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;u=pa(b);H[h+8>>2]=u;g=b+u|0;H[h+16>>2]=g;ra(u,0,b);H[h+12>>2]=g}d=H[f+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);u=H[h+8>>2];g=H[h+12>>2]}H[d+4>>2]=g;H[d>>2]=u;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;j=H[h+28>>2]+1|0;H[h+28>>2]=j;S:{if(!j){break S}x=f+92|0;y=f+16|0;while(1){n=H[h+12>>2];g=H[h+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;p=H[b+8>>2];k=H[b+4>>2];i=H[b>>2];H[h+28>>2]=e;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}d=0;if(i>>>0>z>>>0){break S}b=H[f+12>>2];j=(k|0)!=(b-1|0)?k+1|0:0;if(j>>>0>=b>>>0){break S}o=N(p,12);A=o+H[f+128>>2]|0;t=o+H[f+116>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];T:{if((g|0)==(e|0)){if(!i){break T}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];j=H[o+4>>2];b=H[o+8>>2];U:{if(j>>>0>>0){H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;H[o+4>>2]=j+12;break U}q=H[o>>2];g=(j-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}u=b+N(g,12)|0;H[u+8>>2]=r;H[u+4>>2]=s;H[u>>2]=n;e=u+12|0;if((j|0)!=(q|0)){while(1){u=u-12|0;j=j-12|0;H[u>>2]=H[j>>2];H[u+4>>2]=H[j+4>>2];H[u+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=u;if(!q){break U}oa(q)}H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(i>>>0<=2){b=H[f+104>>2];H[b>>2]=j;u=1;g=H[f+12>>2];if(g>>>0>1){break Y}break V}if(K[f+8>>2]>K[f+4>>2]){break S}b=H[f+116>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+116>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(y,Q(i)^31,h+4|0);d=i>>>1|0;b=H[h+4>>2];if(d>>>0>>0){break S}e=d-b|0;d=i-e|0;Z:{if((d|0)==(e|0)){b=e;break Z}n=H[f+84>>2];if((n|0)==H[f+76>>2]){break X}k=H[n>>2];g=H[f+88>>2];b=g+1|0;H[f+88>>2]=b;g=k&-2147483648>>>g;_:{if((b|0)==32){H[f+88>>2]=0;H[f+84>>2]=n+4;if(g){break _}break X}if(!g){break X}}b=d}d=e;break W}while(1){j=(g-1|0)!=(j|0)?j+1|0:0;H[b+(u<<2)>>2]=j;g=H[f+12>>2];u=u+1|0;if(g>>>0>u>>>0){continue}break}break V}b=e}n=H[f+128>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((e|0)!=(u|0)?N(e-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+u>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break T}g=H[h+28>>2]+H[h+24>>2]|0;d=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((d|0)!=(u|0)?N(d-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}d=(g>>>0)/341|0;d=H[(d<<2)+u>>2]+N(g-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;H[h+28>>2]=H[h+28>>2]+1;break T}if(!i){break T}while(1){if(H[f+12>>2]){p=H[f+36>>2];n=H[A>>2];u=H[f+92>>2];k=H[f+104>>2];j=0;while(1){o=k+(j<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];$:{if((g|0)==(b|0)){break $}q=e+u|0;l=g-b|0;r=H[f+48>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+44>>2];if((e|0)==(p|0)){break S}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break $}H[f+48>>2]=0;H[f+44>>2]=e+4;break $}s=H[f+44>>2];b=s+4|0;if((b|0)==(p|0)){break S}e=H[s>>2];H[f+44>>2]=b;b=l-g|0;H[f+48>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];j=j+1|0;if(j>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}}j=H[h+28>>2];if(j){continue}break}}H[h+28>>2]=0;u=H[h+16>>2];j=H[h+12>>2];g=u-j|0;if(g>>>0>=9){while(1){oa(H[j>>2]);j=H[h+12>>2]+4|0;H[h+12>>2]=j;u=H[h+16>>2];g=u-j|0;if(g>>>0>8){continue}break}}b=170;aa:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break aa}}ba:{if((j|0)==(u|0)){break ba}while(1){oa(H[j>>2]);j=j+4|0;if((u|0)!=(j|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break ba}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break R}}vb(f);break d;case 3:i=ub(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;ca:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break ca}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break ca}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break ca}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break ca}H[i+8>>2]=0;if(!ta(i+16|0,b)){break ca}if(!ua(i+32|0,b)){break ca}if(!ua(i+52|0,b)){break ca}if(!ua(i+72|0,b)){break ca}A=H[i+4>>2];d=0;f=ca-32|0;ca=f;j=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}b=j<<2;m=pa(b);H[f+8>>2]=m;d=b+m|0;H[f+16>>2]=d;ra(m,0,b);H[f+12>>2]=d}e=H[i+116>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);j=H[i+12>>2];m=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=m;H[e+8>>2]=H[f+16>>2];m=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;da:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;p=pa(b);H[f+8>>2]=p;m=b+p|0;H[f+16>>2]=m;ra(p,0,b);H[f+12>>2]=m}d=H[i+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);m=H[f+12>>2];p=H[f+8>>2]}H[d+4>>2]=m;H[d>>2]=p;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;j=H[f+28>>2]+1|0;H[f+28>>2]=j;ea:{if(!j){break ea}y=i+92|0;s=i+16|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];d=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(t>>>0>A>>>0){break ea}b=H[i+12>>2];j=(d|0)!=(b-1|0)?d+1|0:0;if(j>>>0>=b>>>0){break ea}b=H[i+116>>2];q=N(o,12);l=b+q|0;e=H[i>>2];r=j<<2;n=q+H[i+128>>2]|0;d=H[r+H[n>>2]>>2];fa:{if((e|0)==(d|0)){r=0;if(!t){break fa}while(1){b=H[l>>2];x=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];o=H[z>>2];j=H[o+4>>2];b=H[o+8>>2];ga:{if(j>>>0>>0){H[j+8>>2]=x;H[j+4>>2]=n;H[j>>2]=k;H[o+4>>2]=j+12;break ga}q=H[o>>2];e=(j-q|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-q|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}p=b+N(e,12)|0;H[p+8>>2]=x;H[p+4>>2]=n;H[p>>2]=k;d=p+12|0;if((j|0)!=(q|0)){while(1){p=p-12|0;j=j-12|0;H[p>>2]=H[j>>2];H[p+4>>2]=H[j+4>>2];H[p+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(g,12);H[o+4>>2]=d;H[o>>2]=p;if(!q){break ga}oa(q)}H[i+8>>2]=H[i+8>>2]+1;r=r+1|0;if((t|0)!=(r|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(t>>>0<=2){b=H[i+104>>2];H[b>>2]=j;p=1;m=H[i+12>>2];if(m>>>0>1){break ka}break ha}if(K[i+8>>2]>K[i+4>>2]){break ea}k=b;b=q+12|0;Aa(k+b|0,H[l>>2],H[l+4>>2]);b=r+H[b+H[i+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(s,Q(t)^31,f+4|0);d=t>>>1|0;b=H[f+4>>2];if(d>>>0>>0){break ea}x=o+1|0;e=d-b|0;d=t-e|0;la:{if((d|0)==(e|0)){b=e;break la}n=H[i+84>>2];if((n|0)==H[i+76>>2]){break ja}k=H[n>>2];g=H[i+88>>2];b=g+1|0;H[i+88>>2]=b;g=k&-2147483648>>>g;ma:{if((b|0)==32){H[i+88>>2]=0;H[i+84>>2]=n+4;if(g){break ma}break ja}if(!g){break ja}}b=d}d=e;break ia}while(1){j=(m-1|0)!=(j|0)?j+1|0:0;H[b+(p<<2)>>2]=j;m=H[i+12>>2];p=p+1|0;if(m>>>0>p>>>0){continue}break}break ha}b=e}n=H[i+128>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(x,12)|0,g,H[k+4>>2]);if(d){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((e|0)!=(p|0)?N(e-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}e=(m>>>0)/341|0;e=H[p+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=j;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break fa}m=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((d|0)!=(p|0)?N(d-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}d=(m>>>0)/341|0;d=H[p+(d<<2)>>2]+N(m-N(d,341)|0,12)|0;H[d+8>>2]=x;H[d+4>>2]=j;H[d>>2]=b;H[f+28>>2]=H[f+28>>2]+1;break fa}m=0;if(!t){break fa}while(1){if(H[i+12>>2]){p=H[i+36>>2];k=H[n>>2];w=H[i+92>>2];g=H[i+104>>2];j=0;while(1){o=g+(j<<2)|0;H[w+(H[o>>2]<<2)>>2]=0;e=H[i>>2];d=H[o>>2]<<2;b=H[d+k>>2];na:{if((e|0)==(b|0)){break na}q=d+w|0;u=e-b|0;r=H[i+48>>2];e=32-r|0;if((u|0)<=(e|0)){d=H[i+44>>2];if((d|0)==(p|0)){break ea}H[q>>2]=H[d>>2]<>>32-u;b=u+H[i+48>>2]|0;H[i+48>>2]=b;if((b|0)!=32){break na}H[i+48>>2]=0;H[i+44>>2]=d+4;break na}x=H[i+44>>2];b=x+4|0;if((b|0)==(p|0)){break ea}d=H[x>>2];H[i+44>>2]=b;b=u-e|0;H[i+48>>2]=b;H[q>>2]=H[x+4>>2]>>>32-b|d<>>32-u}d=H[o>>2]<<2;b=d+w|0;H[b>>2]=H[b>>2]|H[d+H[l>>2]>>2];j=j+1|0;if(j>>>0>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;m=m+1|0;if((t|0)!=(m|0)){continue}break}}j=H[f+28>>2];if(j){continue}break}}H[f+28>>2]=0;p=H[f+16>>2];j=H[f+12>>2];m=p-j|0;if(m>>>0>=9){while(1){oa(H[j>>2]);j=H[f+12>>2]+4|0;H[f+12>>2]=j;p=H[f+16>>2];m=p-j|0;if(m>>>0>8){continue}break}}b=170;oa:{switch((m>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break oa}}pa:{if((j|0)==(p|0)){break pa}while(1){oa(H[j>>2]);j=j+4|0;if((p|0)!=(j|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break pa}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break da}}vb(i);break d;case 4:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;qa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break qa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break qa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break qa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break qa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break qa}if(!ua(f+544|0,b)){break qa}if(!ua(f+564|0,b)){break qa}if(!ua(f+584|0,b)){break qa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;ra:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;sa:{if(!d){break sa}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break sa}b=H[f+12>>2];j=(e|0)!=(b-1|0)?e+1|0:0;if(j>>>0>=b>>>0){break sa}o=N(p,12);A=o+H[f+640>>2]|0;t=o+H[f+628>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];ta:{ua:{if((g|0)==(e|0)){o=0;if(!i){break ua}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];va:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break va}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break va}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break ua}wa:{xa:{ya:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break ya}break wa}if(K[f+8>>2]>K[f+4>>2]){break sa}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break xa}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break xa}break sa}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break wa}za:{Aa:{e=d-l|0;d=i-e|0;Ba:{if((d|0)==(e|0)){b=e;break Ba}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Aa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Ca:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Ca}break Aa}if(!g){break Aa}}b=d}d=e;break za}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break ua}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break ta}j=0;if(!i){break ua}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];Da:{if((g|0)==(b|0)){break Da}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break sa}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Da}H[f+560>>2]=0;H[f+556>>2]=e+4;break Da}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break sa}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;Ea:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ea}}Fa:{if((d|0)==(j|0)){break Fa}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Fa}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break ra}}ab(f);break d;case 5:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Ga:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Ga}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Ga}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Ga}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Ga}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Ga}if(!ua(f+544|0,b)){break Ga}if(!ua(f+564|0,b)){break Ga}if(!ua(f+584|0,b)){break Ga}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Ha:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;p=pa(b);H[h+8>>2]=p;l=b+p|0;H[h+16>>2]=l;ra(p,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);l=H[h+12>>2];p=H[h+8>>2]}H[d+4>>2]=l;H[d>>2]=p;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ia:{if(!d){break Ia}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;o=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ia}m=0;b=H[f+12>>2];p=(e|0)!=(b-1|0)?e+1|0:0;if(p>>>0>=b>>>0){break Ia}b=H[f+628>>2];q=N(o,12);t=b+q|0;e=H[f>>2];r=p<<2;s=q+H[f+640>>2]|0;d=H[r+H[s>>2]>>2];Ja:{Ka:{if((e|0)==(d|0)){if(!i){break Ka}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];d=H[o+4>>2];b=H[o+8>>2];La:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[o+4>>2]=d+12;break La}q=H[o>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}p=b+N(g,12)|0;H[p+8>>2]=r;H[p+4>>2]=s;H[p>>2]=n;e=p+12|0;if((d|0)!=(q|0)){while(1){p=p-12|0;d=d-12|0;H[p>>2]=H[d>>2];H[p+4>>2]=H[d+4>>2];H[p+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=p;if(!q){break La}oa(q)}H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=p;d=1;l=H[f+12>>2];if(l>>>0>1){break Oa}break Ma}if(K[f+8>>2]>K[f+4>>2]){break Ia}k=b;b=q+12|0;Aa(k+b|0,H[t>>2],H[t+4>>2]);b=r+H[b+H[f+628>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break Na}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break Na}break Ia}while(1){p=(l-1|0)!=(p|0)?p+1|0:0;H[b+(d<<2)>>2]=p;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break Ma}s=o+1|0;Pa:{Qa:{e=d-l|0;d=i-e|0;Ra:{if((d|0)==(e|0)){b=e;break Ra}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Qa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Sa:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Sa}break Qa}if(!g){break Qa}}b=d}d=e;break Pa}b=e}n=H[f+640>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(s,12)|0,g,H[k+4>>2]);if(d){m=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((m|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);m=H[h+24>>2]+H[h+28>>2]|0;l=H[h+12>>2]}e=(m>>>0)/341|0;e=H[l+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=p;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break Ka}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=p;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Ja}if(!i){break Ka}while(1){if(H[f+12>>2]){A=H[f+548>>2];n=H[s>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){p=k+(d<<2)|0;H[u+(H[p>>2]<<2)>>2]=0;g=H[f>>2];e=H[p>>2]<<2;b=H[e+n>>2];Ta:{if((g|0)==(b|0)){break Ta}o=e+u|0;l=g-b|0;q=H[f+560>>2];g=32-q|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(A|0)){break Ia}H[o>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Ta}H[f+560>>2]=0;H[f+556>>2]=e+4;break Ta}r=H[f+556>>2];b=r+4|0;if((b|0)==(A|0)){break Ia}e=H[r>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[o>>2]=H[r+4>>2]>>>32-b|e<>>32-l}e=H[p>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;p=H[h+16>>2];d=H[h+12>>2];l=p-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;p=H[h+16>>2];l=p-d|0;if(l>>>0>8){continue}break}}b=170;Ua:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ua}}Va:{if((d|0)==(p|0)){break Va}while(1){oa(H[d>>2]);d=d+4|0;if((p|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Va}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Ha}}ab(f);break d;case 6:break f;default:break c}}f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Wa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Wa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Wa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Wa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Wa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Wa}if(!ua(f+544|0,b)){break Wa}if(!ua(f+564|0,b)){break Wa}if(!ua(f+584|0,b)){break Wa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Xa:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ya:{if(!d){break Ya}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ya}b=H[f+628>>2];o=N(p,12);A=o+H[f+640>>2]|0;j=Vd(f,i,A);if(j>>>0>=K[f+12>>2]){break Ya}t=b+o|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];Za:{_a:{if((g|0)==(e|0)){o=0;if(!i){break _a}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];$a:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break $a}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break $a}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break _a}ab:{bb:{cb:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break cb}break ab}if(K[f+8>>2]>K[f+4>>2]){break Ya}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break bb}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break bb}break Ya}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break ab}db:{eb:{e=d-l|0;d=i-e|0;fb:{if((d|0)==(e|0)){b=e;break fb}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break eb}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;gb:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break gb}break eb}if(!g){break eb}}b=d}d=e;break db}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break _a}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Za}j=0;if(!i){break _a}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];hb:{if((g|0)==(b|0)){break hb}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break Ya}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break hb}H[f+560>>2]=0;H[f+556>>2]=e+4;break hb}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break Ya}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;ib:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break ib}}jb:{if((d|0)==(j|0)){break jb}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break jb}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Xa}}ab(f)}n=H[a+12>>2]==((H[c+4>>2]-H[c>>2]|0)/12|0)}ca=B+672|0;return n}sa();v()}wa();v()}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=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;if(!a){return 1}e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break a}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;b:{switch(g|0){case 0:e=a;f=b;i=d;a=0;d=0;m=ca+-64|0;ca=m;H[m+56>>2]=0;H[m+48>>2]=0;H[m+52>>2]=0;H[m+40>>2]=0;H[m+44>>2]=0;H[m+32>>2]=0;H[m+36>>2]=0;H[m+24>>2]=0;H[m+28>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;H[m+8>>2]=0;H[m+12>>2]=0;c:{if(!Ne(m+8|0,c)){break c}if(!Me(m+8|0,c)|(H[m+20>>2]?0:e)){break c}Db(c,0,0);if(e){s=f<<2;t=H[m+36>>2];w=H[m+48>>2];x=H[m+24>>2];l=H[m+56>>2];j=H[m+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((j|0)<=0){break d}j=j-1|0;H[m+52>>2]=j;l=I[j+w|0]|l<<8;H[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=H[(a<<2)+x>>2];b=(r<<3)+t|0;l=(N(H[b>>2],l>>>12|0)+a|0)-H[b+4>>2]|0;H[m+56>>2]=l;if((f|0)>0){a=0;if(!I[c+36|0]|r>>>0>32){break c}g=d+f|0;e:{if(!r){ra(i+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=H[c+32>>2];h=H[c+28>>2];n=H[c+24>>2];while(1){k=0;a=b;o=0;q=0;if((r|0)!=1){while(1){p=n+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=I[p|0];b=a+1|0;H[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<>>3|0)|0;if(u>>>0>>0){o=I[u|0];b=a+1|0;H[c+32>>2]=b;o=o>>>(a&7)&1;a=b}u=k|1;k=k+2|0;o=p|o<>>3|0)|0;if(p>>>0>>0){p=I[p|0];b=a+1|0;H[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}o=a<>2]=o;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=g}v=f+v|0;if(e>>>0>v>>>0){continue}break}}F[c+36|0]=0;b=H[c+20>>2];e=0;d=H[c+32>>2]+7|0;e=d>>>0<7?1:e;d=(e&7)<<29|d>>>3;a=d+H[c+16>>2]|0;e=(e>>>3|0)+b|0;H[c+16>>2]=a;H[c+20>>2]=a>>>0>>0?e+1|0:e;a=1}b=H[m+36>>2];if(b){H[m+40>>2]=b;oa(b)}b=H[m+24>>2];if(b){H[m+28>>2]=b;oa(b)}b=H[m+8>>2];if(b){H[m+12>>2]=b;oa(b)}ca=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];g:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break g}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;h:{switch(g-1|0){case 8:g=a;r=d;i=ca+-64|0;ca=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;j=i+8|0;a=J[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break j}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break k}if(!hb(1,j+12|0,c)){break j}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=H[j>>2];a=H[j+4>>2]-b>>2;l:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break l}if(a>>>0<=h>>>0){break l}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break i}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];m=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=m>>>0|(e|0)>(n|0)){break i}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;m:{n:{o:{p:{t=p&3;switch(t|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break i}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break m}while(1){if((f|0)==(m|0)&(e|0)==(n|0)){break j}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;q:{if(b>>>0<=32767){ya(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}H[j+20>>2]=d+32768}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;r:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break r}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break j}}m=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}l=0;j=e&7;if(j){while(1){H[m+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break s}while(1){e=m+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(H[i+20>>2]?0:g)){break t}d=0;m=ca-16|0;ca=m;u:{v:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break v}if(!gb(1,m+8|0,c)){break u}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[m+8>>2];k=H[m+12>>2]}j=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break u}b=H[c>>2]+f|0;H[i+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];w:{if(e>>>0<=63){H[i+52>>2]=c;a=I[f|0]&63;break w}x:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break u}a=a-2|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break w;case 1:if(a>>>0<3){break u}a=a-3|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break w;default:break x}}a=a-4|0;H[i+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[i+56>>2]=a+32768;d=a>>>0<8355840}ca=m+16|0;if(!d){break t}if(!g){o=1;break t}b=H[i+52>>2];a=H[i+56>>2];c=H[i+36>>2];d=H[i+48>>2];f=H[i+24>>2];while(1){y:{if(a>>>0>32767){break y}while(1){if((b|0)<=0){break y}b=b-1|0;H[i+52>>2]=b;a=I[b+d|0]|a<<8;H[i+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>13|0)+e|0)-H[k+4>>2]|0;H[i+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((g|0)!=(q|0)){continue}break}}a=H[i+36>>2];if(a){H[i+40>>2]=a;oa(a)}a=H[i+24>>2];if(a){H[i+28>>2]=a;oa(a)}a=H[i+8>>2];if(a){H[i+12>>2]=a;oa(a)}ca=i- -64|0;b=o;break g;case 9:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break A}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break B}if(!hb(1,j+12|0,c)){break A}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=H[j>>2];a=H[j+4>>2]-b>>2;C:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break C}if(a>>>0<=h>>>0){break C}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break z}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break z}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;D:{E:{F:{G:{t=p&3;switch(t|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break z}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break D}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break A}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;H:{if(b>>>0<=131071){ya(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}H[j+20>>2]=d+131072}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;I:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break I}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break A}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break J}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(H[g+20>>2]?0:m)){break K}d=0;j=ca-16|0;ca=j;L:{M:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break M}if(!gb(1,j+8|0,c)){break L}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break L}i=e+k|0;b=a+f|0;i=b>>>0>>0?i+1|0:i;H[c+16>>2]=b;H[c+20>>2]=i;if((a|0)<=0){break L}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];N:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break N}O:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break L}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break N;case 1:if(a>>>0<3){break L}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break N;default:break O}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+131072;d=a>>>0<33423360}ca=j+16|0;if(!d){break K}if(!m){o=1;break K}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){P:{if(a>>>0>131071){break P}while(1){if((b|0)<=0){break P}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>15|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 10:m=a;j=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;n=g+8|0;a=J[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break R}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[n+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break S}if(!hb(1,n+12|0,c)){break R}f=H[c+16>>2];e=H[c+20>>2];h=H[n+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=H[n>>2];a=H[n+4>>2]-b>>2;T:{if(a>>>0>>0){ya(n,h-a|0);h=H[n+12>>2];break T}if(a>>>0<=h>>>0){break T}H[n+4>>2]=b+(h<<2)}d=1;if(!h){break Q}f=H[c+16>>2];e=H[c+20>>2];t=H[n>>2];r=H[c+8>>2];p=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(p|0)&f>>>0>=r>>>0|(e|0)>(p|0)){break Q}d=H[c>>2];s=I[d+f|0];f=f+1|0;i=f?e:e+1|0;H[c+16>>2]=f;e=i;H[c+20>>2]=e;a=s>>>2|0;l=0;U:{V:{W:{X:{i=s&3;switch(i|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break Q}ra(t+(b<<2)|0,0,(s&252)+4|0);b=a;break U}while(1){if((f|0)==(r|0)&(e|0)==(p|0)){break R}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((i|0)!=(l|0)){continue}break}}H[t+(b<<2)>>2]=a}b=b+1|0;h=H[n+12>>2];if(b>>>0>>0){continue}break}a=n+16|0;r=H[n>>2];d=H[n+16>>2];b=H[n+20>>2]-d|0;Y:{if(b>>>0<=262143){ya(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}H[n+20>>2]=d+262144}d=n+28|0;b=H[d>>2];f=H[n+32>>2]-b>>3;Z:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break Z}if(f>>>0>h>>>0){H[n+32>>2]=(h<<3)+b}if(!h){break R}}i=H[a>>2];f=0;d=0;while(1){e=r+(f<<2)|0;l=H[e>>2];n=(f<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=l;e=H[e>>2];d=e+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}l=0;n=e&7;if(n){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break _}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(H[g+20>>2]?0:m)){break $}d=0;i=ca-16|0;ca=i;aa:{ba:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ba}if(!gb(1,i+8|0,c)){break aa}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}r=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>r>>>0|b>>>0>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break aa}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ca:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ca}da:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ca;case 1:if(a>>>0<3){break aa}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ca;default:break da}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+262144;d=a>>>0<66846720}ca=i+16|0;if(!d){break $}if(!m){o=1;break $}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}while(1){if((b|0)<=0){break ea}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>16|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[j+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 11:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break ga}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;i=H[c+20>>2];f=H[c+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[c+16>>2]=f;e=i;H[c+20>>2]=e;break ha}if(!hb(1,j+12|0,c)){break ga}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=H[j>>2];a=H[j+4>>2]-b>>2;ia:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break ia}if(a>>>0<=h>>>0){break ia}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break fa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break fa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;ja:{ka:{la:{ma:{t=p&3;switch(t|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break fa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ja}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break ga}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;na:{if(b>>>0<=1048575){ya(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}H[j+20>>2]=d- -1048576}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;oa:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break oa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break ga}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break pa}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(H[g+20>>2]?0:m)){break qa}d=0;j=ca-16|0;ca=j;ra:{sa:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;i=H[c+20>>2];k=H[c+16>>2];f=k+8|0;i=f>>>0<8?i+1|0:i;e=i;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break sa}if(!gb(1,j+8|0,c)){break ra}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break ra}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ta:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ta}ua:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ta;case 1:if(a>>>0<3){break ra}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ta;default:break ua}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a- -1048576;d=a>>>0<267386880}ca=j+16|0;if(!d){break qa}if(!m){o=1;break qa}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}while(1){if((b|0)<=0){break va}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>18|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 12:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];i=H[c+20>>2];a=H[c+16>>2];f=a+4|0;i=f>>>0<4?i+1|0:i;if(d>>>0>>0&(b|0)<=(i|0)|(b|0)<(i|0)){break xa}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break ya}if(!hb(1,j+12|0,c)){break xa}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=H[j>>2];a=H[j+4>>2]-b>>2;za:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break za}if(a>>>0<=h>>>0){break za}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break wa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break wa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;Aa:{Ba:{Ca:{Da:{t=p&3;switch(t|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break wa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break Aa}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break xa}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;Ea:{if(b>>>0<=2097151){ya(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}H[j+20>>2]=d+2097152}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;Fa:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break Fa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break xa}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break Ga}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(H[g+20>>2]?0:m)){break Ha}d=0;i=ca-16|0;ca=i;Ia:{Ja:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break Ja}if(!gb(1,i+8|0,c)){break Ia}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}j=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break Ia}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];Ka:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break Ka}La:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break Ka;case 1:if(a>>>0<3){break Ia}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break Ka;default:break La}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+2097152;d=a>>>0<534773760}ca=i+16|0;if(!d){break Ha}if(!m){o=1;break Ha}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}while(1){if((b|0)<=0){break Ma}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>19|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 17:b=Le(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=ca+-64|0;ca=b;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;Na:{if(!Ne(b+8|0,c)|(H[b+20>>2]?0:a)){break Na}if(!Me(b+8|0,c)){break Na}if(!a){f=1;break Na}e=H[b+52>>2];c=H[b+56>>2];k=H[b+36>>2];i=H[b+48>>2];g=H[b+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}while(1){if((e|0)<=0){break Oa}e=e-1|0;H[b+52>>2]=e;c=I[e+i|0]|c<<8;H[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;m=H[g+(f<<2)>>2];r=k+(m<<3)|0;c=(N(H[r>>2],c>>>12|0)+f|0)-H[r+4>>2]|0;H[b+56>>2]=c;H[(o<<2)+d>>2]=m;f=1;o=o+1|0;if((o|0)!=(a|0)){continue}break}}a=H[b+36>>2];if(a){H[b+40>>2]=a;oa(a)}a=H[b+24>>2];if(a){H[b+28>>2]=a;oa(a)}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}ca=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Le(a,c,d)}f=b}return f}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0;s=ca+-64|0;ca=s;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];oa(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;d=H[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){g=d&-4;while(1){e=c<<2;H[e+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(e|4)>>2]=0;H[H[a+136>>2]+(e|8)>>2]=0;H[H[a+136>>2]+(e|12)>>2]=0;c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}b=d&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;u=u+1|0;if((b|0)!=(u|0)){continue}break}}H[a+148>>2]=0}b:{c:{d:{c=H[a+4>>2];u=I[c+36|0];b=u<<8|I[c+37|0];if(b>>>0<=513){i=H[c+32>>2];e:{if(b>>>0<=511){b=H[i+20>>2];e=H[i+16>>2];d=e+4|0;b=d>>>0<4?b+1|0:b;g=b;h=H[i+12>>2];if(K[i+8>>2]>>0&(b|0)>=(h|0)|(b|0)>(h|0)){break d}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=d;H[i+20>>2]=g;break e}if(!Ea(1,s,i)){break d}c=H[a+4>>2];u=I[c+36|0];b=H[s>>2]}H[a+132>>2]=b}g=H[c+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;d=H[g+20>>2];e=H[g+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;i=H[g+12>>2];if(K[g+8>>2]>>0&(i|0)<=(d|0)|(d|0)>(i|0)){break c}e=e+H[g>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[s+60>>2]=e;H[g+16>>2]=b;H[g+20>>2]=d;H[a+156>>2]=e;n=a+156|0;break h}u=0;if(!Ea(1,s+60|0,g)){break c}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[s+60>>2];n=a+156|0;if(b>>>0>1){break g}}g=H[c+32>>2];h=H[g+8>>2];i=H[g+12>>2];c=H[g+20>>2];d=H[g+16>>2];b=d+4|0;c=b>>>0<4?c+1|0:c;e=b;if(b>>>0>h>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break c}b=d+H[g>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[s+56>>2]=b;H[g+16>>2]=e;H[g+20>>2]=c;break f}if(!Ea(1,s+56|0,H[c+32>>2])){break c}b=H[s+56>>2]}if(b>>>0>1431655765|K[n>>2]>N(b,3)>>>0){break c}f=H[a+4>>2];g=H[f+32>>2];c=g;e=H[c+8>>2];i=H[c+16>>2];j=H[c+12>>2];d=H[c+20>>2];c=d;if((j|0)<=(c|0)&e>>>0<=i>>>0|(c|0)>(j|0)){break c}n=H[g>>2];o=I[n+i|0];h=i+1|0;c=h?c:c+1|0;H[g+16>>2]=h;H[g+20>>2]=c;i:{if(I[f+36|0]<=1){f=e;c=j;e=i+5|0;d=e>>>0<5?d+1|0:d;if((c|0)<=(d|0)&e>>>0>f>>>0|(c|0)<(d|0)){break c}c=h+n|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[s+52>>2]=n;H[g+16>>2]=e;H[g+20>>2]=d;break i}if(!Ea(1,s+52|0,g)){break c}n=H[s+52>>2]}if(b>>>0>>0|((n>>>0)/3|0)+n>>>0>>0){break c}c=H[a+4>>2];i=H[c+32>>2];j:{if(I[c+36|0]<=1){c=H[i+20>>2];e=H[i+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;g=d;f=K[i+8>>2]>>0;d=H[i+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=e+H[i>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[s+48>>2]=d;H[i+16>>2]=g;H[i+20>>2]=c;break j}if(!Ea(1,s+48|0,i)){break c}d=H[s+48>>2]}if(d>>>0>n>>>0){break c}H[a+28>>2]=H[a+24>>2];e=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=e;if(c){cb(c);if(!H[a+8>>2]){break c}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,b);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,b);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];B=a+216|0;ed(B);dd(B,o);if(!Lc(H[a+8>>2],b,H[a+156>>2]+d|0)){break c}c=H[a+156>>2];F[s|0]=1;Oa(a+120|0,c+d|0,s);c=H[a+4>>2];b=J[c+36>>1];b=(b<<8|b>>>8)&65535;k:{if(b>>>0<=513){i=H[c+32>>2];l:{if(b>>>0<=511){b=H[i+20>>2];e=H[i+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;g=b;h=H[i+12>>2];if(K[i+8>>2]>>0&(b|0)>=(h|0)|(b|0)>(h|0)){break c}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=c;H[i+20>>2]=g;break l}if(!Ea(1,s+44|0,i)){break c}b=H[s+44>>2]}if(!b){break c}c=H[H[a+4>>2]+32>>2];e=H[c+8>>2];g=H[c+16>>2];i=e-g|0;c=H[c+12>>2]-(H[c+20>>2]+(e>>>0>>0)|0)|0;if((c|0)<=0&b>>>0>i>>>0|(c|0)<0){break c}c=Ha(s);e=H[H[a+4>>2]+32>>2];g=H[e+16>>2];i=(g+H[e>>2]|0)+b|0;g=H[e+8>>2]-g|0;G[c+38>>1]=J[e+38>>1];H[c>>2]=i;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=g-b;H[c+12>>2]=0;C=Ib(a,c);if((C|0)==-1){break c}M=C>>31;break k}C=-1;M=-1;if((Ib(a,H[c+32>>2])|0)==-1){break c}}e=a+232|0;Ee(e,a);H[a+372>>2]=o;H[a+384>>2]=H[a+156>>2]+d;O=Ha(s);g=O;b=0;j=ca-16|0;ca=j;m:{n:{c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+4>>2];H[e+40>>2]=H[e>>2];H[e+44>>2]=c;c=H[e+36>>2];H[e+72>>2]=H[e+32>>2];H[e+76>>2]=c;d=H[e+28>>2];c=e- -64|0;H[c>>2]=H[e+24>>2];H[c+4>>2]=d;c=H[e+20>>2];H[e+56>>2]=H[e+16>>2];H[e+60>>2]=c;c=H[e+12>>2];H[e+48>>2]=H[e+8>>2];H[e+52>>2]=c;if(!Db(e+40|0,1,j+8|0)){break n}c=H[e+44>>2];H[e>>2]=H[e+40>>2];H[e+4>>2]=c;c=H[e+76>>2];H[e+32>>2]=H[e+72>>2];H[e+36>>2]=c;c=H[e+68>>2];H[e+24>>2]=H[e+64>>2];H[e+28>>2]=c;c=H[e+60>>2];h=c;d=H[e+56>>2];H[e+16>>2]=d;H[e+20>>2]=c;i=H[e+52>>2];f=i;c=H[e+48>>2];H[e+8>>2]=c;H[e+12>>2]=f;o=c-d|0;k=H[j+12>>2];c=f-((c>>>0>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(c|0)&o>>>0>>0|c>>>0>>0){break n}c=h+k|0;f=d;d=d+i|0;c=f>>>0>d>>>0?c+1|0:c;H[e+16>>2]=d;H[e+20>>2]=c}o:{if(J[e+38>>1]<=513){c=H[e+4>>2];H[e+96>>2]=H[e>>2];H[e+100>>2]=c;c=H[e+36>>2];H[e+128>>2]=H[e+32>>2];H[e+132>>2]=c;c=H[e+28>>2];H[e+120>>2]=H[e+24>>2];H[e+124>>2]=c;c=H[e+20>>2];H[e+112>>2]=H[e+16>>2];H[e+116>>2]=c;c=H[e+12>>2];H[e+104>>2]=H[e+8>>2];H[e+108>>2]=c;if(!Db(e+96|0,1,j+8|0)){break n}c=H[e+100>>2];H[e>>2]=H[e+96>>2];H[e+4>>2]=c;c=H[e+132>>2];H[e+32>>2]=H[e+128>>2];H[e+36>>2]=c;c=H[e+124>>2];H[e+24>>2]=H[e+120>>2];H[e+28>>2]=c;d=H[e+116>>2];h=d;c=H[e+112>>2];H[e+16>>2]=c;H[e+20>>2]=d;i=H[e+108>>2];f=i;d=H[e+104>>2];H[e+8>>2]=d;H[e+12>>2]=f;o=d-c|0;k=H[j+12>>2];d=f-((c>>>0>d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(d|0)&o>>>0>>0|d>>>0>>0){break n}d=h+k|0;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;break o}if(!ta(e+80|0,e)){break m}}if(!Fe(e)){break m}c=H[e+4>>2];H[g>>2]=H[e>>2];H[g+4>>2]=c;c=H[e+36>>2];H[g+32>>2]=H[e+32>>2];H[g+36>>2]=c;c=H[e+28>>2];H[g+24>>2]=H[e+24>>2];H[g+28>>2]=c;c=H[e+20>>2];H[g+16>>2]=H[e+16>>2];H[g+20>>2]=c;c=H[e+12>>2];H[g+8>>2]=H[e+8>>2];H[g+12>>2]=c;c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+144>>2];q:{if(I[(ea[H[H[c>>2]+32>>2]](c)|0)+36|0]<=1){c=H[g+20>>2];i=H[g+16>>2];d=i+4|0;c=d>>>0<4?c+1|0:c;h=d;f=K[g+8>>2]>>0;d=H[g+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break m}d=i+H[g>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+16>>2]=h;H[g+20>>2]=c;break q}if(!Ea(1,j+8|0,g)){break m}d=H[j+8>>2]}c=H[e+152>>2];if(d>>>0>=c>>>0){break m}d=H[g+20>>2];h=H[g+12>>2];i=H[g+16>>2];if((d|0)>=(h|0)&i>>>0>=K[g+8>>2]|(d|0)>(h|0)){break m}h=I[i+H[g>>2]|0];i=i+1|0;d=i?d:d+1|0;H[g+16>>2]=i;H[g+20>>2]=d;if(h){break m}H[e+176>>2]=2;H[e+180>>2]=7;break p}H[e+176>>2]=2;H[e+180>>2]=7;c=H[e+152>>2]}if((c|0)<0){break m}H[j+8>>2]=0;b=2;h=H[e+156>>2];i=H[e+160>>2]-h>>2;r:{if(i>>>0>>0){Pa(e+156|0,c-i|0,j+8|0);b=H[e+176>>2];d=H[e+180>>2];break r}d=7;if(c>>>0>=i>>>0){break r}H[e+160>>2]=h+(c<<2)}i=e+184|0;b=(d-b|0)+1|0;c=H[e+188>>2];h=H[e+184>>2];d=(c-h|0)/12|0;s:{if(b>>>0>d>>>0){o=0;d=b-d|0;f=H[i+8>>2];c=H[i+4>>2];t:{if(d>>>0<=(f-c|0)/12>>>0){if(d){b=c;c=N(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=ra(b,0,c)+c|0}H[i+4>>2]=c;break t}u:{v:{w:{h=H[i>>2];k=(c-h|0)/12|0;b=k+d|0;if(b>>>0<357913942){f=(f-h|0)/12|0;l=f<<1;f=f>>>0>=178956970?357913941:b>>>0>>0?l:b;if(f){if(f>>>0>=357913942){break w}o=pa(N(f,12))}b=N(k,12)+o|0;d=N(d,12)-12|0;k=(d-((d>>>0)%12|0)|0)+12|0;d=ra(b,0,k);k=d+k|0;f=N(f,12)+o|0;if((c|0)==(h|0)){break v}while(1){b=b-12|0;c=c-12|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if((c|0)!=(h|0)){continue}break}H[i+8>>2]=f;d=H[i+4>>2];H[i+4>>2]=k;c=H[i>>2];H[i>>2]=b;if((c|0)==(d|0)){break u}while(1){b=d-12|0;h=H[b>>2];if(h){H[d-8>>2]=h;oa(h)}d=b;if((b|0)!=(c|0)){continue}break}break u}break b}wa();v()}H[i+8>>2]=f;H[i+4>>2]=k;H[i>>2]=d}if(c){oa(c)}}d=H[e+188>>2];break s}if(b>>>0>=d>>>0){d=c;break s}d=h+N(b,12)|0;if((d|0)!=(c|0)){while(1){b=c-12|0;h=H[b>>2];if(h){H[c-8>>2]=h;oa(h)}c=b;if((d|0)!=(b|0)){continue}break}}H[e+188>>2]=d}f=e+196|0;b=H[e+184>>2];c=(d-b|0)/12|0;o=H[e+196>>2];h=H[e+200>>2]-o>>2;x:{if(c>>>0>h>>>0){ya(f,c-h|0);b=H[e+184>>2];d=H[e+188>>2];break x}if(c>>>0>=h>>>0){break x}H[e+200>>2]=o+(c<<2)}if((b|0)==(d|0)){b=1;break m}c=0;while(1){if(!Ea(1,j+8|0,g)){break n}b=H[e+148>>2];d=(H[b+4>>2]-H[b>>2]>>2>>>0)/3|0;b=H[j+8>>2];if(d>>>0>>0){break n}if(b){k=N(c,12);h=k+H[i>>2]|0;d=H[h>>2];o=H[h+4>>2]-d>>2;y:{if(o>>>0>>0){ya(h,b-o|0);d=H[k+H[i>>2]>>2];break y}if(b>>>0>=o>>>0){break y}H[h+4>>2]=(b<<2)+d}kd(b,1,g,d);H[H[f>>2]+(c<<2)>>2]=b}b=1;c=c+1|0;if(c>>>0<(H[e+188>>2]-H[e+184>>2]|0)/12>>>0){continue}break}break m}b=0}ca=j+16|0;z:{if(!b){break z}d=0;c=0;g=0;i=0;o=0;l=ca-96|0;ca=l;H[l+72>>2]=0;H[l+64>>2]=0;H[l+68>>2]=0;H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+56>>2]=1065353216;H[l+32>>2]=0;H[l+24>>2]=0;H[l+28>>2]=0;j=a;L=H[a+124>>2];A:{B:{C:{D:{E:{if((n|0)<=0){break E}r=j+232|0;P=H[j+216>>2]!=H[j+220>>2];D=1;while(1){h=i;i=h+1|0;a=H[r+172>>2];F:{G:{if((a|0)!=-1){b=H[r+196>>2]+(a<<2)|0;f=H[b>>2];a=f-1|0;H[b>>2]=a;b=9;if((f|0)<=0){break F}a=H[H[H[r+184>>2]+N(H[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break F}b=H[(a<<2)+12144>>2];break G}b=7;a=H[r+144>>2];a=J[(ea[H[H[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!I[r+76|0]){break G}b=0;m=H[r- -64>>2];k=H[r+72>>2];a=m+(k>>>3|0)|0;p=H[r+68>>2];if(a>>>0>=p>>>0){break G}f=I[a|0];a=k+1|0;H[r+72>>2]=a;f=f>>>(k&7)&1;if(!f){break G}q=a>>>3|0;b=m+q|0;H:{if(b>>>0>=p>>>0){b=a;a=0;break H}t=I[b|0];b=k+2|0;H[r+72>>2]=b;q=b>>>3|0;a=t>>>(a&7)&1}k=m+q|0;if(k>>>0

>>0){k=I[k|0];H[r+72>>2]=b+1;b=k>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|f}H[r+168>>2]=b}a=b;I:{J:{if(!a){if((c|0)==(g|0)){b=-1;break D}d=-1;m=H[j+8>>2];t=H[m+24>>2];D=c-4|0;f=H[D>>2];a=-1;K:{if((f|0)==-1){break K}k=f+1|0;k=(k>>>0)%3|0?k:f-2|0;a=-1;if((k|0)==-1){break K}a=H[H[m>>2]+(k<<2)>>2]}b=H[t+(a<<2)>>2];if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)==(f|0)){b=-1;break D}if((f|0)!=-1){b=-1;if(H[H[m+12>>2]+(f<<2)>>2]!=-1){break D}}k=H[m+12>>2];if((d|0)!=-1){b=-1;if(H[k+(d<<2)>>2]!=-1){break D}}p=N(h,3);b=p+1|0;H[k+(f<<2)>>2]=b;w=b<<2;H[w+k>>2]=f;q=p+2|0;H[k+(d<<2)>>2]=q;y=q<<2;H[y+k>>2]=d;k=-1;h=-1;L:{if((f|0)==-1){break L}M:{if((f>>>0)%3|0){b=f-1|0;break M}b=f+2|0;h=-1;if((b|0)==-1){break L}}h=H[H[m>>2]+(b<<2)>>2]}N:{if((d|0)==-1){break N}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1){break N}k=H[H[m>>2]+(b<<2)>>2]}b=-1;if((a|0)==(h|0)|(a|0)==(k|0)){break D}b=H[m>>2];H[b+(p<<2)>>2]=a;H[b+w>>2]=k;H[b+y>>2]=h;if((h|0)!=-1){H[t+(h<<2)>>2]=q}b=H[j+120>>2]+(a>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(a)&d,H[Q>>2]=R;H[D>>2]=p;k=H[c-4>>2];break J}b=-1;O:{P:{Q:{R:{S:{T:{U:{V:{W:{switch(a-1|0){case 2:case 4:if((c|0)==(g|0)){break D}t=c-4|0;d=H[t>>2];f=H[j+8>>2];m=H[f+12>>2];if((d|0)!=-1&H[m+(d<<2)>>2]!=-1){break D}k=N(h,3);p=(a|0)==5;q=k+(p?2:1)|0;w=q<<2;H[w+m>>2]=d;H[m+(d<<2)>>2]=q;Ka(f+24|0,11424);a=H[j+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(L|0)){break D}a=H[a>>2];y=a+w|0;b=H[f+28>>2];f=H[f+24>>2];w=(b-f>>2)-1|0;H[y>>2]=w;if((b|0)!=(f|0)){H[m+(w<<2)>>2]=q}b=p?k:k+2|0;q=a+(k+p<<2)|0;X:{if((d|0)==-1){H[a+(b<<2)>>2]=-1;b=-1;break X}Y:{Z:{_:{if((d>>>0)%3|0){f=d-1|0;break _}f=d+2|0;if((f|0)==-1){break Z}}f=H[a+(f<<2)>>2];H[a+(b<<2)>>2]=f;if((f|0)==-1){break Y}H[m+(f<<2)>>2]=b;break Y}H[a+(b<<2)>>2]=-1}f=d+1|0;d=(f>>>0)%3|0?f:d-2|0;b=-1;if((d|0)==-1){break X}b=H[a+(d<<2)>>2]}H[q>>2]=b;H[t>>2]=k;break V;case 0:if((c|0)==(d|0)){break D}a=c-4|0;m=H[a>>2];H[l+68>>2]=a;p=H[l+44>>2];$:{if(!p){c=a;break $}f=H[l+40>>2];q=Uj(p)>>>0>1;b=h&p+2147483647;aa:{if(!q){break aa}b=h;if(b>>>0

>>0){break aa}b=(h>>>0)%(p>>>0)|0}k=b;b=H[f+(k<<2)>>2];if(!b){c=a;break $}b=H[b>>2];if(!b){c=a;break $}ba:{if(!q){f=p-1|0;while(1){p=H[b+4>>2];ca:{if((p|0)!=(h|0)){if((k|0)==(f&p)){break ca}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}while(1){f=H[b+4>>2];da:{if((f|0)!=(h|0)){if(f>>>0>=p>>>0){f=(f>>>0)%(p>>>0)|0}if((f|0)==(k|0)){break da}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}if((a|0)!=(x|0)){H[a>>2]=H[b+12>>2];H[l+68>>2]=c;break $}a=x-d|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break B}a=pa(f<<2)}else{a=0}g=a+(g<<2)|0;H[g>>2]=H[b+12>>2];c=g+4|0;if((d|0)!=(x|0)){while(1){g=g-4|0;x=x-4|0;H[g>>2]=H[x>>2];if((d|0)!=(x|0)){continue}break}}x=a+(f<<2)|0;H[l+72>>2]=x;H[l+68>>2]=c;H[l+64>>2]=g;if(d){oa(d)}}if((c|0)==(g|0)){break P}w=c-4|0;a=H[w>>2];if((a|0)==(m|0)){break P}b=(a|0)==-1;p=H[j+8>>2];if(!b&H[H[p+12>>2]+(a<<2)>>2]!=-1){break P}q=H[p+12>>2];if((m|0)!=-1&H[q+(m<<2)>>2]!=-1){break P}k=N(h,3);t=k+2|0;H[q+(a<<2)>>2]=t;h=t<<2;H[h+q>>2]=a;d=k+1|0;H[q+(m<<2)>>2]=d;y=d<<2;H[y+q>>2]=m;if(b){break T}if((a>>>0)%3|0){f=a-1|0;break S}f=a+2|0;if((f|0)!=-1){break S}d=H[p>>2];f=-1;break R;case 6:break W;default:break D}}k=H[j+8>>2];Ka(k+24|0,11424);f=H[j+8>>2];a=N(h,3);m=H[k+28>>2];p=H[k+24>>2];q=m-p|0;k=q>>2;t=k-1|0;H[H[f>>2]+(a<<2)>>2]=t;Ka(f+24|0,11424);w=a+1|0;H[H[f>>2]+(w<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;f=H[j+8>>2];Ka(f+24|0,11424);y=a+2|0;H[H[f>>2]+(y<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;E=H[j+8>>2];f=H[E+24>>2];if(H[E+28>>2]-f>>2>(L|0)){break D}ea:{fa:{if((m|0)!=(p|0)){H[f+(t<<2)>>2]=a;b=0;if((q|0)==-4){break fa}}H[f+(k<<2)>>2]=w;b=k+1|0;if((b|0)==-1){break ea}}H[f+(b<<2)>>2]=y}if((c|0)!=(x|0)){H[c>>2]=a;c=c+4|0;H[l+68>>2]=c;break U}b=c-d|0;k=b>>2;g=k+1|0;if(g>>>0>=1073741824){break b}f=b>>>1|0;b=b>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(b){if(b>>>0>=1073741824){break B}f=pa(b<<2)}else{f=0}g=f+(k<<2)|0;H[g>>2]=a;x=f+(b<<2)|0;a=g+4|0;if((c|0)!=(d|0)){while(1){g=g-4|0;c=c-4|0;H[g>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[l+72>>2]=x;H[l+68>>2]=a;H[l+64>>2]=g;if(d){oa(d)}c=a}d=g}Ce(r,H[c-4>>2]);a=H[j+40>>2];if((a|0)==H[j+36>>2]){break I}b=a-12|0;f=H[b+4>>2];h=(h^-1)+n|0;if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}k=I[a-4|0];f=H[b>>2];H[j+40>>2]=b;if((f|0)<0){break P}m=c-4|0;a=H[m>>2];H[l+20>>2]=(f^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);f=H[l>>2];ga:{if(k&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}H[f+12>>2]=b;b=H[j+40>>2];if((b|0)==H[j+36>>2]){break I}while(1){a=b-12|0;f=H[a+4>>2];if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}f=I[b-4|0];b=H[a>>2];H[j+40>>2]=a;if((b|0)<0){break P}a=H[m>>2];H[l+20>>2]=(b^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);k=H[l>>2];ha:{if(f&1){b=-1;if((a|0)==-1){break ha}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ha}b=-1;if((a|0)==-1){break ha}b=a-1|0;if((a>>>0)%3|0){break ha}b=a+2|0}H[k+12>>2]=b;b=H[j+40>>2];if((b|0)!=H[j+36>>2]){continue}break}break I}f=-1;d=H[p>>2];H[d+(k<<2)>>2]=-1;b=-1;break Q}d=H[p>>2];f=H[d+(f<<2)>>2]}H[(k<<2)+d>>2]=f;E=a+1|0;a=(E>>>0)%3|0?E:a-2|0;b=-1;if((a|0)==-1){break Q}b=H[(a<<2)+d>>2]}H[d+y>>2]=b;ia:{if((m|0)==-1){H[d+h>>2]=-1;t=-1;a=-1;break ia}ja:{ka:{la:{if((m>>>0)%3|0){b=m-1|0;break la}b=m+2|0;if((b|0)==-1){break ka}}a=H[(b<<2)+d>>2];H[d+h>>2]=a;if((a|0)==-1){break ja}H[H[p+24>>2]+(a<<2)>>2]=t;break ja}H[d+h>>2]=-1}t=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ia}t=H[(b<<2)+d>>2];a=b}b=H[j+388>>2];h=f<<2;m=b+h|0;y=b;b=t<<2;H[m>>2]=H[m>>2]+H[y+b>>2];m=b;b=H[p+24>>2];m=m+b|0;if((f|0)!=-1){H[b+h>>2]=H[m>>2]}b=a;while(1){if((b|0)==-1){break O}H[(b<<2)+d>>2]=f;p=b+1|0;b=(p>>>0)%3|0?p:b-2|0;h=-1;ma:{if((b|0)==-1){break ma}b=H[q+(b<<2)>>2];h=-1;if((b|0)==-1){break ma}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0}b=h;if((a|0)!=(b|0)){continue}break}}b=-1;if(!D){break E}break D}H[m>>2]=-1;na:{if(P){break na}if((z|0)!=(A|0)){H[A>>2]=t;A=A+4|0;H[l+28>>2]=A;break na}a=z-o|0;h=a>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=a>>>1|0;d=a>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break B}a=pa(d<<2)}else{a=0}b=a+(h<<2)|0;H[b>>2]=t;A=b+4|0;if((o|0)!=(z|0)){while(1){b=b-4|0;z=z-4|0;H[b>>2]=H[z>>2];if((o|0)!=(z|0)){continue}break}}z=a+(d<<2)|0;H[l+32>>2]=z;H[l+28>>2]=A;H[l+24>>2]=b;if(o){oa(o)}o=b}H[w>>2]=k}Ce(r,k);d=g}D=(i|0)<(n|0);if((i|0)!=(n|0)){continue}break}i=n}b=-1;d=H[j+8>>2];if(H[d+28>>2]-H[d+24>>2]>>2>(L|0)){break D}if((c|0)!=(g|0)){x=j+72|0;h=j+60|0;p=j+312|0;while(1){c=c-4|0;o=H[c>>2];H[l+68>>2]=c;oa:{pa:{qa:{if(J[j+270>>1]<=513){if(!I[j+364|0]){break pa}a=H[j+360>>2];b=H[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=K[j+356>>2]){break qa}b=I[b|0];H[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break qa}break pa}if(Ba(p)){break pa}}b=H[j+64>>2];a=H[j+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break b}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}pb(h,a);b=H[j+64>>2]}H[j+64>>2]=b+1;a=H[j+60>>2]+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;b=H[j+76>>2];if((b|0)!=H[j+80>>2]){H[b>>2]=o;H[j+76>>2]=b+4;break oa}d=H[x>>2];a=b-d|0;k=a>>2;f=k+1|0;if(f>>>0<1073741824){n=a>>>1|0;n=a>>>0>=2147483644?1073741823:f>>>0>>0?n:f;if(n){if(n>>>0>=1073741824){break B}a=pa(n<<2)}else{a=0}f=a+(k<<2)|0;H[f>>2]=o;o=f+4|0;if((b|0)!=(d|0)){while(1){f=f-4|0;b=b-4|0;H[f>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[j+80>>2]=a+(n<<2);H[j+76>>2]=o;H[j+72>>2]=f;if(!d){break oa}oa(d);break oa}break b}m=H[j+8>>2];r=H[m>>2];if(((H[m+4>>2]-r>>2>>>0)/3|0)<=(i|0)){b=-1;break D}d=-1;q=H[m+24>>2];n=-1;ra:{if((o|0)==-1){break ra}g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;n=-1;if((g|0)==-1){break ra}n=H[r+(g<<2)>>2]}a=H[q+(n<<2)>>2];sa:{if((a|0)==-1){k=1;f=-1;break sa}k=1;f=-1;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;if((a|0)==-1){break sa}k=0;d=a;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){f=H[r+(b<<2)>>2]}}b=-1;g=-1;a=H[q+(f<<2)>>2];if((a|0)!=-1){g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}if((d|0)==(o|0)|(g|0)==(o|0)|((o|0)!=-1&H[H[m+12>>2]+(o<<2)>>2]!=-1|(d|0)==(g|0))){break D}if(!k&H[H[m+12>>2]+(d<<2)>>2]!=-1){break D}k=-1;a=H[m+12>>2];m=-1;ta:{if((g|0)==-1){break ta}if(H[a+(g<<2)>>2]!=-1){break D}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;m=-1;if((b|0)==-1){break ta}m=H[r+(b<<2)>>2]}b=N(i,3);H[l>>2]=b;H[a+(b<<2)>>2]=o;H[a+(o<<2)>>2]=b;b=H[l>>2]+1|0;H[a+(b<<2)>>2]=d;H[a+(d<<2)>>2]=b;b=H[l>>2]+2|0;H[a+(b<<2)>>2]=g;H[a+(g<<2)>>2]=b;a=H[l>>2];H[r+(a<<2)>>2]=f;b=a+1|0;d=r+(b<<2)|0;H[d>>2]=m;g=a+2|0;o=r+(g<<2)|0;H[o>>2]=n;a=H[j+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;r=H[n>>2];Q=n,R=Vj(f)&r,H[Q>>2]=R;k=(b|0)!=-1?H[d>>2]:k;b=a+(k>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(k)&d,H[Q>>2]=R;b=-1;b=(g|0)!=-1?H[o>>2]:b;a=a+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;F[l+88|0]=1;_c(h,l+88|0);Ka(x,l);i=i+1|0;g=H[l+64>>2]}if((c|0)!=(g|0)){continue}break}d=H[j+8>>2]}b=-1;if(((H[d+4>>2]-H[d>>2]>>2>>>0)/3|0)!=(i|0)){break D}b=H[d+28>>2]-H[d+24>>2]>>2;i=H[l+24>>2];f=H[l+28>>2];if((i|0)==(f|0)){break C}while(1){a=H[i>>2];h=H[d+24>>2];c=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){while(1){c=b-2|0;b=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){continue}break}}if(a>>>0<=c>>>0){H[l>>2]=d;g=H[g>>2];F[l+12|0]=1;H[l+8>>2]=g;H[l+4>>2]=g;if((g|0)!=-1){while(1){d=H[H[j+8>>2]>>2]+(g<<2)|0;if(H[d>>2]!=(c|0)){b=-1;break D}H[d>>2]=a;uc(l);g=H[l+8>>2];if((g|0)!=-1){continue}break}d=H[j+8>>2]}h=H[d+24>>2];g=h+(c<<2)|0;if((a|0)!=-1){H[h+(a<<2)>>2]=H[g>>2]}H[g>>2]=-1;g=1<>2];a=h+(a>>>3&536870908)|0;h=h+(c>>>3&536870908)|0;c=1<>2]&c){g=g|H[a>>2]}else{g=H[a>>2]&(g^-1)}H[a>>2]=g;H[h>>2]=H[h>>2]&(c^-1);b=b-1|0}i=i+4|0;if((f|0)!=(i|0)){continue}break}}i=H[l+24>>2]}if(i){oa(i)}a=H[l+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[l+40>>2];H[l+40>>2]=0;if(a){oa(a)}a=H[l+64>>2];if(a){H[l+68>>2]=a;oa(a)}ca=l+96|0;break A}wa();v()}if((b|0)==-1){break z}a=O;c=H[a+16>>2];d=c+H[a>>2]|0;c=H[a+8>>2]-c|0;a=H[H[j+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=d;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=c;H[a+12>>2]=0;a=H[j+4>>2];c=J[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=H[a+32>>2];c=H[a+16>>2];d=M+H[a+20>>2]|0;c=c+C|0;d=c>>>0>>0?d+1|0:d;H[a+16>>2]=c;H[a+20>>2]=d}ua:{if(H[j+216>>2]==H[j+220>>2]){break ua}c=H[j+8>>2];a=H[c>>2];c=H[c+4>>2];va:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ua}c=0;break va}if((a|0)==(c|0)){break ua}c=0;while(1){if(cd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}while(1){if(bd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}ad(e);c=H[j+216>>2];if((c|0)!=H[j+220>>2]){n=0;while(1){d=N(n,144);Jc((d+c|0)+4|0,H[j+8>>2]);a=H[B>>2];e=a+d|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((d+H[B>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[B>>2]}if(!Ic((a+d|0)+4|0)){break z}n=n+1|0;c=H[j+216>>2];if(n>>>0<(H[j+220>>2]-c|0)/144>>>0){continue}break}}a=H[j+8>>2];Hb(j+184|0,H[a+28>>2]-H[a+24>>2]>>2);u=H[j+216>>2];if((u|0)!=H[j+220>>2]){c=0;while(1){a=N(c,144)+u|0;d=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[j+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(d|0)?d:a);c=c+1|0;u=H[j+216>>2];if(c>>>0<(H[j+220>>2]-u|0)/144>>>0){continue}break}}u=$c(j,b)}break c}u=0}ca=s- -64|0;return u|0}sa();v()}function ii(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0;u=ca+-64|0;ca=u;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}c=0;H[a+144>>2]=0;l=H[a+140>>2];a:{if(!l){break a}if(l>>>0>=4){b=l&-4;while(1){e=c<<2;H[e+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(e|4)>>2]=0;H[H[a+136>>2]+(e|8)>>2]=0;H[H[a+136>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((b|0)!=(f|0)){continue}break}}b=l&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;w=w+1|0;if((b|0)!=(w|0)){continue}break}}H[a+148>>2]=0}b:{c:{c=H[a+4>>2];w=I[c+36|0];b=w<<8|I[c+37|0];if(b>>>0<=513){g=H[c+32>>2];d:{if(b>>>0<=511){f=H[g+20>>2];l=H[g+16>>2];e=l+4|0;f=e>>>0<4?f+1|0:f;b=f;d=H[g+12>>2];if(K[g+8>>2]>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}f=l+H[g>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[g+16>>2]=e;H[g+20>>2]=b;break d}if(!Ea(1,u,g)){break c}c=H[a+4>>2];w=I[c+36|0];f=H[u>>2]}H[a+132>>2]=f}d=H[c+32>>2];e:{f:{g:{if((w&255)>>>0<=1){w=0;b=H[d+20>>2];e=H[d+16>>2];f=e+4|0;b=f>>>0<4?b+1|0:b;l=H[d+12>>2];if(K[d+8>>2]>>0&(l|0)<=(b|0)|(b|0)>(l|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[u+60>>2]=e;H[d+16>>2]=f;H[d+20>>2]=b;H[a+156>>2]=e;t=a+156|0;break g}w=0;if(!Ea(1,u+60|0,d)){break b}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[u+60>>2];t=a+156|0;if(b>>>0>1){break f}}d=H[c+32>>2];e=H[d+8>>2];l=H[d+12>>2];c=H[d+20>>2];f=H[d+16>>2];b=f+4|0;c=b>>>0<4?c+1|0:c;if(b>>>0>e>>>0&(c|0)>=(l|0)|(c|0)>(l|0)){break b}f=f+H[d>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+56>>2]=f;H[d+16>>2]=b;H[d+20>>2]=c;break e}if(!Ea(1,u+56|0,H[c+32>>2])){break b}f=H[u+56>>2]}if(f>>>0>1431655765|K[t>>2]>N(f,3)>>>0){break b}E=H[a+4>>2];x=H[E+32>>2];c=H[x+8>>2];d=H[x+12>>2];b=H[x+20>>2];h=H[x+16>>2];if((d|0)<=(b|0)&h>>>0>=c>>>0|(b|0)>(d|0)){break b}j=H[x>>2];k=I[j+h|0];e=x;l=h+1|0;g=l?b:b+1|0;H[e+16>>2]=l;H[e+20>>2]=g;h:{if(I[E+36|0]<=1){e=c;c=h+5|0;b=c>>>0<5?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}e=j+l|0;t=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[u+52>>2]=t;H[x+16>>2]=c;H[x+20>>2]=b;break h}if(!Ea(1,u+52|0,x)){break b}t=H[u+52>>2]}if(f>>>0>>0|((t>>>0)/3|0)+t>>>0>>0){break b}c=H[a+4>>2];d=H[c+32>>2];i:{if(I[c+36|0]<=1){c=H[d+20>>2];b=H[d+16>>2];e=b+4|0;c=e>>>0<4?c+1|0:c;l=H[d+12>>2];if(K[d+8>>2]>>0&(l|0)<=(c|0)|(c|0)>(l|0)){break b}b=b+H[d>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[u+48>>2]=b;H[d+16>>2]=e;H[d+20>>2]=c;break i}if(!Ea(1,u+48|0,d)){break b}b=H[u+48>>2]}if(b>>>0>t>>>0){break b}H[a+28>>2]=H[a+24>>2];c=$b(pa(88));e=H[a+8>>2];H[a+8>>2]=c;if(e){cb(e);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,f);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,f);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];M=a+216|0;ed(M);dd(M,k);if(!Lc(H[a+8>>2],f,H[a+156>>2]+b|0)){break b}c=H[a+156>>2];F[u|0]=1;Oa(a+120|0,b+c|0,u);f=H[a+4>>2];c=J[f+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){g=H[f+32>>2];k:{if(c>>>0<=511){f=H[g+20>>2];l=H[g+16>>2];e=l+4|0;f=e>>>0<4?f+1|0:f;c=f;d=H[g+12>>2];if(K[g+8>>2]>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}f=l+H[g>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[g+16>>2]=e;H[g+20>>2]=c;break k}if(!Ea(1,u+44|0,g)){break b}f=H[u+44>>2]}if(!f){break b}d=H[H[a+4>>2]+32>>2];l=H[d+8>>2];c=H[d+16>>2];e=l-c|0;c=H[d+12>>2]-(H[d+20>>2]+(c>>>0>l>>>0)|0)|0;if((c|0)<=0&f>>>0>e>>>0|(c|0)<0){break b}g=Ha(u);d=H[H[a+4>>2]+32>>2];l=H[d+16>>2];e=(l+H[d>>2]|0)+f|0;c=H[d+8>>2]-l|0;G[g+38>>1]=J[d+38>>1];H[g>>2]=e;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=c-f;H[g+12>>2]=0;c=Ib(a,g);if((c|0)==-1){break b}E=c;P=c>>31;break j}E=-1;P=-1;if((Ib(a,H[f+32>>2])|0)==-1){break b}}B=a+232|0;Ee(B,a);H[a+372>>2]=k;H[a+384>>2]=H[a+156>>2]+b;x=Ha(u);g=x;d=0;l=ca-16|0;ca=l;l:{if(!Ge(B,g)){break l}b=H[g+20>>2];f=H[g+16>>2];c=f+4|0;b=c>>>0<4?b+1|0:b;e=H[g+12>>2];if(K[g+8>>2]>>0&(e|0)<=(b|0)|(b|0)>(e|0)){break l}f=f+H[g>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[g+16>>2]=c;H[g+20>>2]=b;if((f|0)<0){break l}b=f;f=H[B+152>>2];if((b|0)>=(f|0)){break l}H[l+12>>2]=0;c=H[B+156>>2];b=H[B+160>>2]-c>>2;m:{if(b>>>0>>0){Pa(B+156|0,f-b|0,l+12|0);break m}if(b>>>0<=f>>>0){break m}H[B+160>>2]=c+(f<<2)}d=ta(B+168|0,g)}ca=l+16|0;n:{if(!d){break n}d=0;c=0;f=0;l=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;g=a;O=H[a+124>>2];o:{p:{q:{r:{s:{t:{if((t|0)<=0){break t}z=g+400|0;Q=g+232|0;C=H[g+216>>2]!=H[g+220>>2];y=1;while(1){e=l;l=e+1|0;u:{v:{w:{x:{y:{if(H[g+420>>2]!=-1){if(Ba(z)){break y}}if(!I[g+308|0]){break x}z:{o=H[g+296>>2];r=H[g+304>>2];a=o+(r>>>3|0)|0;k=H[g+300>>2];if(a>>>0>=k>>>0){break z}b=I[a|0];a=r+1|0;H[g+304>>2]=a;h=b>>>(r&7)&1;if(!h){break z}n=a>>>3|0;b=o+n|0;A:{if(b>>>0>=k>>>0){b=a;a=0;break A}j=I[b|0];b=r+2|0;H[g+304>>2]=b;n=b>>>3|0;a=j>>>(a&7)&1}j=n+o|0;if(j>>>0>>0){j=I[j|0];H[g+304>>2]=b+1;b=j>>>(b&7)<<1&2}else{b=0}p=(a|b)<<1|h;H[g+416>>2]=p;break w}H[g+416>>2]=0;break x}p=H[g+420>>2];H[g+416>>2]=p;if(p){break w}}if((c|0)==(f|0)){b=-1;break s}p=-1;n=H[g+8>>2];o=H[n+24>>2];j=c-4|0;m=H[j>>2];d=-1;B:{if((m|0)==-1){break B}b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;d=-1;if((b|0)==-1){break B}d=H[H[n>>2]+(b<<2)>>2]}b=H[o+(d<<2)>>2];if((b|0)!=-1){a=b+1|0;p=(a>>>0)%3|0?a:b-2|0}if((m|0)==(p|0)){b=-1;break s}if((m|0)!=-1){b=-1;if(H[H[n+12>>2]+(m<<2)>>2]!=-1){break s}}k=H[n+12>>2];if((p|0)!=-1){b=-1;if(H[k+(p<<2)>>2]!=-1){break s}}q=N(e,3);a=q+1|0;H[k+(m<<2)>>2]=a;h=a<<2;H[h+k>>2]=m;r=q+2|0;H[k+(p<<2)>>2]=r;e=r<<2;H[e+k>>2]=p;k=-1;a=-1;C:{if((m|0)==-1){break C}D:{if((m>>>0)%3|0){b=m-1|0;break D}b=m+2|0;a=-1;if((b|0)==-1){break C}}a=H[H[n>>2]+(b<<2)>>2]}E:{if((p|0)==-1){break E}b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;if((b|0)==-1){break E}k=H[H[n>>2]+(b<<2)>>2]}b=-1;if((a|0)==(d|0)|(d|0)==(k|0)){break s}b=H[n>>2];H[b+(q<<2)>>2]=d;H[b+h>>2]=k;H[b+e>>2]=a;if((a|0)!=-1){H[o+(a<<2)>>2]=r}b=H[g+120>>2]+(d>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(d)&a,H[R>>2]=S;H[j>>2]=q;p=H[c-4>>2];break v}b=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{P:{switch(p-1|0){case 2:case 4:if((c|0)==(f|0)){break s}h=c-4|0;m=H[h>>2];r=H[g+8>>2];d=H[r+12>>2];if((m|0)!=-1&H[d+(m<<2)>>2]!=-1){break s}q=N(e,3);k=(p|0)==5;j=q+(k?2:1)|0;a=j<<2;H[a+d>>2]=m;H[d+(m<<2)>>2]=j;Ka(r+24|0,11424);d=H[g+8>>2];o=H[d+24>>2];if(H[d+28>>2]-o>>2>(O|0)){break s}n=H[d>>2];p=n+a|0;d=H[r+28>>2];b=H[r+24>>2];a=(d-b>>2)-1|0;H[p>>2]=a;if((b|0)!=(d|0)){H[o+(a<<2)>>2]=j}d=k?q:q+2|0;j=n+(k+q<<2)|0;Q:{if((m|0)==-1){H[n+(d<<2)>>2]=-1;b=-1;break Q}R:{S:{T:{if((m>>>0)%3|0){a=m-1|0;break T}a=m+2|0;if((a|0)==-1){break S}}a=H[n+(a<<2)>>2];H[n+(d<<2)>>2]=a;if((a|0)==-1){break R}H[o+(a<<2)>>2]=d;break R}H[n+(d<<2)>>2]=-1}a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;b=-1;if((a|0)==-1){break Q}b=H[n+(a<<2)>>2]}H[j>>2]=b;H[h>>2]=q;break O;case 0:if((c|0)==(d|0)){break s}a=c-4|0;m=H[a>>2];H[i+68>>2]=a;k=H[i+44>>2];U:{if(!k){c=a;break U}o=H[i+40>>2];h=Uj(k)>>>0>1;b=e&k+2147483647;V:{if(!h){break V}b=e;if(b>>>0>>0){break V}b=(e>>>0)%(k>>>0)|0}j=b;b=H[o+(j<<2)>>2];if(!b){c=a;break U}b=H[b>>2];if(!b){c=a;break U}W:{if(!h){k=k-1|0;while(1){h=H[b+4>>2];X:{if((h|0)!=(e|0)){if((j|0)==(h&k)){break X}c=a;break U}if((e|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}while(1){h=H[b+4>>2];Y:{if((h|0)!=(e|0)){if(h>>>0>=k>>>0){h=(h>>>0)%(k>>>0)|0}if((h|0)==(j|0)){break Y}c=a;break U}if((e|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}if((a|0)!=(A|0)){H[a>>2]=H[b+12>>2];H[i+68>>2]=c;break U}h=A-d|0;c=h>>2;f=c+1|0;if(f>>>0>=1073741824){break M}a=h>>>1|0;h=h>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(h){if(h>>>0>=1073741824){break p}a=pa(h<<2)}else{a=0}f=a+(c<<2)|0;H[f>>2]=H[b+12>>2];c=f+4|0;if((d|0)!=(A|0)){while(1){f=f-4|0;A=A-4|0;H[f>>2]=H[A>>2];if((d|0)!=(A|0)){continue}break}}A=a+(h<<2)|0;H[i+72>>2]=A;H[i+68>>2]=c;H[i+64>>2]=f;if(d){oa(d)}}if((c|0)==(f|0)){break G}j=c-4|0;n=H[j>>2];if((n|0)==(m|0)){break G}d=(n|0)==-1;q=H[g+8>>2];if(!d&H[H[q+12>>2]+(n<<2)>>2]!=-1){break G}r=H[q+12>>2];if((m|0)!=-1&H[r+(m<<2)>>2]!=-1){break G}p=N(e,3);e=p+2|0;H[r+(n<<2)>>2]=e;o=e<<2;H[o+r>>2]=n;a=p+1|0;H[r+(m<<2)>>2]=a;b=a<<2;H[b+r>>2]=m;if(d){break L}if((n>>>0)%3|0){k=n-1|0;break J}k=n+2|0;if((k|0)!=-1){break J}d=H[q>>2];a=-1;break I;case 6:break P;default:break s}}a=H[g+8>>2];Ka(a+24|0,11424);h=H[g+8>>2];p=N(e,3);q=H[a+28>>2];r=H[a+24>>2];o=q-r|0;n=o>>2;k=n-1|0;H[H[h>>2]+(p<<2)>>2]=k;Ka(h+24|0,11424);j=p+1|0;H[H[h>>2]+(j<<2)>>2]=(H[h+28>>2]-H[h+24>>2]>>2)-1;a=H[g+8>>2];Ka(a+24|0,11424);h=p+2|0;H[H[a>>2]+(h<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[g+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(O|0)){break s}Z:{_:{if((q|0)!=(r|0)){H[m+(k<<2)>>2]=p;b=0;if((o|0)==-4){break _}}H[m+(n<<2)>>2]=j;b=n+1|0;if((b|0)==-1){break Z}}H[m+(b<<2)>>2]=h}if((c|0)!=(A|0)){H[c>>2]=p;c=c+4|0;H[i+68>>2]=c;break N}h=c-d|0;b=h>>2;f=b+1|0;if(f>>>0>=1073741824){break K}a=h>>>1|0;h=h>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(h){if(h>>>0>=1073741824){break p}a=pa(h<<2)}else{a=0}f=a+(b<<2)|0;H[f>>2]=p;A=a+(h<<2)|0;a=f+4|0;if((c|0)!=(d|0)){while(1){f=f-4|0;c=c-4|0;H[f>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[i+72>>2]=A;H[i+68>>2]=a;H[i+64>>2]=f;if(d){oa(d)}c=a}d=f}De(Q,H[c-4>>2]);h=H[g+40>>2];if((h|0)==H[g+36>>2]){break u}b=h-12|0;a=H[b+4>>2];k=(e^-1)+t|0;if(a>>>0>k>>>0){break G}if((a|0)!=(k|0)){break u}e=I[h-4|0];a=H[b>>2];H[g+40>>2]=b;if((a|0)<0){break G}h=c-4|0;j=H[h>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];$:{if(e&1){a=-1;if((j|0)==-1){break $}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break $}a=-1;if((j|0)==-1){break $}a=j-1|0;if((j>>>0)%3|0){break $}a=j+2|0}H[b+12>>2]=a;b=H[g+40>>2];if((b|0)==H[g+36>>2]){break u}while(1){j=b-12|0;a=H[j+4>>2];if(a>>>0>k>>>0){break G}if((a|0)!=(k|0)){break u}e=I[b-4|0];a=H[j>>2];H[g+40>>2]=j;if((a|0)<0){break G}j=H[h>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];aa:{if(e&1){a=-1;if((j|0)==-1){break aa}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break aa}a=-1;if((j|0)==-1){break aa}a=j-1|0;if((j>>>0)%3|0){break aa}a=j+2|0}H[b+12>>2]=a;b=H[g+40>>2];if((b|0)!=H[g+36>>2]){continue}break}break u}sa();v()}k=-1;d=H[q>>2];H[d+(p<<2)>>2]=-1;h=-1;break H}sa();v()}d=H[q>>2];a=H[d+(k<<2)>>2]}k=a;H[(p<<2)+d>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;h=-1;if((a|0)==-1){break H}h=H[(a<<2)+d>>2]}H[b+d>>2]=h;ba:{if((m|0)==-1){H[d+o>>2]=-1;n=-1;a=-1;break ba}ca:{da:{ea:{if((m>>>0)%3|0){b=m-1|0;break ea}b=m+2|0;if((b|0)==-1){break da}}a=H[(b<<2)+d>>2];H[d+o>>2]=a;if((a|0)==-1){break ca}H[H[q+24>>2]+(a<<2)>>2]=e;break ca}H[d+o>>2]=-1}n=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ba}n=H[(b<<2)+d>>2];a=b}h=H[g+388>>2];e=k<<2;b=h+e|0;o=b;m=H[b>>2];b=n<<2;H[o>>2]=m+H[b+h>>2];h=b;b=H[q+24>>2];o=h+b|0;if((k|0)!=-1){H[b+e>>2]=H[o>>2]}b=a;while(1){if((b|0)==-1){break F}H[(b<<2)+d>>2]=k;h=b+1|0;b=(h>>>0)%3|0?h:b-2|0;e=-1;fa:{if((b|0)==-1){break fa}h=H[r+(b<<2)>>2];e=-1;if((h|0)==-1){break fa}b=h+1|0;e=(b>>>0)%3|0?b:h-2|0}b=e;if((a|0)!=(b|0)){continue}break}}b=-1;if(!(y&1)){break t}break s}H[o>>2]=-1;ga:{if(C){break ga}if((D|0)!=(L|0)){H[L>>2]=n;L=L+4|0;H[i+28>>2]=L;break ga}d=D-s|0;b=d>>2;e=b+1|0;if(e>>>0>=1073741824){break q}a=d>>>1|0;e=d>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(e){if(e>>>0>=1073741824){break p}a=pa(e<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;L=b+4|0;if((s|0)!=(D|0)){while(1){b=b-4|0;D=D-4|0;H[b>>2]=H[D>>2];if((s|0)!=(D|0)){continue}break}}D=a+(e<<2)|0;H[i+32>>2]=D;H[i+28>>2]=L;H[i+24>>2]=b;if(s){oa(s)}s=b}H[j>>2]=p}De(Q,p);d=f}y=(l|0)<(t|0);if((l|0)!=(t|0)){continue}break}l=t}b=-1;y=H[g+8>>2];if(H[y+28>>2]-H[y+24>>2]>>2>(O|0)){break s}if((c|0)!=(f|0)){r=g+72|0;j=g+60|0;t=g+312|0;while(1){c=c-4|0;z=H[c>>2];H[i+68>>2]=c;ha:{ia:{ja:{if(J[g+270>>1]<=513){if(!I[g+364|0]){break ia}b=H[g+360>>2];a=H[g+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[g+356>>2]){break ja}a=I[a|0];H[g+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ja}break ia}if(Ba(t)){break ia}}ka:{la:{b=H[g+64>>2];e=H[g+68>>2];if((b|0)==e<<5){if((b+1|0)<0){break la}if(b>>>0<=1073741822){e=e<<6;b=(b&-32)+32|0;a=b>>>0>>0?e:b}else{a=2147483647}pb(j,a);b=H[g+64>>2]}H[g+64>>2]=b+1;e=H[g+60>>2]+(b>>>3&536870908)|0;a=H[e>>2];R=e,S=Vj(b)&a,H[R>>2]=S;b=H[g+76>>2];if((b|0)!=H[g+80>>2]){H[b>>2]=z;H[g+76>>2]=b+4;break ha}s=H[r>>2];h=b-s|0;e=h>>2;d=e+1|0;if(d>>>0>=1073741824){break ka}a=h>>>1|0;h=h>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(h){if(h>>>0>=1073741824){break p}a=pa(h<<2)}else{a=0}d=a+(e<<2)|0;H[d>>2]=z;e=d+4|0;if((b|0)!=(s|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(s|0)){continue}break}}H[g+80>>2]=a+(h<<2);H[g+76>>2]=e;H[g+72>>2]=d;if(!s){break ha}oa(s);break ha}sa();v()}sa();v()}q=H[g+8>>2];C=H[q>>2];if(((H[q+4>>2]-C>>2>>>0)/3|0)<=(l|0)){b=-1;break s}f=-1;b=-1;d=-1;s=H[q+24>>2];e=-1;ma:{if((z|0)==-1){break ma}a=z+1|0;a=(a>>>0)%3|0?a:z-2|0;e=-1;if((a|0)==-1){break ma}e=H[C+(a<<2)>>2]}o=H[s+(e<<2)>>2];na:{if((o|0)==-1){k=1;a=-1;break na}k=1;h=o+1|0;h=(h>>>0)%3|0?h:o-2|0;a=-1;if((h|0)==-1){break na}k=0;a=h+1|0;f=h;a=(a>>>0)%3|0?a:f-2|0;if((a|0)!=-1){a=H[C+(a<<2)>>2]}else{a=-1}}h=H[(a<<2)+s>>2];if((h|0)!=-1){d=h+1|0;d=(d>>>0)%3|0?d:h-2|0}if((f|0)==(z|0)|(d|0)==(z|0)|((z|0)!=-1&H[H[q+12>>2]+(z<<2)>>2]!=-1|(d|0)==(f|0))){break s}if(!k&H[H[q+12>>2]+(f<<2)>>2]!=-1){break s}k=-1;s=H[q+12>>2];h=-1;oa:{if((d|0)==-1){break oa}if(H[s+(d<<2)>>2]!=-1){break s}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;h=-1;if((b|0)==-1){break oa}h=H[C+(b<<2)>>2]}b=N(l,3);H[i>>2]=b;H[s+(b<<2)>>2]=z;H[s+(z<<2)>>2]=b;b=H[i>>2]+1|0;H[s+(b<<2)>>2]=f;H[s+(f<<2)>>2]=b;b=H[i>>2]+2|0;H[s+(b<<2)>>2]=d;H[s+(d<<2)>>2]=b;b=H[i>>2];H[C+(b<<2)>>2]=a;o=b+1|0;s=C+(o<<2)|0;H[s>>2]=h;h=b+2|0;d=C+(h<<2)|0;H[d>>2]=e;e=H[g+120>>2];f=o?a:-1;b=e+(f>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(f)&a,H[R>>2]=S;k=(o|0)!=-1?H[s>>2]:k;b=e+(k>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(k)&a,H[R>>2]=S;b=-1;b=(h|0)!=-1?H[d>>2]:b;f=e+(b>>>3&536870908)|0;a=H[f>>2];R=f,S=Vj(b)&a,H[R>>2]=S;F[i+88|0]=1;_c(j,i+88|0);Ka(r,i);l=l+1|0;f=H[i+64>>2]}if((c|0)!=(f|0)){continue}break}y=H[g+8>>2]}b=-1;if(((H[y+4>>2]-H[y>>2]>>2>>>0)/3|0)!=(l|0)){break s}b=H[y+28>>2]-H[y+24>>2]>>2;l=H[i+24>>2];e=H[i+28>>2];if((l|0)==(e|0)){break r}while(1){j=H[l>>2];a=H[y+24>>2];c=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){while(1){c=b-2|0;b=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){continue}break}}if(c>>>0>=j>>>0){H[i>>2]=y;d=H[d>>2];F[i+12|0]=1;H[i+8>>2]=d;H[i+4>>2]=d;if((d|0)!=-1){while(1){a=H[H[g+8>>2]>>2]+(d<<2)|0;if(H[a>>2]!=(c|0)){b=-1;break s}H[a>>2]=j;uc(i);d=H[i+8>>2];if((d|0)!=-1){continue}break}y=H[g+8>>2]}a=H[y+24>>2];f=a+(c<<2)|0;if((j|0)!=-1){H[a+(j<<2)>>2]=H[f>>2]}H[f>>2]=-1;h=1<>2];f=a+(j>>>3&536870908)|0;d=a+(c>>>3&536870908)|0;a=1<>2]&a){c=h|H[f>>2]}else{c=H[f>>2]&(h^-1)}H[f>>2]=c;H[d>>2]=H[d>>2]&(a^-1);b=b-1|0}l=l+4|0;if((e|0)!=(l|0)){continue}break}}l=H[i+24>>2]}if(l){oa(l)}a=H[i+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;break o}sa();v()}wa();v()}f=b;if((b|0)==-1){break n}b=H[x+16>>2];c=b+H[x>>2]|0;a=H[x+8>>2]-b|0;b=H[H[g+4>>2]+32>>2];G[b+38>>1]=J[b+38>>1];H[b>>2]=c;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=a;H[b+12>>2]=0;b=H[g+4>>2];a=J[b+36>>1];c=a<<8|a>>>8;if((c&65535)>>>0<=513){b=H[b+32>>2];e=b;a=H[b+16>>2];b=P+H[b+20>>2]|0;a=a+E|0;b=a>>>0>>0?b+1|0:b;H[e+16>>2]=a;H[e+20>>2]=b}pa:{if(H[g+216>>2]==H[g+220>>2]){break pa}a=H[g+8>>2];b=H[a>>2];a=H[a+4>>2];qa:{if((c&65535)>>>0>=513){if((a|0)==(b|0)){break pa}c=0;break qa}if((a|0)==(b|0)){break pa}c=0;while(1){if(cd(g,c)){c=c+3|0;a=H[g+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}while(1){if(bd(g,c)){c=c+3|0;a=H[g+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}ad(B);c=H[g+216>>2];if((c|0)!=H[g+220>>2]){t=0;while(1){e=N(t,144);Jc((e+c|0)+4|0,H[g+8>>2]);a=H[M>>2];b=a+e|0;c=H[b+132>>2];b=H[b+136>>2];if((c|0)!=(b|0)){while(1){Hc((e+H[M>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((b|0)!=(c|0)){continue}break}a=H[M>>2]}if(!Ic((a+e|0)+4|0)){break n}t=t+1|0;c=H[g+216>>2];if(t>>>0<(H[g+220>>2]-c|0)/144>>>0){continue}break}}a=H[g+8>>2];Hb(g+184|0,H[a+28>>2]-H[a+24>>2]>>2);w=H[g+216>>2];if((w|0)!=H[g+220>>2]){c=0;while(1){a=N(c,144)+w|0;b=H[a+60>>2]-H[a+56>>2]>>2;e=a+104|0;a=H[g+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(e,(a|0)<(b|0)?b:a);c=c+1|0;w=H[g+216>>2];if(c>>>0<(H[g+220>>2]-w|0)/144>>>0){continue}break}}w=$c(g,f)}break b}w=0}ca=u- -64|0;return w|0}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0;t=ca+-64|0;ca=t;H[a+132>>2]=0;if(H[a+148>>2]){d=H[a+144>>2];if(d){while(1){b=H[d>>2];oa(d);d=b;if(b){continue}break}}d=0;H[a+144>>2]=0;k=H[a+140>>2];a:{if(!k){break a}if(k>>>0>=4){b=k&-4;while(1){c=d<<2;H[c+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(c|4)>>2]=0;H[H[a+136>>2]+(c|8)>>2]=0;H[H[a+136>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=k&3;if(!b){break a}while(1){H[H[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;x=x+1|0;if((b|0)!=(x|0)){continue}break}}H[a+148>>2]=0}b:{c:{d=H[a+4>>2];x=I[d+36|0];b=x<<8|I[d+37|0];if(b>>>0<=513){f=H[d+32>>2];d:{if(b>>>0<=511){b=H[f+20>>2];e=H[f+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;k=H[f+12>>2];if(K[f+8>>2]>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break c}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[f+16>>2]=c;H[f+20>>2]=b;break d}if(!Ea(1,t,f)){break c}d=H[a+4>>2];x=I[d+36|0];e=H[t>>2]}H[a+132>>2]=e}f=H[d+32>>2];e:{f:{g:{if((x&255)>>>0<=1){x=0;b=H[f+20>>2];c=H[f+16>>2];e=c+4|0;b=e>>>0<4?b+1|0:b;k=H[f+12>>2];if(K[f+8>>2]>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break b}c=c+H[f>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+60>>2]=c;H[f+16>>2]=e;H[f+20>>2]=b;H[a+156>>2]=c;l=a+156|0;break g}x=0;if(!Ea(1,t+60|0,f)){break b}d=H[a+4>>2];b=I[d+36|0];H[a+156>>2]=H[t+60>>2];l=a+156|0;if(b>>>0>1){break f}}f=H[d+32>>2];c=H[f+8>>2];k=H[f+12>>2];d=H[f+20>>2];e=H[f+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(k|0)|(d|0)>(k|0)){break b}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[t+56>>2]=e;H[f+16>>2]=b;H[f+20>>2]=d;break e}if(!Ea(1,t+56|0,H[d+32>>2])){break b}e=H[t+56>>2]}if(e>>>0>1431655765|K[l>>2]>N(e,3)>>>0){break b}j=H[a+4>>2];y=H[j+32>>2];d=H[y+8>>2];f=H[y+12>>2];b=H[y+20>>2];m=H[y+16>>2];if((f|0)<=(b|0)&m>>>0>=d>>>0|(b|0)>(f|0)){break b}l=H[y>>2];g=I[l+m|0];c=y;k=m+1|0;C=k?b:b+1|0;H[c+16>>2]=k;H[c+20>>2]=C;h:{if(I[j+36|0]<=1){c=d;d=m+5|0;b=d>>>0<5?b+1|0:b;if(c>>>0>>0&(b|0)>=(f|0)|(b|0)>(f|0)){break b}c=k+l|0;l=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+52>>2]=l;H[y+16>>2]=d;H[y+20>>2]=b;break h}if(!Ea(1,t+52|0,y)){break b}l=H[t+52>>2]}if(e>>>0>>0|((l>>>0)/3|0)+l>>>0>>0){break b}d=H[a+4>>2];f=H[d+32>>2];i:{if(I[d+36|0]<=1){d=H[f+20>>2];b=H[f+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;k=H[f+12>>2];if(K[f+8>>2]>>0&(k|0)<=(d|0)|(d|0)>(k|0)){break b}b=b+H[f>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[t+48>>2]=b;H[f+16>>2]=c;H[f+20>>2]=d;break i}if(!Ea(1,t+48|0,f)){break b}b=H[t+48>>2]}if(b>>>0>l>>>0){break b}H[a+28>>2]=H[a+24>>2];d=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=d;if(c){cb(c);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];E=a+216|0;ed(E);dd(E,g);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}d=H[a+156>>2];F[t|0]=1;Oa(a+120|0,b+d|0,t);b=H[a+4>>2];d=J[b+36>>1];d=(d<<8|d>>>8)&65535;j:{if(d>>>0<=513){k=H[b+32>>2];k:{if(d>>>0<=511){b=H[k+20>>2];e=H[k+16>>2];d=e+4|0;b=d>>>0<4?b+1|0:b;c=H[k+12>>2];if(K[k+8>>2]>>0&(c|0)<=(b|0)|(b|0)>(c|0)){break b}e=e+H[k>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[k+16>>2]=d;H[k+20>>2]=b;break k}if(!Ea(1,t+44|0,k)){break b}e=H[t+44>>2]}if(!e){break b}k=H[H[a+4>>2]+32>>2];c=H[k+8>>2];d=H[k+16>>2];b=c-d|0;d=H[k+12>>2]-(H[k+20>>2]+(c>>>0>>0)|0)|0;if(b>>>0>>0&(d|0)<=0|(d|0)<0){break b}f=Ha(t);k=H[H[a+4>>2]+32>>2];c=H[k+16>>2];b=(c+H[k>>2]|0)+e|0;d=H[k+8>>2]-c|0;G[f+38>>1]=J[k+38>>1];H[f>>2]=b;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=d-e;H[f+12>>2]=0;d=Ib(a,f);if((d|0)==-1){break b}y=d;M=d>>31;break j}y=-1;M=-1;if((Ib(a,H[b+32>>2])|0)==-1){break b}}O=a+232|0;e=O;H[e+144>>2]=a;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];b=H[d>>2]+H[d+16>>2]|0;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;P=e,Q=J[H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],G[P+38>>1]=Q;H[e>>2]=b;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=d;H[e+12>>2]=0;H[a+372>>2]=g;C=Ha(t);l:{if(!Ge(e,C)){break l}b=0;d=0;e=0;k=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;L=H[a+124>>2];m:{n:{o:{p:{q:{r:{if((l|0)<=0){break r}A=H[h+216>>2]!=H[h+220>>2];s=1;while(1){f=k;k=f+1|0;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{if(!I[h+308|0]){break G}u=H[h+296>>2];g=H[h+304>>2];a=u+(g>>>3|0)|0;p=H[h+300>>2];if(a>>>0>=p>>>0){break G}c=I[a|0];a=g+1|0;H[h+304>>2]=a;m=c>>>(g&7)&1;if(!m){break G}n=0;j=a>>>3|0;c=u+j|0;H:{if(c>>>0>=p>>>0){g=a;a=0;break H}c=I[c|0];g=g+2|0;H[h+304>>2]=g;j=g>>>3|0;a=c>>>(a&7)&1}c=j+u|0;if(c>>>0

>>0){c=I[c|0];H[h+304>>2]=g+1;n=c>>>(g&7)<<1&2}j=-1;a=m|(a|n)<<1;switch(a-1|0){case 6:break D;case 0:break E;case 2:case 4:break F;default:break q}}if((d|0)==(e|0)){j=-1;break q}g=-1;q=H[h+8>>2];u=H[q+24>>2];p=d-4|0;s=H[p>>2];c=-1;I:{if((s|0)==-1){break I}b=s+1|0;b=(b>>>0)%3|0?b:s-2|0;c=-1;if((b|0)==-1){break I}c=H[H[q>>2]+(b<<2)>>2]}b=H[u+(c<<2)>>2];if((b|0)!=-1){a=b+1|0;g=(a>>>0)%3|0?a:b-2|0}if((g|0)==(s|0)){j=-1;break q}if((s|0)!=-1){j=-1;if(H[H[q+12>>2]+(s<<2)>>2]!=-1){break q}}b=H[q+12>>2];if((g|0)!=-1){j=-1;if(H[b+(g<<2)>>2]!=-1){break q}}n=N(f,3);a=n+1|0;H[b+(s<<2)>>2]=a;m=a<<2;H[m+b>>2]=s;r=n+2|0;H[b+(g<<2)>>2]=r;f=r<<2;H[f+b>>2]=g;o=-1;a=-1;J:{if((s|0)==-1){break J}K:{if((s>>>0)%3|0){b=s-1|0;break K}b=s+2|0;a=-1;if((b|0)==-1){break J}}a=H[H[q>>2]+(b<<2)>>2]}L:{if((g|0)==-1){break L}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1){break L}o=H[H[q>>2]+(b<<2)>>2]}j=-1;if((a|0)==(c|0)|(c|0)==(o|0)){break q}b=H[q>>2];H[b+(n<<2)>>2]=c;H[b+m>>2]=o;H[b+f>>2]=a;if((a|0)!=-1){H[u+(a<<2)>>2]=r}b=H[h+120>>2]+(c>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(c)&a,H[P>>2]=Q;H[p>>2]=n;b=e;break s}if((d|0)==(e|0)){break q}m=d-4|0;n=H[m>>2];r=H[h+8>>2];b=H[r+12>>2];if((n|0)!=-1&H[b+(n<<2)>>2]!=-1){break q}o=N(f,3);p=(a|0)==5;g=o+(p?2:1)|0;a=g<<2;H[a+b>>2]=n;H[b+(n<<2)>>2]=g;Ka(r+24|0,11424);b=H[h+8>>2];u=H[b+24>>2];if(H[b+28>>2]-u>>2>(L|0)){break q}j=H[b>>2];q=j+a|0;c=H[r+28>>2];b=H[r+24>>2];a=(c-b>>2)-1|0;H[q>>2]=a;if((b|0)!=(c|0)){H[u+(a<<2)>>2]=g}c=p?o:o+2|0;g=j+(o+p<<2)|0;M:{if((n|0)==-1){H[j+(c<<2)>>2]=-1;b=-1;break M}N:{O:{P:{if((n>>>0)%3|0){a=n-1|0;break P}a=n+2|0;if((a|0)==-1){break O}}a=H[j+(a<<2)>>2];H[j+(c<<2)>>2]=a;if((a|0)==-1){break N}H[u+(a<<2)>>2]=c;break N}H[j+(c<<2)>>2]=-1}a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break M}b=H[j+(a<<2)>>2]}H[g>>2]=b;H[m>>2]=o;b=e;break y}if((b|0)==(d|0)){break q}a=d-4|0;q=H[a>>2];H[i+68>>2]=a;p=H[i+44>>2];Q:{if(!p){d=a;break Q}g=H[i+40>>2];j=Uj(p)>>>0>1;c=f&p+2147483647;R:{if(!j){break R}c=f;if(c>>>0

>>0){break R}c=(f>>>0)%(p>>>0)|0}m=c;c=H[g+(m<<2)>>2];if(!c){d=a;break Q}g=H[c>>2];if(!g){d=a;break Q}S:{if(!j){j=p-1|0;while(1){c=H[g+4>>2];T:{if((c|0)!=(f|0)){if((m|0)==(c&j)){break T}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}while(1){c=H[g+4>>2];U:{if((c|0)!=(f|0)){if(c>>>0>=p>>>0){c=(c>>>0)%(p>>>0)|0}if((c|0)==(m|0)){break U}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}if((a|0)!=(z|0)){H[a>>2]=H[g+12>>2];H[i+68>>2]=d;break Q}c=z-b|0;d=c>>2;e=d+1|0;if(e>>>0>=1073741824){break C}a=c>>>1|0;c=c>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(d<<2)|0;H[e>>2]=H[g+12>>2];d=e+4|0;if((b|0)!=(z|0)){while(1){e=e-4|0;z=z-4|0;H[e>>2]=H[z>>2];if((b|0)!=(z|0)){continue}break}}z=a+(c<<2)|0;H[i+72>>2]=z;H[i+68>>2]=d;H[i+64>>2]=e;if(b){oa(b)}}if((d|0)==(e|0)){break u}g=d-4|0;n=H[g>>2];if((n|0)==(q|0)){break u}b=(n|0)==-1;o=H[h+8>>2];if(!b&H[H[o+12>>2]+(n<<2)>>2]!=-1){break u}r=H[o+12>>2];if((q|0)!=-1&H[r+(q<<2)>>2]!=-1){break u}u=N(f,3);f=u+2|0;H[r+(n<<2)>>2]=f;p=f<<2;H[p+r>>2]=n;a=u+1|0;H[r+(q<<2)>>2]=a;c=a<<2;H[c+r>>2]=q;if(b){break B}if((n>>>0)%3|0){m=n-1|0;break x}m=n+2|0;if((m|0)!=-1){break x}a=H[o>>2];b=-1;break w}a=H[h+8>>2];Ka(a+24|0,11424);c=H[h+8>>2];q=N(f,3);r=H[a+28>>2];u=H[a+24>>2];p=r-u|0;o=p>>2;g=o-1|0;H[H[c>>2]+(q<<2)>>2]=g;Ka(c+24|0,11424);m=q+1|0;H[H[c>>2]+(m<<2)>>2]=(H[c+28>>2]-H[c+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);c=q+2|0;H[H[a>>2]+(c<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];n=H[a+24>>2];if(H[a+28>>2]-n>>2>(L|0)){break q}V:{W:{if((r|0)!=(u|0)){H[n+(g<<2)>>2]=q;j=0;if((p|0)==-4){break W}}H[n+(o<<2)>>2]=m;j=o+1|0;if((j|0)==-1){break V}}H[n+(j<<2)>>2]=c}if((d|0)!=(z|0)){H[d>>2]=q;d=d+4|0;H[i+68>>2]=d;break y}m=d-b|0;e=m>>2;c=e+1|0;if(c>>>0>=1073741824){break A}a=m>>>1|0;c=m>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(e<<2)|0;H[e>>2]=q;z=a+(c<<2)|0;a=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;H[e>>2]=H[d>>2];if((b|0)!=(d|0)){continue}break}}H[i+72>>2]=z;H[i+68>>2]=a;H[i+64>>2]=e;if(!b){break z}oa(b);break z}sa();v()}m=-1;a=H[o>>2];H[a+(u<<2)>>2]=-1;j=-1;break v}sa();v()}d=a;b=e}m=H[h+40>>2];if((m|0)==H[h+36>>2]){break s}c=m-12|0;a=H[c+4>>2];j=(f^-1)+l|0;if(a>>>0>j>>>0){break u}if((a|0)!=(j|0)){break s}f=I[m-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}m=d-4|0;g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];X:{if(f&1){a=-1;if((g|0)==-1){break X}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break X}a=-1;if((g|0)==-1){break X}a=g-1|0;if((g>>>0)%3|0){break X}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)==H[h+36>>2]){break s}while(1){c=g-12|0;a=H[c+4>>2];if(a>>>0>j>>>0){break u}if((a|0)!=(j|0)){break s}f=I[g-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];Y:{if(f&1){a=-1;if((g|0)==-1){break Y}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break Y}a=-1;if((g|0)==-1){break Y}a=g-1|0;if((g>>>0)%3|0){break Y}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)!=H[h+36>>2]){continue}break}break s}a=H[o>>2];b=H[a+(m<<2)>>2]}m=b;H[(u<<2)+a>>2]=b;b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;j=-1;if((b|0)==-1){break v}j=H[(b<<2)+a>>2]}H[a+c>>2]=j;Z:{if((q|0)==-1){H[a+p>>2]=-1;n=-1;c=-1;break Z}_:{$:{aa:{if((q>>>0)%3|0){b=q-1|0;break aa}b=q+2|0;if((b|0)==-1){break $}}b=H[(b<<2)+a>>2];H[a+p>>2]=b;if((b|0)==-1){break _}H[H[o+24>>2]+(b<<2)>>2]=f;break _}H[a+p>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;c=-1;if((b|0)==-1){break Z}n=H[(b<<2)+a>>2];c=b}b=H[o+24>>2];p=b+(n<<2)|0;if((m|0)!=-1){H[b+(m<<2)>>2]=H[p>>2]}b=c;while(1){if((b|0)==-1){break t}H[(b<<2)+a>>2]=m;j=b+1|0;b=(j>>>0)%3|0?j:b-2|0;f=-1;ba:{if((b|0)==-1){break ba}j=H[r+(b<<2)>>2];f=-1;if((j|0)==-1){break ba}b=j+1|0;f=(b>>>0)%3|0?b:j-2|0}b=f;if((c|0)!=(b|0)){continue}break}}j=-1;if(!(s&1)){break r}break q}H[p>>2]=-1;ca:{if(A){break ca}if((B|0)!=(D|0)){H[D>>2]=n;D=D+4|0;H[i+28>>2]=D;break ca}f=B-w|0;b=f>>2;c=b+1|0;if(c>>>0>=1073741824){break o}a=f>>>1|0;c=f>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;D=b+4|0;if((w|0)!=(B|0)){while(1){b=b-4|0;B=B-4|0;H[b>>2]=H[B>>2];if((w|0)!=(B|0)){continue}break}}B=a+(c<<2)|0;H[i+32>>2]=B;H[i+28>>2]=D;H[i+24>>2]=b;if(w){oa(w)}w=b}H[g>>2]=u;b=e}s=(k|0)<(l|0);if((k|0)!=(l|0)){continue}break}k=l}j=-1;a=H[h+8>>2];if(H[a+28>>2]-H[a+24>>2]>>2>(L|0)){break q}if((d|0)!=(e|0)){u=h+72|0;m=h+60|0;p=h+312|0;while(1){d=d-4|0;o=H[d>>2];H[i+68>>2]=d;da:{ea:{fa:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ea}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break fa}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break fa}break ea}if(Ba(p)){break ea}}ga:{ha:{b=H[h+64>>2];c=H[h+68>>2];if((b|0)==c<<5){if((b+1|0)<0){break ha}if(b>>>0<=1073741822){c=c<<6;b=(b&-32)+32|0;a=b>>>0>>0?c:b}else{a=2147483647}pb(m,a);b=H[h+64>>2]}H[h+64>>2]=b+1;c=H[h+60>>2]+(b>>>3&536870908)|0;a=H[c>>2];P=c,Q=Vj(b)&a,H[P>>2]=Q;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=o;H[h+76>>2]=b+4;break da}l=H[u>>2];w=b-l|0;c=w>>2;f=c+1|0;if(f>>>0>=1073741824){break ga}a=w>>>1|0;f=w>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break n}a=pa(f<<2)}else{a=0}g=a+(c<<2)|0;H[g>>2]=o;c=g+4|0;if((b|0)!=(l|0)){while(1){g=g-4|0;b=b-4|0;H[g>>2]=H[b>>2];if((b|0)!=(l|0)){continue}break}}H[h+80>>2]=a+(f<<2);H[h+76>>2]=c;H[h+72>>2]=g;if(!l){break da}oa(l);break da}sa();v()}sa();v()}r=H[h+8>>2];A=H[r>>2];if(((H[r+4>>2]-A>>2>>>0)/3|0)<=(k|0)){j=-1;break q}a=-1;j=-1;b=-1;w=H[r+24>>2];f=-1;ia:{if((o|0)==-1){break ia}e=o+1|0;e=(e>>>0)%3|0?e:o-2|0;f=-1;if((e|0)==-1){break ia}f=H[A+(e<<2)>>2]}l=H[w+(f<<2)>>2];ja:{if((l|0)==-1){g=1;e=-1;break ja}g=1;c=l+1|0;c=(c>>>0)%3|0?c:l-2|0;e=-1;if((c|0)==-1){break ja}g=0;a=c;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)!=-1){e=H[A+(e<<2)>>2]}else{e=-1}}c=H[(e<<2)+w>>2];if((c|0)!=-1){b=c+1|0;b=(b>>>0)%3|0?b:c-2|0}if((a|0)==(o|0)|(b|0)==(o|0)|((o|0)!=-1&H[H[r+12>>2]+(o<<2)>>2]!=-1|(a|0)==(b|0))){break q}if(!g&H[H[r+12>>2]+(a<<2)>>2]!=-1){break q}g=-1;l=H[r+12>>2];w=-1;ka:{if((b|0)==-1){break ka}if(H[l+(b<<2)>>2]!=-1){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;w=-1;if((c|0)==-1){break ka}w=H[A+(c<<2)>>2]}c=N(k,3);H[i>>2]=c;H[l+(c<<2)>>2]=o;H[l+(o<<2)>>2]=c;c=H[i>>2]+1|0;H[l+(c<<2)>>2]=a;H[l+(a<<2)>>2]=c;a=H[i>>2]+2|0;H[l+(a<<2)>>2]=b;H[l+(b<<2)>>2]=a;a=H[i>>2];H[A+(a<<2)>>2]=e;j=a+1|0;l=A+(j<<2)|0;H[l>>2]=w;w=a+2|0;c=A+(w<<2)|0;H[c>>2]=f;f=H[h+120>>2];e=j?e:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(e)&a,H[P>>2]=Q;g=(j|0)!=-1?H[l>>2]:g;b=f+(g>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(g)&a,H[P>>2]=Q;b=-1;b=(w|0)!=-1?H[c>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];P=e,Q=Vj(b)&a,H[P>>2]=Q;F[i+88|0]=1;_c(m,i+88|0);Ka(u,i);k=k+1|0;e=H[i+64>>2]}if((d|0)!=(e|0)){continue}break}a=H[h+8>>2]}j=-1;if(((H[a+4>>2]-H[a>>2]>>2>>>0)/3|0)!=(k|0)){break q}j=H[a+28>>2]-H[a+24>>2]>>2;s=H[i+24>>2];c=H[i+28>>2];if((s|0)==(c|0)){break p}while(1){k=H[s>>2];d=H[a+24>>2];b=j-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){while(1){b=j-2|0;j=j-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){continue}break}}if(b>>>0>=k>>>0){H[i>>2]=a;g=H[g>>2];F[i+12|0]=1;H[i+8>>2]=g;H[i+4>>2]=g;if((g|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(g<<2)|0;if(H[a>>2]!=(b|0)){j=-1;break q}H[a>>2]=k;uc(i);g=H[i+8>>2];if((g|0)!=-1){continue}break}a=H[h+8>>2]}d=H[a+24>>2];e=d+(b<<2)|0;if((k|0)!=-1){H[d+(k<<2)>>2]=H[e>>2]}H[e>>2]=-1;f=1<>2];e=d+(k>>>3&536870908)|0;k=d+(b>>>3&536870908)|0;d=1<>2]&d){b=f|H[e>>2]}else{b=H[e>>2]&(f^-1)}H[e>>2]=b;H[k>>2]=H[k>>2]&(d^-1);j=j-1|0}s=s+4|0;if((c|0)!=(s|0)){continue}break}}s=H[i+24>>2]}if(s){oa(s)}a=H[i+48>>2];if(a){while(1){d=H[a>>2];oa(a);a=d;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;a=j;break m}sa();v()}wa();v()}e=a;if((a|0)==-1){break l}b=H[C+16>>2];d=b+H[C>>2]|0;a=H[C+8>>2]-b|0;b=H[H[h+4>>2]+32>>2];G[b+38>>1]=J[b+38>>1];H[b>>2]=d;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=a;H[b+12>>2]=0;b=H[h+4>>2];a=J[b+36>>1];d=a<<8|a>>>8;if((d&65535)>>>0<=513){b=H[b+32>>2];c=b;a=H[b+16>>2];b=M+H[b+20>>2]|0;a=a+y|0;b=a>>>0>>0?b+1|0:b;H[c+16>>2]=a;H[c+20>>2]=b}la:{if(H[h+216>>2]==H[h+220>>2]){break la}a=H[h+8>>2];b=H[a>>2];a=H[a+4>>2];ma:{if((d&65535)>>>0>=513){if((a|0)==(b|0)){break la}d=0;break ma}if((a|0)==(b|0)){break la}d=0;while(1){if(cd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}while(1){if(bd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}ad(O);d=H[h+216>>2];if((d|0)!=H[h+220>>2]){l=0;while(1){c=N(l,144);Jc((c+d|0)+4|0,H[h+8>>2]);a=H[E>>2];b=a+c|0;d=H[b+132>>2];b=H[b+136>>2];if((d|0)!=(b|0)){while(1){Hc((c+H[E>>2]|0)+4|0,H[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}a=H[E>>2]}if(!Ic((a+c|0)+4|0)){break l}l=l+1|0;d=H[h+216>>2];if(l>>>0<(H[h+220>>2]-d|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);x=H[h+216>>2];if((x|0)!=H[h+220>>2]){d=0;while(1){a=N(d,144)+x|0;b=H[a+60>>2]-H[a+56>>2]>>2;c=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(c,(a|0)<(b|0)?b:a);d=d+1|0;x=H[h+216>>2];if(d>>>0<(H[h+220>>2]-x|0)/144>>>0){continue}break}}x=$c(h,e)}break b}x=0}ca=t- -64|0;return x|0}function Bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0;B=c;c=0;m=ca-96|0;ca=m;l=m+16|0;ra(l,0,76);H[m+92>>2]=-1;H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;r=ca-16|0;ca=r;H[l+68>>2]=0;H[l+72>>2]=0;H[l>>2]=b;s=ca-16|0;ca=s;u=b;a=H[b+20>>2];a:{if((H[b+24>>2]-a|0)<=0){break a}a=H[a>>2];if((a|0)==-1){break a}c=H[H[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=H[u+100>>2];e=H[u+96>>2];H[s+8>>2]=0;H[s>>2]=0;H[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=pa(f);H[s>>2]=d;H[s+8>>2]=d+N(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ra(n,0,d);H[s+4>>2]=d+f;if(I[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=N(a,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;d=N(a|1,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=N(a,12);a=b+e|0;c=H[a+4>>2];e=H[a>>2];b=b+f|0;H[b+8>>2]=H[a+8>>2];H[b>>2]=e;H[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=H[c+68>>2];c=0;while(1){d=N(c,12);b=d+e|0;g=H[a+(H[b>>2]<<2)>>2];i=H[a+(H[b+4>>2]<<2)>>2];d=d+f|0;H[d+8>>2]=H[a+(H[b+8>>2]<<2)>>2];H[d+4>>2]=i;H[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;E=ca-16|0;ca=E;h=pa(88);$b(h);C=ca-16|0;ca=C;H[h+80>>2]=0;H[h+84>>2]=0;a=H[h+76>>2];H[h+76>>2]=0;if(a){oa(a)}H[h+68>>2]=0;H[h+72>>2]=0;b=h- -64|0;a=H[b>>2];H[b>>2]=0;if(a){oa(a)}g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;a=N(c,3);f=H[h>>2];e=H[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ue(h,a-e|0);g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}H[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=H[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=N(d,12);j=e+a|0;f=b+e|0;H[j>>2]=H[f>>2];H[a+(e|4)>>2]=H[f+4>>2];H[j+8>>2]=H[f+8>>2];f=N(d|1,12);e=f+a|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=N(d,12);a=c+a|0;b=b+c|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}H[C+12>>2]=-1;a=0;e=0;g=0;f=ca-32|0;ca=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;n=H[h+12>>2];b=H[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){qb(h+12|0,i-b|0,13652);c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}H[h+16>>2]=n+(i<<2)}H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=pa(d);H[f+20>>2]=e;H[f+16>>2]=e;H[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=H[(a<<2)+j>>2];b=H[f+20>>2]-e>>2;q:{if(i>>>0>>0){break q}H[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Pa(f+16|0,d-b|0,f);j=H[h>>2];c=H[h+4>>2];e=H[f+16>>2];break q}if(b>>>0<=d>>>0){break q}H[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;H[b>>2]=H[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=pa(d<<1);ra(d,255,i<<3)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=H[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=pa(a);H[f>>2]=q;H[f+8>>2]=(t<<2)+q;b=ra(q,0,a);H[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;H[c+b>>2]=a;x=c|4;a=H[c+e>>2]+a|0;H[x+b>>2]=a;y=c|8;a=a+H[e+x>>2]|0;H[y+b>>2]=a;c=c|12;a=a+H[e+y>>2]|0;H[c+b>>2]=a;a=a+H[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;H[c+b>>2]=a;g=g+1|0;a=H[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=H[h+40>>2];y=H[h+12>>2];n=0;while(1){G=n<<2;a=G+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=H[(b<<2)+j>>2]}b=H[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=H[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;H[h+40>>2]=x;c=n+3|0;break t}p=H[a-4>>2]}a=p<<2;A=H[a+e>>2];v:{w:{if((A|0)<=0){break w}a=H[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=H[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=H[o+4>>2];if((o|0)!=-1){z=H[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=H[J>>2];K=(b<<3)+d|0;H[K+4>>2]=H[J+4>>2];H[K>>2]=z;if((z|0)!=-1){continue}}break}H[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}H[y+G>>2]=o;H[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=H[a+e>>2];if((k|0)<=0){break v}a=H[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(H[b>>2]==-1){H[b>>2]=p;H[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0>>0){continue}break}break l}break i}sa();v()}H[w>>2]=t;if(q){oa(q)}if(d){oa(d)}a=H[f+16>>2];if(!a){break j}H[f+20>>2]=a;oa(a)}ca=f+32|0;x=(w|0)!=0;if(x){k=ca-32|0;ca=k;a=H[h>>2];g=H[h+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[k+24>>2]=b;H[k+20>>2]=0;H[k+16>>2]=c;Mc(k+16|0,a);g=H[h>>2];c=H[h+4>>2]}H[k+8>>2]=0;H[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=H[k+16>>2];A:{if(H[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=H[k>>2];H[k+4>>2]=c;e=H[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=H[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(H[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=H[k+16>>2]+(j>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:j-2|0;g=H[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=H[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=H[(f<<2)+g>>2];q=H[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=H[a>>2]){break G}p=H[a+4>>2];t=H[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==H[a>>2]){t=-1;e=-1;p=H[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=H[(b<<2)+g>>2];H:{if(H[k+8>>2]!=(c|0)){H[c>>2]=b;H[c+4>>2]=f;c=c+8|0;H[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=pa(g<<3)}else{e=0}a=e+(p<<3)|0;H[a>>2]=b;H[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=H[c+4>>2];a=a-8|0;H[a>>2]=H[c>>2];H[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=H[k>>2]}H[k+8>>2]=e+(g<<3);H[k+4>>2]=b;H[k>>2]=a;if(c){oa(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=H[H[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=H[h>>2];break A}wa();v()}c=H[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){H[q+(t<<2)>>2]=-1}if((c|0)!=-1){H[q+(c<<2)>>2]=-1}H[q+(b<<2)>>2]=-1;H[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=H[h+4>>2];if(i>>>0>2>>>0){continue}break}if(o){continue}}break}a=H[k>>2];if(a){oa(a)}a=H[k+16>>2];if(a){oa(a)}ca=k+32|0;n=0;g=ca-32|0;ca=g;e=H[C+12>>2];H[h+36>>2]=e;p=h+24|0;b=H[h+24>>2];a=H[h+28>>2]-b>>2;K:{L:{if(a>>>0>>0){qb(p,e-a|0,13652);H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;break L}if(a>>>0>e>>>0){H[h+28>>2]=b+(e<<2)}H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=pa(a<<2);H[g+24>>2]=a;H[g+20>>2]=0;H[g+16>>2]=b;Mc(g+16|0,e)}a=H[h>>2];b=H[h+4>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[g+8>>2]=b;H[g+4>>2]=0;H[g>>2]=c;Mc(g,a);b=H[h>>2];a=H[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=N(n,3);d=(q<<2)+b|0;f=H[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=H[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=H[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=H[g>>2];while(1){f=k+q|0;if(!(H[(f>>>3&536870908)+i>>2]>>>f&1)){a=H[(f<<2)+b>>2];c=1<>2];b=a>>>5|0;i=H[d+(b<<2)>>2];t=c&i;if(t){c=H[h+28>>2];P:{if((c|0)!=H[h+32>>2]){H[c>>2]=-1;H[h+28>>2]=c+4;break P}i=H[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+32>>2]=b+(j<<2);H[h+28>>2]=o;H[h+24>>2]=d;if(!i){break P}oa(i)}c=H[h+52>>2];Q:{if((c|0)!=H[h+56>>2]){H[c>>2]=a;H[h+52>>2]=c+4;break Q}i=H[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+56>>2]=b+(j<<2);H[h+52>>2]=a;H[h+48>>2]=d;if(!i){break Q}oa(i)}c=H[g+20>>2];a=H[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}pb(b,a);c=H[g+20>>2]}H[g+20>>2]=c+1;d=H[g+16>>2];a=d+(c>>>3&536870908)|0;b=H[a>>2];M=a,O=Vj(c)&b,H[M>>2]=O;c=1<>>5|0;i=H[(b<<2)+d>>2];a=e;e=a+1|0}H[(b<<2)+d>>2]=c|i;o=H[h+24>>2]+(a<<2)|0;j=H[h+12>>2];b=H[h>>2];i=H[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<>2]=c;if(t){H[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=H[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=H[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=H[h+12>>2];b=H[h>>2];while(1){d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=H[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=H[h>>2];a=H[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}wa();v()}c=0;H[h+44>>2]=0;a=H[g+16>>2];b=H[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(H[d>>2]>>>c&1)){i=i+1|0;H[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=H[g>>2];if(b){oa(b);a=H[g+16>>2]}if(a){oa(a)}ca=g+32|0}ca=C+16|0;if(!x){H[E+8>>2]=0;cb(h);h=0}ca=E+16|0;a=h;break h}sa();v()}b=H[s>>2];if(!b){break d}H[s+4>>2]=b;oa(b)}ca=s+16|0;break b}sa();v()}c=H[l+4>>2];b=a;H[l+4>>2]=a;if(c){cb(c);b=H[l+4>>2]}X:{if(!b){break X}a=H[u+100>>2];c=H[u+96>>2];F[r+12|0]=0;Oa(l+56|0,(a-c|0)/12|0,r+12|0);a=H[u+100>>2];c=H[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(H[H[l+56>>2]+(D>>>3&536870908)>>2]>>>D&1)){a=N(D,3);Gc(l,0,a);c=H[l+8>>2];e=H[l+12>>2];Gc(l,1,a+1|0);f=H[l+20>>2];d=H[l+24>>2];Gc(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=H[l+36>>2]-H[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(H[l+68>>2]<=0){break Y}H[r+12>>2]=H[l+76>>2];H[r+8>>2]=m;bb(r+8|0,r+12|0);a=H[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=H[(H[H[l>>2]+96>>2]+N(e,12)|0)+(a-N(e,3)<<2)>>2]}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);e=H[l+72>>2];H[l+72>>2]=e+2;if(!(e&1)){break Y}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);H[l+72>>2]=H[l+72>>2]+1}d=0;e=ca-16|0;ca=e;H[l+68>>2]=H[l+68>>2]+1;a=N(c,12)+l|0;a=H[a+12>>2]-H[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=H[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=H[l+56>>2]+(g>>>3&536870908)|0;H[i>>2]=H[i>>2]|1<>2]=H[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){H[e+12>>2]=H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[e+8>>2]=m;bb(e+8|0,e+12|0);break ca}H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=H[(H[H[l>>2]+96>>2]+N(g,12)|0)+(f-N(g,3)<<2)>>2]}else{f=-1}H[e+12>>2]=f;H[e+8>>2]=m;bb(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=H[(H[H[l>>2]+96>>2]+N(c,12)|0)+(f-N(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((N(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0)}H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=H[H[H[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}ca=e+16|0;c=H[u+96>>2];a=H[u+100>>2]}D=D+1|0;if(D>>>0<(a-c|0)/12>>>0){continue}break}}ca=r+16|0;da:{if(b){a=H[B>>2];if(a){H[B+4>>2]=a;oa(a)}H[B>>2]=H[m>>2];H[B+4>>2]=H[m+4>>2];H[B+8>>2]=H[m+8>>2];L=H[m+84>>2];break da}a=H[m>>2];if(!a){break da}H[m+4>>2]=a;oa(a)}a=H[m+72>>2];if(a){oa(a)}a=H[m+48>>2];if(a){H[m+52>>2]=a;oa(a)}a=H[m+36>>2];if(a){H[m+40>>2]=a;oa(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;oa(a)}a=H[m+20>>2];H[m+20>>2]=0;if(a){cb(a)}ca=m+96|0;return L|0}function qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=H[i+80>>2];h=I[c+24|0];c:{if((N(j,h)|0)!=(e|0)){break c}d=H[c+28>>2]!=1;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break c}if(h){a=pa(h);ra(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break d}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!ic(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break d}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}oa(a)}break a;case 2:n=I[c+24|0];l=n<<1;j=H[i+80>>2];e:{if((N(l,j)|0)!=(e|0)){break e}i=H[c+28>>2]!=3;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=pa(l);ra(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}oa(e)}b=a;break a;case 4:l=I[c+24|0];o=l<<2;j=H[i+80>>2];h:{if((N(o,j)|0)!=(e|0)){break h}i=H[c+28>>2]!=5;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=pa(o);ra(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}oa(e)}break a;case 1:j=H[i+80>>2];h=I[c+24|0];k:{if((N(j,h)|0)!=(e|0)){break k}d=H[c+28>>2]!=2;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break k}if(h){a=pa(h);ra(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break l}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!hc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break l}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}oa(a)}break a;case 3:n=I[c+24|0];l=n<<1;j=H[i+80>>2];m:{if((N(l,j)|0)!=(e|0)){break m}i=H[c+28>>2]!=4;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=pa(l);ra(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}oa(e)}b=a;break a;case 5:l=I[c+24|0];o=l<<2;j=H[i+80>>2];p:{if((N(o,j)|0)!=(e|0)){break p}i=H[c+28>>2]!=6;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=pa(o);ra(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}oa(e)}break a;case 8:p=I[c+24|0];q=p<<2;k=H[i+80>>2];s:{if((N(q,k)|0)!=(e|0)){break s}i=H[c+28>>2];t:{if(!p){break t}a=pa(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){H[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){H[d+24>>2]=-1073741824;H[d+28>>2]=-1073741824;H[d+16>>2]=-1073741824;H[d+20>>2]=-1073741824;H[d+8>>2]=-1073741824;H[d+12>>2]=-1073741824;H[d>>2]=-1073741824;H[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=H[c+68>>2];l=H[c>>2];i=H[c+48>>2];s=I[c+84|0];m=H[c+44>>2];c=H[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=H[l>>2];b=Rj(c,m,s?d:H[r+(d<<2)>>2],0)+i|0;qa(h,qa(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=H[l>>2];g=d<<2;j=Rj(c,m,H[g+r>>2],0)+i|0;h=qa(a,h+j|0,o);j=H[l>>2];g=Rj(c,m,H[r+(g|4)>>2],0)+i|0;qa(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=H[l>>2];c=Rj(c,m,H[r+(d<<2)>>2],0)+i|0;qa(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=H[l>>2];e=Rj(g,h,c,m)+i|0;d=qa(a,d+e|0,o);e=H[l>>2];p=Rj(c,m,g|1,h)+i|0;qa(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=H[l>>2];c=Rj(g,h,c,m)+i|0;qa(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}qa((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}oa(a)}a=b;break;default:break b}}b=a}return b|0}function ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ca-48|0;ca=i;a:{b:{if((c|0)!=1){break b}c=H[a+4>>2];g=H[a+12>>2];H[i+40>>2]=0;a=i;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;e=a+8|0;c:{if((b|0)==-2){break c}l=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){a=J[c+36>>1];j=(a<<8|a>>>8)&65535;a=0;h=ca-32|0;ca=h;d=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];d:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break d}k=ea[H[H[c>>2]+36>>2]](c)|0;f=ea[H[H[c>>2]+44>>2]](c,g)|0;if(!k|!f){break d}a=ea[H[H[c>>2]+40>>2]](c,g)|0;if(a){c=H[c+44>>2];H[h+12>>2]=a;H[h+8>>2]=c;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=2564;break e;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=3328;break e;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3564;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break e;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3812;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break e;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=4040;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=3216;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4904;H[a>>2]=4276;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4512;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break g}}break d}a=H[c+44>>2];H[h+12>>2]=k;H[h+8>>2]=a;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=4932;break h;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=5356;break h;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5580;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break h;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5816;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break h;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=6032;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break h;case 5:break i;default:break h}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;j:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=5300;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6840;H[a>>2]=6256;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=6476;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break j}}}ca=h+32|0;d=a;if(a){break c}}d=pa(44);H[d+4>>2]=l;H[d>>2]=3272;a=H[e+4>>2];H[d+8>>2]=H[e>>2];H[d+12>>2]=a;a=H[e+12>>2];H[d+16>>2]=H[e+8>>2];H[d+20>>2]=a;a=H[e+20>>2];H[d+24>>2]=H[e+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;c=H[e+24>>2];a=H[e+28>>2];if((c|0)!=(a|0)){b=a-c|0;if((b|0)<0){break a}e=pa(b);H[d+32>>2]=e;H[d+40>>2]=(b&-4)+e;while(1){H[e>>2]=H[c>>2];e=e+4|0;c=c+4|0;if((a|0)!=(c|0)){continue}break}H[d+36>>2]=e}H[d>>2]=6868;break c}e=d;a=H[i+32>>2];if(!a){break b}H[i+36>>2]=a;oa(a)}ca=i+48|0;return e|0}sa();v()}function Ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ca-16|0;ca=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=H[4298];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17232|0;d=H[a+17240>>2];a=H[d+8>>2];j:{if((b|0)==(a|0)){m=17192,n=Vj(c)&g,H[m>>2]=n;break j}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4300];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=H[e+8>>2];k:{if((b|0)==(a|0)){g=Vj(d)&g;H[4298]=g;break k}H[a+12>>2]=b;H[b+8>>2]=a}H[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+e>>2]=d;if(k){b=(k&-8)+17232|0;f=H[4303];a=1<<(k>>>3);l:{if(!(a&g)){H[4298]=a|g;a=b;break l}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=e+8|0;H[4303]=c;H[4300]=d;break a}j=H[4299];if(!j){break i}c=H[(Qj(0-j&j)<<2)+17496>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break m}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=H[4299];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=Q(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=H[(g<<2)+17496>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(H[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4300]-h>>>0<=f>>>0){break i}g=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[e>>2]=0;break c}a=H[4300];if(a>>>0>=h>>>0){d=H[4303];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;H[c+4>>2]=b|1;H[a+d>>2]=b;H[d+4>>2]=h|3;break s}H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;c=0;b=0}H[4300]=b;H[4303]=c;a=d+8|0;break a}i=H[4301];if(i>>>0>h>>>0){b=i-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4416]){c=H[4418]}else{H[4419]=-1;H[4420]=-1;H[4417]=4096;H[4418]=4096;H[4416]=l+12&-16^1431655768;H[4421]=0;H[4409]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=H[4408];if(d){c=H[4406];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(I[17636]&4)){u:{v:{w:{x:{d=H[4304];if(d){a=17640;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=H[a+8>>2];if(a){continue}break}}c=zb(0);if((c|0)==-1){break u}g=b;d=H[4417];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=H[4408];if(d){a=H[4406];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=zb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=zb(g);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=H[4418];c=c+(j-g|0)&0-c;if((zb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}H[4409]=H[4409]|4}c=zb(b);a=zb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=H[4406]+g|0;H[4406]=a;if(a>>>0>K[4407]){H[4407]=a}y:{e=H[4304];if(e){a=17640;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break y}a=H[a+8>>2];if(a){continue}break}break f}a=H[4302];if(!(a>>>0<=c>>>0?a:0)){H[4302]=c}a=0;H[4411]=g;H[4410]=c;H[4306]=-1;H[4307]=H[4416];H[4413]=0;while(1){d=a<<3;b=d+17232|0;H[d+17240>>2]=b;H[d+17244>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];break e}if(I[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}H[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;H[4304]=c;b=H[4301]+g|0;a=b-a|0;H[4301]=a;H[c+4>>2]=a|1;H[(b+e|0)+4>>2]=40;H[4305]=H[4420];break e}d=0;break b}c=0;break c}if(K[4302]>c>>>0){H[4302]=c}b=c+g|0;a=17640;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break E}break}if(!(I[a+12|0]&8)){break D}}a=17640;while(1){b=H[a>>2];if(b>>>0<=e>>>0){f=b+H[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){H[4304]=i;a=H[4301]+a|0;H[4301]=a;H[i+4>>2]=a|1;break A}if(H[4303]==(g|0)){H[4303]=i;a=H[4300]+a|0;H[4300]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break A}f=H[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=H[g+8>>2];b=f>>>3|0;c=H[g+12>>2];if((c|0)==(d|0)){m=17192,n=H[4298]&Vj(b),H[m>>2]=n;break F}H[d+12>>2]=c;H[c+8>>2]=d;break F}h=H[g+24>>2];c=H[g+12>>2];G:{if((g|0)!=(c|0)){b=H[g+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break G}H:{f=g+20|0;b=H[f>>2];if(b){break H}f=g+16|0;b=H[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break F}d=H[g+28>>2];b=(d<<2)+17496|0;I:{if(H[b>>2]==(g|0)){H[b>>2]=c;if(c){break I}m=17196,n=H[4299]&Vj(d),H[m>>2]=n;break F}H[h+(H[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}H[c+24>>2]=h;b=H[g+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[g+20>>2];if(!b){break F}H[c+20>>2]=b;H[b+24>>2]=c}g=e+g|0;f=H[g+4>>2];a=a+e|0}H[g+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);J:{if(!(c&a)){H[4298]=a|c;a=b;break J}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=Q(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+17496|0;d=H[4299];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=H[b>>2];while(1){b=c;if((H[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;H[d+4>>2]=27;a=H[4413];H[d+16>>2]=H[4412];H[d+20>>2]=a;a=H[4411];H[d+8>>2]=H[4410];H[d+12>>2]=a;H[4412]=d+8;H[4411]=g;H[4410]=c;H[4413]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}H[d+4>>2]=H[d+4>>2]&-2;f=d-e|0;H[e+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);L:{if(!(c&a)){H[4298]=a|c;a=b;break L}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;d=H[4299];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break e}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=H[4301];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[3992]=48;a=0;break a}N:{if(!g){break N}b=H[d+28>>2];a=(b<<2)+17496|0;O:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break O}j=Vj(b)&j;H[4299]=j;break N}H[g+(H[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}H[c+24>>2]=g;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break N}H[c+20>>2]=a;H[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break P}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);Q:{if(!(c&a)){H[4298]=a|c;a=b;break Q}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break P}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=H[c+28>>2];a=(b<<2)+17496|0;U:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break U}m=17196,n=Vj(b)&j,H[m>>2]=n;break T}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break T}H[d+20>>2]=a;H[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break V}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+17232|0;e=H[4303];a=1<<(k>>>3);W:{if(!(a&g)){H[4298]=a|g;a=b;break W}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a}H[4303]=d;H[4300]=f}a=c+8|0}ca=l+16|0;return a|0}function ce(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-32|0;ca=m;o=pa(12);H[o+8>>2]=0;H[o+4>>2]=b;H[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=H[b+8>>2];j=H[b+4>>2];t=H[b>>2];if(t){if((w|0)>1e3){break a}H[m+24>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;d=1;c=H[a>>2];e=H[c+8>>2];h=H[c+12>>2];g=H[c+20>>2];f=H[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=I[f+H[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;H[h+16>>2]=f;H[h+20>>2]=c;Cc(m+16|0,e);if(e){c=H[a>>2];n=Dc(m+16|0);p=H[c+8>>2];g=H[c+12>>2];h=H[c+20>>2];f=H[c+16>>2];k=f+e|0;h=k>>>0>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}qa(n,f+H[c>>2]|0,e);d=H[c+20>>2];f=e;e=e+H[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d}j=pa(24);c=j;H[c+4>>2]=0;H[c+8>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[j>>2]=j+4;H[j+12>>2]=c;e=ca-32|0;ca=e;h=t+12|0;c=m+16|0;u=nb(h,c);i=t+16|0;e:{if((u|0)==(i|0)){H[e+16>>2]=c;f:{g:{d=H[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=I[c+11|0];g=f<<24>>24<0;n=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=d;d=I[c+27|0];f=d<<24>>24<0;d=f?H[c+20>>2]:d;p=d>>>0>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?H[c+16>>2]:c+16|0;q=Fa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=H[c>>2];if(d){continue}break h}d=Fa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=H[c+4>>2];if(d){continue}break}f=c+4|0}d=pa(32);n=d+16|0;g=H[e+16>>2];n:{if(F[g+11|0]>=0){p=H[g+4>>2];H[n>>2]=H[g>>2];H[n+4>>2]=p;H[n+8>>2]=H[g+8>>2];break n}za(n,H[g>>2],H[g+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+28>>2]=0;H[f>>2]=d;c=d;g=H[H[h>>2]>>2];if(g){H[h>>2]=g;c=H[f>>2]}Sb(H[h+4>>2],c);H[h+8>>2]=H[h+8>>2]+1;c=1;break f}d=c;c=0}F[e+28|0]=c;H[e+24>>2]=d;d=H[e+24>>2];c=H[d+28>>2];H[d+28>>2]=j;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c);break e}if(!j){break e}Ra(j+12|0,H[j+16>>2]);Qa(j,H[j+4>>2]);oa(j)}ca=e+32|0;d=(i|0)!=(u|0)}if(F[m+27|0]<0){oa(H[m+16>>2])}if(d){break a}}if(!j){break a}H[m+16>>2]=0;if(!Bb(1,m+16|0,H[a>>2])){break a}q=0;x=H[m+16>>2];if(x){while(1){d=0;i=ca-32|0;ca=i;H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;c=H[a>>2];f=H[c+8>>2];o:{p:{h=H[c+12>>2];g=H[c+20>>2];e=H[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=I[e+H[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;H[h+16>>2]=e;H[h+20>>2]=c;Cc(i+16|0,f);if(f){e=H[a>>2];n=Dc(i+16|0);p=H[e+8>>2];g=H[e+12>>2];c=H[e+20>>2];h=H[e+16>>2];k=h+f|0;c=k>>>0>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}qa(n,h+H[e>>2]|0,f);c=H[e+20>>2];g=f;f=f+H[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;H[e+16>>2]=f;H[e+20>>2]=c}H[i+12>>2]=0;if(!Bb(1,i+12|0,H[a>>2])){break q}f=H[i+12>>2];if(!f){break q}e=H[a>>2];c=H[e+8>>2];h=H[e+16>>2];g=c-h|0;c=H[e+12>>2]-(H[e+20>>2]+(c>>>0>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;if((f|0)<0){break p}d=pa(f);H[i>>2]=d;c=d+f|0;H[i+8>>2]=c;l=ra(d,0,f);H[i+4>>2]=c;h=H[e+12>>2];y=h;p=H[e+8>>2];c=H[e+20>>2];k=H[e+16>>2];g=f+k|0;c=g>>>0>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){qa(l,H[e>>2]+k|0,f);d=H[e+20>>2];c=f+H[e+16>>2]|0;d=c>>>0>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;h=ca-48|0;ca=h;e=nb(j,i+16|0);if((e|0)!=(j+4|0)){c=H[e+4>>2];s:{if(!c){c=e;while(1){d=H[c+8>>2];f=H[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[j>>2]){H[j>>2]=d}H[j+8>>2]=H[j+8>>2]-1;f=H[j+4>>2];t:{u:{g=e;d=e;e=H[d>>2];if(e){c=H[g+4>>2];if(!c){break u}while(1){d=c;c=H[c>>2];if(c){continue}break}}e=H[d+4>>2];if(e){break u}e=0;k=1;break t}H[e+8>>2]=H[d+8>>2];k=0}l=H[d+8>>2];c=H[l>>2];v:{if((d|0)==(c|0)){H[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=H[l+4>>2];break v}H[l+4>>2]=e}r=!I[d+12|0];if((d|0)!=(g|0)){l=H[g+8>>2];H[d+8>>2]=l;H[l+(((g|0)!=H[H[g+8>>2]>>2])<<2)>>2]=d;l=H[g>>2];H[d>>2]=l;H[l+8>>2]=d;l=H[g+4>>2];H[d+4>>2]=l;if(l){H[l+8>>2]=d}F[d+12|0]=I[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=I[c+12|0];x:{d=H[c+8>>2];if(H[d>>2]!=(c|0)){if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[d+4>>2];k=H[e>>2];H[d+4>>2]=k;if(k){H[k+8>>2]=d}H[e+8>>2]=H[d+8>>2];k=H[d+8>>2];H[(((d|0)!=H[k>>2])<<2)+k>>2]=e;H[e>>2]=d;H[d+8>>2]=e;d=c;c=H[c>>2];f=(c|0)==(f|0)?d:f;c=H[c+4>>2]}y:{z:{d=H[c>>2];A:{if(!(I[d+12|0]?0:d)){e=H[c+4>>2];if(I[e+12|0]?0:e){break A}F[c+12|0]=0;c=H[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(I[c+12|0]){break x}}F[c+12|0]=1;break w}e=H[c+4>>2];if(!e){break z}}if(I[e+12|0]){break z}d=c;break y}F[d+12|0]=1;F[c+12|0]=0;e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c+4>>2];e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;break w}if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[c+4>>2];H[d>>2]=e;if(e){H[e+8>>2]=d}H[c+8>>2]=H[d+8>>2];e=H[d+8>>2];H[(((d|0)!=H[e>>2])<<2)+e>>2]=c;H[c+4>>2]=d;H[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=H[d>>2]}e=H[c>>2];C:{if(!(!e|I[e+12|0])){d=c;break C}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((c|0)!=(f|0)?I[c+12|0]:0){break x}F[c+12|0]=1;break w}if(e){if(!I[e+12|0]){d=c;break C}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c>>2];e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;break w}d=c;c=H[c+8>>2];c=H[(((d|0)==H[c>>2])<<2)+c>>2];continue}}F[e+12|0]=1}c=H[g+28>>2];if(c){H[g+32>>2]=c;oa(c)}if(F[g+27|0]<0){oa(H[g+16>>2])}oa(g)}H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+4>>2];d=H[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=pa(f);c=ra(e,0,f);g=c+f|0;H[h+8>>2]=g;H[h+4>>2]=g;H[h>>2]=c;c=d}qa(e,c,f);F:{if(F[i+27|0]>=0){H[h+24>>2]=H[i+24>>2];c=H[i+20>>2];H[h+16>>2]=H[i+16>>2];H[h+20>>2]=c;break F}za(h+16|0,H[i+16>>2],H[i+20>>2])}ae(h+28|0,h);f=h+16|0;c=f;G:{H:{d=H[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=I[c+11|0];g=e<<24>>24<0;k=g?H[c>>2]:c;g=g?H[c+4>>2]:e;while(1){c=d;d=I[c+27|0];e=d<<24>>24<0;d=e?H[c+20>>2]:d;l=d>>>0>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?H[c+16>>2]:c+16|0;z=Fa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=H[c>>2];if(d){continue}break I}d=Fa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=H[c+4>>2];if(d){continue}break}e=c+4|0}d=pa(40);H[d+24>>2]=H[f+8>>2];g=H[f+4>>2];H[d+16>>2]=H[f>>2];H[d+20>>2]=g;H[f>>2]=0;H[f+4>>2]=0;H[f+8>>2]=0;ae(d+28|0,f+12|0);H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[e>>2]=d;c=d;f=H[H[j>>2]>>2];if(f){H[j>>2]=f;c=H[e>>2]}Sb(H[j+4>>2],c);H[j+8>>2]=H[j+8>>2]+1;c=1;break G}d=c;c=0}F[h+44|0]=c;H[h+40>>2]=d;c=H[h+28>>2];if(c){H[h+32>>2]=c;oa(c)}if(F[h+27|0]<0){oa(H[h+16>>2])}c=H[h>>2];if(c){H[h+4>>2]=c;oa(c)}ca=h+48|0;break D}sa();v()}d=H[i>>2];if(!d){break r}}H[i+4>>2]=d;oa(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(F[i+27|0]<0){oa(H[i+16>>2])}ca=i+32|0;break o}sa();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}H[m+12>>2]=0;if(!Bb(1,m+12|0,H[a>>2])){break a}c=H[a>>2];e=H[c+8>>2];f=H[c+16>>2];h=e-f|0;d=H[m+12>>2];c=H[c+12>>2]-(H[c+20>>2]+(e>>>0>>0)|0)|0;if(h>>>0>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;b=b+12|0;d=H[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=pa(N(e,12))}else{f=0}b=f+N(g,12)|0;H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;c=va(b+N((c|0)/-12|0,12)|0,o,c);s=f+N(e,12)|0;b=b+12|0;if(o){oa(o)}o=c}q=q+1|0;if(q>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}sa();v()}wa();v()}if(o){oa(o)}ca=m+32|0;return A}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=ca-720|0;ca=e;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(J[b+38>>1]>=515){H[e+680>>2]=0;H[e+672>>2]=0;H[e+676>>2]=0;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ea[H[H[a>>2]+20>>2]](a,n)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(H[d+28>>2]==9){f=H[e+672>>2];c=H[e+676>>2]-f>>2;k=I[d+24|0];j:{if(c>>>0>>0){ya(e+672|0,k-c|0);break j}if(c>>>0<=k>>>0){break j}H[e+676>>2]=f+(k<<2)}j=0;i=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];d=k<<2;f=H[b+16>>2];l=f+d|0;c=d>>>0>l>>>0?c+1|0:c;if(i>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}qa(H[e+672>>2],f+H[b>>2]|0,d);c=H[b+20>>2];f=d;d=d+H[b+16>>2]|0;c=f>>>0>d>>>0?c+1|0:c;i=d;H[b+16>>2]=d;H[b+20>>2]=c;l=H[b+12>>2];g=H[b+8>>2];h=d+4|0;f=h>>>0<4?c+1|0:c;d=f;if(g>>>0>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}o=H[b>>2];f=o+i|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if(g>>>0<=h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}d=I[h+o|0];h=i+5|0;c=h>>>0<5?c+1|0:c;H[b+16>>2]=h;H[b+20>>2]=c;if(d>>>0>31){break b}p=(A(2,f),B());H[e+20>>2]=-1;H[e+16>>2]=1832;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;c=H[e+672>>2];o=d-1|0;if(o>>>0<=29){H[e+20>>2]=d;k:{h=c+(k<<2)|0;l=h-c|0;f=l>>2;i=H[e+32>>2];d=H[e+24>>2];if(f>>>0<=i-d>>2>>>0){i=H[e+28>>2]-d|0;l=i>>2;i=f>>>0>l>>>0?c+i|0:h;g=i-c|0;if((c|0)!=(i|0)){va(d,c,g)}if(f>>>0>l>>>0){c=h-i|0;d=H[e+28>>2];if((h|0)!=(i|0)){va(d,i,c)}H[e+28>>2]=c+d;break k}H[e+28>>2]=d+g;break k}if(d){H[e+28>>2]=d;oa(d);H[e+32>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;i=0}l:{if((l|0)<0){break l}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break l}i=d<<2;d=pa(i);H[e+28>>2]=d;H[e+24>>2]=d;H[e+32>>2]=d+i;if((c|0)!=(h|0)){qa(d,c,l)}H[e+28>>2]=d+(f<<2);break k}sa();v()}L[e+36>>2]=p}m:{if(o>>>0>=30){break m}if(!Xc(e+16|0,H[H[a+60>>2]+((H[a+40>>2]-H[a+36>>2]|0)/24<<2)>>2])){break m}c=H[a+40>>2];n:{if((c|0)!=H[a+44>>2]){H[c>>2]=1832;d=H[e+20>>2];H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+4>>2]=d;d=H[e+28>>2];f=H[e+24>>2];if((d|0)!=(f|0)){d=d-f|0;if((d|0)<0){break i}g=pa(d);H[c+12>>2]=g;H[c+8>>2]=g;H[c+16>>2]=(d&-4)+g;k=H[e+24>>2];d=H[e+28>>2];if((k|0)!=(d|0)){while(1){L[g>>2]=L[k>>2];g=g+4|0;k=k+4|0;if((d|0)!=(k|0)){continue}break}}H[c+12>>2]=g}L[c+20>>2]=L[e+36>>2];H[a+40>>2]=c+24;break n}d=0;o:{p:{q:{r:{j=H[a+40>>2];f=H[a+36>>2];i=(j-f|0)/24|0;c=i+1|0;if(c>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;l=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?l:c;if(h){if(h>>>0>=178956971){break r}d=pa(N(h,24))}g=N(i,24)+d|0;H[g>>2]=1832;c=H[e+20>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+4>>2]=c;c=H[e+24>>2];i=H[e+28>>2];if((c|0)!=(i|0)){l=i-c|0;if((l|0)<0){break q}k=pa(l);H[g+8>>2]=k;H[g+16>>2]=(l&-4)+k;while(1){L[k>>2]=L[c>>2];k=k+4|0;c=c+4|0;if((i|0)!=(c|0)){continue}break}H[g+12>>2]=k}c=N(h,24)+d|0;L[g+20>>2]=L[e+36>>2];d=g+24|0;if((f|0)==(j|0)){break p}while(1){g=g-24|0;H[g>>2]=1832;j=j-24|0;H[g+4>>2]=H[j+4>>2];H[g+8>>2]=H[j+8>>2];H[g+12>>2]=H[j+12>>2];H[g+16>>2]=H[j+16>>2];H[j+16>>2]=0;H[j+8>>2]=0;H[j+12>>2]=0;L[g+20>>2]=L[j+20>>2];if((f|0)!=(j|0)){continue}break}H[a+44>>2]=c;k=H[a+40>>2];H[a+40>>2]=d;j=H[a+36>>2];H[a+36>>2]=g;if((j|0)==(k|0)){break o}while(1){k=k-24|0;ea[H[H[k>>2]>>2]](k)|0;if((j|0)!=(k|0)){continue}break}break o}sa();v()}wa();v()}sa();v()}H[a+44>>2]=c;H[a+40>>2]=d;H[a+36>>2]=g}if(j){oa(j)}}j=1}H[e+16>>2]=1832;c=H[e+24>>2];if(c){H[e+28>>2]=c;oa(c)}if(!j){break c}}n=n+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(n|0)){continue}break}break d}k=ea[H[H[a>>2]+24>>2]](a)|0;H[e+712>>2]=0;H[e+704>>2]=0;H[e+708>>2]=0;if(k){if(k>>>0>=214748365){break h}c=N(k,20);d=pa(c);H[e+704>>2]=d;H[e+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=e,r=ra(d,0,c)+c|0,H[q+708>>2]=r;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];f=H[d+28>>2];c=f-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}h=(c|0)>0?c:0;if(h>>>0>4){break f}c=H[e+704>>2]+N(m,20)|0;i=I[d+24|0];H[c+16>>2]=i;H[c+12>>2]=h;H[c+8>>2]=f;H[c+4>>2]=g;H[c>>2]=d;g=g+i|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}c=ea[H[H[a>>2]+20>>2]](a,0)|0;m=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];F[m+84|0]=1;H[m+72>>2]=H[m+68>>2];h=H[b+12>>2];c=h;d=H[b+20>>2];f=H[b+8>>2];i=H[b+16>>2];if((c|0)<=(d|0)&f>>>0<=i>>>0|(c|0)<(d|0)){break f}n=H[b>>2];o=I[n+i|0];c=d;l=i+1|0;c=l?c:c+1|0;H[b+16>>2]=l;H[b+20>>2]=c;s:{switch(o|0){case 0:a=H[e+704>>2];if((H[e+708>>2]-a|0)!=20){break e}if(H[a+16>>2]!=3){break f}t:{if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}c=d;a=i+2|0;c=a>>>0<2?c+1|0:c;l=a;H[b+16>>2]=a;H[b+20>>2]=c;c=d;a=i+6|0;c=a>>>0<6?c+1|0:c;if(a>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}d=l+n|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;mb(m,d);j=e+672|0;H[j+20>>2]=0;H[j+12>>2]=0;H[j+16>>2]=0;H[j>>2]=0;H[j+4>>2]=0;H[j+20>>2]=d;d=Ac(e+16|0,e+704|0);k=0;g=ca-32|0;ca=g;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;f=H[b+12>>2];m=f;i=H[b+8>>2];c=H[b+20>>2];l=c;h=H[b+16>>2];a=h+4|0;c=a>>>0<4?c+1|0:c;u:{if(a>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break u}n=H[b>>2];f=n+h|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;v:{w:{switch(f-2|0){case 1:if((c|0)>=(m|0)&a>>>0>=i>>>0|(c|0)>(m|0)){break u}a=F[a+n|0];c=l;f=h+5|0;c=f>>>0<5?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;H[j+8>>2]=a;if((a|0)==1){if(Ud(j,b,g+16|0)){break v}break u}Rd(1799,23,H[3443]);break u;default:Rd(1774,24,H[3443]);break u;case 0:break w}}if(!Ud(j,b,g+16|0)){break u}}H[g+8>>2]=H[g+16>>2];H[g>>2]=H[g+20>>2];c=ca-32|0;ca=c;a=H[j>>2];p=L[j+4>>2];H[c+24>>2]=1065353216;h=-1<0){L[c+24>>2]=p/O(a|0)}m=H[g+8>>2];n=H[g>>2];if((m|0)!=(n|0)){a=H[d+28>>2];while(1){b=H[m>>2];f=H[m+4>>2];p=L[c+24>>2];L[c+16>>2]=p*O(H[m+8>>2]-h|0);L[c+12>>2]=p*O(f-h|0);L[c+8>>2]=p*O(b-h|0);b=a;i=H[d+16>>2];f=H[i>>2];if(!I[f+84|0]){b=H[H[f+68>>2]+(a<<2)>>2]}if(K[f+80>>2]>b>>>0){a=H[f+40>>2];qa(H[H[f>>2]>>2]+N(a,b)|0,(c+8|0)+(H[i+4>>2]<<2)|0,a);n=H[g>>2];a=H[d+28>>2]}a=a+1|0;H[d+28>>2]=a;m=m+12|0;if((n|0)!=(m|0)){continue}break}}ca=c+32|0;k=1}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g+32|0;yc(d);j=1;if(k){break f}}j=0;break f;case 1:break s;default:break f}}if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}o=I[l+n|0];c=d;l=i+2|0;c=l>>>0<2?c+1|0:c;H[b+16>>2]=l;H[b+20>>2]=c;if(o>>>0>=7){H[e>>2]=o;Qd(1651,e);break f}c=d;d=i+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}f=l+n|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;if(k){m=0;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,f);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];m=m+1|0;if((k|0)!=(m|0)){continue}break}}a=Ac(e+672|0,e+704|0);x:{y:{switch(o|0){case 1:c=wb(e+16|0,g);b=zd(c,b,a,-1);xb(c);if(!b){break g}break x;case 2:c=ub(e+16|0,g);b=yd(c,b,a,-1);vb(c);if(!b){break g}break x;case 3:c=ub(e+16|0,g);b=xd(c,b,a,-1);vb(c);if(!b){break g}break x;case 4:c=$a(e+16|0,g);b=wd(c,b,a,-1);ab(c);if(!b){break g}break x;case 5:c=$a(e+16|0,g);b=vd(c,b,a,-1);ab(c);if(!b){break g}break x;case 6:c=$a(e+16|0,g);b=ud(c,b,a,-1);ab(c);if(b){break x}break g;case 0:break y;default:break g}}c=wb(e+16|0,g);b=Bd(c,b,a,-1);xb(c);if(!b){break g}}yc(a);j=1;break f}sa();v()}sa();v()}yc(a)}a=H[e+704>>2]}if(!a){break a}H[e+708>>2]=a;oa(a);break a}j=1;if(H[a+52>>2]==H[a+48>>2]){break b}while(1){if(!td(1,e+16|0,b)){break c}c=H[a+48>>2];d=H[e+16>>2];H[c+(m<<2)>>2]=d>>>1^0-(d&1);m=m+1|0;if(m>>>0>2]-c>>2>>>0){continue}break}break b}j=0}a=H[e+672>>2];if(!a){break a}H[e+676>>2]=a;oa(a)}ca=e+720|0;return j|0}function te(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ca-32|0;ca=h;H[b+32>>2]=d;H[b+40>>2]=c;H[b+4>>2]=e;nc(a,d,h+16|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}d=I[h+23|0];if((ea[H[H[b>>2]+8>>2]](b)|0)!=(d|0)){b=pa(64);F[b+50|0]=0;c=I[1314]|I[1315]<<8;F[b+48|0]=c;F[b+49|0]=c>>>8;c=I[1310]|I[1311]<<8|(I[1312]<<16|I[1313]<<24);d=I[1306]|I[1307]<<8|(I[1308]<<16|I[1309]<<24);F[b+40|0]=d;F[b+41|0]=d>>>8;F[b+42|0]=d>>>16;F[b+43|0]=d>>>24;F[b+44|0]=c;F[b+45|0]=c>>>8;F[b+46|0]=c>>>16;F[b+47|0]=c>>>24;c=I[1302]|I[1303]<<8|(I[1304]<<16|I[1305]<<24);d=I[1298]|I[1299]<<8|(I[1300]<<16|I[1301]<<24);F[b+32|0]=d;F[b+33|0]=d>>>8;F[b+34|0]=d>>>16;F[b+35|0]=d>>>24;F[b+36|0]=c;F[b+37|0]=c>>>8;F[b+38|0]=c>>>16;F[b+39|0]=c>>>24;c=I[1294]|I[1295]<<8|(I[1296]<<16|I[1297]<<24);d=I[1290]|I[1291]<<8|(I[1292]<<16|I[1293]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1286]|I[1287]<<8|(I[1288]<<16|I[1289]<<24);d=I[1282]|I[1283]<<8|(I[1284]<<16|I[1285]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);d=I[1274]|I[1275]<<8|(I[1276]<<16|I[1277]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1270]|I[1271]<<8|(I[1272]<<16|I[1273]<<24);d=I[1266]|I[1267]<<8|(I[1268]<<16|I[1269]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,50);oa(b);break a}c=I[h+21|0];F[b+36|0]=c;e=I[h+22|0];F[b+37|0]=e;if((c-3&255)>>>0<=253){b=pa(32);F[b+22|0]=0;c=I[1427]|I[1428]<<8|(I[1429]<<16|I[1430]<<24);d=I[1423]|I[1424]<<8|(I[1425]<<16|I[1426]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1421]|I[1422]<<8|(I[1423]<<16|I[1424]<<24);d=I[1417]|I[1418]<<8|(I[1419]<<16|I[1420]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1413]|I[1414]<<8|(I[1415]<<16|I[1416]<<24);d=I[1409]|I[1410]<<8|(I[1411]<<16|I[1412]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=pa(32);F[b+22|0]=0;c=I[1404]|I[1405]<<8|(I[1406]<<16|I[1407]<<24);d=I[1400]|I[1401]<<8|(I[1402]<<16|I[1403]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1398]|I[1399]<<8|(I[1400]<<16|I[1401]<<24);d=I[1394]|I[1395]<<8|(I[1396]<<16|I[1397]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1390]|I[1391]<<8|(I[1392]<<16|I[1393]<<24);d=I[1386]|I[1387]<<8|(I[1388]<<16|I[1389]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}c=e|c<<8;G[H[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|G[h+26>>1]>=0){break b}i=ca-16|0;ca=i;e=pa(36);c=e;H[c+4>>2]=0;H[c+8>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[e>>2]=e+4;H[e+32>>2]=0;H[e+12>>2]=c;H[i>>2]=0;d=H[b+32>>2];j=ca-16|0;ca=j;c=0;c:{if(!e){break c}H[i>>2]=d;H[j+12>>2]=0;c=0;if(!Bb(1,j+12|0,d)){break c}m=H[j+12>>2];if(m){while(1){d:{if(Bb(1,j+8|0,H[i>>2])){c=pa(28);H[c+4>>2]=0;H[c+8>>2]=0;d=c+16|0;H[d>>2]=0;H[d+4>>2]=0;H[c>>2]=c+4;H[c+12>>2]=d;H[c+24>>2]=H[j+8>>2];if(ce(i,c)){break d}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}c=0;break c}f=ca-16|0;ca=f;H[f+8>>2]=c;e:{if(!c){break e}d=H[e+28>>2];f:{if(d>>>0>2]){H[f+8>>2]=0;H[d>>2]=c;H[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=H[e+24>>2];l=H[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=H[e+32>>2]-g|0;k=g>>>1|0;g=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(g){if(g>>>0>=1073741824){break i}d=pa(g<<2)}k=H[f+8>>2];H[f+8>>2]=0;c=(l<<2)+d|0;H[c>>2]=k;g=(g<<2)+d|0;l=c+4|0;d=H[e+28>>2];k=H[e+24>>2];if((d|0)==(k|0)){break h}while(1){d=d-4|0;o=H[d>>2];H[d>>2]=0;c=c-4|0;H[c>>2]=o;if((d|0)!=(k|0)){continue}break}H[e+32>>2]=g;g=H[e+28>>2];H[e+28>>2]=l;d=H[e+24>>2];H[e+24>>2]=c;if((d|0)==(g|0)){break g}while(1){g=g-4|0;c=H[g>>2];H[g>>2]=0;if(c){Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}if((d|0)!=(g|0)){continue}break}break g}sa();v()}wa();v()}H[e+32>>2]=g;H[e+28>>2]=l;H[e+24>>2]=c}if(d){oa(d)}}c=H[f+8>>2];H[f+8>>2]=0;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}ca=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=ce(i,e)}ca=j+16|0;j:{if(c){d=H[b+4>>2];c=H[d+4>>2];H[d+4>>2]=e;if(c){Uc(c)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break j}c=pa(32);F[c+26|0]=0;d=I[1579]|I[1580]<<8;F[c+24|0]=d;F[c+25|0]=d>>>8;d=I[1575]|I[1576]<<8|(I[1577]<<16|I[1578]<<24);f=I[1571]|I[1572]<<8|(I[1573]<<16|I[1574]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1567]|I[1568]<<8|(I[1569]<<16|I[1570]<<24);f=I[1563]|I[1564]<<8|(I[1565]<<16|I[1566]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1559]|I[1560]<<8|(I[1561]<<16|I[1562]<<24);f=I[1555]|I[1556]<<8|(I[1557]<<16|I[1558]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;H[a>>2]=-1;za(a+4|0,c,26);oa(c);H[i+8>>2]=0;Uc(e)}ca=i+16|0;if(H[a>>2]){break a}if(F[a+15|0]>=0){break b}oa(H[a+4>>2])}if(!(ea[H[H[b>>2]+12>>2]](b)|0)){b=pa(48);F[b+33|0]=0;F[b+32|0]=I[1384];c=I[1380]|I[1381]<<8|(I[1382]<<16|I[1383]<<24);d=I[1376]|I[1377]<<8|(I[1378]<<16|I[1379]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1372]|I[1373]<<8|(I[1374]<<16|I[1375]<<24);d=I[1368]|I[1369]<<8|(I[1370]<<16|I[1371]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1364]|I[1365]<<8|(I[1366]<<16|I[1367]<<24);d=I[1360]|I[1361]<<8|(I[1362]<<16|I[1363]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1356]|I[1357]<<8|(I[1358]<<16|I[1359]<<24);d=I[1352]|I[1353]<<8|(I[1354]<<16|I[1355]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,33);oa(b);break a}if(!(ea[H[H[b>>2]+20>>2]](b)|0)){b=mc(h,1582);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}if(!(ea[H[H[b>>2]+24>>2]](b)|0)){b=mc(h,1317);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ca=h+32|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-16|0;ca=m;H[m+12>>2]=b;b=pa(32);H[m>>2]=b;H[m+4>>2]=24;H[m+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;l=ca-48|0;ca=l;f=H[m+12>>2];d=a;a=a+16|0;b=H[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>H[b+16>>2];c=e?c:b;b=H[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=H[c+16>>2]){break a}}H[l+28>>2]=0;H[l+32>>2]=0;y=l+24|0;H[l+24>>2]=y|4;a=l+16|0;H[a>>2]=0;H[a+4>>2]=0;H[l+8>>2]=f;H[l+12>>2]=a;t=l+8|0;a=t;x=ca-16|0;ca=x;u=d+12|0;c=H[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=H[a>>2];while(1){d=c;b=H[c+16>>2];if((b|0)>(a|0)){o=d;c=H[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=H[d+4>>2];if(c){continue}break}o=d+4|0}g=pa(32);b=H[t>>2];q=g+24|0;a=q;H[a>>2]=0;H[a+4>>2]=0;H[g+16>>2]=b;r=g+20|0;H[r>>2]=a;c=H[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=ca-16|0;ca=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=I[f+27|0];h=b<<24>>24<0;i=I[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?H[k+4>>2]:i;b=h?H[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?H[k>>2]:k;h=h?H[f+16>>2]:f+16|0;A=Fa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=H[f>>2];m:{a=f;n:{if((a|0)==H[r>>2]){break n}o:{if(!h){b=f;while(1){a=H[b+8>>2];i=H[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=H[b+4>>2];if(b){continue}break}}i=I[k+11|0];s=i<<24>>24;b=(s|0)<0;j=I[a+27|0];n=j<<24>>24<0;p:{i=b?H[k+4>>2]:i;j=n?H[a+20>>2]:j;w=i>>>0>>0?i:j;if(w){b=Fa(n?H[a+16>>2]:a+16|0,b?H[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){H[p+12>>2]=f;a=f;break e}H[p+12>>2]=a;a=a+4|0;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(s|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}break g}b=Fa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=H[f+4>>2];v:{if(!h){b=f;while(1){a=H[b+8>>2];j=H[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=H[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=I[a+27|0];b=j<<24>>24<0;y:{j=b?H[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=Fa((n|0)<0?H[k>>2]:k,b?H[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){H[p+12>>2]=f;a=f+4|0;break e}H[p+12>>2]=a;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(n|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}}H[p+12>>2]=a;a=f;break e}H[p+12>>2]=f;H[a>>2]=f}f=a;a=H[a>>2];if(a){b=0}else{a=pa(40);b=a+16|0;E:{if(F[c+27|0]>=0){e=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+24>>2];break E}za(b,H[c+16>>2],H[c+20>>2])}b=a+28|0;F:{if(F[c+39|0]>=0){e=H[c+32>>2];H[b>>2]=H[c+28>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+36>>2];break F}za(b,H[c+28>>2],H[c+32>>2])}H[a+8>>2]=H[p+12>>2];H[a>>2]=0;H[a+4>>2]=0;H[f>>2]=a;b=a;e=H[H[r>>2]>>2];if(e){H[r>>2]=e;b=H[f>>2]}Sb(H[r+4>>2],b);H[r+8>>2]=H[r+8>>2]+1;b=1}F[x+12|0]=b;H[x+8>>2]=a;ca=p+16|0;b=H[c+4>>2];G:{if(b){while(1){c=b;b=H[b>>2];if(b){continue}break G}}while(1){a=c;c=H[c+8>>2];if((a|0)!=H[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}H[g+8>>2]=d;H[g>>2]=0;H[g+4>>2]=0;H[o>>2]=g;c=g;a=H[H[u>>2]>>2];if(a){H[u>>2]=a;c=H[o>>2]}Sb(H[u+4>>2],c);H[u+8>>2]=H[u+8>>2]+1;a=1}F[l+44|0]=a;H[l+40>>2]=g;ca=x+16|0;c=H[l+40>>2];Kb(t|4,H[l+16>>2]);Kb(y,H[l+28>>2])}f=ca-48|0;ca=f;d=f+8|0;g=ca-32|0;ca=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(K[3660]<=1|0)){break I}}F[a|0]=49;b=a+1|0;h=0}H[g+12>>2]=h;H[g+8>>2]=b;h=ca-16|0;ca=h;e=ca-16|0;ca=e;J:{q=H[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){F[d+11|0]=g|I[d+11|0]&128;F[d+11|0]=I[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}Zb(t,b+1|0);b=H[e+8>>2];H[d>>2]=b;H[d+8>>2]=H[d+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[d+8>>2]=H[d+8>>2]|-2147483648;H[d+4>>2]=g}while(1){if((a|0)!=(q|0)){F[b|0]=I[a|0];b=b+1|0;a=a+1|0;continue}break}F[e+7|0]=0;F[b|0]=I[e+7|0];ca=e+16|0;break J}Na();v()}ca=h+16|0;ca=o;H[f+32>>2]=m;L:{M:{a=c+20|0;d=H[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=I[m+11|0];c=b<<24>>24<0;e=c?H[m>>2]:m;b=c?H[m+4>>2]:b;while(1){c=d;d=I[c+27|0];g=d<<24>>24<0;d=g?H[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?H[c+16>>2]:c+16|0;q=Fa(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=H[c>>2];if(d){continue}break N}d=Fa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=H[c+4>>2];if(d){continue}break}g=c+4|0}d=pa(40);e=d+16|0;b=H[f+32>>2];T:{if(F[b+11|0]>=0){o=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=o;H[e+8>>2]=H[b+8>>2];break T}za(e,H[b>>2],H[b+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+36>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[g>>2]=d;c=d;b=H[H[a>>2]>>2];if(b){H[a>>2]=b;c=H[g>>2]}Sb(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;a=1;break L}d=c;a=0}F[f+44|0]=a;H[f+40>>2]=d;a=H[f+40>>2];if(F[a+39|0]<0){oa(H[a+28>>2])}b=H[f+12>>2];H[a+28>>2]=H[f+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[f+16>>2];ca=f+48|0;ca=l+48|0;if(F[m+11|0]<0){oa(H[m>>2])}ca=m+16|0}function Bd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];k=h+4|0;g=k>>>0<4?g+1|0:g;a:{if(j>>>0>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>l>>>0&(h|0)>=(k|0)|(h|0)>(k|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}s=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+120>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=s;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){b=H[e+12>>2];f=H[e+24>>2];k=a-1|0;c=f+k|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=k;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+132>>2]|0;k=f+H[d+120>>2]|0;i=H[d>>2];l=a<<2;m=H[l+H[o>>2]>>2];f:{g:{if((i|0)==(m|0)){if(!j){break g}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break g}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;h:{if(c){break h}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break h}m=H[k>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;i:{if(g>>>0>3){break i}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break i}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=H[d+108>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break m}break j}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+120>>2];n=g+1|0;o=N(n,12);p=b+o|0;if((p|0)!=(k|0)){Aa(p,H[k>>2],H[k+4>>2]);b=H[d+120>>2]}b=l+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2];m=32-i|0;n:{if((b|0)<=(m|0)){k=H[d+28>>2];if((k|0)==H[d+20>>2]){break l}m=H[k>>2];p=b+i|0;H[d+32>>2]=p;b=m<>>32-b|0;if((p|0)!=32){break n}H[d+32>>2]=0;H[d+28>>2]=k+4;break n}k=H[d+28>>2];p=k+4|0;if((p|0)==H[d+20>>2]){break l}r=H[k>>2];H[d+28>>2]=p;m=b-m|0;H[d+32>>2]=m;b=H[k+4>>2]>>>32-m|r<>>32-b}i=j>>>1|0;if(i>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break j}i=j>>>1|0;b=0}o:{p:{b=i-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}i=H[d+88>>2];if((i|0)==H[d+80>>2]){break p}j=H[i>>2];k=H[d+92>>2];m=k+1|0;H[d+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){H[d+92>>2]=0;H[d+88>>2]=i+4;if(j){break r}break p}if(!j){break p}}}i=c;c=b;break o}i=b}b=H[d+132>>2];j=b+f|0;f=H[j>>2];k=f+l|0;H[k>>2]=H[k>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=i;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(H[d+12>>2]){i=H[d+40>>2];p=H[o>>2];c=H[d+96>>2];r=H[d+108>>2];a=0;while(1){g=r+(a<<2)|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;l=H[f+p>>2];s:{if((b|0)==(l|0)){break s}f=c+f|0;b=b-l|0;l=H[d+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=H[d+48>>2];if((n|0)==(i|0)){c=0;break e}H[f>>2]=H[n>>2]<>>32-b;b=b+H[d+52>>2]|0;H[d+52>>2]=b;if((b|0)!=32){break s}H[d+52>>2]=0;H[d+48>>2]=n+4;break s}n=H[d+48>>2];t=n+4|0;if((i|0)==(t|0)){c=0;break e}u=H[n>>2];H[d+48>>2]=t;q=b-q|0;H[d+52>>2]=q;H[f>>2]=H[n+4>>2]>>>32-q|u<>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[k>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}i=0;a=H[h+16>>2];t:{if((a|0)==H[h+20>>2]){break t}while(1){f=H[h+28>>2];c=N(i,20)+a|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break t}n=H[d+96>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;u:{if(g>>>0>3){break u}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break u}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;v:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break v}}w:{if((a|0)==(f|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break w}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];l=H[b+12>>2];k=H[b+20>>2];i=H[b+16>>2];f=i+4|0;k=f>>>0<4?k+1|0:k;a:{if(f>>>0>j>>>0&(k|0)>=(l|0)|(k|0)>(l|0)){break a}i=i+H[b>>2]|0;H[a>>2]=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);i=H[b+20>>2];j=i;f=H[b+16>>2];i=f+4|0;l=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=l;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];f=f+8|0;j=f>>>0<8?j+1|0:j;if((k|0)<=(j|0)&f>>>0>l>>>0|(k|0)<(j|0)){break a}i=H[b>>2]+i|0;f=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[a+4>>2]=f;j=H[b+20>>2];i=H[b+16>>2]+4|0;j=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=j;if(!f){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}t=H[a+4>>2];i=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}g=H[f+120>>2];d=H[g>>2];if(d){H[g+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[g+4>>2]=c;H[g>>2]=b;H[g+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=pa(a);H[e+8>>2]=h;b=a+h|0;H[e+16>>2]=b;ra(h,0,a);H[e+12>>2]=b}c=H[f+132>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);h=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=h;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=t;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){j=H[e+12>>2];g=H[e+24>>2];d=a-1|0;c=g+d|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;n=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>t>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+120>>2];o=N(n,12);q=b+o|0;g=H[f>>2];h=a<<2;l=o+H[f+132>>2]|0;c=H[h+H[l>>2]>>2];f:{g:{if((g|0)==(c|0)){if(!m){break g}h=0;b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[i+28>>2]=m+H[i+28>>2];H[f+8>>2]=a+m;break g}while(1){d=(b|0)==(c|0);a=b;g=0;b=c;h:{if(d){break h}while(1){d=H[i+28>>2];b=a;k=N(g,20)+c|0;l=H[k>>2];if(!I[l+84|0]){d=H[H[l+68>>2]+(d<<2)>>2]}if(K[l+80>>2]<=d>>>0){break h}j=H[q>>2]+(H[k+4>>2]<<2)|0;c=H[k+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,j+(a<<2)|0,c);c=H[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(g>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;h=h+1|0;if((m|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(m>>>0<=2){c=H[f+108>>2];H[c>>2]=a;h=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}j=b;b=o+12|0;Aa(j+b|0,H[q>>2],H[q+4>>2]);b=h+H[b+H[f+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];g=32-l|0;n:{if((k|0)<=(g|0)){g=H[f+28>>2];if((g|0)==H[f+20>>2]){break l}c=H[g>>2];b=k+l|0;H[f+32>>2]=b;c=c<>>32-k|0;if((b|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=g+4;break n}j=H[f+28>>2];b=j+4|0;if((b|0)==H[f+20>>2]){break l}c=H[j>>2];H[f+28>>2]=b;b=k-g|0;H[f+32>>2]=b;c=H[j+4>>2]>>>32-b|c<>>32-k}g=m>>>1|0;if(g>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(h<<2)>>2]=a;b=H[f+12>>2];h=h+1|0;if(b>>>0>h>>>0){continue}break}break j}g=m>>>1|0;c=0}k=n+1|0;o:{p:{b=g-c|0;c=m-b|0;q:{if((c|0)==(b|0)){c=b;break q}l=H[f+88>>2];if((l|0)==H[f+80>>2]){break p}j=H[l>>2];g=H[f+92>>2];d=g+1|0;H[f+92>>2]=d;g=j&-2147483648>>>g;r:{if((d|0)==32){H[f+92>>2]=0;H[f+88>>2]=l+4;if(g){break r}break p}if(!g){break p}}}g=c;c=b;break o}g=b}l=H[f+132>>2];j=l+o|0;d=H[j>>2];b=d+h|0;H[b>>2]=H[b>>2]+1;Aa(l+N(k,12)|0,d,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((d|0)!=(h|0)?N(d-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+h>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!g){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((c|0)!=(h|0)?N(c-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+h>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=a;H[b>>2]=g;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}r=0;if(!m){break g}while(1){if(H[f+12>>2]){u=H[f+40>>2];j=H[l>>2];s=H[f+96>>2];g=H[f+108>>2];a=0;while(1){n=(a<<2)+g|0;H[s+(H[n>>2]<<2)>>2]=0;d=H[f>>2];c=H[n>>2]<<2;b=H[c+j>>2];s:{if((d|0)==(b|0)){break s}o=c+s|0;p=d-b|0;h=H[f+52>>2];d=32-h|0;if((p|0)<=(d|0)){c=H[f+48>>2];if((c|0)==(u|0)){d=0;break e}H[o>>2]=H[c>>2]<>>32-p;b=p+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=c+4;break s}k=H[f+48>>2];b=k+4|0;if((u|0)==(b|0)){d=0;break e}c=H[k>>2];H[f+48>>2]=b;b=p-d|0;H[f+52>>2]=b;H[o>>2]=H[k+4>>2]>>>32-b|c<>>32-p}c=H[n>>2]<<2;b=c+s|0;H[b>>2]=H[b>>2]|H[c+H[q>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}g=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){d=H[i+28>>2];h=N(g,20)+a|0;k=H[h>>2];if(!I[k+84|0]){d=H[H[k+68>>2]+(d<<2)>>2]}if(K[k+80>>2]<=d>>>0){break t}j=H[f+96>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[h+16>>2]){break u}while(1){b=qa(b,j+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+16>>2];if(g>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;r=r+1|0;if((m|0)!=(r|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;h=H[e+16>>2];a=H[e+12>>2];b=h-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;h=H[e+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(h|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break w}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;g=d;break b}sa();v()}sa();v()}}return g}function wd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];j=H[b+12>>2];n=H[b+20>>2];e=H[b+16>>2];h=e+4|0;n=h>>>0<4?n+1|0:n;a:{if(i>>>0>>0&(j|0)<=(n|0)|(j|0)<(n|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;j=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=j;if(K[a>>2]>32){break a}j=H[b+8>>2];n=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>j>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;k=pa(a);H[f+8>>2]=k;b=a+k|0;H[f+16>>2]=b;ra(k,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);k=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=k;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}n=g+16|0;while(1){j=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];o=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(o>>>0>u>>>0){break e}a=H[g+12>>2];k=(i|0)!=(a-1|0)?i+1|0:0;if(k>>>0>=a>>>0){break e}p=N(q,12);w=p+H[g+640>>2]|0;r=p+H[g+628>>2]|0;h=H[g>>2];l=k<<2;e=H[l+H[w>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!o){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;j=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(j,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;j=j+1|0;c=H[d+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((o|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(o>>>0<=2){c=H[g+616>>2];H[c>>2]=k;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];j=q+1|0;m=N(j,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+n|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=o>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){k=(b-1|0)!=(k|0)?k+1|0:0;H[c+(a<<2)>>2]=k;a=a+1|0;b=H[g+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=o-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=k;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=j;H[a+4>>2]=k;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}k=0;if(!o){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[w>>2];t=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[t+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+t|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}j=H[g+556>>2];b=j+4|0;if((q|0)==(b|0)){c=0;break e}c=H[j>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[j+4>>2]>>>32-b|c<>>32-s}c=H[p>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(j,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);j=j+1|0;a=H[d+16>>2];if(j>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;k=k+1|0;if((o|0)!=(k|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;k=H[f+16>>2];a=H[f+12>>2];b=k-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;k=H[f+16>>2];b=k-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(k|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((k|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function ud(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];o=H[b+20>>2];e=H[b+16>>2];h=e+4|0;o=h>>>0<4?o+1|0:o;a:{if(i>>>0>>0&(k|0)<=(o|0)|(k|0)<(o|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;k=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];o=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(o|0)|(i|0)>(o|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}w=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[f+8>>2]=j;b=a+j|0;H[f+16>>2]=b;ra(j,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);j=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=j;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=w;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}o=g+16|0;while(1){i=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];n=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(n>>>0>w>>>0){break e}a=H[g+628>>2];p=N(q,12);t=p+H[g+640>>2]|0;j=Vd(g,n,t);if(j>>>0>=K[g+12>>2]){break e}r=a+p|0;h=H[g>>2];l=j<<2;e=H[l+H[t>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!n){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;k=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(k,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;k=k+1|0;c=H[d+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((n|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){c=H[g+616>>2];H[c>>2]=j;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];k=q+1|0;m=N(k,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+o|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[c+(a<<2)>>2]=j;a=a+1|0;b=H[g+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}j=0;if(!n){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[t>>2];u=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[u+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+u|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}k=H[g+556>>2];b=k+4|0;if((q|0)==(b|0)){c=0;break e}c=H[k>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[k+4>>2]>>>32-b|c<>>32-s}c=H[p>>2]<<2;b=c+u|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}k=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(k,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);k=k+1|0;a=H[d+16>>2];if(k>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;j=j+1|0;if((n|0)!=(j|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;j=H[f+16>>2];a=H[f+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;j=H[f+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function vd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];m=H[b+20>>2];f=H[b+16>>2];h=f+4|0;m=h>>>0<4?m+1|0:m;a:{if(i>>>0>>0&(k|0)<=(m|0)|(k|0)<(m|0)){break a}f=f+H[b>>2]|0;H[a>>2]=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);f=H[b+20>>2];i=f;h=H[b+16>>2];f=h+4|0;k=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];m=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(m|0)|(i|0)>(m|0)){break a}f=f+H[b>>2]|0;h=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];f=H[b+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];b=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;g=b+d|0;H[e+16>>2]=g;ra(b,0,d);H[e+12>>2]=g}h=H[f+628>>2];d=H[h>>2];if(d){H[h+4>>2]=d;oa(d);g=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[h+4>>2]=g;H[h>>2]=b;H[h+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[e+8>>2]=j;b=a+j|0;H[e+16>>2]=b;ra(j,0,a);H[e+12>>2]=b}d=H[f+640>>2];a=H[d>>2];if(a){H[d+4>>2]=a;oa(a);j=H[e+8>>2];b=H[e+12>>2]}H[d+4>>2]=b;H[d>>2]=j;H[d+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}m=f+16|0;while(1){k=H[e+12>>2];h=H[e+24>>2];g=a-1|0;d=h+g|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];n=H[b>>2];H[e+28>>2]=g;b=H[e+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(n>>>0>u>>>0){d=0;break e}d=0;a=H[f+12>>2];j=(i|0)!=(a-1|0)?i+1|0:0;if(j>>>0>=a>>>0){break e}a=H[f+628>>2];o=N(q,12);s=a+o|0;g=H[f>>2];l=j<<2;k=o+H[f+640>>2]|0;b=H[l+H[k>>2]>>2];f:{g:{if((g|0)==(b|0)){if(!n){break g}g=H[c+16>>2];b=H[c+20>>2];p=0;while(1){d=(b|0)==(g|0);a=b;j=0;b=g;h:{if(d){break h}while(1){d=H[c+28>>2];b=a;k=N(j,20)+g|0;i=H[k>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break h}h=H[s>>2]+(H[k+4>>2]<<2)|0;g=H[k+12>>2];b=h;i:{if(g>>>0>3){break i}a=0;b=H[c+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,h+(a<<2)|0,g);g=H[k+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);a=H[c+20>>2];b=a;j=j+1|0;g=H[c+16>>2];if(j>>>0<(a-g|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){d=H[f+616>>2];H[d>>2]=j;a=1;b=H[f+12>>2];if(b>>>0>1){break l}break j}if(K[f+8>>2]>K[f+4>>2]){break e}d=a;a=o+12|0;Aa(d+a|0,H[s>>2],H[s+4>>2]);a=l+H[a+H[f+628>>2]>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+m|0)|b<<1;a=a+1|0;if((d|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}d=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[d+(a<<2)>>2]=j;a=a+1|0;b=H[f+12>>2];if(a>>>0>>0){continue}break}break j}k=q+1|0;m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[f+596>>2];if((i|0)==H[f+588>>2]){break n}h=H[i>>2];g=H[f+600>>2];d=g+1|0;H[f+600>>2]=d;g=h&-2147483648>>>g;p:{if((d|0)==32){H[f+600>>2]=0;H[f+596>>2]=i+4;if(g){break p}break n}if(!g){break n}}}d=a;a=b;break m}d=b}i=H[f+640>>2];h=i+o|0;g=H[h>>2];b=g+l|0;H[b>>2]=H[b>>2]+1;Aa(i+N(k,12)|0,g,H[h+4>>2]);if(a){h=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];b=H[e+12>>2];if((h|0)==(((b|0)!=(g|0)?N(g-b>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=b}b=(h>>>0)/341|0;b=H[g+(b<<2)>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[e+28>>2]=H[e+28>>2]+1}if(!d){break g}b=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];a=H[e+12>>2];if((b|0)==(((a|0)!=(g|0)?N(g-a>>2,341)-1|0:0)|0)){xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=a}a=(b>>>0)/341|0;a=H[g+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=d;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}p=0;if(!n){break g}while(1){if(H[f+12>>2]){w=H[f+548>>2];i=H[k>>2];t=H[f+604>>2];h=H[f+616>>2];a=0;while(1){j=h+(a<<2)|0;H[(H[j>>2]<<2)+t>>2]=0;g=H[f>>2];d=H[j>>2]<<2;b=H[d+i>>2];q:{if((g|0)==(b|0)){break q}q=d+t|0;r=g-b|0;o=H[f+560>>2];g=32-o|0;if((r|0)<=(g|0)){d=H[f+556>>2];if((d|0)==(w|0)){d=0;break e}H[q>>2]=H[d>>2]<>>32-r;b=H[f+560>>2]+r|0;H[f+560>>2]=b;if((b|0)!=32){break q}H[f+560>>2]=0;H[f+556>>2]=d+4;break q}l=H[f+556>>2];b=l+4|0;if((b|0)==(w|0)){d=0;break e}d=H[l>>2];H[f+556>>2]=b;b=r-g|0;H[f+560>>2]=b;H[q>>2]=H[l+4>>2]>>>32-b|d<>>32-r}d=H[j>>2]<<2;b=d+t|0;H[b>>2]=H[b>>2]|H[d+H[s>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[c+16>>2];r:{if((a|0)==H[c+20>>2]){break r}while(1){d=H[c+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break r}h=H[f+604>>2]+(H[l+4>>2]<<2)|0;g=H[l+12>>2];b=h;s:{if(g>>>0>3){break s}a=0;b=H[c+12>>2];if(!H[l+16>>2]){break s}while(1){b=qa(b,h+(a<<2)|0,g);g=H[l+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);j=j+1|0;a=H[c+16>>2];if(j>>>0<(H[c+20>>2]-a|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;j=H[e+16>>2];a=H[e+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;j=H[e+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}g=170;t:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break u}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}g=d}return g}function yd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];l=h+4|0;g=l>>>0<4?g+1|0:g;a:{if(j>>>0>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}k=H[b+8>>2];l=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>k>>>0&(h|0)>=(l|0)|(h|0)>(l|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}r=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+116>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=r;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}t=d+16|0;while(1){b=H[e+12>>2];f=H[e+24>>2];l=a-1|0;c=f+l|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=l;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+128>>2]|0;l=f+H[d+116>>2]|0;i=H[d>>2];k=a<<2;n=H[k+H[o>>2]>>2];f:{if((i|0)==(n|0)){if(!j){break f}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break f}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;g:{if(c){break g}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break g}n=H[l>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;h:{if(g>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break h}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[d+104>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break l}break i}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+116>>2];m=g+1|0;o=N(m,12);q=b+o|0;if((q|0)!=(l|0)){Aa(q,H[l>>2],H[l+4>>2]);b=H[d+116>>2]}b=k+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(t,Q(j)^31,e+4|0);b=j>>>1|0;i=H[e+4>>2];if(b>>>0>>0){break e}b=b-i|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}i=H[d+84>>2];if((i|0)==H[d+76>>2]){break k}j=H[i>>2];l=H[d+88>>2];n=l+1|0;H[d+88>>2]=n;j=j&-2147483648>>>l;n:{if((n|0)==32){H[d+88>>2]=0;H[d+84>>2]=i+4;if(j){break n}break k}if(!j){break k}}}i=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}i=b}b=H[d+128>>2];j=b+f|0;f=H[j>>2];l=f+k|0;H[l>>2]=H[l>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=m;H[b+4>>2]=a;H[b>>2]=i;H[e+28>>2]=H[e+28>>2]+1;break f}n=0;if(!j){break f}while(1){if(H[d+12>>2]){i=H[d+36>>2];q=H[o>>2];c=H[d+92>>2];u=H[d+104>>2];a=0;while(1){g=(a<<2)+u|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;k=H[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[d+48>>2];p=32-k|0;if((b|0)<=(p|0)){m=H[d+44>>2];if((m|0)==(i|0)){c=0;break e}H[f>>2]=H[m>>2]<>>32-b;b=b+H[d+48>>2]|0;H[d+48>>2]=b;if((b|0)!=32){break o}H[d+48>>2]=0;H[d+44>>2]=m+4;break o}m=H[d+44>>2];s=m+4|0;if((i|0)==(s|0)){c=0;break e}w=H[m>>2];H[d+44>>2]=s;p=b-p|0;H[d+48>>2]=p;H[f>>2]=H[m+4>>2]>>>32-p|w<>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[l>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}i=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){f=H[h+28>>2];c=N(i,20)+a|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}m=H[d+92>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;q:{if(g>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break q}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;n=n+1|0;if((j|0)!=(n|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;r:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break s}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];n=H[b+20>>2];h=H[b+16>>2];f=h+4|0;n=f>>>0<4?n+1|0:n;a:{if((k|0)<=(n|0)&f>>>0>i>>>0|(k|0)<(n|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];i=h;f=H[b+16>>2];h=f+4|0;k=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];n=H[b+12>>2];f=f+8|0;i=f>>>0<8?i+1|0:i;if(f>>>0>k>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}h=H[b>>2]+h|0;f=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=f;i=H[b+20>>2];h=H[b+16>>2]+4|0;i=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=i;if(!f){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}u=H[a+4>>2];h=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}j=H[f+116>>2];d=H[j>>2];if(d){H[j+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[j+4>>2]=c;H[j>>2]=b;H[j+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=pa(a);H[e+8>>2]=g;b=a+g|0;H[e+16>>2]=b;ra(g,0,a);H[e+12>>2]=b}c=H[f+128>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);g=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=g;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}n=f+16|0;while(1){i=H[e+12>>2];j=H[e+24>>2];d=a-1|0;c=j+d|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;o=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>u>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+116>>2];p=N(o,12);r=b+p|0;j=H[f>>2];g=a<<2;k=p+H[f+128>>2]|0;c=H[g+H[k>>2]>>2];f:{if((j|0)==(c|0)){if(!m){break f}b=H[h+20>>2];c=H[h+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[h+28>>2]=m+H[h+28>>2];H[f+8>>2]=a+m;break f}while(1){i=(b|0)==(c|0);a=b;j=0;b=c;g:{if(i){break g}while(1){g=H[h+28>>2];b=a;l=N(j,20)+c|0;k=H[l>>2];if(!I[k+84|0]){g=H[H[k+68>>2]+(g<<2)>>2]}if(K[k+80>>2]<=g>>>0){break g}i=H[r>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=i;h:{if(c>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break h}while(1){b=qa(b,i+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+20>>2];b=a;c=H[h+16>>2];if(j>>>0<(b-c|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((m|0)!=(d|0)){continue}break}break f}i:{j:{k:{l:{if(m>>>0<=2){c=H[f+104>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break l}break i}if(K[f+8>>2]>K[f+4>>2]){break e}i=b;b=p+12|0;Aa(i+b|0,H[r>>2],H[r+4>>2]);b=g+H[b+H[f+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(n,Q(m)^31,e+4|0);c=m>>>1|0;b=H[e+4>>2];if(c>>>0>>0){break e}l=o+1|0;b=c-b|0;c=m-b|0;m:{if((c|0)==(b|0)){c=b;break m}k=H[f+84>>2];if((k|0)==H[f+76>>2]){break k}i=H[k>>2];j=H[f+88>>2];d=j+1|0;H[f+88>>2]=d;j=i&-2147483648>>>j;n:{if((d|0)==32){H[f+88>>2]=0;H[f+84>>2]=k+4;if(j){break n}break k}if(!j){break k}}}j=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break i}j=b}k=H[f+128>>2];i=k+p|0;d=H[i>>2];b=d+g|0;H[b>>2]=H[b>>2]+1;Aa(k+N(l,12)|0,d,H[i+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((d|0)!=(g|0)?N(d-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+g>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!j){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=a;H[b>>2]=j;H[e+28>>2]=H[e+28>>2]+1;break f}s=0;if(!m){break f}while(1){if(H[f+12>>2]){w=H[f+36>>2];i=H[k>>2];t=H[f+92>>2];j=H[f+104>>2];a=0;while(1){o=(a<<2)+j|0;H[t+(H[o>>2]<<2)>>2]=0;d=H[f>>2];c=H[o>>2]<<2;b=H[c+i>>2];o:{if((d|0)==(b|0)){break o}p=c+t|0;q=d-b|0;g=H[f+48>>2];d=32-g|0;if((q|0)<=(d|0)){c=H[f+44>>2];if((c|0)==(w|0)){d=0;break e}H[p>>2]=H[c>>2]<>>32-q;b=q+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break o}H[f+48>>2]=0;H[f+44>>2]=c+4;break o}l=H[f+44>>2];b=l+4|0;if((w|0)==(b|0)){d=0;break e}c=H[l>>2];H[f+44>>2]=b;b=q-d|0;H[f+48>>2]=b;H[p>>2]=H[l+4>>2]>>>32-b|c<>>32-q}c=H[o>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){g=H[h+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){g=H[H[i+68>>2]+(g<<2)>>2]}if(K[i+80>>2]<=g>>>0){break p}d=H[f+92>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=d;q:{if(c>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break q}while(1){b=qa(b,d+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+16>>2];if(j>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;s=s+1|0;if((m|0)!=(s|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}d=1}H[e+28>>2]=0;g=H[e+16>>2];a=H[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;g=H[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break r}}s:{if((a|0)==(g|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break s}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;j=d;break b}sa();v()}sa();v()}}return j}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=ca-32|0;ca=h;g=H[H[a+4>>2]+44>>2];c=H[a+8>>2];d=H[c>>2];c=H[c+4>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=H[g+96>>2];f=(H[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=H[g+104>>2];c=H[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=N(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=l;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=N(e,12)+c|0;if(f>>>0<36){break b}while(1){f=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=f;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];f=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=f;H[d+32>>2]=H[h+24>>2];f=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=f;f=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=f;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}H[g+100>>2]=c;break a}c:{f=H[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=pa(N(i,12))}f=N(n,12)+l|0;d=f;e=N(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=r;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=j;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];j=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=j;H[d+32>>2]=H[h+24>>2];j=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=j;j=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=j;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=H[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=H[c+4>>2];f=f-12|0;d=f;H[d>>2]=H[c>>2];H[d+4>>2]=n;H[d+8>>2]=H[c+8>>2];if((c|0)!=(j|0)){continue}break}c=H[g+96>>2]}H[g+104>>2]=N(i,12)+l;H[g+100>>2]=e;H[g+96>>2]=f;if(c){oa(c)}break a}sa();v()}wa();v()}if(d>>>0>=f>>>0){break a}H[g+100>>2]=c+N(d,12)}d:{if(H[a+216>>2]==H[a+220>>2]){j=H[a+4>>2];c=H[j+44>>2];d=H[c+100>>2];f=H[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=H[a+8>>2];i=f+N(c,12)|0;g=N(c,3);e:{f:{if((g|0)==-1){e=H[(H[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=H[H[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=H[H[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=H[H[d>>2]+(g<<2)>>2]}H[i+8>>2]=m;H[i+4>>2]=e;H[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}H[H[j+4>>2]+80>>2]=b;c=1;break d}d=0;H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;l=H[a+8>>2];c=H[l>>2];g=H[l+4>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=pa(c);H[h>>2]=b;H[h+8>>2]=(c&-4)+b;u=h,w=ra(b,0,c)+c|0,H[u+4>>2]=w}c=H[l+24>>2];if((H[l+28>>2]-c|0)<4){break h}f=0;while(1){g=H[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(H[H[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=H[a+216>>2];c=H[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=N(j,144)+n|0;c=H[s+H[H[i+68>>2]>>2]>>2];o:{if(!(H[H[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=H[H[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=H[i+32>>2];i=H[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=H[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=H[H[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;H[(g<<2)+b>>2]=e;s:{if(k>>>0>>0){H[k>>2]=g;k=k+4|0;H[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=pa(c<<2)}else{d=0}e=d+(e<<2)|0;H[e>>2]=g;m=c<<2;c=va(d,f,i);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(f){oa(f);l=H[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=H[a+220>>2];j=H[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=H[(j+N(c,144)|0)+32>>2];r=i<<2;if(H[q+r>>2]==H[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;H[b+r>>2]=e;if(k>>>0>>0){H[k>>2]=i;k=k+4|0;H[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=pa(c<<2)}else{f=0}e=f+(e<<2)|0;H[e>>2]=i;m=c<<2;c=va(f,d,j);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(!d){d=c;break u}oa(d);l=H[a+8>>2];d=c;break u}H[(i<<2)+b>>2]=H[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=H[l+24>>2];if((p|0)>2]-c>>2){continue}break}break h}sa();v()}sa();v()}wa();v()}sa();v()}i=H[a+4>>2];a=H[i+44>>2];c=H[a+100>>2];a=H[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=N(c,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;e=N(c|1,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=N(c,12);c=g+b|0;f=H[c>>2];e=H[c+4>>2];a=a+g|0;H[a+8>>2]=H[c+8>>2];H[a>>2]=f;H[a+4>>2]=e}H[H[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){oa(b)}if(!d){break d}H[h+20>>2]=d;oa(d)}ca=h+32|0;return c}function Fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;g=ca+-64|0;ca=g;H[a+8>>2]=e;y=a+32|0;f=H[y>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ya(y,e-d|0);H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;d=0;if(!e){break a}}Pa(g+16|0,e,g);h=H[g+28>>2];d=H[g+32>>2]}H[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[g+32>>2]=(e<<2)+h;break c}Pa(g+16|12,e-d|0,g)}H[g>>2]=0;f=H[g+40>>2];d=H[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[g+44>>2]=f+(e<<2);break d}Pa(g+40|0,e-d|0,g)}H[g>>2]=0;f=H[g+52>>2];d=H[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[g+56>>2]=f+(e<<2);break e}Pa(g+52|0,e-d|0,g)}f:{if(H[a+8>>2]<=0){break f}i=H[g+16>>2];j=H[a+32>>2];h=0;while(1){d=h<<2;f=H[d+i>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}h=h+1|0;d=H[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=H[b+i>>2]+H[j+i>>2]|0;H[f>>2]=i;h:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break h}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];t=H[a+48>>2];z=pa(16);d=z;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=pa(d);H[g>>2]=r;H[g+8>>2]=d+r;ra(r,0,d)}A=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(H[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=H[H[H[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=H[G>>2];h=H[t+28>>2];p=H[l+(H[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=H[l+(H[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=H[l+(H[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=H[(g+16|0)+N(i,12)>>2];l=N(e,h);q=N(e,q);p=N(e,p);h=0;o=0;if(F){while(1){H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2];u=h|1;H[j+(u<<2)>>2]=(H[(l+u<<2)+c>>2]+H[(q+u<<2)+c>>2]|0)-H[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|H[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=H[H[H[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(H[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=H[H[H[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&H[O>>2]){break v}d=H[H[H[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ra(r,0,L)}d=j-1|0;q=(d<<2)+z|0;d=N(d,12)+a|0;u=d;x=H[d- -64>>2];k=0;d=H[g>>2];f=0;while(1){i=H[q>>2];H[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(H[H[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=H[(g+16|0)+N(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];o=l|4;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];o=l|8;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];l=l|12;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;H[p>>2]=H[l+n>>2]+H[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=N(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(F){break n}break m}i=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+k>>2];n=H[a+16>>2];x:{if((f|0)>(n|0)){H[d+j>>2]=n;break x}d=d+j|0;n=H[a+12>>2];if((n|0)>(f|0)){H[d>>2]=n;break x}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;y:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break y}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}Ca();v()}while(1){j=h<<2;k=j+r|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+r|0;H[j>>2]=H[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+r>>2];k=H[a+16>>2];z:{if((f|0)>(k|0)){H[d+j>>2]=k;break z}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break z}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;A:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break A}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[g>>2];if(a){oa(a)}oa(z);a=H[g+52>>2];if(a){H[g+56>>2]=a;oa(a)}a=H[g+40>>2];if(a){H[g+44>>2]=a;oa(a)}a=H[g+28>>2];if(a){H[g+32>>2]=a;oa(a)}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g- -64|0;return A|0}sa();v()}function oj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;h=ca+-64|0;ca=h;H[a+8>>2]=e;x=a+32|0;f=H[x>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ya(x,e-d|0);H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;d=0;if(!e){break a}}Pa(h+16|0,e,h);i=H[h+28>>2];d=H[h+32>>2]}H[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[h+32>>2]=(e<<2)+i;break c}Pa(h+16|12,e-d|0,h)}H[h>>2]=0;f=H[h+40>>2];d=H[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[h+44>>2]=f+(e<<2);break d}Pa(h+40|0,e-d|0,h)}H[h>>2]=0;f=H[h+52>>2];d=H[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[h+56>>2]=f+(e<<2);break e}Pa(h+52|0,e-d|0,h)}f:{if(H[a+8>>2]<=0){break f}g=H[h+16>>2];j=H[a+32>>2];i=0;while(1){d=i<<2;f=H[d+g>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}i=i+1|0;d=H[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=H[b+g>>2]+H[g+j>>2]|0;H[f>>2]=g;h:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break h}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];A=H[a+48>>2];y=pa(16);d=y;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=pa(d);H[h>>2]=t;H[h+8>>2]=d+t;ra(t,0,d)}z=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}n=H[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=H[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=H[G>>2];r=H[A>>2];i=p+(H[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=H[r+(o<<2)>>2]}o=H[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=H[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=H[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=H[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=H[(h+16|0)+N(j,12)>>2];u:{if(!e){break u}l=N(e,l);r=N(e,i);p=N(e,o);i=0;s=0;if(F){while(1){H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2];o=i|1;H[g+(o<<2)>>2]=(H[(l+o<<2)+c>>2]+H[(o+r<<2)+c>>2]|0)-H[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=H[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=H[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=H[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ra(t,0,L)}d=g-1|0;r=(d<<2)+y|0;d=N(d,12)+a|0;o=d;s=H[d- -64>>2];k=0;d=H[h>>2];f=0;while(1){j=H[r>>2];H[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(H[H[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=H[(h+16|0)+N(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];q=n|4;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];q=n|8;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];n=n|12;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;H[p>>2]=H[j+n>>2]+H[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=N(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(F){break n}break m}g=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+k>>2];l=H[a+16>>2];z:{if((f|0)>(l|0)){H[d+j>>2]=l;break z}d=d+j|0;l=H[a+12>>2];if((l|0)>(f|0)){H[d>>2]=l;break z}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;A:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break A}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}Ca();v()}while(1){j=i<<2;k=j+t|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+t|0;H[j>>2]=H[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+t>>2];k=H[a+16>>2];B:{if((f|0)>(k|0)){H[d+j>>2]=k;break B}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break B}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;C:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break C}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[h>>2];if(a){oa(a)}oa(y);a=H[h+52>>2];if(a){H[h+56>>2]=a;oa(a)}a=H[h+40>>2];if(a){H[h+44>>2]=a;oa(a)}a=H[h+28>>2];if(a){H[h+32>>2]=a;oa(a)}a=H[h+16>>2];if(a){H[h+20>>2]=a;oa(a)}ca=h- -64|0;return z|0}sa();v()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;i=ca-80|0;ca=i;H[i+76>>2]=b;y=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=I[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(I[g+1|0]!=37){b=g;break j}f=f+1|0;j=I[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;x=o^2147483647;if((f|0)>(x|0)){break d}if(a){Ab(a,h,f)}if(f){continue e}H[i+76>>2]=b;f=b+1|0;p=-1;if(!(I[b+2|0]!=36|F[b+1|0]-48>>>0>=10)){p=F[b+1|0]-48|0;s=1;f=b+3|0}H[i+76>>2]=f;n=0;g=F[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<>2]=k;n=b|n;g=F[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<>>0>=10)){H[((F[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=H[((F[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){H[i+76>>2]=g;s=0;q=0;break l}b=H[c>>2];H[c>>2]=b+4;s=0;b=H[b>>2]}H[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=H[i+76>>2]}f=0;m=-1;n:{if(I[g|0]!=46){b=g;u=0;break n}if(I[g+1|0]==42){o:{if(!(I[g+3|0]!=36|F[g+2|0]-48>>>0>=10)){H[((F[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=H[((F[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=H[c>>2];H[c>>2]=j+4;m=H[j>>2]}H[i+76>>2]=b;u=(m^-1)>>>31|0;break n}H[i+76>>2]=g+1;m=Nd(i+76|0);b=H[i+76>>2];u=1}while(1){g=f;k=28;l=b;f=F[b|0];if(f-123>>>0<4294967238){break c}b=l+1|0;f=I[(f+N(g,58)|0)+13711|0];if(f-1>>>0<8){continue}break}H[i+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){H[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=H[j+4>>2];H[i+64>>2]=H[j>>2];H[i+68>>2]=f;break q}if(!a){break f}Md(i- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=F[l|0];f=g?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}l=H[i+64>>2];j=H[i+68>>2];t=1132;break z}f=0;I:{switch(g&255){case 0:H[H[i+64>>2]>>2]=o;continue e;case 1:H[H[i+64>>2]>>2]=o;continue e;case 2:h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e;case 3:G[H[i+64>>2]>>1]=o;continue e;case 4:F[H[i+64>>2]]=o;continue e;case 6:H[H[i+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e}m=m>>>0<=8?8:m;n=n|8;f=120}h=r;l=H[i+64>>2];j=H[i+68>>2];if(l|j){z=f&32;while(1){h=h-1|0;F[h|0]=z|I[(l&15)+14240|0];w=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(w){continue}break}}if(!(H[i+64>>2]|H[i+68>>2])|!(n&8)){break y}t=(f>>>4|0)+1132|0;p=2;break y}f=r;h=H[i+68>>2];j=h;l=H[i+64>>2];if(h|l){while(1){f=f-1|0;F[f|0]=l&7|48;g=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(g){continue}break}}h=f;if(!(n&8)){break y}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break y}l=H[i+64>>2];h=H[i+68>>2];j=h;if((h|0)<0){f=0-(((l|0)!=0)+j|0)|0;j=f;l=0-l|0;H[i+64>>2]=l;H[i+68>>2]=f;p=1;t=1132;break z}if(n&2048){p=1;t=1133;break z}p=n&1;t=p?1134:1132}g=r;if(j){while(1){g=g-1|0;f=j;w=Tj(l,f,10,0);h=da;A=g,B=l-Rj(w,h,10,0)|48,F[A|0]=B;l=w;j=h;if(f>>>0>9){continue}break}}h=l;if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;F[g|0]=h-N(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=H[i+64>>2];j=H[i+68>>2];if(!(m|(f|j)!=0)){h=r;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}g=m>>>0>=2147483647?2147483647:m;k=g;n=(g|0)!=0;h=H[i+64>>2];h=h?h:1614;f=h;J:{K:{L:{M:{if(!(f&3)|!g){break M}while(1){if(!I[f|0]){break L}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break M}if(k){continue}break}}if(!n){break K}if(!(!I[f|0]|k>>>0<4)){while(1){l=H[f>>2];if((l^-1)&l-16843009&-2139062144){break L}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break K}}while(1){if(!I[f|0]){break J}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:g;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(I[k|0]){break d}break g}if(m){g=H[i+64>>2];break u}f=0;ib(a,32,q,0,n);break t}H[i+12>>2]=0;H[i+8>>2]=H[i+64>>2];g=i+8|0;H[i+64>>2]=g;m=-1}f=0;N:{while(1){h=H[g>>2];if(!h){break N}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break N}break}if(h){break b}}k=61;if((f|0)<0){break c}ib(a,32,q,f,n);if(!f){f=0;break t}k=0;g=H[i+64>>2];while(1){h=H[g>>2];if(!h){break t}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break t}Ab(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}ib(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}v()}F[i+55|0]=H[i+64>>2];m=1;h=y;n=j;break g}g=I[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=H[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(H[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}l=k-h|0;j=(m|0)>(l|0)?m:l;if((j|0)>(p^2147483647)){break d}k=61;g=j+p|0;f=(g|0)<(q|0)?q:g;if((x|0)<(f|0)){break c}ib(a,32,f,g,n);Ab(a,t,p);ib(a,48,f,g,n^65536);ib(a,48,j,l,0);Ab(a,h,l);ib(a,32,f,g,n^8192);continue}break}o=0;break a}k=61}H[3992]=k}o=-1}ca=i+80|0;return o}function hj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=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,_=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;M=a+32|0;e=H[M>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(M,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}i=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;X=d>>>0<=1?1:d;Y=a+68|0;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}k=ca-80|0;ca=k;f=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}i=H[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=H[H[i>>2]+(g<<2)>>2]}p=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){p=H[H[i>>2]+(e<<2)>>2]}i=H[o+36>>2];e=H[i>>2];i=H[i+4>>2]-e>>2;if(i>>>0<=f>>>0|i>>>0<=p>>>0){break e}f:{g:{h:{i:{j:{k:{j=H[e+(p<<2)>>2];f=H[e+(f<<2)>>2];if((j|0)>=(d|0)|(f|0)>=(d|0)){break k}i=(j<<3)+c|0;w=H[i+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];l=H[i>>2];i=H[g>>2];if(!((l|0)!=(i|0)|(e|0)!=(w|0))){H[o+8>>2]=i;H[o+12>>2]=e;break j}p=H[H[o+4>>2]+(d<<2)>>2];H[k+72>>2]=0;H[k+76>>2]=0;g=k- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[k+56>>2]=0;H[k+60>>2]=0;g=H[o>>2];if(!I[g+84|0]){p=H[H[g+68>>2]+(p<<2)>>2]}Sa(g,p,F[g+24|0],k+56|0);p=H[H[o+4>>2]+(f<<2)>>2];H[k+48>>2]=0;H[k+52>>2]=0;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;g=H[o>>2];if(!I[g+84|0]){p=H[H[g+68>>2]+(p<<2)>>2]}Sa(g,p,F[g+24|0],k+32|0);p=H[H[o+4>>2]+(j<<2)>>2];H[k+24>>2]=0;H[k+28>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;g=H[o>>2];if(!I[g+84|0]){p=H[H[g+68>>2]+(p<<2)>>2]}Sa(g,p,F[g+24|0],k+8|0);g=H[k+16>>2];n=H[k+40>>2];x=g-n|0;N=H[k+44>>2];g=H[k+20>>2]-(N+(g>>>0>>0)|0)|0;E=g;j=Rj(x,g,x,g);q=da;g=H[k+8>>2];z=H[k+32>>2];A=g-z|0;O=H[k+36>>2];g=H[k+12>>2]-(O+(g>>>0>>0)|0)|0;G=g;h=j;j=Rj(A,g,A,g);g=h+j|0;h=da+q|0;h=g>>>0>>0?h+1|0:h;j=H[k+24>>2];B=H[k+48>>2];C=j-B|0;P=H[k+52>>2];j=H[k+28>>2]-(P+(j>>>0>>0)|0)|0;J=j;m=g;g=Rj(C,j,C,j);r=m+g|0;h=da+h|0;s=g>>>0>r>>>0?h+1|0:h;if(!(s|r)){break k}p=0;D=Tj(-1,2147483647,r,s);f=i>>31;R=f;h=f>>31;Q=i;g=h;q=i^g;i=q-g|0;f=(f^g)-((g>>>0>q>>>0)+g|0)|0;g=f;f=e>>31;S=f;K=e;e=f>>31;q=K^e;m=q-e|0;h=f>>31;e=(h^f)-((e>>>0>q>>>0)+h|0)|0;f=(g|0)==(e|0)&i>>>0>m>>>0|e>>>0>>0;i=f?i:m;j=da;e=f?g:e;if((j|0)==(e|0)&i>>>0>D>>>0|e>>>0>j>>>0){break f}i=H[k+64>>2];T=H[k+68>>2];e=Rj(i-n|0,T-((i>>>0>>0)+N|0)|0,x,E);f=da;g=H[k+56>>2];U=H[k+60>>2];j=Rj(g-z|0,U-((g>>>0>>0)+O|0)|0,A,G);e=j+e|0;h=da+f|0;h=e>>>0>>0?h+1|0:h;f=e;m=H[k+72>>2];V=H[k+76>>2];e=Rj(m-B|0,V-((m>>>0>>0)+P|0)|0,C,J);j=f+e|0;f=da+h|0;q=e>>>0>j>>>0?f+1|0:f;e=l;D=e-Q|0;e=(e>>31)-((e>>>0>>0)+R|0)|0;W=e;l=e>>31;y=l^D;f=y-l|0;h=e>>31;e=(h^e)-((l>>>0>y>>>0)+h|0)|0;h=e;y=w-K|0;e=(w>>31)-((w>>>0>>0)+S|0)|0;w=e;l=f;t=e>>31;u=t^y;L=u-t|0;f=e>>31;e=(f^e)-((t>>>0>u>>>0)+f|0)|0;f=(h|0)==(e|0)&l>>>0>L>>>0|e>>>0>>0;f=Tj(-1,2147483647,f?l:L,f?h:e)>>>0>>0;e=da;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break f}e=G>>31;f=e;l=e^A;e=l-e|0;f=(f^G)-((f>>>0>l>>>0)+f|0)|0;h=E>>31;t=h^x;u=t-h|0;l=(h^E)-((h>>>0>t>>>0)+h|0)|0;h=(f|0)==(l|0)&e>>>0>u>>>0|f>>>0>l>>>0;e=h?e:u;f=h?f:l;h=J>>31;L=e;t=h^C;u=t-h|0;l=(h^J)-((h>>>0>t>>>0)+h|0)|0;e=(f|0)==(l|0)&e>>>0>u>>>0|f>>>0>l>>>0;f=Tj(-1,2147483647,e?L:u,e?f:l)>>>0>>0;e=da;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break f}l=1;e=0;f=n;n=Sj(Rj(j,q,x,E),da,r,s);f=f+n|0;h=da+N|0;h=f>>>0>>0?h+1|0:h;n=i-f|0;f=T-((f>>>0>i>>>0)+h|0)|0;n=Rj(n,f,n,f);x=da;f=g;h=Sj(Rj(j,q,A,G),da,r,s);i=h+z|0;g=da+O|0;g=h>>>0>i>>>0?g+1|0:g;h=f-i|0;f=U-((f>>>0>>0)+g|0)|0;g=Rj(h,f,h,f);i=g+n|0;f=da+x|0;f=g>>>0>i>>>0?f+1|0:f;n=i;g=Sj(Rj(j,q,C,J),da,r,s);i=g+B|0;h=da+P|0;h=g>>>0>i>>>0?h+1|0:h;g=m-i|0;i=V-((i>>>0>m>>>0)+h|0)|0;m=Rj(g,i,g,i);i=m+n|0;g=da+f|0;f=Rj(i,i>>>0>>0?g+1|0:g,r,s);i=da;m=i;if(!i&f>>>0<=1){break i}h=f;while(1){g=e<<1|l>>>31;l=l<<1;e=g;n=!i&h>>>0>7|(i|0)!=0;h=(i&3)<<30|h>>>2;i=i>>>2|0;if(n){continue}break}break h}if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[o+8>>2]=H[e>>2];H[o+12>>2]=H[e+4>>2]}p=1;break f}e=m;l=f;if(f-1|0){break g}}while(1){i=Tj(f,m,l,e);h=e+da|0;e=i+l|0;h=e>>>0>>0?h+1|0:h;l=(h&1)<<31|e>>>1;e=h>>>1|0;i=Rj(l,e,l,e);g=da;if((m|0)==(g|0)&f>>>0>>0|g>>>0>m>>>0){continue}break}}f=H[o+20>>2];if(!f){break f}g=f-1|0;h=H[H[o+16>>2]+(g>>>3&536870908)>>2];H[o+20>>2]=g;p=1;f=Rj(j,q,y,w);i=da;n=Rj(r,s,K,S);m=n+f|0;f=da+i|0;f=m>>>0>>0?f+1|0:f;i=Rj(l,e,D,W);g=h>>>g&1;h=g?0-i|0:i;m=h+m|0;n=f;f=da;i=n+(g?0-(f+((i|0)!=0)|0)|0:f)|0;Z=o,_=Sj(m,h>>>0>m>>>0?i+1|0:i,r,s),H[Z+12>>2]=_;f=Rj(j,q,D,W);i=da;j=Rj(r,s,Q,R);f=j+f|0;h=da+i|0;e=Rj(l,e,y,w);i=0-e|0;l=da;h=(f>>>0>>0?h+1|0:h)+(g?l:0-(((e|0)!=0)+l|0)|0)|0;i=g?e:i;f=i+f|0;Z=o,_=Sj(f,f>>>0>>0?h+1|0:h,r,s),H[Z+8>>2]=_}ca=k+80|0;e=p;break d}Ca();v()}i=e;if(!e){return 0}l:{if(H[a+8>>2]<=0){break l}l=H[M>>2];e=0;while(1){f=e<<2;g=H[f+Y>>2];j=H[a+16>>2];m:{if((g|0)>(j|0)){H[f+l>>2]=j;break m}f=f+l|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break m}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;j=e+c|0;q=b+e|0;while(1){g=f<<2;e=g+j|0;g=H[g+q>>2]+H[g+l>>2]|0;H[e>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((X|0)!=(d|0)){continue}break}}return i|0}Ca();v()}function xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=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,_=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;M=a+32|0;e=H[M>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(M,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}p=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;X=d>>>0<=1?1:d;Y=a+68|0;d=0;while(1){e=H[a+56>>2];h=H[e>>2];if(H[e+4>>2]-h>>2>>>0<=d>>>0){break a}k=ca-80|0;ca=k;f=-1;h=H[h+(d<<2)>>2];e=-1;d:{if((h|0)==-1){break d}e=h+1|0;f=(e>>>0)%3|0?e:h-2|0;e=h-1|0;if((h>>>0)%3|0){break d}e=h+2|0}g=H[o+36>>2];h=H[g>>2];e:{f:{g:{h:{i:{g=H[g+4>>2]-h>>2;i=f<<2;f=H[H[o+32>>2]+28>>2];j=H[i+f>>2];if(g>>>0<=j>>>0){break i}e=H[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}j:{k:{l=H[h+(e<<2)>>2];f=H[h+(j<<2)>>2];if((l|0)>=(d|0)|(f|0)>=(d|0)){break k}h=(l<<3)+c|0;w=H[h+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];j=H[h>>2];h=H[g>>2];if(!((j|0)!=(h|0)|(e|0)!=(w|0))){H[o+8>>2]=h;H[o+12>>2]=e;break j}p=H[H[o+4>>2]+(d<<2)>>2];H[k+72>>2]=0;H[k+76>>2]=0;g=k- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[k+56>>2]=0;H[k+60>>2]=0;g=H[o>>2];if(!I[g+84|0]){p=H[H[g+68>>2]+(p<<2)>>2]}Sa(g,p,F[g+24|0],k+56|0);p=H[H[o+4>>2]+(f<<2)>>2];H[k+48>>2]=0;H[k+52>>2]=0;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;g=H[o>>2];if(!I[g+84|0]){p=H[H[g+68>>2]+(p<<2)>>2]}Sa(g,p,F[g+24|0],k+32|0);p=H[H[o+4>>2]+(l<<2)>>2];H[k+24>>2]=0;H[k+28>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;g=H[o>>2];if(!I[g+84|0]){p=H[H[g+68>>2]+(p<<2)>>2]}Sa(g,p,F[g+24|0],k+8|0);g=H[k+16>>2];n=H[k+40>>2];x=g-n|0;N=H[k+44>>2];g=H[k+20>>2]-(N+(g>>>0>>0)|0)|0;E=g;l=Rj(x,g,x,g);q=da;g=H[k+8>>2];z=H[k+32>>2];A=g-z|0;O=H[k+36>>2];g=H[k+12>>2]-(O+(g>>>0>>0)|0)|0;G=g;i=l;l=Rj(A,g,A,g);g=i+l|0;i=da+q|0;i=g>>>0>>0?i+1|0:i;l=H[k+24>>2];B=H[k+48>>2];C=l-B|0;P=H[k+52>>2];l=H[k+28>>2]-(P+(l>>>0>>0)|0)|0;J=l;m=g;g=Rj(C,l,C,l);r=m+g|0;i=da+i|0;s=g>>>0>r>>>0?i+1|0:i;if(!(s|r)){break k}p=0;D=Tj(-1,2147483647,r,s);f=h>>31;R=f;i=f>>31;Q=h;g=i;q=h^g;h=q-g|0;f=(f^g)-((g>>>0>q>>>0)+g|0)|0;g=f;f=e>>31;S=f;K=e;e=f>>31;q=K^e;m=q-e|0;i=f>>31;e=(i^f)-((e>>>0>q>>>0)+i|0)|0;f=(g|0)==(e|0)&h>>>0>m>>>0|e>>>0>>0;h=f?h:m;l=da;e=f?g:e;if((l|0)==(e|0)&h>>>0>D>>>0|e>>>0>l>>>0){break e}h=H[k+64>>2];T=H[k+68>>2];e=Rj(h-n|0,T-((h>>>0>>0)+N|0)|0,x,E);f=da;g=H[k+56>>2];U=H[k+60>>2];l=Rj(g-z|0,U-((g>>>0>>0)+O|0)|0,A,G);e=l+e|0;i=da+f|0;i=e>>>0>>0?i+1|0:i;f=e;m=H[k+72>>2];V=H[k+76>>2];e=Rj(m-B|0,V-((m>>>0>>0)+P|0)|0,C,J);l=f+e|0;f=da+i|0;q=e>>>0>l>>>0?f+1|0:f;e=j;D=e-Q|0;e=(e>>31)-((e>>>0>>0)+R|0)|0;W=e;j=e>>31;y=j^D;f=y-j|0;i=e>>31;e=(i^e)-((j>>>0>y>>>0)+i|0)|0;i=e;y=w-K|0;e=(w>>31)-((w>>>0>>0)+S|0)|0;w=e;j=f;t=e>>31;u=t^y;L=u-t|0;f=e>>31;e=(f^e)-((t>>>0>u>>>0)+f|0)|0;f=(i|0)==(e|0)&j>>>0>L>>>0|e>>>0>>0;f=Tj(-1,2147483647,f?j:L,f?i:e)>>>0>>0;e=da;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break e}e=G>>31;f=e;j=e^A;e=j-e|0;f=(f^G)-((f>>>0>j>>>0)+f|0)|0;i=E>>31;t=i^x;u=t-i|0;j=(i^E)-((i>>>0>t>>>0)+i|0)|0;i=(f|0)==(j|0)&e>>>0>u>>>0|f>>>0>j>>>0;e=i?e:u;f=i?f:j;i=J>>31;L=e;t=i^C;u=t-i|0;j=(i^J)-((i>>>0>t>>>0)+i|0)|0;e=(f|0)==(j|0)&e>>>0>u>>>0|f>>>0>j>>>0;f=Tj(-1,2147483647,e?L:u,e?f:j)>>>0>>0;e=da;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break e}j=1;e=0;f=n;n=Sj(Rj(l,q,x,E),da,r,s);f=f+n|0;i=da+N|0;i=f>>>0>>0?i+1|0:i;n=h-f|0;f=T-((f>>>0>h>>>0)+i|0)|0;n=Rj(n,f,n,f);x=da;f=g;i=Sj(Rj(l,q,A,G),da,r,s);h=i+z|0;g=da+O|0;g=h>>>0>>0?g+1|0:g;i=f-h|0;f=U-((f>>>0>>0)+g|0)|0;g=Rj(i,f,i,f);h=g+n|0;f=da+x|0;f=h>>>0>>0?f+1|0:f;n=h;g=Sj(Rj(l,q,C,J),da,r,s);h=g+B|0;i=da+P|0;i=h>>>0>>0?i+1|0:i;g=m-h|0;h=V-((h>>>0>m>>>0)+i|0)|0;m=Rj(g,h,g,h);h=m+n|0;g=da+f|0;f=Rj(h,h>>>0>>0?g+1|0:g,r,s);h=da;m=h;if(!h&f>>>0<=1){break h}i=f;while(1){g=e<<1|j>>>31;j=j<<1;e=g;n=!h&i>>>0>7|(h|0)!=0;i=(h&3)<<30|i>>>2;h=h>>>2|0;if(n){continue}break}break g}if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[o+8>>2]=H[e>>2];H[o+12>>2]=H[e+4>>2]}p=1;break e}Ca();v()}e=m;j=f;if(f-1|0){break f}}while(1){h=Tj(f,m,j,e);i=e+da|0;e=h+j|0;i=e>>>0>>0?i+1|0:i;j=(i&1)<<31|e>>>1;e=i>>>1|0;h=Rj(j,e,j,e);g=da;if((m|0)==(g|0)&f>>>0>>0|g>>>0>m>>>0){continue}break}}f=H[o+20>>2];if(!f){break e}g=f-1|0;i=H[H[o+16>>2]+(g>>>3&536870908)>>2];H[o+20>>2]=g;p=1;f=Rj(l,q,y,w);h=da;n=Rj(r,s,K,S);m=n+f|0;f=da+h|0;f=m>>>0>>0?f+1|0:f;h=Rj(j,e,D,W);g=i>>>g&1;i=g?0-h|0:h;m=i+m|0;n=f;f=da;h=n+(g?0-(f+((h|0)!=0)|0)|0:f)|0;Z=o,_=Sj(m,i>>>0>m>>>0?h+1|0:h,r,s),H[Z+12>>2]=_;f=Rj(l,q,D,W);h=da;l=Rj(r,s,Q,R);f=l+f|0;i=da+h|0;e=Rj(j,e,y,w);h=0-e|0;j=da;i=(f>>>0>>0?i+1|0:i)+(g?j:0-(((e|0)!=0)+j|0)|0)|0;h=g?e:h;f=h+f|0;Z=o,_=Sj(f,f>>>0>>0?i+1|0:i,r,s),H[Z+8>>2]=_}ca=k+80|0;if(!p){return 0}l:{if(H[a+8>>2]<=0){break l}g=H[M>>2];e=0;while(1){f=e<<2;h=H[f+Y>>2];j=H[a+16>>2];m:{if((h|0)>(j|0)){H[f+g>>2]=j;break m}f=f+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[f>>2]=j;break m}H[f>>2]=h}e=e+1|0;h=H[a+8>>2];if((e|0)<(h|0)){continue}break}f=0;if((h|0)<=0){break l}e=d<<3;j=e+c|0;l=b+e|0;while(1){h=f<<2;e=h+j|0;h=H[h+l>>2]+H[h+g>>2]|0;H[e>>2]=h;n:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break n}i=h+H[a+20>>2]|0}H[e>>2]=i}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((X|0)!=(d|0)){continue}break}}return p|0}Ca();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=a+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;c=d+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+48|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+80|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+112|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+144|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+176|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+208|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+240|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+272|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+304|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+336|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+368|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+432|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+464|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;d=d+496|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;H[a+528>>2]=0;H[a+532>>2]=0;F[a+533|0]=0;F[a+534|0]=0;F[a+535|0]=0;F[a+536|0]=0;F[a+537|0]=0;F[a+538|0]=0;F[a+539|0]=0;F[a+540|0]=0;H[a+544>>2]=0;H[a+548>>2]=0;H[a+560>>2]=0;H[a+552>>2]=0;H[a+556>>2]=0;H[a+564>>2]=0;H[a+568>>2]=0;H[a+580>>2]=0;H[a+572>>2]=0;H[a+576>>2]=0;H[a+584>>2]=0;H[a+588>>2]=0;H[a+600>>2]=0;H[a+592>>2]=0;H[a+596>>2]=0;H[a+612>>2]=0;H[a+604>>2]=0;H[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+616>>2]=0;H[a+620>>2]=0;H[a+624>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=pa(d);H[a+604>>2]=c;f=c+d|0;H[a+612>>2]=f;ra(c,0,d);H[a+624>>2]=0;H[a+616>>2]=0;H[a+620>>2]=0;H[a+608>>2]=f;c=pa(d);H[a+616>>2]=c;f=c+d|0;H[a+624>>2]=f;ra(c,0,d);H[a+620>>2]=f;c=pa(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ra(c,0,d);H[e+4>>2]=f;d=b<<5|1}tb(g,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;oa(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=pa(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ra(c,0,b);H[e+4>>2]=f}tb(a+640|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;oa(b)}ca=e+16|0;return a}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e+32768>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>32767){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>32767|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|mO(1)){break d}e=(b<<1)+d|0;l=T(+m*32767+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=T(l*32767+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return j}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>2147483647|k){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|mO(1)){break d}e=(b<<2)+d|0;l=T(+m*2147483647+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=T(l*2147483647+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return j}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b|0];if((e|0)<0){break b}G[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m=O(0)){i=~~m>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|mO(1)){break d}e=(b<<1)+d|0;j=T(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=T(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return l}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=0,n=O(0),o=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b|0];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=G[b>>1];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b>>2];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=H[b+4>>2];e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];i=H[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;H[j>>2]=e;H[j+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=L[g>>2];if(k>=O(0x8000000000000000)|k=O(1)?~~(k>O(0)?O(R(O(T(O(k*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(k-O(~~k>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=M[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=P(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ra(d,0,a<<3)}}function Oj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=H[a+8>>2];switch(H[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i)}oa(c);c=1}return c|0}function dc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m=O(0)){i=~~m>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|mO(1)){break d}e=(b<<2)+d|0;j=T(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=T(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return k}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}h=H[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}f=e+(d<<2)|0;H[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;H[f>>2]=H[c>>2];if((c|0)!=(h|0)){continue}break}}H[a+56>>2]=e+(g<<2);H[a+52>>2]=d;H[a+48>>2]=f;if(!h){break f}oa(h)}H[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=H[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=H[H[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=H[H[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=H[a+36>>2];h=d+(c>>>3&536870908)|0;g=H[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ua(f,c,d);d=H[a+36>>2]}f=d+i|0;d=H[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ua(d,e,c)}c=-1;c=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:c;f=H[a+36>>2]+(c>>>3&536870908)|0;d=H[f>>2];e=1<>2]=d|e;Ua(a+8|0,c,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){e=N(d,12)+a|0;b=H[e+52>>2];if((b|0)==H[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=H[b>>2];H[e+52>>2]=b;H[a+84>>2]=d;if((c|0)==-1){break e}f=H[a+24>>2];b=(c>>>0)/3|0;j:{if(H[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;H[b>>2]=H[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=H[a+36>>2]+(d>>>3&536870908)|0;e=H[f>>2];b=1<>2]=b|e;i=H[(H[H[a+16>>2]+96>>2]+N(k,12)|0)+((c>>>0)%3<<2)>>2];l=H[H[a+20>>2]+4>>2];f=H[l+4>>2];t:{if((f|0)!=H[l+8>>2]){H[f>>2]=i;H[l+4>>2]=f+4;break t}j=H[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(j|0)){continue}break}}H[l+8>>2]=e+(h<<2);H[l+4>>2]=g;H[l>>2]=b;if(!j){break t}oa(j)}j=H[a+12>>2];f=H[j+4>>2];u:{if((f|0)!=H[j+8>>2]){H[f>>2]=c;H[j+4>>2]=f+4;break u}i=H[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(i|0)){continue}break}}H[j+8>>2]=e+(h<<2);H[j+4>>2]=g;H[j>>2]=b;if(!i){break u}oa(i)}b=H[a+12>>2];H[H[b+12>>2]+(d<<2)>>2]=H[b+24>>2];H[b+24>>2]=H[b+24>>2]+1}if((c|0)==-1){break k}g=H[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=H[H[g+12>>2]+(b<<2)>>2]}v:{w:{if((N(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=H[H[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=H[H[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=H[H[g>>2]+(c<<2)>>2];if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;e=H[b>>2];H[b>>2]=e+1;k=(e|0)<=0?2:1}if(H[a+84>>2]>=(k|0)&l){break m}j=N(k,12)+a|0;b=H[j+52>>2];y:{if((b|0)!=H[j+56>>2]){H[b>>2]=c;H[j+52>>2]=b+4;break y}i=H[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(i|0)){continue}break}}H[j+48>>2]=d;H[j+52>>2]=c;H[j+56>>2]=e+(g<<2);if(!i){break y}oa(i)}if(H[a+84>>2]<=(k|0)){break x}H[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=H[a+88>>2]+(c<<2)|0;c=H[b>>2];H[b>>2]=c+1;b=(c|0)<=0?2:1}if(H[a+84>>2]<(b|0)){break l}c=f}f=H[a+24>>2];continue}break}k=N(b,12)+a|0;c=H[k+52>>2];z:{if((c|0)!=H[k+56>>2]){H[c>>2]=f;H[k+52>>2]=c+4;break z}i=H[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[k+48>>2]=d;H[k+52>>2]=f;H[k+56>>2]=e+(g<<2);if(!i){break z}oa(i)}d=H[a+84>>2];if((d|0)<=(b|0)){break j}H[a+84>>2]=b;d=b;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}wa();v()}sa();v()}sa();v()}sa();v()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=ca-96|0;ca=n;o=H[a+4>>2];d=H[o+32>>2];i=H[d+8>>2];j=H[d+12>>2];e=j;c=H[d+20>>2];f=H[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=i>>>0|(c|0)>(e|0)){break a}p=H[d>>2];g=I[p+f|0];h=f+1|0;e=h?c:c+1|0;H[d+16>>2]=h;H[d+20>>2]=e;if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}m=I[h+p|0];h=f+2|0;e=h>>>0<2?c+1|0:c;H[d+16>>2]=h;H[d+20>>2]=e;l=g<<24>>24;b:{if((l|0)>=0){k=H[a+216>>2];if(g>>>0>=(H[a+220>>2]-k|0)/144>>>0){break a}k=k+N(g,144)|0;if(H[k>>2]<0){break b}break a}if(H[a+212>>2]>=0){break a}k=a+212|0}H[k>>2]=b;c:{d:{e:{f:{g:{h:{k=J[o+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}e=I[h+p|0];f=f+3|0;c=f>>>0<3?c+1|0:c;H[d+16>>2]=f;H[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!m){break i}if(!d){break h}break a}if(m){break g}d=0}if((l|0)<0){e=a+184|0}else{c=H[a+216>>2]+N(g,144)|0;F[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=ca-112|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(120);H[d>>2]=12172;H[d+4>>2]=0;H[d+116>>2]=0;H[d+112>>2]=e;H[d+108>>2]=h;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=12384;f=d- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;f=H[a+8>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;i=c+32|0;H[i>>2]=0;H[i+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;g=c- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=12384;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=f;g=H[f>>2];j=H[f+4>>2];F[c+111|0]=0;m=i;i=c+111|0;Oa(m,(j-g>>2>>>0)/3|0,i);g=H[c+12>>2];j=H[g+28>>2];g=H[g+24>>2];F[c+111|0]=0;Oa(c+44|0,j-g>>2,i);H[c+28>>2]=d;H[c+24>>2]=h;H[c+20>>2]=e;H[c+16>>2]=f;f=d+8|0;e=c+8|0;fd(f,e);j:{if((e|0)==(f|0)){H[d+92>>2]=H[e+84>>2];break j}Cb(d+56|0,H[e+48>>2],H[e+52>>2]);Cb(d+68|0,H[e+60>>2],H[e- -64>>2]);Cb(d+80|0,H[e+72>>2],H[e+76>>2]);H[d+92>>2]=H[e+84>>2];Aa(d+96|0,H[e+88>>2],H[e+92>>2])}H[c+8>>2]=12384;e=H[c+96>>2];if(e){H[c+100>>2]=e;oa(e)}e=H[c+80>>2];if(e){H[c+84>>2]=e;oa(e)}e=H[c+68>>2];if(e){H[c+72>>2]=e;oa(e)}e=H[c+56>>2];if(e){H[c+60>>2]=e;oa(e)}H[c+8>>2]=12620;e=H[c+44>>2];if(e){oa(e)}e=H[c+32>>2];if(e){oa(e)}ca=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=H[a+216>>2];c=H[o+44>>2];d=pa(80);H[d>>2]=12932;H[d+4>>2]=0;H[d+76>>2]=0;H[d+68>>2]=c;H[d+8>>2]=11872;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;e=e+N(g,144)|0;f=e+104|0;H[d+72>>2]=f;H[d- -64>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[n+24>>2]=c;c=n;H[c+68>>2]=0;H[c+72>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+28>>2]=d;h=H[c+28>>2];H[c+8>>2]=H[c+24>>2];H[c+12>>2]=h;H[c+20>>2]=f;f=e+4|0;H[c+16>>2]=f;H[c+36>>2]=0;H[c+40>>2]=0;H[c+32>>2]=11872;e=H[c+20>>2];H[c>>2]=H[c+16>>2];H[c+4>>2]=e;e=c+32|0;Ie(e,f,c);c=d+8|0;fd(c,e);if((c|0)!=(e|0)){Cb(d+56|0,H[e+48>>2],H[e+52>>2])}He(e);break c}c=ca+-64|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(80);H[d>>2]=12640;H[d+4>>2]=0;H[d+76>>2]=0;H[d+72>>2]=e;H[d+68>>2]=h;H[d+8>>2]=12804;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d- -64>>2]=0;i=d+56|0;f=i;H[f>>2]=0;H[f+4>>2]=0;f=H[a+8>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;g=c+24|0;H[g>>2]=0;H[g+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=12804;H[c+4>>2]=f;j=H[f>>2];l=H[f+4>>2];F[c+63|0]=0;m=g;g=c+63|0;Oa(m,(l-j>>2>>>0)/3|0,g);j=H[c+4>>2];l=H[j+28>>2];j=H[j+24>>2];F[c+63|0]=0;Oa(c+36|0,l-j>>2,g);H[c+20>>2]=d;H[c+16>>2]=h;H[c+12>>2]=e;H[c+8>>2]=f;fd(d+8|0,c);Cb(i,H[c+48>>2],H[c+52>>2]);H[c>>2]=12804;e=H[c+48>>2];if(e){H[c+52>>2]=e;oa(e)}H[c>>2]=12620;e=H[c+36>>2];if(e){oa(e)}e=H[c+24>>2];if(e){oa(e)}ca=c- -64|0}if(!d){break a}}d=od(pa(64),d);c=H[a+4>>2];a=d;d=b;k:{l:{if((d|0)>=0){h=c+8|0;b=H[c+12>>2];i=H[c+8>>2];e=b-i>>2;m:{if((e|0)>(d|0)){break m}f=d+1|0;if(d>>>0>=e>>>0){Vb(h,f-e|0);break m}if(e>>>0<=f>>>0){break m}f=i+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=H[b>>2];H[b>>2]=0;if(e){ea[H[H[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}H[c+12>>2]=f}c=H[h>>2]+(d<<2)|0;b=H[c>>2];H[c>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ea[H[H[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}ca=n+96|0;return q|0}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){X();v()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=H[(g<<2)+14448>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((N(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break b}b=H[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}}ca=e+16|0;return d}function Ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ca-16|0;ca=j;a:{b:{c:{d:{if(I[H[a+4>>2]+36|0]<=1){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break c}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;H[b+16>>2]=e;H[b+20>>2]=c;break d}k=-1;if(!Ea(1,j+12|0,b)){break c}l=H[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=H[a+8>>2];if((H[c+4>>2]-H[c>>2]>>2>>>0)/3>>>0>>0){break c}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ea(1,j+8|0,b)){break c}c=H[j+8>>2];if(!Ea(1,j+8|0,b)){break c}f=c+f|0;c=H[j+8>>2];if(f>>>0>>0){break c}g=f-c|0;c=H[a+40>>2];k:{if((c|0)!=H[a+44>>2]){H[c+4>>2]=f;H[c>>2]=g;H[a+40>>2]=c+12;l=H[j+12>>2];break k}m=H[a+36>>2];d=c-m|0;o=(d|0)/12|0;e=o+1|0;if(e>>>0>=357913942){break j}c=o<<1;h=o>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(h){if(h>>>0>=357913942){break b}i=pa(N(h,12))}else{i=0}e=i+N(o,12)|0;H[e+4>>2]=f;H[e>>2]=g;c=va(e+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=i+N(h,12);H[a+40>>2]=e+12;H[a+36>>2]=c;if(!m){break k}oa(m)}p=p+1|0;if(l>>>0>p>>>0){continue}break}k=0;Db(b,0,0);if(l){while(1){e=I[b+36|0];c=J[H[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}p=0;c=H[b+32>>2];n=c>>>3|0;g=H[b+24>>2];e=n+g|0;d=H[b+28>>2];n:{if(e>>>0>=d>>>0){f=c;break n}e=I[e|0];f=c+1|0;H[b+32>>2]=f;n=f>>>3|0;p=e>>>(c&7)&1}if(d>>>0>g+n>>>0){break m}break l}if(!e){break l}p=0;f=H[b+32>>2];c=H[b+24>>2]+(f>>>3|0)|0;if(c>>>0>=K[b+28>>2]){break l}p=I[c|0]>>>(f&7)&1}H[b+32>>2]=f+1}c=H[a+36>>2]+N(k,12)|0;F[c+8|0]=I[c+8|0]&254|p&1;k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[b+36|0]=0;f=H[b+20>>2];e=0;d=H[b+32>>2]+7|0;e=d>>>0<7?1:e;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+H[b+16>>2]|0;c=c+f|0;H[b+16>>2]=d;H[b+20>>2]=d>>>0>>0?c+1|0:c;break i}sa();v()}while(1){d=H[b+8>>2];c=H[b+12>>2];g=c;c=H[b+20>>2];e=c;h=H[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;i=f;if(f>>>0>d>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}m=H[b>>2];f=m+h|0;o=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;f=h+8|0;c=f>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}i=i+m|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if(d>>>0<=f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=I[f+m|0];c=h+9|0;e=c>>>0<9?e+1|0:e;H[b+16>>2]=c;H[b+20>>2]=e;f=d&1;c=H[a+40>>2];o:{if((c|0)!=H[a+44>>2]){F[c+8|0]=f;H[c+4>>2]=i;H[c>>2]=o;H[a+40>>2]=c+12;l=H[j+12>>2];break o}m=H[a+36>>2];d=c-m|0;h=(d|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;g=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(g){if(g>>>0>=357913942){break b}e=pa(N(g,12))}else{e=0}h=e+N(h,12)|0;F[h+8|0]=f;H[h+4>>2]=i;H[h>>2]=o;c=va(h+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=e+N(g,12);H[a+40>>2]=h+12;H[a+36>>2]=c;if(!m){break o}oa(m)}n=n+1|0;if(l>>>0>n>>>0){continue}break}}H[j+8>>2]=0;c=J[H[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;f=H[b+12>>2];if(K[b+8>>2]>>0&(f|0)<=(c|0)|(c|0)>(f|0)){break c}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Ea(1,j+8|0,b)){break c}f=H[j+8>>2]}if(!f){break e}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Ea(1,j+4|0,b)){break c}l=H[j+4>>2]+l|0;c=H[a+52>>2];q:{if((c|0)!=H[a+56>>2]){H[c>>2]=l;H[a+52>>2]=c+4;break q}i=H[a+48>>2];g=c-i|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break g}c=g>>>1|0;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=l;c=va(c,i,g);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!i){break q}oa(i)}n=n+1|0;if((n|0)!=(f|0)){continue}break}break e}sa();v()}sa();v()}k=0;while(1){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){k=-1;break c}d=d+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=H[a+52>>2];r:{if((c|0)!=H[a+56>>2]){H[c>>2]=g;H[a+52>>2]=c+4;break r}h=H[a+48>>2];i=c-h|0;e=i>>2;d=e+1|0;if(d>>>0>=1073741824){break a}c=i>>>1|0;d=i>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=g;c=va(c,h,i);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!h){break r}oa(h)}k=k+1|0;if((k|0)!=(f|0)){continue}break}}k=H[b+16>>2]}ca=j+16|0;return k}wa();v()}sa();v()}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(F[b|0]);L[(h<<2)+d>>2]=i?O(j/O(127)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(I[b|0]);L[(h<<2)+d>>2]=i?O(j/O(255)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(G[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(32767)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(J[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(65535)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(H[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(K[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +H[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +K[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=L[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=M[b>>3];b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=I[b|0]?O(1):O(0);b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ra(d,0,a<<2)}return l}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if((e+128&65535)>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>127){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e+128>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>127){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>127|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(127)|lO(1)){break d}j=T(+l*127+.5);if(!(P(j)<2147483648)){break f}h=~~j;break e}if(!(m>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=127|j<-128|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j<0|j>1){break b}j=T(j*127+.5)}g:{if(P(j)<2147483648){h=~~j;break g}h=-2147483648}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(255)|lO(1)){break d}j=T(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l=O(0))){break f}h=~~l>>>0;break e}h=0}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=255|j<0|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j>1){break b}j=T(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;i=H[a+32>>2];b=J[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=H[i+8>>2];d=H[i+12>>2];c=b;b=H[i+20>>2];e=b;j=H[i+16>>2];f=j+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}n=H[i>>2];k=n+j|0;k=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[i+16>>2]=f;H[i+20>>2]=b;h=c;c=d;b=e;d=j+8|0;b=d>>>0<8?b+1|0:b;if(d>>>0>h>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=f+n|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[i+16>>2]=d;H[i+20>>2]=b;break b}if(!Fb(1,g+28|0,i)){break a}if(!Fb(1,g+24|0,H[a+32>>2])){break a}k=H[g+28>>2];n=H[g+24>>2]}if(k>>>0>1431655765){break a}d=H[a+32>>2];b=d;j=H[b+8>>2];c=H[b+16>>2];f=H[b+12>>2];b=H[b+20>>2];e=Sj(j-c|0,f-(b+(c>>>0>j>>>0)|0)|0,3,0);if(!da&e>>>0>>0){break a}e=Rj(k,0,3,0);if(!da&e>>>0>>0|((b|0)>=(f|0)&c>>>0>=j>>>0|(b|0)>(f|0))){break a}j=I[c+H[d>>2]|0];c=c+1|0;b=c?b:b+1|0;H[d+16>>2]=c;H[d+20>>2]=b;c:{d:{if(!j){d=0;c=ca-32|0;ca=c;H[c+24>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;e:{f:{b=N(k,3);if(b){if(b>>>0>=1073741824){break f}j=N(k,12);d=pa(j);ra(d,0,j)}b=kd(b,1,H[a+32>>2],d);g:{h:{if(!(!k|!b)){j=0;while(1){i:{b=(j<<2)+d|0;f=H[b>>2];e=f>>>1|0;f=(f&1?0-e|0:e)+l|0;if((f|0)<0){break i}H[c>>2]=f;e=H[b+4>>2];h=e>>>1|0;f=f+(e&1?0-h|0:h)|0;if((f|0)<0){break i}H[c+4>>2]=f;b=H[b+8>>2];e=b>>>1|0;l=f+(b&1?0-e|0:e)|0;if((l|0)<0){break i}H[c+8>>2]=l;Rb(H[a+44>>2]+96|0,c);j=j+3|0;b=1;o=o+1|0;if((o|0)!=(k|0)){continue}break h}break}b=0;break h}if(!d){break g}}oa(d)}ca=c+32|0;break e}sa();v()}if(b){break d}break a}if(n>>>0<=255){if(!k){break d}while(1){j:{H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;d=H[a+32>>2];b=d;j=H[b+16>>2];e=H[b+8>>2];c=H[b+20>>2];h=H[b+12>>2];b=h;if(e>>>0<=j>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break j}i=H[d>>2];l=I[i+j|0];b=c;f=j+1|0;b=f?b:b+1|0;H[d+16>>2]=f;H[d+20>>2]=b;H[g+8>>2]=l;l=e>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0);e=l?j:e;h=l?c:h;if((e|0)==(f|0)&(h|0)==(b|0)){break j}l=I[f+i|0];b=c;f=j+2|0;b=f>>>0<2?b+1|0:b;H[d+16>>2]=f;H[d+20>>2]=b;H[g+12>>2]=l;if((e|0)==(f|0)&(b|0)==(h|0)){break j}f=I[f+i|0];b=c;c=j+3|0;b=c>>>0<3?b+1|0:b;H[d+16>>2]=c;H[d+20>>2]=b;H[g+16>>2]=f;Rb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(k|0)){continue}break d}break}m=0;break a}if(n>>>0<=65535){if(!k){break d}while(1){k:{H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;i=H[a+32>>2];b=i;c=H[b+8>>2];d=H[b+12>>2];f=H[b+16>>2];b=H[b+20>>2];j=b;e=f+2|0;b=e>>>0<2?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break k}l=H[i>>2];h=l+f|0;h=I[h|0]|I[h+1|0]<<8;H[i+16>>2]=e;H[i+20>>2]=b;H[g+8>>2]=h;b=j;h=f+4|0;b=h>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break k}e=e+l|0;e=I[e|0]|I[e+1|0]<<8;H[i+16>>2]=h;H[i+20>>2]=b;H[g+12>>2]=e;e=c;b=j;c=f+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break k}d=h+l|0;d=I[d|0]|I[d+1|0]<<8;H[i+16>>2]=c;H[i+20>>2]=b;H[g+16>>2]=d;Rb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(k|0)){continue}break d}break}m=0;break a}l:{if(n>>>0>2097151){break l}b=J[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break l}if(!k){break d}while(1){m:{H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;if(!Fb(1,g+4|0,H[a+32>>2])){break m}H[g+8>>2]=H[g+4>>2];if(!Fb(1,g+4|0,H[a+32>>2])){break m}H[g+12>>2]=H[g+4>>2];if(!Fb(1,g+4|0,H[a+32>>2])){break m}H[g+16>>2]=H[g+4>>2];Rb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(k|0)){continue}break d}break}m=0;break a}if(!k){break d}while(1){H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;i=H[a+32>>2];b=i;c=H[b+8>>2];d=H[b+12>>2];f=H[b+16>>2];b=H[b+20>>2];j=b;e=f+4|0;b=e>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=H[i>>2];h=l+f|0;h=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[i+16>>2]=e;H[i+20>>2]=b;H[g+8>>2]=h;b=j;h=f+8|0;b=h>>>0<8?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}e=e+l|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[i+16>>2]=h;H[i+20>>2]=b;H[g+12>>2]=e;e=c;b=j;c=f+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=h+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+16>>2]=c;H[i+20>>2]=b;H[g+16>>2]=d;Rb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(k|0)){continue}break}}H[H[a+4>>2]+80>>2]=n;m=1;break a}m=0}ca=g+32|0;return m|0}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=O(0),w=0;p=ca-16|0;ca=p;a:{if(!(H[a+60>>2]!=H[a- -64>>2]|H[a+48>>2]!=H[a+52>>2])){j=1;break a}j=1;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{b=ea[H[H[a>>2]+20>>2]](a,w)|0;c:{d:{e:{f=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(b<<2)>>2];switch(H[f+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}b=I[f+24|0];f:{if(!b){n=0;j=0;break f}j=0;b=b<<2;n=pa(b);ra(n,0,b);b=I[f+24|0];if(!b){break f}b=b<<2;j=pa(b);ra(j,0,b)}g:{h:{i:{switch(H[f+28>>2]-1|0){case 4:i=0;h=0;d=0;b=0;k=0;e=I[f+24|0];j:{if(!e){g=0;break j}e=e<<2;h=pa(e);ra(h,0,e);g=pa(e);ra(g,0,e)}k:{if(H[f+80>>2]){while(1){o=H[f>>2];c=H[o>>2];m=H[f+48>>2];e=H[f+40>>2];l=Rj(e,H[f+44>>2],d,b);m=m+l|0;s=c+m|0;c=e;m=qa(h,s,c);l=I[f+24|0];if(l){t=H[a+48>>2];e=0;while(1){r=e<<2;s=H[r+m>>2];if((s|0)<0){break k}H[g+r>>2]=s+H[t+(e+u<<2)>>2];e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[o>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}k=1}if(g){oa(g)}if(h){oa(h)}if(k){break h}break g;case 2:g=0;e=0;d=0;b=0;c=I[f+24|0];if(c){c=c<<1;e=pa(c);ra(e,0,c);g=pa(c);ra(g,0,c)}if(H[f+80>>2]){while(1){l=H[f>>2];h=H[l>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,h+i|0,c);o=I[f+24|0];l:{if(!o){break l}m=H[a+48>>2];h=0;if((o|0)!=1){t=o&254;i=0;while(1){r=h<<1;G[r+g>>1]=J[k+r>>1]+J[m+(h+u<<2)>>1];r=h|1;s=r<<1;G[s+g>>1]=J[k+s>>1]+J[m+(r+u<<2)>>1];h=h+2|0;i=i+2|0;if((t|0)!=(i|0)){continue}break}}if(!(o&1)){break l}i=h<<1;G[i+g>>1]=J[i+k>>1]+J[m+(h+u<<2)>>1]}qa(H[l>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(g){oa(g)}if(e){oa(e)}break h;case 0:break i;default:break h}}h=0;e=0;d=0;b=0;c=I[f+24|0];if(c){e=pa(c);ra(e,0,c);h=pa(c);ra(h,0,c)}if(H[f+80>>2]){while(1){t=H[f>>2];g=H[t>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,g+i|0,c);o=I[f+24|0];m:{if(!o){break m}m=H[a+48>>2];g=0;if((o|0)!=1){r=o&254;i=0;while(1){F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0];l=g|1;F[l+h|0]=I[k+l|0]+I[m+(l+u<<2)|0];g=g+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!(o&1)){break m}F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0]}qa(H[t>>2]+N(d,c)|0,h,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(h){oa(h)}if(e){oa(e)}}u=I[f+24|0]+u|0;i=1}if(j){oa(j)}if(n){oa(n)}if(i){break c}j=0;break a}e=H[H[a+60>>2]+(q<<2)>>2];h=H[a+36>>2];g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[p+12>>2]=H[f+56>>2];b=pa(32);H[p>>2]=b;H[p+4>>2]=24;H[p+8>>2]=-2147483616;d=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);c=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;F[b+20|0]=d;F[b+21|0]=d>>>8;F[b+22|0]=d>>>16;F[b+23|0]=d>>>24;d=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);c=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);c=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;F[b+24|0]=0;d=sd(g,p+12|0,p);if(F[p+11|0]<0){oa(H[p>>2])}b=q+1|0;n:{if(d){oe(f,e);break n}g=h+N(q,24)|0;q=H[g+4>>2];c=I[f+24|0];h=c<<2;d=pa(h);H[p>>2]=1065353216;v=L[g+20>>2];q=-1<0){L[p>>2]=v/O(q|0)}if((q|0)<=0){break b}o:{if(!H[e+80>>2]){break o}if(!c){n=0;j=0;while(1){qa(H[H[f+64>>2]>>2]+j|0,d,h);j=h+j|0;n=n+1|0;if(n>>>0>2]){continue}break}break o}o=H[H[e>>2]>>2]+H[e+48>>2]|0;t=c&254;r=c&1;i=0;k=0;j=0;while(1){q=H[g+8>>2];v=L[p>>2];n=0;m=0;if((c|0)!=1){while(1){l=n<<2;s=o+(j<<2)|0;L[l+d>>2]=O(v*O(H[s>>2]))+L[l+q>>2];l=l|4;L[l+d>>2]=O(v*O(H[s+4>>2]))+L[l+q>>2];n=n+2|0;j=j+2|0;m=m+2|0;if((t|0)!=(m|0)){continue}break}}if(r){n=n<<2;L[n+d>>2]=O(v*O(H[o+(j<<2)>>2]))+L[n+q>>2];j=j+1|0}qa(H[H[f+64>>2]>>2]+k|0,d,h);k=h+k|0;i=i+1|0;if(i>>>0>2]){continue}break}}oa(d)}q=b}j=1;w=w+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}oa(d);j=0}ca=p+16|0;return j|0}function Le(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;d=J[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){h=H[b+8>>2];f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;if(h>>>0>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;break c}if(!hb(1,j+12|0,b)){break b}d=H[b+16>>2];e=H[b+20>>2];l=H[j+12>>2]}f=H[b+8>>2];i=f-d|0;d=H[b+12>>2]-((d>>>0>f>>>0)+e|0)|0;if(i>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=H[j>>2];d=H[j+4>>2]-e>>2;d:{if(d>>>0>>0){ya(j,l-d|0);l=H[j+12>>2];break d}if(d>>>0<=l>>>0){break d}H[j+4>>2]=e+(l<<2)}i=1;if(!l){break a}d=H[b+16>>2];e=H[b+20>>2];r=H[j>>2];k=H[b+8>>2];o=H[b+12>>2];h=0;while(1){i=0;if((e|0)>=(o|0)&d>>>0>=k>>>0|(e|0)>(o|0)){break a}i=H[b>>2];p=I[i+d|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=p>>>2|0;m=0;e:{f:{g:{h:{s=p&3;switch(s|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;i=0;if(f>>>0>=l>>>0){break a}ra(r+(h<<2)|0,0,(p&252)+4|0);h=f;break e}while(1){if((d|0)==(k|0)&(e|0)==(o|0)){break b}l=I[d+i|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=l<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}H[r+(h<<2)>>2]=f}l=H[j+12>>2];h=h+1|0;if(l>>>0>h>>>0){continue}break}d=j+16|0;o=H[j>>2];f=H[j+16>>2];e=H[j+20>>2]-f|0;i:{if(e>>>0<=4194303){ya(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}H[j+20>>2]=f+4194304}e=j+28|0;h=H[e>>2];f=H[j+32>>2]-h>>3;j:{if(f>>>0>>0){ob(e,l-f|0);h=H[e>>2];break j}if(f>>>0>l>>>0){H[j+32>>2]=(l<<3)+h}if(!l){break b}}k=H[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;j=H[e>>2];m=(d<<3)+h|0;f=i;H[m+4>>2]=f;H[m>>2]=j;e=H[e>>2];i=e+f|0;if(i>>>0>1048576){break b}k:{if(f>>>0>=i>>>0){break k}m=0;j=e&7;if(j){while(1){H[k+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=k+(f<<2)|0;H[e>>2]=d;H[e+28>>2]=d;H[e+24>>2]=d;H[e+20>>2]=d;H[e+16>>2]=d;H[e+12>>2]=d;H[e+8>>2]=d;H[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((l|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}l:{if(!i|(H[g+20>>2]?0:a)){break l}i=0;n=ca-16|0;ca=n;m:{n:{if(J[b+38>>1]<=511){h=H[b+8>>2];f=H[b+12>>2];j=f;e=H[b+20>>2];k=H[b+16>>2];d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>h>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break m}k=k+H[b>>2]|0;f=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[b+16>>2]=d;H[b+20>>2]=e;break n}if(!gb(1,n+8|0,b)){break m}d=H[b+16>>2];e=H[b+20>>2];h=H[b+8>>2];j=H[b+12>>2];f=H[n+8>>2];k=H[n+12>>2]}l=h-d|0;h=j-((d>>>0>h>>>0)+e|0)|0;if((h|0)==(k|0)&f>>>0>l>>>0|h>>>0>>0){break m}e=e+k|0;h=d+f|0;e=h>>>0>>0?e+1|0:e;H[b+16>>2]=h;H[b+20>>2]=e;if((f|0)<=0){break m}b=H[b>>2]+d|0;H[g+48>>2]=b;d=f-1|0;e=d+b|0;h=I[e|0];o:{if(h>>>0<=63){H[g+52>>2]=d;b=I[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break o;default:break p}}d=f-4|0;H[g+52>>2]=d;b=b+d|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[g+56>>2]=b+4194304;i=b>>>0<1069547520}ca=n+16|0;if(!i){break l}if(!a){t=1;break l}b=H[g+52>>2];f=H[g+56>>2];d=H[g+36>>2];e=H[g+48>>2];h=H[g+24>>2];while(1){q:{if(f>>>0>4194303){break q}while(1){if((b|0)<=0){break q}b=b-1|0;H[g+52>>2]=b;f=I[b+e|0]|f<<8;H[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;k=H[h+(i<<2)>>2];n=d+(k<<3)|0;f=(N(H[n>>2],f>>>20|0)+i|0)-H[n+4>>2]|0;H[g+56>>2]=f;H[(q<<2)+c>>2]=k;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;return t}function nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-48|0;ca=e;f=J[6677]|J[6678]<<16;d=J[6675]|J[6676]<<16;G[e+38>>1]=d;G[e+40>>1]=d>>>16;G[e+42>>1]=f;G[e+44>>1]=f>>>16;d=H[3337];H[e+32>>2]=H[3336];H[e+36>>2]=d;d=H[3335];H[e+24>>2]=H[3334];H[e+28>>2]=d;d=H[3333];H[e+16>>2]=H[3332];H[e+20>>2]=d;g=H[b+8>>2];i=H[b+12>>2];h=H[b+20>>2];d=H[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break d}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}f=d+H[b>>2]|0;d=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=I[f+4|0];d=H[b+20>>2];f=H[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;H[b+16>>2]=f;H[b+20>>2]=d;if(Fa(c,1260,5)){d=pa(32);F[d+17|0]=0;F[d+16|0]=I[1496];c=I[1492]|I[1493]<<8|(I[1494]<<16|I[1495]<<24);b=I[1488]|I[1489]<<8|(I[1490]<<16|I[1491]<<24);F[d+8|0]=b;F[d+9|0]=b>>>8;F[d+10|0]=b>>>16;F[d+11|0]=b>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1484]|I[1485]<<8|(I[1486]<<16|I[1487]<<24);b=I[1480]|I[1481]<<8|(I[1482]<<16|I[1483]<<24);F[d|0]=b;F[d+1|0]=b>>>8;F[d+2|0]=b>>>16;F[d+3|0]=b>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,d,17);oa(d);break b}g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break f}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+5|0]=I[f+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break h}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+6|0]=I[d+H[b>>2]|0];h=H[b+20>>2];d=H[b+16>>2]+1|0;h=d?h:h+1|0;H[b+16>>2]=d;H[b+20>>2]=h;f=H[b+12>>2];if((f|0)<=(h|0)&K[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break j}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+7|0]=I[d+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}F[c+8|0]=I[d+H[b>>2]|0];d=H[b+20>>2];g=H[b+16>>2];f=g+1|0;i=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=i;i=H[b+8>>2];h=H[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}d=c;c=H[b>>2]+f|0;G[d+10>>1]=I[c|0]|I[c+1|0]<<8;g=H[b+20>>2];c=H[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;H[b+16>>2]=c;H[b+20>>2]=g;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}ca=e+48|0;return}Na();v()}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=ca-96|0;ca=e;f=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=f;j=H[a+20>>2];d=H[j>>2];a:{b:{f=H[H[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(f<<2)>>2]<<2)>>2];f=H[a+4>>2];if(!I[f+84|0]){d=H[H[f+68>>2]+(d<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;j=e- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;Sa(f,d,F[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!H[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=H[a+20>>2];b=H[n>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[n+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;Sa(b,d,F[b+24|0],e+32|0);d=H[a+20>>2];b=H[d>>2];f=H[H[H[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;Sa(b,d,F[b+24|0],e+8|0);g=H[e+8>>2];b=H[e+56>>2];d=g-b|0;p=H[e+60>>2];t=H[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=H[e+40>>2];f=H[e+64>>2];n=h-f|0;u=H[e+68>>2];y=H[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Rj(d,t,n,y);w=o-g|0;x=i-(da+(g>>>0>o>>>0)|0)|0;i=w;h=H[e+16>>2];g=h-f|0;u=H[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=H[e+32>>2];h=k-b|0;w=H[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,h,w);o=i+b|0;i=da+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=H[e+48>>2];f=H[e+72>>2];d=k-f|0;t=H[e+76>>2];x=H[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0>>0?b+1|0:b;l=H[e+24>>2];p=l-f|0;f=H[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Rj(p,f,h,w);l=k-q|0;q=b-(da+(k>>>0>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,f,n,y);r=s+d|0;b=da+b|0;s=r>>>0>>0?b+1|0:b;b=H[e+88>>2];f=H[e+80>>2];d:{if(I[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break e}}b=H[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break d}if((b|0)!=H[e+84>>2]){break d}H[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Sj(o,n,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=e+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;g=H[r>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0>>0){ya(r,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2);d=e}w=e<<2;f=e>>>0>1073741823?-1:w;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];c:{if((f|0)>(g|0)){H[d+i>>2]=g;break c}d=d+i|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break c}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=H[b+g>>2]+H[g+i>>2]|0;H[d>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];x=H[f>>2];f=H[f+4>>2]-x|0;if((f|0)>=5){D=H[a+52>>2];s=H[a+48>>2];u=f>>>2|0;E=u>>>0<=2?2:u;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=H[(n<<2)+x>>2];t=(e|0)<=0;if(!t){ra(m,0,w)}if((g|0)==-1){i=N(e,n);break f}C=H[s>>2];l=0;f=g;while(1){i:{if(H[(f>>>3&536870908)+C>>2]>>>f&1){break i}i=H[H[H[s+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=H[D>>2];h=H[s+28>>2];o=H[j+(H[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=H[j+(H[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=H[j+(H[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=N(e,i);j=N(e,k);o=N(e,o);h=0;q=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2];k=h|1;H[(k<<2)+p>>2]=(H[(i+k<<2)+c>>2]+H[(j+k<<2)+c>>2]|0)-H[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((y|0)!=(q|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];k=j|4;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];k=j|8;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];j=j|12;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];h=h+4|0;i=i+4|0;if((F|0)!=(i|0)){continue}break}}if(!A){break j}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[i+p>>2]+H[j>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(H[(h>>>3&536870908)+C>>2]>>>h&1){break k}f=H[H[H[s+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=N(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!B){break h}while(1){g=h<<2;j=g+m|0;H[j>>2]=H[j>>2]/(l|0);g=(g|4)+m|0;H[g>>2]=H[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(l|0)}if((d|0)<=0){break e}l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];m:{if((f|0)>(g|0)){H[d+l>>2]=g;break m}d=d+l|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break m}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(N(n-1|0,e)<<2)+c|0;l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+g>>2];j=H[a+16>>2];o:{if((f|0)>(j|0)){H[d+l>>2]=j;break o}d=d+l|0;j=H[a+12>>2];if((j|0)>(f|0)){H[d>>2]=j;break o}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function sj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;f=H[r>>2];j=H[a+36>>2]-f>>2;a:{if(j>>>0>>0){ya(r,e-j|0);d=H[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}H[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];c:{if((j|0)>(d|0)){H[f+i>>2]=d;break c}f=f+i|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break c}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=H[b+j>>2]+H[j+i>>2]|0;H[d>>2]=j;d:{if((j|0)>H[a+16>>2]){j=j-H[a+20>>2]|0}else{if((j|0)>=H[a+12>>2]){break d}j=j+H[a+20>>2]|0}H[d>>2]=j}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];w=H[f>>2];f=H[f+4>>2]-w|0;if((f|0)>=5){D=H[a+52>>2];x=H[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=H[(n<<2)+w>>2];s=(e|0)<=0;if(!s){ra(m,0,u)}if((j|0)==-1){g=N(e,n);break f}C=H[x+12>>2];q=0;f=j;while(1){h=H[(f<<2)+C>>2];i:{if((h|0)==-1){break i}o=H[D>>2];l=H[x>>2];k=H[o+(H[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=H[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=H[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=H[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=H[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=N(e,i);o=N(e,g);k=N(e,k);h=0;i=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2];g=h|1;H[(g<<2)+p>>2]=(H[(g+l<<2)+c>>2]+H[(g+o<<2)+c>>2]|0)-H[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((y|0)!=(i|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[l+p>>2]+H[i>>2];g=l|4;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|8;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|12;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!A){break l}while(1){g=h<<2;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=H[(h<<2)+C>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=N(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!B){break h}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[j>>2]/(q|0);j=(i|4)+m|0;H[j>>2]=H[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(q|0)}if((d|0)<=0){break e}k=H[r>>2];h=0;while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];o:{if((j|0)>(d|0)){H[f+k>>2]=d;break o}f=f+k|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break o}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(N(n-1|0,e)<<2)+c|0;k=H[r>>2];h=0;while(1){j=h<<2;i=H[j+f>>2];d=H[a+16>>2];q:{if((i|0)>(d|0)){H[j+k>>2]=d;break q}j=j+k|0;d=H[a+12>>2];if((d|0)>(i|0)){H[j>>2]=d;break q}H[j>>2]=i}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;r:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break r}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function xa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ca-32|0;ca=f;a:{b=H[a+16>>2];b:{if(b>>>0>=341){H[a+16>>2]=b-341;b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];c:{if((b|0)!=H[a+12>>2]){d=b;break c}k=H[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break c}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}c=H[a+8>>2];b=H[a+4>>2];l=c-b|0;h=l>>2;g=H[a+12>>2];d=H[a>>2];e=g-d|0;if(h>>>0>2>>>0){if((c|0)!=(g|0)){n=f,o=pa(4092),H[n+8>>2]=o;d=a;f:{g:{b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){e=b;break h}c=H[d+4>>2];h=H[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=va(g+c|0,c,a)+a|0;H[d+8>>2]=e;H[d+4>>2]=g+H[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=pa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=l;H[d+8>>2]=e;H[d+4>>2]=a;H[d>>2]=j;if(!h){break h}oa(h);e=H[d+8>>2]}H[e>>2]=H[f+8>>2];H[d+8>>2]=H[d+8>>2]+4;break f}wa();v()}break b}n=f,o=pa(4092),H[n+8>>2]=o;qd(a,f+8|0);b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];k:{if((b|0)!=H[a+12>>2]){d=b;break k}k=H[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break k}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}H[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=pa(e);H[f+8>>2]=g;j=e+g|0;H[f+20>>2]=j;d=(h<<2)+g|0;H[f+12>>2]=d;i=pa(4092);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;H[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=pa(b);H[f+8>>2]=e;j=b+e|0;H[f+20>>2]=j;d=e+(d&-4)|0;H[f+12>>2]=d;oa(g);b=H[a+4>>2];c=H[a+8>>2];g=e}H[d>>2]=i;i=d+4|0;H[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qd(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}j=H[f+20>>2];i=H[f+16>>2];d=H[f+12>>2];g=H[f+8>>2];e=c;b=H[a+8>>2]}c=H[a>>2];H[a>>2]=g;H[f+8>>2]=c;H[a+4>>2]=d;H[f+12>>2]=e;H[a+8>>2]=i;H[f+16>>2]=b;d=H[a+12>>2];H[a+12>>2]=j;H[f+20>>2]=d;if((b|0)!=(e|0)){H[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}oa(c)}ca=f+32|0;return}wa();v()}function Aj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=0,s=O(0),t=O(0),u=O(0),w=O(0),x=0,y=O(0),z=O(0),A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;x=a+32|0;e=H[x>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(x,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){e=H[a+56>>2];h=H[e>>2];if(H[e+4>>2]-h>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;e=-1;h=H[h+(d<<2)>>2];f=-1;d:{if((h|0)==-1){break d}e=h+1|0;e=(e>>>0)%3|0?e:h-2|0;f=h-1|0;if((h>>>0)%3|0){break d}f=h+2|0}j=H[a+52>>2];h=H[j>>2];e:{f:{j=H[j+4>>2]-h>>2;l=e<<2;e=H[H[a+48>>2]+28>>2];r=H[l+e>>2];if(j>>>0<=r>>>0){break f}e=H[e+(f<<2)>>2];if(e>>>0>=j>>>0){break f}j=H[h+(e<<2)>>2];f=H[h+(r<<2)>>2];g:{if(!((j|0)>=(d|0)|(f|0)>=(d|0))){e=H[a+72>>2];h=(N(e,j)<<2)+c|0;m=O(H[h+4>>2]);e=(N(e,f)<<2)+c|0;p=O(H[e+4>>2]);y=O(H[e>>2]);n=O(H[h>>2]);if(!(y!=n|m!=p)){h=+m>2147483647;e=H[a+68>>2];if(O(P(m))>2]=m2147483647;if(O(P(n))>2]=n>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){e=H[H[h+68>>2]+(e<<2)>>2]}Va(h,e,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(f<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);f=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g);o=L[g+24>>2];s=O(L[g+8>>2]-o);t=L[g+20>>2];u=O(L[g+4>>2]-t);A=L[g+16>>2];w=O(L[g>>2]-A);z=O(O(s*s)+O(O(u*u)+O(O(w*w)+O(0))));h:{if(H[a+88>>2]>=258){i=O(0);if(!(z>O(0))){break h}}i=O(L[g+40>>2]-o);o=O(L[g+36>>2]-t);t=O(L[g+32>>2]-A);q=O(O(O(s*i)+O(O(u*o)+O(O(w*t)+O(0))))/z);i=O(i-O(s*q));s=O(i*i);i=O(o-O(u*q));o=O(i*i);i=O(t-O(w*q));i=O(W(O(O(s+O(o+O(O(i*i)+O(0))))/z)))}f=H[a+80>>2];if(f){e=f-1|0;h=H[H[a+76>>2]+(e>>>3&536870908)>>2];H[a+80>>2]=e;m=O(m-p);o=O(O(m*q)+p);n=O(n-y);p=O(n*i);e=h>>>e&1;p=O(o+(e?p:O(-p)));i=O(i*m);k=T(+O(O(O(n*q)+y)+(e?O(-i):i))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){e=H[a+68>>2];H[e>>2]=-2147483648;break i}e=H[a+68>>2];if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e>>2]=h}k=T(+p+.5);j=k>2147483647;if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:h}f=(f|0)!=0;break g}j:{if((d|0)>(f|0)){e=H[a+72>>2];h=N(f,e);break j}if((d|0)<=0){f=1;if(H[a+72>>2]<=0){break g}h=H[a+68>>2];e=0;while(1){H[h+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break g}e=H[a+72>>2];h=N(e,d-1|0)}f=1;if((e|0)<=0){break g}j=H[a+68>>2];e=0;while(1){H[j+(e<<2)>>2]=H[(e+h<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}ca=g+48|0;break e}Ca();v()}h=f;if(!h){return 0}k:{if(H[a+8>>2]<=0){break k}r=H[a+68>>2];j=H[x>>2];e=0;while(1){f=e<<2;g=H[f+r>>2];l=H[a+16>>2];l:{if((g|0)>(l|0)){H[f+j>>2]=l;break l}f=f+j|0;l=H[a+12>>2];if((l|0)>(g|0)){H[f>>2]=l;break l}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break k}e=d<<3;r=e+c|0;l=b+e|0;while(1){g=f<<2;e=g+r|0;g=H[g+l>>2]+H[g+j>>2]|0;H[e>>2]=g;m:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function kj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=O(0),n=O(0),o=O(0),p=0,q=O(0),r=O(0),s=O(0),t=O(0),u=O(0),w=0,x=O(0),y=O(0),z=0,A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;w=a+32|0;e=H[w>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(w,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;h=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[a+48>>2];f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[H[j>>2]+(f<<2)>>2]}f=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=H[a+52>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=h>>>0|e>>>0<=f>>>0){break e}e=H[j+(h<<2)>>2];j=H[j+(f<<2)>>2];f:{if(!((d|0)<=(e|0)|(j|0)>=(d|0))){f=H[a+72>>2];h=(N(f,j)<<2)+c|0;l=O(H[h+4>>2]);f=(N(e,f)<<2)+c|0;o=O(H[f+4>>2]);x=O(H[f>>2]);m=O(H[h>>2]);if(!(x!=m|l!=o)){h=+l>2147483647;e=H[a+68>>2];if(O(P(l))>2]=l2147483647;if(O(P(m))>2]=m>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){f=H[H[h+68>>2]+(f<<2)>>2]}Va(h,f,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(e<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);h=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){h=H[H[e+68>>2]+(h<<2)>>2]}Va(e,h,F[e+24|0],g);n=L[g+24>>2];r=O(L[g+8>>2]-n);s=L[g+20>>2];t=O(L[g+4>>2]-s);A=L[g+16>>2];u=O(L[g>>2]-A);y=O(O(r*r)+O(O(t*t)+O(O(u*u)+O(0))));g:{if(H[a+88>>2]>=258){i=O(0);if(!(y>O(0))){break g}}i=O(L[g+40>>2]-n);n=O(L[g+36>>2]-s);s=O(L[g+32>>2]-A);q=O(O(O(r*i)+O(O(t*n)+O(O(u*s)+O(0))))/y);i=O(i-O(r*q));r=O(i*i);i=O(n-O(t*q));n=O(i*i);i=O(s-O(u*q));i=O(W(O(O(r+O(n+O(O(i*i)+O(0))))/y)))}e=H[a+80>>2];if(e){f=e-1|0;h=H[H[a+76>>2]+(f>>>3&536870908)>>2];H[a+80>>2]=f;l=O(l-o);n=O(O(l*q)+o);m=O(m-x);o=O(m*i);f=h>>>f&1;o=O(n+(f?o:O(-o)));i=O(i*l);k=T(+O(O(O(m*q)+x)+(f?O(-i):i))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){h=H[a+68>>2];H[h>>2]=-2147483648;break h}h=H[a+68>>2];if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h>>2]=f}k=T(+o+.5);j=k>2147483647;if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:f}h=(e|0)!=0;break f}i:{if((d|0)>(e|0)){f=H[a+72>>2];e=N(e,f);break i}if((d|0)<=0){h=1;if(H[a+72>>2]<=0){break f}e=H[a+68>>2];f=0;while(1){H[e+(f<<2)>>2]=0;f=f+1|0;if((f|0)>2]){continue}break}break f}f=H[a+72>>2];e=N(f,d-1|0)}h=1;if((f|0)<=0){break f}j=H[a+68>>2];f=0;while(1){H[j+(f<<2)>>2]=H[(e+f<<2)+c>>2];f=f+1|0;if((f|0)>2]){continue}break}}ca=g+48|0;break d}Ca();v()}if(!h){return 0}j:{if(H[a+8>>2]<=0){break j}z=H[a+68>>2];j=H[w>>2];e=0;while(1){f=e<<2;g=H[f+z>>2];p=H[a+16>>2];k:{if((g|0)>(p|0)){H[f+j>>2]=p;break k}f=f+j|0;p=H[a+12>>2];if((p|0)>(g|0)){H[f>>2]=p;break k}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break j}e=d<<3;z=e+c|0;p=b+e|0;while(1){g=f<<2;e=g+z|0;g=H[g+p>>2]+H[g+j>>2]|0;H[e>>2]=g;l:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break l}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ca-704|0;ca=f;n=1;a:{b:{c:{d:{if(J[b+38>>1]<515){break d}n=0;c=H[b+20>>2];d=H[b+12>>2];g=H[b+16>>2];if((c|0)>=(d|0)&g>>>0>=K[b+8>>2]|(c|0)>(d|0)){break d}p=I[H[b>>2]+g|0];g=g+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;g=H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ea[H[H[a>>2]+24>>2]](a)|0;H[f+40>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=N(c,20);d=pa(c);H[f+32>>2]=d;H[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ra(d,0,c)+c|0,H[q+36>>2]=r}e:{if((ea[H[H[a>>2]+24>>2]](a)|0)>0){while(1){c=ea[H[H[a>>2]+20>>2]](a,l)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,g);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];d=H[c+28>>2];if(d>>>0>9){break e}f:{g:{h:{e=1<>2],d,6,0,i,i>>31);c=jc(pa(96),e);H[f>>2]=c;F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];mb(c,g);c=H[a+64>>2];if(c>>>0>=K[a+68>>2]){break h}d=H[f>>2];H[f>>2]=0;H[c>>2]=d;c=c+4|0;H[a+64>>2]=c;break g}j=0;if(!I[c+24|0]){break f}while(1){d=H[a+52>>2];i=H[a+56>>2];i:{if(d>>>0>>0){H[d>>2]=0;H[a+52>>2]=d+4;break i}e=d;d=H[a+48>>2];m=e-d|0;k=m>>2;e=k+1|0;if(e>>>0>=1073741824){break b}o=k<<2;i=i-d|0;k=i>>>1|0;e=i>>>0>=2147483644?1073741823:e>>>0>>0?k:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}else{i=0}k=o+i|0;H[k>>2]=0;o=e<<2;e=va(i,d,m);H[a+56>>2]=o+e;H[a+52>>2]=k+4;H[a+48>>2]=e;if(!d){break i}oa(d)}j=j+1|0;if(j>>>0>2];i=H[a+64>>2]-e>>2;d=i+1|0;if(d>>>0<1073741824){e=H[a+68>>2]-e|0;j=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(e){if(e>>>0>=1073741824){break l}c=pa(e<<2)}j=H[f>>2];H[f>>2]=0;d=(i<<2)+c|0;H[d>>2]=j;e=(e<<2)+c|0;i=d+4|0;c=H[a+64>>2];j=H[a+60>>2];if((c|0)==(j|0)){break k}while(1){c=c-4|0;m=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=m;if((c|0)!=(j|0)){continue}break}H[a+68>>2]=e;e=H[a+64>>2];H[a+64>>2]=i;c=H[a+60>>2];H[a+60>>2]=d;if((c|0)==(e|0)){break j}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ga(d)}if((c|0)!=(e|0)){continue}break}break j}sa();v()}wa();v()}H[a+68>>2]=e;H[a+64>>2]=i;H[a+60>>2]=d}if(c){oa(c)}c=H[a+64>>2]}c=H[c-4>>2];d=H[f>>2];H[f>>2]=0;if(!d){break f}Ga(d)}i=H[c+28>>2];d=i-1|0;if(d>>>0<=10){e=H[(d<<2)+13584>>2]}else{e=-1}d=H[f+32>>2]+N(l,20)|0;j=I[c+24|0];H[d+16>>2]=j;H[d+12>>2]=(e|0)>0?e:0;H[d+8>>2]=i;H[d+4>>2]=h;H[d>>2]=c;h=h+j|0;l=l+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=Ac(f,f+32|0);m:{n:{o:{switch(p|0){case 0:c=wb(f+48|0,h);b=Bd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 1:c=wb(f+48|0,h);b=zd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 2:c=ub(f+48|0,h);b=yd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 3:c=ub(f+48|0,h);b=xd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 4:c=$a(f+48|0,h);b=wd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 5:c=$a(f+48|0,h);b=vd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 6:break o;default:break m}}c=$a(f+48|0,h);b=ud(c,b,a,g);h=H[c+8>>2];ab(c);if(!b|(h|0)!=(g|0)){break m}}n=1}b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(!b){break e}H[a+4>>2]=b;oa(b)}a=H[f+32>>2];if(!a){break d}H[f+36>>2]=a;oa(a)}ca=f+704|0;return n|0}sa();v()}sa();v()}wa();v()}function Zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-32|0;ca=e;a:{b:{switch(c-2|0){case 0:c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ea[H[H[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7144;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=8080;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=8472;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=8860;break a;case 1:break b;default:break a}}c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ea[H[H[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9028;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=10032;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=10452;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=10864}ca=e+32|0;return d|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){m=H[d+80>>2];u=ca-16|0;ca=u;g=H[a+4>>2];k=I[b+24|0];h=H[d+48>>2];n=H[H[d>>2]>>2];c=u+8|0;H[c>>2]=1065353216;d=c;L[c>>2]=O(-1<>2];c=pa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=L[d>>2];n=H[a+8>>2];v=H[b>>2];d=H[b+48>>2];g=H[b+40>>2];w=H[b+44>>2];if(!I[b+84|0]){f=H[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=H[v>>2];l=Rj(g,w,H[f+(i<<2)>>2],0)+d|0;h=qa(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));b:{if(O(P(e))>2]=r;j=j|4;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));c:{if(O(P(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+h>>2]-L[b+n>>2]))+O(.5))));d:{if(O(P(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=H[v>>2];h=Rj(g,w,i,l)+d|0;j=qa(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));e:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));f:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+j>>2]-L[b+n>>2]))+O(.5))));g:{if(O(P(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}oa(c);ca=u+16|0;return 1}j=ca-16|0;ca=j;m=H[a+4>>2];i=I[b+24|0];g=H[d+48>>2];h=H[H[d>>2]>>2];d=j+8|0;H[d>>2]=1065353216;l=d;L[d>>2]=O(-1<>2];d=pa(i<<2);m=H[c+4>>2];q=H[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=L[l>>2];h=H[a+8>>2];v=H[b>>2];l=H[b+48>>2];m=H[b+40>>2];w=H[b+44>>2];if(I[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[q+(c<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));i:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));j:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));k:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=H[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[s+(H[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));l:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));m:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));n:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}oa(d);ca=j+16|0;return 1}function dd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+4>>2];e=H[a>>2];f=(c-e|0)/144|0;if(f>>>0>>0){e=a;b=b-f|0;h=H[a+8>>2];c=H[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){Ia(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=N(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}H[e+4>>2]=c;break a}c:{d:{e:{a=c;c=H[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=pa(N(f,144))}c=N(i,144)+g|0;a=c;h=b&7;if(h){while(1){Ia(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=N(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=N(f,144)+g|0;d=H[e+4>>2];f=H[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;H[c>>2]=H[a>>2];H[c+4>>2]=H[a+4>>2];H[c+8>>2]=H[a+8>>2];H[c+12>>2]=H[a+12>>2];H[a+12>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[c+16>>2]=H[a+16>>2];H[c+20>>2]=H[a+20>>2];H[c+24>>2]=H[a+24>>2];H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;g=I[a+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[a+32>>2];H[c+36>>2]=H[a+36>>2];H[c+40>>2]=H[a+40>>2];H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[a+44>>2];H[c+48>>2]=H[a+48>>2];H[c+52>>2]=H[a+52>>2];H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[a+56>>2];H[c+60>>2]=H[a+60>>2];i=g;g=a- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[c+68>>2]=H[a+68>>2];g=H[a+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[a+76>>2];H[c+80>>2]=H[a+80>>2];H[c+84>>2]=H[a+84>>2];H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[a+88>>2];H[c+92>>2]=H[a+92>>2];H[c+96>>2]=H[a+96>>2];H[a+96>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;g=I[a+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[a+104>>2];H[c+108>>2]=H[a+108>>2];H[c+112>>2]=H[a+112>>2];H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[a+116>>2];H[c+120>>2]=H[a+120>>2];H[c+124>>2]=H[a+124>>2];H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;g=H[a+128>>2];H[c+140>>2]=0;H[c+132>>2]=0;H[c+136>>2]=0;H[c+128>>2]=g;H[c+132>>2]=H[a+132>>2];H[c+136>>2]=H[a+136>>2];H[c+140>>2]=H[a+140>>2];H[a+140>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}H[e+8>>2]=b;a=H[e+4>>2];H[e+4>>2]=h;d=H[e>>2];H[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=H[b+132>>2];if(c){H[a-8>>2]=c;oa(c)}c=H[a-28>>2];if(c){H[a-24>>2]=c;oa(c)}c=H[a-40>>2];if(c){H[a-36>>2]=c;oa(c)}oc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}sa();v()}wa();v()}H[e+8>>2]=b;H[e+4>>2]=h;H[e>>2]=c}if(d){oa(d)}}return}if(b>>>0>>0){e=e+N(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=H[b+132>>2];if(d){H[c-8>>2]=d;oa(d)}d=H[c-28>>2];if(d){H[c-24>>2]=d;oa(d)}d=H[c-40>>2];if(d){H[c-36>>2]=d;oa(d)}oc(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=e}}function Pe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]){b=pa(32);F[b+27|0]=0;c=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+23|0]=c;F[b+24|0]=c>>>8;F[b+25|0]=c>>>16;F[b+26|0]=c>>>24;c=I[1518]|I[1519]<<8|(I[1520]<<16|I[1521]<<24);d=I[1514]|I[1515]<<8|(I[1516]<<16|I[1517]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1510]|I[1511]<<8|(I[1512]<<16|I[1513]<<24);d=I[1506]|I[1507]<<8|(I[1508]<<16|I[1509]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1502]|I[1503]<<8|(I[1504]<<16|I[1505]<<24);d=I[1498]|I[1499]<<8|(I[1500]<<16|I[1501]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,27);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(F[f+32|0]){case 0:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13496;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13404;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Ic(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;H[a+56>>2]=H[a+52>>2];H[a+44>>2]=H[a+40>>2];b=H[a+64>>2];c=H[b+24>>2];if((c|0)==H[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=H[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=H[a+56>>2];e:{if((b|0)!=H[a+60>>2]){H[b>>2]=g;H[a+56>>2]=b+4;break e}d=H[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=pa(f<<2)}else{e=0}c=e+(h<<2)|0;H[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=e+(f<<2);H[a+56>>2]=h;H[a+52>>2]=c;if(!d){break e}oa(d)}f:{g:{if(!(H[H[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|H[H[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=H[H[H[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=H[a+64>>2];f=H[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|H[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=H[H[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}H[H[a+28>>2]+(e<<2)>>2]=g;b=H[a+44>>2];i:{if((b|0)!=H[a+48>>2]){H[b>>2]=e;H[a+44>>2]=b+4;break i}d=H[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=pa(f<<2)}else{i=0}c=i+(h<<2)|0;H[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+48>>2]=i+(f<<2);H[a+44>>2]=h;H[a+40>>2]=c;if(!d){break i}oa(d)}i=g+1|0;b=H[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(H[H[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=H[a+56>>2];k:{if((b|0)!=H[a+60>>2]){H[b>>2]=i;H[a+56>>2]=b+4;break k}d=H[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=pa(h<<2)}else{g=0}c=g+(j<<2)|0;H[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=g+(h<<2);H[a+56>>2]=j;H[a+52>>2]=c;if(!d){break k}oa(d)}d=i+1|0;b=H[a+44>>2];l:{if((b|0)!=H[a+48>>2]){H[b>>2]=f;H[a+44>>2]=b+4;break l}h=H[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=pa(j<<2)}else{g=0}c=g+(l<<2)|0;H[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(h|0)){continue}break}}H[a+48>>2]=g+(j<<2);H[a+44>>2]=l;H[a+40>>2]=c;if(!h){break l}oa(h)}g=i;i=d}H[H[a+28>>2]+(f<<2)>>2]=g;b=H[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=H[b+24>>2];if(k>>>0>2]-c>>2>>>0){continue}break}return 1}sa();v()}wa();v()}sa();v()}function ti(a){a=a|0;var b=0,c=0,d=0,e=0;c=H[a+32>>2];d=H[c+16>>2];e=H[c+12>>2];b=H[c+20>>2];if(K[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=I[H[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;H[c+16>>2]=d;H[c+20>>2]=b;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=pa(384);H[b>>2]=11384;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+376>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;break c;case 1:b=pa(424);H[b>>2]=11436;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;c=b+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[b+416>>2]=-1;H[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=pa(440);H[b>>2]=11484;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;H[b+416>>2]=0;H[b+420>>2]=0;H[b+408>>2]=2;H[b+412>>2]=7;H[b+400>>2]=-1;H[b+404>>2]=-1;H[b+424>>2]=0;H[b+428>>2]=0;H[b+432>>2]=0;H[b+436>>2]=0}c=H[a+48>>2];H[a+48>>2]=b;if(!c){break a}ea[H[H[c>>2]+4>>2]](c)}b=H[a+48>>2];if(b){break a}return 0}a=ea[H[H[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=ca-96|0;ca=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;a:{if((b|0)==-1){break a}j=H[a+20>>2];d=H[j>>2];e=H[H[e>>2]+(b<<2)>>2];if(e>>>0>=H[j+4>>2]-d>>2>>>0){break a}e=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;j=f- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Sa(d,e,F[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!H[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=H[a+20>>2];b=H[m>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[m+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[(d<<2)+b>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Sa(b,d,F[b+24|0],f+32|0);if((e|0)==-1){break c}d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break c}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Sa(b,d,F[b+24|0],f+8|0);g=H[f+8>>2];b=H[f+56>>2];d=g-b|0;p=H[f+60>>2];t=H[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=H[f+40>>2];e=H[f+64>>2];m=i-e|0;u=H[f+68>>2];y=H[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=Rj(d,t,m,y);w=o-g|0;x=h-(da+(g>>>0>o>>>0)|0)|0;h=w;i=H[f+16>>2];g=i-e|0;u=H[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=H[f+32>>2];i=k-b|0;w=H[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,i,w);o=h+b|0;h=da+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=H[f+48>>2];e=H[f+72>>2];d=k-e|0;t=H[f+76>>2];x=H[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0>>0?b+1|0:b;l=H[f+24>>2];p=l-e|0;e=H[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=Rj(p,e,i,w);l=k-q|0;q=b-(da+(k>>>0>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,e,m,y);r=s+d|0;b=da+b|0;s=r>>>0>>0?b+1|0:b;uc(f+80|0);b=H[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=Sj(o,m,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=f+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=H[d>>2];i=H[e+60>>2];f=H[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=H[e>>2];H[e>>2]=0;g=H[d>>2];H[d>>2]=h;if(g){Ga(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=H[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=H[c>>2];H[c>>2]=0;if(e){Ga(e)}if((c|0)!=(d|0)){continue}break}}H[a+12>>2]=d;g=H[a+4>>2];b:{if(!g|(i|0)<0){break b}c=H[g+24>>2];d=H[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==H[H[c>>2]+24>>2]){d=c+4|0;i=H[g+28>>2];if((d|0)!=(i|0)){while(1){h=H[d>>2];H[d>>2]=0;e=H[c>>2];H[c>>2]=h;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=H[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}if((c|0)!=(d|0)){continue}break}}H[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=N(f,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(H[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;va(f,c,d-c|0);H[e+24>>2]=d-4}c=H[a+24>>2];d=H[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break e}H[c>>2]=d-1}c=H[a+36>>2];d=H[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break f}H[c>>2]=d-1}c=H[a+48>>2];d=H[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+60>>2];d=H[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}i=a+(i|4)|0;f=H[i>>2];if((f|0)>(b|0)){H[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=H[a>>2];if((f|0)>=(b|0)){break a}H[a>>2]=b-1}}function oa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+17496|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4300]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4304]==(f|0)){H[4304]=d;a=H[4301]+a|0;H[4301]=a;H[d+4>>2]=a|1;if(H[4303]!=(d|0)){break a}H[4300]=0;H[4303]=0;return}if(H[4303]==(f|0)){H[4303]=d;a=H[4300]+a|0;H[4300]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+17496|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4303]!=(d|0)){break f}H[4300]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);k:{if(!(c&a)){H[4298]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=Q(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+17496|0;l:{m:{c=H[4299];b=1<>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4306]-1|0;H[4306]=a?a:-1}}function tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;n=a+32|0;h=H[n>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){ya(n,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];p=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+m>>2];j=H[a+16>>2];c:{if((h|0)>(j|0)){H[d+g>>2]=j;break c}d=d+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[d>>2]=j;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}i=h+H[a+20>>2]|0}H[d>>2]=i}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1){break f}f=H[H[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=H[s>>2];g=H[p>>2];k=H[j+(H[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=H[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=H[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=H[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=H[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=N(e,g);j=N(e,f);k=N(e,k);f=0;l=0;if((e|0)!=1){while(1){H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];i=f|1;H[(i<<2)+m>>2]=(H[(g+i<<2)+c>>2]+H[(j+i<<2)+c>>2]|0)-H[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+m>>2];k=H[a+16>>2];j:{if((g|0)>(k|0)){H[d+j>>2]=k;break j}d=d+j|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];i=H[a+16>>2];l:{if((g|0)>(i|0)){H[d+j>>2]=i;break l}d=d+j|0;i=H[a+12>>2];if((i|0)>(g|0)){H[d>>2]=i;break l}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;m:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(m);return 1}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=H[a+48>>2];H[a+52>>2]=e;a:{if((e|0)!=H[a+56>>2]){H[e>>2]=b;H[a+52>>2]=e+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!e){break a}oa(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=H[H[a+4>>2]+28>>2];k=H[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-N(g,3)|0?-1:2)+b|0;j=H[c+(e<<2)>>2];if((j|0)==-1){return 0}b=H[a+36>>2];g=b+(k>>>3&536870908)|0;d=H[g>>2];c=1<>2]=c|d;Ua(a+8|0,k,i);b=H[a+36>>2]}d=(j>>>3&536870908)+b|0;c=H[d>>2];b=1<>2]=b|c;Ua(a+8|0,j,e)}f=H[a+52>>2];if((f|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=H[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=H[a+24>>2]+(c>>>3&268435452)|0;d=H[g>>2];c=1<>2]=c|d;h=H[a+4>>2];c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=H[a+36>>2]+(c>>>3&536870908)|0;i=H[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];break e}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|H[H[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=H[H[H[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=H[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(H[H[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=H[H[H[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=H[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=H[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=H[f+(e<<2)>>2];if(!(d&j)){break d}}f=H[a+52>>2]-4|0;H[a+52>>2]=f;break b}if(g){b=c;break d}if(H[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=H[a+52>>2];H[h-4>>2]=b;if(H[a+56>>2]!=(h|0)){H[h>>2]=c;f=h+4|0;break c}m:{i=H[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=pa(e<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;H[b>>2]=H[h>>2];if((h|0)!=(i|0)){continue}break}}H[a+56>>2]=d+(e<<2);H[a+52>>2]=f;H[a+48>>2]=b;if(!i){break b}oa(i);f=H[a+52>>2];break b}sa();v()}wa();v()}H[(e<<2)+f>>2]=d|j;c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}H[a+52>>2]=f}if(H[a+48>>2]!=(f|0)){continue}break}}return 1}function Lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){ya(m,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];n=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+l>>2];i=H[a+16>>2];c:{if((h|0)>(i|0)){H[d+g>>2]=i;break c}d=d+g|0;i=H[a+12>>2];if((i|0)>(h|0)){H[d>>2]=i;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}h=h+H[a+20>>2]|0}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1|H[H[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=H[H[H[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=H[s>>2];g=H[n+28>>2];k=H[i+(H[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=H[i+(H[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=H[i+(H[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=N(e,f);i=N(e,j);k=N(e,k);f=0;p=0;if((e|0)!=1){while(1){H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];j=f|1;H[(j<<2)+l>>2]=(H[(g+j<<2)+c>>2]+H[(i+j<<2)+c>>2]|0)-H[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+l>>2];k=H[a+16>>2];h:{if((g|0)>(k|0)){H[d+i>>2]=k;break h}d=d+i|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break h}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;i:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break i}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];j=H[a+16>>2];j:{if((g|0)>(j|0)){H[d+i>>2]=j;break j}d=d+i|0;j=H[a+12>>2];if((j|0)>(g|0)){H[d>>2]=j;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(l);return 1}function Gb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0);i=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}g=Uj(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=pa(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=i;H[c>>2]=0;m=O(H[b+12>>2]+1>>>0);j=L[b+16>>2];d:{if(m>O(j*O(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=O(U(O(m/j)));e:{if(j=O(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Kd(d);f=H[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=O(U(O(O(K[b+12>>2])/L[b+16>>2])));h:{if(j=O(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(Uj(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-Q(d-1|0);break i}d=Kd(d)}e=d>>>0>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=pa(h<<2);e=H[b>>2];H[b>>2]=d;if(e){oa(e)}H[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;H[k+H[b>>2]>>2]=0;H[H[b>>2]+(k|4)>>2]=0;H[H[b>>2]+(k|8)>>2]=0;H[H[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){H[H[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=H[b+8>>2];if(!e){break k}d=b+8|0;f=H[e+4>>2];g=Uj(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=H[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+H[b>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=d;f=g;break o}H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break k}d=H[b>>2];H[b>>2]=0;if(d){oa(d)}H[b+4>>2]=0;break k}wa();v()}f=h-1&f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&H[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+H[b>>2]|0;if(H[h>>2]){H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d;break p}H[h>>2]=e;e=d;f=g}d=H[e>>2];if(d){continue}break}}}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=H[b>>2]+(e<<2)|0;d=H[e>>2];q:{r:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[e>>2]=d;d=H[c>>2];if(!d){break q}d=H[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break r}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]!=1){b=pa(32);F[b+20|0]=0;c=I[1448]|I[1449]<<8|(I[1450]<<16|I[1451]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1444]|I[1445]<<8|(I[1446]<<16|I[1447]<<24);d=I[1440]|I[1441]<<8|(I[1442]<<16|I[1443]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1436]|I[1437]<<8|(I[1438]<<16|I[1439]<<24);d=I[1432]|I[1433]<<8|(I[1434]<<16|I[1435]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,20);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(I[f+32|0]){case 0:e=Ke(pa(48));H[e>>2]=13112;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=Ke(pa(52));H[e+48>>2]=0;H[e>>2]=11276;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;H[e+44>>2]=d;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=N(b,12)+a|0;H[j+12>>2]=H[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((de(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=H[a+56>>2]+(m>>>3&536870908)|0;h=H[d>>2];e=1<>2]=e|h;d=H[j+12>>2];f:{if((d|0)!=H[j+16>>2]){H[d>>2]=m;H[j+12>>2]=d+4;break f}n=H[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=pa(i<<2)}else{g=0}h=g+(e<<2)|0;H[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;H[h>>2]=H[d>>2];if((d|0)!=(n|0)){continue}break}}H[j+8>>2]=h;H[j+12>>2]=e;H[j+16>>2]=g+(i<<2);if(!n){break f}oa(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=H[H[H[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=H[(H[H[a>>2]+96>>2]+N(e,12)|0)+(i-N(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(f-N(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=H[a+56>>2]+(m>>>3&268435452)|0;h=H[d>>2];e=1<>2]-4|0;g=H[l>>2];d=H[a+56>>2]+(g>>>3&536870908)|0;c=H[d>>2];o=d,p=Vj(g)&c,H[o>>2]=p;H[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;de(a,-1);break a}sa();v()}wa();v()}H[((b<<2)+a|0)+44>>2]=k;b=H[j+12>>2];i=H[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=H[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=H[l+i>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;g=H[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=H[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(c)&a,H[o>>2]=p}}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function pj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=H[a+48>>2];H[a+52>>2]=f;a:{if((f|0)!=H[a+56>>2]){H[f>>2]=b;H[a+52>>2]=f+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!f){break a}oa(f)}e=-1;d=H[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=H[H[d>>2]+(i<<2)>>2]}b:{h=b-N(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=H[H[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;g=H[f>>2];d=1<>2]=d|g;Ua(a+8|0,e,i);c=H[a+36>>2]}g=(j>>>3&536870908)+c|0;d=H[g>>2];c=1<>2]=c|d;Ua(a+8|0,j,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=H[a+24>>2]+(d>>>3&268435452)|0;g=H[f>>2];d=1<>2]=d|g;while(1){i=H[a+4>>2];e=H[H[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=H[a+36>>2]+(e>>>3&536870908)|0;f=H[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=H[H[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}H[h>>2]=f|g;Ua(j,e,b);break f}H[h>>2]=f|g;Ua(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=H[e+(f<<2)>>2];break e}c=-1;g=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=H[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=H[e+(f<<2)>>2];if(!(d&i)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(g){b=c;break e}if(H[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=H[a+52>>2];H[e-4>>2]=b;if(H[a+56>>2]!=(e|0)){H[e>>2]=c;c=e+4|0;break d}l:{h=H[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=pa(f<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];if((e|0)!=(h|0)){continue}break}}H[a+56>>2]=d+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!h){break c}oa(h);c=H[a+52>>2];break c}sa();v()}wa();v()}H[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function dj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=ca-80|0;ca=h;a:{b:{if(I[H[a+28>>2]+36|0]<=1){d=H[b+20>>2];f=H[b+16>>2];c=f+4|0;d=c>>>0<4?d+1|0:d;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(d|0)|(d|0)>(g|0)){break a}f=f+H[b>>2]|0;j=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!Pc(1,h+76|0,b)){break a}j=H[h+76>>2]}if(!j){break a}d=H[b+8>>2];c=H[b+16>>2];d=Rj(d-c|0,H[b+12>>2]-(H[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=da;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=H[a+4>>2];d=H[a+8>>2]-c>>2;c:{if(d>>>0>>0){ya(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}H[a+8>>2]=c+(j<<2)}p=a+16|0;l=H[a+32>>2];while(1){i=H[b+12>>2];c=i;d=H[b+20>>2];e=H[b+8>>2];f=H[b+16>>2];if((c|0)<=(d|0)&e>>>0<=f>>>0|(c|0)<(d|0)){e=0;break a}n=H[b>>2];q=I[n+f|0];c=d;g=f+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;if(e>>>0<=g>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}g=I[g+n|0];c=d;k=f+2|0;c=k>>>0<2?c+1|0:c;H[b+16>>2]=k;H[b+20>>2]=c;if(e>>>0<=k>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}k=I[k+n|0];c=d;m=f+3|0;c=m>>>0<3?c+1|0:c;H[b+16>>2]=m;H[b+20>>2]=c;if(e>>>0<=m>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}e=I[m+n|0];c=d;d=f+4|0;c=d>>>0<4?c+1|0:c;H[b+16>>2]=d;H[b+20>>2]=c;if(q>>>0>4){e=0;break a}if((g-12&255)>>>0<245){e=0;break a}if(!k){e=0;break a}m=Eb(h+8|0);i=(e|0)!=0;d=g-1|0;if(d>>>0<=10){c=H[(d<<2)+13584>>2]}else{c=-1}d=N(c,k);lc(m,q,k,g,i,d,d>>31);d:{d=J[H[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=H[b+20>>2];f=H[b+16>>2];d=f+2|0;c=d>>>0<2?c+1|0:c;e=H[b+12>>2];if(K[b+8>>2]>>0&(e|0)<=(c|0)|(c|0)>(e|0)){break d}f=f+H[b>>2]|0;e=I[f|0]|I[f+1|0]<<8;H[b+16>>2]=d;H[b+20>>2]=c;break e}if(!Pc(1,h+4|0,b)){break d}e=H[h+4>>2]}H[h+68>>2]=e;d=jc(pa(96),m);ea[H[H[l>>2]+8>>2]](l,H[l+12>>2]-H[l+8>>2]>>2,d);d=(H[l+12>>2]-H[l+8>>2]>>2)-1|0;f=d<<2;H[H[f+H[l+8>>2]>>2]+60>>2]=e;H[H[a+4>>2]+(o<<2)>>2]=d;e=H[a+16>>2];c=H[a+20>>2]-e>>2;f:{if((c|0)>(d|0)){break f}H[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Pa(p,d-c|0,h);e=H[p>>2];break f}if(c>>>0<=d>>>0){break f}H[a+20>>2]=(d<<2)+e}H[e+f>>2]=o;e=1;o=o+1|0;if((o|0)!=(j|0)){continue}break a}break}e=0}ca=h+80|0;return e|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=ea[H[H[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=H[b+4>>2]-H[b>>2]>>2;e=ca+-64|0;ca=e;f=Eb(e);d=N(H[3400],n);lc(f,H[H[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=jc(pa(96),f);F[f+84|0]=1;H[f+72>>2]=H[f+68>>2];mb(f,i);H[f+60>>2]=H[H[a+8>>2]+60>>2];d=H[a+16>>2];H[a+16>>2]=f;if(d){Ga(d)}ca=e- -64|0;h=H[a+16>>2];if(!H[h+80>>2]){break a}j=H[H[h>>2]>>2];if(!j){break a}m=H[c+12>>2];e=m;d=H[c+20>>2];g=H[c+8>>2];k=H[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=N(i,n);i=j+H[h+48>>2]|0;h=H[c>>2];j=I[h+k|0];e=k+1|0;f=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=f;b:{c:{if(j){if(kd(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=I[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;d=H[H[a+16>>2]+64>>2];d=H[d+4>>2]-H[d>>2]|0;if((g|0)==H[3400]){e=l<<2;if(e>>>0>d>>>0){break a}g=H[c+8>>2];k=H[c+12>>2];j=H[c+20>>2];d=H[c+16>>2];f=e+d|0;j=f>>>0>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}qa(i,d+H[c>>2]|0,e);f=H[c+20>>2];d=e+H[c+16>>2]|0;f=d>>>0>>0?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;break c}if(d>>>0>>0){break a}d=H[c+8>>2];f=H[c+16>>2];e=d-f|0;m=d>>>0>>0;d=H[c+20>>2];k=H[c+12>>2]-(m+d|0)|0;m=Rj(g,0,l,0)>>>0>e>>>0;e=da;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=H[c+8>>2];j=H[c+12>>2];e=f+g|0;d=e>>>0>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}qa(i+(h<<2)|0,H[c>>2]+f|0,g);d=H[c+20>>2];f=g+H[c+16>>2]|0;d=f>>>0>>0?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=H[a+20>>2];if(d){e=0;if(ea[H[H[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=H[e+i>>2];H[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=H[d+i>>2];H[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=H[d+i>>2];H[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=H[a+20>>2];e:{if(!f){break e}if(!(ea[H[H[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=H[a+20>>2];if(!(ea[H[H[a>>2]+44>>2]](a,i,i,l,n,H[b>>2])|0)){break a}}o=1}return o|0}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=pa(b<<2);H[h+24>>2]=b;H[h+20>>2]=0;H[h+16>>2]=c;b=H[a>>2];H[h+12>>2]=0;H[h+8>>2]=b;c=H[a+4>>2];H[h+4>>2]=c&31;H[h>>2]=b+(c>>>3&536870908);e=ca-32|0;ca=e;i=H[h+4>>2];g=H[h+12>>2];j=H[h>>2];d=H[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=H[h+20>>2];c=b+f|0;H[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){H[H[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=H[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;H[c>>2]=H[c>>2]&(i^-1)|i&H[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){va(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;H[g>>2]=H[g>>2]&(b^-1)|b&H[c+d>>2];break c}H[e+28>>2]=g;H[e+24>>2]=d;H[e+20>>2]=i;H[e+16>>2]=j;H[e+12>>2]=f;H[e+8>>2]=c;b=H[e+28>>2];c=H[e+24>>2];g=(H[e+20>>2]-b|0)+(H[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=H[e+12>>2];d=H[e+8>>2];break d}e:{if(!b){b=H[e+12>>2];break e}d=H[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=H[e+8>>2];m=H[l>>2]&(-1<>>j-i^-1);j=H[c>>2]&(-1<>>k-f);H[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;H[e+12>>2]=b;d=l+(c>>>3&536870908)|0;H[e+8>>2]=d;c=f-i|0;if((c|0)>0){H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|j>>>i+H[e+28>>2];H[e+12>>2]=c;b=c}g=g-f|0;c=H[e+24>>2]+4|0;H[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=H[e+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>f;c=H[e+24>>2]+4|0;H[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=H[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=H[d>>2]&(i&-1>>>j-f^-1);i=H[c>>2]&-1>>>32-g;H[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;H[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}H[d>>2]=H[d>>2]&(-1>>>32-b^-1)|i>>>f;H[e+12>>2]=b}H[e+4>>2]=b;H[e>>2]=d}ca=e+32|0;b=H[a>>2];H[a>>2]=H[h+16>>2];H[h+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[h+20>>2];H[h+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[h+24>>2];H[h+24>>2]=c;if(!b){break b}oa(b)}ca=h+32|0;return}sa();v()}function Ne(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){g=H[b+8>>2];e=H[b+12>>2];d=H[b+20>>2];c=H[b+16>>2];i=c+4|0;d=i>>>0<4?d+1|0:d;if(g>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=c+H[b>>2]|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[a+12>>2]=f;d=H[b+20>>2];c=H[b+16>>2]+4|0;d=c>>>0<4?d+1|0:d;H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!hb(1,a+12|0,b)){break a}c=H[b+16>>2];d=H[b+20>>2];f=H[a+12>>2]}e=H[b+8>>2];i=e-c|0;c=H[b+12>>2]-(d+(c>>>0>e>>>0)|0)|0;if(i>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=H[a>>2];c=H[a+4>>2]-d>>2;c:{if(c>>>0>>0){ya(a,f-c|0);f=H[a+12>>2];break c}if(c>>>0<=f>>>0){break c}H[a+4>>2]=d+(f<<2)}if(!f){return 1}c=H[b+16>>2];d=H[b+20>>2];l=H[a>>2];i=H[b+8>>2];j=H[b+12>>2];g=0;while(1){if((d|0)>=(j|0)&c>>>0>=i>>>0|(d|0)>(j|0)){return 0}m=H[b>>2];k=I[m+c|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=k>>>2|0;h=0;d:{e:{f:{g:{n=k&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ra(l+(g<<2)|0,0,(k&252)+4|0);g=e;break d}while(1){if((c|0)==(i|0)&(d|0)==(j|0)){break a}f=I[c+m|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}H[l+(g<<2)>>2]=e}f=H[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;i=H[a>>2];d=H[a+16>>2];c=H[a+20>>2]-d|0;h:{if(c>>>0<=16383){ya(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}H[a+20>>2]=d+16384}c=a+28|0;g=H[c>>2];d=H[a+32>>2]-g>>3;i:{if(d>>>0>>0){ob(c,f-d|0);g=H[c>>2];break i}if(d>>>0>f>>>0){H[a+32>>2]=(f<<3)+g}if(!f){break a}}d=H[b>>2];b=0;a=0;while(1){c=i+(b<<2)|0;h=H[c>>2];e=a;j=(b<<3)+g|0;H[j+4>>2]=a;H[j>>2]=h;c=H[c>>2];a=c+a|0;if(a>>>0>4096){break a}j:{if(a>>>0<=e>>>0){break j}h=0;j=c&7;if(j){while(1){H[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((j|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=d+(e<<2)|0;H[c>>2]=b;H[c+28>>2]=b;H[c+24>>2]=b;H[c+20>>2]=b;H[c+16>>2]=b;H[c+12>>2]=b;H[c+8>>2]=b;H[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Ni(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ii(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ri(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ca-16|0;ca=f;c=H[a+4>>2];H[a+40>>2]=H[a>>2];H[a+44>>2]=c;c=H[a+36>>2];H[a+72>>2]=H[a+32>>2];H[a+76>>2]=c;d=H[a+28>>2];c=a- -64|0;H[c>>2]=H[a+24>>2];H[c+4>>2]=d;c=H[a+20>>2];H[a+56>>2]=H[a+16>>2];H[a+60>>2]=c;c=H[a+12>>2];H[a+48>>2]=H[a+8>>2];H[a+52>>2]=c;a:{b:{if(Db(a+40|0,1,f+8|0)){c=H[a+44>>2];H[a>>2]=H[a+40>>2];H[a+4>>2]=c;c=H[a+76>>2];H[a+32>>2]=H[a+72>>2];H[a+36>>2]=c;c=H[a+68>>2];H[a+24>>2]=H[a+64>>2];H[a+28>>2]=c;d=H[a+60>>2];h=d;c=H[a+56>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+52>>2];d=H[a+48>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;c:{if(J[a+38>>1]<=513){c=H[a+4>>2];H[a+96>>2]=H[a>>2];H[a+100>>2]=c;c=H[a+36>>2];H[a+128>>2]=H[a+32>>2];H[a+132>>2]=c;c=H[a+28>>2];H[a+120>>2]=H[a+24>>2];H[a+124>>2]=c;c=H[a+20>>2];H[a+112>>2]=H[a+16>>2];H[a+116>>2]=c;c=H[a+12>>2];H[a+104>>2]=H[a+8>>2];H[a+108>>2]=c;d:{if(Db(a+96|0,1,f+8|0)){c=H[a+100>>2];H[a>>2]=H[a+96>>2];H[a+4>>2]=c;c=H[a+132>>2];H[a+32>>2]=H[a+128>>2];H[a+36>>2]=c;c=H[a+124>>2];H[a+24>>2]=H[a+120>>2];H[a+28>>2]=c;d=H[a+116>>2];h=d;c=H[a+112>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+108>>2];d=H[a+104>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;break c}c=0;if(!ta(a+80|0,a)){break a}}c=0;if(!Fe(a)){break a}c=H[a+4>>2];H[b>>2]=H[a>>2];H[b+4>>2]=c;c=H[a+36>>2];H[b+32>>2]=H[a+32>>2];H[b+36>>2]=c;c=H[a+28>>2];H[b+24>>2]=H[a+24>>2];H[b+28>>2]=c;c=H[a+20>>2];H[b+16>>2]=H[a+16>>2];H[b+20>>2]=c;c=H[a+12>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=c;c=1}ca=f+16|0;return c}function oe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!H[a+64>>2]){c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(d){c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d);c=H[a+64>>2]}H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+16>>2]=d;H[a+20>>2]=c}a:{F[a+24|0]=I[b+24|0];H[a+28>>2]=H[b+28>>2];F[a+32|0]=I[b+32|0];c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;H[a+56>>2]=H[b+56>>2];c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;H[a+60>>2]=H[b+60>>2];c=H[b>>2];b:{if(!c){H[a>>2]=0;d=1;break b}g=H[a>>2];d=0;if(!g){break b}d=H[c>>2];c=H[c+4>>2]-d|0;se(g,d,c,0);d=1}c:{if(!d){break c}F[a+84|0]=I[b+84|0];H[a+80>>2]=H[b+80>>2];if((a|0)!=(b|0)){Cb(a+68|0,H[b+68>>2],H[b+72>>2])}f=H[b+88>>2];d:{if(f){e=pa(40);b=H[f>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e>>2]=b;c=H[f+12>>2];b=H[f+8>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=pa(c);H[e+12>>2]=b;H[e+8>>2]=b;H[e+16>>2]=b+c;c=H[f+8>>2];h=H[f+12>>2];e:{if((c|0)==(h|0)){break e}g=(c^-1)+h|0;d=h-c&7;if(d){while(1){F[b|0]=I[c|0];b=b+1|0;c=c+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}if(g>>>0<7){break e}while(1){F[b|0]=I[c|0];F[b+1|0]=I[c+1|0];F[b+2|0]=I[c+2|0];F[b+3|0]=I[c+3|0];F[b+4|0]=I[c+4|0];F[b+5|0]=I[c+5|0];F[b+6|0]=I[c+6|0];F[b+7|0]=I[c+7|0];b=b+8|0;c=c+8|0;if((h|0)!=(c|0)){continue}break}}H[e+12>>2]=b}b=H[f+36>>2];H[e+32>>2]=H[f+32>>2];H[e+36>>2]=b;b=H[f+28>>2];H[e+24>>2]=H[f+24>>2];H[e+28>>2]=b;b=H[a+88>>2];H[a+88>>2]=e;if(b){break d}break c}b=H[a+88>>2];H[a+88>>2]=0;if(!b){break c}}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}oa(b)}return}sa();v()}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ca-32|0;ca=f;e=f+8|0;c=ca-80|0;ca=c;a=H[b+36>>2];H[c+72>>2]=H[b+32>>2];H[c+76>>2]=a;d=H[b+28>>2];a=c- -64|0;H[a>>2]=H[b+24>>2];H[a+4>>2]=d;a=H[b+20>>2];H[c+56>>2]=H[b+16>>2];H[c+60>>2]=a;a=H[b+12>>2];H[c+48>>2]=H[b+8>>2];H[c+52>>2]=a;a=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=a;nc(c+8|0,c+40|0,c+24|0);a=H[c+8>>2];a:{if(a){H[e>>2]=a;a=e+4|0;if(F[c+23|0]>=0){b=c+8|4;e=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=e;H[a+8>>2]=H[b+8>>2];break a}za(a,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]>=0){break a}oa(H[c+12>>2]);break a}if(F[c+23|0]<0){oa(H[c+12>>2])}a=I[c+31|0];if(a>>>0>=2){b=pa(32);F[b+26|0]=0;a=I[1477]|I[1478]<<8;F[b+24|0]=a;F[b+25|0]=a>>>8;a=I[1473]|I[1474]<<8|(I[1475]<<16|I[1476]<<24);d=I[1469]|I[1470]<<8|(I[1471]<<16|I[1472]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=a;F[b+21|0]=a>>>8;F[b+22|0]=a>>>16;F[b+23|0]=a>>>24;a=I[1465]|I[1466]<<8|(I[1467]<<16|I[1468]<<24);d=I[1461]|I[1462]<<8|(I[1463]<<16|I[1464]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=a;F[b+13|0]=a>>>8;F[b+14|0]=a>>>16;F[b+15|0]=a>>>24;a=I[1457]|I[1458]<<8|(I[1459]<<16|I[1460]<<24);d=I[1453]|I[1454]<<8|(I[1455]<<16|I[1456]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=a;F[b+5|0]=a>>>8;F[b+6|0]=a>>>16;F[b+7|0]=a>>>24;H[c+8>>2]=-1;a=c+8|4;za(a,b,26);d=F[c+23|0];H[e>>2]=H[c+8>>2];e=e+4|0;if((d|0)>=0){d=H[a+4>>2];H[e>>2]=H[a>>2];H[e+4>>2]=d;H[e+8>>2]=H[a+8>>2];oa(b);break a}za(e,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]<0){oa(H[c+12>>2])}oa(b);break a}H[e>>2]=0;H[e+4>>2]=0;H[e+16>>2]=a;H[e+8>>2]=0;H[e+12>>2]=0}ca=c+80|0;a=H[f+24>>2];if(F[f+23|0]<0){oa(H[f+12>>2])}ca=f+32|0;return a|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;H[k+8>>2]=c;h=H[a+12>>2];d=H[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=H[a+16>>2];d=H[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ra(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{m=H[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ra(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;h=h-4|0;H[h>>2]=f;if((d|0)!=(m|0)){continue}break}H[a+16>>2]=e;e=H[a+12>>2];H[a+12>>2]=g;d=H[a+8>>2];H[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=H[e>>2];H[e>>2]=0;if(f){Ga(f)}if((d|0)!=(e|0)){continue}break}break b}sa();v()}wa();v()}H[a+16>>2]=e;H[a+12>>2]=g;H[a+8>>2]=i}if(d){oa(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=H[h>>2];H[h>>2]=0;if(c){Ga(c)}if((d|0)!=(h|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}j=N(d,12)+a|0;d=H[j+24>>2];if((d|0)!=H[j+28>>2]){H[d>>2]=b;H[j+24>>2]=d+4;break g}i=H[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=pa(e<<2)}else{d=0}f=d+(f<<2)|0;H[f>>2]=b;d=va(d,i,g);H[j+20>>2]=d;H[j+24>>2]=f+4;H[j+28>>2]=d+(e<<2);if(!i){break g}oa(i)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;a=a+(b<<2)|0;b=H[a>>2];H[a>>2]=c;if(b){Ga(b)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Ga(a)}ca=k+16|0;return}sa();v()}wa();v()}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(H[a+12>>2]==(b|0)){break a}a=b;b=H[d+4>>2];e=H[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(F[b-1|0]<0){oa(H[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=a;H[d+4>>2]=e;c=H[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=H[d+4>>2];b:{if((a|0)!=H[d+8>>2]){c:{if(F[c+27|0]>=0){b=H[c+20>>2];H[a>>2]=H[c+16>>2];H[a+4>>2]=b;H[a+8>>2]=H[c+24>>2];break c}za(a,H[c+16>>2],H[c+20>>2])}H[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=H[d+4>>2];e=H[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(H[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=pa(N(b,12))}h=N(b,12);b=N(f,12)+g|0;g:{if(F[c+27|0]>=0){f=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=f;H[b+8>>2]=H[c+24>>2];break g}za(b,H[c+16>>2],H[c+20>>2]);e=H[d>>2];a=H[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=H[a+4>>2];b=b-12|0;H[b>>2]=H[a>>2];H[b+4>>2]=h;H[b+8>>2]=H[a+8>>2];H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}H[d+8>>2]=g;a=H[d+4>>2];H[d+4>>2]=f;e=H[d>>2];H[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(F[a-1|0]<0){oa(H[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}sa();v()}wa();v()}H[d+8>>2]=g;H[d+4>>2]=f;H[d>>2]=b}if(e){oa(e)}}b=H[c+4>>2];h:{if(b){while(1){a=b;b=H[b>>2];if(b){continue}break h}}while(1){a=H[c+8>>2];b=H[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=H[d>>2];if((H[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+N(i,12)|0;a=F[a+11|0]<0?H[a>>2]:a}return a|0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ca-16|0;ca=i;H[i>>2]=b;f=-1;a:{if((b|0)==-1){H[i+4>>2]=-1;break a}f=b+1|0;H[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}H[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=H[(l<<2)+i>>2];if((j|0)!=-1){f=H[H[H[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=H[a+216>>2];if((g|0)==H[a+220>>2]){break e}while(1){g=N(f,144)+g|0;d=H[g+136>>2];c=H[g+140>>2];g:{if(d>>>0>>0){H[d>>2]=j;H[g+136>>2]=d+4;break g}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break g}oa(d)}f=f+1|0;g=H[a+216>>2];if(f>>>0<(H[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0>>0){break e}f=0;if(H[a+220>>2]==H[a+216>>2]){break e}while(1){h:{if(!Ba(H[a+368>>2]+(f<<4)|0)){break h}g=H[a+216>>2]+N(f,144)|0;d=H[g+136>>2];c=H[g+140>>2];if(d>>>0>>0){H[d>>2]=j;H[g+136>>2]=d+4;break h}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break h}oa(d)}f=f+1|0;if(f>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ca=i+16|0;return 1}sa();v()}wa();v()}sa();v()}function cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ca-16|0;ca=h;H[h>>2]=b;c=-1;a:{if((b|0)==-1){H[h+4>>2]=-1;break a}c=b+1|0;H[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}H[h+8>>2]=c;b:{c:{while(1){i=H[(k<<2)+h>>2];d:{if(!((i|0)==-1|H[H[H[a+8>>2]+12>>2]+(i<<2)>>2]==-1)){b=0;if(H[a+220>>2]==H[a+216>>2]){break d}while(1){e:{f:{if(!Ba(H[a+368>>2]+(b<<4)|0)){break f}c=H[a+216>>2]+N(b,144)|0;e=H[c+136>>2];d=H[c+140>>2];if(e>>>0>>0){H[e>>2]=i;H[c+136>>2]=e+4;break f}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break e}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break f}oa(e)}b=b+1|0;if(b>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break d}break}sa();v()}b=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break d}while(1){c=N(b,144)+c|0;e=H[c+136>>2];d=H[c+140>>2];g:{if(e>>>0>>0){H[e>>2]=i;H[c+136>>2]=e+4;break g}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break c}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break g}oa(e)}b=b+1|0;c=H[a+216>>2];if(b>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ca=h+16|0;return 1}sa();v()}wa();v()}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!ic(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!hc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function qc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;f=h;H[c+4>>2]=f;l=H[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=N(j,l);f=(e<<1)-n|0;i=(N(g,j)|0)>=0;e=N(g,l);f=((i?0-f|0:f)+e|0)/2|0;H[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;H[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}H[c>>2]=f;H[c+4>>2]=g;j=0}e=H[d>>2]+f|0;h=H[b+16>>2];k:{if((e|0)>(h|0)){e=e-H[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=H[b+4>>2]+e|0}c=H[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-H[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=H[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=N(f,h);d=d-e|0;f=(N(c,f)|0)>=0;g=f?0-d|0:d;d=N(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;H[b>>2]=e+k;H[b+4>>2]=c+k}function Cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[H[a+48>>2]+64>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[a+48>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];g=H[a+36>>2]-h>>2;a:{if(g>>>0>>0){ya(m,e-g|0);f=H[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}H[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ra(pa(g),0,g);b:{if((f|0)<=0){break b}h=H[a+32>>2];while(1){f=i<<2;g=H[f+n>>2];j=H[a+16>>2];c:{if((g|0)>(j|0)){H[f+h>>2]=j;break c}f=f+h|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break c}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=H[b+g>>2]+H[g+h>>2]|0;H[f>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=H[m>>2];i=0;while(1){f=i<<2;h=H[f+q>>2];k=H[a+16>>2];f:{if((h|0)>(k|0)){H[f+j>>2]=k;break f}f=f+j|0;k=H[a+12>>2];if((k|0)>(h|0)){H[f>>2]=k;break f}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=H[h+l>>2]+H[h+j>>2]|0;H[f>>2]=h;g:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break g}h=h+H[a+20>>2]|0}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}oa(n);return 1}function De(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=H[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=H[a+148>>2];c=-1;e=1;d=((d|0)!=-1?H[H[g>>2]+(d<<2)>>2]:c)<<2;c=H[a+156>>2];d=d+c|0;H[d>>2]=H[d>>2]+1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+1;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+2;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0}H[c>>2]=H[c>>2]+e;e=H[a+184>>2]}h:{switch(e|0){case 0:case 5:f=H[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=H[H[H[a+148>>2]>>2]+(b<<2)>>2]}if(H[f+(c<<2)>>2]<=5){H[a+188>>2]=5;return}H[a+188>>2]=0;return;default:break h}}H[a+188>>2]=-1}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[b+80>>2];b=I[c+24|0];g=N(j,b);a:{if(!b){break a}h=b<<2;f=pa(h);a=f;k=b&7;if(k){while(1){H[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){H[a+24>>2]=-1073741824;H[a+28>>2]=-1073741824;H[a+16>>2]=-1073741824;H[a+20>>2]=-1073741824;H[a+8>>2]=-1073741824;H[a+12>>2]=-1073741824;H[a>>2]=-1073741824;H[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=H[d>>2];a=H[d+4>>2]-e>>2;b:{if(a>>>0>>0){ya(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}H[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!Va(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!Va(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break e}m=H[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;L[g>>2]=L[h+f>>2];L[g+4>>2]=L[(h|4)+f>>2];L[g+8>>2]=L[(h|8)+f>>2];L[g+12>>2]=L[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){L[(e<<2)+m>>2]=L[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}oa(f)}return i|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ca-16|0;ca=e;h=1;i=ea[H[H[a>>2]+24>>2]](a)|0;a:{if((i|0)<=0){break a}l=a+48|0;h=0;while(1){b:{c:{if(!H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=H[j+H[a+36>>2]>>2];b=H[g+8>>2];k=rb(g);if(!k){break c}g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[e+12>>2]=H[b+56>>2];b=pa(32);H[e>>2]=b;H[e+4>>2]=24;H[e+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;b=sd(g,e+12|0,e);if(F[e+11|0]<0){oa(H[e>>2])}if(!b){break c}oe(H[H[H[a+36>>2]+j>>2]+8>>2],k);break b}b=H[H[a+36>>2]+(f<<2)>>2];if(!(ea[H[H[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;h=(i|0)<=(f|0);if((f|0)!=(i|0)){continue}break}}ca=e+16|0;return h|0}function Ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];a:{if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+H[b>>2]|0;h=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((h|0)<0){break a}Wa(a+76|0,h);c=k;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;b:{if(!ta(c,b)){break b}if(h){g=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=H[f>>2]&(d^-1)}else{d=d|H[f>>2]}g=e^1;H[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=H[b+8>>2];e=H[b+12>>2];f=e;e=H[b+20>>2];g=e;l=H[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=H[b>>2];d=m+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(j|0)){break b}H[a+16>>2]=d;H[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break b}H[a+24>>2]=b-1}}ca=k+16|0;return i|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!dc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!dc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!ec(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!ec(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!gc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!gc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!fc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!fc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function Ce(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(H[a+168>>2]){case 0:case 1:e=H[a+148>>2];c=1;b=H[a+156>>2];g=b+(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)|0;H[g>>2]=H[g>>2]+1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+1;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+2;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0}H[b>>2]=H[b>>2]+c}c=a;b=H[H[a+156>>2]+(((f|0)==-1?-1:H[H[H[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=H[a+180>>2];a=H[a+176>>2];H[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;f=H[b+4>>2];g=H[b>>2];e=f-g|0;c=(e|0)/20|0;a:{if((f|0)==(g|0)){break a}b:{if(c>>>0<214748365){f=pa(e);H[a+20>>2]=f;H[a+16>>2]=f;H[a+24>>2]=f+N(c,20);c=H[b>>2];g=H[b+4>>2];if((c|0)==(g|0)){break a}b=f;while(1){e=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=e;H[b+16>>2]=H[c+16>>2];e=H[c+12>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=e;b=b+20|0;c=c+20|0;if((g|0)!=(c|0)){continue}break}g=0;H[a+28>>2]=0;H[a+20>>2]=b;if((b|0)!=(f|0)){b=(b-f|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+N(b,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|1,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|2,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|3,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+N(b,20)|0;e=N(H[e+16>>2],H[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){H[a+12>>2]=0;return a}if((c|0)<0){break b}g=pa(c);b=ra(g,0,c);f=b+c|0;H[a+8>>2]=f;H[a+4>>2]=f;H[a>>2]=b}H[a+12>>2]=g;return a}sa();v()}sa();v()}H[a+28>>2]=0;H[a+12>>2]=0;return a}function Dh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=H[a+32>>2];f=H[b+8>>2];h=H[b+12>>2];g=H[b+20>>2];c=H[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=I[H[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;H[e+16>>2]=c;H[e+20>>2]=b;c:{if(!f){break c}while(1){if(ea[H[H[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=H[a+8>>2];b=H[a+12>>2];if((d|0)!=(b|0)){while(1){c=H[d>>2];if(!(ea[H[H[c>>2]+8>>2]](c,a,H[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=H[H[a+8>>2]+(d<<2)>>2];if(!(ea[H[H[b>>2]+12>>2]](b,H[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=H[j+H[a+8>>2]>>2];k=ea[H[H[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=H[H[a+8>>2]+j>>2];c=ea[H[H[c>>2]+20>>2]](c,d)|0;e=H[a+20>>2];g=H[a+24>>2]-e>>2;e:{if(c>>>0>>0){break e}h=c+1|0;if(h>>>0>g>>>0){ya(i,h-g|0);e=H[i>>2];break e}if(g>>>0<=h>>>0){break e}H[a+24>>2]=(h<<2)+e}H[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!(ea[H[H[a>>2]+28>>2]](a)|0)){break b}e=ea[H[H[a>>2]+32>>2]](a)|0}return e|0}return 0}function ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ca-16|0;ca=i;f=H[b+20>>2];d=H[b+12>>2];c=H[b+16>>2];a:{if((f|0)>=(d|0)&c>>>0>=K[b+8>>2]|(d|0)<(f|0)){break a}F[a+12|0]=I[c+H[b>>2]|0];c=H[b+20>>2];g=c;f=H[b+16>>2];e=f+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;b:{if(J[b+38>>1]<=513){d=H[b+8>>2];c=H[b+12>>2];h=c;c=g;f=f+5|0;c=f>>>0<5?c+1|0:c;if(d>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}e=e+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break b}if(!Qe(1,i+12|0,b)){break a}f=H[b+16>>2];c=H[b+20>>2];d=H[b+8>>2];h=H[b+12>>2];e=H[i+12>>2]}g=d-f|0;d=h-(c+(d>>>0>>0)|0)|0;if((d|0)<=0&e>>>0>g>>>0|(d|0)<0|(e|0)<=0){break a}j=H[b>>2]+f|0;H[a>>2]=j;c:{d:{h=e-1|0;g=h+j|0;d=I[g|0];e:{if(d>>>0<=63){H[a+4>>2]=h;g=I[g|0]&63;break e}f:{switch((d>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(e>>>0<2){break a}d=e-2|0;H[a+4>>2]=d;d=d+j|0;g=I[d+1|0]<<8&16128|I[d|0]}H[a+8>>2]=g+4096;break c}if(e>>>0<3){break a}d=e-3|0;H[a+4>>2]=d;g=a;a=d+j|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];H[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e+f|0;c=a>>>0>>0?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;k=1}ca=i+16|0;return k}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Xd(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{b=c;c=H[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=va(j,c,i);H[a+88>>2]=f;H[a+84>>2]=b;H[a+92>>2]=b+(e<<2);if(c){oa(c)}break b}sa();v()}wa();v()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function qb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=pa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){H[d>>2]=H[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;H[f>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[a+8>>2]=(h<<2)+k;H[a+4>>2]=g;H[a>>2]=f;if(i){oa(i)}return}sa();v()}wa();v()}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){f=H[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){H[d>>2]=H[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){H[f>>2]=H[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=pa(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;g=b&7;if(g){while(1){H[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}sa();v()}function Me(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ca-16|0;ca=h;a:{b:{if(J[b+38>>1]<=511){e=H[b+8>>2];c=H[b+12>>2];i=c;f=H[b+20>>2];d=H[b+16>>2];g=d+8|0;f=g>>>0<8?f+1|0:f;if(e>>>0>>0&(c|0)<=(f|0)|(c|0)<(f|0)){break a}d=d+H[b>>2]|0;c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[b+16>>2]=g;H[b+20>>2]=f;break b}if(!gb(1,h+8|0,b)){break a}g=H[b+16>>2];f=H[b+20>>2];e=H[b+8>>2];i=H[b+12>>2];c=H[h+8>>2];d=H[h+12>>2]}j=e-g|0;e=i-(f+(e>>>0>>0)|0)|0;if((e|0)==(d|0)&c>>>0>j>>>0|d>>>0>e>>>0){break a}e=d+f|0;f=c+g|0;e=f>>>0>>0?e+1|0:e;H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<=0){break a}b=H[b>>2]+g|0;H[a+40>>2]=b;g=c-1|0;e=b+g|0;f=I[e|0];c:{if(f>>>0<=63){H[a+44>>2]=g;b=I[e|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8&16128|I[b|0];break c;case 1:if(c>>>0<3){break a}c=c-3|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break c;default:break d}}c=c-4|0;H[a+44>>2]=c;b=b+c|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[a+48>>2]=b+16384;k=b>>>0<4177920}ca=h+16|0;return k}function Ua(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=H[(H[H[a+8>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2];a:{h=H[H[a+12>>2]+4>>2];e=H[h+4>>2];if((e|0)!=H[h+8>>2]){H[e>>2]=j;H[h+4>>2]=e+4;break a}b:{i=H[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=pa(g<<2)}else{f=0}d=k+f|0;H[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=j;H[h>>2]=d;if(i){oa(i)}break a}sa();v()}wa();v()}c:{d:{h=H[a+4>>2];e=H[h+4>>2];e:{if((e|0)!=H[h+8>>2]){H[e>>2]=c;H[h+4>>2]=e+4;break e}i=H[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=pa(g<<2)}else{f=0}d=f+(j<<2)|0;H[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=c;H[h>>2]=d;if(!i){break e}oa(i)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}sa();v()}wa();v()}function Wb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=H[a+8>>2];i=H[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}k=H[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=pa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=qa(g,c,h)+h|0}d=va(e,k,j);c=i-b|0;b=va(g,b,c);H[a+8>>2]=e+f;H[a+4>>2]=b+c;H[a>>2]=d;if(k){oa(k)}return}sa();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;va(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function qa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function ub(a,b){var c=0,d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;c=1;break a}c=b<<2;e=pa(c);H[a+92>>2]=e;f=c+e|0;H[a+100>>2]=f;ra(e,0,c);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;e=pa(c);H[a+104>>2]=e;f=c+e|0;H[a+112>>2]=f;ra(e,0,c);H[a+108>>2]=f;e=pa(c);H[d>>2]=e;f=c+e|0;H[d+8>>2]=f;ra(e,0,c);H[d+4>>2]=f;c=b<<5|1}tb(g,c,d);e=H[d>>2];if(e){H[d+4>>2]=e;oa(e)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;e=pa(b);H[d>>2]=e;f=b+e|0;H[d+8>>2]=f;ra(e,0,b);H[d+4>>2]=f}tb(a+128|0,c,d);b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}ca=d+16|0;return a}function ze(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=11484;d=a+232|0;b=H[d+196>>2];if(b){H[d+200>>2]=b;oa(b)}c=H[d+184>>2];if(c){b=c;e=H[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;oa(f)}e=b;if((b|0)!=(c|0)){continue}break}b=H[d+184>>2]}H[d+188>>2]=c;oa(b)}b=H[d+156>>2];if(b){H[d+160>>2]=b;oa(b)}c=H[d+136>>2];H[d+136>>2]=0;if(c){e=c-4|0;b=H[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}b=H[a+144>>2];if(b){while(1){c=H[b>>2];oa(b);b=c;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=pa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=va(k,i,j);H[a+4>>2]=e;H[a>>2]=b;H[a+8>>2]=b+(g<<2);if(i){oa(i)}return}sa();v()}wa();v()}function Cc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}if(d>>>0>>0){h=ca-16|0;ca=h;b=b-d|0;if(b){g=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}i=d+b|0;if(g-d>>>0>>0){a:{e=ca-16|0;ca=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(I[a+11|0]>>>7|0){f=H[a>>2]}else{f=a}if(g>>>0<1073741799){H[e+12>>2]=g<<1;H[e>>2]=c+g;c=ca-16|0;ca=c;ca=c+16|0;c=e+12|0;c=H[(K[e>>2]>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(e,c);c=H[e>>2];if(d){yb(c,f,d)}if((g|0)!=10){oa(f)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;ca=e+16|0;break a}Na();v()}}f=d;if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=f+d|0;e=ca-16|0;ca=e;F[e+15|0]=0;while(1){if(b){F[f|0]=I[e+15|0];b=b-1|0;f=f+1|0;continue}break}ca=e+16|0;Id(a,i);F[h+15|0]=0;F[d+i|0]=I[h+15|0]}ca=h+16|0;return}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=ca-16|0;ca=f;Id(a,b);F[f+15|0]=0;F[b+d|0]=I[f+15|0];ca=f+16|0}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;a:{b:{if(b){H[a+88>>2]=0;H[a+92>>2]=0;d=H[a+84>>2];H[a+84>>2]=0;if(d){oa(d)}H[a+76>>2]=0;H[a+80>>2]=0;d=H[a+72>>2];H[a+72>>2]=0;if(d){oa(d)}d=H[b>>2];c=H[b+4>>2];F[g+15|0]=0;Oa(a,c-d>>2,g+15|0);d=H[b+28>>2];c=H[b+24>>2];F[g+14|0]=0;Oa(a+12|0,d-c>>2,g+14|0);Kc(a+28|0,H[b+4>>2]-H[b>>2]>>2,13708);c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+52>>2];c:{if(f>>>0<=H[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=H[a+56>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+60>>2]=f;H[a+56>>2]=h;H[a+52>>2]=c;if(!e){break c}oa(e)}c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+40>>2];d:{if(f>>>0<=H[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=H[a+44>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+48>>2]=f;H[a+44>>2]=h;H[a+40>>2]=c;if(!e){break d}oa(e)}F[a+24|0]=1;H[a+64>>2]=b}ca=g+16|0;return}sa();v()}sa();v()}function wb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ca-16|0;ca=c;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+72>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+92>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+104>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+108>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;e=1;break a}e=b<<2;d=pa(e);H[a+96>>2]=d;f=d+e|0;H[a+104>>2]=f;ra(d,0,e);H[a+116>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[a+100>>2]=f;d=pa(e);H[a+108>>2]=d;f=d+e|0;H[a+116>>2]=f;ra(d,0,e);H[a+112>>2]=f;d=pa(e);H[c>>2]=d;f=d+e|0;H[c+8>>2]=f;ra(d,0,e);H[c+4>>2]=f;e=b<<5|1}tb(g,e,c);d=H[c>>2];if(d){H[c+4>>2]=d;oa(d)}H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if(b){b=b<<2;d=pa(b);H[c>>2]=d;f=b+d|0;H[c+8>>2]=f;ra(d,0,b);H[c+4>>2]=f}tb(a+132|0,e,c);b=H[c>>2];if(b){H[c+4>>2]=b;oa(b)}ca=c+16|0;return a}function Sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Tj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=Q(d)-Q(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}da=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Qj(d)|0;da=0;break a}if(!(c-1&c)){break f}h=(Q(c)+33|0)-Q(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}da=0;a=(b>>>0)/(d>>>0)|0;break a}e=Q(d)-Q(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Qj(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}da=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}da=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}da=b}return a}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;H[c+4>>2]=h;g=H[b+16>>2];f=h>>31;i=(f^h)-f|0;f=e>>31;l=g>>>0>=i+((f^e)-f|0)>>>0;a:{if(l){f=h;break a}b:{c:{if((e|0)>=0){f=1;i=1;if((h|0)>=0){break b}j=1;f=-1;i=-1;if(e){break c}break b}j=-1;f=-1;i=-1;if((h|0)<=0){break b}}f=(h|0)<=0?-1:1;i=j}j=N(g,i);e=(e<<1)-j|0;i=(N(f,i)|0)>=0;g=N(f,g);f=((i?0-e|0:e)+g|0)/2|0;H[c+4>>2]=f;m=c;c=(h<<1)-g|0;e=(j+(i?0-c|0:c)|0)/2|0;H[m>>2]=e;g=H[b+16>>2]}c=H[d+4>>2]+f|0;e=H[d>>2]+e|0;d:{if((g|0)<(e|0)){e=e-H[b+4>>2]|0;break d}if((0-g|0)<=(e|0)){break d}e=H[b+4>>2]+e|0}e:{if((c|0)>(g|0)){c=c-H[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=H[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((e|0)>=0){b=1;f=1;if((c|0)>=0){break g}d=1;b=-1;f=-1;if(e){break h}break g}d=-1;b=-1;f=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;f=d}d=N(f,g);h=(e<<1)-d|0;f=(N(b,f)|0)>=0;b=N(b,g);g=((f?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;e=(d+(f?0-b|0:b)|0)/2|0}c=a;H[c>>2]=e+k;H[c+4>>2]=g+k}function Wh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=c;if(!d){break b}oa(d)}b=H[a+12>>2];c=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=H[d>>2];c=H[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Pa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){c=1;break d}b=0;while(1){c=ye(e,H[(b<<2)+d>>2]);if(!c){break d}f=H[a+116>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=ye(e,N(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ca=g+16|0;return c|0}sa();v()}function gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){e=H[c+8>>2];H[a+4>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);f=a+8|0;d=I[b+24|0];h=H[a+8>>2];g=H[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){ya(f,d-g|0);d=I[b+24|0];e=H[c+8>>2];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=H[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;H[g+f>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+(g|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[f+(g|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[f+(g|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;H[f+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;H[d+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);d=1}return d|0}function se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=H[a+4>>2];b=H[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=H[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ra(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?e:c;e=pa(f);ra(e+d|0,0,g);d=va(e,b,d);H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!b){break c}oa(b);break c}if(c>>>0>=d>>>0){break c}H[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=H[a+4>>2];f=H[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=H[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ra(e,0,d)+d|0,H[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=pa(e);ra(h+g|0,0,d);d=va(h,f,g);H[a+8>>2]=d+e;H[a+4>>2]=c+d;H[a>>2]=d;if(!f){break d}oa(f);break d}if(c>>>0>=g>>>0){break d}H[a+4>>2]=c+f}if(!c){break c}va(H[a>>2],b,c)}b=H[a+28>>2];c=H[a+24>>2]+1|0;b=c?b:b+1|0;H[a+24>>2]=c;H[a+28>>2]=b;g=1;break a}sa();v()}return g}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;n=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0>>0){qb(n,d-e|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[n>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=ca-48|0;ca=e;a=H[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;k=H[H[b>>2]>>2];l=H[b+48>>2];f=H[b+40>>2];i=H[b+44>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Rj(f,i,g,0);i=g;g=g+l|0;qa(h,g+k|0,f);he(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+j>>2]=H[e+12>>2];H[(f|4)+j>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=H[H[b>>2]>>2];i=H[b+48>>2];c=H[b+40>>2];f=Rj(c,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;qa(k,f+l|0,c);he(e+16|0,k,e+12|0,e+8|0);c=d<<2;H[c+j>>2]=H[e+12>>2];H[(c|4)+j>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ca=e+48|0;return m>>>0<29|0}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ca-16|0;ca=k;if(H[c+28>>2]==9){d=H[a+4>>2];h=I[c+24|0];e=h<<2;f=pa(e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}if(h){p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=H[a+8>>2];i=L[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;L[g+f>>2]=O(i*O(H[q>>2]))+L[g+m>>2];g=g|4;L[g+f>>2]=O(i*O(H[q+4>>2]))+L[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;L[d+f>>2]=O(i*O(H[(b<<2)+p>>2]))+L[d+m>>2];b=b+1|0}qa(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){qa(H[H[c+64>>2]>>2]+b|0,f,e);b=b+e|0;qa(b+H[H[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}qa(H[H[c+64>>2]>>2]+b|0,f,e)}oa(f)}ca=k+16|0;return o|0}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+108>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){qb(m,e-f|0,12372);d=H[a+108>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+112>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+68>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){qb(m,e-f|0,12372);d=H[a+68>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+72>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ca-16|0;ca=d;a:{f=H[a+4>>2];b:{if(f>>>0>>0){e=b-f|0;c=H[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){H[a+4>>2]=b;h=f&31;b=H[a>>2]+(f>>>3&536870908)|0;break c}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}pb(d,b);f=H[a+4>>2];H[d+4>>2]=f+e;i=H[a>>2];b=H[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){va(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;H[b>>2]=H[b>>2]&(c^-1)|H[i+g>>2]&c}i=H[a>>2]}H[a>>2]=H[d>>2];H[d>>2]=i;c=H[a+4>>2];H[a+4>>2]=H[d+4>>2];H[d+4>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[d+8>>2];H[d+8>>2]=c;if(!i){break c}oa(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0>>0?c:e;H[b>>2]=H[b>>2]&(-1<>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ra(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;H[a>>2]=H[a>>2]&(-1>>>32-(e&31)^-1);break b}H[a+4>>2]=b}ca=d+16|0;return}sa();v()}function Je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+12>>2];i=H[a+8>>2];d=e-i>>2;b=I[b+24|0];a:{if(d>>>0>>0){ya(a+8|0,b-d|0);i=H[a+8>>2];e=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;H[a+12>>2]=e}b=0;f=H[c+8>>2];h=H[c+12>>2];j=H[c+20>>2];e=e-i|0;d=H[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}qa(i,d+H[c>>2]|0,e);d=H[c+20>>2];g=e;e=e+H[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;f=H[c+8>>2];h=H[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=d;f=d;e=H[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;h=H[c+12>>2];if((f|0)>=(h|0)&d>>>0>=K[c+8>>2]|(f|0)>(h|0)){break b}f=I[d+H[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;if(f-1>>>0>29){break b}H[a+4>>2]=f;b=1}return b|0}function qd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;va(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=pa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}oa(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}wa();v()}function sb(a,b){var c=0;a:{if(!ta(a,b)){break a}if(!ta(a+16|0,b)){break a}if(!ta(a+32|0,b)){break a}if(!ta(a+48|0,b)){break a}if(!ta(a- -64|0,b)){break a}if(!ta(a+80|0,b)){break a}if(!ta(a+96|0,b)){break a}if(!ta(a+112|0,b)){break a}if(!ta(a+128|0,b)){break a}if(!ta(a+144|0,b)){break a}if(!ta(a+160|0,b)){break a}if(!ta(a+176|0,b)){break a}if(!ta(a+192|0,b)){break a}if(!ta(a+208|0,b)){break a}if(!ta(a+224|0,b)){break a}if(!ta(a+240|0,b)){break a}if(!ta(a+256|0,b)){break a}if(!ta(a+272|0,b)){break a}if(!ta(a+288|0,b)){break a}if(!ta(a+304|0,b)){break a}if(!ta(a+320|0,b)){break a}if(!ta(a+336|0,b)){break a}if(!ta(a+352|0,b)){break a}if(!ta(a+368|0,b)){break a}if(!ta(a+384|0,b)){break a}if(!ta(a+400|0,b)){break a}if(!ta(a+416|0,b)){break a}if(!ta(a+432|0,b)){break a}if(!ta(a+448|0,b)){break a}if(!ta(a+464|0,b)){break a}if(!ta(a+480|0,b)){break a}if(!ta(a+496|0,b)){break a}c=ta(a+512|0,b)}return c}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!ke(a,b)){break a}h=a+36|0;g=ea[H[H[a>>2]+24>>2]](a)|0;e=H[a+40>>2];d=H[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Vb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){ea[H[H[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}H[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break c}f=I[H[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;d=ea[H[H[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+H[a+36>>2]|0;c=H[i>>2];H[i>>2]=d;if(c){ea[H[H[c>>2]+4>>2]](c)}c=H[H[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=ea[H[H[a>>2]+28>>2]](a)|0,m=ea[H[H[a>>2]+20>>2]](a,e)|0,j=H[H[c>>2]+8>>2],ea[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function he(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function Ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;k=H[b+16>>2];d=k+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}l=H[b>>2];f=k+l|0;e=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;c=i;f=k+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}d=d+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((e|0)>(j|0)){break a}H[a+16>>2]=j;H[a+12>>2]=e;d=j-e|0;e=(j>>31)-((e>>31)+(e>>>0>j>>>0)|0)|0;if(!e&d>>>0>2147483646|e){break a}d=d+1|0;H[a+20>>2]=d;e=d>>>1|0;H[a+24>>2]=e;H[a+28>>2]=0-e;if(!(d&1)){H[a+24>>2]=e-1}if(J[b+38>>1]<=513){if((c|0)>=(h|0)&f>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[f+l|0];c=i;i=k+9|0;c=i>>>0<9?c+1|0:c;H[b+16>>2]=i;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+88>>2]=g}m=ta(a+112|0,b)}return m|0}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=H[a>>2];c=g+(b>>>3&536870908)|0;H[c>>2]=H[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=H[H[f>>2]+(c<<2)>>2]}c=H[a+12>>2];h=(d>>>3&536870908)+c|0;H[h>>2]=H[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=H[H[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;H[e>>2]=H[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}F[a+24|0]=0;a=(b>>>3&536870908)+g|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=H[H[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=H[H[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=H[a>>2];break c}a=c+536870908|0;b=H[c+536870908>>2];c=-2147483648}H[a>>2]=b|c}}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-2>>>0>28){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(w(l),y(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(w(g),y(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=H[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=H[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;b=K[d+(b<<2)>>2]>K[d+(i<<2)>>2]?i:b;b=K[d+(b<<2)>>2]>K[d+(h<<2)>>2]?h:b;b=K[d+(b<<2)>>2]>K[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=H[a+580>>2];d=32-b|0;if((d|0)>=4){c=H[a+576>>2];if((c|0)==H[a+568>>2]){return 0}d=H[c>>2];e=b+4|0;H[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}H[a+580>>2]=0;H[a+576>>2]=c+4;return b}c=H[a+576>>2];e=c+4|0;if((e|0)==H[a+568>>2]){return 0}f=H[c>>2];H[a+576>>2]=e;H[a+580>>2]=b-28;a=60-b|0;b=H[c+4>>2]>>>a|f<>>a-d}return b}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11436;b=H[a+388>>2];if(b){H[a+392>>2]=b;oa(b)}d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ca-32|0;ca=a;e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[a+24>>2]=g|-2147483648;H[a+16>>2]=f;H[a+20>>2]=e;g=e+f|0;break c}F[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}qa(f,c,e)}F[g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d:{c=nb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=H[c+28>>2];e=H[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=H[a+4>>2];b=H[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ya(a,e-g|0);b=H[a>>2];f=H[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;H[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=H[c+28>>2];qa(e,b,H[c+32>>2]-b|0);break d}Ca();v()}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=H[a>>2];H[d+4>>2]=H[a+4>>2];H[d+8>>2]=H[a+8>>2];if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}}function Be(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11384;d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Ug(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;c=I[d+11|0];e=c<<24>>24;b=H[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?H[d+4>>2]:a;f=c?H[d>>2]:d;while(1){c=I[b+27|0];g=c<<24>>24<0;c=g?H[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?H[b+16>>2]:b+16|0;j=Fa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=Fa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=H[b>>2];if(b){continue}break}a=0}if((e|0)<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function fd(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0>>0){if(d){oa(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}va(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0>>0){if(d){oa(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}va(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}sa();v()}sa();v()}function uc(a){var b=0,c=0,d=0;b=H[a+8>>2];d=H[a>>2];a:{if(I[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=H[H[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}H[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;H[a+8>>2]=b;if((b|0)!=-1){break b}}c=H[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=H[H[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}F[a+12|0]=0;H[a+8>>2]=b;return}if((b|0)!=H[a+4>>2]){break a}H[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=H[H[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}H[a+8>>2]=c}}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ca-32|0;ca=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=Z(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[3992]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=Z(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[3992]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}ca=f+32|0;return a|0}function Ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+56>>2]-H[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=we(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=we(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function Oh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=xe(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=xe(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;e=H[b+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}j=H[b>>2];f=e+j|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;k=J[b+38>>1];if(k>>>0<=513){c=i;d=e+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(f&1)){break a}e=Q(f)^31;if(e-1>>>0>28){break a}H[a+8>>2]=e+1;i=-2<>2]=e;H[a+12>>2]=i^-1;H[a+24>>2]=e>>1;L[a+20>>2]=O(2)/O(e|0);if(k>>>0<=513){if((c|0)>=(h|0)&d>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[d+j|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+72>>2]=g}l=ta(a+96|0,b)}return l|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+8>>2];g=H[b+12>>2];c=H[b+20>>2];h=c;i=H[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;a:{if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}j=H[b>>2];d=i+j|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=h;e=i+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=e;H[b+20>>2]=c;if(!(d&1)){break a}d=Q(d)^31;if(d-1>>>0>28){break a}H[a+8>>2]=d+1;k=-2<>2]=d;H[a+12>>2]=k^-1;H[a+24>>2]=d>>1;L[a+20>>2]=O(2)/O(d|0);if(J[b+38>>1]<=513){if((c|0)>=(g|0)&e>>>0>=f>>>0|(c|0)>(g|0)){break a}c=I[e+j|0];f=i+9|0;h=f>>>0<9?h+1|0:h;H[b+16>>2]=f;H[b+20>>2]=h;if(c>>>0>1){break a}H[a+72>>2]=c}l=ta(a+96|0,b)}return l|0} +function va(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return qa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=H[c+12>>2];f=h;e=H[c+20>>2];i=H[c+8>>2];g=H[c+16>>2];a:{if((f|0)<=(e|0)&i>>>0<=g>>>0|(e|0)>(f|0)){break a}j=H[c>>2];k=F[j+g|0];d=e;f=g+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=i>>>0|(d|0)>(h|0)){break a}d=F[f+j|0];g=g+2|0;e=g>>>0<2?e+1|0:e;H[c+16>>2]=g;H[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ea[H[H[a>>2]+40>>2]](a,k,d)|0;d=H[a+20>>2];H[a+20>>2]=e;if(!d){break b}ea[H[H[d>>2]+4>>2]](d)}d=H[a+20>>2];if(d){if(!(ea[H[H[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ea[H[H[a>>2]+36>>2]](a,b,c)|0)){break a}c=H[a+4>>2];if(!(!c|I[c+36|0]>1)){if(!(ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0)){break a}}l=1}return l|0}function Vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=H[a+8>>2];c=H[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{b:{c:{g=H[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=pa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ra(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=b;if((c|0)!=(g|0)){continue}break}H[a+8>>2]=e;b=H[a+4>>2];H[a+4>>2]=f;c=H[a>>2];H[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}sa();v()}wa();v()}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b}if(c){oa(c)}}function Md(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:v();default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function Ed(a,b){var c=0,d=0,e=0;c=ca+-64|0;ca=c;d=H[a>>2];e=H[d-4>>2];d=H[d-8>>2];H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;F[c+55|0]=0;F[c+56|0]=0;F[c+57|0]=0;F[c+58|0]=0;F[c+59|0]=0;F[c+60|0]=0;F[c+61|0]=0;F[c+62|0]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+20>>2]=0;H[c+16>>2]=14924;H[c+12>>2]=a;H[c+8>>2]=b;a=a+d|0;d=0;a:{if(Ya(e,b,0)){H[c+56>>2]=1;ea[H[H[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=H[c+32>>2]==1?a:0;break a}ea[H[H[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(H[c+44>>2]){case 0:d=H[c+48>>2]==1?H[c+36>>2]==1?H[c+40>>2]==1?H[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[c+32>>2]!=1){if(H[c+48>>2]|H[c+36>>2]!=1|H[c+40>>2]!=1){break a}}d=H[c+24>>2]}ca=c- -64|0;return d}function ua(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;e=H[a>>2];H[a+4>>2]=e;H[a+12>>2]=e;e=H[b+8>>2];c=H[b+12>>2];h=c;d=H[b+20>>2];f=H[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(e>>>0>>0&(d|0)>=(c|0)|(d|0)>(c|0)){break a}c=f+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=d;if(!c|c&3){break a}f=h-(d+(e>>>0>>0)|0)|0;if(e-g>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){ya(a,c>>>2|0);h=H[b+12>>2];g=H[b+16>>2];d=H[b+20>>2];e=H[b+8>>2]}f=c+g|0;d=f>>>0>>0?d+1|0:d;if(e>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}qa(H[a>>2],H[b>>2]+g|0,c);d=H[b+20>>2];e=c+H[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;H[a+16>>2]=0;H[a+12>>2]=H[a>>2];i=1}return i}function de(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=H[H[H[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(b-N(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=H[H[a>>2]+96>>2];a=(b>>>0)/3|0;f=H[(c+N(a,12)|0)+(b-N(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=pa(72);H[c+4>>2]=0;H[c+8>>2]=0;H[c>>2]=1984;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c>>2]=2128;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=H[a+12>>2];e=H[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Vb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[g>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=h;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}F[a|0]=b;d=a+c|0;F[d-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[d-3|0]=b;F[d-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=N(b&255,16843009);H[e>>2]=b;d=c-d&-4;c=d+e|0;H[c-4>>2]=b;if(d>>>0<9){break a}H[e+8>>2]=b;H[e+4>>2]=b;H[c-8>>2]=b;H[c-12>>2]=b;if(d>>>0<25){break a}H[e+24>>2]=b;H[e+20>>2]=b;H[e+16>>2]=b;H[e+12>>2]=b;H[c-16>>2]=b;H[c-20>>2]=b;H[c-24>>2]=b;H[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Rj(b,0,1,1);f=da;b=e+g|0;while(1){H[b+24>>2]=d;H[b+28>>2]=f;H[b+16>>2]=d;H[b+20>>2]=f;H[b+8>>2]=d;H[b+12>>2]=f;H[b>>2]=d;H[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];k=e;h=H[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=H[b>>2];c=j+h|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;if((c|0)<(f|0)){break a}H[a+16>>2]=c;H[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;H[a+20>>2]=d;b=d>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(d&1){break a}H[a+24>>2]=b-1}return l|0}function sd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=H[e>>2];a:{if(!d){break a}f=H[b>>2];b=e;while(1){g=(f|0)>H[d+16>>2];b=g?b:d;d=H[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=H[b+24>>2];if(!d){break a}f=b+20|0;b=I[c+11|0];e=b<<24>>24<0;g=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[d+27|0];h=e<<24>>24<0;e=h?H[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?H[d+16>>2]:d+16|0;k=Fa(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Fa(h,g,i);if(e){break d}}if(j){break c}return Tc(f,c)}if((e|0)<0){break c}return Tc(f,c)}d=d+4|0}d=H[d>>2];if(d){continue}break}}return Tc(a,c)}function be(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ca-16|0;ca=d;f=H[a+24>>2];k=H[a+28>>2];a:{if((f|0)!=(k|0)){while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;a=$d(H[f>>2],b,d);g=I[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=I[c+11|0];e=a<<24>>24;j=(h|0)<0?H[d+4>>2]:g;if((j|0)!=(((e|0)<0?H[c+4>>2]:a)|0)){break d}a=(e|0)<0?H[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(I[e|0]!=I[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Fa(e?H[d>>2]:d,a,j)){break c}}l=H[f>>2];i=1}if((h|0)>=0){break b}}oa(H[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ca=d+16|0;return l}function Cb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=H[a+8>>2];e=H[a>>2];if(h>>>0<=d-e>>2>>>0){d=H[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){H[d>>2]=H[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Oa(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;H[a+4>>2]=0;a:{b:{if(!b){break b}f=H[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){H[a+4>>2]=b;break c}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}pb(e,d);f=H[a>>2];H[a>>2]=H[e>>2];H[e>>2]=f;d=H[a+4>>2];H[a+4>>2]=b;H[e+4>>2]=d;d=H[a+8>>2];H[a+8>>2]=H[e+8>>2];H[e+8>>2]=d;if(!f){break c}oa(f)}d=b>>>5|0;a=H[a>>2];if(I[c|0]){if(b>>>0>=32){ra(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ra(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}ca=e+16|0;return}sa();v()}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca-32|0;ca=e;a:{b:{f=Ma(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=pa(a);H[e+24>>2]=a|-2147483648;H[e+16>>2]=g;H[e+20>>2]=f;a=f+g|0;break d}F[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}qa(g,c,f)}F[a|0]=0;c=Ma(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=pa(f);H[e+8>>2]=f|-2147483648;H[e>>2]=a;H[e+4>>2]=c;g=a+c|0;break f}F[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}qa(a,d,c)}F[g|0]=0;c=H[b+4>>2];a=-1;g:{if(!c){break g}c=be(c,e+16|0,e);a=-1;if(!c){break g}a=Yd(b,H[c+24>>2])}if(F[e+11|0]<0){oa(H[e>>2])}if(F[e+27|0]<0){oa(H[e+16>>2])}ca=e+32|0;break a}Na();v()}Na();v()}return a|0}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[b>>2];h=H[b+8>>2];i=H[b+4>>2];j=H[b>>2];d=H[a>>2];b=H[d+4>>2];a=H[d+8>>2];if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=i;H[b>>2]=j;H[d+4>>2]=b+12;return}a:{e=H[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=pa(N(c,12))}else{f=0}a=f+N(g,12)|0;H[a+8>>2]=h;H[a+4>>2]=i;H[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2];if((b|0)!=(e|0)){continue}break}}H[d+8>>2]=f+N(c,12);H[d+4>>2]=g;H[d>>2]=a;if(e){oa(e)}return}sa();v()}wa();v()}function lf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=pa(20);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;return a|0;case 1:a=pa(24);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;return a|0;case 2:a=pa(48);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1832;H[a>>2]=11048;H[a+32>>2]=0;H[a+36>>2]=0;H[a+28>>2]=-1;H[a+40>>2]=0;H[a+44>>2]=0;return a|0;case 3:a=pa(32);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1032;H[a>>2]=7028;H[a+28>>2]=-1;break;default:break a}}return a|0}function tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=H[b>>2];b=H[b+4>>2];d=H[H[a+8>>2]+40>>2];j=d;m=pa((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=H[c+16>>2];k=d;f=g+d|0;d=0+H[c+20>>2]|0;d=f>>>0>>0?d+1|0:d;h=H[c+12>>2];e=0;if(K[c+8>>2]>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=qa(m,H[c>>2]+g|0,j);H[c+16>>2]=f;H[c+20>>2]=d;qa(H[H[H[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+H[c+20>>2]|0;g=H[c+16>>2];f=k+g|0;d=f>>>0>>0?d+1|0:d;h=H[c+12>>2];if((d|0)<=(h|0)&K[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}oa(m);return e|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){kc(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){kc(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Aa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){va(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;H[c+8>>2]=H[b+8>>2];H[a+4>>2]=c+12;return}a:{g=H[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=pa(N(f,12))}else{e=0}d=e+N(d,12)|0;h=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=h;H[d+8>>2]=H[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=H[c+4>>2];d=d-12|0;H[d>>2]=H[c>>2];H[d+4>>2]=h;H[d+8>>2]=H[c+8>>2];if((c|0)!=(g|0)){continue}break}c=H[a>>2]}H[a+8>>2]=e+N(f,12);H[a+4>>2]=b;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Qi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;g=e>>>0>1073741823?-1:e<<2;l=ra(pa(g),0,g);g=l;i=H[g>>2];g=H[g+4>>2];k=H[b+4>>2];H[f+24>>2]=H[b>>2];H[f+28>>2]=k;H[f+8>>2]=i;H[f+12>>2]=g;i=a+8|0;rc(f+16|0,i,f+8|0,f+24|0);H[c>>2]=H[f+16>>2];H[c+4>>2]=H[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=H[j>>2];j=H[j+4>>2];h=b+h|0;n=H[h+4>>2];H[f+24>>2]=H[h>>2];H[f+28>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;rc(f+16|0,i,f+8|0,f+24|0);H[g>>2]=H[f+16>>2];H[g+4>>2]=H[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(l);ca=f+32|0;return 1}function Hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;h=e>>>0>1073741823?-1:e<<2;h=ra(pa(h),0,h);g=H[b>>2];i=H[b+4>>2];k=H[h+4>>2];H[f+16>>2]=H[h>>2];H[f+20>>2]=k;H[f+8>>2]=g;H[f+12>>2]=i;i=a+8|0;qc(f+24|0,i,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=H[j>>2];j=H[j+4>>2];g=c+g|0;l=g+k|0;n=H[l+4>>2];H[f+16>>2]=H[l>>2];H[f+20>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;qc(f+24|0,i,f+16|0,f+8|0);H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(h);ca=f+32|0;return 1}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[b+80>>2]>65535){break a}a=H[b+100>>2];b=H[b+96>>2];e=(a-b|0)/12|0;f=N(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=N(a,6);h=f+d|0;e=b+N(a,12)|0;G[h>>1]=H[e>>2];G[(f|2)+d>>1]=H[e+4>>2];G[h+4>>1]=H[e+8>>2];f=a|1;e=N(f,6)+d|0;f=b+N(f,12)|0;G[e>>1]=H[f>>2];G[e+2>>1]=H[f+4>>2];G[e+4>>1]=H[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=N(a,6)+d|0;a=b+N(a,12)|0;G[c>>1]=H[a>>2];G[c+2>>1]=H[a+4>>2];G[c+4>>1]=H[a+8>>2]}return g|0}function Gd(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=ca-16|0;ca=h;if((b^-1)+2147483631>>>0>=c>>>0){if(I[a+11|0]>>>7|0){i=H[a>>2]}else{i=a}if(b>>>0<1073741799){H[h+12>>2]=b<<1;H[h>>2]=b+c;c=ca-16|0;ca=c;ca=c+16|0;c=h+12|0;c=H[(K[h>>2]>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(h,c);c=H[h>>2];if(f){yb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){yb(c+f|0,e+i|0,g)}if((b|0)!=10){oa(i)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[h+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;b=a;a=f+g|0;H[b+4>>2]=a;F[h+12|0]=0;F[a+c|0]=I[h+12|0];ca=h+16|0;return}Na();v()}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ca-32|0;ca=a;H[a+24>>2]=0;H[a+28>>2]=0;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+16>>2]=e|-2147483648;H[a+8>>2]=f;H[a+12>>2]=d;e=d+f|0;break c}F[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;c=b+4|0;b=nb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=H[b+32>>2];b=H[b+28>>2];if((c-b|0)!=8){break d}c=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[a+24>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[a+28>>2]=c}g=M[a+24>>3];if(F[a+19|0]<0){oa(H[a+8>>2])}ca=a+32|0;break a}Na();v()}return+g}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ea[H[H[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Zd(H[H[a+4>>2]+4>>2],ea[H[H[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=H[a+4>>2];b:{if(I[e+36|0]<=1){if(ea[H[H[b>>2]+28>>2]](b,H[H[H[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=H[e+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(c|0)){break c}d=H[H[e+8>>2]+(H[H[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ea[H[H[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ea[H[H[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ea[H[H[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=N(b,12);d=pa(b);H[a+4>>2]=d;H[a>>2]=d;e=b+d|0;H[a+8>>2]=e;f=H[c+4>>2];g=H[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;ra(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;b=pa(h);H[d>>2]=b;H[d+8>>2]=b+i;c=g;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}H[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e}return}sa();v()}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;sa();v()}function Vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;if(J[b+38>>1]<=513){f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function Lc(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=N(b,3);Kc(a,b,13648);Kc(a+12|0,b,13652);d=H[a+24>>2];c:{if(H[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=H[a+28>>2];e=c<<2;c=pa(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+32>>2]=e;H[a+28>>2]=g;H[a+24>>2]=c;if(!d){break c}oa(d)}H[a+80>>2]=0;H[a+84>>2]=0;b=H[a+76>>2];H[a+76>>2]=0;if(b){oa(b)}H[a+68>>2]=0;H[a+72>>2]=0;b=a- -64|0;a=H[b>>2];H[b>>2]=0;if(!a){break b}oa(a)}return f}sa();v()}function Fe(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=H[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=pa(c>>>0>268435455?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;F[b+5|0]=0;F[b+6|0]=0;F[b+7|0]=0;F[b+8|0]=0;F[b+9|0]=0;F[b+10|0]=0;F[b+11|0]=0;F[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=H[a+136>>2];H[a+136>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}oa(c)}b=0;if(H[a+140>>2]<=0){break a}while(1){f=ta(H[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(H[a+64>>2]){break a}c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d)}d=H[a+64>>2];c=H[a+28>>2]-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}c=N(c,I[a+24|0]);f=c>>31;g=se(d,0,Rj(c,f,b,0),da);if(g){d=H[a+64>>2];H[a>>2]=d;e=H[d+20>>2];H[a+8>>2]=H[d+16>>2];H[a+12>>2]=e;e=H[d+24>>2];d=H[d+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=c;H[a+44>>2]=f;H[a+16>>2]=e;H[a+20>>2]=d;H[a+80>>2]=b}return g}function jc(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=H[b+100>>2];b=H[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=N(a,12);i=e+d|0;f=b+e|0;H[i>>2]=H[f>>2];H[(e|4)+d>>2]=H[f+4>>2];H[i+8>>2]=H[f+8>>2];f=N(a|1,12);e=f+d|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=N(a,12);a=e+d|0;b=b+d|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}return(c|0)==(h|0)|0}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c;if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;g=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=f;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Fa(c?H[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Fa(g,a?H[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(Ya(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];ea[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Db(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(J[a+38>>1]<=513){f=H[a+12>>2];d=H[a+20>>2];b=H[a+16>>2];g=b+8|0;d=g>>>0<8?d+1|0:d;e=0;if(K[a+8>>2]>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}b=b+H[a>>2]|0;d=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[c>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[c+4>>2]=d;b=H[a+20>>2];c=H[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;H[a+16>>2]=c;H[a+20>>2]=b;break b}e=0;if(!re(1,c,a)){break a}}F[a+36|0]=1;H[a+32>>2]=0;b=H[a+16>>2];c=b+H[a>>2]|0;H[a+24>>2]=c;H[a+28>>2]=(H[a+8>>2]-b|0)+c;e=1}return e}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=pa(64);c=pa(12);H[c+8>>2]=H[H[a+4>>2]+80>>2];H[c>>2]=13216;H[c+4>>2]=0;f=od(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=H[a+12>>2];e=H[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Vb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[h>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=f;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Qd(a,b){var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=b;c=ca-208|0;ca=c;H[c+204>>2]=b;b=c+160|0;ra(b,0,40);H[c+200>>2]=H[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=H[3941]>=0;b=H[3922];if(H[3940]<=0){H[3922]=b&-33}b:{c:{d:{if(!H[3934]){H[3934]=80;H[3929]=0;H[3926]=0;H[3927]=0;e=H[3933];H[3933]=c;break d}if(H[3926]){break c}}if(Sd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ea[H[3931]](15688,0,0)|0;H[3934]=0;H[3933]=e;H[3929]=0;H[3926]=0;H[3927]=0}H[3922]=H[3922]|b&32;if(!f){break a}}ca=c+208|0;ca=d+16|0}function pf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=H[a+60>>2];a:{if(!c){break a}H[c+4>>2]=a+48;if(!(ea[H[H[c>>2]+12>>2]](c)|0)){break a}b:{c=ea[H[H[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2];g=ea[H[H[a>>2]+20>>2]](a,d)|0;e=H[a+60>>2];if(!(ea[H[H[e>>2]+8>>2]](e,H[H[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}d=ea[H[H[a>>2]+44>>2]](a)|0}return d|0}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=H[a+216>>2]+N(e,144)|0;return(I[a+100|0]?a+4|0:0)|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function xb(a){var b=0,c=0,d=0,e=0;c=H[a+132>>2];if(c){d=c;b=H[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+132>>2]}H[a+136>>2]=c;oa(d)}c=H[a+120>>2];if(c){d=c;b=H[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+120>>2]}H[a+124>>2]=c;oa(d)}b=H[a+108>>2];if(b){H[a+112>>2]=b;oa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}Za(a+76|0);Za(a+56|0);Za(a+36|0);Za(a+16|0)}function rd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2128;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ga(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ea[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];d=H[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ra(d,0,b)+b|0}H[a+4>>2]=d;return}a:{f=H[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ra(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(f|0)){continue}break}}H[a+8>>2]=(e<<2)+i;H[a+4>>2]=b;H[a>>2]=c;if(f){oa(f)}return}sa();v()}wa();v()}function rb(a){var b=0,c=0,d=0,e=0,f=0;d=H[a+8>>2];a:{if(I[d+84|0]){break a}b=H[a+16>>2];if(!b|!I[b+84|0]){break a}c=H[d+72>>2];e=H[d+68>>2];F[b+84|0]=0;c=c-e>>2;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){qb(b+68|0,c-e|0,2316);d=H[a+8>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}if(I[d+84|0]){break a}c=H[d+68>>2];if((c|0)==H[d+72>>2]){break a}e=H[H[a+16>>2]+68>>2];b=0;while(1){f=b<<2;H[f+e>>2]=H[c+f>>2];b=b+1|0;c=H[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return H[a+16>>2]}function Lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Pe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Oe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ca-32|0;ca=a;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+24>>2]=e|-2147483648;H[a+16>>2]=f;H[a+20>>2]=d;e=d+f|0;break c}F[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;F[a+4|0]=0;H[a>>2]=1701667182;F[a+11|0]=4;d=H[b+4>>2];c=-1;d:{if(!d){break d}d=be(d,a,a+16|0);c=-1;if(!d){break d}c=Yd(b,H[d+24>>2])}b=c;if(F[a+11|0]<0){oa(H[a>>2])}if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}return b|0}function hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(H[a+216>>2]+N(e,144)|0)+104|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function ab(a){var b=0,c=0,d=0,e=0;c=H[a+640>>2];if(c){d=c;b=H[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+640>>2]}H[a+644>>2]=c;oa(d)}c=H[a+628>>2];if(c){d=c;b=H[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+628>>2]}H[a+632>>2]=c;oa(d)}b=H[a+616>>2];if(b){H[a+620>>2]=b;oa(b)}b=H[a+604>>2];if(b){H[a+608>>2]=b;oa(b)}Za(a+584|0);Za(a+564|0);Za(a+544|0)}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=0;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;a=nb(b,d);d:{if((a|0)==(b+4|0)){break d}b=H[a+32>>2];a=H[a+28>>2];if((b-a|0)!=4){break d}H[d+12>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}a=H[d+12>>2];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function vb(a){var b=0,c=0,d=0,e=0;c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;oa(d)}c=H[a+116>>2];if(c){d=c;b=H[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+116>>2]}H[a+120>>2]=c;oa(d)}b=H[a+104>>2];if(b){H[a+108>>2]=b;oa(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;oa(b)}Za(a+72|0);Za(a+52|0);Za(a+32|0)}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=H[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ra(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=pa(c);ra(f+d|0,0,g);d=va(f,e,d);H[a+8>>2]=d+c;H[a+4>>2]=b+d;H[a>>2]=d;if(!e){break b}oa(e);break b}if(b>>>0>=d>>>0){break b}H[a+4>>2]=b+e}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;e=b?c:d;H[a+24>>2]=b;H[a+28>>2]=e;return}sa();v()}function Ka(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+4>>2];if((e|0)!=H[a+8>>2]){H[e>>2]=H[b>>2];H[a+4>>2]=e+4;return}a:{g=H[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=pa(c<<2)}else{f=0}d=h+f|0;H[d>>2]=H[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(g|0)){continue}break}}H[a+8>>2]=f+(c<<2);H[a+4>>2]=b;H[a>>2]=d;if(g){oa(g)}return}sa();v()}wa();v()}function Ia(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4292]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[3992]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function Hb(a,b){var c=0,d=0,e=0,f=0;d=H[a+12>>2];c=H[a+16>>2]-d>>2;a:{if(c>>>0>>0){ya(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}H[a+16>>2]=d+(b<<2)}b:{c=H[a>>2];c:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=H[a+4>>2];e=b<<2;b=pa(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;H[b>>2]=H[d>>2];if((c|0)!=(d|0)){continue}break}}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break c}oa(c)}return}sa();v()}function _b(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13724;b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;oa(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ga(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;oa(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Uc(b)}return a|0}function yb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ca-16|0;ca=f;d=ca-32|0;ca=d;e=ca-16|0;ca=e;H[e+12>>2]=b;H[e+8>>2]=b+c;H[d+24>>2]=H[e+12>>2];H[d+28>>2]=H[e+8>>2];ca=e+16|0;c=ca-16|0;ca=c;h=H[d+28>>2];e=H[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){va(a,e,g)}H[c+12>>2]=e+g;H[c+8>>2]=a+g;H[d+16>>2]=H[c+12>>2];H[d+20>>2]=H[c+8>>2];ca=c+16|0;H[d+12>>2]=(H[d+16>>2]-b|0)+b;H[d+8>>2]=(H[d+20>>2]-a|0)+a;H[f+8>>2]=H[d+12>>2];H[f+12>>2]=H[d+8>>2];ca=d+32|0;ca=f+16|0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=pa(d<<2)}b=b<<2;e=ra((h<<2)+i|0,0,b);f=d<<2;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Tc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=nb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=F[a+39|0]<0?H[b>>2]:b;while(1){a=b;b=a+1|0;c=F[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=F[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=F[b|0];a=b}if(c-48>>>0<10){while(1){d=(N(d,10)-F[a|0]|0)+48|0;b=F[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=H[a>>2];c=H[a+4>>2];e=H[a+8>>2];if(c>>>0>>0){H[c>>2]=H[b>>2];H[a+4>>2]=c+4;return}a:{d=c;c=H[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=pa(f<<2)}else{e=0}d=h+e|0;H[d>>2]=H[b>>2];b=va(e,c,g);H[a+8>>2]=b+(f<<2);H[a+4>>2]=d+4;H[a>>2]=b;if(c){oa(c)}return}sa();v()}wa();v()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=pa(d<<3)}b=b<<3;e=ra((h<<3)+i|0,0,b);f=d<<3;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function kf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function jf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}oa(a)}function xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],d+15|0,d+16|0)}ca=d+16|0;return(e|0)!=-1|0}function Eh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0>>0){ue(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ca();v()}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}h=pa(d<<1)}b=b<<1;e=ra((f<<1)+h|0,0,b);f=d<<1;d=va(h,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Pe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Oe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function za(a,b,c){var d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;a:{b:{if(c>>>0<11){d=a;F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Zb(g,d+1|0);d=H[e+8>>2];H[a>>2]=d;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;H[a+4>>2]=c}yb(d,b,c+1|0);ca=e+16|0;return}Na();v()}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[d+8>>2]=g|-2147483648;H[d>>2]=f;H[d+4>>2]=e;g=e+f|0;break c}F[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}qa(f,c,e)}F[g|0]=0;f=a+16|0;c=$d(b,d,f);b=H[a+16>>2];a=F[a+27|0];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;a=c?(a|0)<0?b:f:0;break a}Na();v()}return a|0}function Mc(a,b){var c=0,d=0,e=0;c=H[a+4>>2];d=c+b|0;H[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){H[H[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=H[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;H[a>>2]=H[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ra(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}}function Fc(a,b,c){var d=0,e=0,f=0;d=H[c+16>>2];a:{if(!d){if(Sd(c)){break a}d=H[c+16>>2]}f=H[c+20>>2];if(d-f>>>0>>0){return ea[H[c+36>>2]](c,a,b)|0}b:{if(H[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(I[e+a|0]!=10){continue}break}e=ea[H[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=H[c+20>>2]}qa(f,a,b);H[c+20>>2]=H[c+20>>2]+b;e=b+d|0}return e}function ad(a){var b=0,c=0,d=0,e=0;if(I[a+76|0]){F[a+76|0]=0;e=H[a+60>>2];c=H[a+72>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+56>>2]|0;b=(b>>>3|0)+e|0;H[a+56>>2]=c;H[a+60>>2]=c>>>0>>0?b+1|0:b}if(J[a+38>>1]<=513){F[a+132|0]=0;e=H[a+116>>2];b=0;c=H[a+128>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+112>>2]|0;b=(b>>>3|0)+e|0;H[a+112>>2]=c;H[a+116>>2]=c>>>0>>0?b+1|0:b}}function re(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!re(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function gb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!gb(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca+-64|0;ca=e;d=ea[H[H[a>>2]+44>>2]](a,b)|0;a=ea[H[H[a>>2]+40>>2]](a,b)|0;f=Eb(e);g=H[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+13584>>2]}else{a=-1}d=N(a,d);lc(f,g,h,i,0,d,d>>31);a=jc(pa(96),f);mb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];ca=e- -64|0;return a|0}function If(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!Ya(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+32>>2];b=e;h=H[b+8>>2];g=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=c+4|0;b=f>>>0<4?b+1|0:b;d=0;a:{if(f>>>0>h>>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break a}c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=f;H[e+20>>2]=b;d=0;if((c|0)<0){break a}H[H[a+4>>2]+80>>2]=c;d=1}return d|0}function qi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function Ee(a,b){var c=0,d=0,e=0,f=0;H[a+144>>2]=b;c=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];c=H[c>>2]+H[c+16>>2]|0;d=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;e=a,f=J[H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],G[e+38>>1]=f;H[a>>2]=c;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=d;H[a+12>>2]=0;e=a,f=ea[H[H[b>>2]+36>>2]](b)|0,H[e+148>>2]=f}function Cd(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function pi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+32>>2];b=e;g=H[b+8>>2];d=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=d;d=c+4|0;b=d>>>0<4?b+1|0:b;if((f|0)>=(b|0)&d>>>0<=g>>>0|(b|0)<(f|0)){c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=d;H[e+20>>2]=b;H[H[a+4>>2]+80>>2]=c}return(b|0)<=(f|0)&d>>>0<=g>>>0|(b|0)<(f|0)}function Mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ca+-64|0;ca=e;d=1;a:{if(Ya(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ra(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;ea[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}ca=e- -64|0;return d|0}function Ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b){H[c>>2]=0;return}h=0-I[a+12|0]&255;e=H[a+4>>2];d=H[a+8>>2];i=H[a>>2];while(1){j=f<<1;if(!((e|0)<=0|d>>>0>4095)){e=e-1|0;H[a+4>>2]=e;d=I[e+i|0]|d<<8}g=d&255;f=g>>>0>>0;k=g;g=N(d>>>8|0,h);d=f?k+g|0:d-(h+g|0)|0;H[a+8>>2]=d;f=f|j;b=b-1|0;if(b){continue}break}H[c>>2]=f}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ca-16|0;ca=a;f=F[b+24|0];e=H[3411];H[a+8>>2]=H[3410];H[a+12>>2]=e;e=H[3409];H[a>>2]=H[3408];H[a+4>>2]=e;e=Va(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=pa(c);g=qa(b,a,c)+c|0}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=b}ca=a+16|0;return e|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function _c(a,b){var c=0,d=0;a:{c=H[a+4>>2];d=H[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}pb(a,c);c=H[a+4>>2]}H[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(I[b|0]){H[a>>2]=d|H[a>>2];return}H[a>>2]=H[a>>2]&(d^-1);return}sa();v()}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function $b(a){var b=0;H[a>>2]=0;H[a+4>>2]=0;H[a+56>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+60>>2]=a;return a}function td(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!td(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g} +function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Xa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Xa(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qe(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Pc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Pc(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Fb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ea(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ea(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Bb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Bb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Yc(a){var b=0,c=0,d=0,e=0;d=H[a>>2];if(d){e=d;c=H[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=H[a>>2]}H[a+4>>2]=d;oa(e)}}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+4>>2];a:{if(!d){break a}b=H[H[H[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=H[d+24>>2];c=H[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=H[a>>2];if((b|0)==H[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Zh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Uc(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ra(b+12|0,H[b+16>>2]);Qa(b,H[b+4>>2]);oa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;oa(b)}Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Yh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function vi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[H[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Wc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function Ya(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function _h(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+12>>2];b=H[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=H[b+(a<<2)>>2];if(H[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ae(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=pa(c);c=ra(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}qa(e,c,a-c|0);return}sa();v()}function ed(a){var b=0,c=0,d=0,e=0;c=H[a+4>>2];d=H[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=d}function Vh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function cb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;oa(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0;f=ca-16|0;ca=f;d=ca-16|0;ca=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=K[H[d+12>>2]>>2]>2];b=e?g:b;a=e?H[d+12>>2]+4|0:a;continue}break}ca=d+16|0;ca=f+16|0;return a}function oc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;oa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;oa(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;oa(b)}b=H[a+12>>2];if(b){oa(b)}a=H[a>>2];if(a){oa(a)}}function Xc(a,b){var c=0,d=0;d=pa(40);H[d>>2]=-1;c=d+8|0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;ea[H[H[a>>2]+16>>2]](a,d);a=H[b+88>>2];H[b+88>>2]=d;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}return 1}function Ma(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Ba(a){var b=0,c=0,d=0,e=0,f=0;d=I[a+12|0];c=H[a+8>>2];a:{if(c>>>0>4095){break a}b=H[a+4>>2];if((b|0)<=0){break a}b=b-1|0;H[a+4>>2]=b;c=I[b+H[a>>2]|0]|c<<8}d=0-d&255;b=N(d,c>>>8|0);e=c&255;f=e>>>0>>0;H[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function od(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=1984;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2328;H[a+60>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;return a}function mc(a,b){var c=0,d=0,e=0;c=Ma(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=pa(d);H[a+8>>2]=d|-2147483648;H[a>>2]=e;H[a+4>>2]=c;d=c+e|0;break b}F[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}va(e,b,c)}F[d|0]=0;return a}Na();v()}function Ng(a){a=a|0;var b=0,c=0,d=0;if(a){if(F[a+27|0]<0){oa(H[a+16>>2])}b=H[a>>2];if(b){c=b;d=H[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(F[d-1|0]<0){oa(H[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=H[a>>2]}H[a+4>>2]=b;oa(c)}oa(a)}}function Jb(a,b){var c=0,d=0,e=0;a:{c=H[a>>2];b:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=H[a+4>>2]-c|0;e=b<<2;b=va(pa(e),c,d);H[a+8>>2]=b+e;H[a+4>>2]=b+d;H[a>>2]=b;if(!c){break b}oa(c)}return}sa();v()}function Ga(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;oa(c)}oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;oa(c)}oa(b)}oa(a)}}function Nd(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=H[b+96>>2];a=pa(12);b=b+N(c,12)|0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=a;a=a+12|0;H[d+8>>2]=a;H[d+4>>2]=a;return 1}function Ai(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Sj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Tj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;da=(g^da)-((a>>>0>>0)+g|0)|0;return b}function yi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function Yb(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;yb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];Gd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ca=e+16|0}function Bf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ca-16|0;ca=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Wb(b,H[b+4>>2],c+15|0,c+16|0)}ca=c+16|0;return(a|0)!=-1|0}function Xb(a,b,c){var d=0,e=0;d=ca-16|0;ca=d;a:{if(c>>>0<=10){F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;yb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0]&127;Gd(e,10,c-10|0,a,a,c,b)}ca=d+16|0}function Rj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;da=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function th(){var a=0;a=Eb(pa(96));H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a|0}function zi(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function rj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function ib(a,b,c,d,e){var f=0;f=ca-256|0;ca=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ra(f,b&255,c?d:256);if(!c){while(1){Ab(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ab(a,f,d)}ca=f+256|0}function Ij(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ch(a){a=a|0;var b=0,c=0,d=0;b=H[a+8>>2];d=H[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=H[b>>2];c=ea[H[H[c>>2]+16>>2]](c,H[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Yd(a,b){var c=0,d=0;c=H[a+8>>2];a=H[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(H[H[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function qj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Hj(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function $d(a,b,c){var d=0,e=0;d=a+4|0;a=nb(a,b);a:{if((d|0)==(a|0)){break a}b=H[a+32>>2];d=H[a+28>>2];if((b|0)==(d|0)){break a}Cc(c,b-d|0);c=Dc(c);b=H[a+28>>2];qa(c,b,H[a+32>>2]-b|0);e=1}return e}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ca-16|0;ca=e;a=_(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[3992]=a;a=-1}else{a=0}ca=e+16|0;da=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function Sd(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Eb(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function hf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=rb(H[H[a+36>>2]+(b<<2)>>2])}return c|0}function Mg(){var a=0,b=0;a=pa(40);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;H[a+32>>2]=0;H[a+36>>2]=0;return a|0}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0;Wd(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;va(c,b,d-b|0);H[a+88>>2]=d-4}}function Rh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Lh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function zb(a){var b=0,c=0;b=H[3958];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>fa()<<16>>>0){if(!($(a|0)|0)){break a}}H[3958]=a;return b}H[3992]=48;return-1}function bj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;a=H[a+8>>2];if(I[a+24|0]==3){d=H[a+28>>2]==9}return d|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[a+8>>2];a:{if(!I[d+24|0]){break a}if(!mb(d,H[b+4>>2]-H[b>>2]>>2)){break a}e=ea[H[H[a>>2]+32>>2]](a,b,c)|0}return e|0}function Qh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function Kh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function nj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ra(a,b){if(b){Ra(a,H[b>>2]);Ra(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;return H[H[H[H[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ej(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Vc(a){H[a+40>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=13280;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;G[a+36>>1]=0;return a}function Hd(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=15260;H[a>>2]=15372;c=Ma(b);d=pa(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=qa(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function jg(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}c=ea[H[H[a>>2]+44>>2]](a)|0}return c|0}function mj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Dj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Xe(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]|!H[a+56>>2]){break a}b=H[a+92>>2]!=-1}return b|0}function cf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Pj(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function tc(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]|!H[a+40>>2]){break a}b=H[a+76>>2]!=-1}return b|0}function Sh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function He(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function bf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function wh(){var a=0,b=0;b=pa(40);H[b>>2]=-1;a=b+8|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;return b|0}function gf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+4>>2];a:{if(d){c=1;if(I[d+36|0]<2){break a}}c=ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0}return c|0}function ci(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Mh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Ha(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;G[a+38>>1]=0;F[a+36|0]=0;return a}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e);return}a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}d=nd(a,b,c)}return d|0}function gh(){var a=0;a=_d(pa(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=13664;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Zd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function lc(a,b,c,d,e,f,g){H[a>>2]=0;H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=e;H[a+28>>2]=d;F[a+24|0]=c}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!xc(a+24|0,H[a+8>>2],c)){break a}}d=nd(a,b,c)}return d|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!xc(a+24|0,rb(a),c)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Yf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}return _b(a)|0}function Dc(a){var b=0;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]&127}if(!b){af(1232);v()}if(I[a+11|0]>>>7|0){a=H[a>>2]}return a}function Xf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}oa(_b(a))}function zj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function jj(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Qa(a,b){if(b){Qa(a,H[b>>2]);Qa(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Vg(){var a=0;a=pa(28);H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;return a|0}function wg(a){a=a|0;var b=0;H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function eh(){var a=0,b=0;a=pa(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d);return}a=H[a+8>>2];ea[H[H[a>>2]+28>>2]](a,b,c,d)}function yj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ij(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function pa(a){var b=0;a=a?a:1;a:{while(1){b=Ec(a);if(b){break a}b=H[4422];if(b){ea[b|0]();continue}break}X();v()}return b}function Kb(a,b){if(b){Kb(a,H[b>>2]);Kb(a,H[b+4>>2]);if(F[b+39|0]<0){oa(H[b+28>>2])}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Ad(a){a=a|0;var b=0,c=0;H[a>>2]=15372;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){oa(b)}return a|0}function lh(){var a=0;a=pa(24);H[a+8>>2]=0;H[a+12>>2]=0;H[a+4>>2]=-1;H[a>>2]=1832;H[a+16>>2]=0;H[a+20>>2]=0;return a|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function wc(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Id(a,b){if(I[a+11|0]>>>7|0){H[a+4>>2]=b;return}F[a+11|0]=I[a+11|0]&128|b;F[a+11|0]=I[a+11|0]&127}function wj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function fj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function bi(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Uh(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function lg(a){a=a|0;if(a){if(F[a+39|0]<0){oa(H[a+28>>2])}Oc(a+12|0,H[a+16>>2]);Kb(a,H[a+4>>2]);oa(a)}}function Pb(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function vj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function vc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|!b|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function ej(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ai(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Th(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=b;H[a+8>>2]=c;H[a+12>>2]=0}function We(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function yc(a){var b=0;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}}function sc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Gf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e)}}function wa(){var a=0;a=Bc(4);H[a>>2]=15260;H[a>>2]=15220;H[a>>2]=15240;Y(a|0,15352,14);v()}function sf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Kj(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function mi(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}return a|0}function Ci(a){a=a|0;var b=0;b=rb(a);return Je(a+24|0,b?b:H[a+8>>2],H[H[a+4>>2]+32>>2])|0}function rf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function ji(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)} +function Ub(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Za(a){var b=0;H[a+16>>2]=0;b=H[a>>2];H[a+4>>2]=b;H[a+12>>2]=b;if(b){oa(b)}}function Oc(a,b){if(b){Oc(a,H[b>>2]);Oc(a,H[b+4>>2]);Kb(b+20|0,H[b+24>>2]);oa(b)}}function wi(a){a=a|0;if(!H[a+44>>2]){return 0}return ea[H[H[a>>2]+48>>2]](a)|0}function vh(a){a=a|0;var b=0;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}}function Uj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d)}}function ui(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+20>>2]](a,b)|0}function ni(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+12>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+16>>2]](a,b)|0}function lb(){var a=0;a=pa(12);H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;return a|0}function kb(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Vj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} +function dh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function ch(a){a=a|0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Rd(a,b,c){a:{if(H[c+76>>2]<0){a=Fc(a,b,c);break a}a=Fc(a,b,c)}}function Mb(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Fh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function si(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+24>>2]](a)|0}function ri(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+28>>2]](a)|0}function oi(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+36>>2]](a)|0}function ih(){var a=0;a=pa(8);H[a+4>>2]=-1;H[a>>2]=1032;return a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;return H[H[b+8>>2]+(c<<2)>>2]}function _i(a,b){a=a|0;b=b|0;return Fd(a+24|0,rb(a),H[a+8>>2])|0}function Bi(a,b){a=a|0;b=b|0;return Re(a+24|0,rb(a),H[a+8>>2])|0}function xf(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+12>>2]](a,b)|0}function Ff(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Di(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+56>>2]](a,b)|0}function $g(a){a=a|0;if(a){if(F[a+15|0]<0){oa(H[a+4>>2])}oa(a)}}function kh(a,b){a=a|0;b=b|0;return O(L[H[a+8>>2]+(b<<2)>>2])}function af(a){a=Hd(Bc(8),a);H[a>>2]=15472;Y(a|0,15504,1);v()}function Ue(a){a=Hd(Bc(8),a);H[a>>2]=15420;Y(a|0,15452,1);v()}function _g(a,b){a=a|0;b=b|0;return O(L[H[a>>2]+(b<<2)>>2])}function fh(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ah(a){a=a|0;return(F[a+15|0]<0?H[a+4>>2]:a+4|0)|0}function _f(a,b){a=a|0;b=b|0;return H[H[a+4>>2]+(b<<2)>>2]}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da=0;return 0}function Ke(a){a=Vc(a);H[a+44>>2]=0;H[a>>2]=11180;return a}function ie(a,b){a=a|0;b=b|0;return H[H[a>>2]+(b<<2)>>2]}function Xg(a,b){a=a|0;b=b|0;return G[H[a>>2]+(b<<1)>>1]}function Wg(a,b){a=a|0;b=b|0;return J[H[a>>2]+(b<<1)>>1]}function Zb(a,b){var c=0;c=pa(b);H[a+4>>2]=b;H[a>>2]=c}function Jg(a,b,c){a=a|0;b=b|0;c=c|0;return Zd(b,c)|0}function _d(a){H[a>>2]=13724;ra(a+4|0,0,80);return a}function me(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function Qj(a){if(a){return 31-Q(a-1^a)|0}return 32}function cc(a){a=a|0;if(a){ea[H[H[a>>2]+4>>2]](a)}}function Zg(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Yg(a,b){a=a|0;b=b|0;return I[H[a>>2]+b|0]}function Uf(a){a=a|0;return H[a+8>>2]-H[a+4>>2]>>2}function jd(a,b){a=a|0;b=b|0;H[a+4>>2]=b;return 1}function je(a){a=a|0;return H[a+4>>2]-H[a>>2]>>1}function Qc(a){a=a|0;return H[a+4>>2]-H[a>>2]>>2}function le(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function Ab(a,b,c){if(!(I[a|0]&32)){Fc(b,c,a)}}function vf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function hi(a,b){a=a|0;b=b|0;return I[b+24|0]}function Pg(a,b){a=a|0;b=b|0;return H[b+8>>2]}function Nj(a){a=a|0;return I[H[a+8>>2]+24|0]}function Li(a){a=a|0;H[a>>2]=10032;return a|0}function Eg(a,b){a=a|0;b=b|0;return H[b+4>>2]}function Yi(a){a=a|0;H[a>>2]=7144;return a|0}function Ui(a){a=a|0;H[a>>2]=8080;return a|0}function Sf(a){a=a|0;return aa(H[a+60>>2])|0}function Pi(a){a=a|0;H[a>>2]=9028;return a|0}function jh(a){a=a|0;return O(L[a+20>>2])}function Ji(a){a=a|0;H[a>>2]=10032;oa(a)}function Xi(a){a=a|0;H[a>>2]=7144;oa(a)}function Si(a){a=a|0;H[a>>2]=8080;oa(a)}function Oi(a){a=a|0;H[a>>2]=9028;oa(a)}function sh(a){a=a|0;return H[a+88>>2]}function rh(a){a=a|0;return H[a+56>>2]}function oh(a){a=a|0;return H[a+40>>2]}function nh(a){a=a|0;return H[a+48>>2]}function mh(a){a=a|0;return H[a+60>>2]}function eb(a){a=a|0;return H[a+28>>2]}function df(){H[4292]=17048;H[4274]=42}function Rc(a){a=a|0;return H[a+80>>2]}function qh(a){a=a|0;return F[a+24|0]}function ph(a){a=a|0;return I[a+32|0]}function md(a,b){a=a|0;b=b|0;return-1}function db(a){a=a|0;return H[a+4>>2]}function bh(a){a=a|0;return!H[a>>2]|0}function _e(a,b){a=a|0;b=b|0;return 6}function Zc(a){a=a|0;return H[a+8>>2]}function Pd(a,b){a=a|0;b=b|0;return 1}function Ja(a,b){a=a|0;b=b|0;return 0}function Bj(a,b){a=a|0;b=b|0;return 2}function Bc(a){return Ec(a+80|0)+80|0}function pe(a){a=a|0;return H[a>>2]}function yh(){return Ha(pa(40))|0}function uh(){return Eb(pa(64))|0}function hh(){return _d(pa(84))|0}function Sc(a){a=a|0;if(a){oa(a)}}function zc(a){a=a|0;Ad(a);oa(a)}function Ef(a){a=a|0;return 1171}function Df(a){a=a|0;return 1245}function Cf(a){a=a|0;return 1211}function Ta(a){a=a|0;return a|0}function yf(a){a=a|0;oa(rd(a))}function fi(a){a=a|0;oa(Be(a))}function ei(a){a=a|0;oa(Ae(a))}function di(a){a=a|0;oa(ze(a))}function Tf(a){a=a|0;oa(_b(a))}function ld(a){a=a|0;return 3}function _a(a){a=a|0;return 0}function Ze(a){a=a|0;return 5}function Tb(a){a=a|0;return 2}function Ob(a){a=a|0;return 6}function Da(a){a=a|0;return 1}function $e(a){a=a|0;return 4}function sa(){Ue(1164);v()}function Na(){Ue(1232);v()}function La(a){a=a|0;oa(a)}function Ca(){af(1164);v()}function fb(a){a=a|0;v()}function eg(){return 10}function dg(){return 11}function cg(){return 12}function kg(){return 5}function ig(){return 6}function hg(){return 7}function gg(){return 8}function fg(){return 9}function fe(){return 3}function ee(){return 4}function bg(){return-2}function bc(){return-1}function ag(){return-3}function ac(){return 1}function Zf(){return-5}function Qb(){return 0}function Nc(){return 2}function $f(){return-4}function Nf(){X();v()}function Td(a){a=a|0} +// EMSCRIPTEN_END_FUNCS +e=I;p(q);var ea=c([null,Ad,Ta,La,Tb,Pj,zi,Gh,Fd,Bf,xc,Nh,_e,Bj,Ta,mi,ji,Da,gj,Ti,Ki,Re,xi,Je,_e,hi,wg,fb,dh,ke,jg,_f,Uf,eb,Ja,Nf,Pd,Da,rd,yf,Of,Af,zf,sf,rf,pd,xf,wf,vf,Pd,uf,tf,kf,jf,qf,pf,hf,of,nf,mf,lf,cf,bf,pd,gf,ff,nd,ef,Nj,Oj,Kj,Ub,Da,db,Pb,_a,md,Ja,_a,Da,Mj,Lj,fb,fb,Ub,Tb,Pb,Jj,Ij,Hj,$e,Pb,Gj,Fj,Ej,Dj,ld,wc,Da,Ja,vc,Cj,Aj,zj,yj,Ze,wc,Da,Ja,vc,Ye,xj,wj,vj,Ob,Xe,Da,Ja,We,Ve,uj,Ta,La,Mb,eb,Nb,fb,Ub,Da,Pb,tj,fb,Ub,Tb,Pb,sj,rj,qj,$e,Pb,pj,oj,nj,mj,ld,wc,Da,Ja,vc,lj,kj,jj,ij,Ze,wc,Da,Ja,vc,Ye,hj,fj,ej,Ob,Xe,Da,Ja,We,Ve,dj,Ta,La,Mb,eb,Lb,fb,Ub,_a,Da,cj,cf,bf,bj,$i,aj,Zi,Tb,_i,Yi,Xi,Ob,db,tc,Da,Ja,sc,Da,Tb,Te,Wi,Ta,La,Mb,eb,Nb,Ui,Si,Ob,tc,Da,Ja,sc,Te,Ri,Ta,La,Mb,eb,Lb,Ta,La,_a,Da,_a,md,Ja,Vi,Qi,Pi,Oi,Ob,db,tc,Da,Ja,sc,Da,ld,Se,Ni,Ta,La,Mb,eb,Nb,Li,Ji,Ob,tc,Da,Ja,sc,Se,Ii,Ta,La,Mb,eb,Lb,La,_a,Da,_a,md,Ja,Mi,Hi,Ai,yi,Gi,Ei,Fi,Di,Ci,Bi,vi,fb,Da,Da,wi,Dh,Ch,Da,_a,Ja,Ja,qi,pi,ti,ui,ri,oi,ni,li,si,Be,fi,jd,id,hd,gd,ki,Da,db,Zc,Ae,ei,jd,id,hd,gd,ii,Da,db,Zc,ze,di,jd,id,hd,gd,gi,Da,db,Zc,He,ci,Ie,bi,ai,Zh,Yh,Xh,Wh,_h,Vh,$h,Uh,Th,Rh,Qh,Ph,Oh,Sh,Mh,Lh,Kh,Jh,Ih,Wc,ve,Hh,Ta,La,Fh,Eh,fb,_a,Da,Wc,Ah,Bh,Wc,ve,zh,Yf,Xf,Wf,Vf,_b,Tf,Xd,Wd,Sf,Rf,Qf,_a,Pf,Ta,La,Td,Td,Mf,Gf,If,Lf,La,Hf,Jf,Kf,La,Df,La,Cf,La,Ef,zc,db,zc,zc]);function fa(){return E.byteLength/65536|0}function ka(la){la=la|0;var ga=fa()|0;var ha=ga+la|0;if(ga=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["j"];addOnInit(Module["asm"]["i"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))}; +$jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; +var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=A}},"es6","es3"); +$jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(lp;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3"); +$jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); +$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); +var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(){var e=ja.buffer;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); +e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)}); +if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+ +12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+ +16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(){function e(){if(!la&&(la=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= +d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b= +r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr= +La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]= +this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},Aa,ka;a.ready=new Promise(function(e,b){Aa=e;ka=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);A();var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},f:function(e){return 52},d:function(e,b,c,d,g){return 70},c:function(e,b,c,d){for(var g=0,u=0;u>2],ab=V[b+4>>2];b+=8;for(var sa=0;sa>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;ja=a.asm.h;A();oa.unshift(a.asm.i);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==ra&&(clearInterval(ra),ra=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:xd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa); +if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); +return c(b)})})})().catch(ka);return{}})();var bb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(bb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.k).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.l).apply(null,arguments)},cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(cb=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.m).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer___destroy___0= +function(){return(db=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.n).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.o).apply(null,arguments)},eb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(eb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.p).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData___destroy___0= +function(){return(fb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.q).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.r).apply(null,arguments)},gb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.s).apply(null,arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga= +a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.t).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_size_0=function(){return(hb=a._emscripten_bind_PointAttribute_size_0=a.asm.u).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.v).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(jb=a._emscripten_bind_PointAttribute_attribute_type_0= +a.asm.w).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(kb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.x).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(lb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.y).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(mb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.z).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_byte_stride_0= +function(){return(nb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.A).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.B).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(pb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.C).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(qb=a._emscripten_bind_PointAttribute___destroy___0= +a.asm.D).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.E).apply(null,arguments)},rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.F).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0= +function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.G).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.H).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.I).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0= +function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.J).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.K).apply(null,arguments)},wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.L).apply(null, +arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.M).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.N).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.O).apply(null, +arguments)},zb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(zb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.P).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_points_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_points_0=a.asm.Q).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloud___destroy___0=a.asm.R).apply(null,arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka= +a._emscripten_bind_Mesh_Mesh_0=a.asm.S).apply(null,arguments)},Cb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Cb=a._emscripten_bind_Mesh_num_faces_0=a.asm.T).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Db=a._emscripten_bind_Mesh_num_attributes_0=a.asm.U).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_points_0=function(){return(Eb=a._emscripten_bind_Mesh_num_points_0=a.asm.V).apply(null,arguments)},Fb=a._emscripten_bind_Mesh___destroy___0=function(){return(Fb= +a._emscripten_bind_Mesh___destroy___0=a.asm.W).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.X).apply(null,arguments)},Gb=a._emscripten_bind_Metadata___destroy___0=function(){return(Gb=a._emscripten_bind_Metadata___destroy___0=a.asm.Y).apply(null,arguments)},Hb=a._emscripten_bind_Status_code_0=function(){return(Hb=a._emscripten_bind_Status_code_0=a.asm.Z).apply(null,arguments)},Ib=a._emscripten_bind_Status_ok_0=function(){return(Ib= +a._emscripten_bind_Status_ok_0=a.asm._).apply(null,arguments)},Jb=a._emscripten_bind_Status_error_msg_0=function(){return(Jb=a._emscripten_bind_Status_error_msg_0=a.asm.$).apply(null,arguments)},Kb=a._emscripten_bind_Status___destroy___0=function(){return(Kb=a._emscripten_bind_Status___destroy___0=a.asm.aa).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ba).apply(null,arguments)}, +Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.ca).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.da).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ea).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0= +function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.fa).apply(null,arguments)},Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ga).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ha).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoInt8Array___destroy___0= +a.asm.ia).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ja).apply(null,arguments)},Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ka).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.la).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array___destroy___0= +function(){return(Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ma).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.na).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.oa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt16Array_size_0= +a.asm.pa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.qa).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.ra).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.sa).apply(null,arguments)}, +Yb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ta).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ua).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.va).apply(null,arguments)},$b=a._emscripten_bind_DracoInt32Array_GetValue_1= +function(){return($b=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.wa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt32Array_size_0=a.asm.xa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.ya).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= +a.asm.za).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Aa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ba).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(ec=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Ca).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= +function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Da).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ea).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Fa).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3= +a.asm.Ga).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ha).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ia).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ja).apply(null,arguments)}, +lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ka).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(mc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.La).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ma).apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nc= +a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Na).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Oa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Pa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= +a.asm.Qa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Ra).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Sa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ta).apply(null,arguments)}, +uc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(uc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ua).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Va).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Wa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= +function(){return(xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Xa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Ya).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Za).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ac= +a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm._a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.$a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.ab).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Dc= +a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.bb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.db).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= +function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.fb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= +function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.hb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.ib).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.jb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= +function(){return(Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.kb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.lb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder___destroy___0=function(){return(Oc=a._emscripten_bind_Decoder___destroy___0=a.asm.mb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= +a.asm.nb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.ob).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.pb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= +function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.qb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.rb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.sb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= +function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.tb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.ub).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.vb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= +function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.wb).apply(null,arguments)},Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.xb).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.yb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= +function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.zb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Ab).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Bb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_UINT8= +a.asm.Cb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Db).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Eb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Fb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT32= +function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Gb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Hb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Ib).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Jb).apply(null, +arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Kb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(md=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Lb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Mb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return(od= +a._emscripten_enum_draco_StatusCode_OK=a.asm.Nb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Ob).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Pb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= +a.asm.Qb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Rb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Sb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Tb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Ub).apply(null,arguments)}; +var ya=function(){return(ya=a.asm.Vb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var la;ia=function b(){la||ba();la||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); +"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/libs/playcanvas/v1.65.0/draco/draco.wasm.wasm b/libs/playcanvas/v1.65.0/draco/draco.wasm.wasm new file mode 100644 index 000000000..e5a5e06eb Binary files /dev/null and b/libs/playcanvas/v1.65.0/draco/draco.wasm.wasm differ diff --git a/libs/playcanvas/v1.65.0/orbit-camera.js b/libs/playcanvas/v1.65.0/orbit-camera.js new file mode 100644 index 000000000..bf4aa6781 --- /dev/null +++ b/libs/playcanvas/v1.65.0/orbit-camera.js @@ -0,0 +1,614 @@ +//////////////////////////////////////////////////////////////////////////////// +// Orbit Camera Script // +//////////////////////////////////////////////////////////////////////////////// +var OrbitCamera = pc.createScript('orbitCamera'); + +OrbitCamera.attributes.add('distanceMax', { type: 'number', default: 0, title: 'Distance Max', description: 'Setting this at 0 will give an infinite distance limit' }); +OrbitCamera.attributes.add('distanceMin', { type: 'number', default: 0, title: 'Distance Min' }); +OrbitCamera.attributes.add('pitchAngleMax', { type: 'number', default: 90, title: 'Pitch Angle Max (degrees)' }); +OrbitCamera.attributes.add('pitchAngleMin', { type: 'number', default: -90, title: 'Pitch Angle Min (degrees)' }); + +OrbitCamera.attributes.add('inertiaFactor', { + type: 'number', + default: 0, + title: 'Inertia Factor', + description: 'Higher value means that the camera will continue moving after the user has stopped dragging. 0 is fully responsive.' +}); + +OrbitCamera.attributes.add('focusEntity', { + type: 'entity', + title: 'Focus Entity', + description: 'Entity for the camera to focus on. If blank, then the camera will use the whole scene' +}); + +OrbitCamera.attributes.add('frameOnStart', { + type: 'boolean', + default: true, + title: 'Frame on Start', + description: 'Frames the entity or scene at the start of the application."' +}); + + +// Property to get and set the distance between the pivot point and camera +// Clamped between this.distanceMin and this.distanceMax +Object.defineProperty(OrbitCamera.prototype, "distance", { + get: function () { + return this._targetDistance; + }, + + set: function (value) { + this._targetDistance = this._clampDistance(value); + } +}); + + +// Property to get and set the pitch of the camera around the pivot point (degrees) +// Clamped between this.pitchAngleMin and this.pitchAngleMax +// When set at 0, the camera angle is flat, looking along the horizon +Object.defineProperty(OrbitCamera.prototype, "pitch", { + get: function () { + return this._targetPitch; + }, + + set: function (value) { + this._targetPitch = this._clampPitchAngle(value); + } +}); + + +// Property to get and set the yaw of the camera around the pivot point (degrees) +Object.defineProperty(OrbitCamera.prototype, "yaw", { + get: function () { + return this._targetYaw; + }, + + set: function (value) { + this._targetYaw = value; + + // Ensure that the yaw takes the shortest route by making sure that + // the difference between the targetYaw and the actual is 180 degrees + // in either direction + var diff = this._targetYaw - this._yaw; + var reminder = diff % 360; + if (reminder > 180) { + this._targetYaw = this._yaw - (360 - reminder); + } else if (reminder < -180) { + this._targetYaw = this._yaw + (360 + reminder); + } else { + this._targetYaw = this._yaw + reminder; + } + } +}); + + +// Property to get and set the world position of the pivot point that the camera orbits around +Object.defineProperty(OrbitCamera.prototype, "pivotPoint", { + get: function () { + return this._pivotPoint; + }, + + set: function (value) { + this._pivotPoint.copy(value); + } +}); + + +// Moves the camera to look at an entity and all its children so they are all in the view +OrbitCamera.prototype.focus = function (focusEntity) { + // Calculate an bounding box that encompasses all the models to frame in the camera view + this._buildAabb(focusEntity, 0); + + var halfExtents = this._modelsAabb.halfExtents; + var radius = Math.max(halfExtents.x, Math.max(halfExtents.y, halfExtents.z)); + + this.distance = (radius * 1.5) / Math.sin(0.5 * this.entity.camera.fov * pc.math.DEG_TO_RAD); + + this._removeInertia(); + + this._pivotPoint.copy(this._modelsAabb.center); +}; + + +OrbitCamera.distanceBetween = new pc.Vec3(); + +// Set the camera position to a world position and look at a world position +// Useful if you have multiple viewing angles to swap between in a scene +OrbitCamera.prototype.resetAndLookAtPoint = function (resetPoint, lookAtPoint) { + this.pivotPoint.copy(lookAtPoint); + this.entity.setPosition(resetPoint); + + this.entity.lookAt(lookAtPoint); + + var distance = OrbitCamera.distanceBetween; + distance.sub2(lookAtPoint, resetPoint); + this.distance = distance.length(); + + this.pivotPoint.copy(lookAtPoint); + + var cameraQuat = this.entity.getRotation(); + this.yaw = this._calcYaw(cameraQuat); + this.pitch = this._calcPitch(cameraQuat, this.yaw); + + this._removeInertia(); + this._updatePosition(); +}; + + +// Set camera position to a world position and look at an entity in the scene +// Useful if you have multiple models to swap between in a scene +OrbitCamera.prototype.resetAndLookAtEntity = function (resetPoint, entity) { + this._buildAabb(entity, 0); + this.resetAndLookAtPoint(resetPoint, this._modelsAabb.center); +}; + + +// Set the camera at a specific, yaw, pitch and distance without inertia (instant cut) +OrbitCamera.prototype.reset = function (yaw, pitch, distance) { + this.pitch = pitch; + this.yaw = yaw; + this.distance = distance; + + this._removeInertia(); +}; + +///////////////////////////////////////////////////////////////////////////////////////////// +// Private methods + +OrbitCamera.prototype.initialize = function () { + var self = this; + var onWindowResize = function () { + self._checkAspectRatio(); + }; + + window.addEventListener('resize', onWindowResize, false); + + this._checkAspectRatio(); + + // Find all the models in the scene that are under the focused entity + this._modelsAabb = new pc.BoundingBox(); + this._buildAabb(this.focusEntity || this.app.root, 0); + + this.entity.lookAt(this._modelsAabb.center); + + this._pivotPoint = new pc.Vec3(); + this._pivotPoint.copy(this._modelsAabb.center); + + // Calculate the camera euler angle rotation around x and y axes + // This allows us to place the camera at a particular rotation to begin with in the scene + var cameraQuat = this.entity.getRotation(); + + // Preset the camera + this._yaw = this._calcYaw(cameraQuat); + this._pitch = this._clampPitchAngle(this._calcPitch(cameraQuat, this._yaw)); + this.entity.setLocalEulerAngles(this._pitch, this._yaw, 0); + + this._distance = 0; + + this._targetYaw = this._yaw; + this._targetPitch = this._pitch; + + // If we have ticked focus on start, then attempt to position the camera where it frames + // the focused entity and move the pivot point to entity's position otherwise, set the distance + // to be between the camera position in the scene and the pivot point + if (this.frameOnStart) { + this.focus(this.focusEntity || this.app.root); + } else { + var distanceBetween = new pc.Vec3(); + distanceBetween.sub2(this.entity.getPosition(), this._pivotPoint); + this._distance = this._clampDistance(distanceBetween.length()); + } + + this._targetDistance = this._distance; + + // Reapply the clamps if they are changed in the editor + this.on('attr:distanceMin', function (value, prev) { + this._distance = this._clampDistance(this._distance); + }); + + this.on('attr:distanceMax', function (value, prev) { + this._distance = this._clampDistance(this._distance); + }); + + this.on('attr:pitchAngleMin', function (value, prev) { + this._pitch = this._clampPitchAngle(this._pitch); + }); + + this.on('attr:pitchAngleMax', function (value, prev) { + this._pitch = this._clampPitchAngle(this._pitch); + }); + + // Focus on the entity if we change the focus entity + this.on('attr:focusEntity', function (value, prev) { + if (this.frameOnStart) { + this.focus(value || this.app.root); + } else { + this.resetAndLookAtEntity(this.entity.getPosition(), value || this.app.root); + } + }); + + this.on('attr:frameOnStart', function (value, prev) { + if (value) { + this.focus(this.focusEntity || this.app.root); + } + }); + + this.on('destroy', function () { + window.removeEventListener('resize', onWindowResize, false); + }); +}; + + +OrbitCamera.prototype.update = function (dt) { + // Add inertia, if any + var t = this.inertiaFactor === 0 ? 1 : Math.min(dt / this.inertiaFactor, 1); + this._distance = pc.math.lerp(this._distance, this._targetDistance, t); + this._yaw = pc.math.lerp(this._yaw, this._targetYaw, t); + this._pitch = pc.math.lerp(this._pitch, this._targetPitch, t); + + this._updatePosition(); +}; + + +OrbitCamera.prototype._updatePosition = function () { + // Work out the camera position based on the pivot point, pitch, yaw and distance + this.entity.setLocalPosition(0, 0, 0); + this.entity.setLocalEulerAngles(this._pitch, this._yaw, 0); + + var position = this.entity.getPosition(); + position.copy(this.entity.forward); + position.scale(-this._distance); + position.add(this.pivotPoint); + this.entity.setPosition(position); +}; + + +OrbitCamera.prototype._removeInertia = function () { + this._yaw = this._targetYaw; + this._pitch = this._targetPitch; + this._distance = this._targetDistance; +}; + + +OrbitCamera.prototype._checkAspectRatio = function () { + var height = this.app.graphicsDevice.height; + var width = this.app.graphicsDevice.width; + + // Match the axis of FOV to match the aspect ratio of the canvas so + // the focused entities is always in frame + this.entity.camera.horizontalFov = height > width; +}; + + +OrbitCamera.prototype._buildAabb = function (entity, modelsAdded) { + var i = 0; + + if (entity.model) { + var mi = entity.model.meshInstances; + for (i = 0; i < mi.length; i++) { + if (modelsAdded === 0) { + this._modelsAabb.copy(mi[i].aabb); + } else { + this._modelsAabb.add(mi[i].aabb); + } + + modelsAdded += 1; + } + } + + for (i = 0; i < entity.children.length; ++i) { + modelsAdded += this._buildAabb(entity.children[i], modelsAdded); + } + + return modelsAdded; +}; + + +OrbitCamera.prototype._calcYaw = function (quat) { + var transformedForward = new pc.Vec3(); + quat.transformVector(pc.Vec3.FORWARD, transformedForward); + + return Math.atan2(-transformedForward.x, -transformedForward.z) * pc.math.RAD_TO_DEG; +}; + + +OrbitCamera.prototype._clampDistance = function (distance) { + if (this.distanceMax > 0) { + return pc.math.clamp(distance, this.distanceMin, this.distanceMax); + } + return Math.max(distance, this.distanceMin); + +}; + + +OrbitCamera.prototype._clampPitchAngle = function (pitch) { + // Negative due as the pitch is inversed since the camera is orbiting the entity + return pc.math.clamp(pitch, -this.pitchAngleMax, -this.pitchAngleMin); +}; + + +OrbitCamera.quatWithoutYaw = new pc.Quat(); +OrbitCamera.yawOffset = new pc.Quat(); + +OrbitCamera.prototype._calcPitch = function (quat, yaw) { + var quatWithoutYaw = OrbitCamera.quatWithoutYaw; + var yawOffset = OrbitCamera.yawOffset; + + yawOffset.setFromEulerAngles(0, -yaw, 0); + quatWithoutYaw.mul2(yawOffset, quat); + + var transformedForward = new pc.Vec3(); + + quatWithoutYaw.transformVector(pc.Vec3.FORWARD, transformedForward); + + return Math.atan2(transformedForward.y, -transformedForward.z) * pc.math.RAD_TO_DEG; +}; + + +//////////////////////////////////////////////////////////////////////////////// +// Orbit Camera Mouse Input Script // +//////////////////////////////////////////////////////////////////////////////// +var OrbitCameraInputMouse = pc.createScript('orbitCameraInputMouse'); + +OrbitCameraInputMouse.attributes.add('orbitSensitivity', { + type: 'number', + default: 0.3, + title: 'Orbit Sensitivity', + description: 'How fast the camera moves around the orbit. Higher is faster' +}); + +OrbitCameraInputMouse.attributes.add('distanceSensitivity', { + type: 'number', + default: 0.15, + title: 'Distance Sensitivity', + description: 'How fast the camera moves in and out. Higher is faster' +}); + +// initialize code called once per entity +OrbitCameraInputMouse.prototype.initialize = function () { + this.orbitCamera = this.entity.script.orbitCamera; + + if (this.orbitCamera) { + var self = this; + + var onMouseOut = function (e) { + self.onMouseOut(e); + }; + + this.app.mouse.on(pc.EVENT_MOUSEDOWN, this.onMouseDown, this); + this.app.mouse.on(pc.EVENT_MOUSEUP, this.onMouseUp, this); + this.app.mouse.on(pc.EVENT_MOUSEMOVE, this.onMouseMove, this); + this.app.mouse.on(pc.EVENT_MOUSEWHEEL, this.onMouseWheel, this); + + // Listen to when the mouse travels out of the window + window.addEventListener('mouseout', onMouseOut, false); + + // Remove the listeners so if this entity is destroyed + this.on('destroy', function () { + this.app.mouse.off(pc.EVENT_MOUSEDOWN, this.onMouseDown, this); + this.app.mouse.off(pc.EVENT_MOUSEUP, this.onMouseUp, this); + this.app.mouse.off(pc.EVENT_MOUSEMOVE, this.onMouseMove, this); + this.app.mouse.off(pc.EVENT_MOUSEWHEEL, this.onMouseWheel, this); + + window.removeEventListener('mouseout', onMouseOut, false); + }); + } + + // Disabling the context menu stops the browser displaying a menu when + // you right-click the page + this.app.mouse.disableContextMenu(); + + this.lookButtonDown = false; + this.panButtonDown = false; + this.lastPoint = new pc.Vec2(); +}; + + +OrbitCameraInputMouse.fromWorldPoint = new pc.Vec3(); +OrbitCameraInputMouse.toWorldPoint = new pc.Vec3(); +OrbitCameraInputMouse.worldDiff = new pc.Vec3(); + + +OrbitCameraInputMouse.prototype.pan = function (screenPoint) { + var fromWorldPoint = OrbitCameraInputMouse.fromWorldPoint; + var toWorldPoint = OrbitCameraInputMouse.toWorldPoint; + var worldDiff = OrbitCameraInputMouse.worldDiff; + + // For panning to work at any zoom level, we use screen point to world projection + // to work out how far we need to pan the pivotEntity in world space + var camera = this.entity.camera; + var distance = this.orbitCamera.distance; + + camera.screenToWorld(screenPoint.x, screenPoint.y, distance, fromWorldPoint); + camera.screenToWorld(this.lastPoint.x, this.lastPoint.y, distance, toWorldPoint); + + worldDiff.sub2(toWorldPoint, fromWorldPoint); + + this.orbitCamera.pivotPoint.add(worldDiff); +}; + + +OrbitCameraInputMouse.prototype.onMouseDown = function (event) { + switch (event.button) { + case pc.MOUSEBUTTON_LEFT: + this.lookButtonDown = true; + break; + case pc.MOUSEBUTTON_MIDDLE: + case pc.MOUSEBUTTON_RIGHT: + this.panButtonDown = true; + break; + } +}; + + +OrbitCameraInputMouse.prototype.onMouseUp = function (event) { + switch (event.button) { + case pc.MOUSEBUTTON_LEFT: + this.lookButtonDown = false; + break; + case pc.MOUSEBUTTON_MIDDLE: + case pc.MOUSEBUTTON_RIGHT: + this.panButtonDown = false; + break; + } +}; + + +OrbitCameraInputMouse.prototype.onMouseMove = function (event) { + if (this.lookButtonDown) { + this.orbitCamera.pitch -= event.dy * this.orbitSensitivity; + this.orbitCamera.yaw -= event.dx * this.orbitSensitivity; + + } else if (this.panButtonDown) { + this.pan(event); + } + + this.lastPoint.set(event.x, event.y); +}; + + +OrbitCameraInputMouse.prototype.onMouseWheel = function (event) { + this.orbitCamera.distance -= event.wheel * this.distanceSensitivity * (this.orbitCamera.distance * 0.1); + event.event.preventDefault(); +}; + + +OrbitCameraInputMouse.prototype.onMouseOut = function (event) { + this.lookButtonDown = false; + this.panButtonDown = false; +}; + + +//////////////////////////////////////////////////////////////////////////////// +// Orbit Camera Touch Input Script // +//////////////////////////////////////////////////////////////////////////////// +var OrbitCameraInputTouch = pc.createScript('orbitCameraInputTouch'); + +OrbitCameraInputTouch.attributes.add('orbitSensitivity', { + type: 'number', + default: 0.4, + title: 'Orbit Sensitivity', + description: 'How fast the camera moves around the orbit. Higher is faster' +}); + +OrbitCameraInputTouch.attributes.add('distanceSensitivity', { + type: 'number', + default: 0.2, + title: 'Distance Sensitivity', + description: 'How fast the camera moves in and out. Higher is faster' +}); + +// initialize code called once per entity +OrbitCameraInputTouch.prototype.initialize = function () { + this.orbitCamera = this.entity.script.orbitCamera; + + // Store the position of the touch so we can calculate the distance moved + this.lastTouchPoint = new pc.Vec2(); + this.lastPinchMidPoint = new pc.Vec2(); + this.lastPinchDistance = 0; + + if (this.orbitCamera && this.app.touch) { + // Use the same callback for the touchStart, touchEnd and touchCancel events as they + // all do the same thing which is to deal the possible multiple touches to the screen + this.app.touch.on(pc.EVENT_TOUCHSTART, this.onTouchStartEndCancel, this); + this.app.touch.on(pc.EVENT_TOUCHEND, this.onTouchStartEndCancel, this); + this.app.touch.on(pc.EVENT_TOUCHCANCEL, this.onTouchStartEndCancel, this); + + this.app.touch.on(pc.EVENT_TOUCHMOVE, this.onTouchMove, this); + + this.on('destroy', function () { + this.app.touch.off(pc.EVENT_TOUCHSTART, this.onTouchStartEndCancel, this); + this.app.touch.off(pc.EVENT_TOUCHEND, this.onTouchStartEndCancel, this); + this.app.touch.off(pc.EVENT_TOUCHCANCEL, this.onTouchStartEndCancel, this); + + this.app.touch.off(pc.EVENT_TOUCHMOVE, this.onTouchMove, this); + }); + } +}; + + +OrbitCameraInputTouch.prototype.getPinchDistance = function (pointA, pointB) { + // Return the distance between the two points + var dx = pointA.x - pointB.x; + var dy = pointA.y - pointB.y; + + return Math.sqrt((dx * dx) + (dy * dy)); +}; + + +OrbitCameraInputTouch.prototype.calcMidPoint = function (pointA, pointB, result) { + result.set(pointB.x - pointA.x, pointB.y - pointA.y); + result.scale(0.5); + result.x += pointA.x; + result.y += pointA.y; +}; + + +OrbitCameraInputTouch.prototype.onTouchStartEndCancel = function (event) { + // We only care about the first touch for camera rotation. As the user touches the screen, + // we stored the current touch position + var touches = event.touches; + if (touches.length == 1) { + this.lastTouchPoint.set(touches[0].x, touches[0].y); + + } else if (touches.length == 2) { + // If there are 2 touches on the screen, then set the pinch distance + this.lastPinchDistance = this.getPinchDistance(touches[0], touches[1]); + this.calcMidPoint(touches[0], touches[1], this.lastPinchMidPoint); + } +}; + + +OrbitCameraInputTouch.fromWorldPoint = new pc.Vec3(); +OrbitCameraInputTouch.toWorldPoint = new pc.Vec3(); +OrbitCameraInputTouch.worldDiff = new pc.Vec3(); + + +OrbitCameraInputTouch.prototype.pan = function (midPoint) { + var fromWorldPoint = OrbitCameraInputTouch.fromWorldPoint; + var toWorldPoint = OrbitCameraInputTouch.toWorldPoint; + var worldDiff = OrbitCameraInputTouch.worldDiff; + + // For panning to work at any zoom level, we use screen point to world projection + // to work out how far we need to pan the pivotEntity in world space + var camera = this.entity.camera; + var distance = this.orbitCamera.distance; + + camera.screenToWorld(midPoint.x, midPoint.y, distance, fromWorldPoint); + camera.screenToWorld(this.lastPinchMidPoint.x, this.lastPinchMidPoint.y, distance, toWorldPoint); + + worldDiff.sub2(toWorldPoint, fromWorldPoint); + + this.orbitCamera.pivotPoint.add(worldDiff); +}; + + +OrbitCameraInputTouch.pinchMidPoint = new pc.Vec2(); + +OrbitCameraInputTouch.prototype.onTouchMove = function (event) { + var pinchMidPoint = OrbitCameraInputTouch.pinchMidPoint; + + // We only care about the first touch for camera rotation. Work out the difference moved since the last event + // and use that to update the camera target position + var touches = event.touches; + if (touches.length == 1) { + var touch = touches[0]; + + this.orbitCamera.pitch -= (touch.y - this.lastTouchPoint.y) * this.orbitSensitivity; + this.orbitCamera.yaw -= (touch.x - this.lastTouchPoint.x) * this.orbitSensitivity; + + this.lastTouchPoint.set(touch.x, touch.y); + + } else if (touches.length == 2) { + // Calculate the difference in pinch distance since the last event + var currentPinchDistance = this.getPinchDistance(touches[0], touches[1]); + var diffInPinchDistance = currentPinchDistance - this.lastPinchDistance; + this.lastPinchDistance = currentPinchDistance; + + this.orbitCamera.distance -= (diffInPinchDistance * this.distanceSensitivity * 0.1) * (this.orbitCamera.distance * 0.1); + + // Calculate pan difference + this.calcMidPoint(touches[0], touches[1], pinchMidPoint); + this.pan(pinchMidPoint); + this.lastPinchMidPoint.copy(pinchMidPoint); + } +}; diff --git a/libs/playcanvas/v1.65.0/playcanvas-latest.js b/libs/playcanvas/v1.65.0/playcanvas-latest.js new file mode 100644 index 000000000..fe74138c3 --- /dev/null +++ b/libs/playcanvas/v1.65.0/playcanvas-latest.js @@ -0,0 +1,6 @@ +/** + * @license + * PlayCanvas Engine v1.65.0 revision 14701d67f (RELEASE) + * Copyright 2011-2023 PlayCanvas Ltd. All rights reserved. + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).pc={})}(this,(function(e){"use strict";function t(e,t,i){e.prototype[t]||Object.defineProperty(e.prototype,t,{value:i,configurable:!0,enumerable:!1,writable:!0})}t(Array,"fill",(function(e){if(null==this)throw new TypeError("this is null or not defined");for(var t=Object(this),i=t.length>>>0,n=arguments[1]>>0,s=n<0?Math.max(i+n,0):Math.min(n,i),r=arguments[2],a=void 0===r?i:r>>0,o=a<0?Math.max(i+a,0):Math.min(a,i);s>>0;if("function"!=typeof e)throw TypeError("predicate must be a function");for(var n=arguments[1],s=0;s>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n=arguments[1],s=0;s0)-(e<0)||+e}),void 0===Number.isFinite&&(Number.isFinite=function(e){return"number"==typeof e&&isFinite(e)}),"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var i=Object(e),n=1;nthis.length)&&(t=this.length),this.substring(t-e.length,t)===e})),t(String,"includes",(function(e,t){return"number"!=typeof t&&(t=0),!(t+e.length>this.length)&&-1!==this.indexOf(e,t)})),t(String,"startsWith",(function(e,t){var i=t>0?0|t:0;return this.substring(i,i+e.length)===e})),t(String,"trimEnd",(function(){return this.replace(new RegExp(/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/.source+"$","g"),"")}));for(var i=0,n=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array];i=0;--s){var r=this.tryEntries[s],a=r.completion;if("root"===r.tryLoc)return n("end");if(r.tryLoc<=this.prev){var o=i.call(r,"catchLoc"),h=i.call(r,"finallyLoc");if(o&&h){if(this.prev=0;--n){var s=this.tryEntries[n];if(s.tryLoc<=this.prev&&i.call(s,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),A(i),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var s=n.arg;A(i)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:E(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=void 0),u}},e}function _(e,t,i,n,s,r,a){try{var o=e[r](a),h=o.value}catch(e){return void i(e)}o.done?t(h):Promise.resolve(h).then(n,s)}function g(e){return function(){var t=this,i=arguments;return new Promise((function(n,s){var r=e.apply(t,i);function a(e){_(r,n,s,a,o,"next",e)}function o(e){_(r,n,s,a,o,"throw",e)}a(void 0)}))}}function v(e,t){for(var i=0;ie.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function C(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var E=function(){function e(){this._callbacks=new Map,this._callbackActive=new Map}var t=e.prototype;return t.initEventHandler=function(){this._callbacks=new Map,this._callbackActive=new Map},t._addCallback=function(e,t,i,n){if(e&&"string"==typeof e&&t){if(this._callbacks.has(e)||this._callbacks.set(e,[]),this._callbackActive.has(e)){var s=this._callbackActive.get(e);s&&s===this._callbacks.get(e)&&this._callbackActive.set(e,s.slice())}this._callbacks.get(e).push({callback:t,scope:i,once:n})}},t.on=function(e,t,i){return void 0===i&&(i=this),this._addCallback(e,t,i,!1),this},t.once=function(e,t,i){return void 0===i&&(i=this),this._addCallback(e,t,i,!0),this},t.off=function(e,t,i){if(e)this._callbackActive.has(e)&&this._callbackActive.get(e)===this._callbacks.get(e)&&this._callbackActive.set(e,this._callbackActive.get(e).slice());else for(var n,s=A(this._callbackActive);!(n=s()).done;){var r=n.value,a=r[0],o=r[1];this._callbacks.has(a)&&(this._callbacks.get(a)===o&&this._callbackActive.set(a,o.slice()))}if(e)if(t){var h=this._callbacks.get(e);if(!h)return this;for(var l=h.length,c=0;c0?r=r.slice(0,r.length-2):(a>0&&r.push(I.delimiter),r.push(n[a])));return s=r.join(""),t||s[0]!==I.delimiter||(s=s.slice(1)),i&&s[s.length-1]!==I.delimiter&&(s+=I.delimiter),s},split:function(e){var t=e.lastIndexOf(I.delimiter);return-1!==t?[e.substring(0,t),e.substring(t+1)]:["",e]},getBasename:function(e){return I.split(e)[1]},getDirectory:function(e){return I.split(e)[0]},getExtension:function(e){var t=e.split("?")[0].split(".").pop();return t!==e?"."+t:""},isRelativePath:function(e){return"/"!==e.charAt(0)&&null===e.match(/:\/\//)},extractPath:function(e){var t="",i=e.split("/"),n=0;if(i.length>1)if(I.isRelativePath(e))if("."===i[0])for(n=0;n0),U=!("browser"!==D||!navigator.getGamepads&&!navigator.webkitGetGamepads),N="undefined"!=typeof Worker,z=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,!1}});window.addEventListener("testpassive",null,t),window.removeEventListener("testpassive",null,t)}catch(e){}return e}(),V={environment:D,global:"browser"===D?window:global,browser:"browser"===D,desktop:["windows","osx","linux","cros"].includes(O),mobile:["android","ios"].includes(O),ios:"ios"===O,android:"android"===O,xbox:F,gamepads:U,touch:B,workers:N,passiveEvents:z,browserName:k},G="abcdefghijklmnopqrstuvwxyz",H="ABCDEFGHIJKLMNOPQRSTUVWXYZ",W=55296,X=56319,j=56320,q=57343,Y=127462,K=127487,Z=65024,Q=65039;function $(e,t){void 0===t&&(t=0);var i=e.length;if(t<0||t>=i)return null;var n=e.charCodeAt(t);if(i>1&&n>=W&&n<=X){var s=e.charCodeAt(t+1);if(s>=j&&s<=q)return{code:1024*(n-W)+s-j+65536,long:!0}}return{code:n,long:!1}}function J(e,t,i){if(!e)return!1;var n=$(e);if(n){var s=n.code;return s>=t&&s<=i}return!1}function ee(e,t){if(t===e.length-1)return 1;if(J(e[t],W,X)){var i=e.substring(t,t+2),n=e.substring(t+2,t+4);return J(n,127995,127999)||J(i,Y,K)&&J(n,Y,K)?4:J(n,Z,Q)?3:2}return J(e[t+1],Z,Q)?2:1}var te,ie,ne,se={ASCII_LOWERCASE:G,ASCII_UPPERCASE:H,ASCII_LETTERS:G+H,format:function(e){for(var t=0;t<(arguments.length<=1?0:arguments.length-1);t++)e=e.replace("{"+t+"}",t+1<1||arguments.length<=t+1?void 0:arguments[t+1]);return e},getCodePoint:function(e,t){var i=$(e,t);return i&&i.code},getCodePoints:function(e){if("string"!=typeof e)throw new TypeError("Not a string");for(var t,i=0,n=[];t=$(e,i);)n.push(t.code),i+=t.long?2:1;return n},getSymbols:function(e){if("string"!=typeof e)throw new TypeError("Not a string");for(var t,i=0,n=e.length,s=[],r=0;i65535?[55296+(t>>10),t%1024+56320]:[e],n.push(String.fromCharCode.apply(null,i));return n.join("")}},re=function(){function e(){this._list=[],this._index={}}var t=e.prototype;return t.push=function(e,t){if(this._index[e])throw Error("Key already in index "+e);var i=this._list.push(t)-1;this._index[e]=i},t.has=function(e){return void 0!==this._index[e]},t.get=function(e){var t=this._index[e];return void 0!==t?this._list[t]:null},t.remove=function(e){var t=this._index[e];if(void 0!==t){for(e in this._list.splice(t,1),delete this._index[e],this._index){var i=this._index[e];i>t&&(this._index[e]=i-1)}return!0}return!1},t.list=function(){return this._list},t.clear=function(){for(var e in this._list.length=0,this._index)delete this._index[e]},e}(),ae=function(){function e(){}return e.loadScript=function(e,t){var i=document.createElement("script");i.setAttribute("src",e),i.onload=function(){t(null)},i.onerror=function(){t("Failed to load script='"+e+"'")},document.body.appendChild(i)},e.loadWasm=function(t,i,n){var s=e.wasmSupported()&&i.glueUrl&&i.wasmUrl?i.glueUrl:i.fallbackUrl;s?e.loadScript(s,(function(e){if(e)n(e,null);else{var s=window[t];window[t]=void 0,s({locateFile:function(){return i.wasmUrl},onAbort:function(){n("wasm module aborted.")}}).then((function(e){n(null,e)}))}})):n("No supported wasm modules found.",null)},e.getModule=function(t){return e.modules.hasOwnProperty(t)||(e.modules[t]={config:null,initializing:!1,instance:null,callbacks:[]}),e.modules[t]},e.initialize=function(t,i){if(!i.initializing){var n=i.config;(n.glueUrl||n.wasmUrl||n.fallbackUrl)&&(i.initializing=!0,e.loadWasm(t,n,(function(e,s){e?n.errorHandler?n.errorHandler(e):console.error("failed to initialize module="+t+" error="+e):(i.instance=s,i.callbacks.forEach((function(e){e(s)})))})))}},e}();ae.modules={},ae.wasmSupported=(te=function(){try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}return!1},ne=ie={},function(){return ne===ie&&(ne=te()),ne});var oe=function(){function e(){}return e.setConfig=function(e,t){var i=ae.getModule(e);i.config=t,i.callbacks.length>0&&ae.initialize(e,i)},e.getConfig=function(e){var t;return null==(t=ae.modules)||null==(t=t[e])?void 0:t.config},e.getInstance=function(e,t){var i=ae.getModule(e);i.instance?t(i.instance):(i.callbacks.push(t),i.config&&ae.initialize(e,i))},e}(),he=function(){function e(e){this.arraybuffer=e,this.dataView=new DataView(e),this.offset=0,this.stack=[]}var t=e.prototype;return t.reset=function(e){void 0===e&&(e=0),this.offset=e},t.skip=function(e){this.offset+=e},t.align=function(e){this.offset=this.offset+e-1&~(e-1)},t._inc=function(e){return this.offset+=e,this.offset-e},t.readChar=function(){return String.fromCharCode(this.dataView.getUint8(this.offset++))},t.readChars=function(e){for(var t="",i=0;i=e.byteLength);){var i=String.fromCharCode(this.readU8());if("\n"===i)break;t+=i}return t},y(e,[{key:"remainingBytes",get:function(){return this.dataView.byteLength-this.offset}}]),e}(),le=function(){function e(e){this.items=[],this.length=0,this.loopIndex=-1,this._sortBy=void 0,this._sortHandler=void 0,this._sortBy=e.sortBy,this._sortHandler=this._doSort.bind(this)}var t=e.prototype;return t._binarySearch=function(e){for(var t,i,n=0,s=this.items.length-1,r=e[this._sortBy];n<=s;)t=Math.floor((n+s)/2),(i=this.items[t][this._sortBy])<=r?n=t+1:i>r&&(s=t-1);return n},t._doSort=function(e,t){var i=this._sortBy;return e[i]-t[i]},t.insert=function(e){var t=this._binarySearch(e);this.items.splice(t,0,e),this.length++,this.loopIndex>=t&&this.loopIndex++},t.append=function(e){this.items.push(e),this.length++},t.remove=function(e){var t=this.items.indexOf(e);t<0||(this.items.splice(t,1),this.length--,this.loopIndex>=t&&this.loopIndex--)},t.sort=function(){var e=this.loopIndex>=0?this.items[this.loopIndex]:null;this.items.sort(this._sortHandler),null!==e&&(this.loopIndex=this.items.indexOf(e))},e}(),ce=function(e){function t(t){var i;return(i=e.call(this)||this)._index={},i._list=[],i._parent=t,i}S(t,e);var i=t.prototype;return i.add=function(){var e=!1,t=this._processArguments(arguments,!0);if(!t.length)return e;for(var i=0;i=i?i:e<=t?t:e},intToBytes24:function(e){return[e>>16&255,e>>8&255,255&e]},intToBytes32:function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},bytesToInt24:function(e,t,i){return e.length&&(i=e[2],t=e[1],e=e[0]),e<<16|t<<8|i},bytesToInt32:function(e,t,i,n){return e.length&&(n=e[3],i=e[2],t=e[1],e=e[0]),(e<<24|t<<16|i<<8|n)>>>0},lerp:function(e,t,i){return e+(t-e)*pe.clamp(i,0,1)},lerpAngle:function(e,t,i){return t-e>180&&(t-=360),t-e<-180&&(t+=360),pe.lerp(e,t,pe.clamp(i,0,1))},powerOfTwo:function(e){return 0!==e&&!(e&e-1)},nextPowerOfTwo:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},nearestPowerOfTwo:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.log(2)))},random:function(e,t){var i=t-e;return Math.random()*i+e},smoothstep:function(e,t,i){return i<=e?0:i>=t?1:(i=(i-e)/(t-e))*i*(3-2*i)},smootherstep:function(e,t,i){return i<=e?0:i>=t?1:(i=(i-e)/(t-e))*i*i*(i*(6*i-15)+10)},roundUp:function(e,t){return 0===t?e:Math.ceil(e/t)*t},between:function(e,t,i,n){var s=Math.min(t,i),r=Math.max(t,i);return n?e>=s&&e<=r:e>s&&e7?t=pe.intToBytes32(i):(t=pe.intToBytes24(i))[3]=255,this.set(t[0]/255,t[1]/255,t[2]/255,t[3]/255),this},t.toString=function(e){var t="#"+((1<<24)+(Math.round(255*this.r)<<16)+(Math.round(255*this.g)<<8)+Math.round(255*this.b)).toString(16).slice(1);if(!0===e){var i=Math.round(255*this.a).toString(16);this.a<16/255?t+="0"+i:t+=i}return t},e}();me.BLACK=Object.freeze(new me(0,0,0,1)),me.BLUE=Object.freeze(new me(0,0,1,1)),me.CYAN=Object.freeze(new me(0,1,1,1)),me.GRAY=Object.freeze(new me(.5,.5,.5,1)),me.GREEN=Object.freeze(new me(0,1,0,1)),me.MAGENTA=Object.freeze(new me(1,0,1,1)),me.RED=Object.freeze(new me(1,0,0,1)),me.WHITE=Object.freeze(new me(1,1,1,1)),me.YELLOW=Object.freeze(new me(1,1,0,1));var _e=function(){function e(e,t){void 0===t&&(t=0),this._curve=void 0,this._left=-1/0,this._right=1/0,this._recip=0,this._p0=0,this._p1=0,this._m0=0,this._m1=0,this._curve=e,this._reset(t)}var t=e.prototype;return t.evaluate=function(e,t){var i;void 0===t&&(t=!1),(t||e=this._right)&&this._reset(e);var n=this._curve.type;if(5===n)i=this._p0;else{var s=0===this._recip?0:(e-this._left)*this._recip;i=0===n?pe.lerp(this._p0,this._p1,s):1===n?pe.lerp(this._p0,this._p1,s*s*(3-2*s)):this._evaluateHermite(this._p0,this._p1,this._m0,this._m1,s)}return i},t._reset=function(e){var t=this._curve.keys,i=t.length;if(i)if(e=t[i-1][0])this._left=t[i-1][0],this._right=1/0,this._recip=0,this._p0=this._p1=t[i-1][1],this._m0=this._m1=0;else{for(var n=0;e>=t[n+1][0];)n++;this._left=t[n][0],this._right=t[n+1][0];var s=1/(this._right-this._left);this._recip=isFinite(s)?s:0,this._p0=t[n][1],this._p1=t[n+1][1],this._isHermite()&&this._calcTangents(t,n)}else this._left=-1/0,this._right=1/0,this._recip=0,this._p0=this._p1=this._m0=this._m1=0},t._isHermite=function(){return 2===this._curve.type||3===this._curve.type||4===this._curve.type},t._calcTangents=function(e,t){var i,n,s=e[t],r=e[t+1];if(i=0===t?[e[0][0]+(e[0][0]-e[1][0]),e[0][1]+(e[0][1]-e[1][1])]:e[t-1],n=t===e.length-2?[e[t+1][0]+(e[t+1][0]-e[t][0]),e[t+1][1]+(e[t+1][1]-e[t][1])]:e[t+2],4===this._curve.type){var a=2*(r[0]-s[0])/(r[0]-i[0]),o=2*(r[0]-s[0])/(n[0]-s[0]);this._m0=this._curve.tension*(isFinite(a)?a:0)*(r[1]-i[1]),this._m1=this._curve.tension*(isFinite(o)?o:0)*(n[1]-s[1])}else{var h=(r[0]-s[0])/(s[0]-i[0]),l=(r[0]-s[0])/(n[0]-r[0]),c=s[1]+(i[1]-s[1])*(isFinite(h)?h:0),u=r[1]+(n[1]-r[1])*(isFinite(l)?l:0),d=2===this._curve.type?.5:this._curve.tension;this._m0=d*(r[1]-c),this._m1=d*(u-s[1])}},t._evaluateHermite=function(e,t,i,n,s){var r=s*s,a=s+s,o=1-s,h=o*o;return e*((1+a)*h)+i*(s*h)+t*(r*(3-a))+n*(r*(s-1))},e}(),ge=function(){function e(e){if(this.keys=[],this.type=1,this.tension=.5,this._eval=new _e(this),e)for(var t=0;te);s++);var r=[e,t];return this.keys.splice(s,0,r),r},t.get=function(e){return this.keys[e]},t.sort=function(){this.keys.sort((function(e,t){return e[0]-t[0]}))},t.value=function(e){return this._eval.evaluate(e,!0)},t.closest=function(e){for(var t=this.keys,i=t.length,n=2,s=null,r=0;r=a))break;n=a,s=t[r]}return s},t.clone=function(){var e=new this.constructor;return e.keys=p(e.keys,this.keys),e.type=this.type,e.tension=this.tension,e},t.quantize=function(e){e=Math.max(e,2);var t=new Float32Array(e),i=1/(e-1);t[0]=this._eval.evaluate(0,!0);for(var n=1;n1)for(var e=0;e0){var t=1/Math.sqrt(e);this.x*=t,this.y*=t,this.z*=t}return this},t.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},t.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},t.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},t.min=function(e){return e.xthis.x&&(this.x=e.x),e.y>this.y&&(this.y=e.y),e.z>this.z&&(this.z=e.z),this},t.project=function(e){var t=(this.x*e.x+this.y*e.y+this.z*e.z)/(e.x*e.x+e.y*e.y+e.z*e.z);return this.x=e.x*t,this.y=e.y*t,this.z=e.z*t,this},t.set=function(e,t,i){return this.x=e,this.y=t,this.z=i,this},t.sub=function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this},t.sub2=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},t.subScalar=function(e){return this.x-=e,this.y-=e,this.z-=e,this},t.toString=function(){return"["+this.x+", "+this.y+", "+this.z+"]"},e}();ye.ZERO=Object.freeze(new ye(0,0,0)),ye.ONE=Object.freeze(new ye(1,1,1)),ye.UP=Object.freeze(new ye(0,1,0)),ye.DOWN=Object.freeze(new ye(0,-1,0)),ye.RIGHT=Object.freeze(new ye(1,0,0)),ye.LEFT=Object.freeze(new ye(-1,0,0)),ye.FORWARD=Object.freeze(new ye(0,0,-1)),ye.BACK=Object.freeze(new ye(0,0,1));var xe=function(){function e(){this.data=new Float32Array(9),this.data[0]=this.data[4]=this.data[8]=1}var t=e.prototype;return t.clone=function(){return(new(0,this.constructor)).copy(this)},t.copy=function(e){var t=e.data,i=this.data;return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],this},t.set=function(e){var t=this.data;return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],this},t.equals=function(e){var t=this.data,i=e.data;return t[0]===i[0]&&t[1]===i[1]&&t[2]===i[2]&&t[3]===i[3]&&t[4]===i[4]&&t[5]===i[5]&&t[6]===i[6]&&t[7]===i[7]&&t[8]===i[8]},t.isIdentity=function(){var e=this.data;return 1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&1===e[4]&&0===e[5]&&0===e[6]&&0===e[7]&&1===e[8]},t.setIdentity=function(){var e=this.data;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,this},t.toString=function(){return"["+this.data.join(", ")+"]"},t.transpose=function(){var e,t=this.data;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this},t.setFromMat4=function(e){var t=e.data,i=this.data;return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[4],i[4]=t[5],i[5]=t[6],i[6]=t[8],i[7]=t[9],i[8]=t[10],this},t.transformVector=function(e,t){void 0===t&&(t=new ye);var i=this.data,n=e.x,s=e.y,r=e.z;return t.x=n*i[0]+s*i[3]+r*i[6],t.y=n*i[1]+s*i[4]+r*i[7],t.z=n*i[2]+s*i[5]+r*i[8],t},e}();xe.IDENTITY=Object.freeze(new xe),xe.ZERO=Object.freeze((new xe).set([0,0,0,0,0,0,0,0,0]));var Se=function(){function e(e,t){void 0===e&&(e=0),void 0===t&&(t=0),this.x=void 0,this.y=void 0,2===e.length?(this.x=e[0],this.y=e[1]):(this.x=e,this.y=t)}var t=e.prototype;return t.add=function(e){return this.x+=e.x,this.y+=e.y,this},t.add2=function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this},t.addScalar=function(e){return this.x+=e,this.y+=e,this},t.clone=function(){return new(0,this.constructor)(this.x,this.y)},t.copy=function(e){return this.x=e.x,this.y=e.y,this},t.cross=function(e){return this.x*e.y-this.y*e.x},t.distance=function(e){var t=this.x-e.x,i=this.y-e.y;return Math.sqrt(t*t+i*i)},t.div=function(e){return this.x/=e.x,this.y/=e.y,this},t.div2=function(e,t){return this.x=e.x/t.x,this.y=e.y/t.y,this},t.divScalar=function(e){return this.x/=e,this.y/=e,this},t.dot=function(e){return this.x*e.x+this.y*e.y},t.equals=function(e){return this.x===e.x&&this.y===e.y},t.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.lengthSq=function(){return this.x*this.x+this.y*this.y},t.lerp=function(e,t,i){return this.x=e.x+i*(t.x-e.x),this.y=e.y+i*(t.y-e.y),this},t.mul=function(e){return this.x*=e.x,this.y*=e.y,this},t.mul2=function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this},t.mulScalar=function(e){return this.x*=e,this.y*=e,this},t.normalize=function(){var e=this.x*this.x+this.y*this.y;if(e>0){var t=1/Math.sqrt(e);this.x*=t,this.y*=t}return this},t.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},t.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},t.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},t.min=function(e){return e.xthis.x&&(this.x=e.x),e.y>this.y&&(this.y=e.y),this},t.set=function(e,t){return this.x=e,this.y=t,this},t.sub=function(e){return this.x-=e.x,this.y-=e.y,this},t.sub2=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this},t.subScalar=function(e){return this.x-=e,this.y-=e,this},t.toString=function(){return"["+this.x+", "+this.y+"]"},e.angleRad=function(e,t){return Math.atan2(e.x*t.y-e.y*t.x,e.x*t.x+e.y*t.y)},e}();Se.ZERO=Object.freeze(new Se(0,0)),Se.ONE=Object.freeze(new Se(1,1)),Se.UP=Object.freeze(new Se(0,1)),Se.DOWN=Object.freeze(new Se(0,-1)),Se.RIGHT=Object.freeze(new Se(1,0)),Se.LEFT=Object.freeze(new Se(-1,0));var be=function(){function e(e,t,i,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x=void 0,this.y=void 0,this.z=void 0,this.w=void 0,4===e.length?(this.x=e[0],this.y=e[1],this.z=e[2],this.w=e[3]):(this.x=e,this.y=t,this.z=i,this.w=n)}var t=e.prototype;return t.add=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this},t.add2=function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this},t.addScalar=function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this},t.clone=function(){return new(0,this.constructor)(this.x,this.y,this.z,this.w)},t.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},t.div=function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this},t.div2=function(e,t){return this.x=e.x/t.x,this.y=e.y/t.y,this.z=e.z/t.z,this.w=e.w/t.w,this},t.divScalar=function(e){return this.x/=e,this.y/=e,this.z/=e,this.w/=e,this},t.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w},t.equals=function(e){return this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w},t.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},t.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},t.lerp=function(e,t,i){return this.x=e.x+i*(t.x-e.x),this.y=e.y+i*(t.y-e.y),this.z=e.z+i*(t.z-e.z),this.w=e.w+i*(t.w-e.w),this},t.mul=function(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this},t.mul2=function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this.w=e.w*t.w,this},t.mulScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this},t.normalize=function(){var e=this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w;if(e>0){var t=1/Math.sqrt(e);this.x*=t,this.y*=t,this.z*=t,this.w*=t}return this},t.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},t.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},t.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},t.min=function(e){return e.xthis.x&&(this.x=e.x),e.y>this.y&&(this.y=e.y),e.z>this.z&&(this.z=e.z),e.w>this.w&&(this.w=e.w),this},t.set=function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},t.sub=function(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this},t.sub2=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this},t.subScalar=function(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this},t.toString=function(){return"["+this.x+", "+this.y+", "+this.z+", "+this.w+"]"},e}();be.ZERO=Object.freeze(new be(0,0,0,0)),be.ONE=Object.freeze(new be(1,1,1,1));var we=new Se,Te=new ye,Ae=new ye,Ce=new ye,Ee=new ye,Me=function(){function e(){this.data=new Float32Array(16),this.data[0]=this.data[5]=this.data[10]=this.data[15]=1}e._getPerspectiveHalfSize=function(e,t,i,n,s){s?(e.x=n*Math.tan(t*Math.PI/360),e.y=e.x/i):(e.y=n*Math.tan(t*Math.PI/360),e.x=e.y*i)};var t=e.prototype;return t.add2=function(e,t){var i=e.data,n=t.data,s=this.data;return s[0]=i[0]+n[0],s[1]=i[1]+n[1],s[2]=i[2]+n[2],s[3]=i[3]+n[3],s[4]=i[4]+n[4],s[5]=i[5]+n[5],s[6]=i[6]+n[6],s[7]=i[7]+n[7],s[8]=i[8]+n[8],s[9]=i[9]+n[9],s[10]=i[10]+n[10],s[11]=i[11]+n[11],s[12]=i[12]+n[12],s[13]=i[13]+n[13],s[14]=i[14]+n[14],s[15]=i[15]+n[15],this},t.add=function(e){return this.add2(this,e)},t.clone=function(){return(new(0,this.constructor)).copy(this)},t.copy=function(e){var t=e.data,i=this.data;return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15],this},t.equals=function(e){var t=this.data,i=e.data;return t[0]===i[0]&&t[1]===i[1]&&t[2]===i[2]&&t[3]===i[3]&&t[4]===i[4]&&t[5]===i[5]&&t[6]===i[6]&&t[7]===i[7]&&t[8]===i[8]&&t[9]===i[9]&&t[10]===i[10]&&t[11]===i[11]&&t[12]===i[12]&&t[13]===i[13]&&t[14]===i[14]&&t[15]===i[15]},t.isIdentity=function(){var e=this.data;return 1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15]},t.mul2=function(e,t){var i,n,s,r,a=e.data,o=t.data,h=this.data,l=a[0],c=a[1],u=a[2],d=a[3],f=a[4],p=a[5],m=a[6],_=a[7],g=a[8],v=a[9],y=a[10],x=a[11],S=a[12],b=a[13],w=a[14],T=a[15];return i=o[0],n=o[1],s=o[2],r=o[3],h[0]=l*i+f*n+g*s+S*r,h[1]=c*i+p*n+v*s+b*r,h[2]=u*i+m*n+y*s+w*r,h[3]=d*i+_*n+x*s+T*r,i=o[4],n=o[5],s=o[6],r=o[7],h[4]=l*i+f*n+g*s+S*r,h[5]=c*i+p*n+v*s+b*r,h[6]=u*i+m*n+y*s+w*r,h[7]=d*i+_*n+x*s+T*r,i=o[8],n=o[9],s=o[10],r=o[11],h[8]=l*i+f*n+g*s+S*r,h[9]=c*i+p*n+v*s+b*r,h[10]=u*i+m*n+y*s+w*r,h[11]=d*i+_*n+x*s+T*r,i=o[12],n=o[13],s=o[14],r=o[15],h[12]=l*i+f*n+g*s+S*r,h[13]=c*i+p*n+v*s+b*r,h[14]=u*i+m*n+y*s+w*r,h[15]=d*i+_*n+x*s+T*r,this},t.mulAffine2=function(e,t){var i,n,s,r=e.data,a=t.data,o=this.data,h=r[0],l=r[1],c=r[2],u=r[4],d=r[5],f=r[6],p=r[8],m=r[9],_=r[10],g=r[12],v=r[13],y=r[14];return i=a[0],n=a[1],s=a[2],o[0]=h*i+u*n+p*s,o[1]=l*i+d*n+m*s,o[2]=c*i+f*n+_*s,o[3]=0,i=a[4],n=a[5],s=a[6],o[4]=h*i+u*n+p*s,o[5]=l*i+d*n+m*s,o[6]=c*i+f*n+_*s,o[7]=0,i=a[8],n=a[9],s=a[10],o[8]=h*i+u*n+p*s,o[9]=l*i+d*n+m*s,o[10]=c*i+f*n+_*s,o[11]=0,i=a[12],n=a[13],s=a[14],o[12]=h*i+u*n+p*s+g,o[13]=l*i+d*n+m*s+v,o[14]=c*i+f*n+_*s+y,o[15]=1,this},t.mul=function(e){return this.mul2(this,e)},t.transformPoint=function(e,t){void 0===t&&(t=new ye);var i=this.data,n=e.x,s=e.y,r=e.z;return t.x=n*i[0]+s*i[4]+r*i[8]+i[12],t.y=n*i[1]+s*i[5]+r*i[9]+i[13],t.z=n*i[2]+s*i[6]+r*i[10]+i[14],t},t.transformVector=function(e,t){void 0===t&&(t=new ye);var i=this.data,n=e.x,s=e.y,r=e.z;return t.x=n*i[0]+s*i[4]+r*i[8],t.y=n*i[1]+s*i[5]+r*i[9],t.z=n*i[2]+s*i[6]+r*i[10],t},t.transformVec4=function(e,t){void 0===t&&(t=new be);var i=this.data,n=e.x,s=e.y,r=e.z,a=e.w;return t.x=n*i[0]+s*i[4]+r*i[8]+a*i[12],t.y=n*i[1]+s*i[5]+r*i[9]+a*i[13],t.z=n*i[2]+s*i[6]+r*i[10]+a*i[14],t.w=n*i[3]+s*i[7]+r*i[11]+a*i[15],t},t.setLookAt=function(e,t,i){Ce.sub2(e,t).normalize(),Ae.copy(i).normalize(),Te.cross(Ae,Ce).normalize(),Ae.cross(Ce,Te);var n=this.data;return n[0]=Te.x,n[1]=Te.y,n[2]=Te.z,n[3]=0,n[4]=Ae.x,n[5]=Ae.y,n[6]=Ae.z,n[7]=0,n[8]=Ce.x,n[9]=Ce.y,n[10]=Ce.z,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,this},t.setFrustum=function(e,t,i,n,s,r){var a=2*s,o=t-e,h=n-i,l=r-s,c=this.data;return c[0]=a/o,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=a/h,c[6]=0,c[7]=0,c[8]=(t+e)/o,c[9]=(n+i)/h,c[10]=(-r-s)/l,c[11]=-1,c[12]=0,c[13]=0,c[14]=-a*r/l,c[15]=0,this},t.setPerspective=function(t,i,n,s,r){return e._getPerspectiveHalfSize(we,t,i,n,r),this.setFrustum(-we.x,we.x,-we.y,we.y,n,s)},t.setOrtho=function(e,t,i,n,s,r){var a=this.data;return a[0]=2/(t-e),a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2/(n-i),a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=-2/(r-s),a[11]=0,a[12]=-(t+e)/(t-e),a[13]=-(n+i)/(n-i),a[14]=-(r+s)/(r-s),a[15]=1,this},t.setFromAxisAngle=function(e,t){t*=pe.DEG_TO_RAD;var i=e.x,n=e.y,s=e.z,r=Math.cos(t),a=Math.sin(t),o=1-r,h=o*i,l=o*n,c=this.data;return c[0]=h*i+r,c[1]=h*n+a*s,c[2]=h*s-a*n,c[3]=0,c[4]=h*n-a*s,c[5]=l*n+r,c[6]=l*s+a*i,c[7]=0,c[8]=h*s+a*n,c[9]=l*s-i*a,c[10]=o*s*s+r,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this},t.setTranslate=function(e,t,i){var n=this.data;return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=e,n[13]=t,n[14]=i,n[15]=1,this},t.setScale=function(e,t,i){var n=this.data;return n[0]=e,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=i,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this},t.setViewport=function(e,t,i,n){var s=this.data;return s[0]=.5*i,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=.5*n,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=.5,s[11]=0,s[12]=e+.5*i,s[13]=t+.5*n,s[14]=.5,s[15]=1,this},t.setReflection=function(e,t){var i=e.x,n=e.y,s=e.z,r=this.data;return r[0]=1-2*i*i,r[1]=-2*i*n,r[2]=-2*i*s,r[3]=0,r[4]=-2*i*n,r[5]=1-2*n*n,r[6]=-2*n*s,r[7]=0,r[8]=-2*i*s,r[9]=-2*n*s,r[10]=1-2*s*s,r[11]=0,r[12]=-2*i*t,r[13]=-2*n*t,r[14]=-2*s*t,r[15]=1,this},t.invert=function(){var e=this.data,t=e[0],i=e[1],n=e[2],s=e[3],r=e[4],a=e[5],o=e[6],h=e[7],l=e[8],c=e[9],u=e[10],d=e[11],f=e[12],p=e[13],m=e[14],_=e[15],g=t*a-i*r,v=t*o-n*r,y=t*h-s*r,x=i*o-n*a,S=i*h-s*a,b=n*h-s*o,w=l*p-c*f,T=l*m-u*f,A=l*_-d*f,C=c*m-u*p,E=c*_-d*p,M=u*_-d*m,P=g*M-v*E+y*C+x*A-S*T+b*w;if(0===P)this.setIdentity();else{var R=1/P;e[0]=(a*M-o*E+h*C)*R,e[1]=(-i*M+n*E-s*C)*R,e[2]=(p*b-m*S+_*x)*R,e[3]=(-c*b+u*S-d*x)*R,e[4]=(-r*M+o*A-h*T)*R,e[5]=(t*M-n*A+s*T)*R,e[6]=(-f*b+m*y-_*v)*R,e[7]=(l*b-u*y+d*v)*R,e[8]=(r*E-a*A+h*w)*R,e[9]=(-t*E+i*A-s*w)*R,e[10]=(f*S-p*y+_*g)*R,e[11]=(-l*S+c*y-d*g)*R,e[12]=(-r*C+a*T-o*w)*R,e[13]=(t*C-i*T+n*w)*R,e[14]=(-f*x+p*v-m*g)*R,e[15]=(l*x-c*v+u*g)*R}return this},t.set=function(e){var t=this.data;return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],this},t.setIdentity=function(){var e=this.data;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},t.setTRS=function(e,t,i){var n=t.x,s=t.y,r=t.z,a=t.w,o=i.x,h=i.y,l=i.z,c=n+n,u=s+s,d=r+r,f=n*c,p=n*u,m=n*d,_=s*u,g=s*d,v=r*d,y=a*c,x=a*u,S=a*d,b=this.data;return b[0]=(1-(_+v))*o,b[1]=(p+S)*o,b[2]=(m-x)*o,b[3]=0,b[4]=(p-S)*h,b[5]=(1-(f+v))*h,b[6]=(g+y)*h,b[7]=0,b[8]=(m+x)*l,b[9]=(g-y)*l,b[10]=(1-(f+_))*l,b[11]=0,b[12]=e.x,b[13]=e.y,b[14]=e.z,b[15]=1,this},t.transpose=function(){var e,t=this.data;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this},t.invertTo3x3=function(e){var t=this.data,i=e.data,n=t[0],s=t[1],r=t[2],a=t[4],o=t[5],h=t[6],l=t[8],c=t[9],u=t[10],d=u*o-h*c,f=-u*s+r*c,p=h*s-r*o,m=-u*a+h*l,_=u*n-r*l,g=-h*n+r*a,v=c*a-o*l,y=-c*n+s*l,x=o*n-s*a,S=n*d+s*m+r*v;if(0===S)return this;var b=1/S;return i[0]=b*d,i[1]=b*f,i[2]=b*p,i[3]=b*m,i[4]=b*_,i[5]=b*g,i[6]=b*v,i[7]=b*y,i[8]=b*x,this},t.getTranslation=function(e){return void 0===e&&(e=new ye),e.set(this.data[12],this.data[13],this.data[14])},t.getX=function(e){return void 0===e&&(e=new ye),e.set(this.data[0],this.data[1],this.data[2])},t.getY=function(e){return void 0===e&&(e=new ye),e.set(this.data[4],this.data[5],this.data[6])},t.getZ=function(e){return void 0===e&&(e=new ye),e.set(this.data[8],this.data[9],this.data[10])},t.getScale=function(e){return void 0===e&&(e=new ye),this.getX(Te),this.getY(Ae),this.getZ(Ce),e.set(Te.length(),Ae.length(),Ce.length()),e},t.setFromEulerAngles=function(e,t,i){e*=pe.DEG_TO_RAD,t*=pe.DEG_TO_RAD,i*=pe.DEG_TO_RAD;var n=Math.sin(-e),s=Math.cos(-e),r=Math.sin(-t),a=Math.cos(-t),o=Math.sin(-i),h=Math.cos(-i),l=this.data;return l[0]=a*h,l[1]=-a*o,l[2]=r,l[3]=0,l[4]=s*o+h*n*r,l[5]=s*h-n*r*o,l[6]=-a*n,l[7]=0,l[8]=n*o-s*h*r,l[9]=h*n+s*r*o,l[10]=s*a,l[11]=0,l[12]=0,l[13]=0,l[14]=0,l[15]=1,this},t.getEulerAngles=function(e){void 0===e&&(e=new ye),this.getScale(Ee);var t=Ee.x,i=Ee.y,n=Ee.z;if(0===t||0===i||0===n)return e.set(0,0,0);var s,r,a=this.data,o=Math.asin(-a[2]/t),h=.5*Math.PI;return o-h?(s=Math.atan2(a[6]/i,a[10]/n),r=Math.atan2(a[1]/t,a[0]/t)):(r=0,s=-Math.atan2(a[4]/i,a[5]/i)):(r=0,s=Math.atan2(a[4]/i,a[5]/i)),e.set(s,o,r).mulScalar(pe.RAD_TO_DEG)},t.toString=function(){return"["+this.data.join(", ")+"]"},y(e,[{key:"scaleSign",get:function(){return this.getX(Te),this.getY(Ae),this.getZ(Ce),Te.cross(Te,Ae),Te.dot(Ce)<0?-1:1}}]),e}();Me.IDENTITY=Object.freeze(new Me),Me.ZERO=Object.freeze((new Me).set([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]));var Pe=function(){function e(e,t,i,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),this.x=void 0,this.y=void 0,this.z=void 0,this.w=void 0,4===e.length?(this.x=e[0],this.y=e[1],this.z=e[2],this.w=e[3]):(this.x=e,this.y=t,this.z=i,this.w=n)}var t=e.prototype;return t.clone=function(){return new(0,this.constructor)(this.x,this.y,this.z,this.w)},t.conjugate=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},t.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},t.equals=function(e){return this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w},t.equalsApprox=function(e,t){return void 0===t&&(t=1e-6),Math.abs(this.x-e.x)=.99999?(t=2*Math.atan2(s,o),i=Math.PI/2,n=0):(t=Math.atan2(2*(o*s+r*a),1-2*(s*s+r*r)),i=Math.asin(h),n=Math.atan2(2*(o*a+s*r),1-2*(r*r+a*a))),e.set(t,i,n).mulScalar(pe.RAD_TO_DEG)},t.invert=function(){return this.conjugate().normalize()},t.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},t.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},t.mul=function(e){var t=this.x,i=this.y,n=this.z,s=this.w,r=e.x,a=e.y,o=e.z,h=e.w;return this.x=s*r+t*h+i*o-n*a,this.y=s*a+i*h+n*r-t*o,this.z=s*o+n*h+t*a-i*r,this.w=s*h-t*r-i*a-n*o,this},t.mul2=function(e,t){var i=e.x,n=e.y,s=e.z,r=e.w,a=t.x,o=t.y,h=t.z,l=t.w;return this.x=r*a+i*l+n*h-s*o,this.y=r*o+n*l+s*a-i*h,this.z=r*h+s*l+i*o-n*a,this.w=r*l-i*a-n*o-s*h,this},t.normalize=function(){var e=this.length();return 0===e?(this.x=this.y=this.z=0,this.w=1):(e=1/e,this.x*=e,this.y*=e,this.z*=e,this.w*=e),this},t.set=function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},t.setFromAxisAngle=function(e,t){t*=.5*pe.DEG_TO_RAD;var i=Math.sin(t),n=Math.cos(t);return this.x=i*e.x,this.y=i*e.y,this.z=i*e.z,this.w=n,this},t.setFromEulerAngles=function(e,t,i){if(e instanceof ye){var n=e;e=n.x,t=n.y,i=n.z}var s=.5*pe.DEG_TO_RAD;e*=s,t*=s,i*=s;var r=Math.sin(e),a=Math.cos(e),o=Math.sin(t),h=Math.cos(t),l=Math.sin(i),c=Math.cos(i);return this.x=r*h*c-a*o*l,this.y=a*o*c+r*h*l,this.z=a*h*l-r*o*c,this.w=a*h*c+r*o*l,this},t.setFromMat4=function(e){var t,i,n,s,r,a,o,h,l,c,u,d,f,p;if(t=(e=e.data)[0],i=e[1],n=e[2],s=e[4],r=e[5],a=e[6],o=e[8],h=e[9],l=e[10],0===(d=t*t+i*i+n*n))return this;if(d=1/Math.sqrt(d),0===(f=s*s+r*r+a*a))return this;if(f=1/Math.sqrt(f),0===(p=o*o+h*h+l*l))return this;i*=d,n*=d,s*=f,a*=f,o*=p=1/Math.sqrt(p),h*=p;var m=(t*=d)+(r*=f)+(l*=p);return m>=0?(c=Math.sqrt(m+1),this.w=.5*c,c=.5/c,this.x=(a-h)*c,this.y=(o-n)*c,this.z=(i-s)*c):t>r?t>l?(u=t-(r+l)+1,u=Math.sqrt(u),this.x=.5*u,u=.5/u,this.w=(a-h)*u,this.y=(i+s)*u,this.z=(n+o)*u):(u=l-(t+r)+1,u=Math.sqrt(u),this.z=.5*u,u=.5/u,this.w=(i-s)*u,this.x=(o+n)*u,this.y=(h+a)*u):r>l?(u=r-(l+t)+1,u=Math.sqrt(u),this.y=.5*u,u=.5/u,this.w=(o-n)*u,this.z=(a+h)*u,this.x=(s+i)*u):(u=l-(t+r)+1,u=Math.sqrt(u),this.z=.5*u,u=.5/u,this.w=(i-s)*u,this.x=(o+n)*u,this.y=(h+a)*u),this},t.setFromDirections=function(e,t){var i=1+e.dot(t);return iMath.abs(e.y)?(this.x=-e.z,this.y=0,this.z=e.x,this.w=0):(this.x=0,this.y=-e.z,this.z=e.y,this.w=0):(this.x=e.y*t.z-e.z*t.y,this.y=e.z*t.x-e.x*t.z,this.z=e.x*t.y-e.y*t.x,this.w=i),this.normalize()},t.slerp=function(e,t,i){var n=e.x,s=e.y,r=e.z,a=e.w,o=t.x,h=t.y,l=t.z,c=t.w,u=a*c+n*o+s*h+r*l;if(u<0&&(c=-c,o=-o,h=-h,l=-l,u=-u),Math.abs(u)>=1)return this.w=a,this.x=n,this.y=s,this.z=r,this;var d=Math.acos(u),f=Math.sqrt(1-u*u);if(Math.abs(f)<.001)return this.w=.5*a+.5*c,this.x=.5*n+.5*o,this.y=.5*s+.5*h,this.z=.5*r+.5*l,this;var p=Math.sin((1-i)*d)/f,m=Math.sin(i*d)/f;return this.w=a*p+c*m,this.x=n*p+o*m,this.y=s*p+h*m,this.z=r*p+l*m,this},t.transformVector=function(e,t){void 0===t&&(t=new ye);var i=e.x,n=e.y,s=e.z,r=this.x,a=this.y,o=this.z,h=this.w,l=h*i+a*s-o*n,c=h*n+o*i-r*s,u=h*s+r*n-a*i,d=-r*i-a*n-o*s;return t.x=l*h+d*-r+c*-o-u*-a,t.y=c*h+d*-a+u*-r-l*-o,t.z=u*h+d*-o+l*-a-c*-r,t},t.toString=function(){return"["+this.x+", "+this.y+", "+this.z+", "+this.w+"]"},e}();Pe.IDENTITY=Object.freeze(new Pe(0,0,0,1)),Pe.ZERO=Object.freeze(new Pe(0,0,0,0));var Re=new ye,Ie=new ye,Le=new ye,De=new ye,Oe=new ye,ke=function(){function e(e,t){void 0===e&&(e=new ye),void 0===t&&(t=new ye(.5,.5,.5)),this.center=void 0,this.halfExtents=void 0,this._min=new ye,this._max=new ye,this.center=e,this.halfExtents=t}var t=e.prototype;return t.add=function(e){var t=this.center,i=t.x,n=t.y,s=t.z,r=this.halfExtents,a=r.x,o=r.y,h=r.z,l=i-a,c=i+a,u=n-o,d=n+o,f=s-h,p=s+h,m=e.center,_=m.x,g=m.y,v=m.z,y=e.halfExtents,x=y.x,S=y.y,b=y.z,w=_-x,T=_+x,A=g-S,C=g+S,E=v-b,M=v+b;wc&&(c=T),Ad&&(d=C),Ep&&(p=M),t.x=.5*(l+c),t.y=.5*(u+d),t.z=.5*(f+p),r.x=.5*(c-l),r.y=.5*(d-u),r.z=.5*(p-f)},t.copy=function(e){this.center.copy(e.center),this.halfExtents.copy(e.halfExtents)},t.clone=function(){return new e(this.center.clone(),this.halfExtents.clone())},t.intersects=function(e){var t=this.getMax(),i=this.getMin(),n=e.getMax(),s=e.getMin();return i.x<=n.x&&t.x>=s.x&&i.y<=n.y&&t.y>=s.y&&i.z<=n.z&&t.z>=s.z},t._intersectsRay=function(e,t){var i=Re.copy(this.getMin()).sub(e.origin),n=Ie.copy(this.getMax()).sub(e.origin),s=e.direction;0===s.x?(i.x=i.x<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.x=n.x<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.x/=s.x,n.x/=s.x),0===s.y?(i.y=i.y<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.y=n.y<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.y/=s.y,n.y/=s.y),0===s.z?(i.z=i.z<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.z=n.z<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.z/=s.z,n.z/=s.z);var r=Le.set(Math.min(i.x,n.x),Math.min(i.y,n.y),Math.min(i.z,n.z)),a=De.set(Math.max(i.x,n.x),Math.max(i.y,n.y),Math.max(i.z,n.z)),o=Math.min(Math.min(a.x,a.y),a.z),h=Math.max(Math.max(r.x,r.y),r.z),l=o>=h&&h>=0;return l&&t.copy(e.direction).mulScalar(h).add(e.origin),l},t._fastIntersectsRay=function(e){var t=Re,i=Ie,n=Le,s=De,r=Oe,a=e.direction;return t.sub2(e.origin,this.center),s.set(Math.abs(t.x),Math.abs(t.y),Math.abs(t.z)),n.mul2(t,a),!(s.x>this.halfExtents.x&&n.x>=0)&&(!(s.y>this.halfExtents.y&&n.y>=0)&&(!(s.z>this.halfExtents.z&&n.z>=0)&&(r.set(Math.abs(a.x),Math.abs(a.y),Math.abs(a.z)),i.cross(a,t),i.set(Math.abs(i.x),Math.abs(i.y),Math.abs(i.z)),!(i.x>this.halfExtents.y*r.z+this.halfExtents.z*r.y)&&(!(i.y>this.halfExtents.x*r.z+this.halfExtents.z*r.x)&&!(i.z>this.halfExtents.x*r.y+this.halfExtents.y*r.x)))))},t.intersectsRay=function(e,t){return t?this._intersectsRay(e,t):this._fastIntersectsRay(e)},t.setMinMax=function(e,t){this.center.add2(t,e).mulScalar(.5),this.halfExtents.sub2(t,e).mulScalar(.5)},t.getMin=function(){return this._min.copy(this.center).sub(this.halfExtents)},t.getMax=function(){return this._max.copy(this.center).add(this.halfExtents)},t.containsPoint=function(e){var t=this.getMin(),i=this.getMax();return!(e.xi.x||e.yi.y||e.zi.z)},t.setFromTransformedAabb=function(e,t,i){void 0===i&&(i=!1);var n=e.center,s=e.halfExtents,r=t.data,a=r[0],o=r[4],h=r[8],l=r[1],c=r[5],u=r[9],d=r[2],f=r[6],p=r[10];if(i){var m=a*a+o*o+h*h;if(m>0){var _=1/Math.sqrt(m);a*=_,o*=_,h*=_}if((m=l*l+c*c+u*u)>0){var g=1/Math.sqrt(m);l*=g,c*=g,u*=g}if((m=d*d+f*f+p*p)>0){var v=1/Math.sqrt(m);d*=v,f*=v,p*=v}}this.center.set(r[12]+a*n.x+o*n.y+h*n.z,r[13]+l*n.x+c*n.y+u*n.z,r[14]+d*n.x+f*n.y+p*n.z),this.halfExtents.set(Math.abs(a)*s.x+Math.abs(o)*s.y+Math.abs(h)*s.z,Math.abs(l)*s.x+Math.abs(c)*s.y+Math.abs(u)*s.z,Math.abs(d)*s.x+Math.abs(f)*s.y+Math.abs(p)*s.z)},e.computeMinMax=function(e,t,i,n){if(void 0===n&&(n=e.length/3),n>0){for(var s=e[0],r=e[1],a=e[2],o=s,h=r,l=a,c=3*n,u=3;uo&&(o=d),f>h&&(h=f),p>l&&(l=p)}t.set(s,r,a),i.set(o,h,l)}},t.compute=function(t,i){e.computeMinMax(t,Re,Ie,i),this.setMinMax(Re,Ie)},t.intersectsBoundingSphere=function(e){return this._distanceToBoundingSphereSq(e)<=e.radius*e.radius},t._distanceToBoundingSphereSq=function(e){for(var t=this.getMin(),i=this.getMax(),n=0,s=["x","y","z"],r=0;r<3;++r){var a=0,o=e.center[s[r]],h=t[s[r]],l=i[s[r]],c=0;ol&&(a+=(c=o-l)*c),n+=a}return n},t._expand=function(e,t){Re.add2(this.getMin(),e),Ie.add2(this.getMax(),t),this.setMinMax(Re,Ie)},e}(),Fe=new ye,Be=new ye,Ue=function(){function e(e,t){void 0===e&&(e=new ye),void 0===t&&(t=.5),this.center=void 0,this.radius=void 0,this.center=e,this.radius=t}var t=e.prototype;return t.containsPoint=function(e){var t=Fe.sub2(e,this.center).lengthSq(),i=this.radius;return t0&&n>0)return!1;var r=n*n-s;if(r<0)return!1;var a=Math.abs(-n-Math.sqrt(r));return t&&t.copy(e.direction).mulScalar(a).add(e.origin),!0},t.intersectsBoundingSphere=function(e){Fe.sub2(e.center,this.center);var t=e.radius+this.radius;return Fe.lengthSq()<=t*t},e}(),Ne=function(){function e(){this.planes=[];for(var e=0;e<6;e++)this.planes[e]=[]}var t=e.prototype;return t.setFromMat4=function(e){var t,i=e.data,n=this.planes;(t=n[0])[0]=i[3]-i[0],t[1]=i[7]-i[4],t[2]=i[11]-i[8],t[3]=i[15]-i[12];var s=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=s,t[1]/=s,t[2]/=s,t[3]/=s,(t=n[1])[0]=i[3]+i[0],t[1]=i[7]+i[4],t[2]=i[11]+i[8],t[3]=i[15]+i[12],s=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),t[0]/=s,t[1]/=s,t[2]/=s,t[3]/=s,(t=n[2])[0]=i[3]+i[1],t[1]=i[7]+i[5],t[2]=i[11]+i[9],t[3]=i[15]+i[13],s=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),t[0]/=s,t[1]/=s,t[2]/=s,t[3]/=s,(t=n[3])[0]=i[3]-i[1],t[1]=i[7]-i[5],t[2]=i[11]-i[9],t[3]=i[15]-i[13],s=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),t[0]/=s,t[1]/=s,t[2]/=s,t[3]/=s,(t=n[4])[0]=i[3]-i[2],t[1]=i[7]-i[6],t[2]=i[11]-i[10],t[3]=i[15]-i[14],s=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),t[0]/=s,t[1]/=s,t[2]/=s,t[3]/=s,(t=n[5])[0]=i[3]+i[2],t[1]=i[7]+i[6],t[2]=i[11]+i[10],t[3]=i[15]+i[14],s=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),t[0]/=s,t[1]/=s,t[2]/=s,t[3]/=s},t.containsPoint=function(e){var t,i;for(t=0;t<6;t++)if((i=this.planes[t])[0]*e.x+i[1]*e.y+i[2]*e.z+i[3]<=0)return!1;return!0},t.containsSphere=function(e){var t,i,n,s=0,r=e.radius,a=e.center,o=a.x,h=a.y,l=a.z,c=this.planes;for(i=0;i<6;i++){if((t=(n=c[i])[0]*o+n[1]*h+n[2]*l+n[3])<=-r)return 0;t>r&&s++}return 6===s?2:1},e}(),ze=function(){function e(e,t){this.origin=new ye,this.direction=ye.FORWARD.clone(),e&&this.origin.copy(e),t&&this.direction.copy(t)}var t=e.prototype;return t.set=function(e,t){return this.origin.copy(e),this.direction.copy(t),this},t.copy=function(e){return this.set(e.origin,e.direction)},t.clone=function(){return new this.constructor(this.origin,this.direction)},e}(),Ve=new ze,Ge=new ye,He=new Ue,We=new Me,Xe=function(){function e(e,t){void 0===e&&(e=new Me),void 0===t&&(t=new ye(.5,.5,.5)),this.halfExtents=void 0,this._modelTransform=void 0,this._worldTransform=void 0,this._aabb=void 0,this.halfExtents=t,this._modelTransform=e.clone().invert(),this._worldTransform=e.clone(),this._aabb=new ke(new ye,this.halfExtents)}var t=e.prototype;return t.intersectsRay=function(e,t){if(this._modelTransform.transformPoint(e.origin,Ve.origin),this._modelTransform.transformVector(e.direction,Ve.direction),t){var i=this._aabb._intersectsRay(Ve,t);return We.copy(this._modelTransform).invert().transformPoint(t,t),i}return this._aabb._fastIntersectsRay(Ve)},t.containsPoint=function(e){return this._modelTransform.transformPoint(e,Ge),this._aabb.containsPoint(Ge)},t.intersectsBoundingSphere=function(e){return this._modelTransform.transformPoint(e.center,He.center),He.radius=e.radius,!!this._aabb.intersectsBoundingSphere(He)},y(e,[{key:"worldTransform",get:function(){return this._worldTransform},set:function(e){this._worldTransform.copy(e),this._modelTransform.copy(e).invert()}}]),e}(),je=function(){function e(e,t){void 0===e&&(e=ye.UP),void 0===t&&(t=0),this.normal=new ye,this.distance=void 0,this.normal.copy(e),this.distance=t}var t=e.prototype;return t.setFromPointNormal=function(e,t){return this.normal.copy(t),this.distance=-this.normal.dot(e),this},t.intersectsLine=function(e,t,i){var n=this.distance,s=this.normal.dot(e)+n,r=s/(s-(this.normal.dot(t)+n)),a=r>=0&&r<=1;return a&&i&&i.lerp(e,t,r),a},t.intersectsRay=function(e,t){var i=this.normal.dot(e.direction);if(0===i)return!1;var n=-(this.normal.dot(e.origin)+this.distance)/i;return n>=0&&t&&t.copy(e.direction).mulScalar(n).add(e.origin),n>=0},t.copy=function(e){return this.normal.copy(e.normal),this.distance=e.distance,this},t.clone=function(){return(new(0,this.constructor)).copy(this)},e}(),qe="linear",Ye="inverse",Ke="exponential",Ze=0,Qe=10,$e=11,Je=12,et=13,tt=14,it=15,nt=16,st=17,rt=18,at=21,ot=24,ht=25,lt=26,ct=27,ut=new Map([[0,{name:"A8",size:1}],[1,{name:"L8",size:1}],[2,{name:"LA8",size:2}],[3,{name:"RGB565",size:2}],[4,{name:"RGBA5551",size:2}],[5,{name:"RGBA4",size:2}],[6,{name:"RGB8",size:4}],[7,{name:"RGBA8",size:4}],[$e,{name:"RGB16F",size:8}],[Je,{name:"RGBA16F",size:8}],[et,{name:"RGB32F",size:16}],[tt,{name:"RGBA32F",size:16}],[it,{name:"R32F",size:4}],[nt,{name:"DEPTH",size:4}],[st,{name:"DEPTHSTENCIL",size:4}],[rt,{name:"111110F",size:4}],[19,{name:"SRGB",size:4}],[20,{name:"SRGBA",size:4}],[31,{name:"BGRA8",size:4}],[8,{name:"DXT1",blockSize:8}],[9,{name:"DXT3",blockSize:16}],[Qe,{name:"DXT5",blockSize:16}],[at,{name:"ETC1",blockSize:8}],[22,{name:"ETC2_RGB",blockSize:8}],[23,{name:"ETC2_RGBA",blockSize:16}],[ot,{name:"PVRTC_2BPP_RGB_1",blockSize:8}],[ht,{name:"PVRTC_2BPP_RGBA_1",blockSize:8}],[lt,{name:"PVRTC_4BPP_RGB_1",blockSize:8}],[ct,{name:"PVRTC_4BPP_RGBA_1",blockSize:8}],[28,{name:"ASTC_4x4",blockSize:16}],[29,{name:"ATC_RGB",blockSize:8}],[30,{name:"ATC_RGBA",blockSize:16}]]),dt=function(e){return void 0!==ut.get(e).blockSize},ft=function(e){switch(e){case et:case tt:return Float32Array;case 3:case 4:case 5:case $e:case Je:return Uint16Array;default:return Uint8Array}},pt=5,mt="POSITION",_t="NORMAL",gt="TANGENT",vt="BLENDWEIGHT",yt="BLENDINDICES",xt="COLOR",St="TEXCOORD",bt="TEXCOORD0",wt="TEXCOORD1",Tt="TEXCOORD2",At="TEXCOORD3",Ct="TEXCOORD4",Et="TEXCOORD5",Mt="TEXCOORD6",Pt="TEXCOORD7",Rt="ATTR",It="ATTR0",Lt="ATTR1",Dt="ATTR2",Ot="ATTR3",kt="ATTR4",Ft="ATTR5",Bt="ATTR6",Ut="ATTR7",Nt="ATTR8",zt="ATTR9",Vt="ATTR10",Gt="ATTR11",Ht="ATTR12",Wt="ATTR13",Xt="ATTR14",jt="ATTR15",qt="default",Yt="rgbm",Kt="rgbe",Zt="rgbp",Qt="swizzleGGGR",$t="2d",Jt="2d-array",ei="cube",ti="3d",ii="none",ni="cube",si="equirect",ri="octahedral",ai="wgsl",oi=1,hi=13,li=14,ci=["bool","int","float","vec2","vec3","vec4","ivec2","ivec3","ivec4","bec2","bec3","bec4","mat2","mat3","mat4","sampler2D","samplerCube","","sampler2DShadow","samplerCubeShadow","sampler3D","","",""],ui="webgl1",di="webgl2",fi="webgpu",pi=["mesh","view"],mi="default",_i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array],gi=[1,1,2,2,4,4,4],vi={Int8Array:0,Uint8Array:oi,Int16Array:2,Uint16Array:3,Int32Array:4,Uint32Array:5,Float32Array:6},yi=[Uint8Array,Uint16Array,Uint32Array],xi=[1,2,4],Si={};Si[mt]=0,Si[_t]=1,Si[vt]=2,Si[yt]=3,Si[xt]=4,Si[bt]=5,Si[wt]=6,Si[Tt]=7,Si[At]=8,Si[Ct]=9,Si[Et]=10,Si[Mt]=11,Si[Pt]=12,Si[gt]=13,Si[It]=0,Si[Lt]=1,Si[Dt]=2,Si[Ot]=3,Si[kt]=4,Si[Ft]=5,Si[Bt]=6,Si[Ut]=7,Si[Nt]=8,Si[zt]=9,Si[Vt]=10,Si[Gt]=11,Si[Ht]=12,Si[Wt]=13,Si[Xt]=14,Si[jt]=15;var bi="1.65",wi=function(e,t,i,n){return void 0===n&&(n=1),e&~(n<>t&i},Ai=function(e,t,i){void 0===i&&(i=1);var n=i<>>0}var Ui=function(){function e(){this.map=new Map,this.id=0}return e.prototype.get=function(e){var t=this.map.get(e);return void 0===t&&(t=this.id++,this.map.set(e,t)),t},e}(),Ni=new Ui,zi=function(){function e(e,t,i){this.device=e,this._elements=[],this.hasUv0=!1,this.hasUv1=!1,this.hasColor=!1,this.hasTangents=!1,this.verticesByteSize=0,this.vertexCount=i,this.interleaved=void 0===i,this.instancing=!1,this.size=t.reduce((function(e,t){return e+4*Math.ceil(t.components*gi[t.type]/4)}),0);for(var n,s=0,r=0,a=t.length;r1?_:1),this.autoResolve=null==(a=e.autoResolve)||a,this.name=e.name,this.name)||(this.name=null==(p=this._colorBuffer)?void 0:p.name);this.name||(this.name=null==(m=this._depthBuffer)?void 0:m.name);this.name||(this.name="Untitled"),this.flipY=null!=(o=e.flipY)&&o,this.validateMrt(),this.impl=f.createRenderTargetImpl(this)}var t=e.prototype;return t.destroy=function(){var e=this._device;if(e){var t=e.targets.indexOf(this);-1!==t&&e.targets.splice(t,1),e.renderTarget===this&&e.setRenderTarget(null),this.destroyFrameBuffers()}},t.destroyFrameBuffers=function(){var e=this._device;e&&this.impl.destroy(e)},t.destroyTextureBuffers=function(){var e,t;null==(e=this._depthBuffer)||e.destroy(),this._depthBuffer=null,null==(t=this._colorBuffers)||t.forEach((function(e){e.destroy()})),this._colorBuffers=null,this._colorBuffer=null},t.validateMrt=function(){},t.init=function(){this.impl.init(this._device,this)},t.loseContext=function(){this.impl.loseContext()},t.resolve=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!!this._depthBuffer),this._device&&this._samples>1&&this.impl.resolve(this._device,this,e,t)},t.copy=function(e,t,i){if(!this._device){if(!e._device)return!1;this._device=e._device}return this._device.copyRenderTarget(e,this,t,i)},t.getColorBuffer=function(e){var t;return null==(t=this._colorBuffers)?void 0:t[e]},y(e,[{key:"initialized",get:function(){return this.impl.initialized}},{key:"samples",get:function(){return this._samples}},{key:"depth",get:function(){return this._depth}},{key:"stencil",get:function(){return this._stencil}},{key:"colorBuffer",get:function(){return this._colorBuffer}},{key:"depthBuffer",get:function(){return this._depthBuffer}},{key:"face",get:function(){return this._face}},{key:"width",get:function(){var e,t;return(null==(e=this._colorBuffer)?void 0:e.width)||(null==(t=this._depthBuffer)?void 0:t.width)||this._device.width}},{key:"height",get:function(){var e,t;return(null==(e=this._colorBuffer)?void 0:e.height)||(null==(t=this._depthBuffer)?void 0:t.height)||this._device.height}}]),e}(),ji=function(){function e(){this.bindGroup=void 0}var t=e.prototype;return t.update=function(e){this.destroy();var t=e.device,i=this.createDescriptor(t,e);this.bindGroup=t.wgpu.createBindGroup(i)},t.destroy=function(){this.bindGroup=null},t.createDescriptor=function(e,t){var i=[],n=t.format,s=0;return t.uniformBuffers.forEach((function(e){var t=e.persistent?e.impl.buffer:e.allocation.gpuBuffer.buffer;i.push({binding:s++,resource:{buffer:t,offset:0,size:e.format.byteSize}})})),t.textures.forEach((function(t,r){var a=t.impl,o=n.textureFormats[r],h=a.getView(e);i.push({binding:s++,resource:h});var l=a.getSampler(e,o.sampleType);i.push({binding:s++,resource:l})})),{layout:t.format.impl.bindGroupLayout,entries:i}},e}(),qi=function(){function e(){}return e.shaderStage=function(e){var t=0;return 1&e&&(t|=GPUShaderStage.VERTEX),2&e&&(t|=GPUShaderStage.FRAGMENT),4&e&&(t|=GPUShaderStage.COMPUTE),t},e}(),Yi=[];Yi[0]="filtering",Yi[1]="non-filtering",Yi[2]="comparison";var Ki=[];Ki[0]="float",Ki[1]="unfilterable-float",Ki[2]="depth";var Zi=new Ui,Qi=function(){function e(e){var t=e.device,i=this.createDescriptor(e),n=i.key,s=i.descr;this.key=Zi.get(n),this.bindGroupLayout=t.wgpu.createBindGroupLayout(s)}var t=e.prototype;return t.destroy=function(){this.bindGroupLayout=null},t.loseContext=function(){},t.getTextureSlot=function(e,t){return e.bufferFormats.length+2*t},t.createDescriptor=function(e){var t=[],i="",n=0;return e.bufferFormats.forEach((function(e){var s=qi.shaderStage(e.visibility);i+="#"+n+"U:"+s,t.push({binding:n++,visibility:s,buffer:{type:"uniform",hasDynamicOffset:!0}})})),e.textureFormats.forEach((function(e){var s=qi.shaderStage(e.visibility),r=e.sampleType,a=e.textureDimension,o=Ki[r];i+="#"+n+"T:"+s+"-"+o+"-"+a+"-false",t.push({binding:n++,visibility:s,texture:{sampleType:o,viewDimension:a,multisampled:false}});var h=Yi[r];i+="#"+n+"S:"+s+"-"+h,t.push({binding:n++,visibility:s,sampler:{type:h}})})),{key:i,descr:{entries:t}}},e}(),$i=function(){function e(){this.buffer=null}var t=e.prototype;return t.destroy=function(e){this.buffer&&(this.buffer.destroy(),this.buffer=null)},t.loseContext=function(){},t.unlock=function(e,t,i,n){var s,r,a=e.wgpu;if(!this.buffer){var o=n.byteLength+3&-4;this.buffer=e.wgpu.createBuffer({size:o,usage:i|GPUBufferUsage.COPY_DST})}var h=null!=(s=n.byteOffset)?s:0,l=new Uint8Array(null!=(r=n.buffer)?r:n,h,n.byteLength),c=new Uint8Array(this.buffer.size);c.set(l),a.queue.writeBuffer(this.buffer,0,c,0,c.length)},y(e,[{key:"initialized",get:function(){return!!this.buffer}}]),e}(),Ji=function(e){function t(t){var i;return(i=e.call(this)||this).format=null,i.format=1===t.format?"uint16":"uint32",i}return S(t,e),t.prototype.unlock=function(t){var i=t.device;e.prototype.unlock.call(this,i,t.usage,GPUBufferUsage.INDEX,t.storage)},t}($i),en=function(e,t){if(e.size!==t.size)return!1;for(var i=0;i1?"x"+o.numComponents:"")}),t&&a!==r-1||(i.push({attributes:s,arrayStride:o.stride,stepMode:n}),s=[])}};return e&&n(e),t&&n(t),i},e}(),rn=["point-list","line-list",void 0,"line-strip","triangle-list","triangle-strip",void 0],an=["add","subtract","reverse-subtract","min","max"],on=["zero","one","src","one-minus-src","dst","one-minus-dst","src-alpha","src-alpha-saturated","one-minus-src-alpha","dst-alpha","one-minus-dst-alpha","constant","one-minus-constant"],hn=["never","less","equal","less-equal","greater","not-equal","greater-equal","always"],ln=["none","back","front"],cn=["keep","zero","replace","increment-clamp","increment-wrap","decrement-clamp","decrement-wrap","invert"],un=[],dn=function(){this.pipeline=void 0,this.hashes=void 0},fn=function(){function e(e){this.lookupHashes=new Uint32Array(13),this.device=e,this.vertexBufferLayout=new sn,this.cache=new Map}var t=e.prototype;return t.get=function(e,t,i,n,s,r,a,o,h,l,c,u){var d,f,p,m,_,g,v,y,x=this.lookupHashes;x[0]=e.type,x[1]=n.id,x[2]=h,x[3]=o.key,x[4]=a.key,x[5]=null!=(d=null==t?void 0:t.renderingHash)?d:0,x[6]=null!=(f=null==i?void 0:i.renderingHash)?f:0,x[7]=s.impl.key,x[8]=null!=(p=null==(m=r[0])?void 0:m.key)?p:0,x[9]=null!=(_=null==(g=r[1])?void 0:g.key)?_:0,x[10]=null!=(v=null==(y=r[2])?void 0:y.key)?v:0,x[11]=l?c.key:0,x[12]=l?u.key:0;var S=Bi(x),b=this.cache.get(S);if(b)for(var w=0;w0){var m=0;s.redWrite&&(m|=GPUColorWrite.RED),s.greenWrite&&(m|=GPUColorWrite.GREEN),s.blueWrite&&(m|=GPUColorWrite.BLUE),s.alphaWrite&&(m|=GPUColorWrite.ALPHA);var _=this.getBlend(s);p.forEach((function(e){f.fragment.targets.push({format:e.format,writeMask:m,blend:_})}))}return u.createRenderPipeline(f)},e}(),pn=new Ui,mn=function(){function e(){this.format=void 0,this.multisampledBuffer=void 0}return e.prototype.destroy=function(){var e;null==(e=this.multisampledBuffer)||e.destroy(),this.multisampledBuffer=null},e}(),_n=function(){function e(e){var t=this;this.initialized=!1,this.key=void 0,this.colorAttachments=[],this.depthFormat=void 0,this.hasStencil=void 0,this.depthTexture=null,this.depthTextureInternal=!1,this.assignedColorTexture=null,this.renderPassDescriptor={},this.renderTarget=e,e._colorBuffers&&e._colorBuffers.forEach((function(e,i){t.setColorAttachment(i,void 0,e.impl.format)})),this.updateKey()}var t=e.prototype;return t.destroy=function(e){var t;(this.initialized=!1,this.depthTextureInternal)&&(null==(t=this.depthTexture)||t.destroy(),this.depthTexture=null);this.assignedColorTexture=null,this.colorAttachments.forEach((function(e){e.destroy()})),this.colorAttachments.length=0},t.updateKey=function(){var e=this.renderTarget,t=e.samples+":"+(e.depth?this.depthFormat:"nodepth");this.colorAttachments.forEach((function(e){t+=":"+e.format})),this.key=pn.get(t)},t.setDepthFormat=function(e){this.depthFormat=e,this.hasStencil="depth24plus-stencil8"===e},t.assignColorTexture=function(e){this.assignedColorTexture=e;var t=e.createView(),i=this.renderPassDescriptor.colorAttachments[0];this.renderTarget.samples>1?i.resolveTarget=t:i.view=t,this.setColorAttachment(0,void 0,e.format),this.updateKey()},t.setColorAttachment=function(e,t,i){this.colorAttachments[e]||(this.colorAttachments[e]=new mn),t&&(this.colorAttachments[e].multisampledBuffer=t),i&&(this.colorAttachments[e].format=i)},t.init=function(e,t){var i,n,s=e.wgpu;this.initDepthStencil(s,t),this.renderPassDescriptor.colorAttachments=[];for(var r=null!=(i=null==(n=t._colorBuffers)?void 0:n.length)?i:1,a=0;a1?GPUTextureUsage.TEXTURE_BINDING:GPUTextureUsage.COPY_SRC,this.depthTexture=e.createTexture(o),this.depthTextureInternal=!0}this.renderPassDescriptor.depthStencilAttachment={view:this.depthTexture.createView()}}},t.initColor=function(e,t,i){var n={},s=t.samples,r=t.width,a=t.height,o=t.getColorBuffer(i),h=null;if(o){h=o.cubemap?o.impl.createView({dimension:"2d",baseArrayLayer:t.face,arrayLayerCount:1,mipLevelCount:1}):o.impl.createView({mipLevelCount:1})}if(s>1){var l,c,u={size:[r,a,1],dimension:"2d",sampleCount:s,format:null!=(l=null==(c=this.colorAttachments[i])?void 0:c.format)?l:o.impl.format,usage:GPUTextureUsage.RENDER_ATTACHMENT},d=e.createTexture(u);this.setColorAttachment(i,d),n.view=d.createView(),n.resolveTarget=h}else n.view=h;return n},t.setupForRenderPass=function(e){for(var t,i,n=null!=(t=null==(i=this.renderPassDescriptor.colorAttachments)?void 0:i.length)?t:0,s=0;s>t,1)},e.calcLevelGpuSize=function(e,t,i,n){var s,r,a,o=ut.get(n),h=null!=(s=null==(r=ut.get(n))?void 0:r.size)?s:0;if(h>0)return e*t*i*h;var l=null!=(a=o.blockSize)?a:0,c=Math.floor((e+3)/4),u=Math.floor((t+3)/4),d=Math.floor((i+3)/4);return n!==ot&&n!==ht||(c=Math.max(Math.floor(c/2),1)),c*u*d*l},e.calcGpuSize=function(t,i,n,s,r,a){for(var o=0;o+=e.calcLevelGpuSize(t,i,n,s),r&&(1!==t||1!==i||1!==n);)t=Math.max(t>>1,1),i=Math.max(i>>1,1),n=Math.max(n>>1,1);return o*(a?6:1)},e}(),Bn=[];Bn[0]="",Bn[1]="r8unorm",Bn[2]="rg8unorm",Bn[3]="",Bn[4]="",Bn[5]="",Bn[6]="rgba8unorm",Bn[7]="rgba8unorm",Bn[8]="bc1-rgba-unorm",Bn[9]="bc2-rgba-unorm",Bn[10]="bc3-rgba-unorm",Bn[11]="",Bn[12]="rgba16float",Bn[13]="",Bn[14]="rgba32float",Bn[15]="r32float",Bn[16]="depth32float",Bn[17]="depth24plus-stencil8",Bn[18]="rg11b10ufloat",Bn[19]="",Bn[20]="",Bn[21]="",Bn[22]="etc2-rgb8unorm",Bn[23]="etc2-rgba8unorm",Bn[24]="",Bn[25]="",Bn[26]="",Bn[27]="",Bn[28]="astc-4x4-unorm",Bn[29]="",Bn[30]="",Bn[31]="bgra8unorm";var Un=[];Un[0]="repeat",Un[1]="clamp-to-edge",Un[2]="mirror-repeat";var Nn=[];Nn[0]={level:"nearest",mip:"nearest"},Nn[1]={level:"linear",mip:"nearest"},Nn[2]={level:"nearest",mip:"nearest"},Nn[3]={level:"nearest",mip:"linear"},Nn[4]={level:"linear",mip:"nearest"},Nn[5]={level:"linear",mip:"linear"};var zn=function(){function e(e){this.gpuTexture=void 0,this.view=void 0,this.samplers=[],this.descr=void 0,this.format=void 0,this.texture=e,this.format=Bn[e.format],this.create(e.device)}var t=e.prototype;return t.create=function(e){var t,i=this.texture,n=e.wgpu,s=i.requiredMipLevels;this.descr={size:{width:i.width,height:i.height,depthOrArrayLayers:i.cubemap?6:1},format:this.format,mipLevelCount:s,sampleCount:1,dimension:i.volume?"3d":"2d",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC},this.gpuTexture=n.createTexture(this.descr),this.texture.format===st&&(t={format:"depth24plus",aspect:"depth-only"}),this.view=this.createView(t)},t.destroy=function(e){},t.propertyChanged=function(e){this.samplers.length=0},t.getView=function(e){return this.uploadImmediate(e,this.texture),this.view},t.createView=function(e){var t,i,n,s,r,a,o,h=null!=e?e:{},l=this.descr,c=this.texture,u={format:null!=(t=h.format)?t:l.format,dimension:null!=(i=h.dimension)?i:c.cubemap?"cube":c.volume?"3d":"2d",aspect:null!=(n=h.aspect)?n:"all",baseMipLevel:null!=(s=h.baseMipLevel)?s:0,mipLevelCount:null!=(r=h.mipLevelCount)?r:l.mipLevelCount,baseArrayLayer:null!=(a=h.baseArrayLayer)?a:0,arrayLayerCount:null!=(o=h.arrayLayerCount)?o:l.depthOrArrayLayers};return this.gpuTexture.createView(u)},t.getSampler=function(e,t){var i=this.samplers[t];if(!i){var n=this.texture,s={addressModeU:Un[n.addressU],addressModeV:Un[n.addressV],addressModeW:Un[n.addressW],maxAnisotropy:pe.clamp(Math.round(n._anisotropy),1,e.maxTextureAnisotropy)};!t&&n.compareOnRead&&(t=2),2===t?(s.compare="less",s.magFilter="linear",s.minFilter="linear"):1===t||this.texture.format===tt||this.texture.format===st||this.texture.format===Je?(s.magFilter="nearest",s.minFilter="nearest",s.mipmapFilter="nearest"):(s.magFilter=Nn[n.magFilter].level,s.minFilter=Nn[n.minFilter].level,s.mipmapFilter=Nn[n.minFilter].mip),i=e.wgpu.createSampler(s),this.samplers[t]=i}return i},t.loseContext=function(){},t.uploadImmediate=function(e,t){(t._needsUpload||t._needsMipmapsUpload)&&(this.uploadData(e),t._needsUpload=!1,t._needsMipmapsUpload=!1)},t.uploadData=function(e){var t=this.texture;if(t._levels){for(var i=!1,n=t.requiredMipLevels,s=0;s<=|&+-]/g,$n=function(){function e(){}return e.run=function(e,t){void 0===t&&(t=!1),e=(e=e.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"$1")).split(/\r?\n/).map((function(e){return e.trimEnd()})).join("\n");var i=new Map;if(t){var n=new Map,s=e.match(/(pcFragColor[1-8])\b/g);null==s||s.forEach((function(e){var t,i=parseInt(e.charAt(e.length-1),10);n.set(i,(null!=(t=n.get(i))?t:0)+1)})),n.forEach((function(e,t){1===e&&i.set("REMOVE_COLOR_ATTACHMENT_"+t,"")}))}e=this._preprocess(e,i);var r=new Map;return i.forEach((function(e,t){Number.isInteger(parseFloat(e))&&!e.includes(".")&&r.set(t,e)})),null!==e&&(e=e.split(/\r?\n/).map((function(e){return""===e.trim()?"":e})).map((function(e){return r.forEach((function(t,i){e=e.replace(new RegExp("\\["+i+"\\]","g"),"["+t+"]")})),e})).join("\n"),e=e.replace(/(\n\n){3,}/gm,"\n\n")),e},e._preprocess=function(t,i){void 0===i&&(i=new Map);for(var n,s=t,r=[],a=!1;null!==(n=Hn.exec(t));){var o=n[1];switch(o){case"define":Wn.lastIndex=n.index;var h=Wn.exec(t);a||(a=null===h);var l=h[1];Kn.lastIndex=h.index;var c=Kn.exec(l)[1],u=l.substring(c.length).trim();""===u&&(u="true"),e._keep(r)&&i.set(c,u),Hn.lastIndex=h.index+h[0].length;break;case"undef":jn.lastIndex=n.index;var d=jn.exec(t),f=d[1].trim();e._keep(r)&&i.delete(f),Hn.lastIndex=d.index+d[0].length;break;case"extension":Xn.lastIndex=n.index;var p=Xn.exec(t);if(a||(a=null===p),p){var m=p[1];e._keep(r)&&i.set(m,"true")}Hn.lastIndex=p.index+p[0].length;break;case"ifdef":case"ifndef":case"if":qn.lastIndex=n.index;var _=qn.exec(t),g=_[2],v=e.evaluate(g,i);a||(a=v.error);var y=v.result;"ifndef"===o&&(y=!y),r.push({anyKeep:y,keep:y,start:n.index,end:qn.lastIndex}),Hn.lastIndex=_.index+_[0].length;break;case"endif":case"else":case"elif":Yn.lastIndex=n.index;var x=Yn.exec(t),S=r.pop(),b=S.keep?t.substring(S.end,n.index):"";t=t.substring(0,S.start)+b+t.substring(Yn.lastIndex),Hn.lastIndex=S.start+b.length;var w=x[1];if("else"===w||"elif"===w){var T=!1;if(!S.anyKeep)if("else"===w)T=!S.keep;else{var A=e.evaluate(x[2],i);T=A.result,a||(a=A.error)}r.push({anyKeep:S.anyKeep||T,keep:T,start:Hn.lastIndex,end:Hn.lastIndex})}}}return a?(console.warn("Failed to preprocess shader: ",{source:s}),s):t},e._keep=function(e){for(var t=0;t=0;r--){var a=this.usedBuffers[r],o=a.stagingBuffer,h=a.gpuBuffer,l=a.offset,c=a.size,u=o.buffer;u.unmap(),s.copyBufferToBuffer(u,l,h.buffer,l,c),n.push(h)}var d=s.finish();i.addCommandBuffer(d,!0);for(var f=0;f0&&(this._frameTime=t[0]),R.get(l))for(var n=0;n0&&(this.dynamicBuffers.submit(),this.wgpu.queue.submit(this.commandBuffers),this.commandBuffers.length=0,this.dynamicBuffers.onCommandBuffersSubmitted())},n.clear=function(e){e.flags&&this.clearRenderer.clear(this,this.renderTarget,e,this.defaultClearOptions)},n.setDepthBias=function(e){},n.setDepthBiasValues=function(e,t){},n.setViewport=function(e,t,i,n){this.passEncoder&&(this.renderTarget.flipY||(t=this.renderTarget.height-t-n),this.vx=e,this.vy=t,this.vw=i,this.vh=n,this.passEncoder.setViewport(e,t,i,n,0,1))},n.setScissor=function(e,t,i,n){this.passEncoder&&(this.renderTarget.flipY||(t=this.renderTarget.height-t-n),this.sx=e,this.sy=t,this.sw=i,this.sh=n,this.passEncoder.setScissorRect(e,t,i,n))},n.copyRenderTarget=function(e,t,i,n){var s,r={width:e?e.width:t.width,height:e?e.height:t.height,depthOrArrayLayers:1},a=null!=(s=this.commandEncoder)?s:this.wgpu.createCommandEncoder();if(i){var o={texture:e?e.colorBuffer.impl.gpuTexture:this.renderTarget.impl.assignedColorTexture,mipLevel:0},h={texture:t?t.colorBuffer.impl.gpuTexture:this.renderTarget.impl.assignedColorTexture,mipLevel:0};a.copyTextureToTexture(o,h,r)}if(n){var l=(e||this.renderTarget).impl.depthTexture;if(e.samples>1){var c=t.colorBuffer.impl.gpuTexture;this.resolver.resolveDepth(a,l,c)}else{var u={texture:l,mipLevel:0},d={texture:t?t.depthBuffer.impl.gpuTexture:this.renderTarget.impl.depthTexture,mipLevel:0};a.copyTextureToTexture(u,d,r)}}if(!this.commandEncoder){var f=a.finish();this.addCommandBuffer(f)}return!0},y(t,[{key:"width",get:function(){return this._width}},{key:"height",get:function(){return this._height}}]),t}(Hi),vs=0,ys=function(){function e(e,t){var i,n,s,r,a,o,h,l,c,u,d,f,p,m,_,g,v,y,x,S;(void 0===t&&(t={}),this.name=void 0,this._isRenderTarget=!1,this._gpuSize=0,this.id=vs++,this._invalid=!1,this._lockedLevel=-1,this.renderVersionDirty=0,this.device=e,this.name=null!=(i=t.name)?i:null,this._width=null!=(n=t.width)?n:4,this._height=null!=(s=t.height)?s:4,this._format=null!=(r=t.format)?r:7,this._compressed=dt(this._format),e.supportsVolumeTextures)?(this._volume=null!=(x=t.volume)&&x,this._depth=null!=(S=t.depth)?S:1):(this._volume=!1,this._depth=1);this._cubemap=null!=(a=t.cubemap)&&a,this.fixCubemapSeams=null!=(o=t.fixCubemapSeams)&&o,this._flipY=null!=(h=t.flipY)&&h,this._premultiplyAlpha=null!=(l=t.premultiplyAlpha)&&l,this._mipmaps=null==(c=null!=(u=t.mipmaps)?u:t.autoMipmap)||c,this._minFilter=null!=(d=t.minFilter)?d:5,this._magFilter=null!=(f=t.magFilter)?f:1,this._anisotropy=null!=(p=t.anisotropy)?p:1,this._addressU=null!=(m=t.addressU)?m:0,this._addressV=null!=(_=t.addressV)?_:0,this._addressW=null!=(g=t.addressW)?g:0,this._compareOnRead=null!=(v=t.compareOnRead)&&v,this._compareFunc=null!=(y=t.compareFunc)?y:1,this.type=qt,t.hasOwnProperty("type")?this.type=t.type:t.hasOwnProperty("rgbm")?this.type=t.rgbm?Yt:qt:t.hasOwnProperty("swizzleGGGR")&&(this.type=t.swizzleGGGR?Qt:qt),this.projection=ii,this._cubemap?this.projection=ni:t.projection&&t.projection!==ni&&(this.projection=t.projection),this.impl=e.createTextureImpl(this),this.dirtyAll(),this._levels=t.levels,this._levels?this.upload():this._levels=this._cubemap?[[null,null,null,null,null,null]]:[null],e.textures.push(this)}var t,i=e.prototype;return i.destroy=function(){if(this.device){var e=this.device,t=e.textures.indexOf(this);-1!==t&&e.textures.splice(t,1),e.scope.removeValue(this),this.impl.destroy(e),this.adjustVramSizeTracking(e._vram,-this._gpuSize),this._levels=null,this.device=null}},i.loseContext=function(){this.impl.loseContext(),this.dirtyAll()},i.adjustVramSizeTracking=function(e,t){e.tex+=t},i.propertyChanged=function(e){this.impl.propertyChanged(e),this.renderVersionDirty=this.device.renderVersion},i.dirtyAll=function(){this._levelsUpdated=this._cubemap?[[!0,!0,!0,!0,!0,!0]]:[!0],this._needsUpload=!0,this._needsMipmapsUpload=this._mipmaps,this._mipmapsUploaded=!1,this.propertyChanged(255)},i.lock=function(e){void 0===e&&(e={}),void 0===e.level&&(e.level=0),void 0===e.face&&(e.face=0),void 0===e.mode&&(e.mode=2),this._lockedLevel=e.level;var t=this.cubemap?this._levels[e.face]:this._levels;if(null===t[e.level]){var i=Math.max(1,this._width>>e.level),n=Math.max(1,this._height>>e.level),s=Math.max(1,this._depth>>e.level),r=new ArrayBuffer(Fn.calcLevelGpuSize(i,n,s,this._format));t[e.level]=new(ft(this._format))(r)}return t[e.level]},i.setSource=function(e,t){void 0===t&&(t=0);var i,n,s=!1;if(this._cubemap){if(e[0]){i=e[0].width||0,n=e[0].height||0;for(var r=0;r<6;r++){var a=e[r];if(!a||a.width!==i||a.height!==n||!this.device._isBrowserInterface(a)){s=!0;break}}}else s=!0;if(!s)for(var o=0;o<6;o++)this._levels[t][o]!==e[o]&&(this._levelsUpdated[t][o]=!0)}else this.device._isBrowserInterface(e)||(s=!0),s||(e!==this._levels[t]&&(this._levelsUpdated[t]=!0),i=e.width,n=e.height);if(s)if(this._width=4,this._height=4,this._cubemap)for(var h=0;h<6;h++)this._levels[t][h]=null,this._levelsUpdated[t][h]=!0;else this._levels[t]=null,this._levelsUpdated[t]=!0;else 0===t&&(this._width=i,this._height=n),this._levels[t]=e;this._invalid===s&&s||(this._invalid=s,this.upload())},i.getSource=function(e){return void 0===e&&(e=0),this._levels[e]},i.unlock=function(){this._lockedLevel,this.upload(),this._lockedLevel=-1},i.upload=function(){var e,t;this._needsUpload=!0,this._needsMipmapsUpload=this._mipmaps,null==(e=(t=this.impl).uploadImmediate)||e.call(t,this.device,this)},i.downloadAsync=(t=g(m().mark((function e(){var t,i,n,s=this;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=[],i=m().mark((function e(){var i,r,a,o;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=new Xi({colorBuffer:s,depth:!1,face:n}),s.device.setRenderTarget(i),s.device.initRenderTarget(i),(r=s.cubemap?s._levels[n]:s._levels)[0],r[0]&&s.device._isBrowserInterface(r[0])&&(r[0]=null),a=s.lock({face:n}),o=null==s.device.readPixelsAsync?void 0:s.device.readPixelsAsync(0,0,s.width,s.height,a).then((function(){return i.destroy()})),t.push(o);case 9:case"end":return e.stop()}}),e)})),n=0;case 3:if(!(n<(this.cubemap?6:1))){e.next=8;break}return e.delegateYield(i(),"t0",5);case 5:n++,e.next=3;break;case 8:return e.next=10,Promise.all(t);case 10:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)}),i.getDds=function(){for(var e=128,t=0;this._levels[t];){if(this.cubemap)for(var i=0;i<6;i++){if(!this._levels[t][i])return;var n=this._levels[t][i].length;if(!n)return;e+=n}else{var s=this._levels[t].length;if(!s)return;e+=s}e+=this._levels[t].length,t++}var r=new ArrayBuffer(e),a=new Uint32Array(r,0,32),o=528391;this._levels.length>1&&(o|=131072);var h=4096;this._levels.length>1&&(h|=4194304),(this._levels.length>1||this.cubemap)&&(h|=8);var l=this.cubemap?65024:0;a[0]=542327876,a[1]=124,a[2]=o,a[3]=this.height,a[4]=this.width,a[5]=this.width*this.height*4,a[6]=0,a[7]=this._levels.length;for(var c=0;c<11;c++)a[8+c]=0;a[19]=32,a[20]=65,a[21]=0,a[22]=32,a[23]=16711680,a[24]=65280,a[25]=255,a[26]=4278190080,a[27]=h,a[28]=l,a[29]=0,a[30]=0,a[31]=0;var u=128;if(this.cubemap)for(var d=0;d<6;d++)for(var f=0;ft||n>t){var s=t/Math.max(i,n),r=Math.floor(i*s),a=Math.floor(n*s),o=document.createElement("canvas");return o.width=r,o.height=a,o.getContext("2d").drawImage(e,0,0,i,n,0,0,r,a),o}return e}var Ds=function(){function e(){this._glTexture=null,this._glTarget=void 0,this._glFormat=void 0,this._glInternalFormat=void 0,this._glPixelType=void 0,this.dirtyParameterFlags=0}var t=e.prototype;return t.destroy=function(e){if(this._glTexture){for(var t=0;te.maxCubeMapSize||h.height>e.maxCubeMapSize)&&(h=Ls(h,e.maxCubeMapSize),0===r&&(t._width=h.width,t._height=h.height)),e.setUnpackFlipY(!1),e.setUnpackPremultiplyAlpha(t._premultiplyAlpha),i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,r,this._glInternalFormat,this._glFormat,this._glPixelType,h)}}else for(s=1/Math.pow(2,r),o=0;o<6;o++)if(t._levelsUpdated[0][o]){var l=n[o];t._compressed?i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,r,this._glInternalFormat,Math.max(t._width*s,1),Math.max(t._height*s,1),0,l):(e.setUnpackFlipY(!1),e.setUnpackPremultiplyAlpha(t._premultiplyAlpha),i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,r,this._glInternalFormat,Math.max(t._width*s,1),Math.max(t._height*s,1),0,this._glFormat,this._glPixelType,l))}}else t._volume?(s=1/Math.pow(2,r),t._compressed?i.compressedTexImage3D(i.TEXTURE_3D,r,this._glInternalFormat,Math.max(t._width*s,1),Math.max(t._height*s,1),Math.max(t._depth*s,1),0,n):(e.setUnpackFlipY(!1),e.setUnpackPremultiplyAlpha(t._premultiplyAlpha),i.texImage3D(i.TEXTURE_3D,r,this._glInternalFormat,Math.max(t._width*s,1),Math.max(t._height*s,1),Math.max(t._depth*s,1),0,this._glFormat,this._glPixelType,n))):(e._isBrowserInterface(n)?(e._isImageBrowserInterface(n)&&(n.width>e.maxTextureSize||n.height>e.maxTextureSize)&&(n=Ls(n,e.maxTextureSize),0===r&&(t._width=n.width,t._height=n.height)),e.setUnpackFlipY(t._flipY),e.setUnpackPremultiplyAlpha(t._premultiplyAlpha),i.texImage2D(i.TEXTURE_2D,r,this._glInternalFormat,this._glFormat,this._glPixelType,n)):(s=1/Math.pow(2,r),t._compressed?i.compressedTexImage2D(i.TEXTURE_2D,r,this._glInternalFormat,Math.max(Math.floor(t._width*s),1),Math.max(Math.floor(t._height*s),1),0,n):(e.setUnpackFlipY(!1),e.setUnpackPremultiplyAlpha(t._premultiplyAlpha),i.texImage2D(i.TEXTURE_2D,r,this._glInternalFormat,Math.max(t._width*s,1),Math.max(t._height*s,1),0,this._glFormat,this._glPixelType,n))),t._mipmapsUploaded=0!==r);r++}else r++;if(t._needsUpload)if(t._cubemap)for(var c=0;c<6;c++)t._levelsUpdated[0][c]=!1;else t._levelsUpdated[0]=!1;!t._compressed&&t._mipmaps&&t._needsMipmapsUpload&&(t.pot||e.webgl2)&&1===t._levels.length&&(i.generateMipmap(this._glTarget),t._mipmapsUploaded=!0),t._gpuSize&&t.adjustVramSizeTracking(e._vram,-t._gpuSize),t._gpuSize=t.gpuSize,t.adjustVramSizeTracking(e._vram,t._gpuSize)}},e}(),Os=function(){function e(e,t){this.msaaFB=void 0,this.resolveFB=void 0,this.msaaFB=e,this.resolveFB=t}return e.prototype.destroy=function(e){this.msaaFB&&(e.deleteRenderbuffer(this.msaaFB),this.msaaFB=null),this.resolveFB&&(e.deleteRenderbuffer(this.resolveFB),this.resolveFB=null)},e}(),ks=function(){function e(){this._glFrameBuffer=null,this._glDepthBuffer=null,this._glResolveFrameBuffer=null,this.colorMrtFramebuffers=null,this._glMsaaColorBuffers=[],this._glMsaaDepthBuffer=null}var t=e.prototype;return t.destroy=function(e){var t,i=e.gl;this._glFrameBuffer&&(i.deleteFramebuffer(this._glFrameBuffer),this._glFrameBuffer=null),this._glDepthBuffer&&(i.deleteRenderbuffer(this._glDepthBuffer),this._glDepthBuffer=null),this._glResolveFrameBuffer&&(i.deleteFramebuffer(this._glResolveFrameBuffer),this._glResolveFrameBuffer=null),this._glMsaaColorBuffers.forEach((function(e){i.deleteRenderbuffer(e)})),this._glMsaaColorBuffers.length=0,null==(t=this.colorMrtFramebuffers)||t.forEach((function(e){e.destroy(i)})),this.colorMrtFramebuffers=null,this._glMsaaDepthBuffer&&(i.deleteRenderbuffer(this._glMsaaDepthBuffer),this._glMsaaDepthBuffer=null)},t.init=function(e,t){var i,n,s,r,a=e.gl;this._glFrameBuffer=a.createFramebuffer(),e.setFramebuffer(this._glFrameBuffer);for(var o=null!=(i=null==(n=t._colorBuffers)?void 0:n.length)?i:0,h=e.webgl2?a.COLOR_ATTACHMENT0:null!=(s=null==(r=e.extDrawBuffers)?void 0:r.COLOR_ATTACHMENT0_WEBGL)?s:a.COLOR_ATTACHMENT0,l=[],c=0;c1&&e.webgl2)){if(this._glDepthBuffer||(this._glDepthBuffer=a.createRenderbuffer()),a.bindRenderbuffer(a.RENDERBUFFER,this._glDepthBuffer),t._stencil)a.renderbufferStorage(a.RENDERBUFFER,a.DEPTH_STENCIL,t.width,t.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.RENDERBUFFER,this._glDepthBuffer);else{var f=e.webgl2?a.DEPTH_COMPONENT32F:a.DEPTH_COMPONENT16;a.renderbufferStorage(a.RENDERBUFFER,f,t.width,t.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_ATTACHMENT,a.RENDERBUFFER,this._glDepthBuffer)}a.bindRenderbuffer(a.RENDERBUFFER,null)}}if(e.webgl2&&t._samples>1){var p,m;this._glResolveFrameBuffer=this._glFrameBuffer,this._glFrameBuffer=a.createFramebuffer(),e.setFramebuffer(this._glFrameBuffer);for(var _=null!=(p=null==(m=t._colorBuffers)?void 0:m.length)?p:0,g=0;g<_;++g){var v=t.getColorBuffer(g);if(v){var y=a.createRenderbuffer();this._glMsaaColorBuffers.push(y),a.bindRenderbuffer(a.RENDERBUFFER,y),a.renderbufferStorageMultisample(a.RENDERBUFFER,t._samples,v.impl._glInternalFormat,t.width,t.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+g,a.RENDERBUFFER,y)}}t._depth&&(this._glMsaaDepthBuffer||(this._glMsaaDepthBuffer=a.createRenderbuffer()),a.bindRenderbuffer(a.RENDERBUFFER,this._glMsaaDepthBuffer),t._stencil?(a.renderbufferStorageMultisample(a.RENDERBUFFER,t._samples,a.DEPTH24_STENCIL8,t.width,t.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.RENDERBUFFER,this._glMsaaDepthBuffer)):(a.renderbufferStorageMultisample(a.RENDERBUFFER,t._samples,a.DEPTH_COMPONENT32F,t.width,t.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_ATTACHMENT,a.RENDERBUFFER,this._glMsaaDepthBuffer))),_>1&&(this._createMsaaMrtFramebuffers(e,t,_),e.setFramebuffer(this._glFrameBuffer),e.drawBuffers(l))}},t._createMsaaMrtFramebuffers=function(e,t,i){var n=e.gl;this.colorMrtFramebuffers=[];for(var s=0;s=0&&!(n>0&&"/"===e[n-1]);){var s=e.indexOf(";",n),r=e.lastIndexOf(" ",s),a=e.substring(r+1,s),o=Gs[a];void 0!==o?t[a]=o:(t[a]="ATTR"+i,i++),n=e.indexOf("attribute",n+1)}return t},e}(),Ws=function(){function e(){this.renderVersion=void 0,this.queries=[]}return e.prototype.destroy=function(e){this.queries.forEach((function(t){return e.deleteQuery(t)})),this.queries=null},e}(),Xs=function(e){function t(t){var i;return(i=e.call(this)||this).device=void 0,i.freeQueries=[],i.frameQueries=[],i.previousFrameQueries=[],i.timings=[],i.device=t,i.ext=t.extDisjointTimerQuery,i}S(t,e);var i=t.prototype;return i.destroy=function(){var e=this;this.freeQueries.forEach((function(t){return e.device.gl.deleteQuery(t)})),this.frameQueries.forEach((function(t){return e.device.gl.deleteQuery(t)})),this.previousFrameQueries.forEach((function(t){return t.destroy(e.device.gl)})),this.freeQueries=null,this.frameQueries=null,this.previousFrameQueries=null},i.loseContext=function(){e.prototype.loseContext.call(this),this.freeQueries=[],this.frameQueries=[],this.previousFrameQueries=[]},i.restoreContext=function(){this.ext=this.device.extDisjointTimerQuery},i.getQuery=function(){var e;return null!=(e=this.freeQueries.pop())?e:this.device.gl.createQuery()},i.start=function(e){if(this.ext){var t=this.getSlot(e),i=this.getQuery();return this.frameQueries[t]=i,this.device.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,i),t}},i.end=function(e){void 0!==e&&this.device.gl.endQuery(this.ext.TIME_ELAPSED_EXT)},i.frameStart=function(){this.processEnableRequest(),this._enabled&&(this.frameGPUMarkerSlot=this.start("GpuFrame"))},i.frameEnd=function(){this._enabled&&this.end(this.frameGPUMarkerSlot)},i.request=function(){var t=this;if(this._enabled){var i=this.ext,n=this.device.gl,s=this.device.renderVersion,r=this.frameQueries;if(r.length>0){this.frameQueries=[];var a=new Ws;a.queries=r,a.renderVersion=s,this.previousFrameQueries.push(a)}if(this.previousFrameQueries.length>0){var o=this.previousFrameQueries[0],h=o.queries,l=h[h.length-1],c=n.getQueryParameter(l,n.QUERY_RESULT_AVAILABLE),u=n.getParameter(i.GPU_DISJOINT_EXT);if(c&&!u){this.previousFrameQueries.shift();var d=this.timings;d.length=0;for(var f=0;f0;var v=n.vertexUniformsCount;return v-=16,v-=8,v-=1,v-=16,n.boneLimit=Math.floor(v/3),n.boneLimit=Math.min(n.boneLimit,128),"Mali-450 MP"===n.unmaskedRenderer&&(n.boneLimit=34),n.constantTexSource=n.scope.resolve("source"),n.extTextureFloat?n.webgl2?n.textureFloatRenderable=!!n.extColorBufferFloat:n.textureFloatRenderable=Ks(r,r.FLOAT):n.textureFloatRenderable=!1,n.extColorBufferHalfFloat?n.textureHalfFloatRenderable=!!n.extColorBufferHalfFloat:n.extTextureHalfFloat?n.webgl2?n.textureHalfFloatRenderable=!!n.extColorBufferFloat:n.textureHalfFloatRenderable=Ks(r,n.extTextureHalfFloat.HALF_FLOAT_OES):n.textureHalfFloatRenderable=!1,n.supportsMorphTargetTexturesCore="highp"===n.maxPrecision&&n.maxVertexTextures>=2,n.supportsDepthShadow=n.webgl2,n._textureFloatHighPrecision=void 0,n._textureHalfFloatUpdatable=void 0,n.areaLightLutFormat=7,n.extTextureHalfFloat&&n.textureHalfFloatUpdatable&&n.extTextureHalfFloatLinear?n.areaLightLutFormat=Je:n.extTextureFloat&&n.extTextureFloatLinear&&(n.areaLightLutFormat=tt),n.postInit(),n}S(t,e);var i,n=t.prototype;return n.postInit=function(){e.prototype.postInit.call(this),this.gpuProfiler=new Xs(this)},n.destroy=function(){e.prototype.destroy.call(this);var t=this.gl;this.webgl2&&this.feedback&&t.deleteTransformFeedback(this.feedback),this.clearVertexArrayObjectCache(),this.canvas.removeEventListener("webglcontextlost",this._contextLostHandler,!1),this.canvas.removeEventListener("webglcontextrestored",this._contextRestoredHandler,!1),this._contextLostHandler=null,this._contextRestoredHandler=null,this.gl=null,e.prototype.postDestroy.call(this)},n.createVertexBufferImpl=function(e,t){return new Ss},n.createIndexBufferImpl=function(e){return new bs(e)},n.createShaderImpl=function(e){return new Is(e)},n.createTextureImpl=function(e){return new Ds},n.createRenderTargetImpl=function(e){return new ks},n.getPrecision=function(){var e=this.gl,t="highp";if(e.getShaderPrecisionFormat){var i=e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.HIGH_FLOAT),n=e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT),s=e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT),r=e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT),a=i.precision>0&&s.precision>0,o=n.precision>0&&r.precision>0;a||(t=o?"mediump":"lowp")}return t},n.getExtension=function(){for(var e=0;e0&&e.fullSizeClearRect&&s.invalidateFramebuffer(s.DRAW_FRAMEBUFFER,js)}null!=(n=e.colorOps)&&n.resolve&&this.webgl2&&e.samples>1&&t.autoResolve&&t.resolve(!0,!1);for(var o=0;o1&&e.autoResolve&&e.resolve();var t=e._colorBuffer;t&&t.impl._glTexture&&t.mipmaps&&(t.pot||this.webgl2)&&(this.activeTexture(this.maxCombinedTextures-1),this.bindTexture(t),this.gl.generateMipmap(t.impl._glTarget))}},n.setUnpackFlipY=function(e){if(this.unpackFlipY!==e){this.unpackFlipY=e;var t=this.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e)}},n.setUnpackPremultiplyAlpha=function(e){if(this.unpackPremultiplyAlpha!==e){this.unpackPremultiplyAlpha=e;var t=this.gl;t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e)}},n.activeTexture=function(e){this.textureUnit!==e&&(this.gl.activeTexture(this.gl.TEXTURE0+e),this.textureUnit=e)},n.bindTexture=function(e){var t=e.impl,i=t._glTarget,n=t._glTexture,s=this.textureUnit,r=this.targetToSlot[i];this.textureUnits[s][r]!==n&&(this.gl.bindTexture(i,n),this.textureUnits[s][r]=n)},n.bindTextureOnUnit=function(e,t){var i=e.impl,n=i._glTarget,s=i._glTexture,r=this.targetToSlot[n];this.textureUnits[t][r]!==s&&(this.activeTexture(t),this.gl.bindTexture(n,s),this.textureUnits[t][r]=s)},n.setTextureParameters=function(e){var t=this.gl,i=e.impl.dirtyParameterFlags,n=e.impl._glTarget;if(1&i){var s=e._minFilter;(!e.pot&&!this.webgl2||!e._mipmaps||e._compressed&&1===e._levels.length)&&(2===s||3===s?s=0:4!==s&&5!==s||(s=1)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,this.glFilter[s])}if(2&i&&t.texParameteri(n,t.TEXTURE_MAG_FILTER,this.glFilter[e._magFilter]),4&i&&(this.webgl2?t.texParameteri(n,t.TEXTURE_WRAP_S,this.glAddress[e._addressU]):t.texParameteri(n,t.TEXTURE_WRAP_S,this.glAddress[e.pot?e._addressU:1])),8&i&&(this.webgl2?t.texParameteri(n,t.TEXTURE_WRAP_T,this.glAddress[e._addressV]):t.texParameteri(n,t.TEXTURE_WRAP_T,this.glAddress[e.pot?e._addressV:1])),16&i&&this.webgl2&&t.texParameteri(n,t.TEXTURE_WRAP_R,this.glAddress[e._addressW]),32&i&&this.webgl2&&t.texParameteri(n,t.TEXTURE_COMPARE_MODE,e._compareOnRead?t.COMPARE_REF_TO_TEXTURE:t.NONE),64&i&&this.webgl2&&t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,this.glComparison[e._compareFunc]),128&i){var r=this.extTextureFilterAnisotropic;r&&t.texParameterf(n,r.TEXTURE_MAX_ANISOTROPY_EXT,pe.clamp(Math.round(e._anisotropy),1,this.maxAnisotropy))}},n.setTexture=function(e,t){var i=e.impl;i._glTexture||i.initialize(this,e),i.dirtyParameterFlags>0||e._needsUpload||e._needsMipmapsUpload?(this.activeTexture(t),this.bindTexture(e),i.dirtyParameterFlags&&(this.setTextureParameters(e),i.dirtyParameterFlags=0),(e._needsUpload||e._needsMipmapsUpload)&&(i.upload(this,e),e._needsUpload=!1,e._needsMipmapsUpload=!1)):this.bindTextureOnUnit(e,t)},n.createVertexArray=function(e){var t,i,n=e.length>1;if(n){t="";for(var s=0;s0?u.drawElementsInstanced(S,b,T,A,t):u.drawElements(S,b,T,A)}else{var C=e.base;t>0?u.drawArraysInstanced(S,C,b,t):u.drawArrays(S,C,b)}this.webgl2&&this.transformFeedbackBuffer&&(u.endTransformFeedback(),u.bindBufferBase(u.TRANSFORM_FEEDBACK_BUFFER,0,null)),this._drawCallsPerFrame++}},n.clear=function(e){var t,i=this.defaultClearOptions,n=null!=(t=(e=e||i).flags)?t:i.flags;if(0!==n){var s=this.gl;if(1&n){var r,a=null!=(r=e.color)?r:i.color,o=a[0],h=a[1],l=a[2],c=a[3],u=this.clearColor;o===u.r&&h===u.g&&l===u.b&&c===u.a||(this.gl.clearColor(o,h,l,c),this.clearColor.set(o,h,l,c)),this.setBlendState(Ei.NOBLEND)}if(2&n){var d,f=null!=(d=e.depth)?d:i.depth;f!==this.clearDepth&&(this.gl.clearDepth(f),this.clearDepth=f),this.setDepthState(Mi.WRITEDEPTH)}if(4&n){var p,m=null!=(p=e.stencil)?p:i.stencil;m!==this.clearStencil&&(this.gl.clearStencil(m),this.clearStencil=m)}s.clear(this.glClearFlag[n])}},n.submit=function(){this.gl.flush()},n.readPixels=function(e,t,i,n,s){var r=this.gl;r.readPixels(e,t,i,n,r.RGBA,r.UNSIGNED_BYTE,s)},n.readPixelsAsync=(i=g(m().mark((function e(t,i,n,s,r){var a,o,h,l,c,u,d,f,p,_=this;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l=this.gl,this.webgl2){e.next=3;break}return e.abrupt("return",this.readPixels(t,i,n,s,r));case 3:return c=function(e,t){var i=l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE,0);return _.submit(),new Promise((function(n,s){!function r(){var a=l.clientWaitSync(i,e,0);a===l.WAIT_FAILED?(l.deleteSync(i),s(new Error("webgl clientWaitSync sync failed"))):a===l.TIMEOUT_EXPIRED?setTimeout(r,t):(l.deleteSync(i),n())}()}))},u=null==(a=this.renderTarget.colorBuffer)?void 0:a.impl,d=null!=(o=null==u?void 0:u._glFormat)?o:l.RGBA,f=null!=(h=null==u?void 0:u._glPixelType)?h:l.UNSIGNED_BYTE,p=l.createBuffer(),l.bindBuffer(l.PIXEL_PACK_BUFFER,p),l.bufferData(l.PIXEL_PACK_BUFFER,r.byteLength,l.STREAM_READ),l.readPixels(t,i,n,s,d,f,0),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),e.next=14,c(0,20);case 14:l.bindBuffer(l.PIXEL_PACK_BUFFER,p),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,r),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),l.deleteBuffer(p);case 18:case"end":return e.stop()}}),e,this)}))),function(e,t,n,s,r){return i.apply(this,arguments)}),n.setAlphaToCoverage=function(e){this.webgl2&&this.alphaToCoverage!==e&&(this.alphaToCoverage=e,e?this.gl.enable(this.gl.SAMPLE_ALPHA_TO_COVERAGE):this.gl.disable(this.gl.SAMPLE_ALPHA_TO_COVERAGE))},n.setTransformFeedbackBuffer=function(e){if(this.transformFeedbackBuffer!==e&&(this.transformFeedbackBuffer=e,this.webgl2)){var t=this.gl;e?(this.feedback||(this.feedback=t.createTransformFeedback()),t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,this.feedback)):t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,null)}},n.setRaster=function(e){this.raster!==e&&(this.raster=e,this.webgl2&&(e?this.gl.disable(this.gl.RASTERIZER_DISCARD):this.gl.enable(this.gl.RASTERIZER_DISCARD)))},n.setDepthBias=function(e){this.depthBiasEnabled!==e&&(this.depthBiasEnabled=e,e?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL))},n.setDepthBiasValues=function(e,t){this.gl.polygonOffset(t,e)},n.setStencilTest=function(e){if(this.stencil!==e){var t=this.gl;e?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),this.stencil=e}},n.setStencilFunc=function(e,t,i){this.stencilFuncFront===e&&this.stencilRefFront===t&&this.stencilMaskFront===i&&this.stencilFuncBack===e&&this.stencilRefBack===t&&this.stencilMaskBack===i||(this.gl.stencilFunc(this.glComparison[e],t,i),this.stencilFuncFront=this.stencilFuncBack=e,this.stencilRefFront=this.stencilRefBack=t,this.stencilMaskFront=this.stencilMaskBack=i)},n.setStencilFuncFront=function(e,t,i){if(this.stencilFuncFront!==e||this.stencilRefFront!==t||this.stencilMaskFront!==i){var n=this.gl;n.stencilFuncSeparate(n.FRONT,this.glComparison[e],t,i),this.stencilFuncFront=e,this.stencilRefFront=t,this.stencilMaskFront=i}},n.setStencilFuncBack=function(e,t,i){if(this.stencilFuncBack!==e||this.stencilRefBack!==t||this.stencilMaskBack!==i){var n=this.gl;n.stencilFuncSeparate(n.BACK,this.glComparison[e],t,i),this.stencilFuncBack=e,this.stencilRefBack=t,this.stencilMaskBack=i}},n.setStencilOperation=function(e,t,i,n){this.stencilFailFront===e&&this.stencilZfailFront===t&&this.stencilZpassFront===i&&this.stencilFailBack===e&&this.stencilZfailBack===t&&this.stencilZpassBack===i||(this.gl.stencilOp(this.glStencilOp[e],this.glStencilOp[t],this.glStencilOp[i]),this.stencilFailFront=this.stencilFailBack=e,this.stencilZfailFront=this.stencilZfailBack=t,this.stencilZpassFront=this.stencilZpassBack=i),this.stencilWriteMaskFront===n&&this.stencilWriteMaskBack===n||(this.gl.stencilMask(n),this.stencilWriteMaskFront=n,this.stencilWriteMaskBack=n)},n.setStencilOperationFront=function(e,t,i,n){this.stencilFailFront===e&&this.stencilZfailFront===t&&this.stencilZpassFront===i||(this.gl.stencilOpSeparate(this.gl.FRONT,this.glStencilOp[e],this.glStencilOp[t],this.glStencilOp[i]),this.stencilFailFront=e,this.stencilZfailFront=t,this.stencilZpassFront=i),this.stencilWriteMaskFront!==n&&(this.gl.stencilMaskSeparate(this.gl.FRONT,n),this.stencilWriteMaskFront=n)},n.setStencilOperationBack=function(e,t,i,n){this.stencilFailBack===e&&this.stencilZfailBack===t&&this.stencilZpassBack===i||(this.gl.stencilOpSeparate(this.gl.BACK,this.glStencilOp[e],this.glStencilOp[t],this.glStencilOp[i]),this.stencilFailBack=e,this.stencilZfailBack=t,this.stencilZpassBack=i),this.stencilWriteMaskBack!==n&&(this.gl.stencilMaskSeparate(this.gl.BACK,n),this.stencilWriteMaskBack=n)},n.setBlendState=function(e){var t=this.blendState;if(!t.equals(e)){var i=this.gl,n=e.blend,s=e.colorOp,r=e.alphaOp,a=e.colorSrcFactor,o=e.colorDstFactor,h=e.alphaSrcFactor,l=e.alphaDstFactor;if(t.blend!==n&&(n?i.enable(i.BLEND):i.disable(i.BLEND)),t.colorOp!==s||t.alphaOp!==r){var c=this.glBlendEquation;i.blendEquationSeparate(c[s],c[r])}t.colorSrcFactor===a&&t.colorDstFactor===o&&t.alphaSrcFactor===h&&t.alphaDstFactor===l||i.blendFuncSeparate(this.glBlendFunctionColor[a],this.glBlendFunctionColor[o],this.glBlendFunctionAlpha[h],this.glBlendFunctionAlpha[l]),t.allWrite!==e.allWrite&&this.gl.colorMask(e.redWrite,e.greenWrite,e.blueWrite,e.alphaWrite),t.copy(e)}},n.setBlendColor=function(e,t,i,n){var s=this.blendColor;e===s.r&&t===s.g&&i===s.b&&n===s.a||(this.gl.blendColor(e,t,i,n),s.set(e,t,i,n))},n.setStencilState=function(e,t){e||t?(this.setStencilTest(!0),e===t?(this.setStencilFunc(e.func,e.ref,e.readMask),this.setStencilOperation(e.fail,e.zfail,e.zpass,e.writeMask)):(null!=e||(e=Gi.DEFAULT),this.setStencilFuncFront(e.func,e.ref,e.readMask),this.setStencilOperationFront(e.fail,e.zfail,e.zpass,e.writeMask),null!=t||(t=Gi.DEFAULT),this.setStencilFuncBack(t.func,t.ref,t.readMask),this.setStencilOperationBack(t.fail,t.zfail,t.zpass,t.writeMask))):this.setStencilTest(!1)},n.setDepthState=function(e){var t=this.depthState;if(!t.equals(e)){var i=this.gl,n=e.write;t.write!==n&&i.depthMask(n);var s=e.func,r=e.test;!r&&n&&(r=!0,s=7),t.func!==s&&i.depthFunc(this.glComparison[s]),t.test!==r&&(r?i.enable(i.DEPTH_TEST):i.disable(i.DEPTH_TEST)),t.copy(e)}},n.setCullMode=function(e){if(this.cullMode!==e){if(e===Ze)this.gl.disable(this.gl.CULL_FACE);else{this.cullMode===Ze&&this.gl.enable(this.gl.CULL_FACE);var t=this.glCull[e];this.cullFace!==t&&(this.gl.cullFace(t),this.cullFace=t)}this.cullMode=e}},n.setShader=function(e){if(e!==this.shader){if(e.failed)return!1;if(!e.ready&&!e.impl.finalize(this,e))return e.failed=!0,!1;this.shader=e,this.gl.useProgram(e.impl.glProgram),this.attributesInvalidated=!0}return!0},n.getHdrFormat=function(e,t,i,n){var s=this.extTextureHalfFloat&&(!t||this.textureHalfFloatRenderable)&&(!i||this.textureHalfFloatUpdatable)&&(!n||this.extTextureHalfFloatLinear),r=this.extTextureFloat&&(!t||this.textureFloatRenderable)&&(!n||this.extTextureFloatLinear);return s&&r?e?tt:Je:s?Je:r?tt:null},n.clearVertexArrayObjectCache=function(){var e=this.gl;this._vaoMap.forEach((function(t,i,n){e.deleteVertexArray(t)})),this._vaoMap.clear()},n.resizeCanvas=function(e,t){this._width=e,this._height=t;var i=Math.min(this._maxPixelRatio,V.browser?window.devicePixelRatio:1);e=Math.floor(e*i),t=Math.floor(t*i),this.canvas.width===e&&this.canvas.height===t||(this.canvas.width=e,this.canvas.height=t,this.fire(Hi.EVENT_RESIZE,e,t))},y(t,[{key:"extDisjointTimerQuery",get:function(){return this._extDisjointTimerQuery||this.webgl2&&(this._extDisjointTimerQuery=this.getExtension("EXT_disjoint_timer_query_webgl2","EXT_disjoint_timer_query")),this._extDisjointTimerQuery}},{key:"width",get:function(){return this.gl.drawingBufferWidth||this.canvas.width}},{key:"height",get:function(){return this.gl.drawingBufferHeight||this.canvas.height}},{key:"fullscreen",get:function(){return!!document.fullscreenElement},set:function(e){e?this.gl.canvas.requestFullscreen():document.exitFullscreen()}},{key:"textureFloatHighPrecision",get:function(){return void 0===this._textureFloatHighPrecision&&(this._textureFloatHighPrecision=function(e){if(!e.textureFloatRenderable)return!1;var t=new es(e,Hs.createDefinition(e,{name:"ptest1",vertexCode:qs,fragmentCode:"\nvoid main(void) { \n gl_FragColor = vec4(2147483648.0);\n}\n"})),i=new es(e,Hs.createDefinition(e,{name:"ptest2",vertexCode:qs,fragmentCode:"\nuniform sampler2D source;\nvec4 packFloat(float depth) {\n const vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n const vec4 bit_mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n vec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n res -= res.xxyz * bit_mask;\n return res;\n}\nvoid main(void) {\n float c = texture2D(source, vec2(0.0)).r;\n float diff = abs(c - 2147483648.0) / 2147483648.0;\n gl_FragColor = packFloat(diff);\n}\n"})),n={format:tt,width:1,height:1,mipmaps:!1,minFilter:0,magFilter:0,name:"testFHP"},s=new ys(e,n),r=new Xi({colorBuffer:s,depth:!1});Ys(e,r,t),n.format=7;var a=new ys(e,n),o=new Xi({colorBuffer:a,depth:!1});e.constantTexSource.setValue(s),Ys(e,o,i);var h=e.activeFramebuffer;e.setFramebuffer(o.impl._glFrameBuffer);var l=new Uint8Array(4);e.readPixels(0,0,1,1,l),e.setFramebuffer(h);var c=l[0]/255/16777216+l[1]/255/65536+l[2]/255/256+l[3]/255;return s.destroy(),r.destroy(),a.destroy(),o.destroy(),t.destroy(),i.destroy(),0===c}(this)),this._textureFloatHighPrecision}},{key:"textureHalfFloatUpdatable",get:function(){return void 0===this._textureHalfFloatUpdatable&&(this.webgl2?this._textureHalfFloatUpdatable=!0:this._textureHalfFloatUpdatable=function(e,t){var i=!0,n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);var s=new Uint16Array(16);return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,2,2,0,e.RGBA,t,s),e.getError()!==e.NO_ERROR&&(i=!1,console.log("Above error related to HALF_FLOAT_OES can be ignored, it was triggered by testing half float texture support")),e.bindTexture(e.TEXTURE_2D,null),e.deleteTexture(n),i}(this.gl,this.extTextureHalfFloat.HALF_FLOAT_OES)),this._textureHalfFloatUpdatable}}]),t}(Hi);var Qs=0,$s=function(){function e(e,t,i,n,s){void 0===n&&(n=0),this.device=e,this.format=t,this.numIndices=i,this.usage=n,this.id=Qs++,this.impl=e.createIndexBufferImpl(this);var r=xi[t];this.bytesPerIndex=r,this.numBytes=this.numIndices*r,s?this.setData(s):this.storage=new ArrayBuffer(this.numBytes),this.adjustVramSizeTracking(e._vram,this.numBytes),this.device.buffers.push(this)}var t=e.prototype;return t.destroy=function(){var e=this.device,t=e.buffers.indexOf(this);-1!==t&&e.buffers.splice(t,1),this.device.indexBuffer===this&&(this.device.indexBuffer=null),this.impl.initialized&&(this.impl.destroy(e),this.adjustVramSizeTracking(e._vram,-this.storage.byteLength))},t.adjustVramSizeTracking=function(e,t){e.ib+=t},t.loseContext=function(){this.impl.loseContext()},t.getFormat=function(){return this.format},t.getNumIndices=function(){return this.numIndices},t.lock=function(){return this.storage},t.unlock=function(){this.impl.unlock(this)},t.setData=function(e){return e.byteLength===this.numBytes&&(this.storage=e,this.unlock(),!0)},t._lockTypedArray=function(){var e=this.lock();return 2===this.format?new Uint32Array(e):1===this.format?new Uint16Array(e):new Uint8Array(e)},t.writeData=function(e,t){var i=this._lockTypedArray();if(e.length>t)if(ArrayBuffer.isView(e))e=e.subarray(0,t),i.set(e);else for(var n=0;nthis.vertexBuffer.numVertices&&(i=this.vertexBuffer.numVertices);var s=n.numComponents;if(this.vertexBuffer.getFormat().interleaved)for(var r=0,a=0;ai*s){var o=i*s;if(ArrayBuffer.isView(t))t=t.subarray(0,o),n.array.set(t);else for(var h=0;h0?this.wheelDelta=1:i.deltaY<0&&(this.wheelDelta=-1)),Pr()?(this.dx=i.movementX||i.webkitMovementX||i.mozMovementX||0,this.dy=i.movementY||i.webkitMovementY||i.mozMovementY||0):(this.dx=this.x-t._lastX,this.dy=this.y-t._lastY),"mousedown"===i.type||"mouseup"===i.type?this.button=i.button:this.button=-1,this.buttons=t._buttons.slice(0),this.element=i.target,this.ctrlKey=i.ctrlKey||!1,this.altKey=i.altKey||!1,this.shiftKey=i.shiftKey||!1,this.metaKey=i.metaKey||!1,this.event=i},Ir=function(e){function t(t){var i;return(i=e.call(this)||this)._lastX=0,i._lastY=0,i._buttons=[!1,!1,!1],i._lastbuttons=[!1,!1,!1],i._upHandler=i._handleUp.bind(w(i)),i._downHandler=i._handleDown.bind(w(i)),i._moveHandler=i._handleMove.bind(w(i)),i._wheelHandler=i._handleWheel.bind(w(i)),i._contextMenuHandler=function(e){e.preventDefault()},i._target=null,i._attached=!1,i.attach(t),i}S(t,e),t.isPointerLocked=function(){return Pr()};var i=t.prototype;return i.attach=function(e){if(this._target=e,!this._attached){this._attached=!0;var t=!!V.passiveEvents&&{passive:!1};window.addEventListener("mouseup",this._upHandler,t),window.addEventListener("mousedown",this._downHandler,t),window.addEventListener("mousemove",this._moveHandler,t),window.addEventListener("wheel",this._wheelHandler,t)}},i.detach=function(){if(this._attached){this._attached=!1,this._target=null;var e=!!V.passiveEvents&&{passive:!1};window.removeEventListener("mouseup",this._upHandler,e),window.removeEventListener("mousedown",this._downHandler,e),window.removeEventListener("mousemove",this._moveHandler,e),window.removeEventListener("wheel",this._wheelHandler,e)}},i.disableContextMenu=function(){this._target&&this._target.addEventListener("contextmenu",this._contextMenuHandler)},i.enableContextMenu=function(){this._target&&this._target.removeEventListener("contextmenu",this._contextMenuHandler)},i.enablePointerLock=function(e,t){if(document.body.requestPointerLock){e&&document.addEventListener("pointerlockchange",(function t(){e(),document.removeEventListener("pointerlockchange",t)}),!1),t&&document.addEventListener("pointerlockerror",(function e(){t(),document.removeEventListener("pointerlockerror",e)}),!1),document.body.requestPointerLock()}else t&&t()},i.disablePointerLock=function(e){if(document.exitPointerLock){e&&document.addEventListener("pointerlockchange",(function t(){e(),document.removeEventListener("pointerlockchange",t)}),!1),document.exitPointerLock()}},i.update=function(){this._lastbuttons[0]=this._buttons[0],this._lastbuttons[1]=this._buttons[1],this._lastbuttons[2]=this._buttons[2]},i.isPressed=function(e){return this._buttons[e]},i.wasPressed=function(e){return this._buttons[e]&&!this._lastbuttons[e]},i.wasReleased=function(e){return!this._buttons[e]&&this._lastbuttons[e]},i._handleUp=function(e){this._buttons[e.button]=!1;var t=new Rr(this,e);t.event&&this.fire(yr,t)},i._handleDown=function(e){this._buttons[e.button]=!0;var t=new Rr(this,e);t.event&&this.fire(gr,t)},i._handleMove=function(e){var t=new Rr(this,e);t.event&&(this.fire(vr,t),this._lastX=t.x,this._lastY=t.y)},i._handleWheel=function(e){var t=new Rr(this,e);t.event&&this.fire(xr,t)},i._getTargetCoords=function(e){var t=this._target.getBoundingClientRect(),i=Math.floor(t.left),n=Math.floor(t.top);return e.clientX=i+this._target.clientWidth||e.clientY=n+this._target.clientHeight?null:{x:e.clientX-i,y:e.clientY-n}},t}(E),Lr=function(){function e(e,t){void 0===t&&(t={}),this._keyboard=t.keyboard||null,this._mouse=t.mouse||null,this._gamepads=t.gamepads||null,this._element=null,this._actions={},this._axes={},this._axesValues={},e&&this.attach(e)}var t=e.prototype;return t.attach=function(e){this._element=e,this._keyboard&&this._keyboard.attach(e),this._mouse&&this._mouse.attach(e)},t.detach=function(){this._keyboard&&this._keyboard.detach(),this._mouse&&this._mouse.detach(),this._element=null},t.disableContextMenu=function(){this._mouse||this._enableMouse(),this._mouse.disableContextMenu()},t.enableContextMenu=function(){this._mouse||this._enableMouse(),this._mouse.enableContextMenu()},t.update=function(e){for(var t in this._keyboard&&this._keyboard.update(),this._mouse&&this._mouse.update(),this._gamepads&&this._gamepads.update(),this._axesValues={},this._axes)this._axesValues[t]=[]},t.appendAction=function(e,t){this._actions[e]=this._actions[e]||[],this._actions[e].push(t)},t.registerKeys=function(e,t){if(this._keyboard||this._enableKeyboard(),this._actions[e])throw new Error("Action: "+e+" already registered");if(void 0===t)throw new Error("Invalid button");t.length||(t=[t]),this.appendAction(e,{type:mr,keys:t})},t.registerMouse=function(e,t){if(this._mouse||this._enableMouse(),void 0===t)throw new Error("Invalid button");this.appendAction(e,{type:pr,button:t})},t.registerPadButton=function(e,t,i){if(void 0===i)throw new Error("Invalid button");this.appendAction(e,{type:_r,button:i,pad:t})},t.registerAxis=function(e){var t=e.name;this._axes[t]||(this._axes[t]=[]);var i=this._axes[t].push(t);(e=e||{}).pad=e.pad||0;var n=function(n,s,r,a){switch(s){case"mousex":n._mouse.on(vr,(function(e){n._axesValues[t][i]=e.dx/10}));break;case"mousey":n._mouse.on(vr,(function(e){n._axesValues[t][i]=e.dy/10}));break;case"key":n._axes[t].push((function(){return n._keyboard.isPressed(a)?r:0}));break;case"padrx":n._axes[t].push((function(){return n._gamepads.getAxis(e.pad,2)}));break;case"padry":n._axes[t].push((function(){return n._gamepads.getAxis(e.pad,3)}));break;case"padlx":n._axes[t].push((function(){return n._gamepads.getAxis(e.pad,0)}));break;case"padly":n._axes[t].push((function(){return n._gamepads.getAxis(e.pad,1)}));break;default:throw new Error("Unknown axis")}};n(this,e.positive,1,e.positiveKey),(e.negativeKey||e.negative!==e.positive)&&n(this,e.negative,-1,e.negativeKey)},t.isPressed=function(e){if(!this._actions[e])return!1;for(var t=this._actions[e].length,i=0;iMath.abs(t)&&(t=s)}else this._axesValues[e]&&Math.abs(this._axesValues[e][n])>Math.abs(t)&&(t=this._axesValues[e][n]);return t},t._enableMouse=function(){if(this._mouse=new Ir,!this._element)throw new Error("Controller must be attached to an Element");this._mouse.attach(this._element)},t._enableKeyboard=function(){if(this._keyboard=new Mr,!this._element)throw new Error("Controller must be attached to an Element");this._keyboard.attach(this._element)},e}(),Dr=Object.freeze([]),Or=function(){return Dr};"undefined"!=typeof navigator&&(Or=(navigator.getGamepads||navigator.webkitGetGamepads||Or).bind(navigator));var kr={buttons:{PAD_FACE_1:0,PAD_FACE_2:1,PAD_FACE_3:2,PAD_FACE_4:3,PAD_L_SHOULDER_1:4,PAD_R_SHOULDER_1:5,PAD_L_SHOULDER_2:6,PAD_R_SHOULDER_2:7,PAD_SELECT:8,PAD_START:9,PAD_L_STICK_BUTTON:10,PAD_R_STICK_BUTTON:11,PAD_UP:12,PAD_DOWN:13,PAD_LEFT:14,PAD_RIGHT:15,PAD_VENDOR:16,XRPAD_TRIGGER:0,XRPAD_SQUEEZE:1,XRPAD_TOUCHPAD_BUTTON:2,XRPAD_STICK_BUTTON:3,XRPAD_A:4,XRPAD_B:5},axes:{PAD_L_STICK_X:0,PAD_L_STICK_Y:1,PAD_R_STICK_X:2,PAD_R_STICK_Y:3,XRPAD_TOUCHPAD_X:0,XRPAD_TOUCHPAD_Y:1,XRPAD_STICK_X:2,XRPAD_STICK_Y:3}},Fr={DEFAULT:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_3","PAD_FACE_4","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"]},DEFAULT_DUAL:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_3","PAD_FACE_4","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"],synthesizedButtons:{PAD_UP:{axis:0,min:0,max:1},PAD_DOWN:{axis:0,min:-1,max:0},PAD_LEFT:{axis:0,min:-1,max:0},PAD_RIGHT:{axis:0,min:0,max:1}}},PS3:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_4","PAD_FACE_3","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"],mapping:"standard"},DEFAULT_XR:{buttons:["XRPAD_TRIGGER","XRPAD_SQUEEZE","XRPAD_TOUCHPAD_BUTTON","XRPAD_STICK_BUTTON","XRPAD_A","XRPAD_B"],axes:["XRPAD_TOUCHPAD_X","XRPAD_TOUCHPAD_Y","XRPAD_STICK_X","XRPAD_STICK_Y"],mapping:"xr-standard"}},Br={"Product: 0268":"PS3"},Ur={};function Nr(e){var t=Ur[e.id];if(t)return t;for(var i in Br)if(-1!==e.id.indexOf(i)){var n=Br[i];if(!e.mapping){var s=Fr["RAW_"+n];if(s)return s}return Fr[n]}if("xr-standard"===e.mapping)return Fr.DEFAULT_XR;var r=Fr.DEFAULT,a=e.buttons.length0):(this.value=e.value,this.pressed=e.pressed,this.touched=null!=(i=e.touched)?i:e.value>0);t&&("number"==typeof t?(this.wasPressed=1!==t&&this.pressed,this.wasReleased=1===t&&!this.pressed,this.wasTouched=0===t&&this.touched):(this.wasPressed=!t.pressed&&this.pressed,this.wasReleased=t.pressed&&!this.pressed,this.wasTouched=!(null!=(n=t.touched)?n:t.value>0)&&this.touched))}return e.prototype.update=function(e){var t,i=e.value,n=e.pressed,s=null!=(t=e.touched)?t:i>0;this.wasPressed=!this.pressed&&n,this.wasReleased=this.pressed&&!n,this.wasTouched=!this.touched&&s,this.value=i,this.pressed=n,this.touched=s},e}(),Hr=Object.freeze(new Gr(0)),Wr=function(){function e(e,t){this._compiledMapping={buttons:[],axes:[]},this.id=e.id,this.index=e.index,this._buttons=e.buttons.map((function(e){return new Gr(e)})),this._axes=[].concat(e.axes),this._previousAxes=[].concat(e.axes),this.mapping=t.mapping,this.map=t,this.hand=e.hand||"none",this.pad=e,this._compileMapping()}var t,i=e.prototype;return i._compileMapping=function(){var e=this,t=this._compiledMapping,i=t.axes,n=t.buttons,s=kr.axes,r=kr.buttons;i.length=0,n.length=0,this.map.axes&&this.map.axes.forEach((function(t,n){i[s[t]]=function(){return e.pad.axes[n]||0}}));for(var a=0,o=i.length;azr?t:0},y(e,[{key:"connected",get:function(){return this.pad.connected}},{key:"axes",get:function(){return this._compiledMapping.axes.map((function(e){return e()}))}},{key:"buttons",get:function(){return this._compiledMapping.buttons.map((function(e){return e()}))}}]),e}(),Xr=function(e){function t(){var t;return(t=e.call(this)||this).gamepadsSupported=V.gamepads,t.current=[],t._previous=[],t._ongamepadconnectedHandler=t._ongamepadconnected.bind(w(t)),t._ongamepaddisconnectedHandler=t._ongamepaddisconnected.bind(w(t)),window.addEventListener("gamepadconnected",t._ongamepadconnectedHandler,!1),window.addEventListener("gamepaddisconnected",t._ongamepaddisconnectedHandler,!1),t.poll(),t}S(t,e);var i=t.prototype;return i._ongamepadconnected=function(e){for(var t=new Wr(e.gamepad,this.getMap(e.gamepad)),i=this.current,n=i.findIndex((function(e){return e.index===t.index}));-1!==n;)i.splice(n,1),n=i.findIndex((function(e){return e.index===t.index}));i.push(t),this.fire(Sr,t)},i._ongamepaddisconnected=function(e){var t=this.current,i=t.findIndex((function(t){return t.index===e.gamepad.index}));-1!==i&&(this.fire(br,t[i]),t.splice(i,1))},i.update=function(){this.poll()},i.poll=function(e){void 0===e&&(e=[]),e.length>0&&(e.length=0);for(var t=Or(),i=0,n=t.length;i=0?e.ResponseType.ARRAY_BUFFER:".json"===n?e.ResponseType.JSON:".xml"===n?e.ResponseType.DOCUMENT:e.ResponseType.TEXT},t._isBinaryContentType=function(t){return[e.ContentType.BASIS,e.ContentType.BIN,e.ContentType.DDS,e.ContentType.GLB,e.ContentType.MP3,e.ContentType.MP4,e.ContentType.OGG,e.ContentType.OPUS,e.ContentType.WAV].indexOf(t)>=0},t._isBinaryResponseType=function(t){return t===e.ResponseType.ARRAY_BUFFER||t===e.ResponseType.BLOB||t===e.ResponseType.JSON},t._onReadyStateChange=function(e,t,i,n){if(4===n.readyState)switch(n.status){case 0:n.responseURL&&n.responseURL.startsWith("file:///")?this._onSuccess(e,t,i,n):this._onError(e,t,i,n);break;case 200:case 201:case 206:case 304:this._onSuccess(e,t,i,n);break;default:this._onError(e,t,i,n)}},t._onSuccess=function(t,i,n,s){var r,a,o=s.getResponseHeader("Content-Type");o&&(a=o.split(";")[0].trim());try{r=this._isBinaryContentType(a)||this._isBinaryResponseType(s.responseType)?s.response:a===e.ContentType.JSON||i.split("?")[0].endsWith(".json")?JSON.parse(s.responseText):s.responseType===e.ResponseType.DOCUMENT||a===e.ContentType.XML?s.responseXML:s.responseText,n.callback(null,r)}catch(e){n.callback(e)}},t._onError=function(t,i,n,s){var r=this;if(!n.retrying)if(n.retry&&n.retriesn)return 0;var o=0;return r===qe?o=1-s*(a-i)/(n-i):r===Ye?o=i/(i+s*(a-i)):r===Ke&&(o=Math.pow(a/i,-s)),pe.clamp(o,0,1)}(this.manager.listener.getPosition(),this.position,this.minDistance,this.maxDistance,this.rollOffFactor,this.distanceModel),i=this.getVolume();this.source.volume=i*t}},getMaxDistance:function(){return this.maxDistance},setMaxDistance:function(e){this.maxDistance=e},getMinDistance:function(){return this.minDistance},setMinDistance:function(e){this.minDistance=e},getRollOffFactor:function(){return this.rollOffFactor},setRollOffFactor:function(e){this.rollOffFactor=e},getDistanceModel:function(){return this.distanceModel},setDistanceModel:function(e){this.distanceModel=e}})}var ia=function(){function e(e){this._manager=e,this.position=new ye,this.velocity=new ye,this.orientation=new Me}var t=e.prototype;return t.getPosition=function(){return this.position},t.setPosition=function(e){this.position.copy(e);var t=this.listener;t&&("positionX"in t?(t.positionX.value=e.x,t.positionY.value=e.y,t.positionZ.value=e.z):t.setPosition&&t.setPosition(e.x,e.y,e.z))},t.getVelocity=function(){return this.velocity},t.setVelocity=function(e){},t.setOrientation=function(e){this.orientation.copy(e);var t=this.listener;if(t){var i=e.data;"forwardX"in t?(t.forwardX.value=-i[8],t.forwardY.value=-i[9],t.forwardZ.value=-i[10],t.upX.value=i[4],t.upY.value=i[5],t.upZ.value=i[6]):t.setOrientation&&t.setOrientation(-i[8],-i[9],-i[10],i[4],i[5],i[6])}},t.getOrientation=function(){return this.orientation},y(e,[{key:"listener",get:function(){var e=this._manager.context;return e?e.listener:null}}]),e}(),na="running",sa=["click","touchstart","mousedown"],ra=function(e){function t(){var t;return(t=e.call(this)||this)._context=null,t.AudioContext="undefined"!=typeof AudioContext&&AudioContext||"undefined"!=typeof webkitAudioContext&&webkitAudioContext,t.AudioContext,t._unlockHandlerFunc=t._unlockHandler.bind(w(t)),t._userSuspended=!1,t.listener=new ia(w(t)),t._volume=1,t}S(t,e);var i=t.prototype;return i.suspend=function(){this._userSuspended||(this._userSuspended=!0,this._context&&this._context.state===na&&this._suspend())},i.resume=function(){this._userSuspended&&(this._userSuspended=!1,this._context&&this._context.state!==na&&this._resume())},i.destroy=function(){var e;(this.fire("destroy"),this._context)&&(this._removeUnlockListeners(),null==(e=this._context)||e.close(),this._context=null)},i.playSound=function(e,t){void 0===t&&(t={});var i=null;return Jr&&(i=new Jr(this,e,t)).play(),i},i.playSound3d=function(e,t,i){void 0===i&&(i={});var n=null;return ea&&((n=new ea(this,e,i)).setPosition(t),i.volume&&n.setVolume(i.volume),i.loop&&n.setLoop(i.loop),i.maxDistance&&n.setMaxDistance(i.maxDistance),i.minDistance&&n.setMinDistance(i.minDistance),i.rollOffFactor&&n.setRollOffFactor(i.rollOffFactor),i.distanceModel&&n.setDistanceModel(i.distanceModel),n.play()),n},i._resume=function(){var e=this;this._context.resume().then((function(){var t=e._context.createBufferSource();t.buffer=e._context.createBuffer(1,1,e._context.sampleRate),t.connect(e._context.destination),t.start(0),t.onended=function(i){t.disconnect(0),e.fire("resume")}}),(function(e){})).catch((function(e){}))},i._suspend=function(){var e=this;this._context.suspend().then((function(){e.fire("suspend")}),(function(e){})).catch((function(e){}))},i._unlockHandler=function(){this._removeUnlockListeners(),this._userSuspended||this._context.state===na||this._resume()},i._registerUnlockListeners=function(){var e=this;sa.forEach((function(t){window.addEventListener(t,e._unlockHandlerFunc,!1)}))},i._removeUnlockListeners=function(){var e=this;sa.forEach((function(t){window.removeEventListener(t,e._unlockHandlerFunc,!1)}))},y(t,[{key:"volume",get:function(){return this._volume},set:function(e){e=pe.clamp(e,0,1),this._volume=e,this.fire("volumechange",e)}},{key:"suspended",get:function(){return this._userSuspended}},{key:"context",get:function(){return!this._context&&this.AudioContext&&(this._context=new this.AudioContext,this._context.state!==na&&this._registerUnlockListeners()),this._context}}]),t}(E),aa=function(){function e(e){this.audio=void 0,this.buffer=void 0,e instanceof Audio?this.audio=e:this.buffer=e}return y(e,[{key:"duration",get:function(){var e=0;return this.buffer?e=this.buffer.duration:this.audio&&(e=this.audio.duration),e||0}}]),e}();function oa(e,t){return e%t||0}var ha=function(e){function t(t,i,n){var s;return(s=e.call(this)||this).source=null,s._manager=t,s._volume=void 0!==n.volume?pe.clamp(Number(n.volume)||0,0,1):1,s._pitch=void 0!==n.pitch?Math.max(.01,Number(n.pitch)||0):1,s._loop=!(void 0===n.loop||!n.loop),s._sound=i,s._state=2,s._suspended=!1,s._suspendEndEvent=0,s._suspendInstanceEvents=!1,s._playWhenLoaded=!0,s._startTime=Math.max(0,Number(n.startTime)||0),s._duration=Math.max(0,Number(n.duration)||0),s._startOffset=null,s._onPlayCallback=n.onPlay,s._onPauseCallback=n.onPause,s._onResumeCallback=n.onResume,s._onStopCallback=n.onStop,s._onEndCallback=n.onEnd,$r()?(s._startedAt=0,s._currentTime=0,s._currentOffset=0,s._inputNode=null,s._connectorNode=null,s._firstNode=null,s._lastNode=null,s._waitingContextSuspension=!1,s._initializeNodes(),s._endedHandler=s._onEnded.bind(w(s))):(s._isReady=!1,s._loadedMetadataHandler=s._onLoadedMetadata.bind(w(s)),s._timeUpdateHandler=s._onTimeUpdate.bind(w(s)),s._endedHandler=s._onEnded.bind(w(s)),s._createSource()),s}S(t,e);var i=t.prototype;return i._onPlay=function(){this.fire("play"),this._onPlayCallback&&this._onPlayCallback(this)},i._onPause=function(){this.fire("pause"),this._onPauseCallback&&this._onPauseCallback(this)},i._onResume=function(){this.fire("resume"),this._onResumeCallback&&this._onResumeCallback(this)},i._onStop=function(){this.fire("stop"),this._onStopCallback&&this._onStopCallback(this)},i._onEnded=function(){this._suspendEndEvent>0?this._suspendEndEvent--:(this.fire("end"),this._onEndCallback&&this._onEndCallback(this),this.stop())},i._onManagerVolumeChange=function(){this.volume=this._volume},i._onManagerSuspend=function(){0!==this._state||this._suspended||(this._suspended=!0,this.pause())},i._onManagerResume=function(){this._suspended&&(this._suspended=!1,this.resume())},i._initializeNodes=function(){this.gain=this._manager.context.createGain(),this._inputNode=this.gain,this._connectorNode=this.gain,this._connectorNode.connect(this._manager.context.destination)},i.play=function(){return 2!==this._state&&this.stop(),this._state=0,this._playWhenLoaded=!1,!this._waitingContextSuspension&&(this._manager.suspended?(this._manager.once("resume",this._playAudioImmediate,this),this._waitingContextSuspension=!0,!1):(this._playAudioImmediate(),!0))},i._playAudioImmediate=function(){if(this._waitingContextSuspension=!1,0===this._state){this.source||this._createSource();var e=oa(this._startOffset,this.duration);e=oa(this._startTime+e,this._sound.duration),this._startOffset=null,this._duration?this.source.start(0,e,this._duration):this.source.start(0,e),this._startedAt=this._manager.context.currentTime,this._currentTime=0,this._currentOffset=e,this.volume=this._volume,this.loop=this._loop,this.pitch=this._pitch,this._manager.on("volumechange",this._onManagerVolumeChange,this),this._manager.on("suspend",this._onManagerSuspend,this),this._manager.on("resume",this._onManagerResume,this),this._manager.on("destroy",this._onManagerDestroy,this),this._suspendInstanceEvents||this._onPlay()}},i.pause=function(){return this._playWhenLoaded=!1,0===this._state&&(this._state=1,this._waitingContextSuspension||(this._updateCurrentTime(),this._suspendEndEvent++,this.source.stop(0),this.source=null,this._startOffset=null,this._suspendInstanceEvents||this._onPause()),!0)},i.resume=function(){if(1!==this._state)return!1;var e=this.currentTime;return this._state=0,this._waitingContextSuspension||(this.source||this._createSource(),null!==this._startOffset&&(e=oa(this._startOffset,this.duration),e=oa(this._startTime+e,this._sound.duration),this._startOffset=null),this._duration?this.source.start(0,e,this._duration):this.source.start(0,e),this._startedAt=this._manager.context.currentTime,this._currentOffset=e,this.volume=this._volume,this.loop=this._loop,this.pitch=this._pitch,this._playWhenLoaded=!1,this._suspendInstanceEvents||this._onResume()),!0},i.stop=function(){if(this._playWhenLoaded=!1,2===this._state)return!1;var e=0===this._state;return this._state=2,this._waitingContextSuspension||(this._manager.off("volumechange",this._onManagerVolumeChange,this),this._manager.off("suspend",this._onManagerSuspend,this),this._manager.off("resume",this._onManagerResume,this),this._manager.off("destroy",this._onManagerDestroy,this),this._startedAt=0,this._currentTime=0,this._currentOffset=0,this._startOffset=null,this._suspendEndEvent++,e&&this.source&&this.source.stop(0),this.source=null,this._suspendInstanceEvents||this._onStop()),!0},i.setExternalNodes=function(e,t){if(e){t||(t=e);var i=this._manager.context.destination;this._firstNode!==e&&(this._firstNode?this._connectorNode.disconnect(this._firstNode):this._connectorNode.disconnect(i),this._firstNode=e,this._connectorNode.connect(e)),this._lastNode!==t&&(this._lastNode&&this._lastNode.disconnect(i),this._lastNode=t,this._lastNode.connect(i))}else console.error("The firstNode must be a valid Audio Node")},i.clearExternalNodes=function(){var e=this._manager.context.destination;this._firstNode&&(this._connectorNode.disconnect(this._firstNode),this._firstNode=null),this._lastNode&&(this._lastNode.disconnect(e),this._lastNode=null),this._connectorNode.connect(e)},i.getExternalNodes=function(){return[this._firstNode,this._lastNode]},i._createSource=function(){if(!this._sound)return null;var e=this._manager.context;return this._sound.buffer&&(this.source=e.createBufferSource(),this.source.buffer=this._sound.buffer,this.source.connect(this._inputNode),this.source.onended=this._endedHandler,this.source.loopStart=oa(this._startTime,this.source.buffer.duration),this._duration&&(this.source.loopEnd=Math.max(this.source.loopStart,oa(this._startTime+this._duration,this.source.buffer.duration)))),this.source},i._updateCurrentTime=function(){this._currentTime=oa((this._manager.context.currentTime-this._startedAt)*this._pitch+this._currentOffset,this.duration)},i._onManagerDestroy=function(){this.source&&0===this._state&&(this.source.stop(0),this.source=null)},y(t,[{key:"currentTime",get:function(){return null!==this._startOffset?this._startOffset:1===this._state?this._currentTime:2!==this._state&&this.source?(this._updateCurrentTime(),this._currentTime):0},set:function(e){if(!(e<0))if(0===this._state){var t=this._suspendInstanceEvents;this._suspendInstanceEvents=!0,this.stop(),this._startOffset=e,this.play(),this._suspendInstanceEvents=t}else this._startOffset=e,this._currentTime=e}},{key:"duration",get:function(){return this._sound?this._duration?oa(this._duration,this._sound.duration):this._sound.duration:0},set:function(e){this._duration=Math.max(0,Number(e)||0);var t=0===this._state;this.stop(),t&&this.play()}},{key:"isPaused",get:function(){return 1===this._state}},{key:"isPlaying",get:function(){return 0===this._state}},{key:"isStopped",get:function(){return 2===this._state}},{key:"isSuspended",get:function(){return this._suspended}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=!!e,this.source&&(this.source.loop=this._loop)}},{key:"pitch",get:function(){return this._pitch},set:function(e){this._currentOffset=this.currentTime,this._startedAt=this._manager.context.currentTime,this._pitch=Math.max(Number(e)||0,.01),this.source&&(this.source.playbackRate.value=this._pitch)}},{key:"sound",get:function(){return this._sound},set:function(e){this._sound=e,2!==this._state?this.stop():this._createSource()}},{key:"startTime",get:function(){return this._startTime},set:function(e){this._startTime=Math.max(0,Number(e)||0);var t=0===this._state;this.stop(),t&&this.play()}},{key:"volume",get:function(){return this._volume},set:function(e){e=pe.clamp(e,0,1),this._volume=e,this.gain&&(this.gain.gain.value=e*this._manager.volume)}}]),t}(E);$r()||(Object.assign(ha.prototype,{play:function(){return 2!==this._state&&this.stop(),!(!this.source&&!this._createSource())&&(this.volume=this._volume,this.pitch=this._pitch,this.loop=this._loop,this.source.play(),this._state=0,this._playWhenLoaded=!1,this._manager.on("volumechange",this._onManagerVolumeChange,this),this._manager.on("suspend",this._onManagerSuspend,this),this._manager.on("resume",this._onManagerResume,this),this._manager.on("destroy",this._onManagerDestroy,this),this._manager.suspended&&this._onManagerSuspend(),this._suspendInstanceEvents||this._onPlay(),!0)},pause:function(){return!(!this.source||0!==this._state)&&(this._suspendEndEvent++,this.source.pause(),this._playWhenLoaded=!1,this._state=1,this._startOffset=null,this._suspendInstanceEvents||this._onPause(),!0)},resume:function(){return!(!this.source||1!==this._state)&&(this._state=0,this._playWhenLoaded=!1,this.source.paused&&(this.source.play(),this._suspendInstanceEvents||this._onResume()),!0)},stop:function(){return!(!this.source||2===this._state)&&(this._manager.off("volumechange",this._onManagerVolumeChange,this),this._manager.off("suspend",this._onManagerSuspend,this),this._manager.off("resume",this._onManagerResume,this),this._manager.off("destroy",this._onManagerDestroy,this),this._suspendEndEvent++,this.source.pause(),this._playWhenLoaded=!1,this._state=2,this._startOffset=null,this._suspendInstanceEvents||this._onStop(),!0)},setExternalNodes:function(){},clearExternalNodes:function(){},getExternalNodes:function(){return[null,null]},_onLoadedMetadata:function(){this.source.removeEventListener("loadedmetadata",this._loadedMetadataHandler),this._isReady=!0;var e=oa(this._startOffset,this.duration);e=oa(this._startTime+e,this._sound.duration),this._startOffset=null,this.source.currentTime=e},_createSource:function(){return this._sound&&this._sound.audio&&(this._isReady=!1,this.source=this._sound.audio.cloneNode(!0),this.source.addEventListener("loadedmetadata",this._loadedMetadataHandler),this.source.addEventListener("timeupdate",this._timeUpdateHandler),this.source.onended=this._endedHandler),this.source},_onTimeUpdate:function(){this._duration&&this.source.currentTime>oa(this._startTime+this._duration,this.source.duration)&&(this.loop?this.source.currentTime=oa(this._startTime,this.source.duration):(this.source.removeEventListener("timeupdate",this._timeUpdateHandler),this.source.pause(),this._onEnded()))},_onManagerDestroy:function(){this.source&&this.source.pause()}}),Object.defineProperty(ha.prototype,"volume",{get:function(){return this._volume},set:function(e){e=pe.clamp(e,0,1),this._volume=e,this.source&&(this.source.volume=e*this._manager.volume)}}),Object.defineProperty(ha.prototype,"pitch",{get:function(){return this._pitch},set:function(e){this._pitch=Math.max(Number(e)||0,.01),this.source&&(this.source.playbackRate=this._pitch)}}),Object.defineProperty(ha.prototype,"sound",{get:function(){return this._sound},set:function(e){this.stop(),this._sound=e}}),Object.defineProperty(ha.prototype,"currentTime",{get:function(){return null!==this._startOffset?this._startOffset:2!==this._state&&this.source?this.source.currentTime-this._startTime:0},set:function(e){e<0||(this._startOffset=e,this.source&&this._isReady&&(this.source.currentTime=oa(this._startTime+oa(e,this.duration),this._sound.duration),this._startOffset=null))}}));var la=function(e){function t(t,i,n){var s;return void 0===n&&(n={}),(s=e.call(this,t,i,n)||this)._position=new ye,s._velocity=new ye,n.position&&(s.position=n.position),s.maxDistance=void 0!==n.maxDistance?Number(n.maxDistance):1e4,s.refDistance=void 0!==n.refDistance?Number(n.refDistance):1,s.rollOffFactor=void 0!==n.rollOffFactor?Number(n.rollOffFactor):1,s.distanceModel=void 0!==n.distanceModel?n.distanceModel:qe,s}return S(t,e),t.prototype._initializeNodes=function(){this.gain=this._manager.context.createGain(),this.panner=this._manager.context.createPanner(),this.panner.connect(this.gain),this._inputNode=this.panner,this._connectorNode=this.gain,this._connectorNode.connect(this._manager.context.destination)},y(t,[{key:"position",get:function(){return this._position},set:function(e){this._position.copy(e);var t=this.panner;"positionX"in t?(t.positionX.value=e.x,t.positionY.value=e.y,t.positionZ.value=e.z):t.setPosition&&t.setPosition(e.x,e.y,e.z)}},{key:"velocity",get:function(){return this._velocity},set:function(e){this._velocity.copy(e)}},{key:"maxDistance",get:function(){return this.panner.maxDistance},set:function(e){this.panner.maxDistance=e}},{key:"refDistance",get:function(){return this.panner.refDistance},set:function(e){this.panner.refDistance=e}},{key:"rollOffFactor",get:function(){return this.panner.rolloffFactor},set:function(e){this.panner.rolloffFactor=e}},{key:"distanceModel",get:function(){return this.panner.distanceModel},set:function(e){this.panner.distanceModel=e}}]),t}(ha);if(!$r()){var ca=new ye;Object.defineProperty(la.prototype,"position",{get:function(){return this._position},set:function(e){if(this._position.copy(e),this.source){var t=function(e,t,i,n,s,r){var a=(ca=ca.sub2(e,t)).length();if(an)return 0;var o=0;return r===qe?o=1-s*(a-i)/(n-i):r===Ye?o=i/(i+s*(a-i)):r===Ke&&(o=Math.pow(a/i,-s)),pe.clamp(o,0,1)}(this._manager.listener.getPosition(),this._position,this.refDistance,this.maxDistance,this.rollOffFactor,this.distanceModel),i=this.volume;this.source.volume=i*t*this._manager.volume}}}),Object.defineProperty(la.prototype,"maxDistance",{get:function(){return this._maxDistance},set:function(e){this._maxDistance=e}}),Object.defineProperty(la.prototype,"refDistance",{get:function(){return this._refDistance},set:function(e){this._refDistance=e}}),Object.defineProperty(la.prototype,"rollOffFactor",{get:function(){return this._rollOffFactor},set:function(e){this._rollOffFactor=e}}),Object.defineProperty(la.prototype,"distanceModel",{get:function(){return this._distanceModel},set:function(e){this._distanceModel=e}})}var ua="none",da="linear",fa={0:"PCF3",1:"VSM8",2:"VSM16",3:"VSM32",4:"PCF5",5:"PCF1",6:"PCSS"},pa="mul",ma=32,_a=128,ga=256,va=512,ya=1024,xa=2048,Sa=4096,ba=8192,wa=function(){function e(){this._refCount=0}var t=e.prototype;return t.incRefCount=function(){this._refCount++},t.decRefCount=function(){this._refCount--},y(e,[{key:"refCount",get:function(){return this._refCount}}]),e}(),Ta=function(){function e(){}return e.set=function(t){e._graphicsDevice=t},e.get=function(){return e._graphicsDevice},e}();Ta._graphicsDevice=null;var Aa=0,Ca=function(){function e(){this.initDefaults()}var t=e.prototype;return t.initDefaults=function(){this.recreate=!1,this.verticesUsage=0,this.indicesUsage=0,this.maxVertices=0,this.maxIndices=0,this.vertexCount=0,this.indexCount=0,this.vertexStreamsUpdated=!1,this.indexStreamUpdated=!1,this.vertexStreamDictionary={},this.indices=null},t._changeVertexCount=function(e,t){this.vertexCount||(this.vertexCount=e)},e}();Ca.DEFAULT_COMPONENTS_POSITION=3,Ca.DEFAULT_COMPONENTS_NORMAL=3,Ca.DEFAULT_COMPONENTS_UV=2,Ca.DEFAULT_COMPONENTS_COLORS=4;var Ea=function(e,t,i,n){this.data=e,this.componentCount=t,this.dataType=i,this.dataTypeNormalize=n},Ma=function(e){function t(t){var i;return(i=e.call(this)||this).id=Aa++,i.device=t||Ta.get(),i.vertexBuffer=null,i.indexBuffer=[null],i.primitive=[{type:0,base:0,count:0}],i.skin=null,i._morph=null,i._geometryData=null,i._aabb=new ke,i.boneAabb=null,i}S(t,e);var i=t.prototype;return i.destroy=function(){var e=this.morph;e&&(this.morph=null,e.refCount<1&&e.destroy()),this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=null);for(var t=0;t0){var S=g.array[g.index+x];if(u[S]=!0,t=m.array[m.index],i=m.array[m.index+1],n=m.array[m.index+2],s=c[S],(r=l[S]).x>t&&(r.x=t),r.y>i&&(r.y=i),r.z>n&&(r.z=n),s.xb&&(r.x=b),r.y>w&&(r.y=w),r.z>T&&(r.z=T),s.x0&&this.indexBuffer[0]&&(this._geometryData.indexCount=this.indexBuffer[0].numIndices,this._geometryData.maxIndices=this.indexBuffer[0].numIndices))},i.clear=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0),this._initGeometryData(),this._geometryData.initDefaults(),this._geometryData.recreate=!0,this._geometryData.maxVertices=i,this._geometryData.maxIndices=n,this._geometryData.verticesUsage=e?0:1,this._geometryData.indicesUsage=t?0:1},i.setVertexStream=function(e,t,i,n,s,r){void 0===s&&(s=6),void 0===r&&(r=!1),this._initGeometryData();var a=n||t.length/i;this._geometryData._changeVertexCount(a,e),this._geometryData.vertexStreamsUpdated=!0,this._geometryData.vertexStreamDictionary[e]=new Ea(t,i,s,r)},i.getVertexStream=function(e,t){var i=0,n=!1;if(this._geometryData){var s=this._geometryData.vertexStreamDictionary[e];s&&(n=!0,i=this._geometryData.vertexCount,ArrayBuffer.isView(t)?t.set(s.data):(t.length=0,t.push(s.data)))}n||this.vertexBuffer&&(i=new fr(this.vertexBuffer).readData(e,t));return i},i.setPositions=function(e,t,i){void 0===t&&(t=Ca.DEFAULT_COMPONENTS_POSITION),this.setVertexStream(mt,e,t,i,6,!1)},i.setNormals=function(e,t,i){void 0===t&&(t=Ca.DEFAULT_COMPONENTS_NORMAL),this.setVertexStream(_t,e,t,i,6,!1)},i.setUvs=function(e,t,i,n){void 0===i&&(i=Ca.DEFAULT_COMPONENTS_UV),this.setVertexStream(St+e,t,i,n,6,!1)},i.setColors=function(e,t,i){void 0===t&&(t=Ca.DEFAULT_COMPONENTS_COLORS),this.setVertexStream(xt,e,t,i,6,!1)},i.setColors32=function(e,t){this.setVertexStream(xt,e,Ca.DEFAULT_COMPONENTS_COLORS,t,oi,!0)},i.setIndices=function(e,t){this._initGeometryData(),this._geometryData.indexStreamUpdated=!0,this._geometryData.indices=e,this._geometryData.indexCount=t||e.length},i.getPositions=function(e){return this.getVertexStream(mt,e)},i.getNormals=function(e){return this.getVertexStream(_t,e)},i.getUvs=function(e,t){return this.getVertexStream(St+e,t)},i.getColors=function(e){return this.getVertexStream(xt,e)},i.getIndices=function(e){var t=0;if(this._geometryData&&this._geometryData.indices){var i=this._geometryData.indices;t=this._geometryData.indexCount,ArrayBuffer.isView(e)?e.set(i):(e.length=0,e.push(i))}else{if(this.indexBuffer.length>0&&this.indexBuffer[0])t=this.indexBuffer[0].readData(e)}return t},i.update=function(e,t){if(void 0===e&&(e=4),void 0===t&&(t=!0),this._geometryData){if(t){var i=this._geometryData.vertexStreamDictionary[mt];i&&3===i.componentCount&&this._aabb.compute(i.data,this._geometryData.vertexCount)}var n=this._geometryData.recreate;this._geometryData.vertexCount>this._geometryData.maxVertices&&(n=!0,this._geometryData.maxVertices=this._geometryData.vertexCount),n&&this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=null);var s=this._geometryData.recreate;this._geometryData.indexCount>this._geometryData.maxIndices&&(s=!0,this._geometryData.maxIndices=this._geometryData.indexCount),s&&this.indexBuffer.length>0&&this.indexBuffer[0]&&(this.indexBuffer[0].destroy(),this.indexBuffer[0]=null),this._geometryData.vertexStreamsUpdated&&this._updateVertexBuffer(),this._geometryData.indexStreamUpdated&&this._updateIndexBuffer(),this.primitive[0].type=e,this.indexBuffer.length>0&&this.indexBuffer[0]?this._geometryData.indexStreamUpdated&&(this.primitive[0].count=this._geometryData.indexCount,this.primitive[0].indexed=!0):this._geometryData.vertexStreamsUpdated&&(this.primitive[0].count=this._geometryData.vertexCount,this.primitive[0].indexed=!1),this._geometryData.vertexCount=0,this._geometryData.indexCount=0,this._geometryData.vertexStreamsUpdated=!1,this._geometryData.indexStreamUpdated=!1,this._geometryData.recreate=!1,this.updateRenderStates()}},i._buildVertexFormat=function(e){var t=[];for(var i in this._geometryData.vertexStreamDictionary){var n=this._geometryData.vertexStreamDictionary[i];t.push({semantic:i,components:n.componentCount,type:n.dataType,normalize:n.dataTypeNormalize})}return new zi(this.device,t,e)},i._updateVertexBuffer=function(){if(!this.vertexBuffer){var e=this._geometryData.maxVertices,t=this._buildVertexFormat(e);this.vertexBuffer=new ki(this.device,t,e,this._geometryData.verticesUsage)}var i=new fr(this.vertexBuffer),n=this._geometryData.vertexCount;for(var s in this._geometryData.vertexStreamDictionary){var r=this._geometryData.vertexStreamDictionary[s];i.writeData(s,r.data,n),delete this._geometryData.vertexStreamDictionary[s]}i.end()},i._updateIndexBuffer=function(){if(this.indexBuffer.length<=0||!this.indexBuffer[0]){var e=this._geometryData.maxVertices>65535?2:1;this.indexBuffer[0]=new $s(this.device,e,this._geometryData.maxIndices,this._geometryData.indicesUsage)}var t=this._geometryData.indices;t&&(this.indexBuffer[0].writeData(t,this._geometryData.indexCount),this._geometryData.indices=null)},i.prepareRenderState=function(e){1===e?this.generateWireframe():2===e&&(this.primitive[2]={type:0,base:0,count:this.vertexBuffer?this.vertexBuffer.numVertices:0,indexed:!1})},i.updateRenderStates=function(){this.primitive[2]&&this.prepareRenderState(2),this.primitive[1]&&this.prepareRenderState(1)},i.generateWireframe=function(){this._destroyIndexBuffer(1);var e,t=this.vertexBuffer.numVertices,i=[];if(this.indexBuffer.length>0&&this.indexBuffer[0]){for(var n=[[0,1],[1,2],[2,0]],s=this.primitive[0].base,r=this.primitive[0].count,a=this.indexBuffer[0],o=new yi[a.format](a.storage),h=new Set,l=s;ld?d*t+u:u*t+d;h.has(f)||(h.add(f),i.push(u,d))}e=a.format}else{for(var p=0;p65535?2:1}var m=new $s(this.vertexBuffer.device,e,i.length);new yi[m.format](m.storage).set(i),m.unlock(),this.primitive[1]={type:1,base:0,count:i.length,indexed:!0},this.indexBuffer[1]=m},y(t,[{key:"morph",get:function(){return this._morph},set:function(e){e!==this._morph&&(this._morph&&this._morph.decRefCount(),this._morph=e,e&&e.incRefCount())}},{key:"aabb",get:function(){return this._aabb},set:function(e){this._aabb=e}}]),t}(wa),Pa=4/64,Ra=1-2*Pa,Ia=[];function La(e,t){for(var i=t.length/3,n=e.length/3,s=new ye,r=new ye,a=new ye,o=new ye,h=new ye,l=new ye,c=[],u=0;u0)for(var v=0;v<=n;v++)for(var y=0;y<=s;y++){var x=y/s*2*Math.PI-Math.PI,S=Math.sin(x),b=Math.cos(x);u.set(S*e,-i/2,b*e),c.set(S*t,i/2,b*t),o.lerp(u,c,v/n),h.sub2(c,u).normalize(),d.set(b,0,-S),l.cross(d,h).normalize(),f.push(o.x,o.y,o.z),p.push(l.x,l.y,l.z);var w=y/s,T=v/n;m.push(w,1-T);var A=T;if(T=w,w=(w=A)*Ra+Pa,T=T*Ra+Pa,w/=3,_.push(w,1-T),v0)for(var ue=0;ue1&&g.push(a,a+ue,a+ue-1)}if(a+=s,t>0)for(var ve=0;ve1&&g.push(a,a+ve-1,a+ve)}}return{positions:f,normals:p,uvs:m,uvs1:_,indices:g}}function Ba(e,t){var i,n,s,r,a;void 0===t&&(t={});var o=null!=(i=t.radius)?i:.5,h=null!=(n=t.height)?n:1,l=null!=(s=t.heightSegments)?s:5,c=null!=(r=t.capSegments)?r:20,u=null!=(a=t.calculateTangents)&&a,d=Fa(o,o,h,l,c,!1);return u&&(d.tangents=Da(d.positions,d.normals,d.uvs,d.indices)),Oa(e,d.positions,d)}function Ua(e,t){var i,n,s,r,a;void 0===t&&(t={});var o=null!=(i=t.radius)?i:.3,h=null!=(n=t.height)?n:1,l=null!=(s=t.heightSegments)?s:1,c=null!=(r=t.sides)?r:20,u=null!=(a=t.calculateTangents)&&a,d=Fa(o,o,h-2*o,l,c,!0);return u&&(d.tangents=Da(d.positions,d.normals,d.uvs,d.indices)),Oa(e,d.positions,d)}function Na(e,t){var i,n,s,r,a,o;void 0===t&&(t={});var h=null!=(i=t.baseRadius)?i:.5,l=null!=(n=t.peakRadius)?n:0,c=null!=(s=t.height)?s:1,u=null!=(r=t.heightSegments)?r:5,d=null!=(a=t.capSegments)?a:18,f=null!=(o=t.calculateTangents)&&o,p=Fa(h,l,c,u,d,!1);return f&&(p.tangents=Da(p.positions,p.normals,p.uvs,p.indices)),Oa(e,p.positions,p)}function za(e,t){var i,n,s,r;void 0===t&&(t={});for(var a=null!=(i=t.radius)?i:.5,o=null!=(n=t.latitudeBands)?n:16,h=null!=(s=t.longitudeBands)?s:16,l=null!=(r=t.calculateTangents)&&r,c=[],u=[],d=[],f=[],p=0;p<=o;p++)for(var m=p*Math.PI/o,_=Math.sin(m),g=Math.cos(m),v=0;v<=h;v++){var y=2*v*Math.PI/h-Math.PI/2,x=Math.sin(y),S=Math.cos(y)*_,b=g,w=x*_,T=1-v/h,A=1-p/o;c.push(S*a,b*a,w*a),u.push(S,b,w),d.push(T,1-A)}for(var C=0;C shadowZ ? 1.0 : 0.0;\n }\n\n #endif\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\n float getShadowOmniClusteredPCF3(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\n float shadowTextureResolution = shadowParams.x;\n vec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\n // pcf3\n float shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n vec3 shadowCoord = vec3(uv, shadowZ);\n return getShadowPCF3x3(shadowMap, shadowCoord, shadowParams);\n }\n\n #endif\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\n // we don't have PCF5 implementation for webgl1, use PCF3\n float getShadowOmniClusteredPCF5(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\n float shadowTextureResolution = shadowParams.x;\n vec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\n // pcf3\n float shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n vec3 shadowCoord = vec3(uv, shadowZ);\n return getShadowPCF3x3(shadowMap, shadowCoord, shadowParams);\n }\n\n #endif\n\n#endif\n\n\n// Clustered Spot Sampling using atlas\n\n#ifdef GL2\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\n float getShadowSpotClusteredPCF1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return textureShadow(shadowMap, shadowCoord);\n }\n\n #endif\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\n float getShadowSpotClusteredPCF3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return getShadowSpotPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n }\n\n #endif\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\n float getShadowSpotClusteredPCF5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n }\n #endif\n\n#else\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\n float getShadowSpotClusteredPCF1(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n\n float depth = unpackFloat(textureShadow(shadowMap, shadowCoord.xy));\n\n return depth > shadowCoord.z ? 1.0 : 0.0;\n\n }\n\n #endif\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\n float getShadowSpotClusteredPCF3(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n return getShadowSpotPCF3x3(shadowMap, shadowCoord, shadowParams);\n }\n\n #endif\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\n // we don't have PCF5 implementation for webgl1, use PCF3\n float getShadowSpotClusteredPCF5(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n return getShadowSpotPCF3x3(shadowMap, shadowCoord, shadowParams);\n }\n\n #endif\n\n#endif\n",clusteredLightUtilsPS:"\n// Converts unnormalized direction vector to a cubemap face index [0..5] and uv coordinates within the face in [0..1] range.\n// Additionally offset to a tile in atlas within 3x3 subdivision is provided\nvec2 getCubemapFaceCoordinates(const vec3 dir, out float faceIndex, out vec2 tileOffset)\n{\n vec3 vAbs = abs(dir);\n float ma;\n vec2 uv;\n if (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) { // front / back\n\n faceIndex = dir.z < 0.0 ? 5.0 : 4.0;\n ma = 0.5 / vAbs.z;\n uv = vec2(dir.z < 0.0 ? -dir.x : dir.x, -dir.y);\n\n tileOffset.x = 2.0;\n tileOffset.y = dir.z < 0.0 ? 1.0 : 0.0;\n\n } else if(vAbs.y >= vAbs.x) { // top index 2, bottom index 3\n\n faceIndex = dir.y < 0.0 ? 3.0 : 2.0;\n ma = 0.5 / vAbs.y;\n uv = vec2(dir.x, dir.y < 0.0 ? -dir.z : dir.z);\n\n tileOffset.x = 1.0;\n tileOffset.y = dir.y < 0.0 ? 1.0 : 0.0;\n\n } else { // left / right\n\n faceIndex = dir.x < 0.0 ? 1.0 : 0.0;\n ma = 0.5 / vAbs.x;\n uv = vec2(dir.x < 0.0 ? dir.z : -dir.z, -dir.y);\n\n tileOffset.x = 0.0;\n tileOffset.y = dir.x < 0.0 ? 1.0 : 0.0;\n\n }\n return uv * ma + 0.5;\n}\n\n// converts unnormalized direction vector to a texture coordinate for a cubemap face stored within texture atlas described by the viewport\nvec2 getCubemapAtlasCoordinates(const vec3 omniAtlasViewport, float shadowEdgePixels, float shadowTextureResolution, const vec3 dir) {\n\n float faceIndex;\n vec2 tileOffset;\n vec2 uv = getCubemapFaceCoordinates(dir, faceIndex, tileOffset);\n\n // move uv coordinates inwards inside to compensate for larger fov when rendering shadow into atlas\n float atlasFaceSize = omniAtlasViewport.z;\n float tileSize = shadowTextureResolution * atlasFaceSize;\n float offset = shadowEdgePixels / tileSize;\n uv = uv * vec2(1.0 - offset * 2.0) + vec2(offset * 1.0);\n\n // scale uv coordinates to cube face area within the viewport\n uv *= atlasFaceSize;\n\n // offset into face of the atlas (3x3 grid)\n uv += tileOffset * atlasFaceSize;\n\n // offset into the atlas viewport\n uv += omniAtlasViewport.xy;\n\n return uv;\n}\n",clusteredLightPS:"\nuniform highp sampler2D clusterWorldTexture;\nuniform highp sampler2D lightsTexture8;\nuniform highp sampler2D lightsTextureFloat;\n\n// complex ifdef expression are not supported, handle it here\n// defined(CLUSTER_COOKIES) || defined(CLUSTER_SHADOWS)\n#if defined(CLUSTER_COOKIES)\n #define CLUSTER_COOKIES_OR_SHADOWS\n#endif\n#if defined(CLUSTER_SHADOWS)\n #define CLUSTER_COOKIES_OR_SHADOWS\n#endif\n\n#ifdef CLUSTER_SHADOWS\n #ifdef GL2\n // TODO: when VSM shadow is supported, it needs to use sampler2D in webgl2\n uniform sampler2DShadow shadowAtlasTexture;\n #else\n uniform sampler2D shadowAtlasTexture;\n #endif\n#endif\n\n#ifdef CLUSTER_COOKIES\n uniform sampler2D cookieAtlasTexture;\n#endif\n\n#ifdef GL2\n uniform int clusterMaxCells;\n#else\n uniform float clusterMaxCells;\n uniform vec4 lightsTextureInvSize;\n#endif\n\n// 1.0 if clustered lighting can be skipped (0 lights in the clusters)\nuniform float clusterSkip;\n\nuniform vec3 clusterCellsCountByBoundsSize;\nuniform vec3 clusterTextureSize;\nuniform vec3 clusterBoundsMin;\nuniform vec3 clusterBoundsDelta;\nuniform vec3 clusterCellsDot;\nuniform vec3 clusterCellsMax;\nuniform vec2 clusterCompressionLimit0;\nuniform vec2 shadowAtlasParams;\n\n// structure storing light properties of a clustered light\n// it's sorted to have all vectors aligned to 4 floats to limit padding\nstruct ClusterLightData {\n\n // area light sizes / orientation\n vec3 halfWidth;\n\n // type of the light (spot or omni)\n float lightType;\n\n // area light sizes / orientation\n vec3 halfHeight;\n\n #ifdef GL2\n // light index\n int lightIndex;\n #else\n // v coordinate to look up the light textures - this is the same as lightIndex but in 0..1 range\n float lightV;\n #endif\n\n // world space position\n vec3 position;\n\n // area light shape\n float shape;\n\n // world space direction (spot light only)\n vec3 direction;\n\n // light follow mode\n float falloffMode;\n\n // color\n vec3 color;\n\n // 0.0 if the light doesn't cast shadows\n float shadowIntensity;\n\n // atlas viewport for omni light shadow and cookie (.xy is offset to the viewport slot, .z is size of the face in the atlas)\n vec3 omniAtlasViewport;\n\n // range of the light\n float range;\n\n // channel mask - one of the channels has 1, the others are 0\n vec4 cookieChannelMask;\n\n // shadow bias values\n float shadowBias;\n float shadowNormalBias;\n\n // spot light inner and outer angle cosine\n float innerConeAngleCos;\n float outerConeAngleCos;\n\n // 1.0 if the light has a cookie texture\n float cookie;\n\n // 1.0 if cookie texture is rgb, otherwise it is using a single channel selectable by cookieChannelMask\n float cookieRgb;\n\n // intensity of the cookie\n float cookieIntensity;\n\n // light mask\n float mask;\n};\n\n// Note: on some devices (tested on Pixel 3A XL), this matrix when stored inside the light struct has lower precision compared to\n// when stored outside, so we store it outside to avoid spot shadow flickering. This might need to be done to other / all members\n// of the structure if further similar issues are observed.\n\n// shadow (spot light only) / cookie projection matrix\nmat4 lightProjectionMatrix;\n\n// macros for light properties\n#define isClusteredLightCastShadow(light) ( light.shadowIntensity > 0.0 )\n#define isClusteredLightCookie(light) (light.cookie > 0.5 )\n#define isClusteredLightCookieRgb(light) (light.cookieRgb > 0.5 )\n#define isClusteredLightSpot(light) ( light.lightType > 0.5 )\n#define isClusteredLightFalloffLinear(light) ( light.falloffMode < 0.5 )\n\n// macros to test light shape\n// Note: Following functions need to be called serially in listed order as they do not test both '>' and '<'\n#define isClusteredLightArea(light) ( light.shape > 0.1 )\n#define isClusteredLightRect(light) ( light.shape < 0.3 )\n#define isClusteredLightDisk(light) ( light.shape < 0.6 )\n\n// macro to test light mask (mesh accepts dynamic vs lightmapped lights)\n#ifdef CLUSTER_MESH_DYNAMIC_LIGHTS\n // accept lights marked as dynamic or both dynamic and lightmapped\n #define acceptLightMask(light) ( light.mask < 0.75)\n#else\n // accept lights marked as lightmapped or both dynamic and lightmapped\n #define acceptLightMask(light) ( light.mask > 0.25)\n#endif\n\nvec4 decodeClusterLowRange4Vec4(vec4 d0, vec4 d1, vec4 d2, vec4 d3) {\n return vec4(\n bytes2floatRange4(d0, -2.0, 2.0),\n bytes2floatRange4(d1, -2.0, 2.0),\n bytes2floatRange4(d2, -2.0, 2.0),\n bytes2floatRange4(d3, -2.0, 2.0)\n );\n}\n\n#ifdef GL2\n\n vec4 sampleLightsTexture8(const ClusterLightData clusterLightData, int index) {\n return texelFetch(lightsTexture8, ivec2(index, clusterLightData.lightIndex), 0);\n }\n\n vec4 sampleLightTextureF(const ClusterLightData clusterLightData, int index) {\n return texelFetch(lightsTextureFloat, ivec2(index, clusterLightData.lightIndex), 0);\n }\n\n#else\n\n vec4 sampleLightsTexture8(const ClusterLightData clusterLightData, float index) {\n return texture2DLodEXT(lightsTexture8, vec2(index * lightsTextureInvSize.z, clusterLightData.lightV), 0.0);\n }\n\n vec4 sampleLightTextureF(const ClusterLightData clusterLightData, float index) {\n return texture2DLodEXT(lightsTextureFloat, vec2(index * lightsTextureInvSize.x, clusterLightData.lightV), 0.0);\n }\n\n#endif\n\nvoid decodeClusterLightCore(inout ClusterLightData clusterLightData, float lightIndex) {\n\n // light index\n #ifdef GL2\n clusterLightData.lightIndex = int(lightIndex);\n #else\n clusterLightData.lightV = (lightIndex + 0.5) * lightsTextureInvSize.w;\n #endif\n\n // shared data from 8bit texture\n vec4 lightInfo = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_FLAGS);\n clusterLightData.lightType = lightInfo.x;\n clusterLightData.shape = lightInfo.y;\n clusterLightData.falloffMode = lightInfo.z;\n clusterLightData.shadowIntensity = lightInfo.w;\n\n // color\n vec4 colorA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_A);\n vec4 colorB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_B);\n clusterLightData.color = vec3(bytes2float2(colorA.xy), bytes2float2(colorA.zw), bytes2float2(colorB.xy)) * clusterCompressionLimit0.y;\n\n // cookie\n clusterLightData.cookie = colorB.z;\n\n // light mask\n clusterLightData.mask = colorB.w;\n\n #ifdef CLUSTER_TEXTURE_FLOAT\n\n vec4 lightPosRange = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_POSITION_RANGE);\n clusterLightData.position = lightPosRange.xyz;\n clusterLightData.range = lightPosRange.w;\n\n // spot light direction\n vec4 lightDir_Unused = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_SPOT_DIRECTION);\n clusterLightData.direction = lightDir_Unused.xyz;\n\n #else // 8bit\n\n vec4 encPosX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_X);\n vec4 encPosY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Y);\n vec4 encPosZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Z);\n clusterLightData.position = vec3(bytes2float4(encPosX), bytes2float4(encPosY), bytes2float4(encPosZ)) * clusterBoundsDelta + clusterBoundsMin;\n\n vec4 encRange = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_RANGE);\n clusterLightData.range = bytes2float4(encRange) * clusterCompressionLimit0.x;\n\n // spot light direction\n vec4 encDirX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_X);\n vec4 encDirY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Y);\n vec4 encDirZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Z);\n clusterLightData.direction = vec3(bytes2float4(encDirX), bytes2float4(encDirY), bytes2float4(encDirZ)) * 2.0 - 1.0;\n\n #endif\n}\n\nvoid decodeClusterLightSpot(inout ClusterLightData clusterLightData) {\n\n // spot light cos angles\n vec4 coneAngle = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_ANGLES);\n clusterLightData.innerConeAngleCos = bytes2float2(coneAngle.xy) * 2.0 - 1.0;\n clusterLightData.outerConeAngleCos = bytes2float2(coneAngle.zw) * 2.0 - 1.0;\n}\n\nvoid decodeClusterLightOmniAtlasViewport(inout ClusterLightData clusterLightData) {\n #ifdef CLUSTER_TEXTURE_FLOAT\n clusterLightData.omniAtlasViewport = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0).xyz;\n #else\n vec4 viewportA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_A);\n vec4 viewportB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_B);\n clusterLightData.omniAtlasViewport = vec3(bytes2float2(viewportA.xy), bytes2float2(viewportA.zw), bytes2float2(viewportB.xy));\n #endif\n}\n\nvoid decodeClusterLightAreaData(inout ClusterLightData clusterLightData) {\n #ifdef CLUSTER_TEXTURE_FLOAT\n clusterLightData.halfWidth = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_WIDTH).xyz;\n clusterLightData.halfHeight = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_HEIGHT).xyz;\n #else\n vec4 areaWidthX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_X);\n vec4 areaWidthY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Y);\n vec4 areaWidthZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Z);\n clusterLightData.halfWidth = vec3(mantissaExponent2Float(areaWidthX), mantissaExponent2Float(areaWidthY), mantissaExponent2Float(areaWidthZ));\n\n vec4 areaHeightX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_X);\n vec4 areaHeightY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Y);\n vec4 areaHeightZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Z);\n clusterLightData.halfHeight = vec3(mantissaExponent2Float(areaHeightX), mantissaExponent2Float(areaHeightY), mantissaExponent2Float(areaHeightZ));\n #endif\n}\n\nvoid decodeClusterLightProjectionMatrixData(inout ClusterLightData clusterLightData) {\n \n // shadow matrix\n #ifdef CLUSTER_TEXTURE_FLOAT\n vec4 m0 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0);\n vec4 m1 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_1);\n vec4 m2 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_2);\n vec4 m3 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_3);\n #else\n vec4 m00 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_00);\n vec4 m01 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_01);\n vec4 m02 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_02);\n vec4 m03 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_03);\n vec4 m0 = decodeClusterLowRange4Vec4(m00, m01, m02, m03);\n\n vec4 m10 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_10);\n vec4 m11 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_11);\n vec4 m12 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_12);\n vec4 m13 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_13);\n vec4 m1 = decodeClusterLowRange4Vec4(m10, m11, m12, m13);\n\n vec4 m20 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_20);\n vec4 m21 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_21);\n vec4 m22 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_22);\n vec4 m23 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_23);\n vec4 m2 = decodeClusterLowRange4Vec4(m20, m21, m22, m23);\n\n vec4 m30 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_30);\n vec4 m31 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_31);\n vec4 m32 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_32);\n vec4 m33 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_33);\n vec4 m3 = vec4(mantissaExponent2Float(m30), mantissaExponent2Float(m31), mantissaExponent2Float(m32), mantissaExponent2Float(m33));\n #endif\n \n lightProjectionMatrix = mat4(m0, m1, m2, m3);\n}\n\nvoid decodeClusterLightShadowData(inout ClusterLightData clusterLightData) {\n \n // shadow biases\n vec4 biases = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SHADOW_BIAS);\n clusterLightData.shadowBias = bytes2floatRange2(biases.xy, -1.0, 20.0),\n clusterLightData.shadowNormalBias = bytes2float2(biases.zw);\n}\n\nvoid decodeClusterLightCookieData(inout ClusterLightData clusterLightData) {\n\n vec4 cookieA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_A);\n clusterLightData.cookieIntensity = cookieA.x;\n clusterLightData.cookieRgb = cookieA.y;\n\n clusterLightData.cookieChannelMask = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_B);\n}\n\nvoid evaluateLight(\n ClusterLightData light, \n vec3 worldNormal, \n vec3 viewDir, \n vec3 reflectionDir,\n#if defined(LIT_CLEARCOAT)\n vec3 clearcoatReflectionDir,\n#endif\n float gloss, \n vec3 specularity, \n vec3 geometricNormal, \n mat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n vec3 iridescenceFresnel,\n#endif\n vec3 clearcoat_worldNormal,\n float clearcoat_gloss,\n float sheen_gloss,\n float iridescence_intensity\n) {\n\n vec3 cookieAttenuation = vec3(1.0);\n float diffuseAttenuation = 1.0;\n float falloffAttenuation = 1.0;\n\n // evaluate omni part of the light\n getLightDirPoint(light.position);\n\n #ifdef CLUSTER_AREALIGHTS\n\n // distance attenuation\n if (isClusteredLightArea(light)) { // area light\n\n // area lights\n decodeClusterLightAreaData(light);\n\n // handle light shape\n if (isClusteredLightRect(light)) {\n calcRectLightValues(light.position, light.halfWidth, light.halfHeight);\n } else if (isClusteredLightDisk(light)) {\n calcDiskLightValues(light.position, light.halfWidth, light.halfHeight);\n } else { // sphere\n calcSphereLightValues(light.position, light.halfWidth, light.halfHeight);\n }\n\n falloffAttenuation = getFalloffWindow(light.range, dLightDirW);\n\n } else\n\n #endif\n\n { // punctual light\n\n if (isClusteredLightFalloffLinear(light))\n falloffAttenuation = getFalloffLinear(light.range, dLightDirW);\n else\n falloffAttenuation = getFalloffInvSquared(light.range, dLightDirW);\n }\n\n if (falloffAttenuation > 0.00001) {\n\n #ifdef CLUSTER_AREALIGHTS\n\n if (isClusteredLightArea(light)) { // area light\n\n // handle light shape\n if (isClusteredLightRect(light)) {\n diffuseAttenuation = getRectLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW) * 16.0;\n } else if (isClusteredLightDisk(light)) {\n diffuseAttenuation = getDiskLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW) * 16.0;\n } else { // sphere\n diffuseAttenuation = getSphereLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW) * 16.0;\n }\n\n } else\n\n #endif\n\n {\n falloffAttenuation *= getLightDiffuse(worldNormal, viewDir, dLightDirW, dLightDirNormW); \n }\n\n // spot light falloff\n if (isClusteredLightSpot(light)) {\n decodeClusterLightSpot(light);\n falloffAttenuation *= getSpotEffect(light.direction, light.innerConeAngleCos, light.outerConeAngleCos, dLightDirNormW);\n }\n\n #if defined(CLUSTER_COOKIES_OR_SHADOWS)\n\n if (falloffAttenuation > 0.00001) {\n\n // shadow / cookie\n if (isClusteredLightCastShadow(light) || isClusteredLightCookie(light)) {\n\n // shared shadow / cookie data depends on light type\n if (isClusteredLightSpot(light)) {\n decodeClusterLightProjectionMatrixData(light);\n } else {\n decodeClusterLightOmniAtlasViewport(light);\n }\n\n float shadowTextureResolution = shadowAtlasParams.x;\n float shadowEdgePixels = shadowAtlasParams.y;\n\n #ifdef CLUSTER_COOKIES\n\n // cookie\n if (isClusteredLightCookie(light)) {\n decodeClusterLightCookieData(light);\n\n if (isClusteredLightSpot(light)) {\n cookieAttenuation = getCookie2DClustered(TEXTURE_PASS(cookieAtlasTexture), lightProjectionMatrix, vPositionW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask);\n } else {\n cookieAttenuation = getCookieCubeClustered(TEXTURE_PASS(cookieAtlasTexture), dLightDirW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask, shadowTextureResolution, shadowEdgePixels, light.omniAtlasViewport);\n }\n }\n\n #endif\n\n #ifdef CLUSTER_SHADOWS\n\n // shadow\n if (isClusteredLightCastShadow(light)) {\n decodeClusterLightShadowData(light);\n\n vec4 shadowParams = vec4(shadowTextureResolution, light.shadowNormalBias, light.shadowBias, 1.0 / light.range);\n\n if (isClusteredLightSpot(light)) {\n\n // spot shadow\n getShadowCoordPerspZbufferNormalOffset(lightProjectionMatrix, shadowParams, geometricNormal);\n \n #if defined(CLUSTER_SHADOW_TYPE_PCF1)\n float shadow = getShadowSpotClusteredPCF1(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n #elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n float shadow = getShadowSpotClusteredPCF3(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n #elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n float shadow = getShadowSpotClusteredPCF5(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n #elif defined(CLUSTER_SHADOW_TYPE_PCSS)\n float shadow = getShadowSpotClusteredPCSS(SHADOWMAP_PASS(shadowAtlasTexture), dShadowCoord, shadowParams);\n #endif\n falloffAttenuation *= mix(1.0, shadow, light.shadowIntensity);\n\n } else {\n\n // omni shadow\n vec3 dir = normalOffsetPointShadow(shadowParams, dLightPosW, dLightDirW, dLightDirNormW, geometricNormal); // normalBias adjusted for distance\n\n #if defined(CLUSTER_SHADOW_TYPE_PCF1)\n float shadow = getShadowOmniClusteredPCF1(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, light.omniAtlasViewport, shadowEdgePixels, dir);\n #elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n float shadow = getShadowOmniClusteredPCF3(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, light.omniAtlasViewport, shadowEdgePixels, dir);\n #elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n float shadow = getShadowOmniClusteredPCF5(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, light.omniAtlasViewport, shadowEdgePixels, dir);\n #endif\n falloffAttenuation *= mix(1.0, shadow, light.shadowIntensity);\n }\n }\n\n #endif\n }\n }\n\n #endif\n\n // diffuse / specular / clearcoat\n #ifdef CLUSTER_AREALIGHTS\n\n if (isClusteredLightArea(light)) { // area light\n\n // area light diffuse\n {\n vec3 areaDiffuse = (diffuseAttenuation * falloffAttenuation) * light.color * cookieAttenuation;\n\n #if defined(LIT_SPECULAR)\n #if defined(LIT_CONSERVE_ENERGY)\n areaDiffuse = mix(areaDiffuse, vec3(0), dLTCSpecFres);\n #endif\n #endif\n\n // area light diffuse - it does not mix diffuse lighting into specular attenuation\n dDiffuseLight += areaDiffuse;\n }\n\n // specular and clear coat are material settings and get included by a define based on the material\n #ifdef LIT_SPECULAR\n\n // area light specular\n float areaLightSpecular;\n\n if (isClusteredLightRect(light)) {\n areaLightSpecular = getRectLightSpecular(worldNormal, viewDir);\n } else if (isClusteredLightDisk(light)) {\n areaLightSpecular = getDiskLightSpecular(worldNormal, viewDir);\n } else { // sphere\n areaLightSpecular = getSphereLightSpecular(worldNormal, viewDir);\n }\n\n dSpecularLight += dLTCSpecFres * areaLightSpecular * falloffAttenuation * light.color * cookieAttenuation;\n\n #ifdef LIT_CLEARCOAT\n\n // area light specular clear coat\n float areaLightSpecularCC;\n\n if (isClusteredLightRect(light)) {\n areaLightSpecularCC = getRectLightSpecular(clearcoat_worldNormal, viewDir);\n } else if (isClusteredLightDisk(light)) {\n areaLightSpecularCC = getDiskLightSpecular(clearcoat_worldNormal, viewDir);\n } else { // sphere\n areaLightSpecularCC = getSphereLightSpecular(clearcoat_worldNormal, viewDir);\n }\n\n ccSpecularLight += ccLTCSpecFres * areaLightSpecularCC * falloffAttenuation * light.color * cookieAttenuation;\n\n #endif\n\n #endif\n\n } else\n\n #endif\n\n { // punctual light\n\n // punctual light diffuse\n {\n vec3 punctualDiffuse = falloffAttenuation * light.color * cookieAttenuation;\n\n #if defined(CLUSTER_AREALIGHTS)\n #if defined(LIT_SPECULAR)\n #if defined(LIT_CONSERVE_ENERGY)\n punctualDiffuse = mix(punctualDiffuse, vec3(0), specularity);\n #endif\n #endif\n #endif\n\n dDiffuseLight += punctualDiffuse;\n }\n \n // specular and clear coat are material settings and get included by a define based on the material\n #ifdef LIT_SPECULAR\n\n vec3 halfDir = normalize(-dLightDirNormW + viewDir);\n \n // specular\n #ifdef LIT_SPECULAR_FRESNEL\n dSpecularLight += \n getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dLightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * \n getFresnel(\n dot(viewDir, halfDir), \n gloss, \n specularity\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel,\n iridescence_intensity\n #endif\n );\n #else\n dSpecularLight += getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dLightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * specularity;\n #endif\n\n #ifdef LIT_CLEARCOAT\n #ifdef LIT_SPECULAR_FRESNEL\n ccSpecularLight += getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, dLightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * getFresnelCC(dot(viewDir, halfDir));\n #else\n ccSpecularLight += getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, dLightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation; \n #endif\n #endif\n\n #ifdef LIT_SHEEN\n sSpecularLight += getLightSpecularSheen(halfDir, worldNormal, viewDir, dLightDirNormW, sheen_gloss) * falloffAttenuation * light.color * cookieAttenuation;\n #endif\n\n #endif\n }\n }\n\n // Write to global attenuation values (for lightmapper)\n dAtten = falloffAttenuation;\n dAttenD = diffuseAttenuation;\n dAtten3 = cookieAttenuation;\n}\n\nvoid evaluateClusterLight(\n float lightIndex, \n vec3 worldNormal, \n vec3 viewDir, \n vec3 reflectionDir, \n#if defined(LIT_CLEARCOAT)\n vec3 clearcoatReflectionDir,\n#endif\n float gloss, \n vec3 specularity, \n vec3 geometricNormal, \n mat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n vec3 iridescenceFresnel,\n#endif\n vec3 clearcoat_worldNormal,\n float clearcoat_gloss,\n float sheen_gloss,\n float iridescence_intensity\n) {\n\n // decode core light data from textures\n ClusterLightData clusterLightData;\n decodeClusterLightCore(clusterLightData, lightIndex);\n\n // evaluate light if it uses accepted light mask\n if (acceptLightMask(clusterLightData))\n evaluateLight(\n clusterLightData, \n worldNormal, \n viewDir, \n reflectionDir, \n#if defined(LIT_CLEARCOAT)\n clearcoatReflectionDir, \n#endif\n gloss, \n specularity, \n geometricNormal, \n tbn, \n#if defined(LIT_IRIDESCENCE)\n iridescenceFresnel,\n#endif\n clearcoat_worldNormal,\n clearcoat_gloss,\n sheen_gloss,\n iridescence_intensity\n );\n}\n\nvoid addClusteredLights(\n vec3 worldNormal, \n vec3 viewDir, \n vec3 reflectionDir, \n#if defined(LIT_CLEARCOAT)\n vec3 clearcoatReflectionDir,\n#endif\n float gloss, \n vec3 specularity, \n vec3 geometricNormal, \n mat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n vec3 iridescenceFresnel,\n#endif\n vec3 clearcoat_worldNormal,\n float clearcoat_gloss,\n float sheen_gloss,\n float iridescence_intensity\n) {\n\n // skip lights if no lights at all\n if (clusterSkip > 0.5)\n return;\n\n // world space position to 3d integer cell cordinates in the cluster structure\n vec3 cellCoords = floor((vPositionW - clusterBoundsMin) * clusterCellsCountByBoundsSize);\n\n // no lighting when cell coordinate is out of range\n if (!(any(lessThan(cellCoords, vec3(0.0))) || any(greaterThanEqual(cellCoords, clusterCellsMax)))) {\n\n // cell index (mapping from 3d cell coordinates to linear memory)\n float cellIndex = dot(clusterCellsDot, cellCoords);\n\n // convert cell index to uv coordinates\n float clusterV = floor(cellIndex * clusterTextureSize.y);\n float clusterU = cellIndex - (clusterV * clusterTextureSize.x);\n\n #ifdef GL2\n\n // loop over maximum number of light cells\n for (int lightCellIndex = 0; lightCellIndex < clusterMaxCells; lightCellIndex++) {\n\n // using a single channel texture with data in alpha channel\n float lightIndex = texelFetch(clusterWorldTexture, ivec2(int(clusterU) + lightCellIndex, clusterV), 0).x;\n\n if (lightIndex <= 0.0)\n return;\n\n evaluateClusterLight(\n lightIndex * 255.0, \n worldNormal, \n viewDir, \n reflectionDir,\n#if defined(LIT_CLEARCOAT)\n clearcoatReflectionDir,\n#endif\n gloss, \n specularity, \n geometricNormal, \n tbn, \n#if defined(LIT_IRIDESCENCE)\n iridescenceFresnel,\n#endif\n clearcoat_worldNormal,\n clearcoat_gloss,\n sheen_gloss,\n iridescence_intensity\n ); \n }\n\n #else\n\n clusterV = (clusterV + 0.5) * clusterTextureSize.z;\n\n // loop over maximum possible number of supported light cells\n const float maxLightCells = 256.0;\n for (float lightCellIndex = 0.5; lightCellIndex < maxLightCells; lightCellIndex++) {\n\n float lightIndex = texture2DLodEXT(clusterWorldTexture, vec2(clusterTextureSize.y * (clusterU + lightCellIndex), clusterV), 0.0).x;\n\n if (lightIndex <= 0.0)\n return;\n \n evaluateClusterLight(\n lightIndex * 255.0, \n worldNormal, \n viewDir, \n reflectionDir,\n#if defined(LIT_CLEARCOAT)\n clearcoatReflectionDir,\n#endif\n gloss, \n specularity, \n geometricNormal, \n tbn, \n#if defined(LIT_IRIDESCENCE)\n iridescenceFresnel,\n#endif\n clearcoat_worldNormal,\n clearcoat_gloss,\n sheen_gloss,\n iridescence_intensity\n ); \n // end of the cell array\n if (lightCellIndex >= clusterMaxCells) {\n break;\n }\n }\n\n #endif\n }\n}\n",combinePS:"\nvec3 combineColor(vec3 albedo, vec3 sheenSpecularity, float clearcoatSpecularity) {\n vec3 ret = vec3(0);\n#ifdef LIT_OLD_AMBIENT\n ret += (dDiffuseLight - light_globalAmbient) * albedo + material_ambient * light_globalAmbient;\n#else\n ret += albedo * dDiffuseLight;\n#endif\n#ifdef LIT_SPECULAR\n ret += dSpecularLight;\n#endif\n#ifdef LIT_REFLECTIONS\n ret += dReflection.rgb * dReflection.a;\n#endif\n\n#ifdef LIT_SHEEN\n float sheenScaling = 1.0 - max(max(sheenSpecularity.r, sheenSpecularity.g), sheenSpecularity.b) * 0.157;\n ret = ret * sheenScaling + (sSpecularLight + sReflection.rgb) * sheenSpecularity;\n#endif\n#ifdef LIT_CLEARCOAT\n float clearCoatScaling = 1.0 - ccFresnel * clearcoatSpecularity;\n ret = ret * clearCoatScaling + (ccSpecularLight + ccReflection.rgb) * clearcoatSpecularity;\n#endif\n\n return ret;\n}\n",cookiePS:"\n// light cookie functionality for non-clustered lights\nvec4 getCookie2D(sampler2D tex, mat4 transform, float intensity) {\n vec4 projPos = transform * vec4(vPositionW, 1.0);\n projPos.xy /= projPos.w;\n return mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\n\nvec4 getCookie2DClip(sampler2D tex, mat4 transform, float intensity) {\n vec4 projPos = transform * vec4(vPositionW, 1.0);\n projPos.xy /= projPos.w;\n if (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n return mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\n\nvec4 getCookie2DXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n vec4 projPos = transform * vec4(vPositionW, 1.0);\n projPos.xy /= projPos.w;\n projPos.xy += cookieOffset;\n vec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n return mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\n\nvec4 getCookie2DClipXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n vec4 projPos = transform * vec4(vPositionW, 1.0);\n projPos.xy /= projPos.w;\n projPos.xy += cookieOffset;\n if (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n vec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n return mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\n\nvec4 getCookieCube(samplerCube tex, mat4 transform, float intensity) {\n return mix(vec4(1.0), textureCube(tex, dLightDirNormW * mat3(transform)), intensity);\n}\n",cubeMapProjectBoxPS:"\nuniform vec3 envBoxMin;\nuniform vec3 envBoxMax;\n\nvec3 cubeMapProject(vec3 nrdir) {\n nrdir = cubeMapRotate(nrdir);\n\n vec3 rbmax = (envBoxMax - vPositionW) / nrdir;\n vec3 rbmin = (envBoxMin - vPositionW) / nrdir;\n\n vec3 rbminmax;\n rbminmax.x = nrdir.x>0.0? rbmax.x : rbmin.x;\n rbminmax.y = nrdir.y>0.0? rbmax.y : rbmin.y;\n rbminmax.z = nrdir.z>0.0? rbmax.z : rbmin.z;\n\n float fa = min(min(rbminmax.x, rbminmax.y), rbminmax.z);\n\n vec3 posonbox = vPositionW + nrdir * fa;\n vec3 envBoxPos = (envBoxMin + envBoxMax) * 0.5;\n return normalize(posonbox - envBoxPos);\n}\n",cubeMapProjectNonePS:"\nvec3 cubeMapProject(vec3 dir) {\n return cubeMapRotate(dir);\n}\n",cubeMapRotatePS:"\n#ifdef CUBEMAP_ROTATION\nuniform mat3 cubeMapRotationMatrix;\n#endif\n\nvec3 cubeMapRotate(vec3 refDir) {\n#ifdef CUBEMAP_ROTATION\n return refDir * cubeMapRotationMatrix;\n#else\n return refDir;\n#endif\n}\n",debugOutputPS:"\n#ifdef DEBUG_ALBEDO_PASS\ngl_FragColor = vec4(gammaCorrectOutput(litArgs_albedo), 1.0);\n#endif\n\n#ifdef DEBUG_UV0_PASS\ngl_FragColor = vec4(litArgs_albedo , 1.0);\n#endif\n\n#ifdef DEBUG_WORLD_NORMAL_PASS\ngl_FragColor = vec4(litArgs_worldNormal * 0.5 + 0.5, 1.0);\n#endif\n\n#ifdef DEBUG_OPACITY_PASS\ngl_FragColor = vec4(vec3(litArgs_opacity) , 1.0);\n#endif\n\n#ifdef DEBUG_SPECULARITY_PASS\ngl_FragColor = vec4(litArgs_specularity, 1.0);\n#endif\n\n#ifdef DEBUG_GLOSS_PASS\ngl_FragColor = vec4(vec3(litArgs_gloss) , 1.0);\n#endif\n\n#ifdef DEBUG_METALNESS_PASS\ngl_FragColor = vec4(vec3(litArgs_metalness) , 1.0);\n#endif\n\n#ifdef DEBUG_AO_PASS\ngl_FragColor = vec4(vec3(litArgs_ao) , 1.0);\n#endif\n\n#ifdef DEBUG_EMISSION_PASS\ngl_FragColor = vec4(gammaCorrectOutput(litArgs_emission), 1.0);\n#endif\n",debugProcessFrontendPS:"\n#ifdef DEBUG_LIGHTING_PASS\nlitArgs_albedo = vec3(0.5);\n#endif\n\n#ifdef DEBUG_UV0_PASS\n#ifdef VARYING_VUV0\nlitArgs_albedo = vec3(vUv0, 0);\n#else\nlitArgs_albedo = vec3(0);\n#endif\n#endif\n",detailModesPS:"\nvec3 detailMode_mul(vec3 c1, vec3 c2) {\n return c1 * c2;\n}\n\nvec3 detailMode_add(vec3 c1, vec3 c2) {\n return c1 + c2;\n}\n\n// https://en.wikipedia.org/wiki/Blend_modes#Screen\nvec3 detailMode_screen(vec3 c1, vec3 c2) {\n return 1.0 - (1.0 - c1)*(1.0 - c2);\n}\n\n// https://en.wikipedia.org/wiki/Blend_modes#Overlay\nvec3 detailMode_overlay(vec3 c1, vec3 c2) {\n return mix(1.0 - 2.0*(1.0 - c1)*(1.0 - c2), 2.0*c1*c2, step(c1, vec3(0.5)));\n}\n\nvec3 detailMode_min(vec3 c1, vec3 c2) {\n return min(c1, c2);\n}\n\nvec3 detailMode_max(vec3 c1, vec3 c2) {\n return max(c1, c2);\n}\n",diffusePS:"\n#ifdef MAPCOLOR\nuniform vec3 material_diffuse;\n#endif\n\nvoid getAlbedo() {\n dAlbedo = vec3(1.0);\n\n#ifdef MAPCOLOR\n dAlbedo *= material_diffuse.rgb;\n#endif\n\n#ifdef MAPTEXTURE\n vec3 albedoBase = $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n dAlbedo *= addAlbedoDetail(albedoBase);\n#endif\n\n#ifdef MAPVERTEX\n dAlbedo *= gammaCorrectInput(saturate(vVertexColor.$VC));\n#endif\n}\n",diffuseDetailMapPS:"\nvec3 addAlbedoDetail(vec3 albedo) {\n#ifdef MAPTEXTURE\n vec3 albedoDetail = $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n return detailMode_$DETAILMODE(albedo, albedoDetail);\n#else\n return albedo;\n#endif\n}\n",decodePS:Ya,emissivePS:"\n#ifdef MAPCOLOR\nuniform vec3 material_emissive;\n#endif\n\n#ifdef MAPFLOAT\nuniform float material_emissiveIntensity;\n#endif\n\nvoid getEmission() {\n dEmission = vec3(1.0);\n\n #ifdef MAPFLOAT\n dEmission *= material_emissiveIntensity;\n #endif\n\n #ifdef MAPCOLOR\n dEmission *= material_emissive;\n #endif\n\n #ifdef MAPTEXTURE\n dEmission *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n #endif\n\n #ifdef MAPVERTEX\n dEmission *= gammaCorrectInput(saturate(vVertexColor.$VC));\n #endif\n}\n",encodePS:Ka,endPS:"\n gl_FragColor.rgb = combineColor(litArgs_albedo, litArgs_sheen_specularity, litArgs_clearcoat_specularity);\n\n gl_FragColor.rgb += litArgs_emission;\n gl_FragColor.rgb = addFog(gl_FragColor.rgb);\n\n #ifndef HDR\n gl_FragColor.rgb = toneMap(gl_FragColor.rgb);\n gl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n #endif\n",endVS:"\n",envAtlasPS:"\n// the envAtlas is fixed at 512 pixels. every equirect is generated with 1 pixel boundary.\nconst float atlasSize = 512.0;\nconst float seamSize = 1.0 / atlasSize;\n\n// map a normalized equirect UV to the given rectangle (taking 1 pixel seam into account).\nvec2 mapUv(vec2 uv, vec4 rect) {\n return vec2(mix(rect.x + seamSize, rect.x + rect.z - seamSize, uv.x),\n mix(rect.y + seamSize, rect.y + rect.w - seamSize, uv.y));\n}\n\n// map a normalized equirect UV and roughness level to the correct atlas rect.\nvec2 mapRoughnessUv(vec2 uv, float level) {\n float t = 1.0 / exp2(level);\n return mapUv(uv, vec4(0, 1.0 - t, t, t * 0.5));\n}\n\n// map shiny level UV\nvec2 mapShinyUv(vec2 uv, float level) {\n float t = 1.0 / exp2(level);\n return mapUv(uv, vec4(1.0 - t, 1.0 - t, t, t * 0.5));\n}\n",envConstPS:"\nvec3 processEnvironment(vec3 color) {\n return color;\n}\n",envMultiplyPS:"\nuniform float skyboxIntensity;\n\nvec3 processEnvironment(vec3 color) {\n return color * skyboxIntensity;\n}\n",extensionPS:"\n",extensionVS:"\n",falloffInvSquaredPS:"\nfloat getFalloffWindow(float lightRadius, vec3 lightDir) {\n float sqrDist = dot(lightDir, lightDir);\n float invRadius = 1.0 / lightRadius;\n return square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n}\n\nfloat getFalloffInvSquared(float lightRadius, vec3 lightDir) {\n float sqrDist = dot(lightDir, lightDir);\n float falloff = 1.0 / (sqrDist + 1.0);\n float invRadius = 1.0 / lightRadius;\n\n falloff *= 16.0;\n falloff *= square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n\n return falloff;\n}\n",falloffLinearPS:"\nfloat getFalloffLinear(float lightRadius, vec3 lightDir) {\n float d = length(lightDir);\n return max(((lightRadius - d) / lightRadius), 0.0);\n}\n",fixCubemapSeamsNonePS:"\nvec3 fixSeams(vec3 vec, float mipmapIndex) {\n return vec;\n}\n\nvec3 fixSeams(vec3 vec) {\n return vec;\n}\n\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n return vec;\n}\n\nvec3 calcSeam(vec3 vec) {\n return vec3(0);\n}\n\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n return vec;\n}\n",fixCubemapSeamsStretchPS:"\nvec3 fixSeams(vec3 vec, float mipmapIndex) {\n vec3 avec = abs(vec);\n float scale = 1.0 - exp2(mipmapIndex) / 128.0;\n float M = max(max(avec.x, avec.y), avec.z);\n if (avec.x != M) vec.x *= scale;\n if (avec.y != M) vec.y *= scale;\n if (avec.z != M) vec.z *= scale;\n return vec;\n}\n\nvec3 fixSeams(vec3 vec) {\n vec3 avec = abs(vec);\n float scale = 1.0 - 1.0 / 128.0;\n float M = max(max(avec.x, avec.y), avec.z);\n if (avec.x != M) vec.x *= scale;\n if (avec.y != M) vec.y *= scale;\n if (avec.z != M) vec.z *= scale;\n return vec;\n}\n\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n vec3 avec = abs(vec);\n float scale = invRecMipSize;\n float M = max(max(avec.x, avec.y), avec.z);\n if (avec.x != M) vec.x *= scale;\n if (avec.y != M) vec.y *= scale;\n if (avec.z != M) vec.z *= scale;\n return vec;\n}\n\nvec3 calcSeam(vec3 vec) {\n vec3 avec = abs(vec);\n float M = max(avec.x, max(avec.y, avec.z));\n return vec3(avec.x != M ? 1.0 : 0.0,\n avec.y != M ? 1.0 : 0.0,\n avec.z != M ? 1.0 : 0.0);\n}\n\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n return vec * (seam * -scale + vec3(1.0));\n}\n",floatUnpackingPS:"\n// float unpacking functionality, complimentary to float-packing.js\nfloat bytes2float2(vec2 data) {\n return dot(data, vec2(1.0, 1.0 / 255.0));\n}\n\nfloat bytes2float3(vec3 data) {\n return dot(data, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0));\n}\n\nfloat bytes2float4(vec4 data) {\n return dot(data, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\n}\n\nfloat bytes2floatRange2(vec2 data, float min, float max) {\n return mix(min, max, bytes2float2(data));\n}\n\nfloat bytes2floatRange3(vec3 data, float min, float max) {\n return mix(min, max, bytes2float3(data));\n}\n\nfloat bytes2floatRange4(vec4 data, float min, float max) {\n return mix(min, max, bytes2float4(data));\n}\n\nfloat mantissaExponent2Float(vec4 pack)\n{\n float value = bytes2floatRange3(pack.xyz, -1.0, 1.0);\n float exponent = floor(pack.w * 255.0 - 127.0);\n return value * exp2(exponent);\n}\n",fogExpPS:"\nuniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = exp(-depth * fog_density);\n fogFactor = clamp(fogFactor, 0.0, 1.0);\n return mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogExp2PS:"\nuniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = exp(-depth * depth * fog_density * fog_density);\n fogFactor = clamp(fogFactor, 0.0, 1.0);\n return mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogLinearPS:"\nuniform vec3 fog_color;\nuniform float fog_start;\nuniform float fog_end;\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n float fogFactor = (fog_end - depth) / (fog_end - fog_start);\n fogFactor = clamp(fogFactor, 0.0, 1.0);\n return mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogNonePS:"\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n return color;\n}\n",fresnelSchlickPS:"\n// Schlick's approximation\nvec3 getFresnel(\n float cosTheta, \n float gloss, \n vec3 specularity\n#if defined(LIT_IRIDESCENCE)\n , vec3 iridescenceFresnel, \n IridescenceArgs iridescence\n#endif\n ) {\n float fresnel = pow(1.0 - max(cosTheta, 0.0), 5.0);\n float glossSq = gloss * gloss;\n vec3 ret = specularity + (max(vec3(glossSq), specularity) - specularity) * fresnel;\n#if defined(LIT_IRIDESCENCE)\n return mix(ret, iridescenceFresnel, iridescence.intensity);\n#else\n return ret;\n#endif \n}\n\nfloat getFresnelCC(float cosTheta) {\n float fresnel = pow(1.0 - max(cosTheta, 0.0), 5.0);\n return 0.04 + (1.0 - 0.04) * fresnel;\n}\n",fullscreenQuadPS:"\nvarying vec2 vUv0;\n\nuniform sampler2D source;\n\nvoid main(void) {\n gl_FragColor = texture2D(source, vUv0);\n}\n",fullscreenQuadVS:"\nattribute vec2 vertex_position;\n\nvarying vec2 vUv0;\n\nvoid main(void)\n{\n gl_Position = vec4(vertex_position, 0.5, 1.0);\n vUv0 = vertex_position.xy*0.5+0.5;\n}\n",gamma1_0PS:"\nfloat gammaCorrectInput(float color) {\n return color;\n}\n\nvec3 gammaCorrectInput(vec3 color) {\n return color;\n}\n\nvec4 gammaCorrectInput(vec4 color) {\n return color;\n}\n\nvec3 gammaCorrectOutput(vec3 color) {\n return color;\n}\n",gamma2_2PS:"\nfloat gammaCorrectInput(float color) {\n return decodeGamma(color);\n}\n\nvec3 gammaCorrectInput(vec3 color) {\n return decodeGamma(color);\n}\n\nvec4 gammaCorrectInput(vec4 color) {\n return vec4(decodeGamma(color.xyz), color.w);\n}\n\nvec3 gammaCorrectOutput(vec3 color) {\n#ifdef HDR\n return color;\n#else\n return pow(color + 0.0000001, vec3(1.0 / 2.2));\n#endif\n}\n",gles2PS:Fs,gles3PS:Bs,gles3VS:Us,glossPS:"\n#ifdef MAPFLOAT\nuniform float material_gloss;\n#endif\n\nvoid getGlossiness() {\n dGlossiness = 1.0;\n\n #ifdef MAPFLOAT\n dGlossiness *= material_gloss;\n #endif\n\n #ifdef MAPTEXTURE\n dGlossiness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n dGlossiness *= saturate(vVertexColor.$VC);\n #endif\n\n #ifdef MAPINVERT\n dGlossiness = 1.0 - dGlossiness;\n #endif\n\n dGlossiness += 0.0000001;\n}\n",iridescenceDiffractionPS:"\nuniform float material_iridescenceRefractionIndex;\n\n#ifndef PI\n#define PI 3.14159265\n#endif\n\nfloat iridescence_iorToFresnel(float transmittedIor, float incidentIor) {\n return pow((transmittedIor - incidentIor) / (transmittedIor + incidentIor), 2.0);\n}\n\nvec3 iridescence_iorToFresnel(vec3 transmittedIor, float incidentIor) {\n return pow((transmittedIor - vec3(incidentIor)) / (transmittedIor + vec3(incidentIor)), vec3(2.0));\n}\n\nvec3 iridescence_fresnelToIor(vec3 f0) {\n vec3 sqrtF0 = sqrt(f0);\n return (vec3(1.0) + sqrtF0) / (vec3(1.0) - sqrtF0);\n}\n\nvec3 iridescence_sensitivity(float opd, vec3 shift) {\n float phase = 2.0 * PI * opd * 1.0e-9;\n const vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13);\n const vec3 pos = vec3(1.6810e+06, 1.7953e+06, 2.2084e+06);\n const vec3 var = vec3(4.3278e+09, 9.3046e+09, 6.6121e+09);\n\n vec3 xyz = val * sqrt(2.0 * PI * var) * cos(pos * phase + shift) * exp(-pow(phase, 2.0) * var);\n xyz.x += 9.7470e-14 * sqrt(2.0 * PI * 4.5282e+09) * cos(2.2399e+06 * phase + shift[0]) * exp(-4.5282e+09 * pow(phase, 2.0));\n xyz /= vec3(1.0685e-07);\n\n const mat3 XYZ_TO_REC709 = mat3(\n 3.2404542, -0.9692660, 0.0556434,\n -1.5371385, 1.8760108, -0.2040259,\n -0.4985314, 0.0415560, 1.0572252\n );\n\n return XYZ_TO_REC709 * xyz;\n}\n\nfloat iridescence_fresnel(float cosTheta, float f0) {\n float x = clamp(1.0 - cosTheta, 0.0, 1.0);\n float x2 = x * x;\n float x5 = x * x2 * x2;\n return f0 + (1.0 - f0) * x5;\n} \n\nvec3 iridescence_fresnel(float cosTheta, vec3 f0) {\n float x = clamp(1.0 - cosTheta, 0.0, 1.0);\n float x2 = x * x;\n float x5 = x * x2 * x2; \n return f0 + (vec3(1.0) - f0) * x5;\n}\n\nvec3 calcIridescence(float outsideIor, float cosTheta, vec3 base_f0, float iridescenceThickness) {\n\n float iridescenceIor = mix(outsideIor, material_iridescenceRefractionIndex, smoothstep(0.0, 0.03, iridescenceThickness));\n float sinTheta2Sq = pow(outsideIor / iridescenceIor, 2.0) * (1.0 - pow(cosTheta, 2.0));\n float cosTheta2Sq = 1.0 - sinTheta2Sq;\n\n if (cosTheta2Sq < 0.0) {\n return vec3(1.0);\n }\n\n float cosTheta2 = sqrt(cosTheta2Sq);\n\n float r0 = iridescence_iorToFresnel(iridescenceIor, outsideIor);\n float r12 = iridescence_fresnel(cosTheta, r0);\n float r21 = r12;\n float t121 = 1.0 - r12;\n\n float phi12 = iridescenceIor < outsideIor ? PI : 0.0;\n float phi21 = PI - phi12;\n\n vec3 baseIor = iridescence_fresnelToIor(base_f0 + vec3(0.0001));\n vec3 r1 = iridescence_iorToFresnel(baseIor, iridescenceIor);\n vec3 r23 = iridescence_fresnel(cosTheta2, r1);\n\n vec3 phi23 = vec3(0.0);\n if (baseIor[0] < iridescenceIor) phi23[0] = PI;\n if (baseIor[1] < iridescenceIor) phi23[1] = PI;\n if (baseIor[2] < iridescenceIor) phi23[2] = PI;\n float opd = 2.0 * iridescenceIor * iridescenceThickness * cosTheta2;\n vec3 phi = vec3(phi21) + phi23; \n\n vec3 r123Sq = clamp(r12 * r23, 1e-5, 0.9999);\n vec3 r123 = sqrt(r123Sq);\n vec3 rs = pow(t121, 2.0) * r23 / (1.0 - r123Sq);\n\n vec3 c0 = r12 + rs;\n vec3 i = c0;\n\n vec3 cm = rs - t121;\n for (int m = 1; m <= 2; m++) {\n cm *= r123;\n vec3 sm = 2.0 * iridescence_sensitivity(float(m) * opd, float(m) * phi);\n i += cm * sm;\n }\n return max(i, vec3(0.0));\n}\n\nvec3 getIridescence(float cosTheta, vec3 specularity, inout IridescenceArgs iridescence) {\n return calcIridescence(1.0, cosTheta, specularity, iridescence.thickness);\n}\n",iridescencePS:"\n#ifdef MAPFLOAT\nuniform float material_iridescence;\n#endif\n\nvoid getIridescence() {\n float iridescence = 1.0;\n\n #ifdef MAPFLOAT\n iridescence *= material_iridescence;\n #endif\n\n #ifdef MAPTEXTURE\n iridescence *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n dIridescence = iridescence; \n}\n",iridescenceThicknessPS:"\nuniform float material_iridescenceThicknessMax;\n\n#ifdef MAPTEXTURE\nuniform float material_iridescenceThicknessMin;\n#endif\n\nvoid getIridescenceThickness() {\n\n #ifdef MAPTEXTURE\n float blend = texture2DBias($SAMPLER, $UV, textureBias).$CH;\n float iridescenceThickness = mix(material_iridescenceThicknessMin, material_iridescenceThicknessMax, blend);\n #else\n float iridescenceThickness = material_iridescenceThicknessMax;\n #endif\n\n dIridescenceThickness = iridescenceThickness; \n}\n",instancingVS:"\nattribute vec4 instance_line1;\nattribute vec4 instance_line2;\nattribute vec4 instance_line3;\nattribute vec4 instance_line4;\n",iorPS:"\n#ifdef MAPFLOAT\nuniform float material_refractionIndex;\n#endif\n\nvoid getIor() {\n#ifdef MAPFLOAT\n dIor = material_refractionIndex;\n#else\n dIor = 1.0 / 1.5;\n#endif\n}\n",lightDiffuseLambertPS:"\nfloat getLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n return max(dot(worldNormal, -lightDirNorm), 0.0);\n}\n",lightDirPointPS:"\nvoid getLightDirPoint(vec3 lightPosW) {\n dLightDirW = vPositionW - lightPosW;\n dLightDirNormW = normalize(dLightDirW);\n dLightPosW = lightPosW;\n}\n",lightmapAddPS:"\nvoid addLightMap(\n vec3 lightmap, \n vec3 dir, \n vec3 worldNormal, \n vec3 viewDir, \n vec3 reflectionDir, \n float gloss, \n vec3 specularity, \n vec3 vertexNormal, \n mat3 tbn\n#if defined(LIT_IRIDESCENCE)\n vec3 iridescenceFresnel, \n IridescenceArgs iridescence\n#endif\n) {\n dDiffuseLight += lightmap;\n}\n",lightmapDirAddPS:"\nvoid addLightMap(\n vec3 lightmap, \n vec3 dir, \n vec3 worldNormal, \n vec3 viewDir, \n vec3 reflectionDir, \n float gloss, \n vec3 specularity, \n vec3 vertexNormal, \n mat3 tbn\n#if defined(LIT_IRIDESCENCE)\n vec3 iridescenceFresnel, \n IridescenceArgs iridescence\n#endif\n) {\n if (dot(dir, dir) < 0.0001) {\n dDiffuseLight += lightmap;\n } else {\n float vlight = saturate(dot(dir, -vertexNormal));\n float flight = saturate(dot(dir, -worldNormal));\n float nlight = (flight / max(vlight, 0.01)) * 0.5;\n\n dDiffuseLight += lightmap * nlight * 2.0;\n\n vec3 halfDir = normalize(-dir + viewDir);\n vec3 specularLight = lightmap * getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dir, gloss, tbn);\n\n#ifdef LIT_SPECULAR_FRESNEL\n specularLight *= \n getFresnel(dot(viewDir, halfDir), \n gloss, \n specularity\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel,\n iridescence\n #endif\n );\n#endif\n\n dSpecularLight += specularLight;\n }\n}\n",lightmapDirPS:"\nuniform sampler2D texture_lightMap;\nuniform sampler2D texture_dirLightMap;\n\nvoid getLightMap() {\n dLightmap = $DECODE(texture2DBias(texture_lightMap, $UV, textureBias)).$CH;\n\n vec3 dir = texture2DBias(texture_dirLightMap, $UV, textureBias).xyz * 2.0 - 1.0;\n float dirDot = dot(dir, dir);\n dLightmapDir = (dirDot > 0.001) ? dir / sqrt(dirDot) : vec3(0.0);\n}\n",lightmapSinglePS:"\nvoid getLightMap() {\n dLightmap = vec3(1.0);\n\n #ifdef MAPTEXTURE\n dLightmap *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n #endif\n\n #ifdef MAPVERTEX\n dLightmap *= saturate(vVertexColor.$VC);\n #endif\n}\n",lightSpecularAnisoGGXPS:"\n// Anisotropic GGX\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 viewDir, vec3 h, vec3 lightDirNorm, mat3 tbn) {\n float PI = 3.141592653589793;\n float roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n float anisotropy = material_anisotropy * roughness;\n \n float at = max((roughness + anisotropy), roughness / 4.0);\n float ab = max((roughness - anisotropy), roughness / 4.0);\n\n float NoH = dot(worldNormal, h);\n float ToH = dot(tbn[0], h);\n float BoH = dot(tbn[1], h);\n\n float a2 = at * ab;\n vec3 v = vec3(ab * ToH, at * BoH, a2 * NoH);\n float v2 = dot(v, v);\n float w2 = a2 / v2;\n float D = a2 * w2 * w2 * (1.0 / PI);\n\n float ToV = dot(tbn[0], viewDir);\n float BoV = dot(tbn[1], viewDir);\n float ToL = dot(tbn[0], -lightDirNorm);\n float BoL = dot(tbn[1], -lightDirNorm);\n float NoV = dot(worldNormal, viewDir);\n float NoL = dot(worldNormal, -lightDirNorm);\n\n float lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\n float lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\n float G = 0.5 / (lambdaV + lambdaL);\n\n return D * G;\n}\n\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n return calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm, tbn);\n}\n",lightSpecularBlinnPS:"\n// Energy-conserving (hopefully) Blinn-Phong\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 h) {\n float nh = max( dot( h, worldNormal ), 0.0 );\n\n float specPow = exp2(gloss * 11.0); // glossiness is linear, power is not; 0 - 2048\n\n // Hack: On Mac OS X, calling pow with zero for the exponent generates hideous artifacts so bias up a little\n specPow = max(specPow, 0.0001);\n\n return pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\n\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n return calcLightSpecular(gloss, worldNormal, h);\n}\n",lightSpecularPhongPS:"\nfloat calcLightSpecular(float gloss, vec3 reflDir, vec3 lightDirNorm) {\n float specPow = gloss;\n\n // Hack: On Mac OS X, calling pow with zero for the exponent generates hideous artifacts so bias up a little\n return pow(max(dot(reflDir, -lightDirNorm), 0.0), specPow + 0.0001);\n}\n\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n return calcLightSpecular(gloss, reflDir, lightDirNorm);\n}\n",lightSheenPS:"\n\nfloat sheenD(vec3 normal, vec3 h, float roughness) {\n float invR = 1.0 / (roughness * roughness);\n float cos2h = max(dot(normal, h), 0.0);\n cos2h *= cos2h;\n float sin2h = max(1.0 - cos2h, 0.0078125);\n return (2.0 + invR) * pow(sin2h, invR * 0.5) / (2.0 * PI);\n}\n\nfloat sheenV(vec3 normal, vec3 viewDir, vec3 light) {\n float NoV = max(dot(normal, viewDir), 0.000001);\n float NoL = max(dot(normal, light), 0.000001);\n return 1.0 / (4.0 * (NoL + NoV - NoL * NoV));\n}\n\nfloat getLightSpecularSheen(vec3 h, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float sheenGloss) {\n float D = sheenD(worldNormal, h, sheenGloss);\n float V = sheenV(worldNormal, viewDir, -lightDirNorm);\n return D * V;\n}\n",linearizeDepthPS:"\n\n#ifndef LINEARIZE_DEPTH\n#define LINEARIZE_DEPTH\n\nfloat linearizeDepth(float z, vec4 cameraParams) {\n if (cameraParams.w == 0.0)\n return (cameraParams.z * cameraParams.y) / (cameraParams.y + z * (cameraParams.z - cameraParams.y));\n else\n return cameraParams.z + z * (cameraParams.y - cameraParams.z);\n}\n\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params; // x: 1 / camera_far, y: camera_far, z: camera_near, w: is_ortho\n#endif\n\n#ifdef GL2\nfloat linearizeDepth(float z) {\n return linearizeDepth(z, camera_params);\n}\n#else\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n return dot(rgbaDepth, bitShift);\n}\n#endif\n#endif\n#endif\n",litShaderArgsPS:"\n\n// Surface albedo absorbance\nvec3 litArgs_albedo;\n\n// Transparency\nfloat litArgs_opacity;\n\n// Emission color\nvec3 litArgs_emission;\n\n// Normal direction in world space\nvec3 litArgs_worldNormal;\n\n// Ambient occlusion amount, range [0..1]\nfloat litArgs_ao;\n\n// Light map color\nvec3 litArgs_lightmap;\n\n// Light map direction\nvec3 litArgs_lightmapDir;\n\n// Surface metalness factor, range [0..1]\nfloat litArgs_metalness;\n\n// The f0 specularity factor\nvec3 litArgs_specularity;\n\n// Specularity intensity factor, range [0..1]\nfloat litArgs_specularityFactor;\n\n// The microfacet glossiness factor, range [0..1]\nfloat litArgs_gloss;\n\n// Glossiness of the sheen layer, range [0..1]\nfloat litArgs_sheen_gloss;\n\n// The color of the f0 specularity factor for the sheen layer\nvec3 litArgs_sheen_specularity;\n\n// Transmission factor (refraction), range [0..1]\nfloat litArgs_transmission;\n\n// Uniform thickness of medium, used by transmission, range [0..inf]\nfloat litArgs_thickness;\n\n// Index of refraction\nfloat litArgs_ior;\n\n// Iridescence effect intensity, range [0..1]\nfloat litArgs_iridescence_intensity;\n\n// Thickness of the iridescent microfilm layer, value is in nanometers, range [0..1000]\nfloat litArgs_iridescence_thickness;\n\n// The normal used for the clearcoat layer\nvec3 litArgs_clearcoat_worldNormal;\n\n// Intensity of the clearcoat layer, range [0..1]\nfloat litArgs_clearcoat_specularity;\n\n// Glossiness of clearcoat layer, range [0..1]\nfloat litArgs_clearcoat_gloss;\n\n",ltcPS:'\n// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines\n// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt\n// code: https://github.com/selfshadow/ltc_code/\n\nmat3 transposeMat3( const in mat3 m ) {\n mat3 tmp;\n tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n return tmp;\n}\n\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = saturate( dot( N, V ) );\n // texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) )\n vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n uv = uv * LUT_SCALE + LUT_BIAS;\n return uv;\n}\n\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n // Real-Time Area Lighting: a Journey from Research to Production (p.102)\n // An approximation of the form factor of a horizon-clipped rectangle.\n float l = length( f );\n return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\n\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n float x = dot( v1, v2 );\n float y = abs( x );\n // rational polynomial approximation to theta / sin( theta ) / 2PI\n float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n float b = 3.4175940 + ( 4.1616724 + y ) * y;\n float v = a / b;\n float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n return cross( v1, v2 ) * theta_sintheta;\n}\n\nstruct Coords {\n vec3 coord0;\n vec3 coord1;\n vec3 coord2;\n vec3 coord3;\n};\n\nfloat LTC_EvaluateRect( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in Coords rectCoords) {\n // bail if point is on back side of plane of light\n // assumes ccw winding order of light vertices\n vec3 v1 = rectCoords.coord1 - rectCoords.coord0;\n vec3 v2 = rectCoords.coord3 - rectCoords.coord0;\n \n vec3 lightNormal = cross( v1, v2 );\n // if( dot( lightNormal, P - rectCoords.coord0 ) < 0.0 ) return 0.0;\n float factor = sign(-dot( lightNormal, P - rectCoords.coord0 ));\n\n // construct orthonormal basis around N\n vec3 T1, T2;\n T1 = normalize( V - N * dot( V, N ) );\n T2 = factor * cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system\n // compute transform\n mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n // transform rect\n vec3 coords[ 4 ];\n coords[ 0 ] = mat * ( rectCoords.coord0 - P );\n coords[ 1 ] = mat * ( rectCoords.coord1 - P );\n coords[ 2 ] = mat * ( rectCoords.coord2 - P );\n coords[ 3 ] = mat * ( rectCoords.coord3 - P );\n // project rect onto sphere\n coords[ 0 ] = normalize( coords[ 0 ] );\n coords[ 1 ] = normalize( coords[ 1 ] );\n coords[ 2 ] = normalize( coords[ 2 ] );\n coords[ 3 ] = normalize( coords[ 3 ] );\n // calculate vector form factor\n vec3 vectorFormFactor = vec3( 0.0 );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n // adjust for horizon clipping\n float result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\n return result;\n}\n\nCoords dLTCCoords;\nCoords getLTCLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n Coords coords;\n coords.coord0 = lightPos + halfWidth - halfHeight;\n coords.coord1 = lightPos - halfWidth - halfHeight;\n coords.coord2 = lightPos - halfWidth + halfHeight;\n coords.coord3 = lightPos + halfWidth + halfHeight;\n return coords;\n}\n\nfloat dSphereRadius;\nCoords getSphereLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n // used for simple sphere light falloff\n // also, the code only handles a spherical light, it cannot be non-uniformly scaled in world space, and so we enforce it here\n dSphereRadius = max(length(halfWidth), length(halfHeight));\n\n // Billboard the 2d light quad to reflection vector, as it\'s used for specular. This allows us to use disk math for the sphere.\n vec3 f = reflect(normalize(lightPos - view_position), vNormalW);\n vec3 w = normalize(cross(f, halfHeight));\n vec3 h = normalize(cross(f, w));\n\n return getLTCLightCoords(lightPos, w * dSphereRadius, h * dSphereRadius);\n}\n\n// used for LTC LUT texture lookup\nvec2 dLTCUV;\n#ifdef LIT_CLEARCOAT\nvec2 ccLTCUV;\n#endif\nvec2 getLTCLightUV(float gloss, vec3 worldNormal, vec3 viewDir)\n{\n float roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n return LTC_Uv( worldNormal, viewDir, roughness );\n}\n\n//used for energy conservation and to modulate specular\nvec3 dLTCSpecFres;\n#ifdef LIT_CLEARCOAT\nvec3 ccLTCSpecFres;\n#endif\nvec3 getLTCLightSpecFres(vec2 uv, vec3 specularity)\n{\n vec4 t2 = texture2DLodEXT(areaLightsLutTex2, uv, 0.0);\n\n #ifdef AREA_R8_G8_B8_A8_LUTS\n t2 *= vec4(0.693103,1,1,1);\n t2 += vec4(0.306897,0,0,0);\n #endif\n\n return specularity * t2.x + ( vec3( 1.0 ) - specularity) * t2.y;\n}\n\nvoid calcLTCLightValues(float gloss, vec3 worldNormal, vec3 viewDir, vec3 specularity, float clearcoatGloss, vec3 clearcoatWorldNormal, float clearcoatSpecularity)\n{\n dLTCUV = getLTCLightUV(gloss, worldNormal, viewDir);\n dLTCSpecFres = getLTCLightSpecFres(dLTCUV, specularity); \n\n#ifdef LIT_CLEARCOAT\n ccLTCUV = getLTCLightUV(clearcoatGloss, clearcoatWorldNormal, viewDir);\n ccLTCSpecFres = getLTCLightSpecFres(ccLTCUV, vec3(clearcoatSpecularity));\n#endif\n}\n\nvoid calcRectLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n dLTCCoords = getLTCLightCoords(lightPos, halfWidth, halfHeight);\n}\nvoid calcDiskLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n calcRectLightValues(lightPos, halfWidth, halfHeight);\n}\nvoid calcSphereLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n dLTCCoords = getSphereLightCoords(lightPos, halfWidth, halfHeight);\n}\n\n// An extended version of the implementation from\n// "How to solve a cubic equation, revisited"\n// http://momentsingraphics.de/?p=105\nvec3 SolveCubic(vec4 Coefficient)\n{\n float pi = 3.14159;\n // Normalize the polynomial\n Coefficient.xyz /= Coefficient.w;\n // Divide middle coefficients by three\n Coefficient.yz /= 3.0;\n\n float A = Coefficient.w;\n float B = Coefficient.z;\n float C = Coefficient.y;\n float D = Coefficient.x;\n\n // Compute the Hessian and the discriminant\n vec3 Delta = vec3(\n -Coefficient.z * Coefficient.z + Coefficient.y,\n -Coefficient.y * Coefficient.z + Coefficient.x,\n dot(vec2(Coefficient.z, -Coefficient.y), Coefficient.xy)\n );\n\n float Discriminant = dot(vec2(4.0 * Delta.x, -Delta.y), Delta.zy);\n\n vec3 RootsA, RootsD;\n\n vec2 xlc, xsc;\n\n // Algorithm A\n {\n float A_a = 1.0;\n float C_a = Delta.x;\n float D_a = -2.0 * B * Delta.x + Delta.y;\n\n // Take the cubic root of a normalized complex number\n float Theta = atan(sqrt(Discriminant), -D_a) / 3.0;\n\n float x_1a = 2.0 * sqrt(-C_a) * cos(Theta);\n float x_3a = 2.0 * sqrt(-C_a) * cos(Theta + (2.0 / 3.0) * pi);\n\n float xl;\n if ((x_1a + x_3a) > 2.0 * B)\n xl = x_1a;\n else\n xl = x_3a;\n\n xlc = vec2(xl - B, A);\n }\n\n // Algorithm D\n {\n float A_d = D;\n float C_d = Delta.z;\n float D_d = -D * Delta.y + 2.0 * C * Delta.z;\n\n // Take the cubic root of a normalized complex number\n float Theta = atan(D * sqrt(Discriminant), -D_d) / 3.0;\n\n float x_1d = 2.0 * sqrt(-C_d) * cos(Theta);\n float x_3d = 2.0 * sqrt(-C_d) * cos(Theta + (2.0 / 3.0) * pi);\n\n float xs;\n if (x_1d + x_3d < 2.0 * C)\n xs = x_1d;\n else\n xs = x_3d;\n\n xsc = vec2(-D, xs + C);\n }\n\n float E = xlc.y * xsc.y;\n float F = -xlc.x * xsc.y - xlc.y * xsc.x;\n float G = xlc.x * xsc.x;\n\n vec2 xmc = vec2(C * F - B * G, -B * F + C * E);\n\n vec3 Root = vec3(xsc.x / xsc.y, xmc.x / xmc.y, xlc.x / xlc.y);\n\n if (Root.x < Root.y && Root.x < Root.z)\n Root.xyz = Root.yxz;\n else if (Root.z < Root.x && Root.z < Root.y)\n Root.xyz = Root.xzy;\n\n return Root;\n}\n\nfloat LTC_EvaluateDisk(vec3 N, vec3 V, vec3 P, mat3 Minv, Coords points)\n{\n // construct orthonormal basis around N\n vec3 T1, T2;\n T1 = normalize(V - N * dot(V, N));\n T2 = cross(N, T1);\n\n // rotate area light in (T1, T2, N) basis\n //mat3 R = transpose(mat3(T1, T2, N));\n mat3 R = transposeMat3( mat3( T1, T2, N ) );\n // polygon (allocate 5 vertices for clipping)\n vec3 L_[ 3 ];\n L_[ 0 ] = R * ( points.coord0 - P );\n L_[ 1 ] = R * ( points.coord1 - P );\n L_[ 2 ] = R * ( points.coord2 - P );\n\n vec3 Lo_i = vec3(0);\n\n // init ellipse\n vec3 C = 0.5 * (L_[0] + L_[2]);\n vec3 V1 = 0.5 * (L_[1] - L_[2]);\n vec3 V2 = 0.5 * (L_[1] - L_[0]);\n\n C = Minv * C;\n V1 = Minv * V1;\n V2 = Minv * V2;\n\n //if(dot(cross(V1, V2), C) > 0.0)\n // return 0.0;\n\n // compute eigenvectors of ellipse\n float a, b;\n float d11 = dot(V1, V1);\n float d22 = dot(V2, V2);\n float d12 = dot(V1, V2);\n if (abs(d12) / sqrt(d11 * d22) > 0.0001)\n {\n float tr = d11 + d22;\n float det = -d12 * d12 + d11 * d22;\n\n // use sqrt matrix to solve for eigenvalues\n det = sqrt(det);\n float u = 0.5 * sqrt(tr - 2.0 * det);\n float v = 0.5 * sqrt(tr + 2.0 * det);\n float e_max = (u + v) * (u + v);\n float e_min = (u - v) * (u - v);\n\n vec3 V1_, V2_;\n\n if (d11 > d22)\n {\n V1_ = d12 * V1 + (e_max - d11) * V2;\n V2_ = d12 * V1 + (e_min - d11) * V2;\n }\n else\n {\n V1_ = d12*V2 + (e_max - d22)*V1;\n V2_ = d12*V2 + (e_min - d22)*V1;\n }\n\n a = 1.0 / e_max;\n b = 1.0 / e_min;\n V1 = normalize(V1_);\n V2 = normalize(V2_);\n }\n else\n {\n a = 1.0 / dot(V1, V1);\n b = 1.0 / dot(V2, V2);\n V1 *= sqrt(a);\n V2 *= sqrt(b);\n }\n\n vec3 V3 = cross(V1, V2);\n if (dot(C, V3) < 0.0)\n V3 *= -1.0;\n\n float L = dot(V3, C);\n float x0 = dot(V1, C) / L;\n float y0 = dot(V2, C) / L;\n\n float E1 = inversesqrt(a);\n float E2 = inversesqrt(b);\n\n a *= L * L;\n b *= L * L;\n\n float c0 = a * b;\n float c1 = a * b * (1.0 + x0 * x0 + y0 * y0) - a - b;\n float c2 = 1.0 - a * (1.0 + x0 * x0) - b * (1.0 + y0 * y0);\n float c3 = 1.0;\n\n vec3 roots = SolveCubic(vec4(c0, c1, c2, c3));\n float e1 = roots.x;\n float e2 = roots.y;\n float e3 = roots.z;\n\n vec3 avgDir = vec3(a * x0 / (a - e2), b * y0 / (b - e2), 1.0);\n\n mat3 rotate = mat3(V1, V2, V3);\n\n avgDir = rotate * avgDir;\n avgDir = normalize(avgDir);\n\n float L1 = sqrt(-e2 / e3);\n float L2 = sqrt(-e2 / e1);\n\n float formFactor = L1 * L2 * inversesqrt((1.0 + L1 * L1) * (1.0 + L2 * L2));\n \n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n\n // use tabulated horizon-clipped sphere\n vec2 uv = vec2(avgDir.z * 0.5 + 0.5, formFactor);\n uv = uv*LUT_SCALE + LUT_BIAS;\n\n float scale = texture2DLodEXT(areaLightsLutTex2, uv, 0.0).w;\n\n return formFactor*scale;\n}\n\nfloat getRectLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n return LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\n\nfloat getDiskLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n return LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\n\nfloat getSphereLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n // NB: this could be improved further with distance based wrap lighting\n float falloff = dSphereRadius / (dot(lightDir, lightDir) + dSphereRadius);\n return getLightDiffuse(worldNormal, viewDir, lightDir, lightDirNorm) * falloff;\n}\n\nmat3 getLTCLightInvMat(vec2 uv)\n{\n vec4 t1 = texture2DLodEXT(areaLightsLutTex1, uv, 0.0);\n\n #ifdef AREA_R8_G8_B8_A8_LUTS\n t1 *= vec4(1.001, 0.3239, 0.60437568, 1.0);\n t1 += vec4(0.0, -0.2976, -0.01381, 0.0);\n #endif\n\n return mat3(\n vec3( t1.x, 0, t1.y ),\n vec3( 0, 1, 0 ),\n vec3( t1.z, 0, t1.w )\n );\n}\n\nfloat calcRectLightSpecular(vec3 worldNormal, vec3 viewDir, vec2 uv) {\n mat3 mInv = getLTCLightInvMat(uv);\n return LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\n\nfloat getRectLightSpecular(vec3 worldNormal, vec3 viewDir) {\n return calcRectLightSpecular(worldNormal, viewDir, dLTCUV);\n}\n\nfloat calcDiskLightSpecular(vec3 worldNormal, vec3 viewDir, vec2 uv) {\n mat3 mInv = getLTCLightInvMat(uv);\n return LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\n\nfloat getDiskLightSpecular(vec3 worldNormal, vec3 viewDir) {\n return calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\n\nfloat getSphereLightSpecular(vec3 worldNormal, vec3 viewDir) {\n return calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\n',metalnessPS:"\n#ifdef MAPFLOAT\nuniform float material_metalness;\n#endif\n\nvoid getMetalness() {\n float metalness = 1.0;\n\n #ifdef MAPFLOAT\n metalness *= material_metalness;\n #endif\n\n #ifdef MAPTEXTURE\n metalness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n metalness *= saturate(vVertexColor.$VC);\n #endif\n\n dMetalness = metalness;\n}\n",metalnessModulatePS:"\n\nvec3 getSpecularModulate(in vec3 specularity, in vec3 albedo, in float metalness, in float f0) {\n vec3 dielectricF0 = f0 * specularity;\n return mix(dielectricF0, albedo, metalness);\n}\n\nvec3 getAlbedoModulate(in vec3 albedo, in float metalness) {\n return albedo * (1.0 - metalness);\n}\n",msdfPS:"\nuniform sampler2D texture_msdfMap;\n\n#ifdef GL_OES_standard_derivatives\n#define USE_FWIDTH\n#endif\n\n#ifdef GL2\n#define USE_FWIDTH\n#endif\n\nfloat median(float r, float g, float b) {\n return max(min(r, g), min(max(r, g), b));\n}\n\nfloat map (float min, float max, float v) {\n return (v - min) / (max - min);\n}\n\nuniform float font_sdfIntensity; // intensity is used to boost the value read from the SDF, 0 is no boost, 1.0 is max boost\nuniform float font_pxrange; // the number of pixels between inside and outside the font in SDF\nuniform float font_textureWidth; // the width of the texture atlas\n\n#ifdef UNIFORM_TEXT_PARAMETERS\nuniform vec4 outline_color;\nuniform float outline_thickness;\nuniform vec4 shadow_color;\nuniform vec2 shadow_offset;\n#else\nvarying vec4 outline_color;\nvarying float outline_thickness;\nvarying vec4 shadow_color;\nvarying vec2 shadow_offset;\n#endif\n\nvec4 applyMsdf(vec4 color) {\n // sample the field\n vec3 tsample = texture2D(texture_msdfMap, vUv0).rgb;\n vec2 uvShdw = vUv0 - shadow_offset;\n vec3 ssample = texture2D(texture_msdfMap, uvShdw).rgb;\n // get the signed distance value\n float sigDist = median(tsample.r, tsample.g, tsample.b);\n float sigDistShdw = median(ssample.r, ssample.g, ssample.b);\n\n // smoothing limit - smaller value makes for sharper but more aliased text, especially on angles\n // too large value (0.5) creates a dark glow around the letters\n float smoothingMax = 0.2;\n\n #ifdef USE_FWIDTH\n // smoothing depends on size of texture on screen\n vec2 w = fwidth(vUv0);\n float smoothing = clamp(w.x * font_textureWidth / font_pxrange, 0.0, smoothingMax);\n #else\n float font_size = 16.0; // TODO fix this\n // smoothing gets smaller as the font size gets bigger\n // don't have fwidth we can approximate from font size, this doesn't account for scaling\n // so a big font scaled down will be wrong...\n float smoothing = clamp(font_pxrange / font_size, 0.0, smoothingMax);\n #endif\n\n float mapMin = 0.05;\n float mapMax = clamp(1.0 - font_sdfIntensity, mapMin, 1.0);\n\n // remap to a smaller range (used on smaller font sizes)\n float sigDistInner = map(mapMin, mapMax, sigDist);\n float sigDistOutline = map(mapMin, mapMax, sigDist + outline_thickness);\n sigDistShdw = map(mapMin, mapMax, sigDistShdw + outline_thickness);\n\n float center = 0.5;\n // calculate smoothing and use to generate opacity\n float inside = smoothstep(center-smoothing, center+smoothing, sigDistInner);\n float outline = smoothstep(center-smoothing, center+smoothing, sigDistOutline);\n float shadow = smoothstep(center-smoothing, center+smoothing, sigDistShdw);\n\n vec4 tcolor = (outline > inside) ? outline * vec4(outline_color.a * outline_color.rgb, outline_color.a) : vec4(0.0);\n tcolor = mix(tcolor, color, inside);\n\n vec4 scolor = (shadow > outline) ? shadow * vec4(shadow_color.a * shadow_color.rgb, shadow_color.a) : tcolor;\n tcolor = mix(scolor, tcolor, outline);\n \n return tcolor;\n}\n",msdfVS:"\nattribute vec3 vertex_outlineParameters;\nattribute vec3 vertex_shadowParameters;\n\nvarying vec4 outline_color;\nvarying float outline_thickness;\nvarying vec4 shadow_color;\nvarying vec2 shadow_offset;\n\nvoid unpackMsdfParams() {\n vec3 little = mod(vertex_outlineParameters, 256.);\n vec3 big = (vertex_outlineParameters - little) / 256.;\n\n outline_color.rb = little.xy / 255.;\n outline_color.ga = big.xy / 255.;\n\n // _outlineThicknessScale === 0.2\n outline_thickness = little.z / 255. * 0.2;\n\n little = mod(vertex_shadowParameters, 256.);\n big = (vertex_shadowParameters - little) / 256.;\n\n shadow_color.rb = little.xy / 255.;\n shadow_color.ga = big.xy / 255.;\n\n // vec2(little.z, big.z) / 127. - 1. remaps shadow offset from [0, 254] to [-1, 1]\n // _shadowOffsetScale === 0.005\n shadow_offset = (vec2(little.z, big.z) / 127. - 1.) * 0.005;\n}\n",normalVS:"\n#ifdef MORPHING_TEXTURE_BASED_NORMAL\nuniform highp sampler2D morphNormalTex;\n#endif\n\nvec3 getNormal() {\n #ifdef SKIN\n dNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n #elif defined(INSTANCING)\n dNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n #else\n dNormalMatrix = matrix_normal;\n #endif\n\n vec3 tempNormal = vertex_normal;\n\n #ifdef MORPHING\n #ifdef MORPHING_NRM03\n tempNormal += morph_weights_a[0] * morph_nrm0;\n tempNormal += morph_weights_a[1] * morph_nrm1;\n tempNormal += morph_weights_a[2] * morph_nrm2;\n tempNormal += morph_weights_a[3] * morph_nrm3;\n #endif\n #ifdef MORPHING_NRM47\n tempNormal += morph_weights_b[0] * morph_nrm4;\n tempNormal += morph_weights_b[1] * morph_nrm5;\n tempNormal += morph_weights_b[2] * morph_nrm6;\n tempNormal += morph_weights_b[3] * morph_nrm7;\n #endif\n #endif\n\n #ifdef MORPHING_TEXTURE_BASED_NORMAL\n\n #ifdef WEBGPU\n ivec2 morphUV = getTextureMorphCoords();\n vec3 morphNormal = texelFetch(morphNormalTex, ivec2(morphUV), 0).xyz;\n #else\n vec2 morphUV = getTextureMorphCoords();\n vec3 morphNormal = texture2D(morphNormalTex, morphUV).xyz;\n #endif\n\n // apply morph offset from texture\n tempNormal += morphNormal;\n #endif\n\n return normalize(dNormalMatrix * tempNormal);\n}\n",normalDetailMapPS:"\n#ifdef MAPTEXTURE\nuniform float material_normalDetailMapBumpiness;\n\nvec3 blendNormals(vec3 n1, vec3 n2) {\n // https://blog.selfshadow.com/publications/blending-in-detail/#detail-oriented\n n1 += vec3(0, 0, 1);\n n2 *= vec3(-1, -1, 1);\n return n1 * dot(n1, n2) / n1.z - n2;\n}\n#endif\n\nvec3 addNormalDetail(vec3 normalMap) {\n#ifdef MAPTEXTURE\n vec3 normalDetailMap = unpackNormal(texture2DBias($SAMPLER, $UV, textureBias));\n normalDetailMap = mix(vec3(0.0, 0.0, 1.0), normalDetailMap, material_normalDetailMapBumpiness);\n return blendNormals(normalMap, normalDetailMap);\n#else\n return normalMap;\n#endif\n}\n",normalInstancedVS:"\nvec3 getNormal() {\n dNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n return normalize(dNormalMatrix * vertex_normal);\n}\n",normalMapPS:"\n#ifdef MAPTEXTURE\nuniform float material_bumpiness;\n#endif\n\nvoid getNormal() {\n#ifdef MAPTEXTURE\n vec3 normalMap = unpackNormal(texture2DBias($SAMPLER, $UV, textureBias));\n normalMap = mix(vec3(0.0, 0.0, 1.0), normalMap, material_bumpiness);\n dNormalW = normalize(dTBN * addNormalDetail(normalMap));\n#else\n dNormalW = dVertexNormalW;\n#endif\n}\n",normalSkinnedVS:"\nvec3 getNormal() {\n dNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n return normalize(dNormalMatrix * vertex_normal);\n}\n",normalXYPS:"\nvec3 unpackNormal(vec4 nmap) {\n vec3 normal;\n normal.xy = nmap.wy * 2.0 - 1.0;\n normal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy)));\n return normal;\n}\n",normalXYZPS:"\nvec3 unpackNormal(vec4 nmap) {\n return nmap.xyz * 2.0 - 1.0;\n}\n",opacityPS:"\n#ifdef MAPFLOAT\nuniform float material_opacity;\n#endif\n\nvoid getOpacity() {\n dAlpha = 1.0;\n\n #ifdef MAPFLOAT\n dAlpha *= material_opacity;\n #endif\n\n #ifdef MAPTEXTURE\n dAlpha *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n dAlpha *= clamp(vVertexColor.$VC, 0.0, 1.0);\n #endif\n}\n",outputPS:"\n",outputAlphaPS:"\ngl_FragColor.a = litArgs_opacity;\n",outputAlphaOpaquePS:"\n gl_FragColor.a = 1.0;\n",outputAlphaPremulPS:"\ngl_FragColor.rgb *= litArgs_opacity;\ngl_FragColor.a = litArgs_opacity;\n",outputTex2DPS:"\nvarying vec2 vUv0;\n\nuniform sampler2D source;\n\nvoid main(void) {\n gl_FragColor = texture2D(source, vUv0);\n}\n",packDepthPS:"\n// Packing a float in GLSL with multiplication and mod\n// http://blog.gradientstudios.com/2012/08/23/shadow-map-improvement\nvec4 packFloat(float depth) {\n const vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n const vec4 bit_mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\n // combination of mod and multiplication and division works better\n vec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n res -= res.xxyz * bit_mask;\n return res;\n}\n",sheenPS:"\n\n#ifdef MAPCOLOR\nuniform vec3 material_sheen;\n#endif\n\nvoid getSheen() {\n vec3 sheenColor = vec3(1, 1, 1);\n\n #ifdef MAPCOLOR\n sheenColor *= material_sheen;\n #endif\n\n #ifdef MAPTEXTURE\n sheenColor *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n #endif\n\n #ifdef MAPVERTEX\n sheenColor *= saturate(vVertexColor.$VC);\n #endif\n\n sSpecularity = sheenColor;\n}\n",sheenGlossPS:"\n#ifdef MAPFLOAT\nuniform float material_sheenGloss;\n#endif\n\nvoid getSheenGlossiness() {\n float sheenGlossiness = 1.0;\n\n #ifdef MAPFLOAT\n sheenGlossiness *= material_sheenGloss;\n #endif\n\n #ifdef MAPTEXTURE\n sheenGlossiness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n sheenGlossiness *= saturate(vVertexColor.$VC);\n #endif\n\n #ifdef MAPINVERT\n sheenGlossiness = 1.0 - sheenGlossiness;\n #endif\n\n sheenGlossiness += 0.0000001;\n sGlossiness = sheenGlossiness;\n}\n",parallaxPS:"\nuniform float material_heightMapFactor;\n\nvoid getParallax() {\n float parallaxScale = material_heightMapFactor;\n\n float height = texture2DBias($SAMPLER, $UV, textureBias).$CH;\n height = height * parallaxScale - parallaxScale*0.5;\n vec3 viewDirT = dViewDirW * dTBN;\n\n viewDirT.z += 0.42;\n dUvOffset = height * (viewDirT.xy / viewDirT.z);\n}\n",particlePS:"\nvarying vec4 texCoordsAlphaLife;\n\nuniform sampler2D colorMap;\nuniform sampler2D colorParam;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n\nuniform float softening;\nuniform float colorMult;\n\nfloat saturate(float x) {\n return clamp(x, 0.0, 1.0);\n}\n\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n float depth = dot(rgbaDepth, bitShift);\n return depth;\n}\n#endif\n\nvoid main(void) {\n vec4 tex = gammaCorrectInput(texture2D(colorMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)));\n vec4 ramp = gammaCorrectInput(texture2D(colorParam, vec2(texCoordsAlphaLife.w, 0.0)));\n ramp.rgb *= colorMult;\n\n ramp.a += texCoordsAlphaLife.z;\n\n vec3 rgb = tex.rgb * ramp.rgb;\n float a = tex.a * ramp.a;\n",particleVS:"\nvec3 unpack3NFloats(float src) {\n float r = fract(src);\n float g = fract(src * 256.0);\n float b = fract(src * 65536.0);\n return vec3(r, g, b);\n}\n\nfloat saturate(float x) {\n return clamp(x, 0.0, 1.0);\n}\n\nvec4 tex1Dlod_lerp(highp sampler2D tex, vec2 tc) {\n return mix( texture2D(tex,tc), texture2D(tex,tc + graphSampleSize), fract(tc.x*graphNumSamples) );\n}\n\nvec4 tex1Dlod_lerp(highp sampler2D tex, vec2 tc, out vec3 w) {\n vec4 a = texture2D(tex,tc);\n vec4 b = texture2D(tex,tc + graphSampleSize);\n float c = fract(tc.x*graphNumSamples);\n\n vec3 unpackedA = unpack3NFloats(a.w);\n vec3 unpackedB = unpack3NFloats(b.w);\n w = mix(unpackedA, unpackedB, c);\n\n return mix(a, b, c);\n}\n\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix) {\n float c = cos(pRotation);\n float s = sin(pRotation);\n\n mat2 m = mat2(c, -s, s, c);\n rotMatrix = m;\n\n return m * quadXY;\n}\n\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY) {\n #ifdef SCREEN_SPACE\n vec3 pos = vec3(-1, 0, 0) * quadXY.x + vec3(0, -1, 0) * quadXY.y;\n #else\n vec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n #endif\n\n return pos;\n}\n\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY) {\n vec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n return pos;\n}\n\nvec2 safeNormalize(vec2 v) {\n float l = length(v);\n return (l > 1e-06) ? v / l : v;\n}\n\nvoid main(void) {\n vec3 meshLocalPos = particle_vertexData.xyz;\n float id = floor(particle_vertexData.w);\n\n float rndFactor = fract(sin(id + 1.0 + seed));\n vec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\n float uv = id / numParticlesPot;\n readInput(uv);\n\n#ifdef LOCAL_SPACE\n inVel = mat3(matrix_model) * inVel;\n#endif\n vec2 velocityV = safeNormalize((mat3(matrix_view) * inVel).xy); // should be removed by compiler if align/stretch is not used\n\n float particleLifetime = lifetime;\n\n if (inLife <= 0.0 || inLife > particleLifetime || !inShow) meshLocalPos = vec3(0.0);\n vec2 quadXY = meshLocalPos.xy;\n float nlife = clamp(inLife / particleLifetime, 0.0, 1.0);\n\n vec3 paramDiv;\n vec4 params = tex1Dlod_lerp(internalTex2, vec2(nlife, 0), paramDiv);\n float scale = params.y;\n float scaleDiv = paramDiv.x;\n float alphaDiv = paramDiv.z;\n\n scale += (scaleDiv * 2.0 - 1.0) * scaleDivMult * fract(rndFactor*10000.0);\n\n#ifndef USE_MESH\n texCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#else\n texCoordsAlphaLife = vec4(particle_uv, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#endif\n\n vec3 particlePos = inPos;\n vec3 particlePosMoved = vec3(0.0);\n\n mat2 rotMatrix;\n",particleAnimFrameClampVS:"\n float animFrame = min(floor(texCoordsAlphaLife.w * animTexParams.y) + animTexParams.x, animTexParams.z);\n",particleAnimFrameLoopVS:"\n float animFrame = floor(mod(texCoordsAlphaLife.w * animTexParams.y + animTexParams.x, animTexParams.z + 1.0));\n",particleAnimTexVS:"\n float animationIndex;\n\n if (animTexIndexParams.y == 1.0) {\n animationIndex = floor((animTexParams.w + 1.0) * rndFactor3.z) * (animTexParams.z + 1.0);\n } else {\n animationIndex = animTexIndexParams.x * (animTexParams.z + 1.0);\n }\n\n float atlasX = (animationIndex + animFrame) * animTexTilesParams.x;\n float atlasY = 1.0 - floor(atlasX + 1.0) * animTexTilesParams.y;\n atlasX = fract(atlasX);\n\n texCoordsAlphaLife.xy *= animTexTilesParams.xy;\n texCoordsAlphaLife.xy += vec2(atlasX, atlasY);\n",particleInputFloatPS:"\nvoid readInput(float uv) {\n vec4 tex = texture2D(particleTexIN, vec2(uv, 0.25));\n vec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.75));\n\n inPos = tex.xyz;\n inVel = tex2.xyz;\n inAngle = (tex.w < 0.0? -tex.w : tex.w) - 1000.0;\n inShow = tex.w >= 0.0;\n inLife = tex2.w;\n}\n",particleInputRgba8PS:"\n//RG=X, BA=Y\n//RG=Z, BA=A\n//RGB=V, A=visMode\n//RGBA=life\n\n#define PI2 6.283185307179586\n\nuniform vec3 inBoundsSize;\nuniform vec3 inBoundsCenter;\n\nuniform float maxVel;\n\nfloat decodeFloatRG(vec2 rg) {\n return rg.y*(1.0/255.0) + rg.x;\n}\n\nfloat decodeFloatRGBA( vec4 rgba ) {\n return dot( rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0) );\n}\n\nvoid readInput(float uv) {\n vec4 tex0 = texture2D(particleTexIN, vec2(uv, 0.125));\n vec4 tex1 = texture2D(particleTexIN, vec2(uv, 0.375));\n vec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.625));\n vec4 tex3 = texture2D(particleTexIN, vec2(uv, 0.875));\n\n inPos = vec3(decodeFloatRG(tex0.rg), decodeFloatRG(tex0.ba), decodeFloatRG(tex1.rg));\n inPos = (inPos - vec3(0.5)) * inBoundsSize + inBoundsCenter;\n\n inVel = tex2.xyz;\n inVel = (inVel - vec3(0.5)) * maxVel;\n\n inAngle = decodeFloatRG(tex1.ba) * PI2;\n inShow = tex2.a > 0.5;\n\n inLife = decodeFloatRGBA(tex3);\n float maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n float maxPosLife = lifetime+1.0;\n inLife = inLife * (maxNegLife + maxPosLife) - maxNegLife;\n}\n",particleOutputFloatPS:"\nvoid writeOutput() {\n if (gl_FragCoord.y<1.0) {\n gl_FragColor = vec4(outPos, (outAngle + 1000.0) * visMode);\n } else {\n gl_FragColor = vec4(outVel, outLife);\n }\n}\n",particleOutputRgba8PS:"\nuniform vec3 outBoundsMul;\nuniform vec3 outBoundsAdd;\n\nvec2 encodeFloatRG( float v ) {\n vec2 enc = vec2(1.0, 255.0) * v;\n enc = fract(enc);\n enc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n return enc;\n}\n\nvec4 encodeFloatRGBA( float v ) {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * v;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n return enc;\n}\n\nvoid writeOutput() {\n outPos = outPos * outBoundsMul + outBoundsAdd;\n outAngle = fract(outAngle / PI2);\n\n outVel = (outVel / maxVel) + vec3(0.5); // TODO: mul\n\n float maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n float maxPosLife = lifetime+1.0;\n outLife = (outLife + maxNegLife) / (maxNegLife + maxPosLife);\n\n if (gl_FragCoord.y < 1.0) {\n gl_FragColor = vec4(encodeFloatRG(outPos.x), encodeFloatRG(outPos.y));\n } else if (gl_FragCoord.y < 2.0) {\n gl_FragColor = vec4(encodeFloatRG(outPos.z), encodeFloatRG(outAngle));\n } else if (gl_FragCoord.y < 3.0) {\n gl_FragColor = vec4(outVel, visMode*0.5+0.5);\n } else {\n gl_FragColor = encodeFloatRGBA(outLife);\n }\n}\n",particleUpdaterAABBPS:"\nuniform mat3 spawnBounds;\nuniform vec3 spawnPosInnerRatio;\n\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n vec3 pos = inBounds - vec3(0.5);\n\n vec3 posAbs = abs(pos);\n vec3 maxPos = vec3(max(posAbs.x, max(posAbs.y, posAbs.z)));\n\n vec3 edge = maxPos + (vec3(0.5) - maxPos) * spawnPosInnerRatio;\n\n pos.x = edge.x * (maxPos.x == posAbs.x ? sign(pos.x) : 2.0 * pos.x);\n pos.y = edge.y * (maxPos.y == posAbs.y ? sign(pos.y) : 2.0 * pos.y);\n pos.z = edge.z * (maxPos.z == posAbs.z ? sign(pos.z) : 2.0 * pos.z);\n\n#ifndef LOCAL_SPACE\n return emitterPos + spawnBounds * pos;\n#else\n return spawnBounds * pos;\n#endif\n}\n\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n localVelocity -= vec3(0, 0, initialVelocity);\n}\n",particleUpdaterEndPS:"\n writeOutput();\n}\n",particleUpdaterInitPS:"\nvarying vec2 vUv0;\n\nuniform highp sampler2D particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform highp sampler2D internalTex3;\n\nuniform mat3 emitterMatrix, emitterMatrixInv;\nuniform vec3 emitterScale;\n\nuniform vec3 emitterPos, frameRandom, localVelocityDivMult, velocityDivMult;\nuniform float delta, rate, rateDiv, lifetime, numParticles, rotSpeedDivMult, radialSpeedDivMult, seed;\nuniform float startAngle, startAngle2;\nuniform float initialVelocity;\n\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\nfloat visMode;\n\nvec3 outPos;\nvec3 outVel;\nfloat outAngle;\nbool outShow;\nfloat outLife;\n",particleUpdaterNoRespawnPS:"\n if (outLife >= lifetime) {\n outLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n visMode = -1.0;\n }\n",particleUpdaterOnStopPS:"\n visMode = outLife < 0.0? -1.0: visMode;\n",particleUpdaterRespawnPS:"\n if (outLife >= lifetime) {\n outLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n visMode = 1.0;\n }\n visMode = outLife < 0.0? 1.0: visMode;\n",particleUpdaterSpherePS:"\nuniform float spawnBoundsSphere;\nuniform float spawnBoundsSphereInnerRatio;\n\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n float rnd4 = fract(rndFactor * 1000.0);\n vec3 norm = normalize(inBounds.xyz - vec3(0.5));\n float r = rnd4 * (1.0 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n#ifndef LOCAL_SPACE\n return emitterPos + norm * r * spawnBoundsSphere;\n#else\n return norm * r * spawnBoundsSphere;\n#endif\n}\n\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n localVelocity += normalize(inBounds - vec3(0.5)) * initialVelocity;\n}\n",particleUpdaterStartPS:"\nfloat saturate(float x) {\n return clamp(x, 0.0, 1.0);\n}\n\nvec3 unpack3NFloats(float src) {\n float r = fract(src);\n float g = fract(src * 256.0);\n float b = fract(src * 65536.0);\n return vec3(r, g, b);\n}\n\nvec3 tex1Dlod_lerp(highp sampler2D tex, vec2 tc, out vec3 w) {\n vec4 a = texture2D(tex, tc);\n vec4 b = texture2D(tex, tc + graphSampleSize);\n float c = fract(tc.x * graphNumSamples);\n\n vec3 unpackedA = unpack3NFloats(a.w);\n vec3 unpackedB = unpack3NFloats(b.w);\n w = mix(unpackedA, unpackedB, c);\n\n return mix(a.xyz, b.xyz, c);\n}\n\n#define HASHSCALE4 vec4(1031, .1030, .0973, .1099)\nvec4 hash41(float p) {\n vec4 p4 = fract(vec4(p) * HASHSCALE4);\n p4 += dot(p4, p4.wzxy+19.19);\n return fract(vec4((p4.x + p4.y)*p4.z, (p4.x + p4.z)*p4.y, (p4.y + p4.z)*p4.w, (p4.z + p4.w)*p4.x));\n}\n\nvoid main(void) {\n if (gl_FragCoord.x > numParticles) discard;\n\n readInput(vUv0.x);\n visMode = inShow? 1.0 : -1.0;\n\n vec4 rndFactor = hash41(gl_FragCoord.x + seed);\n\n float particleRate = rate + rateDiv * rndFactor.x;\n\n outLife = inLife + delta;\n float nlife = clamp(outLife / lifetime, 0.0, 1.0);\n\n vec3 localVelocityDiv;\n vec3 velocityDiv;\n vec3 paramDiv;\n vec3 localVelocity = tex1Dlod_lerp(internalTex0, vec2(nlife, 0), localVelocityDiv);\n vec3 velocity = tex1Dlod_lerp(internalTex1, vec2(nlife, 0), velocityDiv);\n vec3 params = tex1Dlod_lerp(internalTex2, vec2(nlife, 0), paramDiv);\n float rotSpeed = params.x;\n float rotSpeedDiv = paramDiv.y;\n\n vec3 radialParams = tex1Dlod_lerp(internalTex3, vec2(nlife, 0), paramDiv);\n float radialSpeed = radialParams.x;\n float radialSpeedDiv = radialParams.y;\n\n bool respawn = inLife <= 0.0 || outLife >= lifetime;\n inPos = respawn ? calcSpawnPosition(rndFactor.xyz, rndFactor.x) : inPos;\n inAngle = respawn ? mix(startAngle, startAngle2, rndFactor.x) : inAngle;\n\n#ifndef LOCAL_SPACE\n vec3 radialVel = inPos - emitterPos;\n#else\n vec3 radialVel = inPos;\n#endif\n radialVel = (dot(radialVel, radialVel) > 1.0E-8) ? radialSpeed * normalize(radialVel) : vec3(0.0);\n radialVel += (radialSpeedDiv * vec3(2.0) - vec3(1.0)) * radialSpeedDivMult * rndFactor.xyz;\n\n localVelocity += (localVelocityDiv * vec3(2.0) - vec3(1.0)) * localVelocityDivMult * rndFactor.xyz;\n velocity += (velocityDiv * vec3(2.0) - vec3(1.0)) * velocityDivMult * rndFactor.xyz;\n rotSpeed += (rotSpeedDiv * 2.0 - 1.0) * rotSpeedDivMult * rndFactor.y;\n\n addInitialVelocity(localVelocity, rndFactor.xyz);\n\n#ifndef LOCAL_SPACE\n outVel = emitterMatrix * localVelocity + (radialVel + velocity) * emitterScale;\n#else\n outVel = (localVelocity + radialVel) / emitterScale + emitterMatrixInv * velocity;\n#endif\n\n outPos = inPos + outVel * delta;\n outAngle = inAngle + rotSpeed * delta;\n",particle_billboardVS:"\n quadXY = rotate(quadXY, inAngle, rotMatrix);\n vec3 localPos = billboard(particlePos, quadXY);\n",particle_blendAddPS:"\n dBlendModeFogFactor = 0.0;\n rgb *= saturate(gammaCorrectInput(max(a, 0.0)));\n if ((rgb.r + rgb.g + rgb.b) < 0.000001) discard;\n",particle_blendMultiplyPS:"\n rgb = mix(vec3(1.0), rgb, vec3(a));\n if (rgb.r + rgb.g + rgb.b > 2.99) discard;\n",particle_blendNormalPS:"\n if (a < 0.01) discard;\n",particle_cpuVS:"\nattribute vec4 particle_vertexData; // XYZ = world pos, W = life\nattribute vec4 particle_vertexData2; // X = angle, Y = scale, Z = alpha, W = velocity.x\nattribute vec4 particle_vertexData3; // XYZ = particle local pos, W = velocity.y\nattribute float particle_vertexData4; // particle id\n\n// type depends on useMesh property. Start with X = velocity.z, Y = particle ID and for mesh particles proceeds with Z = mesh UV.x, W = mesh UV.y\n#ifndef USE_MESH\nattribute vec2 particle_vertexData5;\n#else\nattribute vec4 particle_vertexData5;\n#endif\n\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n\nuniform float numParticles;\nuniform float lifetime;\nuniform float stretch;\nuniform float seed;\nuniform vec3 wrapBounds;\nuniform vec3 emitterScale;\nuniform vec3 faceTangent;\nuniform vec3 faceBinorm;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform vec3 emitterPos;\n\nvarying vec4 texCoordsAlphaLife;\n\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix)\n{\n float c = cos(pRotation);\n float s = sin(pRotation);\n //vec4 rotationMatrix = vec4(c, -s, s, c);\n\n mat2 m = mat2(c, -s, s, c);\n rotMatrix = m;\n\n return m * quadXY;\n}\n\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY)\n{\n vec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n return pos;\n}\n\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY)\n{\n vec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n return pos;\n}\n\nvoid main(void)\n{\n vec3 particlePos = particle_vertexData.xyz;\n vec3 inPos = particlePos;\n vec3 vertPos = particle_vertexData3.xyz;\n vec3 inVel = vec3(particle_vertexData2.w, particle_vertexData3.w, particle_vertexData5.x);\n\n float id = floor(particle_vertexData4);\n float rndFactor = fract(sin(id + 1.0 + seed));\n vec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\n#ifdef LOCAL_SPACE\n inVel = mat3(matrix_model) * inVel;\n#endif\n vec2 velocityV = normalize((mat3(matrix_view) * inVel).xy); // should be removed by compiler if align/stretch is not used\n\n vec2 quadXY = vertPos.xy;\n\n#ifdef USE_MESH\n texCoordsAlphaLife = vec4(particle_vertexData5.zw, particle_vertexData2.z, particle_vertexData.w);\n#else\n texCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, particle_vertexData2.z, particle_vertexData.w);\n#endif\n mat2 rotMatrix;\n\n float inAngle = particle_vertexData2.x;\n vec3 particlePosMoved = vec3(0.0);\n vec3 meshLocalPos = particle_vertexData3.xyz;\n",particle_cpu_endVS:"\n localPos *= particle_vertexData2.y * emitterScale;\n localPos += particlePos;\n\n gl_Position = matrix_viewProjection * vec4(localPos, 1.0);\n",particle_customFaceVS:"\n quadXY = rotate(quadXY, inAngle, rotMatrix);\n vec3 localPos = customFace(particlePos, quadXY);\n",particle_endPS:"\n rgb = addFog(rgb);\n rgb = toneMap(rgb);\n rgb = gammaCorrectOutput(rgb);\n gl_FragColor = vec4(rgb, a);\n}\n",particle_endVS:"\n localPos *= scale * emitterScale;\n localPos += particlePos;\n\n #ifdef SCREEN_SPACE\n gl_Position = vec4(localPos.x, localPos.y, 0.0, 1.0);\n #else\n gl_Position = matrix_viewProjection * vec4(localPos.xyz, 1.0);\n #endif\n",particle_halflambertPS:"\n vec3 negNormal = normal*0.5+0.5;\n vec3 posNormal = -normal*0.5+0.5;\n negNormal *= negNormal;\n posNormal *= posNormal;\n",particle_initVS:"\nattribute vec4 particle_vertexData; // XYZ = particle position, W = particle ID + random factor\n#ifdef USE_MESH\nattribute vec2 particle_uv; // mesh UV\n#endif\n\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nuniform float numParticles, numParticlesPot;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nuniform float stretch;\nuniform vec3 wrapBounds;\nuniform vec3 emitterScale, emitterPos, faceTangent, faceBinorm;\nuniform float rate, rateDiv, lifetime, deltaRandomnessStatic, scaleDivMult, alphaDivMult, seed, delta;\nuniform sampler2D particleTexOUT, particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\n\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n\nvarying vec4 texCoordsAlphaLife;\n\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\n",particle_lambertPS:"\n vec3 negNormal = max(normal, vec3(0.0));\n vec3 posNormal = max(-normal, vec3(0.0));\n",particle_lightingPS:"\n vec3 light = negNormal.x*lightCube[0] + posNormal.x*lightCube[1] +\n negNormal.y*lightCube[2] + posNormal.y*lightCube[3] +\n negNormal.z*lightCube[4] + posNormal.z*lightCube[5];\n\n rgb *= light;\n",particle_localShiftVS:"\n particlePos = (matrix_model * vec4(particlePos, 1.0)).xyz;\n",particle_meshVS:"\n vec3 localPos = meshLocalPos;\n localPos.xy = rotate(localPos.xy, inAngle, rotMatrix);\n localPos.yz = rotate(localPos.yz, inAngle, rotMatrix);\n\n billboard(particlePos, quadXY);\n",particle_normalVS:"\n Normal = normalize(localPos + matrix_viewInverse[2].xyz);\n",particle_normalMapPS:"\n vec3 normalMap = normalize(texture2D(normalMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)).xyz * 2.0 - 1.0);\n vec3 normal = ParticleMat * normalMap;\n",particle_pointAlongVS:"\n inAngle = atan(velocityV.x, velocityV.y); // not the fastest way, but easier to plug in; TODO: create rot matrix right from vectors\n\n",particle_softPS:"\n float depth = getLinearScreenDepth();\n float particleDepth = vDepth;\n float depthDiff = saturate(abs(particleDepth - depth) * softening);\n a *= depthDiff;\n",particle_softVS:"\n vDepth = getLinearDepth(localPos);\n",particle_stretchVS:"\n vec3 moveDir = inVel * stretch;\n vec3 posPrev = particlePos - moveDir;\n posPrev += particlePosMoved;\n\n vec2 centerToVertexV = normalize((mat3(matrix_view) * localPos).xy);\n\n float interpolation = dot(-velocityV, centerToVertexV) * 0.5 + 0.5;\n\n particlePos = mix(particlePos, posPrev, interpolation);\n",particle_TBNVS:"\n mat3 rot3 = mat3(rotMatrix[0][0], rotMatrix[0][1], 0.0, rotMatrix[1][0], rotMatrix[1][1], 0.0, 0.0, 0.0, 1.0);\n ParticleMat = mat3(-matrix_viewInverse[0].xyz, -matrix_viewInverse[1].xyz, matrix_viewInverse[2].xyz) * rot3;\n",particle_wrapVS:"\n vec3 origParticlePos = particlePos;\n particlePos -= matrix_model[3].xyz;\n particlePos = mod(particlePos, wrapBounds) - wrapBounds * 0.5;\n particlePos += matrix_model[3].xyz;\n particlePosMoved = particlePos - origParticlePos;\n",reflDirPS:"\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n dReflDirW = normalize(-reflect(viewDir, worldNormal));\n}\n",reflDirAnisoPS:"\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n float roughness = sqrt(1.0 - min(gloss, 1.0));\n float anisotropy = material_anisotropy * roughness;\n vec3 anisotropicDirection = anisotropy >= 0.0 ? tbn[1] : tbn[0];\n vec3 anisotropicTangent = cross(anisotropicDirection, viewDir);\n vec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection);\n vec3 bentNormal = normalize(mix(normalize(worldNormal), normalize(anisotropicNormal), anisotropy));\n dReflDirW = reflect(-viewDir, bentNormal);\n}\n",reflectionCCPS:"\n#ifdef LIT_CLEARCOAT\nvoid addReflectionCC(vec3 reflDir, float gloss) {\n ccReflection += calcReflection(reflDir, gloss);\n}\n#endif\n",reflectionCubePS:"\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 reflDir, float gloss) {\n vec3 lookupVec = fixSeams(cubeMapProject(reflDir));\n lookupVec.x *= -1.0;\n return $DECODE(textureCube(texture_cubeMap, lookupVec));\n}\n\nvoid addReflection(vec3 reflDir, float gloss) { \n dReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n",reflectionEnvHQPS:"\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 reflDir, float gloss) {\n vec3 dir = cubeMapProject(reflDir) * vec3(-1.0, 1.0, 1.0);\n vec2 uv = toSphericalUv(dir);\n\n // calculate roughness level\n float level = saturate(1.0 - gloss) * 5.0;\n float ilevel = floor(level);\n float flevel = level - ilevel;\n\n vec3 sharp = $DECODE_CUBEMAP(textureCube(texture_cubeMap, fixSeams(dir)));\n vec3 roughA = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel)));\n vec3 roughB = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\n return processEnvironment(mix(sharp, mix(roughA, roughB, flevel), min(level, 1.0)));\n}\n\nvoid addReflection(vec3 reflDir, float gloss) { \n dReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n",reflectionEnvPS:"\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nuniform float material_reflectivity;\n\n// calculate mip level for shiny reflection given equirect coords uv.\nfloat shinyMipLevel(vec2 uv) {\n vec2 dx = dFdx(uv);\n vec2 dy = dFdy(uv);\n\n // calculate second dF at 180 degrees\n vec2 uv2 = vec2(fract(uv.x + 0.5), uv.y);\n vec2 dx2 = dFdx(uv2);\n vec2 dy2 = dFdy(uv2);\n\n // calculate min of both sets of dF to handle discontinuity at the azim edge\n float maxd = min(max(dot(dx, dx), dot(dy, dy)), max(dot(dx2, dx2), dot(dy2, dy2)));\n\n return clamp(0.5 * log2(maxd) - 1.0 + textureBias, 0.0, 5.0);\n}\n\nvec3 calcReflection(vec3 reflDir, float gloss) {\n vec3 dir = cubeMapProject(reflDir) * vec3(-1.0, 1.0, 1.0);\n vec2 uv = toSphericalUv(dir);\n\n // calculate roughness level\n float level = saturate(1.0 - gloss) * 5.0;\n float ilevel = floor(level);\n\n // accessing the shiny (top level) reflection - perform manual mipmap lookup\n float level2 = shinyMipLevel(uv * atlasSize);\n float ilevel2 = floor(level2);\n\n vec2 uv0, uv1;\n float weight;\n if (ilevel == 0.0) {\n uv0 = mapShinyUv(uv, ilevel2);\n uv1 = mapShinyUv(uv, ilevel2 + 1.0);\n weight = level2 - ilevel2;\n } else {\n // accessing rough reflection - just sample the same part twice\n uv0 = uv1 = mapRoughnessUv(uv, ilevel);\n weight = 0.0;\n }\n\n vec3 linearA = $DECODE(texture2D(texture_envAtlas, uv0));\n vec3 linearB = $DECODE(texture2D(texture_envAtlas, uv1));\n vec3 linear0 = mix(linearA, linearB, weight);\n vec3 linear1 = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\n return processEnvironment(mix(linear0, linear1, level - ilevel));\n}\n\nvoid addReflection(vec3 reflDir, float gloss) { \n dReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n",reflectionSpherePS:"\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 reflDir, float gloss) {\n vec3 reflDirV = (mat3(matrix_view) * reflDir).xyz;\n\n float m = 2.0 * sqrt( dot(reflDirV.xy, reflDirV.xy) + (reflDirV.z+1.0)*(reflDirV.z+1.0) );\n vec2 sphereMapUv = reflDirV.xy / m + 0.5;\n\n return $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\n\nvoid addReflection(vec3 reflDir, float gloss) { \n dReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n",reflectionSphereLowPS:"\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 reflDir, float gloss) {\n vec3 reflDirV = vNormalV;\n\n vec2 sphereMapUv = reflDirV.xy * 0.5 + 0.5;\n return $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\n\nvoid addReflection(vec3 reflDir, float gloss) { \n dReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n",reflectionSheenPS:"\n\nvoid addReflectionSheen(vec3 worldNormal, vec3 viewDir, float gloss) {\n float NoV = dot(worldNormal, viewDir);\n float alphaG = gloss * gloss;\n\n // Avoid using a LUT and approximate the values analytically\n float a = gloss < 0.25 ? -339.2 * alphaG + 161.4 * gloss - 25.9 : -8.48 * alphaG + 14.3 * gloss - 9.95;\n float b = gloss < 0.25 ? 44.0 * alphaG - 23.7 * gloss + 3.26 : 1.97 * alphaG - 3.27 * gloss + 0.72;\n float DG = exp( a * NoV + b ) + ( gloss < 0.25 ? 0.0 : 0.1 * ( gloss - 0.25 ) );\n sReflection += calcReflection(worldNormal, 0.0) * saturate(DG);\n}\n",refractionCubePS:"\nvec3 refract2(vec3 viewVec, vec3 normal, float IOR) {\n float vn = dot(viewVec, normal);\n float k = 1.0 - IOR * IOR * (1.0 - vn * vn);\n vec3 refrVec = IOR * viewVec - (IOR * vn + sqrt(k)) * normal;\n return refrVec;\n}\n\nvoid addRefraction(\n vec3 worldNormal, \n vec3 viewDir, \n float thickness, \n float gloss, \n vec3 specularity, \n vec3 albedo, \n float transmission,\n float refractionIndex\n#if defined(LIT_IRIDESCENCE)\n , vec3 iridescenceFresnel,\n IridescenceArgs iridescence\n#endif \n) {\n // use same reflection code with refraction vector\n vec4 tmpRefl = dReflection;\n vec3 reflectionDir = refract2(-viewDir, worldNormal, refractionIndex);\n dReflection = vec4(0);\n addReflection(reflectionDir, gloss);\n dDiffuseLight = mix(dDiffuseLight, dReflection.rgb * albedo, transmission);\n dReflection = tmpRefl;\n}\n",refractionDynamicPS:"\nuniform float material_invAttenuationDistance;\nuniform vec3 material_attenuation;\n\nvoid addRefraction(\n vec3 worldNormal, \n vec3 viewDir, \n float thickness, \n float gloss, \n vec3 specularity, \n vec3 albedo, \n float transmission,\n float refractionIndex\n#if defined(LIT_IRIDESCENCE)\n , vec3 iridescenceFresnel,\n IridescenceArgs iridescence\n#endif\n) {\n\n // Extract scale from the model transform\n vec3 modelScale;\n modelScale.x = length(vec3(matrix_model[0].xyz));\n modelScale.y = length(vec3(matrix_model[1].xyz));\n modelScale.z = length(vec3(matrix_model[2].xyz));\n\n // Calculate the refraction vector, scaled by the thickness and scale of the object\n vec3 refractionVector = normalize(refract(-viewDir, worldNormal, refractionIndex)) * thickness * modelScale;\n\n // The refraction point is the entry point + vector to exit point\n vec4 pointOfRefraction = vec4(vPositionW + refractionVector, 1.0);\n\n // Project to texture space so we can sample it\n vec4 projectionPoint = matrix_viewProjection * pointOfRefraction;\n\n // use built-in getGrabScreenPos function to convert screen position to grab texture uv coords\n vec2 uv = getGrabScreenPos(projectionPoint);\n\n #ifdef SUPPORTS_TEXLOD\n // Use IOR and roughness to select mip\n float iorToRoughness = (1.0 - gloss) * clamp((1.0 / refractionIndex) * 2.0 - 2.0, 0.0, 1.0);\n float refractionLod = log2(uScreenSize.x) * iorToRoughness;\n vec3 refraction = texture2DLodEXT(uSceneColorMap, uv, refractionLod).rgb;\n #else\n vec3 refraction = texture2D(uSceneColorMap, uv).rgb;\n #endif\n\n // Transmittance is our final refraction color\n vec3 transmittance;\n if (material_invAttenuationDistance != 0.0)\n {\n vec3 attenuation = -log(material_attenuation) * material_invAttenuationDistance;\n transmittance = exp(-attenuation * length(refractionVector));\n }\n else\n {\n transmittance = refraction;\n }\n\n // Apply fresnel effect on refraction\n vec3 fresnel = vec3(1.0) - \n getFresnel(\n dot(viewDir, worldNormal), \n gloss, \n specularity\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel,\n iridescence\n #endif\n );\n dDiffuseLight = mix(dDiffuseLight, refraction * transmittance * fresnel, transmission);\n}\n",reprojectPS:"\n// This shader requires the following #DEFINEs:\n//\n// PROCESS_FUNC - must be one of reproject, prefilter\n// DECODE_FUNC - must be one of decodeRGBM, decodeRGBE, decodeGamma or decodeLinear\n// ENCODE_FUNC - must be one of encodeRGBM, encodeRGBE, encideGamma or encodeLinear\n// SOURCE_FUNC - must be one of sampleCubemap, sampleEquirect, sampleOctahedral\n// TARGET_FUNC - must be one of getDirectionCubemap, getDirectionEquirect, getDirectionOctahedral\n//\n// When filtering:\n// NUM_SAMPLES - number of samples\n// NUM_SAMPLES_SQRT - sqrt of number of samples\n\nvarying vec2 vUv0;\n\n// source\n#ifdef CUBEMAP_SOURCE\n uniform samplerCube sourceCube;\n#else\n uniform sampler2D sourceTex;\n#endif\n\n#ifdef USE_SAMPLES_TEX\n // samples\n uniform sampler2D samplesTex;\n uniform vec2 samplesTexInverseSize;\n#endif\n\n// params:\n// x - target cubemap face 0..6\n// y - specular power (when prefiltering)\n// z - source cubemap seam scale (0 to disable)\n// w - target cubemap size for seam calc (0 to disable)\nuniform vec4 params;\n\n// params2:\n// x - target image total pixels\n// y - source cubemap size\nuniform vec2 params2;\n\nfloat targetFace() { return params.x; }\nfloat specularPower() { return params.y; }\nfloat sourceCubeSeamScale() { return params.z; }\nfloat targetCubeSeamScale() { return params.w; }\n\nfloat targetTotalPixels() { return params2.x; }\nfloat sourceTotalPixels() { return params2.y; }\n\nfloat PI = 3.141592653589793;\n\nfloat saturate(float x) {\n return clamp(x, 0.0, 1.0);\n}\n\n"+Ya+"\n"+Ka+'\n\n//-- supported projections\n\nvec3 modifySeams(vec3 dir, float scale) {\n vec3 adir = abs(dir);\n float M = max(max(adir.x, adir.y), adir.z);\n return dir / M * vec3(\n adir.x == M ? 1.0 : scale,\n adir.y == M ? 1.0 : scale,\n adir.z == M ? 1.0 : scale\n );\n}\n\nvec2 toSpherical(vec3 dir) {\n return vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\n\nvec3 fromSpherical(vec2 uv) {\n return vec3(cos(uv.y) * sin(uv.x),\n sin(uv.y),\n cos(uv.y) * cos(uv.x));\n}\n\nvec3 getDirectionEquirect() {\n return fromSpherical((vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0) * vec2(PI, PI * 0.5));\n}\n\n// octahedral code, based on http://jcgt.org/published/0003/02/01\n// "Survey of Efficient Representations for Independent Unit Vectors" by Cigolle, Donow, Evangelakos, Mara, McGuire, Meyer\n\nfloat signNotZero(float k){\n return(k >= 0.0) ? 1.0 : -1.0;\n}\n\nvec2 signNotZero(vec2 v) {\n return vec2(signNotZero(v.x), signNotZero(v.y));\n}\n\n// Returns a unit vector. Argument o is an octahedral vector packed via octEncode, on the [-1, +1] square\nvec3 octDecode(vec2 o) {\n vec3 v = vec3(o.x, 1.0 - abs(o.x) - abs(o.y), o.y);\n if (v.y < 0.0) {\n v.xz = (1.0 - abs(v.zx)) * signNotZero(v.xz);\n }\n return normalize(v);\n}\n\nvec3 getDirectionOctahedral() {\n return octDecode(vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0);\n}\n\n// Assumes that v is a unit vector. The result is an octahedral vector on the [-1, +1] square\nvec2 octEncode(in vec3 v) {\n float l1norm = abs(v.x) + abs(v.y) + abs(v.z);\n vec2 result = v.xz * (1.0 / l1norm);\n if (v.y < 0.0) {\n result = (1.0 - abs(result.yx)) * signNotZero(result.xy);\n }\n return result;\n}\n\n/////////////////////////////////////////////////////////////////////\n\n#ifdef CUBEMAP_SOURCE\n vec4 sampleCubemap(vec3 dir) {\n return textureCube(sourceCube, modifySeams(dir, 1.0 - sourceCubeSeamScale()));\n }\n\n vec4 sampleCubemap(vec2 sph) {\n return sampleCubemap(fromSpherical(sph));\n}\n\n vec4 sampleCubemap(vec3 dir, float mipLevel) {\n return textureCubeLodEXT(sourceCube, modifySeams(dir, 1.0 - exp2(mipLevel) * sourceCubeSeamScale()), mipLevel);\n }\n\n vec4 sampleCubemap(vec2 sph, float mipLevel) {\n return sampleCubemap(fromSpherical(sph), mipLevel);\n }\n#else\n\n vec4 sampleEquirect(vec2 sph) {\n vec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n return texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n }\n\n vec4 sampleEquirect(vec3 dir) {\n return sampleEquirect(toSpherical(dir));\n }\n\n vec4 sampleEquirect(vec2 sph, float mipLevel) {\n vec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n return texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n }\n\n vec4 sampleEquirect(vec3 dir, float mipLevel) {\n return sampleEquirect(toSpherical(dir), mipLevel);\n }\n\n vec4 sampleOctahedral(vec3 dir) {\n vec2 uv = octEncode(dir) * 0.5 + 0.5;\n return texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n }\n\n vec4 sampleOctahedral(vec2 sph) {\n return sampleOctahedral(fromSpherical(sph));\n }\n\n vec4 sampleOctahedral(vec3 dir, float mipLevel) {\n vec2 uv = octEncode(dir) * 0.5 + 0.5;\n return texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n }\n\n vec4 sampleOctahedral(vec2 sph, float mipLevel) {\n return sampleOctahedral(fromSpherical(sph), mipLevel);\n }\n\n#endif\n\nvec3 getDirectionCubemap() {\n vec2 st = vUv0 * 2.0 - 1.0;\n float face = targetFace();\n\n vec3 vec;\n if (face == 0.0) {\n vec = vec3(1, -st.y, -st.x);\n } else if (face == 1.0) {\n vec = vec3(-1, -st.y, st.x);\n } else if (face == 2.0) {\n vec = vec3(st.x, 1, st.y);\n } else if (face == 3.0) {\n vec = vec3(st.x, -1, -st.y);\n } else if (face == 4.0) {\n vec = vec3(st.x, -st.y, 1);\n } else {\n vec = vec3(-st.x, -st.y, -1);\n }\n\n return normalize(modifySeams(vec, 1.0 / (1.0 - targetCubeSeamScale())));\n}\n\nmat3 matrixFromVector(vec3 n) { // frisvad\n float a = 1.0 / (1.0 + n.z);\n float b = -n.x * n.y * a;\n vec3 b1 = vec3(1.0 - n.x * n.x * a, b, -n.x);\n vec3 b2 = vec3(b, 1.0 - n.y * n.y * a, -n.y);\n return mat3(b1, b2, n);\n}\n\nmat3 matrixFromVectorSlow(vec3 n) {\n vec3 up = (1.0 - abs(n.y) <= 0.0000001) ? vec3(0.0, 0.0, n.y > 0.0 ? 1.0 : -1.0) : vec3(0.0, 1.0, 0.0);\n vec3 x = normalize(cross(up, n));\n vec3 y = cross(n, x);\n return mat3(x, y, n);\n}\n\nvec4 reproject() {\n if (NUM_SAMPLES <= 1) {\n // single sample\n return ENCODE_FUNC(DECODE_FUNC(SOURCE_FUNC(TARGET_FUNC())));\n } else {\n // multi sample\n vec3 t = TARGET_FUNC();\n vec3 tu = dFdx(t);\n vec3 tv = dFdy(t);\n\n vec3 result = vec3(0.0);\n for (float u = 0.0; u < NUM_SAMPLES_SQRT; ++u) {\n for (float v = 0.0; v < NUM_SAMPLES_SQRT; ++v) {\n result += DECODE_FUNC(SOURCE_FUNC(normalize(t +\n tu * (u / NUM_SAMPLES_SQRT - 0.5) +\n tv * (v / NUM_SAMPLES_SQRT - 0.5))));\n }\n }\n return ENCODE_FUNC(result / (NUM_SAMPLES_SQRT * NUM_SAMPLES_SQRT));\n }\n}\n\nvec4 unpackFloat = vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0);\n\n#ifdef USE_SAMPLES_TEX\n void unpackSample(int i, out vec3 L, out float mipLevel) {\n float u = (float(i * 4) + 0.5) * samplesTexInverseSize.x;\n float v = (floor(u) + 0.5) * samplesTexInverseSize.y;\n\n vec4 raw;\n raw.x = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n raw.y = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n raw.z = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n raw.w = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat);\n\n L.xyz = raw.xyz * 2.0 - 1.0;\n mipLevel = raw.w * 8.0;\n }\n\n // convolve an environment given pre-generated samples\n vec4 prefilterSamples() {\n // construct vector space given target direction\n mat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\n vec3 L;\n float mipLevel;\n\n vec3 result = vec3(0.0);\n float totalWeight = 0.0;\n for (int i = 0; i < NUM_SAMPLES; ++i) {\n unpackSample(i, L, mipLevel);\n result += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel)) * L.z;\n totalWeight += L.z;\n }\n\n return ENCODE_FUNC(result / totalWeight);\n }\n\n // unweighted version of prefilterSamples\n vec4 prefilterSamplesUnweighted() {\n // construct vector space given target direction\n mat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\n vec3 L;\n float mipLevel;\n\n vec3 result = vec3(0.0);\n float totalWeight = 0.0;\n for (int i = 0; i < NUM_SAMPLES; ++i) {\n unpackSample(i, L, mipLevel);\n result += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel));\n }\n\n return ENCODE_FUNC(result / float(NUM_SAMPLES));\n }\n#endif\n\nvoid main(void) {\n gl_FragColor = PROCESS_FUNC();\n}\n',screenDepthPS:"\nuniform highp sampler2D uSceneDepthMap;\n\n#ifndef SCREENSIZE\n#define SCREENSIZE\nuniform vec4 uScreenSize;\n#endif\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\n#ifndef LINEARIZE_DEPTH\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params; // x: 1 / camera_far, y: camera_far, z: camera_near, w: is_ortho\n#endif\n\n#define LINEARIZE_DEPTH\n#ifdef GL2\nfloat linearizeDepth(float z) {\n if (camera_params.w == 0.0)\n return (camera_params.z * camera_params.y) / (camera_params.y + z * (camera_params.z - camera_params.y));\n else\n return camera_params.z + z * (camera_params.y - camera_params.z);\n}\n#else // GL2\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n return dot(rgbaDepth, bitShift);\n}\n#endif\n#endif\n#endif // LINEARIZE_DEPTH\n\n// Retrieves rendered linear camera depth by UV\nfloat getLinearScreenDepth(vec2 uv) {\n #ifdef GL2\n return linearizeDepth(texture2D(uSceneDepthMap, uv).r);\n #else\n return unpackFloat(texture2D(uSceneDepthMap, uv)) * camera_params.y;\n #endif\n}\n\n#ifndef VERTEXSHADER\n// Retrieves rendered linear camera depth under the current pixel\nfloat getLinearScreenDepth() {\n vec2 uv = gl_FragCoord.xy * uScreenSize.zw;\n return getLinearScreenDepth(uv);\n}\n#endif\n\n// Generates linear camera depth for the given world position\nfloat getLinearDepth(vec3 pos) {\n return -(matrix_view * vec4(pos, 1.0)).z;\n}\n",shadowCascadesPS:"\nconst float maxCascades = 4.0;\n\n// shadow matrix for selected cascade\nmat4 cascadeShadowMat;\n\n// function which selects a shadow projection matrix based on cascade distances \nvoid getShadowCascadeMatrix(mat4 shadowMatrixPalette[4], float shadowCascadeDistances[4], float shadowCascadeCount) {\n\n // depth in 0 .. far plane range\n float depth = 1.0 / gl_FragCoord.w;\n\n // find cascade index based on the depth (loop as there is no per component vec compare operator in webgl)\n float cascadeIndex = 0.0;\n for (float i = 0.0; i < maxCascades; i++) {\n if (depth < shadowCascadeDistances[int(i)]) {\n cascadeIndex = i;\n break;\n }\n }\n\n // limit to actual number of used cascades\n cascadeIndex = min(cascadeIndex, shadowCascadeCount - 1.0);\n\n // pick shadow matrix\n #ifdef GL2\n cascadeShadowMat = shadowMatrixPalette[int(cascadeIndex)];\n #else\n // webgl 1 does not allow non-cost index array lookup\n if (cascadeIndex == 0.0) {\n cascadeShadowMat = shadowMatrixPalette[0];\n }\n else if (cascadeIndex == 1.0) {\n cascadeShadowMat = shadowMatrixPalette[1];\n }\n else if (cascadeIndex == 2.0) {\n cascadeShadowMat = shadowMatrixPalette[2];\n }\n else {\n cascadeShadowMat = shadowMatrixPalette[3];\n }\n #endif\n}\n\nvoid fadeShadow(float shadowCascadeDistances[4]) { \n\n // if the pixel is past the shadow distance, remove shadow\n // this enforces straight line instead of corner of shadow which moves when camera rotates \n float depth = 1.0 / gl_FragCoord.w;\n if (depth > shadowCascadeDistances[int(maxCascades - 1.0)]) {\n dShadowCoord.z = -9999999.0;\n }\n}\n",shadowEVSMPS:"\nfloat VSM$(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n vec3 moments = texture2D(tex, texCoords).xyz;\n return calculateEVSM(moments, Z, vsmBias, exponent);\n}\n\nfloat getShadowVSM$(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n return VSM$(shadowMap, shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\n\nfloat getShadowSpotVSM$(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n return VSM$(shadowMap, shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n",shadowEVSMnPS:"\nfloat VSM$(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n float pixelSize = 1.0 / resolution;\n texCoords -= vec2(pixelSize);\n vec3 s00 = texture2D(tex, texCoords).xyz;\n vec3 s10 = texture2D(tex, texCoords + vec2(pixelSize, 0)).xyz;\n vec3 s01 = texture2D(tex, texCoords + vec2(0, pixelSize)).xyz;\n vec3 s11 = texture2D(tex, texCoords + vec2(pixelSize)).xyz;\n vec2 fr = fract(texCoords * resolution);\n vec3 h0 = mix(s00, s10, fr.x);\n vec3 h1 = mix(s01, s11, fr.x);\n vec3 moments = mix(h0, h1, fr.y);\n return calculateEVSM(moments, Z, vsmBias, exponent);\n}\n\nfloat getShadowVSM$(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n return VSM$(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\n\nfloat getShadowSpotVSM$(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n return VSM$(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n",shadowPCSSPS:"\n\n/**\n * PCSS is a shadow sampling method that provides contact hardening soft shadows. \n * Based on: \n * - https://www.gamedev.net/tutorials/programming/graphics/effect-area-light-shadows-part-1-pcss-r4971/\n * - https://github.com/pboechat/PCSS \n */\n\n\n#define PCSS_SAMPLE_COUNT 16\nuniform float pcssDiskSamples[PCSS_SAMPLE_COUNT];\nuniform float pcssSphereSamples[PCSS_SAMPLE_COUNT];\n\nvec2 vogelDisk(int sampleIndex, float count, float phi, float r) {\n const float GoldenAngle = 2.4;\n float theta = float(sampleIndex) * GoldenAngle + phi;\n\n float sine = sin(theta);\n float cosine = cos(theta);\n return vec2(r * cosine, r * sine);\n}\n\nvec3 vogelSphere(int sampleIndex, float count, float phi, float r) {\n const float GoldenAngle = 2.4;\n float theta = float(sampleIndex) * GoldenAngle + phi;\n\n float weight = float(sampleIndex) / count;\n return vec3(cos(theta) * r, weight, sin(theta) * r);\n}\n\nfloat noise(vec2 screenPos) {\n const float PHI = 1.61803398874989484820459; // Φ = Golden Ratio \n return fract(tan(distance(screenPos * PHI, screenPos)) * screenPos.x);\n}\n\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n return dot(rgbaDepth, bitShift);\n}\n#endif\n\nfloat viewSpaceDepth(float depth, mat4 invProjection) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpace = vec4(0.0, 0.0, z, 1.0);\n vec4 viewSpace = invProjection * clipSpace;\n return viewSpace.z;\n}\n\nfloat PCSSBlockerDistance(TEXTURE_ACCEPT(shadowMap), vec2 sampleCoords[PCSS_SAMPLE_COUNT], vec2 shadowCoords, vec2 searchSize, float z) {\n\n float blockers = 0.0;\n float averageBlocker = 0.0;\n for (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n vec2 offset = sampleCoords[i] * searchSize;\n vec2 sampleUV = shadowCoords + offset;\n\n #ifdef GL2\n float blocker = textureLod(shadowMap, sampleUV, 0.0).r;\n #else // GL1\n float blocker = unpackFloat(texture2D(shadowMap, sampleUV));\n #endif \n float isBlocking = step(blocker, z);\n blockers += isBlocking;\n averageBlocker += blocker * isBlocking;\n }\n\n if (blockers > 0.0)\n return averageBlocker /= blockers;\n return -1.0;\n}\n\nfloat PCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoords, vec4 cameraParams, vec2 shadowSearchArea) {\n float receiverDepth = shadowCoords.z;\n#ifndef GL2\n // If using packed depth on GL1, we need to normalize to get the correct receiver depth\n receiverDepth *= 1.0 / (cameraParams.y - cameraParams.z);\n#endif\n\n vec2 samplePoints[PCSS_SAMPLE_COUNT];\n float noise = noise( gl_FragCoord.xy ) * 2.0 * PI;\n for (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n float pcssPresample = pcssDiskSamples[i];\n samplePoints[i] = vogelDisk(i, float(PCSS_SAMPLE_COUNT), noise, pcssPresample);\n }\n\n float averageBlocker = PCSSBlockerDistance(TEXTURE_PASS(shadowMap), samplePoints, shadowCoords.xy, shadowSearchArea, receiverDepth);\n if (averageBlocker == -1.0) {\n return 1.0;\n } else {\n\n vec2 filterRadius = ((receiverDepth - averageBlocker) / averageBlocker) * shadowSearchArea * cameraParams.x;\n\n float shadow = 0.0;\n\n for (int i = 0; i < PCSS_SAMPLE_COUNT; i ++)\n {\n vec2 sampleUV = samplePoints[i] * filterRadius;\n sampleUV = shadowCoords.xy + sampleUV;\n\n #ifdef GL2\n float depth = textureLod(shadowMap, sampleUV, 0.0).r;\n #else // GL1\n float depth = unpackFloat(texture2D(shadowMap, sampleUV));\n #endif\n shadow += step(receiverDepth, depth);\n }\n return shadow / float(PCSS_SAMPLE_COUNT);\n } \n}\n\nfloat PCSSCubeBlockerDistance(samplerCube shadowMap, vec3 lightDirNorm, vec3 samplePoints[PCSS_SAMPLE_COUNT], float z, float shadowSearchArea) {\n float blockers = 0.0;\n float averageBlocker = 0.0;\n for (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n vec3 sampleDir = lightDirNorm + samplePoints[i] * shadowSearchArea;\n sampleDir = normalize(sampleDir);\n\n #ifdef GL2\n float blocker = textureCubeLodEXT(shadowMap, sampleDir, 0.0).r;\n #else // GL1\n float blocker = unpackFloat(textureCube(shadowMap, sampleDir));\n #endif\n float isBlocking = step(blocker, z);\n blockers += isBlocking;\n averageBlocker += blocker * isBlocking;\n }\n\n if (blockers > 0.0)\n return averageBlocker /= float(blockers);\n return -1.0;\n}\n\nfloat PCSSCube(samplerCube shadowMap, vec4 shadowParams, vec3 shadowCoords, vec4 cameraParams, float shadowSearchArea, vec3 lightDir) {\n \n vec3 samplePoints[PCSS_SAMPLE_COUNT];\n float noise = noise( gl_FragCoord.xy ) * 2.0 * PI;\n for (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n float r = pcssSphereSamples[i];\n samplePoints[i] = vogelSphere(i, float(PCSS_SAMPLE_COUNT), noise, r);\n }\n\n float receiverDepth = length(lightDir) * shadowParams.w + shadowParams.z;\n vec3 lightDirNorm = normalize(lightDir);\n \n float averageBlocker = PCSSCubeBlockerDistance(shadowMap, lightDirNorm, samplePoints, receiverDepth, shadowSearchArea);\n if (averageBlocker == -1.0) {\n return 1.0;\n } else {\n\n float filterRadius = ((receiverDepth - averageBlocker) / averageBlocker) * shadowSearchArea;\n\n float shadow = 0.0;\n for (int i = 0; i < PCSS_SAMPLE_COUNT; i++)\n {\n vec3 offset = samplePoints[i] * filterRadius;\n vec3 sampleDir = lightDirNorm + offset;\n sampleDir = normalize(sampleDir);\n\n #ifdef GL2\n float depth = textureCubeLodEXT(shadowMap, sampleDir, 0.0).r;\n #else // GL1\n float depth = unpackFloat(textureCube(shadowMap, sampleDir));\n #endif\n shadow += step(receiverDepth, depth);\n }\n return shadow / float(PCSS_SAMPLE_COUNT);\n }\n}\n\nfloat getShadowPointPCSS(samplerCube shadowMap, vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n return PCSSCube(shadowMap, shadowParams, shadowCoord, cameraParams, shadowSearchArea.x, lightDir);\n}\n\nfloat getShadowSpotPCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n return PCSS(TEXTURE_PASS(shadowMap), shadowCoord, cameraParams, shadowSearchArea);\n}\n\nfloat getShadowPCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n return PCSS(TEXTURE_PASS(shadowMap), shadowCoord, cameraParams, shadowSearchArea);\n}\n\n",shadowSampleCoordPS:"\n\nvec3 getShadowSampleCoord$LIGHT(mat4 shadowTransform, vec4 shadowParams, vec3 worldPosition, vec3 lightPos, inout vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\n vec3 surfacePosition = worldPosition;\n\n#ifdef SHADOW_SAMPLE_POINT\n #ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n float distScale = length(lightDir);\n surfacePosition = worldPosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n lightDir = surfacePosition - lightPos;\n return lightDir;\n #endif\n#else\n #ifdef SHADOW_SAMPLE_SOURCE_ZBUFFER\n #ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n surfacePosition = worldPosition + normal * shadowParams.y;\n #endif\n #else\n #ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n #ifdef SHADOW_SAMPLE_ORTHO\n float distScale = 1.0;\n #else\n float distScale = abs(dot(vPositionW - lightPos, lightDirNorm));\n #endif\n surfacePosition = worldPosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n #endif\n #endif\n\n vec4 positionInShadowSpace = shadowTransform * vec4(surfacePosition, 1.0);\n #ifdef SHADOW_SAMPLE_ORTHO\n positionInShadowSpace.z = saturate(positionInShadowSpace.z) - 0.0001;\n #else\n #ifdef SHADOW_SAMPLE_SOURCE_ZBUFFER\n positionInShadowSpace.xyz /= positionInShadowSpace.w;\n #else\n positionInShadowSpace.xy /= positionInShadowSpace.w;\n positionInShadowSpace.z = length(lightDir) * shadowParams.w;\n #endif\n #endif\n\n #ifdef SHADOW_SAMPLE_Z_BIAS\n positionInShadowSpace.z += getShadowBias(shadowParams.x, shadowParams.z);\n #endif\n surfacePosition = positionInShadowSpace.xyz;\n#endif\n\n return surfacePosition;\n}\n",shadowStandardPS:"\nvec3 lessThan2(vec3 a, vec3 b) {\n return clamp((b - a)*1000.0, 0.0, 1.0); // softer version\n}\n\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\n float unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n return dot(rgbaDepth, bitShift);\n }\n#endif\n\n// ----- Direct/Spot Sampling -----\n\n#ifdef GL2\n\nfloat _getShadowPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n float z = shadowCoord.z;\n vec2 uv = shadowCoord.xy * shadowParams.x; // 1 unit - 1 texel\n float shadowMapSizeInv = 1.0 / shadowParams.x;\n vec2 base_uv = floor(uv + 0.5);\n float s = (uv.x + 0.5 - base_uv.x);\n float t = (uv.y + 0.5 - base_uv.y);\n base_uv -= vec2(0.5);\n base_uv *= shadowMapSizeInv;\n\n float sum = 0.0;\n\n float uw0 = (3.0 - 2.0 * s);\n float uw1 = (1.0 + 2.0 * s);\n\n float u0 = (2.0 - s) / uw0 - 1.0;\n float u1 = s / uw1 + 1.0;\n\n float vw0 = (3.0 - 2.0 * t);\n float vw1 = (1.0 + 2.0 * t);\n\n float v0 = (2.0 - t) / vw0 - 1.0;\n float v1 = t / vw1 + 1.0;\n\n u0 = u0 * shadowMapSizeInv + base_uv.x;\n v0 = v0 * shadowMapSizeInv + base_uv.y;\n\n u1 = u1 * shadowMapSizeInv + base_uv.x;\n v1 = v1 * shadowMapSizeInv + base_uv.y;\n\n sum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n sum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n sum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n sum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n\n sum *= 1.0f / 16.0;\n return sum;\n}\n\nfloat getShadowPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n\nfloat getShadowSpotPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n\nfloat getShadowPCF1x1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return textureShadow(shadowMap, shadowCoord);\n}\n\nfloat getShadowSpotPCF1x1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return textureShadow(shadowMap, shadowCoord);\n}\n\n#else // GL1\n\nfloat _xgetShadowPCF3x3(mat3 depthKernel, vec3 shadowCoord, sampler2D shadowMap, vec3 shadowParams) {\n mat3 shadowKernel;\n vec3 shadowZ = vec3(shadowCoord.z);\n shadowKernel[0] = vec3(greaterThan(depthKernel[0], shadowZ));\n shadowKernel[1] = vec3(greaterThan(depthKernel[1], shadowZ));\n shadowKernel[2] = vec3(greaterThan(depthKernel[2], shadowZ));\n\n vec2 fractionalCoord = fract( shadowCoord.xy * shadowParams.x );\n\n shadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n shadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\n vec4 shadowValues;\n shadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n shadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n shadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n shadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\n return dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\n\nfloat _getShadowPCF3x3(sampler2D shadowMap, vec3 shadowCoord, vec3 shadowParams) {\n float xoffset = 1.0 / shadowParams.x; // 1/shadow map width\n float dx0 = -xoffset;\n float dx1 = xoffset;\n\n mat3 depthKernel;\n depthKernel[0][0] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx0, dx0)));\n depthKernel[0][1] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx0, 0.0)));\n depthKernel[0][2] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx0, dx1)));\n depthKernel[1][0] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(0.0, dx0)));\n depthKernel[1][1] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy));\n depthKernel[1][2] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(0.0, dx1)));\n depthKernel[2][0] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx1, dx0)));\n depthKernel[2][1] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx1, 0.0)));\n depthKernel[2][2] = unpackFloat(textureShadow(shadowMap, shadowCoord.xy + vec2(dx1, dx1)));\n\n return _xgetShadowPCF3x3(depthKernel, shadowCoord, shadowMap, shadowParams);\n}\n\nfloat getShadowPCF3x3(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF3x3(shadowMap, shadowCoord, shadowParams.xyz);\n}\n\nfloat getShadowSpotPCF3x3(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF3x3(shadowMap, shadowCoord, shadowParams.xyz);\n}\n\nfloat _getShadowPCF1x1(sampler2D shadowMap, vec3 shadowCoord) {\n float shadowSample = unpackFloat(textureShadow(shadowMap, shadowCoord.xy));\n return shadowSample > shadowCoord.z ? 1.0 : 0.0;\n}\n\nfloat getShadowPCF1x1(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF1x1(shadowMap, shadowCoord);\n}\n\nfloat getShadowSpotPCF1x1(sampler2D shadowMap, vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF1x1(shadowMap, shadowCoord);\n}\n#endif\n\n\n// ----- Omni Sampling -----\n\n#ifndef WEBGPU\n\nfloat _getShadowPoint(samplerCube shadowMap, vec4 shadowParams, vec3 dir) {\n\n vec3 tc = normalize(dir);\n vec3 tcAbs = abs(tc);\n\n vec4 dirX = vec4(1,0,0, tc.x);\n vec4 dirY = vec4(0,1,0, tc.y);\n float majorAxisLength = tc.z;\n if ((tcAbs.x > tcAbs.y) && (tcAbs.x > tcAbs.z)) {\n dirX = vec4(0,0,1, tc.z);\n dirY = vec4(0,1,0, tc.y);\n majorAxisLength = tc.x;\n } else if ((tcAbs.y > tcAbs.x) && (tcAbs.y > tcAbs.z)) {\n dirX = vec4(1,0,0, tc.x);\n dirY = vec4(0,0,1, tc.z);\n majorAxisLength = tc.y;\n }\n\n float shadowParamsInFaceSpace = ((1.0/shadowParams.x) * 2.0) * abs(majorAxisLength);\n\n vec3 xoffset = (dirX.xyz * shadowParamsInFaceSpace);\n vec3 yoffset = (dirY.xyz * shadowParamsInFaceSpace);\n vec3 dx0 = -xoffset;\n vec3 dy0 = -yoffset;\n vec3 dx1 = xoffset;\n vec3 dy1 = yoffset;\n\n mat3 shadowKernel;\n mat3 depthKernel;\n\n depthKernel[0][0] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy0));\n depthKernel[0][1] = unpackFloat(textureCube(shadowMap, tc + dx0));\n depthKernel[0][2] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy1));\n depthKernel[1][0] = unpackFloat(textureCube(shadowMap, tc + dy0));\n depthKernel[1][1] = unpackFloat(textureCube(shadowMap, tc));\n depthKernel[1][2] = unpackFloat(textureCube(shadowMap, tc + dy1));\n depthKernel[2][0] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy0));\n depthKernel[2][1] = unpackFloat(textureCube(shadowMap, tc + dx1));\n depthKernel[2][2] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy1));\n\n vec3 shadowZ = vec3(length(dir) * shadowParams.w + shadowParams.z);\n\n shadowKernel[0] = vec3(lessThan2(depthKernel[0], shadowZ));\n shadowKernel[1] = vec3(lessThan2(depthKernel[1], shadowZ));\n shadowKernel[2] = vec3(lessThan2(depthKernel[2], shadowZ));\n\n vec2 uv = (vec2(dirX.w, dirY.w) / abs(majorAxisLength)) * 0.5;\n\n vec2 fractionalCoord = fract( uv * shadowParams.x );\n\n shadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n shadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\n vec4 shadowValues;\n shadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n shadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n shadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n shadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\n return 1.0 - dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\n\nfloat getShadowPointPCF3x3(samplerCube shadowMap, vec3 shadowCoord, vec4 shadowParams, vec3 lightDir) {\n return _getShadowPoint(shadowMap, shadowParams, lightDir);\n}\n\n#endif\n",shadowStandardGL2PS:"\nfloat _getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n // http://the-witness.net/news/2013/09/shadow-mapping-summary-part-1/\n\n float z = shadowCoord.z;\n vec2 uv = shadowCoord.xy * shadowParams.x; // 1 unit - 1 texel\n float shadowMapSizeInv = 1.0 / shadowParams.x;\n vec2 base_uv = floor(uv + 0.5);\n float s = (uv.x + 0.5 - base_uv.x);\n float t = (uv.y + 0.5 - base_uv.y);\n base_uv -= vec2(0.5);\n base_uv *= shadowMapSizeInv;\n\n\n float uw0 = (4.0 - 3.0 * s);\n float uw1 = 7.0;\n float uw2 = (1.0 + 3.0 * s);\n\n float u0 = (3.0 - 2.0 * s) / uw0 - 2.0;\n float u1 = (3.0 + s) / uw1;\n float u2 = s / uw2 + 2.0;\n\n float vw0 = (4.0 - 3.0 * t);\n float vw1 = 7.0;\n float vw2 = (1.0 + 3.0 * t);\n\n float v0 = (3.0 - 2.0 * t) / vw0 - 2.0;\n float v1 = (3.0 + t) / vw1;\n float v2 = t / vw2 + 2.0;\n\n float sum = 0.0;\n\n u0 = u0 * shadowMapSizeInv + base_uv.x;\n v0 = v0 * shadowMapSizeInv + base_uv.y;\n\n u1 = u1 * shadowMapSizeInv + base_uv.x;\n v1 = v1 * shadowMapSizeInv + base_uv.y;\n\n u2 = u2 * shadowMapSizeInv + base_uv.x;\n v2 = v2 * shadowMapSizeInv + base_uv.y;\n\n sum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n sum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n sum += uw2 * vw0 * textureShadow(shadowMap, vec3(u2, v0, z));\n\n sum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n sum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n sum += uw2 * vw1 * textureShadow(shadowMap, vec3(u2, v1, z));\n\n sum += uw0 * vw2 * textureShadow(shadowMap, vec3(u0, v2, z));\n sum += uw1 * vw2 * textureShadow(shadowMap, vec3(u1, v2, z));\n sum += uw2 * vw2 * textureShadow(shadowMap, vec3(u2, v2, z));\n\n sum *= 1.0f / 144.0;\n\n sum = saturate(sum);\n\n return sum;\n}\n\nfloat getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n\nfloat getShadowSpotPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n return _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n",shadowVSM8PS:"\nfloat calculateVSM8(vec3 moments, float Z, float vsmBias) {\n float VSMBias = vsmBias;//0.01 * 0.25;\n float depthScale = VSMBias * Z;\n float minVariance1 = depthScale * depthScale;\n return chebyshevUpperBound(moments.xy, Z, minVariance1, 0.1);\n}\n\nfloat decodeFloatRG(vec2 rg) {\n return rg.y*(1.0/255.0) + rg.x;\n}\n\nfloat VSM8(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n vec4 c = texture2D(tex, texCoords);\n vec3 moments = vec3(decodeFloatRG(c.xy), decodeFloatRG(c.zw), 0.0);\n return calculateVSM8(moments, Z, vsmBias);\n}\n\nfloat getShadowVSM8(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n return VSM8(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, 0.0);\n}\n\nfloat getShadowSpotVSM8(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n return VSM8(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, 0.0);\n}\n",shadowVSM_commonPS:"\nfloat linstep(float a, float b, float v) {\n return saturate((v - a) / (b - a));\n}\n\nfloat reduceLightBleeding(float pMax, float amount) {\n // Remove the [0, amount] tail and linearly rescale (amount, 1].\n return linstep(amount, 1.0, pMax);\n}\n\nfloat chebyshevUpperBound(vec2 moments, float mean, float minVariance, float lightBleedingReduction) {\n // Compute variance\n float variance = moments.y - (moments.x * moments.x);\n variance = max(variance, minVariance);\n\n // Compute probabilistic upper bound\n float d = mean - moments.x;\n float pMax = variance / (variance + (d * d));\n\n pMax = reduceLightBleeding(pMax, lightBleedingReduction);\n\n // One-tailed Chebyshev\n return (mean <= moments.x ? 1.0 : pMax);\n}\n\nfloat calculateEVSM(vec3 moments, float Z, float vsmBias, float exponent) {\n Z = 2.0 * Z - 1.0;\n float warpedDepth = exp(exponent * Z);\n\n moments.xy += vec2(warpedDepth, warpedDepth*warpedDepth) * (1.0 - moments.z);\n\n float VSMBias = vsmBias;//0.01 * 0.25;\n float depthScale = VSMBias * exponent * warpedDepth;\n float minVariance1 = depthScale * depthScale;\n return chebyshevUpperBound(moments.xy, warpedDepth, minVariance1, 0.1);\n}\n",skinBatchConstVS:"\nattribute float vertex_boneIndices;\n\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\n\nmat4 getBoneMatrix(const in float i) {\n // read 4x3 matrix\n vec4 v1 = matrix_pose[int(3.0 * i)];\n vec4 v2 = matrix_pose[int(3.0 * i + 1.0)];\n vec4 v3 = matrix_pose[int(3.0 * i + 2.0)];\n\n // transpose to 4x4 matrix\n return mat4(\n v1.x, v2.x, v3.x, 0,\n v1.y, v2.y, v3.y, 0,\n v1.z, v2.z, v3.z, 0,\n v1.w, v2.w, v3.w, 1\n );\n}\n",skinBatchTexVS:"\nattribute float vertex_boneIndices;\n\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\n\nmat4 getBoneMatrix(const in float i) {\n float j = i * 3.0;\n float dx = texture_poseMapSize.z;\n float dy = texture_poseMapSize.w;\n\n float y = floor(j * dx);\n float x = j - (y * texture_poseMapSize.x);\n y = dy * (y + 0.5);\n\n // read elements of 4x3 matrix\n vec4 v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n\n // transpose to 4x4 matrix\n return mat4(\n v1.x, v2.x, v3.x, 0,\n v1.y, v2.y, v3.y, 0,\n v1.z, v2.z, v3.z, 0,\n v1.w, v2.w, v3.w, 1\n );\n}\n",skinConstVS:"\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\n\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\n\nvoid getBoneMatrix(const in float i, out vec4 v1, out vec4 v2, out vec4 v3) {\n // read 4x3 matrix\n v1 = matrix_pose[int(3.0 * i)];\n v2 = matrix_pose[int(3.0 * i + 1.0)];\n v3 = matrix_pose[int(3.0 * i + 2.0)];\n}\n\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n // get 4 bone matrices\n vec4 a1, a2, a3;\n getBoneMatrix(indices.x, a1, a2, a3);\n\n vec4 b1, b2, b3;\n getBoneMatrix(indices.y, b1, b2, b3);\n\n vec4 c1, c2, c3;\n getBoneMatrix(indices.z, c1, c2, c3);\n\n vec4 d1, d2, d3;\n getBoneMatrix(indices.w, d1, d2, d3);\n\n // multiply them by weights and add up to get final 4x3 matrix\n vec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n vec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n vec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\n // add up weights\n float one = dot(weights, vec4(1.0));\n\n // transpose to 4x4 matrix\n return mat4(\n v1.x, v2.x, v3.x, 0,\n v1.y, v2.y, v3.y, 0,\n v1.z, v2.z, v3.z, 0,\n v1.w, v2.w, v3.w, one\n );\n}\n",skinTexVS:"\n\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\n\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\n\nvoid getBoneMatrix(const in float index, out vec4 v1, out vec4 v2, out vec4 v3) {\n\n float i = float(index);\n float j = i * 3.0;\n float dx = texture_poseMapSize.z;\n float dy = texture_poseMapSize.w;\n \n float y = floor(j * dx);\n float x = j - (y * texture_poseMapSize.x);\n y = dy * (y + 0.5);\n\n // read elements of 4x3 matrix\n v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n}\n\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n // get 4 bone matrices\n vec4 a1, a2, a3;\n getBoneMatrix(indices.x, a1, a2, a3);\n\n vec4 b1, b2, b3;\n getBoneMatrix(indices.y, b1, b2, b3);\n\n vec4 c1, c2, c3;\n getBoneMatrix(indices.z, c1, c2, c3);\n\n vec4 d1, d2, d3;\n getBoneMatrix(indices.w, d1, d2, d3);\n\n // multiply them by weights and add up to get final 4x3 matrix\n vec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n vec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n vec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\n // add up weights\n float one = dot(weights, vec4(1.0));\n\n // transpose to 4x4 matrix\n return mat4(\n v1.x, v2.x, v3.x, 0,\n v1.y, v2.y, v3.y, 0,\n v1.z, v2.z, v3.z, 0,\n v1.w, v2.w, v3.w, one\n );\n}\n",skyboxEnvPS:"\nvarying vec3 vViewDir;\n\nuniform sampler2D texture_envAtlas;\nuniform float mipLevel;\n\nvoid main(void) {\n vec3 dir = vViewDir * vec3(-1.0, 1.0, 1.0);\n vec2 uv = toSphericalUv(normalize(dir));\n\n vec3 linear = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, mipLevel)));\n\n gl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n}\n",skyboxHDRPS:"\nvarying vec3 vViewDir;\n\nuniform samplerCube texture_cubeMap;\n\nvoid main(void) {\n vec3 dir=vViewDir;\n dir.x *= -1.0;\n\n vec3 linear = $DECODE(textureCube(texture_cubeMap, fixSeamsStatic(dir, $FIXCONST)));\n\n gl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n}\n",skyboxVS:"\nattribute vec3 aPosition;\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nuniform mat4 matrix_projectionSkybox;\nuniform mat3 cubeMapRotationMatrix;\n\nvarying vec3 vViewDir;\n\nvoid main(void) {\n mat4 view = matrix_view;\n view[3][0] = view[3][1] = view[3][2] = 0.0;\n gl_Position = matrix_projectionSkybox * view * vec4(aPosition, 1.0);\n\n // Force skybox to far Z, regardless of the clip planes on the camera\n // Subtract a tiny fudge factor to ensure floating point errors don't\n // still push pixels beyond far Z. See:\n // http://www.opengl.org/discussion_boards/showthread.php/171867-skybox-problem\n\n gl_Position.z = gl_Position.w - 0.00001;\n vViewDir = aPosition * cubeMapRotationMatrix;\n}\n",specularPS:"\n\n#ifdef MAPCOLOR\nuniform vec3 material_specular;\n#endif\n\nvoid getSpecularity() {\n vec3 specularColor = vec3(1,1,1);\n\n #ifdef MAPCOLOR\n specularColor *= material_specular;\n #endif\n\n #ifdef MAPTEXTURE\n specularColor *= $DECODE(texture2DBias($SAMPLER, $UV, textureBias)).$CH;\n #endif\n\n #ifdef MAPVERTEX\n specularColor *= saturate(vVertexColor.$VC);\n #endif\n\n dSpecularity = specularColor;\n}\n",sphericalPS:"\n// equirectangular helper functions\nconst float PI = 3.141592653589793;\n\nvec2 toSpherical(vec3 dir) {\n return vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\n\nvec2 toSphericalUv(vec3 dir) {\n vec2 uv = toSpherical(dir) / vec2(PI * 2.0, PI) + 0.5;\n return vec2(uv.x, 1.0 - uv.y);\n}\n",specularityFactorPS:"\n\n#ifdef MAPFLOAT\nuniform float material_specularityFactor;\n#endif\n\nvoid getSpecularityFactor() {\n float specularityFactor = 1.0;\n\n #ifdef MAPFLOAT\n specularityFactor *= material_specularityFactor;\n #endif\n\n #ifdef MAPTEXTURE\n specularityFactor *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n specularityFactor *= saturate(vVertexColor.$VC);\n #endif\n\n dSpecularityFactor = specularityFactor;\n}\n",spotPS:"\nfloat getSpotEffect(vec3 lightSpotDir, float lightInnerConeAngle, float lightOuterConeAngle, vec3 lightDirNorm) {\n float cosAngle = dot(lightDirNorm, lightSpotDir);\n return smoothstep(lightOuterConeAngle, lightInnerConeAngle, cosAngle);\n}\n",startPS:"\nvoid main(void) {\n dReflection = vec4(0);\n\n #ifdef LIT_CLEARCOAT\n ccSpecularLight = vec3(0);\n ccReflection = vec3(0);\n #endif\n",startVS:"\nvoid main(void) {\n gl_Position = getPosition();\n",startNineSlicedPS:"\n nineSlicedUv = vUv0;\n nineSlicedUv.y = 1.0 - nineSlicedUv.y;\n\n",startNineSlicedTiledPS:"\n vec2 tileMask = step(vMask, vec2(0.99999));\n vec2 tileSize = 0.5 * (innerOffset.xy + innerOffset.zw);\n vec2 tileScale = vec2(1.0) / (vec2(1.0) - tileSize);\n vec2 clampedUv = mix(innerOffset.xy * 0.5, vec2(1.0) - innerOffset.zw * 0.5, fract((vTiledUv - tileSize) * tileScale));\n clampedUv = clampedUv * atlasRect.zw + atlasRect.xy;\n nineSlicedUv = vUv0 * tileMask + clampedUv * (vec2(1.0) - tileMask);\n nineSlicedUv.y = 1.0 - nineSlicedUv.y;\n \n",storeEVSMPS:"\nfloat exponent = VSM_EXPONENT;\n\ndepth = 2.0 * depth - 1.0;\ndepth = exp(exponent * depth);\ngl_FragColor = vec4(depth, depth*depth, 1.0, 1.0);\n",tangentBinormalVS:"\nvec3 getTangent() {\n return normalize(dNormalMatrix * vertex_tangent.xyz);\n}\n\nvec3 getBinormal() {\n return cross(vNormalW, vTangentW) * vertex_tangent.w;\n}\n",TBNPS:"\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n dTBN = mat3(normalize(tangent), normalize(binormal), normalize(normal));\n}\n",TBNderivativePS:"\nuniform float tbnBasis;\n\n// http://www.thetenthplanet.de/archives/1180\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n vec2 uv = $UV;\n\n // get edge vectors of the pixel triangle\n vec3 dp1 = dFdx( vPositionW );\n vec3 dp2 = dFdy( vPositionW );\n vec2 duv1 = dFdx( uv );\n vec2 duv2 = dFdy( uv );\n\n // solve the linear system\n vec3 dp2perp = cross( dp2, normal );\n vec3 dp1perp = cross( normal, dp1 );\n vec3 T = dp2perp * duv1.x + dp1perp * duv2.x;\n vec3 B = dp2perp * duv1.y + dp1perp * duv2.y;\n\n // construct a scale-invariant frame\n float denom = max( dot(T,T), dot(B,B) );\n float invmax = (denom == 0.0) ? 0.0 : tbnBasis / sqrt( denom );\n dTBN = mat3(T * invmax, -B * invmax, normal );\n}\n",TBNfastPS:"\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n dTBN = mat3(tangent, binormal, normal);\n}\n",TBNObjectSpacePS:"\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n\n vec3 B = cross(normal, vObjectSpaceUpW);\n vec3 T = cross(normal, B);\n\n if (dot(B,B)==0.0) // deal with case when vObjectSpaceUpW normal are parallel\n {\n float major=max(max(normal.x, normal.y), normal.z);\n\n if (normal.x == major)\n {\n B=cross(normal, vec3(0,1,0));\n T=cross(normal, B);\n }\n else if (normal.y == major)\n {\n B=cross(normal, vec3(0,0,1));\n T=cross(normal, B);\n }\n else if (normal.z == major)\n {\n B=cross(normal, vec3(1,0,0));\n T=cross(normal, B);\n }\n }\n\n dTBN = mat3(normalize(T), normalize(B), normalize(normal));\n}\n",textureSamplePS:"\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n return gammaCorrectInput(texture2D(tex, uv));\n}\n\nvec4 texture2DSRGB(sampler2D tex, vec2 uv, float bias) {\n return gammaCorrectInput(texture2D(tex, uv, bias));\n}\n\nvec3 texture2DRGBM(sampler2D tex, vec2 uv) {\n return decodeRGBM(texture2D(tex, uv));\n}\n\nvec3 texture2DRGBM(sampler2D tex, vec2 uv, float bias) {\n return decodeRGBM(texture2D(tex, uv, bias));\n}\n\nvec3 texture2DRGBE(sampler2D tex, vec2 uv) {\n return decodeRGBM(texture2D(tex, uv));\n}\n\nvec3 texture2DRGBE(sampler2D tex, vec2 uv, float bias) {\n return decodeRGBM(texture2D(tex, uv, bias));\n}\n",thicknessPS:"\n#ifdef MAPFLOAT\nuniform float material_thickness;\n#endif\n\nvoid getThickness() {\n dThickness = 1.0;\n\n #ifdef MAPFLOAT\n dThickness *= material_thickness;\n #endif\n\n #ifdef MAPTEXTURE\n dThickness *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n dThickness *= saturate(vVertexColor.$VC);\n #endif\n}\n",tonemappingAcesPS:"\nuniform float exposure;\n\nvec3 toneMap(vec3 color) {\n float tA = 2.51;\n float tB = 0.03;\n float tC = 2.43;\n float tD = 0.59;\n float tE = 0.14;\n vec3 x = color * exposure;\n return (x*(tA*x+tB))/(x*(tC*x+tD)+tE);\n}\n",tonemappingAces2PS:"\nuniform float exposure;\n\n// ACES approximation by Stephen Hill\n\n// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT\nconst mat3 ACESInputMat = mat3(\n 0.59719, 0.35458, 0.04823,\n 0.07600, 0.90834, 0.01566,\n 0.02840, 0.13383, 0.83777\n);\n\n// ODT_SAT => XYZ => D60_2_D65 => sRGB\nconst mat3 ACESOutputMat = mat3(\n 1.60475, -0.53108, -0.07367,\n -0.10208, 1.10813, -0.00605,\n -0.00327, -0.07276, 1.07602\n);\n\nvec3 RRTAndODTFit(vec3 v) {\n vec3 a = v * (v + 0.0245786) - 0.000090537;\n vec3 b = v * (0.983729 * v + 0.4329510) + 0.238081;\n return a / b;\n}\n\nvec3 toneMap(vec3 color) {\n color *= exposure / 0.6;\n color = color * ACESInputMat;\n\n // Apply RRT and ODT\n color = RRTAndODTFit(color);\n color = color * ACESOutputMat;\n\n // Clamp to [0, 1]\n color = clamp(color, 0.0, 1.0);\n\n return color;\n}\n",tonemappingFilmicPS:"\nconst float A = 0.15;\nconst float B = 0.50;\nconst float C = 0.10;\nconst float D = 0.20;\nconst float E = 0.02;\nconst float F = 0.30;\nconst float W = 11.2;\n\nuniform float exposure;\n\nvec3 uncharted2Tonemap(vec3 x) {\n return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\n\nvec3 toneMap(vec3 color) {\n color = uncharted2Tonemap(color * exposure);\n vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W,W,W));\n color = color * whiteScale;\n\n return color;\n}\n",tonemappingHejlPS:"\nuniform float exposure;\n\nvec3 toneMap(vec3 color) {\n color *= exposure;\n const float A = 0.22, B = 0.3, C = .1, D = 0.2, E = .01, F = 0.3;\n const float Scl = 1.25;\n\n vec3 h = max( vec3(0.0), color - vec3(0.004) );\n return (h*((Scl*A)*h+Scl*vec3(C*B,C*B,C*B))+Scl*vec3(D*E,D*E,D*E)) / (h*(A*h+vec3(B,B,B))+vec3(D*F,D*F,D*F)) - Scl*vec3(E/F,E/F,E/F);\n}\n",tonemappingLinearPS:"\nuniform float exposure;\n\nvec3 toneMap(vec3 color) {\n return color * exposure;\n}\n",tonemappingNonePS:"\nvec3 toneMap(vec3 color) {\n return color;\n}\n",transformVS:"\n#ifdef PIXELSNAP\nuniform vec4 uScreenSize;\n#endif\n\n#ifdef SCREENSPACE\nuniform float projectionFlipY;\n#endif\n\n#ifdef MORPHING\nuniform vec4 morph_weights_a;\nuniform vec4 morph_weights_b;\n#endif\n\n#ifdef MORPHING_TEXTURE_BASED\n uniform vec4 morph_tex_params;\n\n #ifdef WEBGPU\n ivec2 getTextureMorphCoords() {\n\n // turn morph_vertex_id into int grid coordinates\n ivec2 textureSize = ivec2(morph_tex_params.xy);\n int morphGridV = int(morph_vertex_id / textureSize.x);\n int morphGridU = int(morph_vertex_id - (morphGridV * textureSize.x));\n morphGridV = textureSize.y - morphGridV - 1;\n return ivec2(morphGridU, morphGridV);\n }\n #else\n vec2 getTextureMorphCoords() {\n vec2 textureSize = morph_tex_params.xy;\n vec2 invTextureSize = morph_tex_params.zw;\n\n // turn morph_vertex_id into int grid coordinates\n float morphGridV = floor(morph_vertex_id * invTextureSize.x);\n float morphGridU = morph_vertex_id - (morphGridV * textureSize.x);\n\n // convert grid coordinates to uv coordinates with half pixel offset\n return vec2(morphGridU, morphGridV) * invTextureSize + (0.5 * invTextureSize);\n }\n #endif\n\n#endif\n\n#ifdef MORPHING_TEXTURE_BASED_POSITION\nuniform highp sampler2D morphPositionTex;\n#endif\n\nmat4 getModelMatrix() {\n #ifdef DYNAMICBATCH\n return getBoneMatrix(vertex_boneIndices);\n #elif defined(SKIN)\n return matrix_model * getSkinMatrix(vertex_boneIndices, vertex_boneWeights);\n #elif defined(INSTANCING)\n return mat4(instance_line1, instance_line2, instance_line3, instance_line4);\n #else\n return matrix_model;\n #endif\n}\n\nvec4 getPosition() {\n dModelMatrix = getModelMatrix();\n vec3 localPos = vertex_position;\n\n #ifdef NINESLICED\n // outer and inner vertices are at the same position, scale both\n localPos.xz *= outerScale;\n\n // offset inner vertices inside\n // (original vertices must be in [-1;1] range)\n vec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n vec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n localPos.xz += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\n vTiledUv = (localPos.xz - outerScale + innerOffset.xy) * -0.5 + 1.0; // uv = local pos - inner corner\n\n localPos.xz *= -0.5; // move from -1;1 to -0.5;0.5\n localPos = localPos.xzy;\n #endif\n\n #ifdef MORPHING\n #ifdef MORPHING_POS03\n localPos.xyz += morph_weights_a[0] * morph_pos0;\n localPos.xyz += morph_weights_a[1] * morph_pos1;\n localPos.xyz += morph_weights_a[2] * morph_pos2;\n localPos.xyz += morph_weights_a[3] * morph_pos3;\n #endif // MORPHING_POS03\n #ifdef MORPHING_POS47\n localPos.xyz += morph_weights_b[0] * morph_pos4;\n localPos.xyz += morph_weights_b[1] * morph_pos5;\n localPos.xyz += morph_weights_b[2] * morph_pos6;\n localPos.xyz += morph_weights_b[3] * morph_pos7;\n #endif // MORPHING_POS47\n #endif // MORPHING\n\n #ifdef MORPHING_TEXTURE_BASED_POSITION\n\n #ifdef WEBGPU\n ivec2 morphUV = getTextureMorphCoords();\n vec3 morphPos = texelFetch(morphPositionTex, ivec2(morphUV), 0).xyz;\n #else\n vec2 morphUV = getTextureMorphCoords();\n vec3 morphPos = texture2D(morphPositionTex, morphUV).xyz;\n #endif\n\n localPos += morphPos;\n\n #endif\n\n vec4 posW = dModelMatrix * vec4(localPos, 1.0);\n #ifdef SCREENSPACE\n posW.zw = vec2(0.0, 1.0);\n #endif\n dPositionW = posW.xyz;\n\n vec4 screenPos;\n #ifdef UV1LAYOUT\n screenPos = vec4(vertex_texCoord1.xy * 2.0 - 1.0, 0.5, 1);\n #else\n #ifdef SCREENSPACE\n screenPos = posW;\n screenPos.y *= projectionFlipY;\n #else\n screenPos = matrix_viewProjection * posW;\n #endif\n\n #ifdef PIXELSNAP\n // snap vertex to a pixel boundary\n screenPos.xy = (screenPos.xy * 0.5) + 0.5;\n screenPos.xy *= uScreenSize.xy;\n screenPos.xy = floor(screenPos.xy);\n screenPos.xy *= uScreenSize.zw;\n screenPos.xy = (screenPos.xy * 2.0) - 1.0;\n #endif\n #endif\n\n return screenPos;\n}\n\nvec3 getWorldPosition() {\n return dPositionW;\n}\n",transformDeclVS:"\nattribute vec3 vertex_position;\n\nuniform mat4 matrix_model;\nuniform mat4 matrix_viewProjection;\n\nvec3 dPositionW;\nmat4 dModelMatrix;\n",transmissionPS:"\n\n#ifdef MAPFLOAT\nuniform float material_refraction;\n#endif\n\nvoid getRefraction() {\n float refraction = 1.0;\n\n #ifdef MAPFLOAT\n refraction = material_refraction;\n #endif\n\n #ifdef MAPTEXTURE\n refraction *= texture2DBias($SAMPLER, $UV, textureBias).$CH;\n #endif\n\n #ifdef MAPVERTEX\n refraction *= saturate(vVertexColor.$VC);\n #endif\n\n dTransmission = refraction;\n}\n",uv0VS:"\n#ifdef NINESLICED\nvec2 getUv0() {\n vec2 uv = vertex_position.xz;\n\n // offset inner vertices inside\n // (original vertices must be in [-1;1] range)\n vec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n vec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n uv += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\n uv = uv * -0.5 + 0.5;\n uv = uv * atlasRect.zw + atlasRect.xy;\n\n vMask = vertex_texCoord0.xy;\n\n return uv;\n}\n#else\nvec2 getUv0() {\n return vertex_texCoord0;\n}\n#endif\n",uv1VS:"\nvec2 getUv1() {\n return vertex_texCoord1;\n}\n",viewDirPS:"\nvoid getViewDir() {\n dViewDirW = normalize(view_position - vPositionW);\n}\n",viewNormalVS:"\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nvec3 getViewNormal() {\n return mat3(matrix_view) * vNormalW;\n}\n",webgpuPS:Ns,webgpuVS:zs},Qa=new Ts;function $a(e){return Qa.get(e)}function Ja(e,t){Qa.get(e,(function(){return t}))}function eo(e,t,i,n){return void 0===n&&(n=!1),new es(e,Hs.createDefinition(e,{name:t+"_"+i,vertexCode:Za[t],fragmentCode:Za[i],useTransformFeedback:n}))}function to(e,t,i,n,s,r){void 0===r&&(r=!1);var a=$a(e),o=a.getCachedShader(n);return o||(o=new es(e,Hs.createDefinition(e,{name:n,vertexCode:t,fragmentCode:i,attributes:s,useTransformFeedback:r})),a.setCachedShader(n,o)),o}function io(e,t){var i,n=e.definition,s=(null!=(i=n.name)?i:"shader")+"-id-"+e.id,r={generateKey:function(e){return s},createShaderDefinition:function(e,t){return n}},a="shader",o=$a(e.device);o.register(a,r);var h=o.getProgram(a,{},t);return o.unregister(a),h}Za.createShader=eo,Za.createShaderFromCode=to;var no={type:pt,base:0,count:4,indexed:!1},so=new be,ro=new be,ao=function(){function e(e){this.uniformBuffer=void 0,this.bindGroup=void 0;var t=e.device;if(this.shader=e,t.supportsUniformBuffers){var i=new qa;this.shader=io(e,i);var n=this.shader.meshUniformBufferFormat;n&&(this.uniformBuffer=new os(t,n,!1));var s=this.shader.meshBindGroupFormat;this.bindGroup=new is(t,s,this.uniformBuffer)}}var t=e.prototype;return t.destroy=function(){var e,t;null==(e=this.uniformBuffer)||e.destroy(),this.uniformBuffer=null,null==(t=this.bindGroup)||t.destroy(),this.bindGroup=null},t.render=function(e,t){var i,n=this.shader.device;e&&(so.set(n.vx,n.vy,n.vw,n.vh),ro.set(n.sx,n.sy,n.sw,n.sh),t=null!=(i=t)?i:e,n.setViewport(e.x,e.y,e.z,e.w),n.setScissor(t.x,t.y,t.z,t.w));n.setVertexBuffer(n.quadVertexBuffer,0);var s=this.shader;if(n.setShader(s),n.supportsUniformBuffers){var r,a=this.bindGroup;null==(r=a.defaultUniformBuffer)||r.update(),a.update(),n.setBindGroup(0,a)}n.draw(no),e&&(n.setViewport(so.x,so.y,so.z,so.w),n.setScissor(ro.x,ro.y,ro.z,ro.w))},e}(),oo=new be;function ho(e,t,i,n,s){e.setCullMode(Ze),e.setDepthState(Mi.NODEPTH),e.setStencilState(null,null);var r=new ao(i);n||((n=oo).x=0,n.y=0,n.z=t?t.width:e.width,n.w=t?t.height:e.height);var a,o=new ja(e,(function(){r.render(n,s)}));(o.init(t),o.colorOps.clear=!1,o.depthStencilOps.clearDepth=!1,e.isWebGPU&&null===t)&&((null!=(a=null==t?void 0:t.samples)?a:e.samples)>1&&(o.colorOps.store=!0));o.render(),r.destroy()}var lo=new Ts,co=function(){function e(e,t,i){void 0===i&&(i={}),this.index=void 0,this.name=void 0,this.shaderDefine=void 0,this.name=e,this.index=t,Object.assign(this,i),this.initShaderDefines()}return e.prototype.initShaderDefines=function(){var e;this.isShadow?e="SHADOW":this.isForward?e="FORWARD":2===this.index?e="DEPTH":3===this.index&&(e="PICK");var t=e?"#define "+e+"_PASS\n":"",i="#define "+this.name.toUpperCase()+"_PASS\n";this.shaderDefines=t+i},e}(),uo=function(){function e(){var e=this;this.passesNamed=new Map,this.passesIndexed=[],this.nextIndex=0;var t=function(t,i,n){e.allocate(t,n)};t("forward",0,{isForward:!0}),t("forward_hdr",0,{isForward:!0}),t("depth"),t("pick"),t("shadow")}e.get=function(t){return lo.get(t,(function(){return new e}))};var t=e.prototype;return t.allocate=function(e,t){var i=this.passesNamed.get(e);return void 0===i&&(i=new co(e,this.nextIndex,t),this.passesNamed.set(i.name,i),this.passesIndexed[i.index]=i,this.nextIndex++),i},t.getByIndex=function(e){return this.passesIndexed[e]},t.getByName=function(e){return this.passesNamed.get(e)},e}();function fo(e,t){return t||(t=Za),1===e||2===e?t.gamma2_2PS?t.gamma2_2PS:Za.gamma2_2PS:3===e?"#define HDR\n"+(t.gamma2_2PS?t.gamma2_2PS:Za.gamma2_2PS):t.gamma1_0PS?t.gamma1_0PS:Za.gamma1_0PS}function po(e,t){return t||(t=Za),1===e?t.tonemappingFilmicPS?t.tonemappingFilmicPS:Za.tonemappingFilmicPS:0===e?t.tonemappingLinearPS?t.tonemappingLinearPS:Za.tonemappingLinearPS:2===e?t.tonemappingHejlPS?t.tonemappingHejlPS:Za.tonemappingHejlPS:3===e?t.tonemappingAcesPS?t.tonemappingAcesPS:Za.tonemappingAcesPS:4===e?t.tonemappingAces2PS?t.tonemappingAces2PS:Za.tonemappingAces2PS:t.tonemapingNonePS?t.tonemapingNonePS:Za.tonemappingNonePS}function mo(e,t){return t||(t=Za),"linear"===e?t.fogLinearPS?t.fogLinearPS:Za.fogLinearPS:"exp"===e?t.fogExpPS?t.fogExpPS:Za.fogExpPS:"exp2"===e?t.fogExp2PS?t.fogExp2PS:Za.fogExp2PS:t.fogNonePS?t.fogNonePS:Za.fogNonePS}function _o(e,t){return t||(t=Za),e.supportsBoneTextures?t.skinTexVS:"#define BONE_LIMIT "+e.getBoneLimit()+"\n"+t.skinConstVS}function go(){return"void main(void)\n{\n"}function vo(){return"}\n"}var yo={generateKey:function(e){var t="basic";return e.fog&&(t+="_fog"),e.alphaTest&&(t+="_atst"),e.vertexColors&&(t+="_vcol"),e.diffuseMap&&(t+="_diff"),e.skin&&(t+="_skin"),e.screenSpace&&(t+="_ss"),e.useInstancing&&(t+="_inst"),e.useMorphPosition&&(t+="_morphp"),e.useMorphNormal&&(t+="_morphn"),e.useMorphTextureBased&&(t+="_morpht"),t+="_"+e.pass},createShaderDefinition:function(e,t){var i={vertex_position:mt};t.skin&&(i.vertex_boneWeights=vt,i.vertex_boneIndices=yt),t.vertexColors&&(i.vertex_color=xt),t.diffuseMap&&(i.vertex_texCoord0=bt);var n=uo.get(e).getByIndex(t.pass).shaderDefines,s=n;s+=Za.transformDeclVS,t.skin?(s+=_o(e),s+=Za.transformSkinnedVS):s+=Za.transformVS,t.vertexColors&&(s+="attribute vec4 vertex_color;\n",s+="varying vec4 vColor;\n"),t.diffuseMap&&(s+="attribute vec2 vertex_texCoord0;\n",s+="varying vec2 vUv0;\n"),2===t.pass&&(s+="varying float vDepth;\n",s+="#ifndef VIEWMATRIX\n",s+="#define VIEWMATRIX\n",s+="uniform mat4 matrix_view;\n",s+="#endif\n",s+="#ifndef CAMERAPLANES\n",s+="#define CAMERAPLANES\n",s+="uniform vec4 camera_params;\n\n",s+="#endif\n"),s+="void main(void)\n{\n",s+=" gl_Position = getPosition();\n",2===t.pass&&(s+=" vDepth = -(matrix_view * vec4(getWorldPosition(),1.0)).z * camera_params.x;\n"),t.vertexColors&&(s+=" vColor = vertex_color;\n"),t.diffuseMap&&(s+=" vUv0 = vertex_texCoord0;\n"),s+="}\n";var r=n;return t.vertexColors?r+="varying vec4 vColor;\n":r+="uniform vec4 uColor;\n",t.diffuseMap&&(r+="varying vec2 vUv0;\n",r+="uniform sampler2D texture_diffuseMap;\n"),t.fog&&(r+=mo(t.fog)),t.alphaTest&&(r+=Za.alphaTestPS),2===t.pass&&(r+="varying float vDepth;\n",r+=Za.packDepthPS),r+="void main(void)\n{\n",t.vertexColors?r+=" gl_FragColor = vColor;\n":r+=" gl_FragColor = uColor;\n",t.diffuseMap&&(r+=" gl_FragColor *= texture2D(texture_diffuseMap, vUv0);\n"),t.alphaTest&&(r+=" alphaTest(gl_FragColor.a);\n"),3!==t.pass&&(2===t.pass?r+=" gl_FragColor = packFloat(vDepth);\n":t.fog&&(r+=" glFragColor.rgb = addFog(gl_FragColor.rgb);\n")),r+="}\n",Hs.createDefinition(e,{name:"BasicShader",attributes:i,vertexCode:s,fragmentCode:r})}},xo=new Ts;function So(e){return xo.get(e)}var bo=[];bo[0]={src:1,dst:1,op:2},bo[3]={src:1,dst:0,op:0},bo[2]={src:6,dst:8,op:0},bo[4]={src:1,dst:8,op:0},bo[1]={src:1,dst:1,op:0},bo[6]={src:6,dst:1,op:0},bo[7]={src:4,dst:2,op:0},bo[8]={src:5,dst:1,op:0},bo[5]={src:4,dst:0,op:0},bo[9]={src:1,dst:1,op:3},bo[10]={src:1,dst:1,op:4};var wo=0,To=function(){function e(){this._shader=null,this.meshInstances=[],this.name="Untitled",this.userId="",this.id=wo++,this.variants={},this.parameters={},this.alphaTest=0,this.alphaToCoverage=!1,this._blendState=new Ei,this._depthState=new Mi,this.cull=1,this.stencilFront=null,this.stencilBack=null,this.depthBias=0,this.slopeDepthBias=0,this._shaderVersion=0,this._scene=null,this._dirtyBlend=!1,this.dirty=!0}var t=e.prototype;return t._updateTransparency=function(){for(var e=this.transparent,t=this.meshInstances,i=0;i0,vertexColors:this.vertexColors,diffuseMap:!!this.colorMap,pass:s},c=new qa(a,o,h),u=$a(e);return u.register("basic",yo),u.getProgram("basic",l,c,this.userId)},t}(To),Co=function(){function e(e,t,i){this._aabb=new ke,this.origMeshInstances=void 0,this.meshInstance=null,this.dynamic=void 0,this.batchGroupId=void 0,this.origMeshInstances=e,this.dynamic=t,this.batchGroupId=i}var t=e.prototype;return t.destroy=function(e,t){this.meshInstance&&(this.removeFromLayers(e,t),this.meshInstance.destroy(),this.meshInstance=null)},t.addToLayers=function(e,t){for(var i=0;i=0;i--)this.matrices[i].mulAffine2(Mo,this.bones[i].getWorldTransform()),this.matrices[i].mulAffine2(this.matrices[i],this.skin.inverseBindPose[i])}},t.updateMatrices=function(e,t){this._updateBeforeCull&&this._updateMatrices(e,t)},t.updateMatrixPalette=function(e,t){this._updateMatrices(e,t);for(var i=this.matrixPalette,n=this.bones.length,s=0;s=0?e.insertChild(this,t):e.addChild(this))},i.setLocalEulerAngles=function(e,t,i){this.localRotation.setFromEulerAngles(e,t,i),this._dirtyLocal||this._dirtifyLocal()},i.setLocalPosition=function(e,t,i){e instanceof ye?this.localPosition.copy(e):this.localPosition.set(e,t,i),this._dirtyLocal||this._dirtifyLocal()},i.setLocalRotation=function(e,t,i,n){e instanceof Pe?this.localRotation.copy(e):this.localRotation.set(e,t,i,n),this._dirtyLocal||this._dirtifyLocal()},i.setLocalScale=function(e,t,i){e instanceof ye?this.localScale.copy(e):this.localScale.set(e,t,i),this._dirtyLocal||this._dirtifyLocal()},i._dirtifyLocal=function(){this._dirtyLocal||(this._dirtyLocal=!0,this._dirtyWorld||this._dirtifyWorld())},i._unfreezeParentToRoot=function(){for(var e=this._parent;e;)e._frozen=!1,e=e._parent},i._dirtifyWorld=function(){this._dirtyWorld||this._unfreezeParentToRoot(),this._dirtifyWorldInternal()},i._dirtifyWorldInternal=function(){if(!this._dirtyWorld){this._frozen=!1,this._dirtyWorld=!0;for(var e=0;e>16},set:function(e){var t=65535&this._shaderDefs;this._updateShaderDefs(t|e<<16)}},{key:"instancingCount",get:function(){return this.instancingData?this.instancingData.count:0},set:function(e){this.instancingData&&(this.instancingData.count=e)}}]),e}();function ih(e,t,i,n){return(15&e)<<27|(3===t?1:0)<<26|(i?1:0)<<25|(33554431&n)<<0}function nh(e,t){if(e&&!t)return!1;if(!e&&t)return!1;if((e=e.data)===(t=t.data))return!0;if(e instanceof Float32Array&&t instanceof Float32Array){if(e.length!==t.length)return!1;for(var i=0;i=0&&(n._obj[e].splice(s,1),this.markGroupDirty(t))}},t._extractRender=function(e,t,i,n){return e.render&&(t=n[e.render.batchGroupId]=t.concat(e.render.meshInstances),e.render.removeFromLayers()),t},t._extractModel=function(e,t,i,n){return e.model&&e.model.model&&(t=n[e.model.batchGroupId]=t.concat(e.model.meshInstances),e.model.removeModelFromLayers()),t},t._extractElement=function(e,t,i){if(e.element){var n=!1;e.element._text&&e.element._text._model.meshInstances.length>0?(t.push(e.element._text._model.meshInstances[0]),e.element.removeModelFromLayers(e.element._text._model),n=!0):e.element._image&&(t.push(e.element._image._renderable.meshInstance),e.element.removeModelFromLayers(e.element._image._renderable.model),e.element._image._renderable.unmaskMeshInstance&&(t.push(e.element._image._renderable.unmaskMeshInstance),e.element._image._renderable.unmaskMeshInstance.stencilFront&&e.element._image._renderable.unmaskMeshInstance.stencilBack||(e.element._dirtifyMask(),e.element._onPrerender())),n=!0),n&&(i._ui=!0)}},t._collectAndRemoveMeshInstances=function(e,t){for(var i=0;i0;){u[d]=[p[0]],f=[];var _=p[0].material,g=p[0].layer,v=p[0]._shaderDefs,y=p[0].parameters,x=p[0].stencilFront,S=p[0].mesh.vertexBuffer.getNumVertices(),b=p[0].drawOrder;h.copy(p[0].aabb);var w=hh(p[0]),T=p[0].mesh.vertexBuffer.format.batchingHash,A=p[0].mesh.primitive[0].indexed;c=null;for(var C=1;C=a){f=f.concat(p.slice(C));break}_!==E.material||g!==E.layer||T!==E.mesh.vertexBuffer.format.batchingHash||A!==E.mesh.primitive[0].indexed||v!==E._shaderDefs||S+E.mesh.vertexBuffer.getNumVertices()>o?m(E):(l.copy(h),l.add(E.aabb),l.halfExtents.x>r||l.halfExtents.y>r||l.halfExtents.z>r?m(E):(!x||(s=E.stencilFront)&&x.func===s.func&&x.zpass===s.zpass)&&w===hh(E)&&sh(y,E.parameters)?n&&c&&c.intersects(E.aabb)&&E.drawOrder!==b?m(E):(h.add(E.aabb),S+=E.mesh.vertexBuffer.getNumVertices(),u[d].push(E)):m(E))}d++,p=f}return u},t.collectBatchedMeshData=function(e,t){for(var i=null,n=0,s=0,r=null,a=0;a=3)if(s===mt)for(var A=0;A0&&r.setIndices(S),r.update(4,!1),t&&((p=p.clone()).chunks.transformVS=this.transformVS,p.chunks.skinTexVS=this.skinTexVS,p.chunks.skinConstVS=this.skinConstVS,p.update());var I=new th(r,p,this.rootNode);I.castShadow=h.origMeshInstances[0].castShadow,I.parameters=h.origMeshInstances[0].parameters,I.layer=h.origMeshInstances[0].layer,I._shaderDefs=h.origMeshInstances[0]._shaderDefs,I.cull=h.origMeshInstances[0].cull;var L=this._batchGroups[i];if(L&&L._ui&&(I.cull=!1),t){for(var D=[],O=0;O0&&this.generate(this._dirtyGroups);for(var e=0;e0,e.blendType=t.blendType,e.screenSpace=n&&0!=(n&ga),e.skin=n&&0!=(2&n),e.useInstancing=n&&0!=(n&ma),e.useMorphPosition=n&&0!=(n&ya),e.useMorphNormal=n&&0!=(n&xa),e.useMorphTextureBased=n&&0!=(n&Sa),e.hasTangents=n&&0!=(n&va),e.nineSlicedMode=t.nineSlicedMode||0,t.useLighting&&i.clusteredLightingEnabled?(e.clusteredLightingEnabled=!0,e.clusteredLightingCookiesEnabled=i.lighting.cookiesEnabled,e.clusteredLightingShadowsEnabled=i.lighting.shadowsEnabled,e.clusteredLightingShadowType=i.lighting.shadowType,e.clusteredLightingAreaLightsEnabled=i.lighting.areaLightsEnabled):(e.clusteredLightingEnabled=!1,e.clusteredLightingCookiesEnabled=!1,e.clusteredLightingShadowsEnabled=!1,e.clusteredLightingAreaLightsEnabled=!1)},e.updateMaterialOptions=function(e,t){e.useAmbientTint=!1,e.separateAmbient=!1,e.customFragmentShader=null,e.pixelSnap=t.pixelSnap,e.shadingModel=t.shadingModel,e.ambientSH=t.ambientSH,e.fastTbn=t.fastTbn,e.twoSidedLighting=t.twoSidedLighting,e.occludeDirect=t.occludeDirect,e.occludeSpecular=t.occludeSpecular,e.occludeSpecularFloat=1!==t.occludeSpecularIntensity,e.useMsdf=!1,e.msdfTextAttribute=!1,e.alphaToCoverage=t.alphaToCoverage,e.opacityFadesSpecular=t.opacityFadesSpecular,e.cubeMapProjection=0,e.conserveEnergy=t.conserveEnergy&&1===t.shadingModel,e.useSpecular=t.hasSpecular,e.useSpecularityFactor=t.hasSpecularityFactor,e.enableGGXSpecular=t.ggxSpecular,e.fresnelModel=t.fresnelModel,e.useRefraction=t.hasRefraction,e.useClearCoat=t.hasClearCoat,e.useSheen=t.hasSheen,e.useIridescence=t.hasIrridescence,e.useMetalness=t.hasMetalness,e.useDynamicRefraction=t.dynamicRefraction,e.vertexColors=!1,e.lightMapEnabled=t.hasLighting,e.dirLightMapEnabled=t.dirLightMap,e.useHeights=t.hasHeights,e.useNormals=t.hasNormals,e.useClearCoatNormals=t.hasClearCoatNormals,e.useAo=t.hasAo,e.diffuseMapEnabled=t.hasDiffuseMap},e.updateEnvOptions=function(e,t,i){e.fog=t.useFog?i.fog:"none",e.gamma=t.useGammaTonemap?i.gammaCorrection:0,e.toneMap=t.useGammaTonemap?i.toneMapping:-1,e.fixSeams=!1,t.useSkybox&&i.envAtlas&&i.skybox?(e.reflectionSource="envAtlasHQ",e.reflectionEncoding=i.envAtlas.encoding,e.reflectionCubemapEncoding=i.skybox.encoding):t.useSkybox&&i.envAtlas?(e.reflectionSource="envAtlas",e.reflectionEncoding=i.envAtlas.encoding):t.useSkybox&&i.skybox?(e.reflectionSource="cubeMap",e.reflectionEncoding=i.skybox.encoding):(e.reflectionSource=null,e.reflectionEncoding=null),t.ambientSH?(e.ambientSource="ambientSH",e.ambientEncoding=null):e.reflectionSource&&i.envAtlas?(e.ambientSource="envAtlas",e.ambientEncoding=i.envAtlas.encoding):(e.ambientSource="constant",e.ambientEncoding=null);var n=!!e.reflectionSource;e.skyboxIntensity=n&&(1!==i.skyboxIntensity||i.physicalUnits),e.useCubeMapRotation=n&&i._skyboxRotationShaderInclude},e.updateLightingOptions=function(t,i,n,s){if(t.lightMapWithoutAmbient=!1,i.useLighting){var r=[],a=n?n>>16:1;t.lightMaskDynamic=!!(1&a),t.lightMapWithoutAmbient=!1,s&&(e.collectLights(0,s[0],r,a),e.collectLights(1,s[1],r,a),e.collectLights(2,s[2],r,a)),t.lights=r}else t.lights=[];0!==t.lights.length&&0==(1&n)||(t.noShadow=!0)},e.collectLights=function(e,t,i,n){for(var s=0;s>16&32768,n=t>>12&2047,s=t>>23&255;return s<103?i:s>142?(i|=31744,i|=(255===s?0:1)&&8388607&t):s<113?i|=((n|=2048)>>114-s)+(n>>113-s&1):(i|=s-112<<10|n>>1,i+=1&n)},e.float2Bytes=function(e,t,i,n){var s=255*e%1;if(t[i+0]=Math.round(255*(e%1-bh*s)),n>1){var r=65025*e%1;if(t[i+1]=Math.round(255*(s-bh*r)),n>2){var a=16581375*e%1;t[i+2]=Math.round(255*(r-bh*a)),n>3&&(t[i+3]=Math.round(255*a))}}},e.float2BytesRange=function(t,i,n,s,r,a){t=pe.clamp((t-s)/(r-s),0,1),e.float2Bytes(t,i,n,a)},e.float2MantissaExponent=function(t,i,n,s){var r=Math.floor(Math.log2(Math.abs(t)))+1;t/=Math.pow(2,r),e.float2BytesRange(t,i,n,-1,1,s-1),i[n+s-1]=Math.round(r+127)},e}(),Ch=new Me,Eh=new Me,Mh=new Me,Ph=function(){function e(){}return e.create=function(t,i,n){var s=new mh;switch(s.node=new jo(t),s.aspectRatio=1,s.aspectRatioMode=1,s._scissorRectClear=!0,i){case 1:s.node.setRotation(e.pointLightRotations[n]),s.fov=90,s.projection=0;break;case 2:s.projection=0;break;case 0:s.projection=1}return s},e.evalSpotCookieMatrix=function(t){var i=e._spotCookieCamera;i||(i=e.create("SpotCookieCamera",2),e._spotCookieCamera=i),i.fov=2*t._outerConeAngle;var n=i._node;n.setPosition(t._node.getPosition()),n.setRotation(t._node.getRotation()),n.rotateLocal(-90,0,0),Ch.setTRS(n.getPosition(),n.getRotation(),ye.ONE).invert(),Eh.mul2(i.projectionMatrix,Ch);var s=t.cookieMatrix,r=t.atlasViewport;return Mh.setViewport(r.x,r.y,r.z,r.w),s.mul2(Mh,Eh),s},e}();Ph.pointLightRotations=[(new Pe).setFromEulerAngles(0,90,180),(new Pe).setFromEulerAngles(0,-90,180),(new Pe).setFromEulerAngles(90,0,0),(new Pe).setFromEulerAngles(-90,0,0),(new Pe).setFromEulerAngles(0,180,180),(new Pe).setFromEulerAngles(0,0,180)],Ph._spotCookieCamera=null;var Rh=new ye,Ih=new Float32Array(6),Lh=new ye(-.5,0,0),Dh=new ye(0,0,.5),Oh={FLAGS:0,COLOR_A:1,COLOR_B:2,SPOT_ANGLES:3,SHADOW_BIAS:4,COOKIE_A:5,COOKIE_B:6,COUNT_ALWAYS:7,POSITION_X:7,POSITION_Y:8,POSITION_Z:9,RANGE:10,SPOT_DIRECTION_X:11,SPOT_DIRECTION_Y:12,SPOT_DIRECTION_Z:13,PROJ_MAT_00:14,ATLAS_VIEWPORT_A:14,PROJ_MAT_01:15,ATLAS_VIEWPORT_B:15,PROJ_MAT_02:16,PROJ_MAT_03:17,PROJ_MAT_10:18,PROJ_MAT_11:19,PROJ_MAT_12:20,PROJ_MAT_13:21,PROJ_MAT_20:22,PROJ_MAT_21:23,PROJ_MAT_22:24,PROJ_MAT_23:25,PROJ_MAT_30:26,PROJ_MAT_31:27,PROJ_MAT_32:28,PROJ_MAT_33:29,AREA_DATA_WIDTH_X:30,AREA_DATA_WIDTH_Y:31,AREA_DATA_WIDTH_Z:32,AREA_DATA_HEIGHT_X:33,AREA_DATA_HEIGHT_Y:34,AREA_DATA_HEIGHT_Z:35,COUNT:36},kh={POSITION_RANGE:0,SPOT_DIRECTION:1,PROJ_MAT_0:2,ATLAS_VIEWPORT:2,PROJ_MAT_1:3,PROJ_MAT_2:4,PROJ_MAT_3:5,AREA_DATA_WIDTH:6,AREA_DATA_HEIGHT:7,COUNT:8},Fh=function(){function e(t){this.device=t,this.cookiesEnabled=!1,this.shadowsEnabled=!1,this.areaLightsEnabled=!1,this.maxLights=255;var i=Oh.COUNT_ALWAYS,n=0;e.lightTextureFormat===e.FORMAT_FLOAT?n=kh.COUNT:i=Oh.COUNT,this.lights8=new Uint8ClampedArray(4*i*this.maxLights),this.lightsTexture8=e.createTexture(this.device,i,this.maxLights,7,"LightsTexture8"),this._lightsTexture8Id=this.device.scope.resolve("lightsTexture8"),n?(this.lightsFloat=new Float32Array(4*n*this.maxLights),this.lightsTextureFloat=e.createTexture(this.device,n,this.maxLights,tt,"LightsTextureFloat"),this._lightsTextureFloatId=this.device.scope.resolve("lightsTextureFloat")):(this.lightsFloat=null,this.lightsTextureFloat=null,this._lightsTextureFloatId=void 0),this._lightsTextureInvSizeId=this.device.scope.resolve("lightsTextureInvSize"),this._lightsTextureInvSizeData=new Float32Array(4),this._lightsTextureInvSizeData[0]=n?1/this.lightsTextureFloat.width:0,this._lightsTextureInvSizeData[1]=n?1/this.lightsTextureFloat.height:0,this._lightsTextureInvSizeData[2]=1/this.lightsTexture8.width,this._lightsTextureInvSizeData[3]=1/this.lightsTexture8.height,this.invMaxColorValue=0,this.invMaxAttenuation=0,this.boundsMin=new ye,this.boundsDelta=new ye}e.initShaderDefines=function(){var t=e.lightTextureFormat===e.FORMAT_FLOAT?"FLOAT":"8BIT";e.shaderDefines="\n \n#define CLUSTER_TEXTURE_"+t+"\n "+e.buildShaderDefines(Oh,"CLUSTER_TEXTURE_8_")+"\n "+e.buildShaderDefines(kh,"CLUSTER_TEXTURE_F_")+"\n "},e.buildShaderDefines=function(t,i){var n="",s=e.useTexelFetch?"":".5";return Object.keys(t).forEach((function(e){n+="\n#define "+i+e+" "+t[e]+s})),n},e.init=function(t){e.lightTextureFormat=t.extTextureFloat&&t.maxTextures>8?e.FORMAT_FLOAT:e.FORMAT_8BIT,e.useTexelFetch=t.supportsTextureFetch,e.initShaderDefines()},e.createTexture=function(e,t,i,n,s){return new ys(e,{name:s,width:t,height:i,mipmaps:!1,format:n,addressU:1,addressV:1,type:qt,magFilter:0,minFilter:0,anisotropy:1})};var t=e.prototype;return t.destroy=function(){this.lightsTexture8&&(this.lightsTexture8.destroy(),this.lightsTexture8=null),this.lightsTextureFloat&&(this.lightsTextureFloat.destroy(),this.lightsTextureFloat=null)},t.setCompressionRanges=function(e,t){this.invMaxColorValue=1/t,this.invMaxAttenuation=1/e},t.setBounds=function(e,t){this.boundsMin.copy(e),this.boundsDelta.copy(t)},t.uploadTextures=function(){this.lightsTextureFloat&&(this.lightsTextureFloat.lock().set(this.lightsFloat),this.lightsTextureFloat.unlock()),this.lightsTexture8.lock().set(this.lights8),this.lightsTexture8.unlock()},t.updateUniforms=function(){this._lightsTexture8Id.setValue(this.lightsTexture8),e.lightTextureFormat===e.FORMAT_FLOAT&&this._lightsTextureFloatId.setValue(this.lightsTextureFloat),this._lightsTextureInvSizeId.setValue(this._lightsTextureInvSizeData)},t.getSpotDirection=function(e,t){t._node.getWorldTransform().getY(e).mulScalar(-1),e.normalize()},t.getLightAreaSizes=function(e){var t=e._node.getWorldTransform();return t.transformVector(Lh,Rh),Ih[0]=Rh.x,Ih[1]=Rh.y,Ih[2]=Rh.z,t.transformVector(Dh,Rh),Ih[3]=Rh.x,Ih[4]=Rh.y,Ih[5]=Rh.z,Ih},t.addLightDataFlags=function(e,t,i,n,s,r){e[t+0]=n?255:0,e[t+1]=64*i._shape,e[t+2]=255*i._falloffMode,e[t+3]=s?255*r:0},t.addLightDataColor=function(e,t,i,n,s){var r=this.invMaxColorValue,a=n?i._linearFinalColor:i._finalColor;Ah.float2Bytes(a[0]*r,e,t+0,2),Ah.float2Bytes(a[1]*r,e,t+2,2),Ah.float2Bytes(a[2]*r,e,t+4,2),e[t+6]=s?255:0;var o=!!(1&i.mask),h=!!(2&i.mask);e[t+7]=o&&h?127:h?255:0},t.addLightDataSpotAngles=function(e,t,i){Ah.float2Bytes(.499999*i._innerConeAngleCos+.5,e,t+0,2),Ah.float2Bytes(.499999*i._outerConeAngleCos+.5,e,t+2,2)},t.addLightDataShadowBias=function(e,t,i){var n=i.getRenderData(null,0),s=i._getUniformBiasValues(n);Ah.float2BytesRange(s.bias,e,t,-1,20,2),Ah.float2Bytes(s.normalBias,e,t+2,2)},t.addLightDataPositionRange=function(e,t,i,n){var s=Rh.sub2(n,this.boundsMin).div(this.boundsDelta);Ah.float2Bytes(s.x,e,t+0,4),Ah.float2Bytes(s.y,e,t+4,4),Ah.float2Bytes(s.z,e,t+8,4),Ah.float2Bytes(i.attenuationEnd*this.invMaxAttenuation,e,t+12,4)},t.addLightDataSpotDirection=function(e,t,i){this.getSpotDirection(Rh,i),Ah.float2Bytes(.499999*Rh.x+.5,e,t+0,4),Ah.float2Bytes(.499999*Rh.y+.5,e,t+4,4),Ah.float2Bytes(.499999*Rh.z+.5,e,t+8,4)},t.addLightDataLightProjMatrix=function(e,t,i){for(var n=i.data,s=0;s<12;s++)Ah.float2BytesRange(n[s],e,t+4*s,-2,2,4);for(var r=12;r<16;r++)Ah.float2MantissaExponent(n[r],e,t+4*r,4)},t.addLightDataCookies=function(e,t,i){var n="rgb"===i._cookieChannel;if(e[t+0]=Math.floor(255*i.cookieIntensity),e[t+1]=n?255:0,!n){var s=i._cookieChannel;e[t+4]="rrr"===s?255:0,e[t+5]="ggg"===s?255:0,e[t+6]="bbb"===s?255:0,e[t+7]="aaa"===s?255:0}},t.addLightAtlasViewport=function(e,t,i){Ah.float2Bytes(i.x,e,t+0,2),Ah.float2Bytes(i.y,e,t+2,2),Ah.float2Bytes(i.z/3,e,t+4,2)},t.addLightAreaSizes=function(e,t,i){for(var n=this.getLightAreaSizes(i),s=0;s<6;s++)Ah.float2MantissaExponent(n[s],e,t+4*s,4)},t.addLightData=function(t,i,n){var s=2===t._type,r=t.atlasViewportAllocated,a=this.cookiesEnabled&&!!t._cookie&&r,o=this.areaLightsEnabled&&0!==t.shape,h=this.shadowsEnabled&&t.castShadows&&r,l=t._node.getPosition(),c=null,u=null;s?h?c=t.getRenderData(null,0).shadowMatrix:a&&(c=Ph.evalSpotCookieMatrix(t)):(h||a)&&(u=t.atlasViewport);var d=this.lights8,f=i*this.lightsTexture8.width*4;if(this.addLightDataFlags(d,f+4*Oh.FLAGS,t,s,h,t.shadowIntensity),this.addLightDataColor(d,f+4*Oh.COLOR_A,t,n,a),s&&this.addLightDataSpotAngles(d,f+4*Oh.SPOT_ANGLES,t),t.castShadows&&this.addLightDataShadowBias(d,f+4*Oh.SHADOW_BIAS,t),a&&this.addLightDataCookies(d,f+4*Oh.COOKIE_A,t),e.lightTextureFormat===e.FORMAT_FLOAT){var p=this.lightsFloat,m=i*this.lightsTextureFloat.width*4;if(p[m+4*kh.POSITION_RANGE+0]=l.x,p[m+4*kh.POSITION_RANGE+1]=l.y,p[m+4*kh.POSITION_RANGE+2]=l.z,p[m+4*kh.POSITION_RANGE+3]=t.attenuationEnd,s&&(this.getSpotDirection(Rh,t),p[m+4*kh.SPOT_DIRECTION+0]=Rh.x,p[m+4*kh.SPOT_DIRECTION+1]=Rh.y,p[m+4*kh.SPOT_DIRECTION+2]=Rh.z),c)for(var _=c.data,g=0;g<16;g++)p[m+4*kh.PROJ_MAT_0+g]=_[g];if(u&&(p[m+4*kh.ATLAS_VIEWPORT+0]=u.x,p[m+4*kh.ATLAS_VIEWPORT+1]=u.y,p[m+4*kh.ATLAS_VIEWPORT+2]=u.z/3),o){var v=this.getLightAreaSizes(t);p[m+4*kh.AREA_DATA_WIDTH+0]=v[0],p[m+4*kh.AREA_DATA_WIDTH+1]=v[1],p[m+4*kh.AREA_DATA_WIDTH+2]=v[2],p[m+4*kh.AREA_DATA_HEIGHT+0]=v[3],p[m+4*kh.AREA_DATA_HEIGHT+1]=v[4],p[m+4*kh.AREA_DATA_HEIGHT+2]=v[5]}}else this.addLightDataPositionRange(d,f+4*Oh.POSITION_X,t,l),s&&this.addLightDataSpotDirection(d,f+4*Oh.SPOT_DIRECTION_X,t),c&&this.addLightDataLightProjMatrix(d,f+4*Oh.PROJ_MAT_00,c),u&&this.addLightAtlasViewport(d,f+4*Oh.ATLAS_VIEWPORT_A,u),o&&this.addLightAreaSizes(d,f+4*Oh.AREA_DATA_WIDTH_X,t)},e}();Fh.FORMAT_FLOAT=0,Fh.FORMAT_8BIT=1,Fh.lightTextureFormat=Fh.FORMAT_8BIT,Fh.useTexelFetch=!1,Fh.shaderDefines="";var Bh={vertex_normal:_t,vertex_tangent:gt,vertex_texCoord0:bt,vertex_texCoord1:wt,vertex_color:xt,vertex_boneWeights:vt,vertex_boneIndices:yt},Uh={vVertexColor:"vec4",vPositionW:"vec3",vNormalV:"vec3",vNormalW:"vec3",vTangentW:"vec3",vBinormalW:"vec3",vObjectSpaceUpW:"vec3",vUv0:"vec2",vUv1:"vec2"},Nh=function(){function e(e,t){if(this.device=e,this.options=t,this.attributes={vertex_position:mt},t.chunks){var i=t.chunks;for(var n in this.chunks=Object.create(Za),Za)if(i.hasOwnProperty(n)){var s=i[n];for(var r in Bh)Bh.hasOwnProperty(r)&&s.indexOf(r)>=0&&(this.attributes[r]=Bh[r]);this.chunks[n]=s}}else this.chunks=Za;this.shaderPassInfo=uo.get(this.device).getByIndex(t.pass),this.shadowPass=this.shaderPassInfo.isShadow,this.lighting=t.lights.length>0||t.dirLightMapEnabled||t.clusteredLightingEnabled,this.reflections=!!t.reflectionSource,this.needsNormal=this.lighting||this.reflections||t.useSpecular||t.ambientSH||t.useHeights||t.enableGGXSpecular||t.clusteredLightingEnabled&&!this.shadowPass||t.useClearCoatNormals,this.needsNormal=this.needsNormal&&!this.shadowPass,this.needsSceneColor=t.useDynamicRefraction,this.needsScreenSize=t.useDynamicRefraction,this.needsTransforms=t.useDynamicRefraction,this.varyings="",this.varyingDefines="",this.vshader=null,this.frontendDecl=null,this.frontendCode=null,this.frontendFunc=null,this.lightingUv=null,this.defines=[],this.fshader=null}var t=e.prototype;return t._vsAddBaseCode=function(e,t,i){return e+=t.baseVS,1!==i.nineSlicedMode&&2!==i.nineSlicedMode||(e+=t.baseNineSlicedVS),e},t._vsAddTransformCode=function(e,t,i,n){return e+=this.chunks.transformVS},t._setMapTransform=function(e,t,i,n){var s=i+100*n;if(!e[3][s]){var r="texture_"+t+"MapTransform";e[0]+="uniform vec3 "+r+"0;\n",e[0]+="uniform vec3 "+r+"1;\n",e[1]+="varying vec2 vUV"+n+"_"+i+";\n",e[2]+=" vUV"+n+"_"+i+" = vec2(dot(vec3(uv"+n+", 1), "+r+"0), dot(vec3(uv"+n+", 1), "+r+"1));\n",e[3][s]=!0}return e},t._fsGetBaseCode=function(){var e=this.options,t=this.chunks,i=this.chunks.basePS;return 1===e.nineSlicedMode?i+=t.baseNineSlicedPS:2===e.nineSlicedMode&&(i+=t.baseNineSlicedTiledPS),i},t._fsGetStartCode=function(e,t,i,n){var s=i.startPS;return 1===n.nineSlicedMode?s+=i.startNineSlicedPS:2===n.nineSlicedMode&&(s+=i.startNineSlicedTiledPS),s},t._getLightSourceShapeString=function(e){switch(e){case 1:return"Rect";case 2:return"Disk";case 3:return"Sphere";default:return""}},t.generateVertexShader=function(e,t,i){var n=this,s=this.device,r=this.options,a=this.chunks,o="",h="";o=this._vsAddBaseCode(o,a,r),h+=" vPositionW = getWorldPosition();\n",2===this.options.pass&&(o+="varying float vDepth;\n",o+="#ifndef VIEWMATRIX\n",o+="#define VIEWMATRIX\n",o+="uniform mat4 matrix_view;\n",o+="#endif\n",o+="#ifndef CAMERAPLANES\n",o+="#define CAMERAPLANES\n",o+="uniform vec4 camera_params;\n\n",o+="#endif\n",h+=" vDepth = -(matrix_view * vec4(vPositionW,1.0)).z * camera_params.x;\n"),this.options.useInstancing&&(this.attributes.instance_line1=Ht,this.attributes.instance_line2=Wt,this.attributes.instance_line3=Xt,this.attributes.instance_line4=jt,o+=a.instancingVS),this.needsNormal&&(this.attributes.vertex_normal=_t,h+=" vNormalW = getNormal();\n","sphereMap"===r.reflectionSource&&s.fragmentUniformsCount<=16&&(o+=a.viewNormalVS,h+=" vNormalV = getViewNormal();\n"),r.hasTangents&&(r.useHeights||r.useNormals||r.enableGGXSpecular)?(this.attributes.vertex_tangent=gt,o+=a.tangentBinormalVS,h+=" vTangentW = getTangent();\n",h+=" vBinormalW = getBinormal();\n"):!r.enableGGXSpecular&&s.extStandardDerivatives||(h+=" vObjectSpaceUpW = normalize(dNormalMatrix * vec3(0, 1, 0));\n"));for(var l=0;l<2;l++)e[l]&&(this.attributes["vertex_texCoord"+l]="TEXCOORD"+l,o+=a["uv"+l+"VS"],h+=" vec2 uv"+l+" = getUv"+l+"();\n"),t[l]&&(h+=" vUv"+l+" = uv"+l+";\n");var c=[o,this.varyings,h,[]];if(i.forEach((function(e){n._setMapTransform(c,e.name,e.id,e.uv)})),o=c[0],this.varyings=c[1],h=c[2],r.vertexColors&&(this.attributes.vertex_color=xt,h+=" vVertexColor = vertex_color;\n"),r.useMsdf&&r.msdfTextAttribute&&(this.attributes.vertex_outlineParameters=Nt,this.attributes.vertex_shadowParameters=zt,h+=" unpackMsdfParams();\n",o+=a.msdfVS),r.useMorphPosition||r.useMorphNormal)if(r.useMorphTextureBased){o+="#define MORPHING_TEXTURE_BASED\n",r.useMorphPosition&&(o+="#define MORPHING_TEXTURE_BASED_POSITION\n"),r.useMorphNormal&&(o+="#define MORPHING_TEXTURE_BASED_NORMAL\n"),this.attributes.morph_vertex_id=jt;var u=s.isWebGPU?"uint":"float";o+="attribute "+u+" morph_vertex_id;\n"}else o+="#define MORPHING\n",r.useMorphPosition?(this.attributes.morph_pos0=Nt,this.attributes.morph_pos1=zt,this.attributes.morph_pos2=Vt,this.attributes.morph_pos3=Gt,o+="#define MORPHING_POS03\n",o+="attribute vec3 morph_pos0;\n",o+="attribute vec3 morph_pos1;\n",o+="attribute vec3 morph_pos2;\n",o+="attribute vec3 morph_pos3;\n"):r.useMorphNormal&&(this.attributes.morph_nrm0=Nt,this.attributes.morph_nrm1=zt,this.attributes.morph_nrm2=Vt,this.attributes.morph_nrm3=Gt,o+="#define MORPHING_NRM03\n",o+="attribute vec3 morph_nrm0;\n",o+="attribute vec3 morph_nrm1;\n",o+="attribute vec3 morph_nrm2;\n",o+="attribute vec3 morph_nrm3;\n"),r.useMorphNormal?(this.attributes.morph_nrm4=Ht,this.attributes.morph_nrm5=Wt,this.attributes.morph_nrm6=Xt,this.attributes.morph_nrm7=jt,o+="#define MORPHING_NRM47\n",o+="attribute vec3 morph_nrm4;\n",o+="attribute vec3 morph_nrm5;\n",o+="attribute vec3 morph_nrm6;\n",o+="attribute vec3 morph_nrm7;\n"):(this.attributes.morph_pos4=Ht,this.attributes.morph_pos5=Wt,this.attributes.morph_pos6=Xt,this.attributes.morph_pos7=jt,o+="#define MORPHING_POS47\n",o+="attribute vec3 morph_pos4;\n",o+="attribute vec3 morph_pos5;\n",o+="attribute vec3 morph_pos6;\n",o+="attribute vec3 morph_pos7;\n");r.skin?(this.attributes.vertex_boneWeights=vt,this.attributes.vertex_boneIndices=yt,o+=_o(s,a),o+="#define SKIN\n"):r.useInstancing&&(o+="#define INSTANCING\n"),r.screenSpace&&(o+="#define SCREENSPACE\n"),r.pixelSnap&&(o+="#define PIXELSNAP\n"),o=this._vsAddTransformCode(o,s,a,r),this.needsNormal&&(o+=a.normalVS),o+="\n",o+=a.startVS,o+=h,o+=a.endVS,o+="}",Object.keys(Uh).forEach((function(e){o.indexOf(e)>=0&&(n.varyings+="varying "+Uh[e]+" "+e+";\n",n.varyingDefines+="#define VARYING_"+e.toUpperCase()+"\n")}));var d=this.shaderPassInfo.shaderDefines;this.vshader=d+this.varyings+o},t._fsGetBeginCode=function(){for(var e=this.shaderPassInfo.shaderDefines,t=0;t0&&this.defines.push("LIT_SPECULAR_FRESNEL"),t.conserveEnergy&&this.defines.push("LIT_CONSERVE_ENERGY"),t.useSheen&&this.defines.push("LIT_SHEEN"),t.useIridescence&&this.defines.push("LIT_IRIDESCENCE"));var o=[],h=0,l=!1,c=!1,u=!1,d=t.lights.some((function(e){return e._shape&&0!==e._shape}));t.clusteredLightingEnabled&&t.clusteredLightingAreaLightsEnabled&&(d=!0);var f="highp";7===e.areaLightLutFormat&&(n.append("#define AREA_R8_G8_B8_A8_LUTS"),f="lowp"),(d||t.clusteredLightingEnabled)&&(n.append("#define AREA_LIGHTS"),n.append("uniform "+f+" sampler2D areaLightsLutTex1;"),n.append("uniform "+f+" sampler2D areaLightsLutTex2;"));for(var p=0;p0?i.cubeMapProjectBoxPS:i.cubeMapProjectNonePS),s.append(t.skyboxIntensity?i.envMultiplyPS:i.envConstPS)),(this.lighting&&t.useSpecular||this.reflections)&&(t.useMetalness&&s.append(i.metalnessModulatePS),2===t.fresnelModel&&s.append(i.fresnelSchlickPS),t.useIridescence&&s.append(i.iridescenceDiffractionPS)),t.useAo)switch(s.append(i.aoDiffuseOccPS),t.occludeSpecular){case 1:s.append(t.occludeSpecularFloat?i.aoSpecOccSimplePS:i.aoSpecOccConstSimplePS);break;case 2:s.append(t.occludeSpecularFloat?i.aoSpecOccPS:i.aoSpecOccConstPS)}if("envAtlasHQ"===t.reflectionSource)s.append(t.fixSeams?i.fixCubemapSeamsStretchPS:i.fixCubemapSeamsNonePS),s.append(i.envAtlasPS),s.append(i.reflectionEnvHQPS.replace(/\$DECODE_CUBEMAP/g,Sh.decodeFunc(t.reflectionCubemapEncoding)).replace(/\$DECODE/g,Sh.decodeFunc(t.reflectionEncoding)));else if("envAtlas"===t.reflectionSource)s.append(i.envAtlasPS),s.append(i.reflectionEnvPS.replace(/\$DECODE/g,Sh.decodeFunc(t.reflectionEncoding)));else if("cubeMap"===t.reflectionSource)s.append(t.fixSeams?i.fixCubemapSeamsStretchPS:i.fixCubemapSeamsNonePS),s.append(i.reflectionCubePS.replace(/\$DECODE/g,Sh.decodeFunc(t.reflectionEncoding)));else if("sphereMap"===t.reflectionSource){var y=e.fragmentUniformsCount>16?i.reflectionSpherePS:i.reflectionSphereLowPS;s.append(y.replace(/\$DECODE/g,Sh.decodeFunc(t.reflectionEncoding)))}this.reflections&&(t.useClearCoat&&s.append(i.reflectionCCPS),t.useSheen&&s.append(i.reflectionSheenPS)),t.useRefraction&&(t.useDynamicRefraction?s.append(i.refractionDynamicPS):this.reflections&&s.append(i.refractionCubePS)),t.useSheen&&s.append(i.lightSheenPS),t.clusteredLightingEnabled&&(s.append(i.clusteredLightUtilsPS),t.clusteredLightingCookiesEnabled&&s.append(i.clusteredLightCookiesPS),t.clusteredLightingShadowsEnabled&&!t.noShadow&&(o[0]=!0,o[4]=!0,o[6]=!0)),(h>0||t.clusteredLightingEnabled)&&(l&&s.append(i.shadowCascadesPS),(o[5]||o[0])&&s.append(i.shadowStandardPS),o[4]&&(e.webgl2||e.isWebGPU)&&s.append(i.shadowStandardGL2PS),c&&(s.append(i.shadowVSM_commonPS),o[1]&&s.append(i.shadowVSM8PS),o[2]&&s.append(e.extTextureHalfFloatLinear?i.shadowEVSMPS.replace(/\$/g,"16"):i.shadowEVSMnPS.replace(/\$/g,"16")),o[3]&&s.append(e.extTextureFloatLinear?i.shadowEVSMPS.replace(/\$/g,"32"):i.shadowEVSMnPS.replace(/\$/g,"32"))),u&&(s.append(i.linearizeDepthPS),s.append(i.shadowPCSSPS)),e.webgl2||e.extStandardDerivatives||e.isWebGPU||s.append(i.biasConstPS)),t.enableGGXSpecular&&s.append("uniform float material_anisotropy;"),this.lighting&&(s.append(i.lightDiffuseLambertPS),(d||t.clusteredLightingAreaLightsEnabled)&&s.append(i.ltcPS));var x=!1;t.useSpecular&&(this.lighting&&s.append(0===t.shadingModel?i.lightSpecularPhongPS:t.enableGGXSpecular?i.lightSpecularAnisoGGXPS:i.lightSpecularBlinnPS),t.fresnelModel||this.reflections||t.diffuseMapEnabled||(n.append("uniform vec3 material_ambient;"),n.append("#define LIT_OLD_AMBIENT"),x=!0)),s.append(i.combinePS),t.lightMapEnabled&&s.append(t.useSpecular&&t.dirLightMapEnabled?i.lightmapDirAddPS:i.lightmapAddPS);var S=!t.lightMapEnabled||t.lightMapWithoutAmbient;S&&("ambientSH"===t.ambientSource?s.append(i.ambientSHPS):"envAtlas"===t.ambientSource?("envAtlas"!==t.reflectionSource&&"envAtlasHQ"!==t.reflectionSource&&s.append(i.envAtlasPS),s.append(i.ambientEnvPS.replace(/\$DECODE/g,Sh.decodeFunc(t.ambientEncoding)))):s.append(i.ambientConstantPS)),t.useAmbientTint&&!x&&n.append("uniform vec3 material_ambient;"),t.useMsdf&&(t.msdfTextAttribute||n.append("#define UNIFORM_TEXT_PARAMETERS"),s.append(i.msdfPS)),this.needsNormal&&(s.append(i.viewDirPS),t.useSpecular&&s.append(t.enableGGXSpecular?i.reflDirAnisoPS:i.reflDirPS));var b,w=!1,T=!1,A=!1,C=!1,E=!1;if(t.clusteredLightingEnabled&&this.lighting&&(C=!0,w=!0,T=!0,E=!0,s.append(i.floatUnpackingPS),t.lightMaskDynamic&&n.append("#define CLUSTER_MESH_DYNAMIC_LIGHTS"),t.clusteredLightingCookiesEnabled&&n.append("#define CLUSTER_COOKIES"),t.clusteredLightingShadowsEnabled&&!t.noShadow&&(n.append("#define CLUSTER_SHADOWS"),n.append("#define CLUSTER_SHADOW_TYPE_"+fa[t.clusteredLightingShadowType])),t.clusteredLightingAreaLightsEnabled&&n.append("#define CLUSTER_AREALIGHTS"),n.append(Fh.shaderDefines),t.clusteredLightingShadowsEnabled&&!t.noShadow&&s.append(i.clusteredLightShadowsPS),s.append(i.clusteredLightPS)),t.twoSidedLighting&&n.append("uniform float twoSidedLightingNegScaleFactor;"),a.append(this._fsGetStartCode(a,e,i,t)),this.needsNormal&&(t.twoSidedLighting?a.append(" dVertexNormalW = normalize(gl_FrontFacing ? vNormalW * twoSidedLightingNegScaleFactor : -vNormalW * twoSidedLightingNegScaleFactor);"):a.append(" dVertexNormalW = normalize(vNormalW);"),(t.useHeights||t.useNormals)&&t.hasTangents&&(t.twoSidedLighting?(a.append(" dTangentW = gl_FrontFacing ? vTangentW * twoSidedLightingNegScaleFactor : -vTangentW * twoSidedLightingNegScaleFactor;"),a.append(" dBinormalW = gl_FrontFacing ? vBinormalW * twoSidedLightingNegScaleFactor : -vBinormalW * twoSidedLightingNegScaleFactor;")):(a.append(" dTangentW = vTangentW;"),a.append(" dBinormalW = vBinormalW;"))),a.append(" getViewDir();"),v&&a.append(" getTBN(dTangentW, dBinormalW, dVertexNormalW);")),a.append(this.frontendFunc),this.needsNormal&&(t.useSpecular&&r.append(" getReflDir(litArgs_worldNormal, dViewDirW, litArgs_gloss, dTBN);"),t.useClearCoat&&r.append(" ccReflDirW = normalize(-reflect(dViewDirW, litArgs_clearcoat_worldNormal));")),(this.lighting&&t.useSpecular||this.reflections)&&(t.useMetalness&&(r.append(" float f0 = 1.0 / litArgs_ior; f0 = (f0 - 1.0) / (f0 + 1.0); f0 *= f0;"),r.append(" litArgs_specularity = getSpecularModulate(litArgs_specularity, litArgs_albedo, litArgs_metalness, f0);"),r.append(" litArgs_albedo = getAlbedoModulate(litArgs_albedo, litArgs_metalness);")),t.useIridescence&&r.append(" vec3 iridescenceFresnel = getIridescence(saturate(dot(dViewDirW, litArgs_worldNormal)), litArgs_specularity, litArgs_iridescence);")),S&&(r.append(" addAmbient(litArgs_worldNormal);"),t.conserveEnergy&&t.useSpecular&&r.append(" dDiffuseLight = dDiffuseLight * (1.0 - litArgs_specularity);"),t.separateAmbient&&r.append("\n vec3 dAmbientLight = dDiffuseLight;\n dDiffuseLight = vec3(0);\n ")),t.useAmbientTint&&!x&&r.append(" dDiffuseLight *= material_ambient;"),t.useAo&&!t.occludeDirect&&r.append(" occludeDiffuse(litArgs_ao);"),t.lightMapEnabled&&r.append(" addLightMap(\n litArgs_lightmap, \n litArgs_lightmapDir, \n litArgs_worldNormal, \n dViewDirW, \n dReflDirW, \n litArgs_gloss, \n litArgs_specularity, \n dVertexNormalW,\n dTBN\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel,\n litArgs_iridescence\n #endif\n );"),this.lighting||this.reflections){this.reflections&&(t.useClearCoat&&(r.append(" addReflectionCC(ccReflDirW, litArgs_clearcoat_gloss);"),t.fresnelModel>0?(r.append(" ccFresnel = getFresnelCC(dot(dViewDirW, litArgs_clearcoat_worldNormal));"),r.append(" ccReflection.rgb *= ccFresnel;")):r.append(" ccFresnel = 0.0;")),t.useSpecularityFactor&&r.append(" ccReflection.rgb *= litArgs_specularityFactor;"),t.useSheen&&r.append(" addReflectionSheen(litArgs_worldNormal, dViewDirW, litArgs_sheen_gloss);"),r.append(" addReflection(dReflDirW, litArgs_gloss);"),t.fresnelModel>0?r.append(" dReflection.rgb *= \n getFresnel(\n dot(dViewDirW, litArgs_worldNormal), \n litArgs_gloss, \n litArgs_specularity\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel,\n litArgs_iridescence\n #endif\n );"):r.append(" dReflection.rgb *= litArgs_specularity;"),t.useSpecularityFactor&&r.append(" dReflection.rgb *= litArgs_specularityFactor;")),d&&(r.append(" dSpecularLight *= litArgs_specularity;"),t.useSpecular&&r.append(" calcLTCLightValues(litArgs_gloss, litArgs_worldNormal, dViewDirW, litArgs_specularity, litArgs_clearcoat_gloss, litArgs_clearcoat_worldNormal, litArgs_clearcoat_specularity);"));for(var M=0;M 0.00001) {"),2===R&&(b&&!P._cookieFalloff||(r.append(" dAtten *= getSpotEffect(light"+M+"_direction, light"+M+"_innerConeAngle, light"+M+"_outerConeAngle, dLightDirNormW);"),C=!0))),0!==I?0===R?r.append(" dAttenD = getLightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirW, dLightDirNormW);"):r.append(" dAttenD = get"+L+"LightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirW, dLightDirNormW) * 16.0;"):r.append(" dAtten *= getLightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirW, dLightDirNormW);"),P.castShadows&&!t.noShadow){var D=6===P._shadowType,O=1===P._shadowType||2===P._shadowType||3===P._shadowType,k=5===P._shadowType||0===P._shadowType||4===P._shadowType,F=null,B=void 0;switch(P._shadowType){case 1:F="VSM8",B="0.0";break;case 2:F="VSM16",B="5.54";break;case 3:F="VSM32",B=e.textureFloatHighPrecision?"15.0":"5.54";break;case 5:F="PCF1x1";break;case 4:F="PCF5x5";break;case 6:F="PCSS";break;default:F="PCF3x3"}if(null!==F){P._normalOffsetBias&&!P._isVsm&&s.append("#define SHADOW_SAMPLE_NORMAL_OFFSET"),0===R&&s.append("#define SHADOW_SAMPLE_ORTHO"),((k||D)&&e.webgl2||e.extStandardDerivatives||e.isWebGPU)&&s.append("#define SHADOW_SAMPLE_SOURCE_ZBUFFER"),1===R&&s.append("#define SHADOW_SAMPLE_POINT");var U=i.shadowSampleCoordPS;s.append(U.replace("$LIGHT",M)),s.append("#undef SHADOW_SAMPLE_NORMAL_OFFSET"),s.append("#undef SHADOW_SAMPLE_ORTHO"),s.append("#undef SHADOW_SAMPLE_SOURCE_ZBUFFER"),s.append("#undef SHADOW_SAMPLE_POINT");var N="light"+M+"_shadowMatrix";0===R&&P.numCascades>1&&(r.append(" getShadowCascadeMatrix(light"+M+"_shadowMatrixPalette, light"+M+"_shadowCascadeDistances, light"+M+"_shadowCascadeCount);"),N="cascadeShadowMat"),r.append(" dShadowCoord = getShadowSampleCoord"+M+"("+N+", light"+M+"_shadowParams, vPositionW, dLightPosW, dLightDirW, dLightDirNormW, dVertexNormalW);"),0===R&&r.append(" fadeShadow(light"+M+"_shadowCascadeDistances);");var z="SHADOWMAP_PASS(light"+M+"_shadowMap), dShadowCoord, light"+M+"_shadowParams";if(O)z=z+", "+B+", dLightDirW";else if(D){var V="vec2(light"+M+"_shadowSearchArea)";0!==I&&(V="vec2(length(light"+M+"_halfWidth), length(light"+M+"_halfHeight)) * light"+M+"_shadowSearchArea"),z=z+", light"+M+"_cameraParams, "+V+", dLightDirW"}1===R?(F="Point"+F,D||(z+=", dLightDirW")):2===R&&(F="Spot"+F),r.append(" float shadow"+M+" = getShadow"+F+"("+z+");"),r.append(" dAtten *= mix(1.0, shadow"+M+", light"+M+"_shadowIntensity);")}}if(0!==I?t.conserveEnergy&&t.useSpecular?r.append(" dDiffuseLight += ((dAttenD * dAtten) * light"+M+"_color"+(b?" * dAtten3":"")+") * (1.0 - dLTCSpecFres);"):r.append(" dDiffuseLight += (dAttenD * dAtten) * light"+M+"_color"+(b?" * dAtten3":"")+";"):d&&t.conserveEnergy&&t.useSpecular?r.append(" dDiffuseLight += (dAtten * light"+M+"_color"+(b?" * dAtten3":"")+") * (1.0 - litArgs_specularity);"):r.append(" dDiffuseLight += dAtten * light"+M+"_color"+(b?" * dAtten3":"")+";"),t.useSpecular&&r.append(" dHalfDirW = normalize(-dLightDirNormW + dViewDirW);"),P.affectSpecularity)if(0!==I)t.useClearCoat&&r.append(" ccSpecularLight += ccLTCSpecFres * get"+L+"LightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * light"+M+"_color"+(b?" * dAtten3":"")+";"),t.useSpecular&&r.append(" dSpecularLight += dLTCSpecFres * get"+L+"LightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * light"+M+"_color"+(b?" * dAtten3":"")+";");else{var G=!1;0===R&&t.fresnelModel>0&&(G=!0),t.useClearCoat&&r.append(" ccSpecularLight += getLightSpecular(dHalfDirW, ccReflDirW, litArgs_clearcoat_worldNormal, dViewDirW, dLightDirNormW, litArgs_clearcoat_gloss, dTBN) * dAtten * light"+M+"_color"+(b?" * dAtten3":"")+(G?" * getFresnelCC(dot(dViewDirW, dHalfDirW));":";")),t.useSheen&&r.append(" sSpecularLight += getLightSpecularSheen(dHalfDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_sheen_gloss) * dAtten * light"+M+"_color"+(b?" * dAtten3;":";")),t.useSpecular&&r.append(" dSpecularLight += getLightSpecular(dHalfDirW, dReflDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_gloss, dTBN) * dAtten * light"+M+"_color"+(b?" * dAtten3":"")+(G?" \n * getFresnel(\n dot(dViewDirW, dHalfDirW), \n litArgs_gloss, \n litArgs_specularity\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel, \n litArgs_iridescence\n #endif\n );":"* litArgs_specularity;"))}0!==R&&r.append(" }")}}t.clusteredLightingEnabled&&this.lighting&&(T=!0,A=!0,w=!0,r.append(" addClusteredLights(\n litArgs_worldNormal, \n dViewDirW, \n dReflDirW,\n #if defined(LIT_CLEARCOAT)\n ccReflDirW,\n #endif\n litArgs_gloss, \n litArgs_specularity, \n dVertexNormalW, \n dTBN, \n #if defined(LIT_IRIDESCENCE)\n iridescenceFresnel,\n #endif\n litArgs_clearcoat_worldNormal, \n litArgs_clearcoat_gloss,\n litArgs_sheen_gloss,\n litArgs_iridescence_intensity\n );")),d&&(t.useClearCoat&&r.append(" litArgs_clearcoat_specularity = 1.0;"),t.useSpecular&&r.append(" litArgs_specularity = vec3(1);")),t.useRefraction&&r.append(" addRefraction(\n litArgs_worldNormal, \n dViewDirW, \n litArgs_thickness, \n litArgs_gloss, \n litArgs_specularity, \n litArgs_albedo, \n litArgs_transmission,\n litArgs_ior\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel, \n litArgs_iridescence\n #endif\n );")}t.useAo&&(t.occludeDirect&&r.append(" occludeDiffuse(litArgs_ao);"),1!==t.occludeSpecular&&2!==t.occludeSpecular||r.append(" occludeSpecular(litArgs_gloss, litArgs_ao, litArgs_worldNormal, dViewDirW);")),t.useSpecularityFactor&&r.append(" dSpecularLight *= litArgs_specularityFactor;"),!1===t.opacityFadesSpecular&&(2!==t.blendType&&4!==t.blendType||(r.append("float specLum = dot((dSpecularLight + dReflection.rgb * dReflection.a), vec3( 0.2126, 0.7152, 0.0722 ));"),r.append("#ifdef LIT_CLEARCOAT\n specLum += dot(ccSpecularLight * litArgs_clearcoat_specularity + ccReflection.rgb * litArgs_clearcoat_specularity, vec3( 0.2126, 0.7152, 0.0722 ));\n#endif"),r.append("litArgs_opacity = clamp(litArgs_opacity + gammaCorrectInput(specLum), 0.0, 1.0);")),r.append("litArgs_opacity *= material_alphaFade;")),r.append(i.endPS),2===t.blendType||6===t.blendType||t.alphaToCoverage?r.append(i.outputAlphaPS):4===t.blendType?r.append(i.outputAlphaPremulPS):r.append(i.outputAlphaOpaquePS),t.useMsdf&&r.append(" gl_FragColor = applyMsdf(gl_FragColor);"),r.append(i.outputPS),r.append(i.debugOutputPS),w&&s.prepend(i.lightDirPointPS),T&&s.prepend(i.falloffLinearPS),A&&s.prepend(i.falloffInvSquaredPS),C&&s.prepend(i.spotPS),E&&!t.clusteredLightingEnabled&&s.prepend(i.cookiePS);var H="",W="void evaluateBackend() {\n"+r.code+"\n}";s.append(W),a.append(i.debugProcessFrontendPS),a.append(" evaluateBackend();"),a.append("}\n");var X=n.code+s.code+a.code;return X.includes("dTBN")&&(H+="mat3 dTBN;\n"),X.includes("dVertexNormalW")&&(H+="vec3 dVertexNormalW;\n"),X.includes("dTangentW")&&(H+="vec3 dTangentW;\n"),X.includes("dBinormalW")&&(H+="vec3 dBinormalW;\n"),X.includes("dViewDirW")&&(H+="vec3 dViewDirW;\n"),X.includes("dReflDirW")&&(H+="vec3 dReflDirW;\n"),X.includes("dHalfDirW")&&(H+="vec3 dHalfDirW;\n"),X.includes("ccReflDirW")&&(H+="vec3 ccReflDirW;\n"),X.includes("dLightDirNormW")&&(H+="vec3 dLightDirNormW;\n"),X.includes("dLightDirW")&&(H+="vec3 dLightDirW;\n"),X.includes("dLightPosW")&&(H+="vec3 dLightPosW;\n"),X.includes("dShadowCoord")&&(H+="vec3 dShadowCoord;\n"),X.includes("dReflection")&&(H+="vec4 dReflection;\n"),X.includes("dDiffuseLight")&&(H+="vec3 dDiffuseLight;\n"),X.includes("dSpecularLight")&&(H+="vec3 dSpecularLight;\n"),X.includes("dAtten")&&(H+="float dAtten;\n"),X.includes("dAttenD")&&(H+="float dAttenD;\n"),X.includes("dAtten3")&&(H+="vec3 dAtten3;\n"),X.includes("dMsdf")&&(H+="vec4 dMsdf;\n"),X.includes("ccFresnel")&&(H+="float ccFresnel;\n"),X.includes("ccReflection")&&(H+="vec3 ccReflection;\n"),X.includes("ccSpecularLight")&&(H+="vec3 ccSpecularLight;\n"),X.includes("ccSpecularityNoFres")&&(H+="float ccSpecularityNoFres;\n"),X.includes("sSpecularLight")&&(H+="vec3 sSpecularLight;\n"),X.includes("sReflection")&&(H+="vec3 sReflection;\n"),this._fsGetBeginCode()+this.varyings+this.varyingDefines+this._fsGetBaseCode()+H+this.frontendDecl+X},t.generateFragmentShader=function(e,t,i,n){var s,r=this.options;this.frontendDecl=e,this.frontendCode=t,this.frontendFunc=i,this.lightingUv=n,3===r.pass?this.fshader=this._fsGetPickPassCode():2===r.pass?this.fshader=this._fsGetDepthPassCode():this.shadowPass?this.fshader=this._fsGetShadowPassCode():r.customFragmentShader?this.fshader=this._fsGetBeginCode()+r.customFragmentShader:this.fshader=this._fsGetLitPassCode(),null==(s=this.handleCompatibility)||s.call(this)},t.getDefinition=function(){var e=Hs.createDefinition(this.device,{name:"LitShader",attributes:this.attributes,vertexCode:this.vshader,fragmentCode:this.fshader});return this.shaderPassInfo.isForward&&(e.tag=1),e},e}(),zh={generateKey:function(e){return"lit"+Object.keys(e).sort().map((function(t){return"chunks"===t?zh.generateChunksKey(e):"lights"===t?zh.generateLightsKey(e):t+e[t]})).join("")},generateLightsKey:function(e){return e.lights.map((function(t){return e.clusteredLightingEnabled&&0!==t._type?"":t.key})).join("")},generateChunksKey:function(e){var t;return Object.keys(null!=(t=e.chunks)?t:{}).sort().map((function(t){return t+e.chunks[t]})).join("")}},Vh=[0,1,2,3,4,5,6,7],Gh={generateKey:function(e){return Fi("lit"+Vh.map((function(t,i){return e.usedUvs[i]?"1":"0"})).join("")+e.shaderChunk+zh.generateKey(e.litOptions))},createShaderDefinition:function(e,t){var i=new Nh(e,t.litOptions),n=new vh,s=new vh,r=new vh;n.append("uniform float textureBias;"),n.append(i.chunks.litShaderArgsPS),s.append(t.shaderChunk),r.code="evaluateFrontend();",r.code="\n"+r.code.split("\n").map((function(e){return" "+e})).join("\n")+"\n\n";var a=t.usedUvs||[!0];return i.generateVertexShader(a,a,[]),i.generateFragmentShader(n.code,s.code,r.code,"vUv0"),i.getDefinition()}},Hh=new function(){this.usedUvs=void 0,this.shaderChunk=void 0,this.litOptions=new _h},Wh=function(e){function t(){for(var t,i=arguments.length,n=new Array(i),s=0;s1?0:1),this.lightsBuffer.updateUniforms(),this._clusterWorldTextureId.setValue(this.clusterTexture),this._clusterMaxCellsId.setValue(this.maxCellLightCount);var e=this.boundsDelta;this._clusterCellsCountByBoundsSizeData[0]=this._cells.x/e.x,this._clusterCellsCountByBoundsSizeData[1]=this._cells.y/e.y,this._clusterCellsCountByBoundsSizeData[2]=this._cells.z/e.z,this._clusterCellsCountByBoundsSizeId.setValue(this._clusterCellsCountByBoundsSizeData),this._clusterBoundsMinData[0]=this.boundsMin.x,this._clusterBoundsMinData[1]=this.boundsMin.y,this._clusterBoundsMinData[2]=this.boundsMin.z,this._clusterBoundsDeltaData[0]=e.x,this._clusterBoundsDeltaData[1]=e.y,this._clusterBoundsDeltaData[2]=e.z,this._clusterCompressionLimit0Data[0]=this._maxAttenuation,this._clusterCompressionLimit0Data[1]=this._maxColorValue,this._clusterTextureSizeId.setValue(this._clusterTextureSizeData),this._clusterBoundsMinId.setValue(this._clusterBoundsMinData),this._clusterBoundsDeltaId.setValue(this._clusterBoundsDeltaData),this._clusterCellsDotId.setValue(this._clusterCellsDotData),this._clusterCellsMaxId.setValue(this._clusterCellsMaxData),this._clusterCompressionLimit0Id.setValue(this._clusterCompressionLimit0Data)},t.evalLightCellMinMax=function(e,t,i){t.copy(e.min),t.sub(this.boundsMin),t.div(this.boundsDelta),t.mul2(t,this.cells),t.floor(),i.copy(e.max),i.sub(this.boundsMin),i.div(this.boundsDelta),i.mul2(i,this.cells),i.ceil(),t.max(ye.ZERO),i.min(this._cellsLimit)},t.collectLights=function(e){var t=this.lightsBuffer.maxLights,i=this._usedLights,n=1;e.forEach((function(e){var s,r=!!(3&e.mask),a=2===e.type&&0===e._outerConeAngle;e.enabled&&0!==e.type&&e.visibleThisFrame&&e.intensity>0&&r&&!a&&(n1){t.copy(e[1].min),i.copy(e[1].max);for(var n=2;n1?this.shaderCube:this.shader2d,r=this.device;n>1&&this.initInvViewProjMatrices(),this.blitTextureId.setValue(t.cookie),r.setBlendState(Ei.NOBLEND);for(var a=0;a1){var o=$h.z/3,h=this.lightTextureAtlas.cubeSlotsOffsets[a];$h.x+=o*h.x,$h.y+=o*h.y,$h.z=o,$h.w=o,this.invViewProjId.setValue(e._invViewProjMatrices[a].data)}$h.mulScalar(i.colorBuffer.width),ho(r,i,s,$h)}}},y(e,[{key:"shader2d",get:function(){return this.getShader("blitShader2d","\n varying vec2 uv0;\n uniform sampler2D blitTexture;\n void main(void) {\n gl_FragColor = texture2D(blitTexture, uv0);\n }")}},{key:"shaderCube",get:function(){return this.getShader("blitShaderCube","\n varying vec2 uv0;\n uniform samplerCube blitTexture;\n uniform mat4 invViewProj;\n void main(void) {\n vec4 projPos = vec4(uv0 * 2.0 - 1.0, 0.5, 1.0);\n vec4 worldPos = invViewProj * projPos;\n gl_FragColor = textureCube(blitTexture, worldPos.xyz);\n }")}}]),e}();Jh._invViewProjMatrices=null;var el=function(){function e(e,t){this.texture=e,this.cached=!1,this.renderTargets=t}return e.prototype.destroy=function(){this.texture&&(this.texture.destroy(),this.texture=null);for(var e=this.renderTargets,t=0;t1)for(var h=1/o,l=0;l1)for(var f=0;f0){for(var s=this.slots,r=0;rs&&(s=a)}return fl.min=n,fl.max=s,fl}var ml=function(){function e(e,t){this.renderer=void 0,this.shadowRenderer=void 0,this.device=void 0,this.renderer=e,this.shadowRenderer=t,this.device=e.device}var t=e.prototype;return t.cull=function(e,t,i){e.visibleThisFrame=!0,e._shadowMap||(e._shadowMap=el.create(this.device,e));var n=i._nearClip;this.generateSplitDistances(e,n,Math.min(i._farClip,e.shadowDistance));for(var s=e.shadowUpdateOverrides,r=0;rm&&(m=g)}var v=h.right,y=h.up,x=h.forward,S=.25*e._shadowResolution/m,b=Math.ceil(cl.dot(y)*S)/S,w=Math.ceil(cl.dot(v)*S)/S,T=y.mulScalar(b),A=v.mulScalar(w),C=cl.dot(x),E=x.mulScalar(C);cl.add2(T,A).add(E),h.setPosition(cl),h.translateLocal(0,0,1e6),o.nearClip=.01,o.farClip=2e6,o.orthoHeight=m,this.renderer.updateCameraFrustum(o),this.shadowRenderer.cullShadowCasters(t,a.visibleCasters,o);for(var M=!0,P=a.visibleCasters,R=0;R=1&&t<=3?new me(0,0,0,0):new me(1,1,1,1),s.clearDepthBuffer=!0,s.clearStencilBuffer=!1,s},e.setShadowCameraSettings=function(e,t,i,n,s){var r=4===i||(5===i||0===i)&&t.supportsDepthShadow;1!==n||s||(r=!1),e.clearColorBuffer=!r};var t=e.prototype;return t.cullShadowCasters=function(e,t,i){for(var n=0,s=e.length,r=0;r1&&(this.renderer.scene.clusteredLightingEnabled&&0!==e._type||this.applyVsmBlur(e,t))},t.getVsmBlurShader=function(e,t,i){var n=(e?this.blurPackedVsmShader:this.blurVsmShader)[t][i];if(!n){this.blurVsmWeights[i]=function(e){for(var t=(e-1)/6,i=.5*(e-1),n=new Array(e),s=0,r=0;r0)&&this.alphaTestId.setValue(t.alphaTest)},t.updateCpuSkinMatrices=function(e){Al++;var t=e.length;if(0!==t)for(var i=0;i0&&(this._instancedDrawCalls++,e.setVertexBuffer(r.vertexBuffer),e.draw(i.primitive[n],r.count));else{var a=t.node.worldTransform;this.modelMatrixId.setValue(a.data),s&&this.normalMatrixId.setValue(t.node.normalMatrix.data),e.draw(i.primitive[n])}},t.drawInstance2=function(e,t,i,n){var s=t.instancingData;s?s.count>0&&(this._instancedDrawCalls++,e.draw(i.primitive[n],s.count,!0)):e.draw(i.primitive[n],void 0,!0)},t.cull=function(e,t,i){var n=0,s=t.length;if(!e.frustumCulling){for(var r=0;r>>16)>>>0;return 2.3283064365386963e-10*(t=((16711935&(t=((252645135&(t=((858993459&(t=((1431655765&t)<<1|(2863311530&t)>>>1)>>>0))<<2|(3435973836&t)>>>2)>>>0))<<4|(4042322160&t)>>>4)>>>0))<<8|(4278255360&t)>>>8)>>>0)},Wl=function(e){switch(e){case ni:return"Cubemap";case ri:return"Octahedral";default:return"Equirect"}},Xl=function(e,t,i){if(e<=0)t[i+0]=0,t[i+1]=0,t[i+2]=0,t[i+3]=0;else if(e>=1)t[i+0]=255,t[i+1]=0,t[i+2]=0,t[i+3]=0;else{var n=1*e%1,s=255*e%1,r=65025*e%1,a=16581375*e%1;n-=s/255,s-=r/255,r-=a/255,t[i+0]=Math.min(255,Math.floor(256*n)),t[i+1]=Math.min(255,Math.floor(256*s)),t[i+2]=Math.min(255,Math.floor(256*r)),t[i+3]=Math.min(255,Math.floor(256*a))}},jl=function(e,t,i,n){var s=2*i*Math.PI,r=Math.pow(1-t,1/(n+1)),a=Math.sqrt(1-r*r);e.set(Math.cos(s)*a,Math.sin(s)*a,r).normalize()},ql=function(e,t,i){var n=2*i*Math.PI,s=Math.sqrt(1-t),r=Math.sqrt(t);e.set(Math.cos(n)*r,Math.sin(n)*r,s).normalize()},Yl=function(e,t,i,n){var s=2*i*Math.PI,r=Math.sqrt((1-t)/(1+(n*n-1)*t)),a=Math.sqrt(1-r*r);e.set(Math.cos(s)*a,Math.sin(s)*a,r).normalize()},Kl=function(e,t){var i=e*t,n=t/(1-e*e+i*i);return n*n*(1/Math.PI)},Zl={16:{2:26,8:20,32:17,128:16,512:16},32:{2:53,8:40,32:34,128:32,512:32},128:{2:214,8:163,32:139,128:130,512:128},1024:{2:1722,8:1310,32:1114,128:1041,512:1025}},Ql=function(e,t,i){for(var n=i/e,s=1-Math.log2(t)/11,r=s*s,a=new ye,o=new ye,h=new ye(0,0,1),l=[],c=function(e,t){var i=Zl[e];return i&&i[t]||e}(e,t),u=0;u0){var f=Kl(Math.min(1,d),r)/4+.001,p=.5*Math.log2(n/f);l.push(o.x,o.y,o.z,p)}}for(;l.length<4*e;)l.push(0,0,0,0);return l},$l=function(e,t,i){var n=function(e){for(var t=e.length,i=Math.min(t,512),n=Math.ceil(t/i),s=new Uint8Array(i*n*4),r=0,a=0;a>2*h),rect:r,seamPixels:s}),r.y+=r.w,r.z=Math.max(1,Math.floor(.5*r.z)),r.w=Math.max(1,Math.floor(.5*r.w));return r.set(128*s,384*s,64*s,32*s),rc(e,n,{numSamples:(null==t?void 0:t.numAmbientSamples)||2048,distribution:"lambert",rect:r,seamPixels:s}),n},e.generatePrefilteredAtlas=function(e,t){for(var i=e[0].device,n=e[0].format,s=e[0].type,r=(null==t?void 0:t.target)||new ys(i,{name:"envPrefilteredAtlas",width:(null==t?void 0:t.size)||512,height:(null==t?void 0:t.size)||512,format:n,type:s,projection:si,addressU:1,addressV:1,mipmaps:!1}),a=r.width/512,o=new be(0,0,512*a,256*a),h=ac(512),l=0;l0){if(i[e]t.length){for(var n=t,s=n.charAt(n.length-1),r=i[e]-n.length,a=0;a0,e.litOptions.blendType=i.blendType,e.litOptions.screenSpace=n&&0!=(n&ga),e.litOptions.skin=n&&0!=(2&n),e.litOptions.useInstancing=n&&0!=(n&ma),e.litOptions.useMorphPosition=n&&0!=(n&ya),e.litOptions.useMorphNormal=n&&0!=(n&xa),e.litOptions.useMorphTextureBased=n&&0!=(n&Sa),e.litOptions.nineSlicedMode=i.nineSlicedMode||0,t.clusteredLightingEnabled&&i.useLighting?(e.litOptions.clusteredLightingEnabled=!0,e.litOptions.clusteredLightingCookiesEnabled=t.lighting.cookiesEnabled,e.litOptions.clusteredLightingShadowsEnabled=t.lighting.shadowsEnabled,e.litOptions.clusteredLightingShadowType=t.lighting.shadowType,e.litOptions.clusteredLightingAreaLightsEnabled=t.lighting.areaLightsEnabled):(e.litOptions.clusteredLightingEnabled=!1,e.litOptions.clusteredLightingCookiesEnabled=!1,e.litOptions.clusteredLightingShadowsEnabled=!1,e.litOptions.clusteredLightingAreaLightsEnabled=!1)},t._updateUVOptions=function(e,t,i,n){var s=!1,r=!1,a=!1;i&&(s=0!=(4&i),r=0!=(8&i),a=0!=(16&i)),e.litOptions.vertexColors=!1,this._mapXForms=[];var o={};for(var h in lc)this._updateTexOptions(e,t,h,s,r,a,n,o);this._mapXForms=null,e.litOptions.lightMapEnabled=e.lightMap,e.litOptions.dirLightMapEnabled=e.dirLightMap,e.litOptions.useHeights=e.heightMap,e.litOptions.useNormals=e.normalMap,e.litOptions.useClearCoatNormals=e.clearCoatNormalMap,e.litOptions.useAo=e.aoMap||e.aoVertexColor,e.litOptions.diffuseMapEnabled=e.diffuseMap},t._updateTexOptions=function(e,t,i,n,s,r,a,o){var h="opacity"===i;if(!a||h){var l=i+"Map",c=i+"VertexColor",u=i+"VertexColorChannel",d=l+"Channel",f=l+"Transform",p=l+"Uv",m=l+"Identifier";if("light"!==i&&(e[l]=!1,e[m]=void 0,e[d]="",e[f]=0,e[p]=0),e[c]=!1,e[u]="",h&&3===t.blendType&&0===t.alphaTest&&!t.alphaToCoverage)return;if("height"!==i&&t[c]&&r&&(e[c]=t[c],e[u]=t[u],e.litOptions.vertexColors=!0),t[l]){var _=!0;if(0!==t[p]||n||(_=!1),1!==t[p]||s||(_=!1),_){var g=t[l].id,v=o[g];void 0===v&&(o[g]=i,v=i),e[l]=!!t[l],e[m]=v,e[f]=this._getMapTransformID(t.getUniform(f),t[p]),e[d]=t[d],e[p]=t[p]}}}},t._updateMinOptions=function(e,t){e.opacityTint=1!==t.opacity&&3!==t.blendType,e.litOptions.lights=[]},t._updateMaterialOptions=function(e,t){var i,n,s,r,a,o=(t.diffuseTint||!t.diffuseMap&&!t.diffuseVertexColor)&&fc(t.diffuse),h=!!(t.useMetalness||t.specularMap||t.sphereMap||t.cubeMap||(a=t.specular,0!==a.r||0!==a.g||0!==a.b)||t.specularityFactor>0&&t.useMetalness||t.enableGGXSpecular||t.clearCoat>0),l=!t.useMetalness||t.useMetalnessSpecularColor,c=h&&(t.specularTint||!t.specularMap&&!t.specularVertexColor)&&fc(t.specular),u=h&&t.useMetalnessSpecularColor&&(t.specularityFactorTint||t.specularityFactor<1&&!t.specularityFactorMap),d=!t.emissiveMap||fc(t.emissive)&&t.emissiveTint,f=1!==t.emissiveIntensity,p=!!t.normalMap&&(t.normalMap.format===Qe||t.normalMap.type===Qt);e.opacityTint=1!==t.opacity&&3!==t.blendType?1:0,e.ambientTint=t.ambientTint,e.diffuseTint=o?2:0,e.specularTint=c?2:0,e.specularityFactorTint=u?1:0,e.metalnessTint=t.useMetalness&&t.metalness<1?1:0,e.glossTint=1,e.emissiveTint=(d?2:0)+(f?1:0),e.diffuseEncoding=null==(i=t.diffuseMap)?void 0:i.encoding,e.diffuseDetailEncoding=null==(n=t.diffuseDetailMap)?void 0:n.encoding,e.emissiveEncoding=null==(s=t.emissiveMap)?void 0:s.encoding,e.lightMapEncoding=null==(r=t.lightMap)?void 0:r.encoding,e.packedNormal=p,e.refractionTint=1!==t.refraction?1:0,e.refractionIndexTint=t.refractionIndex!==1/1.5?1:0,e.thicknessTint=t.useDynamicRefraction&&1!==t.thickness?1:0,e.specularEncoding=t.specularEncoding||"linear",e.sheenEncoding=t.sheenEncoding||"linear",e.aoMapUv=t.aoUvSet,e.aoDetail=!!t.aoMap,e.diffuseDetail=!!t.diffuseMap,e.normalDetail=!!t.normalMap,e.diffuseDetailMode=t.diffuseDetailMode,e.aoDetailMode=t.aoDetailMode,e.clearCoatTint=1!==t.clearCoat?1:0,e.clearCoatGloss=!!t.clearCoatGloss,e.clearCoatGlossTint=1!==t.clearCoatGloss?1:0,e.iorTint=t.refractionIndex!==1/1.5?1:0,e.iridescenceTint=1!==t.iridescence?1:0,e.sheenTint=t.useSheen&&fc(t.sheen)?2:0,e.sheenGlossTint=1,e.glossInvert=t.glossInvert,e.sheenGlossInvert=t.sheenGlossInvert,e.clearCoatGlossInvert=t.clearCoatGlossInvert,e.useSpecularColor=l,e.litOptions.separateAmbient=!1,e.litOptions.useAmbientTint=t.ambientTint,e.litOptions.customFragmentShader=t.customFragmentShader,e.litOptions.pixelSnap=t.pixelSnap,e.litOptions.shadingModel=t.shadingModel,e.litOptions.ambientSH=!!t.ambientSH,e.litOptions.fastTbn=t.fastTbn,e.litOptions.twoSidedLighting=t.twoSidedLighting,e.litOptions.occludeSpecular=t.occludeSpecular,e.litOptions.occludeSpecularFloat=1!==t.occludeSpecularIntensity,e.litOptions.useMsdf=!!t.msdfMap,e.litOptions.msdfTextAttribute=!!t.msdfTextAttribute,e.litOptions.alphaToCoverage=t.alphaToCoverage,e.litOptions.opacityFadesSpecular=t.opacityFadesSpecular,e.litOptions.cubeMapProjection=t.cubeMapProjection,e.litOptions.occludeDirect=t.occludeDirect,e.litOptions.conserveEnergy=t.conserveEnergy&&0!==t.shadingModel,e.litOptions.useSpecular=h,e.litOptions.useSpecularityFactor=(u||!!t.specularityFactorMap)&&t.useMetalnessSpecularColor,e.litOptions.enableGGXSpecular=t.enableGGXSpecular,e.litOptions.fresnelModel=t.fresnelModel,e.litOptions.useRefraction=(t.refraction||!!t.refractionMap)&&(t.useDynamicRefraction||!!e.litOptions.reflectionSource),e.litOptions.useClearCoat=!!t.clearCoat,e.litOptions.useSheen=t.useSheen,e.litOptions.useIridescence=t.useIridescence&&0!==t.iridescence,e.litOptions.useMetalness=t.useMetalness,e.litOptions.useDynamicRefraction=t.useDynamicRefraction},t._updateEnvOptions=function(e,t,i){e.litOptions.fog=t.useFog?i.fog:"none",e.litOptions.gamma=t.useGammaTonemap?i.gammaCorrection:0,e.litOptions.toneMap=t.useGammaTonemap?i.toneMapping:-1,e.litOptions.fixSeams=!!t.cubeMap&&t.cubeMap.fixCubemapSeams;var n=0===t.shadingModel,s=!1;if(t.envAtlas&&t.cubeMap&&!n?(e.litOptions.reflectionSource="envAtlasHQ",e.litOptions.reflectionEncoding=t.envAtlas.encoding,e.litOptions.reflectionCubemapEncoding=t.cubeMap.encoding):t.envAtlas&&!n?(e.litOptions.reflectionSource="envAtlas",e.litOptions.reflectionEncoding=t.envAtlas.encoding):t.cubeMap?(e.litOptions.reflectionSource="cubeMap",e.litOptions.reflectionEncoding=t.cubeMap.encoding):t.sphereMap?(e.litOptions.reflectionSource="sphereMap",e.litOptions.reflectionEncoding=t.sphereMap.encoding):t.useSkybox&&i.envAtlas&&i.skybox&&!n?(e.litOptions.reflectionSource="envAtlasHQ",e.litOptions.reflectionEncoding=i.envAtlas.encoding,e.litOptions.reflectionCubemapEncoding=i.skybox.encoding,s=!0):t.useSkybox&&i.envAtlas&&!n?(e.litOptions.reflectionSource="envAtlas",e.litOptions.reflectionEncoding=i.envAtlas.encoding,s=!0):t.useSkybox&&i.skybox?(e.litOptions.reflectionSource="cubeMap",e.litOptions.reflectionEncoding=i.skybox.encoding,s=!0):(e.litOptions.reflectionSource=null,e.litOptions.reflectionEncoding=null),t.ambientSH&&!n)e.litOptions.ambientSource="ambientSH",e.litOptions.ambientEncoding=null;else{var r=t.envAtlas||(t.useSkybox&&i.envAtlas?i.envAtlas:null);r&&!n?(e.litOptions.ambientSource="envAtlas",e.litOptions.ambientEncoding=r.encoding):(e.litOptions.ambientSource="constant",e.litOptions.ambientEncoding=null)}e.litOptions.skyboxIntensity=s&&(1!==i.skyboxIntensity||i.physicalUnits),e.litOptions.useCubeMapRotation=s&&i._skyboxRotationShaderInclude},t._updateLightOptions=function(e,t,i,n,s){if(e.lightMap=!1,e.lightMapChannel="",e.lightMapUv=0,e.lightMapTransform=0,e.litOptions.lightMapWithoutAmbient=!1,e.dirLightMap=!1,n&&(e.litOptions.noShadow=0!=(1&n),0!=(64&n)&&(e.lightMapEncoding=7===t.lightmapPixelFormat?"rgbm":"linear",e.lightMap=!0,e.lightMapChannel="rgb",e.lightMapUv=1,e.lightMapTransform=0,e.litOptions.lightMapWithoutAmbient=!i.lightMap,0!=(n&_a)&&(e.dirLightMap=!0),0!=(n&ba)&&(e.litOptions.lightMapWithoutAmbient=!1))),i.useLighting){var r=[],a=n?n>>16:1;e.litOptions.lightMaskDynamic=!!(1&a),s&&(gh.collectLights(0,s[0],r,a),gh.collectLights(1,s[1],r,a),gh.collectLights(2,s[2],r,a)),e.litOptions.lights=r}else e.litOptions.lights=[];0===e.litOptions.lights.length&&(e.litOptions.noShadow=!0)},t._getMapTransformID=function(e,t){if(!e)return 0;var i=this._mapXForms[t];i||(i=[],this._mapXForms[t]=i);for(var n=0;n0&&(this._setParameter("material_clearCoat",this.clearCoat),this._setParameter("material_clearCoatGloss",this.clearCoatGloss),this._setParameter("material_clearCoatBumpiness",this.clearCoatBumpiness)),this._setParameter("material_gloss",n("gloss")),this.emissiveMap&&!this.emissiveTint||this._setParameter("material_emissive",n("emissive")),1!==this.emissiveIntensity&&this._setParameter("material_emissiveIntensity",this.emissiveIntensity),this.refraction>0&&this._setParameter("material_refraction",this.refraction),this.useDynamicRefraction&&(this._setParameter("material_thickness",this.thickness),this._setParameter("material_attenuation",n("attenuation")),this._setParameter("material_invAttenuationDistance",0===this.attenuationDistance?0:1/this.attenuationDistance)),this.useIridescence&&(this._setParameter("material_iridescence",this.iridescence),this._setParameter("material_iridescenceRefractionIndex",this.iridescenceRefractionIndex),this._setParameter("material_iridescenceThicknessMin",this.iridescenceThicknessMin),this._setParameter("material_iridescenceThicknessMax",this.iridescenceThicknessMax)),this._setParameter("material_opacity",this.opacity),!1===this.opacityFadesSpecular&&this._setParameter("material_alphaFade",this.alphaFade),this.occludeSpecular&&this._setParameter("material_occludeSpecularIntensity",this.occludeSpecularIntensity),1===this.cubeMapProjection&&this._setParameter(n("cubeMapProjectionBox")),lc)this._updateMap(s);this.ambientSH&&this._setParameter("ambientSH[0]",this.ambientSH),this.normalMap&&this._setParameter("material_bumpiness",this.bumpiness),this.normalMap&&this.normalDetailMap&&this._setParameter("material_normalDetailMapBumpiness",this.normalDetailMapBumpiness),this.heightMap&&this._setParameter("material_heightMapFactor",n("heightMapFactor"));var r=0===this.shadingModel;this.envAtlas&&this.cubeMap&&!r?(this._setParameter("texture_envAtlas",this.envAtlas),this._setParameter("texture_cubeMap",this.cubeMap)):this.envAtlas&&!r?this._setParameter("texture_envAtlas",this.envAtlas):this.cubeMap?this._setParameter("texture_cubeMap",this.cubeMap):this.sphereMap&&this._setParameter("texture_sphereMap",this.sphereMap),this._setParameter("material_reflectivity",this.reflectivity),this._processParameters("_activeParams"),this._dirtyShader&&this.clearVariants()},i.updateEnvUniforms=function(e,t){var i=0===this.shadingModel;!(this.envAtlas&&!i||this.cubeMap||this.sphereMap)&&this.useSkybox&&(t.envAtlas&&t.skybox&&!i?(this._setParameter("texture_envAtlas",t.envAtlas),this._setParameter("texture_cubeMap",t.skybox)):t.envAtlas&&!i?this._setParameter("texture_envAtlas",t.envAtlas):t.skybox&&this._setParameter("texture_cubeMap",t.skybox)),this._processParameters("_activeLightingParams")},i.getShaderVariant=function(e,t,i,n,s,r,a,o,h){this.updateEnvUniforms(e,t);var l=uo.get(e).getByIndex(s),c=2===s||3===s||l.isShadow,u=c?uc.optionsContextMin:uc.optionsContext;c?this.shaderOptBuilder.updateMinRef(u,t,this,i,s,r):this.shaderOptBuilder.updateRef(u,t,this,i,s,r),this.onUpdateShader&&(u=this.onUpdateShader(u));var d=new qa(a,o,h),f=$a(e);f.register("standard",uc);var p=f.getProgram("standard",u,d,this.userId);return this._dirtyShader=!1,p},i.destroy=function(){for(var t in this._assetReferences)this._assetReferences[t]._unbind();this._assetReferences=null,e.prototype.destroy.call(this)},y(t,[{key:"shader",get:function(){return null},set:function(e){}},{key:"chunks",get:function(){return this._dirtyShader=!0,this._chunks},set:function(e){this._dirtyShader=!0,this._chunks=e}}]),t}(To);Ac.TEXTURE_PARAMETERS=gc,Ac.CUBEMAP_PARAMETERS=yc;var Cc=function(e,t){wc[e]=t},Ec=function(e,t,i,n){Object.defineProperty(Ac.prototype,e,{get:n||function(){return this["_"+e]},set:i}),bc[e]={value:t}},Mc=function(e){return e.defaultValue&&e.defaultValue.clone?function(e){var t="_"+e.name,i=e.dirtyShaderFunc||function(){return!0};Ec(e.name,(function(){return e.defaultValue.clone()}),(function(e){var n=this[t];n.equals(e)||(this._dirtyShader=this._dirtyShader||i(n,e),this[t]=n.copy(e))}),e.getterFunc)}(e):function(e){var t="_"+e.name,i=e.dirtyShaderFunc||function(){return!0};Ec(e.name,(function(){return e.defaultValue}),(function(e){var n=this[t];n!==e&&(this._dirtyShader=this._dirtyShader||i(n,e),this[t]=e)}),e.getterFunc)}(e)};function Pc(e,t,i,n){void 0===t&&(t="rgb"),void 0===i&&(i=!0),void 0===n&&(n=0),lc[e]=t.length||-1,Mc({name:e+"Map",defaultValue:null,dirtyShaderFunc:function(e,t){return!!e!=!!t||e&&(e.type!==t.type||e.fixCubemapSeams!==t.fixCubemapSeams||e.format!==t.format)}}),Mc({name:e+"MapTiling",defaultValue:new Se(1,1)}),Mc({name:e+"MapOffset",defaultValue:new Se(0,0)}),Mc({name:e+"MapRotation",defaultValue:0}),Mc({name:e+"MapUv",defaultValue:n}),t&&(Mc({name:e+"MapChannel",defaultValue:t}),i&&(Mc({name:e+"VertexColor",defaultValue:!1}),Mc({name:e+"VertexColorChannel",defaultValue:t})));var s=e+"MapTiling",r=e+"MapOffset",a=e+"MapRotation",o=e+"MapTransform";Cc(o,(function(e,t,i){var n=e[s],h=e[r],l=e[a];if(1===n.x&&1===n.y&&0===h.x&&0===h.y&&0===l)return null;var c=e._allocUniform(o,(function(){return[{name:"texture_"+o+"0",value:new Float32Array(3)},{name:"texture_"+o+"1",value:new Float32Array(3)}]})),u=Math.cos(l*pe.DEG_TO_RAD),d=Math.sin(l*pe.DEG_TO_RAD),f=c[0].value;f[0]=u*n.x,f[1]=-d*n.y,f[2]=h.x;var p=c[1].value;return p[0]=d*n.x,p[1]=u*n.y,p[2]=1-n.y-h.y,c}))}function Rc(e,t){Mc({name:e,defaultValue:t,getterFunc:function(){return this._dirtyShader=!0,this["_"+e]}}),Cc(e,(function(t,i,n){var s=t._allocUniform(e,(function(){return new Float32Array(3)})),r=t[e];return t.useGammaTonemap&&n.gammaCorrection?(s[0]=Math.pow(r.r,2.2),s[1]=Math.pow(r.g,2.2),s[2]=Math.pow(r.b,2.2)):(s[0]=r.r,s[1]=r.g,s[2]=r.b),s}))}function Ic(e,t,i){Mc({name:e,defaultValue:t,dirtyShaderFunc:function(e,t){return(0===e||1===e)!=(0===t||1===t)}}),Cc(e,i)}function Lc(e,t){Mc({name:e,defaultValue:null,dirtyShaderFunc:function(e,t){return!!e==!!t}}),Cc(e,t)}function Dc(e,t){Mc({name:e,defaultValue:t})}!function(){Rc("ambient",new me(.7,.7,.7)),Rc("diffuse",new me(1,1,1)),Rc("specular",new me(0,0,0)),Rc("emissive",new me(0,0,0)),Rc("sheen",new me(1,1,1)),Rc("attenuation",new me(1,1,1)),Ic("emissiveIntensity",1),Ic("specularityFactor",1),Ic("sheenGloss",0),Ic("gloss",.25,(function(e,t,i){return 0===e.shadingModel?Math.pow(2,11*e.gloss):e.gloss})),Ic("heightMapFactor",1,(function(e,t,i){return.025*e.heightMapFactor})),Ic("opacity",1),Ic("alphaFade",1),Ic("alphaTest",0),Ic("bumpiness",1),Ic("normalDetailMapBumpiness",1),Ic("reflectivity",1),Ic("occludeSpecularIntensity",1),Ic("refraction",0),Ic("refractionIndex",1/1.5),Ic("thickness",0),Ic("attenuationDistance",0),Ic("metalness",1),Ic("anisotropy",0),Ic("clearCoat",0),Ic("clearCoatGloss",1),Ic("clearCoatBumpiness",1),Ic("aoUvSet",0,null),Ic("iridescence",0),Ic("iridescenceRefractionIndex",1/1.5),Ic("iridescenceThicknessMin",0),Ic("iridescenceThicknessMax",0),Lc("ambientSH"),Lc("cubeMapProjectionBox",(function(e,t,i){var n=e._allocUniform("cubeMapProjectionBox",(function(){return[{name:"envBoxMin",value:new Float32Array(3)},{name:"envBoxMax",value:new Float32Array(3)}]})),s=e.cubeMapProjectionBox.getMin(),r=n[0].value;r[0]=s.x,r[1]=s.y,r[2]=s.z;var a=e.cubeMapProjectionBox.getMax(),o=n[1].value;return o[0]=a.x,o[1]=a.y,o[2]=a.z,n})),Dc("ambientTint",!1),Dc("diffuseTint",!1),Dc("specularTint",!1),Dc("specularityFactorTint",!1),Dc("emissiveTint",!1),Dc("fastTbn",!1),Dc("useMetalness",!1),Dc("useMetalnessSpecularColor",!1),Dc("useSheen",!1),Dc("enableGGXSpecular",!1),Dc("occludeDirect",!1),Dc("normalizeNormalMap",!0),Dc("conserveEnergy",!0),Dc("opacityFadesSpecular",!0),Dc("occludeSpecular",1),Dc("shadingModel",1),Dc("fresnelModel",2),Dc("useDynamicRefraction",!1),Dc("cubeMapProjection",0),Dc("customFragmentShader",null),Dc("useFog",!0),Dc("useLighting",!0),Dc("useGammaTonemap",!0),Dc("useSkybox",!0),Dc("forceUv1",!1),Dc("pixelSnap",!1),Dc("twoSidedLighting",!1),Dc("nineSlicedMode",void 0),Dc("msdfTextAttribute",!1),Dc("useIridescence",!1),Dc("glossInvert",!1),Dc("sheenGlossInvert",!1),Dc("clearCoatGlossInvert",!1),Pc("diffuse"),Pc("specular"),Pc("emissive"),Pc("thickness","g"),Pc("specularityFactor","g"),Pc("normal",""),Pc("metalness","g"),Pc("gloss","g"),Pc("opacity","a"),Pc("refraction","g"),Pc("height","g",!1),Pc("ao","g"),Pc("light","rgb",!0,1),Pc("msdf",""),Pc("diffuseDetail","rgb",!1),Pc("normalDetail",""),Pc("aoDetail","g",!1),Pc("clearCoat","g"),Pc("clearCoatGloss","g"),Pc("clearCoatNormal",""),Pc("sheen","rgb"),Pc("sheenGloss","g"),Pc("iridescence","g"),Pc("iridescenceThickness","g"),Dc("diffuseDetailMode",pa),Dc("aoDetailMode",pa),Lc("cubeMap"),Lc("sphereMap"),Lc("envAtlas");var e=[null,null,null,null,null,null];Ec("prefilteredCubemaps",(function(){return e.slice()}),(function(e){var t=this._prefilteredCubemaps;e=e||[];for(var i=!1,n=!0,s=0;s<6;++s){var r=e[s]||null;t[s]!==r&&(t[s]=r,i=!0),n=n&&!!t[s]}i&&(n?this.envAtlas=oc.generatePrefilteredAtlas(t,{target:this.envAtlas}):this.envAtlas&&(this.envAtlas.destroy(),this.envAtlas=null),this._dirtyShader=!0)}),(function(){return this._prefilteredCubemaps}))}(),new ye(1,1,1),new ye(40,0,0);var Oc=[null,function(e,t){return e.drawOrder-t.drawOrder},function(e,t){var i=e._key[0],n=t._key[0];return i===n&&e.mesh&&t.mesh?t.mesh.id-e.mesh.id:n-i},function(e,t){return t.zdist-e.zdist},function(e,t){return e.zdist-t.zdist}];function kc(e,t){return t.key-e.key}var Fc=0,Bc=[],Uc=function(){this.list=[],this.length=0,this.done=!1},Nc=function(){function e(){this.opaqueMeshInstances=[],this.transparentMeshInstances=[],this.shadowCasters=[],this.visibleOpaque=[],this.visibleTransparent=[]}var t=e.prototype;return t.prepare=function(e){this.visibleOpaque[e]||(this.visibleOpaque[e]=new Uc),this.visibleTransparent[e]||(this.visibleTransparent[e]=new Uc),this.visibleOpaque[e].done=!1,this.visibleTransparent[e].done=!1},t.delete=function(e){e=0&&a._shaderVersion!==i&&(a.getShaderVariant!==To.prototype.getShaderVariant&&a.clearVariants(),a._shaderVersion=i)}this.passThrough||(this._dirty=!0)},t.removeMeshInstanceFromArray=function(e,t){var i=t.indexOf(e);i>=0&&t.splice(i,1)},t.removeMeshInstances=function(e,t){for(var i=this.opaqueMeshInstances,n=this.transparentMeshInstances,s=this.shadowCasters,r=0;r=0&&s.splice(o,1)}}this._dirty=!0},t.clearMeshInstances=function(e){(0!==this.opaqueMeshInstances.length||0!==this.transparentMeshInstances.length||!e&&0!==this.shadowCasters.length)&&(this.opaqueMeshInstances.length=0,this.transparentMeshInstances.length=0,e||(this.shadowCasters.length=0),this.passThrough||(this._dirty=!0))},t.addLight=function(e){var t=e.light;this._lightsSet.has(t)||(this._lightsSet.add(t),this._lights.push(t),this._dirtyLights=!0,this._lightHashDirty=!0),0!==t.type&&this._clusteredLightsSet.add(t)},t.removeLight=function(e){var t=e.light;this._lightsSet.has(t)&&(this._lightsSet.delete(t),this._lights.splice(this._lights.indexOf(t),1),this._dirtyLights=!0,this._lightHashDirty=!0),0!==t.type&&this._clusteredLightsSet.delete(t)},t.clearLights=function(){this._lightsSet.clear(),this._clusteredLightsSet.clear(),this._lights.length=0,this._dirtyLights=!0},t.addShadowCasters=function(e){for(var t=this.shadowCasters,i=0;i=0&&t.splice(n,1)}this._dirtyLights=!0},t.getLightHash=function(e){if(this._lightHashDirty){this._lightHashDirty=!1,this._lightHash=0;var t=this._lights;if(t.length>0){t.sort(kc);for(var i=0;i0&&(this._lightHash=Bi(Bc),Bc.length=0)}}return this._lightHash},t.addCamera=function(e){this.cameras.indexOf(e)>=0||(this.cameras.push(e),this._dirtyCameras=!0)},t.removeCamera=function(e){var t=this.cameras.indexOf(e);t>=0&&(this.cameras.splice(t,1),this._dirtyCameras=!0,this.instances.delete(t))},t.clearCameras=function(){this.cameras.length=0,this._dirtyCameras=!0},t._calculateSortDistances=function(e,t,i,n){for(var s=0;s0}},{key:"enabled",get:function(){return this._enabled},set:function(e){e!==this._enabled&&(this._enabled=e,e?(this.incrementCounter(),this.onEnable&&this.onEnable()):(this.decrementCounter(),this.onDisable&&this.onDisable()))}},{key:"clearColorBuffer",get:function(){return this._clearColorBuffer},set:function(e){this._clearColorBuffer=e,this._dirtyCameras=!0}},{key:"clearDepthBuffer",get:function(){return this._clearDepthBuffer},set:function(e){this._clearDepthBuffer=e,this._dirtyCameras=!0}},{key:"clearStencilBuffer",get:function(){return this._clearStencilBuffer},set:function(e){this._clearStencilBuffer=e,this._dirtyCameras=!0}},{key:"clusteredLightsSet",get:function(){return this._clusteredLightsSet}}]),e}(),Vc=["uSceneDepthMap","uDepthMap"],Gc=["uSceneColorMap","texture_grabPass"],Hc=function(){function e(e,t){this.scene=t,this.device=e,this.layer=null,this.device.webgl2||this.device.isWebGPU?this.initMainPath():this.initFallbackPath()}e.requiresRenderPass=function(e,t){return!e.webgl2&&!e.isWebGPU&&t.renderSceneDepthMap};var t=e.prototype;return t.setupUniform=function(e,t,i){(t?Vc:Gc).forEach((function(t){return e.scope.resolve(t).setValue(i)}))},t.allocateTexture=function(e,t,i,n,s,r){return new ys(e,{name:i,format:n,width:t?t.colorBuffer.width:e.width,height:t?t.colorBuffer.height:e.height,mipmaps:r,minFilter:s?0:r?5:1,magFilter:s?0:1,addressU:1,addressV:1})},t.getSourceColorFormat=function(e){var t;return null!=(t=null==e?void 0:e.format)?t:this.device.framebufferFormat},t.shouldReallocate=function(e,t,i){if(i&&(null==e?void 0:e.colorBuffer.format)!==this.getSourceColorFormat(t))return!0;var n=(null==t?void 0:t.width)||this.device.width,s=(null==t?void 0:t.height)||this.device.height;return!e||n!==e.width||s!==e.height},t.allocateRenderTarget=function(e,t,i,n,s,r,a){var o=a?Vc:Gc,h=this.allocateTexture(i,t,o[0],n,s,r);return e?(e.destroyFrameBuffers(),s?e._depthBuffer=h:(e._colorBuffer=h,e._colorBuffers=[h])):e=new Xi({name:"renderTargetSceneGrab",colorBuffer:s?null:h,depthBuffer:s?h:null,depth:!s,stencil:i.supportsStencil,autoResolve:!1}),e},t.releaseRenderTarget=function(e){e&&(e.destroyTextureBuffers(),e.destroy())},t.initMainPath=function(){var e=this.device,t=this;this.layer=new zc({enabled:!1,name:"Depth",id:1,onDisable:function(){t.releaseRenderTarget(this.depthRenderTarget),this.depthRenderTarget=null,t.releaseRenderTarget(this.colorRenderTarget),this.colorRenderTarget=null},onPreRenderOpaque:function(i){var n=this.cameras[i];if(n.renderSceneColorMap){var s;if(t.shouldReallocate(this.colorRenderTarget,null==(s=n.renderTarget)?void 0:s.colorBuffer,!0)){var r;t.releaseRenderTarget(this.colorRenderTarget);var a=t.getSourceColorFormat(null==(r=n.renderTarget)?void 0:r.colorBuffer);this.colorRenderTarget=t.allocateRenderTarget(this.colorRenderTarget,n.renderTarget,e,a,!1,!0,!1)}var o=this.colorRenderTarget.colorBuffer;e.isWebGPU?(e.copyRenderTarget(n.renderTarget,this.colorRenderTarget,!0,!1),e.mipmapRenderer.generate(this.colorRenderTarget.colorBuffer.impl)):(e.copyRenderTarget(e.renderTarget,this.colorRenderTarget,!0,!1),e.activeTexture(e.maxCombinedTextures-1),e.bindTexture(o),e.gl.generateMipmap(o.impl._glTarget)),t.setupUniform(e,!1,o)}if(n.renderSceneDepthMap){var h,l,c,u=!0,d=st;if(e.isWebGPU)(null!=(l=null==(c=n.renderTarget)?void 0:c.samples)?l:e.samples)>1&&(d=it,u=!1);t.shouldReallocate(this.depthRenderTarget,null==(h=n.renderTarget)?void 0:h.depthBuffer)&&(t.releaseRenderTarget(this.depthRenderTarget),this.depthRenderTarget=t.allocateRenderTarget(this.depthRenderTarget,n.renderTarget,e,d,u,!1,!0)),e.copyRenderTarget(e.renderTarget,this.depthRenderTarget,!1,!0),t.setupUniform(e,!0,u?this.depthRenderTarget.depthBuffer:this.depthRenderTarget.colorBuffer)}},onPostRenderOpaque:function(e){}})},t.initFallbackPath=function(){var e=this,t=this.device,i=this.scene;this.layer=new zc({enabled:!1,name:"Depth",id:1,shaderPass:2,onEnable:function(){this.depthRenderTarget=new Xi({name:"depthRenderTarget-webgl1",depth:!0,stencil:t.supportsStencil,autoResolve:!1,graphicsDevice:t}),this.renderTarget=this.depthRenderTarget},onDisable:function(){this.depthRenderTarget.destroyTextureBuffers(),this.renderTarget=null,e.releaseRenderTarget(this.colorRenderTarget),this.colorRenderTarget=null},onPostCull:function(n){var s=this.cameras[n];if(s.renderSceneDepthMap){var r,a,o;if(null==(r=this.depthRenderTarget)||!r.colorBuffer||e.shouldReallocate(this.depthRenderTarget,null==(a=s.renderTarget)?void 0:a.depthBuffer))null==(o=this.depthRenderTarget)||o.destroyTextureBuffers(),this.depthRenderTarget=e.allocateRenderTarget(this.depthRenderTarget,s.renderTarget,t,7,!1,!1,!0),this.renderTarget=this.depthRenderTarget;for(var h=this.instances.visibleOpaque[n],l=h.list,c=i.layers,u=c.subLayerEnabled,d=c.subLayerList,f=c.getLayerById(0).renderTarget,p=0,m=c.layerList,_=0;_=0&&!this.directionalLightsSet.has(s)){this.directionalLightsSet.add(s),this.directionalLights.push(s);var a=i.indexOf(s);this.directionalLightsIndices.push(a)}}},y(e,[{key:"hasDirectionalShadowLights",get:function(){return this.directionalLights.length>0}}]),e}(),$c=function(){function e(){this.shadowCastersSet=new Set,this.shadowCastersList=[]}var t=e.prototype;return t.clearShadowCasters=function(){this.shadowCastersSet.clear(),this.shadowCastersList.length=0},t.addShadowCasters=function(e){for(var t=0;t1&&Zc(this.cameras);for(var _=[],g=0,v=0;v0&&y.layers.indexOf(A.id)>=0){_.push(A),w||A.id!==y.disablePostEffectsLayer||(w=!0,b&&(b.triggerPostprocess=!0));var E=A.cameras.indexOf(y);E>=0&&(b=this.addRenderAction(this._renderActions,g,A,T,E,x,w),g++,x=!1)}}S=0;u--)if(e[u].camera===l&&e[u].renderTarget===h){c=!0;break}var d=r||!c,f=!!d&&l.clearColorBuffer,p=!!d&&l.clearDepthBuffer,m=!!d&&l.clearStencilBuffer;return f||(f=i.clearColorBuffer),p||(p=i.clearDepthBuffer),m||(m=i.clearStencilBuffer),a&&l.postEffectsEnabled&&(h=null),o.reset(),o.triggerPostprocess=!1,o.layerIndex=n,o.cameraIndex=s,o.camera=l,o.renderTarget=h,o.clearColor=f,o.clearDepth=p,o.clearStencil=m,o.firstCameraUse=r,o.lastCameraUse=!1,o},i.propagateRenderTarget=function(e,t){for(var i=e;i>=0;i--){var n=this._renderActions[i],s=this.layerList[n.layerIndex];if(n.renderTarget&&1!==s.id)break;if(1!==s.id){var r=null==n?void 0:n.camera.camera;if(r&&(!t.camera.rect.equals(r.rect)||!t.camera.scissorRect.equals(r.scissorRect)))break;n.renderTarget=t.renderTarget}}},i._logRenderActions=function(){},i._isLayerAdded=function(e){return this.layerIdMap.get(e.id)===e},i._isSublayerAdded=function(e,t){for(var i=0;i=0;)this.layerList.splice(t,1),this.subLayerList.splice(t,1),this.subLayerEnabled.splice(t,1),t=this.layerList.indexOf(e),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("remove",e);var i=this.layerList.length;this._updateOpaqueOrder(0,i-1),this._updateTransparentOrder(0,i-1),this._updateLayerMaps()},i.pushOpaque=function(e){this._isSublayerAdded(e,!1)||(this.layerList.push(e),this._opaqueOrder[e.id]=this.subLayerList.push(!1)-1,this.subLayerEnabled.push(!0),this._updateLayerMaps(),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("add",e))},i.insertOpaque=function(e,t){if(!this._isSublayerAdded(e,!1)){this.layerList.splice(t,0,e),this.subLayerList.splice(t,0,!1);var i=this.subLayerList.length;this._updateOpaqueOrder(t,i-1),this.subLayerEnabled.splice(t,0,!0),this._updateLayerMaps(),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("add",e)}},i.removeOpaque=function(e){for(var t=0,i=this.layerList.length;t45?(e.radius=t*this._outerConeAngleSin,iu.mulScalar(-t*n)):(e.radius=t/(2*n),iu.mulScalar(-e.radius)),e.center.add2(s.getPosition(),iu)}else 1===this._type&&(e.center=this._node.getPosition(),e.radius=this.attenuationEnd)},t.getBoundingBox=function(e){if(2===this._type){var t=this.attenuationEnd,i=this._outerConeAngle,n=this._node,s=Math.abs(Math.sin(i*pe.DEG_TO_RAD)*t);e.center.set(0,.5*-t,0),e.halfExtents.set(s,.5*t,s),e.setFromTransformedAabb(e,n.getWorldTransform(),!0)}else 1===this._type&&(e.center.copy(this._node.getPosition()),e.halfExtents.set(this.attenuationEnd,this.attenuationEnd,this.attenuationEnd))},t._updateFinalColor=function(){var t=this._color,i=t.r,n=t.g,s=t.b,r=this._intensity;this._usePhysicalUnits&&(r=this._luminance/e.getLightUnitConversion(this._type,this._outerConeAngle*pe.DEG_TO_RAD,this._innerConeAngle*pe.DEG_TO_RAD));var a=this._finalColor,o=this._linearFinalColor;a[0]=i*r,a[1]=n*r,a[2]=s*r,r>=1?(o[0]=Math.pow(i,2.2)*r,o[1]=Math.pow(n,2.2)*r,o[2]=Math.pow(s,2.2)*r):(o[0]=Math.pow(a[0],2.2),o[1]=Math.pow(a[1],2.2),o[2]=Math.pow(a[2],2.2))},t.setColor=function(){1===arguments.length?this._color.set(arguments[0].r,arguments[0].g,arguments[0].b):3===arguments.length&&this._color.set(arguments[0],arguments[1],arguments[2]),this._updateFinalColor()},t.layersDirty=function(){var e;null!=(e=this._scene)&&e.layers&&(this._scene.layers._dirtyLights=!0)},t.updateKey=function(){var e=this._type<<29|(this._castShadows?1:0)<<28|this._shadowType<<25|this._falloffMode<<23|(0!==this._normalOffsetBias?1:0)<<22|(this._cookie?1:0)<<21|(this._cookieFalloff?1:0)<<20|su[this._cookieChannel.charAt(0)]<<18|(this._cookieTransform?1:0)<<12|this._shape<<10|this.numCascades-1<<8|(this.affectSpecularity?1:0)<<7;3===this._cookieChannel.length&&(e|=su[this._cookieChannel.charAt(1)]<<16,e|=su[this._cookieChannel.charAt(2)]<<14),e!==this.key&&null!==this._scene&&this.layersDirty(),this.key=e},y(e,[{key:"numCascades",get:function(){return this.cascades.length},set:function(e){this.cascades&&this.numCascades===e||(this.cascades=au[e-1],this._shadowMatrixPalette=new Float32Array(64),this._shadowCascadeDistances=new Float32Array(4),this._destroyShadowMap(),this.updateKey())}},{key:"shadowMap",get:function(){return this._shadowMap},set:function(e){this._shadowMap!==e&&(this._destroyShadowMap(),this._shadowMap=e)}},{key:"numShadowFaces",get:function(){var e=this._type;return 0===e?this.numCascades:1===e?6:1}},{key:"type",get:function(){return this._type},set:function(e){if(this._type!==e){this._type=e,this._destroyShadowMap(),this.updateKey();var t=this._shadowType;this._shadowType=null,this.shadowUpdateOverrides=null,this.shadowType=t}}},{key:"shape",get:function(){return this._shape},set:function(e){if(this._shape!==e){this._shape=e,this._destroyShadowMap(),this.updateKey();var t=this._shadowType;this._shadowType=null,this.shadowType=t}}},{key:"usePhysicalUnits",get:function(){return this._usePhysicalUnits},set:function(e){this._usePhysicalUnits!==e&&(this._usePhysicalUnits=e,this._updateFinalColor())}},{key:"shadowType",get:function(){return this._shadowType},set:function(e){if(this._shadowType!==e){var t=this.device;1===this._type&&0!==e&&6!==e&&(e=0);var i=t.supportsDepthShadow;4!==e||i||(e=0),3!==e||t.textureFloatRenderable||(e=2),2!==e||t.textureHalfFloatRenderable||(e=1),this._isVsm=e>=1&&e<=3,this._isPcf=5===e||0===e||4===e,this._shadowType=e,this._destroyShadowMap(),this.updateKey()}}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e,this.layersDirty())}},{key:"castShadows",get:function(){return this._castShadows&&4!==this.mask&&0!==this.mask},set:function(e){this._castShadows!==e&&(this._castShadows=e,this._destroyShadowMap(),this.layersDirty(),this.updateKey())}},{key:"shadowResolution",get:function(){return this._shadowResolution},set:function(e){this._shadowResolution!==e&&(e=1===this._type?Math.min(e,this.device.maxCubeMapSize):Math.min(e,this.device.maxTextureSize),this._shadowResolution=e,this._destroyShadowMap())}},{key:"vsmBlurSize",get:function(){return this._vsmBlurSize},set:function(e){this._vsmBlurSize!==e&&(e%2==0&&e++,this._vsmBlurSize=e)}},{key:"normalOffsetBias",get:function(){return this._normalOffsetBias},set:function(e){this._normalOffsetBias!==e&&((!this._normalOffsetBias&&e||this._normalOffsetBias&&!e)&&this.updateKey(),this._normalOffsetBias=e)}},{key:"falloffMode",get:function(){return this._falloffMode},set:function(e){this._falloffMode!==e&&(this._falloffMode=e,this.updateKey())}},{key:"innerConeAngle",get:function(){return this._innerConeAngle},set:function(e){this._innerConeAngle!==e&&(this._innerConeAngle=e,this._innerConeAngleCos=Math.cos(e*Math.PI/180),this._usePhysicalUnits&&this._updateFinalColor())}},{key:"outerConeAngle",get:function(){return this._outerConeAngle},set:function(e){this._outerConeAngle!==e&&(this._outerConeAngle=e,this._updateOuterAngle(e),this._usePhysicalUnits&&this._updateFinalColor())}},{key:"penumbraSize",get:function(){return this._penumbraSize},set:function(e){this._penumbraSize=e}},{key:"intensity",get:function(){return this._intensity},set:function(e){this._intensity!==e&&(this._intensity=e,this._updateFinalColor())}},{key:"affectSpecularity",get:function(){return this._affectSpecularity},set:function(e){0===this._type&&(this._affectSpecularity=e,this.updateKey())}},{key:"luminance",get:function(){return this._luminance},set:function(e){this._luminance!==e&&(this._luminance=e,this._updateFinalColor())}},{key:"cookieMatrix",get:function(){return this._cookieMatrix||(this._cookieMatrix=new Me),this._cookieMatrix}},{key:"atlasViewport",get:function(){return this._atlasViewport||(this._atlasViewport=new be(0,0,1,1)),this._atlasViewport}},{key:"cookie",get:function(){return this._cookie},set:function(e){this._cookie!==e&&(this._cookie=e,this.updateKey())}},{key:"cookieFalloff",get:function(){return this._cookieFalloff},set:function(e){this._cookieFalloff!==e&&(this._cookieFalloff=e,this.updateKey())}},{key:"cookieChannel",get:function(){return this._cookieChannel},set:function(e){if(this._cookieChannel!==e){if(e.length<3)for(var t=e.charAt(e.length-1),i=3-e.length,n=0;n0&&(t+="varying vec2 uv0;\nuniform highp float morphFactor["+e+"];\n");for(var i=0;i=this.maxSubmitCount&&(s(r,a),r=0,a=!0))}(r>0||0===o&&!this.zeroTextures)&&s(r,a)},t._updateTextureMorph=function(){this.device,(this._activeTargets.length>0||!this.zeroTextures)&&(this.rtPositions&&this._updateTextureRenderTarget(this.rtPositions,"texturePositions"),this.rtNormals&&this._updateTextureRenderTarget(this.rtNormals,"textureNormals"),this.zeroTextures=0===this._activeTargets.length)},t._updateVertexMorph=function(){for(var e=this.maxSubmitCount,t=0;t1e-5){this._activeTargets.length<=t&&(this._activeTargets[t]={});var s=this._activeTargets[t++];s.absWeight=n,s.weight=this.getWeight(i),s.target=e[i]}}this._activeTargets.length=t;var r=this.morph.maxActiveTargets;this._activeTargets.length>r&&(this._activeTargets.sort((function(e,t){return e.absWeightl)return!1;this.morphTextureWidth=c,this.morphTextureHeight=u;var d=!1,f=3,p=Ah.float2Half;this._textureFormat===Je&&(d=!0,f=4);for(var m=[],_=0;_0&&(s+=Za.screenDepthPS),s+=Za.particle_cpuVS,t.localSpace&&(s+=Za.particle_localShiftVS),t.animTex&&(s+=this._animTex(t)),t.alignToMotion&&(s+=Za.particle_pointAlongVS),s+=t.mesh?Za.particle_meshVS:r,1===t.normal&&(s+=Za.particle_normalVS),2===t.normal&&(s+=Za.particle_TBNVS),t.stretch>0&&(s+=Za.particle_stretchVS),s+=Za.particle_cpu_endVS,t.soft>0&&(s+=Za.particle_softVS)):(s+=Za.particle_initVS,s+=t.pack8?Za.particleInputRgba8PS:Za.particleInputFloatPS,t.soft>0&&(s+=Za.screenDepthPS),s+=Za.particleVS,t.localSpace&&(s+=Za.particle_localShiftVS),t.animTex&&(s+=this._animTex(t)),t.wrap&&(s+=Za.particle_wrapVS),t.alignToMotion&&(s+=Za.particle_pointAlongVS),s+=t.mesh?Za.particle_meshVS:r,1===t.normal&&(s+=Za.particle_normalVS),2===t.normal&&(s+=Za.particle_TBNVS),t.stretch>0&&(s+=Za.particle_stretchVS),s+=Za.particle_endVS,t.soft>0&&(s+=Za.particle_softVS)),s+="}\n",t.normal>0&&(1===t.normal?n+="\nvarying vec3 Normal;\n":2===t.normal&&(n+="\nvarying mat3 ParticleMat;\n"),n+="\nuniform vec3 lightCube[6];\n"),t.soft&&(n+="\nvarying float vDepth;\n"),0===t.normal&&"none"===t.fog&&(t.srgb=!1),n+=Za.decodePS,n+=fo(t.gamma),n+=po(t.toneMap),"linear"===t.fog?n+=Za.fogLinearPS:"exp"===t.fog?n+=Za.fogExpPS:"exp2"===t.fog?n+=Za.fogExp2PS:n+=Za.fogNonePS,2===t.normal&&(n+="\nuniform sampler2D normalMap;\n"),t.soft>0&&(n+=Za.screenDepthPS),n+=Za.particlePS,t.soft>0&&(n+=Za.particle_softPS),1===t.normal&&(n+="\nvec3 normal = Normal;\n"),2===t.normal&&(n+=Za.particle_normalMapPS),t.normal>0&&(n+=t.halflambert?Za.particle_halflambertPS:Za.particle_lambertPS),t.normal>0&&(n+=Za.particle_lightingPS),2===t.blend?n+=Za.particle_blendNormalPS:1===t.blend?n+=Za.particle_blendAddPS:5===t.blend&&(n+=Za.particle_blendMultiplyPS),n+=Za.particle_endPS,Hs.createDefinition(e,{name:"ParticleShader",vertexCode:s,fragmentCode:n})}},gu=1,vu=new Me,yu=new Me,xu=new ye,Su=new ye,bu=new ye,wu=new ye,Tu=new ye,Au=new ye,Cu=new ye,Eu=new ye,Mu=new ye,Pu=new ye,Ru=new ye,Iu=new ye,Lu=new ye;function Du(e){return e-Math.floor(e)}function Ou(e){return Math.max(Math.min(e,1),0)}function ku(e,t){return e-t*Math.floor(e/t)}function Fu(e){var t=Du(e),i=Du(255*e);return[t-=i/255,i-=i/255]}var Bu=function(){function e(e){this._emitter=e}var t=e.prototype;return t.calcSpawnPosition=function(e,t,i,n,s){var r=this._emitter,a=Math.random(),o=Math.random(),h=Math.random(),l=Math.random();if(r.useCpu&&(e[4*s+0+2*r.numParticlesPot*4]=a,e[4*s+1+2*r.numParticlesPot*4]=o,e[4*s+2+2*r.numParticlesPot*4]=h),Su.x=a-.5,Su.y=o-.5,Su.z=h-.5,0===r.emitterShape){var c=Math.max(Math.abs(Su.x),Math.max(Math.abs(Su.y),Math.abs(Su.z))),u=c+(.5-c)*i[0],d=c+(.5-c)*i[1],f=c+(.5-c)*i[2];Su.x=u*(c===Math.abs(Su.x)?Math.sign(Su.x):2*Su.x),Su.y=d*(c===Math.abs(Su.y)?Math.sign(Su.y):2*Su.y),Su.z=f*(c===Math.abs(Su.z)?Math.sign(Su.z):2*Su.z),r.localSpace?xu.copy(t.transformPoint(Su)):xu.copy(n).add(t.transformPoint(Su))}else{Su.normalize();var p=0===r.emitterRadius?0:r.emitterRadiusInner/r.emitterRadius,m=l*(1-p)+p;r.localSpace?xu.copy(Su.mulScalar(m*r.emitterRadius)):xu.copy(n).add(Su.mulScalar(m*r.emitterRadius))}var _,g,v,y,x,S=-pe.lerp(r.rate,r.rate2,a)*s;if(r.pack8){var b=(xu.x-r.worldBounds.center.x)/r.worldBoundsSize.x+.5,w=(xu.y-r.worldBounds.center.y)/r.worldBoundsSize.y+.5,T=(xu.z-r.worldBounds.center.z)/r.worldBoundsSize.z+.5,A=pe.lerp(r.startAngle*pe.DEG_TO_RAD,r.startAngle2*pe.DEG_TO_RAD,a);A=A%(2*Math.PI)/(2*Math.PI);var C=Fu(b);e[4*s]=C[0],e[4*s+1]=C[1];var E=Fu(w);e[4*s+2]=E[0],e[4*s+3]=E[1];var M=Fu(T);e[4*s+0+4*r.numParticlesPot]=M[0],e[4*s+1+4*r.numParticlesPot]=M[1];var P=Fu(A);e[4*s+2+4*r.numParticlesPot]=P[0],e[4*s+3+4*r.numParticlesPot]=P[1];e[4*s+3+4*r.numParticlesPot*2]=1;var R=Math.max(r.lifetime,(r.numParticles-1)*Math.max(r.rate,r.rate2)),I=r.lifetime+1,L=(g=Du(_=S=(S+R)/(R+I)),v=Du(255*_),y=Du(65025*_),x=Du(160581375*_),[g-=v/255,v-=y/255,y-=x/255,x-=x/255]);e[4*s+0+4*r.numParticlesPot*3]=L[0],e[4*s+1+4*r.numParticlesPot*3]=L[1],e[4*s+2+4*r.numParticlesPot*3]=L[2],e[4*s+3+4*r.numParticlesPot*3]=L[3]}else e[4*s]=xu.x,e[4*s+1]=xu.y,e[4*s+2]=xu.z,e[4*s+3]=pe.lerp(r.startAngle*pe.DEG_TO_RAD,r.startAngle2*pe.DEG_TO_RAD,a),e[4*s+3+4*r.numParticlesPot]=S},t.update=function(e,t,i,n,s,r,a,o){var h,l,c,u=this._emitter;if(u.meshInstance.node){for(var d=u.meshInstance.node.worldTransform,f=0;f<12;f++)vu.data[f]=d.data[f];yu.copy(vu),yu.invert(),jc=u.meshInstance.node.localScale,gu=Math.max(Math.max(jc.x,jc.y),jc.z)}r=null===u.meshInstance.node||u.localSpace?ye.ZERO:u.meshInstance.node.getPosition();for(var p,m,_,g,v,y,x,S,b=u.camera?u.camera._node.getPosition():ye.ZERO,w=u.useMesh?17:15,T=u.precision-1,A=0;A=P)&&this.calcSpawnPosition(i,n,s,r,C);var O=R>0&&R0&&(1===u.emitterShape?(Su.copy(bu).mulScalar(2).sub(ye.ONE).normalize(),Au.add(Su.mulScalar(u.initialVelocity))):Au.add(ye.FORWARD.mulScalar(u.initialVelocity))),Tu.x+=(Cu.x-Tu.x)*bu.x,Tu.y+=(Cu.y-Tu.y)*bu.y,Tu.z+=(Cu.z-Tu.z)*bu.z,_+=(g-_)*bu.y,L=(L+1e4*E%1*(v-L))*gu,D=1e3*E%1*(x-y),u.meshInstance.node&&(u.localSpace?(Au.x/=jc.x,Au.y/=jc.y,Au.z/=jc.z):vu.transformPoint(Au,Au)),u.localSpace?(yu.transformPoint(Tu,Tu),Au.add(Tu).add(Mu)):(Au.add(Tu.mul(jc)),Au.add(Mu.mul(jc))),Iu.copy(Au),Pu.copy(wu).add(Au.mulScalar(a)),Ru.copy(Pu),i[4*C]=Ru.x,i[4*C+1]=Ru.y,i[4*C+2]=Ru.z,i[4*C+3]+=_*a,u.wrap&&u.wrapBounds&&(u.localSpace||Ru.sub(r),Ru.x=ku(Ru.x,u.wrapBounds.x)-.5*u.wrapBounds.x,Ru.y=ku(Ru.y,u.wrapBounds.y)-.5*u.wrapBounds.y,Ru.z=ku(Ru.z,u.wrapBounds.z)-.5*u.wrapBounds.z,u.localSpace||Ru.add(r)),u.sort>0&&(1===u.sort?(Lu.copy(Ru).sub(b),u.particleDistance[C]=-(Lu.x*Lu.x+Lu.y*Lu.y+Lu.z*Lu.z)):2===u.sort?u.particleDistance[C]=R:3===u.sort&&(u.particleDistance[C]=-R))),o?R<0&&(i[4*C+3+2*u.numParticlesPot*4]=-1):(R>=P&&(R-=Math.max(P,(u.numParticles-1)*M),i[4*C+3+2*u.numParticlesPot*4]=u.loop?1:-1),R<0&&u.loop&&(i[4*C+3+2*u.numParticlesPot*4]=1)),i[4*C+3+2*u.numParticlesPot*4]<0&&(O=!1),i[4*C+3+4*u.numParticlesPot]=R;for(var k=0;k0&&u.camera){for(var V=u.useMesh?6:4,G=u.particleDistance,H=0;He.maxTextureSize&&(this.numParticles=e.maxTextureSize),nd("rate",1),nd("rate2",this.rate),nd("lifetime",50),nd("emitterExtents",new ye(0,0,0)),nd("emitterExtentsInner",new ye(0,0,0)),nd("emitterRadius",0),nd("emitterRadiusInner",0),nd("emitterShape",0),nd("initialVelocity",1),nd("wrap",!1),nd("localSpace",!1),nd("screenSpace",!1),nd("wrapBounds",null),nd("colorMap",this.defaultParamTexture),nd("normalMap",null),nd("loop",!0),nd("preWarm",!1),nd("sort",0),nd("mode",0),nd("scene",null),nd("lighting",!1),nd("halfLambert",!1),nd("intensity",1),nd("stretch",0),nd("alignToMotion",!1),nd("depthSoftening",0),nd("mesh",null),nd("particleNormal",new ye(0,1,0)),nd("orientation",0),nd("depthWrite",!1),nd("noFog",!1),nd("blendType",2),nd("node",null),nd("startAngle",0),nd("startAngle2",this.startAngle),nd("animTilesX",1),nd("animTilesY",1),nd("animStartFrame",0),nd("animNumFrames",1),nd("animNumAnimations",1),nd("animIndex",0),nd("randomizeAnimIndex",!1),nd("animSpeed",1),nd("animLoop",!0),this._gpuUpdater=new Vu(this,i),this._cpuUpdater=new Bu(this),this.constantLightCube=i.scope.resolve("lightCube[0]"),this.emitterPosUniform=new Float32Array(3),this.wrapBoundsUniform=new Float32Array(3),this.emitterScaleUniform=new Float32Array([1,1,1]),nd("colorGraph",Zu),nd("colorGraph2",this.colorGraph),nd("scaleGraph",Yu),nd("scaleGraph2",this.scaleGraph),nd("alphaGraph",Yu),nd("alphaGraph2",this.alphaGraph),nd("localVelocityGraph",Ku),nd("localVelocityGraph2",this.localVelocityGraph),nd("velocityGraph",Ku),nd("velocityGraph2",this.velocityGraph),nd("rotationSpeedGraph",qu),nd("rotationSpeedGraph2",this.rotationSpeedGraph),nd("radialSpeedGraph",qu),nd("radialSpeedGraph2",this.radialSpeedGraph),this.lightCube=new Float32Array(18),this.lightCubeDir=new Array(6),this.lightCubeDir[0]=new ye(-1,0,0),this.lightCubeDir[1]=new ye(1,0,0),this.lightCubeDir[2]=new ye(0,-1,0),this.lightCubeDir[3]=new ye(0,1,0),this.lightCubeDir[4]=new ye(0,0,-1),this.lightCubeDir[5]=new ye(0,0,1),this.animTilesParams=new Float32Array(2),this.animParams=new Float32Array(4),this.animIndexParams=new Float32Array(2),this.internalTex0=null,this.internalTex1=null,this.internalTex2=null,this.colorParam=null,this.vbToSort=null,this.vbOld=null,this.particleDistance=null,this.camera=null,this.swapTex=!1,this.useMesh=!0,this.useCpu=!e.supportsGpuParticles,this.pack8=!0,this.localBounds=new ke,this.worldBoundsNoTrail=new ke,this.worldBoundsTrail=[new ke,new ke],this.worldBounds=new ke,this.worldBoundsSize=new ye,this.prevWorldBoundsSize=new ye,this.prevWorldBoundsCenter=new ye,this.prevEmitterExtents=this.emitterExtents,this.prevEmitterRadius=this.emitterRadius,this.worldBoundsMul=new ye,this.worldBoundsAdd=new ye,this.timeToSwitchBounds=0,this.shaderParticleUpdateRespawn=null,this.shaderParticleUpdateNoRespawn=null,this.shaderParticleUpdateOnStop=null,this.numParticleVerts=0,this.numParticleIndices=0,this.material=null,this.meshInstance=null,this.drawOrder=0,this.seed=Math.random(),this.fixedTimeStep=1/60,this.maxSubSteps=10,this.simTime=0,this.simTimeTotal=0,this.beenReset=!1,this._layer=null,this.rebuild()}var t=e.prototype;return t.onChangeCamera=function(){this.regenShader(),this.resetMaterial()},t.calculateBoundsMad=function(){this.worldBoundsMul.x=1/this.worldBoundsSize.x,this.worldBoundsMul.y=1/this.worldBoundsSize.y,this.worldBoundsMul.z=1/this.worldBoundsSize.z,this.worldBoundsAdd.copy(this.worldBounds.center).mul(this.worldBoundsMul).mulScalar(-1),this.worldBoundsAdd.x+=.5,this.worldBoundsAdd.y+=.5,this.worldBoundsAdd.z+=.5},t.calculateWorldBounds=function(){if(this.node){if(this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),!this.useCpu){(0===this.emitterShape?!this.emitterExtents.equals(this.prevEmitterExtents):!(this.emitterRadius===this.prevEmitterRadius))&&this.calculateLocalBounds()}var e=this.node.getWorldTransform();this.localSpace?this.worldBoundsNoTrail.copy(this.localBounds):this.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds,e),this.worldBoundsTrail[0].add(this.worldBoundsNoTrail),this.worldBoundsTrail[1].add(this.worldBoundsNoTrail);var t=this.simTimeTotal;t>=this.timeToSwitchBounds&&(this.worldBoundsTrail[0].copy(this.worldBoundsTrail[1]),this.worldBoundsTrail[1].copy(this.worldBoundsNoTrail),this.timeToSwitchBounds=t+this.lifetime),this.worldBounds.copy(this.worldBoundsTrail[0]),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.localSpace?(this.meshInstance.aabb.setFromTransformedAabb(this.worldBounds,e),this.meshInstance.mesh.aabb.setFromTransformedAabb(this.worldBounds,e)):(this.meshInstance.aabb.copy(this.worldBounds),this.meshInstance.mesh.aabb.copy(this.worldBounds)),this.meshInstance._aabbVer=1-this.meshInstance._aabbVer,this.pack8&&this.calculateBoundsMad()}},t.resetWorldBounds=function(){this.node&&(this.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds,this.localSpace?Me.IDENTITY:this.node.getWorldTransform()),this.worldBoundsTrail[0].copy(this.worldBoundsNoTrail),this.worldBoundsTrail[1].copy(this.worldBoundsNoTrail),this.worldBounds.copy(this.worldBoundsTrail[0]),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),this.simTimeTotal=0,this.timeToSwitchBounds=0)},t.calculateLocalBounds=function(){for(var e,t,i,n=Number.MAX_VALUE,s=Number.MAX_VALUE,r=Number.MAX_VALUE,a=-Number.MAX_VALUE,o=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=0,c=0,u=this.lifetime/this.precision,d=[this.qVelocity,this.qVelocity2],f=[this.qLocalVelocity,this.qLocalVelocity2],p=[0,0],m=[0,0],_=[0,0],g=[0,0],v=[0,0],y=0;y0||e.maxVertexTextures<=1||e.fragmentUniformsCount<64||e.forceCpuParticles||!e.extTextureFloat,this._destroyResources(),this.pack8=(this.pack8||!e.textureFloatRenderable)&&!this.useCpu,Qu=this.useCpu||this.pack8?4:2,this.useMesh=!1,this.mesh)&&(this.numParticles*this.mesh.vertexBuffer.numVertices>65535||(this.useMesh=!0));this.numParticlesPot=pe.nextPowerOfTwo(this.numParticles),this.rebuildGraphs(),this.calculateLocalBounds(),this.resetWorldBounds(),this.node&&(this.worldBounds.setFromTransformedAabb(this.localBounds,this.localSpace?Me.IDENTITY:this.node.getWorldTransform()),this.worldBoundsTrail[0].copy(this.worldBounds),this.worldBoundsTrail[1].copy(this.worldBounds),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),this.pack8&&this.calculateBoundsMad()),this.vbToSort=new Array(this.numParticles);for(var t=0;t=1&&(this.animTilesX>1||this.animTilesY>1)&&(this.colorMap&&this.colorMap!==this.defaultParamTexture||this.normalMap)},t.rebuildGraphs=function(){var e=this.precision,t=this.graphicsDevice;this.qLocalVelocity=this.localVelocityGraph.quantize(e),this.qVelocity=this.velocityGraph.quantize(e),this.qColor=this.colorGraph.quantizeClamped(e,0,1),this.qRotSpeed=this.rotationSpeedGraph.quantize(e),this.qScale=this.scaleGraph.quantize(e),this.qAlpha=this.alphaGraph.quantize(e),this.qRadialSpeed=this.radialSpeedGraph.quantize(e),this.qLocalVelocity2=this.localVelocityGraph2.quantize(e),this.qVelocity2=this.velocityGraph2.quantize(e),this.qColor2=this.colorGraph2.quantizeClamped(e,0,1),this.qRotSpeed2=this.rotationSpeedGraph2.quantize(e),this.qScale2=this.scaleGraph2.quantize(e),this.qAlpha2=this.alphaGraph2.quantize(e),this.qRadialSpeed2=this.radialSpeedGraph2.quantize(e);for(var i=0;i0&&e.setParameter("softening",1/(this.depthSoftening*this.depthSoftening*100)),this.stretch>0&&(e.cull=Ze),this._compParticleFaceParams()},t._compParticleFaceParams=function(){var e,t;if(0===this.orientation)e=new Float32Array([1,0,0]),t=new Float32Array([0,0,1]);else{var i;if(1===this.orientation)i=this.particleNormal.normalize();else i=(null===this.node?Me.IDENTITY:this.node.getWorldTransform()).transformVector(this.particleNormal).normalize();var n=new ye(1,0,0);1===Math.abs(n.dot(i))&&n.set(0,0,1);var s=(new ye).cross(i,n).normalize();n.cross(s,i).normalize(),e=new Float32Array([n.x,n.y,n.z]),t=new Float32Array([s.x,s.y,s.z])}this.material.setParameter("faceTangent",e),this.material.setParameter("faceBinorm",t)},t._allocate=function(e){var t=e*this.numParticleVerts,i=e*this.numParticleIndices;if(void 0===this.vertexBuffer||this.vertexBuffer.getNumVertices()!==t){if(this.useCpu){var n=[{semantic:It,components:4,type:6},{semantic:Lt,components:4,type:6},{semantic:Dt,components:4,type:6},{semantic:Ot,components:1,type:6},{semantic:kt,components:this.useMesh?4:2,type:6}],s=new zi(this.graphicsDevice,n);this.vertexBuffer=new ki(this.graphicsDevice,s,t,1),this.indexBuffer=new $s(this.graphicsDevice,1,i)}else{var r=[{semantic:It,components:4,type:6}];this.useMesh&&r.push({semantic:Lt,components:2,type:6});var a=new zi(this.graphicsDevice,r);this.vertexBuffer=new ki(this.graphicsDevice,a,t,1),this.indexBuffer=new $s(this.graphicsDevice,1,i)}var o,h,l,c=new Float32Array(this.vertexBuffer.lock());if(this.useMesh){h=(o=new Float32Array(this.mesh.vertexBuffer.lock())).length/this.mesh.vertexBuffer.numVertices;for(var u=0;uthis.endTime&&(this.onFinished&&this.onFinished(),this.meshInstance.visible=!1),this.meshInstance&&(this.meshInstance.drawOrder=this.drawOrder)},t._destroyResources=function(){this.particleTexIN&&(this.particleTexIN.destroy(),this.particleTexIN=null),this.particleTexOUT&&(this.particleTexOUT.destroy(),this.particleTexOUT=null),this.particleTexStart&&this.particleTexStart.destroy&&(this.particleTexStart.destroy(),this.particleTexStart=null),this.rtParticleTexIN&&(this.rtParticleTexIN.destroy(),this.rtParticleTexIN=null),this.rtParticleTexOUT&&(this.rtParticleTexOUT.destroy(),this.rtParticleTexOUT=null),this.internalTex0&&(this.internalTex0.destroy(),this.internalTex0=null),this.internalTex1&&(this.internalTex1.destroy(),this.internalTex1=null),this.internalTex2&&(this.internalTex2.destroy(),this.internalTex2=null),this.internalTex3&&(this.internalTex3.destroy(),this.internalTex3=null),this.colorParam&&(this.colorParam.destroy(),this.colorParam=null),this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=void 0),this.indexBuffer&&(this.indexBuffer.destroy(),this.indexBuffer=void 0),this.material&&(this.material.destroy(),this.material=null)},t.destroy=function(){this.camera=null,this._destroyResources()},y(e,[{key:"defaultParamTexture",get:function(){var e=this;return hd.get(this.graphicsDevice,(function(){for(var t=16,i=new Float32Array(1024),n=0;n0&&this.material.transparent===t&&(this.mesh.setPositions(this.positions),this.mesh.setColors(this.colors),this.mesh.update(1,!1),this.meshInstance||(this.meshInstance=new th(this.mesh,this.material,dd)),this.positions.length=0,this.colors.length=0,e.list.push(this.meshInstance),e.length++)},e}(),pd=function(){function e(e){this.device=e,this.map=new Map}var t=e.prototype;return t.getBatch=function(e,t){var i=this.map.get(e);return i||(i=new fd(this.device,e,t),this.map.set(e,i)),i},t.onPreRender=function(e,t){this.map.forEach((function(i){i.onPreRender(e,t)}))},e}(),md=[],_d=function(){function e(e){this.device=e,this.quadMesh=null,this.textureShader=null,this.depthTextureShader=null,this.cubeLocalPos=null,this.cubeWorldPos=null,this.batchesMap=new Map,this.allBatches=new Set,this.updatedLayers=new Set,this._materialDepth=null,this._materialNoDepth=null,this.layerMeshInstances=new Map}var t=e.prototype;return t.createMaterial=function(e){var t=new Ao;return t.vertexColors=!0,t.blendType=2,t.depthTest=e,t.update(),t},t.getBatch=function(e,t){var i=this.batchesMap.get(e);i||(i=new pd(this.device),this.batchesMap.set(e,i)),this.allBatches.add(i);var n=t?this.materialDepth:this.materialNoDepth;return i.getBatch(n,e)},t.getShader=function(e,t){if(!this[e]){this[e]=to(this.device,"\n attribute vec2 vertex_position;\n uniform mat4 matrix_model;\n varying vec2 uv0;\n void main(void) {\n gl_Position = matrix_model * vec4(vertex_position, 0, 1);\n uv0 = vertex_position.xy + 0.5;\n }\n ",t,"DebugShader:"+e)}return this[e]},t.getTextureShader=function(){return this.getShader("textureShader","\n varying vec2 uv0;\n uniform sampler2D colorMap;\n void main (void) {\n gl_FragColor = vec4(texture2D(colorMap, uv0).xyz, 1);\n }\n ")},t.getUnfilterableTextureShader=function(){return this.getShader("textureShaderUnfilterable","\n varying vec2 uv0;\n uniform highp sampler2D colorMap;\n void main (void) {\n ivec2 uv = ivec2(uv0 * textureSize(colorMap, 0));\n gl_FragColor = vec4(texelFetch(colorMap, uv, 0).xyz, 1);\n }\n ")},t.getDepthTextureShader=function(){return this.getShader("depthTextureShader","\n "+Za.screenDepthPS+"\n varying vec2 uv0;\n void main() {\n float depth = getLinearScreenDepth(uv0) * camera_params.x;\n gl_FragColor = vec4(vec3(depth), 1.0);\n }\n ")},t.getQuadMesh=function(){return this.quadMesh||(this.quadMesh=new Ma(this.device),this.quadMesh.setPositions([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),this.quadMesh.update(pt)),this.quadMesh},t.drawMesh=function(e,t,i,n,s){if(!n){var r=this.getGraphNode(t);n=new th(i,e,r)}var a=this.layerMeshInstances.get(s);a||(a=[],this.layerMeshInstances.set(s,a)),a.push(n)},t.drawWireAlignedBox=function(e,t,i,n,s){md.push(e.x,e.y,e.z,e.x,t.y,e.z,e.x,t.y,e.z,t.x,t.y,e.z,t.x,t.y,e.z,t.x,e.y,e.z,t.x,e.y,e.z,e.x,e.y,e.z,e.x,e.y,t.z,e.x,t.y,t.z,e.x,t.y,t.z,t.x,t.y,t.z,t.x,t.y,t.z,t.x,e.y,t.z,t.x,e.y,t.z,e.x,e.y,t.z,e.x,e.y,e.z,e.x,e.y,t.z,e.x,t.y,e.z,e.x,t.y,t.z,t.x,t.y,e.z,t.x,t.y,t.z,t.x,e.y,e.z,t.x,e.y,t.z),this.getBatch(s,n).addLinesArrays(md,i),md.length=0},t.drawWireSphere=function(e,t,i,n,s,r){for(var a=2*Math.PI/n,o=0,h=0;hi){this._time=this.looping?0:i;for(var n=0;n=0?1:-1,l=0;l=0;m+=h){var _=d[m],g=d[m+1];if(_.time<=this._time&&g.time>=this._time){var v=(this._time-_.time)/(g.time-_.time);f._pos.lerp(_.position,g.position,v),f._quat.slerp(_.rotation,g.rotation,v),f._scale.lerp(_.scale,g.scale,v),f._written=!0,this._currKeyIndices[u]=m,p=!0;break}}(1===d.length||!p&&0===this._time&&this.looping)&&(f._pos.copy(d[0].position),f._quat.copy(d[0].rotation),f._scale.copy(d[0].scale),f._written=!0)}}}},t.blend=function(e,t,i){for(var n=this._interpolatedKeys.length,s=0;s 0.5) {\n if (dAtten > 0.00001) {\n dirLm.xyz = dirLm.xyz * 2.0 - vec3(1.0);\n dAtten = saturate(dAtten);\n gl_FragColor.rgb = normalize(dLightDirNormW.xyz*dAtten + dirLm.xyz*dirLm.w) * 0.5 + vec3(0.5);\n gl_FragColor.a = dirLm.w + dAtten;\n gl_FragColor.a = max(gl_FragColor.a, 1.0 / 255.0);\n } else {\n gl_FragColor = dirLm;\n }\n } else {\n gl_FragColor.rgb = dirLm.xyz;\n gl_FragColor.a = max(dirLm.w, dAtten > 0.00001? (1.0/255.0) : 0.0);\n }\n",bakeLmEndPS:"\n#ifdef LIGHTMAP_RGBM\n gl_FragColor.rgb = dDiffuseLight;\n gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.5));\n gl_FragColor.rgb /= 8.0;\n gl_FragColor.a = clamp( max( max( gl_FragColor.r, gl_FragColor.g ), max( gl_FragColor.b, 1.0 / 255.0 ) ), 0.0,1.0 );\n gl_FragColor.a = ceil(gl_FragColor.a * 255.0) / 255.0;\n gl_FragColor.rgb /= gl_FragColor.a;\n#else\n gl_FragColor = vec4(dDiffuseLight, 1.0);\n#endif\n",dilatePS:"\n\nvarying vec2 vUv0;\n\nuniform sampler2D source;\nuniform vec2 pixelOffset;\n\nvoid main(void) {\n vec4 c = texture2D(source, vUv0);\n c = c.a>0.0? c : texture2D(source, vUv0 - pixelOffset);\n c = c.a>0.0? c : texture2D(source, vUv0 + vec2(0, -pixelOffset.y));\n c = c.a>0.0? c : texture2D(source, vUv0 + vec2(pixelOffset.x, -pixelOffset.y));\n c = c.a>0.0? c : texture2D(source, vUv0 + vec2(-pixelOffset.x, 0));\n c = c.a>0.0? c : texture2D(source, vUv0 + vec2(pixelOffset.x, 0));\n c = c.a>0.0? c : texture2D(source, vUv0 + vec2(-pixelOffset.x, pixelOffset.y));\n c = c.a>0.0? c : texture2D(source, vUv0 + vec2(0, pixelOffset.y));\n c = c.a>0.0? c : texture2D(source, vUv0 + pixelOffset);\n gl_FragColor = c;\n}\n",bilateralDeNoisePS:"\n// bilateral filter, based on https://www.shadertoy.com/view/4dfGDH# and\n// http://people.csail.mit.edu/sparis/bf_course/course_notes.pdf\n\n// A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing filter for images.\n// It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels.\n// This weight can be based on a Gaussian distribution. Crucially, the weights depend not only on\n// Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such\n// as color intensity, depth distance, etc.). This preserves sharp edges.\n\nfloat normpdf3(in vec3 v, in float sigma) {\n return 0.39894 * exp(-0.5 * dot(v, v) / (sigma * sigma)) / sigma;\n}\n\nvec3 decodeRGBM(vec4 rgbm) {\n vec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n return color * color;\n}\n\nfloat saturate(float x) {\n return clamp(x, 0.0, 1.0);\n}\n\nvec4 encodeRGBM(vec3 color) { // modified RGBM\n vec4 encoded;\n encoded.rgb = pow(color.rgb, vec3(0.5));\n encoded.rgb *= 1.0 / 8.0;\n\n encoded.a = saturate( max( max( encoded.r, encoded.g ), max( encoded.b, 1.0 / 255.0 ) ) );\n encoded.a = ceil(encoded.a * 255.0) / 255.0;\n\n encoded.rgb /= encoded.a;\n return encoded;\n}\n\n// filter size\n#define MSIZE 15\n\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nuniform vec2 sigmas;\nuniform float bZnorm;\nuniform float kernel[MSIZE];\n\nvoid main(void) {\n \n vec4 pixelRgbm = texture2D(source, vUv0);\n\n // lightmap specific optimization - skip pixels that were not baked\n // this also allows dilate filter that work on the output of this to work correctly, as it depends on .a being zero\n // to dilate, which the following blur filter would otherwise modify\n if (pixelRgbm.a <= 0.0) {\n gl_FragColor = pixelRgbm;\n return ;\n }\n\n // range sigma - controls blurriness based on a pixel distance\n float sigma = sigmas.x;\n\n // domain sigma - controls blurriness based on a pixel similarity (to preserve edges)\n float bSigma = sigmas.y;\n\n vec3 pixelHdr = decodeRGBM(pixelRgbm);\n vec3 accumulatedHdr = vec3(0.0);\n float accumulatedFactor = 0.0;\n\n // read out the texels\n const int kSize = (MSIZE-1)/2;\n for (int i = -kSize; i <= kSize; ++i) {\n for (int j = -kSize; j <= kSize; ++j) {\n \n // sample the pixel with offset\n vec2 coord = vUv0 + vec2(float(i), float(j)) * pixelOffset;\n vec4 rgbm = texture2D(source, coord);\n\n // lightmap - only use baked pixels\n if (rgbm.a > 0.0) {\n vec3 hdr = decodeRGBM(rgbm);\n\n // bilateral factors\n float factor = kernel[kSize + j] * kernel[kSize + i];\n factor *= normpdf3(hdr - pixelHdr, bSigma) * bZnorm;\n\n // accumulate\n accumulatedHdr += factor * hdr;\n accumulatedFactor += factor;\n }\n }\n }\n\n gl_FragColor = encodeRGBM(accumulatedHdr / accumulatedFactor);\n}\n"},kd="FILL_WINDOW",Fd="KEEP_ASPECT",Bd="AUTO",Ud="FIXED";function Nd(){return Ld}function zd(e){Ld=e,Ta.set(null==e?void 0:e.graphicsDevice)}var Vd=function(){function e(){}return e.push=function(t,i){i&&e._types.length>0?console.assert("Script Ordering Error. Contact support@playcanvas.com"):e._types.push(t)},e}();Vd._types=[];var Gd=!1,Hd=!1,Wd={app:null,create:function(e,t){if(Gd){var i=t(Wd.app);i._pcScriptName=e,Vd.push(i,Gd),this.fire("created",e,t)}},attribute:function(e,t,i,n){},createLoadingScreen:function(e){Hd||(Hd=!0,e(Nd()))}};Object.defineProperty(Wd,"legacy",{get:function(){return Gd},set:function(e){Gd=e}}),M.attach(Wd);var Xd=function(){function e(){this.renderPasses=[],this.renderTargetMap=new Map}var t=e.prototype;return t.addRenderPass=function(e){this.renderPasses.push(e)},t.reset=function(){this.renderPasses.length=0},t.compile=function(){for(var e=this.renderTargetMap,t=this.renderPasses,i=0;i=0&&e<=1?0:1})),$d(["fr","pt"],(function(e){return e>=0&&e<2?0:1})),$d(["da"],(function(e){return 1===e||!Number.isInteger(e)&&e>=0&&e<=1?0:1})),$d(["de","en","it","el","es","tr","fi","sv","nb","no","ur"],(function(e){return 1===e?0:1})),$d(["ru","uk"],(function(e){if(Number.isInteger(e)){var t=e%10,i=e%100;if(1===t&&11!==i)return 0;if(t>=2&&t<=4&&(i<12||i>14))return 1;if(0===t||t>=5&&t<=9||i>=11&&i<=14)return 2}return 3})),$d(["pl"],(function(e){if(Number.isInteger(e)){if(1===e)return 0;var t=e%10,i=e%100;if(t>=2&&t<=4&&(i<12||i>14))return 1;if(t>=0&&t<=1||t>=5&&t<=9||i>=12&&i<=14)return 2}return 3})),$d(["ar"],(function(e){if(0===e)return 0;if(1===e)return 1;if(2===e)return 2;if(Number.isInteger(e)){var t=e%100;if(t>=3&&t<=10)return 3;if(t>=11&&t<=99)return 4}return 5}));var tf=Qd[Jd(Kd)];function nf(e){return Qd[e]||tf}var sf,rf=new RegExp("^\\s*(?:(?:[a-z]+[a-z0-9\\-\\+\\.]*:)?//|data:|blob:)","i"),af=function(){function e(e,t,i,n,s,r){void 0===e&&(e=""),void 0===t&&(t=""),void 0===i&&(i=null),void 0===n&&(n=null),void 0===s&&(s=null),void 0===r&&(r=null),this.url=e,this.filename=t,this.hash=i,this.size=n,this.opt=s,this.contents=r}return e.prototype.equals=function(e){return this.url===e.url&&this.filename===e.filename&&this.hash===e.hash&&this.size===e.size&&this.opt===e.opt&&this.contents===e.contents},e}(),of=-1,hf={pvr:"extCompressedTexturePVRTC",dxt:"extCompressedTextureS3TC",etc2:"extCompressedTextureETC",etc1:"extCompressedTextureETC1",basis:"canvas"},lf=["pvr","dxt","etc2","etc1","basis"],cf=function(e){function t(t,i,n,s,r){var a;return(a=e.call(this)||this)._id=of--,a._name=t||"",a.type=i,a.tags=new ce(w(a)),a._preload=!1,a._file=null,a._data=s||{},a.options=r||{},a._resources=[],a._i18n={},a.loaded=!1,a.loading=!1,a.registry=null,n&&(a.file=n),a}S(t,e);var i=t.prototype;return i.getFileUrl=function(){var e=this.file;if(!e||!e.url)return null;var t=e.url;if(this.registry&&this.registry.prefix&&!rf.test(t)&&(t=this.registry.prefix+t),"script"!==this.type&&e.hash){var i=-1!==t.indexOf("?")?"&":"?";t+=i+"t="+e.hash}return t},i.getAbsoluteUrl=function(e){if(e.startsWith("blob:")||e.startsWith("data:"))return e;var t=I.getDirectory(this.file.url);return I.join(t,e)},i.getLocalizedAssetId=function(e){return e=ef(e,this._i18n),this._i18n[e]||null},i.addLocalizedAssetId=function(e,t){this._i18n[e]=t,this.fire("add:localized",e,t)},i.removeLocalizedAssetId=function(e){var t=this._i18n[e];t&&(delete this._i18n[e],this.fire("remove:localized",e,t))},i.ready=function(e,t){t=t||this,this.loaded?e.call(t,this):this.once("load",(function(i){e.call(t,i)}))},i.reload=function(){this.loaded&&(this.loaded=!1,this.registry.load(this))},i.unload=function(){if(this.loaded||0!==this._resources.length){this.fire("unload",this),this.registry.fire("unload:"+this.id,this);var e=this._resources;this.resources=[],this.loaded=!1,this.file&&this.registry._loader.clearCache(this.getFileUrl(),this.type);for(var t=0;t0,maxRetries:n},t)},y(t,[{key:"id",get:function(){return this._id},set:function(e){this._id=e}},{key:"name",get:function(){return this._name},set:function(e){if(this._name!==e){var t=this._name;this._name=e,this.fire("name",this,this._name,t)}}},{key:"file",get:function(){return this._file},set:function(e){var t=this;if(e&&e.variants&&-1!==["texture","textureatlas","bundle"].indexOf(this.type)){var i,n=(null==(i=this.registry)||null==(i=i._loader)?void 0:i._app)||Nd(),s=null==n?void 0:n.graphicsDevice;if(s)for(var r=function(){var i=lf[a];if(e.variants[i]&&s[hf[i]])return e=e.variants[i],"break";if(n.enableBundles){var r=n.bundles.listBundlesForAsset(t);if(r&&r.find((function(e){var t;return null==e||null==(t=e.file)?void 0:t.variants[i]})))return"break"}},a=0,o=lf.length;a=s)throw new Error("Invalid PAX header data format.");var l=parseInt(t.decode(new Uint8Array(e,i+a,h-a)),10),c=t.decode(new Uint8Array(e,i+h+1,l-(h-a)-2)).split("=");if(2!==c.length)throw new Error("Invalid PAX header data format.");0===c[1].length&&(c[1]=null),o.push({name:c[0],value:c[1]}),a+=l}return new n(o)},n.prototype.applyHeader=function(e){for(var t=0;t0&&(r=p.trim()+r.trim())}var m={name:r,start:l,size:o,url:c};return this._globalPaxHeader&&this._globalPaxHeader.applyHeader(m),this._paxHeader&&(this._paxHeader.applyHeader(m),this._paxHeader=null),m},s.prototype.untar=function(e){if(!t)return console.error("Cannot untar because TextDecoder interface is not available for this platform."),[];for(var i=[];this._hasNext();){var n=this._readNextFile();n&&(e&&n.name&&(n.name=e+n.name),i.push(n))}return i},e&&(self.onmessage=function(e){var t=e.data.id;try{var i=new s(e.data.arrayBuffer).untar(e.data.prefix);postMessage({id:t,files:i,arrayBuffer:e.data.arrayBuffer},[e.data.arrayBuffer])}catch(e){postMessage({id:t,error:e.toString()})}})}var gf=null;var vf=function(){function e(e){this._requestId=0,this._pendingRequests={},this._filenamePrefix=e,this._worker=new Worker(function(){if(!gf){var e="("+_f.toString()+")(true)\n\n",t=new Blob([e],{type:"application/javascript"});gf=URL.createObjectURL(t)}return gf}()),this._worker.addEventListener("message",this._onMessage.bind(this))}var t=e.prototype;return t._onMessage=function(e){var t=e.data.id;if(this._pendingRequests[t]){var i=this._pendingRequests[t];if(delete this._pendingRequests[t],e.data.error)i(e.data.error);else{for(var n=e.data.arrayBuffer,s=0,r=e.data.files.length;s0},t.destroy=function(){this._worker&&(this._worker.terminate(),this._worker=null,this._pendingRequests=null)},e}();_f();var yf=function(){function e(e){this.handlerType="bundle",this._assets=e.assets,this._worker=null,this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e});var i=this;Qr.get(e.load,{responseType:Zr.ResponseType.ARRAY_BUFFER,retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(n,s){if(n)t("Error loading bundle resource "+e.original+": "+n);else try{i._untar(s,t)}catch(i){t("Error loading bundle resource "+e.original+": "+i)}}))},t._untar=function(e,t){var i=this;if(V.workers)i._worker||(i._worker=new vf(i._assets.prefix)),i._worker.untar(e,(function(e,n){t(e,n),i._worker.hasPendingRequests()||(i._worker.destroy(),i._worker=null)}));else{var n=new sf(e).untar(i._assets.prefix);t(null,n)}},t.open=function(e,t){return new mf(t)},t.patch=function(e,t){},e}(),xf=function(){function e(e){this._handlers={},this._requests={},this._cache={},this._app=e}var t=e.prototype;return t.addHandler=function(e,t){this._handlers[e]=t,t._loader=this},t.removeHandler=function(e){delete this._handlers[e]},t.getHandler=function(e){return this._handlers[e]},e.makeKey=function(e,t){return e+"-"+t},t.load=function(t,i,n,s){var r=this._handlers[i];if(r)if(t){var a=e.makeKey(t,i);if(void 0!==this._cache[a])n(null,this._cache[a]);else if(this._requests[a])this._requests[a].push(n);else{this._requests[a]=[n];var o=this,h=function(e,t){e?o._onFailure(a,e):r.load(t,(function(e,i,n){if(o._requests[a])if(e)o._onFailure(a,e);else try{o._onSuccess(a,r.open(t.original,i,s),n)}catch(e){o._onFailure(a,e)}}),s)},l=t.split("?")[0];if(this._app.enableBundles&&this._app.bundles.hasUrl(l)){if(!this._app.bundles.canLoadUrl(l))return void h("Bundle for "+t+" not loaded yet");this._app.bundles.loadUrl(l,(function(e,t){h(e,{load:t,original:l})}))}else h(null,{load:t,original:s&&s.file.filename||t})}}else this._loadNull(r,n,s);else n("No resource handler for asset type: '"+i+"' when loading ["+t+"]")},t._loadNull=function(e,t,i){e.load(null,(function(n,s,r){if(n)t(n);else try{t(null,e.open(null,s,i),r)}catch(e){t(e)}}),i)},t._onSuccess=function(e,t,i){null!==t?this._cache[e]=t:delete this._cache[e];for(var n=0;n0&&this.loader.enableRetry(e.maxAssetRetries),e.useDevicePixelRatio||(e.useDevicePixelRatio=e.use_device_pixel_ratio),e.resolutionMode||(e.resolutionMode=e.resolution_mode),e.fillMode||(e.fillMode=e.fill_mode),this._width=e.width,this._height=e.height,e.useDevicePixelRatio&&(this.graphicsDevice.maxPixelRatio=window.devicePixelRatio),this.setCanvasResolution(e.resolutionMode,this._width,this._height),this.setCanvasFillMode(e.fillMode,this._width,this._height),e.layers&&e.layerOrder){var i=new tu("application"),n={};for(var s in e.layers){var r=e.layers[s];r.id=parseInt(s,10),r.enabled=1!==r.id,n[s]=new zc(r)}for(var a=0,o=e.layerOrder.length;a0,d.tags.add(u.tags),u.i18n)for(var f in u.i18n)d.addLocalizedAssetId(f,u.i18n[f]);this.assets.add(d)}},n._getScriptReferences=function(e){var t=[];e.settings.priority_scripts&&(t=e.settings.priority_scripts);for(var i=[],n={},s=0;sn._timeToCountFrames?(n.fps=n._fpsAccum,n._fpsAccum=0,n._timeToCountFrames=e+1e3):n._fpsAccum++,this.stats.drawCalls.total=this.graphicsDevice._drawCallsPerFrame,this.graphicsDevice._drawCallsPerFrame=0},n._fillFrameStats=function(){var e=this.stats.frame;e.cameras=this.renderer._camerasRendered,e.materials=this.renderer._materialSwitches,e.shaders=this.graphicsDevice._shaderSwitchesPerFrame,e.shadowMapUpdates=this.renderer._shadowMapUpdates,e.shadowMapTime=this.renderer._shadowMapTime,e.depthMapTime=this.renderer._depthMapTime,e.forwardTime=this.renderer._forwardTime;var t=this.graphicsDevice._primsPerFrame;e.triangles=t[4]/3+Math.max(t[pt]-2,0)+Math.max(t[6]-2,0),e.cullTime=this.renderer._cullTime,e.sortTime=this.renderer._sortTime,e.skinTime=this.renderer._skinTime,e.morphTime=this.renderer._morphTime,e.lightClusters=this.renderer._lightClusters,e.lightClustersTime=this.renderer._lightClustersTime,e.otherPrimitives=0;for(var i=0;ii/n?t=(e=i)/s:e=(t=n)*s}else this._fillMode===kd&&(e=i,t=n);return this.graphicsDevice.canvas.style.width=e+"px",this.graphicsDevice.canvas.style.height=t+"px",this.updateCanvasSize(),{width:e,height:t}}},n.updateCanvasSize=function(){var e;if(this._allowResize&&(null==(e=this.xr)||!e.active)&&this._resolutionMode===Bd){var t=this.graphicsDevice.canvas;this.graphicsDevice.resizeCanvas(t.clientWidth,t.clientHeight)}},n.onLibrariesLoaded=function(){this._librariesLoaded=!0,this.systems.rigidbody&&this.systems.rigidbody.onLibraryLoaded()},n.applySceneSettings=function(e){var t;if(this.systems.rigidbody&&"undefined"!=typeof Ammo){var i=e.physics.gravity;this.systems.rigidbody.gravity.set(i[0],i[1],i[2])}this.scene.applySettings(e),e.render.hasOwnProperty("skybox")&&(e.render.skybox?(t=this.assets.get(e.render.skybox))?this.setSkybox(t):this.assets.once("add:"+e.render.skybox,this.setSkybox,this):this.setSkybox(null))},n.setAreaLightLuts=function(e,t){e&&t&&Yd.set(this.graphicsDevice,e,t)},n.setSkybox=function(e){var t=this;if(e!==this._skyboxAsset){var i=function(){t.setSkybox(null)},n=function(){t.scene.setSkybox(t._skyboxAsset?t._skyboxAsset.resources:null)};this._skyboxAsset&&(this.assets.off("load:"+this._skyboxAsset.id,n,this),this.assets.off("remove:"+this._skyboxAsset.id,i,this),this._skyboxAsset.off("change",n,this)),this._skyboxAsset=e,this._skyboxAsset&&(this.assets.on("load:"+this._skyboxAsset.id,n,this),this.assets.once("remove:"+this._skyboxAsset.id,i,this),this._skyboxAsset.on("change",n,this),0!==this.scene.skyboxMip||this._skyboxAsset.loadFaces||(this._skyboxAsset.loadFaces=!0),this.assets.load(this._skyboxAsset)),n()}},n._firstBake=function(){var e;null==(e=this.lightmapper)||e.bake(null,this.scene.lightmapMode)},n._firstBatch=function(){var e;null==(e=this.batcher)||e.generate()},n._processTimestamp=function(e){return e},n.drawLine=function(e,t,i,n,s){this.scene.drawLine(e,t,i,n,s)},n.drawLines=function(e,t,i,n){void 0===i&&(i=!0),void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.drawLines(e,t,i,n)},n.drawLineArrays=function(e,t,i,n){void 0===i&&(i=!0),void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.drawLineArrays(e,t,i,n)},n.drawWireSphere=function(e,t,i,n,s,r){void 0===i&&(i=me.WHITE),void 0===n&&(n=20),void 0===s&&(s=!0),void 0===r&&(r=this.scene.defaultDrawLayer),this.scene.immediate.drawWireSphere(e,t,i,n,s,r)},n.drawWireAlignedBox=function(e,t,i,n,s){void 0===i&&(i=me.WHITE),void 0===n&&(n=!0),void 0===s&&(s=this.scene.defaultDrawLayer),this.scene.immediate.drawWireAlignedBox(e,t,i,n,s)},n.drawMeshInstance=function(e,t){void 0===t&&(t=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(null,null,null,e,t)},n.drawMesh=function(e,t,i,n){void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(t,i,e,null,n)},n.drawQuad=function(e,t,i){void 0===i&&(i=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(t,e,this.scene.immediate.getQuadMesh(),null,i)},n.drawTexture=function(e,t,i,n,s,r,a,o){if(void 0===a&&(a=this.scene.defaultDrawLayer),void 0===o&&(o=!0),!1!==o||this.graphicsDevice.isWebGPU){var h=new Me;h.setTRS(new ye(e,t,0),Pe.IDENTITY,new ye(i,-n,0)),r||((r=new To).cull=Ze,r.setParameter("colorMap",s),r.shader=o?this.scene.immediate.getTextureShader():this.scene.immediate.getUnfilterableTextureShader(),r.update()),this.drawQuad(h,r,a)}},n.drawDepthTexture=function(e,t,i,n,s){void 0===s&&(s=this.scene.defaultDrawLayer);var r=new To;r.cull=Ze,r.shader=this.scene.immediate.getDepthTextureShader(),r.update(),this.drawTexture(e,t,i,n,null,r,s)},n.destroy=function(){var e;if(this._inFrameUpdate)this._destroyRequested=!0;else{var t=this.graphicsDevice.canvas.id;this.off("librariesloaded"),"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("mozvisibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("msvisibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("webkitvisibilitychange",this._visibilityChangeHandler,!1)),this._visibilityChangeHandler=null,this.root.destroy(),this.root=null,this.mouse&&(this.mouse.off(),this.mouse.detach(),this.mouse=null),this.keyboard&&(this.keyboard.off(),this.keyboard.detach(),this.keyboard=null),this.touch&&(this.touch.off(),this.touch.detach(),this.touch=null),this.elementInput&&(this.elementInput.detach(),this.elementInput=null),this.gamepads&&(this.gamepads.destroy(),this.gamepads=null),this.controller&&(this.controller=null),this.systems.destroy(),this.scene.layers&&this.scene.layers.destroy();for(var n=this.assets.list(),s=0;s0){var n=i.bakeArea;Vl(Bf,e,t),Bf.mulScalar(.5*n),i._node.rotateLocal(Bf.x,0,Bf.y)}i._node.getWorldTransform();var s=this.scene.gammaCorrection?2.2:1,r=Math.pow(this.intensity,s);i.intensity=Math.pow(r/t,1/s)},y(t,[{key:"numVirtualLights",get:function(){return 0===this.light.type?this.light.bakeNumSamples:1}}]),t}(Ff),Nf=new ye,zf=function(e){function t(t){var i=new Af("AmbientLight");return i.addComponent("light",{type:"directional",affectDynamic:!0,affectLightmapped:!1,bake:!0,bakeNumSamples:t.ambientBakeNumSamples,castShadows:!0,normalOffsetBias:.05,shadowBias:.2,shadowDistance:1,shadowResolution:2048,shadowType:0,color:me.WHITE,intensity:1,bakeDir:!1}),e.call(this,t,i.light.light)||this}return S(t,e),t.prototype.prepareVirtualLight=function(e,t){Gl(Nf,e,t,0,this.scene.ambientBakeSpherePart),this.light._node.lookAt(Nf.mulScalar(-1)),this.light._node.rotateLocal(90,0,0);var i=this.scene.gammaCorrection?2.2:1,n=2*Math.PI*this.scene.ambientBakeSpherePart,s=Math.pow(n,i);this.light.intensity=Math.pow(s/t,1/i)},y(t,[{key:"numVirtualLights",get:function(){return this.light.bakeNumSamples}}]),t}(Ff),Vf=function(){function e(e,t){void 0===t&&(t=null),this.node=e,this.component=e.render||e.model,t=t||this.component.meshInstances,this.store(),this.meshInstances=t,this.bounds=null,this.renderTargets=[]}var t=e.prototype;return t.store=function(){this.castShadows=this.component.castShadows},t.restore=function(){this.component.castShadows=this.castShadows},e}(),Gf=function(){function e(e){this.device=e,this.shaderDilate=to(e,Za.fullscreenQuadVS,Od.dilatePS,"lmDilate"),this.constantTexSource=e.scope.resolve("source"),this.constantPixelOffset=e.scope.resolve("pixelOffset"),this.pixelOffset=new Float32Array(2),this.shaderDenoise=null,this.sigmas=null,this.constantSigmas=null,this.kernel=null}var t=e.prototype;return t.setSourceTexture=function(e){this.constantTexSource.setValue(e)},t.prepare=function(e,t){this.pixelOffset[0]=1/e,this.pixelOffset[1]=1/t,this.constantPixelOffset.setValue(this.pixelOffset)},t.prepareDenoise=function(e,t){this.shaderDenoise||(this.shaderDenoise=to(this.device,Za.fullscreenQuadVS,Od.bilateralDeNoisePS,"lmBilateralDeNoise"),this.sigmas=new Float32Array(2),this.constantSigmas=this.device.scope.resolve("sigmas"),this.constantKernel=this.device.scope.resolve("kernel[0]"),this.bZnorm=this.device.scope.resolve("bZnorm")),this.sigmas[0]=e,this.sigmas[1]=t,this.constantSigmas.setValue(this.sigmas),this.evaluateDenoiseUniforms(e,t)},t.evaluateDenoiseUniforms=function(e,t){function i(e,t){return.39894*Math.exp(-.5*e*e/(t*t))/t}this.kernel=this.kernel||new Float32Array(15);for(var n=this.kernel,s=Math.floor(7),r=0;r<=s;++r){var a=i(r,e);n[s+r]=a,n[s-r]=a}this.constantKernel.setValue(this.kernel);var o=1/i(0,t);this.bZnorm.setValue(o)},e}(),Hf=new ye,Wf=function(){function e(e,t,i,n,s){this.device=e,this.root=t,this.scene=i,this.renderer=n,this.assets=s,this.shadowMapCache=n.shadowMapCache,this._tempSet=new Set,this._initCalled=!1,this.passMaterials=[],this.ambientAOMaterial=null,this.fog="",this.ambientLight=new me,this.renderTargets=new Map,this.stats={renderPasses:0,lightmapCount:0,totalRenderTime:0,forwardTime:0,fboTime:0,shadowMapTime:0,compileTime:0,shadersLinked:0}}var t=e.prototype;return t.destroy=function(){Yo.decRef(this.blackTex),this.blackTex=null,Yo.destroy(),this.device=null,this.root=null,this.scene=null,this.renderer=null,this.assets=null},t.initBake=function(e){if(!this._initCalled){this._initCalled=!0,this.lightmapFilters=new Gf(e),this.constantBakeDir=e.scope.resolve("bakeDir"),this.materials=[],this.blackTex=new ys(this.device,{width:4,height:4,format:7,type:Yt,name:"lightmapBlack"}),Yo.incRef(this.blackTex);var t=new mh;t.clearColor.set(0,0,0,0),t.clearColorBuffer=!0,t.clearDepthBuffer=!1,t.clearStencilBuffer=!1,t.frustumCulling=!1,t.projection=1,t.aspectRatio=1,t.node=new jo,this.camera=t}if(this.scene.clusteredLightingEnabled){var i=new cu(e.supportsAreaLights,e.maxTextureSize,(function(){}));this.lightingParams=i;var n=this.scene.lighting;i.shadowsEnabled=n.shadowsEnabled,i.shadowAtlasResolution=n.shadowAtlasResolution,i.cookiesEnabled=n.cookiesEnabled,i.cookieAtlasResolution=n.cookieAtlasResolution,i.areaLightsEnabled=n.areaLightsEnabled,i.cells=new ye(3,3,3),i.maxLightsPerCell=4,this.worldClusters=new Qh(e),this.worldClusters.name="ClusterLightmapper"}},t.finishBake=function(e){function t(e){Yo.decRef(e.colorBuffer),e.destroy()}this.materials=[],this.renderTargets.forEach((function(e){t(e)})),this.renderTargets.clear(),e.forEach((function(e){e.renderTargets.forEach((function(e){t(e)})),e.renderTargets.length=0})),this.ambientAOMaterial=null,this.worldClusters&&(this.worldClusters.destroy(),this.worldClusters=null)},t.createMaterialForPass=function(e,t,i,n){var s=new Ac;if(s.name="lmMaterial-pass:"+i+"-ambient:"+n,s.chunks.APIVersion=bi,s.chunks.transformVS="#define UV1LAYOUT\n"+Za.transformVS,0===i){var r=Od.bakeLmEndPS;n?r="\n dDiffuseLight = ((dDiffuseLight - 0.5) * max("+t.ambientBakeOcclusionContrast.toFixed(1)+" + 1.0, 0.0)) + 0.5;\n dDiffuseLight += vec3("+t.ambientBakeOcclusionBrightness.toFixed(1)+");\n dDiffuseLight = saturate(dDiffuseLight);\n dDiffuseLight *= dAmbientLight;\n "+r:(s.ambient=new me(0,0,0),s.ambientTint=!0),s.chunks.basePS=Za.basePS+(7===t.lightmapPixelFormat?"\n#define LIGHTMAP_RGBM\n":""),s.chunks.endPS=r,s.lightMap=this.blackTex}else s.chunks.basePS=Za.basePS+"\nuniform sampler2D texture_dirLightMap;\nuniform float bakeDir;\n",s.chunks.endPS=Od.bakeDirLmEndPS;return s.chunks.outputAlphaPS="\n",s.chunks.outputAlphaOpaquePS="\n",s.chunks.outputAlphaPremulPS="\n",s.cull=Ze,s.forceUv1=!0,s.update(),s},t.createMaterials=function(e,t,i){for(var n=0;n0&&t.push(new Vf(e,l))}}for(var d=0;d0){this.renderer.shadowRenderer.frameUpdate();var c=1===t?2:1;this.setLightmapping(o,!1,c),this.initBake(i),this.bakeInternal(c,o,h);var u=64;1===t&&(u|=_a),this.scene.ambientBake&&(u|=ba),this.setLightmapping(o,!0,c,u),this.finishBake(o)}var d=ue();this.stats.totalRenderTime=d-n,this.stats.shadersLinked=i._shaderStats.linked-s,this.stats.compileTime=i._shaderStats.compileTime-a,this.stats.fboTime=i._renderTargetCreationTime-r,this.stats.lightmapCount=o.length}},t.allocateTextures=function(e,t){for(var i=0;i0){t.copy(e[0].aabb);for(var i=1;i1&&x>1&&v.light.bakeDir&&(x=1);for(var S=0;S1&&v.prepareVirtualLight(S,x),v.startBake();var b=!1,w=this.lightCameraPrepare(s,v);for(m=0;m0&&S>0)&&!(y&&p>0);p++){var C=T.renderTargets[p],E=T.renderTargets[p].colorBuffer.width,M=this.renderTargets.get(E),P=M.colorBuffer;0===p?g=n.updateShaders:g&&(n.updateShaders=!0);var R=this.passMaterials[p];for(y&&S+1===x&&0===p&&(R=this.ambientAOMaterial),c=0;c=this._right){var i=t.length;if(i)if(e=t[i-1])this._left=t[i-1],this._right=1/0,this._len=0,this._recip=0,this._p0=this._p1=i-1;else{var n=this._findKey(e,t);this._left=t[n],this._right=t[n+1],this._len=this._right-this._left;var s=1/this._len;this._recip=isFinite(s)?s:0,this._p0=n,this._p1=n+1}else this._left=-1/0,this._right=1/0,this._len=0,this._recip=0,this._p0=this._p1=0}this._t=0===this._recip?0:(e-this._left)*this._recip,this._hermite.valid=!1},t._findKey=function(e,t){for(var i=0;e>=t[i+1];)i++;return i},t.eval=function(e,t,i){var n=i._data,s=i._components,r=this._p0*s;if(0===t)for(var a=0;a=e)},t.nextEventBehindTime=function(e){return!!this.nextEvent&&(e===this.track.duration?this.isReverse?this.nextEvent.time>=e:this.nextEvent.time<=e:this.isReverse?this.nextEvent.time>e:this.nextEvent.time=this.track.events.length?this._eventCursor=0:this._eventCursor<0&&(this._eventCursor=this.track.events.length-1)},t.clipFrameTime=function(t){var i=e.eventFrame;i.start=0,i.end=t,i.residual=0,this.isReverse?t<0&&(i.start=this.track.duration,i.end=0,i.residual=t+this.track.duration):t>this.track.duration&&(i.start=0,i.end=this.track.duration,i.residual=t-this.track.duration)},t.alignCursorToCurrentTime=function(){for(this.resetEventCursor();this.nextEventBehindTime(this._time)&&this._eventCursor!==this.eventCursorEnd;)this.moveEventCursor()},t.fireNextEvent=function(){this._eventHandler.fire(this.nextEvent.name,x({track:this.track},this.nextEvent)),this.moveEventCursor()},t.fireNextEventInFrame=function(e,t){return!(!this.nextEventAheadOfTime(e)||!this.nextEventBehindTime(t))&&(this.fireNextEvent(),!0)},t.activeEventsForFrame=function(t,i){var n=e.eventFrame;this.clipFrameTime(i);for(var s=this.eventCursor;this.fireNextEventInFrame(t,n.end)&&s!==this.eventCursor;);this.loop&&Math.abs(n.residual)>0&&this.activeEventsForFrame(n.start,n.residual)},t.progressForTime=function(e){return e*this._speed/this._track.duration},t._update=function(e){if(this._playing){var t=this._time,i=this._track.duration,n=this._speed,s=this._loop;this._track.events.length>0&&i>0&&this.activeEventsForFrame(t,t+n*e),t+=n*e,n>=0?t>i&&(s?t=t%i||0:(t=this._track.duration,this.pause())):t<0&&(s?t=i+(t%i||0):(t=0,this.pause())),this._time=t}this._time!==this._snapshot._time&&this._track.eval(this._time,this._snapshot)},t.play=function(){this._playing=!0,this._time=0},t.stop=function(){this._playing=!1,this._time=0},t.pause=function(){this._playing=!1},t.resume=function(){this._playing=!0},t.reset=function(){this._time=0},y(e,[{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"track",get:function(){return this._track},set:function(e){this._track=e,this._snapshot=new Kf(e)}},{key:"snapshot",get:function(){return this._snapshot}},{key:"time",get:function(){return this._time},set:function(e){this._time=e,this.alignCursorToCurrentTime()}},{key:"speed",get:function(){return this._speed},set:function(e){var t=Math.sign(e)!==Math.sign(this._speed);this._speed=e,t&&this.alignCursorToCurrentTime()}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=e}},{key:"blendWeight",get:function(){return this._blendWeight},set:function(e){this._blendWeight=e}},{key:"blendOrder",get:function(){return this._blendOrder},set:function(e){this._blendOrder=e}},{key:"eventCursor",get:function(){return this._eventCursor},set:function(e){this._eventCursor=e}},{key:"eventCursorEnd",get:function(){return this.isReverse?0:this._track.events.length-1}},{key:"nextEvent",get:function(){return this._track.events[this._eventCursor]}},{key:"isReverse",get:function(){return this._speed<0}}]),e}();Zf.eventFrame={start:0,end:0,residual:0};var Qf="NONE",$f="PREV_STATE",Jf="NEXT_STATE",ep="PREV_STATE_NEXT_STATE",tp="NEXT_STATE_PREV_STATE",ip="GREATER_THAN",np="LESS_THAN",sp="GREATER_THAN_EQUAL_TO",rp="LESS_THAN_EQUAL_TO",ap="EQUAL_TO",op="NOT_EQUAL_TO",hp="INTEGER",lp="FLOAT",cp="BOOLEAN",up="TRIGGER",dp="2D_DIRECTIONAL",fp="2D_CARTESIAN",pp="DIRECT",mp="START",_p="END",gp="ANY",vp=[mp,_p,gp],yp="OVERWRITE",xp="ADDITIVE",Sp=function(){function e(){}return e.dot=function(e,t){for(var i=e.length,n=0,s=0;s0){i=1/Math.sqrt(i);for(var n=t.length,s=0;s0&&(r=1/Math.sqrt(r));for(var a=0;a0;)this.removeClip(0)},t.updateClipTrack=function(e,t){this._clips.forEach((function(i){i.name.includes(e)&&(i.track=t)})),this.rebind()},t.findClip=function(e){for(var t=this._clips,i=0;i0&&a._update(e),!t)break;var c=void 0,u=void 0,d=void 0;if(l>=1)for(var f=0;f0)for(var p=0;p0&&i.push(n),i},e.encode=function(e,t,i){return(Array.isArray(e)?e.join("/"):e)+"/"+t+"/"+(Array.isArray(i)?i.join("/"):i)};var t=e.prototype;return t.resolve=function(e){return null},t.unresolve=function(e){},t.update=function(e){},e}(),Ep=function(){function e(e,t,i,n){e.set?(this._set=e.set,this._get=e.get):this._set=e,this._type=t,this._components=i,this._targetPath=n,this._isTransform="localRotation"===this._targetPath.substring(this._targetPath.length-13)||"localPosition"===this._targetPath.substring(this._targetPath.length-13)||"localScale"===this._targetPath.substring(this._targetPath.length-10)}return y(e,[{key:"set",get:function(){return this._set}},{key:"get",get:function(){return this._get}},{key:"type",get:function(){return this._type}},{key:"components",get:function(){return this._components}},{key:"targetPath",get:function(){return this._targetPath}},{key:"isTransform",get:function(){return this._isTransform}}]),e}(),Mp=function(){function e(t){var i=this;if(this._isPathInMask=function(e,t){var n=i._mask[e];return!!n&&!!(n.children||t&&!1!==n.value)},this.graph=t,t){this._mask=null;var n={};!function e(t){n[t.name]=t;for(var i=0;i0&&!!this.prevAnim,this.blending&&(this.blend=0,this.blendSpeed=1/t),this.skeleton&&(this.blending?(this.fromSkel.animation=i,this.fromSkel.addTime(this.skeleton._time),this.toSkel.animation=n):this.skeleton.animation=n),this.animEvaluator){var s=this.animEvaluator;if(this.blending)for(;s.clips.length>1;)s.removeClip(0);else this.animEvaluator.removeClips();var r=new Zf(this.animations[this.currAnim],0,1,!0,this.loop);r.name=this.currAnim,r.blendWeight=this.blending?0:1,r.reset(),this.animEvaluator.addClip(r)}}this.playing=!0}},i.getAnimation=function(e){return this.animations[e]},i.setModel=function(e){e!==this.model&&(this._resetAnimationController(),this.model=e,this.animations&&this.currAnim&&this.animations[this.currAnim]&&this.play(this.currAnim))},i.onSetAnimations=function(){var e=this.entity.model;if(e){var t=e.model;t&&t!==this.model&&this.setModel(t)}if(!this.currAnim&&this.activate&&this.enabled&&this.entity.enabled){var i=Object.keys(this._animations);i.length>0&&this.play(i[0])}},i._resetAnimationController=function(){this.skeleton=null,this.fromSkel=null,this.toSkel=null,this.animEvaluator=null},i._createAnimationController=function(){var e=this.model,t=this.animations,i=!1,n=!1;for(var s in t){if(t.hasOwnProperty(s))t[s].constructor===Ap?n=!0:i=!0}var r=e.getGraph();i?(this.fromSkel=new Ed(r),this.toSkel=new Ed(r),this.skeleton=new Ed(r),this.skeleton.looping=this.loop,this.skeleton.setGraph(r)):n&&(this.animEvaluator=new wp(new Mp(this.entity)))},i.loadAnimationAssets=function(e){var t=this;if(e&&e.length)for(var i=this.system.app.assets,n=function(e){if(e.resources.length>1)for(var i=0;i1){if(n&&n.length>1)for(var r=0;r1)for(var o=0;o1)for(var h=0;h1)for(var t=0;t0&&this.play(a[0])}},i.onBeforeRemove=function(){for(var e=0;e=1&&(this.blend=1)),this.playing){var t=this.skeleton;if(null!==t&&null!==this.model){if(this.blending)t.blend(this.fromSkel,this.toSkel,this.blend);else{var i=e*this.speed;t.addTime(i),(this.speed>0&&t._time===t.animation.duration&&!this.loop||this.speed<0&&0===t._time&&!this.loop)&&(this.playing=!1)}this.blending&&1===this.blend&&(t.animation=this.toSkel.animation),t.updateGraph()}}var n=this.animEvaluator;if(n){for(var s=0;s1&&(n.clips[1].blendWeight=this.blend),n.update(e)}this.blending&&1===this.blend&&(this.blending=!1)},y(t,[{key:"animations",get:function(){return this._animations},set:function(e){this._animations=e,this.onSetAnimations()}},{key:"assets",get:function(){return this._assets},set:function(e){var t=this._assets;if(t&&t.length)for(var i=0;i0)return e[e.length-1].time}return 0},set:function(e){if(this.skeleton&&(this.skeleton.currentTime=e,this.skeleton.addTime(0),this.skeleton.updateGraph()),this.animEvaluator)for(var t=this.animEvaluator.clips,i=0;i=0)this._animationList[n].animTrack=t;else{var s=this._getNodeFromPath(e);s.animTrack=t,this._animationList.push(s)}this._updateHasAnimations()},t._updateHasAnimations=function(){this._hasAnimations=this._animationList.length>0&&this._animationList.every((function(e){return e.animTrack&&e.animTrack!==Ap.EMPTY}))},y(e,[{key:"name",get:function(){return this._name}},{key:"animations",get:function(){return this._animationList},set:function(e){this._animationList=e,this._updateHasAnimations()}},{key:"hasAnimations",get:function(){return this._hasAnimations}},{key:"speed",get:function(){return this._speed},set:function(e){this._speed=e}},{key:"loop",get:function(){return this._loop},set:function(e){this._loop=e}},{key:"nodeCount",get:function(){return this._blendTree&&this._blendTree.constructor!==Dp?this._blendTree.getNodeCount():1}},{key:"playable",get:function(){return-1!==vp.indexOf(this.name)||this.animations.length===this.nodeCount}},{key:"looping",get:function(){if(this.animations.length>0){var e=this.name+"."+this.animations[0].animTrack.name,t=this._controller.animEvaluator.findClip(e);if(t)return t.loop}return!1}},{key:"totalWeight",get:function(){for(var e=0,t=0;te&&(e=i.animTrack.duration)}return e}}]),e}(),zp=function(){function e(e){var t=e.from,i=e.to,n=e.time,s=void 0===n?0:n,r=e.priority,a=void 0===r?0:r,o=e.conditions,h=void 0===o?[]:o,l=e.exitTime,c=void 0===l?null:l,u=e.transitionOffset,d=void 0===u?null:u,f=e.interruptionSource,p=void 0===f?Qf:f;this._from=t,this._to=i,this._time=s,this._priority=a,this._conditions=h,this._exitTime=c,this._transitionOffset=d,this._interruptionSource=p}return y(e,[{key:"from",get:function(){return this._from}},{key:"to",get:function(){return this._to},set:function(e){this._to=e}},{key:"time",get:function(){return this._time}},{key:"priority",get:function(){return this._priority}},{key:"conditions",get:function(){return this._conditions}},{key:"exitTime",get:function(){return this._exitTime}},{key:"transitionOffset",get:function(){return this._transitionOffset}},{key:"interruptionSource",get:function(){return this._interruptionSource}},{key:"hasExitTime",get:function(){return!!this.exitTime}}]),e}(),Vp=function(){function e(e,t,i,n,s,r,a){var o=this;this.findParameter=function(e){return o._findParameter(e)},this._animEvaluator=e,this._states={},this._stateNames=[],this._eventHandler=s,this._findParameter=r,this._consumeTrigger=a;for(var h=0;h"+t];return i||(i=this._transitions.filter((function(i){return i.from===e&&i.to===t})),Zc(i),this._findTransitionsBetweenStatesCache[e+"->"+t]=i),i},t._transitionHasConditionsMet=function(e){for(var t=e.conditions,i=0;in.value))return!1;break;case np:if(!(s.value=n.value))return!1;break;case rp:if(!(s.value<=n.value))return!1;break;case ap:if(s.value!==n.value)return!1;break;case op:if(s.value===n.value)return!1}}return!0},t._findTransition=function(e,t){var i=this,n=[];if(e&&t)n=n.concat(this._findTransitionsBetweenStates(e,t));else if(this._isTransitioning)switch(this._transitionInterruptionSource){case $f:n=(n=n.concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(gp));break;case Jf:n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(gp));break;case ep:n=(n=(n=n.concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(gp));break;case tp:n=(n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(gp))}else n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(gp));if(n=n.filter((function(e){if(e.to===i.activeStateName)return!1;if(e.hasExitTime){var t=i._getActiveStateProgressForTime(i._timeInStateBefore),n=i._getActiveStateProgressForTime(i._timeInState);if(e.exitTime<1&&i.activeState.loop&&(t-=Math.floor(t),n-=Math.floor(n)),n===t){if(n!==e.exitTime)return null}else if(!(e.exitTime>t&&e.exitTime<=n))return null}return i._transitionHasConditionsMet(e)})),n.length>0){var s=n[0];if(s.to===_p){var r=this._findTransitionsFromState(mp)[0];s.to=r.to}return s}return null},t.updateStateFromTransition=function(e){var t,i,n;this.previousState=e.from?this.activeStateName:null,this.activeState=e.to,this._activeStateDurationDirty=!0;for(var s=0;s0&&e.transitionOffset<1,u=0,d=0;if(c){var f=l.timelineDuration*e.transitionOffset;u=f,d=f}this._timeInState=u,this._timeInStateBefore=d;for(var p=0;p0?n.blendWeight=0:n.blendWeight=l.animations[p].normalizedWeight,n.play(),c)n.time=l.timelineDuration*e.transitionOffset;else{var _=l.speed>=0?0:this.activeStateDuration;n.time=_}}},t._transitionToState=function(e){if(this._findState(e)){var t=this._findTransition(this._activeStateName,e);t||(this._animEvaluator.removeClips(),t=new zp({from:null,to:e})),this.updateStateFromTransition(t)}},t.assignAnimation=function(e,t,i,n){var s=e.split("."),r=this._findState(s[0]);r||(r=new Np(this,s[0],i),this._states[s[0]]=r,this._stateNames.push(s[0])),r.addAnimation(s,t),this._animEvaluator.updateClipTrack(r.name,t),void 0!==i&&(r.speed=i),void 0!==n&&(r.loop=n),!this._playing&&this._activate&&this.playable&&this.play(),this._activeStateDurationDirty=!0},t.removeNodeAnimations=function(e){if(-1!==vp.indexOf(e))return!1;var t=this._findState(e);return!!t&&(t.animations=[],!0)},t.play=function(e){e&&this._transitionToState(e),this._playing=!0},t.pause=function(){this._playing=!1},t.reset=function(){this._previousStateName=null,this._activeStateName=mp,this._playing=!1,this._currTransitionTime=1,this._totalTransitionTime=1,this._isTransitioning=!1,this._timeInState=0,this._timeInStateBefore=0,this._animEvaluator.removeClips()},t.rebind=function(){this._animEvaluator.rebind()},t.update=function(e){if(this._playing){var t,i,n;(this.activeState.loop||this._timeInStatethis.activeStateDuration&&(this._timeInState=this.activeStateDuration,e=this.activeStateDuration-this._timeInStateBefore));var s=this._findTransition(this._activeStateName);if(s&&this.updateStateFromTransition(s),this._isTransitioning)if(this._currTransitionTime+=e,this._currTransitionTime<=this._totalTransitionTime){for(var r=0!==this._totalTransitionTime?this._currTransitionTime/this._totalTransitionTime:1,a=0;a1){var l=t.length>2?this._resolvePath(e,t.slice(0,-1)):e,c=t[t.length-2];return function(e){n[s]=i(e),l[c]=n}}return function(e){n[s]=i(e)}},i._createAnimTargetForProperty=function(e,i,n){if(this.handlers&&i[0].startsWith("weight."))return this.handlers.weight(e,i[0].replace("weight.",""));if(this.handlers&&"material"===i[0]&&2===i.length){var s=i[1];if(s.endsWith("Map"))return this.handlers.materialTexture(e,s)}var r,a,o,h=this._resolvePath(e,i,!0);if(void 0===h)return null;if("number"==typeof h)r=this._setter(e,i,t._packFloat),a="vector",o=1;else if("boolean"==typeof h)r=this._setter(e,i,t._packBoolean),a="vector",o=1;else if("object"==typeof h)switch(h.constructor){case Se:r=this._setter(e,i,t._packVec2),a="vector",o=2;break;case ye:r=this._setter(e,i,t._packVec3),a="vector",o=3;break;case be:r=this._setter(e,i,t._packVec4),a="vector",o=4;break;case me:r=this._setter(e,i,t._packColor),a="vector",o=4;break;case Pe:r=this._setter(e,i,t._packQuat),a="quaternion",o=4;break;default:return null}return-1!==i.indexOf("material")?new Ep((function(t){r(t),e.material.update()}),a,o,n):new Ep(r,a,o,n)},i.rebind=function(){this.targetCache={},this.animComponent.rootBone?this.graph=this.animComponent.rootBone:this.graph=this.animComponent.entity;var e={};!function t(i){e[i.name]=i;for(var n=0;n0?this._layers[0]:null}}]),t}(Xf),Qp=function(){this.enabled=!0},$p=["enabled"],Jp=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="anim",i.ComponentType=Zp,i.DataType=Qp,i.schema=$p,i.on("beforeremove",i.onBeforeRemove,w(i)),i.app.systems.on("animationUpdate",i.onAnimationUpdate,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){var s=this;e.prototype.initializeComponentData.call(this,t,i,$p);var r=["animationAssets","stateGraph","layers","masks"];Object.keys(i).forEach((function(e){r.includes(e)||(t[e]=i[e])})),i.stateGraph&&(t.stateGraph=i.stateGraph,t.loadStateGraph(t.stateGraph)),i.layers?i.layers.forEach((function(e,i){e._controller.states.forEach((function(n){e._controller._states[n]._animationList.forEach((function(n){if(n.animTrack&&n.animTrack!==Ap.EMPTY)t.layers[i].assignAnimation(n.name,n.animTrack);else{var r=s.app.assets.get(e._component._animationAssets[e.name+":"+n.name].asset);r&&!r.loaded&&r.once("load",(function(){t.layers[i].assignAnimation(n.name,r.resource)}))}}))}))})):i.animationAssets&&(t.animationAssets=Object.assign(t.animationAssets,i.animationAssets)),i.masks&&Object.keys(i.masks).forEach((function(e){if(t.layers[e]){var n=i.masks[e].mask,s={};Object.keys(n).forEach((function(e){s[decodeURI(e)]=n[e]})),t.layers[e].mask=s}}))},i.onAnimationUpdate=function(e){var t=this.store;for(var i in t)if(t.hasOwnProperty(i)){var n=t[i].entity.anim;n.data.enabled&&n.entity.enabled&&n.playing&&n.update(e)}},i.cloneComponent=function(e,t){var i;e.anim.rootBone&&e.anim.rootBone!==e||(i={},e.anim.layers.forEach((function(e,n){if(e.mask){var s={};Object.keys(e.mask).forEach((function(i){var n=i.split("/");n.shift();var r=[t.name].concat(n).join("/");s[r]=e.mask[i]})),i[n]={mask:s}}})));var n={stateGraphAsset:e.anim.stateGraphAsset,animationAssets:e.anim.animationAssets,speed:e.anim.speed,activate:e.anim.activate,playing:e.anim.playing,rootBone:e.anim.rootBone,stateGraph:e.anim.stateGraph,layers:e.anim.layers,layerIndices:e.anim.layerIndices,parameters:e.anim.parameters,normalizeWeights:e.anim.normalizeWeights,masks:i};return this.addComponent(t,n)},i.onBeforeRemove=function(e,t){t.onBeforeRemove()},i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("animationUpdate",this.onAnimationUpdate,this)},t}(jf);Xf._buildAccessors(Zp.prototype,$p);var em=function(e){function t(t,i){return e.call(this,t,i)||this}S(t,e);var i=t.prototype;return i.setCurrentListener=function(){if(this.enabled&&this.entity.audiolistener&&this.entity.enabled){this.system.current=this.entity;var e=this.system.current.getPosition();this.system.manager.listener.setPosition(e)}},i.onEnable=function(){this.setCurrentListener()},i.onDisable=function(){this.system.current===this.entity&&(this.system.current=null)},t}(Xf),tm=function(){this.enabled=!0},im=["enabled"],nm=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="audiolistener",i.ComponentType=em,i.DataType=tm,i.schema=im,i.manager=t.soundManager,i.current=null,i.app.systems.on("update",i.onUpdate,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){n=["enabled"],e.prototype.initializeComponentData.call(this,t,i,n)},i.onUpdate=function(e){if(this.current){var t=this.current.getPosition();this.manager.listener.setPosition(t);var i=this.current.getWorldTransform();this.manager.listener.setOrientation(i)}},i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},t}(jf);Xf._buildAccessors(em.prototype,im);var sm=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this).on("set_assets",n.onSetAssets,w(n)),n.on("set_loop",n.onSetLoop,w(n)),n.on("set_volume",n.onSetVolume,w(n)),n.on("set_pitch",n.onSetPitch,w(n)),n.on("set_minDistance",n.onSetMinDistance,w(n)),n.on("set_maxDistance",n.onSetMaxDistance,w(n)),n.on("set_rollOffFactor",n.onSetRollOffFactor,w(n)),n.on("set_distanceModel",n.onSetDistanceModel,w(n)),n.on("set_3d",n.onSet3d,w(n)),n}S(t,e);var i=t.prototype;return i.play=function(e){if(this.enabled&&this.entity.enabled){var t;this.channel&&this.stop();var i=this.data;if(i.sources[e])if(i["3d"]){var n=this.entity.getPosition();t=this.system.manager.playSound3d(i.sources[e],n,i),i.currentSource=e,i.channel=t}else t=this.system.manager.playSound(i.sources[e],i),i.currentSource=e,i.channel=t}},i.pause=function(){this.channel&&this.channel.pause()},i.unpause=function(){this.channel&&this.channel.paused&&this.channel.unpause()},i.stop=function(){this.channel&&(this.channel.stop(),this.channel=null)},i.onSetAssets=function(e,t,i){var n=[],s=i.length;if(t&&t.length)for(var r=0;r1e-5){var i=this._tweenInfo.lerpColor;i.lerp(this._tweenInfo.from,this._tweenInfo.to,t),this._applyTintImmediately(new me(i.r,i.g,i.b,i.a))}else this._applyTintImmediately(this._tweenInfo.to),this._cancelTween()},i._cancelTween=function(){delete this._tweenInfo},i.onUpdate=function(){this._tweenInfo&&this._updateTintTween()},i.onEnable=function(){this._isHovering=!1,this._hoveringCounter=0,this._isPressed=!1,this._imageReference.onParentComponentEnable(),this._toggleHitElementListeners("on"),this._forceReapplyVisualState()},i.onDisable=function(){this._toggleHitElementListeners("off"),this._resetToDefaultVisualState(this.transitionMode)},i.onRemove=function(){this._toggleLifecycleListeners("off",this.system),this.onDisable()},t}(Xf);function wm(e){return new me(e.r,e.g,e.b)}var Tm=function(){this.enabled=!0,this.active=!0,this.imageEntity=null,this.hitPadding=new be,this.transitionMode=0,this.hoverTint=new me(.75,.75,.75),this.pressedTint=new me(.5,.5,.5),this.inactiveTint=new me(.25,.25,.25),this.fadeDuration=0,this.hoverSpriteAsset=null,this.hoverSpriteFrame=0,this.pressedSpriteAsset=null,this.pressedSpriteFrame=0,this.inactiveSpriteAsset=null,this.inactiveSpriteFrame=0},Am=["enabled","active",{name:"imageEntity",type:"entity"},{name:"hitPadding",type:"vec4"},"transitionMode",{name:"hoverTint",type:"rgba"},{name:"pressedTint",type:"rgba"},{name:"inactiveTint",type:"rgba"},"fadeDuration","hoverSpriteAsset","hoverSpriteFrame","pressedSpriteAsset","pressedSpriteFrame","inactiveSpriteAsset","inactiveSpriteFrame"],Cm=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="button",i.ComponentType=bm,i.DataType=Tm,i.schema=Am,i.on("beforeremove",i._onRemoveComponent,w(i)),i.app.systems.on("update",i.onUpdate,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){e.prototype.initializeComponentData.call(this,t,i,Am)},i.onUpdate=function(e){var t=this.store;for(var i in t){var n=t[i].entity,s=n.button;s.enabled&&n.enabled&&s.onUpdate()}},i._onRemoveComponent=function(e,t){t.onRemove()},i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},t}(jf);Xf._buildAccessors(bm.prototype,Am);var Em,Mm,Pm,Rm=new ye,Im=new Pe,Lm=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._compoundParent=null,n._hasOffset=!1,n.entity.on("insert",n._onInsert,w(n)),n.on("set_type",n.onSetType,w(n)),n.on("set_halfExtents",n.onSetHalfExtents,w(n)),n.on("set_linearOffset",n.onSetOffset,w(n)),n.on("set_angularOffset",n.onSetOffset,w(n)),n.on("set_radius",n.onSetRadius,w(n)),n.on("set_height",n.onSetHeight,w(n)),n.on("set_axis",n.onSetAxis,w(n)),n.on("set_asset",n.onSetAsset,w(n)),n.on("set_renderAsset",n.onSetRenderAsset,w(n)),n.on("set_model",n.onSetModel,w(n)),n.on("set_render",n.onSetRender,w(n)),n}S(t,e);var i=t.prototype;return i.onSetType=function(e,t,i){t!==i&&this.system.changeType(this,t,i)},i.onSetHalfExtents=function(e,t,i){var n=this.data.type;this.data.initialized&&"box"===n&&this.system.recreatePhysicalShapes(this)},i.onSetOffset=function(e,t,i){this._hasOffset=!this.data.linearOffset.equals(ye.ZERO)||!this.data.angularOffset.equals(Pe.IDENTITY),this.data.initialized&&this.system.recreatePhysicalShapes(this)},i.onSetRadius=function(e,t,i){var n=this.data.type;!this.data.initialized||"sphere"!==n&&"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetHeight=function(e,t,i){var n=this.data.type;!this.data.initialized||"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetAxis=function(e,t,i){var n=this.data.type;!this.data.initialized||"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetAsset=function(e,t,i){var n=this.system.app.assets;if(t){var s=n.get(t);s&&s.off("remove",this.onAssetRemoved,this)}if(i){i instanceof cf&&(this.data.asset=i.id);var r=n.get(this.data.asset);r&&(r.off("remove",this.onAssetRemoved,this),r.on("remove",this.onAssetRemoved,this))}this.data.initialized&&"mesh"===this.data.type&&(i||(this.data.model=null),this.system.recreatePhysicalShapes(this))},i.onSetRenderAsset=function(e,t,i){var n=this.system.app.assets;if(t){var s=n.get(t);s&&s.off("remove",this.onRenderAssetRemoved,this)}if(i){i instanceof cf&&(this.data.renderAsset=i.id);var r=n.get(this.data.renderAsset);r&&(r.off("remove",this.onRenderAssetRemoved,this),r.on("remove",this.onRenderAssetRemoved,this))}this.data.initialized&&"mesh"===this.data.type&&(i||(this.data.render=null),this.system.recreatePhysicalShapes(this))},i.onSetModel=function(e,t,i){this.data.initialized&&"mesh"===this.data.type&&this.system.implementations.mesh.doRecreatePhysicalShape(this)},i.onSetRender=function(e,t,i){this.onSetModel(e,t,i)},i.onAssetRemoved=function(e){e.off("remove",this.onAssetRemoved,this),this.data.asset===e.id&&(this.asset=null)},i.onRenderAssetRemoved=function(e){e.off("remove",this.onRenderAssetRemoved,this),this.data.renderAsset===e.id&&(this.renderAsset=null)},i._getCompoundChildShapeIndex=function(e){for(var t=this.data.shape,i=t.getNumChildShapes(),n=0;n-1&&t.rigidbody._triggers.splice(i,1),t.rigidbody.removeBody(e),e.forceActivationState(5)}},e}(),zm=new Me,Vm=new ye,Gm=new ye,Hm=new Pe,Wm=new jo,Xm=["enabled","type","halfExtents","linearOffset","angularOffset","radius","axis","height","asset","renderAsset","shape","model","render"],jm=function(){function e(e){this.system=e}var t=e.prototype;return t.beforeInitialize=function(e,t){t.shape=null,t.model=new fu,t.model.graph=new jo},t.afterInitialize=function(e,t){this.recreatePhysicalShapes(e),e.data.initialized=!0},t.reset=function(e,t){this.beforeInitialize(e,t),this.afterInitialize(e,t)},t.recreatePhysicalShapes=function(e){var t=e.entity,i=e.data;if("undefined"!=typeof Ammo){t.trigger&&(t.trigger.destroy(),delete t.trigger),i.shape&&(e._compoundParent&&(this.system._removeCompoundChild(e._compoundParent,i.shape),e._compoundParent.entity.rigidbody&&e._compoundParent.entity.rigidbody.activate()),this.destroyShape(i)),i.shape=this.createPhysicalShape(e.entity,i);var n=!e._compoundParent;if("compound"!==i.type||e._compoundParent&&e!==e._compoundParent){if("compound"!==i.type&&(e._compoundParent&&e===e._compoundParent&&t.forEach(this.system.implementations.compound._updateEachDescendant,e),!e.rigidbody)){e._compoundParent=null;for(var s=t.parent;s;){if(s.collision&&"compound"===s.collision.type){e._compoundParent=s.collision;break}s=s.parent}}}else e._compoundParent=e,t.forEach(this._addEachDescendant,e);e._compoundParent&&e!==e._compoundParent&&(n&&0===e._compoundParent.shape.getNumChildShapes()?this.system.recreatePhysicalShapes(e._compoundParent):(this.system.updateCompoundChildTransform(t),e._compoundParent.entity.rigidbody&&e._compoundParent.entity.rigidbody.activate())),t.rigidbody?(t.rigidbody.disableSimulation(),t.rigidbody.createBody(),t.enabled&&t.rigidbody.enabled&&t.rigidbody.enableSimulation()):e._compoundParent||(t.trigger?t.trigger.initialize(i):t.trigger=new Nm(this.system.app,e,i))}},t.createPhysicalShape=function(e,t){},t.updateTransform=function(e,t,i,n){e.entity.trigger&&e.entity.trigger.updateTransform()},t.destroyShape=function(e){e.shape&&(Ammo.destroy(e.shape),e.shape=null)},t.beforeRemove=function(e,t){t.data.shape&&(t._compoundParent&&!t._compoundParent.entity._destroying&&(this.system._removeCompoundChild(t._compoundParent,t.data.shape),t._compoundParent.entity.rigidbody&&t._compoundParent.entity.rigidbody.activate()),t._compoundParent=null,this.destroyShape(t.data))},t.remove=function(e,t){e.rigidbody&&e.rigidbody.body&&e.rigidbody.disableSimulation(),e.trigger&&(e.trigger.destroy(),delete e.trigger)},t.clone=function(e,t){var i=this.system.store[e.getGuid()],n={enabled:i.data.enabled,type:i.data.type,halfExtents:[i.data.halfExtents.x,i.data.halfExtents.y,i.data.halfExtents.z],linearOffset:[i.data.linearOffset.x,i.data.linearOffset.y,i.data.linearOffset.z],angularOffset:[i.data.angularOffset.x,i.data.angularOffset.y,i.data.angularOffset.z,i.data.angularOffset.w],radius:i.data.radius,axis:i.data.axis,height:i.data.height,asset:i.data.asset,renderAsset:i.data.renderAsset,model:i.data.model,render:i.data.render};return this.system.addComponent(t,n)},e}(),qm=function(e){function t(){return e.apply(this,arguments)||this}return S(t,e),t.prototype.createPhysicalShape=function(e,t){if("undefined"!=typeof Ammo){var i=t.halfExtents,n=new Ammo.btVector3(i?i.x:.5,i?i.y:.5,i?i.z:.5),s=new Ammo.btBoxShape(n);return Ammo.destroy(n),s}},t}(jm),Ym=function(e){function t(){return e.apply(this,arguments)||this}return S(t,e),t.prototype.createPhysicalShape=function(e,t){if("undefined"!=typeof Ammo)return new Ammo.btSphereShape(t.radius)},t}(jm),Km=function(e){function t(){return e.apply(this,arguments)||this}return S(t,e),t.prototype.createPhysicalShape=function(e,t){var i,n,s,r=null!=(i=t.axis)?i:1,a=null!=(n=t.radius)?n:.5,o=Math.max((null!=(s=t.height)?s:2)-2*a,0),h=null;if("undefined"!=typeof Ammo)switch(r){case 0:h=new Ammo.btCapsuleShapeX(a,o);break;case 1:h=new Ammo.btCapsuleShape(a,o);break;case 2:h=new Ammo.btCapsuleShapeZ(a,o)}return h},t}(jm),Zm=function(e){function t(){return e.apply(this,arguments)||this}return S(t,e),t.prototype.createPhysicalShape=function(e,t){var i,n,s,r=null!=(i=t.axis)?i:1,a=null!=(n=t.radius)?n:.5,o=null!=(s=t.height)?s:1,h=null,l=null;if("undefined"!=typeof Ammo)switch(r){case 0:h=new Ammo.btVector3(.5*o,a,a),l=new Ammo.btCylinderShapeX(h);break;case 1:h=new Ammo.btVector3(a,.5*o,a),l=new Ammo.btCylinderShape(h);break;case 2:h=new Ammo.btVector3(a,a,.5*o),l=new Ammo.btCylinderShapeZ(h)}return h&&Ammo.destroy(h),l},t}(jm),Qm=function(e){function t(){return e.apply(this,arguments)||this}return S(t,e),t.prototype.createPhysicalShape=function(e,t){var i,n,s,r=null!=(i=t.axis)?i:1,a=null!=(n=t.radius)?n:.5,o=null!=(s=t.height)?s:1,h=null;if("undefined"!=typeof Ammo)switch(r){case 0:h=new Ammo.btConeShapeX(a,o);break;case 1:h=new Ammo.btConeShape(a,o);break;case 2:h=new Ammo.btConeShapeZ(a,o)}return h},t}(jm),$m=function(e){function t(){return e.apply(this,arguments)||this}S(t,e);var i=t.prototype;return i.beforeInitialize=function(e,t){},i.createAmmoMesh=function(e,t,i){var n;if(this.system._triMeshCache[e.id])n=this.system._triMeshCache[e.id];else{for(var s,r,a=e.vertexBuffer,o=a.getFormat(),h=0;h=0&&this.model.meshInstances.splice(i,1),this.unmaskMeshInstance=null}this._entity.enabled&&this._element.enabled&&(this._element.removeModelFromLayers(this.model),this._element.addModelToLayers(this.model))}},t.setMaterial=function(e){this.meshInstance&&(this.meshInstance.material=e,this.unmaskMeshInstance&&(this.unmaskMeshInstance.material=e))},t.setParameter=function(e,t){this.meshInstance&&(this.meshInstance.setParameter(e,t),this.unmaskMeshInstance&&this.unmaskMeshInstance.setParameter(e,t))},t.deleteParameter=function(e){this.meshInstance&&(this.meshInstance.deleteParameter(e),this.unmaskMeshInstance&&this.unmaskMeshInstance.deleteParameter(e))},t.setUnmaskDrawOrder=function(){if(this.meshInstance){if(this.unmaskMeshInstance){var e=function e(t){var i,n=t.children,s=n.length;if(s){for(var r=0;r0){var s=t.calculatedWidth/t.calculatedHeight;t.fitMode===fm&&s>this._targetAspectRatio||t.fitMode===pm&&s0&&(this._targetAspectRatio=i.rect.z/i.rect.w)}this.mesh=e?t:this._defaultMesh,this.refreshMesh()},t.refreshMesh=function(){this.mesh&&(this._element._beingInitialized?this._meshDirty=!0:this._updateMesh(this.mesh))},t._updateAabb=function(e){return e.center.set(0,0,0),e.halfExtents.set(.5*this._outerScale.x,.5*this._outerScale.y,.001),e.setFromTransformedAabb(e,this._renderable.node.getWorldTransform()),e},t._toggleMask=function(){this._element._dirtifyMask();var e=this._element._isScreenSpace();this._updateMaterial(e),this._renderable.setMask(!!this._mask)},t._onMaterialLoad=function(e){this.material=e.resource},t._onMaterialAdded=function(e){this._system.app.assets.off("add:"+e.id,this._onMaterialAdded,this),this._materialAsset===e.id&&this._bindMaterialAsset(e)},t._bindMaterialAsset=function(e){this._entity.enabled&&(e.on("load",this._onMaterialLoad,this),e.on("change",this._onMaterialChange,this),e.on("remove",this._onMaterialRemove,this),e.resource?this._onMaterialLoad(e):this._system.app.assets.load(e))},t._unbindMaterialAsset=function(e){e.off("load",this._onMaterialLoad,this),e.off("change",this._onMaterialChange,this),e.off("remove",this._onMaterialRemove,this)},t._onMaterialChange=function(){},t._onMaterialRemove=function(){},t._onTextureAdded=function(e){this._system.app.assets.off("add:"+e.id,this._onTextureAdded,this),this._textureAsset===e.id&&this._bindTextureAsset(e)},t._bindTextureAsset=function(e){this._entity.enabled&&(e.on("load",this._onTextureLoad,this),e.on("change",this._onTextureChange,this),e.on("remove",this._onTextureRemove,this),e.resource?this._onTextureLoad(e):this._system.app.assets.load(e))},t._unbindTextureAsset=function(e){e.off("load",this._onTextureLoad,this),e.off("change",this._onTextureChange,this),e.off("remove",this._onTextureRemove,this)},t._onTextureLoad=function(e){this.texture=e.resource},t._onTextureChange=function(e){},t._onTextureRemove=function(e){},t._onSpriteAssetAdded=function(e){this._system.app.assets.off("add:"+e.id,this._onSpriteAssetAdded,this),this._spriteAsset===e.id&&this._bindSpriteAsset(e)},t._bindSpriteAsset=function(e){this._entity.enabled&&(e.on("load",this._onSpriteAssetLoad,this),e.on("change",this._onSpriteAssetChange,this),e.on("remove",this._onSpriteAssetRemove,this),e.resource?this._onSpriteAssetLoad(e):this._system.app.assets.load(e))},t._unbindSpriteAsset=function(e){e.off("load",this._onSpriteAssetLoad,this),e.off("change",this._onSpriteAssetChange,this),e.off("remove",this._onSpriteAssetRemove,this),e.data.textureAtlasAsset&&this._system.app.assets.off("load:"+e.data.textureAtlasAsset,this._onTextureAtlasLoad,this)},t._onSpriteAssetLoad=function(e){if(e&&e.resource)if(e.resource.atlas)this.sprite=e.resource;else{var t=e.data.textureAtlasAsset;if(t){var i=this._system.app.assets;i.off("load:"+t,this._onTextureAtlasLoad,this),i.once("load:"+t,this._onTextureAtlasLoad,this)}}else this.sprite=null},t._onSpriteAssetChange=function(e){this._onSpriteAssetLoad(e)},t._onSpriteAssetRemove=function(e){},t._bindSprite=function(e){e.on("set:meshes",this._onSpriteMeshesChange,this),e.on("set:pixelsPerUnit",this._onSpritePpuChange,this),e.on("set:atlas",this._onAtlasTextureChange,this),e.atlas&&e.atlas.on("set:texture",this._onAtlasTextureChange,this)},t._unbindSprite=function(e){e.off("set:meshes",this._onSpriteMeshesChange,this),e.off("set:pixelsPerUnit",this._onSpritePpuChange,this),e.off("set:atlas",this._onAtlasTextureChange,this),e.atlas&&e.atlas.off("set:texture",this._onAtlasTextureChange,this)},t._onSpriteMeshesChange=function(){this._sprite&&(this._spriteFrame=pe.clamp(this._spriteFrame,0,this._sprite.frameKeys.length-1)),this._updateSprite()},t._onSpritePpuChange=function(){0!==this.sprite.renderMode&&null===this._pixelsPerUnit&&this._updateSprite()},t._onAtlasTextureChange=function(){this.sprite&&this.sprite.atlas&&this.sprite.atlas.texture?(this._renderable.setParameter("texture_emissiveMap",this._sprite.atlas.texture),this._renderable.setParameter("texture_opacityMap",this._sprite.atlas.texture)):(this._renderable.deleteParameter("texture_emissiveMap"),this._renderable.deleteParameter("texture_opacityMap"))},t._onTextureAtlasLoad=function(e){var t=this._spriteAsset;t instanceof cf?this._onSpriteAssetLoad(t):this._onSpriteAssetLoad(this._system.app.assets.get(t))},t.onEnable=function(){if(this._materialAsset){var e=this._system.app.assets.get(this._materialAsset);e&&e.resource!==this._material&&this._bindMaterialAsset(e)}if(this._textureAsset){var t=this._system.app.assets.get(this._textureAsset);t&&t.resource!==this._texture&&this._bindTextureAsset(t)}if(this._spriteAsset){var i=this._system.app.assets.get(this._spriteAsset);i&&i.resource!==this._sprite&&this._bindSpriteAsset(i)}this._element.addModelToLayers(this._renderable.model)},t.onDisable=function(){this._element.removeModelFromLayers(this._renderable.model)},t._setStencil=function(e){this._renderable.meshInstance.stencilFront=e,this._renderable.meshInstance.stencilBack=e;var t=0;if(this._element.maskedBy&&(t=this._element.maskedBy.element._image._maskRef),this._renderable.unmaskMeshInstance){var i=new Gi({ref:t+1,func:2,zpass:5});this._renderable.unmaskMeshInstance.stencilFront=i,this._renderable.unmaskMeshInstance.stencilBack=i}},t._removeMaterialAssetEvents=function(){if(this._materialAsset){var e=this._system.app.assets;e.off("add:"+this._materialAsset,this._onMaterialAdded,this);var t=e.get(this._materialAsset);t&&(t.off("load",this._onMaterialLoad,this),t.off("change",this._onMaterialChange,this),t.off("remove",this._onMaterialRemove,this))}},y(e,[{key:"color",get:function(){return this._color},set:function(e){var t=e.r,i=e.g,n=e.b;this._color.r===t&&this._color.g===i&&this._color.b===n||(this._color.r=t,this._color.g=i,this._color.b=n,this._colorUniform[0]=t,this._colorUniform[1]=i,this._colorUniform[2]=n,this._renderable.setParameter("material_emissive",this._colorUniform)),this._element&&this._element.fire("set:color",this._color)}},{key:"opacity",get:function(){return this._color.a},set:function(e){e!==this._color.a&&(this._color.a=e,this._renderable.setParameter("material_opacity",e)),this._element&&this._element.fire("set:opacity",e)}},{key:"rect",get:function(){return this._rect},set:function(e){var t,i,n,s;e instanceof be?(t=e.x,i=e.y,n=e.z,s=e.w):(t=e[0],i=e[1],n=e[2],s=e[3]),t===this._rect.x&&i===this._rect.y&&n===this._rect.z&&s===this._rect.w||(this._rect.set(t,i,n,s),this._renderable.mesh&&(this._element._beingInitialized?this._meshDirty=!0:this._updateMesh(this._renderable.mesh)))}},{key:"material",get:function(){return this._material},set:function(e){if(this._material!==e){if(!e){var t=this._element._isScreenSpace();e=this.mask?t?this._system.defaultScreenSpaceImageMaskMaterial:this._system.defaultImageMaskMaterial:t?this._system.defaultScreenSpaceImageMaterial:this._system.defaultImageMaterial}if(this._material=e,this._materialAsset){var i=this._system.app.assets.get(this._materialAsset);i&&i.resource===e||(this._removeMaterialAssetEvents(),this._materialAsset=null)}e&&(this._renderable.setMaterial(e),this._hasUserMaterial()?(this._renderable.deleteParameter("material_opacity"),this._renderable.deleteParameter("material_emissive")):(this._colorUniform[0]=this._color.r,this._colorUniform[1]=this._color.g,this._colorUniform[2]=this._color.b,this._renderable.setParameter("material_emissive",this._colorUniform),this._renderable.setParameter("material_opacity",this._color.a)))}}},{key:"materialAsset",get:function(){return this._materialAsset},set:function(e){var t=this._system.app.assets,i=e;if(e instanceof cf&&(i=e.id),this._materialAsset!==i)if(this._removeMaterialAssetEvents(),this._materialAsset=i,this._materialAsset){var n=t.get(this._materialAsset);n?this._bindMaterialAsset(n):(this._materialAsset=null,this.material=null,this._materialAsset=i,t.on("add:"+this._materialAsset,this._onMaterialAdded,this))}else this._materialAsset=null,this.material=null,this._materialAsset=i}},{key:"texture",get:function(){return this._texture},set:function(e){if(this._texture!==e){if(this._textureAsset){var t=this._system.app.assets.get(this._textureAsset);t&&t.resource!==e&&(this.textureAsset=null)}if(this._texture=e,e){this._spriteAsset&&(this.spriteAsset=null),this._renderable.setParameter("texture_emissiveMap",this._texture),this._renderable.setParameter("texture_opacityMap",this._texture),this._colorUniform[0]=this._color.r,this._colorUniform[1]=this._color.g,this._colorUniform[2]=this._color.b,this._renderable.setParameter("material_emissive",this._colorUniform),this._renderable.setParameter("material_opacity",this._color.a);var i=this._texture.width/this._texture.height;i!==this._targetAspectRatio&&(this._targetAspectRatio=i,this._element.fitMode!==dm&&this.refreshMesh())}else this._renderable.deleteParameter("texture_emissiveMap"),this._renderable.deleteParameter("texture_opacityMap"),this._targetAspectRatio=-1,this._element.fitMode!==dm&&this.refreshMesh()}}},{key:"textureAsset",get:function(){return this._textureAsset},set:function(e){var t=this._system.app.assets,i=e;if(e instanceof cf&&(i=e.id),this._textureAsset!==i){if(this._textureAsset){t.off("add:"+this._textureAsset,this._onTextureAdded,this);var n=t.get(this._textureAsset);n&&(n.off("load",this._onTextureLoad,this),n.off("change",this._onTextureChange,this),n.off("remove",this._onTextureRemove,this))}if(this._textureAsset=i,this._textureAsset){var s=t.get(this._textureAsset);s?this._bindTextureAsset(s):(this.texture=null,t.on("add:"+this._textureAsset,this._onTextureAdded,this))}else this.texture=null}}},{key:"spriteAsset",get:function(){return this._spriteAsset},set:function(e){var t=this._system.app.assets,i=e;if(e instanceof cf&&(i=e.id),this._spriteAsset!==i){if(this._spriteAsset){t.off("add:"+this._spriteAsset,this._onSpriteAssetAdded,this);var n=t.get(this._spriteAsset);n&&this._unbindSpriteAsset(n)}if(this._spriteAsset=i,this._spriteAsset){var s=t.get(this._spriteAsset);s?this._bindSpriteAsset(s):(this.sprite=null,t.on("add:"+this._spriteAsset,this._onSpriteAssetAdded,this))}else this.sprite=null}this._element&&this._element.fire("set:spriteAsset",i)}},{key:"sprite",get:function(){return this._sprite},set:function(e){if(this._sprite!==e){if(this._sprite&&this._unbindSprite(this._sprite),this._spriteAsset){var t=this._system.app.assets.get(this._spriteAsset);t&&t.resource!==e&&(this.spriteAsset=null)}this._sprite=e,this._sprite&&(this._bindSprite(this._sprite),this._textureAsset&&(this.textureAsset=null)),this._sprite&&this._sprite.atlas&&this._sprite.atlas.texture?(this._renderable.setParameter("texture_emissiveMap",this._sprite.atlas.texture),this._renderable.setParameter("texture_opacityMap",this._sprite.atlas.texture)):(this._renderable.deleteParameter("texture_emissiveMap"),this._renderable.deleteParameter("texture_opacityMap")),this._sprite&&(this._spriteFrame=pe.clamp(this._spriteFrame,0,this._sprite.frameKeys.length-1)),this._updateSprite()}}},{key:"spriteFrame",get:function(){return this._spriteFrame},set:function(e){var t=this._spriteFrame;this._sprite?this._spriteFrame=pe.clamp(e,0,this._sprite.frameKeys.length-1):this._spriteFrame=e,this._spriteFrame!==t&&this._updateSprite(),this._element&&this._element.fire("set:spriteFrame",e)}},{key:"mesh",get:function(){return this._renderable.mesh},set:function(e){this._renderable.setMesh(e),this._defaultMesh===e?this._renderable.setAabbFunc(null):this._renderable.setAabbFunc(this._updateAabbFunc)}},{key:"mask",get:function(){return this._mask},set:function(e){this._mask!==e&&(this._mask=e,this._toggleMask())}},{key:"pixelsPerUnit",get:function(){return this._pixelsPerUnit},set:function(e){this._pixelsPerUnit!==e&&(this._pixelsPerUnit=e,!this._sprite||1!==this._sprite.renderMode&&2!==this._sprite.renderMode||this._updateSprite())}},{key:"aabb",get:function(){return this._renderable.meshInstance?this._renderable.meshInstance.aabb:null}}]),e}(),s_=function(e){function t(t){var i;return(i=e.call(this)||this)._app=t,t.i18n.on("set:locale",i._onSetLocale,w(i)),i._autoLoad=!1,i._disableLocalization=!1,i._defaultAsset=null,i._localizedAsset=null,i}S(t,e);var i=t.prototype;return i._bindDefaultAsset=function(){var e=this._app.assets.get(this._defaultAsset);e?this._onDefaultAssetAdd(e):this._app.assets.once("add:"+this._defaultAsset,this._onDefaultAssetAdd,this)},i._unbindDefaultAsset=function(){if(this._defaultAsset){this._app.assets.off("add:"+this._defaultAsset,this._onDefaultAssetAdd,this);var e=this._app.assets.get(this._defaultAsset);e&&(e.off("add:localized",this._onLocaleAdd,this),e.off("remove:localized",this._onLocaleRemove,this),e.off("remove",this._onDefaultAssetRemove,this))}},i._onDefaultAssetAdd=function(e){this._defaultAsset===e.id&&(e.on("add:localized",this._onLocaleAdd,this),e.on("remove:localized",this._onLocaleRemove,this),e.once("remove",this._onDefaultAssetRemove,this))},i._onDefaultAssetRemove=function(e){this._defaultAsset===e.id&&(e.off("add:localized",this._onLocaleAdd,this),e.off("remove:localized",this._onLocaleAdd,this),this._app.assets.once("add:"+this._defaultAsset,this._onDefaultAssetAdd,this))},i._bindLocalizedAsset=function(){if(this._autoLoad){var e=this._app.assets.get(this._localizedAsset);e&&(e.on("load",this._onLocalizedAssetLoad,this),e.on("change",this._onLocalizedAssetChange,this),e.on("remove",this._onLocalizedAssetRemove,this),e.resource?this._onLocalizedAssetLoad(e):this._app.assets.load(e))}},i._unbindLocalizedAsset=function(){var e=this._app.assets.get(this._localizedAsset);e&&(e.off("load",this._onLocalizedAssetLoad,this),e.off("change",this._onLocalizedAssetChange,this),e.off("remove",this._onLocalizedAssetRemove,this))},i._onLocalizedAssetAdd=function(e){this._localizedAsset===e.id&&this._bindLocalizedAsset()},i._onLocalizedAssetLoad=function(e){this.fire("load",e)},i._onLocalizedAssetChange=function(e,t,i,n){this.fire("change",e,t,i,n)},i._onLocalizedAssetRemove=function(e){this._localizedAsset===e.id&&(this.localizedAsset=this._defaultAsset),this.fire("remove",e)},i._onLocaleAdd=function(e,t){this._app.i18n.locale===e&&this._onSetLocale(e)},i._onLocaleRemove=function(e,t){this._app.i18n.locale===e&&this._onSetLocale(e)},i._onSetLocale=function(e){if(this._defaultAsset){var t=this._app.assets.get(this._defaultAsset);if(t&&!this._disableLocalization){var i=t.getLocalizedAssetId(e);this.localizedAsset=i||this._defaultAsset}else this.localizedAsset=this._defaultAsset}else this.localizedAsset=null},i.destroy=function(){this.defaultAsset=null,this._app.i18n.off("set:locale",this._onSetLocale,this),this.off()},y(t,[{key:"defaultAsset",get:function(){return this._defaultAsset},set:function(e){var t=e instanceof cf?e.id:e;this._defaultAsset!==t&&(this._defaultAsset&&this._unbindDefaultAsset(),this._defaultAsset=t,this._defaultAsset&&this._bindDefaultAsset(),this._onSetLocale(this._app.i18n.locale))}},{key:"localizedAsset",get:function(){return this._localizedAsset},set:function(e){var t=e instanceof cf?e.id:e;this._localizedAsset!==t&&(this._localizedAsset&&(this._app.assets.off("add:"+this._localizedAsset,this._onLocalizedAssetAdd,this),this._unbindLocalizedAsset(),this._localizedAsset=null),this._localizedAsset=t,this._localizedAsset&&(this._app.assets.get(this._localizedAsset)?this._bindLocalizedAsset():this._app.assets.once("add:"+this._localizedAsset,this._onLocalizedAssetAdd,this)))}},{key:"autoLoad",get:function(){return this._autoLoad},set:function(e){this._autoLoad!==e&&(this._autoLoad=e,this._autoLoad&&this._localizedAsset&&(this._unbindLocalizedAsset(),this._bindLocalizedAsset()))}},{key:"disableLocalization",get:function(){return this._disableLocalization},set:function(e){this._disableLocalization!==e&&(this._disableLocalization=e,this._onSetLocale(this._app.i18n.locale))}}]),t}(E),r_="msdf",a_="bitmap",o_=/[A-Z|a-z|0-9|_|-|/]/,h_=function(){function e(e){this._symbols=e,this._index=0,this._last=0,this._cur=this._symbols.length>0?this._symbols[0]:null,this._buf=[],this._mode="text",this._error=null}var t=e.prototype;return t.read=function(){for(var e=this._read();8===e;)e=this._read();return 0!==e&&1!==e&&(this._last=this._index),e},t.buf=function(){return this._buf},t.last=function(){return this._last},t.error=function(){return this._error},t.debugPrint=function(){for(var e=["EOF","ERROR","TEXT","OPEN_BRACKET","CLOSE_BRACKET","EQUALS","STRING","IDENTIFIER","WHITESPACE"],t=this.read(),i="";i+=(i.length>0?"\n":"")+e[t]+" '"+this.buf().join("")+"'",0!==t&&1!==t;)t=this.read();return i},t._read=function(){return this._buf=[],this._eof()?0:"text"===this._mode?this._text():this._tag()},t._text=function(){for(;;)switch(this._cur){case null:return this._buf.length>0?2:0;case"[":return this._mode="tag",this._buf.length>0?2:this._tag();case"\\":if(this._next(),"["===this._cur)this._store();else this._output("\\");break;default:this._store()}},t._tag=function(){switch(this._cur){case null:return this._error="unexpected end of input reading tag",1;case"[":return this._store(),3;case"]":return this._store(),this._mode="text",4;case"=":return this._store(),5;case" ":case"\t":case"\n":case"\r":case"\v":case"\f":return this._whitespace();case'"':return this._string();default:return this._isIdentifierSymbol(this._cur)?this._identifier():(this._error="unrecognized character",1)}},t._whitespace=function(){for(this._store();-1!==" \t\n\r\v\f".indexOf(this._cur);)this._store();return 8},t._string=function(){for(this._next();;)switch(this._cur){case null:return this._error="unexpected end of input reading string",1;case'"':return this._next(),6;default:this._store()}},t._identifier=function(){for(this._store();null!==this._cur&&this._isIdentifierSymbol(this._cur);)this._store();return 7},t._isIdentifierSymbol=function(e){return 1===e.length&&null!==e.match(o_)},t._eof=function(){return null===this._cur},t._next=function(){return this._eof()||(this._index++,this._cur=this._index=0;--s)if(n==="/"+t[s].name&&null===t[s].end)return t[s].end=e.length,4===(i=this._scanner.read())||(this._error="expected close bracket",!1);return this._error="failed to find matching tag",!1}var r={name:n,value:null,attributes:{},start:e.length,end:null};if(5===(i=this._scanner.read())){if(6!==(i=this._scanner.read()))return this._error="expected string",!1;r.value=this._scanner.buf().join(""),i=this._scanner.read()}for(;;){switch(i){case 4:return t.push(r),!0;case 7:var a=this._scanner.buf().join("");if(5!==(i=this._scanner.read()))return this._error="expected equals",!1;if(6!==(i=this._scanner.read()))return this._error="expected string",!1;var o=this._scanner.buf().join("");r.attributes[a]=o;break;default:return this._error="expected close bracket or identifier",!1}i=this._scanner.read()}},e}();function c_(e,t){for(var i in t)if(t.hasOwnProperty(i)){var n=t[i];n instanceof Object?(e.hasOwnProperty(i)||(e[i]={}),c_(e[i],t[i])):e[i]=n}}function u_(e){if(0===e.length)return null;for(var t={},i=0;i=1e-4,v=this._element.calculatedWidth;(this.autoWidth&&!g||!this._wrapLines)&&(v=Number.POSITIVE_INFINITY);var y,x,S,b,w=0,T=0;function A(e,i,n){t._lineWidths.push(Math.abs(n));var s=f>i?i+1:f,r=f>i?f+1:i,h=e.slice(s,r);if(_)for(var l=h.length;l--&&_>0;)__.test(h[l])&&(h.splice(l,1),_--);t._lineContents.push(h.join("")),a=0,o-=t._scaledLineHeight,c++,p=0,m=0,_=0,u=0,f=i}for(var C=!0;C;){C=!1,this._scaledLineHeight=s?this._lineHeight*this._fontSize/(this._maxFontSize||1e-4):this._lineHeight,this.width=0,this.height=0,this._lineWidths=[],this._lineContents=[],a=0,o=0,h=0,l=0,c=1,u=0,d=0,f=0,p=0,m=0,_=0;var E=this._fontSize/32;w=this._fontMinY*E,T=this._fontMaxY*E;for(var M=0;M=r?null:this._symbols[U+1],__.test(y))_++,(!this._wrapLines||this._maxLines<0||c0){var j=this._font.data.kerning;if(j){var q=j[se.getCodePoint(this._symbols[U-1])||0];q&&(X=q[se.getCodePoint(this._symbols[U])||0]||0)}}H=x.scale||1,G=E*((x.width+x.height)/2)/H,V=(x.xadvance+X)*E,N=(x.xoffset-X)*E,z=x.yoffset*E}else console.error("Couldn't substitute missing character: '"+y+"'");var Y=g_.test(y),K=x&&x.map||0,Z=-this._font.data.info.maps[K].width/this._font.data.info.maps[K].height,Q=this._meshInfo[K],$=a+this._spacing*V;if($>v&&m>0&&!Y&&(this._maxLines<0||cthis._element.calculatedWidth&&(ue=Math.floor(this._element.fontSize*this._element.calculatedWidth/(this.width||1e-4)),(ue=pe.clamp(ue,i,n))!==this._element.fontSize)){this._fontSize=ue,C=!0;break}if(this.height=Math.max(this.height,T-(o+w)),this._shouldAutoFitHeight()&&this.height>this._element.calculatedHeight&&(ue=pe.clamp(this._fontSize-1,i,n))!==this._element.fontSize){this._fontSize=ue,C=!0;break}a+=this._spacing*V,Y||(l=a),(this._isWordBoundary(y)||this._isValidNextChar(b)&&(this._isNextCJKBoundary(y,b)||this._isNextCJKWholeWord(b)))&&(p++,u=l,d=U+1),m++;var de=this._getUv(y);if(Q.uvs[4*S*2+0]=de[0],Q.uvs[4*S*2+1]=1-de[1],Q.uvs[4*S*2+2]=de[2],Q.uvs[4*S*2+3]=1-de[1],Q.uvs[4*S*2+4]=de[2],Q.uvs[4*S*2+5]=1-de[3],Q.uvs[4*S*2+6]=de[0],Q.uvs[4*S*2+7]=1-de[3],this._symbolColors){var fe=3*this._symbolColors[U];P=this._colorPalette[fe],R=this._colorPalette[fe+1],I=this._colorPalette[fe+2]}if(Q.colors[4*S*4+0]=P,Q.colors[4*S*4+1]=R,Q.colors[4*S*4+2]=I,Q.colors[4*S*4+3]=255,Q.colors[4*S*4+4]=P,Q.colors[4*S*4+5]=R,Q.colors[4*S*4+6]=I,Q.colors[4*S*4+7]=255,Q.colors[4*S*4+8]=P,Q.colors[4*S*4+9]=R,Q.colors[4*S*4+10]=I,Q.colors[4*S*4+11]=255,Q.colors[4*S*4+12]=P,Q.colors[4*S*4+13]=R,Q.colors[4*S*4+14]=I,Q.colors[4*S*4+15]=255,this._symbolOutlineParams){var me=5*this._symbolOutlineParams[U];L=this._outlinePalette[me]+256*this._outlinePalette[me+1],D=this._outlinePalette[me+2]+256*this._outlinePalette[me+3],O=this._outlinePalette[me+4]}if(Q.outlines[4*S*3+0]=L,Q.outlines[4*S*3+1]=D,Q.outlines[4*S*3+2]=O,Q.outlines[4*S*3+3]=L,Q.outlines[4*S*3+4]=D,Q.outlines[4*S*3+5]=O,Q.outlines[4*S*3+6]=L,Q.outlines[4*S*3+7]=D,Q.outlines[4*S*3+8]=O,Q.outlines[4*S*3+9]=L,Q.outlines[4*S*3+10]=D,Q.outlines[4*S*3+11]=O,this._symbolShadowParams){var _e=6*this._symbolShadowParams[U];k=this._shadowPalette[_e]+256*this._shadowPalette[_e+1],F=this._shadowPalette[_e+2]+256*this._shadowPalette[_e+3],B=this._shadowPalette[_e+4]+127+256*Math.round(Z*this._shadowPalette[_e+5]+127)}Q.shadows[4*S*3+0]=k,Q.shadows[4*S*3+1]=F,Q.shadows[4*S*3+2]=B,Q.shadows[4*S*3+3]=k,Q.shadows[4*S*3+4]=F,Q.shadows[4*S*3+5]=B,Q.shadows[4*S*3+6]=k,Q.shadows[4*S*3+7]=F,Q.shadows[4*S*3+8]=B,Q.shadows[4*S*3+9]=k,Q.shadows[4*S*3+10]=F,Q.shadows[4*S*3+11]=B,Q.quad++}}C||f=ke?(Fe.element[mt].set(0,0,0),Fe.element[bt].set(0,0),Fe.element[xt].set(0,0,0,0),Fe.element[Nt].set(0,0,0,0),Fe.element[zt].set(0,0,0,0)):(Fe.element[mt].set(this._meshInfo[Se].positions[3*Be+0],this._meshInfo[Se].positions[3*Be+1],this._meshInfo[Se].positions[3*Be+2]),Fe.element[bt].set(this._meshInfo[Se].uvs[2*Be+0],this._meshInfo[Se].uvs[2*Be+1]),Fe.element[xt].set(this._meshInfo[Se].colors[4*Be+0],this._meshInfo[Se].colors[4*Be+1],this._meshInfo[Se].colors[4*Be+2],this._meshInfo[Se].colors[4*Be+3]),Fe.element[Nt].set(this._meshInfo[Se].outlines[3*Be+0],this._meshInfo[Se].outlines[3*Be+1],this._meshInfo[Se].outlines[3*Be+2]),Fe.element[zt].set(this._meshInfo[Se].shadows[3*Be+0],this._meshInfo[Se].shadows[3*Be+1],this._meshInfo[Se].shadows[3*Be+2])),Fe.next();Fe.end(),this._meshInfo[Se].meshInstance.mesh.aabb.compute(this._meshInfo[Se].positions),this._meshInfo[Se].meshInstance._aabbVer=-1}this._aabbDirty=!0},t._onFontRender=function(){this.font=this._font},t._onFontLoad=function(e){this.font!==e.resource&&(this.font=e.resource)},t._onFontChange=function(e,t,i,n){if("data"===t){this._font.data=i;for(var s=this._font.data.info.maps.length,r=0;rthis._font.textures.length&&(this._meshInfo.length=this._font.textures.length),this._updateText()}}},{key:"alignment",get:function(){return this._alignment},set:function(e){e instanceof Se?this._alignment.set(e.x,e.y):this._alignment.set(e[0],e[1]),this._font&&this._updateText()}},{key:"autoWidth",get:function(){return this._autoWidth},set:function(e){var t=this._autoWidth;if(this._autoWidth=e,e&&Math.abs(this._element.anchor.x-this._element.anchor.z)<1e-4&&(this._element.width=this.width),t!==e){var i=this._shouldAutoFit()?this._maxFontSize:this._originalFontSize;i!==this._fontSize&&(this._fontSize=i,this._font&&this._updateText())}}},{key:"autoHeight",get:function(){return this._autoHeight},set:function(e){var t=this._autoHeight;if(this._autoHeight=e,e&&Math.abs(this._element.anchor.y-this._element.anchor.w)<1e-4&&(this._element.height=this.height),t!==e){var i=this._shouldAutoFit()?this._maxFontSize:this._originalFontSize;i!==this._fontSize&&(this._fontSize=i,this._font&&this._updateText())}}},{key:"rtlReorder",get:function(){return this._rtlReorder},set:function(e){this._rtlReorder!==e&&(this._rtlReorder=e,this._font&&this._updateText())}},{key:"unicodeConverter",get:function(){return this._unicodeConverter},set:function(e){this._unicodeConverter!==e&&(this._unicodeConverter=e,this._setText(this._text))}},{key:"aabb",get:function(){if(this._aabbDirty){for(var e=!1,t=0;t=0&&this.system._prerender.splice(i,1),this.system._prerender.indexOf(e)<0&&this.system._prerender.push(e)}e=t}},i._onPrerender=function(){for(var e=0;e=0)&&(null==(e=this.system.app.batcher)||e.insert(Eo.ELEMENT,this.batchGroupId,this.entity));this.fire("enableelement")},i.onDisable=function(){var e;(this.system.app.scene.off("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.off("add",this.onLayerAdded,this),this.system.app.scene.layers.off("remove",this.onLayerRemoved,this)),this._image&&this._image.onDisable(),this._text&&this._text.onDisable(),this._group&&this._group.onDisable(),this.system.app.elementInput&&this.useInput&&this.system.app.elementInput.removeElement(this),this._batchGroupId>=0)&&(null==(e=this.system.app.batcher)||e.remove(Eo.ELEMENT,this.batchGroupId,this.entity));this.fire("disableelement")},i.onRemove=function(){this.entity.off("insert",this._onInsert,this),this._unpatch(),this._image&&this._image.destroy(),this._text&&this._text.destroy(),this.system.app.elementInput&&this.useInput&&this.system.app.elementInput.removeElement(this),this.screen&&this.screen.screen&&(this._unbindScreen(this.screen.screen),this.screen.screen.syncDrawOrder()),this.off()},i._calculateSize=function(e,t){if(this.entity._parent||this.screen){this._calculateLocalAnchors();var i=this._absRight-this._absLeft,n=this._absTop-this._absBottom;e?this._setWidth(i):this._setCalculatedWidth(i,!1),t?this._setHeight(n):this._setCalculatedHeight(n,!1);var s=this.entity.getLocalPosition();s.x=this._margin.x+this._calculatedWidth*this._pivot.x,s.y=this._margin.y+this._calculatedHeight*this._pivot.y,this.entity.setLocalPosition(s),this._sizeDirty=!1}},i._setWidth=function(e){this._width=e,this._setCalculatedWidth(e,!1),this.fire("set:width",this._width)},i._setHeight=function(e){this._height=e,this._setCalculatedHeight(e,!1),this.fire("set:height",this._height)},i._setCalculatedWidth=function(e,t){if(!(Math.abs(e-this._calculatedWidth)<=1e-4)){if(this._calculatedWidth=e,this.entity._dirtifyLocal(),t){var i=this.entity.getLocalPosition(),n=this._pivot;this._margin.x=i.x-this._calculatedWidth*n.x,this._margin.z=this._localAnchor.z-this._localAnchor.x-this._calculatedWidth-this._margin.x}this._flagChildrenAsDirty(),this.fire("set:calculatedWidth",this._calculatedWidth),this.fire("resize",this._calculatedWidth,this._calculatedHeight)}},i._setCalculatedHeight=function(e,t){if(!(Math.abs(e-this._calculatedHeight)<=1e-4)){if(this._calculatedHeight=e,this.entity._dirtifyLocal(),t){var i=this.entity.getLocalPosition(),n=this._pivot;this._margin.y=i.y-this._calculatedHeight*n.y,this._margin.w=this._localAnchor.w-this._localAnchor.y-this._calculatedHeight-this._margin.y}this._flagChildrenAsDirty(),this.fire("set:calculatedHeight",this._calculatedHeight),this.fire("resize",this._calculatedWidth,this._calculatedHeight)}},i._flagChildrenAsDirty=function(){for(var e=this.entity._children,t=0,i=e.length;t=0&&this._addedModels.splice(t,1);for(var i=0;ii||f>n||p.001}},{key:"_hasSplitAnchorsY",get:function(){return Math.abs(this._anchor.y-this._anchor.w)>.001}},{key:"aabb",get:function(){return this._image?this._image.aabb:this._text?this._text.aabb:null}},{key:"anchor",get:function(){return this._anchor},set:function(e){var t;e instanceof be?this._anchor.copy(e):(t=this._anchor).set.apply(t,e);this.entity._parent||this.screen?this._calculateSize(this._hasSplitAnchorsX,this._hasSplitAnchorsY):this._calculateLocalAnchors(),this._anchorDirty=!0,this.entity._dirtyLocal||this.entity._dirtifyLocal(),this.fire("set:anchor",this._anchor)}},{key:"batchGroupId",get:function(){return this._batchGroupId},set:function(e){if(this._batchGroupId!==e){var t,i;if(this.entity.enabled&&this._batchGroupId>=0)null==(t=this.system.app.batcher)||t.remove(Eo.ELEMENT,this.batchGroupId,this.entity);if(this.entity.enabled&&e>=0)null==(i=this.system.app.batcher)||i.insert(Eo.ELEMENT,e,this.entity);e<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&(this._image&&this._image._renderable.model?this.addModelToLayers(this._image._renderable.model):this._text&&this._text._model&&this.addModelToLayers(this._text._model)),this._batchGroupId=e}}},{key:"bottom",get:function(){return this._margin.y},set:function(e){this._margin.y=e;var t=this.entity.getLocalPosition(),i=this._absTop,n=this._localAnchor.y+e;this._setHeight(i-n),t.y=e+this._calculatedHeight*this._pivot.y,this.entity.setLocalPosition(t)}},{key:"calculatedWidth",get:function(){return this._calculatedWidth},set:function(e){this._setCalculatedWidth(e,!0)}},{key:"calculatedHeight",get:function(){return this._calculatedHeight},set:function(e){this._setCalculatedHeight(e,!0)}},{key:"canvasCorners",get:function(){if(!this._canvasCornersDirty||!this.screen||!this.screen.screen.screenSpace)return this._canvasCorners;for(var e=this.system.app.graphicsDevice,t=this.screenCorners,i=e.canvas.clientWidth/e.width,n=e.canvas.clientHeight/e.height,s=0;s<4;s++)this._canvasCorners[s].set(t[s].x*i,(e.height-t[s].y)*n);return this._canvasCornersDirty=!1,this._canvasCorners}},{key:"drawOrder",get:function(){return this._drawOrder},set:function(e){var t=0;this.screen&&(t=this.screen.screen.priority),e>16777215&&(e=16777215),this._drawOrder=(t<<24)+e,this.fire("set:draworder",this._drawOrder)}},{key:"height",get:function(){return this._height},set:function(e){this._height=e,this._hasSplitAnchorsY||this._setCalculatedHeight(e,!0),this.fire("set:height",this._height)}},{key:"layers",get:function(){return this._layers},set:function(e){if(this._addedModels.length)for(var t=0;t.001,a=Math.abs(t.anchor.y-t.anchor.w)>.001,o=!1;void 0!==i.margin&&(i.margin instanceof be?t.margin.copy(i.margin):t._margin.set(i.margin[0],i.margin[1],i.margin[2],i.margin[3]),o=!0),void 0!==i.left&&(t._margin.x=i.left,o=!0),void 0!==i.bottom&&(t._margin.y=i.bottom,o=!0),void 0!==i.right&&(t._margin.z=i.right,o=!0),void 0!==i.top&&(t._margin.w=i.top,o=!0),o&&(t.margin=t._margin);var h=!1;void 0===i.width||r?r&&(h=!0):t.width=i.width,void 0===i.height||a?a&&(h=!0):t.height=i.height,h&&(t.anchor=t.anchor),void 0!==i.enabled&&(t.enabled=i.enabled),void 0!==i.useInput&&(t.useInput=i.useInput),void 0!==i.fitMode&&(t.fitMode=i.fitMode),t.batchGroupId=void 0===i.batchGroupId||null===i.batchGroupId?-1:i.batchGroupId,i.layers&&Array.isArray(i.layers)&&(t.layers=i.layers.slice(0)),void 0!==i.type&&(t.type=i.type),t.type===cm?(void 0!==i.rect&&(t.rect=i.rect),void 0!==i.color&&((s=i.color)instanceof me||(s=new me(i.color[0],i.color[1],i.color[2])),t.color=s),void 0!==i.opacity&&(t.opacity=i.opacity),void 0!==i.textureAsset&&(t.textureAsset=i.textureAsset),i.texture&&(t.texture=i.texture),void 0!==i.spriteAsset&&(t.spriteAsset=i.spriteAsset),i.sprite&&(t.sprite=i.sprite),void 0!==i.spriteFrame&&(t.spriteFrame=i.spriteFrame),void 0!==i.pixelsPerUnit&&null!==i.pixelsPerUnit&&(t.pixelsPerUnit=i.pixelsPerUnit),void 0!==i.materialAsset&&(t.materialAsset=i.materialAsset),i.material&&(t.material=i.material),void 0!==i.mask&&(t.mask=i.mask)):t.type===um&&(void 0!==i.autoWidth&&(t.autoWidth=i.autoWidth),void 0!==i.autoHeight&&(t.autoHeight=i.autoHeight),void 0!==i.rtlReorder&&(t.rtlReorder=i.rtlReorder),void 0!==i.unicodeConverter&&(t.unicodeConverter=i.unicodeConverter),null!==i.text&&void 0!==i.text?t.text=i.text:null!==i.key&&void 0!==i.key&&(t.key=i.key),void 0!==i.color&&((s=i.color)instanceof me||(s=new me(s[0],s[1],s[2])),t.color=s),void 0!==i.opacity&&(t.opacity=i.opacity),void 0!==i.spacing&&(t.spacing=i.spacing),void 0!==i.fontSize&&(t.fontSize=i.fontSize,i.lineHeight||(t.lineHeight=i.fontSize)),void 0!==i.lineHeight&&(t.lineHeight=i.lineHeight),void 0!==i.maxLines&&(t.maxLines=i.maxLines),void 0!==i.wrapLines&&(t.wrapLines=i.wrapLines),void 0!==i.minFontSize&&(t.minFontSize=i.minFontSize),void 0!==i.maxFontSize&&(t.maxFontSize=i.maxFontSize),i.autoFitWidth&&(t.autoFitWidth=i.autoFitWidth),i.autoFitHeight&&(t.autoFitHeight=i.autoFitHeight),void 0!==i.fontAsset&&(t.fontAsset=i.fontAsset),void 0!==i.font&&(t.font=i.font),void 0!==i.alignment&&(t.alignment=i.alignment),void 0!==i.outlineColor&&(t.outlineColor=i.outlineColor),void 0!==i.outlineThickness&&(t.outlineThickness=i.outlineThickness),void 0!==i.shadowColor&&(t.shadowColor=i.shadowColor),void 0!==i.shadowOffset&&(t.shadowOffset=i.shadowOffset),void 0!==i.enableMarkup&&(t.enableMarkup=i.enableMarkup));var l=t._parseUpToScreen();l.screen&&t._updateScreen(l.screen),e.prototype.initializeComponentData.call(this,t,i,n),t._beingInitialized=!1,t.type===cm&&t._image._meshDirty&&t._image._updateMesh(t._image.mesh)},i.onRemoveComponent=function(e,t){t.onRemove()},i.cloneComponent=function(e,t){var i=e.element,n={enabled:i.enabled,width:i.width,height:i.height,anchor:i.anchor.clone(),pivot:i.pivot.clone(),margin:i.margin.clone(),alignment:i.alignment&&i.alignment.clone()||i.alignment,autoWidth:i.autoWidth,autoHeight:i.autoHeight,type:i.type,rect:i.rect&&i.rect.clone()||i.rect,rtlReorder:i.rtlReorder,unicodeConverter:i.unicodeConverter,materialAsset:i.materialAsset,material:i.material,color:i.color&&i.color.clone()||i.color,opacity:i.opacity,textureAsset:i.textureAsset,texture:i.texture,spriteAsset:i.spriteAsset,sprite:i.sprite,spriteFrame:i.spriteFrame,pixelsPerUnit:i.pixelsPerUnit,spacing:i.spacing,lineHeight:i.lineHeight,wrapLines:i.wrapLines,layers:i.layers,fontSize:i.fontSize,minFontSize:i.minFontSize,maxFontSize:i.maxFontSize,autoFitWidth:i.autoFitWidth,autoFitHeight:i.autoFitHeight,maxLines:i.maxLines,fontAsset:i.fontAsset,font:i.font,useInput:i.useInput,fitMode:i.fitMode,batchGroupId:i.batchGroupId,mask:i.mask,outlineColor:i.outlineColor&&i.outlineColor.clone()||i.outlineColor,outlineThickness:i.outlineThickness,shadowColor:i.shadowColor&&i.shadowColor.clone()||i.shadowColor,shadowOffset:i.shadowOffset&&i.shadowOffset.clone()||i.shadowOffset,enableMarkup:i.enableMarkup};return void 0!==i.key&&null!==i.key?n.key=i.key:n.text=i.text,this.addComponent(t,n)},i.getTextElementMaterial=function(e,t,i){var n=(e&&1)|(t&&2)|(i&&4),s=this._defaultTextMaterials[n];if(s)return s;var r="TextMaterial";return s=new Ac,t?(s.msdfMap=this._defaultTexture,s.msdfTextAttribute=i,s.emissive.set(1,1,1)):(r="Bitmap"+r,s.emissive.set(.5,.5,.5),s.emissiveMap=this._defaultTexture,s.emissiveTint=!0,s.opacityMap=this._defaultTexture,s.opacityMapChannel="a"),e&&(r="ScreenSpace"+r,s.depthTest=!1),s.name="default"+r,s.useLighting=!1,s.useGammaTonemap=!1,s.useFog=!1,s.useSkybox=!1,s.diffuse.set(0,0,0),s.opacity=.5,s.blendType=4,s.depthWrite=!1,s.emissiveVertexColor=!0,s.update(),this._defaultTextMaterials[n]=s,s},i._createBaseImageMaterial=function(){var e=new Ac;return e.diffuse.set(0,0,0),e.emissive.set(.5,.5,.5),e.emissiveMap=this._defaultTexture,e.emissiveTint=!0,e.opacityMap=this._defaultTexture,e.opacityMapChannel="a",e.opacityTint=!0,e.opacity=0,e.useLighting=!1,e.useGammaTonemap=!1,e.useFog=!1,e.useSkybox=!1,e.blendType=4,e.depthWrite=!1,e},i.getImageElementMaterial=function(e,t,i,n){return e?t?i?(this.defaultScreenSpaceImageMask9SlicedMaterial||(this.defaultScreenSpaceImageMask9SlicedMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMask9SlicedMaterial.name="defaultScreenSpaceImageMask9SlicedMaterial",this.defaultScreenSpaceImageMask9SlicedMaterial.nineSlicedMode=1,this.defaultScreenSpaceImageMask9SlicedMaterial.depthTest=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.alphaTest=1,this.defaultScreenSpaceImageMask9SlicedMaterial.redWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.greenWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.blueWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9SlicedMaterial)),this.defaultScreenSpaceImageMask9SlicedMaterial):n?(this.defaultScreenSpaceImageMask9TiledMaterial||(this.defaultScreenSpaceImageMask9TiledMaterial=this.defaultScreenSpaceImage9TiledMaterial.clone(),this.defaultScreenSpaceImageMask9TiledMaterial.name="defaultScreenSpaceImageMask9TiledMaterial",this.defaultScreenSpaceImageMask9TiledMaterial.nineSlicedMode=2,this.defaultScreenSpaceImageMask9TiledMaterial.depthTest=!1,this.defaultScreenSpaceImageMask9TiledMaterial.alphaTest=1,this.defaultScreenSpaceImageMask9TiledMaterial.redWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.greenWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.blueWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9TiledMaterial)),this.defaultScreenSpaceImageMask9TiledMaterial):(this.defaultScreenSpaceImageMaskMaterial||(this.defaultScreenSpaceImageMaskMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMaskMaterial.name="defaultScreenSpaceImageMaskMaterial",this.defaultScreenSpaceImageMaskMaterial.depthTest=!1,this.defaultScreenSpaceImageMaskMaterial.alphaTest=1,this.defaultScreenSpaceImageMaskMaterial.redWrite=!1,this.defaultScreenSpaceImageMaskMaterial.greenWrite=!1,this.defaultScreenSpaceImageMaskMaterial.blueWrite=!1,this.defaultScreenSpaceImageMaskMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMaskMaterial)),this.defaultScreenSpaceImageMaskMaterial):i?(this.defaultScreenSpaceImage9SlicedMaterial||(this.defaultScreenSpaceImage9SlicedMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImage9SlicedMaterial.name="defaultScreenSpaceImage9SlicedMaterial",this.defaultScreenSpaceImage9SlicedMaterial.nineSlicedMode=1,this.defaultScreenSpaceImage9SlicedMaterial.depthTest=!1,this.defaultScreenSpaceImage9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImage9SlicedMaterial)),this.defaultScreenSpaceImage9SlicedMaterial):n?(this.defaultScreenSpaceImage9TiledMaterial||(this.defaultScreenSpaceImage9TiledMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImage9TiledMaterial.name="defaultScreenSpaceImage9TiledMaterial",this.defaultScreenSpaceImage9TiledMaterial.nineSlicedMode=2,this.defaultScreenSpaceImage9TiledMaterial.depthTest=!1,this.defaultScreenSpaceImage9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImage9TiledMaterial)),this.defaultScreenSpaceImage9TiledMaterial):(this.defaultScreenSpaceImageMaterial||(this.defaultScreenSpaceImageMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMaterial.name="defaultScreenSpaceImageMaterial",this.defaultScreenSpaceImageMaterial.depthTest=!1,this.defaultScreenSpaceImageMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMaterial)),this.defaultScreenSpaceImageMaterial):t?i?(this.defaultImage9SlicedMaskMaterial||(this.defaultImage9SlicedMaskMaterial=this._createBaseImageMaterial(),this.defaultImage9SlicedMaskMaterial.name="defaultImage9SlicedMaskMaterial",this.defaultImage9SlicedMaskMaterial.nineSlicedMode=1,this.defaultImage9SlicedMaskMaterial.alphaTest=1,this.defaultImage9SlicedMaskMaterial.redWrite=!1,this.defaultImage9SlicedMaskMaterial.greenWrite=!1,this.defaultImage9SlicedMaskMaterial.blueWrite=!1,this.defaultImage9SlicedMaskMaterial.alphaWrite=!1,this.defaultImage9SlicedMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9SlicedMaskMaterial)),this.defaultImage9SlicedMaskMaterial):n?(this.defaultImage9TiledMaskMaterial||(this.defaultImage9TiledMaskMaterial=this._createBaseImageMaterial(),this.defaultImage9TiledMaskMaterial.name="defaultImage9TiledMaskMaterial",this.defaultImage9TiledMaskMaterial.nineSlicedMode=2,this.defaultImage9TiledMaskMaterial.alphaTest=1,this.defaultImage9TiledMaskMaterial.redWrite=!1,this.defaultImage9TiledMaskMaterial.greenWrite=!1,this.defaultImage9TiledMaskMaterial.blueWrite=!1,this.defaultImage9TiledMaskMaterial.alphaWrite=!1,this.defaultImage9TiledMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9TiledMaskMaterial)),this.defaultImage9TiledMaskMaterial):(this.defaultImageMaskMaterial||(this.defaultImageMaskMaterial=this._createBaseImageMaterial(),this.defaultImageMaskMaterial.name="defaultImageMaskMaterial",this.defaultImageMaskMaterial.alphaTest=1,this.defaultImageMaskMaterial.redWrite=!1,this.defaultImageMaskMaterial.greenWrite=!1,this.defaultImageMaskMaterial.blueWrite=!1,this.defaultImageMaskMaterial.alphaWrite=!1,this.defaultImageMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImageMaskMaterial)),this.defaultImageMaskMaterial):i?(this.defaultImage9SlicedMaterial||(this.defaultImage9SlicedMaterial=this._createBaseImageMaterial(),this.defaultImage9SlicedMaterial.name="defaultImage9SlicedMaterial",this.defaultImage9SlicedMaterial.nineSlicedMode=1,this.defaultImage9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9SlicedMaterial)),this.defaultImage9SlicedMaterial):n?(this.defaultImage9TiledMaterial||(this.defaultImage9TiledMaterial=this._createBaseImageMaterial(),this.defaultImage9TiledMaterial.name="defaultImage9TiledMaterial",this.defaultImage9TiledMaterial.nineSlicedMode=2,this.defaultImage9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9TiledMaterial)),this.defaultImage9TiledMaterial):(this.defaultImageMaterial||(this.defaultImageMaterial=this._createBaseImageMaterial(),this.defaultImageMaterial.name="defaultImageMaterial",this.defaultImageMaterial.update(),this.defaultImageMaterials.push(this.defaultImageMaterial)),this.defaultImageMaterial)},i.registerUnicodeConverter=function(e){this._unicodeConverter=e},i.registerRtlReorder=function(e){this._rtlReorder=e},i.getUnicodeConverter=function(){return this._unicodeConverter},i.getRtlReorder=function(){return this._rtlReorder},t}(jf);Xf._buildAccessors(k_.prototype,U_);var z_="free",V_="limited",G_="locked",H_=["angularDampingX","angularDampingY","angularDampingZ","angularEquilibriumX","angularEquilibriumY","angularEquilibriumZ","angularLimitsX","angularLimitsY","angularLimitsZ","angularMotionX","angularMotionY","angularMotionZ","angularSpringX","angularSpringY","angularSpringZ","angularStiffnessX","angularStiffnessY","angularStiffnessZ","breakForce","enableCollision","enabled","entityA","entityB","linearDampingX","linearDampingY","linearDampingZ","linearEquilibriumX","linearEquilibriumY","linearEquilibriumZ","linearLimitsX","linearLimitsY","linearLimitsZ","linearMotionX","linearMotionY","linearMotionZ","linearSpringX","linearSpringY","linearSpringZ","linearStiffnessX","linearStiffnessY","linearStiffnessZ"],W_=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._constraint=null,n._entityA=null,n._entityB=null,n._breakForce=34e37,n._enableCollision=!0,n._linearMotionX=G_,n._linearLimitsX=new Se(0,0),n._linearSpringX=!1,n._linearStiffnessX=0,n._linearDampingX=1,n._linearEquilibriumX=0,n._linearMotionY=G_,n._linearLimitsY=new Se(0,0),n._linearSpringY=!1,n._linearStiffnessY=0,n._linearDampingY=1,n._linearEquilibriumY=0,n._linearMotionZ=G_,n._linearLimitsZ=new Se(0,0),n._linearSpringZ=!1,n._linearStiffnessZ=0,n._linearDampingZ=1,n._linearEquilibriumZ=0,n._angularMotionX=G_,n._angularLimitsX=new Se(0,0),n._angularSpringX=!1,n._angularStiffnessX=0,n._angularDampingX=1,n._angularEquilibriumX=0,n._angularMotionY=G_,n._angularLimitsY=new Se(0,0),n._angularSpringY=!1,n._angularStiffnessY=0,n._angularDampingY=1,n._angularEquilibriumY=0,n._angularMotionZ=G_,n._angularLimitsZ=new Se(0,0),n._angularSpringZ=!1,n._angularEquilibriumZ=0,n._angularDampingZ=1,n._angularStiffnessZ=0,n.on("set_enabled",n._onSetEnabled,w(n)),n}S(t,e);var i=t.prototype;return i._convertTransform=function(e,t){var i=e.getTranslation(),n=new Pe;n.setFromMat4(e);var s=new Ammo.btVector3(i.x,i.y,i.z),r=new Ammo.btQuaternion(n.x,n.y,n.z,n.w);t.setOrigin(s),t.setRotation(r),Ammo.destroy(s),Ammo.destroy(r)},i._updateAngularLimits=function(){var e=this._constraint;if(e){var t,i,n,s,r,a;this._angularMotionX===V_?(t=this._angularLimitsX.x*pe.DEG_TO_RAD,s=this._angularLimitsX.y*pe.DEG_TO_RAD):this._angularMotionX===z_?(t=1,s=0):t=s=0,this._angularMotionY===V_?(i=this._angularLimitsY.x*pe.DEG_TO_RAD,r=this._angularLimitsY.y*pe.DEG_TO_RAD):this._angularMotionY===z_?(i=1,r=0):i=r=0,this._angularMotionZ===V_?(n=this._angularLimitsZ.x*pe.DEG_TO_RAD,a=this._angularLimitsZ.y*pe.DEG_TO_RAD):this._angularMotionZ===z_?(n=1,a=0):n=a=0;var o=new Ammo.btVector3(t,i,n);e.setAngularLowerLimit(o),o.setValue(s,r,a),e.setAngularUpperLimit(o),Ammo.destroy(o)}},i._updateLinearLimits=function(){var e=this._constraint;if(e){var t,i,n,s,r,a;this._linearMotionX===V_?(t=this._linearLimitsX.x,s=this._linearLimitsX.y):this._linearMotionX===z_?(t=1,s=0):t=s=0,this._linearMotionY===V_?(i=this._linearLimitsY.x,r=this._linearLimitsY.y):this._linearMotionY===z_?(i=1,r=0):i=r=0,this._linearMotionZ===V_?(n=this._linearLimitsZ.x,a=this._linearLimitsZ.y):this._linearMotionZ===z_?(n=1,a=0):n=a=0;var o=new Ammo.btVector3(t,i,n);e.setLinearLowerLimit(o),o.setValue(s,r,a),e.setLinearUpperLimit(o),Ammo.destroy(o)}},i._createConstraint=function(){if(this._entityA&&this._entityA.rigidbody){this._destroyConstraint();var e=new Me,t=this._entityA.rigidbody.body;t.activate();var i=this.entity.getWorldTransform(),n=this._entityA.getWorldTransform().clone().invert();e.mul2(n,i);var s=new Ammo.btTransform;if(this._convertTransform(e,s),this._entityB&&this._entityB.rigidbody){var r=this._entityB.rigidbody.body;r.activate();var a=this._entityB.getWorldTransform().clone().invert();e.mul2(a,i);var o=new Ammo.btTransform;this._convertTransform(e,o),this._constraint=new Ammo.btGeneric6DofSpringConstraint(t,r,s,o,!this._enableCollision),Ammo.destroy(o)}else this._constraint=new Ammo.btGeneric6DofSpringConstraint(t,s,!this._enableCollision);Ammo.destroy(s);for(var h=["X","Y","Z","X","Y","Z"],l=0;l<6;l++){var c=l<3?"_linear":"_angular";this._constraint.enableSpring(l,this[c+"Spring"+h[l]]),this._constraint.setDamping(l,this[c+"Damping"+h[l]]),this._constraint.setEquilibriumPoint(l,this[c+"Equilibrium"+h[l]]),this._constraint.setStiffness(l,this[c+"Stiffness"+h[l]])}this._constraint.setBreakingImpulseThreshold(this._breakForce),this._updateLinearLimits(),this._updateAngularLimits(),this.system.app.systems.rigidbody.dynamicsWorld.addConstraint(this._constraint,!this._enableCollision)}},i._destroyConstraint=function(){this._constraint&&(this.system.app.systems.rigidbody.dynamicsWorld.removeConstraint(this._constraint),Ammo.destroy(this._constraint),this._constraint=null)},i.initFromData=function(e){for(var t=0,i=H_;t=i?sg:ig;case 3:return t=0;--n)i[t[n]]=i[t[n+1]]+e[t[n]];return i}return function(e,d){e=e.filter(o),t=d,rg.x=t.containerSize.x-t.padding.x-t.padding.z,rg.y=t.containerSize.y-t.padding.y-t.padding.w,function(e){for(var t=0;t0&&(r+=t.spacing[i.axis]);var h=s[o][i.size];r+=h,!a&&r>rg[i.axis]&&0!==n[n.length-1].length&&(r=h,n.push([])),n[n.length-1].push(e[o]),a&&r>rg[i.axis]&&o!==e.length-1&&(r=0,n.push([]))}return n}(e)),m=function(e,i){for(var s=[],r=[],a=0;ao.largestSize[n.size]&&(o.largestElement=o[d],o.largestSize=f)}s.push(o.largestElement),r.push(o.largestSize)}var p=l(r,n),m=h(t[n.fitting],p,rg[n.axis]);m===ng?c(r,p,n):m===sg&&u(r,p,n);for(var _=0;_0;){var t=this._reflowQueue.slice();this._reflowQueue.length=0,t.sort((function(e,t){return e.entity.graphDepth-t.entity.graphDepth}));for(var i=0;i=100){console.warn("Max reflow iterations limit reached, bailing.");break}}},i._onRemoveComponent=function(e,t){t.onRemove()},i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("postUpdate",this._onPostUpdate,this)},t}(jf);Xf._buildAccessors(ug.prototype,fg);var mg=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._type="asset",n._asset=null,n._model=null,n._mapping={},n._castShadows=!0,n._receiveShadows=!0,n._materialAsset=null,n._material=void 0,n._castShadowsLightmap=!0,n._lightmapped=!1,n._lightmapSizeMultiplier=1,n.isStatic=!1,n._layers=[0],n._batchGroupId=-1,n._customAabb=null,n._area=null,n._materialEvents=null,n._clonedModel=!1,n._material=t.defaultMaterial,i.on("remove",n.onRemoveChild,w(n)),i.on("removehierarchy",n.onRemoveChild,w(n)),i.on("insert",n.onInsertChild,w(n)),i.on("inserthierarchy",n.onInsertChild,w(n)),n}S(t,e);var i=t.prototype;return i.addModelToLayers=function(){for(var e=this.system.app.scene.layers,t=0;t=0&&(null==(n=e.batcher)||n.insert(Eo.MODEL,this.batchGroupId,this.entity))},i.onDisable=function(){var e,t=this.system.app,i=t.scene;(i.off("set:layers",this.onLayersChanged,this),i.layers&&(i.layers.off("add",this.onLayerAdded,this),i.layers.off("remove",this.onLayerRemoved,this)),this._batchGroupId>=0)&&(null==(e=t.batcher)||e.remove(Eo.MODEL,this.batchGroupId,this.entity));this._model&&this.removeModelFromLayers()},i.hide=function(){if(this._model)for(var e=this._model.meshInstances,t=0,i=e.length;t=0)null==(t=this.system.app.batcher)||t.remove(Eo.MODEL,this.batchGroupId,this.entity);if(this.entity.enabled&&e>=0)null==(i=this.system.app.batcher)||i.insert(Eo.MODEL,e,this.entity);e<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&this.addModelToLayers(),this._batchGroupId=e}}},{key:"materialAsset",get:function(){return this._materialAsset},set:function(e){var t=e;e instanceof cf&&(t=e.id);var i=this.system.app.assets;if(t!==this._materialAsset){if(this._materialAsset){i.off("add:"+this._materialAsset,this._onMaterialAssetAdd,this);var n=i.get(this._materialAsset);n&&this._unbindMaterialAsset(n)}if(this._materialAsset=t,this._materialAsset){var s=i.get(this._materialAsset);s?this._bindMaterialAsset(s):(this._setMaterial(this.system.defaultMaterial),i.on("add:"+this._materialAsset,this._onMaterialAssetAdd,this))}else this._setMaterial(this.system.defaultMaterial)}}},{key:"material",get:function(){return this._material},set:function(e){this._material!==e&&(this.materialAsset=null,this._setMaterial(e))}},{key:"mapping",get:function(){return this._mapping},set:function(e){if("asset"===this._type&&(this._unsetMaterialEvents(),e||(e={}),this._mapping=e,this._model))for(var t=this._model.meshInstances,i=this.asset?this.system.app.assets.get(this.asset):null,n=i?i.data.mapping:null,s=null,r=0,a=t.length;r=0))continue;n=this.system.app.assets.get(n)}n&&!n.resource&&this.system.app.assets.load(n)}}if(!this.system.app.graphicsDevice.disableParticleSystem){if(!this.emitter){var s=e.mesh;s instanceof Ma||(s=null),this.emitter=new ld(this.system.app.graphicsDevice,{numParticles:e.numParticles,emitterExtents:e.emitterExtents,emitterExtentsInner:e.emitterExtentsInner,emitterRadius:e.emitterRadius,emitterRadiusInner:e.emitterRadiusInner,emitterShape:e.emitterShape,initialVelocity:e.initialVelocity,wrap:e.wrap,localSpace:e.localSpace,screenSpace:e.screenSpace,wrapBounds:e.wrapBounds,lifetime:e.lifetime,rate:e.rate,rate2:e.rate2,orientation:e.orientation,particleNormal:e.particleNormal,animTilesX:e.animTilesX,animTilesY:e.animTilesY,animStartFrame:e.animStartFrame,animNumFrames:e.animNumFrames,animNumAnimations:e.animNumAnimations,animIndex:e.animIndex,randomizeAnimIndex:e.randomizeAnimIndex,animSpeed:e.animSpeed,animLoop:e.animLoop,startAngle:e.startAngle,startAngle2:e.startAngle2,scaleGraph:e.scaleGraph,scaleGraph2:e.scaleGraph2,colorGraph:e.colorGraph,colorGraph2:e.colorGraph2,alphaGraph:e.alphaGraph,alphaGraph2:e.alphaGraph2,localVelocityGraph:e.localVelocityGraph,localVelocityGraph2:e.localVelocityGraph2,velocityGraph:e.velocityGraph,velocityGraph2:e.velocityGraph2,rotationSpeedGraph:e.rotationSpeedGraph,rotationSpeedGraph2:e.rotationSpeedGraph2,radialSpeedGraph:e.radialSpeedGraph,radialSpeedGraph2:e.radialSpeedGraph2,colorMap:e.colorMap,normalMap:e.normalMap,loop:e.loop,preWarm:e.preWarm,sort:e.sort,stretch:e.stretch,alignToMotion:e.alignToMotion,lighting:e.lighting,halfLambert:e.halfLambert,intensity:e.intensity,depthSoftening:e.depthSoftening,scene:this.system.app.scene,mesh:s,depthWrite:e.depthWrite,noFog:e.noFog,node:this.entity,blendType:e.blendType}),this.emitter.meshInstance.node=this.entity,this.emitter.drawOrder=this.drawOrder,e.autoPlay||(this.pause(),this.emitter.meshInstance.visible=!1)}this.emitter.colorMap&&this.addMeshInstanceToLayers(),this.system.app.scene.on("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.on("add",this.onLayerAdded,this),this.system.app.scene.layers.on("remove",this.onLayerRemoved,this)),this.enabled&&this.entity.enabled&&e.depthSoftening&&this._requestDepth()}},i.onDisable=function(){this.system.app.scene.off("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.off("add",this.onLayerAdded,this),this.system.app.scene.layers.off("remove",this.onLayerRemoved,this)),this.emitter&&(this.removeMeshInstanceFromLayers(),this.data.depthSoftening&&this._releaseDepth(),this.emitter.camera=null)},i.onBeforeRemove=function(){this.enabled&&(this.enabled=!1),this.emitter&&(this.emitter.destroy(),this.emitter=null);for(var e=0;eh.fixedTimeStep&&(t=Math.floor(h.simTime/h.fixedTimeStep),h.simTime-=t*h.fixedTimeStep),t){t=Math.min(t,h.maxSubSteps);for(var v=0;v=0){var r=n[s];r.decRefCount(),0===r.refCount&&(n.splice(s,1),n.length||e._skinInstanceCache.delete(i),t&&(t.destroy(),r.skinInstance=null))}}}}},e}();Pg._skinInstanceCache=new Map;var Rg=function(){function e(e,t,i,n,s){this.propertyName=e,this.parent=t,this._scope=s,this._registry=i,this.id=null,this.url=null,this.asset=null,this._onAssetLoad=n.load,this._onAssetAdd=n.add,this._onAssetRemove=n.remove,this._onAssetUnload=n.unload}var t=e.prototype;return t._bind=function(){this.id&&(this._onAssetLoad&&this._registry.on("load:"+this.id,this._onLoad,this),this._onAssetAdd&&this._registry.once("add:"+this.id,this._onAdd,this),this._onAssetRemove&&this._registry.on("remove:"+this.id,this._onRemove,this),this._onAssetUnload&&this._registry.on("unload:"+this.id,this._onUnload,this)),this.url&&(this._onAssetLoad&&this._registry.on("load:url:"+this.url,this._onLoad,this),this._onAssetAdd&&this._registry.once("add:url:"+this.url,this._onAdd,this),this._onAssetRemove&&this._registry.on("remove:url:"+this.url,this._onRemove,this))},t._unbind=function(){this.id&&(this._onAssetLoad&&this._registry.off("load:"+this.id,this._onLoad,this),this._onAssetAdd&&this._registry.off("add:"+this.id,this._onAdd,this),this._onAssetRemove&&this._registry.off("remove:"+this.id,this._onRemove,this),this._onAssetUnload&&this._registry.off("unload:"+this.id,this._onUnload,this)),this.url&&(this._onAssetLoad&&this._registry.off("load:"+this.url,this._onLoad,this),this._onAssetAdd&&this._registry.off("add:"+this.url,this._onAdd,this),this._onAssetRemove&&this._registry.off("remove:"+this.url,this._onRemove,this))},t._onLoad=function(e){this._onAssetLoad.call(this._scope,this.propertyName,this.parent,e)},t._onAdd=function(e){this.asset=e,this._onAssetAdd.call(this._scope,this.propertyName,this.parent,e)},t._onRemove=function(e){this._onAssetRemove.call(this._scope,this.propertyName,this.parent,e),this.asset=null},t._onUnload=function(e){this._onAssetUnload.call(this._scope,this.propertyName,this.parent,e)},y(e,[{key:"id",get:function(){return this._id},set:function(e){if(this.url)throw Error("Can't set id and url");this._unbind(),this._id=e,this.asset=this._registry.get(this._id),this._bind()}},{key:"url",get:function(){return this._url},set:function(e){if(this.id)throw Error("Can't set id and url");this._unbind(),this._url=e,this.asset=this._registry.getByUrl(this._url),this._bind()}}]),e}(),Ig=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._type="asset",n._castShadows=!0,n._receiveShadows=!0,n._castShadowsLightmap=!0,n._lightmapped=!1,n._lightmapSizeMultiplier=1,n.isStatic=!1,n._batchGroupId=-1,n._layers=[0],n._renderStyle=0,n._meshInstances=[],n._customAabb=null,n._area=null,n._assetReference=[],n._materialReferences=[],n._material=void 0,n._rootBone=void 0,n._rootBone=new hm(w(n),"rootBone"),n._rootBone.on("set:entity",n._onSetRootBone,w(n)),n._assetReference=new Rg("asset",w(n),t.app.assets,{add:n._onRenderAssetAdded,load:n._onRenderAssetLoad,remove:n._onRenderAssetRemove,unload:n._onRenderAssetUnload},w(n)),n._material=t.defaultMaterial,i.on("remove",n.onRemoveChild,w(n)),i.on("removehierarchy",n.onRemoveChild,w(n)),i.on("insert",n.onInsertChild,w(n)),i.on("inserthierarchy",n.onInsertChild,w(n)),n}S(t,e);var i=t.prototype;return i.assignAsset=function(e){var t=e instanceof cf?e.id:e;this._assetReference.id=t},i._onSetRootBone=function(e){e&&this._onRootBoneChanged()},i._onRootBoneChanged=function(){this._clearSkinInstances(),this.enabled&&this.entity.enabled&&this._cloneSkinInstances()},i.destroyMeshInstances=function(){var e=this._meshInstances;if(e){this.removeFromLayers(),this._clearSkinInstances();for(var t=0;t=0&&(null==(i=e.batcher)||i.insert(Eo.RENDER,this.batchGroupId,this.entity))},i.onDisable=function(){var e,t=this.system.app,i=t.scene;(i.off("set:layers",this.onLayersChanged,this),i.layers&&(i.layers.off("add",this.onLayerAdded,this),i.layers.off("remove",this.onLayerRemoved,this)),this._batchGroupId>=0)&&(null==(e=t.batcher)||e.remove(Eo.RENDER,this.batchGroupId,this.entity));this.removeFromLayers()},i.hide=function(){if(this._meshInstances)for(var e=0;e=0)null==(t=this.system.app.batcher)||t.remove(Eo.RENDER,this.batchGroupId,this.entity);if(this.entity.enabled&&e>=0)null==(i=this.system.app.batcher)||i.insert(Eo.RENDER,e,this.entity);e<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&this.addToLayers(),this._batchGroupId=e}}},{key:"material",get:function(){return this._material},set:function(e){if(this._material!==e&&(this._material=e,this._meshInstances&&"asset"!==this._type))for(var t=0;te.length){for(var t=e.length;tthis._pool.length)for(var t=this._pool.length;t=this._pool.length&&this._resize(2*this._pool.length),this._pool[this._count++]},t.freeAll=function(){this._count=0},e}(),Hg=new Pe,Wg=new Pe,Xg=new ye,jg=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._angularDamping=0,n._angularFactor=new ye(1,1,1),n._angularVelocity=new ye,n._body=null,n._friction=.5,n._group=2,n._linearDamping=0,n._linearFactor=new ye(1,1,1),n._linearVelocity=new ye,n._mask=Um,n._mass=1,n._restitution=0,n._rollingFriction=0,n._simulationEnabled=!1,n._type=Om,n}S(t,e),t.onLibraryLoaded=function(){"undefined"!=typeof Ammo&&(Fg=new Ammo.btTransform,Bg=new Ammo.btVector3,Ug=new Ammo.btVector3,Ng=new Ammo.btQuaternion)};var i=t.prototype;return i.createBody=function(){var e,t=this.entity;if(t.collision&&(e=t.collision.shape,t.trigger&&(t.trigger.destroy(),delete t.trigger)),e){this._body&&this.system.onRemove(t,this);var i=this._type===km?this._mass:0;this._getEntityTransform(Fg);var n=this.system.createBody(i,e,Fg);if(n.setRestitution(this._restitution),n.setFriction(this._friction),n.setRollingFriction(this._rollingFriction),n.setDamping(this._linearDamping,this._angularDamping),this._type===km){var s=this._linearFactor;Bg.setValue(s.x,s.y,s.z),n.setLinearFactor(Bg);var r=this._angularFactor;Bg.setValue(r.x,r.y,r.z),n.setAngularFactor(Bg)}else this._type===Fm&&(n.setCollisionFlags(2|n.getCollisionFlags()),n.setActivationState(4));n.entity=t,this.body=n,this.enabled&&t.enabled&&this.enableSimulation()}},i.isActive=function(){return!!this._body&&this._body.isActive()},i.activate=function(){this._body&&this._body.activate()},i.enableSimulation=function(){var e=this.entity;if(e.collision&&e.collision.enabled&&!this._simulationEnabled){var t=this._body;if(t){switch(this.system.addBody(t,this._group,this._mask),this._type){case km:this.system._dynamic.push(this),t.forceActivationState(1),this.syncEntityToBody();break;case Fm:this.system._kinematic.push(this),t.forceActivationState(4);break;case Om:t.forceActivationState(1),this.syncEntityToBody()}"compound"===e.collision.type&&this.system._compounds.push(e.collision),t.activate(),this._simulationEnabled=!0}}},i.disableSimulation=function(){var e=this._body;if(e&&this._simulationEnabled){var t=this.system,i=t._compounds.indexOf(this.entity.collision);i>-1&&t._compounds.splice(i,1),(i=t._dynamic.indexOf(this))>-1&&t._dynamic.splice(i,1),(i=t._kinematic.indexOf(this))>-1&&t._kinematic.splice(i,1),t.removeBody(e),e.forceActivationState(5),this._simulationEnabled=!1}},i.applyForce=function(e,t,i,n,s,r){var a=this._body;a&&(a.activate(),e instanceof ye?Bg.setValue(e.x,e.y,e.z):Bg.setValue(e,t,i),t instanceof ye?Ug.setValue(t.x,t.y,t.z):void 0!==n?Ug.setValue(n,s,r):Ug.setValue(0,0,0),a.applyForce(Bg,Ug))},i.applyTorque=function(e,t,i){var n=this._body;n&&(n.activate(),e instanceof ye?Bg.setValue(e.x,e.y,e.z):Bg.setValue(e,t,i),n.applyTorque(Bg))},i.applyImpulse=function(e,t,i,n,s,r){var a=this._body;a&&(a.activate(),e instanceof ye?Bg.setValue(e.x,e.y,e.z):Bg.setValue(e,t,i),t instanceof ye?Ug.setValue(t.x,t.y,t.z):void 0!==n?Ug.setValue(n,s,r):Ug.setValue(0,0,0),a.applyImpulse(Bg,Ug))},i.applyTorqueImpulse=function(e,t,i){var n=this._body;n&&(n.activate(),e instanceof ye?Bg.setValue(e.x,e.y,e.z):Bg.setValue(e,t,i),n.applyTorqueImpulse(Bg))},i.isStatic=function(){return this._type===Om},i.isStaticOrKinematic=function(){return this._type===Om||this._type===Fm},i.isKinematic=function(){return this._type===Fm},i._getEntityTransform=function(e){var t=this.entity,i=t.collision;if(i){var n=i.getShapePosition(),s=i.getShapeRotation();Bg.setValue(n.x,n.y,n.z),Ng.setValue(s.x,s.y,s.z,s.w)}else{var r=t.getPosition(),a=t.getRotation();Bg.setValue(r.x,r.y,r.z),Ng.setValue(a.x,a.y,a.z,a.w)}e.setOrigin(Bg),e.setRotation(Ng)},i.syncEntityToBody=function(){var e=this._body;if(e){if(this._getEntityTransform(Fg),e.setWorldTransform(Fg),this._type===Fm){var t=e.getMotionState();t&&t.setWorldTransform(Fg)}e.activate()}},i._updateDynamic=function(){var e=this._body;if(e.isActive()){var t=e.getMotionState();if(t){var i=this.entity;t.getWorldTransform(Fg);var n=Fg.getOrigin(),s=Fg.getRotation(),r=i.collision;if(r&&r._hasOffset){var a=r.data.linearOffset,o=r.data.angularOffset,h=Wg.copy(o).invert(),l=Hg.set(s.x(),s.y(),s.z(),s.w()).mul(h);l.transformVector(a,Xg),i.setPosition(n.x()-Xg.x,n.y()-Xg.y,n.z()-Xg.z),i.setRotation(l)}else i.setPosition(n.x(),n.y(),n.z()),i.setRotation(s.x(),s.y(),s.z(),s.w())}}},i._updateKinematic=function(){var e=this._body.getMotionState();e&&(this._getEntityTransform(Fg),e.setWorldTransform(Fg))},i.teleport=function(e,t,i,n,s,r){e instanceof ye?this.entity.setPosition(e):this.entity.setPosition(e,t,i),t instanceof Pe?this.entity.setRotation(t):t instanceof ye?this.entity.setEulerAngles(t):void 0!==n&&this.entity.setEulerAngles(n,s,r),this.syncEntityToBody()},i.onEnable=function(){this._body||this.createBody(),this.enableSimulation()},i.onDisable=function(){this.disableSimulation()},y(t,[{key:"angularDamping",get:function(){return this._angularDamping},set:function(e){this._angularDamping!==e&&(this._angularDamping=e,this._body&&this._body.setDamping(this._linearDamping,e))}},{key:"angularFactor",get:function(){return this._angularFactor},set:function(e){this._angularFactor.equals(e)||(this._angularFactor.copy(e),this._body&&this._type===km&&(Bg.setValue(e.x,e.y,e.z),this._body.setAngularFactor(Bg)))}},{key:"angularVelocity",get:function(){if(this._body&&this._type===km){var e=this._body.getAngularVelocity();this._angularVelocity.set(e.x(),e.y(),e.z())}return this._angularVelocity},set:function(e){this._body&&this._type===km&&(this._body.activate(),Bg.setValue(e.x,e.y,e.z),this._body.setAngularVelocity(Bg),this._angularVelocity.copy(e))}},{key:"body",get:function(){return this._body},set:function(e){this._body!==e&&(this._body=e,e&&this._simulationEnabled&&e.activate())}},{key:"friction",get:function(){return this._friction},set:function(e){this._friction!==e&&(this._friction=e,this._body&&this._body.setFriction(e))}},{key:"group",get:function(){return this._group},set:function(e){this._group!==e&&(this._group=e,this.enabled&&this.entity.enabled&&(this.disableSimulation(),this.enableSimulation()))}},{key:"linearDamping",get:function(){return this._linearDamping},set:function(e){this._linearDamping!==e&&(this._linearDamping=e,this._body&&this._body.setDamping(e,this._angularDamping))}},{key:"linearFactor",get:function(){return this._linearFactor},set:function(e){this._linearFactor.equals(e)||(this._linearFactor.copy(e),this._body&&this._type===km&&(Bg.setValue(e.x,e.y,e.z),this._body.setLinearFactor(Bg)))}},{key:"linearVelocity",get:function(){if(this._body&&this._type===km){var e=this._body.getLinearVelocity();this._linearVelocity.set(e.x(),e.y(),e.z())}return this._linearVelocity},set:function(e){this._body&&this._type===km&&(this._body.activate(),Bg.setValue(e.x,e.y,e.z),this._body.setLinearVelocity(Bg),this._linearVelocity.copy(e))}},{key:"mask",get:function(){return this._mask},set:function(e){this._mask!==e&&(this._mask=e,this.enabled&&this.entity.enabled&&(this.disableSimulation(),this.enableSimulation()))}},{key:"mass",get:function(){return this._mass},set:function(e){if(this._mass!==e&&(this._mass=e,this._body&&this._type===km)){var t=this.enabled&&this.entity.enabled;t&&this.disableSimulation(),this._body.getCollisionShape().calculateLocalInertia(e,Bg),this._body.setMassProps(e,Bg),this._body.updateInertiaTensor(),t&&this.enableSimulation()}}},{key:"restitution",get:function(){return this._restitution},set:function(e){this._restitution!==e&&(this._restitution=e,this._body&&this._body.setRestitution(e))}},{key:"rollingFriction",get:function(){return this._rollingFriction},set:function(e){this._rollingFriction!==e&&(this._rollingFriction=e,this._body&&this._body.setRollingFriction(e))}},{key:"type",get:function(){return this._type},set:function(e){if(this._type!==e){switch(this._type=e,this.disableSimulation(),e){case km:this._group=1,this._mask=Bm;break;case Fm:this._group=4,this._mask=Bm;break;default:this._group=2,this._mask=Um}this.createBody()}}}]),t}(Xf),qg=function(){this.enabled=!0},Yg=function(e,t,i,n){this.entity=e,this.point=t,this.normal=i,this.hitFraction=n},Kg=function(e,t,i){0===arguments.length?(this.a=null,this.b=null,this.impulse=0,this.localPointA=new ye,this.localPointB=new ye,this.pointA=new ye,this.pointB=new ye,this.normal=new ye):(this.a=e,this.b=t,this.impulse=i.impulse,this.localPointA=i.localPoint,this.localPointB=i.localPointOther,this.pointA=i.point,this.pointB=i.pointOther,this.normal=i.normal)},Zg=function(e,t,i,n,s,r){void 0===e&&(e=new ye),void 0===t&&(t=new ye),void 0===i&&(i=new ye),void 0===n&&(n=new ye),void 0===s&&(s=new ye),void 0===r&&(r=0),this.localPoint=e,this.localPointOther=t,this.point=i,this.pointOther=n,this.normal=s,this.impulse=r},Qg=function(e,t){this.other=e,this.contacts=t},$g=["enabled"],Jg=function(e){function t(t){var i;return(i=e.call(this,t)||this).maxSubSteps=10,i.fixedTimeStep=1/60,i.gravity=new ye(0,-9.81,0),i._gravityFloat32=new Float32Array(3),i._dynamic=[],i._kinematic=[],i._triggers=[],i._compounds=[],i.id="rigidbody",i._stats=t.stats.frame,i.ComponentType=jg,i.DataType=qg,i.contactPointPool=null,i.contactResultPool=null,i.singleContactResultPool=null,i.schema=$g,i.collisions={},i.frameCollisions={},i.on("beforeremove",i.onBeforeRemove,w(i)),i.on("remove",i.onRemove,w(i)),i}S(t,e);var i=t.prototype;return i.onLibraryLoaded=function(){if("undefined"!=typeof Ammo){if(this.collisionConfiguration=new Ammo.btDefaultCollisionConfiguration,this.dispatcher=new Ammo.btCollisionDispatcher(this.collisionConfiguration),this.overlappingPairCache=new Ammo.btDbvtBroadphase,this.solver=new Ammo.btSequentialImpulseConstraintSolver,this.dynamicsWorld=new Ammo.btDiscreteDynamicsWorld(this.dispatcher,this.overlappingPairCache,this.solver,this.collisionConfiguration),this.dynamicsWorld.setInternalTickCallback){var e=Ammo.addFunction(this._checkForCollisions.bind(this),"vif");this.dynamicsWorld.setInternalTickCallback(e)}zg=new Ammo.btVector3,Vg=new Ammo.btVector3,jg.onLibraryLoaded(),this.contactPointPool=new Gg(Zg,1),this.contactResultPool=new Gg(Qg,1),this.singleContactResultPool=new Gg(Kg,1),this.app.systems.on("update",this.onUpdate,this)}else this.app.systems.off("update",this.onUpdate,this)},i.initializeComponentData=function(t,i,n){for(var s=0,r=["mass","linearDamping","angularDamping","linearFactor","angularFactor","friction","rollingFriction","restitution","type","group","mask"];s0)if(4&d||4&f){var v=c.collision&&(c.collision.hasEvent("triggerenter")||c.collision.hasEvent("triggerleave")),y=u.collision&&(u.collision.hasEvent("triggerenter")||u.collision.hasEvent("triggerleave")),x=c.rigidbody&&(c.rigidbody.hasEvent("triggerenter")||c.rigidbody.hasEvent("triggerleave")),S=u.rigidbody&&(u.rigidbody.hasEvent("triggerenter")||u.rigidbody.hasEvent("triggerleave"));v&&(!(g=this._storeCollision(c,u))||4&f||c.collision.fire("triggerenter",u)),y&&(!(g=this._storeCollision(u,c))||4&d||u.collision.fire("triggerenter",c)),x&&(g||(g=this._storeCollision(u,c)),g&&c.rigidbody.fire("triggerenter",u)),S&&(g||(g=this._storeCollision(c,u)),g&&u.rigidbody.fire("triggerenter",c))}else{var b=this._hasContactEvent(c),w=this._hasContactEvent(u),T=this.hasEvent("contact");if(T||b||w){for(var A=0;A=0&&n!==e.element.drawOrder)null==(i=this.system.app.batcher)||i.markGroupDirty(e.element._batchGroupId)}e.particlesystem&&(e.particlesystem.drawOrder=t++);for(var s=e.children,r=0;r255&&(e=255),this._priority!==e&&(this._priority=e,this.syncDrawOrder())}}]),t}(Xf),sv=function(){this.enabled=!0},rv=["enabled"],av=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="screen",i.ComponentType=nv,i.DataType=sv,i.schema=rv,i.windowResolution=new Se,i._drawOrderSyncQueue=new re,i.app.graphicsDevice.on("resizecanvas",i._onResize,w(i)),i.app.systems.on("update",i._onUpdate,w(i)),i.on("beforeremove",i.onRemoveComponent,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){void 0!==i.priority&&(t.priority=i.priority),void 0!==i.screenSpace&&(t.screenSpace=i.screenSpace),t.cull=t.screenSpace,void 0!==i.scaleMode&&(t.scaleMode=i.scaleMode),void 0!==i.scaleBlend&&(t.scaleBlend=i.scaleBlend),void 0!==i.resolution&&(i.resolution instanceof Se?t._resolution.copy(i.resolution):t._resolution.set(i.resolution[0],i.resolution[1]),t.resolution=t._resolution),void 0!==i.referenceResolution&&(i.referenceResolution instanceof Se?t._referenceResolution.copy(i.referenceResolution):t._referenceResolution.set(i.referenceResolution[0],i.referenceResolution[1]),t.referenceResolution=t._referenceResolution),t.syncDrawOrder(),e.prototype.initializeComponentData.call(this,t,i,n)},i.destroy=function(){e.prototype.destroy.call(this),this.app.graphicsDevice.off("resizecanvas",this._onResize,this),this.app.systems.off("update",this._onUpdate,this)},i._onUpdate=function(e){var t=this.store;for(var i in t)t[i].entity.screen.update&&t[i].entity.screen.update(e)},i._onResize=function(e,t){this.windowResolution.x=e,this.windowResolution.y=t},i.cloneComponent=function(e,t){var i=e.screen;return this.addComponent(t,{enabled:i.enabled,screenSpace:i.screenSpace,scaleMode:i.scaleMode,resolution:i.resolution.clone(),referenceResolution:i.referenceResolution.clone()})},i.onRemoveComponent=function(e,t){t.onRemove()},i.processDrawOrderSyncQueue=function(){for(var e=this._drawOrderSyncQueue.list(),t=0;t=0&&this.instancesWithUpdate.splice(s,1)}if(n.fixedUpdate){var r=this.instancesWithFixedUpdate.indexOf(n);r>=0&&this.instancesWithFixedUpdate.splice(r,1)}if(n.postUpdate){var a=this.instancesWithPostUpdate.indexOf(n);a>=0&&this.instancesWithPostUpdate.splice(a,1)}if(n.toolsUpdate){var o=this.instancesWithToolsUpdate.indexOf(n);o>=0&&this.instancesWithToolsUpdate.splice(o,1)}e.instances[i].instance===e[i]&&delete e[i],delete e.instances[i]}},i._postInitializeScriptComponent=function(e){this._callInstancesMethod(e,uv),e.data.postInitialized=!0},i._updateInstances=function(e,t,i){for(var n=0,s=t.length;nthis.dragThreshold||Math.abs(i)>this.dragThreshold)&&this._disableContentInput()}},i._onSetContentOrViewportSize=function(){this._syncAll()},i._onSetHorizontalScrollbarValue=function(e){!this._scrollbarUpdateFlags[0]&&this.enabled&&this.entity.enabled&&this._onSetScroll(e,null)},i._onSetVerticalScrollbarValue=function(e){!this._scrollbarUpdateFlags[1]&&this.enabled&&this.entity.enabled&&this._onSetScroll(null,e)},i._onSetHorizontalScrollingEnabled=function(){this._syncScrollbarEnabledState(0)},i._onSetVerticalScrollingEnabled=function(){this._syncScrollbarEnabledState(1)},i._onHorizontalScrollbarGain=function(){this._syncScrollbarEnabledState(0),this._syncScrollbarPosition(0)},i._onVerticalScrollbarGain=function(){this._syncScrollbarEnabledState(1),this._syncScrollbarPosition(1)},i._onSetScroll=function(e,t,i){!1!==i&&this._velocity.set(0,0,0);var n=this._updateAxis(e,"x",0),s=this._updateAxis(t,"y",1);(n||s)&&this.fire("set:scroll",this._scroll)},i._updateAxis=function(e,t,i){var n=null!==e&&Math.abs(e-this._scroll[t])>1e-5;return(n||this._isDragging()||0===e)&&(this._scroll[t]=this._determineNewScrollValue(e,t,i),this._syncContentPosition(i),this._syncScrollbarPosition(i)),n},i._determineNewScrollValue=function(e,t,i){if(!this._getScrollingEnabled(i))return this._scroll[t];switch(this.scrollMode){case 0:return pe.clamp(e,0,this._getMaxScrollValue(i));case 1:return this._setVelocityFromOvershoot(e,t,i),e;case 2:return e;default:return console.warn("Unhandled scroll mode:"+this.scrollMode),e}},i._syncAll=function(){this._syncContentPosition(0),this._syncContentPosition(1),this._syncScrollbarPosition(0),this._syncScrollbarPosition(1),this._syncScrollbarEnabledState(0),this._syncScrollbarEnabledState(1)},i._syncContentPosition=function(e){var t=this._getAxis(e),i=this._getSign(e),n=this._contentReference.entity;if(n){var s=this._prevContentSizes[e],r=this._getContentSize(e);if(null!==s&&Math.abs(s-r)>1e-4){var a=this._getMaxOffset(e,s),o=this._getMaxOffset(e,r);this._scroll[t]=0===o?1:pe.clamp(this._scroll[t]*a/o,0,1)}var h=this._scroll[t]*this._getMaxOffset(e),l=n.getLocalPosition();l[t]=h*i,n.setLocalPosition(l),this._prevContentSizes[e]=r}},i._syncScrollbarPosition=function(e){var t=this._getAxis(e),i=this._scrollbarReferences[e].entity;i&&i.scrollbar&&(this._scrollbarUpdateFlags[e]=!0,i.scrollbar.value=this._scroll[t],i.scrollbar.handleSize=this._getScrollbarHandleSize(t,e),this._scrollbarUpdateFlags[e]=!1)},i._syncScrollbarEnabledState=function(e){var t=this._scrollbarReferences[e].entity;if(t){var i=this._getScrollingEnabled(e),n=this._getScrollbarVisibility(e);switch(n){case 0:return void(t.enabled=i);case 1:return void(t.enabled=i&&this._contentIsLargerThanViewport(e));default:console.warn("Unhandled scrollbar visibility:"+n),t.enabled=i}}},i._contentIsLargerThanViewport=function(e){return this._getContentSize(e)>this._getViewportSize(e)},i._contentPositionToScrollValue=function(e){var t=this._getMaxOffset(0),i=this._getMaxOffset(1);return Cv.x=0===t?0:e.x/t,Cv.y=0===i?0:e.y/-i,Cv},i._getMaxOffset=function(e,t){t=void 0===t?this._getContentSize(e):t;var i=this._getViewportSize(e);return t1e-4||Math.abs(this._velocity.y)>1e-4){var e=this._contentReference.entity.getLocalPosition();e.x+=this._velocity.x,e.y+=this._velocity.y,this._contentReference.entity.setLocalPosition(e),this._setScrollFromContentPosition(e)}this._velocity.x*=1-this.friction,this._velocity.y*=1-this.friction}},i._hasOvershoot=function(e,t){return Math.abs(this._toOvershoot(this.scroll[e],t))>.001},i._toOvershoot=function(e,t){var i=this._getMaxScrollValue(t);return e<0?e:e>i?e-i:0},i._setVelocityFromOvershoot=function(e,t,i){var n=this._toOvershoot(e,i)*this._getMaxOffset(i)*this._getSign(i);Math.abs(n)>0&&(this._velocity[t]=-n/(50*this.bounceAmount+1))},i._setVelocityFromContentPositionDelta=function(e){this._prevContentDragPosition?(this._velocity.sub2(e,this._prevContentDragPosition),this._prevContentDragPosition.copy(e)):(this._velocity.set(0,0,0),this._prevContentDragPosition=e.clone())},i._setScrollFromContentPosition=function(e){var t=this._contentPositionToScrollValue(e);this._isDragging()&&(t=this._applyScrollValueTension(t)),this._onSetScroll(t.x,t.y,!1)},i._applyScrollValueTension=function(e){var t=this._getMaxScrollValue(0),i=this._toOvershoot(e.x,0);return i>0?e.x=t+1*Math.log10(1+i):i<0&&(e.x=-1*Math.log10(1-i)),t=this._getMaxScrollValue(1),(i=this._toOvershoot(e.y,1))>0?e.y=t+1*Math.log10(1+i):i<0&&(e.y=-1*Math.log10(1-i)),e},i._isDragging=function(){return this._contentDragHelper&&this._contentDragHelper.isDragging},i._setScrollbarComponentsEnabled=function(e){this._scrollbarReferences[0].hasComponent("scrollbar")&&(this._scrollbarReferences[0].entity.scrollbar.enabled=e),this._scrollbarReferences[1].hasComponent("scrollbar")&&(this._scrollbarReferences[1].entity.scrollbar.enabled=e)},i._setContentDraggingEnabled=function(e){this._contentDragHelper&&(this._contentDragHelper.enabled=e)},i._onMouseWheel=function(e){if(this.useMouseWheel){var t=e.event,i=t.deltaX/this._contentReference.entity.element.calculatedWidth*this.mouseWheelSensitivity.x,n=t.deltaY/this._contentReference.entity.element.calculatedHeight*this.mouseWheelSensitivity.y,s=pe.clamp(this._scroll.x+i,0,this._getMaxScrollValue(0)),r=pe.clamp(this._scroll.y+n,0,this._getMaxScrollValue(1));this.scroll=new Se(s,r)}},i._enableContentInput=function(){for(;this._disabledContentInputEntities.length;){var e=this._disabledContentInputEntities.pop();e.element&&(e.element.useInput=!0)}this._disabledContentInput=!1},i._disableContentInput=function(){var e=this,t=function t(i){i.element&&i.element.useInput&&(e._disabledContentInputEntities.push(i),i.element.useInput=!1);for(var n=i.children,s=0,r=n.length;s1e-5&&(this.data.value=pe.clamp(i,0,1),this._updateHandlePositionAndSize(),this.fire("set:value",this.data.value))},i._onSetHandleSize=function(e,t,i){Math.abs(i-t)>1e-5&&(this.data.handleSize=pe.clamp(i,0,1),this._updateHandlePositionAndSize())},i._onSetHandleAlignment=function(){this._updateHandlePositionAndSize()},i._onSetOrientation=function(e,t,i){i!==t&&this._handleReference.hasComponent("element")&&(this._handleReference.entity.element[this._getOppositeDimension()]=0)},i._updateHandlePositionAndSize=function(){var e=this._handleReference.entity,t=e&&e.element;if(e){var i=e.getLocalPosition();i[this._getAxis()]=this._getHandlePosition(),this._handleReference.entity.setLocalPosition(i)}t&&(t[this._getDimension()]=this._getHandleLength())},i._handlePositionToScrollValue=function(e){return e*this._getSign()/this._getUsableTrackLength()},i._scrollValueToHandlePosition=function(e){return e*this._getSign()*this._getUsableTrackLength()},i._getUsableTrackLength=function(){return Math.max(this._getTrackLength()-this._getHandleLength(),.001)},i._getTrackLength=function(){return this.entity.element?0===this.orientation?this.entity.element.calculatedWidth:this.entity.element.calculatedHeight:0},i._getHandleLength=function(){return this._getTrackLength()*this.handleSize},i._getHandlePosition=function(){return this._scrollValueToHandlePosition(this.value)},i._getSign=function(){return 0===this.orientation?1:-1},i._getAxis=function(){return 0===this.orientation?"x":"y"},i._getDimension=function(){return 0===this.orientation?"width":"height"},i._getOppositeDimension=function(){return 0===this.orientation?"height":"width"},i._destroyDragHelper=function(){this._handleDragHelper&&this._handleDragHelper.destroy()},i._setHandleDraggingEnabled=function(e){this._handleDragHelper&&(this._handleDragHelper.enabled=e)},i.onEnable=function(){this._handleReference.onParentComponentEnable(),this._setHandleDraggingEnabled(!0)},i.onDisable=function(){this._setHandleDraggingEnabled(!1)},i.onRemove=function(){this._destroyDragHelper(),this._toggleLifecycleListeners("off")},t}(Xf),Lv=function(){this.enabled=!0},Dv=[{name:"enabled",type:"boolean"},{name:"orientation",type:"number"},{name:"value",type:"number"},{name:"handleSize",type:"number"},{name:"handleEntity",type:"entity"}],Ov=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="scrollbar",i.ComponentType=Iv,i.DataType=Lv,i.schema=Dv,i.on("beforeremove",i._onRemoveComponent,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){e.prototype.initializeComponentData.call(this,t,i,Dv)},i._onRemoveComponent=function(e,t){t.onRemove()},t}(jf);Xf._buildAccessors(Iv.prototype,Dv);var kv={volume:0,pitch:0,loop:!1,startTime:0,duration:0,position:new ye,maxDistance:0,refDistance:0,rollOffFactor:0,distanceModel:0,onPlay:null,onPause:null,onResume:null,onStop:null,onEnd:null},Fv=function(e){function t(t,i,n){var s;return void 0===i&&(i="Untitled"),void 0===n&&(n={}),(s=e.call(this)||this).name=void 0,s.instances=[],s._component=t,s._assets=t.system.app.assets,s._manager=t.system.manager,s.name=i,s._volume=void 0!==n.volume?pe.clamp(Number(n.volume)||0,0,1):1,s._pitch=void 0!==n.pitch?Math.max(.01,Number(n.pitch)||0):1,s._loop=!(void 0===n.loop||!n.loop),s._duration=n.duration>0?n.duration:null,s._startTime=Math.max(0,Number(n.startTime)||0),s._overlap=!!n.overlap,s._autoPlay=!!n.autoPlay,s._firstNode=null,s._lastNode=null,s._asset=n.asset,s._asset instanceof cf&&(s._asset=s._asset.id),s._onInstancePlayHandler=s._onInstancePlay.bind(w(s)),s._onInstancePauseHandler=s._onInstancePause.bind(w(s)),s._onInstanceResumeHandler=s._onInstanceResume.bind(w(s)),s._onInstanceStopHandler=s._onInstanceStop.bind(w(s)),s._onInstanceEndHandler=s._onInstanceEnd.bind(w(s)),s}S(t,e);var i=t.prototype;return i.play=function(){if(this.overlap||this.stop(),this.isLoaded||this._hasAsset()){var e=this._createInstance();if(this.instances.push(e),this.isLoaded)e.play();else{var t=function(t){var i=e._playWhenLoaded;e.sound=t,i&&e.play()};this.off("load",t),this.once("load",t),this.load()}return e}},i.pause=function(){for(var e=!1,t=this.instances,i=0,n=t.length;i=0;r--){var a=s[r].isPlaying||s[r].isSuspended,o=s[r].currentTime;a&&s[r].stop();var h=n._createInstance();a&&(h.play(),h.currentTime=o),s.push(h)}}}},{key:"slots",get:function(){return this._slots},set:function(e){var t=this._slots;if(t)for(var i in t)t[i].stop();var n={};for(var s in e)e[s]instanceof Fv?n[e[s].name]=e[s]:e[s].name&&(n[e[s].name]=new Fv(this,e[s].name,e[s]));this._slots=n,this.enabled&&this.entity.enabled&&this.onEnable()}}]),t}(Xf),Uv=function(){this.enabled=!0},Nv=["enabled"],zv=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="sound",i.ComponentType=Bv,i.DataType=Uv,i.schema=Nv,i.manager=t.soundManager,i.app.systems.on("update",i.onUpdate,w(i)),i.on("beforeremove",i.onBeforeRemove,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){n=["volume","pitch","positional","refDistance","maxDistance","rollOffFactor","distanceModel","slots"];for(var s=0;sn||i<0;this._setTime(i);var r=this.frame;(r=this._sprite?Math.floor(this._sprite.frameKeys.length*this._time/n):0)!==this._frame&&this._setFrame(r),s&&(this.loop?(this.fire("loop"),this._component.fire("loop",this)):(this._playing=!1,this._paused=!1,this.fire("end"),this._component.fire("end",this)))}},i._setTime=function(e){this._time=e;var t=this.duration;this._time<0?this.loop?this._time=this._time%t+t:this._time=0:this._time>t&&(this.loop?this._time%=t:this._time=t)},i._setFrame=function(e){this._sprite?this._frame=pe.clamp(e,0,this._sprite.frameKeys.length-1):this._frame=e,this._component.currentClip===this&&this._component._showFrame(this._frame)},i._destroy=function(){if(this._spriteAsset){var e=this._component.system.app.assets;this._unbindSpriteAsset(e.get(this._spriteAsset))}this._sprite&&(this.sprite=null),this._spriteAsset&&(this.spriteAsset=null)},i.play=function(){this._playing||(this._playing=!0,this._paused=!1,this.frame=0,this.fire("play"),this._component.fire("play",this))},i.pause=function(){this._playing&&!this._paused&&(this._paused=!0,this.fire("pause"),this._component.fire("pause",this))},i.resume=function(){this._paused&&(this._paused=!1,this.fire("resume"),this._component.fire("resume",this))},i.stop=function(){this._playing&&(this._playing=!1,this._paused=!1,this._time=0,this.frame=0,this.fire("stop"),this._component.fire("stop",this))},y(t,[{key:"duration",get:function(){if(this._sprite){var e=this.fps||Number.MIN_VALUE;return this._sprite.frameKeys.length/Math.abs(e)}return 0}},{key:"frame",get:function(){return this._frame},set:function(e){this._setFrame(e);var t=this.fps||Number.MIN_VALUE;this._setTime(this._frame/t)}},{key:"isPaused",get:function(){return this._paused}},{key:"isPlaying",get:function(){return this._playing}},{key:"sprite",get:function(){return this._sprite},set:function(e){var t;(this._sprite&&(this._sprite.off("set:meshes",this._onSpriteMeshesChange,this),this._sprite.off("set:pixelsPerUnit",this._onSpritePpuChanged,this),this._sprite.off("set:atlas",this._onSpriteMeshesChange,this),this._sprite.atlas&&this._sprite.atlas.off("set:texture",this._onSpriteMeshesChange,this)),this._sprite=e,this._sprite&&(this._sprite.on("set:meshes",this._onSpriteMeshesChange,this),this._sprite.on("set:pixelsPerUnit",this._onSpritePpuChanged,this),this._sprite.on("set:atlas",this._onSpriteMeshesChange,this),this._sprite.atlas&&this._sprite.atlas.on("set:texture",this._onSpriteMeshesChange,this)),this._component.currentClip===this)&&(e&&e.atlas?(e.atlas.texture&&((t=this._component._meshInstance)&&(t.setParameter("texture_emissiveMap",e.atlas.texture),t.setParameter("texture_opacityMap",e.atlas.texture)),this._component.enabled&&this._component.entity.enabled&&this._component._showModel()),this.time&&this.fps?this.time=this.time:this.frame=this.frame):((t=this._component._meshInstance)&&(t.deleteParameter("texture_emissiveMap"),t.deleteParameter("texture_opacityMap")),this._component._hideModel()))}},{key:"spriteAsset",get:function(){return this._spriteAsset},set:function(e){var t=this._component.system.app.assets,i=e;if(e instanceof cf&&(i=e.id),this._spriteAsset!==i){if(this._spriteAsset){var n=t.get(this._spriteAsset);n&&this._unbindSpriteAsset(n)}if(this._spriteAsset=i,this._spriteAsset){var s=t.get(this._spriteAsset);s?this._bindSpriteAsset(s):(this.sprite=null,t.on("add:"+this._spriteAsset,this._onSpriteAssetAdded,this))}else this.sprite=null}}},{key:"time",get:function(){return this._time},set:function(e){this._setTime(e),this._sprite?this.frame=Math.min(this._sprite.frameKeys.length-1,Math.floor(this._time*Math.abs(this.fps))):this.frame=0}}]),t}(E),Wv="texture_emissiveMap",Xv="texture_opacityMap",jv="material_emissive",qv="material_opacity",Yv=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._type=Vv,n._material=t.defaultMaterial,n._color=new me(1,1,1,1),n._colorUniform=new Float32Array(3),n._speed=1,n._flipX=!1,n._flipY=!1,n._width=1,n._height=1,n._drawOrder=0,n._layers=[0],n._outerScale=new Se(1,1),n._outerScaleUniform=new Float32Array(2),n._innerOffset=new be,n._innerOffsetUniform=new Float32Array(4),n._atlasRect=new be,n._atlasRectUniform=new Float32Array(4),n._batchGroupId=-1,n._batchGroup=null,n._node=new jo,n._model=new fu,n._model.graph=n._node,n._meshInstance=null,i.addChild(n._model.graph),n._model._entity=i,n._updateAabbFunc=n._updateAabb.bind(w(n)),n._addedModel=!1,n._autoPlayClip=null,n._clips={},n._defaultClip=new Hv(w(n),{name:n.entity.name,fps:0,loop:!1,spriteAsset:null}),n._currentClip=n._defaultClip,n}S(t,e);var i=t.prototype;return i.onEnable=function(){var e,t=this.system.app,i=t.scene;(i.on("set:layers",this._onLayersChanged,this),i.layers&&(i.layers.on("add",this._onLayerAdded,this),i.layers.on("remove",this._onLayerRemoved,this)),this._showModel(),this._autoPlayClip&&this._tryAutoPlay(),this._batchGroupId>=0)&&(null==(e=t.batcher)||e.insert(Eo.SPRITE,this._batchGroupId,this.entity))},i.onDisable=function(){var e,t=this.system.app,i=t.scene;(i.off("set:layers",this._onLayersChanged,this),i.layers&&(i.layers.off("add",this._onLayerAdded,this),i.layers.off("remove",this._onLayerRemoved,this)),this.stop(),this._hideModel(),this._batchGroupId>=0)&&(null==(e=t.batcher)||e.remove(Eo.SPRITE,this._batchGroupId,this.entity))},i.onDestroy=function(){var e;for(var t in this._currentClip=null,this._defaultClip&&(this._defaultClip._destroy(),this._defaultClip=null),this._clips)this._clips[t]._destroy();this._clips=null,this._hideModel(),this._model=null,null==(e=this._node)||e.remove(),this._node=null,this._meshInstance&&(this._meshInstance.material=null,this._meshInstance.mesh=null,this._meshInstance=null)},i._showModel=function(){if(!this._addedModel&&this._meshInstance){for(var e=[this._meshInstance],t=0,i=this._layers.length;t=0)null==(t=this.system.app.batcher)||t.remove(Eo.SPRITE,n,this.entity);if(this.entity.enabled&&e>=0)null==(i=this.system.app.batcher)||i.insert(Eo.SPRITE,e,this.entity);else n>=0&&this._currentClip&&this._currentClip.sprite&&this.enabled&&this.entity.enabled&&this._showModel()}}},{key:"autoPlayClip",get:function(){return this._autoPlayClip},set:function(e){this._autoPlayClip=e instanceof Hv?e.name:e,this._tryAutoPlay()}},{key:"drawOrder",get:function(){return this._drawOrder},set:function(e){this._drawOrder=e,this._meshInstance&&(this._meshInstance.drawOrder=e)}},{key:"layers",get:function(){return this._layers},set:function(e){this._addedModel&&this._hideModel(),this._layers=e,this._meshInstance&&this.enabled&&this.entity.enabled&&this._showModel()}},{key:"aabb",get:function(){return this._meshInstance?this._meshInstance.aabb:null}}]),t}(Xf),Kv=function(){this.enabled=!0},Zv=["enabled"],Qv=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="sprite",i.ComponentType=Yv,i.DataType=Kv,i.schema=Zv,i._defaultTexture=null,i._defaultMaterial=null,i._default9SlicedMaterialSlicedMode=null,i._default9SlicedMaterialTiledMode=null,i.app.systems.on("update",i.onUpdate,w(i)),i.on("beforeremove",i.onBeforeRemove,w(i)),i}S(t,e);var i=t.prototype;return i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this),this._defaultTexture&&(this._defaultTexture.destroy(),this._defaultTexture=null)},i.initializeComponentData=function(t,i,n){if(void 0!==i.enabled&&(t.enabled=i.enabled),t.type=i.type,i.layers&&Array.isArray(i.layers)&&(t.layers=i.layers.slice(0)),void 0!==i.drawOrder&&(t.drawOrder=i.drawOrder),void 0!==i.color){var s,r;if(i.color instanceof me)t.color.set(i.color.r,i.color.g,i.color.b,null!=(s=i.opacity)?s:1);else t.color.set(i.color[0],i.color[1],i.color[2],null!=(r=i.opacity)?r:1);t.color=t.color}if(void 0!==i.opacity&&(t.opacity=i.opacity),void 0!==i.flipX&&(t.flipX=i.flipX),void 0!==i.flipY&&(t.flipY=i.flipY),void 0!==i.width&&(t.width=i.width),void 0!==i.height&&(t.height=i.height),void 0!==i.spriteAsset&&(t.spriteAsset=i.spriteAsset),i.sprite&&(t.sprite=i.sprite),void 0!==i.frame&&(t.frame=i.frame),i.clips)for(var a in i.clips)t.addClip(i.clips[a]);void 0!==i.speed&&(t.speed=i.speed),i.autoPlayClip&&(t.autoPlayClip=i.autoPlayClip),t.batchGroupId=void 0===i.batchGroupId||null===i.batchGroupId?-1:i.batchGroupId,e.prototype.initializeComponentData.call(this,t,i,n)},i.cloneComponent=function(e,t){var i=e.sprite;return this.addComponent(t,{enabled:i.enabled,type:i.type,spriteAsset:i.spriteAsset,sprite:i.sprite,frame:i.frame,color:i.color.clone(),opacity:i.opacity,flipX:i.flipX,flipY:i.flipY,speed:i.speed,clips:i.clips,autoPlayClip:i.autoPlayClip,batchGroupId:i.batchGroupId,drawOrder:i.drawOrder,layers:i.layers.slice(0)})},i.onUpdate=function(e){var t=this.store;for(var i in t)if(t.hasOwnProperty(i)){var n=t[i];if(n.data.enabled&&n.entity.enabled){var s=n.entity.sprite;s._currentClip&&s._currentClip._update(e)}}},i.onBeforeRemove=function(e,t){t.onDestroy()},y(t,[{key:"defaultMaterial",get:function(){if(!this._defaultMaterial){var e=new ys(this.app.graphicsDevice,{width:1,height:1,format:7,name:"sprite"}),t=new Uint8Array(e.lock());t[0]=t[1]=t[2]=t[3]=255,e.unlock();var i=new Ac;i.diffuse.set(0,0,0),i.emissive.set(.5,.5,.5),i.emissiveMap=e,i.emissiveTint=!0,i.opacityMap=e,i.opacityMapChannel="a",i.opacityTint=!0,i.opacity=0,i.useLighting=!1,i.useGammaTonemap=!1,i.useFog=!1,i.useSkybox=!1,i.blendType=4,i.depthWrite=!1,i.pixelSnap=!1,i.cull=Ze,i.update(),this._defaultTexture=e,this._defaultMaterial=i}return this._defaultMaterial},set:function(e){this._defaultMaterial=e}},{key:"default9SlicedMaterialSlicedMode",get:function(){if(!this._default9SlicedMaterialSlicedMode){var e=this.defaultMaterial.clone();e.nineSlicedMode=1,e.update(),this._default9SlicedMaterialSlicedMode=e}return this._default9SlicedMaterialSlicedMode},set:function(e){this._default9SlicedMaterialSlicedMode=e}},{key:"default9SlicedMaterialTiledMode",get:function(){if(!this._default9SlicedMaterialTiledMode){var e=this.defaultMaterial.clone();e.nineSlicedMode=2,e.update(),this._default9SlicedMaterialTiledMode=e}return this._default9SlicedMaterialTiledMode},set:function(e){this._default9SlicedMaterialTiledMode=e}}]),t}(jf);Xf._buildAccessors(Yv.prototype,Zv);var $v=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._oldState=!0,n._size=new ye,n.on("set_enabled",n._onSetEnabled,w(n)),n}S(t,e);var i=t.prototype;return i.onEnable=function(){this._checkState()},i.onDisable=function(){this._checkState()},i._onSetEnabled=function(e,t,i){this._checkState()},i._checkState=function(){var e=this.enabled&&this.entity.enabled;e!==this._oldState&&(this._oldState=e,this.fire("enable"),this.fire("state",this.enabled))},i._onBeforeRemove=function(){this.fire("remove")},y(t,[{key:"size",get:function(){return this._size},set:function(e){e instanceof ye?this._size.copy(e):e instanceof Array&&e.length>=3&&this.size.set(e[0],e[1],e[2])}}]),t}(Xf),Jv=function(){this.enabled=!0},ey=["enabled"],ty=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="zone",i.ComponentType=$v,i.DataType=Jv,i.schema=ey,i.on("beforeremove",i._onBeforeRemove,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(e,t,i){e.enabled=!t.hasOwnProperty("enabled")||!!t.enabled,t.size&&(t.size instanceof ye?e.size.copy(t.size):t.size instanceof Array&&t.size.length>=3&&e.size.set(t.size[0],t.size[1],t.size[2]))},i.cloneComponent=function(e,t){var i={size:e.zone.size};return this.addComponent(t,i)},i._onBeforeRemove=function(e,t){t._onBeforeRemove()},t}(jf);Xf._buildAccessors($v.prototype,ey);var iy=function(e,t){this.effect=e,this.inputTarget=t,this.outputTarget=null,this.name=e.constructor.name},ny=function(){function e(e,t){this.app=e,this.camera=t,this.destinationRenderTarget=null,this.effects=[],this.enabled=!1,this.depthTarget=null,t.on("set:rect",this.onCameraRectChanged,this)}var t=e.prototype;return t._allocateColorBuffer=function(e,t){var i,n,s,r,a=this.camera.rect,o=Math.floor(a.z*(null!=(i=null==(n=this.camera.renderTarget)?void 0:n.width)?i:this.app.graphicsDevice.width)),h=Math.floor(a.w*(null!=(s=null==(r=this.camera.renderTarget)?void 0:r.height)?s:this.app.graphicsDevice.height));return new ys(this.app.graphicsDevice,{name:t,format:e,width:o,height:h,mipmaps:!1,minFilter:0,magFilter:0,addressU:1,addressV:1})},t._createOffscreenTarget=function(e,t){var i=this.app.graphicsDevice,n=t&&i.getHdrFormat(!1,!0,!1,!1)||7,s=this.camera.entity.name+"-posteffect-"+this.effects.length,r=this._allocateColorBuffer(n,s);return new Xi({colorBuffer:r,depth:e,stencil:e&&this.app.graphicsDevice.supportsStencil,samples:e?i.samples:1})},t._resizeOffscreenTarget=function(e){var t=e.colorBuffer.format,i=e.colorBuffer.name;e.destroyFrameBuffers(),e.destroyTextureBuffers(),e._colorBuffer=this._allocateColorBuffer(t,i),e._colorBuffers=[e._colorBuffer]},t._destroyOffscreenTarget=function(e){e.destroyTextureBuffers(),e.destroy()},t.addEffect=function(e){var t=this.effects,i=0===t.length,n=this._createOffscreenTarget(i,e.hdr),s=new iy(e,n);t.push(s),this._sourceTarget=s.inputTarget,t.length>1&&(t[t.length-2].outputTarget=s.inputTarget),this._newPostEffect=e,e.needsDepthBuffer&&this._requestDepthMap(),this.enable(),this._newPostEffect=void 0},t.removeEffect=function(e){for(var t=-1,i=0,n=this.effects.length;i=0&&(t>0?this.effects[t-1].outputTarget=t+11&&(this.effects[1].inputTarget._depth||(this._destroyOffscreenTarget(this.effects[1].inputTarget),this.effects[1].inputTarget=this._createOffscreenTarget(!0,this.effects[1].hdr),this._sourceTarget=this.effects[1].inputTarget),this.camera.renderTarget=this.effects[1].inputTarget),this._destroyOffscreenTarget(this.effects[t].inputTarget),this.effects.splice(t,1)),this.enabled&&e.needsDepthBuffer&&this._releaseDepthMap(),0===this.effects.length&&this.disable()},t._requestDepthMaps=function(){for(var e=0,t=this.effects.length;e0},set:function(e){e&&!this._sceneColorMapRequested?(this.requestSceneColorMap(!0),this._sceneColorMapRequested=!0):this._sceneColorMapRequested&&(this.requestSceneColorMap(!1),this._sceneColorMapRequested=!1)}},{key:"renderSceneDepthMap",get:function(){return this._renderSceneDepthMap>0},set:function(e){e&&!this._sceneDepthMapRequested?(this.requestSceneDepthMap(!0),this._sceneDepthMapRequested=!0):this._sceneDepthMapRequested&&(this.requestSceneDepthMap(!1),this._sceneDepthMapRequested=!1)}},{key:"renderTarget",get:function(){return this._camera.renderTarget},set:function(e){this._camera.renderTarget=e,this.dirtyLayerCompositionCameras()}},{key:"scissorRect",get:function(){return this._camera.scissorRect},set:function(e){this._camera.scissorRect=e}},{key:"sensitivity",get:function(){return this._camera.sensitivity},set:function(e){this._camera.sensitivity=e}},{key:"shutter",get:function(){return this._camera.shutter},set:function(e){this._camera.shutter=e}},{key:"viewMatrix",get:function(){return this._camera.viewMatrix}}]),t}(Xf),ry=function(){this.enabled=!0},ay=["enabled"],oy=function(e){function t(t){var i;return(i=e.call(this,t)||this).cameras=[],i.id="camera",i.ComponentType=sy,i.DataType=ry,i.schema=ay,i.on("beforeremove",i.onBeforeRemove,w(i)),i.app.on("prerender",i.onAppPrerender,w(i)),i.app.systems.on("update",i.onUpdate,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(t,i,n){n=["aspectRatio","aspectRatioMode","calculateProjection","calculateTransform","clearColor","clearColorBuffer","clearDepthBuffer","clearStencilBuffer","renderSceneColorMap","renderSceneDepthMap","cullFaces","farClip","flipFaces","fov","frustumCulling","horizontalFov","layers","renderTarget","nearClip","orthoHeight","projection","priority","rect","scissorRect","aperture","shutter","sensitivity"];for(var s=0;s=0&&(this.cameras.splice(t,1),Zc(this.cameras))},i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},t}(jf);Xf._buildAccessors(sy.prototype,ay);var hy=[],ly=[],cy=function(e){function t(t,i){var n;return(n=e.call(this,t,i)||this)._cookieAsset=null,n._cookieAssetId=null,n._cookieAssetAdd=!1,n._cookieMatrix=null,n}S(t,e);var i=t.prototype;return i.addLightToLayers=function(){for(var e=0;e=0&&this.enabled&&this.entity.enabled&&e.addLight(this)},i.onLayerRemoved=function(e){this.layers.indexOf(e.id)>=0&&e.removeLight(this)},i.refreshProperties=function(){for(var e=0;e=3&&i.length<=4){for(var u=0;ut.ind&&(o=t.ind),this._insertScriptInstance(r,o,a),this._scriptsIndex[s]={instance:r,onSwap:function(){i.swap(s)}},this[s]=r,t.preloading||r.__initializeAttributes(),this.fire("create",s,r),this.fire("create:"+s,r),this.system.app.scripts.on("swap:"+s,this._scriptsIndex[s].onSwap),t.preloading||(r.enabled&&!r._initialized&&(r._initialized=!0,r.initialize&&this._scriptMethod(r,vy)),r.enabled&&!r._postInitialized&&(r._postInitialized=!0,r.postInitialize&&this._scriptMethod(r,yy))),r}}else this._scriptsIndex[s]={awaiting:!0,ind:this._scripts.length};return null},i.destroy=function(e){var t=e,i=e;"string"==typeof i?i=this.system.app.scripts.get(i):i&&(t=i.__name);var n=this._scriptsIndex[t];if(delete this._scriptsIndex[t],!n)return!1;var s=n.instance;if(s&&!s._destroyed)if(s.enabled=!1,s._destroyed=!0,this._isLoopingThroughScripts)this._destroyedScripts.push(s);else{var r=this._removeScriptInstance(s);r>=0&&this._resetExecutionOrder(r,this._scripts.length)}return this.system.app.scripts.off("swap:"+t,n.onSwap),delete this[t],this.fire("destroy",t,s||null),this.fire("destroy:"+t,s||null),s&&s.fire("destroy"),!0},i.swap=function(e){var t=e,i=e;"string"==typeof i?i=this.system.app.scripts.get(i):i&&(t=i.__name);var n=this._scriptsIndex[t];if(!n||!n.instance)return!1;var s=n.instance,r=this._scripts.indexOf(s),a=new i({app:this.system.app,entity:this.entity,enabled:s.enabled,attributes:s.__attributes});return!!a.swap&&(a.__initializeAttributes(),this._scripts[r]=a,this._scriptsIndex[t].instance=a,this[t]=a,a.__executionOrder=r,s.update&&this._updateList.remove(s),s.postUpdate&&this._postUpdateList.remove(s),a.update&&this._updateList.insert(a),a.postUpdate&&this._postUpdateList.insert(a),this._scriptMethod(a,"swap",s),this.fire("swap",t,a),this.fire("swap:"+t,a),!0)},i.resolveDuplicatedEntityReferenceProperties=function(e,t){var i=this.entity.script;for(var n in e._scriptsIndex){var s=this.system.app.scripts.get(n);if(s){var r=e._scriptsIndex[n];if(r&&r.instance){var a=i[n].__attributesRaw,o=i[n].__attributes;if(a||o){var h=!!a,l=r.instance.__attributes;for(var c in l)if(l[c]){var u=s.attributes.get(c);if(u)if("entity"===u.type)this._resolveEntityScriptAttribute(u,c,l[c],h,a||o,t);else if("json"===u.type&&Array.isArray(u.schema))for(var d=l[c],f=a?a[c]:o[c],p=0;p=i||t<0)return!1;var n=e,s=e;"string"!=typeof s?s=e.__name:n=null;var r=this._scriptsIndex[s];if(!r||!r.instance)return!1;var a=r.instance;if(n&&!(a instanceof n))return!1;var o=this._scripts.indexOf(a);return-1!==o&&o!==t&&(this._scripts.splice(t,0,this._scripts.splice(o,1)[0]),this._resetExecutionOrder(0,i),this._updateList.sort(),this._postUpdateList.sort(),this.fire("move",s,a,t,o),this.fire("move:"+s,a,t,o),!0)},y(t,[{key:"scripts",get:function(){return this._scripts},set:function(e){for(var t in this._scriptsData=e,e)if(e.hasOwnProperty(t)){var i=this._scriptsIndex[t];if(i){if("boolean"==typeof e[t].enabled&&(i.enabled=!!e[t].enabled),"object"==typeof e[t].attributes)for(var n in e[t].attributes)if(!gy.reservedNames.has(n)){if(!i.__attributes.hasOwnProperty(n)){var s=this.system.app.scripts.get(t);s&&s.attributes.add(n,{})}i[n]=e[t].attributes[n]}}else console.log(this.order)}}},{key:"enabled",get:function(){return this._enabled},set:function(e){var t=this._enabled;this._enabled=e,this.fire("set","enabled",t,e)}}]),t}(Xf),Sy=function(){this.enabled=!0},by=0,wy=function(e){function t(t){var i;return(i=e.call(this,t)||this).id="script",i.ComponentType=xy,i.DataType=Sy,i._components=new le({sortBy:"_executionOrder"}),i._enabledComponents=new le({sortBy:"_executionOrder"}),i.preloading=!0,i.on("beforeremove",i._onBeforeRemove,w(i)),i.app.systems.on("initialize",i._onInitialize,w(i)),i.app.systems.on("postInitialize",i._onPostInitialize,w(i)),i.app.systems.on("update",i._onUpdate,w(i)),i.app.systems.on("postUpdate",i._onPostUpdate,w(i)),i}S(t,e);var i=t.prototype;return i.initializeComponentData=function(e,t){if(e._executionOrder=by++,this._components.append(e),by>Number.MAX_SAFE_INTEGER&&this._resetExecutionOrder(),e.enabled=!t.hasOwnProperty("enabled")||!!t.enabled,e.enabled&&e.entity.enabled&&this._enabledComponents.append(e),t.hasOwnProperty("order")&&t.hasOwnProperty("scripts")){e._scriptsData=t.scripts;for(var i=0;i=0&&t._onBeforeRemove(),this._removeComponentFromEnabled(t),this._components.remove(t)},i.destroy=function(){e.prototype.destroy.call(this),this.app.systems.off("initialize",this._onInitialize,this),this.app.systems.off("postInitialize",this._onPostInitialize,this),this.app.systems.off("update",this._onUpdate,this),this.app.systems.off("postUpdate",this._onPostUpdate,this)},t}(jf),Ty=function(e){function t(){var t;return(t=e.call(this)||this)._meshes=null,t}S(t,e);var i=t.prototype;return i.destroy=function(){this.meshes=null},i.decRefMeshes=function(){if(this._meshes)for(var e=this._meshes.length,t=0;t0){var r=t.jobQueue.shift();t.run(e,r)}else{var a=t.workers[2].indexOf(e);if(-1!==a)t.workers[2].splice(a,1),t.workers[1].push(e);else{var o=t.workers[1].indexOf(e);-1!==o&&(t.workers[1].splice(o,1),t.workers[0].push(e))}}}))})),this.workers[0]=e;this.jobQueue.length&&(this.workers[0].length||this.workers[1].length);){var i=this.jobQueue.shift();if(this.workers[0].length>0){var n=this.workers[0].shift();this.workers[1].push(n),this.run(n,i)}else{var s=this.workers[1].shift();this.workers[2].push(s),this.run(s,i)}}},t.enqueueJob=function(e,t){var i={jobId:this.jobId++,buffer:e};if(this.jobCallbacks.set(i.jobId,t),this.workers[0].length>0){var n=this.workers[0].shift();this.workers[1].push(n),this.run(n,i)}else if(this.workers[1].length>0){var s=this.workers[1].shift();this.workers[2].push(s),this.run(s,i)}else this.jobQueue.push(i)},e}(),By=function(e){var t=function(){return fetch(e).then((function(e){return e.arrayBuffer()})).then((function(e){return WebAssembly.compile(e)}))};return WebAssembly.compileStreaming?WebAssembly.compileStreaming(fetch(e)).catch((function(e){return t()})):t()},Uy=function(e){if(Ly)return!0;if(!e)if(Dy)e=Dy;else{var t=oe.getConfig("DracoDecoderModule");e=t?{jsUrl:t.glueUrl,wasmUrl:t.wasmUrl,numWorkers:t.numWorkers}:{jsUrl:"draco.wasm.js",wasmUrl:"draco.wasm.wasm",numWorkers:1}}return!(!e.jsUrl||!e.wasmUrl)&&(Ly=new Fy,Promise.all([(i=e.jsUrl,new Promise((function(e,t){var n={cache:!0,responseType:"text",retry:!0,maxRetries:3};Qr.get(i,n,(function(i,n){i?t(i):e(n)}))}))),By(e.wasmUrl)]).then((function(t){for(var i=t[0],n=t[1],s=["/* draco */",i,"/* worker */","(\n"+Iy.toString()+"\n)()\n\n"].join("\n"),r=new Blob([s],{type:"application/javascript"}),a=URL.createObjectURL(r),o=Math.max(1,Math.min(16,e.numWorkers||1)),h=[],l=0;l0&&o(n,Float32Array,1),s.length>0&&o(s,Uint16Array,65535),r.length>0&&o(r,Uint8Array,255)}(v),v.unlock(),v},ex=function(e,t,i,n,s,r,a){var o,h=new Ma(e);h.aabb=Ky(i[t.attributes.POSITION]);for(var l=[],c=0,u=Object.entries(t.attributes);c0?i.name=e.name:i.name="node_"+t,e.hasOwnProperty("matrix")&&(px.data.set(e.matrix),px.getTranslation(mx),i.setLocalPosition(mx),px.getEulerAngles(mx),i.setLocalEulerAngles(mx),px.getScale(mx),i.setLocalScale(mx)),e.hasOwnProperty("rotation")){var n=e.rotation;i.setLocalRotation(n[0],n[1],n[2],n[3])}if(e.hasOwnProperty("translation")){var s=e.translation;i.setLocalPosition(s[0],s[1],s[2])}if(e.hasOwnProperty("scale")){var r=e.scale;i.setLocalScale(r[0],r[1],r[2])}return i},gx=function(e,t){var i="orthographic"===e.type?1:0,n=1===i?e.orthographic:e.perspective,s={enabled:!1,projection:i,nearClip:n.znear,aspectRatioMode:0};n.zfar&&(s.farClip=n.zfar),1===i?(s.orthoHeight=.5*n.ymag,n.ymag&&(s.aspectRatioMode=1,s.aspectRatio=n.xmag/n.ymag)):(s.fov=n.yfov*pe.RAD_TO_DEG,n.aspectRatio&&(s.aspectRatioMode=1,s.aspectRatio=n.aspectRatio));var r=new Af(e.name);return r.addComponent("camera",s),r},vx=function(e,t){var i={enabled:!1,type:"point"===e.type?"omni":e.type,color:e.hasOwnProperty("color")?new me(e.color):me.WHITE,range:e.hasOwnProperty("range")?e.range:9999,falloffMode:1,intensity:e.hasOwnProperty("intensity")?pe.clamp(e.intensity,0,2):1};e.hasOwnProperty("spot")&&(i.innerConeAngle=e.spot.hasOwnProperty("innerConeAngle")?e.spot.innerConeAngle*pe.RAD_TO_DEG:0,i.outerConeAngle=e.spot.hasOwnProperty("outerConeAngle")?e.spot.outerConeAngle*pe.RAD_TO_DEG:Math.PI/4),e.hasOwnProperty("intensity")&&(i.luminance=e.intensity*lu.getLightUnitConversion(ru[i.type],i.outerConeAngle,i.innerConeAngle));var n=new Af(t.name);return n.rotateLocal(90,0,0),n.addComponent("light",i),n},yx=function(e,t,i,n){if(!t.hasOwnProperty("skins")||0===t.skins.length)return[];var s=new Map;return t.skins.map((function(r){return function(e,t,i,n,s,r){var a,o,h,l=t.joints,c=l.length,u=[];if(t.hasOwnProperty("inverseBindMatrices")){var d=t.inverseBindMatrices,f=qy(i[d],n,!0),p=[];for(a=0;a0&&"localRotation"===D.paths[0].propertyPath[0]&&2!==D.interpolation&&g.push(P[P.length-1].output))}g.sort();var O,k=null;for(o=0;o0){var s,r,a,o,h=null==i||null==(s=i.camera)?void 0:s.preprocess,l=null!=(r=null==i||null==(a=i.camera)?void 0:a.process)?r:gx,c=null==i||null==(o=i.camera)?void 0:o.postprocess;e.nodes.forEach((function(i,s){if(i.hasOwnProperty("camera")){var r=e.cameras[i.camera];if(r){h&&h(r);var a=l(r,t[s]);c&&c(r,a),a&&(n||(n=new Map),n.set(i,a))}}}))}return n},Ex=function(e,t,i){var n=null;if(e.hasOwnProperty("nodes")&&e.hasOwnProperty("extensions")&&e.extensions.hasOwnProperty("KHR_lights_punctual")&&e.extensions.KHR_lights_punctual.hasOwnProperty("lights")){var s=e.extensions.KHR_lights_punctual.lights;if(s.length){var r,a,o,h,l=null==i||null==(r=i.light)?void 0:r.preprocess,c=null!=(a=null==i||null==(o=i.light)?void 0:o.process)?a:vx,u=null==i||null==(h=i.light)?void 0:h.postprocess;e.nodes.forEach((function(e,i){if(e.hasOwnProperty("extensions")&&e.extensions.hasOwnProperty("KHR_lights_punctual")&&e.extensions.KHR_lights_punctual.hasOwnProperty("light")){var r=e.extensions.KHR_lights_punctual.light,a=s[r];if(a){l&&l(a);var o=c(a,t[i]);u&&u(a,o),o&&(n||(n=new Map),n.set(e,o))}}}))}}return n},Mx=function(e,t,i){e.nodes.forEach((function(e){e.hasOwnProperty("mesh")&&e.hasOwnProperty("skin")&&t[e.mesh].meshes.forEach((function(t){t.skin=i[e.skin]}))}))},Px=(ky=g(m().mark((function e(t,i,n,s,r){var a,o,h,l,c,u,d,f,p,_,g,v,y,x,S,b,w,T,A,C,E,M,P,R;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h=null==r||null==(a=r.global)?void 0:a.preprocess,l=null==r||null==(o=r.global)?void 0:o.postprocess,h&&h(i),c=i.asset&&"PlayCanvas"===i.asset.generator,u=Tx(i,r),d=Ax(i,u),f=Ex(i,u,r),p=Cx(i,u,r),_=bx(i),e.next=12,Promise.all(n);case 12:return g=e.sent,v=xx(t,i,g,c,r),y=v.meshes,x=v.meshVariants,S=v.meshDefaultMaterials,b=v.promises,w=wx(i,u,g,r),e.next=17,Promise.all(s);case 17:for(T=e.sent,A=T.map((function(e){return e.resource})),C=Sx(i,A,r,c),E=yx(t,i,u,g),M=[],P=0;Pi.byteLength)t("Invalid length found in glb header. Found "+r);else{for(var a=[],o=12;oi.byteLength&&t("Invalid chunk length found in glb. Found "+h);var l=i.getUint32(o+4,!0),c=new Uint8Array(i.buffer,i.byteOffset+o+8,h);a.push({length:h,type:l,data:c}),o+=h+8}1===a.length||2===a.length?1313821514===a[0].type?a.length>1&&5130562!==a[1].type?t("Invalid chunk type found in glb file. Expected 0x004E4942, found 0x"+a[1].type.toString(16)):t(null,{gltfChunk:a[0].data,binaryChunk:2===a.length?a[1].data:null}):t("Invalid chunk type found in glb file. Expected 0x4E4F534A, found 0x"+a[0].type.toString(16)):t("Invalid number of chunks found in glb file.")}else t("Invalid version number found in glb header. Expected 2, found "+s);else t("Invalid magic number found in glb header. Expected 0x46546C67, found 0x"+n.toString(16))}(t,i):i(null,{gltfChunk:t,binaryChunk:null})},Lx=function(){function e(){}return e.parse=function(e,t,i,n,s,r,a){Ix(e,i,(function(e,i){e?a(e):function(e,t){var i=JSON.parse(function(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);for(var t="",i=0;i0,maxRetries:this.maxRetries};(e.load.startsWith("blob:")||e.load.startsWith("data:"))&&(".glb"===I.getExtension(e.original).toLowerCase()?s.responseType=Zr.ResponseType.ARRAY_BUFFER:s.responseType=Zr.ResponseType.JSON),Qr.get(e.load,s,(function(s,r){var a;s?t("Error loading animation resource: "+e.original+" ["+s+"]"):".glb"===I.getExtension(e.original).toLowerCase()?Lx.parse("filename.glb","",r,n.device,n.assets,null!=(a=null==i?void 0:i.options)?a:{},(function(e,n){if(e)t(e);else{var s,r=n.animations;if(null!=i&&null!=(s=i.data)&&s.events)for(var a=0;a0,maxRetries:this.maxRetries};e.load.startsWith("blob:")&&(i.responseType=Zr.ResponseType.JSON),Qr.get(e.load,i,(function(i,n){i?t("Error loading animation clip resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){var i=t.name,n=t.duration,s=t.inputs.map((function(e){return new Ry(1,e)})),r=t.outputs.map((function(e){return new Ry(e.components,e.data)})),a=t.curves.map((function(e){return new Py([e.path],e.inputIndex,e.outputIndex,e.interpolation)}));return new Ap(i,n,s,r,a)},t.patch=function(e,t){},e}(),kx=function(){function e(e){this.handlerType="animstategraph",this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};e.load.startsWith("blob:")&&(i.responseType=Zr.ResponseType.JSON),Qr.get(e.load,i,(function(i,n){i?t("Error loading animation state graph resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return new Kp(t)},t.patch=function(e,t){},e}(),Fx=function(){if("undefined"==typeof window)return!1;var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}return!1}(),Bx=[".ogg",".mp3",".wav",".mp4a",".m4a",".mp4",".aac",".opus"],Ux=function(){function e(e){this.handlerType="audio",this.manager=e.soundManager,this.maxRetries=0}var t=e.prototype;return t._isSupported=function(e){var t=I.getExtension(e);return Bx.indexOf(t)>-1},t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e});var i=function(i){var n="Error loading audio url: "+e.original;i&&(n+=": "+(i.message||i)),console.warn(n),t(n)};if(this._createSound){if(!this._isSupported(e.original))return void i("Audio format for "+e.original+" not supported");this._createSound(e.load,(function(e){t(null,new aa(e))}),i)}else i(null)},t.open=function(e,t){return t},t.patch=function(e,t){},t._createSound=function(e,t,i){if($r()){var n=this.manager;if(!n.context)return void i("Audio manager has no audio context");var s={retry:this.maxRetries>0,maxRetries:this.maxRetries};(e.startsWith("blob:")||e.startsWith("data:"))&&(s.responseType=Zr.ResponseType.ARRAY_BUFFER),Qr.get(e,s,(function(e,s){e?i(e):n.context.decodeAudioData(s,t,i)}))}else{var r=null;try{r=new Audio}catch(e){return void i("No support for Audio element")}Fx&&document.body.appendChild(r);r.onerror=function(){r.onerror=null,Fx&&document.body.removeChild(r),i()},r.addEventListener("canplaythrough",(function e(){r.removeEventListener("canplaythrough",e),Fx&&document.body.removeChild(r),t(r)})),r.src=e}},e}(),Nx=function(){function e(e){this.handlerType="binary",this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e}),Qr.get(e.load,{responseType:Zr.ResponseType.ARRAY_BUFFER,retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?t("Error loading binary resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return t},t.patch=function(e,t){},e}(),zx=function(){function e(t,i,n,s){for(var r=function(t,s,r){var a=e.createAsset(i.name,t,s,r);return n.add(a),a},a=[],o=0;o=0?e.split("?")[0]:e},t.load=function(e,t,i){var n=this;cf.fetchArrayBuffer(e.load,(function(s,r){s?t(s):Lx.parse(n._getUrlWithoutParams(e.original),I.extractPath(e.load),r,n._device,i.registry,i.options,(function(e,s){e?t(e):t(null,new zx(s,i,n._assets,n._defaultMaterial))}))}),i,this.maxRetries)},t.open=function(e,t,i){return t},t.patch=function(e,t){},e}(),Gx=function(){function e(){}var t=e.prototype;return t.instantiateModelEntity=function(e){return null},t.instantiateRenderEntity=function(e){return null},t.getMaterialVariants=function(){return null},t.applyMaterialVariant=function(e,t){},t.applyMaterialVariantInstances=function(e,t){},e}(),Hx=function(){function e(e){this.handlerType="container",this.glbContainerParser=new Vx(e.graphicsDevice,e.assets,0),this.parsers={}}var t=e.prototype;return t._getUrlWithoutParams=function(e){return e.indexOf("?")>=0?e.split("?")[0]:e},t._getParser=function(e){var t=e?I.getExtension(this._getUrlWithoutParams(e)).toLowerCase().replace(".",""):null;return this.parsers[t]||this.glbContainerParser},t.load=function(e,t,i){"string"==typeof e&&(e={load:e,original:e}),this._getParser(e.original).load(e,t,i)},t.open=function(e,t,i){return this._getParser(e).open(e,t,i)},t.patch=function(e,t){},y(e,[{key:"maxRetries",get:function(){return this.glbContainerParser.maxRetries},set:function(e){for(var t in this.glbContainerParser.maxRetries=e,this.parsers)this.parsers.hasOwnProperty(t)&&(this.parsers[t].maxRetries=e)}}]),e}(),Wx=function(){function e(e){this.handlerType="css",this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e}),Qr.get(e.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?t("Error loading css resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return t},t.patch=function(e,t){},e}(),Xx=function(){function e(e){this.handlerType="cubemap",this._device=e.graphicsDevice,this._registry=e.assets,this._loader=e.loader}var t=e.prototype;return t.load=function(e,t,i){this.loadAssets(i,t)},t.open=function(e,t,i){return i?i.resource:null},t.patch=function(e,t){this.loadAssets(e,(function(i,n){i&&(t.fire("error",e),t.fire("error:"+e.id,i,e),e.fire("error",e))}))},t.getAssetIds=function(e){var t=[];if(t[0]=e.file,(e.loadFaces||!e.file)&&e.data&&e.data.textures)for(var i=0;i<6;++i)t[i+1]=e.data.textures[i];else t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=null;return t},t.compareAssetIds=function(e,t){return e&&t?parseInt(e,10)===e||"string"==typeof e?e===t:e.url===t.url:null!==e==(null!==t)},t.update=function(e,t,i){var n,s,r,a=e.data||{},o=e._handlerState.assets,h=e._resources,l=[null,null,null,null,null,null,null],c=function(){return a.hasOwnProperty("type")?a.type:a.hasOwnProperty("rgbm")?a.rgbm?Yt:qt:null};if(e.loaded&&i[0]===o[0])l[1]=h[1]||null,l[2]=h[2]||null,l[3]=h[3]||null,l[4]=h[4]||null,l[5]=h[5]||null,l[6]=h[6]||null;else if(i[0])if((n=i[0].resource).cubemap)for(r=0;r<6;++r)l[r+1]=new ys(this._device,{name:e.name+"_prelitCubemap"+(n.width>>r),cubemap:!0,type:c()||n.type,width:n.width>>r,height:n.height>>r,format:n.format,levels:[n._levels[r]],fixCubemapSeams:!0,addressU:1,addressV:1,mipmaps:0===r});else n.type=Zt,l[1]=n;var u=i.slice(1);if(e.loaded&&this.cmpArrays(u,o.slice(1)))l[0]=h[0]||null;else if(-1===u.indexOf(null)){var d,f=u.map((function(e){return e.resource})),p=[];for(s=0;s0,maxRetries:this.maxRetries},(function(i,s){if(i)t("Error loading font resource: "+e.original+" ["+i+"]");else{var r=Yx(s);n._loadTextures(e.load.replace(".json",".png"),r,(function(e,i){if(e)return t(e);t(null,{data:r,textures:i})}))}})):(i&&i.data&&(i.data=Yx(i.data)),this._loadTextures(e.load,i&&i.data,t))},t._loadTextures=function(e,t,i){for(var n=t.info.maps.length,s=0,r=null,a=new Array(n),o=this._loader,h=function(t){var h=function(e,o){if(!r){if(e)return r=e,i(e);o.upload(),a[t]=o,++s===n&&i(null,a)}};0===t?o.load(e,"texture",h):o.load(e.replace(".png",t+".png"),"texture",h)},l=0;l0,maxRetries:t},(function(t,n){if(t){var s="Error while loading scene JSON "+e.original;t.message?(s+=": "+t.message,t.stack&&(s+="\n"+t.stack)):s+=": "+t,i(s)}else i(t,n)}))},iS=function(){function e(e){this.handlerType="hierarchy",this._app=e,this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){tS(e,this.maxRetries,t)},t.open=function(e,t){this._app.systems.script.preloading=!0;var i=new eS(this._app,!1).parse(t);return this._app.systems.script.preloading=!1,i},e}(),nS=function(){function e(e){this.handlerType="html",this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e}),Qr.get(e.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?t("Error loading html resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return t},t.patch=function(e,t){},e}(),sS=function(){function e(e){this.handlerType="json",this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};e.load.startsWith("blob:")&&(i.responseType=Zr.ResponseType.JSON),Qr.get(e.load,i,(function(i,n){i?t("Error loading JSON resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return t},t.patch=function(e,t){},e}(),rS=function(){function e(){this.removeInvalid=!0,this.valid=!0,this.enumValidators={occludeSpecular:this._createEnumValidator([0,1,2]),cull:this._createEnumValidator([Ze,1,2,3]),blendType:this._createEnumValidator([0,1,2,3,4,5,6,7,8,9,10]),depthFunc:this._createEnumValidator([0,1,2,3,4,5,6,7]),shadingModel:this._createEnumValidator([0,1])}}var t=e.prototype;return t.setInvalid=function(e,t){this.valid=!1,this.removeInvalid&&delete t[e]},t.validate=function(e){var t=_c,i=Sc,n="path"===e.mappingFormat;for(var s in e){var r=t[s];if(r)if(r.startsWith("enum")){var a=r.split(":")[1];this.enumValidators[a]&&(this.enumValidators[a](e[s])||this.setInvalid(s,e))}else if("number"===r)"number"!=typeof e[s]&&this.setInvalid(s,e);else if("boolean"===r)"boolean"!=typeof e[s]&&this.setInvalid(s,e);else if("string"===r)"string"!=typeof e[s]&&this.setInvalid(s,e);else if("vec2"===r)e[s]instanceof Array&&2===e[s].length||this.setInvalid(s,e);else if("rgb"===r)e[s]instanceof Array&&3===e[s].length||this.setInvalid(s,e);else if("texture"===r)n?"string"!=typeof e[s]&&null!==e[s]&&(e[s]instanceof ys||this.setInvalid(s,e)):"number"!=typeof e[s]&&null!==e[s]&&(e[s]instanceof ys||this.setInvalid(s,e));else if("boundingbox"===r)e[s].center&&e[s].center instanceof Array&&3===e[s].center.length||this.setInvalid(s,e),e[s].halfExtents&&e[s].halfExtents instanceof Array&&3===e[s].halfExtents.length||this.setInvalid(s,e);else if("cubemap"===r)"number"!=typeof e[s]&&null!==e[s]&&void 0!==e[s]&&(e[s]instanceof ys&&e[s].cubemap||this.setInvalid(s,e));else if("chunks"===r)for(var o=Object.keys(e[s]),h=0;h=0}},e}(),aS=function(){function e(){this._validator=null}var t=e.prototype;return t.parse=function(e){var t=this.migrate(e),i=this._validate(t),n=new Ac;return this.initialize(n,i),n},t.initialize=function(e,t){for(var i in t.validated||(t=this._validate(t)),t.chunks&&(e.chunks=x({},t.chunks)),t){var n=_c[i],s=t[i];if("vec2"===n)e[i]=new Se(s[0],s[1]);else if("rgb"===n)e[i]=new me(s[0],s[1],s[2]);else if("texture"===n)s instanceof ys?e[i]=s:e[i]instanceof ys&&"number"==typeof s&&s>0||(e[i]=null);else if("cubemap"===n)s instanceof ys?e[i]=s:e[i]instanceof ys&&"number"==typeof s&&s>0||(e[i]=null),"cubeMap"!==i||s||(e.prefilteredCubemaps=null);else if("boundingbox"===n){var r=new ye(s.center[0],s.center[1],s.center[2]),a=new ye(s.halfExtents[0],s.halfExtents[1],s.halfExtents[2]);e[i]=new ke(r,a)}else e[i]=t[i]}e.update()},t.migrate=function(e){var t;void 0===e.shadingModel&&("blinn"===e.shader?e.shadingModel=1:e.shadingModel=0),e.shader&&delete e.shader,e.mapping_format&&(e.mappingFormat=e.mapping_format,delete e.mapping_format);var i=[["bumpMapFactor","bumpiness"],["aoUvSet","aoMapUv"],["aoMapVertexColor","aoVertexColor"],["diffuseMapVertexColor","diffuseVertexColor"],["emissiveMapVertexColor","emissiveVertexColor"],["specularMapVertexColor","specularVertexColor"],["metalnessMapVertexColor","metalnessVertexColor"],["opacityMapVertexColor","opacityVertexColor"],["glossMapVertexColor","glossVertexColor"],["lightMapVertexColor","lightVertexColor"],["diffuseMapTint","diffuseTint"],["specularMapTint","specularTint"],["emissiveMapTint","emissiveTint"],["metalnessMapTint","metalnessTint"],["clearCoatGlossiness","clearCoatGloss"]];for(t=0;t0,maxRetries:this.maxRetries},(function(i,n){i?t&&t("Error loading material: "+e.original+" ["+i+"]"):t&&(n._engine=!0,t(null,n))}))},t.open=function(e,t){var i=this._parser.parse(t);return t._engine&&(i._data=t,delete t._engine),i},t._createPlaceholders=function(){this._placeholderTextures={};var e={white:[255,255,255,255],gray:[128,128,128,255],black:[0,0,0,255],normal:[128,128,255,255]};for(var t in e)if(e.hasOwnProperty(t)){this._placeholderTextures[t]=new ys(this._device,{width:2,height:2,format:7,name:"material_placeholder"});for(var i=this._placeholderTextures[t].lock(),n=0;n<4;n++)for(var s=0;s<4;s++)i[4*n+s]=e[t][s];this._placeholderTextures[t].unlock()}},t.patch=function(e,t){e.resource._data&&(e._data=e.resource._data,delete e.resource._data),e.data.name=e.name,e.resource.name=e.name,this._bindAndAssignAssets(e,t),e.off("unload",this._onAssetUnload,this),e.on("unload",this._onAssetUnload,this)},t._onAssetUnload=function(e){delete e.data.parameters,delete e.data.chunks,delete e.data.name},t._assignTexture=function(e,t,i){t.resource[e]=i},t._getPlaceholderTexture=function(e){this._placeholderTextures||this._createPlaceholders();var t=oS[e];return this._placeholderTextures[t]},t._assignPlaceholderTexture=function(e,t){t.resource[e]=this._getPlaceholderTexture(e)},t._onTextureLoad=function(e,t,i){this._assignTexture(e,t,i.resource),t.resource.update()},t._onTextureAdd=function(e,t,i){this._assets.load(i)},t._onTextureRemoveOrUnload=function(e,t,i){var n=t.resource;n&&t.resource[e]===i.resource&&(this._assignPlaceholderTexture(e,t),n.update())},t._assignCubemap=function(e,t,i){t.resource[e]=i[0],"cubeMap"===e&&(t.resource.prefilteredCubemaps=i.slice(1))},t._onCubemapLoad=function(e,t,i){this._assignCubemap(e,t,i.resources),this._parser.initialize(t.resource,t.data)},t._onCubemapAdd=function(e,t,i){0===t.data.shadingModel&&(t.loadFaces=!0),this._assets.load(i)},t._onCubemapRemoveOrUnload=function(e,t,i){var n=t.resource;t.data.prefilteredCubeMap128===i.resources[1]&&(this._assignCubemap(e,t,[null,null,null,null,null,null,null]),n.update())},t._bindAndAssignAssets=function(e,t){var i,n,s,r=this._parser.migrate(e.data),a=e.resource,o="path"===r.mappingFormat,h=gc;for(i=0;i0){for(var c=i.blendIndices.data[4*h+l],u=!0,d=0;dn)return!1;for(var f=0;f=0;n--)if(l[n].boneNames.length>i){var f=l.splice(n,1)[0],p=[];for(s=0;s=0;r--)u[r].mesh===_.originalMesh&&(u.push({mesh:o,node:u[r].node}),t&&t.push({material:t[r].material,path:t[r].path}));for(s=0;s=0;r--)u[r].mesh===_.originalMesh&&(u.splice(r,1),t&&t.splice(r,1))}!function(e){for(var t=e.vertices,i=e.skins,n=e.meshes,s=e.meshInstances,r=0;r0&&dS(s,null,this._device.getBoneLimit());for(i=0;i0&&(h>65535&&this._device.extUintElement?(s=new $s(this._device,2,a),r=new Uint32Array(s.lock())):(s=new $s(this._device,1,a),r=new Uint16Array(s.lock()))),{buffer:s,data:r}},t._parseMeshes=function(e,t,i,n,s,r){for(var a=e.model,o=[],h=0,l=0;l0,maxRetries:this.maxRetries};(e.load.startsWith("blob:")||e.load.startsWith("data:"))&&(".glb"===I.getExtension(e.original).toLowerCase()?s.responseType=Zr.ResponseType.ARRAY_BUFFER:s.responseType=Zr.ResponseType.JSON),Qr.get(e.load,s,(function(s,r){if(t)if(s)t("Error loading model: "+e.original+" ["+s+"]");else{for(var a=0;a0,maxRetries:this.maxRetries},(function(i,n){i?t("Error loading shader resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return t},t.patch=function(e,t){},e}();function xS(e){this.resource&&(this.resource.atlas=e.resource)}function SS(e){this.registry.load(e)}var bS=function(){function e(e){this.handlerType="sprite",this._assets=e.assets,this._device=e.graphicsDevice,this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e}),".json"===I.getExtension(e.original)&&Qr.get(e.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(e,i){e?t(e):t(null,i)}))},t.open=function(e,t){var i=new Sd(this._device);return e&&(i.__data=t),i},t.patch=function(e,t){var i=e.resource;if(i.__data&&(e.data.pixelsPerUnit=i.__data.pixelsPerUnit,e.data.renderMode=i.__data.renderMode,e.data.frameKeys=i.__data.frameKeys,i.__data.textureAtlasAsset)){var n=t.getByUrl(i.__data.textureAtlasAsset);n?e.data.textureAtlasAsset=n.id:console.warn("Could not find textureatlas with url: "+i.__data.textureAtlasAsset)}i.startUpdate(),i.renderMode=e.data.renderMode,i.pixelsPerUnit=e.data.pixelsPerUnit,i.frameKeys=e.data.frameKeys,this._updateAtlas(e),i.endUpdate(),e.off("change",this._onAssetChange,this),e.on("change",this._onAssetChange,this)},t._updateAtlas=function(e){var t=e.resource;if(e.data.textureAtlasAsset){this._assets.off("load:"+e.data.textureAtlasAsset,xS,e),this._assets.on("load:"+e.data.textureAtlasAsset,xS,e);var i=this._assets.get(e.data.textureAtlasAsset);i&&i.resource?t.atlas=i.resource:i?this._assets.load(i):(this._assets.off("add:"+e.data.textureAtlasAsset,SS,e),this._assets.on("add:"+e.data.textureAtlasAsset,SS,e))}else t.atlas=null},t._onAssetChange=function(e,t,i,n){"data"===t&&i&&i.textureAtlasAsset&&n&&i.textureAtlasAsset!==n.textureAtlasAsset&&(this._assets.off("load:"+n.textureAtlasAsset,xS,e),this._assets.off("add:"+n.textureAtlasAsset,SS,e))},e}(),wS=function(){function e(e,t){this._app=void 0,this._data=void 0,this._templateRoot=null,this._app=e,this._data=t}var t=e.prototype;return t.instantiate=function(){return this._templateRoot||this._parseTemplate(),this._templateRoot.clone()},t._parseTemplate=function(){var e=new eS(this._app,!0);this._templateRoot=e.parse(this._data)},e}(),TS=function(){function e(e){this.handlerType="template",this._app=e,this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};Qr.get(e.load,i,(function(i,n){i?t("Error requesting template: "+e.original):t(i,n)}))},t.open=function(e,t){return new wS(this._app,t)},e}(),AS=function(){function e(e){this.handlerType="text",this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e}),Qr.get(e.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?t("Error loading text resource: "+e.original+" ["+i+"]"):t(null,n)}))},t.open=function(e,t){return t},t.patch=function(e,t){},e}(),CS={repeat:0,clamp:1,mirror:2},ES={nearest:0,linear:1,nearest_mip_nearest:2,linear_mip_nearest:4,nearest_mip_linear:3,linear_mip_linear:5},MS=/^data\.frames\.(\d+)$/,PS=function(){function e(e){this.handlerType="textureatlas",this._loader=e.loader,this.maxRetries=0}var t=e.prototype;return t.load=function(e,t){"string"==typeof e&&(e={load:e,original:e});var i=this,n=this._loader.getHandler("texture");if(".json"!==I.getExtension(e.original))return n.load(e,t);Qr.get(e.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(n,s){if(n)t(n);else{var r=e.original.replace(".json",".png");i._loader.load(r,"texture",(function(e,i){e?t(e):t(null,{data:s,texture:i})}))}}))},t.open=function(e,t){var i=new bd;if(t.texture&&t.data)i.texture=t.texture,i.__data=t.data;else{var n=this._loader.getHandler("texture").open(e,t);if(!n)return null;i.texture=n}return i},t.patch=function(e,t){if(e.resource){e.resource.__data&&(void 0!==e.resource.__data.minfilter&&(e.data.minfilter=e.resource.__data.minfilter),void 0!==e.resource.__data.magfilter&&(e.data.magfilter=e.resource.__data.magfilter),void 0!==e.resource.__data.addressu&&(e.data.addressu=e.resource.__data.addressu),void 0!==e.resource.__data.addressv&&(e.data.addressv=e.resource.__data.addressv),void 0!==e.resource.__data.mipmaps&&(e.data.mipmaps=e.resource.__data.mipmaps),void 0!==e.resource.__data.anisotropy&&(e.data.anisotropy=e.resource.__data.anisotropy),void 0!==e.resource.__data.rgbm&&(e.data.rgbm=!!e.resource.__data.rgbm),e.data.frames=e.resource.__data.frames,delete e.resource.__data);var i=e.resource.texture;if(i&&(i.name=e.name,e.data.hasOwnProperty("minfilter")&&i.minFilter!==ES[e.data.minfilter]&&(i.minFilter=ES[e.data.minfilter]),e.data.hasOwnProperty("magfilter")&&i.magFilter!==ES[e.data.magfilter]&&(i.magFilter=ES[e.data.magfilter]),e.data.hasOwnProperty("addressu")&&i.addressU!==CS[e.data.addressu]&&(i.addressU=CS[e.data.addressu]),e.data.hasOwnProperty("addressv")&&i.addressV!==CS[e.data.addressv]&&(i.addressV=CS[e.data.addressv]),e.data.hasOwnProperty("mipmaps")&&i.mipmaps!==e.data.mipmaps&&(i.mipmaps=e.data.mipmaps),e.data.hasOwnProperty("anisotropy")&&i.anisotropy!==e.data.anisotropy&&(i.anisotropy=e.data.anisotropy),e.data.hasOwnProperty("rgbm"))){var n=e.data.rgbm?Yt:qt;i.type!==n&&(i.type=n)}e.resource.texture=i;var s={};for(var r in e.data.frames){var a=e.data.frames[r];s[r]={rect:new be(a.rect),pivot:new Se(a.pivot),border:new be(a.border)}}e.resource.frames=s,e.off("change",this._onAssetChange,this),e.on("change",this._onAssetChange,this)}},t._onAssetChange=function(e,t,i){var n;if("data"===t||"data.frames"===t){var s={};for(var r in i.frames)n=i.frames[r],s[r]={rect:new be(n.rect),pivot:new Se(n.pivot),border:new be(n.border)};e.resource.frames=s}else{var a=t.match(MS);if(a){var o=a[1];i?(e.resource.frames[o]?((n=e.resource.frames[o]).rect.set(i.rect[0],i.rect[1],i.rect[2],i.rect[3]),n.pivot.set(i.pivot[0],i.pivot[1]),n.border.set(i.border[0],i.border[1],i.border[2],i.border[3])):e.resource.frames[o]={rect:new be(i.rect),pivot:new Se(i.pivot),border:new be(i.border)},e.resource.fire("set:frame",o,e.resource.frames[o])):e.resource.frames[o]&&(delete e.resource.frames[o],e.resource.fire("remove:frame",o))}}},e}();function RS(){var e,t,i,n=0,s=1,r=2,a=3,o=8,h=9,l=10,c=11,u=12,d=13,f=14,p=16,m={astc:l,dxt:r,etc1:n,etc2:n,pvr:o,atc:c,none:f},_={astc:l,dxt:a,etc1:p,etc2:s,pvr:h,atc:u,none:p},g=21,v=22,y=23,x=8,S=10,b=26,w=27,T=28,A=29,C=30,E=7,M=3,P=5,R=function(e,t){switch(e){case n:return t.formats.etc1?g:v;case s:return y;case r:return x;case a:return S;case o:return b;case h:return w;case l:return T;case c:return A;case u:return C;case d:return E;case f:return M;case p:return P}},I=function(e){for(var t=function(e,t){var i=e*(2/255)-1,n=t*(2/255)-1,s=Math.sqrt(1-Math.min(1,i*i+n*n));return Math.max(0,Math.min(255,Math.floor(.5*(s+1)*255)))},i=0;i>3}return t},D=function(){return"undefined"!=typeof performance?performance.now():0},O=function(e,n,s){if(s){if(e.formats.astc)return"astc"}else if(n){if(e.formats.etc2)return"etc2"}else if(e.formats.etc1||e.formats.etc2)return"etc1";return function(t){for(var i=0;i0,maxRetries:e.maxRetries};if(e.glueUrl&&e.wasmUrl&&function(){try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}return!1}()){var r=null,a=null;Qr.get(e.glueUrl,s,(function(e,i){e?t(e):a?n(i,a):r=i}));var o=fetch(e.wasmUrl),h=function(){o.then((function(e){return e.arrayBuffer()})).then((function(e){return WebAssembly.compile(e)})).then((function(e){r?n(r,e):a=e})).catch((function(e){t(e,null)}))};WebAssembly.compileStreaming?WebAssembly.compileStreaming(o).then((function(e){r?n(r,e):a=e})).catch((function(e){h()})):h()}else Qr.get(e.fallbackUrl,s,(function(e,i){e?t(e,null):n(i,null)}))},DS=function(){function e(){this.callbacks={},this.queue=[],this.clients=[]}var t=e.prototype;return t.enqueueJob=function(e,t,i,n){if(this.callbacks.hasOwnProperty(e))this.callbacks[e].push(i);else{this.callbacks[e]=[i];var s={url:e,data:t,options:n};this.clients.length>0?this.clients.shift().run(s):this.queue.push(s)}},t.enqueueClient=function(e){this.queue.length>0?e.run(this.queue.shift()):this.clients.push(e)},t.handleResponse=function(e,t,i){var n=this.callbacks[e];if(t)for(var s=0;s0&&++a<=o){var i=100*Math.pow(2,a);console.log("Error loading Texture from: '"+t+"' - Retrying in "+i+"ms...");var h=e.indexOf("?")>=0?"&":"?";r=setTimeout((function(){s.src=e+h+"retry="+Date.now(),r=null}),i)}else n("Error loading Texture from: '"+t+"'")},s.src=e},t._loadImageBitmap=function(e,t,i,n){var s=this,r={cache:!0,responseType:"blob",retry:this.maxRetries>0,maxRetries:this.maxRetries};Qr.get(e,r,(function(e,t){e?n(e):s._loadImageBitmapFromBlob(t,n)}))},t._loadImageBitmapFromBlob=function(e,t){createImageBitmap(e,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then((function(e){return t(null,e)})).catch((function(e){return t(e)}))},e}(),qS=[1481919403,3140563232,169478669],YS={33776:8,33778:9,33779:Qe,36196:at,37492:22,37496:23,35840:lt,35841:ot,35842:ct,35843:ht,32849:6,32856:7,35905:19,35907:20,35898:rt,34843:$e,34842:Je};for(var KS=function(){function e(e){this.maxRetries=0}var t=e.prototype;return t.load=function(e,t,i){cf.fetchArrayBuffer(e.load,t,i,this.maxRetries)},t.open=function(e,t,i,n){void 0===n&&(n={});var s=this.parse(t);if(!s)return null;var r=new ys(i,x({name:e,addressU:s.cubemap?1:0,addressV:s.cubemap?1:0,width:s.width,height:s.height,format:s.format,cubemap:s.cubemap,levels:s.levels},n));return r.upload(),r},t.parse=function(e){var t=new Uint32Array(e);if(qS[0]!==t[0]||qS[1]!==t[1]||qS[2]!==t[2])return null;var i={endianness:t[3],glType:t[4],glTypeSize:t[5],glFormat:t[6],glInternalFormat:t[7],glBaseInternalFormat:t[8],pixelWidth:t[9],pixelHeight:t[10],pixelDepth:t[11],numberOfArrayElements:t[12],numberOfFaces:t[13],numberOfMipmapLevels:t[14],bytesOfKeyValueData:t[15]};if(i.pixelDepth>1)return null;if(0!==i.numberOfArrayElements)return null;var n=YS[i.glInternalFormat];if(void 0===n)return null;for(var s,r,a,o=16+i.bytesOfKeyValueData/4,h=i.numberOfFaces>1,l=[],c=0;c<(i.numberOfMipmapLevels||1);c++){var u=t[o++];h&&l.push([]);for(var d=h?l[c]:l,f=0;f<(h?6:1);++f)d.push((s=e,r=4*o,a=u,n===rt?new Uint32Array(s,r,a/4):new Uint8Array(s,r,a))),o+=u+3>>2}return{format:n,width:i.pixelWidth,height:i.pixelHeight,levels:l,cubemap:h}},e}(),ZS=166,QS=function(){function e(e,t){this.maxRetries=0,this.device=t}var t=e.prototype;return t.load=function(e,t,i){var n=this;cf.fetchArrayBuffer(e.load,(function(s,r){s?t(s,r):n.parse(r,e,t,i)}),i,this.maxRetries)},t.open=function(e,t,i,n){void 0===n&&(n={});var s=new ys(i,x({name:e,addressU:t.cubemap?1:0,addressV:t.cubemap?1:0,width:t.width,height:t.height,format:t.format,cubemap:t.cubemap,levels:t.levels},n));return s.upload(),s},t.parse=function(e,t,i,n){var s=new he(e),r=[s.readU32be(),s.readU32be(),s.readU32be()];if(2873840728!==r[0]||540160187!==r[1]||218765834!==r[2])return null;for(var a={vkFormat:s.readU32(),typeSize:s.readU32(),pixelWidth:s.readU32(),pixelHeight:s.readU32(),pixelDepth:s.readU32(),layerCount:s.readU32(),faceCount:s.readU32(),levelCount:s.readU32(),supercompressionScheme:s.readU32()},o={dfdByteOffset:s.readU32(),dfdByteLength:s.readU32(),kvdByteOffset:s.readU32(),kvdByteLength:s.readU32(),sgdByteOffset:s.readU64(),sgdByteLength:s.readU64()},h=[],l=0;l1},n));for(var w,T=128,A=d?6:1,C=c===f?8:16,E=0;E32767)return this._readPixelsFlat(e,t,i);var s=[0,0,0,0];if(e.readArray(s),2!==s[0]||2!==s[1]||0!=(128&s[2]))return e.skip(-4),this._readPixelsFlat(e,t,i);var r,a,o,h,l,c,u=new ArrayBuffer(t*i*4),d=new Uint8Array(u),f=n?0:4*t*(i-1);for(a=0;a128){if(r+(l-=128)>t)return null;for(c=e.readU8(),o=0;ot)return null;for(o=0;o=0?e.split("?")[0]:e},t._getParser=function(e){var t=I.getExtension(this._getUrlWithoutParams(e)).toLowerCase().replace(".","");return this.parsers[t]||this.imgParser},t._getTextureOptions=function(e){var t={};if(e){var i;(null==(i=e.name)?void 0:i.length)>0&&(t.name=e.name);var n=e.data;n.hasOwnProperty("minfilter")&&(t.minFilter=tb[n.minfilter]),n.hasOwnProperty("magfilter")&&(t.magFilter=tb[n.magfilter]),n.hasOwnProperty("addressu")&&(t.addressU=eb[n.addressu]),n.hasOwnProperty("addressv")&&(t.addressV=eb[n.addressv]),n.hasOwnProperty("mipmaps")&&(t.mipmaps=n.mipmaps),n.hasOwnProperty("anisotropy")&&(t.anisotropy=n.anisotropy),n.hasOwnProperty("flipY")&&(t.flipY=!!n.flipY),n.hasOwnProperty("type")?t.type=ib[n.type]:n.hasOwnProperty("rgbm")&&n.rgbm?t.type=Yt:e.file&&0!=(8&e.file.opt)&&(t.type=Qt)}return t},t.load=function(e,t,i){"string"==typeof e&&(e={load:e,original:e}),this._getParser(e.original).load(e,t,i)},t.open=function(e,t,i){if(e){var n=this._getTextureOptions(i),s=this._getParser(e).open(e,t,this._device,n);return null===s?s=new ys(this._device,{width:4,height:4,format:6}):(!function(e){var t=Math.log2(Math.max(e._width,e._height))+1;if(!(7!==e._format&&e._format!==tt||e._volume||e._compressed||1===e._levels.length||e._levels.length===t||(i=e._cubemap?e._levels[0][0]:e._levels[0],i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement))){for(var i,n=function(e,t,i){for(var n=Math.max(1,e>>1),s=Math.max(1,t>>1),r=new i.constructor(n*s*4),a=Math.floor(e/n),o=Math.floor(t/s),h=a*o,l=0;l>s-1),a=Math.max(1,e._height>>s-1);if(e._cubemap){for(var o=[],h=0;h<6;++h)o.push(n(r,a,e._levels[s-1][h]));e._levels.push(o)}else e._levels.push(n(r,a,e._levels[s-1]))}e._levelsUpdated=e._cubemap?[[!0,!0,!0,!0,!0,!0]]:[!0]}}(s),t.unswizzledGGGR&&(i.file.variants.basis.opt&=-9)),s}},t.patch=function(e,t){var i=e.resource;if(i)for(var n=this._getTextureOptions(e),s=0,r=Object.keys(n);sthis.views.length;){var a=this.viewsPool.pop();a||(a={viewport:new be,projMat:new Me,viewMat:new Me,viewOffMat:new Me,viewInvMat:new Me,viewInvOffMat:new Me,projViewOffMat:new Me,viewMat3:new xe,position:new Float32Array(3),rotation:new Pe}),this.views.push(a)}for(;r0){var p=new Me,m=this.views[0];p.copy(m.projMat);var _=p.data,g=2*Math.atan(1/_[5])*180/Math.PI,v=_[5]/_[0],y=_[14]/(_[10]+1),x=_[14]/(_[10]-1);this._camera.camera.setXrProperties({aspectRatio:v,farClip:y,fov:g,horizontalFov:!1,nearClip:x})}return this._camera.camera._node.setLocalPosition(this._localPosition),this._camera.camera._node.setLocalRotation(this._localRotation),this.input.update(e),this._type===ob&&(this.hitTest.supported&&this.hitTest.update(e),this.lightEstimation.supported&&this.lightEstimation.update(e),this.depthSensing.supported&&this.depthSensing.update(e,n&&n.views[0]),this.imageTracking.supported&&this.imageTracking.update(e),this.planeDetection.supported&&this.planeDetection.update(e)),this.fire("update",e),!0},y(t,[{key:"supported",get:function(){return this._supported}},{key:"active",get:function(){return!!this._session}},{key:"type",get:function(){return this._type}},{key:"spaceType",get:function(){return this._spaceType}},{key:"session",get:function(){return this._session}},{key:"camera",get:function(){return this._camera?this._camera.entity:null}},{key:"visibilityState",get:function(){return this._session?this._session.visibilityState:null}}]),t}(E),jb=function(e){function t(t,i){var n;void 0===i&&(i={}),n=e.call(this,t)||this;var s=new Of;return s.graphicsDevice=n.createDevice(t,i),n.addComponentSystems(s),n.addResourceHandles(s),s.elementInput=i.elementInput,s.keyboard=i.keyboard,s.mouse=i.mouse,s.touch=i.touch,s.gamepads=i.gamepads,s.scriptPrefix=i.scriptPrefix,s.assetPrefix=i.assetPrefix,s.scriptsOrder=i.scriptsOrder,s.soundManager=new ra,s.lightmapper=Wf,s.batchManager=lh,s.xr=Xb,n.init(s),n}S(t,e);var i=t.prototype;return i.createDevice=function(e,t){return t.graphicsDeviceOptions||(t.graphicsDeviceOptions={}),V.browser&&navigator.xr&&(t.graphicsDeviceOptions.xrCompatible=!0),t.graphicsDeviceOptions.alpha=t.graphicsDeviceOptions.alpha||!1,new Zs(e,t.graphicsDeviceOptions)},i.addComponentSystems=function(e){e.componentSystems=[Jg,e_,Y_,Lp,Jp,vg,kg,oy,fy,Wd.legacy?_v:wy,om,zv,nm,Eg,av,N_,Cm,Rv,Ov,Qv,pg,$_,ty]},i.addResourceHandles=function(e){e.resourceHandlers=[My,Dx,Ox,kx,_S,hS,sb,AS,sS,Ux,vS,gS,Xx,nS,Wx,yS,iS,jx,Kx,Nx,PS,bS,TS,Hx]},t}(If),qb=function(e){function t(t,i){var n;return(n=e.call(this)||this)._assets=new Set,n._loadingAssets=new Set,n._waitingAssets=new Set,n._registry=i,n._loading=!1,n._loaded=!1,n._failed=[],t.forEach((function(e){if(e instanceof cf)e.registry||(e.registry=i),n._assets.add(e);else{var t=i.get(e);t?n._assets.add(t):n._waitForAsset(e)}})),n}S(t,e);var i=t.prototype;return i.destroy=function(){var e=this;this._registry.off("load",this._onLoad),this._registry.off("error",this._onError),this._waitingAssets.forEach((function(t){e._registry.off("add:"+t,this._onAddAsset)})),this.off("progress"),this.off("load")},i._assetHasDependencies=function(e){var t;return"model"===e.type&&(null==(t=e.file)?void 0:t.url)&&e.file.url&&e.file.url.match(/.json$/g)},i.load=function(e,t){var i=this;if(!this._loading){this._loading=!0,this._callback=e,this._scope=t,this._registry.on("load",this._onLoad,this),this._registry.on("error",this._onError,this);var n=!1;this._assets.forEach((function(e){e.loaded||(n=!0,i._assetHasDependencies(e)&&i._registry.loadFromUrl(e.file.url,e.type,(function(t,n){t?i._onError(t,e):i._onLoad(e)})),i._loadingAssets.add(e),i._registry.add(e))})),this._loadingAssets.forEach((function(e){i._assetHasDependencies(e)||i._registry.load(e)})),n||0!==this._waitingAssets.size||this._loadingComplete()}},i.ready=function(e,t){void 0===t&&(t=this),this._loaded?e.call(t,Array.from(this._assets)):this.once("load",(function(i){e.call(t,i)}))},i._loadingComplete=function(){this._loaded||(this._loaded=!0,this._registry.off("load",this._onLoad,this),this._registry.off("error",this._onError,this),this._failed.length?(this._callback&&this._callback.call(this._scope,"Failed to load some assets",this._failed),this.fire("error",this._failed)):(this._callback&&this._callback.call(this._scope),this.fire("load",Array.from(this._assets))))},i._onLoad=function(e){var t=this;this._loadingAssets.has(e)&&(this.fire("progress",e),this._loadingAssets.delete(e)),0===this._loadingAssets.size&&setTimeout((function(){t._loadingComplete(t._failed)}),0)},i._onError=function(e,t){var i=this;this._loadingAssets.has(t)&&(this._failed.push(t),this._loadingAssets.delete(t)),0===this._loadingAssets.size&&setTimeout((function(){i._loadingComplete(i._failed)}),0)},i._onAddAsset=function(e){this._waitingAssets.delete(e),this._assets.add(e),e.loaded||(this._loadingAssets.add(e),this._registry.load(e))},i._waitForAsset=function(e){this._waitingAssets.add(e),this._registry.once("add:"+e,this._onAddAsset,this)},t}(E),Yb=4096,Kb=function(e){function t(t,i){var n;void 0===i&&(i={}),(n=e.call(this)||this).type="bitmap",n.app=t,n.intensity=0,n.fontWeight=i.fontWeight||"normal",n.fontSize=parseInt(i.fontSize,10),n.glyphSize=n.fontSize,n.fontName=i.fontName||"Arial",n.color=i.color||new me(1,1,1),n.padding=i.padding||0;var s=i.width>Yb?Yb:i.width||512,r=i.height>Yb?Yb:i.height||512,a=document.createElement("canvas");a.height=r,a.width=s;var o=new ys(n.app.graphicsDevice,{name:"font",format:7,minFilter:5,magFilter:1,addressU:1,addressV:1,mipmaps:!0});return o.setSource(a),n.textures=[o],n.chars="",n.data={},n}S(t,e);var i=t.prototype;return i.createTextures=function(e){var t=this._normalizeCharsSet(e);if(t.length===this.chars.length){for(var i=0;i0&&this._renderAtlas(this.chars.concat(i))},i.destroy=function(){for(var e=0;eE&&(E=this.fontSize*this.fontSize/M,c.font=this.fontWeight+" "+E.toString()+"px "+this.fontName,M=this.fontSize),this.renderCharacter(c,A,b+x,w+S,r);var P=this.padding+(this.glyphSize-M)/2,R=-this.padding+m[A].descent-p,I=M;if(this._addChar(this.data,A,C,b,w,v,y,P,R,I,t-1,n,s),(b+=v)+v>n&&(b=0,(w+=y)+y>s))if(this.textures[t-1].upload(),w=0,++t>d){(i=document.createElement("canvas")).height=s,i.width=n,c=this._getAndClearContext(i,o);var L=new ys(this.app.graphicsDevice,{format:7,mipmaps:!0,name:"font-atlas"});L.setSource(i),L.minFilter=5,L.magFilter=1,L.addressU=1,L.addressV=1,this.textures.push(L)}else i=this.textures[t-1].getSource(),c=this._getAndClearContext(i,o)}if(this.textures[t-1].upload(),t>16&255)/255,t.pickColor[1]=(s>>8&255)/255,t.pickColor[2]=(255&s)/255,i.setValue(t.pickColor),e.setBlendState(Ei.NOBLEND),t.mapping[s]=n}}),this.layer.addCamera(this.cameraEntity.camera),this.layerComp=new tu("picker"),this.layerComp.pushOpaque(this.layer)},t.prepare=function(e,t,i){e instanceof mh&&(e=e.node.camera),i instanceof zc&&(i=[i]),this.layer.clearMeshInstances();for(var n=this.layer.opaqueMeshInstances,s=t.layers.layerList,r=t.layers.subLayerEnabled,a=t.layers.subLayerList,o=0;o=0){h._clearDepthBuffer&&n.push(this.clearDepthCommand);for(var l=a[o]?h.instances.transparentMeshInstances:h.instances.opaqueMeshInstances,c=0;c0?h.wheelDelta=1:t.deltaY<0&&(h.wheelDelta=-1)),h}return S(t,e),t}(Mw),Rw=function(e){function t(t,i,n,s,r,a){var o;return(o=e.call(this,t,i,n)||this).touches=t.touches,o.changedTouches=t.changedTouches,o.x=s,o.y=r,o.touch=a,o}return S(t,e),t}(Mw),Iw=function(e){function t(t,i,n,s){var r;return(r=e.call(this,t,i,n)||this).inputSource=s,r}return S(t,e),t}(Mw),Lw=function(){function e(e,t){this._app=null,this._attached=!1,this._target=null,this._enabled=!0,this._lastX=0,this._lastY=0,this._upHandler=this._handleUp.bind(this),this._downHandler=this._handleDown.bind(this),this._moveHandler=this._handleMove.bind(this),this._wheelHandler=this._handleWheel.bind(this),this._touchstartHandler=this._handleTouchStart.bind(this),this._touchendHandler=this._handleTouchEnd.bind(this),this._touchcancelHandler=this._touchendHandler,this._touchmoveHandler=this._handleTouchMove.bind(this),this._sortHandler=this._sortElements.bind(this),this._elements=[],this._hoveredElement=null,this._pressedElement=null,this._touchedElements={},this._touchesForWhichTouchLeaveHasFired={},this._selectedElements={},this._selectedPressedElements={},this._useMouse=!t||!1!==t.useMouse,this._useTouch=!t||!1!==t.useTouch,this._useXr=!t||!1!==t.useXr,this._selectEventsAttached=!1,V.touch&&(this._clickedEntities={}),this.attach(e)}var t=e.prototype;return t.attach=function(e){this._attached&&(this._attached=!1,this.detach()),this._target=e,this._attached=!0;var t=!!V.passiveEvents&&{passive:!0};this._useMouse&&(window.addEventListener("mouseup",this._upHandler,t),window.addEventListener("mousedown",this._downHandler,t),window.addEventListener("mousemove",this._moveHandler,t),window.addEventListener("wheel",this._wheelHandler,t)),this._useTouch&&V.touch&&(this._target.addEventListener("touchstart",this._touchstartHandler,t),this._target.addEventListener("touchend",this._touchendHandler,!1),this._target.addEventListener("touchmove",this._touchmoveHandler,!1),this._target.addEventListener("touchcancel",this._touchcancelHandler,!1)),this.attachSelectEvents()},t.attachSelectEvents=function(){!this._selectEventsAttached&&this._useXr&&this.app&&this.app.xr&&this.app.xr.supported&&(this._clickedEntities||(this._clickedEntities={}),this._selectEventsAttached=!0,this.app.xr.on("start",this._onXrStart,this))},t.detach=function(){if(this._attached){this._attached=!1;var e=!!V.passiveEvents&&{passive:!0};this._useMouse&&(window.removeEventListener("mouseup",this._upHandler,e),window.removeEventListener("mousedown",this._downHandler,e),window.removeEventListener("mousemove",this._moveHandler,e),window.removeEventListener("wheel",this._wheelHandler,e)),this._useTouch&&(this._target.removeEventListener("touchstart",this._touchstartHandler,e),this._target.removeEventListener("touchend",this._touchendHandler,!1),this._target.removeEventListener("touchmove",this._touchmoveHandler,!1),this._target.removeEventListener("touchcancel",this._touchcancelHandler,!1)),this._selectEventsAttached&&(this._selectEventsAttached=!1,this.app.xr.off("start",this._onXrStart,this),this.app.xr.off("end",this._onXrEnd,this),this.app.xr.off("update",this._onXrUpdate,this),this.app.xr.input.off("selectstart",this._onSelectStart,this),this.app.xr.input.off("selectend",this._onSelectEnd,this),this.app.xr.input.off("remove",this._onXrInputRemove,this)),this._target=null}},t.addElement=function(e){-1===this._elements.indexOf(e)&&this._elements.push(e)},t.removeElement=function(e){var t=this._elements.indexOf(e);-1!==t&&this._elements.splice(t,1)},t._handleUp=function(e){this._enabled&&(Ir.isPointerLocked()||(this._calcMouseCoords(e),this._onElementMouseEvent("mouseup",e)))},t._handleDown=function(e){this._enabled&&(Ir.isPointerLocked()||(this._calcMouseCoords(e),this._onElementMouseEvent("mousedown",e)))},t._handleMove=function(e){this._enabled&&(this._calcMouseCoords(e),this._onElementMouseEvent("mousemove",e),this._lastX=Rb,this._lastY=Ib)},t._handleWheel=function(e){this._enabled&&(this._calcMouseCoords(e),this._onElementMouseEvent("mousewheel",e))},t._determineTouchedElements=function(e){for(var t={},i=this.app.systems.camera.cameras,n=i.length-1;n>=0;n--){for(var s=i[n],r=0,a=e.changedTouches.length,o=0;o=0;d--){this._getTargetElementByCoords(t[d],u.x,u.y)===o&&(this._clickedEntities[o.entity.getGuid()]||(this._fireEvent("click",new Rw(e,o,h,l,c,r)),this._clickedEntities[o.entity.getGuid()]=Date.now()))}}}}},t._handleTouchMove=function(e){if(e.preventDefault(),this._enabled)for(var t=this._determineTouchedElements(e),i=0,n=e.changedTouches.length;i=0&&(s=r[a],!(i=this._getTargetElementByCoords(s,Rb,Ib)));a--);if(this._hoveredElement=i,"mousemove"!==e&&"mouseup"!==e||!this._pressedElement?i&&(this._fireEvent(e,new Pw(t,i,s,Rb,Ib,this._lastX,this._lastY)),"mousedown"===e&&(this._pressedElement=i)):this._fireEvent(e,new Pw(t,this._pressedElement,s,Rb,Ib,this._lastX,this._lastY)),n!==this._hoveredElement&&(n&&this._fireEvent("mouseleave",new Pw(t,n,s,Rb,Ib,this._lastX,this._lastY)),this._hoveredElement&&this._fireEvent("mouseenter",new Pw(t,this._hoveredElement,s,Rb,Ib,this._lastX,this._lastY))),"mouseup"===e&&this._pressedElement){if(this._pressedElement===this._hoveredElement){var o=this._hoveredElement.entity.getGuid(),h=!this._clickedEntities;if(this._clickedEntities){var l=this._clickedEntities[o]||0;h=Date.now()-l>300,delete this._clickedEntities[o]}h&&this._fireEvent("click",new Pw(t,this._hoveredElement,s,Rb,Ib,this._lastX,this._lastY))}this._pressedElement=null}},t._onXrStart=function(){this.app.xr.on("end",this._onXrEnd,this),this.app.xr.on("update",this._onXrUpdate,this),this.app.xr.input.on("selectstart",this._onSelectStart,this),this.app.xr.input.on("selectend",this._onSelectEnd,this),this.app.xr.input.on("remove",this._onXrInputRemove,this)},t._onXrEnd=function(){this.app.xr.off("update",this._onXrUpdate,this),this.app.xr.input.off("selectstart",this._onSelectStart,this),this.app.xr.input.off("selectend",this._onSelectEnd,this),this.app.xr.input.off("remove",this._onXrInputRemove,this)},t._onXrUpdate=function(){if(this._enabled)for(var e=this.app.xr.input.inputSources,t=0;t=0&&(r=o[h],!(n=this._getTargetElementByRay(rw,r)));h--);}t._elementEntity=n||null,n?(this._selectedElements[t.id]=n,s=n):delete this._selectedElements[t.id],a!==s&&(a&&this._fireEvent("selectleave",new Iw(i,a,r,t)),s&&this._fireEvent("selectenter",new Iw(i,s,r,t)));var l=this._selectedPressedElements[t.id];"selectmove"===e&&l&&this._fireEvent("selectmove",new Iw(i,l,r,t)),"selectstart"===e&&(this._selectedPressedElements[t.id]=s,s&&this._fireEvent("selectstart",new Iw(i,s,r,t))),!t.elementInput&&l&&(delete this._selectedPressedElements[t.id],a&&this._fireEvent("selectend",new Iw(i,l,r,t))),"selectend"===e&&t.elementInput&&(delete this._selectedPressedElements[t.id],l&&this._fireEvent("selectend",new Iw(i,l,r,t)),l&&l===a&&this._fireEvent("click",new Iw(i,l,r,t)))},t._fireEvent=function(e,t){for(var i=t.element;i.fire(e,t),!t._stopPropagation&&i.entity.parent&&(i=i.entity.parent.element););},t._calcMouseCoords=function(e){var t=this._target.getBoundingClientRect(),i=Math.floor(t.left),n=Math.floor(t.top);Rb=e.clientX-i,Ib=e.clientY-n},t._calcTouchCoords=function(e){for(var t=0,i=0,n=e.target;!(n instanceof HTMLElement);)n=n.parentNode;var s=n;do{t+=s.offsetLeft-s.scrollLeft,i+=s.offsetTop-s.scrollTop,s=s.offsetParent}while(s);return{x:e.pageX-t,y:e.pageY-i}},t._sortElements=function(e,t){var i=this.app.scene.layers.sortTransparentLayers(e.layers,t.layers);return 0!==i?i:e.screen&&!t.screen?-1:!e.screen&&t.screen?1:e.screen||t.screen?e.screen.screen.screenSpace&&!t.screen.screen.screenSpace?-1:t.screen.screen.screenSpace&&!e.screen.screen.screenSpace?1:t.drawOrder-e.drawOrder:0},t._getTargetElementByCoords=function(e,t,i){var n=this._calculateRayScreen(t,i,e,nw)?nw:null,s=this._calculateRay3d(t,i,e,sw)?sw:null;return this._getTargetElement(e,n,s)},t._getTargetElementByRay=function(e,t){nw.origin.copy(e.origin),nw.direction.copy(e.direction),nw.end.copy(nw.direction).mulScalar(2*t.farClip).add(nw.origin);var i=nw,n=t.worldToScreen(i.origin,tw),s=this._calculateRayScreen(n.x,n.y,t,sw)?sw:null;return this._getTargetElement(t,s,i)},t._getTargetElement=function(e,t,i){var n=null,s=1/0;this._elements.sort(this._sortHandler);for(var r=0,a=this._elements.length;r=0){n=o;break}}else{if(!i)continue;var h=this._checkElement(i,o,!1);if(h>=0&&(h=h&&d<=l&&f<=c&&f>=u&&(d=s*(d-h)/a,f=r-(f=r*(f-u)/o),n.origin.set(d,f,1),n.direction.set(0,0,-1),n.end.copy(n.direction).mulScalar(2).add(n.origin),!0)},t._calculateRay3d=function(e,t,i,n){var s=this._target.clientWidth,r=this._target.clientHeight,a=i.rect.z*s,o=i.rect.w*r,h=i.rect.x*s,l=h+a,c=(1-i.rect.y)*r,u=c-o,d=e,f=t;return e>=h&&e<=l&&t<=c&&f>=u&&(d=s*(d-h)/a,f=r*(f-u)/o,i.screenToWorld(d,f,i.nearClip,tw),i.screenToWorld(d,f,i.farClip,iw),n.origin.copy(tw),n.direction.set(0,0,-1),n.end.copy(iw),!0)},t._checkElement=function(t,i,n){if(i.maskedBy&&this._checkElement(t,i.maskedBy.element,n)<0)return-1;var s;s=n?e.calculateScaleToScreen(i):e.calculateScaleToWorld(i);var r=e.buildHitCorners(i,n?i.screenCorners:i.worldCorners,s);return function(e,t,i){aw.sub2(t,e),ow.sub2(i[0],e),hw.sub2(i[1],e),lw.sub2(i[2],e),uw.cross(lw,aw);var n,s,r=ow.dot(uw);if(r>=0){if((n=-hw.dot(uw))<0)return-1;if((s=Ew(aw,hw,ow))<0)return-1;var a=1/(n+r+s);dw.copy(i[0]).mulScalar(n*a),fw.copy(i[1]).mulScalar(r*a),pw.copy(i[2]).mulScalar(s*a),mw.copy(dw).add(fw).add(pw)}else{if(cw.sub2(i[3],e),(n=cw.dot(uw))<0)return-1;if((s=Ew(aw,ow,cw))<0)return-1;var o=1/(n+(r=-r)+s);dw.copy(i[0]).mulScalar(n*o),fw.copy(i[3]).mulScalar(r*o),pw.copy(i[2]).mulScalar(s*o),mw.copy(dw).add(fw).add(pw)}return aw.sub2(i[0],i[2]).lengthSq()<1e-8||aw.sub2(i[1],i[3]).lengthSq()<1e-8?-1:mw.sub(e).lengthSq()}(t.origin,t.end,r)},e.buildHitCorners=function(e,t,i){var n=t;if(e.entity&&e.entity.button){var s=e.entity.button.hitPadding||Cw;vw.copy(e.entity.up),yw.copy(vw).mulScalar(-1),Sw.copy(e.entity.right),xw.copy(Sw).mulScalar(-1),vw.mulScalar(s.w*i.y),yw.mulScalar(s.y*i.y),Sw.mulScalar(s.z*i.x),xw.mulScalar(s.x*i.x),bw.copy(n[0]).add(yw).add(xw),ww.copy(n[1]).add(yw).add(Sw),Tw.copy(n[2]).add(vw).add(Sw),Aw.copy(n[3]).add(vw).add(xw),n=[bw,ww,Tw,Aw]}if(i.x<0){var r=n[2].x,a=n[0].x;n[0].x=r,n[1].x=a,n[2].x=a,n[3].x=r}if(i.y<0){var o=n[2].y,h=n[0].y;n[0].y=o,n[1].y=o,n[2].y=h,n[3].y=h}if(i.z<0){var l=n[2].x,c=n[2].y,u=n[2].z;n[2].x=n[0].x,n[2].y=n[0].y,n[2].z=n[0].z,n[0].x=l,n[0].y=c,n[0].z=u}return n},e.calculateScaleToScreen=function(e){var t=e.entity,i=e.screen.screen.scale;for(gw.set(i,i,i);t&&!t.screen;)gw.mul(t.getLocalScale()),t=t.parent;return gw},e.calculateScaleToWorld=function(e){var t=e.entity;for(gw.set(1,1,1);t;)gw.mul(t.getLocalScale()),t=t.parent;return gw},y(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled=e}},{key:"app",get:function(){return this._app||Nd()},set:function(e){this._app=e}}]),e}(),Dw=new RegExp("^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^\\(\\s\\/]*)\\s*"),Ow=function(e){function t(t){var i;return(i=e.call(this)||this).app=void 0,i.entity=void 0,i._enabled=void 0,i._enabledOld=void 0,i._initialized=void 0,i._postInitialized=void 0,i.__destroyed=void 0,i.__attributes=void 0,i.__attributesRaw=void 0,i.__scriptType=void 0,i.__executionOrder=void 0,i.initScriptType(t),i}S(t,e);var i=t.prototype;return i.initScriptType=function(e){var t=this.constructor;this.app=e.app,this.entity=e.entity,this._enabled="boolean"!=typeof e.enabled||e.enabled,this._enabledOld=this.enabled,this.__destroyed=!1,this.__attributes={},this.__attributesRaw=e.attributes||{},this.__scriptType=t,this.__executionOrder=-1},t.__getScriptName=function(e){if("function"==typeof e){if("name"in Function.prototype)return e.name;if(e===Function||e===Function.prototype.constructor)return"Function";var t=(""+e).match(Dw);return t?t[1]:void 0}},i.__initializeAttributes=function(e){if(e||this.__attributesRaw){for(var t in this.__scriptType.attributes.index)this.__attributesRaw&&this.__attributesRaw.hasOwnProperty(t)?this[t]=this.__attributesRaw[t]:this.__attributes.hasOwnProperty(t)||(this.__scriptType.attributes.index[t].hasOwnProperty("default")?this[t]=this.__scriptType.attributes.index[t].default:this[t]=null);this.__attributesRaw=null}},t.extend=function(e){for(var t in e)e.hasOwnProperty(t)&&(this.prototype[t]=e[t])},y(t,[{key:"enabled",get:function(){return this._enabled&&!this._destroyed&&this.entity.script.enabled&&this.entity.enabled},set:function(e){this._enabled=!!e,this.enabled!==this._enabledOld&&(this._enabledOld=this.enabled,this.fire(this.enabled?"enable":"disable"),this.fire("state",this.enabled),!this._initialized&&this.enabled&&(this._initialized=!0,this.__initializeAttributes(!0),this.initialize&&this.entity.script._scriptMethod(this,vy)),this._initialized&&!this._postInitialized&&this.enabled&&!this.entity.script._beingEnabled&&(this._postInitialized=!0,this.postInitialize&&this.entity.script._scriptMethod(this,yy)))}}],[{key:"scriptName",get:function(){return this.__name}},{key:"attributes",get:function(){return this.hasOwnProperty("__attributes")||(this.__attributes=new gy(this)),this.__attributes}}]),t}(E);Ow.__name=null;var kw=new Set(["system","entity","create","destroy","swap","move","data","scripts","_scripts","_scriptsIndex","_scriptsData","enabled","_oldState","onEnable","onDisable","onPostStateChange","_onSetEnabled","_checkState","_onBeforeRemove","_onInitializeAttributes","_onInitialize","_onPostInitialize","_onUpdate","_onPostUpdate","_callbacks","_callbackActive","has","get","on","off","fire","once","hasEvent"]);function Fw(e,t){if(Wd.legacy)return null;if(kw.has(e))throw new Error("Script name '"+e+"' is reserved, please rename the script");var i=function(e){E.prototype.initEventHandler.call(this),Ow.prototype.initScriptType.call(this,e)};return(i.prototype=Object.create(Ow.prototype)).constructor=i,i.extend=Ow.extend,i.attributes=new gy(i),Uw(i,e,t),i}var Bw={};function Uw(e,t,i){if(!e.legacy){if("function"!=typeof e)throw new Error("script class: '"+e+"' must be a constructor function (i.e. class).");if(!(e.prototype instanceof Ow))throw new Error("script class: '"+Ow.__getScriptName(e)+"' does not extend pc.ScriptType.");if(t=t||e.__name||Ow.__getScriptName(e),kw.has(t))throw new Error("script name: '"+t+"' is reserved, please change script name");e.__name=t,(i?i.scripts:If.getApplication().scripts).add(e),Vd.push(e,e.legacy)}}gy.reservedNames.forEach((function(e,t,i){Bw[e]=1})),Fw.reservedAttributes=Bw;var Nw={write:function(e){console.log(e)},open:function(){Nw.write("Powered by PlayCanvas "+c+" "+u)},info:function(e){console.info("INFO: "+e)},debug:function(e){console.debug("DEBUG: "+e)},error:function(e){console.error("ERROR: "+e)},warning:function(e){console.warn("WARNING: "+e)},alert:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){Nw.write("ALERT: "+e),alert(e)})),assert:function(e,t){!1===e&&Nw.write("ASSERT: "+t)}};se.endsWith=function(e,t){return e.endsWith(t)},se.startsWith=function(e,t){return e.startsWith(t)};var zw=function(){function e(){this._isRunning=!1,this._a=0,this._b=0}var t=e.prototype;return t.start=function(){this._isRunning=!0,this._a=ue()},t.stop=function(){this._isRunning=!1,this._b=ue()},t.getMilliseconds=function(){return this._b-this._a},e}(),Vw={now:ue,Timer:zw};Object.defineProperty(me.prototype,"data",{get:function(){return this._data||(this._data=new Float32Array(4)),this._data[0]=this.r,this._data[1]=this.g,this._data[2]=this.b,this._data[3]=this.a,this._data}}),Object.defineProperty(me.prototype,"data3",{get:function(){return this._data3||(this._data3=new Float32Array(3)),this._data3[0]=this.r,this._data3[1]=this.g,this._data3[2]=this.b,this._data3}}),pe.INV_LOG2=Math.LOG2E,pe.intToBytes=pe.intToBytes32,pe.bytesToInt=pe.bytesToInt32,Object.defineProperty(Se.prototype,"data",{get:function(){return this._data||(this._data=new Float32Array(2)),this._data[0]=this.x,this._data[1]=this.y,this._data}}),Se.prototype.scale=Se.prototype.mulScalar,Object.defineProperty(ye.prototype,"data",{get:function(){return this._data||(this._data=new Float32Array(3)),this._data[0]=this.x,this._data[1]=this.y,this._data[2]=this.z,this._data}}),ye.prototype.scale=ye.prototype.mulScalar,Object.defineProperty(be.prototype,"data",{get:function(){return this._data||(this._data=new Float32Array(4)),this._data[0]=this.x,this._data[1]=this.y,this._data[2]=this.z,this._data[3]=this.w,this._data}}),be.prototype.scale=be.prototype.mulScalar;var Gw={Aabb:ke,Sphere:Ue,Plane:je};Ue.prototype.intersectRay=Ue.prototype.intersectsRay,Ne.prototype.update=function(e,t){var i=new Me;i.mul2(e,t),this.setFromMat4(i)};var Hw=oi;function Ww(e){this.name="UnsupportedBrowserError",this.message=e||""}function Xw(e){this.name="ContextCreationError",this.message=e||""}Ww.prototype=Error.prototype,Xw.prototype=Error.prototype;var jw={begin:go,dummyFragmentCode:Hs.dummyFragmentCode,end:vo,fogCode:mo,gammaCode:fo,precisionCode:Hs.precisionCode,skinCode:_o,tonemapCode:po,versionCode:Hs.versionCode},qw={ADDRESS_CLAMP_TO_EDGE:1,ADDRESS_MIRRORED_REPEAT:2,ADDRESS_REPEAT:0,BLENDMODE_ZERO:0,BLENDMODE_ONE:1,BLENDMODE_SRC_COLOR:2,BLENDMODE_ONE_MINUS_SRC_COLOR:3,BLENDMODE_DST_COLOR:4,BLENDMODE_ONE_MINUS_DST_COLOR:5,BLENDMODE_SRC_ALPHA:6,BLENDMODE_SRC_ALPHA_SATURATE:7,BLENDMODE_ONE_MINUS_SRC_ALPHA:8,BLENDMODE_DST_ALPHA:9,BLENDMODE_ONE_MINUS_DST_ALPHA:10,BUFFER_STATIC:0,BUFFER_DYNAMIC:1,BUFFER_STREAM:2,CULLFACE_NONE:Ze,CULLFACE_BACK:1,CULLFACE_FRONT:2,CULLFACE_FRONTANDBACK:3,ELEMENTTYPE_INT8:0,ELEMENTTYPE_UINT8:oi,ELEMENTTYPE_INT16:2,ELEMENTTYPE_UINT16:3,ELEMENTTYPE_INT32:4,ELEMENTTYPE_UINT32:5,ELEMENTTYPE_FLOAT32:6,FILTER_NEAREST:0,FILTER_LINEAR:1,FILTER_NEAREST_MIPMAP_NEAREST:2,FILTER_NEAREST_MIPMAP_LINEAR:3,FILTER_LINEAR_MIPMAP_NEAREST:4,FILTER_LINEAR_MIPMAP_LINEAR:5,INDEXFORMAT_UINT8:0,INDEXFORMAT_UINT16:1,INDEXFORMAT_UINT32:2,PIXELFORMAT_RGB565:3,PIXELFORMAT_RGB8:6,PIXELFORMAT_RGBA8:7,PRIMITIVE_POINTS:0,PRIMITIVE_LINES:1,PRIMITIVE_LINELOOP:2,PRIMITIVE_LINESTRIP:3,PRIMITIVE_TRIANGLES:4,PRIMITIVE_TRISTRIP:pt,PRIMITIVE_TRIFAN:6,SEMANTIC_POSITION:mt,SEMANTIC_NORMAL:_t,SEMANTIC_COLOR:xt,SEMANTIC_TEXCOORD:St,SEMANTIC_TEXCOORD0:bt,SEMANTIC_TEXCOORD1:wt,SEMANTIC_ATTR0:It,SEMANTIC_ATTR1:Lt,SEMANTIC_ATTR2:Dt,SEMANTIC_ATTR3:Ot,TEXTURELOCK_READ:1,TEXTURELOCK_WRITE:2,drawQuadWithShader:ho,programlib:jw,shaderChunks:Za,ContextCreationError:Xw,Device:Hi,IndexBuffer:$s,ProgramLibrary:Dd,RenderTarget:Xi,ScopeId:Li,Shader:es,ShaderInput:ws,Texture:ys,UnsupportedBrowserError:Ww,VertexBuffer:ki,VertexFormat:zi,VertexIterator:fr},Yw=new be;function Kw(e,t,i,n,s){var r;if(s){var a=t?t.width:e.width,o=t?t.height:e.height;r=Yw.set(s.x*a,s.y*o,s.z*a,s.w*o)}ho(e,t,n,r)}var Zw={createFullscreenQuad:function(e){return e.quadVertexBuffer},drawFullscreenQuad:Kw,PostEffect:Pd,PostEffectQueue:ny};Object.defineProperty(Za,"transformSkinnedVS",{get:function(){return"#define SKIN\n"+Za.transformVS}});Object.keys({"ambientPrefilteredCube.frag":"ambientEnv.frag","ambientPrefilteredCubeLod.frag":"ambientEnv.frag","dpAtlasQuad.frag":null,"genParaboloid.frag":null,"prefilterCubemap.frag":null,"reflectionDpAtlas.frag":"reflectionEnv.frag","reflectionPrefilteredCube.frag":"reflectionEnv.frag","reflectionPrefilteredCubeLod.frag":"reflectionEnv.frag"}).forEach((function(e){Object.defineProperty(Za,e,{get:function(){return null},set:function(){}})})),Object.defineProperties(Xi.prototype,{_glFrameBuffer:{get:function(){return this.impl._glFrameBuffer},set:function(e){}}}),Object.defineProperty(zi,"defaultInstancingFormat",{get:function(){return zi.getDefaultInstancingFormat(Ta.get())}}),Object.defineProperties(ys.prototype,{rgbm:{get:function(){return this.type===Yt},set:function(e){this.type=e?Yt:qt}},swizzleGGGR:{get:function(){return this.type===Qt},set:function(e){this.type=e?Qt:qt}},_glTexture:{get:function(){return this.impl._glTexture}},autoMipmap:{get:function(){return this._mipmaps},set:function(e){this._mipmaps=e}}}),Hi.prototype.getProgramLibrary=function(){return $a(this)},Hi.prototype.setProgramLibrary=function(e){Ja(this,e)},Hi.prototype.removeShaderFromCache=function(e){$a(this).removeFromCache(e)},Ei.DEFAULT=Object.freeze(new Ei);var Qw=new Ei,$w=new Mi;Hi.prototype.setBlendFunction=function(e,t){var i=this.blendState;Qw.copy(i),Qw.setColorBlend(i.colorOp,e,t),Qw.setAlphaBlend(i.alphaOp,e,t),this.setBlendState(Qw)},Hi.prototype.setBlendFunctionSeparate=function(e,t,i,n){var s=this.blendState;Qw.copy(s),Qw.setColorBlend(s.colorOp,e,t),Qw.setAlphaBlend(s.alphaOp,i,n),this.setBlendState(Qw)},Hi.prototype.setBlendEquation=function(e){var t=this.blendState;Qw.copy(t),Qw.setColorBlend(e,t.colorSrcFactor,t.colorDstFactor),Qw.setAlphaBlend(e,t.alphaSrcFactor,t.alphaDstFactor),this.setBlendState(Qw)},Hi.prototype.setBlendEquationSeparate=function(e,t){var i=this.blendState;Qw.copy(i),Qw.setColorBlend(e,i.colorSrcFactor,i.colorDstFactor),Qw.setAlphaBlend(t,i.alphaSrcFactor,i.alphaDstFactor),this.setBlendState(Qw)},Hi.prototype.setColorWrite=function(e,t,i,n){var s=this.blendState;Qw.copy(s),Qw.setColorWrite(e,t,i,n),this.setBlendState(Qw)},Hi.prototype.getBlending=function(){return this.blendState.blend},Hi.prototype.setBlending=function(e){Qw.copy(this.blendState),Qw.blend=e,this.setBlendState(Qw)},Hi.prototype.setDepthWrite=function(e){$w.copy(this.depthState),$w.write=e,this.setDepthState($w)},Hi.prototype.setDepthFunc=function(e){$w.copy(this.depthState),$w.func=e,this.setDepthState($w)},Hi.prototype.setDepthTest=function(e){$w.copy(this.depthState),$w.test=e,this.setDepthState($w)},Hi.prototype.getCullMode=function(){return this.cullMode};var Jw=Ac,eT=_h,tT={partitionSkin:dS,procedural:{calculateTangents:Da,createMesh:Oa,createTorus:ka,createCylinder:Ba,createCapsule:Ua,createCone:Na,createSphere:za,createPlane:Va,createBox:Ga},BasicMaterial:Ao,Command:eh,ForwardRenderer:qc,GraphNode:jo,Material:To,Mesh:Ma,MeshInstance:th,Model:fu,ParticleEmitter:ld,PhongMaterial:Ac,Picker:$b,Projection:{ORTHOGRAPHIC:1,PERSPECTIVE:0},Scene:gd,Skin:vd,SkinInstance:Po};function iT(e,t){Object.defineProperty(Ac.prototype,t,{get:function(){return this[e]},set:function(t){this[e]=t}})}function nT(e,t){"pass"!==e&&Object.defineProperty(hc.prototype,e,{get:function(){return this.litOptions[t||e]},set:function(i){this.litOptions[t||e]=i}})}Object.defineProperty(gd.prototype,"defaultMaterial",{get:function(){return So(Nd().graphicsDevice)}}),["128","64","32","16","8","4"].forEach((function(e,t){Object.defineProperty(gd.prototype,"skyboxPrefiltered"+e,{get:function(){return this._prefilteredCubemaps[t]},set:function(e){this._prefilteredCubemaps[t]=e,this.updateShaders=!0}})})),Object.defineProperty(gd.prototype,"models",{get:function(){return this._models||(this._models=[]),this._models}}),Object.defineProperty(zc.prototype,"renderTarget",{set:function(e){this._renderTarget=e,this._dirtyCameras=!0},get:function(){return this._renderTarget}}),gd.prototype._updateSkybox=function(e){this._updateSky(e)},gd.prototype.addModel=function(e){if(!this.containsModel(e)){var t=this.layers.getLayerById(0);t&&(t.addMeshInstances(e.meshInstances),this.models.push(e))}},gd.prototype.addShadowCaster=function(e){var t=this.layers.getLayerById(0);t&&t.addShadowCasters(e.meshInstances)},gd.prototype.removeModel=function(e){var t=this.models.indexOf(e);if(-1!==t){var i=this.layers.getLayerById(0);if(!i)return;i.removeMeshInstances(e.meshInstances),this.models.splice(t,1)}},gd.prototype.removeShadowCasters=function(e){var t=this.layers.getLayerById(0);t&&t.removeShadowCasters(e.meshInstances)},gd.prototype.containsModel=function(e){return this.models.indexOf(e)>=0},gd.prototype.getModels=function(e){return this.models},Object.defineProperty(Co.prototype,"model",{get:function(){return null}}),qc.prototype.renderComposition=function(e){Nd().renderComposition(e)},qc.prototype.updateShader=function(e,t,i,n,s){var r=e.material._scene||Nd().scene;return e.updatePassShader(r,n,s)},th.prototype.syncAabb=function(){},pu.prototype.getTarget=function(e){return this.targets[e]},jo.prototype._dirtify=function(e){e?this._dirtifyLocal():this._dirtifyWorld()},jo.prototype.addLabel=function(e){this._labels[e]=!0},jo.prototype.getLabels=function(){return Object.keys(this._labels)},jo.prototype.hasLabel=function(e){return!!this._labels[e]},jo.prototype.removeLabel=function(e){delete this._labels[e]},jo.prototype.findByLabel=function(e,t){void 0===t&&(t=[]),this.hasLabel(e)&&t.push(this);for(var i=0;i