@carto/ps-react-maps 4.3.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ (function(){"use strict";const ge=Math.PI,_s=ge/4,Rr=180/ge,Or=512;function Gr(l){const[o,h]=l,c=o/Or*(2*ge)-ge,g=2*(Math.atan(Math.exp(h/Or*(2*ge)-ge))-_s);return[c*Rr,g*Rr]}var Ds=Math.PI/180,Ms=180/Math.PI;function Nr(l){var o=Ur(l[0]+1,l[2]),h=Ur(l[0],l[2]),c=zr(l[1]+1,l[2]),g=zr(l[1],l[2]);return[h,c,o,g]}function Ps(l){var o=Nr(l),h={type:"Polygon",coordinates:[[[o[0],o[1]],[o[0],o[3]],[o[2],o[3]],[o[2],o[1]],[o[0],o[1]]]]};return h}function Ur(l,o){return l/Math.pow(2,o)*360-180}function zr(l,o){var h=Math.PI-2*Math.PI*l/Math.pow(2,o);return Ms*Math.atan(.5*(Math.exp(h)-Math.exp(-h)))}function Tt(l,o,h){var c=Wr(l,o,h);return c[0]=Math.floor(c[0]),c[1]=Math.floor(c[1]),c}function Yr(l){return[[l[0]*2,l[1]*2,l[2]+1],[l[0]*2+1,l[1]*2,l[2]+1],[l[0]*2+1,l[1]*2+1,l[2]+1],[l[0]*2,l[1]*2+1,l[2]+1]]}function Vr(l){return l[0]%2===0&&l[1]%2===0?[l[0]/2,l[1]/2,l[2]-1]:l[0]%2===0&&!l[1]%2===0?[l[0]/2,(l[1]-1)/2,l[2]-1]:!l[0]%2===0&&l[1]%2===0?[(l[0]-1)/2,l[1]/2,l[2]-1]:[(l[0]-1)/2,(l[1]-1)/2,l[2]-1]}function Hr(l){return Yr(Vr(l))}function ds(l,o){for(var h=Hr(l),c=0;c<h.length;c++)if(!jr(o,h[c]))return!1;return!0}function jr(l,o){for(var h=0;h<l.length;h++)if(qr(l[h],o))return!0;return!1}function qr(l,o){return l[0]===o[0]&&l[1]===o[1]&&l[2]===o[2]}function Ts(l){for(var o="",h=l[2];h>0;h--){var c=0,g=1<<h-1;(l[0]&g)!==0&&c++,(l[1]&g)!==0&&(c+=2),o+=c.toString()}return o}function xs(l){for(var o=0,h=0,c=l.length,g=c;g>0;g--){var v=1<<g-1;switch(l[c-g]){case"0":break;case"1":o|=v;break;case"2":h|=v;break;case"3":o|=v,h|=v;break}}return[o,h,c]}function Qs(l){var o=Tt(l[0],l[1],32),h=Tt(l[2],l[3],32),c=[o[0],o[1],h[0],h[1]],g=Is(c);if(g===0)return[0,0,0];var v=c[0]>>>32-g,m=c[1]>>>32-g;return[v,m,g]}function Is(l){for(var o=28,h=0;h<o;h++){var c=1<<32-(h+1);if((l[0]&c)!=(l[2]&c)||(l[1]&c)!=(l[3]&c))return h}return o}function Wr(l,o,h){var c=Math.sin(o*Ds),g=Math.pow(2,h),v=g*(l/360+.5),m=g*(.5-.25*Math.log((1+c)/(1-c))/Math.PI);return[v,m,h]}var At={tileToGeoJSON:Ps,tileToBBOX:Nr,getChildren:Yr,getParent:Vr,getSiblings:Hr,hasTile:jr,hasSiblings:ds,tilesEqual:qr,tileToQuadkey:Ts,quadkeyToTile:xs,pointToTile:Tt,bboxToTile:Qs,pointToTileFraction:Wr},Ss=Ls;function Ls(l,o){var h,c,g=l.coordinates,v=o.max_zoom,m={},E=[];if(l.type==="Point")return[At.pointToTile(g[0],g[1],v)];if(l.type==="MultiPoint")for(h=0;h<g.length;h++)c=At.pointToTile(g[h][0],g[h][1],v),m[I0(c[0],c[1],c[2])]=!0;else if(l.type==="LineString")xt(m,g,v);else if(l.type==="MultiLineString")for(h=0;h<g.length;h++)xt(m,g[h],v);else if(l.type==="Polygon")Zr(m,E,g,v);else if(l.type==="MultiPolygon")for(h=0;h<g.length;h++)Zr(m,E,g[h],v);else throw new Error("Geometry type not implemented");if(o.min_zoom!==v){var D=E.length;for(Kr(m,E),h=0;h<D;h++){var C=E[h];m[I0(C[0],C[1],C[2])]=!0}return Fs(m,E,o)}return Kr(m,E),E}function Fs(l,o,h){for(var c=[],g=h.max_zoom;g>h.min_zoom;g--){for(var v={},m=[],E=0;E<o.length;E++){var D=o[E];if(D[0]%2===0&&D[1]%2===0){var C=I0(D[0]+1,D[1],g),S=I0(D[0],D[1]+1,g),Q=I0(D[0]+1,D[1]+1,g);if(l[C]&&l[S]&&l[Q]){l[I0(D[0],D[1],D[2])]=!1,l[C]=!1,l[S]=!1,l[Q]=!1;var V=[D[0]/2,D[1]/2,g-1];g-1===h.min_zoom?c.push(V):(v[I0(D[0]/2,D[1]/2,g-1)]=!0,m.push(V))}}}for(E=0;E<o.length;E++)D=o[E],l[I0(D[0],D[1],D[2])]&&c.push(D);l=v,o=m}return c}function Zr(l,o,h,c){for(var g=[],v=0;v<h.length;v++){var m=[];xt(l,h[v],c,m);for(var E=0,D=m.length,C=D-1;E<D;C=E++){var S=(E+1)%D,Q=m[E][1];(Q>m[C][1]||Q>m[S][1])&&(Q<m[C][1]||Q<m[S][1])&&Q!==m[S][1]&&g.push(m[E])}}for(g.sort(Rs),v=0;v<g.length;v+=2){Q=g[v][1];for(var V=g[v][0]+1;V<g[v+1][0];V++){var K=I0(V,Q,c);l[K]||o.push([V,Q,c])}}}function Rs(l,o){return l[1]-o[1]||l[0]-o[0]}function xt(l,o,h,c){for(var g,v,m=0;m<o.length-1;m++){var E=At.pointToTileFraction(o[m][0],o[m][1],h),D=At.pointToTileFraction(o[m+1][0],o[m+1][1],h),C=E[0],S=E[1],Q=D[0],V=D[1],K=Q-C,tA=V-S;if(!(tA===0&&K===0)){var oA=K>0?1:-1,wA=tA>0?1:-1,hA=Math.floor(C),J=Math.floor(S),FA=K===0?1/0:Math.abs(((K>0?1:0)+hA-C)/K),LA=tA===0?1/0:Math.abs(((tA>0?1:0)+J-S)/tA),YA=Math.abs(oA/K),OA=Math.abs(wA/tA);for((hA!==g||J!==v)&&(l[I0(hA,J,h)]=!0,c&&J!==v&&c.push([hA,J]),g=hA,v=J);FA<1||LA<1;)FA<LA?(FA+=YA,hA+=oA):(LA+=OA,J+=wA),l[I0(hA,J,h)]=!0,c&&J!==v&&c.push([hA,J]),g=hA,v=J}}c&&J===c[0][1]&&c.pop()}function Kr(l,o){for(var h=Object.keys(l),c=0;c<h.length;c++)o.push(Os(+h[c]))}function I0(l,o,h){var c=2*(1<<h);return(c*o+l)*32+h}function Os(l){var o=l%32,h=2*(1<<o),c=(l-o)/32,g=c%h,v=(c-g)/h%h;return[g,v,o]}const Jr=[0x5555555555555555n,0x3333333333333333n,0x0f0f0f0f0f0f0f0fn,0x00ff00ff00ff00ffn,0x0000ffff0000ffffn,0x00000000ffffffffn],Xr=[0n,1n,2n,4n,8n,16n],$r=512;function Gs(l){const{x:o,y:h,z:c}=ei(l),g=$r/(1<<c);return[o*g,$r-h*g,g]}function Ns(l,o){const[h,c,g]=Gs(l);return[[h,c],[h+o*g,c-o*g]]}function Us(l,o=1){const[h,c]=Ns(l,o),[g,v]=Gr(h),[m,E]=Gr(c);return[m,v,m,E,g,E,g,v,m,v]}function Ai(l){if(l.z<0||l.z>26)throw new Error("Wrong zoom");const o=BigInt(l.z);let h=BigInt(l.x)<<32n-o,c=BigInt(l.y)<<32n-o;for(let v=0;v<5;v++){const m=Xr[5-v],E=Jr[4-v];h=(h|h<<m)&E,c=(c|c<<m)&E}return 0x4000000000000000n|1n<<59n|o<<52n|(h|c<<1n)>>12n|0xfffffffffffffn>>o*2n}function ei(l){const o=l>>59n&7n,h=l>>57n&3n,c=l>>52n&0x1fn,g=(l&0xfffffffffffffn)<<12n;if(o!==1n&&h!==0n)throw new Error("Wrong mode");let v=g,m=g>>1n;for(let E=0;E<6;E++){const D=Xr[E],C=Jr[E];v=(v|v>>D)&C,m=(m|m>>D)&C}return v=v>>32n-c,m=m>>32n-c,{z:Number(c),x:Number(v),y:Number(m)}}function ti(l){return l>>52n&0x1fn}function zs(l,o){const h=Number(o);return Ss(l,{min_zoom:h,max_zoom:h}).map(([c,g,v])=>Ai({x:c,y:g,z:v}))}function Ys(l){const o=Us(l);return{type:"Polygon",coordinates:[[[o[0],o[1]],[o[2],o[3]],[o[4],o[5]],[o[6],o[7]],[o[0],o[1]]]]}}var ZA=(function(l){l=l||{};var o=typeof l<"u"?l:{},h={},c;for(c in o)o.hasOwnProperty(c)&&(h[c]=o[c]);var g="";function v(Z){return o.locateFile?o.locateFile(Z,g):g+Z}var m;typeof document<"u"&&document.currentScript&&(g=document.currentScript.src),g.indexOf("blob:")!==0?g=g.substr(0,g.lastIndexOf("/")+1):g="",m=function(X,lA,AA){var e=new XMLHttpRequest;e.open("GET",X,!0),e.responseType="arraybuffer",e.onload=function(){if(e.status==200||e.status==0&&e.response){lA(e.response);return}var NA=sr(X);if(NA){lA(NA.buffer);return}AA()},e.onerror=AA,e.send(null)};var E=o.print||console.log.bind(console),D=o.printErr||console.warn.bind(console);for(c in h)h.hasOwnProperty(c)&&(o[c]=h[c]);h=null,o.arguments&&o.arguments;var C=0,S=function(Z){C=Z},Q=function(){return C},V=8;function K(Z,X,lA,AA){switch(lA=lA||"i8",lA.charAt(lA.length-1)==="*"&&(lA="i32"),lA){case"i1":F[Z>>0]=X;break;case"i8":F[Z>>0]=X;break;case"i16":W[Z>>1]=X;break;case"i32":R[Z>>2]=X;break;case"i64":nr=[X>>>0,(ke=X,+E0(ke)>=1?ke>0?(kf(+$A(ke/4294967296),4294967295)|0)>>>0:~~+u0((ke-+(~~ke>>>0))/4294967296)>>>0:0)],R[Z>>2]=nr[0],R[Z+4>>2]=nr[1];break;case"float":z[Z>>2]=X;break;case"double":q[Z>>3]=X;break;default:be("invalid type for setValue: "+lA)}}function tA(Z,X,lA){switch(X=X||"i8",X.charAt(X.length-1)==="*"&&(X="i32"),X){case"i1":return F[Z>>0];case"i8":return F[Z>>0];case"i16":return W[Z>>1];case"i32":return R[Z>>2];case"i64":return R[Z>>2];case"float":return z[Z>>2];case"double":return q[Z>>3];default:be("invalid type for getValue: "+X)}return null}var oA=!1;function wA(Z,X){Z||be("Assertion failed: "+X)}function hA(Z){var X=o["_"+Z];return wA(X,"Cannot call unknown function "+Z+", make sure it is exported"),X}function J(Z,X,lA,AA,e){var y={string:function(IA){var d0=0;if(IA!=null&&IA!==0){var Et=(IA.length<<2)+1;d0=Dn(Et),_(IA,d0,Et)}return d0},array:function(IA){var d0=Dn(IA.length);return T(IA,d0),d0}};function NA(IA){return X==="string"?OA(IA):X==="boolean"?!!IA:IA}var HA=hA(Z),s0=[],QA=0;if(AA)for(var UA=0;UA<AA.length;UA++){var J0=y[lA[UA]];J0?(QA===0&&(QA=Of()),s0[UA]=J0(AA[UA])):s0[UA]=AA[UA]}var zA=HA.apply(null,s0);return zA=NA(zA),QA!==0&&Rf(QA),zA}function FA(Z,X,lA,AA){lA=lA||[];var e=lA.every(function(NA){return NA==="number"}),y=X!=="string";return y&&e&&!AA?hA(Z):function(){return J(Z,X,lA,arguments)}}var LA=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function YA(Z,X,lA){for(var AA=X+lA,e=X;Z[e]&&!(e>=AA);)++e;if(e-X>16&&Z.subarray&&LA)return LA.decode(Z.subarray(X,e));for(var y="";X<e;){var NA=Z[X++];if(!(NA&128)){y+=String.fromCharCode(NA);continue}var HA=Z[X++]&63;if((NA&224)==192){y+=String.fromCharCode((NA&31)<<6|HA);continue}var s0=Z[X++]&63;if((NA&240)==224?NA=(NA&15)<<12|HA<<6|s0:NA=(NA&7)<<18|HA<<12|s0<<6|Z[X++]&63,NA<65536)y+=String.fromCharCode(NA);else{var QA=NA-65536;y+=String.fromCharCode(55296|QA>>10,56320|QA&1023)}}return y}function OA(Z,X){return Z?YA(N,Z,X):""}function XA(Z,X,lA,AA){if(!(AA>0))return 0;for(var e=lA,y=lA+AA-1,NA=0;NA<Z.length;++NA){var HA=Z.charCodeAt(NA);if(HA>=55296&&HA<=57343){var s0=Z.charCodeAt(++NA);HA=65536+((HA&1023)<<10)|s0&1023}if(HA<=127){if(lA>=y)break;X[lA++]=HA}else if(HA<=2047){if(lA+1>=y)break;X[lA++]=192|HA>>6,X[lA++]=128|HA&63}else if(HA<=65535){if(lA+2>=y)break;X[lA++]=224|HA>>12,X[lA++]=128|HA>>6&63,X[lA++]=128|HA&63}else{if(lA+3>=y)break;X[lA++]=240|HA>>18,X[lA++]=128|HA>>12&63,X[lA++]=128|HA>>6&63,X[lA++]=128|HA&63}}return X[lA]=0,lA-e}function _(Z,X,lA){return XA(Z,N,X,lA)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function T(Z,X){F.set(Z,X)}function x(Z,X){return Z%X>0&&(Z+=X-Z%X),Z}var Y,F,N,W,R,z,q;function H(Z){Y=Z,o.HEAP8=F=new Int8Array(Z),o.HEAP16=W=new Int16Array(Z),o.HEAP32=R=new Int32Array(Z),o.HEAPU8=N=new Uint8Array(Z),o.HEAPU16=new Uint16Array(Z),o.HEAPU32=new Uint32Array(Z),o.HEAPF32=z=new Float32Array(Z),o.HEAPF64=q=new Float64Array(Z)}var eA=5271520,pA=28608,EA=o.TOTAL_MEMORY||33554432;o.buffer?Y=o.buffer:Y=new ArrayBuffer(EA),EA=Y.byteLength,H(Y),R[pA>>2]=eA;function RA(Z){for(;Z.length>0;){var X=Z.shift();if(typeof X=="function"){X();continue}var lA=X.func;typeof lA=="number"?X.arg===void 0?o.dynCall_v(lA):o.dynCall_vi(lA,X.arg):lA(X.arg===void 0?null:X.arg)}}var KA=[],e0=[],GA=[],VA=[];function n0(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)P0(o.preRun.shift());RA(KA)}function Be(){RA(e0)}function ze(){RA(GA)}function Ye(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)oe(o.postRun.shift());RA(VA)}function P0(Z){KA.unshift(Z)}function oe(Z){VA.unshift(Z)}var E0=Math.abs,u0=Math.ceil,$A=Math.floor,kf=Math.min,le=0,Ve=null;function bf(Z){le++,o.monitorRunDependencies&&o.monitorRunDependencies(le)}function Cf(Z){if(le--,o.monitorRunDependencies&&o.monitorRunDependencies(le),le==0&&Ve){var X=Ve;Ve=null,X()}}o.preloadedImages={},o.preloadedAudios={};var H0=null,ir="data:application/octet-stream;base64,";function Cn(Z){return String.prototype.startsWith?Z.startsWith(ir):Z.indexOf(ir)===0}var ke,nr;H0="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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Zhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";var _f=28624;function Df(Z,X,lA,AA){be("Assertion failed: "+OA(Z)+", at: "+[X?OA(X):"unknown filename",lA,AA?OA(AA):"unknown function"])}function _n(){return F.length}function Mf(Z,X,lA){N.set(N.subarray(X,X+lA),Z)}function Pf(Z){return o.___errno_location&&(R[o.___errno_location()>>2]=Z),Z}function df(Z){be("OOM")}function Tf(Z){try{var X=new ArrayBuffer(Z);return X.byteLength!=Z?void 0:(new Int8Array(X).set(F),Ff(X),H(X),1)}catch{}}function xf(Z){var X=_n(),lA=16777216,AA=2147483648-lA;if(Z>AA)return!1;for(var e=16777216,y=Math.max(X,e);y<Z;)y<=536870912?y=x(2*y,lA):y=Math.min(x((3*y+2147483648)/4,lA),AA);var NA=Tf(y);return!!NA}var Qf=typeof atob=="function"?atob:function(Z){var X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",lA="",AA,e,y,NA,HA,s0,QA,UA=0;Z=Z.replace(/[^A-Za-z0-9\+\/\=]/g,"");do NA=X.indexOf(Z.charAt(UA++)),HA=X.indexOf(Z.charAt(UA++)),s0=X.indexOf(Z.charAt(UA++)),QA=X.indexOf(Z.charAt(UA++)),AA=NA<<2|HA>>4,e=(HA&15)<<4|s0>>2,y=(s0&3)<<6|QA,lA=lA+String.fromCharCode(AA),s0!==64&&(lA=lA+String.fromCharCode(e)),QA!==64&&(lA=lA+String.fromCharCode(y));while(UA<Z.length);return lA};function If(Z){try{for(var X=Qf(Z),lA=new Uint8Array(X.length),AA=0;AA<X.length;++AA)lA[AA]=X.charCodeAt(AA);return lA}catch{throw new Error("Converting base64 string to bytes failed.")}}function sr(Z){if(Cn(Z))return If(Z.slice(ir.length))}var Sf={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},Lf={b:S,c:Q,d:Df,e:Pf,f:_n,g:Mf,h:xf,i:df,o:_f,p:pA},rA=(function(Z,X,lA){"almost asm";var AA=new Z.Int8Array(lA),e=new Z.Int32Array(lA);new Z.Uint8Array(lA),new Z.Float32Array(lA);var y=new Z.Float64Array(lA),NA=X.o|0,HA=X.p|0,s0=Z.Math.floor,QA=Z.Math.abs,UA=Z.Math.sqrt,J0=Z.Math.pow,zA=Z.Math.cos,IA=Z.Math.sin,d0=Z.Math.tan,Et=Z.Math.acos,Gf=Z.Math.asin,fr=Z.Math.atan,T0=Z.Math.atan2,Ce=Z.Math.ceil,O0=Z.Math.imul,ur=Z.Math.min,Nf=Z.Math.max,j0=Z.Math.clz32,MA=X.b,b=X.c,kA=X.d,Tn=X.e,Uf=X.f,zf=X.g,Yf=X.h,Vf=X.i,B=28640;function Hf(A){return AA=new Int8Array(A),e=new Int32Array(A),y=new Float64Array(A),lA=A,!0}function jf(A){A=A|0;var t=0;return t=B,B=B+A|0,B=B+15&-16,t|0}function qf(){return B|0}function Wf(A){A=A|0,B=A}function Zf(A,t){A=A|0,B=A}function Kf(A,t){A=A|0,t=t|0;var r=0,i=0,n=0;return(A|0)<0?(t=2,t|0):(A|0)>13780509?(t=Ct(15,t)|0,t|0):(r=((A|0)<0)<<31>>31,n=l0(A|0,r|0,3,0)|0,i=b()|0,r=vA(A|0,r|0,1,0)|0,r=l0(n|0,i|0,r|0,b()|0)|0,r=vA(r|0,b()|0,1,0)|0,A=b()|0,e[t>>2]=r,e[t+4>>2]=A,t=0,t|0)}function xn(A,t,r,i){return A=A|0,t=t|0,r=r|0,i=i|0,Qn(A,t,r,i,0)|0}function Qn(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0;if(a=B,B=B+16|0,f=a,!(In(A,t,r,i,n)|0))return i=0,B=a,i|0;do if((r|0)>=0){if((r|0)>13780509){if(s=Ct(15,f)|0,s|0)break;u=f,f=e[u>>2]|0,u=e[u+4>>2]|0}else s=((r|0)<0)<<31>>31,w=l0(r|0,s|0,3,0)|0,u=b()|0,s=vA(r|0,s|0,1,0)|0,s=l0(w|0,u|0,s|0,b()|0)|0,s=vA(s|0,b()|0,1,0)|0,u=b()|0,e[f>>2]=s,e[f+4>>2]=u,f=s;if(te(i|0,0,f<<3|0)|0,n|0){te(n|0,0,f<<2|0)|0,s=G0(A,t,r,i,n,f,u,0)|0;break}s=B0(f,4)|0,s?(w=G0(A,t,r,i,s,f,u,0)|0,mA(s),s=w):s=13}else s=2;while(!1);return w=s,B=a,w|0}function In(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0;if(I=B,B=B+16|0,P=I,d=I+8|0,M=P,e[M>>2]=A,e[M+4>>2]=t,(r|0)<0)return d=2,B=I,d|0;if(s=i,e[s>>2]=A,e[s+4>>2]=t,s=(n|0)!=0,s&&(e[n>>2]=0),WA(A,t)|0)return d=9,B=I,d|0;e[d>>2]=0;A:do if((r|0)>=1)if(s)for(p=1,w=0,k=0,M=1,s=A;;){if(!(w|k)){if(s=o0(s,t,4,d,P)|0,s|0)break A;if(t=P,s=e[t>>2]|0,t=e[t+4>>2]|0,WA(s,t)|0){s=9;break A}}if(s=o0(s,t,e[26800+(k<<2)>>2]|0,d,P)|0,s|0)break A;if(t=P,s=e[t>>2]|0,t=e[t+4>>2]|0,A=i+(p<<3)|0,e[A>>2]=s,e[A+4>>2]=t,e[n+(p<<2)>>2]=M,A=w+1|0,f=(A|0)==(M|0),u=k+1|0,a=(u|0)==6,WA(s,t)|0){s=9;break A}if(M=M+(a&f&1)|0,(M|0)>(r|0)){s=0;break}else p=p+1|0,w=f?0:A,k=f?a?0:u:k}else for(p=1,w=0,k=0,M=1,s=A;;){if(!(w|k)){if(s=o0(s,t,4,d,P)|0,s|0)break A;if(t=P,s=e[t>>2]|0,t=e[t+4>>2]|0,WA(s,t)|0){s=9;break A}}if(s=o0(s,t,e[26800+(k<<2)>>2]|0,d,P)|0,s|0)break A;if(t=P,s=e[t>>2]|0,t=e[t+4>>2]|0,A=i+(p<<3)|0,e[A>>2]=s,e[A+4>>2]=t,A=w+1|0,f=(A|0)==(M|0),u=k+1|0,a=(u|0)==6,WA(s,t)|0){s=9;break A}if(M=M+(a&f&1)|0,(M|0)>(r|0)){s=0;break}else p=p+1|0,w=f?0:A,k=f?a?0:u:k}else s=0;while(!1);return d=s,B=I,d|0}function G0(A,t,r,i,n,s,f,u){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,s=s|0,f=f|0,u=u|0;var a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0;if(I=B,B=B+16|0,P=I+8|0,d=I,a=Te(A|0,t|0,s|0,f|0)|0,p=b()|0,k=i+(a<<3)|0,O=k,j=e[O>>2]|0,O=e[O+4>>2]|0,w=(j|0)==(A|0)&(O|0)==(t|0),!((j|0)==0&(O|0)==0|w))do a=vA(a|0,p|0,1,0)|0,a=de(a|0,b()|0,s|0,f|0)|0,p=b()|0,k=i+(a<<3)|0,j=k,O=e[j>>2]|0,j=e[j+4>>2]|0,w=(O|0)==(A|0)&(j|0)==(t|0);while(!((O|0)==0&(j|0)==0|w));if(a=n+(a<<2)|0,w&&(e[a>>2]|0)<=(u|0)||(j=k,e[j>>2]=A,e[j+4>>2]=t,e[a>>2]=u,(u|0)>=(r|0)))return j=0,B=I,j|0;switch(w=u+1|0,e[P>>2]=0,a=o0(A,t,2,P,d)|0,a|0){case 9:{M=9;break}case 0:{a=d,a=G0(e[a>>2]|0,e[a+4>>2]|0,r,i,n,s,f,w)|0,a||(M=9);break}}A:do if((M|0)==9){switch(e[P>>2]=0,a=o0(A,t,3,P,d)|0,a|0){case 9:break;case 0:{if(a=d,a=G0(e[a>>2]|0,e[a+4>>2]|0,r,i,n,s,f,w)|0,a|0)break A;break}default:break A}switch(e[P>>2]=0,a=o0(A,t,1,P,d)|0,a|0){case 9:break;case 0:{if(a=d,a=G0(e[a>>2]|0,e[a+4>>2]|0,r,i,n,s,f,w)|0,a|0)break A;break}default:break A}switch(e[P>>2]=0,a=o0(A,t,5,P,d)|0,a|0){case 9:break;case 0:{if(a=d,a=G0(e[a>>2]|0,e[a+4>>2]|0,r,i,n,s,f,w)|0,a|0)break A;break}default:break A}switch(e[P>>2]=0,a=o0(A,t,4,P,d)|0,a|0){case 9:break;case 0:{if(a=d,a=G0(e[a>>2]|0,e[a+4>>2]|0,r,i,n,s,f,w)|0,a|0)break A;break}default:break A}switch(e[P>>2]=0,a=o0(A,t,6,P,d)|0,a|0){case 9:break;case 0:{if(a=d,a=G0(e[a>>2]|0,e[a+4>>2]|0,r,i,n,s,f,w)|0,a|0)break A;break}default:break A}return j=0,B=I,j|0}while(!1);return j=a,B=I,j|0}function o0(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0;if(r>>>0>6)return n=1,n|0;if(k=(e[i>>2]|0)%6|0,e[i>>2]=k,(k|0)>0){s=0;do r=he(r)|0,s=s+1|0;while((s|0)<(e[i>>2]|0))}if(k=$(A|0,t|0,45)|0,b()|0,p=k&127,p>>>0>121)return n=5,n|0;a=y0(A,t)|0,s=$(A|0,t|0,52)|0,b()|0,s=s&15;A:do if(!s)w=8;else{for(;;){if(f=(15-s|0)*3|0,u=$(A|0,t|0,f|0)|0,b()|0,u=u&7,(u|0)==7){t=5;break}if(d=(x0(s)|0)==0,s=s+-1|0,M=sA(7,0,f|0)|0,t=t&~(b()|0),P=sA(e[(d?432:16)+(u*28|0)+(r<<2)>>2]|0,0,f|0)|0,f=b()|0,r=e[(d?640:224)+(u*28|0)+(r<<2)>>2]|0,A=P|A&~M,t=f|t,!r){r=0;break A}if(!s){w=8;break A}}return t|0}while(!1);(w|0)==8&&(d=e[848+(p*28|0)+(r<<2)>>2]|0,P=sA(d|0,0,45)|0,A=P|A,t=b()|0|t&-1040385,r=e[4272+(p*28|0)+(r<<2)>>2]|0,(d&127|0)==127&&(d=sA(e[848+(p*28|0)+20>>2]|0,0,45)|0,t=b()|0|t&-1040385,r=e[4272+(p*28|0)+20>>2]|0,A=ae(d|A,t)|0,t=b()|0,e[i>>2]=(e[i>>2]|0)+1)),u=$(A|0,t|0,45)|0,b()|0,u=u&127;A:do if(JA(u)|0){e:do if((y0(A,t)|0)==1){if((p|0)!=(u|0))if(Rn(u,e[7696+(p*28|0)>>2]|0)|0){A=_r(A,t)|0,f=1,t=b()|0;break}else kA(27795,26864,533,26872);switch(a|0){case 3:{A=ae(A,t)|0,t=b()|0,e[i>>2]=(e[i>>2]|0)+1,f=0;break e}case 5:{A=_r(A,t)|0,t=b()|0,e[i>>2]=(e[i>>2]|0)+5,f=0;break e}case 0:return d=9,d|0;default:return d=1,d|0}}else f=0;while(!1);if((r|0)>0){s=0;do A=Cr(A,t)|0,t=b()|0,s=s+1|0;while((s|0)!=(r|0))}if((p|0)!=(u|0)){if(!(ar(u)|0)){if((f|0)!=0|(y0(A,t)|0)!=5)break;e[i>>2]=(e[i>>2]|0)+1;break}switch(k&127){case 8:case 118:break A}(y0(A,t)|0)!=3&&(e[i>>2]=(e[i>>2]|0)+1)}}else if((r|0)>0){s=0;do A=ae(A,t)|0,t=b()|0,s=s+1|0;while((s|0)!=(r|0))}while(!1);return e[i>>2]=((e[i>>2]|0)+r|0)%6|0,d=n,e[d>>2]=A,e[d+4>>2]=t,d=0,d|0}function Jf(A,t,r,i){return A=A|0,t=t|0,r=r|0,i=i|0,Sn(A,t,r,i)|0?(te(i|0,0,r*48|0)|0,i=Xf(A,t,r,i)|0,i|0):(i=0,i|0)}function Sn(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0;if(d=B,B=B+16|0,M=d,P=d+8|0,k=M,e[k>>2]=A,e[k+4>>2]=t,(r|0)<0)return P=2,B=d,P|0;if(!r)return P=i,e[P>>2]=A,e[P+4>>2]=t,P=0,B=d,P|0;e[P>>2]=0;A:do if(WA(A,t)|0)A=9;else{n=0,k=A;do{if(A=o0(k,t,4,P,M)|0,A|0)break A;if(t=M,k=e[t>>2]|0,t=e[t+4>>2]|0,n=n+1|0,WA(k,t)|0){A=9;break A}}while((n|0)<(r|0));p=i,e[p>>2]=k,e[p+4>>2]=t,p=r+-1|0,w=0,A=1;do{if(n=26800+(w<<2)|0,(w|0)==5)for(f=e[n>>2]|0,s=0,n=A;;){if(A=M,A=o0(e[A>>2]|0,e[A+4>>2]|0,f,P,M)|0,A|0)break A;if((s|0)!=(p|0))if(a=M,u=e[a>>2]|0,a=e[a+4>>2]|0,A=i+(n<<3)|0,e[A>>2]=u,e[A+4>>2]=a,!(WA(u,a)|0))A=n+1|0;else{A=9;break A}else A=n;if(s=s+1|0,(s|0)>=(r|0))break;n=A}else for(f=M,a=e[n>>2]|0,u=0,n=A,s=e[f>>2]|0,f=e[f+4>>2]|0;;){if(A=o0(s,f,a,P,M)|0,A|0)break A;if(f=M,s=e[f>>2]|0,f=e[f+4>>2]|0,A=i+(n<<3)|0,e[A>>2]=s,e[A+4>>2]=f,A=n+1|0,WA(s,f)|0){A=9;break A}if(u=u+1|0,(u|0)>=(r|0))break;n=A}w=w+1|0}while(w>>>0<6);A=M,A=(k|0)==(e[A>>2]|0)&&(t|0)==(e[A+4>>2]|0)?0:9}while(!1);return P=A,B=d,P|0}function Xf(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0;if(k=B,B=B+16|0,f=k,!r)return e[i>>2]=A,e[i+4>>2]=t,i=0,B=k,i|0;do if((r|0)>=0){if((r|0)>13780509){if(n=Ct(15,f)|0,n|0)break;s=f,n=e[s>>2]|0,s=e[s+4>>2]|0}else n=((r|0)<0)<<31>>31,p=l0(r|0,n|0,3,0)|0,s=b()|0,n=vA(r|0,n|0,1,0)|0,n=l0(p|0,s|0,n|0,b()|0)|0,n=vA(n|0,b()|0,1,0)|0,s=b()|0,p=f,e[p>>2]=n,e[p+4>>2]=s;if(w=B0(n,8)|0,!w)n=13;else{if(p=B0(n,4)|0,!p){mA(w),n=13;break}if(n=G0(A,t,r,w,p,n,s,0)|0,n|0){mA(w),mA(p);break}if(t=e[f>>2]|0,f=e[f+4>>2]|0,(f|0)>0|(f|0)==0&t>>>0>0){n=0,u=0,a=0;do A=w+(u<<3)|0,s=e[A>>2]|0,A=e[A+4>>2]|0,!((s|0)==0&(A|0)==0)&&(e[p+(u<<2)>>2]|0)==(r|0)&&(M=i+(n<<3)|0,e[M>>2]=s,e[M+4>>2]=A,n=n+1|0),u=vA(u|0,a|0,1,0)|0,a=b()|0;while((a|0)<(f|0)|(a|0)==(f|0)&u>>>0<t>>>0)}mA(w),mA(p),n=0}}else n=2;while(!1);return M=n,B=k,M|0}function hr(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0;for(u=B,B=B+16|0,s=u,f=u+8|0,n=(WA(A,t)|0)==0,n=n?1:2;;){if(e[f>>2]=0,w=(o0(A,t,n,f,s)|0)==0,a=s,w&((e[a>>2]|0)==(r|0)?(e[a+4>>2]|0)==(i|0):0)){A=4;break}if(n=n+1|0,n>>>0>=7){n=7,A=4;break}}return(A|0)==4?(B=u,n|0):0}function $f(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0;if(u=B,B=B+48|0,n=u+16|0,s=u+8|0,f=u,r=Ke(r)|0,r|0)return f=r,B=u,f|0;if(w=A,a=e[w+4>>2]|0,r=s,e[r>>2]=e[w>>2],e[r+4>>2]=a,ls(s,n),r=Un(n,t,f)|0,!r){if(t=e[s>>2]|0,s=e[A+8>>2]|0,(s|0)>0){n=e[A+12>>2]|0,r=0;do t=(e[n+(r<<3)>>2]|0)+t|0,r=r+1|0;while((r|0)<(s|0))}r=f,n=e[r>>2]|0,r=e[r+4>>2]|0,s=((t|0)<0)<<31>>31,(r|0)<(s|0)|(r|0)==(s|0)&n>>>0<t>>>0?(r=f,e[r>>2]=t,e[r+4>>2]=s,r=s):t=n,a=vA(t|0,r|0,12,0)|0,w=b()|0,r=f,e[r>>2]=a,e[r+4>>2]=w,r=i,e[r>>2]=a,e[r+4>>2]=w,r=0}return w=r,B=u,w|0}function Ln(A,t,r,i,n,s,f){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,s=s|0,f=f|0;var u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0,PA=0,SA=0,BA=0,gA=0,iA=0,xA=0,jA=0,dA=0,qA=0,p0=0,ks=0;if(jA=B,B=B+64|0,BA=jA+48|0,gA=jA+32|0,iA=jA+24|0,nA=jA+8|0,cA=jA,a=e[A>>2]|0,(a|0)<=0)return xA=0,B=jA,xA|0;for(fA=A+4|0,DA=BA+8|0,PA=gA+8|0,SA=nA+8|0,u=0,G=0;;){w=e[fA>>2]|0,U=w+(G<<4)|0,e[BA>>2]=e[U>>2],e[BA+4>>2]=e[U+4>>2],e[BA+8>>2]=e[U+8>>2],e[BA+12>>2]=e[U+12>>2],(G|0)==(a+-1|0)?(e[gA>>2]=e[w>>2],e[gA+4>>2]=e[w+4>>2],e[gA+8>>2]=e[w+8>>2],e[gA+12>>2]=e[w+12>>2]):(U=w+(G+1<<4)|0,e[gA>>2]=e[U>>2],e[gA+4>>2]=e[U+4>>2],e[gA+8>>2]=e[U+8>>2],e[gA+12>>2]=e[U+12>>2]),a=hu(BA,gA,i,iA)|0;A:do if(a)w=0,u=a;else if(a=iA,w=e[a>>2]|0,a=e[a+4>>2]|0,(a|0)>0|(a|0)==0&w>>>0>0){j=0,U=0;e:for(;;){if(qA=1/(+(w>>>0)+4294967296*+(a|0)),ks=+y[BA>>3],a=h0(w|0,a|0,j|0,U|0)|0,p0=+(a>>>0)+4294967296*+(b()|0),dA=+(j>>>0)+4294967296*+(U|0),y[nA>>3]=qA*(ks*p0)+qA*(+y[gA>>3]*dA),y[SA>>3]=qA*(+y[DA>>3]*p0)+qA*(+y[PA>>3]*dA),a=Dr(nA,i,cA)|0,a|0){u=a;break}O=cA,I=e[O>>2]|0,O=e[O+4>>2]|0,M=Te(I|0,O|0,t|0,r|0)|0,p=b()|0,a=f+(M<<3)|0,k=a,w=e[k>>2]|0,k=e[k+4>>2]|0;t:do if((w|0)==0&(k|0)==0)L=a,xA=16;else for(P=0,d=0;;){if((P|0)>(r|0)|(P|0)==(r|0)&d>>>0>t>>>0){u=1;break e}if((w|0)==(I|0)&(k|0)==(O|0))break t;if(a=vA(M|0,p|0,1,0)|0,M=de(a|0,b()|0,t|0,r|0)|0,p=b()|0,d=vA(d|0,P|0,1,0)|0,P=b()|0,a=f+(M<<3)|0,k=a,w=e[k>>2]|0,k=e[k+4>>2]|0,(w|0)==0&(k|0)==0){L=a,xA=16;break}}while(!1);if((xA|0)==16&&(xA=0,!((I|0)==0&(O|0)==0))&&(d=L,e[d>>2]=I,e[d+4>>2]=O,d=s+(e[n>>2]<<3)|0,e[d>>2]=I,e[d+4>>2]=O,d=n,d=vA(e[d>>2]|0,e[d+4>>2]|0,1,0)|0,I=b()|0,O=n,e[O>>2]=d,e[O+4>>2]=I),j=vA(j|0,U|0,1,0)|0,U=b()|0,a=iA,w=e[a>>2]|0,a=e[a+4>>2]|0,!((a|0)>(U|0)|(a|0)==(U|0)&w>>>0>j>>>0)){w=1;break A}}w=0}else w=1;while(!1);if(G=G+1|0,!w){xA=21;break}if(a=e[A>>2]|0,(G|0)>=(a|0)){u=0,xA=21;break}}return(xA|0)==21?(B=jA,u|0):0}function Au(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0,PA=0,SA=0,BA=0,gA=0,iA=0,xA=0,jA=0,dA=0,qA=0,p0=0;if(p0=B,B=B+112|0,xA=p0+80|0,a=p0+72|0,jA=p0,dA=p0+56|0,n=Ke(r)|0,n|0)return qA=n,B=p0,qA|0;if(w=A+8|0,qA=N0((e[w>>2]<<5)+32|0)|0,!qA)return qA=13,B=p0,qA|0;if(Ir(A,qA),n=Ke(r)|0,!n){if(gA=A,iA=e[gA+4>>2]|0,n=a,e[n>>2]=e[gA>>2],e[n+4>>2]=iA,ls(a,xA),n=Un(xA,t,jA)|0,n)gA=0,iA=0;else{if(n=e[a>>2]|0,s=e[w>>2]|0,(s|0)>0){f=e[A+12>>2]|0,r=0;do n=(e[f+(r<<3)>>2]|0)+n|0,r=r+1|0;while((r|0)!=(s|0));r=n}else r=n;n=jA,s=e[n>>2]|0,n=e[n+4>>2]|0,f=((r|0)<0)<<31>>31,(n|0)<(f|0)|(n|0)==(f|0)&s>>>0<r>>>0?(n=jA,e[n>>2]=r,e[n+4>>2]=f,n=f):r=s,gA=vA(r|0,n|0,12,0)|0,iA=b()|0,n=jA,e[n>>2]=gA,e[n+4>>2]=iA,n=0}if(!n){if(r=B0(gA,8)|0,!r)return mA(qA),qA=13,B=p0,qA|0;if(u=B0(gA,8)|0,!u)return mA(qA),mA(r),qA=13,B=p0,qA|0;SA=xA,e[SA>>2]=0,e[SA+4>>2]=0,SA=A,BA=e[SA+4>>2]|0,n=a,e[n>>2]=e[SA>>2],e[n+4>>2]=BA,n=Ln(a,gA,iA,t,xA,r,u)|0;A:do if(n)mA(r),mA(u),mA(qA);else{e:do if((e[w>>2]|0)>0){for(f=A+12|0,s=0;n=Ln((e[f>>2]|0)+(s<<3)|0,gA,iA,t,xA,r,u)|0,s=s+1|0,!(n|0);)if((s|0)>=(e[w>>2]|0))break e;mA(r),mA(u),mA(qA);break A}while(!1);(iA|0)>0|(iA|0)==0&gA>>>0>0&&te(u|0,0,gA<<3|0)|0,BA=xA,SA=e[BA+4>>2]|0;e:do if((SA|0)>0|(SA|0)==0&(e[BA>>2]|0)>>>0>0){fA=r,DA=u,PA=r,SA=u,BA=r,n=r,L=r,nA=u,cA=u,r=u;t:for(;;){for(O=0,j=0,U=0,G=0,s=0,f=0;;){u=jA,a=u+56|0;do e[u>>2]=0,u=u+4|0;while((u|0)<(a|0));if(t=fA+(O<<3)|0,w=e[t>>2]|0,t=e[t+4>>2]|0,In(w,t,1,jA,0)|0){u=jA,a=u+56|0;do e[u>>2]=0,u=u+4|0;while((u|0)<(a|0));u=B0(7,4)|0,u|0&&(G0(w,t,1,jA,u,7,0,0)|0,mA(u))}for(I=0;;){d=jA+(I<<3)|0,P=e[d>>2]|0,d=e[d+4>>2]|0;r:do if((P|0)==0&(d|0)==0)u=s,a=f;else{if(p=Te(P|0,d|0,gA|0,iA|0)|0,w=b()|0,u=i+(p<<3)|0,t=u,a=e[t>>2]|0,t=e[t+4>>2]|0,!((a|0)==0&(t|0)==0)){k=0,M=0;do{if((k|0)>(iA|0)|(k|0)==(iA|0)&M>>>0>gA>>>0)break t;if((a|0)==(P|0)&(t|0)==(d|0)){u=s,a=f;break r}u=vA(p|0,w|0,1,0)|0,p=de(u|0,b()|0,gA|0,iA|0)|0,w=b()|0,M=vA(M|0,k|0,1,0)|0,k=b()|0,u=i+(p<<3)|0,t=u,a=e[t>>2]|0,t=e[t+4>>2]|0}while(!((a|0)==0&(t|0)==0))}if((P|0)==0&(d|0)==0){u=s,a=f;break}ce(P,d,dA)|0,Sr(A,qA,dA)|0&&(M=vA(s|0,f|0,1,0)|0,f=b()|0,k=u,e[k>>2]=P,e[k+4>>2]=d,s=DA+(s<<3)|0,e[s>>2]=P,e[s+4>>2]=d,s=M),u=s,a=f}while(!1);if(I=I+1|0,I>>>0>=7)break;s=u,f=a}if(O=vA(O|0,j|0,1,0)|0,j=b()|0,U=vA(U|0,G|0,1,0)|0,G=b()|0,f=xA,s=e[f>>2]|0,f=e[f+4>>2]|0,(G|0)<(f|0)|(G|0)==(f|0)&U>>>0<s>>>0)s=u,f=a;else break}if((f|0)>0|(f|0)==0&s>>>0>0){s=0,f=0;do G=fA+(s<<3)|0,e[G>>2]=0,e[G+4>>2]=0,s=vA(s|0,f|0,1,0)|0,f=b()|0,G=xA,U=e[G+4>>2]|0;while((f|0)<(U|0)|((f|0)==(U|0)?s>>>0<(e[G>>2]|0)>>>0:0))}if(G=xA,e[G>>2]=u,e[G+4>>2]=a,(a|0)>0|(a|0)==0&u>>>0>0)I=r,O=cA,j=BA,U=nA,G=DA,r=L,cA=n,nA=PA,L=I,n=O,BA=SA,SA=j,PA=U,DA=fA,fA=G;else break e}mA(PA),mA(SA),mA(qA),n=1;break A}else n=u;while(!1);mA(qA),mA(r),mA(n),n=0}while(!1);return qA=n,B=p0,qA|0}}return mA(qA),qA=n,B=p0,qA|0}function eu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(p=B,B=B+176|0,a=p,(t|0)<1)return cs(r,0,0),w=0,B=p,w|0;for(u=A,u=$(e[u>>2]|0,e[u+4>>2]|0,52)|0,b()|0,cs(r,(t|0)>6?t:6,u&15),u=0;i=A+(u<<3)|0,i=Me(e[i>>2]|0,e[i+4>>2]|0,a)|0,!(i|0);){if(i=e[a>>2]|0,(i|0)>0){f=0;do s=a+8+(f<<4)|0,f=f+1|0,i=a+8+(((f|0)%(i|0)|0)<<4)|0,n=d1(r,i,s)|0,n?ps(r,n)|0:P1(r,s,i)|0,i=e[a>>2]|0;while((f|0)<(i|0))}if(u=u+1|0,(u|0)>=(t|0)){i=0,w=13;break}}return(w|0)==13?(B=p,i|0):(gs(r),w=i,B=p,w|0)}function tu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0;if(s=B,B=B+32|0,i=s,n=s+16|0,A=eu(A,t,n)|0,A|0)return r=A,B=s,r|0;if(e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,A=ws(n)|0,A|0)do{t=r1(r)|0;do i1(t,A)|0,f=A+16|0,e[i>>2]=e[f>>2],e[i+4>>2]=e[f+4>>2],e[i+8>>2]=e[f+8>>2],e[i+12>>2]=e[f+12>>2],ps(n,A)|0,A=T1(n,i)|0;while((A|0)!=0);A=ws(n)|0}while((A|0)!=0);return gs(n),A=n1(r)|0,A?(is(r),f=A,B=s,f|0):(f=0,B=s,f|0)}function JA(A){return A=A|0,A>>>0>121?(A=0,A|0):(A=e[7696+(A*28|0)+16>>2]|0,A|0)}function ar(A){return A=A|0,(A|0)==4|(A|0)==117|0}function Fn(A){return A=A|0,e[11120+((e[A>>2]|0)*216|0)+((e[A+4>>2]|0)*72|0)+((e[A+8>>2]|0)*24|0)+(e[A+12>>2]<<3)>>2]|0}function ru(A){return A=A|0,e[11120+((e[A>>2]|0)*216|0)+((e[A+4>>2]|0)*72|0)+((e[A+8>>2]|0)*24|0)+(e[A+12>>2]<<3)+4>>2]|0}function iu(A,t){A=A|0,t=t|0,A=7696+(A*28|0)|0,e[t>>2]=e[A>>2],e[t+4>>2]=e[A+4>>2],e[t+8>>2]=e[A+8>>2],e[t+12>>2]=e[A+12>>2]}function nu(A,t){A=A|0,t=t|0;var r=0,i=0;if(t>>>0>20)return t=-1,t|0;do if((e[11120+(t*216|0)>>2]|0)!=(A|0))if((e[11120+(t*216|0)+8>>2]|0)!=(A|0))if((e[11120+(t*216|0)+16>>2]|0)!=(A|0))if((e[11120+(t*216|0)+24>>2]|0)!=(A|0))if((e[11120+(t*216|0)+32>>2]|0)!=(A|0))if((e[11120+(t*216|0)+40>>2]|0)!=(A|0))if((e[11120+(t*216|0)+48>>2]|0)!=(A|0))if((e[11120+(t*216|0)+56>>2]|0)!=(A|0))if((e[11120+(t*216|0)+64>>2]|0)!=(A|0))if((e[11120+(t*216|0)+72>>2]|0)!=(A|0))if((e[11120+(t*216|0)+80>>2]|0)!=(A|0))if((e[11120+(t*216|0)+88>>2]|0)!=(A|0))if((e[11120+(t*216|0)+96>>2]|0)!=(A|0))if((e[11120+(t*216|0)+104>>2]|0)!=(A|0))if((e[11120+(t*216|0)+112>>2]|0)!=(A|0))if((e[11120+(t*216|0)+120>>2]|0)!=(A|0))if((e[11120+(t*216|0)+128>>2]|0)!=(A|0))if((e[11120+(t*216|0)+136>>2]|0)==(A|0))A=2,r=1,i=2;else{if((e[11120+(t*216|0)+144>>2]|0)==(A|0)){A=0,r=2,i=0;break}if((e[11120+(t*216|0)+152>>2]|0)==(A|0)){A=0,r=2,i=1;break}if((e[11120+(t*216|0)+160>>2]|0)==(A|0)){A=0,r=2,i=2;break}if((e[11120+(t*216|0)+168>>2]|0)==(A|0)){A=1,r=2,i=0;break}if((e[11120+(t*216|0)+176>>2]|0)==(A|0)){A=1,r=2,i=1;break}if((e[11120+(t*216|0)+184>>2]|0)==(A|0)){A=1,r=2,i=2;break}if((e[11120+(t*216|0)+192>>2]|0)==(A|0)){A=2,r=2,i=0;break}if((e[11120+(t*216|0)+200>>2]|0)==(A|0)){A=2,r=2,i=1;break}if((e[11120+(t*216|0)+208>>2]|0)==(A|0)){A=2,r=2,i=2;break}else A=-1;return A|0}else A=2,r=1,i=1;else A=2,r=1,i=0;else A=1,r=1,i=2;else A=1,r=1,i=1;else A=1,r=1,i=0;else A=0,r=1,i=2;else A=0,r=1,i=1;else A=0,r=1,i=0;else A=2,r=0,i=2;else A=2,r=0,i=1;else A=2,r=0,i=0;else A=1,r=0,i=2;else A=1,r=0,i=1;else A=1,r=0,i=0;else A=0,r=0,i=2;else A=0,r=0,i=1;else A=0,r=0,i=0;while(!1);return t=e[11120+(t*216|0)+(r*72|0)+(A*24|0)+(i<<3)+4>>2]|0,t|0}function Rn(A,t){return A=A|0,t=t|0,(e[7696+(A*28|0)+20>>2]|0)==(t|0)?(t=1,t|0):(t=(e[7696+(A*28|0)+24>>2]|0)==(t|0),t|0)}function cr(A,t){return A=A|0,t=t|0,e[848+(A*28|0)+(t<<2)>>2]|0}function gr(A,t){return A=A|0,t=t|0,(e[848+(A*28|0)>>2]|0)==(t|0)?(t=0,t|0):(e[848+(A*28|0)+4>>2]|0)==(t|0)?(t=1,t|0):(e[848+(A*28|0)+8>>2]|0)==(t|0)?(t=2,t|0):(e[848+(A*28|0)+12>>2]|0)==(t|0)?(t=3,t|0):(e[848+(A*28|0)+16>>2]|0)==(t|0)?(t=4,t|0):(e[848+(A*28|0)+20>>2]|0)==(t|0)?(t=5,t|0):((e[848+(A*28|0)+24>>2]|0)==(t|0)?6:7)|0}function su(){return 122}function ou(A){A=A|0;var t=0,r=0,i=0;t=0;do sA(t|0,0,45)|0,i=b()|0|134225919,r=A+(t<<3)|0,e[r>>2]=-1,e[r+4>>2]=i,t=t+1|0;while((t|0)!=122);return 0}function lu(A){A=A|0;var t=0,r=0,i=0;return i=+y[A+16>>3],r=+y[A+24>>3],t=i-r,+(i<r?t+6.283185307179586:t)}function On(A){return A=A|0,+y[A+16>>3]<+y[A+24>>3]|0}function fu(A){return A=A|0,+(+y[A>>3]-+y[A+8>>3])}function wr(A,t){A=A|0,t=t|0;var r=0,i=0,n=0;return r=+y[t>>3],!(r>=+y[A+8>>3])||!(r<=+y[A>>3])?(t=0,t|0):(i=+y[A+16>>3],r=+y[A+24>>3],n=+y[t+8>>3],t=n>=r,A=n<=i&1,i<r?t&&(A=1):t||(A=0),t=(A|0)!=0,t|0)}function pr(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;return+y[A>>3]<+y[t+8>>3]||+y[A+8>>3]>+y[t>>3]?(i=0,i|0):(s=+y[A+16>>3],r=A+24|0,p=+y[r>>3],f=s<p,i=t+16|0,w=+y[i>>3],n=t+24|0,a=+y[n>>3],u=w<a,t=p-w<a-s,A=f?u|t?1:2:0,t=u?f?1:t?2:1:0,s=+b0(s,A),s<+b0(+y[n>>3],t)||(p=+b0(+y[r>>3],A),p>+b0(+y[i>>3],t))?(u=0,u|0):(u=1,u|0))}function uu(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0;s=+y[A+16>>3],a=+y[A+24>>3],A=s<a,u=+y[t+16>>3],f=+y[t+24>>3],n=u<f,t=a-u<f-s,e[r>>2]=A?n|t?1:2:0,e[i>>2]=n?A?1:t?2:1:0}function Gn(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;return+y[A>>3]<+y[t>>3]||+y[A+8>>3]>+y[t+8>>3]?(i=0,i|0):(i=A+16|0,a=+y[i>>3],s=+y[A+24>>3],f=a<s,r=t+16|0,p=+y[r>>3],n=t+24|0,w=+y[n>>3],u=p<w,t=s-p<w-a,A=f?u|t?1:2:0,t=u?f?1:t?2:1:0,s=+b0(s,A),s<=+b0(+y[n>>3],t)?(p=+b0(+y[i>>3],A),u=p>=+b0(+y[r>>3],t),u|0):(u=0,u|0))}function Nn(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0;n=B,B=B+176|0,i=n,e[i>>2]=4,u=+y[t>>3],y[i+8>>3]=u,s=+y[t+16>>3],y[i+16>>3]=s,y[i+24>>3]=u,u=+y[t+24>>3],y[i+32>>3]=u,f=+y[t+8>>3],y[i+40>>3]=f,y[i+48>>3]=u,y[i+56>>3]=f,y[i+64>>3]=s,t=i+72|0,r=t+96|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(r|0));xe(A|0,i|0,168)|0,B=n}function Un(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0;d=B,B=B+288|0,p=d+264|0,k=d+96|0,w=d,u=w,a=u+96|0;do e[u>>2]=0,u=u+4|0;while((u|0)<(a|0));return t=Pr(t,w)|0,t|0?(P=t,B=d,P|0):(a=w,w=e[a>>2]|0,a=e[a+4>>2]|0,ce(w,a,p)|0,Me(w,a,k)|0,f=+We(p,k+8|0),y[p>>3]=+y[A>>3],a=p+8|0,y[a>>3]=+y[A+16>>3],y[k>>3]=+y[A+8>>3],w=k+8|0,y[w>>3]=+y[A+24>>3],n=+We(p,k),O=+y[a>>3]-+y[w>>3],s=+QA(+O),I=+y[p>>3]-+y[k>>3],i=+QA(+I),!(O==0|I==0)&&(O=+ys(+s,+i),O=+Ce(+(n*n/+Mt(+(O/+Mt(+s,+i)),3)/(f*(f*2.59807621135)*.8))),y[NA>>3]=O,M=~~O>>>0,P=+QA(O)>=1?O>0?~~+ur(+s0(O/4294967296),4294967295)>>>0:~~+Ce((O-+(~~O>>>0))/4294967296)>>>0:0,(e[NA+4>>2]&2146435072|0)!=2146435072)?(k=(M|0)==0&(P|0)==0,t=r,e[t>>2]=k?1:M,e[t+4>>2]=k?0:P,t=0):t=1,P=t,B=d,P|0)}function hu(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0;w=B,B=B+288|0,f=w+264|0,u=w+96|0,a=w,n=a,s=n+96|0;do e[n>>2]=0,n=n+4|0;while((n|0)<(s|0));return r=Pr(r,a)|0,r|0?(i=r,B=w,i|0):(r=a,n=e[r>>2]|0,r=e[r+4>>2]|0,ce(n,r,f)|0,Me(n,r,u)|0,p=+We(f,u+8|0),p=+Ce(+(+We(A,t)/(p*2))),y[NA>>3]=p,r=~~p>>>0,n=+QA(p)>=1?p>0?~~+ur(+s0(p/4294967296),4294967295)>>>0:~~+Ce((p-+(~~p>>>0))/4294967296)>>>0:0,(e[NA+4>>2]&2146435072|0)==2146435072?(i=1,B=w,i|0):(a=(r|0)==0&(n|0)==0,e[i>>2]=a?1:r,e[i+4>>2]=a?0:n,i=0,B=w,i|0))}function au(A,t){A=A|0,t=+t;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;s=A+16|0,f=+y[s>>3],r=A+24|0,n=+y[r>>3],i=f-n,i=f<n?i+6.283185307179586:i,w=+y[A>>3],u=A+8|0,a=+y[u>>3],p=w-a,i=(i*t-i)*.5,t=(p*t-p)*.5,w=w+t,y[A>>3]=w>1.5707963267948966?1.5707963267948966:w,t=a-t,y[u>>3]=t<-1.5707963267948966?-1.5707963267948966:t,t=f+i,t=t>3.141592653589793?t+-6.283185307179586:t,y[s>>3]=t<-3.141592653589793?t+6.283185307179586:t,t=n-i,t=t>3.141592653589793?t+-6.283185307179586:t,y[r>>3]=t<-3.141592653589793?t+6.283185307179586:t}function cu(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0,e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=i}function gu(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0;k=t+8|0,e[k>>2]=0,a=+y[A>>3],f=+QA(+a),w=+y[A+8>>3],u=+QA(+w)*1.1547005383792515,f=f+u*.5,r=~~f,A=~~u,f=f-+(r|0),u=u-+(A|0);do if(f<.5)if(f<.3333333333333333)if(e[t>>2]=r,u<(f+1)*.5){e[t+4>>2]=A;break}else{A=A+1|0,e[t+4>>2]=A;break}else if(M=1-f,A=(!(u<M)&1)+A|0,e[t+4>>2]=A,M<=u&u<f*2){r=r+1|0,e[t>>2]=r;break}else{e[t>>2]=r;break}else{if(!(f<.6666666666666666))if(r=r+1|0,e[t>>2]=r,u<f*.5){e[t+4>>2]=A;break}else{A=A+1|0,e[t+4>>2]=A;break}if(u<1-f){if(e[t+4>>2]=A,f*2+-1<u){e[t>>2]=r;break}}else A=A+1|0,e[t+4>>2]=A;r=r+1|0,e[t>>2]=r}while(!1);do if(a<0)if(A&1){p=(A+1|0)/2|0,p=h0(r|0,((r|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0,r=~~(+(r|0)-((+(p>>>0)+4294967296*+(b()|0))*2+1)),e[t>>2]=r;break}else{p=(A|0)/2|0,p=h0(r|0,((r|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0,r=~~(+(r|0)-(+(p>>>0)+4294967296*+(b()|0))*2),e[t>>2]=r;break}while(!1);p=t+4|0,w<0&&(r=r-((A<<1|1|0)/2|0)|0,e[t>>2]=r,A=0-A|0,e[p>>2]=A),i=A-r|0,(r|0)<0?(n=0-r|0,e[p>>2]=i,e[k>>2]=n,e[t>>2]=0,A=i,r=0):n=0,(A|0)<0&&(r=r-A|0,e[t>>2]=r,n=n-A|0,e[k>>2]=n,e[p>>2]=0,A=0),s=r-n|0,i=A-n|0,(n|0)<0&&(e[t>>2]=s,e[p>>2]=i,e[k>>2]=0,A=i,r=s,n=0),i=(A|0)<(r|0)?A:r,i=(n|0)<(i|0)?n:i,!((i|0)<=0)&&(e[t>>2]=r-i,e[p>>2]=A-i,e[k>>2]=n-i)}function c0(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0;t=e[A>>2]|0,f=A+4|0,r=e[f>>2]|0,(t|0)<0&&(r=r-t|0,e[f>>2]=r,s=A+8|0,e[s>>2]=(e[s>>2]|0)-t,e[A>>2]=0,t=0),(r|0)<0?(t=t-r|0,e[A>>2]=t,s=A+8|0,n=(e[s>>2]|0)-r|0,e[s>>2]=n,e[f>>2]=0,r=0):(n=A+8|0,s=n,n=e[n>>2]|0),(n|0)<0&&(t=t-n|0,e[A>>2]=t,r=r-n|0,e[f>>2]=r,e[s>>2]=0,n=0),i=(r|0)<(t|0)?r:t,i=(n|0)<(i|0)?n:i,!((i|0)<=0)&&(e[A>>2]=t-i,e[f>>2]=r-i,e[s>>2]=n-i)}function fe(A,t){A=A|0,t=t|0;var r=0,i=0;i=e[A+8>>2]|0,r=+((e[A+4>>2]|0)-i|0),y[t>>3]=+((e[A>>2]|0)-i|0)-r*.5,y[t+8>>3]=r*.8660254037844386}function w0(A,t,r){A=A|0,t=t|0,r=r|0,e[r>>2]=(e[t>>2]|0)+(e[A>>2]|0),e[r+4>>2]=(e[t+4>>2]|0)+(e[A+4>>2]|0),e[r+8>>2]=(e[t+8>>2]|0)+(e[A+8>>2]|0)}function vr(A,t,r){A=A|0,t=t|0,r=r|0,e[r>>2]=(e[A>>2]|0)-(e[t>>2]|0),e[r+4>>2]=(e[A+4>>2]|0)-(e[t+4>>2]|0),e[r+8>>2]=(e[A+8>>2]|0)-(e[t+8>>2]|0)}function zn(A,t){A=A|0,t=t|0;var r=0,i=0;r=O0(e[A>>2]|0,t)|0,e[A>>2]=r,r=A+4|0,i=O0(e[r>>2]|0,t)|0,e[r>>2]=i,A=A+8|0,t=O0(e[A>>2]|0,t)|0,e[A>>2]=t}function yt(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;f=e[A>>2]|0,u=(f|0)<0,i=(e[A+4>>2]|0)-(u?f:0)|0,s=(i|0)<0,n=(s?0-i|0:0)+((e[A+8>>2]|0)-(u?f:0))|0,r=(n|0)<0,A=r?0:n,t=(s?0:i)-(r?n:0)|0,n=(u?0:f)-(s?i:0)-(r?n:0)|0,r=(t|0)<(n|0)?t:n,r=(A|0)<(r|0)?A:r,i=(r|0)>0,A=A-(i?r:0)|0,t=t-(i?r:0)|0;A:do switch(n-(i?r:0)|0){case 0:switch(t|0){case 0:return u=(A|0)==0?0:(A|0)==1?1:7,u|0;case 1:return u=(A|0)==0?2:(A|0)==1?3:7,u|0;default:break A}case 1:switch(t|0){case 0:return u=(A|0)==0?4:(A|0)==1?5:7,u|0;case 1:{if(!A)A=6;else break A;return A|0}default:break A}}while(!1);return u=7,u|0}function wu(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0;if(a=A+8|0,f=e[a>>2]|0,u=(e[A>>2]|0)-f|0,w=A+4|0,f=(e[w>>2]|0)-f|0,u>>>0>715827881|f>>>0>715827881){if(i=(u|0)>0,n=2147483647-u|0,s=-2147483648-u|0,(i?(n|0)<(u|0):(s|0)>(u|0))||(r=u<<1,i?(2147483647-r|0)<(u|0):(-2147483648-r|0)>(u|0))||((f|0)>0?(2147483647-f|0)<(f|0):(-2147483648-f|0)>(f|0))||(t=u*3|0,r=f<<1,(i?(n|0)<(r|0):(s|0)>(r|0))||((u|0)>-1?(t|-2147483648|0)>=(f|0):(t^-2147483648|0)<(f|0))))return w=1,w|0}else r=f<<1,t=u*3|0;return i=Ae(+(t-f|0)*.14285714285714285)|0,e[A>>2]=i,n=Ae(+(r+u|0)*.14285714285714285)|0,e[w>>2]=n,e[a>>2]=0,r=(n|0)<(i|0),t=r?i:n,r=r?n:i,(r|0)<0&&(((r|0)==-2147483648||((t|0)>0?(2147483647-t|0)<(r|0):(-2147483648-t|0)>(r|0)))&&kA(27795,26892,354,26903),((t|0)>-1?(t|-2147483648|0)>=(r|0):(t^-2147483648|0)<(r|0))&&kA(27795,26892,354,26903)),t=n-i|0,(i|0)<0?(r=0-i|0,e[w>>2]=t,e[a>>2]=r,e[A>>2]=0,i=0):(t=n,r=0),(t|0)<0&&(i=i-t|0,e[A>>2]=i,r=r-t|0,e[a>>2]=r,e[w>>2]=0,t=0),s=i-r|0,n=t-r|0,(r|0)<0?(e[A>>2]=s,e[w>>2]=n,e[a>>2]=0,t=n,n=s,r=0):n=i,i=(t|0)<(n|0)?t:n,i=(r|0)<(i|0)?r:i,(i|0)<=0?(w=0,w|0):(e[A>>2]=n-i,e[w>>2]=t-i,e[a>>2]=r-i,w=0,w|0)}function pu(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0;if(f=A+8|0,n=e[f>>2]|0,s=(e[A>>2]|0)-n|0,u=A+4|0,n=(e[u>>2]|0)-n|0,s>>>0>715827881|n>>>0>715827881){if(r=(s|0)>0,(r?(2147483647-s|0)<(s|0):(-2147483648-s|0)>(s|0))||(t=s<<1,i=(n|0)>0,i?(2147483647-n|0)<(n|0):(-2147483648-n|0)>(n|0)))return u=1,u|0;if(a=n<<1,(i?(2147483647-a|0)<(n|0):(-2147483648-a|0)>(n|0))||(r?(2147483647-t|0)<(n|0):(-2147483648-t|0)>(n|0))||(r=n*3|0,(n|0)>-1?(r|-2147483648|0)>=(s|0):(r^-2147483648|0)<(s|0)))return a=1,a|0}else r=n*3|0,t=s<<1;return i=Ae(+(t+n|0)*.14285714285714285)|0,e[A>>2]=i,n=Ae(+(r-s|0)*.14285714285714285)|0,e[u>>2]=n,e[f>>2]=0,r=(n|0)<(i|0),t=r?i:n,r=r?n:i,(r|0)<0&&(((r|0)==-2147483648||((t|0)>0?(2147483647-t|0)<(r|0):(-2147483648-t|0)>(r|0)))&&kA(27795,26892,402,26917),((t|0)>-1?(t|-2147483648|0)>=(r|0):(t^-2147483648|0)<(r|0))&&kA(27795,26892,402,26917)),t=n-i|0,(i|0)<0?(r=0-i|0,e[u>>2]=t,e[f>>2]=r,e[A>>2]=0,i=0):(t=n,r=0),(t|0)<0&&(i=i-t|0,e[A>>2]=i,r=r-t|0,e[f>>2]=r,e[u>>2]=0,t=0),s=i-r|0,n=t-r|0,(r|0)<0?(e[A>>2]=s,e[u>>2]=n,e[f>>2]=0,t=n,n=s,r=0):n=i,i=(t|0)<(n|0)?t:n,i=(r|0)<(i|0)?r:i,(i|0)<=0?(a=0,a|0):(e[A>>2]=n-i,e[u>>2]=t-i,e[f>>2]=r-i,a=0,a|0)}function vu(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;f=A+8|0,r=e[f>>2]|0,t=(e[A>>2]|0)-r|0,u=A+4|0,r=(e[u>>2]|0)-r|0,i=Ae(+((t*3|0)-r|0)*.14285714285714285)|0,e[A>>2]=i,t=Ae(+((r<<1)+t|0)*.14285714285714285)|0,e[u>>2]=t,e[f>>2]=0,r=t-i|0,(i|0)<0?(s=0-i|0,e[u>>2]=r,e[f>>2]=s,e[A>>2]=0,t=r,i=0,r=s):r=0,(t|0)<0&&(i=i-t|0,e[A>>2]=i,r=r-t|0,e[f>>2]=r,e[u>>2]=0,t=0),s=i-r|0,n=t-r|0,(r|0)<0?(e[A>>2]=s,e[u>>2]=n,e[f>>2]=0,t=n,n=s,r=0):n=i,i=(t|0)<(n|0)?t:n,i=(r|0)<(i|0)?r:i,!((i|0)<=0)&&(e[A>>2]=n-i,e[u>>2]=t-i,e[f>>2]=r-i)}function Yn(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;f=A+8|0,r=e[f>>2]|0,t=(e[A>>2]|0)-r|0,u=A+4|0,r=(e[u>>2]|0)-r|0,i=Ae(+((t<<1)+r|0)*.14285714285714285)|0,e[A>>2]=i,t=Ae(+((r*3|0)-t|0)*.14285714285714285)|0,e[u>>2]=t,e[f>>2]=0,r=t-i|0,(i|0)<0?(s=0-i|0,e[u>>2]=r,e[f>>2]=s,e[A>>2]=0,t=r,i=0,r=s):r=0,(t|0)<0&&(i=i-t|0,e[A>>2]=i,r=r-t|0,e[f>>2]=r,e[u>>2]=0,t=0),s=i-r|0,n=t-r|0,(r|0)<0?(e[A>>2]=s,e[u>>2]=n,e[f>>2]=0,t=n,n=s,r=0):n=i,i=(t|0)<(n|0)?t:n,i=(r|0)<(i|0)?r:i,!((i|0)<=0)&&(e[A>>2]=n-i,e[u>>2]=t-i,e[f>>2]=r-i)}function Bt(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;t=e[A>>2]|0,f=A+4|0,r=e[f>>2]|0,u=A+8|0,i=e[u>>2]|0,n=r+(t*3|0)|0,e[A>>2]=n,r=i+(r*3|0)|0,e[f>>2]=r,t=(i*3|0)+t|0,e[u>>2]=t,i=r-n|0,(n|0)<0?(t=t-n|0,e[f>>2]=i,e[u>>2]=t,e[A>>2]=0,r=i,i=0):i=n,(r|0)<0&&(i=i-r|0,e[A>>2]=i,t=t-r|0,e[u>>2]=t,e[f>>2]=0,r=0),s=i-t|0,n=r-t|0,(t|0)<0?(e[A>>2]=s,e[f>>2]=n,e[u>>2]=0,i=s,t=0):n=r,r=(n|0)<(i|0)?n:i,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=i-r,e[f>>2]=n-r,e[u>>2]=t-r)}function ue(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;n=e[A>>2]|0,f=A+4|0,t=e[f>>2]|0,u=A+8|0,r=e[u>>2]|0,i=(t*3|0)+n|0,n=r+(n*3|0)|0,e[A>>2]=n,e[f>>2]=i,t=(r*3|0)+t|0,e[u>>2]=t,r=i-n|0,(n|0)<0?(t=t-n|0,e[f>>2]=r,e[u>>2]=t,e[A>>2]=0,n=0):r=i,(r|0)<0&&(n=n-r|0,e[A>>2]=n,t=t-r|0,e[u>>2]=t,e[f>>2]=0,r=0),s=n-t|0,i=r-t|0,(t|0)<0?(e[A>>2]=s,e[f>>2]=i,e[u>>2]=0,n=s,t=0):i=r,r=(i|0)<(n|0)?i:n,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=n-r,e[f>>2]=i-r,e[u>>2]=t-r)}function Vn(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0;(t+-1|0)>>>0>=6||(n=(e[15440+(t*12|0)>>2]|0)+(e[A>>2]|0)|0,e[A>>2]=n,u=A+4|0,i=(e[15440+(t*12|0)+4>>2]|0)+(e[u>>2]|0)|0,e[u>>2]=i,f=A+8|0,t=(e[15440+(t*12|0)+8>>2]|0)+(e[f>>2]|0)|0,e[f>>2]=t,r=i-n|0,(n|0)<0?(t=t-n|0,e[u>>2]=r,e[f>>2]=t,e[A>>2]=0,i=0):(r=i,i=n),(r|0)<0&&(i=i-r|0,e[A>>2]=i,t=t-r|0,e[f>>2]=t,e[u>>2]=0,r=0),s=i-t|0,n=r-t|0,(t|0)<0?(e[A>>2]=s,e[u>>2]=n,e[f>>2]=0,i=s,t=0):n=r,r=(n|0)<(i|0)?n:i,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=i-r,e[u>>2]=n-r,e[f>>2]=t-r))}function Hn(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;n=e[A>>2]|0,f=A+4|0,t=e[f>>2]|0,u=A+8|0,r=e[u>>2]|0,i=t+n|0,n=r+n|0,e[A>>2]=n,e[f>>2]=i,t=r+t|0,e[u>>2]=t,r=i-n|0,(n|0)<0?(t=t-n|0,e[f>>2]=r,e[u>>2]=t,e[A>>2]=0,i=0):(r=i,i=n),(r|0)<0&&(i=i-r|0,e[A>>2]=i,t=t-r|0,e[u>>2]=t,e[f>>2]=0,r=0),s=i-t|0,n=r-t|0,(t|0)<0?(e[A>>2]=s,e[f>>2]=n,e[u>>2]=0,i=s,t=0):n=r,r=(n|0)<(i|0)?n:i,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=i-r,e[f>>2]=n-r,e[u>>2]=t-r)}function kt(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;t=e[A>>2]|0,f=A+4|0,i=e[f>>2]|0,u=A+8|0,r=e[u>>2]|0,n=i+t|0,e[A>>2]=n,i=r+i|0,e[f>>2]=i,t=r+t|0,e[u>>2]=t,r=i-n|0,(n|0)<0?(t=t-n|0,e[f>>2]=r,e[u>>2]=t,e[A>>2]=0,i=0):(r=i,i=n),(r|0)<0&&(i=i-r|0,e[A>>2]=i,t=t-r|0,e[u>>2]=t,e[f>>2]=0,r=0),s=i-t|0,n=r-t|0,(t|0)<0?(e[A>>2]=s,e[f>>2]=n,e[u>>2]=0,i=s,t=0):n=r,r=(n|0)<(i|0)?n:i,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=i-r,e[f>>2]=n-r,e[u>>2]=t-r)}function he(A){switch(A=A|0,A|0){case 1:{A=5;break}case 5:{A=4;break}case 4:{A=6;break}case 6:{A=2;break}case 2:{A=3;break}case 3:{A=1;break}}return A|0}function X0(A){switch(A=A|0,A|0){case 1:{A=3;break}case 3:{A=2;break}case 2:{A=6;break}case 6:{A=4;break}case 4:{A=5;break}case 5:{A=1;break}}return A|0}function jn(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;t=e[A>>2]|0,f=A+4|0,r=e[f>>2]|0,u=A+8|0,i=e[u>>2]|0,n=r+(t<<1)|0,e[A>>2]=n,r=i+(r<<1)|0,e[f>>2]=r,t=(i<<1)+t|0,e[u>>2]=t,i=r-n|0,(n|0)<0?(t=t-n|0,e[f>>2]=i,e[u>>2]=t,e[A>>2]=0,r=i,i=0):i=n,(r|0)<0&&(i=i-r|0,e[A>>2]=i,t=t-r|0,e[u>>2]=t,e[f>>2]=0,r=0),s=i-t|0,n=r-t|0,(t|0)<0?(e[A>>2]=s,e[f>>2]=n,e[u>>2]=0,i=s,t=0):n=r,r=(n|0)<(i|0)?n:i,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=i-r,e[f>>2]=n-r,e[u>>2]=t-r)}function qn(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;n=e[A>>2]|0,f=A+4|0,t=e[f>>2]|0,u=A+8|0,r=e[u>>2]|0,i=(t<<1)+n|0,n=r+(n<<1)|0,e[A>>2]=n,e[f>>2]=i,t=(r<<1)+t|0,e[u>>2]=t,r=i-n|0,(n|0)<0?(t=t-n|0,e[f>>2]=r,e[u>>2]=t,e[A>>2]=0,n=0):r=i,(r|0)<0&&(n=n-r|0,e[A>>2]=n,t=t-r|0,e[u>>2]=t,e[f>>2]=0,r=0),s=n-t|0,i=r-t|0,(t|0)<0?(e[A>>2]=s,e[f>>2]=i,e[u>>2]=0,n=s,t=0):i=r,r=(i|0)<(n|0)?i:n,r=(t|0)<(r|0)?t:r,!((r|0)<=0)&&(e[A>>2]=n-r,e[f>>2]=i-r,e[u>>2]=t-r)}function mr(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0;return f=(e[A>>2]|0)-(e[t>>2]|0)|0,u=(f|0)<0,i=(e[A+4>>2]|0)-(e[t+4>>2]|0)-(u?f:0)|0,s=(i|0)<0,n=(u?0-f|0:0)+(e[A+8>>2]|0)-(e[t+8>>2]|0)+(s?0-i|0:0)|0,A=(n|0)<0,t=A?0:n,r=(s?0:i)-(A?n:0)|0,n=(u?0:f)-(s?i:0)-(A?n:0)|0,A=(r|0)<(n|0)?r:n,A=(t|0)<(A|0)?t:A,i=(A|0)>0,t=t-(i?A:0)|0,r=r-(i?A:0)|0,A=n-(i?A:0)|0,A=(A|0)>-1?A:0-A|0,r=(r|0)>-1?r:0-r|0,t=(t|0)>-1?t:0-t|0,t=(r|0)>(t|0)?r:t,((A|0)>(t|0)?A:t)|0}function mu(A,t){A=A|0,t=t|0;var r=0;r=e[A+8>>2]|0,e[t>>2]=(e[A>>2]|0)-r,e[t+4>>2]=(e[A+4>>2]|0)-r}function Eu(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0;return i=e[A>>2]|0,e[t>>2]=i,n=e[A+4>>2]|0,f=t+4|0,e[f>>2]=n,u=t+8|0,e[u>>2]=0,r=(n|0)<(i|0),A=r?i:n,r=r?n:i,(r|0)<0&&((r|0)==-2147483648||((A|0)>0?(2147483647-A|0)<(r|0):(-2147483648-A|0)>(r|0))||((A|0)>-1?(A|-2147483648|0)>=(r|0):(A^-2147483648|0)<(r|0)))?(t=1,t|0):(A=n-i|0,(i|0)<0?(r=0-i|0,e[f>>2]=A,e[u>>2]=r,e[t>>2]=0,i=0):(A=n,r=0),(A|0)<0&&(i=i-A|0,e[t>>2]=i,r=r-A|0,e[u>>2]=r,e[f>>2]=0,A=0),s=i-r|0,n=A-r|0,(r|0)<0?(e[t>>2]=s,e[f>>2]=n,e[u>>2]=0,A=n,n=s,r=0):n=i,i=(A|0)<(n|0)?A:n,i=(r|0)<(i|0)?r:i,(i|0)<=0?(t=0,t|0):(e[t>>2]=n-i,e[f>>2]=A-i,e[u>>2]=r-i,t=0,t|0))}function Wn(A){A=A|0;var t=0,r=0,i=0,n=0;t=A+8|0,n=e[t>>2]|0,r=n-(e[A>>2]|0)|0,e[A>>2]=r,i=A+4|0,A=(e[i>>2]|0)-n|0,e[i>>2]=A,e[t>>2]=0-(A+r)}function yu(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;r=e[A>>2]|0,t=0-r|0,e[A>>2]=t,f=A+8|0,e[f>>2]=0,u=A+4|0,i=e[u>>2]|0,n=i+r|0,(r|0)>0?(e[u>>2]=n,e[f>>2]=r,e[A>>2]=0,t=0,i=n):r=0,(i|0)<0?(s=t-i|0,e[A>>2]=s,r=r-i|0,e[f>>2]=r,e[u>>2]=0,n=s-r|0,t=0-r|0,(r|0)<0?(e[A>>2]=n,e[u>>2]=t,e[f>>2]=0,i=t,r=0):(i=0,n=s)):n=t,t=(i|0)<(n|0)?i:n,t=(r|0)<(t|0)?r:t,!((t|0)<=0)&&(e[A>>2]=n-t,e[u>>2]=i-t,e[f>>2]=r-t)}function Bu(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0;if(k=B,B=B+64|0,p=k,u=k+56|0,!(!0&(t&2013265920|0)==134217728&(!0&(i&2013265920|0)==134217728)))return n=5,B=k,n|0;if((A|0)==(r|0)&(t|0)==(i|0))return e[n>>2]=0,n=0,B=k,n|0;if(f=$(A|0,t|0,52)|0,b()|0,f=f&15,w=$(r|0,i|0,52)|0,b()|0,(f|0)!=(w&15|0))return n=12,B=k,n|0;if(s=f+-1|0,f>>>0>1){br(A,t,s,p)|0,br(r,i,s,u)|0,w=p,a=e[w>>2]|0,w=e[w+4>>2]|0;A:do if((a|0)==(e[u>>2]|0)&&(w|0)==(e[u+4>>2]|0)){f=(f^15)*3|0,s=$(A|0,t|0,f|0)|0,b()|0,s=s&7,f=$(r|0,i|0,f|0)|0,b()|0,f=f&7;do if((s|0)==0|(f|0)==0)e[n>>2]=1,s=0;else if((s|0)==7)s=5;else{if((s|0)==1|(f|0)==1&&WA(a,w)|0){s=5;break}if((e[15536+(s<<2)>>2]|0)!=(f|0)&&(e[15568+(s<<2)>>2]|0)!=(f|0))break A;e[n>>2]=1,s=0}while(!1);return n=s,B=k,n|0}while(!1)}s=p,f=s+56|0;do e[s>>2]=0,s=s+4|0;while((s|0)<(f|0));return xn(A,t,1,p)|0,t=p,!((e[t>>2]|0)==(r|0)&&(e[t+4>>2]|0)==(i|0))&&(t=p+8|0,!((e[t>>2]|0)==(r|0)&&(e[t+4>>2]|0)==(i|0)))&&(t=p+16|0,!((e[t>>2]|0)==(r|0)&&(e[t+4>>2]|0)==(i|0)))&&(t=p+24|0,!((e[t>>2]|0)==(r|0)&&(e[t+4>>2]|0)==(i|0)))&&(t=p+32|0,!((e[t>>2]|0)==(r|0)&&(e[t+4>>2]|0)==(i|0)))&&(t=p+40|0,!((e[t>>2]|0)==(r|0)&&(e[t+4>>2]|0)==(i|0)))?(s=p+48|0,s=((e[s>>2]|0)==(r|0)?(e[s+4>>2]|0)==(i|0):0)&1):s=1,e[n>>2]=s,n=0,B=k,n|0}function ku(A,t,r,i,n){return A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,r=hr(A,t,r,i)|0,(r|0)==7?(n=11,n|0):(i=sA(r|0,0,56)|0,t=t&-2130706433|(b()|0)|268435456,e[n>>2]=A|i,e[n+4>>2]=t,n=0,n|0)}function bu(A,t,r){return A=A|0,t=t|0,r=r|0,!0&(t&2013265920|0)==268435456?(e[r>>2]=A,e[r+4>>2]=t&-2130706433|134217728,r=0,r|0):(r=6,r|0)}function Cu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;return n=B,B=B+16|0,i=n,e[i>>2]=0,!0&(t&2013265920|0)==268435456?(s=$(A|0,t|0,56)|0,b()|0,i=o0(A,t&-2130706433|134217728,s&7,i,r)|0,B=n,i|0):(i=6,B=n,i|0)}function _u(A,t){A=A|0,t=t|0;var r=0;switch(r=$(A|0,t|0,56)|0,b()|0,r&7){case 0:case 7:return r=0,r|0}return r=t&-2130706433|134217728,!(!0&(t&2013265920|0)==268435456)||!0&(t&117440512|0)==16777216&(WA(A,r)|0)!=0?(r=0,r|0):(r=Br(A,r)|0,r|0)}function Du(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0;return n=B,B=B+16|0,i=n,!0&(t&2013265920|0)==268435456?(s=t&-2130706433|134217728,f=r,e[f>>2]=A,e[f+4>>2]=s,e[i>>2]=0,t=$(A|0,t|0,56)|0,b()|0,i=o0(A,s,t&7,i,r+8|0)|0,B=n,i|0):(i=6,B=n,i|0)}function Mu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0;return n=(WA(A,t)|0)==0,t=t&-2130706433,i=r,e[i>>2]=n?A:0,e[i+4>>2]=n?t|285212672:0,i=r+8|0,e[i>>2]=A,e[i+4>>2]=t|301989888,i=r+16|0,e[i>>2]=A,e[i+4>>2]=t|318767104,i=r+24|0,e[i>>2]=A,e[i+4>>2]=t|335544320,i=r+32|0,e[i>>2]=A,e[i+4>>2]=t|352321536,r=r+40|0,e[r>>2]=A,e[r+4>>2]=t|369098752,0}function bt(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0;return f=B,B=B+16|0,n=f,s=t&-2130706433|134217728,!0&(t&2013265920|0)==268435456?(i=$(A|0,t|0,56)|0,b()|0,i=C1(A,s,i&7)|0,(i|0)==-1?(e[r>>2]=0,s=6,B=f,s|0):(De(A,s,n)|0&&kA(27795,26932,282,26947),t=$(A|0,t|0,52)|0,b()|0,t=t&15,WA(A,s)|0?Er(n,t,i,2,r):yr(n,t,i,2,r),s=0,B=f,s|0)):(s=6,B=f,s|0)}function Pu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0;i=B,B=B+16|0,n=i,du(A,t,r,n),gu(n,r+4|0),B=i}function du(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0;if(u=B,B=B+16|0,a=u,Tu(A,r,a),s=+Et(+(1-+y[a>>3]*.5)),s<1e-16){e[i>>2]=0,e[i+4>>2]=0,e[i+8>>2]=0,e[i+12>>2]=0,B=u;return}if(a=e[r>>2]|0,n=+y[15920+(a*24|0)>>3],n=+qe(n-+qe(+qu(15600+(a<<4)|0,A))),x0(t)|0?f=+qe(n+-.3334731722518321):f=n,n=+d0(+s)*2.618033988749896,(t|0)>0){A=0;do n=n*2.6457513110645907,A=A+1|0;while((A|0)!=(t|0))}s=+zA(+f)*n,y[i>>3]=s,f=+IA(+f)*n,y[i+8>>3]=f,B=u}function Tu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;if(s=B,B=B+32|0,n=s,b1(A,n),e[t>>2]=0,y[r>>3]=5,i=+t0(16400,n),i<+y[r>>3]&&(e[t>>2]=0,y[r>>3]=i),i=+t0(16424,n),i<+y[r>>3]&&(e[t>>2]=1,y[r>>3]=i),i=+t0(16448,n),i<+y[r>>3]&&(e[t>>2]=2,y[r>>3]=i),i=+t0(16472,n),i<+y[r>>3]&&(e[t>>2]=3,y[r>>3]=i),i=+t0(16496,n),i<+y[r>>3]&&(e[t>>2]=4,y[r>>3]=i),i=+t0(16520,n),i<+y[r>>3]&&(e[t>>2]=5,y[r>>3]=i),i=+t0(16544,n),i<+y[r>>3]&&(e[t>>2]=6,y[r>>3]=i),i=+t0(16568,n),i<+y[r>>3]&&(e[t>>2]=7,y[r>>3]=i),i=+t0(16592,n),i<+y[r>>3]&&(e[t>>2]=8,y[r>>3]=i),i=+t0(16616,n),i<+y[r>>3]&&(e[t>>2]=9,y[r>>3]=i),i=+t0(16640,n),i<+y[r>>3]&&(e[t>>2]=10,y[r>>3]=i),i=+t0(16664,n),i<+y[r>>3]&&(e[t>>2]=11,y[r>>3]=i),i=+t0(16688,n),i<+y[r>>3]&&(e[t>>2]=12,y[r>>3]=i),i=+t0(16712,n),i<+y[r>>3]&&(e[t>>2]=13,y[r>>3]=i),i=+t0(16736,n),i<+y[r>>3]&&(e[t>>2]=14,y[r>>3]=i),i=+t0(16760,n),i<+y[r>>3]&&(e[t>>2]=15,y[r>>3]=i),i=+t0(16784,n),i<+y[r>>3]&&(e[t>>2]=16,y[r>>3]=i),i=+t0(16808,n),i<+y[r>>3]&&(e[t>>2]=17,y[r>>3]=i),i=+t0(16832,n),i<+y[r>>3]&&(e[t>>2]=18,y[r>>3]=i),i=+t0(16856,n),!(i<+y[r>>3])){B=s;return}e[t>>2]=19,y[r>>3]=i,B=s}function He(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0;if(s=+k1(A),s<1e-16){t=15600+(t<<4)|0,e[n>>2]=e[t>>2],e[n+4>>2]=e[t+4>>2],e[n+8>>2]=e[t+8>>2],e[n+12>>2]=e[t+12>>2];return}if(f=+T0(+ +y[A+8>>3],+ +y[A>>3]),(r|0)>0){A=0;do s=s*.37796447300922725,A=A+1|0;while((A|0)!=(r|0))}u=s*.3333333333333333,i?(r=(x0(r)|0)==0,s=+fr(+((r?u:u*.37796447300922725)*.381966011250105))):(s=+fr(+(s*.381966011250105)),x0(r)|0&&(f=+qe(f+.3334731722518321))),Wu(15600+(t<<4)|0,+qe(+y[15920+(t*24|0)>>3]-f),s,n)}function xu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0;i=B,B=B+16|0,n=i,fe(A+4|0,n),He(n,e[A>>2]|0,t,0,r),B=i}function Er(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0,PA=0,SA=0,BA=0,gA=0,iA=0,xA=0,jA=0,dA=0;if(xA=B,B=B+272|0,s=xA+256|0,U=xA+240|0,BA=xA,gA=xA+224|0,iA=xA+208|0,G=xA+176|0,L=xA+160|0,nA=xA+192|0,cA=xA+144|0,fA=xA+128|0,DA=xA+112|0,PA=xA+96|0,SA=xA+80|0,e[s>>2]=t,e[U>>2]=e[A>>2],e[U+4>>2]=e[A+4>>2],e[U+8>>2]=e[A+8>>2],e[U+12>>2]=e[A+12>>2],Zn(U,s,BA),e[n>>2]=0,U=i+r+((i|0)==5&1)|0,(U|0)<=(r|0)){B=xA;return}a=e[s>>2]|0,w=gA+4|0,p=G+4|0,k=r+5|0,M=16880+(a<<2)|0,P=16960+(a<<2)|0,d=fA+8|0,I=DA+8|0,O=PA+8|0,j=iA+4|0,u=r;A:for(;;){f=BA+(((u|0)%5|0)<<4)|0,e[iA>>2]=e[f>>2],e[iA+4>>2]=e[f+4>>2],e[iA+8>>2]=e[f+8>>2],e[iA+12>>2]=e[f+12>>2];do;while((_e(iA,a,0,1)|0)==2);if((u|0)>(r|0)&(x0(t)|0)!=0){if(e[G>>2]=e[iA>>2],e[G+4>>2]=e[iA+4>>2],e[G+8>>2]=e[iA+8>>2],e[G+12>>2]=e[iA+12>>2],fe(w,L),i=e[G>>2]|0,s=e[17040+(i*80|0)+(e[gA>>2]<<2)>>2]|0,e[G>>2]=e[18640+(i*80|0)+(s*20|0)>>2],f=e[18640+(i*80|0)+(s*20|0)+16>>2]|0,(f|0)>0){A=0;do Hn(p),A=A+1|0;while((A|0)<(f|0))}switch(f=18640+(i*80|0)+(s*20|0)+4|0,e[nA>>2]=e[f>>2],e[nA+4>>2]=e[f+4>>2],e[nA+8>>2]=e[f+8>>2],zn(nA,(e[M>>2]|0)*3|0),w0(p,nA,p),c0(p),fe(p,cA),jA=+(e[P>>2]|0),y[fA>>3]=jA*3,y[d>>3]=0,dA=jA*-1.5,y[DA>>3]=dA,y[I>>3]=jA*2.598076211353316,y[PA>>3]=dA,y[O>>3]=jA*-2.598076211353316,e[17040+((e[G>>2]|0)*80|0)+(e[iA>>2]<<2)>>2]|0){case 1:{A=DA,i=fA;break}case 3:{A=PA,i=DA;break}case 2:{A=fA,i=PA;break}default:{A=12;break A}}hs(L,cA,i,A,SA),He(SA,e[G>>2]|0,a,1,n+8+(e[n>>2]<<4)|0),e[n>>2]=(e[n>>2]|0)+1}if((u|0)<(k|0)&&(fe(j,G),He(G,e[iA>>2]|0,a,1,n+8+(e[n>>2]<<4)|0),e[n>>2]=(e[n>>2]|0)+1),e[gA>>2]=e[iA>>2],e[gA+4>>2]=e[iA+4>>2],e[gA+8>>2]=e[iA+8>>2],e[gA+12>>2]=e[iA+12>>2],u=u+1|0,(u|0)>=(U|0)){A=3;break}}if((A|0)==3){B=xA;return}else(A|0)==12&&kA(26970,27017,572,27027)}function Zn(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0;a=B,B=B+128|0,i=a+64|0,n=a,s=i,f=20240,u=s+60|0;do e[s>>2]=e[f>>2],s=s+4|0,f=f+4|0;while((s|0)<(u|0));s=n,f=20304,u=s+60|0;do e[s>>2]=e[f>>2],s=s+4|0,f=f+4|0;while((s|0)<(u|0));u=(x0(e[t>>2]|0)|0)==0,i=u?i:n,n=A+4|0,jn(n),qn(n),x0(e[t>>2]|0)|0&&(ue(n),e[t>>2]=(e[t>>2]|0)+1),e[r>>2]=e[A>>2],t=r+4|0,w0(n,i,t),c0(t),e[r+16>>2]=e[A>>2],t=r+20|0,w0(n,i+12|0,t),c0(t),e[r+32>>2]=e[A>>2],t=r+36|0,w0(n,i+24|0,t),c0(t),e[r+48>>2]=e[A>>2],t=r+52|0,w0(n,i+36|0,t),c0(t),e[r+64>>2]=e[A>>2],r=r+68|0,w0(n,i+48|0,r),c0(r),B=a}function _e(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0;if(d=B,B=B+32|0,M=d+12|0,u=d,P=A+4|0,k=e[16960+(t<<2)>>2]|0,p=(i|0)!=0,k=p?k*3|0:k,n=e[P>>2]|0,w=A+8|0,f=e[w>>2]|0,p){if(s=A+12|0,i=e[s>>2]|0,n=f+n+i|0,(n|0)==(k|0))return P=1,B=d,P|0;a=s}else a=A+12|0,i=e[a>>2]|0,n=f+n+i|0;if((n|0)<=(k|0))return P=0,B=d,P|0;do if((i|0)>0){if(i=e[A>>2]|0,(f|0)>0){s=18640+(i*80|0)+60|0,i=A;break}i=18640+(i*80|0)+40|0,r?(cu(M,k,0,0),vr(P,M,u),kt(u),w0(u,M,P),s=i,i=A):(s=i,i=A)}else s=18640+((e[A>>2]|0)*80|0)+20|0,i=A;while(!1);if(e[i>>2]=e[s>>2],n=s+16|0,(e[n>>2]|0)>0){i=0;do Hn(P),i=i+1|0;while((i|0)<(e[n>>2]|0))}return A=s+4|0,e[M>>2]=e[A>>2],e[M+4>>2]=e[A+4>>2],e[M+8>>2]=e[A+8>>2],t=e[16880+(t<<2)>>2]|0,zn(M,p?t*3|0:t),w0(P,M,P),c0(P),p?i=((e[w>>2]|0)+(e[P>>2]|0)+(e[a>>2]|0)|0)==(k|0)?1:2:i=2,P=i,B=d,P|0}function Qu(A,t){A=A|0,t=t|0;var r=0;do r=_e(A,t,0,1)|0;while((r|0)==2);return r|0}function yr(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0,PA=0,SA=0,BA=0;if(PA=B,B=B+240|0,s=PA+224|0,nA=PA+208|0,cA=PA,fA=PA+192|0,DA=PA+176|0,O=PA+160|0,j=PA+144|0,U=PA+128|0,G=PA+112|0,L=PA+96|0,e[s>>2]=t,e[nA>>2]=e[A>>2],e[nA+4>>2]=e[A+4>>2],e[nA+8>>2]=e[A+8>>2],e[nA+12>>2]=e[A+12>>2],Kn(nA,s,cA),e[n>>2]=0,I=i+r+((i|0)==6&1)|0,(I|0)<=(r|0)){B=PA;return}a=e[s>>2]|0,w=r+6|0,p=16960+(a<<2)|0,k=j+8|0,M=U+8|0,P=G+8|0,d=fA+4|0,f=0,u=r,i=-1;A:for(;;){if(s=(u|0)%6|0,A=cA+(s<<4)|0,e[fA>>2]=e[A>>2],e[fA+4>>2]=e[A+4>>2],e[fA+8>>2]=e[A+8>>2],e[fA+12>>2]=e[A+12>>2],A=f,f=_e(fA,a,0,1)|0,(u|0)>(r|0)&(x0(t)|0)!=0&&(A|0)!=1&&(e[fA>>2]|0)!=(i|0)){switch(fe(cA+(((s+5|0)%6|0)<<4)+4|0,DA),fe(cA+(s<<4)+4|0,O),SA=+(e[p>>2]|0),y[j>>3]=SA*3,y[k>>3]=0,BA=SA*-1.5,y[U>>3]=BA,y[M>>3]=SA*2.598076211353316,y[G>>3]=BA,y[P>>3]=SA*-2.598076211353316,s=e[nA>>2]|0,e[17040+(s*80|0)+(((i|0)==(s|0)?e[fA>>2]|0:i)<<2)>>2]|0){case 1:{A=U,i=j;break}case 3:{A=G,i=U;break}case 2:{A=j,i=G;break}default:{A=8;break A}}hs(DA,O,i,A,L),!(as(DA,L)|0)&&!(as(O,L)|0)&&(He(L,e[nA>>2]|0,a,1,n+8+(e[n>>2]<<4)|0),e[n>>2]=(e[n>>2]|0)+1)}if((u|0)<(w|0)&&(fe(d,DA),He(DA,e[fA>>2]|0,a,1,n+8+(e[n>>2]<<4)|0),e[n>>2]=(e[n>>2]|0)+1),u=u+1|0,(u|0)>=(I|0)){A=3;break}else i=e[fA>>2]|0}if((A|0)==3){B=PA;return}else(A|0)==8&&kA(27054,27017,737,27099)}function Kn(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0;a=B,B=B+160|0,i=a+80|0,n=a,s=i,f=20368,u=s+72|0;do e[s>>2]=e[f>>2],s=s+4|0,f=f+4|0;while((s|0)<(u|0));s=n,f=20448,u=s+72|0;do e[s>>2]=e[f>>2],s=s+4|0,f=f+4|0;while((s|0)<(u|0));u=(x0(e[t>>2]|0)|0)==0,i=u?i:n,n=A+4|0,jn(n),qn(n),x0(e[t>>2]|0)|0&&(ue(n),e[t>>2]=(e[t>>2]|0)+1),e[r>>2]=e[A>>2],t=r+4|0,w0(n,i,t),c0(t),e[r+16>>2]=e[A>>2],t=r+20|0,w0(n,i+12|0,t),c0(t),e[r+32>>2]=e[A>>2],t=r+36|0,w0(n,i+24|0,t),c0(t),e[r+48>>2]=e[A>>2],t=r+52|0,w0(n,i+36|0,t),c0(t),e[r+64>>2]=e[A>>2],t=r+68|0,w0(n,i+48|0,t),c0(t),e[r+80>>2]=e[A>>2],r=r+84|0,w0(n,i+60|0,r),c0(r),B=a}function Iu(A,t){return A=A|0,t=t|0,t=$(A|0,t|0,52)|0,b()|0,t&15|0}function Jn(A,t){return A=A|0,t=t|0,t=$(A|0,t|0,45)|0,b()|0,t&127|0}function Br(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0;return!(!0&(t&-16777216|0)==134217728)||(i=$(A|0,t|0,52)|0,b()|0,i=i&15,r=$(A|0,t|0,45)|0,b()|0,r=r&127,r>>>0>121)?(A=0,A|0):(f=(i^15)*3|0,n=$(A|0,t|0,f|0)|0,f=sA(n|0,b()|0,f|0)|0,n=b()|0,s=h0(-1227133514,-1171,f|0,n|0)|0,!((f&613566756&s|0)==0&(n&4681&(b()|0)|0)==0)||(f=(i*3|0)+19|0,s=sA(~A|0,~t|0,f|0)|0,f=$(s|0,b()|0,f|0)|0,!((i|0)==15|(f|0)==0&(b()|0)==0))?(f=0,f|0):!(AA[20528+r>>0]|0)||(t=t&8191,(A|0)==0&(t|0)==0)?(f=1,f|0):(f=Es(A|0,t|0)|0,b()|0,((63-f|0)%3|0|0)!=0|0))}function kr(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0;if(n=sA(t|0,0,52)|0,s=b()|0,r=sA(r|0,0,45)|0,r=s|(b()|0)|134225919,(t|0)<1){s=-1,i=r,t=A,e[t>>2]=s,A=A+4|0,e[A>>2]=i;return}for(s=1,n=-1;f=(15-s|0)*3|0,u=sA(7,0,f|0)|0,r=r&~(b()|0),f=sA(i|0,0,f|0)|0,n=n&~u|f,r=r|(b()|0),(s|0)!=(t|0);)s=s+1|0;u=A,f=u,e[f>>2]=n,u=u+4|0,e[u>>2]=r}function br(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0;if(s=$(A|0,t|0,52)|0,b()|0,s=s&15,r>>>0>15)return i=4,i|0;if((s|0)<(r|0))return i=12,i|0;if((s|0)==(r|0))return e[i>>2]=A,e[i+4>>2]=t,i=0,i|0;if(n=sA(r|0,0,52)|0,n=n|A,A=b()|0|t&-15728641,(s|0)>(r|0))do t=sA(7,0,(14-r|0)*3|0)|0,r=r+1|0,n=t|n,A=b()|0|A;while((r|0)<(s|0));return e[i>>2]=n,e[i+4>>2]=A,i=0,i|0}function je(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0;if(s=$(A|0,t|0,52)|0,b()|0,s=s&15,!((r|0)<16&(s|0)<=(r|0)))return i=4,i|0;n=r-s|0,r=$(A|0,t|0,45)|0,b()|0;A:do if(!(JA(r&127)|0))r=$0(7,0,n,((n|0)<0)<<31>>31)|0,n=b()|0;else{e:do if(s|0){for(r=1;f=sA(7,0,(15-r|0)*3|0)|0,!!((f&A|0)==0&((b()|0)&t|0)==0);)if(r>>>0<s>>>0)r=r+1|0;else break e;r=$0(7,0,n,((n|0)<0)<<31>>31)|0,n=b()|0;break A}while(!1);r=$0(7,0,n,((n|0)<0)<<31>>31)|0,r=l0(r|0,b()|0,5,0)|0,r=vA(r|0,b()|0,-5,-1)|0,r=ee(r|0,b()|0,6,0)|0,r=vA(r|0,b()|0,1,0)|0,n=b()|0}while(!1);return f=i,e[f>>2]=r,e[f+4>>2]=n,f=0,f|0}function WA(A,t){A=A|0,t=t|0;var r=0,i=0,n=0;if(n=$(A|0,t|0,45)|0,b()|0,!(JA(n&127)|0))return n=0,n|0;n=$(A|0,t|0,52)|0,b()|0,n=n&15;A:do if(!n)r=0;else for(i=1;;){if(r=$(A|0,t|0,(15-i|0)*3|0)|0,b()|0,r=r&7,r|0)break A;if(i>>>0<n>>>0)i=i+1|0;else{r=0;break}}while(!1);return n=(r|0)==0&1,n|0}function Su(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0;if(f=B,B=B+16|0,s=f,dr(s,A,t,r),t=s,A=e[t>>2]|0,t=e[t+4>>2]|0,(A|0)==0&(t|0)==0)return B=f,0;n=0,r=0;do u=i+(n<<3)|0,e[u>>2]=A,e[u+4>>2]=t,n=vA(n|0,r|0,1,0)|0,r=b()|0,Tr(s),u=s,A=e[u>>2]|0,t=e[u+4>>2]|0;while(!((A|0)==0&(t|0)==0));return B=f,0}function Xn(A,t,r,i){return A=A|0,t=t|0,r=r|0,i=i|0,(i|0)<(r|0)?(r=t,i=A,MA(r|0),i|0):(r=sA(-1,-1,((i-r|0)*3|0)+3|0)|0,i=sA(~r|0,~(b()|0)|0,(15-i|0)*3|0)|0,r=~(b()|0)&t,i=~i&A,MA(r|0),i|0)}function $n(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0;return n=$(A|0,t|0,52)|0,b()|0,n=n&15,(r|0)<16&(n|0)<=(r|0)?((n|0)<(r|0)&&(n=sA(-1,-1,((r+-1-n|0)*3|0)+3|0)|0,n=sA(~n|0,~(b()|0)|0,(15-r|0)*3|0)|0,t=~(b()|0)&t,A=~n&A),n=sA(r|0,0,52)|0,r=t&-15728641|(b()|0),e[i>>2]=A|n,e[i+4>>2]=r,i=0,i|0):(i=4,i|0)}function Lu(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0,PA=0,SA=0,BA=0,gA=0,iA=0;if((r|0)==0&(i|0)==0)return iA=0,iA|0;if(n=A,s=e[n>>2]|0,n=e[n+4>>2]|0,!0&(n&15728640|0)==0){if(!((i|0)>0|(i|0)==0&r>>>0>0)||(iA=t,e[iA>>2]=s,e[iA+4>>2]=n,(r|0)==1&(i|0)==0))return iA=0,iA|0;n=1,s=0;do BA=A+(n<<3)|0,gA=e[BA+4>>2]|0,iA=t+(n<<3)|0,e[iA>>2]=e[BA>>2],e[iA+4>>2]=gA,n=vA(n|0,s|0,1,0)|0,s=b()|0;while((s|0)<(i|0)|(s|0)==(i|0)&n>>>0<r>>>0);return n=0,n|0}if(SA=r<<3,gA=N0(SA)|0,!gA)return iA=13,iA|0;if(xe(gA|0,A|0,SA|0)|0,BA=B0(r,8)|0,!BA)return mA(gA),iA=13,iA|0;A:for(;;){n=gA,w=e[n>>2]|0,n=e[n+4>>2]|0,DA=$(w|0,n|0,52)|0,b()|0,DA=DA&15,PA=DA+-1|0,fA=(DA|0)!=0,cA=(i|0)>0|(i|0)==0&r>>>0>0;e:do if(fA&cA){if(U=sA(PA|0,0,52)|0,G=b()|0,PA>>>0>15){if(!((w|0)==0&(n|0)==0)){iA=16;break A}for(s=0,A=0;;){if(s=vA(s|0,A|0,1,0)|0,A=b()|0,!((A|0)<(i|0)|(A|0)==(i|0)&s>>>0<r>>>0))break e;if(f=gA+(s<<3)|0,nA=e[f>>2]|0,f=e[f+4>>2]|0,!((nA|0)==0&(f|0)==0)){n=f,iA=16;break A}}}for(u=w,A=n,s=0,f=0;;){if(!((u|0)==0&(A|0)==0)){if(!(!0&(A&117440512|0)==0)){iA=21;break A}if(p=$(u|0,A|0,52)|0,b()|0,p=p&15,(p|0)<(PA|0)){n=12,iA=27;break A}if((p|0)!=(PA|0)&&(u=u|U,A=A&-15728641|G,p>>>0>=DA>>>0)){a=PA;do nA=sA(7,0,(14-a|0)*3|0)|0,a=a+1|0,u=nA|u,A=b()|0|A;while(a>>>0<p>>>0)}if(M=Te(u|0,A|0,r|0,i|0)|0,P=b()|0,a=BA+(M<<3)|0,p=a,k=e[p>>2]|0,p=e[p+4>>2]|0,!((k|0)==0&(p|0)==0)){O=0,j=0;do{if((O|0)>(i|0)|(O|0)==(i|0)&j>>>0>r>>>0){iA=31;break A}if((k|0)==(u|0)&(p&-117440513|0)==(A|0)){d=$(k|0,p|0,56)|0,b()|0,d=d&7,I=d+1|0,nA=$(k|0,p|0,45)|0,b()|0;t:do if(!(JA(nA&127)|0))p=7;else{if(k=$(k|0,p|0,52)|0,b()|0,k=k&15,!k){p=6;break}for(p=1;;){if(nA=sA(7,0,(15-p|0)*3|0)|0,!((nA&u|0)==0&((b()|0)&A|0)==0)){p=7;break t}if(p>>>0<k>>>0)p=p+1|0;else{p=6;break}}}while(!1);if((d+2|0)>>>0>p>>>0){iA=41;break A}nA=sA(I|0,0,56)|0,A=b()|0|A&-117440513,L=a,e[L>>2]=0,e[L+4>>2]=0,u=nA|u}else M=vA(M|0,P|0,1,0)|0,M=de(M|0,b()|0,r|0,i|0)|0,P=b()|0;j=vA(j|0,O|0,1,0)|0,O=b()|0,a=BA+(M<<3)|0,p=a,k=e[p>>2]|0,p=e[p+4>>2]|0}while(!((k|0)==0&(p|0)==0))}nA=a,e[nA>>2]=u,e[nA+4>>2]=A}if(s=vA(s|0,f|0,1,0)|0,f=b()|0,!((f|0)<(i|0)|(f|0)==(i|0)&s>>>0<r>>>0))break e;A=gA+(s<<3)|0,u=e[A>>2]|0,A=e[A+4>>2]|0}}while(!1);if(nA=vA(r|0,i|0,5,0)|0,L=b()|0,L>>>0<0|(L|0)==0&nA>>>0<11){iA=85;break}if(nA=ee(r|0,i|0,6,0)|0,b()|0,nA=B0(nA,8)|0,!nA){iA=48;break}do if(cA){for(I=0,A=0,d=0,O=0;;){if(p=BA+(I<<3)|0,f=p,s=e[f>>2]|0,f=e[f+4>>2]|0,(s|0)==0&(f|0)==0)L=d;else{k=$(s|0,f|0,56)|0,b()|0,k=k&7,u=k+1|0,M=f&-117440513,L=$(s|0,f|0,45)|0,b()|0;e:do if(JA(L&127)|0){if(P=$(s|0,f|0,52)|0,b()|0,P=P&15,P|0)for(a=1;;){if(L=sA(7,0,(15-a|0)*3|0)|0,!((s&L|0)==0&(M&(b()|0)|0)==0))break e;if(a>>>0<P>>>0)a=a+1|0;else break}f=sA(u|0,0,56)|0,s=f|s,f=b()|0|M,u=p,e[u>>2]=s,e[u+4>>2]=f,u=k+2|0}while(!1);(u|0)==7?(L=nA+(A<<3)|0,e[L>>2]=s,e[L+4>>2]=f&-117440513,A=vA(A|0,d|0,1,0)|0,L=b()|0):L=d}if(I=vA(I|0,O|0,1,0)|0,O=b()|0,(O|0)<(i|0)|(O|0)==(i|0)&I>>>0<r>>>0)d=L;else break}if(cA){if(j=PA>>>0>15,U=sA(PA|0,0,52)|0,G=b()|0,!fA){for(s=0,a=0,u=0,f=0;(w|0)==0&(n|0)==0||(PA=t+(s<<3)|0,e[PA>>2]=w,e[PA+4>>2]=n,s=vA(s|0,a|0,1,0)|0,a=b()|0),u=vA(u|0,f|0,1,0)|0,f=b()|0,!!((f|0)<(i|0)|(f|0)==(i|0)&u>>>0<r>>>0);)n=gA+(u<<3)|0,w=e[n>>2]|0,n=e[n+4>>2]|0;n=L;break}for(s=0,a=0,f=0,u=0;;){do if(!((w|0)==0&(n|0)==0)){if(P=$(w|0,n|0,52)|0,b()|0,P=P&15,j|(P|0)<(PA|0)){iA=80;break A}if((P|0)!=(PA|0)){if(p=w|U,k=n&-15728641|G,P>>>0>=DA>>>0){M=PA;do fA=sA(7,0,(14-M|0)*3|0)|0,M=M+1|0,p=fA|p,k=b()|0|k;while(M>>>0<P>>>0)}}else p=w,k=n;d=Te(p|0,k|0,r|0,i|0)|0,M=0,P=0,O=b()|0;do{if((M|0)>(i|0)|(M|0)==(i|0)&P>>>0>r>>>0){iA=81;break A}if(fA=BA+(d<<3)|0,I=e[fA+4>>2]|0,(I&-117440513|0)==(k|0)&&(e[fA>>2]|0)==(p|0)){iA=65;break}fA=vA(d|0,O|0,1,0)|0,d=de(fA|0,b()|0,r|0,i|0)|0,O=b()|0,P=vA(P|0,M|0,1,0)|0,M=b()|0,fA=BA+(d<<3)|0}while(!((e[fA>>2]|0)==(p|0)&&(e[fA+4>>2]|0)==(k|0)));if((iA|0)==65&&(iA=0,!0&(I&117440512|0)==100663296))break;fA=t+(s<<3)|0,e[fA>>2]=w,e[fA+4>>2]=n,s=vA(s|0,a|0,1,0)|0,a=b()|0}while(!1);if(f=vA(f|0,u|0,1,0)|0,u=b()|0,!((u|0)<(i|0)|(u|0)==(i|0)&f>>>0<r>>>0))break;n=gA+(f<<3)|0,w=e[n>>2]|0,n=e[n+4>>2]|0}n=L}else s=0,n=L}else s=0,A=0,n=0;while(!1);if(te(BA|0,0,SA|0)|0,xe(gA|0,nA|0,A<<3|0)|0,mA(nA),(A|0)==0&(n|0)==0){iA=89;break}else t=t+(s<<3)|0,i=n,r=A}if((iA|0)==16)!0&(n&117440512|0)==0?(n=4,iA=27):iA=21;else if((iA|0)==31)kA(27795,27122,529,27132);else{if((iA|0)==41)return mA(gA),mA(BA),iA=10,iA|0;if((iA|0)==48)return mA(gA),mA(BA),iA=13,iA|0;(iA|0)==80?kA(27795,27122,620,27132):(iA|0)==81?kA(27795,27122,632,27132):(iA|0)==85&&(xe(t|0,gA|0,r<<3|0)|0,iA=89)}return(iA|0)==21?(mA(gA),mA(BA),iA=5,iA|0):(iA|0)==27?(mA(gA),mA(BA),iA=n,iA|0):(iA|0)==89?(mA(gA),mA(BA),iA=0,iA|0):0}function Fu(A,t,r,i,n,s,f){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,s=s|0,f=f|0;var u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0;if(I=B,B=B+16|0,d=I,!((r|0)>0|(r|0)==0&t>>>0>0))return d=0,B=I,d|0;if((f|0)>=16)return d=12,B=I,d|0;M=0,P=0,k=0,u=0;A:for(;;){if(w=A+(M<<3)|0,a=e[w>>2]|0,w=e[w+4>>2]|0,p=$(a|0,w|0,52)|0,b()|0,(p&15|0)>(f|0)){u=12,a=11;break}if(dr(d,a,w,f),p=d,w=e[p>>2]|0,p=e[p+4>>2]|0,(w|0)==0&(p|0)==0)a=k;else{a=k;do{if(!((u|0)<(s|0)|(u|0)==(s|0)&a>>>0<n>>>0)){a=10;break A}k=i+(a<<3)|0,e[k>>2]=w,e[k+4>>2]=p,a=vA(a|0,u|0,1,0)|0,u=b()|0,Tr(d),k=d,w=e[k>>2]|0,p=e[k+4>>2]|0}while(!((w|0)==0&(p|0)==0))}if(M=vA(M|0,P|0,1,0)|0,P=b()|0,(P|0)<(r|0)|(P|0)==(r|0)&M>>>0<t>>>0)k=a;else{u=0,a=11;break}}return(a|0)==10?(d=14,B=I,d|0):(a|0)==11?(B=I,u|0):0}function Ru(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0;M=B,B=B+16|0,k=M;A:do if((r|0)>0|(r|0)==0&t>>>0>0){for(w=0,f=0,s=0,p=0;;){if(a=A+(w<<3)|0,u=e[a>>2]|0,a=e[a+4>>2]|0,!((u|0)==0&(a|0)==0)&&(a=(je(u,a,i,k)|0)==0,u=k,f=vA(e[u>>2]|0,e[u+4>>2]|0,f|0,s|0)|0,s=b()|0,!a)){s=12;break}if(w=vA(w|0,p|0,1,0)|0,p=b()|0,!((p|0)<(r|0)|(p|0)==(r|0)&w>>>0<t>>>0))break A}return B=M,s|0}else f=0,s=0;while(!1);return e[n>>2]=f,e[n+4>>2]=s,n=0,B=M,n|0}function Ou(A,t){return A=A|0,t=t|0,t=$(A|0,t|0,52)|0,b()|0,t&1|0}function y0(A,t){A=A|0,t=t|0;var r=0,i=0,n=0;if(n=$(A|0,t|0,52)|0,b()|0,n=n&15,!n)return n=0,n|0;for(i=1;;){if(r=$(A|0,t|0,(15-i|0)*3|0)|0,b()|0,r=r&7,r|0){i=5;break}if(i>>>0<n>>>0)i=i+1|0;else{r=0,i=5;break}}return(i|0)==5?r|0:0}function Cr(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0;if(a=$(A|0,t|0,52)|0,b()|0,a=a&15,!a)return u=t,a=A,MA(u|0),a|0;for(u=1,r=0;;){s=(15-u|0)*3|0,i=sA(7,0,s|0)|0,n=b()|0,f=$(A|0,t|0,s|0)|0,b()|0,s=sA(he(f&7)|0,0,s|0)|0,f=b()|0,A=s|A&~i,t=f|t&~n;A:do if(!r)if((s&i|0)==0&(f&n|0)==0)r=0;else if(i=$(A|0,t|0,52)|0,b()|0,i=i&15,!i)r=1;else{r=1;e:for(;;){switch(f=$(A|0,t|0,(15-r|0)*3|0)|0,b()|0,f&7){case 1:break e;case 0:break;default:{r=1;break A}}if(r>>>0<i>>>0)r=r+1|0;else{r=1;break A}}for(r=1;;)if(f=(15-r|0)*3|0,n=$(A|0,t|0,f|0)|0,b()|0,s=sA(7,0,f|0)|0,t=t&~(b()|0),f=sA(he(n&7)|0,0,f|0)|0,A=A&~s|f,t=t|(b()|0),r>>>0<i>>>0)r=r+1|0;else{r=1;break}}while(!1);if(u>>>0<a>>>0)u=u+1|0;else break}return MA(t|0),A|0}function ae(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0;if(i=$(A|0,t|0,52)|0,b()|0,i=i&15,!i)return r=t,i=A,MA(r|0),i|0;for(r=1;s=(15-r|0)*3|0,f=$(A|0,t|0,s|0)|0,b()|0,n=sA(7,0,s|0)|0,t=t&~(b()|0),s=sA(he(f&7)|0,0,s|0)|0,A=s|A&~n,t=b()|0|t,r>>>0<i>>>0;)r=r+1|0;return MA(t|0),A|0}function Gu(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0;if(a=$(A|0,t|0,52)|0,b()|0,a=a&15,!a)return u=t,a=A,MA(u|0),a|0;for(u=1,r=0;;){s=(15-u|0)*3|0,i=sA(7,0,s|0)|0,n=b()|0,f=$(A|0,t|0,s|0)|0,b()|0,s=sA(X0(f&7)|0,0,s|0)|0,f=b()|0,A=s|A&~i,t=f|t&~n;A:do if(!r)if((s&i|0)==0&(f&n|0)==0)r=0;else if(i=$(A|0,t|0,52)|0,b()|0,i=i&15,!i)r=1;else{r=1;e:for(;;){switch(f=$(A|0,t|0,(15-r|0)*3|0)|0,b()|0,f&7){case 1:break e;case 0:break;default:{r=1;break A}}if(r>>>0<i>>>0)r=r+1|0;else{r=1;break A}}for(r=1;;)if(n=(15-r|0)*3|0,s=sA(7,0,n|0)|0,f=t&~(b()|0),t=$(A|0,t|0,n|0)|0,b()|0,t=sA(X0(t&7)|0,0,n|0)|0,A=A&~s|t,t=f|(b()|0),r>>>0<i>>>0)r=r+1|0;else{r=1;break}}while(!1);if(u>>>0<a>>>0)u=u+1|0;else break}return MA(t|0),A|0}function _r(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0;if(i=$(A|0,t|0,52)|0,b()|0,i=i&15,!i)return r=t,i=A,MA(r|0),i|0;for(r=1;f=(15-r|0)*3|0,s=sA(7,0,f|0)|0,n=t&~(b()|0),t=$(A|0,t|0,f|0)|0,b()|0,t=sA(X0(t&7)|0,0,f|0)|0,A=t|A&~s,t=b()|0|n,r>>>0<i>>>0;)r=r+1|0;return MA(t|0),A|0}function Nu(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(a=B,B=B+64|0,u=a+40|0,i=a+24|0,n=a+12|0,s=a,sA(t|0,0,52)|0,r=b()|0|134225919,!t)return(e[A+4>>2]|0)>2||(e[A+8>>2]|0)>2||(e[A+12>>2]|0)>2?(f=0,u=0,MA(f|0),B=a,u|0):(sA(Fn(A)|0,0,45)|0,f=b()|0|r,u=-1,MA(f|0),B=a,u|0);if(e[u>>2]=e[A>>2],e[u+4>>2]=e[A+4>>2],e[u+8>>2]=e[A+8>>2],e[u+12>>2]=e[A+12>>2],f=u+4|0,(t|0)>0)for(A=-1;e[i>>2]=e[f>>2],e[i+4>>2]=e[f+4>>2],e[i+8>>2]=e[f+8>>2],t&1?(vu(f),e[n>>2]=e[f>>2],e[n+4>>2]=e[f+4>>2],e[n+8>>2]=e[f+8>>2],Bt(n)):(Yn(f),e[n>>2]=e[f>>2],e[n+4>>2]=e[f+4>>2],e[n+8>>2]=e[f+8>>2],ue(n)),vr(i,n,s),c0(s),p=(15-t|0)*3|0,w=sA(7,0,p|0)|0,r=r&~(b()|0),p=sA(yt(s)|0,0,p|0)|0,A=p|A&~w,r=b()|0|r,(t|0)>1;)t=t+-1|0;else A=-1;A:do if((e[f>>2]|0)<=2&&(e[u+8>>2]|0)<=2&&(e[u+12>>2]|0)<=2){if(i=Fn(u)|0,t=sA(i|0,0,45)|0,t=t|A,A=b()|0|r&-1040385,s=ru(u)|0,!(JA(i)|0)){if((s|0)<=0)break;for(n=0;;){if(i=$(t|0,A|0,52)|0,b()|0,i=i&15,i)for(r=1;p=(15-r|0)*3|0,u=$(t|0,A|0,p|0)|0,b()|0,w=sA(7,0,p|0)|0,A=A&~(b()|0),p=sA(he(u&7)|0,0,p|0)|0,t=t&~w|p,A=A|(b()|0),r>>>0<i>>>0;)r=r+1|0;if(n=n+1|0,(n|0)==(s|0))break A}}n=$(t|0,A|0,52)|0,b()|0,n=n&15;e:do if(n){r=1;t:for(;;){switch(p=$(t|0,A|0,(15-r|0)*3|0)|0,b()|0,p&7){case 1:break t;case 0:break;default:break e}if(r>>>0<n>>>0)r=r+1|0;else break e}if(Rn(i,e[u>>2]|0)|0)for(r=1;u=(15-r|0)*3|0,w=sA(7,0,u|0)|0,p=A&~(b()|0),A=$(t|0,A|0,u|0)|0,b()|0,A=sA(X0(A&7)|0,0,u|0)|0,t=t&~w|A,A=p|(b()|0),r>>>0<n>>>0;)r=r+1|0;else for(r=1;p=(15-r|0)*3|0,u=$(t|0,A|0,p|0)|0,b()|0,w=sA(7,0,p|0)|0,A=A&~(b()|0),p=sA(he(u&7)|0,0,p|0)|0,t=t&~w|p,A=A|(b()|0),r>>>0<n>>>0;)r=r+1|0}while(!1);if((s|0)>0){r=0;do t=Cr(t,A)|0,A=b()|0,r=r+1|0;while((r|0)!=(s|0))}}else t=0,A=0;while(!1);return w=A,p=t,MA(w|0),B=a,p|0}function x0(A){return A=A|0,(A|0)%2|0|0}function Dr(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0;return n=B,B=B+16|0,i=n,t>>>0>15?(i=4,B=n,i|0):(e[A+4>>2]&2146435072|0)==2146435072||(e[A+8+4>>2]&2146435072|0)==2146435072?(i=3,B=n,i|0):(Pu(A,t,i),t=Nu(i,t)|0,i=b()|0,e[r>>2]=t,e[r+4>>2]=i,(t|0)==0&(i|0)==0&&kA(27795,27122,959,27145),i=0,B=n,i|0)}function Mr(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0;if(n=r+4|0,s=$(A|0,t|0,52)|0,b()|0,s=s&15,f=$(A|0,t|0,45)|0,b()|0,i=(s|0)==0,JA(f&127)|0){if(i)return f=1,f|0;i=1}else{if(i)return f=0,f|0;(e[n>>2]|0)==0&&(e[r+8>>2]|0)==0?i=(e[r+12>>2]|0)!=0&1:i=1}for(r=1;r&1?Bt(n):ue(n),f=$(A|0,t|0,(15-r|0)*3|0)|0,b()|0,Vn(n,f&7),r>>>0<s>>>0;)r=r+1|0;return i|0}function De(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(p=B,B=B+16|0,a=p,w=$(A|0,t|0,45)|0,b()|0,w=w&127,w>>>0>121)return e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,w=5,B=p,w|0;A:do if((JA(w)|0)!=0&&(s=$(A|0,t|0,52)|0,b()|0,s=s&15,(s|0)!=0)){i=1;e:for(;;){switch(u=$(A|0,t|0,(15-i|0)*3|0)|0,b()|0,u&7){case 5:break e;case 0:break;default:{i=t;break A}}if(i>>>0<s>>>0)i=i+1|0;else{i=t;break A}}for(n=1,i=t;t=(15-n|0)*3|0,f=sA(7,0,t|0)|0,u=i&~(b()|0),i=$(A|0,i|0,t|0)|0,b()|0,i=sA(X0(i&7)|0,0,t|0)|0,A=A&~f|i,i=u|(b()|0),n>>>0<s>>>0;)n=n+1|0}else i=t;while(!1);if(u=7696+(w*28|0)|0,e[r>>2]=e[u>>2],e[r+4>>2]=e[u+4>>2],e[r+8>>2]=e[u+8>>2],e[r+12>>2]=e[u+12>>2],!(Mr(A,i,r)|0))return w=0,B=p,w|0;if(f=r+4|0,e[a>>2]=e[f>>2],e[a+4>>2]=e[f+4>>2],e[a+8>>2]=e[f+8>>2],s=$(A|0,i|0,52)|0,b()|0,u=s&15,s&1?(ue(f),s=u+1|0):s=u,!(JA(w)|0))i=0;else{A:do if(!u)i=0;else for(t=1;;){if(n=$(A|0,i|0,(15-t|0)*3|0)|0,b()|0,n=n&7,n|0){i=n;break A}if(t>>>0<u>>>0)t=t+1|0;else{i=0;break}}while(!1);i=(i|0)==4&1}if(!(_e(r,s,i,0)|0))(s|0)!=(u|0)&&(e[f>>2]=e[a>>2],e[f+4>>2]=e[a+4>>2],e[f+8>>2]=e[a+8>>2]);else{if(JA(w)|0)do;while((_e(r,s,0,0)|0)!=0);(s|0)!=(u|0)&&Yn(f)}return w=0,B=p,w|0}function ce(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;return s=B,B=B+16|0,i=s,n=De(A,t,i)|0,n|0?(B=s,n|0):(n=$(A|0,t|0,52)|0,b()|0,xu(i,n&15,r),n=0,B=s,n|0)}function Me(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0;if(f=B,B=B+16|0,s=f,i=De(A,t,s)|0,i|0)return s=i,B=f,s|0;i=$(A|0,t|0,45)|0,b()|0,i=(JA(i&127)|0)==0,n=$(A|0,t|0,52)|0,b()|0,n=n&15;A:do if(!i){if(n|0)for(i=1;;){if(u=sA(7,0,(15-i|0)*3|0)|0,!((u&A|0)==0&((b()|0)&t|0)==0))break A;if(i>>>0<n>>>0)i=i+1|0;else break}return Er(s,n,0,5,r),u=0,B=f,u|0}while(!1);return yr(s,n,0,6,r),u=0,B=f,u|0}function Uu(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;if(n=$(A|0,t|0,45)|0,b()|0,!(JA(n&127)|0))return n=2,e[r>>2]=n,0;if(n=$(A|0,t|0,52)|0,b()|0,n=n&15,!n)return n=5,e[r>>2]=n,0;for(i=1;;){if(s=sA(7,0,(15-i|0)*3|0)|0,!((s&A|0)==0&((b()|0)&t|0)==0)){i=2,A=6;break}if(i>>>0<n>>>0)i=i+1|0;else{i=5,A=6;break}}return(A|0)==6&&(e[r>>2]=i),0}function As(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0;k=B,B=B+128|0,w=k+112|0,s=k+96|0,p=k,n=$(A|0,t|0,52)|0,b()|0,u=n&15,e[w>>2]=u,f=$(A|0,t|0,45)|0,b()|0,f=f&127;A:do if(JA(f)|0){if(u|0)for(i=1;;){if(a=sA(7,0,(15-i|0)*3|0)|0,!((a&A|0)==0&((b()|0)&t|0)==0)){n=0;break A}if(i>>>0<u>>>0)i=i+1|0;else break}if(n&1)n=1;else return a=sA(u+1|0,0,52)|0,p=b()|0|t&-15728641,w=sA(7,0,(14-u|0)*3|0)|0,p=As((a|A)&~w,p&~(b()|0),r)|0,B=k,p|0}else n=0;while(!1);if(i=De(A,t,s)|0,!i){n?(Zn(s,w,p),a=5):(Kn(s,w,p),a=6);A:do if(JA(f)|0)if(!u)A=5;else for(i=1;;){if(f=sA(7,0,(15-i|0)*3|0)|0,!((f&A|0)==0&((b()|0)&t|0)==0)){A=2;break A}if(i>>>0<u>>>0)i=i+1|0;else{A=5;break}}else A=2;while(!1);te(r|0,-1,A<<2|0)|0;A:do if(n)for(s=0;;){if(f=p+(s<<4)|0,Qu(f,e[w>>2]|0)|0,f=e[f>>2]|0,u=e[r>>2]|0,(u|0)==-1|(u|0)==(f|0))i=r;else{n=0;do{if(n=n+1|0,n>>>0>=A>>>0){i=1;break A}i=r+(n<<2)|0,u=e[i>>2]|0}while(!((u|0)==-1|(u|0)==(f|0)))}if(e[i>>2]=f,s=s+1|0,s>>>0>=a>>>0){i=0;break}}else for(s=0;;){if(f=p+(s<<4)|0,_e(f,e[w>>2]|0,0,1)|0,f=e[f>>2]|0,u=e[r>>2]|0,(u|0)==-1|(u|0)==(f|0))i=r;else{n=0;do{if(n=n+1|0,n>>>0>=A>>>0){i=1;break A}i=r+(n<<2)|0,u=e[i>>2]|0}while(!((u|0)==-1|(u|0)==(f|0)))}if(e[i>>2]=f,s=s+1|0,s>>>0>=a>>>0){i=0;break}}while(!1)}return p=i,B=k,p|0}function zu(){return 12}function Pr(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0;if(A>>>0>15)return u=4,u|0;if(sA(A|0,0,52)|0,u=b()|0|134225919,!A){r=0,i=0;do JA(i)|0&&(sA(i|0,0,45)|0,f=u|(b()|0),A=t+(r<<3)|0,e[A>>2]=-1,e[A+4>>2]=f,r=r+1|0),i=i+1|0;while((i|0)!=122);return r=0,r|0}r=0,f=0;do{if(JA(f)|0){for(sA(f|0,0,45)|0,i=1,n=-1,s=u|(b()|0);a=sA(7,0,(15-i|0)*3|0)|0,n=n&~a,s=s&~(b()|0),(i|0)!=(A|0);)i=i+1|0;a=t+(r<<3)|0,e[a>>2]=n,e[a+4>>2]=s,r=r+1|0}f=f+1|0}while((f|0)!=122);return r=0,r|0}function Yu(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0;if(U=B,B=B+16|0,O=U,j=$(A|0,t|0,52)|0,b()|0,j=j&15,r>>>0>15)return j=4,B=U,j|0;if((j|0)<(r|0))return j=12,B=U,j|0;if((j|0)!=(r|0))if(s=sA(r|0,0,52)|0,s=s|A,u=b()|0|t&-15728641,(j|0)>(r|0)){a=r;do I=sA(7,0,(14-a|0)*3|0)|0,a=a+1|0,s=I|s,u=b()|0|u;while((a|0)<(j|0));I=s}else I=s;else I=A,u=t;d=$(I|0,u|0,45)|0,b()|0;A:do if(JA(d&127)|0){if(a=$(I|0,u|0,52)|0,b()|0,a=a&15,a|0)for(s=1;;){if(d=sA(7,0,(15-s|0)*3|0)|0,!((d&I|0)==0&((b()|0)&u|0)==0)){w=33;break A}if(s>>>0<a>>>0)s=s+1|0;else break}if(d=i,e[d>>2]=0,e[d+4>>2]=0,(j|0)>(r|0)){for(d=t&-15728641,P=j;;){if(M=P,P=P+-1|0,P>>>0>15|(j|0)<(P|0)){w=19;break}if((j|0)!=(P|0))if(s=sA(P|0,0,52)|0,s=s|A,a=b()|0|d,(j|0)<(M|0))k=s;else{w=P;do k=sA(7,0,(14-w|0)*3|0)|0,w=w+1|0,s=k|s,a=b()|0|a;while((w|0)<(j|0));k=s}else k=A,a=t;if(p=$(k|0,a|0,45)|0,b()|0,!(JA(p&127)|0))s=0;else{p=$(k|0,a|0,52)|0,b()|0,p=p&15;e:do if(!p)s=0;else for(w=1;;){if(s=$(k|0,a|0,(15-w|0)*3|0)|0,b()|0,s=s&7,s|0)break e;if(w>>>0<p>>>0)w=w+1|0;else{s=0;break}}while(!1);s=(s|0)==0&1}if(a=$(A|0,t|0,(15-M|0)*3|0)|0,b()|0,a=a&7,(a|0)==7){n=5,w=42;break}if(s=(s|0)!=0,(a|0)==1&s){n=5,w=42;break}if(k=a+(((a|0)!=0&s)<<31>>31)|0,k|0&&(w=j-M|0,w=$0(7,0,w,((w|0)<0)<<31>>31)|0,p=b()|0,s?(s=l0(w|0,p|0,5,0)|0,s=vA(s|0,b()|0,-5,-1)|0,s=ee(s|0,b()|0,6,0)|0,s=vA(s|0,b()|0,1,0)|0,a=b()|0):(s=w,a=p),M=k+-1|0,M=l0(w|0,p|0,M|0,((M|0)<0)<<31>>31|0)|0,M=vA(s|0,a|0,M|0,b()|0)|0,k=b()|0,p=i,p=vA(M|0,k|0,e[p>>2]|0,e[p+4>>2]|0)|0,k=b()|0,M=i,e[M>>2]=p,e[M+4>>2]=k),(P|0)<=(r|0)){w=37;break}}if((w|0)==19)kA(27795,27122,1276,27158);else if((w|0)==37){f=i,n=e[f+4>>2]|0,f=e[f>>2]|0;break}else if((w|0)==42)return B=U,n|0}else n=0,f=0}else w=33;while(!1);A:do if((w|0)==33)if(d=i,e[d>>2]=0,e[d+4>>2]=0,(j|0)>(r|0)){for(s=j;;){if(n=$(A|0,t|0,(15-s|0)*3|0)|0,b()|0,n=n&7,(n|0)==7){n=5;break}if(f=j-s|0,f=$0(7,0,f,((f|0)<0)<<31>>31)|0,n=l0(f|0,b()|0,n|0,0)|0,f=b()|0,d=i,f=vA(e[d>>2]|0,e[d+4>>2]|0,n|0,f|0)|0,n=b()|0,d=i,e[d>>2]=f,e[d+4>>2]=n,s=s+-1|0,(s|0)<=(r|0))break A}return B=U,n|0}else n=0,f=0;while(!1);return je(I,u,j,O)|0&&kA(27795,27122,1236,27173),j=O,O=e[j+4>>2]|0,((n|0)>-1|(n|0)==-1&f>>>0>4294967295)&((O|0)>(n|0)|((O|0)==(n|0)?(e[j>>2]|0)>>>0>f>>>0:0))?(j=0,B=U,j|0):(kA(27795,27122,1316,27158),0)}function Vu(A,t,r,i,n,s){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,s=s|0;var f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0;if(k=B,B=B+16|0,f=k,n>>>0>15)return s=4,B=k,s|0;if(u=$(r|0,i|0,52)|0,b()|0,u=u&15,(u|0)>(n|0))return s=12,B=k,s|0;if(je(r,i,n,f)|0&&kA(27795,27122,1236,27173),p=f,w=e[p+4>>2]|0,!(((t|0)>-1|(t|0)==-1&A>>>0>4294967295)&((w|0)>(t|0)|((w|0)==(t|0)?(e[p>>2]|0)>>>0>A>>>0:0))))return s=2,B=k,s|0;p=n-u|0,n=sA(n|0,0,52)|0,a=b()|0|i&-15728641,w=s,e[w>>2]=n|r,e[w+4>>2]=a,w=$(r|0,i|0,45)|0,b()|0;A:do if(JA(w&127)|0){if(u|0)for(f=1;;){if(w=sA(7,0,(15-f|0)*3|0)|0,!((w&r|0)==0&((b()|0)&i|0)==0))break A;if(f>>>0<u>>>0)f=f+1|0;else break}if((p|0)<1)return s=0,B=k,s|0;for(w=u^15,i=-1,a=1,f=1;;){u=p-a|0,u=$0(7,0,u,((u|0)<0)<<31>>31)|0,r=b()|0;do if(f)if(f=l0(u|0,r|0,5,0)|0,f=vA(f|0,b()|0,-5,-1)|0,f=ee(f|0,b()|0,6,0)|0,n=b()|0,(t|0)>(n|0)|(t|0)==(n|0)&A>>>0>f>>>0){t=vA(A|0,t|0,-1,-1)|0,t=h0(t|0,b()|0,f|0,n|0)|0,f=b()|0,M=s,d=e[M>>2]|0,M=e[M+4>>2]|0,I=(w+i|0)*3|0,P=sA(7,0,I|0)|0,M=M&~(b()|0),i=ee(t|0,f|0,u|0,r|0)|0,A=b()|0,n=vA(i|0,A|0,2,0)|0,I=sA(n|0,b()|0,I|0)|0,M=b()|0|M,n=s,e[n>>2]=I|d&~P,e[n+4>>2]=M,A=l0(i|0,A|0,u|0,r|0)|0,A=h0(t|0,f|0,A|0,b()|0)|0,f=0,t=b()|0;break}else{I=s,P=e[I>>2]|0,I=e[I+4>>2]|0,d=sA(7,0,(w+i|0)*3|0)|0,I=I&~(b()|0),f=s,e[f>>2]=P&~d,e[f+4>>2]=I,f=1;break}else P=s,n=e[P>>2]|0,P=e[P+4>>2]|0,i=(w+i|0)*3|0,M=sA(7,0,i|0)|0,P=P&~(b()|0),I=ee(A|0,t|0,u|0,r|0)|0,f=b()|0,i=sA(I|0,f|0,i|0)|0,P=b()|0|P,d=s,e[d>>2]=i|n&~M,e[d+4>>2]=P,f=l0(I|0,f|0,u|0,r|0)|0,A=h0(A|0,t|0,f|0,b()|0)|0,f=0,t=b()|0;while(!1);if((p|0)>(a|0))i=~a,a=a+1|0;else{t=0;break}}return B=k,t|0}while(!1);if((p|0)<1)return I=0,B=k,I|0;for(n=u^15,f=1;;)if(d=p-f|0,d=$0(7,0,d,((d|0)<0)<<31>>31)|0,I=b()|0,a=s,r=e[a>>2]|0,a=e[a+4>>2]|0,u=(n-f|0)*3|0,i=sA(7,0,u|0)|0,a=a&~(b()|0),M=ee(A|0,t|0,d|0,I|0)|0,P=b()|0,u=sA(M|0,P|0,u|0)|0,a=b()|0|a,w=s,e[w>>2]=u|r&~i,e[w+4>>2]=a,I=l0(M|0,P|0,d|0,I|0)|0,A=h0(A|0,t|0,I|0,b()|0)|0,t=b()|0,(p|0)<=(f|0)){t=0;break}else f=f+1|0;return B=k,t|0}function dr(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0;n=$(t|0,r|0,52)|0,b()|0,n=n&15,(t|0)==0&(r|0)==0|((i|0)>15|(n|0)>(i|0))?(s=-1,t=-1,r=0,n=0):(t=Xn(t,r,n+1|0,i)|0,f=(b()|0)&-15728641,r=sA(i|0,0,52)|0,r=t|r,f=f|(b()|0),t=(WA(r,f)|0)==0,s=n,t=t?-1:i,n=f),f=A,e[f>>2]=r,e[f+4>>2]=n,e[A+8>>2]=s,e[A+12>>2]=t}function es(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0;if(n=$(A|0,t|0,52)|0,b()|0,n=n&15,s=i+8|0,e[s>>2]=n,(A|0)==0&(t|0)==0|((r|0)>15|(n|0)>(r|0))){r=i,e[r>>2]=0,e[r+4>>2]=0,e[s>>2]=-1,e[i+12>>2]=-1;return}if(A=Xn(A,t,n+1|0,r)|0,s=(b()|0)&-15728641,n=sA(r|0,0,52)|0,n=A|n,s=s|(b()|0),A=i,e[A>>2]=n,e[A+4>>2]=s,A=i+12|0,WA(n,s)|0){e[A>>2]=r;return}else{e[A>>2]=-1;return}}function Tr(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0;if(r=A,t=e[r>>2]|0,r=e[r+4>>2]|0,!((t|0)==0&(r|0)==0)&&(i=$(t|0,r|0,52)|0,b()|0,i=i&15,u=sA(1,0,(i^15)*3|0)|0,t=vA(u|0,b()|0,t|0,r|0)|0,r=b()|0,u=A,e[u>>2]=t,e[u+4>>2]=r,u=A+8|0,f=e[u>>2]|0,!((i|0)<(f|0)))){for(a=A+12|0,s=i;;){if((s|0)==(f|0)){i=5;break}if(w=(s|0)==(e[a>>2]|0),n=(15-s|0)*3|0,i=$(t|0,r|0,n|0)|0,b()|0,i=i&7,w&((i|0)==1&!0)){i=7;break}if(!((i|0)==7&!0)){i=10;break}if(w=sA(1,0,n|0)|0,t=vA(t|0,r|0,w|0,b()|0)|0,r=b()|0,w=A,e[w>>2]=t,e[w+4>>2]=r,(s|0)>(f|0))s=s+-1|0;else{i=10;break}}if((i|0)==5){w=A,e[w>>2]=0,e[w+4>>2]=0,e[u>>2]=-1,e[a>>2]=-1;return}else if((i|0)==7){f=sA(1,0,n|0)|0,f=vA(t|0,r|0,f|0,b()|0)|0,u=b()|0,w=A,e[w>>2]=f,e[w+4>>2]=u,e[a>>2]=s+-1;return}else if((i|0)==10)return}}function qe(A){A=+A;var t=0;return t=A<0?A+6.283185307179586:A,+(A>=6.283185307179586?t+-6.283185307179586:t)}function Pe(A,t){return A=A|0,t=t|0,+QA(+(+y[A>>3]-+y[t>>3]))<17453292519943298e-27?(t=+QA(+(+y[A+8>>3]-+y[t+8>>3]))<17453292519943298e-27,t|0):(t=0,t|0)}function b0(A,t){switch(A=+A,t=t|0,t|0){case 1:{A=A<0?A+6.283185307179586:A;break}case 2:{A=A>0?A+-6.283185307179586:A;break}}return+A}function Hu(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0;return n=+y[t>>3],i=+y[A>>3],s=+IA(+((n-i)*.5)),r=+IA(+((+y[t+8>>3]-+y[A+8>>3])*.5)),r=s*s+r*(+zA(+n)*+zA(+i)*r),+(+T0(+ +UA(+r),+ +UA(+(1-r)))*2)}function We(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0;return n=+y[t>>3],i=+y[A>>3],s=+IA(+((n-i)*.5)),r=+IA(+((+y[t+8>>3]-+y[A+8>>3])*.5)),r=s*s+r*(+zA(+n)*+zA(+i)*r),+(+T0(+ +UA(+r),+ +UA(+(1-r)))*2*6371.007180918475)}function ju(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0;return n=+y[t>>3],i=+y[A>>3],s=+IA(+((n-i)*.5)),r=+IA(+((+y[t+8>>3]-+y[A+8>>3])*.5)),r=s*s+r*(+zA(+n)*+zA(+i)*r),+(+T0(+ +UA(+r),+ +UA(+(1-r)))*2*6371.007180918475*1e3)}function qu(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0;return s=+y[t>>3],i=+zA(+s),n=+y[t+8>>3]-+y[A+8>>3],f=i*+IA(+n),r=+y[A>>3],+ +T0(+f,+(+IA(+s)*+zA(+r)-+zA(+n)*(i*+IA(+r))))}function Wu(A,t,r,i){A=A|0,t=+t,r=+r,i=i|0;var n=0,s=0,f=0,u=0;if(r<1e-16){e[i>>2]=e[A>>2],e[i+4>>2]=e[A+4>>2],e[i+8>>2]=e[A+8>>2],e[i+12>>2]=e[A+12>>2];return}s=t<0?t+6.283185307179586:t,s=t>=6.283185307179586?s+-6.283185307179586:s;do if(s<1e-16)t=+y[A>>3]+r,y[i>>3]=t,n=i;else{if(n=+QA(+(s+-3.141592653589793))<1e-16,t=+y[A>>3],n){t=t-r,y[i>>3]=t,n=i;break}if(f=+zA(+r),r=+IA(+r),t=f*+IA(+t)+ +zA(+s)*(r*+zA(+t)),t=t>1?1:t,t=+Gf(+(t<-1?-1:t)),y[i>>3]=t,+QA(+(t+-1.5707963267948966))<1e-16){y[i>>3]=1.5707963267948966,y[i+8>>3]=0;return}if(+QA(+(t+1.5707963267948966))<1e-16){y[i>>3]=-1.5707963267948966,y[i+8>>3]=0;return}if(u=1/+zA(+t),s=r*+IA(+s)*u,r=+y[A>>3],t=u*((f-+IA(+t)*+IA(+r))/+zA(+r)),f=s>1?1:s,t=t>1?1:t,t=+y[A+8>>3]+ +T0(+(f<-1?-1:f),+(t<-1?-1:t)),t>3.141592653589793)do t=t+-6.283185307179586;while(t>3.141592653589793);if(t<-3.141592653589793)do t=t+6.283185307179586;while(t<-3.141592653589793);y[i+8>>3]=t;return}while(!1);if(+QA(+(t+-1.5707963267948966))<1e-16){y[n>>3]=1.5707963267948966,y[i+8>>3]=0;return}if(+QA(+(t+1.5707963267948966))<1e-16){y[n>>3]=-1.5707963267948966,y[i+8>>3]=0;return}if(t=+y[A+8>>3],t>3.141592653589793)do t=t+-6.283185307179586;while(t>3.141592653589793);if(t<-3.141592653589793)do t=t+6.283185307179586;while(t<-3.141592653589793);y[i+8>>3]=t}function ts(A,t){return A=A|0,t=t|0,A>>>0>15?(t=4,t|0):(y[t>>3]=+y[20656+(A<<3)>>3],t=0,t|0)}function Zu(A,t){return A=A|0,t=t|0,A>>>0>15?(t=4,t|0):(y[t>>3]=+y[20784+(A<<3)>>3],t=0,t|0)}function Ku(A,t){return A=A|0,t=t|0,A>>>0>15?(t=4,t|0):(y[t>>3]=+y[20912+(A<<3)>>3],t=0,t|0)}function Ju(A,t){return A=A|0,t=t|0,A>>>0>15?(t=4,t|0):(y[t>>3]=+y[21040+(A<<3)>>3],t=0,t|0)}function Ct(A,t){A=A|0,t=t|0;var r=0;return A>>>0>15?(t=4,t|0):(r=$0(7,0,A,((A|0)<0)<<31>>31)|0,r=l0(r|0,b()|0,120,0)|0,A=b()|0,e[t>>2]=r|2,e[t+4>>2]=A,t=0,t|0)}function rs(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0;return M=+y[t>>3],p=+y[A>>3],a=+IA(+((M-p)*.5)),s=+y[t+8>>3],w=+y[A+8>>3],f=+IA(+((s-w)*.5)),u=+zA(+p),k=+zA(+M),f=a*a+f*(k*u*f),f=+T0(+ +UA(+f),+ +UA(+(1-f)))*2,a=+y[r>>3],M=+IA(+((a-M)*.5)),i=+y[r+8>>3],s=+IA(+((i-s)*.5)),n=+zA(+a),s=M*M+s*(k*n*s),s=+T0(+ +UA(+s),+ +UA(+(1-s)))*2,a=+IA(+((p-a)*.5)),i=+IA(+((w-i)*.5)),i=a*a+i*(u*n*i),i=+T0(+ +UA(+i),+ +UA(+(1-i)))*2,n=(f+s+i)*.5,+(+fr(+ +UA(+(+d0(+(n*.5))*+d0(+((n-f)*.5))*+d0(+((n-s)*.5))*+d0(+((n-i)*.5)))))*4)}function xr(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0;if(u=B,B=B+192|0,s=u+168|0,f=u,n=ce(A,t,s)|0,n|0)return r=n,B=u,r|0;if(Me(A,t,f)|0&&kA(27795,27190,415,27199),t=e[f>>2]|0,(t|0)>0){if(i=+rs(f+8|0,f+8+(((t|0)!=1&1)<<4)|0,s)+0,(t|0)!=1){A=1;do n=A,A=A+1|0,i=i+ +rs(f+8+(n<<4)|0,f+8+(((A|0)%(t|0)|0)<<4)|0,s);while((A|0)<(t|0))}}else i=0;return y[r>>3]=i,r=0,B=u,r|0}function Xu(A,t,r){return A=A|0,t=t|0,r=r|0,A=xr(A,t,r)|0,A|0||(y[r>>3]=+y[r>>3]*6371.007180918475*6371.007180918475),A|0}function $u(A,t,r){return A=A|0,t=t|0,r=r|0,A=xr(A,t,r)|0,A|0||(y[r>>3]=+y[r>>3]*6371.007180918475*6371.007180918475*1e3*1e3),A|0}function A1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(u=B,B=B+176|0,f=u,A=bt(A,t,f)|0,A|0)return f=A,B=u,f|0;if(y[r>>3]=0,A=e[f>>2]|0,(A|0)<=1)return f=0,B=u,f|0;t=A+-1|0,A=0,i=+y[f+8>>3],n=+y[f+16>>3],s=0;do A=A+1|0,w=i,i=+y[f+8+(A<<4)>>3],p=+IA(+((i-w)*.5)),a=n,n=+y[f+8+(A<<4)+8>>3],a=+IA(+((n-a)*.5)),a=p*p+a*(+zA(+i)*+zA(+w)*a),s=s+ +T0(+ +UA(+a),+ +UA(+(1-a)))*2;while((A|0)<(t|0));return y[r>>3]=s,f=0,B=u,f|0}function e1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(u=B,B=B+176|0,f=u,A=bt(A,t,f)|0,A|0)return f=A,s=+y[r>>3],s=s*6371.007180918475,y[r>>3]=s,B=u,f|0;if(y[r>>3]=0,A=e[f>>2]|0,(A|0)<=1)return f=0,s=0,s=s*6371.007180918475,y[r>>3]=s,B=u,f|0;t=A+-1|0,A=0,i=+y[f+8>>3],n=+y[f+16>>3],s=0;do A=A+1|0,w=i,i=+y[f+8+(A<<4)>>3],p=+IA(+((i-w)*.5)),a=n,n=+y[f+8+(A<<4)+8>>3],a=+IA(+((n-a)*.5)),a=p*p+a*(+zA(+w)*+zA(+i)*a),s=s+ +T0(+ +UA(+a),+ +UA(+(1-a)))*2;while((A|0)!=(t|0));return y[r>>3]=s,f=0,p=s,p=p*6371.007180918475,y[r>>3]=p,B=u,f|0}function t1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(u=B,B=B+176|0,f=u,A=bt(A,t,f)|0,A|0)return f=A,s=+y[r>>3],s=s*6371.007180918475,s=s*1e3,y[r>>3]=s,B=u,f|0;if(y[r>>3]=0,A=e[f>>2]|0,(A|0)<=1)return f=0,s=0,s=s*6371.007180918475,s=s*1e3,y[r>>3]=s,B=u,f|0;t=A+-1|0,A=0,i=+y[f+8>>3],n=+y[f+16>>3],s=0;do A=A+1|0,w=i,i=+y[f+8+(A<<4)>>3],p=+IA(+((i-w)*.5)),a=n,n=+y[f+8+(A<<4)+8>>3],a=+IA(+((n-a)*.5)),a=p*p+a*(+zA(+w)*+zA(+i)*a),s=s+ +T0(+ +UA(+a),+ +UA(+(1-a)))*2;while((A|0)!=(t|0));return y[r>>3]=s,f=0,p=s,p=p*6371.007180918475,p=p*1e3,y[r>>3]=p,B=u,f|0}function r1(A){A=A|0;var t=0,r=0,i=0;return t=B0(1,12)|0,t||kA(27280,27235,49,27293),r=A+4|0,i=e[r>>2]|0,i|0?(i=i+8|0,e[i>>2]=t,e[r>>2]=t,t|0):(e[A>>2]|0&&kA(27310,27235,61,27333),i=A,e[i>>2]=t,e[r>>2]=t,t|0)}function i1(A,t){A=A|0,t=t|0;var r=0,i=0;return i=N0(24)|0,i||kA(27347,27235,78,27361),e[i>>2]=e[t>>2],e[i+4>>2]=e[t+4>>2],e[i+8>>2]=e[t+8>>2],e[i+12>>2]=e[t+12>>2],e[i+16>>2]=0,t=A+4|0,r=e[t>>2]|0,r|0?(e[r+16>>2]=i,e[t>>2]=i,i|0):(e[A>>2]|0&&kA(27376,27235,82,27361),e[A>>2]=i,e[t>>2]=i,i|0)}function is(A){A=A|0;var t=0,r=0,i=0,n=0;if(A)for(i=1;;){if(t=e[A>>2]|0,t|0)do{if(r=e[t>>2]|0,r|0)do n=r,r=e[r+16>>2]|0,mA(n);while((r|0)!=0);n=t,t=e[t+8>>2]|0,mA(n)}while((t|0)!=0);if(t=A,A=e[A+8>>2]|0,i||mA(t),A)i=0;else break}}function n1(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0,PA=0,SA=0,BA=0,gA=0,iA=0,xA=0,jA=0,dA=0;if(n=A+8|0,e[n>>2]|0)return dA=1,dA|0;if(i=e[A>>2]|0,!i)return dA=0,dA|0;t=i,r=0;do r=r+1|0,t=e[t+8>>2]|0;while((t|0)!=0);if(r>>>0<2)return dA=0,dA|0;xA=N0(r<<2)|0,xA||kA(27396,27235,317,27415),iA=N0(r<<5)|0,iA||kA(27437,27235,321,27415),e[A>>2]=0,cA=A+4|0,e[cA>>2]=0,e[n>>2]=0,r=0,gA=0,nA=0,k=0;A:for(;;){if(p=e[i>>2]|0,p){s=0,f=p;do{if(a=+y[f+8>>3],t=f,f=e[f+16>>2]|0,w=(f|0)==0,n=w?p:f,u=+y[n+8>>3],+QA(+(a-u))>3.141592653589793){dA=14;break}s=s+(u-a)*(+y[t>>3]+ +y[n>>3])}while(!w);if((dA|0)==14){dA=0,s=0,t=p;do L=+y[t+8>>3],BA=t+16|0,SA=e[BA>>2]|0,SA=(SA|0)==0?p:SA,G=+y[SA+8>>3],s=s+(+y[t>>3]+ +y[SA>>3])*((G<0?G+6.283185307179586:G)-(L<0?L+6.283185307179586:L)),t=e[((t|0)==0?i:BA)>>2]|0;while((t|0)!=0)}s>0?(e[xA+(gA<<2)>>2]=i,gA=gA+1|0,n=nA,t=k):dA=19}else dA=19;if((dA|0)==19){dA=0;do if(r){if(t=r+8|0,e[t>>2]|0){dA=21;break A}if(r=B0(1,12)|0,!r){dA=23;break A}e[t>>2]=r,n=r+4|0,f=r,t=k}else if(k){n=cA,f=k+8|0,t=i,r=A;break}else if(e[A>>2]|0){dA=27;break A}else{n=cA,f=A,t=i,r=A;break}while(!1);if(e[f>>2]=i,e[n>>2]=i,f=iA+(nA<<5)|0,w=e[i>>2]|0,w){for(p=iA+(nA<<5)+8|0,y[p>>3]=17976931348623157e292,k=iA+(nA<<5)+24|0,y[k>>3]=17976931348623157e292,y[f>>3]=-17976931348623157e292,M=iA+(nA<<5)+16|0,y[M>>3]=-17976931348623157e292,j=17976931348623157e292,U=-17976931348623157e292,n=0,P=w,a=17976931348623157e292,I=17976931348623157e292,O=-17976931348623157e292,u=-17976931348623157e292;s=+y[P>>3],L=+y[P+8>>3],P=e[P+16>>2]|0,d=(P|0)==0,G=+y[(d?w:P)+8>>3],s<a&&(y[p>>3]=s,a=s),L<I&&(y[k>>3]=L,I=L),s>O?y[f>>3]=s:s=O,L>u&&(y[M>>3]=L,u=L),j=L>0&L<j?L:j,U=L<0&L>U?L:U,n=n|+QA(+(L-G))>3.141592653589793,!d;)O=s;n&&(y[M>>3]=U,y[k>>3]=j)}else e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[f+16>>2]=0,e[f+20>>2]=0,e[f+24>>2]=0,e[f+28>>2]=0;n=nA+1|0}if(BA=i+8|0,i=e[BA>>2]|0,e[BA>>2]=0,i)nA=n,k=t;else{dA=45;break}}if((dA|0)==21)kA(27213,27235,35,27247);else if((dA|0)==23)kA(27267,27235,37,27247);else if((dA|0)==27)kA(27310,27235,61,27333);else if((dA|0)==45){A:do if((gA|0)>0){for(BA=(n|0)==0,PA=n<<2,SA=(A|0)==0,DA=0,t=0;;){if(fA=e[xA+(DA<<2)>>2]|0,BA)dA=73;else{if(nA=N0(PA)|0,!nA){dA=50;break}if(cA=N0(PA)|0,!cA){dA=52;break}e:do if(SA)r=0;else{for(n=0,r=0,f=A;i=iA+(n<<5)|0,ns(e[f>>2]|0,i,e[fA>>2]|0)|0?(e[nA+(r<<2)>>2]=f,e[cA+(r<<2)>>2]=i,d=r+1|0):d=r,f=e[f+8>>2]|0,f;)n=n+1|0,r=d;if((d|0)>0)if(i=e[nA>>2]|0,(d|0)==1)r=i;else for(M=0,P=-1,r=i,k=i;;){for(w=e[k>>2]|0,i=0,f=0;n=e[e[nA+(f<<2)>>2]>>2]|0,(n|0)==(w|0)?p=i:p=i+((ns(n,e[cA+(f<<2)>>2]|0,e[w>>2]|0)|0)&1)|0,f=f+1|0,(f|0)!=(d|0);)i=p;if(n=(p|0)>(P|0),r=n?k:r,i=M+1|0,(i|0)==(d|0))break e;M=i,P=n?p:P,k=e[nA+(i<<2)>>2]|0}else r=0}while(!1);if(mA(nA),mA(cA),r){if(n=r+4|0,i=e[n>>2]|0,i)r=i+8|0;else if(e[r>>2]|0){dA=70;break}e[r>>2]=fA,e[n>>2]=fA}else dA=73}if((dA|0)==73){if(dA=0,t=e[fA>>2]|0,t|0)do cA=t,t=e[t+16>>2]|0,mA(cA);while((t|0)!=0);mA(fA),t=1}if(DA=DA+1|0,(DA|0)>=(gA|0)){jA=t;break A}}(dA|0)==50?kA(27452,27235,249,27471):(dA|0)==52?kA(27490,27235,252,27471):(dA|0)==70&&kA(27310,27235,61,27333)}else jA=0;while(!1);return mA(xA),mA(iA),dA=jA,dA|0}return 0}function ns(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(!(wr(t,r)|0)||(t=On(t)|0,i=+y[r>>3],n=+y[r+8>>3],n=t&n<0?n+6.283185307179586:n,A=e[A>>2]|0,!A))return A=0,A|0;if(t){t=0,w=n,r=A;A:for(;;){for(;f=+y[r>>3],n=+y[r+8>>3],r=r+16|0,p=e[r>>2]|0,p=(p|0)==0?A:p,s=+y[p>>3],u=+y[p+8>>3],f>s?(a=f,f=u):(a=s,s=f,f=n,n=u),i=i==s|i==a?i+2220446049250313e-31:i,!!(i<s|i>a);)if(r=e[r>>2]|0,!r){r=22;break A}if(u=f<0?f+6.283185307179586:f,f=n<0?n+6.283185307179586:n,w=u==w|f==w?w+-2220446049250313e-31:w,a=u+(f-u)*((i-s)/(a-s)),(a<0?a+6.283185307179586:a)>w&&(t=t^1),r=e[r>>2]|0,!r){r=22;break}}if((r|0)==22)return t|0}else{t=0,w=n,r=A;A:for(;;){for(;f=+y[r>>3],n=+y[r+8>>3],r=r+16|0,p=e[r>>2]|0,p=(p|0)==0?A:p,s=+y[p>>3],u=+y[p+8>>3],f>s?(a=f,f=u):(a=s,s=f,f=n,n=u),i=i==s|i==a?i+2220446049250313e-31:i,!!(i<s|i>a);)if(r=e[r>>2]|0,!r){r=22;break A}if(w=f==w|n==w?w+-2220446049250313e-31:w,f+(n-f)*((i-s)/(a-s))>w&&(t=t^1),r=e[r>>2]|0,!r){r=22;break}}if((r|0)==22)return t|0}return 0}function q0(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0;if(U=B,B=B+32|0,j=U+16|0,O=U,s=$(A|0,t|0,52)|0,b()|0,s=s&15,P=$(r|0,i|0,52)|0,b()|0,(s|0)!=(P&15|0))return j=12,B=U,j|0;if(w=$(A|0,t|0,45)|0,b()|0,w=w&127,p=$(r|0,i|0,45)|0,b()|0,p=p&127,w>>>0>121|p>>>0>121)return j=5,B=U,j|0;if(P=(w|0)!=(p|0),P){if(u=gr(w,p)|0,(u|0)==7)return j=1,B=U,j|0;a=gr(p,w)|0,(a|0)==7?kA(27514,27538,161,27548):(d=u,f=a)}else d=0,f=0;k=JA(w)|0,M=JA(p)|0,e[j>>2]=0,e[j+4>>2]=0,e[j+8>>2]=0,e[j+12>>2]=0;do if(d){if(p=e[4272+(w*28|0)+(d<<2)>>2]|0,u=(p|0)>0,M)if(u){w=0,a=r,u=i;do a=Gu(a,u)|0,u=b()|0,f=X0(f)|0,(f|0)==1&&(f=X0(1)|0),w=w+1|0;while((w|0)!=(p|0));p=f,w=a,a=u}else p=f,w=r,a=i;else if(u){w=0,a=r,u=i;do a=_r(a,u)|0,u=b()|0,f=X0(f)|0,w=w+1|0;while((w|0)!=(p|0));p=f,w=a,a=u}else p=f,w=r,a=i;if(Mr(w,a,j)|0,P||kA(27563,27538,191,27548),u=(k|0)!=0,f=(M|0)!=0,u&f&&kA(27590,27538,192,27548),u){if(f=y0(A,t)|0,(f|0)==7){s=5;break}if(AA[22e3+(f*7|0)+d>>0]|0){s=1;break}a=e[21168+(f*28|0)+(d<<2)>>2]|0,w=a}else if(f){if(f=y0(w,a)|0,(f|0)==7){s=5;break}if(AA[22e3+(f*7|0)+p>>0]|0){s=1;break}w=0,a=e[21168+(p*28|0)+(f<<2)>>2]|0}else w=0,a=0;if((w|a|0)<0)s=5;else{if((a|0)>0){u=j+4|0,f=0;do kt(u),f=f+1|0;while((f|0)!=(a|0))}if(e[O>>2]=0,e[O+4>>2]=0,e[O+8>>2]=0,Vn(O,d),s|0)for(;x0(s)|0?Bt(O):ue(O),(s|0)>1;)s=s+-1|0;if((w|0)>0){s=0;do kt(O),s=s+1|0;while((s|0)!=(w|0))}I=j+4|0,w0(I,O,I),c0(I),I=51}}else if(Mr(r,i,j)|0,(k|0)!=0&(M|0)!=0)if((p|0)!=(w|0)&&kA(27621,27538,261,27548),f=y0(A,t)|0,s=y0(r,i)|0,(f|0)==7|(s|0)==7)s=5;else if(AA[22e3+(f*7|0)+s>>0]|0)s=1;else if(f=e[21168+(f*28|0)+(s<<2)>>2]|0,(f|0)>0){u=j+4|0,s=0;do kt(u),s=s+1|0;while((s|0)!=(f|0));I=51}else I=51;else I=51;while(!1);return(I|0)==51&&(s=j+4|0,e[n>>2]=e[s>>2],e[n+4>>2]=e[s+4>>2],e[n+8>>2]=e[s+8>>2],s=0),j=s,B=U,j|0}function ss(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0;if(I=B,B=B+48|0,w=I+36|0,f=I+24|0,u=I+12|0,a=I,n=$(A|0,t|0,52)|0,b()|0,n=n&15,M=$(A|0,t|0,45)|0,b()|0,M=M&127,M>>>0>121)return i=5,B=I,i|0;if(p=JA(M)|0,sA(n|0,0,52)|0,O=b()|0|134225919,s=i,e[s>>2]=-1,e[s+4>>2]=O,!n)return n=yt(r)|0,(n|0)==7||(n=cr(M,n)|0,(n|0)==127)?(O=1,B=I,O|0):(P=sA(n|0,0,45)|0,d=b()|0,M=i,d=e[M+4>>2]&-1040385|d,O=i,e[O>>2]=e[M>>2]|P,e[O+4>>2]=d,O=0,B=I,O|0);for(e[w>>2]=e[r>>2],e[w+4>>2]=e[r+4>>2],e[w+8>>2]=e[r+8>>2],r=n;;){if(s=r,r=r+-1|0,e[f>>2]=e[w>>2],e[f+4>>2]=e[w+4>>2],e[f+8>>2]=e[w+8>>2],x0(s)|0){if(n=wu(w)|0,n|0){r=13;break}e[u>>2]=e[w>>2],e[u+4>>2]=e[w+4>>2],e[u+8>>2]=e[w+8>>2],Bt(u)}else{if(n=pu(w)|0,n|0){r=13;break}e[u>>2]=e[w>>2],e[u+4>>2]=e[w+4>>2],e[u+8>>2]=e[w+8>>2],ue(u)}if(vr(f,u,a),c0(a),n=i,U=e[n>>2]|0,n=e[n+4>>2]|0,G=(15-s|0)*3|0,j=sA(7,0,G|0)|0,n=n&~(b()|0),G=sA(yt(a)|0,0,G|0)|0,n=b()|0|n,O=i,e[O>>2]=G|U&~j,e[O+4>>2]=n,(s|0)<=1){r=14;break}}A:do if((r|0)!=13&&(r|0)==14)if((e[w>>2]|0)<=1&&(e[w+4>>2]|0)<=1&&(e[w+8>>2]|0)<=1){r=yt(w)|0,n=cr(M,r)|0,(n|0)==127?a=0:a=JA(n)|0;e:do if(r){if(p){if(n=y0(A,t)|0,(n|0)==7){n=5;break A}if(s=e[21376+(n*28|0)+(r<<2)>>2]|0,(s|0)>0){n=r,r=0;do n=he(n)|0,r=r+1|0;while((r|0)!=(s|0))}else n=r;if((n|0)==1){n=9;break A}r=cr(M,n)|0,(r|0)==127&&kA(27648,27538,411,27678),JA(r)|0?kA(27693,27538,412,27678):(d=r,P=s,k=n)}else d=n,P=0,k=r;if(u=e[4272+(M*28|0)+(k<<2)>>2]|0,(u|0)<=-1&&kA(27724,27538,419,27678),!a){if((P|0)<0){n=5;break A}if(P|0){s=i,n=0,r=e[s>>2]|0,s=e[s+4>>2]|0;do r=ae(r,s)|0,s=b()|0,G=i,e[G>>2]=r,e[G+4>>2]=s,n=n+1|0;while((n|0)<(P|0))}if((u|0)<=0){n=d,r=58;break}for(s=i,n=0,r=e[s>>2]|0,s=e[s+4>>2]|0;;)if(r=ae(r,s)|0,s=b()|0,G=i,e[G>>2]=r,e[G+4>>2]=s,n=n+1|0,(n|0)==(u|0)){n=d,r=58;break e}}if(f=gr(d,M)|0,(f|0)==7&&kA(27514,27538,428,27678),n=i,r=e[n>>2]|0,n=e[n+4>>2]|0,(u|0)>0){s=0;do r=ae(r,n)|0,n=b()|0,G=i,e[G>>2]=r,e[G+4>>2]=n,s=s+1|0;while((s|0)!=(u|0))}if(n=y0(r,n)|0,(n|0)==7&&kA(27795,27538,440,27678),r=ar(d)|0,r=e[(r?21792:21584)+(f*28|0)+(n<<2)>>2]|0,(r|0)<0&&kA(27795,27538,454,27678),!r)n=d,r=58;else{f=i,n=0,s=e[f>>2]|0,f=e[f+4>>2]|0;do s=Cr(s,f)|0,f=b()|0,G=i,e[G>>2]=s,e[G+4>>2]=f,n=n+1|0;while((n|0)<(r|0));n=d,r=58}}else if((p|0)!=0&(a|0)!=0){if(r=y0(A,t)|0,s=i,s=y0(e[s>>2]|0,e[s+4>>2]|0)|0,(r|0)==7|(s|0)==7){n=5;break A}if(s=e[21376+(r*28|0)+(s<<2)>>2]|0,(s|0)<0){n=5;break A}if(!s)r=59;else{u=i,r=0,f=e[u>>2]|0,u=e[u+4>>2]|0;do f=ae(f,u)|0,u=b()|0,G=i,e[G>>2]=f,e[G+4>>2]=u,r=r+1|0;while((r|0)<(s|0));r=58}}else r=58;while(!1);if((r|0)==58&&a&&(r=59),(r|0)==59&&(G=i,(y0(e[G>>2]|0,e[G+4>>2]|0)|0)==1)){n=9;break}G=i,j=e[G>>2]|0,G=e[G+4>>2]&-1040385,U=sA(n|0,0,45)|0,G=G|(b()|0),n=i,e[n>>2]=j|U,e[n+4>>2]=G,n=0}else n=1;while(!1);return G=n,B=I,G|0}function s1(A,t,r,i,n,s){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,s=s|0;var f=0,u=0;return u=B,B=B+16|0,f=u,n?A=15:(A=q0(A,t,r,i,f)|0,A||(mu(f,s),A=0)),B=u,A|0}function o1(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0;return f=B,B=B+16|0,s=f,i?r=15:(r=Eu(r,s)|0,r||(r=ss(A,t,s,n)|0)),B=f,r|0}function l1(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0;return a=B,B=B+32|0,f=a+12|0,u=a,s=q0(A,t,A,t,f)|0,s|0?(u=s,B=a,u|0):(A=q0(A,t,r,i,u)|0,A|0?(u=A,B=a,u|0):(f=mr(f,u)|0,u=n,e[u>>2]=f,e[u+4>>2]=((f|0)<0)<<31>>31,u=0,B=a,u|0))}function f1(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0;return a=B,B=B+32|0,f=a+12|0,u=a,s=q0(A,t,A,t,f)|0,!s&&(s=q0(A,t,r,i,u)|0,!s)?(i=mr(f,u)|0,i=vA(i|0,((i|0)<0)<<31>>31|0,1,0)|0,f=b()|0,u=n,e[u>>2]=i,e[u+4>>2]=f,u=0,B=a,u|0):(u=s,B=a,u|0)}function u1(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0;if(fA=B,B=B+48|0,nA=fA+24|0,f=fA+12|0,cA=fA,s=q0(A,t,A,t,nA)|0,!s&&(s=q0(A,t,r,i,f)|0,!s)){G=mr(nA,f)|0,L=((G|0)<0)<<31>>31,e[nA>>2]=0,e[nA+4>>2]=0,e[nA+8>>2]=0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,q0(A,t,A,t,nA)|0&&kA(27795,27538,692,27747),q0(A,t,r,i,f)|0&&kA(27795,27538,697,27747),Wn(nA),Wn(f),p=(G|0)==0?0:1/+(G|0),r=e[nA>>2]|0,I=p*+((e[f>>2]|0)-r|0),O=nA+4|0,i=e[O>>2]|0,j=p*+((e[f+4>>2]|0)-i|0),U=nA+8|0,s=e[U>>2]|0,p=p*+((e[f+8>>2]|0)-s|0),e[cA>>2]=r,k=cA+4|0,e[k>>2]=i,M=cA+8|0,e[M>>2]=s;A:do if((G|0)<0)s=0;else for(P=0,d=0;;){a=+(d>>>0)+4294967296*+(P|0),DA=I*a+ +(r|0),u=j*a+ +(i|0),a=p*a+ +(s|0),r=~~+Pt(+DA),f=~~+Pt(+u),s=~~+Pt(+a),DA=+QA(+(+(r|0)-DA)),u=+QA(+(+(f|0)-u)),a=+QA(+(+(s|0)-a));do if(DA>u&DA>a)r=0-(f+s)|0,i=f;else if(w=0-r|0,u>a){i=w-s|0;break}else{i=f,s=w-f|0;break}while(!1);if(e[cA>>2]=r,e[k>>2]=i,e[M>>2]=s,yu(cA),s=ss(A,t,cA,n+(d<<3)|0)|0,s|0)break A;if(!((P|0)<(L|0)|(P|0)==(L|0)&d>>>0<G>>>0)){s=0;break A}r=vA(d|0,P|0,1,0)|0,i=b()|0,P=i,d=r,r=e[nA>>2]|0,i=e[O>>2]|0,s=e[U>>2]|0}while(!1);return cA=s,B=fA,cA|0}return cA=s,B=fA,cA|0}function $0(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0;if((r|0)==0&(i|0)==0)return n=0,s=1,MA(n|0),s|0;s=A,n=t,A=1,t=0;do f=(r&1|0)==0&!0,A=l0((f?1:s)|0,(f?0:n)|0,A|0,t|0)|0,t=b()|0,r=ms(r|0,i|0,1)|0,i=b()|0,s=l0(s|0,n|0,s|0,n|0)|0,n=b()|0;while(!((r|0)==0&(i|0)==0));return MA(t|0),A|0}function Qr(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0;u=B,B=B+16|0,s=u,f=$(A|0,t|0,52)|0,b()|0,f=f&15;do if(f){if(n=ce(A,t,s)|0,!n){w=+y[s>>3],a=1/+zA(+w),p=+y[25968+(f<<3)>>3],y[r>>3]=w+p,y[r+8>>3]=w-p,w=+y[s+8>>3],a=p*a,y[r+16>>3]=a+w,y[r+24>>3]=w-a;break}return f=n,B=u,f|0}else{if(n=$(A|0,t|0,45)|0,b()|0,n=n&127,n>>>0>121)return f=5,B=u,f|0;s=22064+(n<<5)|0,e[r>>2]=e[s>>2],e[r+4>>2]=e[s+4>>2],e[r+8>>2]=e[s+8>>2],e[r+12>>2]=e[s+12>>2],e[r+16>>2]=e[s+16>>2],e[r+20>>2]=e[s+20>>2],e[r+24>>2]=e[s+24>>2],e[r+28>>2]=e[s+28>>2];break}while(!1);return au(r,i?1.4:1.1),i=26096+(f<<3)|0,(e[i>>2]|0)==(A|0)&&(e[i+4>>2]|0)==(t|0)&&(y[r>>3]=1.5707963267948966),f=26224+(f<<3)|0,(e[f>>2]|0)==(A|0)&&(e[f+4>>2]|0)==(t|0)&&(y[r+8>>3]=-1.5707963267948966),+y[r>>3]!=1.5707963267948966&&+y[r+8>>3]!=-1.5707963267948966?(f=0,B=u,f|0):(y[r+16>>3]=3.141592653589793,y[r+24>>3]=-3.141592653589793,f=0,B=u,f|0)}function h1(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0;w=B,B=B+48|0,f=w+32|0,s=w+40|0,u=w,kr(f,0,0,0),a=e[f>>2]|0,f=e[f+4>>2]|0;do if(r>>>0<=15){if(n=Ke(i)|0,n|0){i=u,e[i>>2]=0,e[i+4>>2]=0,e[u+8>>2]=n,e[u+12>>2]=-1,i=u+16|0,a=u+29|0,e[i>>2]=0,e[i+4>>2]=0,e[i+8>>2]=0,AA[i+12>>0]=0,AA[a>>0]=AA[s>>0]|0,AA[a+1>>0]=AA[s+1>>0]|0,AA[a+2>>0]=AA[s+2>>0]|0;break}if(n=B0((e[t+8>>2]|0)+1|0,32)|0,n){Ir(t,n),p=u,e[p>>2]=a,e[p+4>>2]=f,e[u+8>>2]=0,e[u+12>>2]=r,e[u+16>>2]=i,e[u+20>>2]=t,e[u+24>>2]=n,AA[u+28>>0]=0,a=u+29|0,AA[a>>0]=AA[s>>0]|0,AA[a+1>>0]=AA[s+1>>0]|0,AA[a+2>>0]=AA[s+2>>0]|0;break}else{i=u,e[i>>2]=0,e[i+4>>2]=0,e[u+8>>2]=13,e[u+12>>2]=-1,i=u+16|0,a=u+29|0,e[i>>2]=0,e[i+4>>2]=0,e[i+8>>2]=0,AA[i+12>>0]=0,AA[a>>0]=AA[s>>0]|0,AA[a+1>>0]=AA[s+1>>0]|0,AA[a+2>>0]=AA[s+2>>0]|0;break}}else a=u,e[a>>2]=0,e[a+4>>2]=0,e[u+8>>2]=4,e[u+12>>2]=-1,a=u+16|0,p=u+29|0,e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,AA[a+12>>0]=0,AA[p>>0]=AA[s>>0]|0,AA[p+1>>0]=AA[s+1>>0]|0,AA[p+2>>0]=AA[s+2>>0]|0;while(!1);_t(u),e[A>>2]=e[u>>2],e[A+4>>2]=e[u+4>>2],e[A+8>>2]=e[u+8>>2],e[A+12>>2]=e[u+12>>2],e[A+16>>2]=e[u+16>>2],e[A+20>>2]=e[u+20>>2],e[A+24>>2]=e[u+24>>2],e[A+28>>2]=e[u+28>>2],B=w}function _t(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0;if(L=B,B=B+336|0,P=L+168|0,d=L,i=A,r=e[i>>2]|0,i=e[i+4>>2]|0,(r|0)==0&(i|0)==0){B=L;return}if(t=A+28|0,AA[t>>0]|0?(r=os(r,i)|0,i=b()|0):AA[t>>0]=1,G=A+20|0,!(e[e[G>>2]>>2]|0)){t=A+24|0,r=e[t>>2]|0,r|0&&mA(r),U=A,e[U>>2]=0,e[U+4>>2]=0,e[A+8>>2]=0,e[G>>2]=0,e[A+12>>2]=-1,e[A+16>>2]=0,e[t>>2]=0,B=L;return}U=A+16|0,t=e[U>>2]|0,n=t&15;A:do if((r|0)==0&(i|0)==0)j=A+24|0;else{I=A+12|0,k=(n|0)==3,p=t&255,a=(n|1|0)==3,M=A+24|0,w=(n+-1|0)>>>0<3,f=(n|2|0)==3,u=d+8|0;e:for(;;){if(s=$(r|0,i|0,52)|0,b()|0,s=s&15,(s|0)==(e[I>>2]|0)){switch(p&15){case 0:case 2:case 3:{if(n=ce(r,i,P)|0,n|0){O=15;break e}if(Sr(e[G>>2]|0,e[M>>2]|0,P)|0){O=19;break e}break}}if(a&&(n=e[(e[G>>2]|0)+4>>2]|0,e[P>>2]=e[n>>2],e[P+4>>2]=e[n+4>>2],e[P+8>>2]=e[n+8>>2],e[P+12>>2]=e[n+12>>2],wr(26832,P)|0)){if(Dr(e[(e[G>>2]|0)+4>>2]|0,s,d)|0){O=25;break}if(n=d,(e[n>>2]|0)==(r|0)&&(e[n+4>>2]|0)==(i|0)){O=29;break}}if(w){if(n=Me(r,i,P)|0,n|0){O=32;break}if(Qr(r,i,d,0)|0){O=36;break}if(f&&fs(e[G>>2]|0,e[M>>2]|0,P,d)|0){O=42;break}if(a&&us(e[G>>2]|0,e[M>>2]|0,P,d)|0){O=42;break}}if(k){if(t=Qr(r,i,P,1)|0,n=e[M>>2]|0,t|0){O=45;break}if(pr(n,P)|0){if(Nn(d,P),Gn(P,e[M>>2]|0)|0){O=53;break}if(Sr(e[G>>2]|0,e[M>>2]|0,u)|0){O=53;break}if(us(e[G>>2]|0,e[M>>2]|0,d,P)|0){O=53;break}}}}do if((s|0)<(e[I>>2]|0)){if(t=Qr(r,i,P,1)|0,n=e[M>>2]|0,t|0){O=58;break e}if(!(pr(n,P)|0)){O=73;break}if(Gn(e[M>>2]|0,P)|0&&(Nn(d,P),fs(e[G>>2]|0,e[M>>2]|0,d,P)|0)){O=65;break e}if(r=$n(r,i,s+1|0,d)|0,r|0){O=67;break e}i=d,r=e[i>>2]|0,i=e[i+4>>2]|0}else O=73;while(!1);if((O|0)==73&&(O=0,r=os(r,i)|0,i=b()|0),(r|0)==0&(i|0)==0){j=M;break A}}switch(O|0){case 15:{t=e[M>>2]|0,t|0&&mA(t),O=A,e[O>>2]=0,e[O+4>>2]=0,e[G>>2]=0,e[I>>2]=-1,e[U>>2]=0,e[M>>2]=0,e[A+8>>2]=n,O=20;break}case 19:{e[A>>2]=r,e[A+4>>2]=i,O=20;break}case 25:{kA(27795,27761,470,27772);break}case 29:{e[A>>2]=r,e[A+4>>2]=i,B=L;return}case 32:{t=e[M>>2]|0,t|0&&mA(t),j=A,e[j>>2]=0,e[j+4>>2]=0,e[G>>2]=0,e[I>>2]=-1,e[U>>2]=0,e[M>>2]=0,e[A+8>>2]=n,B=L;return}case 36:{kA(27795,27761,493,27772);break}case 42:{e[A>>2]=r,e[A+4>>2]=i,B=L;return}case 45:{n|0&&mA(n),O=A,e[O>>2]=0,e[O+4>>2]=0,e[G>>2]=0,e[I>>2]=-1,e[U>>2]=0,e[M>>2]=0,e[A+8>>2]=t,O=55;break}case 53:{e[A>>2]=r,e[A+4>>2]=i,O=55;break}case 58:{n|0&&mA(n),O=A,e[O>>2]=0,e[O+4>>2]=0,e[G>>2]=0,e[I>>2]=-1,e[U>>2]=0,e[M>>2]=0,e[A+8>>2]=t,O=71;break}case 65:{e[A>>2]=r,e[A+4>>2]=i,O=71;break}case 67:{t=e[M>>2]|0,t|0&&mA(t),j=A,e[j>>2]=0,e[j+4>>2]=0,e[G>>2]=0,e[I>>2]=-1,e[U>>2]=0,e[M>>2]=0,e[A+8>>2]=r,B=L;return}}if((O|0)==20){B=L;return}else if((O|0)==55){B=L;return}else if((O|0)==71){B=L;return}}while(!1);t=e[j>>2]|0,t|0&&mA(t),O=A,e[O>>2]=0,e[O+4>>2]=0,e[A+8>>2]=0,e[G>>2]=0,e[A+12>>2]=-1,e[U>>2]=0,e[j>>2]=0,B=L}function os(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0;k=B,B=B+16|0,p=k,i=$(A|0,t|0,52)|0,b()|0,i=i&15,r=$(A|0,t|0,45)|0,b()|0;do if(i){for(;r=sA(i+4095|0,0,52)|0,n=b()|0|t&-15728641,s=(15-i|0)*3|0,f=sA(7,0,s|0)|0,u=b()|0,r=r|A|f,n=n|u,a=$(A|0,t|0,s|0)|0,b()|0,a=a&7,i=i+-1|0,!(a>>>0<6);)if(i)t=n,A=r;else{w=4;break}if((w|0)==4){r=$(r|0,n|0,45)|0,b()|0;break}return p=(a|0)==0&(WA(r,n)|0)!=0,p=sA((p?2:1)+a|0,0,s|0)|0,w=b()|0|t&~u,p=p|A&~f,MA(w|0),B=k,p|0}while(!1);return r=r&127,r>>>0>120?(w=0,p=0,MA(w|0),B=k,p|0):(kr(p,0,r+1|0,0),w=e[p+4>>2]|0,p=e[p>>2]|0,MA(w|0),B=k,p|0)}function a1(A,t,r,i,n,s){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0,s=s|0;var f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0;O=B,B=B+160|0,k=O+80|0,u=O+64|0,M=O+112|0,I=O,h1(k,A,t,r),w=k,dr(u,e[w>>2]|0,e[w+4>>2]|0,t),w=u,a=e[w>>2]|0,w=e[w+4>>2]|0,f=e[k+8>>2]|0,P=M+4|0,e[P>>2]=e[k>>2],e[P+4>>2]=e[k+4>>2],e[P+8>>2]=e[k+8>>2],e[P+12>>2]=e[k+12>>2],e[P+16>>2]=e[k+16>>2],e[P+20>>2]=e[k+20>>2],e[P+24>>2]=e[k+24>>2],e[P+28>>2]=e[k+28>>2],P=I,e[P>>2]=a,e[P+4>>2]=w,P=I+8|0,e[P>>2]=f,A=I+12|0,t=M,r=A+36|0;do e[A>>2]=e[t>>2],A=A+4|0,t=t+4|0;while((A|0)<(r|0));if(M=I+48|0,e[M>>2]=e[u>>2],e[M+4>>2]=e[u+4>>2],e[M+8>>2]=e[u+8>>2],e[M+12>>2]=e[u+12>>2],(a|0)==0&(w|0)==0)return I=f,B=O,I|0;r=I+16|0,p=I+24|0,k=I+28|0,f=0,u=0,t=a,A=w;do{if(!((f|0)<(n|0)|(f|0)==(n|0)&u>>>0<i>>>0)){d=4;break}if(w=u,u=vA(u|0,f|0,1,0)|0,f=b()|0,w=s+(w<<3)|0,e[w>>2]=t,e[w+4>>2]=A,Tr(M),A=M,t=e[A>>2]|0,A=e[A+4>>2]|0,(t|0)==0&(A|0)==0){if(_t(r),t=r,A=e[t>>2]|0,t=e[t+4>>2]|0,(A|0)==0&(t|0)==0){d=10;break}es(A,t,e[k>>2]|0,M),A=M,t=e[A>>2]|0,A=e[A+4>>2]|0}w=I,e[w>>2]=t,e[w+4>>2]=A}while(!((t|0)==0&(A|0)==0));return(d|0)==4?(A=I+40|0,t=e[A>>2]|0,t|0&&mA(t),d=I+16|0,e[d>>2]=0,e[d+4>>2]=0,e[p>>2]=0,e[I+36>>2]=0,e[k>>2]=-1,e[I+32>>2]=0,e[A>>2]=0,es(0,0,0,M),e[I>>2]=0,e[I+4>>2]=0,e[P>>2]=0,I=14,B=O,I|0):((d|0)==10&&(e[I>>2]=0,e[I+4>>2]=0,e[P>>2]=e[p>>2]),I=e[P>>2]|0,B=O,I|0)}function c1(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0;if(k=B,B=B+48|0,a=k+32|0,u=k+40|0,w=k,!(e[A>>2]|0))return p=i,e[p>>2]=0,e[p+4>>2]=0,p=0,B=k,p|0;kr(a,0,0,0),f=a,n=e[f>>2]|0,f=e[f+4>>2]|0;do if(t>>>0>15)p=w,e[p>>2]=0,e[p+4>>2]=0,e[w+8>>2]=4,e[w+12>>2]=-1,p=w+16|0,r=w+29|0,e[p>>2]=0,e[p+4>>2]=0,e[p+8>>2]=0,AA[p+12>>0]=0,AA[r>>0]=AA[u>>0]|0,AA[r+1>>0]=AA[u+1>>0]|0,AA[r+2>>0]=AA[u+2>>0]|0,r=4,p=9;else{if(r=Ke(r)|0,r|0){a=w,e[a>>2]=0,e[a+4>>2]=0,e[w+8>>2]=r,e[w+12>>2]=-1,a=w+16|0,p=w+29|0,e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,AA[a+12>>0]=0,AA[p>>0]=AA[u>>0]|0,AA[p+1>>0]=AA[u+1>>0]|0,AA[p+2>>0]=AA[u+2>>0]|0,p=9;break}if(r=B0((e[A+8>>2]|0)+1|0,32)|0,!r){p=w,e[p>>2]=0,e[p+4>>2]=0,e[w+8>>2]=13,e[w+12>>2]=-1,p=w+16|0,r=w+29|0,e[p>>2]=0,e[p+4>>2]=0,e[p+8>>2]=0,AA[p+12>>0]=0,AA[r>>0]=AA[u>>0]|0,AA[r+1>>0]=AA[u+1>>0]|0,AA[r+2>>0]=AA[u+2>>0]|0,r=13,p=9;break}Ir(A,r),P=w,e[P>>2]=n,e[P+4>>2]=f,f=w+8|0,e[f>>2]=0,e[w+12>>2]=t,e[w+20>>2]=A,e[w+24>>2]=r,AA[w+28>>0]=0,n=w+29|0,AA[n>>0]=AA[u>>0]|0,AA[n+1>>0]=AA[u+1>>0]|0,AA[n+2>>0]=AA[u+2>>0]|0,e[w+16>>2]=3,M=+fu(r),M=M*+lu(r),s=+QA(+ +y[r>>3]),s=M/+zA(+ +Mt(+s,+ +QA(+ +y[r+8>>3])))*6371.007180918475*6371.007180918475,n=w+12|0,r=e[n>>2]|0;A:do if((r|0)>0)do{if(ts(r+-1|0,a)|0,!(s/+y[a>>3]>10))break A;P=e[n>>2]|0,r=P+-1|0,e[n>>2]=r}while((P|0)>1);while(!1);if(_t(w),n=i,e[n>>2]=0,e[n+4>>2]=0,n=w,r=e[n>>2]|0,n=e[n+4>>2]|0,!((r|0)==0&(n|0)==0))do je(r,n,t,a)|0,u=a,A=i,u=vA(e[A>>2]|0,e[A+4>>2]|0,e[u>>2]|0,e[u+4>>2]|0)|0,A=b()|0,P=i,e[P>>2]=u,e[P+4>>2]=A,_t(w),P=w,r=e[P>>2]|0,n=e[P+4>>2]|0;while(!((r|0)==0&(n|0)==0));r=e[f>>2]|0}while(!1);return P=r,B=k,P|0}function Ze(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0;if(!(wr(t,r)|0)||(t=On(t)|0,i=+y[r>>3],n=+y[r+8>>3],n=t&n<0?n+6.283185307179586:n,M=e[A>>2]|0,(M|0)<=0))return M=0,M|0;if(k=e[A+4>>2]|0,t){t=0,p=n,r=-1,A=0;A:for(;;){for(w=A;f=+y[k+(w<<4)>>3],n=+y[k+(w<<4)+8>>3],A=(r+2|0)%(M|0)|0,s=+y[k+(A<<4)>>3],u=+y[k+(A<<4)+8>>3],f>s?(a=f,f=u):(a=s,s=f,f=n,n=u),i=i==s|i==a?i+2220446049250313e-31:i,!!(i<s|i>a);)if(r=w+1|0,(r|0)>=(M|0)){r=22;break A}else A=w,w=r,r=A;if(u=f<0?f+6.283185307179586:f,f=n<0?n+6.283185307179586:n,p=u==p|f==p?p+-2220446049250313e-31:p,a=u+(f-u)*((i-s)/(a-s)),(a<0?a+6.283185307179586:a)>p&&(t=t^1),A=w+1|0,(A|0)>=(M|0)){r=22;break}else r=w}if((r|0)==22)return t|0}else{t=0,p=n,r=-1,A=0;A:for(;;){for(w=A;f=+y[k+(w<<4)>>3],n=+y[k+(w<<4)+8>>3],A=(r+2|0)%(M|0)|0,s=+y[k+(A<<4)>>3],u=+y[k+(A<<4)+8>>3],f>s?(a=f,f=u):(a=s,s=f,f=n,n=u),i=i==s|i==a?i+2220446049250313e-31:i,!!(i<s|i>a);)if(r=w+1|0,(r|0)>=(M|0)){r=22;break A}else A=w,w=r,r=A;if(p=f==p|n==p?p+-2220446049250313e-31:p,f+(n-f)*((i-s)/(a-s))>p&&(t=t^1),A=w+1|0,(A|0)>=(M|0)){r=22;break}else r=w}if((r|0)==22)return t|0}return 0}function ls(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0;if(d=e[A>>2]|0,!d){e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,e[t+28>>2]=0;return}if(I=t+8|0,y[I>>3]=17976931348623157e292,O=t+24|0,y[O>>3]=17976931348623157e292,y[t>>3]=-17976931348623157e292,j=t+16|0,y[j>>3]=-17976931348623157e292,!((d|0)<=0)){for(M=e[A+4>>2]|0,w=17976931348623157e292,p=-17976931348623157e292,k=0,A=-1,s=17976931348623157e292,f=17976931348623157e292,a=-17976931348623157e292,i=-17976931348623157e292,P=0;r=+y[M+(P<<4)>>3],u=+y[M+(P<<4)+8>>3],A=A+2|0,n=+y[M+(((A|0)==(d|0)?0:A)<<4)+8>>3],r<s&&(y[I>>3]=r,s=r),u<f&&(y[O>>3]=u,f=u),r>a?y[t>>3]=r:r=a,u>i&&(y[j>>3]=u,i=u),w=u>0&u<w?u:w,p=u<0&u>p?u:p,k=k|+QA(+(u-n))>3.141592653589793,A=P+1|0,(A|0)!=(d|0);)U=P,a=r,P=A,A=U;k&&(y[j>>3]=p,y[O>>3]=w)}}function Ke(A){return A=A|0,(A>>>0<4?0:15)|0}function Ir(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0;if(d=e[A>>2]|0,d){if(I=t+8|0,y[I>>3]=17976931348623157e292,O=t+24|0,y[O>>3]=17976931348623157e292,y[t>>3]=-17976931348623157e292,j=t+16|0,y[j>>3]=-17976931348623157e292,(d|0)>0){for(n=e[A+4>>2]|0,M=17976931348623157e292,P=-17976931348623157e292,i=0,r=-1,a=17976931348623157e292,w=17976931348623157e292,k=-17976931348623157e292,f=-17976931348623157e292,U=0;s=+y[n+(U<<4)>>3],p=+y[n+(U<<4)+8>>3],cA=r+2|0,u=+y[n+(((cA|0)==(d|0)?0:cA)<<4)+8>>3],s<a&&(y[I>>3]=s,a=s),p<w&&(y[O>>3]=p,w=p),s>k?y[t>>3]=s:s=k,p>f&&(y[j>>3]=p,f=p),M=p>0&p<M?p:M,P=p<0&p>P?p:P,i=i|+QA(+(p-u))>3.141592653589793,r=U+1|0,(r|0)!=(d|0);)cA=U,k=s,U=r,r=cA;i&&(y[j>>3]=P,y[O>>3]=M)}}else e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,e[t+28>>2]=0;if(cA=A+8|0,r=e[cA>>2]|0,!((r|0)<=0)){nA=A+12|0,L=0;do if(n=e[nA>>2]|0,i=L,L=L+1|0,O=t+(L<<5)|0,j=e[n+(i<<3)>>2]|0,j){if(U=t+(L<<5)+8|0,y[U>>3]=17976931348623157e292,A=t+(L<<5)+24|0,y[A>>3]=17976931348623157e292,y[O>>3]=-17976931348623157e292,G=t+(L<<5)+16|0,y[G>>3]=-17976931348623157e292,(j|0)>0){for(d=e[n+(i<<3)+4>>2]|0,M=17976931348623157e292,P=-17976931348623157e292,n=0,i=-1,I=0,a=17976931348623157e292,w=17976931348623157e292,p=-17976931348623157e292,f=-17976931348623157e292;s=+y[d+(I<<4)>>3],k=+y[d+(I<<4)+8>>3],i=i+2|0,u=+y[d+(((i|0)==(j|0)?0:i)<<4)+8>>3],s<a&&(y[U>>3]=s,a=s),k<w&&(y[A>>3]=k,w=k),s>p?y[O>>3]=s:s=p,k>f&&(y[G>>3]=k,f=k),M=k>0&k<M?k:M,P=k<0&k>P?k:P,n=n|+QA(+(k-u))>3.141592653589793,i=I+1|0,(i|0)!=(j|0);)fA=I,I=i,p=s,i=fA;n&&(y[G>>3]=P,y[A>>3]=M)}}else e[O>>2]=0,e[O+4>>2]=0,e[O+8>>2]=0,e[O+12>>2]=0,e[O+16>>2]=0,e[O+20>>2]=0,e[O+24>>2]=0,e[O+28>>2]=0,r=e[cA>>2]|0;while((L|0)<(r|0))}}function Sr(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;if(!(Ze(A,t,r)|0))return n=0,n|0;if(n=A+8|0,(e[n>>2]|0)<=0)return n=1,n|0;for(i=A+12|0,A=0;;){if(s=A,A=A+1|0,Ze((e[i>>2]|0)+(s<<3)|0,t+(A<<5)|0,r)|0){A=0,i=6;break}if((A|0)>=(e[n>>2]|0)){A=1,i=6;break}}return(i|0)==6?A|0:0}function fs(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0;if(w=B,B=B+16|0,u=w,f=r+8|0,!(Ze(A,t,f)|0))return a=0,B=w,a|0;a=A+8|0;A:do if((e[a>>2]|0)>0){for(s=A+12|0,n=0;;){if(p=n,n=n+1|0,Ze((e[s>>2]|0)+(p<<3)|0,t+(n<<5)|0,f)|0){n=0;break}if((n|0)>=(e[a>>2]|0))break A}return B=w,n|0}while(!1);if(Dt(A,t,r,i)|0)return p=0,B=w,p|0;e[u>>2]=e[r>>2],e[u+4>>2]=f,n=e[a>>2]|0;A:do if((n|0)>0)for(A=A+12|0,f=0,s=n;;){if(n=e[A>>2]|0,(e[n+(f<<3)>>2]|0)>0){if(Ze(u,i,e[n+(f<<3)+4>>2]|0)|0){n=0;break A}if(n=f+1|0,Dt((e[A>>2]|0)+(f<<3)|0,t+(n<<5)|0,r,i)|0){n=0;break A}s=e[a>>2]|0}else n=f+1|0;if((n|0)<(s|0))f=n;else{n=1;break}}else n=1;while(!1);return p=n,B=w,p|0}function Dt(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0,cA=0,fA=0,DA=0;if(cA=B,B=B+176|0,U=cA+172|0,n=cA+168|0,G=cA,!(pr(t,i)|0))return A=0,B=cA,A|0;if(uu(t,i,U,n),xe(G|0,r|0,168)|0,(e[r>>2]|0)>0){t=0;do fA=G+8+(t<<4)+8|0,j=+b0(+y[fA>>3],e[n>>2]|0),y[fA>>3]=j,t=t+1|0;while((t|0)<(e[r>>2]|0))}I=+y[i>>3],O=+y[i+8>>3],j=+b0(+y[i+16>>3],e[n>>2]|0),P=+b0(+y[i+24>>3],e[n>>2]|0);A:do if((e[A>>2]|0)>0){if(i=A+4|0,n=e[G>>2]|0,(n|0)<=0){for(t=0;;)if(t=t+1|0,(t|0)>=(e[A>>2]|0)){t=0;break A}}for(r=0;;){if(t=e[i>>2]|0,M=+y[t+(r<<4)>>3],d=+b0(+y[t+(r<<4)+8>>3],e[U>>2]|0),t=e[i>>2]|0,r=r+1|0,fA=(r|0)%(e[A>>2]|0)|0,s=+y[t+(fA<<4)>>3],f=+b0(+y[t+(fA<<4)+8>>3],e[U>>2]|0),!(M>=I)|!(s>=I)&&!(M<=O)|!(s<=O)&&!(d<=P)|!(f<=P)&&!(d>=j)|!(f>=j)){k=s-M,w=f-d,t=0;do if(DA=t,t=t+1|0,fA=(t|0)==(n|0)?0:t,s=+y[G+8+(DA<<4)+8>>3],f=+y[G+8+(fA<<4)+8>>3]-s,u=+y[G+8+(DA<<4)>>3],a=+y[G+8+(fA<<4)>>3]-u,p=k*f-w*a,p!=0&&(L=d-s,nA=M-u,a=(L*a-f*nA)/p,!(a<0|a>1))&&(p=(k*L-w*nA)/p,p>=0&p<=1)){t=1;break A}while((t|0)<(n|0))}if((r|0)>=(e[A>>2]|0)){t=0;break}}}else t=0;while(!1);return DA=t,B=cA,DA|0}function us(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0;if(Dt(A,t,r,i)|0)return s=1,s|0;if(s=A+8|0,(e[s>>2]|0)<=0)return s=0,s|0;for(n=A+12|0,A=0;;){if(f=A,A=A+1|0,Dt((e[n>>2]|0)+(f<<3)|0,t+(A<<5)|0,r,i)|0){A=1,n=6;break}if((A|0)>=(e[s>>2]|0)){A=0,n=6;break}}return(n|0)==6?A|0:0}function g1(){return 8}function w1(){return 16}function p1(){return 168}function v1(){return 8}function m1(){return 16}function E1(){return 12}function y1(){return 8}function B1(A){return A=A|0,+(+((e[A>>2]|0)>>>0)+4294967296*+(e[A+4>>2]|0))}function k1(A){A=A|0;var t=0,r=0;return r=+y[A>>3],t=+y[A+8>>3],+ +UA(+(r*r+t*t))}function hs(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0;w=+y[A>>3],a=+y[t>>3]-w,u=+y[A+8>>3],f=+y[t+8>>3]-u,k=+y[r>>3],s=+y[i>>3]-k,M=+y[r+8>>3],p=+y[i+8>>3]-M,s=(s*(u-M)-(w-k)*p)/(a*p-f*s),y[n>>3]=w+a*s,y[n+8>>3]=u+f*s}function as(A,t){return A=A|0,t=t|0,+QA(+(+y[A>>3]-+y[t>>3]))<11920928955078125e-23?(t=+QA(+(+y[A+8>>3]-+y[t+8>>3]))<11920928955078125e-23,t|0):(t=0,t|0)}function t0(A,t){A=A|0,t=t|0;var r=0,i=0,n=0;return n=+y[A>>3]-+y[t>>3],i=+y[A+8>>3]-+y[t+8>>3],r=+y[A+16>>3]-+y[t+16>>3],+(n*n+i*i+r*r)}function b1(A,t){A=A|0,t=t|0;var r=0,i=0,n=0;r=+y[A>>3],i=+zA(+r),r=+IA(+r),y[t+16>>3]=r,r=+y[A+8>>3],n=i*+zA(+r),y[t>>3]=n,r=i*+IA(+r),y[t+8>>3]=r}function C1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;if(s=B,B=B+16|0,n=s,i=WA(A,t)|0,(r+-1|0)>>>0>5||(i=(i|0)!=0,(r|0)==1&i))return n=-1,B=s,n|0;do if(Je(A,t,n)|0)i=-1;else if(i){i=((e[26352+(r<<2)>>2]|0)+5-(e[n>>2]|0)|0)%5|0;break}else{i=((e[26384+(r<<2)>>2]|0)+6-(e[n>>2]|0)|0)%6|0;break}while(!1);return n=i,B=s,n|0}function Je(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0,w=0;if(w=B,B=B+32|0,f=w+16|0,u=w,i=De(A,t,f)|0,i|0)return r=i,B=w,r|0;s=Jn(A,t)|0,a=y0(A,t)|0,iu(s,u),i=nu(s,e[f>>2]|0)|0;A:do if(JA(s)|0){do switch(s|0){case 4:{A=0;break}case 14:{A=1;break}case 24:{A=2;break}case 38:{A=3;break}case 49:{A=4;break}case 58:{A=5;break}case 63:{A=6;break}case 72:{A=7;break}case 83:{A=8;break}case 97:{A=9;break}case 107:{A=10;break}case 117:{A=11;break}default:{i=1;break A}}while(!1);if(n=e[26416+(A*24|0)+8>>2]|0,t=e[26416+(A*24|0)+16>>2]|0,A=e[f>>2]|0,(A|0)!=(e[u>>2]|0)&&(u=ar(s)|0,A=e[f>>2]|0,u|(A|0)==(t|0)&&(i=(i+1|0)%6|0)),(a|0)==3&(A|0)==(t|0)){i=(i+5|0)%6|0,n=22;break}(a|0)==5&(A|0)==(n|0)&&(i=(i+1|0)%6|0),n=22}else n=22;while(!1);return(n|0)==22&&(e[r>>2]=i,i=0),r=i,B=w,r|0}function Q0(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0;if(G=B,B=B+32|0,U=G+24|0,O=G+20|0,d=G+8|0,P=G+16|0,M=G,a=(WA(A,t)|0)==0,a=a?6:5,p=$(A|0,t|0,52)|0,b()|0,p=p&15,a>>>0<=r>>>0)return i=2,B=G,i|0;k=(p|0)==0,!k&&(I=sA(7,0,(p^15)*3|0)|0,(I&A|0)==0&((b()|0)&t|0)==0)?n=r:s=4;A:do if((s|0)==4){if(n=(WA(A,t)|0)!=0,((n?4:5)|0)<(r|0)||Je(A,t,U)|0||(s=(e[U>>2]|0)+r|0,n?n=26704+(((s|0)%5|0)<<2)|0:n=26736+(((s|0)%6|0)<<2)|0,I=e[n>>2]|0,(I|0)==7))return i=1,B=G,i|0;e[O>>2]=0,n=o0(A,t,I,O,d)|0;do if(!n){if(u=d,w=e[u>>2]|0,u=e[u+4>>2]|0,f=u>>>0<t>>>0|(u|0)==(t|0)&w>>>0<A>>>0,s=f?w:A,f=f?u:t,!k&&(k=sA(7,0,(p^15)*3|0)|0,(w&k|0)==0&(u&(b()|0)|0)==0))n=r;else{if(u=(r+-1+a|0)%(a|0)|0,n=WA(A,t)|0,(u|0)<0&&kA(27795,27797,246,27806),a=(n|0)!=0,((a?4:5)|0)<(u|0)&&kA(27795,27797,246,27806),Je(A,t,U)|0&&kA(27795,27797,246,27806),n=(e[U>>2]|0)+u|0,a?n=26704+(((n|0)%5|0)<<2)|0:n=26736+(((n|0)%6|0)<<2)|0,u=e[n>>2]|0,(u|0)==7&&kA(27795,27797,246,27806),e[P>>2]=0,n=o0(A,t,u,P,M)|0,n|0)break;w=M,a=e[w>>2]|0,w=e[w+4>>2]|0;do if(w>>>0<f>>>0|(w|0)==(f|0)&a>>>0<s>>>0){if(WA(a,w)|0?s=hr(a,w,A,t)|0:s=e[26800+((((e[P>>2]|0)+(e[26768+(u<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,n=WA(a,w)|0,(s+-1|0)>>>0>5){n=-1,s=a,f=w;break}if(n=(n|0)!=0,(s|0)==1&n){n=-1,s=a,f=w;break}do if(Je(a,w,U)|0)n=-1;else if(n){n=((e[26352+(s<<2)>>2]|0)+5-(e[U>>2]|0)|0)%5|0;break}else{n=((e[26384+(s<<2)>>2]|0)+6-(e[U>>2]|0)|0)%6|0;break}while(!1);s=a,f=w}else n=r;while(!1);u=d,w=e[u>>2]|0,u=e[u+4>>2]|0}if((s|0)==(w|0)&(f|0)==(u|0)){if(a=(WA(w,u)|0)!=0,a?A=hr(w,u,A,t)|0:A=e[26800+((((e[O>>2]|0)+(e[26768+(I<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,n=WA(w,u)|0,(A+-1|0)>>>0<=5&&(j=(n|0)!=0,!((A|0)==1&j)))do if(Je(w,u,U)|0)n=-1;else if(j){n=((e[26352+(A<<2)>>2]|0)+5-(e[U>>2]|0)|0)%5|0;break}else{n=((e[26384+(A<<2)>>2]|0)+6-(e[U>>2]|0)|0)%6|0;break}while(!1);else n=-1;n=n+1|0,n=(n|0)==6|a&(n|0)==5?0:n}t=f,A=s;break A}while(!1);return i=n,B=G,i|0}while(!1);return j=sA(n|0,0,56)|0,U=b()|0|t&-2130706433|536870912,e[i>>2]=j|A,e[i+4>>2]=U,i=0,B=G,i|0}function _1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;return s=(WA(A,t)|0)==0,i=Q0(A,t,0,r)|0,n=(i|0)==0,s?!n||(i=Q0(A,t,1,r+8|0)|0,i|0)||(i=Q0(A,t,2,r+16|0)|0,i|0)||(i=Q0(A,t,3,r+24|0)|0,i|0)||(i=Q0(A,t,4,r+32|0)|0,i)?(s=i,s|0):Q0(A,t,5,r+40|0)|0:!n||(i=Q0(A,t,1,r+8|0)|0,i|0)||(i=Q0(A,t,2,r+16|0)|0,i|0)||(i=Q0(A,t,3,r+24|0)|0,i|0)||(i=Q0(A,t,4,r+32|0)|0,i|0)?(s=i,s|0):(s=r+40|0,e[s>>2]=0,e[s+4>>2]=0,s=0,s|0)}function D1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0,u=0,a=0;return a=B,B=B+192|0,n=a,s=a+168|0,f=$(A|0,t|0,56)|0,b()|0,f=f&7,u=t&-2130706433|134217728,i=De(A,u,s)|0,i|0?(u=i,B=a,u|0):(t=$(A|0,t|0,52)|0,b()|0,t=t&15,WA(A,u)|0?Er(s,t,f,1,n):yr(s,t,f,1,n),u=n+8|0,e[r>>2]=e[u>>2],e[r+4>>2]=e[u+4>>2],e[r+8>>2]=e[u+8>>2],e[r+12>>2]=e[u+12>>2],u=0,B=a,u|0)}function M1(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0;return n=B,B=B+16|0,r=n,!(!0&(t&2013265920|0)==536870912)||(i=t&-2130706433|134217728,!(Br(A,i)|0))?(i=0,B=n,i|0):(s=$(A|0,t|0,56)|0,b()|0,s=(Q0(A,i,s&7,r)|0)==0,i=r,i=s&((e[i>>2]|0)==(A|0)?(e[i+4>>2]|0)==(t|0):0)&1,B=n,i|0)}function cs(A,t,r){A=A|0,t=t|0,r=r|0;var i=0;(t|0)>0?(i=B0(t,4)|0,e[A>>2]=i,i||kA(27819,27842,40,27856)):e[A>>2]=0,e[A+4>>2]=t,e[A+8>>2]=0,e[A+12>>2]=r}function gs(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0;n=A+4|0,s=A+12|0,f=A+8|0;A:for(;;){for(r=e[n>>2]|0,t=0;;){if((t|0)>=(r|0))break A;if(i=e[A>>2]|0,u=e[i+(t<<2)>>2]|0,!u)t=t+1|0;else break}t=i+(~~(+QA(+(+J0(10,+ +(15-(e[s>>2]|0)|0))*(+y[u>>3]+ +y[u+8>>3])))%+(r|0))>>>0<<2)|0,r=e[t>>2]|0;e:do if(r|0){if(i=u+32|0,(r|0)==(u|0))e[t>>2]=e[i>>2];else{if(r=r+32|0,t=e[r>>2]|0,!t)break;for(;(t|0)!=(u|0);)if(r=t+32|0,t=e[r>>2]|0,!t)break e;e[r>>2]=e[i>>2]}mA(u),e[f>>2]=(e[f>>2]|0)+-1}while(!1)}mA(e[A>>2]|0)}function ws(A){A=A|0;var t=0,r=0,i=0;for(i=e[A+4>>2]|0,r=0;;){if((r|0)>=(i|0)){t=0,r=4;break}if(t=e[(e[A>>2]|0)+(r<<2)>>2]|0,!t)r=r+1|0;else{r=4;break}}return(r|0)==4?t|0:0}function ps(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0;if(r=~~(+QA(+(+J0(10,+ +(15-(e[A+12>>2]|0)|0))*(+y[t>>3]+ +y[t+8>>3])))%+(e[A+4>>2]|0))>>>0,r=(e[A>>2]|0)+(r<<2)|0,i=e[r>>2]|0,!i)return s=1,s|0;s=t+32|0;do if((i|0)!=(t|0)){if(r=e[i+32>>2]|0,!r)return s=1,s|0;for(n=r;;){if((n|0)==(t|0)){n=8;break}if(r=e[n+32>>2]|0,r)i=n,n=r;else{r=1,n=10;break}}if((n|0)==8){e[i+32>>2]=e[s>>2];break}else if((n|0)==10)return r|0}else e[r>>2]=e[s>>2];while(!1);return mA(t),s=A+8|0,e[s>>2]=(e[s>>2]|0)+-1,s=0,s|0}function P1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0;s=N0(40)|0,s||kA(27872,27842,98,27885),e[s>>2]=e[t>>2],e[s+4>>2]=e[t+4>>2],e[s+8>>2]=e[t+8>>2],e[s+12>>2]=e[t+12>>2],n=s+16|0,e[n>>2]=e[r>>2],e[n+4>>2]=e[r+4>>2],e[n+8>>2]=e[r+8>>2],e[n+12>>2]=e[r+12>>2],e[s+32>>2]=0,n=~~(+QA(+(+J0(10,+ +(15-(e[A+12>>2]|0)|0))*(+y[t>>3]+ +y[t+8>>3])))%+(e[A+4>>2]|0))>>>0,n=(e[A>>2]|0)+(n<<2)|0,i=e[n>>2]|0;do if(!i)e[n>>2]=s;else{for(;!(Pe(i,t)|0&&Pe(i+16|0,r)|0);)if(n=e[i+32>>2]|0,i=(n|0)==0?i:n,!(e[i+32>>2]|0)){f=10;break}if((f|0)==10){e[i+32>>2]=s;break}return mA(s),f=i,f|0}while(!1);return f=A+8|0,e[f>>2]=(e[f>>2]|0)+1,f=s,f|0}function d1(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0;if(n=~~(+QA(+(+J0(10,+ +(15-(e[A+12>>2]|0)|0))*(+y[t>>3]+ +y[t+8>>3])))%+(e[A+4>>2]|0))>>>0,n=e[(e[A>>2]|0)+(n<<2)>>2]|0,!n)return r=0,r|0;if(!r){for(A=n;;){if(Pe(A,t)|0){i=10;break}if(A=e[A+32>>2]|0,!A){A=0,i=10;break}}if((i|0)==10)return A|0}for(A=n;;){if(Pe(A,t)|0&&Pe(A+16|0,r)|0){i=10;break}if(A=e[A+32>>2]|0,!A){A=0,i=10;break}}return(i|0)==10?A|0:0}function T1(A,t){A=A|0,t=t|0;var r=0;if(r=~~(+QA(+(+J0(10,+ +(15-(e[A+12>>2]|0)|0))*(+y[t>>3]+ +y[t+8>>3])))%+(e[A+4>>2]|0))>>>0,A=e[(e[A>>2]|0)+(r<<2)>>2]|0,!A)return r=0,r|0;for(;;){if(Pe(A,t)|0){t=5;break}if(A=e[A+32>>2]|0,!A){A=0,t=5;break}}return(t|0)==5?A|0:0}function x1(){return 27904}function Ae(A){return A=+A,~~+Bs(+A)|0}function N0(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0,I=0,O=0,j=0,U=0,G=0,L=0,nA=0;nA=B,B=B+16|0,M=nA;do if(A>>>0<245){if(w=A>>>0<11?16:A+11&-8,A=w>>>3,k=e[6977]|0,r=k>>>A,r&3|0)return t=(r&1^1)+A|0,A=27948+(t<<1<<2)|0,r=A+8|0,i=e[r>>2]|0,n=i+8|0,s=e[n>>2]|0,(s|0)==(A|0)?e[6977]=k&~(1<<t):(e[s+12>>2]=A,e[r>>2]=s),L=t<<3,e[i+4>>2]=L|3,L=i+L+4|0,e[L>>2]=e[L>>2]|1,L=n,B=nA,L|0;if(p=e[6979]|0,w>>>0>p>>>0){if(r|0)return t=2<<A,t=r<<A&(t|0-t),t=(t&0-t)+-1|0,u=t>>>12&16,t=t>>>u,r=t>>>5&8,t=t>>>r,s=t>>>2&4,t=t>>>s,A=t>>>1&2,t=t>>>A,i=t>>>1&1,i=(r|u|s|A|i)+(t>>>i)|0,t=27948+(i<<1<<2)|0,A=t+8|0,s=e[A>>2]|0,u=s+8|0,r=e[u>>2]|0,(r|0)==(t|0)?(A=k&~(1<<i),e[6977]=A):(e[r+12>>2]=t,e[A>>2]=r,A=k),L=i<<3,f=L-w|0,e[s+4>>2]=w|3,n=s+w|0,e[n+4>>2]=f|1,e[s+L>>2]=f,p|0&&(i=e[6982]|0,t=p>>>3,r=27948+(t<<1<<2)|0,t=1<<t,A&t?(A=r+8|0,t=e[A>>2]|0):(e[6977]=A|t,t=r,A=r+8|0),e[A>>2]=i,e[t+12>>2]=i,e[i+8>>2]=t,e[i+12>>2]=r),e[6979]=f,e[6982]=n,L=u,B=nA,L|0;if(s=e[6978]|0,s){for(r=(s&0-s)+-1|0,n=r>>>12&16,r=r>>>n,i=r>>>5&8,r=r>>>i,f=r>>>2&4,r=r>>>f,u=r>>>1&2,r=r>>>u,a=r>>>1&1,a=e[28212+((i|n|f|u|a)+(r>>>a)<<2)>>2]|0,r=a,u=a,a=(e[a+4>>2]&-8)-w|0;A=e[r+16>>2]|0,!(!A&&(A=e[r+20>>2]|0,!A));)f=(e[A+4>>2]&-8)-w|0,n=f>>>0<a>>>0,r=A,u=n?A:u,a=n?f:a;if(f=u+w|0,f>>>0>u>>>0){n=e[u+24>>2]|0,t=e[u+12>>2]|0;do if((t|0)==(u|0)){if(A=u+20|0,t=e[A>>2]|0,!t&&(A=u+16|0,t=e[A>>2]|0,!t)){r=0;break}for(;;)if(i=t+20|0,r=e[i>>2]|0,r)t=r,A=i;else if(i=t+16|0,r=e[i>>2]|0,r)t=r,A=i;else break;e[A>>2]=0,r=t}else r=e[u+8>>2]|0,e[r+12>>2]=t,e[t+8>>2]=r,r=t;while(!1);do if(n|0){if(t=e[u+28>>2]|0,A=28212+(t<<2)|0,(u|0)==(e[A>>2]|0)){if(e[A>>2]=r,!r){e[6978]=s&~(1<<t);break}}else if(L=n+16|0,e[((e[L>>2]|0)==(u|0)?L:n+20|0)>>2]=r,!r)break;e[r+24>>2]=n,t=e[u+16>>2]|0,t|0&&(e[r+16>>2]=t,e[t+24>>2]=r),t=e[u+20>>2]|0,t|0&&(e[r+20>>2]=t,e[t+24>>2]=r)}while(!1);return a>>>0<16?(L=a+w|0,e[u+4>>2]=L|3,L=u+L+4|0,e[L>>2]=e[L>>2]|1):(e[u+4>>2]=w|3,e[f+4>>2]=a|1,e[f+a>>2]=a,p|0&&(i=e[6982]|0,t=p>>>3,r=27948+(t<<1<<2)|0,t=1<<t,t&k?(A=r+8|0,t=e[A>>2]|0):(e[6977]=t|k,t=r,A=r+8|0),e[A>>2]=i,e[t+12>>2]=i,e[i+8>>2]=t,e[i+12>>2]=r),e[6979]=a,e[6982]=f),L=u+8|0,B=nA,L|0}else k=w}else k=w}else k=w}else if(A>>>0<=4294967231)if(A=A+11|0,w=A&-8,i=e[6978]|0,i){n=0-w|0,A=A>>>8,A?w>>>0>16777215?a=31:(k=(A+1048320|0)>>>16&8,I=A<<k,u=(I+520192|0)>>>16&4,I=I<<u,a=(I+245760|0)>>>16&2,a=14-(u|k|a)+(I<<a>>>15)|0,a=w>>>(a+7|0)&1|a<<1):a=0,r=e[28212+(a<<2)>>2]|0;A:do if(!r)r=0,A=0,I=61;else for(A=0,u=w<<((a|0)==31?0:25-(a>>>1)|0),s=0;;){if(f=(e[r+4>>2]&-8)-w|0,f>>>0<n>>>0)if(f)A=r,n=f;else{A=r,n=0,I=65;break A}if(I=e[r+20>>2]|0,r=e[r+16+(u>>>31<<2)>>2]|0,s=(I|0)==0|(I|0)==(r|0)?s:I,r)u=u<<1;else{r=s,I=61;break}}while(!1);if((I|0)==61){if((r|0)==0&(A|0)==0){if(A=2<<a,A=(A|0-A)&i,!A){k=w;break}k=(A&0-A)+-1|0,f=k>>>12&16,k=k>>>f,s=k>>>5&8,k=k>>>s,u=k>>>2&4,k=k>>>u,a=k>>>1&2,k=k>>>a,r=k>>>1&1,A=0,r=e[28212+((s|f|u|a|r)+(k>>>r)<<2)>>2]|0}r?I=65:(u=A,f=n)}if((I|0)==65)for(s=r;;)if(k=(e[s+4>>2]&-8)-w|0,r=k>>>0<n>>>0,n=r?k:n,A=r?s:A,r=e[s+16>>2]|0,r||(r=e[s+20>>2]|0),r)s=r;else{u=A,f=n;break}if((u|0)!=0&&f>>>0<((e[6979]|0)-w|0)>>>0&&(p=u+w|0,p>>>0>u>>>0)){s=e[u+24>>2]|0,t=e[u+12>>2]|0;do if((t|0)==(u|0)){if(A=u+20|0,t=e[A>>2]|0,!t&&(A=u+16|0,t=e[A>>2]|0,!t)){t=0;break}for(;;)if(n=t+20|0,r=e[n>>2]|0,r)t=r,A=n;else if(n=t+16|0,r=e[n>>2]|0,r)t=r,A=n;else break;e[A>>2]=0}else L=e[u+8>>2]|0,e[L+12>>2]=t,e[t+8>>2]=L;while(!1);do if(s){if(A=e[u+28>>2]|0,r=28212+(A<<2)|0,(u|0)==(e[r>>2]|0)){if(e[r>>2]=t,!t){i=i&~(1<<A),e[6978]=i;break}}else if(L=s+16|0,e[((e[L>>2]|0)==(u|0)?L:s+20|0)>>2]=t,!t)break;e[t+24>>2]=s,A=e[u+16>>2]|0,A|0&&(e[t+16>>2]=A,e[A+24>>2]=t),A=e[u+20>>2]|0,A&&(e[t+20>>2]=A,e[A+24>>2]=t)}while(!1);A:do if(f>>>0<16)L=f+w|0,e[u+4>>2]=L|3,L=u+L+4|0,e[L>>2]=e[L>>2]|1;else{if(e[u+4>>2]=w|3,e[p+4>>2]=f|1,e[p+f>>2]=f,t=f>>>3,f>>>0<256){r=27948+(t<<1<<2)|0,A=e[6977]|0,t=1<<t,A&t?(A=r+8|0,t=e[A>>2]|0):(e[6977]=A|t,t=r,A=r+8|0),e[A>>2]=p,e[t+12>>2]=p,e[p+8>>2]=t,e[p+12>>2]=r;break}if(t=f>>>8,t?f>>>0>16777215?r=31:(G=(t+1048320|0)>>>16&8,L=t<<G,U=(L+520192|0)>>>16&4,L=L<<U,r=(L+245760|0)>>>16&2,r=14-(U|G|r)+(L<<r>>>15)|0,r=f>>>(r+7|0)&1|r<<1):r=0,t=28212+(r<<2)|0,e[p+28>>2]=r,A=p+16|0,e[A+4>>2]=0,e[A>>2]=0,A=1<<r,!(i&A)){e[6978]=i|A,e[t>>2]=p,e[p+24>>2]=t,e[p+12>>2]=p,e[p+8>>2]=p;break}t=e[t>>2]|0;e:do if((e[t+4>>2]&-8|0)!=(f|0)){for(i=f<<((r|0)==31?0:25-(r>>>1)|0);r=t+16+(i>>>31<<2)|0,A=e[r>>2]|0,!!A;)if((e[A+4>>2]&-8|0)==(f|0)){t=A;break e}else i=i<<1,t=A;e[r>>2]=p,e[p+24>>2]=t,e[p+12>>2]=p,e[p+8>>2]=p;break A}while(!1);G=t+8|0,L=e[G>>2]|0,e[L+12>>2]=p,e[G>>2]=p,e[p+8>>2]=L,e[p+12>>2]=t,e[p+24>>2]=0}while(!1);return L=u+8|0,B=nA,L|0}else k=w}else k=w;else k=-1;while(!1);if(r=e[6979]|0,r>>>0>=k>>>0)return t=r-k|0,A=e[6982]|0,t>>>0>15?(L=A+k|0,e[6982]=L,e[6979]=t,e[L+4>>2]=t|1,e[A+r>>2]=t,e[A+4>>2]=k|3):(e[6979]=0,e[6982]=0,e[A+4>>2]=r|3,L=A+r+4|0,e[L>>2]=e[L>>2]|1),L=A+8|0,B=nA,L|0;if(f=e[6980]|0,f>>>0>k>>>0)return U=f-k|0,e[6980]=U,L=e[6983]|0,G=L+k|0,e[6983]=G,e[G+4>>2]=U|1,e[L+4>>2]=k|3,L=L+8|0,B=nA,L|0;if(e[7095]|0?A=e[7097]|0:(e[7097]=4096,e[7096]=4096,e[7098]=-1,e[7099]=-1,e[7100]=0,e[7088]=0,e[7095]=M&-16^1431655768,A=4096),u=k+48|0,a=k+47|0,s=A+a|0,n=0-A|0,w=s&n,w>>>0<=k>>>0||(A=e[7087]|0,A|0&&(p=e[7085]|0,M=p+w|0,M>>>0<=p>>>0|M>>>0>A>>>0)))return L=0,B=nA,L|0;A:do if(e[7088]&4)t=0,I=143;else{r=e[6983]|0;e:do if(r){for(i=28356;M=e[i>>2]|0,!(M>>>0<=r>>>0&&(M+(e[i+4>>2]|0)|0)>>>0>r>>>0);)if(A=e[i+8>>2]|0,A)i=A;else{I=128;break e}if(t=s-f&n,t>>>0<2147483647)if(A=re(t|0)|0,(A|0)==((e[i>>2]|0)+(e[i+4>>2]|0)|0)){if((A|0)!=-1){f=t,s=A,I=145;break A}}else i=A,I=136;else t=0}else I=128;while(!1);do if((I|0)==128)if(r=re(0)|0,(r|0)!=-1&&(t=r,P=e[7096]|0,d=P+-1|0,t=((d&t|0)==0?0:(d+t&0-P)-t|0)+w|0,P=e[7085]|0,d=t+P|0,t>>>0>k>>>0&t>>>0<2147483647)){if(M=e[7087]|0,M|0&&d>>>0<=P>>>0|d>>>0>M>>>0){t=0;break}if(A=re(t|0)|0,(A|0)==(r|0)){f=t,s=r,I=145;break A}else i=A,I=136}else t=0;while(!1);do if((I|0)==136){if(r=0-t|0,!(u>>>0>t>>>0&(t>>>0<2147483647&(i|0)!=-1)))if((i|0)==-1){t=0;break}else{f=t,s=i,I=145;break A}if(A=e[7097]|0,A=a-t+A&0-A,A>>>0>=2147483647){f=t,s=i,I=145;break A}if((re(A|0)|0)==-1){re(r|0)|0,t=0;break}else{f=A+t|0,s=i,I=145;break A}}while(!1);e[7088]=e[7088]|4,I=143}while(!1);if((I|0)==143&&w>>>0<2147483647&&(U=re(w|0)|0,d=re(0)|0,O=d-U|0,j=O>>>0>(k+40|0)>>>0,!((U|0)==-1|j^1|U>>>0<d>>>0&((U|0)!=-1&(d|0)!=-1)^1))&&(f=j?O:t,s=U,I=145),(I|0)==145){t=(e[7085]|0)+f|0,e[7085]=t,t>>>0>(e[7086]|0)>>>0&&(e[7086]=t),a=e[6983]|0;A:do if(a){for(t=28356;;){if(A=e[t>>2]|0,r=e[t+4>>2]|0,(s|0)==(A+r|0)){I=154;break}if(i=e[t+8>>2]|0,i)t=i;else break}if((I|0)==154&&(G=t+4|0,(e[t+12>>2]&8|0)==0)&&s>>>0>a>>>0&A>>>0<=a>>>0){e[G>>2]=r+f,L=(e[6980]|0)+f|0,U=a+8|0,U=(U&7|0)==0?0:0-U&7,G=a+U|0,U=L-U|0,e[6983]=G,e[6980]=U,e[G+4>>2]=U|1,e[a+L+4>>2]=40,e[6984]=e[7099];break}for(s>>>0<(e[6981]|0)>>>0&&(e[6981]=s),r=s+f|0,t=28356;;){if((e[t>>2]|0)==(r|0)){I=162;break}if(A=e[t+8>>2]|0,A)t=A;else break}if((I|0)==162&&(e[t+12>>2]&8|0)==0){e[t>>2]=s,p=t+4|0,e[p>>2]=(e[p>>2]|0)+f,p=s+8|0,p=s+((p&7|0)==0?0:0-p&7)|0,t=r+8|0,t=r+((t&7|0)==0?0:0-t&7)|0,w=p+k|0,u=t-p-k|0,e[p+4>>2]=k|3;e:do if((a|0)==(t|0))L=(e[6980]|0)+u|0,e[6980]=L,e[6983]=w,e[w+4>>2]=L|1;else{if((e[6982]|0)==(t|0)){L=(e[6979]|0)+u|0,e[6979]=L,e[6982]=w,e[w+4>>2]=L|1,e[w+L>>2]=L;break}if(A=e[t+4>>2]|0,(A&3|0)==1){f=A&-8,i=A>>>3;t:do if(A>>>0<256)if(A=e[t+8>>2]|0,r=e[t+12>>2]|0,(r|0)==(A|0)){e[6977]=e[6977]&~(1<<i);break}else{e[A+12>>2]=r,e[r+8>>2]=A;break}else{s=e[t+24>>2]|0,A=e[t+12>>2]|0;do if((A|0)==(t|0)){if(r=t+16|0,i=r+4|0,A=e[i>>2]|0,A)r=i;else if(A=e[r>>2]|0,!A){A=0;break}for(;;)if(n=A+20|0,i=e[n>>2]|0,i)A=i,r=n;else if(n=A+16|0,i=e[n>>2]|0,i)A=i,r=n;else break;e[r>>2]=0}else L=e[t+8>>2]|0,e[L+12>>2]=A,e[A+8>>2]=L;while(!1);if(!s)break;r=e[t+28>>2]|0,i=28212+(r<<2)|0;do if((e[i>>2]|0)!=(t|0)){if(L=s+16|0,e[((e[L>>2]|0)==(t|0)?L:s+20|0)>>2]=A,!A)break t}else{if(e[i>>2]=A,A|0)break;e[6978]=e[6978]&~(1<<r);break t}while(!1);if(e[A+24>>2]=s,r=t+16|0,i=e[r>>2]|0,i|0&&(e[A+16>>2]=i,e[i+24>>2]=A),r=e[r+4>>2]|0,!r)break;e[A+20>>2]=r,e[r+24>>2]=A}while(!1);t=t+f|0,n=f+u|0}else n=u;if(t=t+4|0,e[t>>2]=e[t>>2]&-2,e[w+4>>2]=n|1,e[w+n>>2]=n,t=n>>>3,n>>>0<256){r=27948+(t<<1<<2)|0,A=e[6977]|0,t=1<<t,A&t?(A=r+8|0,t=e[A>>2]|0):(e[6977]=A|t,t=r,A=r+8|0),e[A>>2]=w,e[t+12>>2]=w,e[w+8>>2]=t,e[w+12>>2]=r;break}t=n>>>8;do if(!t)i=0;else{if(n>>>0>16777215){i=31;break}G=(t+1048320|0)>>>16&8,L=t<<G,U=(L+520192|0)>>>16&4,L=L<<U,i=(L+245760|0)>>>16&2,i=14-(U|G|i)+(L<<i>>>15)|0,i=n>>>(i+7|0)&1|i<<1}while(!1);if(t=28212+(i<<2)|0,e[w+28>>2]=i,A=w+16|0,e[A+4>>2]=0,e[A>>2]=0,A=e[6978]|0,r=1<<i,!(A&r)){e[6978]=A|r,e[t>>2]=w,e[w+24>>2]=t,e[w+12>>2]=w,e[w+8>>2]=w;break}t=e[t>>2]|0;t:do if((e[t+4>>2]&-8|0)!=(n|0)){for(i=n<<((i|0)==31?0:25-(i>>>1)|0);r=t+16+(i>>>31<<2)|0,A=e[r>>2]|0,!!A;)if((e[A+4>>2]&-8|0)==(n|0)){t=A;break t}else i=i<<1,t=A;e[r>>2]=w,e[w+24>>2]=t,e[w+12>>2]=w,e[w+8>>2]=w;break e}while(!1);G=t+8|0,L=e[G>>2]|0,e[L+12>>2]=w,e[G>>2]=w,e[w+8>>2]=L,e[w+12>>2]=t,e[w+24>>2]=0}while(!1);return L=p+8|0,B=nA,L|0}for(t=28356;A=e[t>>2]|0,!(A>>>0<=a>>>0&&(L=A+(e[t+4>>2]|0)|0,L>>>0>a>>>0));)t=e[t+8>>2]|0;n=L+-47|0,A=n+8|0,A=n+((A&7|0)==0?0:0-A&7)|0,n=a+16|0,A=A>>>0<n>>>0?a:A,t=A+8|0,r=f+-40|0,U=s+8|0,U=(U&7|0)==0?0:0-U&7,G=s+U|0,U=r-U|0,e[6983]=G,e[6980]=U,e[G+4>>2]=U|1,e[s+r+4>>2]=40,e[6984]=e[7099],r=A+4|0,e[r>>2]=27,e[t>>2]=e[7089],e[t+4>>2]=e[7090],e[t+8>>2]=e[7091],e[t+12>>2]=e[7092],e[7089]=s,e[7090]=f,e[7092]=0,e[7091]=t,t=A+24|0;do G=t,t=t+4|0,e[t>>2]=7;while((G+8|0)>>>0<L>>>0);if((A|0)!=(a|0)){if(s=A-a|0,e[r>>2]=e[r>>2]&-2,e[a+4>>2]=s|1,e[A>>2]=s,t=s>>>3,s>>>0<256){r=27948+(t<<1<<2)|0,A=e[6977]|0,t=1<<t,A&t?(A=r+8|0,t=e[A>>2]|0):(e[6977]=A|t,t=r,A=r+8|0),e[A>>2]=a,e[t+12>>2]=a,e[a+8>>2]=t,e[a+12>>2]=r;break}if(t=s>>>8,t?s>>>0>16777215?i=31:(G=(t+1048320|0)>>>16&8,L=t<<G,U=(L+520192|0)>>>16&4,L=L<<U,i=(L+245760|0)>>>16&2,i=14-(U|G|i)+(L<<i>>>15)|0,i=s>>>(i+7|0)&1|i<<1):i=0,r=28212+(i<<2)|0,e[a+28>>2]=i,e[a+20>>2]=0,e[n>>2]=0,t=e[6978]|0,A=1<<i,!(t&A)){e[6978]=t|A,e[r>>2]=a,e[a+24>>2]=r,e[a+12>>2]=a,e[a+8>>2]=a;break}t=e[r>>2]|0;e:do if((e[t+4>>2]&-8|0)!=(s|0)){for(i=s<<((i|0)==31?0:25-(i>>>1)|0);r=t+16+(i>>>31<<2)|0,A=e[r>>2]|0,!!A;)if((e[A+4>>2]&-8|0)==(s|0)){t=A;break e}else i=i<<1,t=A;e[r>>2]=a,e[a+24>>2]=t,e[a+12>>2]=a,e[a+8>>2]=a;break A}while(!1);G=t+8|0,L=e[G>>2]|0,e[L+12>>2]=a,e[G>>2]=a,e[a+8>>2]=L,e[a+12>>2]=t,e[a+24>>2]=0}}else L=e[6981]|0,(L|0)==0|s>>>0<L>>>0&&(e[6981]=s),e[7089]=s,e[7090]=f,e[7092]=0,e[6986]=e[7095],e[6985]=-1,e[6990]=27948,e[6989]=27948,e[6992]=27956,e[6991]=27956,e[6994]=27964,e[6993]=27964,e[6996]=27972,e[6995]=27972,e[6998]=27980,e[6997]=27980,e[7e3]=27988,e[6999]=27988,e[7002]=27996,e[7001]=27996,e[7004]=28004,e[7003]=28004,e[7006]=28012,e[7005]=28012,e[7008]=28020,e[7007]=28020,e[7010]=28028,e[7009]=28028,e[7012]=28036,e[7011]=28036,e[7014]=28044,e[7013]=28044,e[7016]=28052,e[7015]=28052,e[7018]=28060,e[7017]=28060,e[7020]=28068,e[7019]=28068,e[7022]=28076,e[7021]=28076,e[7024]=28084,e[7023]=28084,e[7026]=28092,e[7025]=28092,e[7028]=28100,e[7027]=28100,e[7030]=28108,e[7029]=28108,e[7032]=28116,e[7031]=28116,e[7034]=28124,e[7033]=28124,e[7036]=28132,e[7035]=28132,e[7038]=28140,e[7037]=28140,e[7040]=28148,e[7039]=28148,e[7042]=28156,e[7041]=28156,e[7044]=28164,e[7043]=28164,e[7046]=28172,e[7045]=28172,e[7048]=28180,e[7047]=28180,e[7050]=28188,e[7049]=28188,e[7052]=28196,e[7051]=28196,L=f+-40|0,U=s+8|0,U=(U&7|0)==0?0:0-U&7,G=s+U|0,U=L-U|0,e[6983]=G,e[6980]=U,e[G+4>>2]=U|1,e[s+L+4>>2]=40,e[6984]=e[7099];while(!1);if(t=e[6980]|0,t>>>0>k>>>0)return U=t-k|0,e[6980]=U,L=e[6983]|0,G=L+k|0,e[6983]=G,e[G+4>>2]=U|1,e[L+4>>2]=k|3,L=L+8|0,B=nA,L|0}return L=x1()|0,e[L>>2]=12,L=0,B=nA,L|0}function mA(A){A=A|0;var t=0,r=0,i=0,n=0,s=0,f=0,u=0,a=0;if(A){r=A+-8|0,n=e[6981]|0,A=e[A+-4>>2]|0,t=A&-8,a=r+t|0;do if(A&1)u=r,f=r;else{if(i=e[r>>2]|0,!(A&3)||(f=r+(0-i)|0,s=i+t|0,f>>>0<n>>>0))return;if((e[6982]|0)==(f|0)){if(A=a+4|0,t=e[A>>2]|0,(t&3|0)!=3){u=f,t=s;break}e[6979]=s,e[A>>2]=t&-2,e[f+4>>2]=s|1,e[f+s>>2]=s;return}if(r=i>>>3,i>>>0<256)if(A=e[f+8>>2]|0,t=e[f+12>>2]|0,(t|0)==(A|0)){e[6977]=e[6977]&~(1<<r),u=f,t=s;break}else{e[A+12>>2]=t,e[t+8>>2]=A,u=f,t=s;break}n=e[f+24>>2]|0,A=e[f+12>>2]|0;do if((A|0)==(f|0)){if(t=f+16|0,r=t+4|0,A=e[r>>2]|0,A)t=r;else if(A=e[t>>2]|0,!A){A=0;break}for(;;)if(i=A+20|0,r=e[i>>2]|0,r)A=r,t=i;else if(i=A+16|0,r=e[i>>2]|0,r)A=r,t=i;else break;e[t>>2]=0}else u=e[f+8>>2]|0,e[u+12>>2]=A,e[A+8>>2]=u;while(!1);if(n){if(t=e[f+28>>2]|0,r=28212+(t<<2)|0,(e[r>>2]|0)==(f|0)){if(e[r>>2]=A,!A){e[6978]=e[6978]&~(1<<t),u=f,t=s;break}}else if(u=n+16|0,e[((e[u>>2]|0)==(f|0)?u:n+20|0)>>2]=A,!A){u=f,t=s;break}e[A+24>>2]=n,t=f+16|0,r=e[t>>2]|0,r|0&&(e[A+16>>2]=r,e[r+24>>2]=A),t=e[t+4>>2]|0,t?(e[A+20>>2]=t,e[t+24>>2]=A,u=f,t=s):(u=f,t=s)}else u=f,t=s}while(!1);if(!(f>>>0>=a>>>0)&&(A=a+4|0,i=e[A>>2]|0,!!(i&1))){if(i&2)e[A>>2]=i&-2,e[u+4>>2]=t|1,e[f+t>>2]=t,n=t;else{if((e[6983]|0)==(a|0)){if(a=(e[6980]|0)+t|0,e[6980]=a,e[6983]=u,e[u+4>>2]=a|1,(u|0)!=(e[6982]|0))return;e[6982]=0,e[6979]=0;return}if((e[6982]|0)==(a|0)){a=(e[6979]|0)+t|0,e[6979]=a,e[6982]=f,e[u+4>>2]=a|1,e[f+a>>2]=a;return}n=(i&-8)+t|0,r=i>>>3;do if(i>>>0<256)if(t=e[a+8>>2]|0,A=e[a+12>>2]|0,(A|0)==(t|0)){e[6977]=e[6977]&~(1<<r);break}else{e[t+12>>2]=A,e[A+8>>2]=t;break}else{s=e[a+24>>2]|0,A=e[a+12>>2]|0;do if((A|0)==(a|0)){if(t=a+16|0,r=t+4|0,A=e[r>>2]|0,A)t=r;else if(A=e[t>>2]|0,!A){r=0;break}for(;;)if(i=A+20|0,r=e[i>>2]|0,r)A=r,t=i;else if(i=A+16|0,r=e[i>>2]|0,r)A=r,t=i;else break;e[t>>2]=0,r=A}else r=e[a+8>>2]|0,e[r+12>>2]=A,e[A+8>>2]=r,r=A;while(!1);if(s|0){if(A=e[a+28>>2]|0,t=28212+(A<<2)|0,(e[t>>2]|0)==(a|0)){if(e[t>>2]=r,!r){e[6978]=e[6978]&~(1<<A);break}}else if(i=s+16|0,e[((e[i>>2]|0)==(a|0)?i:s+20|0)>>2]=r,!r)break;e[r+24>>2]=s,A=a+16|0,t=e[A>>2]|0,t|0&&(e[r+16>>2]=t,e[t+24>>2]=r),A=e[A+4>>2]|0,A|0&&(e[r+20>>2]=A,e[A+24>>2]=r)}}while(!1);if(e[u+4>>2]=n|1,e[f+n>>2]=n,(u|0)==(e[6982]|0)){e[6979]=n;return}}if(A=n>>>3,n>>>0<256){r=27948+(A<<1<<2)|0,t=e[6977]|0,A=1<<A,t&A?(t=r+8|0,A=e[t>>2]|0):(e[6977]=t|A,A=r,t=r+8|0),e[t>>2]=u,e[A+12>>2]=u,e[u+8>>2]=A,e[u+12>>2]=r;return}A=n>>>8,A?n>>>0>16777215?i=31:(f=(A+1048320|0)>>>16&8,a=A<<f,s=(a+520192|0)>>>16&4,a=a<<s,i=(a+245760|0)>>>16&2,i=14-(s|f|i)+(a<<i>>>15)|0,i=n>>>(i+7|0)&1|i<<1):i=0,A=28212+(i<<2)|0,e[u+28>>2]=i,e[u+20>>2]=0,e[u+16>>2]=0,t=e[6978]|0,r=1<<i;A:do if(!(t&r))e[6978]=t|r,e[A>>2]=u,e[u+24>>2]=A,e[u+12>>2]=u,e[u+8>>2]=u;else{A=e[A>>2]|0;e:do if((e[A+4>>2]&-8|0)!=(n|0)){for(i=n<<((i|0)==31?0:25-(i>>>1)|0);r=A+16+(i>>>31<<2)|0,t=e[r>>2]|0,!!t;)if((e[t+4>>2]&-8|0)==(n|0)){A=t;break e}else i=i<<1,A=t;e[r>>2]=u,e[u+24>>2]=A,e[u+12>>2]=u,e[u+8>>2]=u;break A}while(!1);f=A+8|0,a=e[f>>2]|0,e[a+12>>2]=u,e[f>>2]=u,e[u+8>>2]=a,e[u+12>>2]=A,e[u+24>>2]=0}while(!1);if(a=(e[6985]|0)+-1|0,e[6985]=a,!(a|0)){for(A=28364;A=e[A>>2]|0,A;)A=A+8|0;e[6985]=-1}}}}function B0(A,t){A=A|0,t=t|0;var r=0;return A?(r=O0(t,A)|0,(t|A)>>>0>65535&&(r=((r>>>0)/(A>>>0)|0|0)==(t|0)?r:-1)):r=0,A=N0(r)|0,!A||!(e[A+-4>>2]&3)||te(A|0,0,r|0)|0,A|0}function vA(A,t,r,i){return A=A|0,t=t|0,r=r|0,i=i|0,r=A+r>>>0,MA(t+i+(r>>>0<A>>>0|0)>>>0|0),r|0|0}function h0(A,t,r,i){return A=A|0,t=t|0,r=r|0,i=i|0,i=t-i-(r>>>0>A>>>0|0)>>>0,MA(i|0),A-r>>>0|0|0}function vs(A){return A=A|0,(A?31-(j0(A^A-1)|0)|0:32)|0}function Lr(A,t,r,i,n){A=A|0,t=t|0,r=r|0,i=i|0,n=n|0;var s=0,f=0,u=0,a=0,w=0,p=0,k=0,M=0,P=0,d=0;if(p=A,a=t,w=a,f=r,M=i,u=M,!w)return s=(n|0)!=0,u?s?(e[n>>2]=A|0,e[n+4>>2]=t&0,M=0,n=0,MA(M|0),n|0):(M=0,n=0,MA(M|0),n|0):(s&&(e[n>>2]=(p>>>0)%(f>>>0),e[n+4>>2]=0),M=0,n=(p>>>0)/(f>>>0)>>>0,MA(M|0),n|0);s=(u|0)==0;do if(f){if(!s){if(s=(j0(u|0)|0)-(j0(w|0)|0)|0,s>>>0<=31){k=s+1|0,u=31-s|0,t=s-31>>31,f=k,A=p>>>(k>>>0)&t|w<<u,t=w>>>(k>>>0)&t,s=0,u=p<<u;break}return n?(e[n>>2]=A|0,e[n+4>>2]=a|t&0,M=0,n=0,MA(M|0),n|0):(M=0,n=0,MA(M|0),n|0)}if(s=f-1|0,s&f|0){u=(j0(f|0)|0)+33-(j0(w|0)|0)|0,d=64-u|0,k=32-u|0,a=k>>31,P=u-32|0,t=P>>31,f=u,A=k-1>>31&w>>>(P>>>0)|(w<<k|p>>>(u>>>0))&t,t=t&w>>>(u>>>0),s=p<<d&a,u=(w<<d|p>>>(P>>>0))&a|p<<k&u-33>>31;break}return n|0&&(e[n>>2]=s&p,e[n+4>>2]=0),(f|0)==1?(P=a|t&0,d=A|0|0,MA(P|0),d|0):(d=vs(f|0)|0,P=w>>>(d>>>0)|0,d=w<<32-d|p>>>(d>>>0)|0,MA(P|0),d|0)}else{if(s)return n|0&&(e[n>>2]=(w>>>0)%(f>>>0),e[n+4>>2]=0),P=0,d=(w>>>0)/(f>>>0)>>>0,MA(P|0),d|0;if(!p)return n|0&&(e[n>>2]=0,e[n+4>>2]=(w>>>0)%(u>>>0)),P=0,d=(w>>>0)/(u>>>0)>>>0,MA(P|0),d|0;if(s=u-1|0,!(s&u))return n|0&&(e[n>>2]=A|0,e[n+4>>2]=s&w|t&0),P=0,d=w>>>((vs(u|0)|0)>>>0),MA(P|0),d|0;if(s=(j0(u|0)|0)-(j0(w|0)|0)|0,s>>>0<=30){t=s+1|0,u=31-s|0,f=t,A=w<<u|p>>>(t>>>0),t=w>>>(t>>>0),s=0,u=p<<u;break}return n?(e[n>>2]=A|0,e[n+4>>2]=a|t&0,P=0,d=0,MA(P|0),d|0):(P=0,d=0,MA(P|0),d|0)}while(!1);if(!f)w=u,a=0,u=0;else{k=r|0|0,p=M|i&0,w=vA(k|0,p|0,-1,-1)|0,r=b()|0,a=u,u=0;do i=a,a=s>>>31|a<<1,s=u|s<<1,i=A<<1|i>>>31|0,M=A>>>31|t<<1|0,h0(w|0,r|0,i|0,M|0)|0,d=b()|0,P=d>>31|((d|0)<0?-1:0)<<1,u=P&1,A=h0(i|0,M|0,P&k|0,(((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1)&p|0)|0,t=b()|0,f=f-1|0;while((f|0)!=0);w=a,a=0}return f=0,n|0&&(e[n>>2]=A,e[n+4>>2]=t),P=(s|0)>>>31|(w|f)<<1|(f<<1|s>>>31)&0|a,d=(s<<1|0)&-2|u,MA(P|0),d|0}function ee(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0;return w=t>>31|((t|0)<0?-1:0)<<1,a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,s=i>>31|((i|0)<0?-1:0)<<1,n=((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1,u=h0(w^A|0,a^t|0,w|0,a|0)|0,f=b()|0,A=s^w,t=n^a,h0((Lr(u,f,h0(s^r|0,n^i|0,s|0,n|0)|0,b()|0,0)|0)^A|0,(b()|0)^t|0,A|0,t|0)|0}function Q1(A,t){A=A|0,t=t|0;var r=0,i=0,n=0,s=0;return s=A&65535,n=t&65535,r=O0(n,s)|0,i=A>>>16,A=(r>>>16)+(O0(n,i)|0)|0,n=t>>>16,t=O0(n,s)|0,MA((A>>>16)+(O0(n,i)|0)+(((A&65535)+t|0)>>>16)|0),A+t<<16|r&65535|0|0}function l0(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0;return n=A,s=r,r=Q1(n,s)|0,A=b()|0,MA((O0(t,s)|0)+(O0(i,n)|0)+A|A&0|0),r|0|0|0}function de(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0,f=0,u=0,a=0,w=0;return n=B,B=B+16|0,u=n|0,f=t>>31|((t|0)<0?-1:0)<<1,s=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,w=i>>31|((i|0)<0?-1:0)<<1,a=((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1,A=h0(f^A|0,s^t|0,f|0,s|0)|0,t=b()|0,Lr(A,t,h0(w^r|0,a^i|0,w|0,a|0)|0,b()|0,u)|0,i=h0(e[u>>2]^f|0,e[u+4>>2]^s|0,f|0,s|0)|0,r=b()|0,B=n,MA(r|0),i|0}function Te(A,t,r,i){A=A|0,t=t|0,r=r|0,i=i|0;var n=0,s=0;return s=B,B=B+16|0,n=s|0,Lr(A,t,r,i,n)|0,B=s,MA(e[n+4>>2]|0),e[n>>2]|0|0}function ms(A,t,r){return A=A|0,t=t|0,r=r|0,(r|0)<32?(MA(t>>r|0),A>>>r|(t&(1<<r)-1)<<32-r):(MA(((t|0)<0?-1:0)|0),t>>r-32|0)}function $(A,t,r){return A=A|0,t=t|0,r=r|0,(r|0)<32?(MA(t>>>r|0),A>>>r|(t&(1<<r)-1)<<32-r):(MA(0),t>>>r-32|0)}function sA(A,t,r){return A=A|0,t=t|0,r=r|0,(r|0)<32?(MA(t<<r|(A&(1<<r)-1<<32-r)>>>32-r|0),A<<r):(MA(A<<r-32|0),0)}function Es(A,t,r){return A=A|0,t=t|0,t=j0(t)|0,(t|0)==32&&(t=t+(j0(A)|0)|0),MA(0),t|0}function ys(A,t){return A=+A,t=+t,A!=A?+t:t!=t?+A:+Nf(+A,+t)}function Mt(A,t){return A=+A,t=+t,A!=A?+t:t!=t?+A:+ur(+A,+t)}function Pt(A){return A=+A,A>=0?+s0(A+.5):+Ce(A-.5)}function xe(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0;if((r|0)>=8192)return zf(A|0,t|0,r|0)|0,A|0;if(s=A|0,n=A+r|0,(A&3)==(t&3)){for(;A&3;){if(!r)return s|0;AA[A>>0]=AA[t>>0]|0,A=A+1|0,t=t+1|0,r=r-1|0}for(r=n&-4|0,i=r-64|0;(A|0)<=(i|0);)e[A>>2]=e[t>>2],e[A+4>>2]=e[t+4>>2],e[A+8>>2]=e[t+8>>2],e[A+12>>2]=e[t+12>>2],e[A+16>>2]=e[t+16>>2],e[A+20>>2]=e[t+20>>2],e[A+24>>2]=e[t+24>>2],e[A+28>>2]=e[t+28>>2],e[A+32>>2]=e[t+32>>2],e[A+36>>2]=e[t+36>>2],e[A+40>>2]=e[t+40>>2],e[A+44>>2]=e[t+44>>2],e[A+48>>2]=e[t+48>>2],e[A+52>>2]=e[t+52>>2],e[A+56>>2]=e[t+56>>2],e[A+60>>2]=e[t+60>>2],A=A+64|0,t=t+64|0;for(;(A|0)<(r|0);)e[A>>2]=e[t>>2],A=A+4|0,t=t+4|0}else for(r=n-4|0;(A|0)<(r|0);)AA[A>>0]=AA[t>>0]|0,AA[A+1>>0]=AA[t+1>>0]|0,AA[A+2>>0]=AA[t+2>>0]|0,AA[A+3>>0]=AA[t+3>>0]|0,A=A+4|0,t=t+4|0;for(;(A|0)<(n|0);)AA[A>>0]=AA[t>>0]|0,A=A+1|0,t=t+1|0;return s|0}function te(A,t,r){A=A|0,t=t|0,r=r|0;var i=0,n=0,s=0,f=0;if(s=A+r|0,t=t&255,(r|0)>=67){for(;A&3;)AA[A>>0]=t,A=A+1|0;for(i=s&-4|0,f=t|t<<8|t<<16|t<<24,n=i-64|0;(A|0)<=(n|0);)e[A>>2]=f,e[A+4>>2]=f,e[A+8>>2]=f,e[A+12>>2]=f,e[A+16>>2]=f,e[A+20>>2]=f,e[A+24>>2]=f,e[A+28>>2]=f,e[A+32>>2]=f,e[A+36>>2]=f,e[A+40>>2]=f,e[A+44>>2]=f,e[A+48>>2]=f,e[A+52>>2]=f,e[A+56>>2]=f,e[A+60>>2]=f,A=A+64|0;for(;(A|0)<(i|0);)e[A>>2]=f,A=A+4|0}for(;(A|0)<(s|0);)AA[A>>0]=t,A=A+1|0;return s-r|0}function Bs(A){return A=+A,A>=0?+s0(A+.5):+Ce(A-.5)}function re(A){A=A|0;var t=0,r=0,i=0;return i=Uf()|0,r=e[HA>>2]|0,t=r+A|0,(A|0)>0&(t|0)<(r|0)|(t|0)<0?(Vf(t|0)|0,Tn(12),-1):(t|0)>(i|0)&&!(Yf(t|0)|0)?(Tn(12),-1):(e[HA>>2]=t,r|0)}return{___divdi3:ee,___muldi3:l0,___remdi3:de,___uremdi3:Te,_areNeighborCells:Bu,_bitshift64Ashr:ms,_bitshift64Lshr:$,_bitshift64Shl:sA,_calloc:B0,_cellAreaKm2:Xu,_cellAreaM2:$u,_cellAreaRads2:xr,_cellToBoundary:Me,_cellToCenterChild:$n,_cellToChildPos:Yu,_cellToChildren:Su,_cellToChildrenSize:je,_cellToLatLng:ce,_cellToLocalIj:s1,_cellToParent:br,_cellToVertex:Q0,_cellToVertexes:_1,_cellsToDirectedEdge:ku,_cellsToLinkedMultiPolygon:tu,_childPosToCell:Vu,_compactCells:Lu,_destroyLinkedMultiPolygon:is,_directedEdgeToBoundary:bt,_directedEdgeToCells:Du,_edgeLengthKm:e1,_edgeLengthM:t1,_edgeLengthRads:A1,_emscripten_replace_memory:Hf,_free:mA,_getBaseCellNumber:Jn,_getDirectedEdgeDestination:Cu,_getDirectedEdgeOrigin:bu,_getHexagonAreaAvgKm2:ts,_getHexagonAreaAvgM2:Zu,_getHexagonEdgeLengthAvgKm:Ku,_getHexagonEdgeLengthAvgM:Ju,_getIcosahedronFaces:As,_getNumCells:Ct,_getPentagons:Pr,_getRes0Cells:ou,_getResolution:Iu,_greatCircleDistanceKm:We,_greatCircleDistanceM:ju,_greatCircleDistanceRads:Hu,_gridDisk:xn,_gridDiskDistances:Qn,_gridDistance:l1,_gridPathCells:u1,_gridPathCellsSize:f1,_gridRing:Jf,_gridRingUnsafe:Sn,_i64Add:vA,_i64Subtract:h0,_isPentagon:WA,_isResClassIII:Ou,_isValidCell:Br,_isValidDirectedEdge:_u,_isValidVertex:M1,_latLngToCell:Dr,_llvm_ctlz_i64:Es,_llvm_maxnum_f64:ys,_llvm_minnum_f64:Mt,_llvm_round_f64:Pt,_localIjToCell:o1,_malloc:N0,_maxFaceCount:Uu,_maxGridDiskSize:Kf,_maxPolygonToCellsSize:$f,_maxPolygonToCellsSizeExperimental:c1,_memcpy:xe,_memset:te,_originToDirectedEdges:Mu,_pentagonCount:zu,_polygonToCells:Au,_polygonToCellsExperimental:a1,_readInt64AsDoubleFromPointer:B1,_res0CellCount:su,_round:Bs,_sbrk:re,_sizeOfCellBoundary:p1,_sizeOfCoordIJ:y1,_sizeOfGeoLoop:v1,_sizeOfGeoPolygon:m1,_sizeOfH3Index:g1,_sizeOfLatLng:w1,_sizeOfLinkedGeoPolygon:E1,_uncompactCells:Fu,_uncompactCellsSize:Ru,_vertexToLatLng:D1,establishStackSpace:Zf,stackAlloc:jf,stackRestore:Wf,stackSave:qf}})(Sf,Lf,Y);o.___divdi3=rA.___divdi3,o.___muldi3=rA.___muldi3,o.___remdi3=rA.___remdi3,o.___uremdi3=rA.___uremdi3,o._areNeighborCells=rA._areNeighborCells,o._bitshift64Ashr=rA._bitshift64Ashr,o._bitshift64Lshr=rA._bitshift64Lshr,o._bitshift64Shl=rA._bitshift64Shl,o._calloc=rA._calloc,o._cellAreaKm2=rA._cellAreaKm2,o._cellAreaM2=rA._cellAreaM2,o._cellAreaRads2=rA._cellAreaRads2,o._cellToBoundary=rA._cellToBoundary,o._cellToCenterChild=rA._cellToCenterChild,o._cellToChildPos=rA._cellToChildPos,o._cellToChildren=rA._cellToChildren,o._cellToChildrenSize=rA._cellToChildrenSize,o._cellToLatLng=rA._cellToLatLng,o._cellToLocalIj=rA._cellToLocalIj,o._cellToParent=rA._cellToParent,o._cellToVertex=rA._cellToVertex,o._cellToVertexes=rA._cellToVertexes,o._cellsToDirectedEdge=rA._cellsToDirectedEdge,o._cellsToLinkedMultiPolygon=rA._cellsToLinkedMultiPolygon,o._childPosToCell=rA._childPosToCell,o._compactCells=rA._compactCells,o._destroyLinkedMultiPolygon=rA._destroyLinkedMultiPolygon,o._directedEdgeToBoundary=rA._directedEdgeToBoundary,o._directedEdgeToCells=rA._directedEdgeToCells,o._edgeLengthKm=rA._edgeLengthKm,o._edgeLengthM=rA._edgeLengthM,o._edgeLengthRads=rA._edgeLengthRads;var Ff=o._emscripten_replace_memory=rA._emscripten_replace_memory;o._free=rA._free,o._getBaseCellNumber=rA._getBaseCellNumber,o._getDirectedEdgeDestination=rA._getDirectedEdgeDestination,o._getDirectedEdgeOrigin=rA._getDirectedEdgeOrigin,o._getHexagonAreaAvgKm2=rA._getHexagonAreaAvgKm2,o._getHexagonAreaAvgM2=rA._getHexagonAreaAvgM2,o._getHexagonEdgeLengthAvgKm=rA._getHexagonEdgeLengthAvgKm,o._getHexagonEdgeLengthAvgM=rA._getHexagonEdgeLengthAvgM,o._getIcosahedronFaces=rA._getIcosahedronFaces,o._getNumCells=rA._getNumCells,o._getPentagons=rA._getPentagons,o._getRes0Cells=rA._getRes0Cells,o._getResolution=rA._getResolution,o._greatCircleDistanceKm=rA._greatCircleDistanceKm,o._greatCircleDistanceM=rA._greatCircleDistanceM,o._greatCircleDistanceRads=rA._greatCircleDistanceRads,o._gridDisk=rA._gridDisk,o._gridDiskDistances=rA._gridDiskDistances,o._gridDistance=rA._gridDistance,o._gridPathCells=rA._gridPathCells,o._gridPathCellsSize=rA._gridPathCellsSize,o._gridRing=rA._gridRing,o._gridRingUnsafe=rA._gridRingUnsafe,o._i64Add=rA._i64Add,o._i64Subtract=rA._i64Subtract,o._isPentagon=rA._isPentagon,o._isResClassIII=rA._isResClassIII,o._isValidCell=rA._isValidCell,o._isValidDirectedEdge=rA._isValidDirectedEdge,o._isValidVertex=rA._isValidVertex,o._latLngToCell=rA._latLngToCell,o._llvm_ctlz_i64=rA._llvm_ctlz_i64,o._llvm_maxnum_f64=rA._llvm_maxnum_f64,o._llvm_minnum_f64=rA._llvm_minnum_f64,o._llvm_round_f64=rA._llvm_round_f64,o._localIjToCell=rA._localIjToCell,o._malloc=rA._malloc,o._maxFaceCount=rA._maxFaceCount,o._maxGridDiskSize=rA._maxGridDiskSize,o._maxPolygonToCellsSize=rA._maxPolygonToCellsSize,o._maxPolygonToCellsSizeExperimental=rA._maxPolygonToCellsSizeExperimental,o._memcpy=rA._memcpy,o._memset=rA._memset,o._originToDirectedEdges=rA._originToDirectedEdges,o._pentagonCount=rA._pentagonCount,o._polygonToCells=rA._polygonToCells,o._polygonToCellsExperimental=rA._polygonToCellsExperimental,o._readInt64AsDoubleFromPointer=rA._readInt64AsDoubleFromPointer,o._res0CellCount=rA._res0CellCount,o._round=rA._round,o._sbrk=rA._sbrk,o._sizeOfCellBoundary=rA._sizeOfCellBoundary,o._sizeOfCoordIJ=rA._sizeOfCoordIJ,o._sizeOfGeoLoop=rA._sizeOfGeoLoop,o._sizeOfGeoPolygon=rA._sizeOfGeoPolygon,o._sizeOfH3Index=rA._sizeOfH3Index,o._sizeOfLatLng=rA._sizeOfLatLng,o._sizeOfLinkedGeoPolygon=rA._sizeOfLinkedGeoPolygon,o._uncompactCells=rA._uncompactCells,o._uncompactCellsSize=rA._uncompactCellsSize,o._vertexToLatLng=rA._vertexToLatLng,o.establishStackSpace=rA.establishStackSpace;var Dn=o.stackAlloc=rA.stackAlloc,Rf=o.stackRestore=rA.stackRestore,Of=o.stackSave=rA.stackSave;if(o.asm=rA,o.cwrap=FA,o.setValue=K,o.getValue=tA,H0){Cn(H0)||(H0=v(H0));{bf();var or=function(Z){Z.byteLength&&(Z=new Uint8Array(Z)),N.set(Z,V),o.memoryInitializerRequest&&delete o.memoryInitializerRequest.response,Cf()},Mn=function(){m(H0,or,function(){throw"could not load memory initializer "+H0})},Pn=sr(H0);if(Pn)or(Pn.buffer);else if(o.memoryInitializerRequest){var dn=function(){var Z=o.memoryInitializerRequest,X=Z.response;if(Z.status!==200&&Z.status!==0){var lA=sr(o.memoryInitializerRequestURL);if(lA)X=lA.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+Z.status+", retrying "+H0),Mn();return}}or(X)};o.memoryInitializerRequest.response?setTimeout(dn,0):o.memoryInitializerRequest.addEventListener("load",dn)}else Mn()}}var mt;Ve=function Z(){mt||lr(),mt||(Ve=Z)};function lr(Z){if(le>0||(n0(),le>0))return;function X(){mt||(mt=!0,!oA&&(Be(),ze(),o.onRuntimeInitialized&&o.onRuntimeInitialized(),Ye()))}o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),X()},1)):X()}o.run=lr;function be(Z){throw o.onAbort&&o.onAbort(Z),Z+="",E(Z),D(Z),oA=!0,"abort("+Z+"). Build with -s ASSERTIONS=1 for more info."}if(o.abort=be,o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return lr(),l})(typeof ZA=="object"?ZA:{}),bA="number",yA=bA,Qe=bA,CA=bA,_A=bA,r0=bA,uA=bA,Vs=[["sizeOfH3Index",bA],["sizeOfLatLng",bA],["sizeOfCellBoundary",bA],["sizeOfGeoLoop",bA],["sizeOfGeoPolygon",bA],["sizeOfLinkedGeoPolygon",bA],["sizeOfCoordIJ",bA],["readInt64AsDoubleFromPointer",bA],["isValidCell",Qe,[CA,_A]],["latLngToCell",yA,[bA,bA,r0,uA]],["cellToLatLng",yA,[CA,_A,uA]],["cellToBoundary",yA,[CA,_A,uA]],["maxGridDiskSize",yA,[bA,uA]],["gridDisk",yA,[CA,_A,bA,uA]],["gridDiskDistances",yA,[CA,_A,bA,uA,uA]],["gridRing",yA,[CA,_A,bA,uA]],["gridRingUnsafe",yA,[CA,_A,bA,uA]],["maxPolygonToCellsSize",yA,[uA,r0,bA,uA]],["polygonToCells",yA,[uA,r0,bA,uA]],["maxPolygonToCellsSizeExperimental",yA,[uA,r0,bA,uA]],["polygonToCellsExperimental",yA,[uA,r0,bA,bA,bA,uA]],["cellsToLinkedMultiPolygon",yA,[uA,bA,uA]],["destroyLinkedMultiPolygon",null,[uA]],["compactCells",yA,[uA,uA,bA,bA]],["uncompactCells",yA,[uA,bA,bA,uA,bA,r0]],["uncompactCellsSize",yA,[uA,bA,bA,r0,uA]],["isPentagon",Qe,[CA,_A]],["isResClassIII",Qe,[CA,_A]],["getBaseCellNumber",bA,[CA,_A]],["getResolution",bA,[CA,_A]],["maxFaceCount",yA,[CA,_A,uA]],["getIcosahedronFaces",yA,[CA,_A,uA]],["cellToParent",yA,[CA,_A,r0,uA]],["cellToChildren",yA,[CA,_A,r0,uA]],["cellToCenterChild",yA,[CA,_A,r0,uA]],["cellToChildrenSize",yA,[CA,_A,r0,uA]],["cellToChildPos",yA,[CA,_A,r0,uA]],["childPosToCell",yA,[bA,bA,CA,_A,r0,uA]],["areNeighborCells",yA,[CA,_A,CA,_A,uA]],["cellsToDirectedEdge",yA,[CA,_A,CA,_A,uA]],["getDirectedEdgeOrigin",yA,[CA,_A,uA]],["getDirectedEdgeDestination",yA,[CA,_A,uA]],["isValidDirectedEdge",Qe,[CA,_A]],["directedEdgeToCells",yA,[CA,_A,uA]],["originToDirectedEdges",yA,[CA,_A,uA]],["directedEdgeToBoundary",yA,[CA,_A,uA]],["gridDistance",yA,[CA,_A,CA,_A,uA]],["gridPathCells",yA,[CA,_A,CA,_A,uA]],["gridPathCellsSize",yA,[CA,_A,CA,_A,uA]],["cellToLocalIj",yA,[CA,_A,CA,_A,bA,uA]],["localIjToCell",yA,[CA,_A,uA,bA,uA]],["getHexagonAreaAvgM2",yA,[r0,uA]],["getHexagonAreaAvgKm2",yA,[r0,uA]],["getHexagonEdgeLengthAvgM",yA,[r0,uA]],["getHexagonEdgeLengthAvgKm",yA,[r0,uA]],["greatCircleDistanceM",bA,[uA,uA]],["greatCircleDistanceKm",bA,[uA,uA]],["greatCircleDistanceRads",bA,[uA,uA]],["cellAreaM2",yA,[CA,_A,uA]],["cellAreaKm2",yA,[CA,_A,uA]],["cellAreaRads2",yA,[CA,_A,uA]],["edgeLengthM",yA,[CA,_A,uA]],["edgeLengthKm",yA,[CA,_A,uA]],["edgeLengthRads",yA,[CA,_A,uA]],["getNumCells",yA,[r0,uA]],["getRes0Cells",yA,[uA]],["res0CellCount",bA],["getPentagons",yA,[bA,uA]],["pentagonCount",bA],["cellToVertex",yA,[CA,_A,bA,uA]],["cellToVertexes",yA,[CA,_A,uA]],["vertexToLatLng",yA,[CA,_A,uA]],["isValidVertex",Qe,[CA,_A]]],Hs=0,js=1,qs=2,Ws=3,ri=4,Zs=5,Ks=6,Js=7,Xs=8,$s=9,Ao=10,eo=11,to=12,ro=13,io=14,no=15,f0={};f0[Hs]="Success",f0[js]="The operation failed but a more specific error is not available",f0[qs]="Argument was outside of acceptable range",f0[Ws]="Latitude or longitude arguments were outside of acceptable range",f0[ri]="Resolution argument was outside of acceptable range",f0[Zs]="Cell argument was not valid",f0[Ks]="Directed edge argument was not valid",f0[Js]="Undirected edge argument was not valid",f0[Xs]="Vertex argument was not valid",f0[$s]="Pentagon distortion was encountered",f0[Ao]="Duplicate input",f0[eo]="Cell arguments were not neighbors",f0[to]="Cell arguments had incompatible resolutions",f0[ro]="Memory allocation failed",f0[io]="Bounds of provided memory were insufficient",f0[no]="Mode or flags argument was not valid";var so=1e3,ii=1001,oo=1002,et={};et[so]="Unknown unit",et[ii]="Array length out of bounds",et[oo]="Got unexpected null value for H3 index";var lo="Unknown error";function ni(l,o,h){var c=h&&"value"in h,g=new Error((l[o]||lo)+" (code: "+o+(c?", value: "+h.value:"")+")");return g.code=o,g}function si(l,o){var h=arguments.length===2?{value:o}:{};return ni(f0,l,h)}function fo(l,o){var h=arguments.length===2?{value:o}:{};return ni(et,l,h)}function oi(l){if(l!==0)throw si(l)}var k0={};Vs.forEach(function(o){k0[o[0]]=ZA.cwrap.apply(ZA,o)});var we=16,Ie=4,uo=8,ho=8,Qt=k0.sizeOfH3Index(),ao=k0.sizeOfLatLng();k0.sizeOfCellBoundary();var co=k0.sizeOfGeoPolygon(),Se=k0.sizeOfGeoLoop();k0.sizeOfLinkedGeoPolygon(),k0.sizeOfCoordIJ();function go(l){if(typeof l!="number"||l<0||l>15||Math.floor(l)!==l)throw si(ri,l);return l}var wo=Math.pow(2,32)-1;function po(l){if(l>wo)throw fo(ii,l);return l}var vo=/[^0-9a-fA-F]/;function mo(l){if(Array.isArray(l)&&l.length===2&&Number.isInteger(l[0])&&Number.isInteger(l[1]))return l;if(typeof l!="string"||vo.test(l))return[0,0];var o=parseInt(l.substring(0,l.length-8),we),h=parseInt(l.substring(l.length-8),we);return[h,o]}function li(l){if(l>=0)return l.toString(we);l=l&2147483647;var o=fi(8,l.toString(we)),h=(parseInt(o[0],we)+8).toString(we);return o=h+o.substring(1),o}function Eo(l,o){return li(o)+fi(8,li(l))}function fi(l,o){for(var h=l-o.length,c="",g=0;g<h;g++)c+="0";return c=c+o,c}function ui(l,o,h){for(var c=l.length,g=ZA._calloc(c,ao),v=h?1:0,m=h?0:1,E=0;E<c*2;E+=2)ZA.HEAPF64.set([l[E/2][v],l[E/2][m]].map(Do),g/uo+E);return ZA.HEAPU32.set([c,g],o/Ie),o}function yo(l,o){var h=l.length-1,c=ZA._calloc(co),g=0,v=g+Se,m=v+Ie;ui(l[0],c+g,o);var E;if(h>0){E=ZA._calloc(h,Se);for(var D=0;D<h;D++)ui(l[D+1],E+Se*D,o)}return ZA.setValue(c+v,h,"i32"),ZA.setValue(c+m,E,"i32"),c}function Bo(l){var o=0,h=o+Se,c=h+Ie,g=Ie;ZA._free(ZA.getValue(l+o+g,"i8*"));var v=ZA.getValue(l+h,"i32");if(v>0){for(var m=ZA.getValue(l+c,"i32"),E=0;E<v;E++)ZA._free(ZA.getValue(m+Se*E+g,"i8*"));ZA._free(m)}ZA._free(l)}function ko(l,o){o===void 0&&(o=0);var h=ZA.getValue(l+Qt*o,"i32"),c=ZA.getValue(l+Qt*o+Ie,"i32");return c?Eo(h,c):null}function bo(l){return k0.readInt64AsDoubleFromPointer(l)}function Co(l,o){for(var h=[],c=0;c<o;c++){var g=ko(l,c);g!==null&&h.push(g)}return h}function _o(l){var o=mo(l),h=o[0],c=o[1];return k0.isValidCell(h,c)?k0.getResolution(h,c):-1}function hi(l,o,h){if(go(o),h=!!h,l.length===0||l[0].length===0)return[];var c=typeof l[0][0]=="number"?[l]:l,g=yo(c,h),v=ZA._malloc(ho);try{oi(k0.maxPolygonToCellsSize(g,o,0,v));var m=po(bo(v)),E=ZA._calloc(m,Qt);try{return oi(k0.polygonToCells(g,o,0,E)),Co(E,m)}finally{ZA._free(E)}}finally{ZA._free(v),Bo(g)}}function Do(l){return l*Math.PI/180}var Mo=Object.create,It=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,ai=Object.getOwnPropertyNames,To=Object.getPrototypeOf,xo=Object.prototype.hasOwnProperty,Qo=(l,o,h)=>o in l?It(l,o,{enumerable:!0,configurable:!0,writable:!0,value:h}):l[o]=h,Io=(l,o)=>function(){return o||(0,l[ai(l)[0]])((o={exports:{}}).exports,o),o.exports},So=(l,o,h,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let g of ai(o))!xo.call(l,g)&&g!==h&&It(l,g,{get:()=>o[g],enumerable:!(c=Po(o,g))||c.enumerable});return l},Lo=(l,o,h)=>(h=l!=null?Mo(To(l)):{},So(It(h,"default",{value:l,enumerable:!0}),l)),aA=(l,o,h)=>Qo(l,typeof o!="symbol"?o+"":o,h),Fo=Io({"node_modules/thenby/thenBy.module.js"(l,o){o.exports=(function(){function h(m){return m}function c(m){return typeof m=="string"?m.toLowerCase():m}function g(m,E){if(E=typeof E=="object"?E:{direction:E},typeof m!="function"){var D=m;m=function(K){return K[D]?K[D]:""}}if(m.length===1){var C=m,S=E.ignoreCase?c:h,Q=E.cmp||function(K,tA){return K<tA?-1:K>tA?1:0};m=function(K,tA){return Q(S(C(K)),S(C(tA)))}}const V={"-1":"",desc:""};return E.direction in V?function(K,tA){return-m(K,tA)}:m}function v(m,E){var D=typeof this=="function"&&!this.firstBy?this:!1,C=g(m,E),S=D?function(Q,V){return D(Q,V)||C(Q,V)}:C;return S.thenBy=v,S}return v.firstBy=v,v})()}}),St=(l=>(l.IN="in",l.BETWEEN="between",l.CLOSED_OPEN="closed_open",l.TIME="time",l.STRING_SEARCH="stringSearch",l))(St||{}),Ro="https://gcp-us-east1.api.carto.com",ie={Count:"count",Custom:"custom"};new Set(Object.values(St));function pe(l,o){if(!l)throw new Error(o)}var ci=class Xe extends Error{constructor(o){super(`${Xe.NAME}: ${o}`),this.name=Xe.NAME}static is(o){return o instanceof Xe||o.message?.includes(Xe.NAME)}};aA(ci,"NAME","InvalidColumnError");var Oo=ci;function Go(l,...o){for(const h of o)for(const c in h)h[c]!==void 0&&(l[c]=h[c]);return l}function gi(l){return l.map(o=>o[0]===void 0||o[0]===null?[Number.MIN_SAFE_INTEGER,o[1]]:o[1]===void 0||o[1]===null?[o[0],Number.MAX_SAFE_INTEGER]:o)}var No={in:Uo,between:wi,time:zo,closed_open:Yo,stringSearch:Vo};function Uo(l,o){return l.includes(o)}function wi(l,o){const h=c=>{const[g,v]=c;return o>=g&&o<=v};return gi(l).some(h)}function zo(l,o){const h=new Date(o).getTime();if(isFinite(h))return wi(l,h);throw new Error("Column used to filter by time isn't well formatted.")}function Yo(l,o){const h=c=>{const[g,v]=c;return o>=g&&o<v};return gi(l).some(h)}function Vo(l,o,h={}){const c=pi(o,h),g=h.useRegExp?l:l.map(m=>{let E=qo(pi(m,h));return h.mustStart&&(E=`^${E}`),h.mustEnd&&(E=`${E}$`),E}),v=new RegExp(g.join("|"),h.caseSensitive?"g":"gi");return!!c.match(v)}var Ho=/[.*+?^${}()|[\]\\]/g,jo=new RegExp("\\p{Diacritic}","gu");function qo(l){return l.replace(Ho,"\\$&")}function pi(l,o){let h=String(l);return o.keepSpecialCharacters||(h=h.normalize("NFD").replace(jo,"")),h}var Wo={and:"every",or:"some"};function Zo(l,o,h,c){const g=Wo[c];return l[g](v=>{const m=o[v],E=Object.keys(m);return!h||h[v]===null||h[v]===void 0?!1:E.every(D=>{const C=No[D];if(!C)throw new Error(`"${D}" filter is not implemented.`);return C(m[D].values,h[v],m[D].params)})})}function Ko({filters:l={},type:o="boolean",filtersLogicalOperator:h="and"}){const c=Object.keys(l);return c.length?g=>{const v=g.properties||g,m=Zo(c,l,v,h);return o==="number"?Number(m):m}:()=>o==="number"?1:!0}function Jo(l,o,h){return Object.keys(o).length?l.filter(Ko({filters:o,filtersLogicalOperator:h})):l}var U0=11102230246251565e-32,a0=134217729,Xo=(3+8*U0)*U0;function Lt(l,o,h,c,g){let v,m,E,D,C=o[0],S=c[0],Q=0,V=0;S>C==S>-C?(v=C,C=o[++Q]):(v=S,S=c[++V]);let K=0;if(Q<l&&V<h)for(S>C==S>-C?(m=C+v,E=v-(m-C),C=o[++Q]):(m=S+v,E=v-(m-S),S=c[++V]),v=m,E!==0&&(g[K++]=E);Q<l&&V<h;)S>C==S>-C?(m=v+C,D=m-v,E=v-(m-D)+(C-D),C=o[++Q]):(m=v+S,D=m-v,E=v-(m-D)+(S-D),S=c[++V]),v=m,E!==0&&(g[K++]=E);for(;Q<l;)m=v+C,D=m-v,E=v-(m-D)+(C-D),C=o[++Q],v=m,E!==0&&(g[K++]=E);for(;V<h;)m=v+S,D=m-v,E=v-(m-D)+(S-D),S=c[++V],v=m,E!==0&&(g[K++]=E);return(v!==0||K===0)&&(g[K++]=v),K}function $o(l,o){let h=o[0];for(let c=1;c<l;c++)h+=o[c];return h}function Le(l){return new Float64Array(l)}var A2=(3+16*U0)*U0,e2=(2+12*U0)*U0,t2=(9+64*U0)*U0*U0,ve=Le(4),vi=Le(8),mi=Le(12),Ei=Le(16),g0=Le(4);function r2(l,o,h,c,g,v,m){let E,D,C,S,Q,V,K,tA,oA,wA,hA,J,FA,LA,YA,OA,XA,_;const T=l-g,x=h-g,Y=o-v,F=c-v;LA=T*F,V=a0*T,K=V-(V-T),tA=T-K,V=a0*F,oA=V-(V-F),wA=F-oA,YA=tA*wA-(LA-K*oA-tA*oA-K*wA),OA=Y*x,V=a0*Y,K=V-(V-Y),tA=Y-K,V=a0*x,oA=V-(V-x),wA=x-oA,XA=tA*wA-(OA-K*oA-tA*oA-K*wA),hA=YA-XA,Q=YA-hA,ve[0]=YA-(hA+Q)+(Q-XA),J=LA+hA,Q=J-LA,FA=LA-(J-Q)+(hA-Q),hA=FA-OA,Q=FA-hA,ve[1]=FA-(hA+Q)+(Q-OA),_=J+hA,Q=_-J,ve[2]=J-(_-Q)+(hA-Q),ve[3]=_;let N=$o(4,ve),W=e2*m;if(N>=W||-N>=W||(Q=l-T,E=l-(T+Q)+(Q-g),Q=h-x,C=h-(x+Q)+(Q-g),Q=o-Y,D=o-(Y+Q)+(Q-v),Q=c-F,S=c-(F+Q)+(Q-v),E===0&&D===0&&C===0&&S===0)||(W=t2*m+Xo*Math.abs(N),N+=T*S+F*E-(Y*C+x*D),N>=W||-N>=W))return N;LA=E*F,V=a0*E,K=V-(V-E),tA=E-K,V=a0*F,oA=V-(V-F),wA=F-oA,YA=tA*wA-(LA-K*oA-tA*oA-K*wA),OA=D*x,V=a0*D,K=V-(V-D),tA=D-K,V=a0*x,oA=V-(V-x),wA=x-oA,XA=tA*wA-(OA-K*oA-tA*oA-K*wA),hA=YA-XA,Q=YA-hA,g0[0]=YA-(hA+Q)+(Q-XA),J=LA+hA,Q=J-LA,FA=LA-(J-Q)+(hA-Q),hA=FA-OA,Q=FA-hA,g0[1]=FA-(hA+Q)+(Q-OA),_=J+hA,Q=_-J,g0[2]=J-(_-Q)+(hA-Q),g0[3]=_;const R=Lt(4,ve,4,g0,vi);LA=T*S,V=a0*T,K=V-(V-T),tA=T-K,V=a0*S,oA=V-(V-S),wA=S-oA,YA=tA*wA-(LA-K*oA-tA*oA-K*wA),OA=Y*C,V=a0*Y,K=V-(V-Y),tA=Y-K,V=a0*C,oA=V-(V-C),wA=C-oA,XA=tA*wA-(OA-K*oA-tA*oA-K*wA),hA=YA-XA,Q=YA-hA,g0[0]=YA-(hA+Q)+(Q-XA),J=LA+hA,Q=J-LA,FA=LA-(J-Q)+(hA-Q),hA=FA-OA,Q=FA-hA,g0[1]=FA-(hA+Q)+(Q-OA),_=J+hA,Q=_-J,g0[2]=J-(_-Q)+(hA-Q),g0[3]=_;const z=Lt(R,vi,4,g0,mi);LA=E*S,V=a0*E,K=V-(V-E),tA=E-K,V=a0*S,oA=V-(V-S),wA=S-oA,YA=tA*wA-(LA-K*oA-tA*oA-K*wA),OA=D*C,V=a0*D,K=V-(V-D),tA=D-K,V=a0*C,oA=V-(V-C),wA=C-oA,XA=tA*wA-(OA-K*oA-tA*oA-K*wA),hA=YA-XA,Q=YA-hA,g0[0]=YA-(hA+Q)+(Q-XA),J=LA+hA,Q=J-LA,FA=LA-(J-Q)+(hA-Q),hA=FA-OA,Q=FA-hA,g0[1]=FA-(hA+Q)+(Q-OA),_=J+hA,Q=_-J,g0[2]=J-(_-Q)+(hA-Q),g0[3]=_;const q=Lt(z,mi,4,g0,Ei);return Ei[q-1]}function i2(l,o,h,c,g,v){const m=(o-v)*(h-g),E=(l-g)*(c-v),D=m-E,C=Math.abs(m+E);return Math.abs(D)>=A2*C?D:-r2(l,o,h,c,g,v,C)}function n2(l,o){var h,c,g=0,v,m,E,D,C,S,Q,V=l[0],K=l[1],tA=o.length;for(h=0;h<tA;h++){c=0;var oA=o[h],wA=oA.length-1;if(S=oA[0],S[0]!==oA[wA][0]&&S[1]!==oA[wA][1])throw new Error("First and last coordinates in a ring must be the same");for(m=S[0]-V,E=S[1]-K,c;c<wA;c++){if(Q=oA[c+1],D=Q[0]-V,C=Q[1]-K,E===0&&C===0){if(D<=0&&m>=0||m<=0&&D>=0)return 0}else if(C>=0&&E<=0||C<=0&&E>=0){if(v=i2(m,D,E,C,0,0),v===0)return 0;(v>0&&C>0&&E<=0||v<0&&C<=0&&E>0)&&g++}S=Q,E=C,m=D}}return g%2!==0}function v0(l,o,h={}){const c={type:"Feature"};return(h.id===0||h.id)&&(c.id=h.id),h.bbox&&(c.bbox=h.bbox),c.properties=o||{},c.geometry=l,c}function s2(l,o,h={}){if(!l)throw new Error("coordinates is required");if(!Array.isArray(l))throw new Error("coordinates must be an Array");if(l.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!bi(l[0])||!bi(l[1]))throw new Error("coordinates must contain numbers");return v0({type:"Point",coordinates:l},o,h)}function Ft(l,o,h={}){for(const g of l){if(g.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(g[g.length-1].length!==g[0].length)throw new Error("First and last Position are not equivalent.");for(let v=0;v<g[g.length-1].length;v++)if(g[g.length-1][v]!==g[0][v])throw new Error("First and last Position are not equivalent.")}return v0({type:"Polygon",coordinates:l},o,h)}function yi(l,o,h={}){if(l.length<2)throw new Error("coordinates must be an array of two or more positions");return v0({type:"LineString",coordinates:l},o,h)}function Fe(l,o={}){const h={type:"FeatureCollection"};return o.id&&(h.id=o.id),o.bbox&&(h.bbox=o.bbox),h.features=l,h}function Bi(l,o,h={}){return v0({type:"MultiLineString",coordinates:l},o,h)}function ki(l,o,h={}){return v0({type:"MultiPolygon",coordinates:l},o,h)}function bi(l){return!isNaN(l)&&l!==null&&!Array.isArray(l)}function Ci(l){if(!l)throw new Error("coord is required");if(!Array.isArray(l)){if(l.type==="Feature"&&l.geometry!==null&&l.geometry.type==="Point")return[...l.geometry.coordinates];if(l.type==="Point")return[...l.coordinates]}if(Array.isArray(l)&&l.length>=2&&!Array.isArray(l[0])&&!Array.isArray(l[1]))return[...l];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Re(l){if(Array.isArray(l))return l;if(l.type==="Feature"){if(l.geometry!==null)return l.geometry.coordinates}else if(l.coordinates)return l.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function z0(l){return l.type==="Feature"?l.geometry:l}function o2(l,o){return l.type==="FeatureCollection"?"FeatureCollection":l.type==="GeometryCollection"?"GeometryCollection":l.type==="Feature"&&l.geometry!==null?l.geometry.type:l.type}function C0(l,o,h={}){if(!l)throw new Error("point is required");if(!o)throw new Error("polygon is required");const c=Ci(l),g=z0(o),v=g.type,m=o.bbox;let E=g.coordinates;if(m&&l2(c,m)===!1)return!1;v==="Polygon"&&(E=[E]);let D=!1;for(var C=0;C<E.length;++C){const S=n2(c,E[C]);if(S===0)return!h.ignoreBoundary;S&&(D=!0)}return D}function l2(l,o){return o[0]<=l[0]&&o[1]<=l[1]&&o[2]>=l[0]&&o[3]>=l[1]}var _i=class{constructor(l=[],o=f2){if(this.data=l,this.length=this.data.length,this.compare=o,this.length>0)for(let h=(this.length>>1)-1;h>=0;h--)this._down(h)}push(l){this.data.push(l),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const l=this.data[0],o=this.data.pop();return this.length--,this.length>0&&(this.data[0]=o,this._down(0)),l}peek(){return this.data[0]}_up(l){const{data:o,compare:h}=this,c=o[l];for(;l>0;){const g=l-1>>1,v=o[g];if(h(c,v)>=0)break;o[l]=v,l=g}o[l]=c}_down(l){const{data:o,compare:h}=this,c=this.length>>1,g=o[l];for(;l<c;){let v=(l<<1)+1,m=o[v];const E=v+1;if(E<this.length&&h(o[E],m)<0&&(v=E,m=o[E]),h(m,g)>=0)break;o[l]=m,l=v}o[l]=g}};function f2(l,o){return l<o?-1:l>o?1:0}function Di(l,o){return l.p.x>o.p.x?1:l.p.x<o.p.x?-1:l.p.y!==o.p.y?l.p.y>o.p.y?1:-1:1}function u2(l,o){return l.rightSweepEvent.p.x>o.rightSweepEvent.p.x?1:l.rightSweepEvent.p.x<o.rightSweepEvent.p.x?-1:l.rightSweepEvent.p.y!==o.rightSweepEvent.p.y?l.rightSweepEvent.p.y<o.rightSweepEvent.p.y?1:-1:1}var Mi=class{constructor(l,o,h,c){this.p={x:l[0],y:l[1]},this.featureId=o,this.ringId=h,this.eventId=c,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(l){return this.p.x===l.p.x&&this.p.y===l.p.y}};function h2(l,o){if(l.type==="FeatureCollection"){const h=l.features;for(let c=0;c<h.length;c++)Pi(h[c],o)}else Pi(l,o)}var tt=0,rt=0,it=0;function Pi(l,o){const h=l.type==="Feature"?l.geometry:l;let c=h.coordinates;(h.type==="Polygon"||h.type==="MultiLineString")&&(c=[c]),h.type==="LineString"&&(c=[[c]]);for(let g=0;g<c.length;g++)for(let v=0;v<c[g].length;v++){let m=c[g][v][0],E=null;rt=rt+1;for(let D=0;D<c[g][v].length-1;D++){E=c[g][v][D+1];const C=new Mi(m,tt,rt,it),S=new Mi(E,tt,rt,it+1);C.otherEvent=S,S.otherEvent=C,Di(C,S)>0?(S.isLeftEndpoint=!0,C.isLeftEndpoint=!1):(C.isLeftEndpoint=!0,S.isLeftEndpoint=!1),o.push(C),o.push(S),m=E,it=it+1}}tt=tt+1}var a2=class{constructor(l){this.leftSweepEvent=l,this.rightSweepEvent=l.otherEvent}};function c2(l,o){if(l===null||o===null||l.leftSweepEvent.ringId===o.leftSweepEvent.ringId&&(l.rightSweepEvent.isSamePoint(o.leftSweepEvent)||l.rightSweepEvent.isSamePoint(o.leftSweepEvent)||l.rightSweepEvent.isSamePoint(o.rightSweepEvent)||l.leftSweepEvent.isSamePoint(o.leftSweepEvent)||l.leftSweepEvent.isSamePoint(o.rightSweepEvent)))return!1;const h=l.leftSweepEvent.p.x,c=l.leftSweepEvent.p.y,g=l.rightSweepEvent.p.x,v=l.rightSweepEvent.p.y,m=o.leftSweepEvent.p.x,E=o.leftSweepEvent.p.y,D=o.rightSweepEvent.p.x,C=o.rightSweepEvent.p.y,S=(C-E)*(g-h)-(D-m)*(v-c),Q=(D-m)*(c-E)-(C-E)*(h-m),V=(g-h)*(c-E)-(v-c)*(h-m);if(S===0)return!1;const K=Q/S,tA=V/S;if(K>=0&&K<=1&&tA>=0&&tA<=1){const oA=h+K*(g-h),wA=c+K*(v-c);return[oA,wA]}return!1}function g2(l,o){o=o||!1;const h=[],c=new _i([],u2);for(;l.length;){const g=l.pop();if(g.isLeftEndpoint){const v=new a2(g);for(let m=0;m<c.data.length;m++){const E=c.data[m];if(o&&E.leftSweepEvent.featureId===g.featureId)continue;const D=c2(v,E);D!==!1&&h.push(D)}c.push(v)}else g.isLeftEndpoint===!1&&c.pop()}return h}function w2(l,o){const h=new _i([],Di);return h2(l,h),g2(h,o)}var p2=w2,v2=p2;function Rt(l,o,h={}){const{removeDuplicates:c=!0,ignoreSelfIntersections:g=!0}=h;let v=[];l.type==="FeatureCollection"?v=v.concat(l.features):l.type==="Feature"?v.push(l):(l.type==="LineString"||l.type==="Polygon"||l.type==="MultiLineString"||l.type==="MultiPolygon")&&v.push(v0(l)),o.type==="FeatureCollection"?v=v.concat(o.features):o.type==="Feature"?v.push(o):(o.type==="LineString"||o.type==="Polygon"||o.type==="MultiLineString"||o.type==="MultiPolygon")&&v.push(v0(o));const m=v2(Fe(v),g);let E=[];if(c){const D={};m.forEach(C=>{const S=C.join(",");D[S]||(D[S]=!0,E.push(C))})}else E=m;return Fe(E.map(D=>s2(D)))}function di(l,o,h){if(l!==null)for(var c,g,v,m,E,D,C,S=0,Q=0,V,K=l.type,tA=K==="FeatureCollection",oA=K==="Feature",wA=tA?l.features.length:1,hA=0;hA<wA;hA++){C=tA?l.features[hA].geometry:oA?l.geometry:l,V=C?C.type==="GeometryCollection":!1,E=V?C.geometries.length:1;for(var J=0;J<E;J++){var FA=0,LA=0;if(m=V?C.geometries[J]:C,m!==null){D=m.coordinates;var YA=m.type;switch(S=0,YA){case null:break;case"Point":if(o(D,Q,hA,FA,LA)===!1)return!1;Q++,FA++;break;case"LineString":case"MultiPoint":for(c=0;c<D.length;c++){if(o(D[c],Q,hA,FA,LA)===!1)return!1;Q++,YA==="MultiPoint"&&FA++}YA==="LineString"&&FA++;break;case"Polygon":case"MultiLineString":for(c=0;c<D.length;c++){for(g=0;g<D[c].length-S;g++){if(o(D[c][g],Q,hA,FA,LA)===!1)return!1;Q++}YA==="MultiLineString"&&FA++,YA==="Polygon"&&LA++}YA==="Polygon"&&FA++;break;case"MultiPolygon":for(c=0;c<D.length;c++){for(LA=0,g=0;g<D[c].length;g++){for(v=0;v<D[c][g].length-S;v++){if(o(D[c][g][v],Q,hA,FA,LA)===!1)return!1;Q++}LA++}FA++}break;case"GeometryCollection":for(c=0;c<m.geometries.length;c++)if(di(m.geometries[c],o)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function Ti(l,o){var h,c,g,v,m,E,D,C,S,Q,V=0,K=l.type==="FeatureCollection",tA=l.type==="Feature",oA=K?l.features.length:1;for(h=0;h<oA;h++){for(E=K?l.features[h].geometry:tA?l.geometry:l,C=K?l.features[h].properties:tA?l.properties:{},S=K?l.features[h].bbox:tA?l.bbox:void 0,Q=K?l.features[h].id:tA?l.id:void 0,D=E?E.type==="GeometryCollection":!1,m=D?E.geometries.length:1,g=0;g<m;g++){if(v=D?E.geometries[g]:E,v===null){if(o(null,V,C,S,Q)===!1)return!1;continue}switch(v.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(o(v,V,C,S,Q)===!1)return!1;break}case"GeometryCollection":{for(c=0;c<v.geometries.length;c++)if(o(v.geometries[c],V,C,S,Q)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}V++}}function nt(l,o){Ti(l,function(h,c,g,v,m){var E=h===null?null:h.type;switch(E){case null:case"Point":case"LineString":case"Polygon":return o(v0(h,g,{bbox:v,id:m}),c,0)===!1?!1:void 0}var D;switch(E){case"MultiPoint":D="Point";break;case"MultiLineString":D="LineString";break;case"MultiPolygon":D="Polygon";break}for(var C=0;C<h.coordinates.length;C++){var S=h.coordinates[C],Q={type:D,coordinates:S};if(o(v0(Q,g),c,C)===!1)return!1}})}function Ot(l,o={}){const h=z0(l);switch(!o.properties&&l.type==="Feature"&&(o.properties=l.properties),h.type){case"Polygon":return m2(h,o);case"MultiPolygon":return E2(h,o);default:throw new Error("invalid poly")}}function m2(l,o={}){const c=z0(l).coordinates,g=o.properties?o.properties:l.type==="Feature"?l.properties:{};return xi(c,g)}function E2(l,o={}){const c=z0(l).coordinates,g=o.properties?o.properties:l.type==="Feature"?l.properties:{},v=[];return c.forEach(m=>{v.push(xi(m,g))}),Fe(v)}function xi(l,o){return l.length>1?Bi(l,o):yi(l[0],o)}function y2(l,o,{ignoreSelfIntersections:h=!0}={ignoreSelfIntersections:!0}){let c=!0;return nt(l,g=>{nt(o,v=>{if(c===!1)return!1;c=B2(g.geometry,v.geometry,h)})}),c}function B2(l,o,h){switch(l.type){case"Point":switch(o.type){case"Point":return!_2(l.coordinates,o.coordinates);case"LineString":return!Qi(o,l);case"Polygon":return!C0(l,o)}break;case"LineString":switch(o.type){case"Point":return!Qi(l,o);case"LineString":return!k2(l,o,h);case"Polygon":return!Ii(o,l,h)}break;case"Polygon":switch(o.type){case"Point":return!C0(o,l);case"LineString":return!Ii(l,o,h);case"Polygon":return!b2(o,l,h)}}return!1}function Qi(l,o){for(let h=0;h<l.coordinates.length-1;h++)if(C2(l.coordinates[h],l.coordinates[h+1],o.coordinates))return!0;return!1}function k2(l,o,h){return Rt(l,o,{ignoreSelfIntersections:h}).features.length>0}function Ii(l,o,h){for(const g of o.coordinates)if(C0(g,l))return!0;return Rt(o,Ot(l),{ignoreSelfIntersections:h}).features.length>0}function b2(l,o,h){for(const g of l.coordinates[0])if(C0(g,o))return!0;for(const g of o.coordinates[0])if(C0(g,l))return!0;return Rt(Ot(l),Ot(o),{ignoreSelfIntersections:h}).features.length>0}function C2(l,o,h){const c=h[0]-l[0],g=h[1]-l[1],v=o[0]-l[0],m=o[1]-l[1];return c*m-g*v!==0?!1:Math.abs(v)>=Math.abs(m)?v>0?l[0]<=h[0]&&h[0]<=o[0]:o[0]<=h[0]&&h[0]<=l[0]:m>0?l[1]<=h[1]&&h[1]<=o[1]:o[1]<=h[1]&&h[1]<=l[1]}function _2(l,o){return l[0]===o[0]&&l[1]===o[1]}function D2(l,o,{ignoreSelfIntersections:h=!0}={}){let c=!1;return nt(l,g=>{nt(o,v=>{if(c===!0)return!0;c=!y2(g.geometry,v.geometry,{ignoreSelfIntersections:h})})}),c}var Si=D2;function M2({geojson:l,spatialFilter:o,uniqueIdProperty:h}){let c=0;const g=new Map;if(!o)return[];for(const v of l.features){const m=h?v.properties[h]:++c;!g.has(m)&&Si(o,v)&&g.set(m,v.properties)}return Array.from(g.values())}var P2={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...P2}},globalThis.mathgl.config;function d2(l){return Array.isArray(l)||ArrayBuffer.isView(l)&&!(l instanceof DataView)}function Gt(l,o,h){return d2(l)?l.map((c,g)=>Gt(c,o[g],h)):h*o+(1-h)*l}function Li(l,o){if(!l)throw new Error(o||"@math.gl/web-mercator: assertion failed.")}var S0=Math.PI,Fi=S0/4,Ri=S0/180,Oi=180/S0,st=512;function Nt(l){const[o,h]=l;Li(Number.isFinite(o)),Li(Number.isFinite(h)&&h>=-90&&h<=90,"invalid latitude");const c=o*Ri,g=h*Ri,v=st*(c+S0)/(2*S0),m=st*(S0+Math.log(Math.tan(Fi+g*.5)))/(2*S0);return[v,m]}function T2(l){const[o,h]=l,c=o/st*(2*S0)-S0,g=2*(Math.atan(Math.exp(h/st*(2*S0)-S0))-Fi);return[c*Oi,g*Oi]}var x2={Point:Gi,MultiPoint:I2,LineString:Ni,MultiLineString:S2,Polygon:Ui,MultiPolygon:L2};function Q2(l,o){const[h,c,g,v]=o,m=Nt([h,v]),E=Nt([g,c]),D=[m,E];if(l.type==="GeometryCollection")throw new Error("Unsupported geometry type GeometryCollection");const C=x2[l.type],S=C(l.coordinates,D);return{...l,coordinates:S}}function Gi([l,o],[h,c]){const g=Gt(h[0],c[0],l),v=Gt(h[1],c[1],o);return T2([g,v])}function Ut(l,o){return l.map(h=>Gi(h,o))}function I2(l,o){return Ut(l,o)}function Ni(l,o){return Ut(l,o)}function S2(l,o){return l.map(h=>Ni(h,o))}function Ui(l,o){return l.map(h=>Ut(h,o))}function L2(l,o){return l.map(h=>Ui(h,o))}function F2(l,o={}){const h=Number(l[0]),c=Number(l[1]),g=Number(l[2]),v=Number(l[3]);if(l.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");const m=[h,c];return Ft([[m,[g,c],[g,v],[h,v],m]],o.properties,{bbox:l,id:o.id})}var R2=F2;function ot(l,o={}){if(l.bbox!=null&&o.recompute!==!0)return l.bbox;const h=[1/0,1/0,-1/0,-1/0];return di(l,c=>{h[0]>c[0]&&(h[0]=c[0]),h[1]>c[1]&&(h[1]=c[1]),h[2]<c[0]&&(h[2]=c[0]),h[3]<c[1]&&(h[3]=c[1])}),h}function lt(l,o,h={}){const c=Ci(l),g=Re(o);for(let v=0;v<g.length-1;v++){let m=!1;if(h.ignoreEndVertices&&(v===0&&(m="start"),v===g.length-2&&(m="end"),v===0&&v+1===g.length-1&&(m="both")),O2(g[v],g[v+1],c,m,typeof h.epsilon>"u"?null:h.epsilon))return!0}return!1}function O2(l,o,h,c,g){const v=h[0],m=h[1],E=l[0],D=l[1],C=o[0],S=o[1],Q=h[0]-E,V=h[1]-D,K=C-E,tA=S-D,oA=Q*tA-V*K;if(g!==null){if(Math.abs(oA)>g)return!1}else if(oA!==0)return!1;if(Math.abs(K)===Math.abs(tA)&&Math.abs(K)===0)return c?!1:h[0]===l[0]&&h[1]===l[1];if(c){if(c==="start")return Math.abs(K)>=Math.abs(tA)?K>0?E<v&&v<=C:C<=v&&v<E:tA>0?D<m&&m<=S:S<=m&&m<D;if(c==="end")return Math.abs(K)>=Math.abs(tA)?K>0?E<=v&&v<C:C<v&&v<=E:tA>0?D<=m&&m<S:S<m&&m<=D;if(c==="both")return Math.abs(K)>=Math.abs(tA)?K>0?E<v&&v<C:C<v&&v<E:tA>0?D<m&&m<S:S<m&&m<D}else return Math.abs(K)>=Math.abs(tA)?K>0?E<=v&&v<=C:C<=v&&v<=E:tA>0?D<=m&&m<=S:S<=m&&m<=D;return!1}function G2(l,o){var h=z0(l),c=z0(o),g=h.type,v=c.type;switch(g){case"Point":switch(v){case"MultiPoint":return N2(h,c);case"LineString":return lt(h,c,{ignoreEndVertices:!0});case"Polygon":case"MultiPolygon":return C0(h,c,{ignoreBoundary:!0});default:throw new Error("feature2 "+v+" geometry not supported")}case"MultiPoint":switch(v){case"MultiPoint":return U2(h,c);case"LineString":return z2(h,c);case"Polygon":case"MultiPolygon":return Y2(h,c);default:throw new Error("feature2 "+v+" geometry not supported")}case"LineString":switch(v){case"LineString":return V2(h,c);case"Polygon":case"MultiPolygon":return H2(h,c);default:throw new Error("feature2 "+v+" geometry not supported")}case"Polygon":switch(v){case"Polygon":case"MultiPolygon":return j2(h,c);default:throw new Error("feature2 "+v+" geometry not supported")}default:throw new Error("feature1 "+g+" geometry not supported")}}function N2(l,o){var h,c=!1;for(h=0;h<o.coordinates.length;h++)if(Yi(o.coordinates[h],l.coordinates)){c=!0;break}return c}function U2(l,o){for(var h=0;h<l.coordinates.length;h++){for(var c=!1,g=0;g<o.coordinates.length;g++)Yi(l.coordinates[h],o.coordinates[g])&&(c=!0);if(!c)return!1}return!0}function z2(l,o){for(var h=!1,c=0;c<l.coordinates.length;c++){if(!lt(l.coordinates[c],o))return!1;h||(h=lt(l.coordinates[c],o,{ignoreEndVertices:!0}))}return h}function Y2(l,o){for(var h=!0,c=!1,g=0;g<l.coordinates.length;g++){if(c=C0(l.coordinates[g],o),!c){h=!1;break}c=C0(l.coordinates[g],o,{ignoreBoundary:!0})}return h&&c}function V2(l,o){for(var h=0;h<l.coordinates.length;h++)if(!lt(l.coordinates[h],o))return!1;return!0}function H2(l,o){var h=ot(o),c=ot(l);if(!zi(h,c))return!1;for(var g=!1,v=0;v<l.coordinates.length;v++){if(!C0(l.coordinates[v],o))return!1;if(g||(g=C0(l.coordinates[v],o,{ignoreBoundary:!0})),!g&&v<l.coordinates.length-1){var m=q2(l.coordinates[v],l.coordinates[v+1]);g=C0(m,o,{ignoreBoundary:!0})}}return g}function j2(l,o){var h=ot(l),c=ot(o);if(!zi(c,h))return!1;for(var g=0;g<l.coordinates[0].length;g++)if(!C0(l.coordinates[0][g],o))return!1;return!0}function zi(l,o){return!(l[0]>o[0]||l[2]<o[2]||l[1]>o[1]||l[3]<o[3])}function Yi(l,o){return l[0]===o[0]&&l[1]===o[1]}function q2(l,o){return[(l[0]+o[0])/2,(l[1]+o[1])/2]}var Vi=G2,W2=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,zt=Math.ceil,_0=Math.floor,m0="[BigNumber Error] ",Hi=m0+"Number primitive has more than 15 significant digits: ",L0=1e14,TA=14,Yt=9007199254740991,Vt=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],W0=1e7,i0=1e9;function ji(l){var o,h,c,g=J.prototype={constructor:J,toString:null,valueOf:null},v=new J(1),m=20,E=4,D=-7,C=21,S=-1e7,Q=1e7,V=!1,K=1,tA=0,oA={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},wA="0123456789abcdefghijklmnopqrstuvwxyz",hA=!0;function J(_,T){var x,Y,F,N,W,R,z,q,H=this;if(!(H instanceof J))return new J(_,T);if(T==null){if(_&&_._isBigNumber===!0){H.s=_.s,!_.c||_.e>Q?H.c=H.e=null:_.e<S?H.c=[H.e=0]:(H.e=_.e,H.c=_.c.slice());return}if((R=typeof _=="number")&&_*0==0){if(H.s=1/_<0?(_=-_,-1):1,_===~~_){for(N=0,W=_;W>=10;W/=10,N++);N>Q?H.c=H.e=null:(H.e=N,H.c=[_]);return}q=String(_)}else{if(!W2.test(q=String(_)))return c(H,q,R);H.s=q.charCodeAt(0)==45?(q=q.slice(1),-1):1}(N=q.indexOf("."))>-1&&(q=q.replace(".","")),(W=q.search(/e/i))>0?(N<0&&(N=W),N+=+q.slice(W+1),q=q.substring(0,W)):N<0&&(N=q.length)}else{if(A0(T,2,wA.length,"Base"),T==10&&hA)return H=new J(_),OA(H,m+H.e+1,E);if(q=String(_),R=typeof _=="number"){if(_*0!=0)return c(H,q,R,T);if(H.s=1/_<0?(q=q.slice(1),-1):1,J.DEBUG&&q.replace(/^0\.0*|\./,"").length>15)throw Error(Hi+_)}else H.s=q.charCodeAt(0)===45?(q=q.slice(1),-1):1;for(x=wA.slice(0,T),N=W=0,z=q.length;W<z;W++)if(x.indexOf(Y=q.charAt(W))<0){if(Y=="."){if(W>N){N=z;continue}}else if(!F&&(q==q.toUpperCase()&&(q=q.toLowerCase())||q==q.toLowerCase()&&(q=q.toUpperCase()))){F=!0,W=-1,N=0;continue}return c(H,String(_),R,T)}R=!1,q=h(q,T,10,H.s),(N=q.indexOf("."))>-1?q=q.replace(".",""):N=q.length}for(W=0;q.charCodeAt(W)===48;W++);for(z=q.length;q.charCodeAt(--z)===48;);if(q=q.slice(W,++z)){if(z-=W,R&&J.DEBUG&&z>15&&(_>Yt||_!==_0(_)))throw Error(Hi+H.s*_);if((N=N-W-1)>Q)H.c=H.e=null;else if(N<S)H.c=[H.e=0];else{if(H.e=N,H.c=[],W=(N+1)%TA,N<0&&(W+=TA),W<z){for(W&&H.c.push(+q.slice(0,W)),z-=TA;W<z;)H.c.push(+q.slice(W,W+=TA));W=TA-(q=q.slice(W)).length}else W-=z;for(;W--;q+="0");H.c.push(+q)}}else H.c=[H.e=0]}J.clone=ji,J.ROUND_UP=0,J.ROUND_DOWN=1,J.ROUND_CEIL=2,J.ROUND_FLOOR=3,J.ROUND_HALF_UP=4,J.ROUND_HALF_DOWN=5,J.ROUND_HALF_EVEN=6,J.ROUND_HALF_CEIL=7,J.ROUND_HALF_FLOOR=8,J.EUCLID=9,J.config=J.set=function(_){var T,x;if(_!=null)if(typeof _=="object"){if(_.hasOwnProperty(T="DECIMAL_PLACES")&&(x=_[T],A0(x,0,i0,T),m=x),_.hasOwnProperty(T="ROUNDING_MODE")&&(x=_[T],A0(x,0,8,T),E=x),_.hasOwnProperty(T="EXPONENTIAL_AT")&&(x=_[T],x&&x.pop?(A0(x[0],-i0,0,T),A0(x[1],0,i0,T),D=x[0],C=x[1]):(A0(x,-i0,i0,T),D=-(C=x<0?-x:x))),_.hasOwnProperty(T="RANGE"))if(x=_[T],x&&x.pop)A0(x[0],-i0,-1,T),A0(x[1],1,i0,T),S=x[0],Q=x[1];else if(A0(x,-i0,i0,T),x)S=-(Q=x<0?-x:x);else throw Error(m0+T+" cannot be zero: "+x);if(_.hasOwnProperty(T="CRYPTO"))if(x=_[T],x===!!x)if(x)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))V=x;else throw V=!x,Error(m0+"crypto unavailable");else V=x;else throw Error(m0+T+" not true or false: "+x);if(_.hasOwnProperty(T="MODULO_MODE")&&(x=_[T],A0(x,0,9,T),K=x),_.hasOwnProperty(T="POW_PRECISION")&&(x=_[T],A0(x,0,i0,T),tA=x),_.hasOwnProperty(T="FORMAT"))if(x=_[T],typeof x=="object")oA=x;else throw Error(m0+T+" not an object: "+x);if(_.hasOwnProperty(T="ALPHABET"))if(x=_[T],typeof x=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(x))hA=x.slice(0,10)=="0123456789",wA=x;else throw Error(m0+T+" invalid: "+x)}else throw Error(m0+"Object expected: "+_);return{DECIMAL_PLACES:m,ROUNDING_MODE:E,EXPONENTIAL_AT:[D,C],RANGE:[S,Q],CRYPTO:V,MODULO_MODE:K,POW_PRECISION:tA,FORMAT:oA,ALPHABET:wA}},J.isBigNumber=function(_){if(!_||_._isBigNumber!==!0)return!1;if(!J.DEBUG)return!0;var T,x,Y=_.c,F=_.e,N=_.s;A:if({}.toString.call(Y)=="[object Array]"){if((N===1||N===-1)&&F>=-i0&&F<=i0&&F===_0(F)){if(Y[0]===0){if(F===0&&Y.length===1)return!0;break A}if(T=(F+1)%TA,T<1&&(T+=TA),String(Y[0]).length==T){for(T=0;T<Y.length;T++)if(x=Y[T],x<0||x>=L0||x!==_0(x))break A;if(x!==0)return!0}}}else if(Y===null&&F===null&&(N===null||N===1||N===-1))return!0;throw Error(m0+"Invalid BigNumber: "+_)},J.maximum=J.max=function(){return LA(arguments,-1)},J.minimum=J.min=function(){return LA(arguments,1)},J.random=(function(){var _=9007199254740992,T=Math.random()*_&2097151?function(){return _0(Math.random()*_)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(x){var Y,F,N,W,R,z=0,q=[],H=new J(v);if(x==null?x=m:A0(x,0,i0),W=zt(x/TA),V)if(crypto.getRandomValues){for(Y=crypto.getRandomValues(new Uint32Array(W*=2));z<W;)R=Y[z]*131072+(Y[z+1]>>>11),R>=9e15?(F=crypto.getRandomValues(new Uint32Array(2)),Y[z]=F[0],Y[z+1]=F[1]):(q.push(R%1e14),z+=2);z=W/2}else if(crypto.randomBytes){for(Y=crypto.randomBytes(W*=7);z<W;)R=(Y[z]&31)*281474976710656+Y[z+1]*1099511627776+Y[z+2]*4294967296+Y[z+3]*16777216+(Y[z+4]<<16)+(Y[z+5]<<8)+Y[z+6],R>=9e15?crypto.randomBytes(7).copy(Y,z):(q.push(R%1e14),z+=7);z=W/7}else throw V=!1,Error(m0+"crypto unavailable");if(!V)for(;z<W;)R=T(),R<9e15&&(q[z++]=R%1e14);for(W=q[--z],x%=TA,W&&x&&(R=Vt[TA-x],q[z]=_0(W/R)*R);q[z]===0;q.pop(),z--);if(z<0)q=[N=0];else{for(N=-1;q[0]===0;q.splice(0,1),N-=TA);for(z=1,R=q[0];R>=10;R/=10,z++);z<TA&&(N-=TA-z)}return H.e=N,H.c=q,H}})(),J.sum=function(){for(var _=1,T=arguments,x=new J(T[0]);_<T.length;)x=x.plus(T[_++]);return x},h=(function(){var _="0123456789";function T(x,Y,F,N){for(var W,R=[0],z,q=0,H=x.length;q<H;){for(z=R.length;z--;R[z]*=Y);for(R[0]+=N.indexOf(x.charAt(q++)),W=0;W<R.length;W++)R[W]>F-1&&(R[W+1]==null&&(R[W+1]=0),R[W+1]+=R[W]/F|0,R[W]%=F)}return R.reverse()}return function(x,Y,F,N,W){var R,z,q,H,eA,pA,EA,RA,KA=x.indexOf("."),e0=m,GA=E;for(KA>=0&&(H=tA,tA=0,x=x.replace(".",""),RA=new J(Y),pA=RA.pow(x.length-KA),tA=H,RA.c=T(Y0(M0(pA.c),pA.e,"0"),10,F,_),RA.e=RA.c.length),EA=T(x,Y,F,W?(R=wA,_):(R=_,wA)),q=H=EA.length;EA[--H]==0;EA.pop());if(!EA[0])return R.charAt(0);if(KA<0?--q:(pA.c=EA,pA.e=q,pA.s=N,pA=o(pA,RA,e0,GA,F),EA=pA.c,eA=pA.r,q=pA.e),z=q+e0+1,KA=EA[z],H=F/2,eA=eA||z<0||EA[z+1]!=null,eA=GA<4?(KA!=null||eA)&&(GA==0||GA==(pA.s<0?3:2)):KA>H||KA==H&&(GA==4||eA||GA==6&&EA[z-1]&1||GA==(pA.s<0?8:7)),z<1||!EA[0])x=eA?Y0(R.charAt(1),-e0,R.charAt(0)):R.charAt(0);else{if(EA.length=z,eA)for(--F;++EA[--z]>F;)EA[z]=0,z||(++q,EA=[1].concat(EA));for(H=EA.length;!EA[--H];);for(KA=0,x="";KA<=H;x+=R.charAt(EA[KA++]));x=Y0(x,q,R.charAt(0))}return x}})(),o=(function(){function _(Y,F,N){var W,R,z,q,H=0,eA=Y.length,pA=F%W0,EA=F/W0|0;for(Y=Y.slice();eA--;)z=Y[eA]%W0,q=Y[eA]/W0|0,W=EA*z+q*pA,R=pA*z+W%W0*W0+H,H=(R/N|0)+(W/W0|0)+EA*q,Y[eA]=R%N;return H&&(Y=[H].concat(Y)),Y}function T(Y,F,N,W){var R,z;if(N!=W)z=N>W?1:-1;else for(R=z=0;R<N;R++)if(Y[R]!=F[R]){z=Y[R]>F[R]?1:-1;break}return z}function x(Y,F,N,W){for(var R=0;N--;)Y[N]-=R,R=Y[N]<F[N]?1:0,Y[N]=R*W+Y[N]-F[N];for(;!Y[0]&&Y.length>1;Y.splice(0,1));}return function(Y,F,N,W,R){var z,q,H,eA,pA,EA,RA,KA,e0,GA,VA,n0,Be,ze,Ye,P0,oe,E0=Y.s==F.s?1:-1,u0=Y.c,$A=F.c;if(!u0||!u0[0]||!$A||!$A[0])return new J(!Y.s||!F.s||(u0?$A&&u0[0]==$A[0]:!$A)?NaN:u0&&u0[0]==0||!$A?E0*0:E0/0);for(KA=new J(E0),e0=KA.c=[],q=Y.e-F.e,E0=N+q+1,R||(R=L0,q=D0(Y.e/TA)-D0(F.e/TA),E0=E0/TA|0),H=0;$A[H]==(u0[H]||0);H++);if($A[H]>(u0[H]||0)&&q--,E0<0)e0.push(1),eA=!0;else{for(ze=u0.length,P0=$A.length,H=0,E0+=2,pA=_0(R/($A[0]+1)),pA>1&&($A=_($A,pA,R),u0=_(u0,pA,R),P0=$A.length,ze=u0.length),Be=P0,GA=u0.slice(0,P0),VA=GA.length;VA<P0;GA[VA++]=0);oe=$A.slice(),oe=[0].concat(oe),Ye=$A[0],$A[1]>=R/2&&Ye++;do{if(pA=0,z=T($A,GA,P0,VA),z<0){if(n0=GA[0],P0!=VA&&(n0=n0*R+(GA[1]||0)),pA=_0(n0/Ye),pA>1)for(pA>=R&&(pA=R-1),EA=_($A,pA,R),RA=EA.length,VA=GA.length;T(EA,GA,RA,VA)==1;)pA--,x(EA,P0<RA?oe:$A,RA,R),RA=EA.length,z=1;else pA==0&&(z=pA=1),EA=$A.slice(),RA=EA.length;if(RA<VA&&(EA=[0].concat(EA)),x(GA,EA,VA,R),VA=GA.length,z==-1)for(;T($A,GA,P0,VA)<1;)pA++,x(GA,P0<VA?oe:$A,VA,R),VA=GA.length}else z===0&&(pA++,GA=[0]);e0[H++]=pA,GA[0]?GA[VA++]=u0[Be]||0:(GA=[u0[Be]],VA=1)}while((Be++<ze||GA[0]!=null)&&E0--);eA=GA[0]!=null,e0[0]||e0.splice(0,1)}if(R==L0){for(H=1,E0=e0[0];E0>=10;E0/=10,H++);OA(KA,N+(KA.e=H+q*TA-1)+1,W,eA)}else KA.e=q,KA.r=+eA;return KA}})();function FA(_,T,x,Y){var F,N,W,R,z;if(x==null?x=E:A0(x,0,8),!_.c)return _.toString();if(F=_.c[0],W=_.e,T==null)z=M0(_.c),z=Y==1||Y==2&&(W<=D||W>=C)?ut(z,W):Y0(z,W,"0");else if(_=OA(new J(_),T,x),N=_.e,z=M0(_.c),R=z.length,Y==1||Y==2&&(T<=N||N<=D)){for(;R<T;z+="0",R++);z=ut(z,N)}else if(T-=W,z=Y0(z,N,"0"),N+1>R){if(--T>0)for(z+=".";T--;z+="0");}else if(T+=N-R,T>0)for(N+1==R&&(z+=".");T--;z+="0");return _.s<0&&F?"-"+z:z}function LA(_,T){for(var x,Y,F=1,N=new J(_[0]);F<_.length;F++)Y=new J(_[F]),(!Y.s||(x=ne(N,Y))===T||x===0&&N.s===T)&&(N=Y);return N}function YA(_,T,x){for(var Y=1,F=T.length;!T[--F];T.pop());for(F=T[0];F>=10;F/=10,Y++);return(x=Y+x*TA-1)>Q?_.c=_.e=null:x<S?_.c=[_.e=0]:(_.e=x,_.c=T),_}c=(function(){var _=/^(-?)0([xbo])(?=\w[\w.]*$)/i,T=/^([^.]+)\.$/,x=/^\.([^.]+)$/,Y=/^-?(Infinity|NaN)$/,F=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(N,W,R,z){var q,H=R?W:W.replace(F,"");if(Y.test(H))N.s=isNaN(H)?null:H<0?-1:1;else{if(!R&&(H=H.replace(_,function(eA,pA,EA){return q=(EA=EA.toLowerCase())=="x"?16:EA=="b"?2:8,!z||z==q?pA:eA}),z&&(q=z,H=H.replace(T,"$1").replace(x,"0.$1")),W!=H))return new J(H,q);if(J.DEBUG)throw Error(m0+"Not a"+(z?" base "+z:"")+" number: "+W);N.s=null}N.c=N.e=null}})();function OA(_,T,x,Y){var F,N,W,R,z,q,H,eA=_.c,pA=Vt;if(eA){A:{for(F=1,R=eA[0];R>=10;R/=10,F++);if(N=T-F,N<0)N+=TA,W=T,z=eA[q=0],H=_0(z/pA[F-W-1]%10);else if(q=zt((N+1)/TA),q>=eA.length)if(Y){for(;eA.length<=q;eA.push(0));z=H=0,F=1,N%=TA,W=N-TA+1}else break A;else{for(z=R=eA[q],F=1;R>=10;R/=10,F++);N%=TA,W=N-TA+F,H=W<0?0:_0(z/pA[F-W-1]%10)}if(Y=Y||T<0||eA[q+1]!=null||(W<0?z:z%pA[F-W-1]),Y=x<4?(H||Y)&&(x==0||x==(_.s<0?3:2)):H>5||H==5&&(x==4||Y||x==6&&(N>0?W>0?z/pA[F-W]:0:eA[q-1])%10&1||x==(_.s<0?8:7)),T<1||!eA[0])return eA.length=0,Y?(T-=_.e+1,eA[0]=pA[(TA-T%TA)%TA],_.e=-T||0):eA[0]=_.e=0,_;if(N==0?(eA.length=q,R=1,q--):(eA.length=q+1,R=pA[TA-N],eA[q]=W>0?_0(z/pA[F-W]%pA[W])*R:0),Y)for(;;)if(q==0){for(N=1,W=eA[0];W>=10;W/=10,N++);for(W=eA[0]+=R,R=1;W>=10;W/=10,R++);N!=R&&(_.e++,eA[0]==L0&&(eA[0]=1));break}else{if(eA[q]+=R,eA[q]!=L0)break;eA[q--]=0,R=1}for(N=eA.length;eA[--N]===0;eA.pop());}_.e>Q?_.c=_.e=null:_.e<S&&(_.c=[_.e=0])}return _}function XA(_){var T,x=_.e;return x===null?_.toString():(T=M0(_.c),T=x<=D||x>=C?ut(T,x):Y0(T,x,"0"),_.s<0?"-"+T:T)}return g.absoluteValue=g.abs=function(){var _=new J(this);return _.s<0&&(_.s=1),_},g.comparedTo=function(_,T){return ne(this,new J(_,T))},g.decimalPlaces=g.dp=function(_,T){var x,Y,F,N=this;if(_!=null)return A0(_,0,i0),T==null?T=E:A0(T,0,8),OA(new J(N),_+N.e+1,T);if(!(x=N.c))return null;if(Y=((F=x.length-1)-D0(this.e/TA))*TA,F=x[F])for(;F%10==0;F/=10,Y--);return Y<0&&(Y=0),Y},g.dividedBy=g.div=function(_,T){return o(this,new J(_,T),m,E)},g.dividedToIntegerBy=g.idiv=function(_,T){return o(this,new J(_,T),0,1)},g.exponentiatedBy=g.pow=function(_,T){var x,Y,F,N,W,R,z,q,H,eA=this;if(_=new J(_),_.c&&!_.isInteger())throw Error(m0+"Exponent not an integer: "+XA(_));if(T!=null&&(T=new J(T)),R=_.e>14,!eA.c||!eA.c[0]||eA.c[0]==1&&!eA.e&&eA.c.length==1||!_.c||!_.c[0])return H=new J(Math.pow(+XA(eA),R?_.s*(2-ft(_)):+XA(_))),T?H.mod(T):H;if(z=_.s<0,T){if(T.c?!T.c[0]:!T.s)return new J(NaN);Y=!z&&eA.isInteger()&&T.isInteger(),Y&&(eA=eA.mod(T))}else{if(_.e>9&&(eA.e>0||eA.e<-1||(eA.e==0?eA.c[0]>1||R&&eA.c[1]>=24e7:eA.c[0]<8e13||R&&eA.c[0]<=9999975e7)))return N=eA.s<0&&ft(_)?-0:0,eA.e>-1&&(N=1/N),new J(z?1/N:N);tA&&(N=zt(tA/TA+2))}for(R?(x=new J(.5),z&&(_.s=1),q=ft(_)):(F=Math.abs(+XA(_)),q=F%2),H=new J(v);;){if(q){if(H=H.times(eA),!H.c)break;N?H.c.length>N&&(H.c.length=N):Y&&(H=H.mod(T))}if(F){if(F=_0(F/2),F===0)break;q=F%2}else if(_=_.times(x),OA(_,_.e+1,1),_.e>14)q=ft(_);else{if(F=+XA(_),F===0)break;q=F%2}eA=eA.times(eA),N?eA.c&&eA.c.length>N&&(eA.c.length=N):Y&&(eA=eA.mod(T))}return Y?H:(z&&(H=v.div(H)),T?H.mod(T):N?OA(H,tA,E,W):H)},g.integerValue=function(_){var T=new J(this);return _==null?_=E:A0(_,0,8),OA(T,T.e+1,_)},g.isEqualTo=g.eq=function(_,T){return ne(this,new J(_,T))===0},g.isFinite=function(){return!!this.c},g.isGreaterThan=g.gt=function(_,T){return ne(this,new J(_,T))>0},g.isGreaterThanOrEqualTo=g.gte=function(_,T){return(T=ne(this,new J(_,T)))===1||T===0},g.isInteger=function(){return!!this.c&&D0(this.e/TA)>this.c.length-2},g.isLessThan=g.lt=function(_,T){return ne(this,new J(_,T))<0},g.isLessThanOrEqualTo=g.lte=function(_,T){return(T=ne(this,new J(_,T)))===-1||T===0},g.isNaN=function(){return!this.s},g.isNegative=function(){return this.s<0},g.isPositive=function(){return this.s>0},g.isZero=function(){return!!this.c&&this.c[0]==0},g.minus=function(_,T){var x,Y,F,N,W=this,R=W.s;if(_=new J(_,T),T=_.s,!R||!T)return new J(NaN);if(R!=T)return _.s=-T,W.plus(_);var z=W.e/TA,q=_.e/TA,H=W.c,eA=_.c;if(!z||!q){if(!H||!eA)return H?(_.s=-T,_):new J(eA?W:NaN);if(!H[0]||!eA[0])return eA[0]?(_.s=-T,_):new J(H[0]?W:E==3?-0:0)}if(z=D0(z),q=D0(q),H=H.slice(),R=z-q){for((N=R<0)?(R=-R,F=H):(q=z,F=eA),F.reverse(),T=R;T--;F.push(0));F.reverse()}else for(Y=(N=(R=H.length)<(T=eA.length))?R:T,R=T=0;T<Y;T++)if(H[T]!=eA[T]){N=H[T]<eA[T];break}if(N&&(F=H,H=eA,eA=F,_.s=-_.s),T=(Y=eA.length)-(x=H.length),T>0)for(;T--;H[x++]=0);for(T=L0-1;Y>R;){if(H[--Y]<eA[Y]){for(x=Y;x&&!H[--x];H[x]=T);--H[x],H[Y]+=L0}H[Y]-=eA[Y]}for(;H[0]==0;H.splice(0,1),--q);return H[0]?YA(_,H,q):(_.s=E==3?-1:1,_.c=[_.e=0],_)},g.modulo=g.mod=function(_,T){var x,Y,F=this;return _=new J(_,T),!F.c||!_.s||_.c&&!_.c[0]?new J(NaN):!_.c||F.c&&!F.c[0]?new J(F):(K==9?(Y=_.s,_.s=1,x=o(F,_,0,3),_.s=Y,x.s*=Y):x=o(F,_,0,K),_=F.minus(x.times(_)),!_.c[0]&&K==1&&(_.s=F.s),_)},g.multipliedBy=g.times=function(_,T){var x,Y,F,N,W,R,z,q,H,eA,pA,EA,RA,KA,e0,GA=this,VA=GA.c,n0=(_=new J(_,T)).c;if(!VA||!n0||!VA[0]||!n0[0])return!GA.s||!_.s||VA&&!VA[0]&&!n0||n0&&!n0[0]&&!VA?_.c=_.e=_.s=null:(_.s*=GA.s,!VA||!n0?_.c=_.e=null:(_.c=[0],_.e=0)),_;for(Y=D0(GA.e/TA)+D0(_.e/TA),_.s*=GA.s,z=VA.length,eA=n0.length,z<eA&&(RA=VA,VA=n0,n0=RA,F=z,z=eA,eA=F),F=z+eA,RA=[];F--;RA.push(0));for(KA=L0,e0=W0,F=eA;--F>=0;){for(x=0,pA=n0[F]%e0,EA=n0[F]/e0|0,W=z,N=F+W;N>F;)q=VA[--W]%e0,H=VA[W]/e0|0,R=EA*q+H*pA,q=pA*q+R%e0*e0+RA[N]+x,x=(q/KA|0)+(R/e0|0)+EA*H,RA[N--]=q%KA;RA[N]=x}return x?++Y:RA.splice(0,1),YA(_,RA,Y)},g.negated=function(){var _=new J(this);return _.s=-_.s||null,_},g.plus=function(_,T){var x,Y=this,F=Y.s;if(_=new J(_,T),T=_.s,!F||!T)return new J(NaN);if(F!=T)return _.s=-T,Y.minus(_);var N=Y.e/TA,W=_.e/TA,R=Y.c,z=_.c;if(!N||!W){if(!R||!z)return new J(F/0);if(!R[0]||!z[0])return z[0]?_:new J(R[0]?Y:F*0)}if(N=D0(N),W=D0(W),R=R.slice(),F=N-W){for(F>0?(W=N,x=z):(F=-F,x=R),x.reverse();F--;x.push(0));x.reverse()}for(F=R.length,T=z.length,F-T<0&&(x=z,z=R,R=x,T=F),F=0;T;)F=(R[--T]=R[T]+z[T]+F)/L0|0,R[T]=L0===R[T]?0:R[T]%L0;return F&&(R=[F].concat(R),++W),YA(_,R,W)},g.precision=g.sd=function(_,T){var x,Y,F,N=this;if(_!=null&&_!==!!_)return A0(_,1,i0),T==null?T=E:A0(T,0,8),OA(new J(N),_,T);if(!(x=N.c))return null;if(F=x.length-1,Y=F*TA+1,F=x[F]){for(;F%10==0;F/=10,Y--);for(F=x[0];F>=10;F/=10,Y++);}return _&&N.e+1>Y&&(Y=N.e+1),Y},g.shiftedBy=function(_){return A0(_,-Yt,Yt),this.times("1e"+_)},g.squareRoot=g.sqrt=function(){var _,T,x,Y,F,N=this,W=N.c,R=N.s,z=N.e,q=m+4,H=new J("0.5");if(R!==1||!W||!W[0])return new J(!R||R<0&&(!W||W[0])?NaN:W?N:1/0);if(R=Math.sqrt(+XA(N)),R==0||R==1/0?(T=M0(W),(T.length+z)%2==0&&(T+="0"),R=Math.sqrt(+T),z=D0((z+1)/2)-(z<0||z%2),R==1/0?T="5e"+z:(T=R.toExponential(),T=T.slice(0,T.indexOf("e")+1)+z),x=new J(T)):x=new J(R+""),x.c[0]){for(z=x.e,R=z+q,R<3&&(R=0);;)if(F=x,x=H.times(F.plus(o(N,F,q,1))),M0(F.c).slice(0,R)===(T=M0(x.c)).slice(0,R))if(x.e<z&&--R,T=T.slice(R-3,R+1),T=="9999"||!Y&&T=="4999"){if(!Y&&(OA(F,F.e+m+2,0),F.times(F).eq(N))){x=F;break}q+=4,R+=4,Y=1}else{(!+T||!+T.slice(1)&&T.charAt(0)=="5")&&(OA(x,x.e+m+2,1),_=!x.times(x).eq(N));break}}return OA(x,x.e+m+1,E,_)},g.toExponential=function(_,T){return _!=null&&(A0(_,0,i0),_++),FA(this,_,T,1)},g.toFixed=function(_,T){return _!=null&&(A0(_,0,i0),_=_+this.e+1),FA(this,_,T)},g.toFormat=function(_,T,x){var Y,F=this;if(x==null)_!=null&&T&&typeof T=="object"?(x=T,T=null):_&&typeof _=="object"?(x=_,_=T=null):x=oA;else if(typeof x!="object")throw Error(m0+"Argument not an object: "+x);if(Y=F.toFixed(_,T),F.c){var N,W=Y.split("."),R=+x.groupSize,z=+x.secondaryGroupSize,q=x.groupSeparator||"",H=W[0],eA=W[1],pA=F.s<0,EA=pA?H.slice(1):H,RA=EA.length;if(z&&(N=R,R=z,z=N,RA-=N),R>0&&RA>0){for(N=RA%R||R,H=EA.substr(0,N);N<RA;N+=R)H+=q+EA.substr(N,R);z>0&&(H+=q+EA.slice(N)),pA&&(H="-"+H)}Y=eA?H+(x.decimalSeparator||"")+((z=+x.fractionGroupSize)?eA.replace(new RegExp("\\d{"+z+"}\\B","g"),"$&"+(x.fractionGroupSeparator||"")):eA):H}return(x.prefix||"")+Y+(x.suffix||"")},g.toFraction=function(_){var T,x,Y,F,N,W,R,z,q,H,eA,pA,EA=this,RA=EA.c;if(_!=null&&(R=new J(_),!R.isInteger()&&(R.c||R.s!==1)||R.lt(v)))throw Error(m0+"Argument "+(R.isInteger()?"out of range: ":"not an integer: ")+XA(R));if(!RA)return new J(EA);for(T=new J(v),q=x=new J(v),Y=z=new J(v),pA=M0(RA),N=T.e=pA.length-EA.e-1,T.c[0]=Vt[(W=N%TA)<0?TA+W:W],_=!_||R.comparedTo(T)>0?N>0?T:q:R,W=Q,Q=1/0,R=new J(pA),z.c[0]=0;H=o(R,T,0,1),F=x.plus(H.times(Y)),F.comparedTo(_)!=1;)x=Y,Y=F,q=z.plus(H.times(F=q)),z=F,T=R.minus(H.times(F=T)),R=F;return F=o(_.minus(x),Y,0,1),z=z.plus(F.times(q)),x=x.plus(F.times(Y)),z.s=q.s=EA.s,N=N*2,eA=o(q,Y,N,E).minus(EA).abs().comparedTo(o(z,x,N,E).minus(EA).abs())<1?[q,Y]:[z,x],Q=W,eA},g.toNumber=function(){return+XA(this)},g.toPrecision=function(_,T){return _!=null&&A0(_,1,i0),FA(this,_,T,2)},g.toString=function(_){var T,x=this,Y=x.s,F=x.e;return F===null?Y?(T="Infinity",Y<0&&(T="-"+T)):T="NaN":(_==null?T=F<=D||F>=C?ut(M0(x.c),F):Y0(M0(x.c),F,"0"):_===10&&hA?(x=OA(new J(x),m+F+1,E),T=Y0(M0(x.c),x.e,"0")):(A0(_,2,wA.length,"Base"),T=h(Y0(M0(x.c),F,"0"),10,_,Y,!0)),Y<0&&x.c[0]&&(T="-"+T)),T},g.valueOf=g.toJSON=function(){return XA(this)},g._isBigNumber=!0,g[Symbol.toStringTag]="BigNumber",g[Symbol.for("nodejs.util.inspect.custom")]=g.valueOf,l!=null&&J.set(l),J}function D0(l){var o=l|0;return l>0||l===o?o:o-1}function M0(l){for(var o,h,c=1,g=l.length,v=l[0]+"";c<g;){for(o=l[c++]+"",h=TA-o.length;h--;o="0"+o);v+=o}for(g=v.length;v.charCodeAt(--g)===48;);return v.slice(0,g+1||1)}function ne(l,o){var h,c,g=l.c,v=o.c,m=l.s,E=o.s,D=l.e,C=o.e;if(!m||!E)return null;if(h=g&&!g[0],c=v&&!v[0],h||c)return h?c?0:-E:m;if(m!=E)return m;if(h=m<0,c=D==C,!g||!v)return c?0:!g^h?1:-1;if(!c)return D>C^h?1:-1;for(E=(D=g.length)<(C=v.length)?D:C,m=0;m<E;m++)if(g[m]!=v[m])return g[m]>v[m]^h?1:-1;return D==C?0:D>C^h?1:-1}function A0(l,o,h,c){if(l<o||l>h||l!==_0(l))throw Error(m0+(c||"Argument")+(typeof l=="number"?l<o||l>h?" out of range: ":" not an integer: ":" not a primitive number: ")+String(l))}function ft(l){var o=l.c.length-1;return D0(l.e/TA)==o&&l.c[o]%2!=0}function ut(l,o){return(l.length>1?l.charAt(0)+"."+l.slice(1):l)+(o<0?"e":"e+")+o}function Y0(l,o,h){var c,g;if(o<0){for(g=h+".";++o;g+=h);l=g+l}else if(c=l.length,++o>c){for(g=h,o-=c;--o;g+=h);l+=g}else o<c&&(l=l.slice(0,o)+"."+l.slice(o));return l}var Z2=ji(),F0=Z2,K2=class{constructor(l){aA(this,"key"),aA(this,"left",null),aA(this,"right",null),this.key=l}},Oe=class extends K2{constructor(l){super(l)}},J2=class{constructor(){aA(this,"size",0),aA(this,"modificationCount",0),aA(this,"splayCount",0)}splay(l){const o=this.root;if(o==null)return this.compare(l,l),-1;let h=null,c=null,g=null,v=null,m=o;const E=this.compare;let D;for(;;)if(D=E(m.key,l),D>0){let C=m.left;if(C==null||(D=E(C.key,l),D>0&&(m.left=C.right,C.right=m,m=C,C=m.left,C==null)))break;h==null?c=m:h.left=m,h=m,m=C}else if(D<0){let C=m.right;if(C==null||(D=E(C.key,l),D<0&&(m.right=C.left,C.left=m,m=C,C=m.right,C==null)))break;g==null?v=m:g.right=m,g=m,m=C}else break;return g!=null&&(g.right=m.left,m.left=v),h!=null&&(h.left=m.right,m.right=c),this.root!==m&&(this.root=m,this.splayCount++),D}splayMin(l){let o=l,h=o.left;for(;h!=null;){const c=h;o.left=c.right,c.right=o,o=c,h=o.left}return o}splayMax(l){let o=l,h=o.right;for(;h!=null;){const c=h;o.right=c.left,c.left=o,o=c,h=o.right}return o}_delete(l){if(this.root==null||this.splay(l)!=0)return null;let h=this.root;const c=h,g=h.left;if(this.size--,g==null)this.root=h.right;else{const v=h.right;h=this.splayMax(g),h.right=v,this.root=h}return this.modificationCount++,c}addNewRoot(l,o){this.size++,this.modificationCount++;const h=this.root;if(h==null){this.root=l;return}o<0?(l.left=h,l.right=h.right,h.right=null):(l.right=h,l.left=h.left,h.left=null),this.root=l}_first(){const l=this.root;return l==null?null:(this.root=this.splayMin(l),this.root)}_last(){const l=this.root;return l==null?null:(this.root=this.splayMax(l),this.root)}clear(){this.root=null,this.size=0,this.modificationCount++}has(l){return this.validKey(l)&&this.splay(l)==0}defaultCompare(){return(l,o)=>l<o?-1:l>o?1:0}wrap(){return{getRoot:()=>this.root,setRoot:l=>{this.root=l},getSize:()=>this.size,getModificationCount:()=>this.modificationCount,getSplayCount:()=>this.splayCount,setSplayCount:l=>{this.splayCount=l},splay:l=>this.splay(l),has:l=>this.has(l)}}},qi,Wi,ht=class $e extends J2{constructor(o,h){super(),aA(this,"root",null),aA(this,"compare"),aA(this,"validKey"),aA(this,qi,"[object Set]"),this.compare=o??this.defaultCompare(),this.validKey=h??(c=>c!=null&&c!=null)}delete(o){return this.validKey(o)?this._delete(o)!=null:!1}deleteAll(o){for(const h of o)this.delete(h)}forEach(o){const h=this[Symbol.iterator]();let c;for(;c=h.next(),!c.done;)o(c.value,c.value,this)}add(o){const h=this.splay(o);return h!=0&&this.addNewRoot(new Oe(o),h),this}addAndReturn(o){const h=this.splay(o);return h!=0&&this.addNewRoot(new Oe(o),h),this.root.key}addAll(o){for(const h of o)this.add(h)}isEmpty(){return this.root==null}isNotEmpty(){return this.root!=null}single(){if(this.size==0)throw"Bad state: No element";if(this.size>1)throw"Bad state: Too many element";return this.root.key}first(){if(this.size==0)throw"Bad state: No element";return this._first().key}last(){if(this.size==0)throw"Bad state: No element";return this._last().key}lastBefore(o){if(o==null)throw"Invalid arguments(s)";if(this.root==null)return null;if(this.splay(o)<0)return this.root.key;let c=this.root.left;if(c==null)return null;let g=c.right;for(;g!=null;)c=g,g=c.right;return c.key}firstAfter(o){if(o==null)throw"Invalid arguments(s)";if(this.root==null)return null;if(this.splay(o)>0)return this.root.key;let c=this.root.right;if(c==null)return null;let g=c.left;for(;g!=null;)c=g,g=c.left;return c.key}retainAll(o){const h=new $e(this.compare,this.validKey),c=this.modificationCount;for(const g of o){if(c!=this.modificationCount)throw"Concurrent modification during iteration.";this.validKey(g)&&this.splay(g)==0&&h.add(this.root.key)}h.size!=this.size&&(this.root=h.root,this.size=h.size,this.modificationCount++)}lookup(o){return!this.validKey(o)||this.splay(o)!=0?null:this.root.key}intersection(o){const h=new $e(this.compare,this.validKey);for(const c of this)o.has(c)&&h.add(c);return h}difference(o){const h=new $e(this.compare,this.validKey);for(const c of this)o.has(c)||h.add(c);return h}union(o){const h=this.clone();return h.addAll(o),h}clone(){const o=new $e(this.compare,this.validKey);return o.size=this.size,o.root=this.copyNode(this.root),o}copyNode(o){if(o==null)return null;function h(g,v){let m,E;do{if(m=g.left,E=g.right,m!=null){const D=new Oe(m.key);v.left=D,h(m,D)}if(E!=null){const D=new Oe(E.key);v.right=D,g=E,v=D}}while(E!=null)}const c=new Oe(o.key);return h(o,c),c}toSet(){return this.clone()}entries(){return new $2(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[(Wi=Symbol.iterator,qi=Symbol.toStringTag,Wi)](){return new X2(this.wrap())}},Zi=class{constructor(l){aA(this,"tree"),aA(this,"path",new Array),aA(this,"modificationCount",null),aA(this,"splayCount"),this.tree=l,this.splayCount=l.getSplayCount()}[Symbol.iterator](){return this}next(){return this.moveNext()?{done:!1,value:this.current()}:{done:!0,value:null}}current(){if(!this.path.length)return null;const l=this.path[this.path.length-1];return this.getValue(l)}rebuildPath(l){this.path.splice(0,this.path.length),this.tree.splay(l),this.path.push(this.tree.getRoot()),this.splayCount=this.tree.getSplayCount()}findLeftMostDescendent(l){for(;l!=null;)this.path.push(l),l=l.left}moveNext(){if(this.modificationCount!=this.tree.getModificationCount()){if(this.modificationCount==null){this.modificationCount=this.tree.getModificationCount();let h=this.tree.getRoot();for(;h!=null;)this.path.push(h),h=h.left;return this.path.length>0}throw"Concurrent modification during iteration."}if(!this.path.length)return!1;this.splayCount!=this.tree.getSplayCount()&&this.rebuildPath(this.path[this.path.length-1].key);let l=this.path[this.path.length-1],o=l.right;if(o!=null){for(;o!=null;)this.path.push(o),o=o.left;return!0}for(this.path.pop();this.path.length&&this.path[this.path.length-1].right===l;)l=this.path.pop();return this.path.length>0}},X2=class extends Zi{getValue(l){return l.key}},$2=class extends Zi{getValue(l){return[l.key,l.key]}},Ki=l=>()=>l,Ht=l=>{const o=l?(h,c)=>c.minus(h).abs().isLessThanOrEqualTo(l):Ki(!1);return(h,c)=>o(h,c)?0:h.comparedTo(c)};function Al(l){const o=l?(h,c,g,v,m)=>h.exponentiatedBy(2).isLessThanOrEqualTo(v.minus(c).exponentiatedBy(2).plus(m.minus(g).exponentiatedBy(2)).times(l)):Ki(!1);return(h,c,g)=>{const v=h.x,m=h.y,E=g.x,D=g.y,C=m.minus(D).times(c.x.minus(E)).minus(v.minus(E).times(c.y.minus(D)));return o(C,v,m,E,D)?0:C.comparedTo(0)}}var el=l=>l,tl=l=>{if(l){const o=new ht(Ht(l)),h=new ht(Ht(l)),c=(v,m)=>m.addAndReturn(v),g=v=>({x:c(v.x,o),y:c(v.y,h)});return g({x:new F0(0),y:new F0(0)}),g}return el},jt=l=>({set:o=>{V0=jt(o)},reset:()=>jt(l),compare:Ht(l),snap:tl(l),orient:Al(l)}),V0=jt(),Ge=(l,o)=>l.ll.x.isLessThanOrEqualTo(o.x)&&o.x.isLessThanOrEqualTo(l.ur.x)&&l.ll.y.isLessThanOrEqualTo(o.y)&&o.y.isLessThanOrEqualTo(l.ur.y),qt=(l,o)=>{if(o.ur.x.isLessThan(l.ll.x)||l.ur.x.isLessThan(o.ll.x)||o.ur.y.isLessThan(l.ll.y)||l.ur.y.isLessThan(o.ll.y))return null;const h=l.ll.x.isLessThan(o.ll.x)?o.ll.x:l.ll.x,c=l.ur.x.isLessThan(o.ur.x)?l.ur.x:o.ur.x,g=l.ll.y.isLessThan(o.ll.y)?o.ll.y:l.ll.y,v=l.ur.y.isLessThan(o.ur.y)?l.ur.y:o.ur.y;return{ll:{x:h,y:g},ur:{x:c,y:v}}},at=(l,o)=>l.x.times(o.y).minus(l.y.times(o.x)),Ji=(l,o)=>l.x.times(o.x).plus(l.y.times(o.y)),ct=l=>Ji(l,l).sqrt(),rl=(l,o,h)=>{const c={x:o.x.minus(l.x),y:o.y.minus(l.y)},g={x:h.x.minus(l.x),y:h.y.minus(l.y)};return at(g,c).div(ct(g)).div(ct(c))},il=(l,o,h)=>{const c={x:o.x.minus(l.x),y:o.y.minus(l.y)},g={x:h.x.minus(l.x),y:h.y.minus(l.y)};return Ji(g,c).div(ct(g)).div(ct(c))},Xi=(l,o,h)=>o.y.isZero()?null:{x:l.x.plus(o.x.div(o.y).times(h.minus(l.y))),y:h},$i=(l,o,h)=>o.x.isZero()?null:{x:h,y:l.y.plus(o.y.div(o.x).times(h.minus(l.x)))},nl=(l,o,h,c)=>{if(o.x.isZero())return $i(h,c,l.x);if(c.x.isZero())return $i(l,o,h.x);if(o.y.isZero())return Xi(h,c,l.y);if(c.y.isZero())return Xi(l,o,h.y);const g=at(o,c);if(g.isZero())return null;const v={x:h.x.minus(l.x),y:h.y.minus(l.y)},m=at(v,o).div(g),E=at(v,c).div(g),D=l.x.plus(E.times(o.x)),C=h.x.plus(m.times(c.x)),S=l.y.plus(E.times(o.y)),Q=h.y.plus(m.times(c.y)),V=D.plus(C).div(2),K=S.plus(Q).div(2);return{x:V,y:K}},R0=class bs{constructor(o,h){aA(this,"point"),aA(this,"isLeft"),aA(this,"segment"),aA(this,"otherSE"),aA(this,"consumedBy"),o.events===void 0?o.events=[this]:o.events.push(this),this.point=o,this.isLeft=h}static compare(o,h){const c=bs.comparePoints(o.point,h.point);return c!==0?c:(o.point!==h.point&&o.link(h),o.isLeft!==h.isLeft?o.isLeft?1:-1:gt.compare(o.segment,h.segment))}static comparePoints(o,h){return o.x.isLessThan(h.x)?-1:o.x.isGreaterThan(h.x)?1:o.y.isLessThan(h.y)?-1:o.y.isGreaterThan(h.y)?1:0}link(o){if(o.point===this.point)throw new Error("Tried to link already linked events");const h=o.point.events;for(let c=0,g=h.length;c<g;c++){const v=h[c];this.point.events.push(v),v.point=this.point}this.checkForConsuming()}checkForConsuming(){const o=this.point.events.length;for(let h=0;h<o;h++){const c=this.point.events[h];if(c.segment.consumedBy===void 0)for(let g=h+1;g<o;g++){const v=this.point.events[g];v.consumedBy===void 0&&c.otherSE.point.events===v.otherSE.point.events&&c.segment.consume(v.segment)}}}getAvailableLinkedEvents(){const o=[];for(let h=0,c=this.point.events.length;h<c;h++){const g=this.point.events[h];g!==this&&!g.segment.ringOut&&g.segment.isInResult()&&o.push(g)}return o}getLeftmostComparator(o){const h=new Map,c=g=>{const v=g.otherSE;h.set(g,{sine:rl(this.point,o.point,v.point),cosine:il(this.point,o.point,v.point)})};return(g,v)=>{h.has(g)||c(g),h.has(v)||c(v);const{sine:m,cosine:E}=h.get(g),{sine:D,cosine:C}=h.get(v);return m.isGreaterThanOrEqualTo(0)&&D.isGreaterThanOrEqualTo(0)?E.isLessThan(C)?1:E.isGreaterThan(C)?-1:0:m.isLessThan(0)&&D.isLessThan(0)?E.isLessThan(C)?-1:E.isGreaterThan(C)?1:0:D.isLessThan(m)?-1:D.isGreaterThan(m)?1:0}}},sl=class Fr{constructor(o){aA(this,"events"),aA(this,"poly"),aA(this,"_isExteriorRing"),aA(this,"_enclosingRing"),this.events=o;for(let h=0,c=o.length;h<c;h++)o[h].segment.ringOut=this;this.poly=null}static factory(o){const h=[];for(let c=0,g=o.length;c<g;c++){const v=o[c];if(!v.isInResult()||v.ringOut)continue;let m=null,E=v.leftSE,D=v.rightSE;const C=[E],S=E.point,Q=[];for(;m=E,E=D,C.push(E),E.point!==S;)for(;;){const V=E.getAvailableLinkedEvents();if(V.length===0){const oA=C[0].point,wA=C[C.length-1].point;throw new Error(`Unable to complete output ring starting at [${oA.x}, ${oA.y}]. Last matching segment found ends at [${wA.x}, ${wA.y}].`)}if(V.length===1){D=V[0].otherSE;break}let K=null;for(let oA=0,wA=Q.length;oA<wA;oA++)if(Q[oA].point===E.point){K=oA;break}if(K!==null){const oA=Q.splice(K)[0],wA=C.splice(oA.index);wA.unshift(wA[0].otherSE),h.push(new Fr(wA.reverse()));continue}Q.push({index:C.length,point:E.point});const tA=E.getLeftmostComparator(m);D=V.sort(tA)[0].otherSE;break}h.push(new Fr(C))}return h}getGeom(){let o=this.events[0].point;const h=[o];for(let C=1,S=this.events.length-1;C<S;C++){const Q=this.events[C].point,V=this.events[C+1].point;V0.orient(Q,o,V)!==0&&(h.push(Q),o=Q)}if(h.length===1)return null;const c=h[0],g=h[1];V0.orient(c,o,g)===0&&h.shift(),h.push(h[0]);const v=this.isExteriorRing()?1:-1,m=this.isExteriorRing()?0:h.length-1,E=this.isExteriorRing()?h.length:-1,D=[];for(let C=m;C!=E;C+=v)D.push([h[C].x.toNumber(),h[C].y.toNumber()]);return D}isExteriorRing(){if(this._isExteriorRing===void 0){const o=this.enclosingRing();this._isExteriorRing=o?!o.isExteriorRing():!0}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let o=this.events[0];for(let g=1,v=this.events.length;g<v;g++){const m=this.events[g];R0.compare(o,m)>0&&(o=m)}let h=o.segment.prevInResult(),c=h?h.prevInResult():null;for(;;){if(!h)return null;if(!c)return h.ringOut;if(c.ringOut!==h.ringOut)return c.ringOut?.enclosingRing()!==h.ringOut?h.ringOut:h.ringOut?.enclosingRing();h=c.prevInResult(),c=h?h.prevInResult():null}}},An=class{constructor(l){aA(this,"exteriorRing"),aA(this,"interiorRings"),this.exteriorRing=l,l.poly=this,this.interiorRings=[]}addInterior(l){this.interiorRings.push(l),l.poly=this}getGeom(){const l=this.exteriorRing.getGeom();if(l===null)return null;const o=[l];for(let h=0,c=this.interiorRings.length;h<c;h++){const g=this.interiorRings[h].getGeom();g!==null&&o.push(g)}return o}},ol=class{constructor(l){aA(this,"rings"),aA(this,"polys"),this.rings=l,this.polys=this._composePolys(l)}getGeom(){const l=[];for(let o=0,h=this.polys.length;o<h;o++){const c=this.polys[o].getGeom();c!==null&&l.push(c)}return l}_composePolys(l){const o=[];for(let h=0,c=l.length;h<c;h++){const g=l[h];if(!g.poly)if(g.isExteriorRing())o.push(new An(g));else{const v=g.enclosingRing();v?.poly||o.push(new An(v)),v?.poly?.addInterior(g)}}return o}},ll=class{constructor(l,o=gt.compare){aA(this,"queue"),aA(this,"tree"),aA(this,"segments"),this.queue=l,this.tree=new ht(o),this.segments=[]}process(l){const o=l.segment,h=[];if(l.consumedBy)return l.isLeft?this.queue.delete(l.otherSE):this.tree.delete(o),h;l.isLeft&&this.tree.add(o);let c=o,g=o;do c=this.tree.lastBefore(c);while(c!=null&&c.consumedBy!=null);do g=this.tree.firstAfter(g);while(g!=null&&g.consumedBy!=null);if(l.isLeft){let v=null;if(c){const E=c.getIntersection(o);if(E!==null&&(o.isAnEndpoint(E)||(v=E),!c.isAnEndpoint(E))){const D=this._splitSafely(c,E);for(let C=0,S=D.length;C<S;C++)h.push(D[C])}}let m=null;if(g){const E=g.getIntersection(o);if(E!==null&&(o.isAnEndpoint(E)||(m=E),!g.isAnEndpoint(E))){const D=this._splitSafely(g,E);for(let C=0,S=D.length;C<S;C++)h.push(D[C])}}if(v!==null||m!==null){let E=null;v===null?E=m:m===null?E=v:E=R0.comparePoints(v,m)<=0?v:m,this.queue.delete(o.rightSE),h.push(o.rightSE);const D=o.split(E);for(let C=0,S=D.length;C<S;C++)h.push(D[C])}h.length>0?(this.tree.delete(o),h.push(l)):(this.segments.push(o),o.prev=c)}else{if(c&&g){const v=c.getIntersection(g);if(v!==null){if(!c.isAnEndpoint(v)){const m=this._splitSafely(c,v);for(let E=0,D=m.length;E<D;E++)h.push(m[E])}if(!g.isAnEndpoint(v)){const m=this._splitSafely(g,v);for(let E=0,D=m.length;E<D;E++)h.push(m[E])}}}this.tree.delete(o)}return h}_splitSafely(l,o){this.tree.delete(l);const h=l.rightSE;this.queue.delete(h);const c=l.split(o);return c.push(h),l.consumedBy===void 0&&this.tree.add(l),c}},fl=class{constructor(){aA(this,"type"),aA(this,"numMultiPolys")}run(l,o,h){Ne.type=l;const c=[new tn(o,!0)];for(let C=0,S=h.length;C<S;C++)c.push(new tn(h[C],!1));if(Ne.numMultiPolys=c.length,Ne.type==="difference"){const C=c[0];let S=1;for(;S<c.length;)qt(c[S].bbox,C.bbox)!==null?S++:c.splice(S,1)}if(Ne.type==="intersection")for(let C=0,S=c.length;C<S;C++){const Q=c[C];for(let V=C+1,K=c.length;V<K;V++)if(qt(Q.bbox,c[V].bbox)===null)return[]}const g=new ht(R0.compare);for(let C=0,S=c.length;C<S;C++){const Q=c[C].getSweepEvents();for(let V=0,K=Q.length;V<K;V++)g.add(Q[V])}const v=new ll(g);let m=null;for(g.size!=0&&(m=g.first(),g.delete(m));m;){const C=v.process(m);for(let S=0,Q=C.length;S<Q;S++){const V=C[S];V.consumedBy===void 0&&g.add(V)}g.size!=0?(m=g.first(),g.delete(m)):m=null}V0.reset();const E=sl.factory(v.segments);return new ol(E).getGeom()}},Ne=new fl,Wt=Ne,ul=0,gt=class dt{constructor(o,h,c,g){aA(this,"id"),aA(this,"leftSE"),aA(this,"rightSE"),aA(this,"rings"),aA(this,"windings"),aA(this,"ringOut"),aA(this,"consumedBy"),aA(this,"prev"),aA(this,"_prevInResult"),aA(this,"_beforeState"),aA(this,"_afterState"),aA(this,"_isInResult"),this.id=++ul,this.leftSE=o,o.segment=this,o.otherSE=h,this.rightSE=h,h.segment=this,h.otherSE=o,this.rings=c,this.windings=g}static compare(o,h){const c=o.leftSE.point.x,g=h.leftSE.point.x,v=o.rightSE.point.x,m=h.rightSE.point.x;if(m.isLessThan(c))return 1;if(v.isLessThan(g))return-1;const E=o.leftSE.point.y,D=h.leftSE.point.y,C=o.rightSE.point.y,S=h.rightSE.point.y;if(c.isLessThan(g)){if(D.isLessThan(E)&&D.isLessThan(C))return 1;if(D.isGreaterThan(E)&&D.isGreaterThan(C))return-1;const Q=o.comparePoint(h.leftSE.point);if(Q<0)return 1;if(Q>0)return-1;const V=h.comparePoint(o.rightSE.point);return V!==0?V:-1}if(c.isGreaterThan(g)){if(E.isLessThan(D)&&E.isLessThan(S))return-1;if(E.isGreaterThan(D)&&E.isGreaterThan(S))return 1;const Q=h.comparePoint(o.leftSE.point);if(Q!==0)return Q;const V=o.comparePoint(h.rightSE.point);return V<0?1:V>0?-1:1}if(E.isLessThan(D))return-1;if(E.isGreaterThan(D))return 1;if(v.isLessThan(m)){const Q=h.comparePoint(o.rightSE.point);if(Q!==0)return Q}if(v.isGreaterThan(m)){const Q=o.comparePoint(h.rightSE.point);if(Q<0)return 1;if(Q>0)return-1}if(!v.eq(m)){const Q=C.minus(E),V=v.minus(c),K=S.minus(D),tA=m.minus(g);if(Q.isGreaterThan(V)&&K.isLessThan(tA))return 1;if(Q.isLessThan(V)&&K.isGreaterThan(tA))return-1}return v.isGreaterThan(m)?1:v.isLessThan(m)||C.isLessThan(S)?-1:C.isGreaterThan(S)?1:o.id<h.id?-1:o.id>h.id?1:0}static fromRing(o,h,c){let g,v,m;const E=R0.comparePoints(o,h);if(E<0)g=o,v=h,m=1;else if(E>0)g=h,v=o,m=-1;else throw new Error(`Tried to create degenerate segment at [${o.x}, ${o.y}]`);const D=new R0(g,!0),C=new R0(v,!1);return new dt(D,C,[c],[m])}replaceRightSE(o){this.rightSE=o,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const o=this.leftSE.point.y,h=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:o.isLessThan(h)?o:h},ur:{x:this.rightSE.point.x,y:o.isGreaterThan(h)?o:h}}}vector(){return{x:this.rightSE.point.x.minus(this.leftSE.point.x),y:this.rightSE.point.y.minus(this.leftSE.point.y)}}isAnEndpoint(o){return o.x.eq(this.leftSE.point.x)&&o.y.eq(this.leftSE.point.y)||o.x.eq(this.rightSE.point.x)&&o.y.eq(this.rightSE.point.y)}comparePoint(o){return V0.orient(this.leftSE.point,o,this.rightSE.point)}getIntersection(o){const h=this.bbox(),c=o.bbox(),g=qt(h,c);if(g===null)return null;const v=this.leftSE.point,m=this.rightSE.point,E=o.leftSE.point,D=o.rightSE.point,C=Ge(h,E)&&this.comparePoint(E)===0,S=Ge(c,v)&&o.comparePoint(v)===0,Q=Ge(h,D)&&this.comparePoint(D)===0,V=Ge(c,m)&&o.comparePoint(m)===0;if(S&&C)return V&&!Q?m:!V&&Q?D:null;if(S)return Q&&v.x.eq(D.x)&&v.y.eq(D.y)?null:v;if(C)return V&&m.x.eq(E.x)&&m.y.eq(E.y)?null:E;if(V&&Q)return null;if(V)return m;if(Q)return D;const K=nl(v,this.vector(),E,o.vector());return K===null||!Ge(g,K)?null:V0.snap(K)}split(o){const h=[],c=o.events!==void 0,g=new R0(o,!0),v=new R0(o,!1),m=this.rightSE;this.replaceRightSE(v),h.push(v),h.push(g);const E=new dt(g,m,this.rings.slice(),this.windings.slice());return R0.comparePoints(E.leftSE.point,E.rightSE.point)>0&&E.swapEvents(),R0.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),c&&(g.checkForConsuming(),v.checkForConsuming()),h}swapEvents(){const o=this.rightSE;this.rightSE=this.leftSE,this.leftSE=o,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let h=0,c=this.windings.length;h<c;h++)this.windings[h]*=-1}consume(o){let h=this,c=o;for(;h.consumedBy;)h=h.consumedBy;for(;c.consumedBy;)c=c.consumedBy;const g=dt.compare(h,c);if(g!==0){if(g>0){const v=h;h=c,c=v}if(h.prev===c){const v=h;h=c,c=v}for(let v=0,m=c.rings.length;v<m;v++){const E=c.rings[v],D=c.windings[v],C=h.rings.indexOf(E);C===-1?(h.rings.push(E),h.windings.push(D)):h.windings[C]+=D}c.rings=null,c.windings=null,c.consumedBy=h,c.leftSE.consumedBy=h.leftSE,c.rightSE.consumedBy=h.rightSE}}prevInResult(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{const o=this.prev.consumedBy||this.prev;this._beforeState=o.afterState()}return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const o=this.beforeState();this._afterState={rings:o.rings.slice(0),windings:o.windings.slice(0),multiPolys:[]};const h=this._afterState.rings,c=this._afterState.windings,g=this._afterState.multiPolys;for(let E=0,D=this.rings.length;E<D;E++){const C=this.rings[E],S=this.windings[E],Q=h.indexOf(C);Q===-1?(h.push(C),c.push(S)):c[Q]+=S}const v=[],m=[];for(let E=0,D=h.length;E<D;E++){if(c[E]===0)continue;const C=h[E],S=C.poly;if(m.indexOf(S)===-1)if(C.isExterior)v.push(S);else{m.indexOf(S)===-1&&m.push(S);const Q=v.indexOf(C.poly);Q!==-1&&v.splice(Q,1)}}for(let E=0,D=v.length;E<D;E++){const C=v[E].multiPoly;g.indexOf(C)===-1&&g.push(C)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const o=this.beforeState().multiPolys,h=this.afterState().multiPolys;switch(Wt.type){case"union":{const c=o.length===0,g=h.length===0;this._isInResult=c!==g;break}case"intersection":{let c,g;o.length<h.length?(c=o.length,g=h.length):(c=h.length,g=o.length),this._isInResult=g===Wt.numMultiPolys&&c<g;break}case"xor":{const c=Math.abs(o.length-h.length);this._isInResult=c%2===1;break}case"difference":{const c=g=>g.length===1&&g[0].isSubject;this._isInResult=c(o)!==c(h);break}}return this._isInResult}},en=class{constructor(l,o,h){if(aA(this,"poly"),aA(this,"isExterior"),aA(this,"segments"),aA(this,"bbox"),!Array.isArray(l)||l.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=o,this.isExterior=h,this.segments=[],typeof l[0][0]!="number"||typeof l[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const c=V0.snap({x:new F0(l[0][0]),y:new F0(l[0][1])});this.bbox={ll:{x:c.x,y:c.y},ur:{x:c.x,y:c.y}};let g=c;for(let v=1,m=l.length;v<m;v++){if(typeof l[v][0]!="number"||typeof l[v][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const E=V0.snap({x:new F0(l[v][0]),y:new F0(l[v][1])});E.x.eq(g.x)&&E.y.eq(g.y)||(this.segments.push(gt.fromRing(g,E,this)),E.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=E.x),E.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=E.y),E.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=E.x),E.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=E.y),g=E)}(!c.x.eq(g.x)||!c.y.eq(g.y))&&this.segments.push(gt.fromRing(g,c,this))}getSweepEvents(){const l=[];for(let o=0,h=this.segments.length;o<h;o++){const c=this.segments[o];l.push(c.leftSE),l.push(c.rightSE)}return l}},hl=class{constructor(l,o){if(aA(this,"multiPoly"),aA(this,"exteriorRing"),aA(this,"interiorRings"),aA(this,"bbox"),!Array.isArray(l))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new en(l[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let h=1,c=l.length;h<c;h++){const g=new en(l[h],this,!1);g.bbox.ll.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=g.bbox.ll.x),g.bbox.ll.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=g.bbox.ll.y),g.bbox.ur.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=g.bbox.ur.x),g.bbox.ur.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=g.bbox.ur.y),this.interiorRings.push(g)}this.multiPoly=o}getSweepEvents(){const l=this.exteriorRing.getSweepEvents();for(let o=0,h=this.interiorRings.length;o<h;o++){const c=this.interiorRings[o].getSweepEvents();for(let g=0,v=c.length;g<v;g++)l.push(c[g])}return l}},tn=class{constructor(l,o){if(aA(this,"isSubject"),aA(this,"polys"),aA(this,"bbox"),!Array.isArray(l))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof l[0][0][0]=="number"&&(l=[l])}catch{}this.polys=[],this.bbox={ll:{x:new F0(Number.POSITIVE_INFINITY),y:new F0(Number.POSITIVE_INFINITY)},ur:{x:new F0(Number.NEGATIVE_INFINITY),y:new F0(Number.NEGATIVE_INFINITY)}};for(let h=0,c=l.length;h<c;h++){const g=new hl(l[h],this);g.bbox.ll.x.isLessThan(this.bbox.ll.x)&&(this.bbox.ll.x=g.bbox.ll.x),g.bbox.ll.y.isLessThan(this.bbox.ll.y)&&(this.bbox.ll.y=g.bbox.ll.y),g.bbox.ur.x.isGreaterThan(this.bbox.ur.x)&&(this.bbox.ur.x=g.bbox.ur.x),g.bbox.ur.y.isGreaterThan(this.bbox.ur.y)&&(this.bbox.ur.y=g.bbox.ur.y),this.polys.push(g)}this.isSubject=o}getSweepEvents(){const l=[];for(let o=0,h=this.polys.length;o<h;o++){const c=this.polys[o].getSweepEvents();for(let g=0,v=c.length;g<v;g++)l.push(c[g])}return l}},al=(l,...o)=>Wt.run("intersection",l,o);V0.set;function cl(l,o={}){const h=[];if(Ti(l,g=>{h.push(g.coordinates)}),h.length<2)throw new Error("Must specify at least 2 geometries");const c=al(h[0],...h.slice(1));return c.length===0?null:c.length===1?Ft(c[0],o.properties):ki(c,o.properties)}var rn=cl,gl={Point:nn,MultiPoint:pl,LineString:sn,MultiLineString:vl,Polygon:on,MultiPolygon:ml};function wl(l,o){const[h,c,g,v]=o,m=Kt([h,v]),E=Kt([g,c]),D=[m,E];if(l.type==="GeometryCollection")throw new Error("Unsupported geometry type GeometryCollection");const C=gl[l.type],S=C(l.coordinates,D);return{...l,coordinates:S}}function nn([l,o],[h,c]){const g=ln(h[0],c[0],l),v=ln(h[1],c[1],o);return[g,v]}function Zt(l,o){return l.map(h=>nn(Kt(h),o))}function pl(l,o){return Zt(l,o)}function sn(l,o){return Zt(l,o)}function vl(l,o){return l.map(h=>sn(h,o))}function on(l,o){return l.map(h=>Zt(h,o))}function ml(l,o){return l.map(h=>on(h,o))}function Kt(l){return Nt(l)}function ln(l,o,h){return(h-l)/(o-l)}function El(l,o,h){var c=l.length,g=me(l[0],o),v=[],m,E,D;let C,S;for(h||(h=[]),m=1;m<c;m++){for(C=l[m-1],S=l[m],E=D=me(S,o);;)if(g|E){if(g&E)break;g?(C=Jt(C,S,g,o),g=me(C,o)):(S=Jt(C,S,E,o),E=me(S,o))}else{v.push(C),E!==D?(v.push(S),m<c-1&&(h.push(v),v=[])):m===c-1&&v.push(S);break}g=D}return v.length&&h.push(v),h}function yl(l,o){var h,c,g,v,m,E,D;for(c=1;c<=8;c*=2){for(h=[],g=l[l.length-1],v=!(me(g,o)&c),m=0;m<l.length;m++)E=l[m],D=!(me(E,o)&c),D!==v&&h.push(Jt(g,E,c,o)),D&&h.push(E),g=E,v=D;if(l=h,!l.length)break}return h}function Jt(l,o,h,c){return h&8?[l[0]+(o[0]-l[0])*(c[3]-l[1])/(o[1]-l[1]),c[3]]:h&4?[l[0]+(o[0]-l[0])*(c[1]-l[1])/(o[1]-l[1]),c[1]]:h&2?[c[2],l[1]+(o[1]-l[1])*(c[2]-l[0])/(o[0]-l[0])]:h&1?[c[0],l[1]+(o[1]-l[1])*(c[0]-l[0])/(o[0]-l[0])]:null}function me(l,o){var h=0;return l[0]<o[0]?h|=1:l[0]>o[2]&&(h|=2),l[1]<o[1]?h|=4:l[1]>o[3]&&(h|=8),h}function Bl(l,o){const h=z0(l),c=h.type,g=l.type==="Feature"?l.properties:{};let v=h.coordinates;switch(c){case"LineString":case"MultiLineString":{const m=[];return c==="LineString"&&(v=[v]),v.forEach(E=>{El(E,o,m)}),m.length===1?yi(m[0],g):Bi(m,g)}case"Polygon":return Ft(fn(v,o),g);case"MultiPolygon":return ki(v.map(m=>fn(m,o)),g);default:throw new Error("geometry "+c+" not supported")}}function fn(l,o){const h=[];for(const c of l){const g=yl(c,o);g.length>0&&((g[0][0]!==g[g.length-1][0]||g[0][1]!==g[g.length-1][1])&&g.push(g[0]),g.length>=4&&h.push(g))}return h}var un=Bl;function kl(l,o,h){const c=R2(l);if(!h||Vi(c,h))return!0;const g=rn(Fe([c,v0(h)]));return g?o==="mvt"?wl(g.geometry,l):g.geometry:!1}function bl(l,o,h){return hn(l,o,h)}function hn(l,o,h){const c=Ys(l);if(!h||Vi(c,h))return!0;const g=rn(Fe([v0(c),v0(h)]));if(!g)return!1;const v=zs(g.geometry,o);return new Set(v)}var Cl=[-180,-90,0,90],_l=[0,-90,180,90];function Dl(l,o){if(!o)return!0;const h=v0(o),c=hi(un(h,Cl).geometry.coordinates,l,!0),g=hi(un(h,_l).geometry.coordinates,l,!0);return new Set(c.concat(g))}var Ml="__geomValue";function Pl({tiles:l,tileFormat:o,spatialFilter:h,uniqueIdProperty:c,options:g}){const v=new Map;for(const m of l){if(m.isVisible===!1||!m.data)continue;const E=[m.bbox.west,m.bbox.south,m.bbox.east,m.bbox.north],D=kl(E,o,h);if(D===!1)continue;const C=D===!0?void 0:D;$t({map:v,spatialFilter:C,data:m.data.points,type:"Point",bbox:E,tileFormat:o,uniqueIdProperty:c,options:g}),$t({map:v,spatialFilter:C,data:m.data.lines,type:"LineString",bbox:E,tileFormat:o,uniqueIdProperty:c,options:g}),$t({map:v,spatialFilter:C,data:m.data.polygons,type:"Polygon",bbox:E,tileFormat:o,uniqueIdProperty:c,options:g})}return Array.from(v.values())}function an({map:l,data:o,startIndex:h,endIndex:c,type:g,bbox:v,tileFormat:m,uniqueIdProperty:E,storeGeometry:D,spatialFilter:C}){const S=xl(o,h),Q=Il(S,E,l);if(!Q||l.has(Q))return;let V=null;if(D||C){const{positions:tA}=o,oA=Ll(h,c,tA);V=Sl(oA,g)}if(V&&C&&!Si(V,C))return;const K=Ql(S);D&&V&&(K[Ml]=m==="mvt"?Q2(V,v):V),l.set(Q,K)}function dl({map:l,data:o,spatialFilter:h,type:c,bbox:g,tileFormat:v,uniqueIdProperty:m,options:E}){const D=cn(o,c),C=E?.storeGeometry||!1;for(let S=0;S<D.length-1;S++){const Q=D[S],V=D[S+1];an({map:l,data:o,startIndex:Q,endIndex:V,type:c,bbox:g,tileFormat:v,uniqueIdProperty:m,storeGeometry:C,spatialFilter:h})}}function cn(l,o){let h;switch(o){case"Polygon":h=l.primitivePolygonIndices;break;case"LineString":h=l.pathIndices;break;case"Point":h=Rl(l);break;default:throw new Error(`Unsupported geometry type: ${o}`)}return h.value}function Tl(l,o){return l.featureIds.value[o]}function xl(l,o){const h=Tl(l,o),{properties:c,numericProps:g,fields:v}=l,m={uniqueId:v?.[h]?.id,properties:c[h],numericProps:{}};for(const E in g)m.numericProps[E]=g[E].value[o];return m}function Ql(l){const{properties:o,numericProps:h}=l;return Object.assign({},o,h)}function Il(l,o,h){if(o)return Xt(l,o);if(l.uniqueId)return l.uniqueId;const c=h.size+1;return Xt(l,"cartodb_id")||Xt(l,"geoid")||c}function Xt(l,o){const{properties:h,numericProps:c}=l;return c[o]||h[o]}function Sl(l,o){switch(o){case"Polygon":return{type:"Polygon",coordinates:[l]};case"LineString":return{type:"LineString",coordinates:l};case"Point":return{type:"Point",coordinates:l[0]};default:throw new Error("Invalid geometry type")}}function Ll(l,o,h){const c=[];for(let g=l;g<o;g++)c.push(Array.from(h.value.subarray(g*h.size,(g+1)*h.size)));return c}function $t({map:l,spatialFilter:o,data:h,type:c,bbox:g,tileFormat:v,uniqueIdProperty:m,options:E}){h?.properties.length&&(o?dl({map:l,data:h,spatialFilter:o,type:c,bbox:g,tileFormat:v,uniqueIdProperty:m,options:E}):Fl({map:l,data:h,type:c,bbox:g,tileFormat:v,uniqueIdProperty:m,options:E}))}function Fl({map:l,data:o,type:h,bbox:c,tileFormat:g,uniqueIdProperty:v,options:m}){const E=cn(o,h),D=m?.storeGeometry||!1;for(let C=0;C<E.length-1;C++){const S=E[C],Q=E[C+1];an({map:l,data:o,startIndex:S,endIndex:Q,type:h,bbox:c,tileFormat:g,uniqueIdProperty:v,storeGeometry:D})}}function Rl(l){const o=l.featureIds.value,h=o[o.length-1],c=o.constructor,g={value:new c(o.length+1),size:1};return g.value.set(o),g.value.set([h+1],o.length),g}function Ol({tiles:l,spatialFilter:o,spatialDataColumn:h,spatialDataType:c}){const g=new Map,v=Ul(c),m=Nl(l,v),E=h||v;if(!m)return[];let D;v==="h3"&&(D=Dl(m,o));for(const C of l)if(!(C.isVisible===!1||!C.data)){if(v==="quadbin"){const S=Gl(C,v);D=hn(S,m,o)}D&&C.data.forEach(S=>{(D===!0||D.has(S.id))&&g.set(S.id,{...S.properties,[E]:S.id})})}return Array.from(g.values())}function Gl(l,o){return o==="quadbin"?l.index.q:l.id}function Nl(l,o){const h=l.find(c=>c.data?.length)?.data;if(h){if(o==="quadbin")return Number(ti(h[0].id));if(o==="h3")return _o(h[0].id)}}function Ul(l){switch(l){case"h3":return"h3";case"quadbin":return"quadbin";default:throw new Error("Unexpected spatial data type")}}var zl="geom";function Yl({tiles:l,...o}){const h={};for(const E of o.rasterMetadata.bands)h[E.name]={...E,nodata:Number(E.nodata)};if(l=l.filter(Hl),l.length===0)return[];const c=ti(l[0].index.q),g=l[0].data.blockSize,v=c+BigInt(Math.log2(g)),m=new Map;for(const E of l){const D=E.index.q,C=bl(D,v,o.spatialFilter);if(C===!1)continue;const S=jl(D,v);for(let Q=0;Q<S.length;Q++){if(C!==!0&&!C.has(S[Q]))continue;const V={};let K=!1;for(const tA in E.data.cells.numericProps){const oA=E.data.cells.numericProps[tA].value[Q],wA=h[tA];ql(oA,wA.nodata)&&(V[tA]=E.data.cells.numericProps[tA].value[Q],K=!0)}K&&m.set(S[Q],V)}}return Array.from(m.values())}function Vl(l){return!!l.data?.cells}function Hl(l){return!!(l.isVisible&&l.data?.cells?.numericProps)}function jl(l,o){const h=ei(l),c=Number(o),g=2**(c-h.z),v=h.x*g,m=h.y*g,E=[];for(let D=0,C=g**2;D<C;D++){const S=v+D%g,Q=m+Math.floor(D/g);E.push(Ai({x:S,y:Q,z:c}))}return E}function ql(l,o){return Number.isNaN(l)?!1:o!==l}function Wl({tiles:l,spatialFilter:o,uniqueIdProperty:h,tileFormat:c,spatialDataColumn:g=zl,spatialDataType:v,rasterMetadata:m,storeGeometry:E=!1}){return v==="geo"?Pl({tiles:l,tileFormat:c,spatialFilter:o,uniqueIdProperty:h,options:{storeGeometry:E}}):l.some(Vl)?(pe(m,"Missing raster metadata"),Yl({tiles:l,spatialFilter:o,spatialDataColumn:g,spatialDataType:v,rasterMetadata:m})):Ol({tiles:l,spatialFilter:o,spatialDataColumn:g,spatialDataType:v})}var Z0={count:l=>l.length,min:(...l)=>wt(Jl,...l),max:(...l)=>wt(Xl,...l),sum:(...l)=>wt(wn,...l),avg:(...l)=>wt(Kl,...l)};function K0(l,o,h){if(o?.length){if(o.length===1){const g=l[o[0]];return gn(g)?Number(g):g}}else throw new Error("Cannot aggregate a feature without having keys");const c=Z0[h];if(!c)throw new Error(`${h} isn't a valid aggregation function`);return c(o.map(g=>{const v=l[g];return gn(v)?Number(v):v}))}function gn(l){return typeof l=="string"&&l.trim().length>0}var wt=(l,o,h,c)=>{const g=pt(h),v=(g?.length||0)<=1?Zl(o,g||[]):o;return l(v,h,c)};function Zl(l,o){const h=c=>c!=null;return o?.length?l.filter(c=>h(c[o[0]])):l.filter(h)}function Kl(l,o,h){return wn(l,o,h)/(l.length||1)}function wn(l,o,h){const c=pt(o);return c?l.reduce((g,v)=>g+K0(v,c,h),0):l.reduce((g,v)=>g+v,0)}function Jl(l,o,h){const c=pt(o);if(c)return l.reduce((v,m)=>Math.min(v,K0(m,c,h)),1/0);let g=Number.POSITIVE_INFINITY;for(const v of l)g=Math.min(g,v);return g}function Xl(l,o,h){const c=pt(o);if(c)return l.reduce((v,m)=>Math.max(v,K0(m,c,h)),-1/0);let g=Number.NEGATIVE_INFINITY;for(const v of l)g=Math.max(g,v);return g}function pt(l){return Array.isArray(l)?l:typeof l=="string"?[l]:void 0}var $l=Lo(Fo());function Af(l,{sortBy:o,sortByDirection:h="asc",sortByColumnType:c="string"}={}){if(o===void 0)return l;if(!(Array.isArray(o)&&o.length||typeof o=="string"))throw new Error("Sorting options are bad formatted");const v=ef({sortBy:o,sortByDirection:h,sortByColumnType:c||"string"});return l.sort(v)}function ef({sortBy:l,sortByDirection:o,sortByColumnType:h}){const[c,...g]=tf({sortBy:l,sortByDirection:o,sortByColumnType:h});let v=(0,$l.firstBy)(...c);for(const m of g)v=v.thenBy(...m);return v}function tf({sortBy:l,sortByDirection:o,sortByColumnType:h}){const c=h==="number"&&{cmp:(g,v)=>g-v};return Array.isArray(l)||(l=[l]),l.map(g=>{if(typeof g=="string")return[g,{direction:o,...c}];if(Array.isArray(g)){if(g[1]===void 0)return[g,{direction:o,...c}];if(typeof g[1]=="object"){const v=c?{...c,...g[1]}:g[1];return[g[0],{direction:o,...v}]}}return g})}function rf({data:l,valuesColumns:o,joinOperation:h,keysColumn:c,operation:g,othersThreshold:v,orderBy:m="frequency_desc"}){if(Array.isArray(l)&&l.length===0)return{rows:null};const E=l.reduce((S,Q)=>{const V=Q[c],K=S.get(V)||[];S.set(V,K);const tA=K0(Q,o,h);return(g==="count"?!0:tA!==null)&&tA!==void 0&&(K.push(tA),S.set(V,K)),S},new Map),D=Z0[g];if(!D)return{rows:[]};const C=Array.from(E).map(([S,Q])=>({name:S,value:D(Q)})).sort(nf(m));if(v&&C.length>v){const S=C.slice(v).flatMap(({name:Q})=>E.get(Q));return{rows:C,metadata:{others:D(S)}}}return{rows:C}}function nf(l){switch(l){case"frequency_asc":return(o,h)=>o.value-h.value||vt(o.name,h.name);case"frequency_desc":return(o,h)=>h.value-o.value||vt(o.name,h.name);case"alphabetical_asc":return(o,h)=>vt(o.name,h.name)||h.value-o.value;case"alphabetical_desc":return(o,h)=>vt(h.name,o.name)||h.value-o.value}}function vt(l,o){return typeof l=="number"&&typeof o=="number"?l-o:String(l??"null").localeCompare(String(o??"null"))}function sf(l){const o=new Date(l),h=o.getUTCDay(),c=o.getUTCDate()-h+(h?1:-6);return o.setUTCDate(c),Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate())}var of={year:l=>Date.UTC(l.getUTCFullYear()),month:l=>Date.UTC(l.getUTCFullYear(),l.getUTCMonth()),week:l=>sf(l),day:l=>Date.UTC(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate()),hour:l=>Date.UTC(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate(),l.getUTCHours()),minute:l=>Date.UTC(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate(),l.getUTCHours(),l.getUTCMinutes()),second:l=>Date.UTC(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate(),l.getUTCHours(),l.getUTCMinutes(),l.getUTCSeconds())};function lf({data:l,valuesColumns:o,joinOperation:h,keysColumn:c,groupType:g,operation:v}){if(Array.isArray(l)&&l.length===0)return null;const m=of[g];if(!m)return null;const E=l.reduce((C,S)=>{const Q=S[c],V=new Date(Q),K=m(V);if(!isNaN(K)){let tA=C.get(K);tA||(tA=[],C.set(K,tA));const oA=K0(S,o,h);oA!=null&&(tA.push(oA),C.set(K,tA))}return C},new Map),D=Z0[v];return[...E.entries()].map(([C,S])=>({name:C,value:D(S)})).sort((C,S)=>C.name-S.name)}function ff({data:l,valuesColumns:o,joinOperation:h,ticks:c,operation:g}){if(Array.isArray(l)&&l.length===0)return[];const v=[Number.MIN_SAFE_INTEGER,...c].map((D,C,S)=>({bin:C,start:D,end:C===S.length-1?Number.MAX_SAFE_INTEGER:S[C+1],values:[]}));l.forEach(D=>{const C=K0(D,o,h);if(!(C!=null))return;const Q=v.find(V=>V.start<=C&&V.end>C);Q&&Q.values.push(C)});const m=Z0[g];return v.map(D=>D.values).map(D=>D.length?m(D):0)}function uf({data:l,xAxisColumns:o,xAxisJoinOperation:h,yAxisColumns:c,yAxisJoinOperation:g}){return l.reduce((v,m)=>{const E=K0(m,o,h),D=E!=null,C=K0(m,c,g),S=C!=null;return D&&S&&v.push([E,C]),v},[])}var hf="deck-gl-carto";function pn(){return hf}var vn=class Cs{constructor(o){aA(this,"props"),this.props={...Cs.defaultProps,clientId:pn(),...o}}destroy(){}};aA(vn,"defaultProps",{apiVersion:"v3",apiBaseUrl:Ro,clientId:pn(),filters:{},filtersLogicalOperator:"and"});var af=vn,cf=Object.defineProperty,Ee=(l,o)=>cf(l,"name",{value:o,configurable:!0}),mn=class{constructor(o){this.direction=!1,this.compareProperties=!0;var h,c,g;this.precision=10**-((h=o?.precision)!=null?h:17),this.direction=(c=o?.direction)!=null?c:!1,this.compareProperties=(g=o?.compareProperties)!=null?g:!0}compare(o,h){if(o.type!==h.type||!Ue(o,h))return!1;switch(o.type){case"Point":return this.compareCoord(o.coordinates,h.coordinates);case"LineString":return this.compareLine(o.coordinates,h.coordinates);case"Polygon":return this.comparePolygon(o,h);case"GeometryCollection":return this.compareGeometryCollection(o,h);case"Feature":return this.compareFeature(o,h);case"FeatureCollection":return this.compareFeatureCollection(o,h);default:if(o.type.startsWith("Multi")){const c=Ar(o),g=Ar(h);return c.every(v=>g.some(m=>this.compare(v,m)))}}return!1}compareCoord(o,h){return o.length===h.length&&o.every((c,g)=>Math.abs(c-h[g])<this.precision)}compareLine(o,h,c=0,g=!1){if(!Ue(o,h))return!1;const v=o;let m=h;if(g&&!this.compareCoord(v[0],m[0])){const D=this.fixStartIndex(m,v);if(D)m=D;else return!1}const E=this.compareCoord(v[c],m[c]);return this.direction||E?this.comparePath(v,m):this.compareCoord(v[c],m[m.length-(1+c)])?this.comparePath(v.slice().reverse(),m):!1}fixStartIndex(o,h){let c,g=-1;for(let v=0;v<o.length;v++)if(this.compareCoord(o[v],h[0])){g=v;break}return g>=0&&(c=[].concat(o.slice(g,o.length),o.slice(1,g+1))),c}comparePath(o,h){return o.every((c,g)=>this.compareCoord(c,h[g]))}comparePolygon(o,h){if(this.compareLine(o.coordinates[0],h.coordinates[0],1,!0)){const c=o.coordinates.slice(1,o.coordinates.length),g=h.coordinates.slice(1,h.coordinates.length);return c.every(v=>g.some(m=>this.compareLine(v,m,1,!0)))}return!1}compareGeometryCollection(o,h){return Ue(o.geometries,h.geometries)&&this.compareBBox(o,h)&&o.geometries.every((c,g)=>this.compare(c,h.geometries[g]))}compareFeature(o,h){return o.id===h.id&&(this.compareProperties?er(o.properties,h.properties):!0)&&this.compareBBox(o,h)&&this.compare(o.geometry,h.geometry)}compareFeatureCollection(o,h){return Ue(o.features,h.features)&&this.compareBBox(o,h)&&o.features.every((c,g)=>this.compare(c,h.features[g]))}compareBBox(o,h){return!o.bbox&&!h.bbox||(o.bbox&&h.bbox?this.compareCoord(o.bbox,h.bbox):!1)}};Ee(mn,"GeojsonEquality");var gf=mn;function Ue(l,o){return l.coordinates?l.coordinates.length===o.coordinates.length:l.length===o.length}Ee(Ue,"sameLength");function Ar(l){return l.coordinates.map(o=>({type:l.type.replace("Multi",""),coordinates:o}))}Ee(Ar,"explode");function En(l,o,h){return new gf(h).compare(l,o)}Ee(En,"geojsonEquality");function er(l,o){if(l===null&&o===null)return!0;if(l===null||o===null)return!1;const h=Object.keys(l),c=Object.keys(o);if(h.length!==c.length)return!1;for(var g of h){const v=l[g],m=o[g],E=yn(v)&&yn(m);if(E&&!er(v,m)||!E&&v!==m)return!1}return!0}Ee(er,"equal");var yn=Ee(l=>l!=null&&typeof l=="object","isObject");function Bn(l,o={}){var h=typeof o=="object"?o.mutate:o;if(!l)throw new Error("geojson is required");var c=o2(l),g=[];switch(c){case"LineString":g=tr(l,c);break;case"MultiLineString":case"Polygon":Re(l).forEach(function(m){g.push(tr(m,c))});break;case"MultiPolygon":Re(l).forEach(function(m){var E=[];m.forEach(function(D){E.push(tr(D,c))}),g.push(E)});break;case"Point":return l;case"MultiPoint":var v={};Re(l).forEach(function(m){var E=m.join("-");Object.prototype.hasOwnProperty.call(v,E)||(g.push(m),v[E]=!0)});break;default:throw new Error(c+" geometry not supported")}return l.coordinates?h===!0?(l.coordinates=g,l):{type:c,coordinates:g}:h===!0?(l.geometry.coordinates=g,l):v0({type:c,coordinates:g},l.properties,{bbox:l.bbox,id:l.id})}function tr(l,o){var h=Re(l);if(h.length===2&&!kn(h[0],h[1]))return h;var c=[],g=h.length-1,v=c.length;c.push(h[0]);for(var m=1;m<g;m++){var E=c[c.length-1];h[m][0]===E[0]&&h[m][1]===E[1]||(c.push(h[m]),v=c.length,v>2&&bn(c[v-3],c[v-1],c[v-2])&&c.splice(c.length-2,1))}if(c.push(h[h.length-1]),v=c.length,(o==="Polygon"||o==="MultiPolygon")&&kn(h[0],h[h.length-1])&&v<4)throw new Error("invalid polygon");return o==="LineString"&&v<3||bn(c[v-3],c[v-1],c[v-2])&&c.splice(c.length-2,1),c}function kn(l,o){return l[0]===o[0]&&l[1]===o[1]}function bn(l,o,h){var c=h[0],g=h[1],v=l[0],m=l[1],E=o[0],D=o[1],C=c-v,S=g-m,Q=E-v,V=D-m,K=C*V-S*Q;return K!==0?!1:Math.abs(Q)>=Math.abs(V)?Q>0?v<=c&&c<=E:E<=c&&c<=v:V>0?m<=g&&g<=D:D<=g&&g<=m}function wf(l,o,h={}){let c=h.precision;if(c=c==null||isNaN(c)?6:c,typeof c!="number"||!(c>=0))throw new Error("precision must be a positive number");const g=z0(l).type,v=z0(o).type;return g!==v?!1:En(Bn(l),Bn(o),{precision:c})}var pf=new Set(Object.values(St)),vf=l=>pf.has(l);function mf(l,o){if(!o)return{};const h={};for(const c in o)for(const g in o[c]){if(!vf(g))continue;const v=o[c][g],m=!l||!v?.owner||v?.owner!==l;v&&m&&(h[c]||(h[c]={}),h[c][g]=v)}return h}var Ef="_carto_others",yf=class extends af{constructor(){super(...arguments),aA(this,"_tiles",[]),aA(this,"_features",[]),aA(this,"_tileFeatureExtractOptions",{}),aA(this,"_tileFeatureExtractPreviousInputs",{})}loadTiles(l){this._tiles=l,this._features.length=0}setTileFeatureExtractOptions(l){this._tileFeatureExtractOptions=l,this._features.length=0}_extractTileFeatures(l){const o=this._tileFeatureExtractPreviousInputs;this._features.length&&Bf(o.spatialFilter,l)||(this._features=Wl({...Go({},this.props,this._tileFeatureExtractOptions),tiles:this._tiles,spatialFilter:l}),o.spatialFilter=l)}loadGeoJSON({geojson:l,spatialFilter:o}){this._features=M2({geojson:l,spatialFilter:o,...this._tileFeatureExtractOptions}),this._tileFeatureExtractPreviousInputs.spatialFilter=o}async getFeatures(){throw new Error("getFeatures not supported for tilesets")}async getFormula({column:l="*",operation:o=ie.Count,joinOperation:h,filters:c,filterOwner:g,spatialFilter:v}){const m=this._getFilteredFeatures(v,c,g);if(m.length===0&&o!==ie.Count)return{value:null};if(o===ie.Custom)throw new Error("Custom aggregation not supported for tilesets");(l&&l!=="*"||o!==ie.Count)&&se(this._features,l);const E=Z0[o];return pe(E,`Unsupported aggregation operation: ${o}`),{value:E(m,l,h)}}async getHistogram({operation:l=ie.Count,ticks:o,column:h,joinOperation:c,filters:g,filterOwner:v,spatialFilter:m}){const E=this._getFilteredFeatures(m,g,v);return this._features.length?(se(this._features,h),ff({data:E,valuesColumns:ye(h),joinOperation:c,ticks:o,operation:l})):[]}async getCategories({column:l,operation:o=ie.Count,operationColumn:h,joinOperation:c,filters:g,filterOwner:v,spatialFilter:m,othersThreshold:E,orderBy:D="frequency_desc",rawResult:C}){const S=this._getFilteredFeatures(m,g,v);if(!S.length)return[];se(this._features,l,h);const Q=rf({data:S,valuesColumns:ye(h||l),joinOperation:c,keysColumn:l,operation:o,othersThreshold:E,orderBy:D});return C?Q:E?[...Q?.rows||[],{name:Ef,value:Q?.metadata?.others}]:Q?.rows||[]}async getScatter({xAxisColumn:l,yAxisColumn:o,xAxisJoinOperation:h,yAxisJoinOperation:c,filters:g,filterOwner:v,spatialFilter:m}){const E=this._getFilteredFeatures(m,g,v);return E.length?(se(this._features,l,o),uf({data:E,xAxisColumns:ye(l),xAxisJoinOperation:h,yAxisColumns:ye(o),yAxisJoinOperation:c})):[]}async getTable({columns:l,searchFilterColumn:o,searchFilterText:h,sortBy:c,sortDirection:g,sortByColumnType:v,offset:m=0,limit:E=10,filters:D,filterOwner:C,spatialFilter:S}){let Q=this._getFilteredFeatures(S,D,C);if(!Q.length)return{rows:[],totalCount:0};o&&h&&(console.warn('WidgetTilesetSource: "searchFilterText" is deprecated, use "filters" and FilterType.STRING_SEARCH instead.'),Q=Q.filter(tA=>tA[o]&&String(tA[o]).toLowerCase().includes(String(h).toLowerCase())));let V=Af(Q,{sortBy:c,sortByDirection:g,sortByColumnType:v});const K=V.length;return V=V.slice(Math.min(m,K),Math.min(m+E,K)),V=V.map(tA=>{const oA={};for(const wA of l)oA[wA]=tA[wA];return oA}),{rows:V,totalCount:K}}async getTimeSeries({column:l,stepSize:o,operation:h,operationColumn:c,joinOperation:g,filters:v,filterOwner:m,spatialFilter:E}){const D=this._getFilteredFeatures(E,v,m);return D.length?(se(this._features,l,c),pe(h!=="custom","Custom operation not supported for tilesets"),{rows:lf({data:D,valuesColumns:ye(c||l),keysColumn:l,groupType:o,operation:h,joinOperation:g})||[]}):{rows:[]}}async getRange({column:l,filters:o,filterOwner:h,spatialFilter:c}){const g=this._getFilteredFeatures(c,o,h);return this._features.length?(se(this._features,l),{min:Z0.min(g,l),max:Z0.max(g,l)}):null}async getAggregations({aggregations:l,filters:o,filterOwner:h,spatialFilter:c}){const g=this._getFilteredFeatures(c,o,h);if(!this._features.length)return{rows:[]};pe(typeof l!="string","Unsupported tileset SQL aggregation");const v={},m=new Set;for(const{column:E,operation:D,alias:C}of l){(E&&E!=="*"||D!==ie.Count)&&se(this._features,E);const S=C.toLowerCase();pe(!m.has(S),`Duplicate alias: ${S}`),m.add(S);const Q=Z0[D];pe(Q,`Unsupported operation: ${D}`),v[C]=Q(g,E)}return{rows:[v]}}async getExtent(){return Promise.reject(new Error("not implemented"))}_getFilteredFeatures(l,o,h){return this._extractTileFeatures(l),Jo(this._features,mf(h,o||this.props.filters),this.props.filtersLogicalOperator||"and")}};function se(l,...o){const h=Array.from(new Set(o.map(ye).flat())),c=Object.keys(l[0]),g=h.filter(v=>v&&!c.includes(v));if(g.length)throw new Oo(`Missing column(s): ${g.join(", ")}`)}function ye(l){return Array.isArray(l)?l:typeof l=="string"?[l]:[]}function Bf(l,o){return l===o?!0:!l||!o?!1:wf(l,o)}var rr;addEventListener("message",l=>{const{method:o,params:h,requestId:c}=l.data;if(o==="init"){rr=new yf({...h[0],widgetWorker:!1});return}if(!rr){const g=`Cannot execute "${o}" on uninitialized source.`;postMessage({ok:!1,error:g,requestId:c});return}Promise.resolve(rr[o](...h)).then(g=>{postMessage({ok:!0,result:g,requestId:c})}).catch(g=>{postMessage({ok:!1,error:g,requestId:c})})})})();
2
+ //# sourceMappingURL=worker-CDL4vKo-.js.map