@openlayer-utils/draw-grid 1.0.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.
package/dist/index.cjs ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";var X1=Object.defineProperty;var q1=(y,v,I)=>v in y?X1(y,v,{enumerable:!0,configurable:!0,writable:!0,value:I}):y[v]=I;var i0=(y,v,I)=>q1(y,typeof v!="symbol"?v+"":v,I);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $1=require("ol/layer/WebGLVector.js"),hr=require("ol/Overlay.js"),At=require("ol/source/Vector.js"),gr=require("ol/Feature.js"),et=require("ol/format/WKT.js"),i2=require("ol/proj.js"),NA=require("vue");function rt(y){if(!/^#?[0-9a-fA-F]{3,6}$/.test(y))throw new Error(`Invalid hex color: ${y}`);const v=y.replace("#","");return v.length===3?[parseInt(v[0]+v[0],16),parseInt(v[1]+v[1],16),parseInt(v[2]+v[2],16)]:[parseInt(v.substring(0,2),16),parseInt(v.substring(2,4),16),parseInt(v.substring(4,6),16)]}function wr(y,v){try{const[I,L,F]=rt(y);return`rgba(${I}, ${L}, ${F}, ${v})`}catch{return y}}const it=y=>NA.h("div",{style:{position:"fixed",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,pointerEvents:"none"}},[NA.h("div",{style:{position:"relative",background:"#fff",borderRadius:"12px",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.15)",padding:"28px 32px 20px",minWidth:"360px",pointerEvents:"auto"}},[NA.h("div",{style:{display:"flex",alignItems:"flex-start",gap:"14px",marginBottom:"24px"}},[NA.h("div",{style:{width:"40px",height:"40px",borderRadius:"50%",background:"#fef2f2",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0}},[NA.h("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#ef4444","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[NA.h("path",{d:"M3 6h18"}),NA.h("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),NA.h("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),NA.h("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),NA.h("line",{x1:"14",y1:"11",x2:"14",y2:"17"})])]),NA.h("div",{style:{display:"flex",flexDirection:"column",gap:"6px"}},[NA.h("div",{style:{fontSize:"16px",fontWeight:600,color:"#1a1a1a",lineHeight:1.3}},"删除提示"),NA.h("div",{style:{fontSize:"13px",color:"#888",lineHeight:1.5}},"您确认要删除该要素吗?")])]),NA.h("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px"}},[NA.h("button",{onClick:y.onCancel,style:{padding:"8px 24px",borderRadius:"6px",border:"1px solid #d1d5db",background:"#fff",color:"#555",fontSize:"13px",cursor:"pointer"},onMouseenter:v=>{v.target.style.background="#f9fafb"},onMouseleave:v=>{v.target.style.background="#fff"}},"取消"),NA.h("button",{onClick:y.onConfirm,style:{padding:"8px 24px",borderRadius:"6px",border:"none",background:"#ef4444",color:"#fff",fontSize:"13px",cursor:"pointer"},onMouseenter:v=>{v.target.style.background="#dc2626"},onMouseleave:v=>{v.target.style.background="#ef4444"}},"确认删除")])])]);function tt(){return new Promise(y=>{const v=document.createElement("div");document.body.appendChild(v);const I=NA.createApp({setup(){return()=>NA.h(it,{onConfirm:()=>{I.unmount(),v.remove(),y(!0)},onCancel:()=>{I.unmount(),v.remove(),y(!1)}})}});I.mount(v)})}class nt{constructor(v){i0(this,"mapInstance");i0(this,"layerMap",new globalThis.Map);this.mapInstance=v}createLayer(){const v=Symbol(),I=new At,L=new $1({source:I,style:{"fill-color":["get","fillColor"],"stroke-color":["get","strokeColor"],"stroke-width":["get","lineWidth"]}});return this.mapInstance.addLayer(L),this.layerMap.set(v,{source:I,layer:L}),{id:v}}addFeature(v,I){const L=this.layerMap.get(v.id);if(!L)return;const F=this.mapInstance.getView().getProjection();for(const x of I.grids){const j=new et().readGeometry(x.wkt,{dataProjection:"EPSG:4326",featureProjection:F});if(!j)continue;const lA=wr(I.primaryColor,I.fillOpacity),CA=wr(I.primaryColor,I.lineOpacity),BA=new gr({geometry:j});BA.set("fillColor",lA),BA.set("strokeColor",CA),BA.set("lineWidth",I.lineWidth),BA.set("lineOpacity",I.lineOpacity),BA.set("featureId",I.id),BA.set("primary",x.primary),L.source.addFeature(BA)}}removeFeature(v,I){const L=this.layerMap.get(v.id);if(!L)return;const F=L.source.getFeatures();for(const x of F)x.get("featureId")===I&&L.source.removeFeature(x)}clearLayer(v){const I=this.layerMap.get(v.id);I&&I.source.clear()}destroyLayer(v){const I=this.layerMap.get(v.id);I&&(this.mapInstance.removeLayer(I.layer),this.layerMap.delete(v.id))}findFeatureIdAtCoordinate(v,I){const L=this.layerMap.get(v.id);if(!L)return null;const[F,x]=I,J=i2.fromLonLat([F,x],this.mapInstance.getView().getProjection()),j=this.mapInstance.getPixelFromCoordinate(J),lA=this.mapInstance.getFeaturesAtPixel(j,{layerFilter:CA=>CA===L.layer});if(!lA||lA.length===0)return null;for(const CA of lA)if(CA instanceof gr){const BA=CA.get("featureId");if(typeof BA=="number")return BA}return null}showDeleteWithConfirm(v,I,L){return new Promise(F=>{const[x,J]=L,j=i2.fromLonLat([x,J],this.mapInstance.getView().getProjection()),lA=document.createElement("div");lA.style.position="absolute",lA.style.cursor="pointer",lA.innerHTML=`
2
+ <div style="
3
+ background: white;
4
+ border-radius: 50%;
5
+ width: 32px;
6
+ height: 32px;
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ box-shadow: 0 2px 8px rgba(0,0,0,0.25);
11
+ font-size: 18px;
12
+ color: #ef4444;
13
+ ">&times;</div>
14
+ `,lA.addEventListener("click",BA=>{BA.stopPropagation(),CA.setPosition(void 0),this.mapInstance.removeOverlay(CA),tt().then(OA=>{F(OA)})});const CA=new hr({element:lA,position:j,positioning:"center-center"});this.mapInstance.addOverlay(CA)})}hideDeleteIcon(v){const I=this.mapInstance.getOverlays().getArray();for(const L of I){const F=L.getElement();F&&F.querySelector('div[style*="border-radius: 50%"]')&&this.mapInstance.removeOverlay(L)}}showFeatureLabel(v,I,L,F,x="label",J){const[j,lA]=F,CA=i2.fromLonLat([j,lA],this.mapInstance.getView().getProjection()),BA=`feature-label-${I}-${x}`,OA=document.getElementById(BA);if(OA){OA.textContent=L;return}const TA=document.createElement("div");TA.id=BA,TA.style.fontSize="12px",TA.style.fontWeight="600",TA.style.whiteSpace="nowrap",TA.style.pointerEvents="none",TA.style.color=J??"#1a1a1a",TA.style.textShadow="0 0 3px #ffffff, 0 0 3px #ffffff",TA.textContent=L;const WA=new hr({element:TA,position:CA,positioning:"center-center"});this.mapInstance.addOverlay(WA)}hideFeatureLabel(v,I,L="label"){const F=`feature-label-${I}-${L}`,x=document.getElementById(F);if(x){const J=this.mapInstance.getOverlays().getArray();for(const j of J)if(j.getElement()===x){this.mapInstance.removeOverlay(j);break}x.remove()}}}var s0=(y=>(y.H3="h3",y.GEOHASH="geohash",y))(s0||{}),GA=(y=>(y.CENTER="CENTER",y.NORTH="NORTH",y.SOUTH="SOUTH",y.EAST="EAST",y.WEST="WEST",y.NORTHEAST="NORTHEAST",y.NORTHWEST="NORTHWEST",y.SOUTHEAST="SOUTHEAST",y.SOUTHWEST="SOUTHWEST",y))(GA||{}),PA=(function(y){y=y||{};var v=typeof y<"u"?y:{},I={},L;for(L in v)v.hasOwnProperty(L)&&(I[L]=v[L]);var F="";function x(M){return v.locateFile?v.locateFile(M,F):F+M}var J;typeof document<"u"&&document.currentScript&&(F=document.currentScript.src),F.indexOf("blob:")!==0?F=F.substr(0,F.lastIndexOf("/")+1):F="",J=function(T,H,d){var r=new XMLHttpRequest;r.open("GET",T,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status==200||r.status==0&&r.response){H(r.response);return}var aA=ye(T);if(aA){H(aA.buffer);return}d()},r.onerror=d,r.send(null)};var j=v.print||console.log.bind(console),lA=v.printErr||console.warn.bind(console);for(L in I)I.hasOwnProperty(L)&&(v[L]=I[L]);I=null,v.arguments&&v.arguments;var CA=0,BA=function(M){CA=M},OA=function(){return CA},TA=8;function WA(M,T,H,d){switch(H=H||"i8",H.charAt(H.length-1)==="*"&&(H="i32"),H){case"i1":iA[M>>0]=T;break;case"i8":iA[M>>0]=T;break;case"i16":vA[M>>1]=T;break;case"i32":EA[M>>2]=T;break;case"i64":pe=[T>>>0,(G0=T,+Rr(G0)>=1?G0>0?(Hr(+xr(G0/4294967296),4294967295)|0)>>>0:~~+Sr((G0-+(~~G0>>>0))/4294967296)>>>0:0)],EA[M>>2]=pe[0],EA[M+4>>2]=pe[1];break;case"float":mA[M>>2]=T;break;case"double":kA[M>>3]=T;break;default:O0("invalid type for setValue: "+H)}}function d0(M,T,H){switch(T=T||"i8",T.charAt(T.length-1)==="*"&&(T="i32"),T){case"i1":return iA[M>>0];case"i8":return iA[M>>0];case"i16":return vA[M>>1];case"i32":return EA[M>>2];case"i64":return EA[M>>2];case"float":return mA[M>>2];case"double":return kA[M>>3];default:O0("invalid type for getValue: "+T)}return null}var B0=!1;function ee(M,T){M||O0("Assertion failed: "+T)}function V0(M){var T=v["_"+M];return ee(T,"Cannot call unknown function "+M+", make sure it is exported"),T}function be(M,T,H,d,r){var g={string:function(gA){var $A=0;if(gA!=null&&gA!==0){var te=(gA.length<<2)+1;$A=w2(te),Ce(gA,$A,te)}return $A},array:function(gA){var $A=w2(gA.length);return sA(gA,$A),$A}};function aA(gA){return T==="string"?u0(gA):T==="boolean"?!!gA:gA}var pA=V0(M),SA=[],hA=0;if(d)for(var DA=0;DA<d.length;DA++){var E0=g[H[DA]];E0?(hA===0&&(hA=ei()),SA[DA]=E0(d[DA])):SA[DA]=d[DA]}var QA=pA.apply(null,SA);return QA=aA(QA),hA!==0&&Ai(hA),QA}function me(M,T,H,d){H=H||[];var r=H.every(function(aA){return aA==="number"}),g=T!=="string";return g&&r&&!d?V0(M):function(){return be(M,T,H,arguments)}}var re=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Qe(M,T,H){for(var d=T+H,r=T;M[r]&&!(r>=d);)++r;if(r-T>16&&M.subarray&&re)return re.decode(M.subarray(T,r));for(var g="";T<r;){var aA=M[T++];if(!(aA&128)){g+=String.fromCharCode(aA);continue}var pA=M[T++]&63;if((aA&224)==192){g+=String.fromCharCode((aA&31)<<6|pA);continue}var SA=M[T++]&63;if((aA&240)==224?aA=(aA&15)<<12|pA<<6|SA:aA=(aA&7)<<18|pA<<12|SA<<6|M[T++]&63,aA<65536)g+=String.fromCharCode(aA);else{var hA=aA-65536;g+=String.fromCharCode(55296|hA>>10,56320|hA&1023)}}return g}function u0(M,T){return M?Qe(X,M,T):""}function F0(M,T,H,d){if(!(d>0))return 0;for(var r=H,g=H+d-1,aA=0;aA<M.length;++aA){var pA=M.charCodeAt(aA);if(pA>=55296&&pA<=57343){var SA=M.charCodeAt(++aA);pA=65536+((pA&1023)<<10)|SA&1023}if(pA<=127){if(H>=g)break;T[H++]=pA}else if(pA<=2047){if(H+1>=g)break;T[H++]=192|pA>>6,T[H++]=128|pA&63}else if(pA<=65535){if(H+2>=g)break;T[H++]=224|pA>>12,T[H++]=128|pA>>6&63,T[H++]=128|pA&63}else{if(H+3>=g)break;T[H++]=240|pA>>18,T[H++]=128|pA>>12&63,T[H++]=128|pA>>6&63,T[H++]=128|pA&63}}return T[H]=0,H-r}function Ce(M,T,H){return F0(M,X,T,H)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function sA(M,T){iA.set(M,T)}function fA(M,T){return M%T>0&&(M+=T-M%T),M}var W,iA,X,vA,EA,mA,kA;function bA(M){W=M,v.HEAP8=iA=new Int8Array(M),v.HEAP16=vA=new Int16Array(M),v.HEAP32=EA=new Int32Array(M),v.HEAPU8=X=new Uint8Array(M),v.HEAPU16=new Uint16Array(M),v.HEAPU32=new Uint32Array(M),v.HEAPF32=mA=new Float32Array(M),v.HEAPF64=kA=new Float64Array(M)}var _A=5271536,RA=28624,VA=v.TOTAL_MEMORY||33554432;v.buffer?W=v.buffer:W=new ArrayBuffer(VA),VA=W.byteLength,bA(W),EA[RA>>2]=_A;function t0(M){for(;M.length>0;){var T=M.shift();if(typeof T=="function"){T();continue}var H=T.func;typeof H=="number"?T.arg===void 0?v.dynCall_v(H):v.dynCall_vi(H,T.arg):H(T.arg===void 0?null:T.arg)}}var jA=[],n0=[],h0=[],u2=[];function Pr(){if(v.preRun)for(typeof v.preRun=="function"&&(v.preRun=[v.preRun]);v.preRun.length;)Gr(v.preRun.shift());t0(jA)}function Tr(){t0(n0)}function dr(){t0(h0)}function Fr(){if(v.postRun)for(typeof v.postRun=="function"&&(v.postRun=[v.postRun]);v.postRun.length;)Or(v.postRun.shift());t0(u2)}function Gr(M){jA.unshift(M)}function Or(M){u2.unshift(M)}var Rr=Math.abs,Sr=Math.ceil,xr=Math.floor,Hr=Math.min,_0=0,c0=null;function zr(M){_0++,v.monitorRunDependencies&&v.monitorRunDependencies(_0)}function Ur(M){if(_0--,v.monitorRunDependencies&&v.monitorRunDependencies(_0),_0==0&&c0){var T=c0;c0=null,T()}}v.preloadedImages={},v.preloadedAudios={};var g0=null,_e="data:application/octet-stream;base64,";function h2(M){return String.prototype.startsWith?M.startsWith(_e):M.indexOf(_e)===0}var G0,pe;g0="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////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+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAdmVydGV4Um90YXRpb25zAGNlbGxUb1ZlcnRleABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";var Nr=28640;function Yr(M,T,H,d){O0("Assertion failed: "+u0(M)+", at: "+[T?u0(T):"unknown filename",H,d?u0(d):"unknown function"])}function g2(){return iA.length}function jr(M,T,H){X.set(X.subarray(T,T+H),M)}function Wr(M){return v.___errno_location&&(EA[v.___errno_location()>>2]=M),M}function Vr(M){O0("OOM")}function cr(M){try{var T=new ArrayBuffer(M);return T.byteLength!=M?void 0:(new Int8Array(T).set(iA),$r(T),bA(T),1)}catch{}}function Kr(M){var T=g2(),H=16777216,d=2147483648-H;if(M>d)return!1;for(var r=16777216,g=Math.max(T,r);g<M;)g<=536870912?g=fA(2*g,H):g=Math.min(fA((3*g+2147483648)/4,H),d);var aA=cr(g);return!!aA}var Zr=typeof atob=="function"?atob:function(M){var T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",H="",d,r,g,aA,pA,SA,hA,DA=0;M=M.replace(/[^A-Za-z0-9\+\/\=]/g,"");do aA=T.indexOf(M.charAt(DA++)),pA=T.indexOf(M.charAt(DA++)),SA=T.indexOf(M.charAt(DA++)),hA=T.indexOf(M.charAt(DA++)),d=aA<<2|pA>>4,r=(pA&15)<<4|SA>>2,g=(SA&3)<<6|hA,H=H+String.fromCharCode(d),SA!==64&&(H=H+String.fromCharCode(r)),hA!==64&&(H=H+String.fromCharCode(g));while(DA<M.length);return H};function Jr(M){try{for(var T=Zr(M),H=new Uint8Array(T.length),d=0;d<T.length;++d)H[d]=T.charCodeAt(d);return H}catch{throw new Error("Converting base64 string to bytes failed.")}}function ye(M){if(h2(M))return Jr(M.slice(_e.length))}var Xr={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},qr={b:BA,c:OA,d:Yr,e:Wr,f:g2,g:jr,h:Kr,i:Vr,o:Nr,p:RA},G=(function(M,T,H){"almost asm";var d=new M.Int8Array(H),r=new M.Int32Array(H);new M.Uint8Array(H),new M.Float32Array(H);var g=new M.Float64Array(H),aA=T.o|0,pA=T.p|0,SA=M.Math.floor,hA=M.Math.abs,DA=M.Math.sqrt,E0=M.Math.pow,QA=M.Math.cos,gA=M.Math.sin,$A=M.Math.tan,te=M.Math.acos,ri=M.Math.asin,Le=M.Math.atan,A0=M.Math.atan2,R0=M.Math.ceil,l0=M.Math.imul,Pe=M.Math.min,ii=M.Math.max,w0=M.Math.clz32,tA=T.b,B=T.c,$=T.d,E2=T.e,ti=T.f,ni=T.g,li=T.h,oi=T.i,w=28656;function fi(e){return d=new Int8Array(e),r=new Int32Array(e),g=new Float64Array(e),H=e,!0}function si(e){e=e|0;var A=0;return A=w,w=w+e|0,w=w+15&-16,A|0}function ui(){return w|0}function hi(e){e=e|0,w=e}function gi(e,A){e=e|0,w=e}function wi(e,A){e=e|0,A=A|0;var i=0,t=0,n=0;return(e|0)<0?(A=2,A|0):(e|0)>13780509?(A=se(15,A)|0,A|0):(i=((e|0)<0)<<31>>31,n=zA(e|0,i|0,3,0)|0,t=B()|0,i=V(e|0,i|0,1,0)|0,i=zA(n|0,t|0,i|0,B()|0)|0,i=V(i|0,B()|0,1,0)|0,e=B()|0,r[A>>2]=i,r[A+4>>2]=e,A=0,A|0)}function a2(e,A,i,t){return e=e|0,A=A|0,i=i|0,t=t|0,D2(e,A,i,t,0)|0}function D2(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0;if(s=w,w=w+16|0,o=s,!(b2(e,A,i,t,n)|0))return t=0,w=s,t|0;do if((i|0)>=0){if((i|0)>13780509){if(l=se(15,o)|0,l|0)break;f=o,o=r[f>>2]|0,f=r[f+4>>2]|0}else l=((i|0)<0)<<31>>31,u=zA(i|0,l|0,3,0)|0,f=B()|0,l=V(i|0,l|0,1,0)|0,l=zA(u|0,f|0,l|0,B()|0)|0,l=V(l|0,B()|0,1,0)|0,f=B()|0,r[o>>2]=l,r[o+4>>2]=f,o=l;if(Q0(t|0,0,o<<3|0)|0,n|0){Q0(n|0,0,o<<2|0)|0,l=o0(e,A,i,t,n,o,f,0)|0;break}l=XA(o,4)|0,l?(u=o0(e,A,i,t,l,o,f,0)|0,c(l),l=u):l=13}else l=2;while(!1);return u=l,w=s,u|0}function b2(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0;if(b=w,w=w+16|0,a=b,D=b+8|0,E=a,r[E>>2]=e,r[E+4>>2]=A,(i|0)<0)return D=2,w=b,D|0;if(l=t,r[l>>2]=e,r[l+4>>2]=A,l=(n|0)!=0,l&&(r[n>>2]=0),IA(e,A)|0)return D=9,w=b,D|0;r[D>>2]=0;A:do if((i|0)>=1)if(l)for(h=1,u=0,k=0,E=1,l=e;;){if(!(u|k)){if(l=xA(l,A,4,D,a)|0,l|0)break A;if(A=a,l=r[A>>2]|0,A=r[A+4>>2]|0,IA(l,A)|0){l=9;break A}}if(l=xA(l,A,r[26800+(k<<2)>>2]|0,D,a)|0,l|0)break A;if(A=a,l=r[A>>2]|0,A=r[A+4>>2]|0,e=t+(h<<3)|0,r[e>>2]=l,r[e+4>>2]=A,r[n+(h<<2)>>2]=E,e=u+1|0,o=(e|0)==(E|0),f=k+1|0,s=(f|0)==6,IA(l,A)|0){l=9;break A}if(E=E+(s&o&1)|0,(E|0)>(i|0)){l=0;break}else h=h+1|0,u=o?0:e,k=o?s?0:f:k}else for(h=1,u=0,k=0,E=1,l=e;;){if(!(u|k)){if(l=xA(l,A,4,D,a)|0,l|0)break A;if(A=a,l=r[A>>2]|0,A=r[A+4>>2]|0,IA(l,A)|0){l=9;break A}}if(l=xA(l,A,r[26800+(k<<2)>>2]|0,D,a)|0,l|0)break A;if(A=a,l=r[A>>2]|0,A=r[A+4>>2]|0,e=t+(h<<3)|0,r[e>>2]=l,r[e+4>>2]=A,e=u+1|0,o=(e|0)==(E|0),f=k+1|0,s=(f|0)==6,IA(l,A)|0){l=9;break A}if(E=E+(s&o&1)|0,(E|0)>(i|0)){l=0;break}else h=h+1|0,u=o?0:e,k=o?s?0:f:k}else l=0;while(!1);return D=l,w=b,D|0}function o0(e,A,i,t,n,l,o,f){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,l=l|0,o=o|0,f=f|0;var s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0;if(b=w,w=w+16|0,a=b+8|0,D=b,s=N0(e|0,A|0,l|0,o|0)|0,h=B()|0,k=t+(s<<3)|0,Q=k,p=r[Q>>2]|0,Q=r[Q+4>>2]|0,u=(p|0)==(e|0)&(Q|0)==(A|0),!((p|0)==0&(Q|0)==0|u))do s=V(s|0,h|0,1,0)|0,s=U0(s|0,B()|0,l|0,o|0)|0,h=B()|0,k=t+(s<<3)|0,p=k,Q=r[p>>2]|0,p=r[p+4>>2]|0,u=(Q|0)==(e|0)&(p|0)==(A|0);while(!((Q|0)==0&(p|0)==0|u));if(s=n+(s<<2)|0,u&&(r[s>>2]|0)<=(f|0)||(p=k,r[p>>2]=e,r[p+4>>2]=A,r[s>>2]=f,(f|0)>=(i|0)))return p=0,w=b,p|0;switch(u=f+1|0,r[a>>2]=0,s=xA(e,A,2,a,D)|0,s|0){case 9:{E=9;break}case 0:{s=D,s=o0(r[s>>2]|0,r[s+4>>2]|0,i,t,n,l,o,u)|0,s||(E=9);break}}A:do if((E|0)==9){switch(r[a>>2]=0,s=xA(e,A,3,a,D)|0,s|0){case 9:break;case 0:{if(s=D,s=o0(r[s>>2]|0,r[s+4>>2]|0,i,t,n,l,o,u)|0,s|0)break A;break}default:break A}switch(r[a>>2]=0,s=xA(e,A,1,a,D)|0,s|0){case 9:break;case 0:{if(s=D,s=o0(r[s>>2]|0,r[s+4>>2]|0,i,t,n,l,o,u)|0,s|0)break A;break}default:break A}switch(r[a>>2]=0,s=xA(e,A,5,a,D)|0,s|0){case 9:break;case 0:{if(s=D,s=o0(r[s>>2]|0,r[s+4>>2]|0,i,t,n,l,o,u)|0,s|0)break A;break}default:break A}switch(r[a>>2]=0,s=xA(e,A,4,a,D)|0,s|0){case 9:break;case 0:{if(s=D,s=o0(r[s>>2]|0,r[s+4>>2]|0,i,t,n,l,o,u)|0,s|0)break A;break}default:break A}switch(r[a>>2]=0,s=xA(e,A,6,a,D)|0,s|0){case 9:break;case 0:{if(s=D,s=o0(r[s>>2]|0,r[s+4>>2]|0,i,t,n,l,o,u)|0,s|0)break A;break}default:break A}return p=0,w=b,p|0}while(!1);return p=s,w=b,p|0}function xA(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0;if(i>>>0>6)return n=1,n|0;if(k=(r[t>>2]|0)%6|0,r[t>>2]=k,(k|0)>0){l=0;do i=M0(i)|0,l=l+1|0;while((l|0)<(r[t>>2]|0))}if(k=P(e|0,A|0,45)|0,B()|0,h=k&127,h>>>0>121)return n=5,n|0;s=JA(e,A)|0,l=P(e|0,A|0,52)|0,B()|0,l=l&15;A:do if(!l)u=8;else{for(;;){if(o=(15-l|0)*3|0,f=P(e|0,A|0,o|0)|0,B()|0,f=f&7,(f|0)==7){A=5;break}if(D=(e0(l)|0)==0,l=l+-1|0,E=O(7,0,o|0)|0,A=A&~(B()|0),a=O(r[(D?432:16)+(f*28|0)+(i<<2)>>2]|0,0,o|0)|0,o=B()|0,i=r[(D?640:224)+(f*28|0)+(i<<2)>>2]|0,e=a|e&~E,A=o|A,!i){i=0;break A}if(!l){u=8;break A}}return A|0}while(!1);(u|0)==8&&(D=r[848+(h*28|0)+(i<<2)>>2]|0,a=O(D|0,0,45)|0,e=a|e,A=B()|0|A&-1040385,i=r[4272+(h*28|0)+(i<<2)>>2]|0,(D&127|0)==127&&(D=O(r[848+(h*28|0)+20>>2]|0,0,45)|0,A=B()|0|A&-1040385,i=r[4272+(h*28|0)+20>>2]|0,e=I0(D|e,A)|0,A=B()|0,r[t>>2]=(r[t>>2]|0)+1)),f=P(e|0,A|0,45)|0,B()|0,f=f&127;A:do if(LA(f)|0){e:do if((JA(e,A)|0)==1){if((h|0)!=(f|0))if(_2(f,r[7696+(h*28|0)>>2]|0)|0){e=We(e,A)|0,o=1,A=B()|0;break}else $(27795,26864,533,26872);switch(s|0){case 3:{e=I0(e,A)|0,A=B()|0,r[t>>2]=(r[t>>2]|0)+1,o=0;break e}case 5:{e=We(e,A)|0,A=B()|0,r[t>>2]=(r[t>>2]|0)+5,o=0;break e}case 0:return D=9,D|0;default:return D=1,D|0}}else o=0;while(!1);if((i|0)>0){l=0;do e=je(e,A)|0,A=B()|0,l=l+1|0;while((l|0)!=(i|0))}if((h|0)!=(f|0)){if(!(de(f)|0)){if((o|0)!=0|(JA(e,A)|0)!=5)break;r[t>>2]=(r[t>>2]|0)+1;break}switch(k&127){case 8:case 118:break A}(JA(e,A)|0)!=3&&(r[t>>2]=(r[t>>2]|0)+1)}}else if((i|0)>0){l=0;do e=I0(e,A)|0,A=B()|0,l=l+1|0;while((l|0)!=(i|0))}while(!1);return r[t>>2]=((r[t>>2]|0)+i|0)%6|0,D=n,r[D>>2]=e,r[D+4>>2]=A,D=0,D|0}function vi(e,A,i,t){return e=e|0,A=A|0,i=i|0,t=t|0,m2(e,A,i,t)|0?(Q0(t|0,0,i*48|0)|0,t=ki(e,A,i,t)|0,t|0):(t=0,t|0)}function m2(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0;if(D=w,w=w+16|0,E=D,a=D+8|0,k=E,r[k>>2]=e,r[k+4>>2]=A,(i|0)<0)return a=2,w=D,a|0;if(!i)return a=t,r[a>>2]=e,r[a+4>>2]=A,a=0,w=D,a|0;r[a>>2]=0;A:do if(IA(e,A)|0)e=9;else{n=0,k=e;do{if(e=xA(k,A,4,a,E)|0,e|0)break A;if(A=E,k=r[A>>2]|0,A=r[A+4>>2]|0,n=n+1|0,IA(k,A)|0){e=9;break A}}while((n|0)<(i|0));h=t,r[h>>2]=k,r[h+4>>2]=A,h=i+-1|0,u=0,e=1;do{if(n=26800+(u<<2)|0,(u|0)==5)for(o=r[n>>2]|0,l=0,n=e;;){if(e=E,e=xA(r[e>>2]|0,r[e+4>>2]|0,o,a,E)|0,e|0)break A;if((l|0)!=(h|0))if(s=E,f=r[s>>2]|0,s=r[s+4>>2]|0,e=t+(n<<3)|0,r[e>>2]=f,r[e+4>>2]=s,!(IA(f,s)|0))e=n+1|0;else{e=9;break A}else e=n;if(l=l+1|0,(l|0)>=(i|0))break;n=e}else for(o=E,s=r[n>>2]|0,f=0,n=e,l=r[o>>2]|0,o=r[o+4>>2]|0;;){if(e=xA(l,o,s,a,E)|0,e|0)break A;if(o=E,l=r[o>>2]|0,o=r[o+4>>2]|0,e=t+(n<<3)|0,r[e>>2]=l,r[e+4>>2]=o,e=n+1|0,IA(l,o)|0){e=9;break A}if(f=f+1|0,(f|0)>=(i|0))break;n=e}u=u+1|0}while(u>>>0<6);e=E,e=(k|0)==(r[e>>2]|0)&&(A|0)==(r[e+4>>2]|0)?0:9}while(!1);return a=e,w=D,a|0}function ki(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0;if(k=w,w=w+16|0,o=k,!i)return r[t>>2]=e,r[t+4>>2]=A,t=0,w=k,t|0;do if((i|0)>=0){if((i|0)>13780509){if(n=se(15,o)|0,n|0)break;l=o,n=r[l>>2]|0,l=r[l+4>>2]|0}else n=((i|0)<0)<<31>>31,h=zA(i|0,n|0,3,0)|0,l=B()|0,n=V(i|0,n|0,1,0)|0,n=zA(h|0,l|0,n|0,B()|0)|0,n=V(n|0,B()|0,1,0)|0,l=B()|0,h=o,r[h>>2]=n,r[h+4>>2]=l;if(u=XA(n,8)|0,!u)n=13;else{if(h=XA(n,4)|0,!h){c(u),n=13;break}if(n=o0(e,A,i,u,h,n,l,0)|0,n|0){c(u),c(h);break}if(A=r[o>>2]|0,o=r[o+4>>2]|0,(o|0)>0|(o|0)==0&A>>>0>0){n=0,f=0,s=0;do e=u+(f<<3)|0,l=r[e>>2]|0,e=r[e+4>>2]|0,!((l|0)==0&(e|0)==0)&&(r[h+(f<<2)>>2]|0)==(i|0)&&(E=t+(n<<3)|0,r[E>>2]=l,r[E+4>>2]=e,n=n+1|0),f=V(f|0,s|0,1,0)|0,s=B()|0;while((s|0)<(o|0)|(s|0)==(o|0)&f>>>0<A>>>0)}c(u),c(h),n=0}}else n=2;while(!1);return E=n,w=k,E|0}function Te(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0;for(f=w,w=w+16|0,l=f,o=f+8|0,n=(IA(e,A)|0)==0,n=n?1:2;;){if(r[o>>2]=0,u=(xA(e,A,n,o,l)|0)==0,s=l,u&((r[s>>2]|0)==(i|0)?(r[s+4>>2]|0)==(t|0):0)){e=4;break}if(n=n+1|0,n>>>0>=7){n=7,e=4;break}}return(e|0)==4?(w=f,n|0):0}function Bi(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0;if(f=w,w=w+48|0,n=f+16|0,l=f+8|0,o=f,i=$0(i)|0,i|0)return o=i,w=f,o|0;if(u=e,s=r[u+4>>2]|0,i=l,r[i>>2]=r[u>>2],r[i+4>>2]=s,J2(l,n),i=I2(n,A,o)|0,!i){if(A=r[l>>2]|0,l=r[e+8>>2]|0,(l|0)>0){n=r[e+12>>2]|0,i=0;do A=(r[n+(i<<3)>>2]|0)+A|0,i=i+1|0;while((i|0)<(l|0))}i=o,n=r[i>>2]|0,i=r[i+4>>2]|0,l=((A|0)<0)<<31>>31,(i|0)<(l|0)|(i|0)==(l|0)&n>>>0<A>>>0?(i=o,r[i>>2]=A,r[i+4>>2]=l,i=l):A=n,s=V(A|0,i|0,12,0)|0,u=B()|0,i=o,r[i>>2]=s,r[i+4>>2]=u,i=t,r[i>>2]=s,r[i+4>>2]=u,i=0}return u=i,w=f,u|0}function Q2(e,A,i,t,n,l,o){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,l=l|0,o=o|0;var f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0,nA=0,wA=0,q=0,Y=0,R=0,uA=0,yA=0,oA=0,MA=0,ZA=0,ur=0;if(yA=w,w=w+64|0,q=yA+48|0,Y=yA+32|0,R=yA+24|0,S=yA+8|0,N=yA,s=r[e>>2]|0,(s|0)<=0)return uA=0,w=yA,uA|0;for(U=e+4|0,rA=q+8|0,nA=Y+8|0,wA=S+8|0,f=0,C=0;;){u=r[U>>2]|0,_=u+(C<<4)|0,r[q>>2]=r[_>>2],r[q+4>>2]=r[_+4>>2],r[q+8>>2]=r[_+8>>2],r[q+12>>2]=r[_+12>>2],(C|0)==(s+-1|0)?(r[Y>>2]=r[u>>2],r[Y+4>>2]=r[u+4>>2],r[Y+8>>2]=r[u+8>>2],r[Y+12>>2]=r[u+12>>2]):(_=u+(C+1<<4)|0,r[Y>>2]=r[_>>2],r[Y+4>>2]=r[_+4>>2],r[Y+8>>2]=r[_+8>>2],r[Y+12>>2]=r[_+12>>2]),s=Ii(q,Y,t,R)|0;A:do if(s)u=0,f=s;else if(s=R,u=r[s>>2]|0,s=r[s+4>>2]|0,(s|0)>0|(s|0)==0&u>>>0>0){p=0,_=0;e:for(;;){if(MA=1/(+(u>>>0)+4294967296*+(s|0)),ur=+g[q>>3],s=HA(u|0,s|0,p|0,_|0)|0,ZA=+(s>>>0)+4294967296*+(B()|0),oA=+(p>>>0)+4294967296*+(_|0),g[S>>3]=MA*(ur*ZA)+MA*(+g[Y>>3]*oA),g[wA>>3]=MA*(+g[rA>>3]*ZA)+MA*(+g[nA>>3]*oA),s=Ve(S,t,N)|0,s|0){f=s;break}Q=N,b=r[Q>>2]|0,Q=r[Q+4>>2]|0,E=N0(b|0,Q|0,A|0,i|0)|0,h=B()|0,s=o+(E<<3)|0,k=s,u=r[k>>2]|0,k=r[k+4>>2]|0;r:do if((u|0)==0&(k|0)==0)m=s,uA=16;else for(a=0,D=0;;){if((a|0)>(i|0)|(a|0)==(i|0)&D>>>0>A>>>0){f=1;break e}if((u|0)==(b|0)&(k|0)==(Q|0))break r;if(s=V(E|0,h|0,1,0)|0,E=U0(s|0,B()|0,A|0,i|0)|0,h=B()|0,D=V(D|0,a|0,1,0)|0,a=B()|0,s=o+(E<<3)|0,k=s,u=r[k>>2]|0,k=r[k+4>>2]|0,(u|0)==0&(k|0)==0){m=s,uA=16;break}}while(!1);if((uA|0)==16&&(uA=0,!((b|0)==0&(Q|0)==0))&&(D=m,r[D>>2]=b,r[D+4>>2]=Q,D=l+(r[n>>2]<<3)|0,r[D>>2]=b,r[D+4>>2]=Q,D=n,D=V(r[D>>2]|0,r[D+4>>2]|0,1,0)|0,b=B()|0,Q=n,r[Q>>2]=D,r[Q+4>>2]=b),p=V(p|0,_|0,1,0)|0,_=B()|0,s=R,u=r[s>>2]|0,s=r[s+4>>2]|0,!((s|0)>(_|0)|(s|0)==(_|0)&u>>>0>p>>>0)){u=1;break A}}u=0}else u=1;while(!1);if(C=C+1|0,!u){uA=21;break}if(s=r[e>>2]|0,(C|0)>=(s|0)){f=0,uA=21;break}}return(uA|0)==21?(w=yA,f|0):0}function Ei(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0,nA=0,wA=0,q=0,Y=0,R=0,uA=0,yA=0,oA=0,MA=0,ZA=0;if(ZA=w,w=w+112|0,uA=ZA+80|0,s=ZA+72|0,yA=ZA,oA=ZA+56|0,n=$0(i)|0,n|0)return MA=n,w=ZA,MA|0;if(u=e+8|0,MA=f0((r[u>>2]<<5)+32|0)|0,!MA)return MA=13,w=ZA,MA|0;if($e(e,MA),n=$0(i)|0,!n){if(Y=e,R=r[Y+4>>2]|0,n=s,r[n>>2]=r[Y>>2],r[n+4>>2]=R,J2(s,uA),n=I2(uA,A,yA)|0,n)Y=0,R=0;else{if(n=r[s>>2]|0,l=r[u>>2]|0,(l|0)>0){o=r[e+12>>2]|0,i=0;do n=(r[o+(i<<3)>>2]|0)+n|0,i=i+1|0;while((i|0)!=(l|0));i=n}else i=n;n=yA,l=r[n>>2]|0,n=r[n+4>>2]|0,o=((i|0)<0)<<31>>31,(n|0)<(o|0)|(n|0)==(o|0)&l>>>0<i>>>0?(n=yA,r[n>>2]=i,r[n+4>>2]=o,n=o):i=l,Y=V(i|0,n|0,12,0)|0,R=B()|0,n=yA,r[n>>2]=Y,r[n+4>>2]=R,n=0}if(!n){if(i=XA(Y,8)|0,!i)return c(MA),MA=13,w=ZA,MA|0;if(f=XA(Y,8)|0,!f)return c(MA),c(i),MA=13,w=ZA,MA|0;wA=uA,r[wA>>2]=0,r[wA+4>>2]=0,wA=e,q=r[wA+4>>2]|0,n=s,r[n>>2]=r[wA>>2],r[n+4>>2]=q,n=Q2(s,Y,R,A,uA,i,f)|0;A:do if(n)c(i),c(f),c(MA);else{e:do if((r[u>>2]|0)>0){for(o=e+12|0,l=0;n=Q2((r[o>>2]|0)+(l<<3)|0,Y,R,A,uA,i,f)|0,l=l+1|0,!(n|0);)if((l|0)>=(r[u>>2]|0))break e;c(i),c(f),c(MA);break A}while(!1);(R|0)>0|(R|0)==0&Y>>>0>0&&Q0(f|0,0,Y<<3|0)|0,q=uA,wA=r[q+4>>2]|0;e:do if((wA|0)>0|(wA|0)==0&(r[q>>2]|0)>>>0>0){U=i,rA=f,nA=i,wA=f,q=i,n=i,m=i,S=f,N=f,i=f;r:for(;;){for(Q=0,p=0,_=0,C=0,l=0,o=0;;){f=yA,s=f+56|0;do r[f>>2]=0,f=f+4|0;while((f|0)<(s|0));if(A=U+(Q<<3)|0,u=r[A>>2]|0,A=r[A+4>>2]|0,b2(u,A,1,yA,0)|0){f=yA,s=f+56|0;do r[f>>2]=0,f=f+4|0;while((f|0)<(s|0));f=XA(7,4)|0,f|0&&(o0(u,A,1,yA,f,7,0,0)|0,c(f))}for(b=0;;){D=yA+(b<<3)|0,a=r[D>>2]|0,D=r[D+4>>2]|0;i:do if((a|0)==0&(D|0)==0)f=l,s=o;else{if(h=N0(a|0,D|0,Y|0,R|0)|0,u=B()|0,f=t+(h<<3)|0,A=f,s=r[A>>2]|0,A=r[A+4>>2]|0,!((s|0)==0&(A|0)==0)){k=0,E=0;do{if((k|0)>(R|0)|(k|0)==(R|0)&E>>>0>Y>>>0)break r;if((s|0)==(a|0)&(A|0)==(D|0)){f=l,s=o;break i}f=V(h|0,u|0,1,0)|0,h=U0(f|0,B()|0,Y|0,R|0)|0,u=B()|0,E=V(E|0,k|0,1,0)|0,k=B()|0,f=t+(h<<3)|0,A=f,s=r[A>>2]|0,A=r[A+4>>2]|0}while(!((s|0)==0&(A|0)==0))}if((a|0)==0&(D|0)==0){f=l,s=o;break}L0(a,D,oA)|0,A2(e,MA,oA)|0&&(E=V(l|0,o|0,1,0)|0,o=B()|0,k=f,r[k>>2]=a,r[k+4>>2]=D,l=rA+(l<<3)|0,r[l>>2]=a,r[l+4>>2]=D,l=E),f=l,s=o}while(!1);if(b=b+1|0,b>>>0>=7)break;l=f,o=s}if(Q=V(Q|0,p|0,1,0)|0,p=B()|0,_=V(_|0,C|0,1,0)|0,C=B()|0,o=uA,l=r[o>>2]|0,o=r[o+4>>2]|0,(C|0)<(o|0)|(C|0)==(o|0)&_>>>0<l>>>0)l=f,o=s;else break}if((o|0)>0|(o|0)==0&l>>>0>0){l=0,o=0;do C=U+(l<<3)|0,r[C>>2]=0,r[C+4>>2]=0,l=V(l|0,o|0,1,0)|0,o=B()|0,C=uA,_=r[C+4>>2]|0;while((o|0)<(_|0)|((o|0)==(_|0)?l>>>0<(r[C>>2]|0)>>>0:0))}if(C=uA,r[C>>2]=f,r[C+4>>2]=s,(s|0)>0|(s|0)==0&f>>>0>0)b=i,Q=N,p=q,_=S,C=rA,i=m,N=n,S=nA,m=b,n=Q,q=wA,wA=p,nA=_,rA=U,U=C;else break e}c(nA),c(wA),c(MA),n=1;break A}else n=f;while(!1);c(MA),c(i),c(n),n=0}while(!1);return MA=n,w=ZA,MA|0}}return c(MA),MA=n,w=ZA,MA|0}function ai(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(h=w,w=w+176|0,s=h,(A|0)<1)return rr(i,0,0),u=0,w=h,u|0;for(f=e,f=P(r[f>>2]|0,r[f+4>>2]|0,52)|0,B()|0,rr(i,(A|0)>6?A:6,f&15),f=0;t=e+(f<<3)|0,t=H0(r[t>>2]|0,r[t+4>>2]|0,s)|0,!(t|0);){if(t=r[s>>2]|0,(t|0)>0){o=0;do l=s+8+(o<<4)|0,o=o+1|0,t=s+8+(((o|0)%(t|0)|0)<<4)|0,n=c1(i,t,l)|0,n?nr(i,n)|0:V1(i,l,t)|0,t=r[s>>2]|0;while((o|0)<(t|0))}if(f=f+1|0,(f|0)>=(A|0)){t=0,u=13;break}}return(u|0)==13?(w=h,t|0):(ir(i),u=t,w=h,u|0)}function Di(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0;if(l=w,w=w+32|0,t=l,n=l+16|0,e=ai(e,A,n)|0,e|0)return i=e,w=l,i|0;if(r[i>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,e=tr(n)|0,e|0)do{A=Q1(i)|0;do C1(A,e)|0,o=e+16|0,r[t>>2]=r[o>>2],r[t+4>>2]=r[o+4>>2],r[t+8>>2]=r[o+8>>2],r[t+12>>2]=r[o+12>>2],nr(n,e)|0,e=K1(n,t)|0;while((e|0)!=0);e=tr(n)|0}while((e|0)!=0);return ir(n),e=_1(i)|0,e?(V2(i),o=e,w=l,o|0):(o=0,w=l,o|0)}function LA(e){return e=e|0,e>>>0>121?(e=0,e|0):(e=r[7696+(e*28|0)+16>>2]|0,e|0)}function de(e){return e=e|0,(e|0)==4|(e|0)==117|0}function C2(e){return e=e|0,r[11120+((r[e>>2]|0)*216|0)+((r[e+4>>2]|0)*72|0)+((r[e+8>>2]|0)*24|0)+(r[e+12>>2]<<3)>>2]|0}function bi(e){return e=e|0,r[11120+((r[e>>2]|0)*216|0)+((r[e+4>>2]|0)*72|0)+((r[e+8>>2]|0)*24|0)+(r[e+12>>2]<<3)+4>>2]|0}function mi(e,A){e=e|0,A=A|0,e=7696+(e*28|0)|0,r[A>>2]=r[e>>2],r[A+4>>2]=r[e+4>>2],r[A+8>>2]=r[e+8>>2],r[A+12>>2]=r[e+12>>2]}function Qi(e,A){e=e|0,A=A|0;var i=0,t=0;if(A>>>0>20)return A=-1,A|0;do if((r[11120+(A*216|0)>>2]|0)!=(e|0))if((r[11120+(A*216|0)+8>>2]|0)!=(e|0))if((r[11120+(A*216|0)+16>>2]|0)!=(e|0))if((r[11120+(A*216|0)+24>>2]|0)!=(e|0))if((r[11120+(A*216|0)+32>>2]|0)!=(e|0))if((r[11120+(A*216|0)+40>>2]|0)!=(e|0))if((r[11120+(A*216|0)+48>>2]|0)!=(e|0))if((r[11120+(A*216|0)+56>>2]|0)!=(e|0))if((r[11120+(A*216|0)+64>>2]|0)!=(e|0))if((r[11120+(A*216|0)+72>>2]|0)!=(e|0))if((r[11120+(A*216|0)+80>>2]|0)!=(e|0))if((r[11120+(A*216|0)+88>>2]|0)!=(e|0))if((r[11120+(A*216|0)+96>>2]|0)!=(e|0))if((r[11120+(A*216|0)+104>>2]|0)!=(e|0))if((r[11120+(A*216|0)+112>>2]|0)!=(e|0))if((r[11120+(A*216|0)+120>>2]|0)!=(e|0))if((r[11120+(A*216|0)+128>>2]|0)!=(e|0))if((r[11120+(A*216|0)+136>>2]|0)==(e|0))e=2,i=1,t=2;else{if((r[11120+(A*216|0)+144>>2]|0)==(e|0)){e=0,i=2,t=0;break}if((r[11120+(A*216|0)+152>>2]|0)==(e|0)){e=0,i=2,t=1;break}if((r[11120+(A*216|0)+160>>2]|0)==(e|0)){e=0,i=2,t=2;break}if((r[11120+(A*216|0)+168>>2]|0)==(e|0)){e=1,i=2,t=0;break}if((r[11120+(A*216|0)+176>>2]|0)==(e|0)){e=1,i=2,t=1;break}if((r[11120+(A*216|0)+184>>2]|0)==(e|0)){e=1,i=2,t=2;break}if((r[11120+(A*216|0)+192>>2]|0)==(e|0)){e=2,i=2,t=0;break}if((r[11120+(A*216|0)+200>>2]|0)==(e|0)){e=2,i=2,t=1;break}if((r[11120+(A*216|0)+208>>2]|0)==(e|0)){e=2,i=2,t=2;break}else e=-1;return e|0}else e=2,i=1,t=1;else e=2,i=1,t=0;else e=1,i=1,t=2;else e=1,i=1,t=1;else e=1,i=1,t=0;else e=0,i=1,t=2;else e=0,i=1,t=1;else e=0,i=1,t=0;else e=2,i=0,t=2;else e=2,i=0,t=1;else e=2,i=0,t=0;else e=1,i=0,t=2;else e=1,i=0,t=1;else e=1,i=0,t=0;else e=0,i=0,t=2;else e=0,i=0,t=1;else e=0,i=0,t=0;while(!1);return A=r[11120+(A*216|0)+(i*72|0)+(e*24|0)+(t<<3)+4>>2]|0,A|0}function _2(e,A){return e=e|0,A=A|0,(r[7696+(e*28|0)+20>>2]|0)==(A|0)?(A=1,A|0):(A=(r[7696+(e*28|0)+24>>2]|0)==(A|0),A|0)}function Fe(e,A){return e=e|0,A=A|0,r[848+(e*28|0)+(A<<2)>>2]|0}function Ge(e,A){return e=e|0,A=A|0,(r[848+(e*28|0)>>2]|0)==(A|0)?(A=0,A|0):(r[848+(e*28|0)+4>>2]|0)==(A|0)?(A=1,A|0):(r[848+(e*28|0)+8>>2]|0)==(A|0)?(A=2,A|0):(r[848+(e*28|0)+12>>2]|0)==(A|0)?(A=3,A|0):(r[848+(e*28|0)+16>>2]|0)==(A|0)?(A=4,A|0):(r[848+(e*28|0)+20>>2]|0)==(A|0)?(A=5,A|0):((r[848+(e*28|0)+24>>2]|0)==(A|0)?6:7)|0}function Ci(){return 122}function _i(e){e=e|0;var A=0,i=0,t=0;A=0;do O(A|0,0,45)|0,t=B()|0|134225919,i=e+(A<<3)|0,r[i>>2]=-1,r[i+4>>2]=t,A=A+1|0;while((A|0)!=122);return 0}function pi(e){e=e|0;var A=0,i=0,t=0;return t=+g[e+16>>3],i=+g[e+24>>3],A=t-i,+(t<i?A+6.283185307179586:A)}function p2(e){return e=e|0,+g[e+16>>3]<+g[e+24>>3]|0}function yi(e){return e=e|0,+(+g[e>>3]-+g[e+8>>3])}function Oe(e,A){e=e|0,A=A|0;var i=0,t=0,n=0;return i=+g[A>>3],!(i>=+g[e+8>>3])||!(i<=+g[e>>3])?(A=0,A|0):(t=+g[e+16>>3],i=+g[e+24>>3],n=+g[A+8>>3],A=n>=i,e=n<=t&1,t<i?A&&(e=1):A||(e=0),A=(e|0)!=0,A|0)}function Re(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;return+g[e>>3]<+g[A+8>>3]||+g[e+8>>3]>+g[A>>3]?(t=0,t|0):(l=+g[e+16>>3],i=e+24|0,h=+g[i>>3],o=l<h,t=A+16|0,u=+g[t>>3],n=A+24|0,s=+g[n>>3],f=u<s,A=h-u<s-l,e=o?f|A?1:2:0,A=f?o?1:A?2:1:0,l=+qA(l,e),l<+qA(+g[n>>3],A)||(h=+qA(+g[i>>3],e),h>+qA(+g[t>>3],A))?(f=0,f|0):(f=1,f|0))}function Mi(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0;l=+g[e+16>>3],s=+g[e+24>>3],e=l<s,f=+g[A+16>>3],o=+g[A+24>>3],n=f<o,A=s-f<o-l,r[i>>2]=e?n|A?1:2:0,r[t>>2]=n?e?1:A?2:1:0}function y2(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;return+g[e>>3]<+g[A>>3]||+g[e+8>>3]>+g[A+8>>3]?(t=0,t|0):(t=e+16|0,s=+g[t>>3],l=+g[e+24>>3],o=s<l,i=A+16|0,h=+g[i>>3],n=A+24|0,u=+g[n>>3],f=h<u,A=l-h<u-s,e=o?f|A?1:2:0,A=f?o?1:A?2:1:0,l=+qA(l,e),l<=+qA(+g[n>>3],A)?(h=+qA(+g[t>>3],e),f=h>=+qA(+g[i>>3],A),f|0):(f=0,f|0))}function M2(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0;n=w,w=w+176|0,t=n,r[t>>2]=4,f=+g[A>>3],g[t+8>>3]=f,l=+g[A+16>>3],g[t+16>>3]=l,g[t+24>>3]=f,f=+g[A+24>>3],g[t+32>>3]=f,o=+g[A+8>>3],g[t+40>>3]=o,g[t+48>>3]=f,g[t+56>>3]=o,g[t+64>>3]=l,A=t+72|0,i=A+96|0;do r[A>>2]=0,A=A+4|0;while((A|0)<(i|0));Y0(e|0,t|0,168)|0,w=n}function I2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0;D=w,w=w+288|0,h=D+264|0,k=D+96|0,u=D,f=u,s=f+96|0;do r[f>>2]=0,f=f+4|0;while((f|0)<(s|0));return A=Ke(A,u)|0,A|0?(a=A,w=D,a|0):(s=u,u=r[s>>2]|0,s=r[s+4>>2]|0,L0(u,s,h)|0,H0(u,s,k)|0,o=+X0(h,k+8|0),g[h>>3]=+g[e>>3],s=h+8|0,g[s>>3]=+g[e+16>>3],g[k>>3]=+g[e+8>>3],u=k+8|0,g[u>>3]=+g[e+24>>3],n=+X0(h,k),Q=+g[s>>3]-+g[u>>3],l=+hA(+Q),b=+g[h>>3]-+g[k>>3],t=+hA(+b),!(Q==0|b==0)&&(Q=+fr(+l,+t),Q=+R0(+(n*n/+ge(+(Q/+ge(+l,+t)),3)/(o*(o*2.59807621135)*.8))),g[aA>>3]=Q,E=~~Q>>>0,a=+hA(Q)>=1?Q>0?~~+Pe(+SA(Q/4294967296),4294967295)>>>0:~~+R0((Q-+(~~Q>>>0))/4294967296)>>>0:0,(r[aA+4>>2]&2146435072|0)!=2146435072)?(k=(E|0)==0&(a|0)==0,A=i,r[A>>2]=k?1:E,r[A+4>>2]=k?0:a,A=0):A=1,a=A,w=D,a|0)}function Ii(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0;u=w,w=w+288|0,o=u+264|0,f=u+96|0,s=u,n=s,l=n+96|0;do r[n>>2]=0,n=n+4|0;while((n|0)<(l|0));return i=Ke(i,s)|0,i|0?(t=i,w=u,t|0):(i=s,n=r[i>>2]|0,i=r[i+4>>2]|0,L0(n,i,o)|0,H0(n,i,f)|0,h=+X0(o,f+8|0),h=+R0(+(+X0(e,A)/(h*2))),g[aA>>3]=h,i=~~h>>>0,n=+hA(h)>=1?h>0?~~+Pe(+SA(h/4294967296),4294967295)>>>0:~~+R0((h-+(~~h>>>0))/4294967296)>>>0:0,(r[aA+4>>2]&2146435072|0)==2146435072?(t=1,w=u,t|0):(s=(i|0)==0&(n|0)==0,r[t>>2]=s?1:i,r[t+4>>2]=s?0:n,t=0,w=u,t|0))}function Li(e,A){e=e|0,A=+A;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;l=e+16|0,o=+g[l>>3],i=e+24|0,n=+g[i>>3],t=o-n,t=o<n?t+6.283185307179586:t,u=+g[e>>3],f=e+8|0,s=+g[f>>3],h=u-s,t=(t*A-t)*.5,A=(h*A-h)*.5,u=u+A,g[e>>3]=u>1.5707963267948966?1.5707963267948966:u,A=s-A,g[f>>3]=A<-1.5707963267948966?-1.5707963267948966:A,A=o+t,A=A>3.141592653589793?A+-6.283185307179586:A,g[l>>3]=A<-3.141592653589793?A+6.283185307179586:A,A=n-t,A=A>3.141592653589793?A+-6.283185307179586:A,g[i>>3]=A<-3.141592653589793?A+6.283185307179586:A}function Pi(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0,r[e>>2]=A,r[e+4>>2]=i,r[e+8>>2]=t}function Ti(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0;k=A+8|0,r[k>>2]=0,s=+g[e>>3],o=+hA(+s),u=+g[e+8>>3],f=+hA(+u)*1.1547005383792515,o=o+f*.5,i=~~o,e=~~f,o=o-+(i|0),f=f-+(e|0);do if(o<.5)if(o<.3333333333333333)if(r[A>>2]=i,f<(o+1)*.5){r[A+4>>2]=e;break}else{e=e+1|0,r[A+4>>2]=e;break}else if(E=1-o,e=(!(f<E)&1)+e|0,r[A+4>>2]=e,E<=f&f<o*2){i=i+1|0,r[A>>2]=i;break}else{r[A>>2]=i;break}else{if(!(o<.6666666666666666))if(i=i+1|0,r[A>>2]=i,f<o*.5){r[A+4>>2]=e;break}else{e=e+1|0,r[A+4>>2]=e;break}if(f<1-o){if(r[A+4>>2]=e,o*2+-1<f){r[A>>2]=i;break}}else e=e+1|0,r[A+4>>2]=e;i=i+1|0,r[A>>2]=i}while(!1);do if(s<0)if(e&1){h=(e+1|0)/2|0,h=HA(i|0,((i|0)<0)<<31>>31|0,h|0,((h|0)<0)<<31>>31|0)|0,i=~~(+(i|0)-((+(h>>>0)+4294967296*+(B()|0))*2+1)),r[A>>2]=i;break}else{h=(e|0)/2|0,h=HA(i|0,((i|0)<0)<<31>>31|0,h|0,((h|0)<0)<<31>>31|0)|0,i=~~(+(i|0)-(+(h>>>0)+4294967296*+(B()|0))*2),r[A>>2]=i;break}while(!1);h=A+4|0,u<0&&(i=i-((e<<1|1|0)/2|0)|0,r[A>>2]=i,e=0-e|0,r[h>>2]=e),t=e-i|0,(i|0)<0?(n=0-i|0,r[h>>2]=t,r[k>>2]=n,r[A>>2]=0,e=t,i=0):n=0,(e|0)<0&&(i=i-e|0,r[A>>2]=i,n=n-e|0,r[k>>2]=n,r[h>>2]=0,e=0),l=i-n|0,t=e-n|0,(n|0)<0&&(r[A>>2]=l,r[h>>2]=t,r[k>>2]=0,e=t,i=l,n=0),t=(e|0)<(i|0)?e:i,t=(n|0)<(t|0)?n:t,!((t|0)<=0)&&(r[A>>2]=i-t,r[h>>2]=e-t,r[k>>2]=n-t)}function cA(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0;A=r[e>>2]|0,o=e+4|0,i=r[o>>2]|0,(A|0)<0&&(i=i-A|0,r[o>>2]=i,l=e+8|0,r[l>>2]=(r[l>>2]|0)-A,r[e>>2]=0,A=0),(i|0)<0?(A=A-i|0,r[e>>2]=A,l=e+8|0,n=(r[l>>2]|0)-i|0,r[l>>2]=n,r[o>>2]=0,i=0):(n=e+8|0,l=n,n=r[n>>2]|0),(n|0)<0&&(A=A-n|0,r[e>>2]=A,i=i-n|0,r[o>>2]=i,r[l>>2]=0,n=0),t=(i|0)<(A|0)?i:A,t=(n|0)<(t|0)?n:t,!((t|0)<=0)&&(r[e>>2]=A-t,r[o>>2]=i-t,r[l>>2]=n-t)}function p0(e,A){e=e|0,A=A|0;var i=0,t=0;t=r[e+8>>2]|0,i=+((r[e+4>>2]|0)-t|0),g[A>>3]=+((r[e>>2]|0)-t|0)-i*.5,g[A+8>>3]=i*.8660254037844386}function KA(e,A,i){e=e|0,A=A|0,i=i|0,r[i>>2]=(r[A>>2]|0)+(r[e>>2]|0),r[i+4>>2]=(r[A+4>>2]|0)+(r[e+4>>2]|0),r[i+8>>2]=(r[A+8>>2]|0)+(r[e+8>>2]|0)}function Se(e,A,i){e=e|0,A=A|0,i=i|0,r[i>>2]=(r[e>>2]|0)-(r[A>>2]|0),r[i+4>>2]=(r[e+4>>2]|0)-(r[A+4>>2]|0),r[i+8>>2]=(r[e+8>>2]|0)-(r[A+8>>2]|0)}function L2(e,A){e=e|0,A=A|0;var i=0,t=0;i=l0(r[e>>2]|0,A)|0,r[e>>2]=i,i=e+4|0,t=l0(r[i>>2]|0,A)|0,r[i>>2]=t,e=e+8|0,A=l0(r[e>>2]|0,A)|0,r[e>>2]=A}function ne(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;o=r[e>>2]|0,f=(o|0)<0,t=(r[e+4>>2]|0)-(f?o:0)|0,l=(t|0)<0,n=(l?0-t|0:0)+((r[e+8>>2]|0)-(f?o:0))|0,i=(n|0)<0,e=i?0:n,A=(l?0:t)-(i?n:0)|0,n=(f?0:o)-(l?t:0)-(i?n:0)|0,i=(A|0)<(n|0)?A:n,i=(e|0)<(i|0)?e:i,t=(i|0)>0,e=e-(t?i:0)|0,A=A-(t?i:0)|0;A:do switch(n-(t?i:0)|0){case 0:switch(A|0){case 0:return f=(e|0)==0?0:(e|0)==1?1:7,f|0;case 1:return f=(e|0)==0?2:(e|0)==1?3:7,f|0;default:break A}case 1:switch(A|0){case 0:return f=(e|0)==0?4:(e|0)==1?5:7,f|0;case 1:{if(!e)e=6;else break A;return e|0}default:break A}}while(!1);return f=7,f|0}function di(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0;if(s=e+8|0,o=r[s>>2]|0,f=(r[e>>2]|0)-o|0,u=e+4|0,o=(r[u>>2]|0)-o|0,f>>>0>715827881|o>>>0>715827881){if(t=(f|0)>0,n=2147483647-f|0,l=-2147483648-f|0,(t?(n|0)<(f|0):(l|0)>(f|0))||(i=f<<1,t?(2147483647-i|0)<(f|0):(-2147483648-i|0)>(f|0))||((o|0)>0?(2147483647-o|0)<(o|0):(-2147483648-o|0)>(o|0))||(A=f*3|0,i=o<<1,(t?(n|0)<(i|0):(l|0)>(i|0))||((f|0)>-1?(A|-2147483648|0)>=(o|0):(A^-2147483648|0)<(o|0))))return u=1,u|0}else i=o<<1,A=f*3|0;return t=b0(+(A-o|0)*.14285714285714285)|0,r[e>>2]=t,n=b0(+(i+f|0)*.14285714285714285)|0,r[u>>2]=n,r[s>>2]=0,i=(n|0)<(t|0),A=i?t:n,i=i?n:t,(i|0)<0&&(((i|0)==-2147483648||((A|0)>0?(2147483647-A|0)<(i|0):(-2147483648-A|0)>(i|0)))&&$(27795,26892,354,26903),((A|0)>-1?(A|-2147483648|0)>=(i|0):(A^-2147483648|0)<(i|0))&&$(27795,26892,354,26903)),A=n-t|0,(t|0)<0?(i=0-t|0,r[u>>2]=A,r[s>>2]=i,r[e>>2]=0,t=0):(A=n,i=0),(A|0)<0&&(t=t-A|0,r[e>>2]=t,i=i-A|0,r[s>>2]=i,r[u>>2]=0,A=0),l=t-i|0,n=A-i|0,(i|0)<0?(r[e>>2]=l,r[u>>2]=n,r[s>>2]=0,A=n,n=l,i=0):n=t,t=(A|0)<(n|0)?A:n,t=(i|0)<(t|0)?i:t,(t|0)<=0?(u=0,u|0):(r[e>>2]=n-t,r[u>>2]=A-t,r[s>>2]=i-t,u=0,u|0)}function Fi(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0;if(o=e+8|0,n=r[o>>2]|0,l=(r[e>>2]|0)-n|0,f=e+4|0,n=(r[f>>2]|0)-n|0,l>>>0>715827881|n>>>0>715827881){if(i=(l|0)>0,(i?(2147483647-l|0)<(l|0):(-2147483648-l|0)>(l|0))||(A=l<<1,t=(n|0)>0,t?(2147483647-n|0)<(n|0):(-2147483648-n|0)>(n|0)))return f=1,f|0;if(s=n<<1,(t?(2147483647-s|0)<(n|0):(-2147483648-s|0)>(n|0))||(i?(2147483647-A|0)<(n|0):(-2147483648-A|0)>(n|0))||(i=n*3|0,(n|0)>-1?(i|-2147483648|0)>=(l|0):(i^-2147483648|0)<(l|0)))return s=1,s|0}else i=n*3|0,A=l<<1;return t=b0(+(A+n|0)*.14285714285714285)|0,r[e>>2]=t,n=b0(+(i-l|0)*.14285714285714285)|0,r[f>>2]=n,r[o>>2]=0,i=(n|0)<(t|0),A=i?t:n,i=i?n:t,(i|0)<0&&(((i|0)==-2147483648||((A|0)>0?(2147483647-A|0)<(i|0):(-2147483648-A|0)>(i|0)))&&$(27795,26892,402,26917),((A|0)>-1?(A|-2147483648|0)>=(i|0):(A^-2147483648|0)<(i|0))&&$(27795,26892,402,26917)),A=n-t|0,(t|0)<0?(i=0-t|0,r[f>>2]=A,r[o>>2]=i,r[e>>2]=0,t=0):(A=n,i=0),(A|0)<0&&(t=t-A|0,r[e>>2]=t,i=i-A|0,r[o>>2]=i,r[f>>2]=0,A=0),l=t-i|0,n=A-i|0,(i|0)<0?(r[e>>2]=l,r[f>>2]=n,r[o>>2]=0,A=n,n=l,i=0):n=t,t=(A|0)<(n|0)?A:n,t=(i|0)<(t|0)?i:t,(t|0)<=0?(s=0,s|0):(r[e>>2]=n-t,r[f>>2]=A-t,r[o>>2]=i-t,s=0,s|0)}function Gi(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;o=e+8|0,i=r[o>>2]|0,A=(r[e>>2]|0)-i|0,f=e+4|0,i=(r[f>>2]|0)-i|0,t=b0(+((A*3|0)-i|0)*.14285714285714285)|0,r[e>>2]=t,A=b0(+((i<<1)+A|0)*.14285714285714285)|0,r[f>>2]=A,r[o>>2]=0,i=A-t|0,(t|0)<0?(l=0-t|0,r[f>>2]=i,r[o>>2]=l,r[e>>2]=0,A=i,t=0,i=l):i=0,(A|0)<0&&(t=t-A|0,r[e>>2]=t,i=i-A|0,r[o>>2]=i,r[f>>2]=0,A=0),l=t-i|0,n=A-i|0,(i|0)<0?(r[e>>2]=l,r[f>>2]=n,r[o>>2]=0,A=n,n=l,i=0):n=t,t=(A|0)<(n|0)?A:n,t=(i|0)<(t|0)?i:t,!((t|0)<=0)&&(r[e>>2]=n-t,r[f>>2]=A-t,r[o>>2]=i-t)}function P2(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;o=e+8|0,i=r[o>>2]|0,A=(r[e>>2]|0)-i|0,f=e+4|0,i=(r[f>>2]|0)-i|0,t=b0(+((A<<1)+i|0)*.14285714285714285)|0,r[e>>2]=t,A=b0(+((i*3|0)-A|0)*.14285714285714285)|0,r[f>>2]=A,r[o>>2]=0,i=A-t|0,(t|0)<0?(l=0-t|0,r[f>>2]=i,r[o>>2]=l,r[e>>2]=0,A=i,t=0,i=l):i=0,(A|0)<0&&(t=t-A|0,r[e>>2]=t,i=i-A|0,r[o>>2]=i,r[f>>2]=0,A=0),l=t-i|0,n=A-i|0,(i|0)<0?(r[e>>2]=l,r[f>>2]=n,r[o>>2]=0,A=n,n=l,i=0):n=t,t=(A|0)<(n|0)?A:n,t=(i|0)<(t|0)?i:t,!((t|0)<=0)&&(r[e>>2]=n-t,r[f>>2]=A-t,r[o>>2]=i-t)}function le(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;A=r[e>>2]|0,o=e+4|0,i=r[o>>2]|0,f=e+8|0,t=r[f>>2]|0,n=i+(A*3|0)|0,r[e>>2]=n,i=t+(i*3|0)|0,r[o>>2]=i,A=(t*3|0)+A|0,r[f>>2]=A,t=i-n|0,(n|0)<0?(A=A-n|0,r[o>>2]=t,r[f>>2]=A,r[e>>2]=0,i=t,t=0):t=n,(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=n,r[f>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[o>>2]=n-i,r[f>>2]=A-i)}function y0(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;n=r[e>>2]|0,o=e+4|0,A=r[o>>2]|0,f=e+8|0,i=r[f>>2]|0,t=(A*3|0)+n|0,n=i+(n*3|0)|0,r[e>>2]=n,r[o>>2]=t,A=(i*3|0)+A|0,r[f>>2]=A,i=t-n|0,(n|0)<0?(A=A-n|0,r[o>>2]=i,r[f>>2]=A,r[e>>2]=0,n=0):i=t,(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=t,r[f>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[o>>2]=t-i,r[f>>2]=A-i)}function T2(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0;(A+-1|0)>>>0>=6||(n=(r[15440+(A*12|0)>>2]|0)+(r[e>>2]|0)|0,r[e>>2]=n,f=e+4|0,t=(r[15440+(A*12|0)+4>>2]|0)+(r[f>>2]|0)|0,r[f>>2]=t,o=e+8|0,A=(r[15440+(A*12|0)+8>>2]|0)+(r[o>>2]|0)|0,r[o>>2]=A,i=t-n|0,(n|0)<0?(A=A-n|0,r[f>>2]=i,r[o>>2]=A,r[e>>2]=0,t=0):(i=t,t=n),(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=n,r[o>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[f>>2]=n-i,r[o>>2]=A-i))}function d2(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;n=r[e>>2]|0,o=e+4|0,A=r[o>>2]|0,f=e+8|0,i=r[f>>2]|0,t=A+n|0,n=i+n|0,r[e>>2]=n,r[o>>2]=t,A=i+A|0,r[f>>2]=A,i=t-n|0,(n|0)<0?(A=A-n|0,r[o>>2]=i,r[f>>2]=A,r[e>>2]=0,t=0):(i=t,t=n),(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=n,r[f>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[o>>2]=n-i,r[f>>2]=A-i)}function oe(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;A=r[e>>2]|0,o=e+4|0,t=r[o>>2]|0,f=e+8|0,i=r[f>>2]|0,n=t+A|0,r[e>>2]=n,t=i+t|0,r[o>>2]=t,A=i+A|0,r[f>>2]=A,i=t-n|0,(n|0)<0?(A=A-n|0,r[o>>2]=i,r[f>>2]=A,r[e>>2]=0,t=0):(i=t,t=n),(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=n,r[f>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[o>>2]=n-i,r[f>>2]=A-i)}function M0(e){switch(e=e|0,e|0){case 1:{e=5;break}case 5:{e=4;break}case 4:{e=6;break}case 6:{e=2;break}case 2:{e=3;break}case 3:{e=1;break}}return e|0}function a0(e){switch(e=e|0,e|0){case 1:{e=3;break}case 3:{e=2;break}case 2:{e=6;break}case 6:{e=4;break}case 4:{e=5;break}case 5:{e=1;break}}return e|0}function F2(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;A=r[e>>2]|0,o=e+4|0,i=r[o>>2]|0,f=e+8|0,t=r[f>>2]|0,n=i+(A<<1)|0,r[e>>2]=n,i=t+(i<<1)|0,r[o>>2]=i,A=(t<<1)+A|0,r[f>>2]=A,t=i-n|0,(n|0)<0?(A=A-n|0,r[o>>2]=t,r[f>>2]=A,r[e>>2]=0,i=t,t=0):t=n,(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=n,r[f>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[o>>2]=n-i,r[f>>2]=A-i)}function G2(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;n=r[e>>2]|0,o=e+4|0,A=r[o>>2]|0,f=e+8|0,i=r[f>>2]|0,t=(A<<1)+n|0,n=i+(n<<1)|0,r[e>>2]=n,r[o>>2]=t,A=(i<<1)+A|0,r[f>>2]=A,i=t-n|0,(n|0)<0?(A=A-n|0,r[o>>2]=i,r[f>>2]=A,r[e>>2]=0,n=0):i=t,(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=t,r[f>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[o>>2]=t-i,r[f>>2]=A-i)}function xe(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0;return o=(r[e>>2]|0)-(r[A>>2]|0)|0,f=(o|0)<0,t=(r[e+4>>2]|0)-(r[A+4>>2]|0)-(f?o:0)|0,l=(t|0)<0,n=(f?0-o|0:0)+(r[e+8>>2]|0)-(r[A+8>>2]|0)+(l?0-t|0:0)|0,e=(n|0)<0,A=e?0:n,i=(l?0:t)-(e?n:0)|0,n=(f?0:o)-(l?t:0)-(e?n:0)|0,e=(i|0)<(n|0)?i:n,e=(A|0)<(e|0)?A:e,t=(e|0)>0,A=A-(t?e:0)|0,i=i-(t?e:0)|0,e=n-(t?e:0)|0,e=(e|0)>-1?e:0-e|0,i=(i|0)>-1?i:0-i|0,A=(A|0)>-1?A:0-A|0,A=(i|0)>(A|0)?i:A,((e|0)>(A|0)?e:A)|0}function Oi(e,A){e=e|0,A=A|0;var i=0;i=r[e+8>>2]|0,r[A>>2]=(r[e>>2]|0)-i,r[A+4>>2]=(r[e+4>>2]|0)-i}function Ri(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0;return t=r[e>>2]|0,r[A>>2]=t,n=r[e+4>>2]|0,o=A+4|0,r[o>>2]=n,f=A+8|0,r[f>>2]=0,i=(n|0)<(t|0),e=i?t:n,i=i?n:t,(i|0)<0&&((i|0)==-2147483648||((e|0)>0?(2147483647-e|0)<(i|0):(-2147483648-e|0)>(i|0))||((e|0)>-1?(e|-2147483648|0)>=(i|0):(e^-2147483648|0)<(i|0)))?(A=1,A|0):(e=n-t|0,(t|0)<0?(i=0-t|0,r[o>>2]=e,r[f>>2]=i,r[A>>2]=0,t=0):(e=n,i=0),(e|0)<0&&(t=t-e|0,r[A>>2]=t,i=i-e|0,r[f>>2]=i,r[o>>2]=0,e=0),l=t-i|0,n=e-i|0,(i|0)<0?(r[A>>2]=l,r[o>>2]=n,r[f>>2]=0,e=n,n=l,i=0):n=t,t=(e|0)<(n|0)?e:n,t=(i|0)<(t|0)?i:t,(t|0)<=0?(A=0,A|0):(r[A>>2]=n-t,r[o>>2]=e-t,r[f>>2]=i-t,A=0,A|0))}function O2(e){e=e|0;var A=0,i=0,t=0,n=0;A=e+8|0,n=r[A>>2]|0,i=n-(r[e>>2]|0)|0,r[e>>2]=i,t=e+4|0,e=(r[t>>2]|0)-n|0,r[t>>2]=e,r[A>>2]=0-(e+i)}function Si(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;i=r[e>>2]|0,A=0-i|0,r[e>>2]=A,o=e+8|0,r[o>>2]=0,f=e+4|0,t=r[f>>2]|0,n=t+i|0,(i|0)>0?(r[f>>2]=n,r[o>>2]=i,r[e>>2]=0,A=0,t=n):i=0,(t|0)<0?(l=A-t|0,r[e>>2]=l,i=i-t|0,r[o>>2]=i,r[f>>2]=0,n=l-i|0,A=0-i|0,(i|0)<0?(r[e>>2]=n,r[f>>2]=A,r[o>>2]=0,t=A,i=0):(t=0,n=l)):n=A,A=(t|0)<(n|0)?t:n,A=(i|0)<(A|0)?i:A,!((A|0)<=0)&&(r[e>>2]=n-A,r[f>>2]=t-A,r[o>>2]=i-A)}function xi(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0;if(k=w,w=w+64|0,h=k,f=k+56|0,!(!0&(A&2013265920|0)==134217728&(!0&(t&2013265920|0)==134217728)))return n=5,w=k,n|0;if((e|0)==(i|0)&(A|0)==(t|0))return r[n>>2]=0,n=0,w=k,n|0;if(o=P(e|0,A|0,52)|0,B()|0,o=o&15,u=P(i|0,t|0,52)|0,B()|0,(o|0)!=(u&15|0))return n=12,w=k,n|0;if(l=o+-1|0,o>>>0>1){Ye(e,A,l,h)|0,Ye(i,t,l,f)|0,u=h,s=r[u>>2]|0,u=r[u+4>>2]|0;A:do if((s|0)==(r[f>>2]|0)&&(u|0)==(r[f+4>>2]|0)){o=(o^15)*3|0,l=P(e|0,A|0,o|0)|0,B()|0,l=l&7,o=P(i|0,t|0,o|0)|0,B()|0,o=o&7;do if((l|0)==0|(o|0)==0)r[n>>2]=1,l=0;else if((l|0)==7)l=5;else{if((l|0)==1|(o|0)==1&&IA(s,u)|0){l=5;break}if((r[15536+(l<<2)>>2]|0)!=(o|0)&&(r[15568+(l<<2)>>2]|0)!=(o|0))break A;r[n>>2]=1,l=0}while(!1);return n=l,w=k,n|0}while(!1)}l=h,o=l+56|0;do r[l>>2]=0,l=l+4|0;while((l|0)<(o|0));return a2(e,A,1,h)|0,A=h,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(t|0))&&(A=h+8|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(t|0)))&&(A=h+16|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(t|0)))&&(A=h+24|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(t|0)))&&(A=h+32|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(t|0)))&&(A=h+40|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(t|0)))?(l=h+48|0,l=((r[l>>2]|0)==(i|0)?(r[l+4>>2]|0)==(t|0):0)&1):l=1,r[n>>2]=l,n=0,w=k,n|0}function Hi(e,A,i,t,n){return e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,i=Te(e,A,i,t)|0,(i|0)==7?(n=11,n|0):(t=O(i|0,0,56)|0,A=A&-2130706433|(B()|0)|268435456,r[n>>2]=e|t,r[n+4>>2]=A,n=0,n|0)}function zi(e,A,i){return e=e|0,A=A|0,i=i|0,!0&(A&2013265920|0)==268435456?(r[i>>2]=e,r[i+4>>2]=A&-2130706433|134217728,i=0,i|0):(i=6,i|0)}function Ui(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;return n=w,w=w+16|0,t=n,r[t>>2]=0,!0&(A&2013265920|0)==268435456?(l=P(e|0,A|0,56)|0,B()|0,t=xA(e,A&-2130706433|134217728,l&7,t,i)|0,w=n,t|0):(t=6,w=n,t|0)}function R2(e,A){e=e|0,A=A|0;var i=0;switch(i=P(e|0,A|0,56)|0,B()|0,i&7){case 0:case 7:return i=0,i|0}return i=A&-2130706433|134217728,!(!0&(A&2013265920|0)==268435456)||!0&(A&117440512|0)==16777216&(IA(e,i)|0)!=0?(i=0,i|0):(i=Ue(e,i)|0,i|0)}function Ni(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0;return n=w,w=w+16|0,t=n,!0&(A&2013265920|0)==268435456?(l=A&-2130706433|134217728,o=i,r[o>>2]=e,r[o+4>>2]=l,r[t>>2]=0,A=P(e|0,A|0,56)|0,B()|0,t=xA(e,l,A&7,t,i+8|0)|0,w=n,t|0):(t=6,w=n,t|0)}function Yi(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0;return n=(IA(e,A)|0)==0,A=A&-2130706433,t=i,r[t>>2]=n?e:0,r[t+4>>2]=n?A|285212672:0,t=i+8|0,r[t>>2]=e,r[t+4>>2]=A|301989888,t=i+16|0,r[t>>2]=e,r[t+4>>2]=A|318767104,t=i+24|0,r[t>>2]=e,r[t+4>>2]=A|335544320,t=i+32|0,r[t>>2]=e,r[t+4>>2]=A|352321536,i=i+40|0,r[i>>2]=e,r[i+4>>2]=A|369098752,0}function fe(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0;return o=w,w=w+16|0,n=o,l=A&-2130706433|134217728,!0&(A&2013265920|0)==268435456?(t=P(e|0,A|0,56)|0,B()|0,t=Y1(e,l,t&7)|0,(t|0)==-1?(r[i>>2]=0,l=6,w=o,l|0):(x0(e,l,n)|0&&$(27795,26932,282,26947),A=P(e|0,A|0,52)|0,B()|0,A=A&15,IA(e,l)|0?He(n,A,t,2,i):ze(n,A,t,2,i),l=0,w=o,l|0)):(l=6,w=o,l|0)}function ji(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0;t=w,w=w+16|0,n=t,Wi(e,A,i,n),Ti(n,i+4|0),w=t}function Wi(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0;if(f=w,w=w+16|0,s=f,Vi(e,i,s),l=+te(+(1-+g[s>>3]*.5)),l<1e-16){r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,w=f;return}if(s=r[i>>2]|0,n=+g[15920+(s*24|0)>>3],n=+J0(n-+J0(+g1(15600+(s<<4)|0,e))),e0(A)|0?o=+J0(n+-.3334731722518321):o=n,n=+$A(+l)*2.618033988749896,(A|0)>0){e=0;do n=n*2.6457513110645907,e=e+1|0;while((e|0)!=(A|0))}l=+QA(+o)*n,g[t>>3]=l,o=+gA(+o)*n,g[t+8>>3]=o,w=f}function Vi(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;if(l=w,w=w+32|0,n=l,N1(e,n),r[A>>2]=0,g[i>>3]=5,t=+FA(16400,n),t<+g[i>>3]&&(r[A>>2]=0,g[i>>3]=t),t=+FA(16424,n),t<+g[i>>3]&&(r[A>>2]=1,g[i>>3]=t),t=+FA(16448,n),t<+g[i>>3]&&(r[A>>2]=2,g[i>>3]=t),t=+FA(16472,n),t<+g[i>>3]&&(r[A>>2]=3,g[i>>3]=t),t=+FA(16496,n),t<+g[i>>3]&&(r[A>>2]=4,g[i>>3]=t),t=+FA(16520,n),t<+g[i>>3]&&(r[A>>2]=5,g[i>>3]=t),t=+FA(16544,n),t<+g[i>>3]&&(r[A>>2]=6,g[i>>3]=t),t=+FA(16568,n),t<+g[i>>3]&&(r[A>>2]=7,g[i>>3]=t),t=+FA(16592,n),t<+g[i>>3]&&(r[A>>2]=8,g[i>>3]=t),t=+FA(16616,n),t<+g[i>>3]&&(r[A>>2]=9,g[i>>3]=t),t=+FA(16640,n),t<+g[i>>3]&&(r[A>>2]=10,g[i>>3]=t),t=+FA(16664,n),t<+g[i>>3]&&(r[A>>2]=11,g[i>>3]=t),t=+FA(16688,n),t<+g[i>>3]&&(r[A>>2]=12,g[i>>3]=t),t=+FA(16712,n),t<+g[i>>3]&&(r[A>>2]=13,g[i>>3]=t),t=+FA(16736,n),t<+g[i>>3]&&(r[A>>2]=14,g[i>>3]=t),t=+FA(16760,n),t<+g[i>>3]&&(r[A>>2]=15,g[i>>3]=t),t=+FA(16784,n),t<+g[i>>3]&&(r[A>>2]=16,g[i>>3]=t),t=+FA(16808,n),t<+g[i>>3]&&(r[A>>2]=17,g[i>>3]=t),t=+FA(16832,n),t<+g[i>>3]&&(r[A>>2]=18,g[i>>3]=t),t=+FA(16856,n),!(t<+g[i>>3])){w=l;return}r[A>>2]=19,g[i>>3]=t,w=l}function K0(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0;if(l=+U1(e),l<1e-16){A=15600+(A<<4)|0,r[n>>2]=r[A>>2],r[n+4>>2]=r[A+4>>2],r[n+8>>2]=r[A+8>>2],r[n+12>>2]=r[A+12>>2];return}if(o=+A0(+ +g[e+8>>3],+ +g[e>>3]),(i|0)>0){e=0;do l=l*.37796447300922725,e=e+1|0;while((e|0)!=(i|0))}f=l*.3333333333333333,t?(i=(e0(i)|0)==0,l=+Le(+((i?f:f*.37796447300922725)*.381966011250105))):(l=+Le(+(l*.381966011250105)),e0(i)|0&&(o=+J0(o+.3334731722518321))),w1(15600+(A<<4)|0,+J0(+g[15920+(A*24|0)>>3]-o),l,n)}function ci(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0;t=w,w=w+16|0,n=t,p0(e+4|0,n),K0(n,r[e>>2]|0,A,0,i),w=t}function He(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0,nA=0,wA=0,q=0,Y=0,R=0,uA=0,yA=0,oA=0;if(uA=w,w=w+272|0,l=uA+256|0,_=uA+240|0,q=uA,Y=uA+224|0,R=uA+208|0,C=uA+176|0,m=uA+160|0,S=uA+192|0,N=uA+144|0,U=uA+128|0,rA=uA+112|0,nA=uA+96|0,wA=uA+80|0,r[l>>2]=A,r[_>>2]=r[e>>2],r[_+4>>2]=r[e+4>>2],r[_+8>>2]=r[e+8>>2],r[_+12>>2]=r[e+12>>2],S2(_,l,q),r[n>>2]=0,_=t+i+((t|0)==5&1)|0,(_|0)<=(i|0)){w=uA;return}s=r[l>>2]|0,u=Y+4|0,h=C+4|0,k=i+5|0,E=16880+(s<<2)|0,a=16960+(s<<2)|0,D=U+8|0,b=rA+8|0,Q=nA+8|0,p=R+4|0,f=i;A:for(;;){o=q+(((f|0)%5|0)<<4)|0,r[R>>2]=r[o>>2],r[R+4>>2]=r[o+4>>2],r[R+8>>2]=r[o+8>>2],r[R+12>>2]=r[o+12>>2];do;while((S0(R,s,0,1)|0)==2);if((f|0)>(i|0)&(e0(A)|0)!=0){if(r[C>>2]=r[R>>2],r[C+4>>2]=r[R+4>>2],r[C+8>>2]=r[R+8>>2],r[C+12>>2]=r[R+12>>2],p0(u,m),t=r[C>>2]|0,l=r[17040+(t*80|0)+(r[Y>>2]<<2)>>2]|0,r[C>>2]=r[18640+(t*80|0)+(l*20|0)>>2],o=r[18640+(t*80|0)+(l*20|0)+16>>2]|0,(o|0)>0){e=0;do d2(h),e=e+1|0;while((e|0)<(o|0))}switch(o=18640+(t*80|0)+(l*20|0)+4|0,r[S>>2]=r[o>>2],r[S+4>>2]=r[o+4>>2],r[S+8>>2]=r[o+8>>2],L2(S,(r[E>>2]|0)*3|0),KA(h,S,h),cA(h),p0(h,N),yA=+(r[a>>2]|0),g[U>>3]=yA*3,g[D>>3]=0,oA=yA*-1.5,g[rA>>3]=oA,g[b>>3]=yA*2.598076211353316,g[nA>>3]=oA,g[Q>>3]=yA*-2.598076211353316,r[17040+((r[C>>2]|0)*80|0)+(r[R>>2]<<2)>>2]|0){case 1:{e=rA,t=U;break}case 3:{e=nA,t=rA;break}case 2:{e=U,t=nA;break}default:{e=12;break A}}$2(m,N,t,e,wA),K0(wA,r[C>>2]|0,s,1,n+8+(r[n>>2]<<4)|0),r[n>>2]=(r[n>>2]|0)+1}if((f|0)<(k|0)&&(p0(p,C),K0(C,r[R>>2]|0,s,1,n+8+(r[n>>2]<<4)|0),r[n>>2]=(r[n>>2]|0)+1),r[Y>>2]=r[R>>2],r[Y+4>>2]=r[R+4>>2],r[Y+8>>2]=r[R+8>>2],r[Y+12>>2]=r[R+12>>2],f=f+1|0,(f|0)>=(_|0)){e=3;break}}if((e|0)==3){w=uA;return}else(e|0)==12&&$(26970,27017,572,27027)}function S2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0;s=w,w=w+128|0,t=s+64|0,n=s,l=t,o=20240,f=l+60|0;do r[l>>2]=r[o>>2],l=l+4|0,o=o+4|0;while((l|0)<(f|0));l=n,o=20304,f=l+60|0;do r[l>>2]=r[o>>2],l=l+4|0,o=o+4|0;while((l|0)<(f|0));f=(e0(r[A>>2]|0)|0)==0,t=f?t:n,n=e+4|0,F2(n),G2(n),e0(r[A>>2]|0)|0&&(y0(n),r[A>>2]=(r[A>>2]|0)+1),r[i>>2]=r[e>>2],A=i+4|0,KA(n,t,A),cA(A),r[i+16>>2]=r[e>>2],A=i+20|0,KA(n,t+12|0,A),cA(A),r[i+32>>2]=r[e>>2],A=i+36|0,KA(n,t+24|0,A),cA(A),r[i+48>>2]=r[e>>2],A=i+52|0,KA(n,t+36|0,A),cA(A),r[i+64>>2]=r[e>>2],i=i+68|0,KA(n,t+48|0,i),cA(i),w=s}function S0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0;if(D=w,w=w+32|0,E=D+12|0,f=D,a=e+4|0,k=r[16960+(A<<2)>>2]|0,h=(t|0)!=0,k=h?k*3|0:k,n=r[a>>2]|0,u=e+8|0,o=r[u>>2]|0,h){if(l=e+12|0,t=r[l>>2]|0,n=o+n+t|0,(n|0)==(k|0))return a=1,w=D,a|0;s=l}else s=e+12|0,t=r[s>>2]|0,n=o+n+t|0;if((n|0)<=(k|0))return a=0,w=D,a|0;do if((t|0)>0){if(t=r[e>>2]|0,(o|0)>0){l=18640+(t*80|0)+60|0,t=e;break}t=18640+(t*80|0)+40|0,i?(Pi(E,k,0,0),Se(a,E,f),oe(f),KA(f,E,a),l=t,t=e):(l=t,t=e)}else l=18640+((r[e>>2]|0)*80|0)+20|0,t=e;while(!1);if(r[t>>2]=r[l>>2],n=l+16|0,(r[n>>2]|0)>0){t=0;do d2(a),t=t+1|0;while((t|0)<(r[n>>2]|0))}return e=l+4|0,r[E>>2]=r[e>>2],r[E+4>>2]=r[e+4>>2],r[E+8>>2]=r[e+8>>2],A=r[16880+(A<<2)>>2]|0,L2(E,h?A*3|0:A),KA(a,E,a),cA(a),h?t=((r[u>>2]|0)+(r[a>>2]|0)+(r[s>>2]|0)|0)==(k|0)?1:2:t=2,a=t,w=D,a|0}function Ki(e,A){e=e|0,A=A|0;var i=0;do i=S0(e,A,0,1)|0;while((i|0)==2);return i|0}function ze(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0,nA=0,wA=0,q=0;if(nA=w,w=w+240|0,l=nA+224|0,S=nA+208|0,N=nA,U=nA+192|0,rA=nA+176|0,Q=nA+160|0,p=nA+144|0,_=nA+128|0,C=nA+112|0,m=nA+96|0,r[l>>2]=A,r[S>>2]=r[e>>2],r[S+4>>2]=r[e+4>>2],r[S+8>>2]=r[e+8>>2],r[S+12>>2]=r[e+12>>2],x2(S,l,N),r[n>>2]=0,b=t+i+((t|0)==6&1)|0,(b|0)<=(i|0)){w=nA;return}s=r[l>>2]|0,u=i+6|0,h=16960+(s<<2)|0,k=p+8|0,E=_+8|0,a=C+8|0,D=U+4|0,o=0,f=i,t=-1;A:for(;;){if(l=(f|0)%6|0,e=N+(l<<4)|0,r[U>>2]=r[e>>2],r[U+4>>2]=r[e+4>>2],r[U+8>>2]=r[e+8>>2],r[U+12>>2]=r[e+12>>2],e=o,o=S0(U,s,0,1)|0,(f|0)>(i|0)&(e0(A)|0)!=0&&(e|0)!=1&&(r[U>>2]|0)!=(t|0)){switch(p0(N+(((l+5|0)%6|0)<<4)+4|0,rA),p0(N+(l<<4)+4|0,Q),wA=+(r[h>>2]|0),g[p>>3]=wA*3,g[k>>3]=0,q=wA*-1.5,g[_>>3]=q,g[E>>3]=wA*2.598076211353316,g[C>>3]=q,g[a>>3]=wA*-2.598076211353316,l=r[S>>2]|0,r[17040+(l*80|0)+(((t|0)==(l|0)?r[U>>2]|0:t)<<2)>>2]|0){case 1:{e=_,t=p;break}case 3:{e=C,t=_;break}case 2:{e=p,t=C;break}default:{e=8;break A}}$2(rA,Q,t,e,m),!(Ar(rA,m)|0)&&!(Ar(Q,m)|0)&&(K0(m,r[S>>2]|0,s,1,n+8+(r[n>>2]<<4)|0),r[n>>2]=(r[n>>2]|0)+1)}if((f|0)<(u|0)&&(p0(D,rA),K0(rA,r[U>>2]|0,s,1,n+8+(r[n>>2]<<4)|0),r[n>>2]=(r[n>>2]|0)+1),f=f+1|0,(f|0)>=(b|0)){e=3;break}else t=r[U>>2]|0}if((e|0)==3){w=nA;return}else(e|0)==8&&$(27054,27017,737,27099)}function x2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0;s=w,w=w+160|0,t=s+80|0,n=s,l=t,o=20368,f=l+72|0;do r[l>>2]=r[o>>2],l=l+4|0,o=o+4|0;while((l|0)<(f|0));l=n,o=20448,f=l+72|0;do r[l>>2]=r[o>>2],l=l+4|0,o=o+4|0;while((l|0)<(f|0));f=(e0(r[A>>2]|0)|0)==0,t=f?t:n,n=e+4|0,F2(n),G2(n),e0(r[A>>2]|0)|0&&(y0(n),r[A>>2]=(r[A>>2]|0)+1),r[i>>2]=r[e>>2],A=i+4|0,KA(n,t,A),cA(A),r[i+16>>2]=r[e>>2],A=i+20|0,KA(n,t+12|0,A),cA(A),r[i+32>>2]=r[e>>2],A=i+36|0,KA(n,t+24|0,A),cA(A),r[i+48>>2]=r[e>>2],A=i+52|0,KA(n,t+36|0,A),cA(A),r[i+64>>2]=r[e>>2],A=i+68|0,KA(n,t+48|0,A),cA(A),r[i+80>>2]=r[e>>2],i=i+84|0,KA(n,t+60|0,i),cA(i),w=s}function Zi(e,A){return e=e|0,A=A|0,A=P(e|0,A|0,52)|0,B()|0,A&15|0}function H2(e,A){return e=e|0,A=A|0,A=P(e|0,A|0,45)|0,B()|0,A&127|0}function Ji(e,A,i,t){return e=e|0,A=A|0,i=i|0,t=t|0,(i+-1|0)>>>0>14?(t=4,t|0):(i=P(e|0,A|0,(15-i|0)*3|0)|0,B()|0,r[t>>2]=i&7,t=0,t|0)}function Xi(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0;if(e>>>0>15)return t=4,t|0;if(A>>>0>121)return t=17,t|0;o=O(e|0,0,52)|0,n=B()|0,f=O(A|0,0,45)|0,n=n|(B()|0)|134225919;A:do if((e|0)>=1){for(f=1,o=(d[20528+A>>0]|0)!=0,l=-1;;){if(A=r[i+(f+-1<<2)>>2]|0,A>>>0>6){n=18,A=10;break}if(!((A|0)==0|o^1))if((A|0)==1){n=19,A=10;break}else o=0;if(u=(15-f|0)*3|0,s=O(7,0,u|0)|0,n=n&~(B()|0),A=O(A|0,((A|0)<0)<<31>>31|0,u|0)|0,l=A|l&~s,n=B()|0|n,(f|0)<(e|0))f=f+1|0;else break A}if((A|0)==10)return n|0}else l=-1;while(!1);return u=t,r[u>>2]=l,r[u+4>>2]=n,u=0,u|0}function Ue(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0;return!(!0&(A&-16777216|0)==134217728)||(t=P(e|0,A|0,52)|0,B()|0,t=t&15,i=P(e|0,A|0,45)|0,B()|0,i=i&127,i>>>0>121)?(e=0,e|0):(o=(t^15)*3|0,n=P(e|0,A|0,o|0)|0,o=O(n|0,B()|0,o|0)|0,n=B()|0,l=HA(-1227133514,-1171,o|0,n|0)|0,!((o&613566756&l|0)==0&(n&4681&(B()|0)|0)==0)||(o=(t*3|0)+19|0,l=O(~e|0,~A|0,o|0)|0,o=P(l|0,B()|0,o|0)|0,!((t|0)==15|(o|0)==0&(B()|0)==0))?(o=0,o|0):!(d[20528+i>>0]|0)||(A=A&8191,(e|0)==0&(A|0)==0)?(o=1,o|0):(o=r2(e|0,A|0)|0,B()|0,((63-o|0)%3|0|0)!=0|0))}function qi(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0;return!0&(A&-16777216|0)==134217728&&(t=P(e|0,A|0,52)|0,B()|0,t=t&15,i=P(e|0,A|0,45)|0,B()|0,i=i&127,i>>>0<=121)&&(o=(t^15)*3|0,n=P(e|0,A|0,o|0)|0,o=O(n|0,B()|0,o|0)|0,n=B()|0,l=HA(-1227133514,-1171,o|0,n|0)|0,(o&613566756&l|0)==0&(n&4681&(B()|0)|0)==0)&&(o=(t*3|0)+19|0,l=O(~e|0,~A|0,o|0)|0,o=P(l|0,B()|0,o|0)|0,(t|0)==15|(o|0)==0&(B()|0)==0)&&(!(d[20528+i>>0]|0)||(i=A&8191,(e|0)==0&(i|0)==0)||(o=r2(e|0,i|0)|0,B()|0,(63-o|0)%3|0|0))||R2(e,A)|0?(o=1,o|0):(o=(er(e,A)|0)!=0&1,o|0)}function Ne(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0;if(n=O(A|0,0,52)|0,l=B()|0,i=O(i|0,0,45)|0,i=l|(B()|0)|134225919,(A|0)<1){l=-1,t=i,A=e,r[A>>2]=l,e=e+4|0,r[e>>2]=t;return}for(l=1,n=-1;o=(15-l|0)*3|0,f=O(7,0,o|0)|0,i=i&~(B()|0),o=O(t|0,0,o|0)|0,n=n&~f|o,i=i|(B()|0),(l|0)!=(A|0);)l=l+1|0;f=e,o=f,r[o>>2]=n,f=f+4|0,r[f>>2]=i}function Ye(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0;if(l=P(e|0,A|0,52)|0,B()|0,l=l&15,i>>>0>15)return t=4,t|0;if((l|0)<(i|0))return t=12,t|0;if((l|0)==(i|0))return r[t>>2]=e,r[t+4>>2]=A,t=0,t|0;if(n=O(i|0,0,52)|0,n=n|e,e=B()|0|A&-15728641,(l|0)>(i|0))do A=O(7,0,(14-i|0)*3|0)|0,i=i+1|0,n=A|n,e=B()|0|e;while((i|0)<(l|0));return r[t>>2]=n,r[t+4>>2]=e,t=0,t|0}function Z0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0;if(l=P(e|0,A|0,52)|0,B()|0,l=l&15,!((i|0)<16&(l|0)<=(i|0)))return t=4,t|0;n=i-l|0,i=P(e|0,A|0,45)|0,B()|0;A:do if(!(LA(i&127)|0))i=D0(7,0,n,((n|0)<0)<<31>>31)|0,n=B()|0;else{e:do if(l|0){for(i=1;o=O(7,0,(15-i|0)*3|0)|0,!!((o&e|0)==0&((B()|0)&A|0)==0);)if(i>>>0<l>>>0)i=i+1|0;else break e;i=D0(7,0,n,((n|0)<0)<<31>>31)|0,n=B()|0;break A}while(!1);i=D0(7,0,n,((n|0)<0)<<31>>31)|0,i=zA(i|0,B()|0,5,0)|0,i=V(i|0,B()|0,-5,-1)|0,i=m0(i|0,B()|0,6,0)|0,i=V(i|0,B()|0,1,0)|0,n=B()|0}while(!1);return o=t,r[o>>2]=i,r[o+4>>2]=n,o=0,o|0}function IA(e,A){e=e|0,A=A|0;var i=0,t=0,n=0;if(n=P(e|0,A|0,45)|0,B()|0,!(LA(n&127)|0))return n=0,n|0;n=P(e|0,A|0,52)|0,B()|0,n=n&15;A:do if(!n)i=0;else for(t=1;;){if(i=P(e|0,A|0,(15-t|0)*3|0)|0,B()|0,i=i&7,i|0)break A;if(t>>>0<n>>>0)t=t+1|0;else{i=0;break}}while(!1);return n=(i|0)==0&1,n|0}function $i(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0;if(o=w,w=w+16|0,l=o,Ze(l,e,A,i),A=l,e=r[A>>2]|0,A=r[A+4>>2]|0,(e|0)==0&(A|0)==0)return w=o,0;n=0,i=0;do f=t+(n<<3)|0,r[f>>2]=e,r[f+4>>2]=A,n=V(n|0,i|0,1,0)|0,i=B()|0,Je(l),f=l,e=r[f>>2]|0,A=r[f+4>>2]|0;while(!((e|0)==0&(A|0)==0));return w=o,0}function z2(e,A,i,t){return e=e|0,A=A|0,i=i|0,t=t|0,(t|0)<(i|0)?(i=A,t=e,tA(i|0),t|0):(i=O(-1,-1,((t-i|0)*3|0)+3|0)|0,t=O(~i|0,~(B()|0)|0,(15-t|0)*3|0)|0,i=~(B()|0)&A,t=~t&e,tA(i|0),t|0)}function U2(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0;return n=P(e|0,A|0,52)|0,B()|0,n=n&15,(i|0)<16&(n|0)<=(i|0)?((n|0)<(i|0)&&(n=O(-1,-1,((i+-1-n|0)*3|0)+3|0)|0,n=O(~n|0,~(B()|0)|0,(15-i|0)*3|0)|0,A=~(B()|0)&A,e=~n&e),n=O(i|0,0,52)|0,i=A&-15728641|(B()|0),r[t>>2]=e|n,r[t+4>>2]=i,t=0,t|0):(t=4,t|0)}function A1(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0,nA=0,wA=0,q=0,Y=0,R=0;if((i|0)==0&(t|0)==0)return R=0,R|0;if(n=e,l=r[n>>2]|0,n=r[n+4>>2]|0,!0&(n&15728640|0)==0){if(!((t|0)>0|(t|0)==0&i>>>0>0)||(R=A,r[R>>2]=l,r[R+4>>2]=n,(i|0)==1&(t|0)==0))return R=0,R|0;n=1,l=0;do q=e+(n<<3)|0,Y=r[q+4>>2]|0,R=A+(n<<3)|0,r[R>>2]=r[q>>2],r[R+4>>2]=Y,n=V(n|0,l|0,1,0)|0,l=B()|0;while((l|0)<(t|0)|(l|0)==(t|0)&n>>>0<i>>>0);return n=0,n|0}if(wA=i<<3,Y=f0(wA)|0,!Y)return R=13,R|0;if(Y0(Y|0,e|0,wA|0)|0,q=XA(i,8)|0,!q)return c(Y),R=13,R|0;A:for(;;){n=Y,u=r[n>>2]|0,n=r[n+4>>2]|0,rA=P(u|0,n|0,52)|0,B()|0,rA=rA&15,nA=rA+-1|0,U=(rA|0)!=0,N=(t|0)>0|(t|0)==0&i>>>0>0;e:do if(U&N){if(_=O(nA|0,0,52)|0,C=B()|0,nA>>>0>15){if(!((u|0)==0&(n|0)==0)){R=16;break A}for(l=0,e=0;;){if(l=V(l|0,e|0,1,0)|0,e=B()|0,!((e|0)<(t|0)|(e|0)==(t|0)&l>>>0<i>>>0))break e;if(o=Y+(l<<3)|0,S=r[o>>2]|0,o=r[o+4>>2]|0,!((S|0)==0&(o|0)==0)){n=o,R=16;break A}}}for(f=u,e=n,l=0,o=0;;){if(!((f|0)==0&(e|0)==0)){if(!(!0&(e&117440512|0)==0)){R=21;break A}if(h=P(f|0,e|0,52)|0,B()|0,h=h&15,(h|0)<(nA|0)){n=12,R=27;break A}if((h|0)!=(nA|0)&&(f=f|_,e=e&-15728641|C,h>>>0>=rA>>>0)){s=nA;do S=O(7,0,(14-s|0)*3|0)|0,s=s+1|0,f=S|f,e=B()|0|e;while(s>>>0<h>>>0)}if(E=N0(f|0,e|0,i|0,t|0)|0,a=B()|0,s=q+(E<<3)|0,h=s,k=r[h>>2]|0,h=r[h+4>>2]|0,!((k|0)==0&(h|0)==0)){Q=0,p=0;do{if((Q|0)>(t|0)|(Q|0)==(t|0)&p>>>0>i>>>0){R=31;break A}if((k|0)==(f|0)&(h&-117440513|0)==(e|0)){D=P(k|0,h|0,56)|0,B()|0,D=D&7,b=D+1|0,S=P(k|0,h|0,45)|0,B()|0;r:do if(!(LA(S&127)|0))h=7;else{if(k=P(k|0,h|0,52)|0,B()|0,k=k&15,!k){h=6;break}for(h=1;;){if(S=O(7,0,(15-h|0)*3|0)|0,!((S&f|0)==0&((B()|0)&e|0)==0)){h=7;break r}if(h>>>0<k>>>0)h=h+1|0;else{h=6;break}}}while(!1);if((D+2|0)>>>0>h>>>0){R=41;break A}S=O(b|0,0,56)|0,e=B()|0|e&-117440513,m=s,r[m>>2]=0,r[m+4>>2]=0,f=S|f}else E=V(E|0,a|0,1,0)|0,E=U0(E|0,B()|0,i|0,t|0)|0,a=B()|0;p=V(p|0,Q|0,1,0)|0,Q=B()|0,s=q+(E<<3)|0,h=s,k=r[h>>2]|0,h=r[h+4>>2]|0}while(!((k|0)==0&(h|0)==0))}S=s,r[S>>2]=f,r[S+4>>2]=e}if(l=V(l|0,o|0,1,0)|0,o=B()|0,!((o|0)<(t|0)|(o|0)==(t|0)&l>>>0<i>>>0))break e;e=Y+(l<<3)|0,f=r[e>>2]|0,e=r[e+4>>2]|0}}while(!1);if(S=V(i|0,t|0,5,0)|0,m=B()|0,m>>>0<0|(m|0)==0&S>>>0<11){R=85;break}if(S=m0(i|0,t|0,6,0)|0,B()|0,S=XA(S,8)|0,!S){R=48;break}do if(N){for(b=0,e=0,D=0,Q=0;;){if(h=q+(b<<3)|0,o=h,l=r[o>>2]|0,o=r[o+4>>2]|0,(l|0)==0&(o|0)==0)m=D;else{k=P(l|0,o|0,56)|0,B()|0,k=k&7,f=k+1|0,E=o&-117440513,m=P(l|0,o|0,45)|0,B()|0;e:do if(LA(m&127)|0){if(a=P(l|0,o|0,52)|0,B()|0,a=a&15,a|0)for(s=1;;){if(m=O(7,0,(15-s|0)*3|0)|0,!((l&m|0)==0&(E&(B()|0)|0)==0))break e;if(s>>>0<a>>>0)s=s+1|0;else break}o=O(f|0,0,56)|0,l=o|l,o=B()|0|E,f=h,r[f>>2]=l,r[f+4>>2]=o,f=k+2|0}while(!1);(f|0)==7?(m=S+(e<<3)|0,r[m>>2]=l,r[m+4>>2]=o&-117440513,e=V(e|0,D|0,1,0)|0,m=B()|0):m=D}if(b=V(b|0,Q|0,1,0)|0,Q=B()|0,(Q|0)<(t|0)|(Q|0)==(t|0)&b>>>0<i>>>0)D=m;else break}if(N){if(p=nA>>>0>15,_=O(nA|0,0,52)|0,C=B()|0,!U){for(l=0,s=0,f=0,o=0;(u|0)==0&(n|0)==0||(nA=A+(l<<3)|0,r[nA>>2]=u,r[nA+4>>2]=n,l=V(l|0,s|0,1,0)|0,s=B()|0),f=V(f|0,o|0,1,0)|0,o=B()|0,!!((o|0)<(t|0)|(o|0)==(t|0)&f>>>0<i>>>0);)n=Y+(f<<3)|0,u=r[n>>2]|0,n=r[n+4>>2]|0;n=m;break}for(l=0,s=0,o=0,f=0;;){do if(!((u|0)==0&(n|0)==0)){if(a=P(u|0,n|0,52)|0,B()|0,a=a&15,p|(a|0)<(nA|0)){R=80;break A}if((a|0)!=(nA|0)){if(h=u|_,k=n&-15728641|C,a>>>0>=rA>>>0){E=nA;do U=O(7,0,(14-E|0)*3|0)|0,E=E+1|0,h=U|h,k=B()|0|k;while(E>>>0<a>>>0)}}else h=u,k=n;D=N0(h|0,k|0,i|0,t|0)|0,E=0,a=0,Q=B()|0;do{if((E|0)>(t|0)|(E|0)==(t|0)&a>>>0>i>>>0){R=81;break A}if(U=q+(D<<3)|0,b=r[U+4>>2]|0,(b&-117440513|0)==(k|0)&&(r[U>>2]|0)==(h|0)){R=65;break}U=V(D|0,Q|0,1,0)|0,D=U0(U|0,B()|0,i|0,t|0)|0,Q=B()|0,a=V(a|0,E|0,1,0)|0,E=B()|0,U=q+(D<<3)|0}while(!((r[U>>2]|0)==(h|0)&&(r[U+4>>2]|0)==(k|0)));if((R|0)==65&&(R=0,!0&(b&117440512|0)==100663296))break;U=A+(l<<3)|0,r[U>>2]=u,r[U+4>>2]=n,l=V(l|0,s|0,1,0)|0,s=B()|0}while(!1);if(o=V(o|0,f|0,1,0)|0,f=B()|0,!((f|0)<(t|0)|(f|0)==(t|0)&o>>>0<i>>>0))break;n=Y+(o<<3)|0,u=r[n>>2]|0,n=r[n+4>>2]|0}n=m}else l=0,n=m}else l=0,e=0,n=0;while(!1);if(Q0(q|0,0,wA|0)|0,Y0(Y|0,S|0,e<<3|0)|0,c(S),(e|0)==0&(n|0)==0){R=89;break}else A=A+(l<<3)|0,t=n,i=e}if((R|0)==16)!0&(n&117440512|0)==0?(n=4,R=27):R=21;else if((R|0)==31)$(27795,27122,620,27132);else{if((R|0)==41)return c(Y),c(q),R=10,R|0;if((R|0)==48)return c(Y),c(q),R=13,R|0;(R|0)==80?$(27795,27122,711,27132):(R|0)==81?$(27795,27122,723,27132):(R|0)==85&&(Y0(A|0,Y|0,i<<3|0)|0,R=89)}return(R|0)==21?(c(Y),c(q),R=5,R|0):(R|0)==27?(c(Y),c(q),R=n,R|0):(R|0)==89?(c(Y),c(q),R=0,R|0):0}function e1(e,A,i,t,n,l,o){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,l=l|0,o=o|0;var f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0;if(b=w,w=w+16|0,D=b,!((i|0)>0|(i|0)==0&A>>>0>0))return D=0,w=b,D|0;if((o|0)>=16)return D=12,w=b,D|0;E=0,a=0,k=0,f=0;A:for(;;){if(u=e+(E<<3)|0,s=r[u>>2]|0,u=r[u+4>>2]|0,h=P(s|0,u|0,52)|0,B()|0,(h&15|0)>(o|0)){f=12,s=11;break}if(Ze(D,s,u,o),h=D,u=r[h>>2]|0,h=r[h+4>>2]|0,(u|0)==0&(h|0)==0)s=k;else{s=k;do{if(!((f|0)<(l|0)|(f|0)==(l|0)&s>>>0<n>>>0)){s=10;break A}k=t+(s<<3)|0,r[k>>2]=u,r[k+4>>2]=h,s=V(s|0,f|0,1,0)|0,f=B()|0,Je(D),k=D,u=r[k>>2]|0,h=r[k+4>>2]|0}while(!((u|0)==0&(h|0)==0))}if(E=V(E|0,a|0,1,0)|0,a=B()|0,(a|0)<(i|0)|(a|0)==(i|0)&E>>>0<A>>>0)k=s;else{f=0,s=11;break}}return(s|0)==10?(D=14,w=b,D|0):(s|0)==11?(w=b,f|0):0}function r1(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0;E=w,w=w+16|0,k=E;A:do if((i|0)>0|(i|0)==0&A>>>0>0){for(u=0,o=0,l=0,h=0;;){if(s=e+(u<<3)|0,f=r[s>>2]|0,s=r[s+4>>2]|0,!((f|0)==0&(s|0)==0)&&(s=(Z0(f,s,t,k)|0)==0,f=k,o=V(r[f>>2]|0,r[f+4>>2]|0,o|0,l|0)|0,l=B()|0,!s)){l=12;break}if(u=V(u|0,h|0,1,0)|0,h=B()|0,!((h|0)<(i|0)|(h|0)==(i|0)&u>>>0<A>>>0))break A}return w=E,l|0}else o=0,l=0;while(!1);return r[n>>2]=o,r[n+4>>2]=l,n=0,w=E,n|0}function i1(e,A){return e=e|0,A=A|0,A=P(e|0,A|0,52)|0,B()|0,A&1|0}function JA(e,A){e=e|0,A=A|0;var i=0,t=0,n=0;if(n=P(e|0,A|0,52)|0,B()|0,n=n&15,!n)return n=0,n|0;for(t=1;;){if(i=P(e|0,A|0,(15-t|0)*3|0)|0,B()|0,i=i&7,i|0){t=5;break}if(t>>>0<n>>>0)t=t+1|0;else{i=0,t=5;break}}return(t|0)==5?i|0:0}function je(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0;if(s=P(e|0,A|0,52)|0,B()|0,s=s&15,!s)return f=A,s=e,tA(f|0),s|0;for(f=1,i=0;;){l=(15-f|0)*3|0,t=O(7,0,l|0)|0,n=B()|0,o=P(e|0,A|0,l|0)|0,B()|0,l=O(M0(o&7)|0,0,l|0)|0,o=B()|0,e=l|e&~t,A=o|A&~n;A:do if(!i)if((l&t|0)==0&(o&n|0)==0)i=0;else if(t=P(e|0,A|0,52)|0,B()|0,t=t&15,!t)i=1;else{i=1;e:for(;;){switch(o=P(e|0,A|0,(15-i|0)*3|0)|0,B()|0,o&7){case 1:break e;case 0:break;default:{i=1;break A}}if(i>>>0<t>>>0)i=i+1|0;else{i=1;break A}}for(i=1;;)if(o=(15-i|0)*3|0,n=P(e|0,A|0,o|0)|0,B()|0,l=O(7,0,o|0)|0,A=A&~(B()|0),o=O(M0(n&7)|0,0,o|0)|0,e=e&~l|o,A=A|(B()|0),i>>>0<t>>>0)i=i+1|0;else{i=1;break}}while(!1);if(f>>>0<s>>>0)f=f+1|0;else break}return tA(A|0),e|0}function I0(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0;if(t=P(e|0,A|0,52)|0,B()|0,t=t&15,!t)return i=A,t=e,tA(i|0),t|0;for(i=1;l=(15-i|0)*3|0,o=P(e|0,A|0,l|0)|0,B()|0,n=O(7,0,l|0)|0,A=A&~(B()|0),l=O(M0(o&7)|0,0,l|0)|0,e=l|e&~n,A=B()|0|A,i>>>0<t>>>0;)i=i+1|0;return tA(A|0),e|0}function t1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0;if(s=P(e|0,A|0,52)|0,B()|0,s=s&15,!s)return f=A,s=e,tA(f|0),s|0;for(f=1,i=0;;){l=(15-f|0)*3|0,t=O(7,0,l|0)|0,n=B()|0,o=P(e|0,A|0,l|0)|0,B()|0,l=O(a0(o&7)|0,0,l|0)|0,o=B()|0,e=l|e&~t,A=o|A&~n;A:do if(!i)if((l&t|0)==0&(o&n|0)==0)i=0;else if(t=P(e|0,A|0,52)|0,B()|0,t=t&15,!t)i=1;else{i=1;e:for(;;){switch(o=P(e|0,A|0,(15-i|0)*3|0)|0,B()|0,o&7){case 1:break e;case 0:break;default:{i=1;break A}}if(i>>>0<t>>>0)i=i+1|0;else{i=1;break A}}for(i=1;;)if(n=(15-i|0)*3|0,l=O(7,0,n|0)|0,o=A&~(B()|0),A=P(e|0,A|0,n|0)|0,B()|0,A=O(a0(A&7)|0,0,n|0)|0,e=e&~l|A,A=o|(B()|0),i>>>0<t>>>0)i=i+1|0;else{i=1;break}}while(!1);if(f>>>0<s>>>0)f=f+1|0;else break}return tA(A|0),e|0}function We(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0;if(t=P(e|0,A|0,52)|0,B()|0,t=t&15,!t)return i=A,t=e,tA(i|0),t|0;for(i=1;o=(15-i|0)*3|0,l=O(7,0,o|0)|0,n=A&~(B()|0),A=P(e|0,A|0,o|0)|0,B()|0,A=O(a0(A&7)|0,0,o|0)|0,e=A|e&~l,A=B()|0|n,i>>>0<t>>>0;)i=i+1|0;return tA(A|0),e|0}function n1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(s=w,w=w+64|0,f=s+40|0,t=s+24|0,n=s+12|0,l=s,O(A|0,0,52)|0,i=B()|0|134225919,!A)return(r[e+4>>2]|0)>2||(r[e+8>>2]|0)>2||(r[e+12>>2]|0)>2?(o=0,f=0,tA(o|0),w=s,f|0):(O(C2(e)|0,0,45)|0,o=B()|0|i,f=-1,tA(o|0),w=s,f|0);if(r[f>>2]=r[e>>2],r[f+4>>2]=r[e+4>>2],r[f+8>>2]=r[e+8>>2],r[f+12>>2]=r[e+12>>2],o=f+4|0,(A|0)>0)for(e=-1;r[t>>2]=r[o>>2],r[t+4>>2]=r[o+4>>2],r[t+8>>2]=r[o+8>>2],A&1?(Gi(o),r[n>>2]=r[o>>2],r[n+4>>2]=r[o+4>>2],r[n+8>>2]=r[o+8>>2],le(n)):(P2(o),r[n>>2]=r[o>>2],r[n+4>>2]=r[o+4>>2],r[n+8>>2]=r[o+8>>2],y0(n)),Se(t,n,l),cA(l),h=(15-A|0)*3|0,u=O(7,0,h|0)|0,i=i&~(B()|0),h=O(ne(l)|0,0,h|0)|0,e=h|e&~u,i=B()|0|i,(A|0)>1;)A=A+-1|0;else e=-1;A:do if((r[o>>2]|0)<=2&&(r[f+8>>2]|0)<=2&&(r[f+12>>2]|0)<=2){if(t=C2(f)|0,A=O(t|0,0,45)|0,A=A|e,e=B()|0|i&-1040385,l=bi(f)|0,!(LA(t)|0)){if((l|0)<=0)break;for(n=0;;){if(t=P(A|0,e|0,52)|0,B()|0,t=t&15,t)for(i=1;h=(15-i|0)*3|0,f=P(A|0,e|0,h|0)|0,B()|0,u=O(7,0,h|0)|0,e=e&~(B()|0),h=O(M0(f&7)|0,0,h|0)|0,A=A&~u|h,e=e|(B()|0),i>>>0<t>>>0;)i=i+1|0;if(n=n+1|0,(n|0)==(l|0))break A}}n=P(A|0,e|0,52)|0,B()|0,n=n&15;e:do if(n){i=1;r:for(;;){switch(h=P(A|0,e|0,(15-i|0)*3|0)|0,B()|0,h&7){case 1:break r;case 0:break;default:break e}if(i>>>0<n>>>0)i=i+1|0;else break e}if(_2(t,r[f>>2]|0)|0)for(i=1;f=(15-i|0)*3|0,u=O(7,0,f|0)|0,h=e&~(B()|0),e=P(A|0,e|0,f|0)|0,B()|0,e=O(a0(e&7)|0,0,f|0)|0,A=A&~u|e,e=h|(B()|0),i>>>0<n>>>0;)i=i+1|0;else for(i=1;h=(15-i|0)*3|0,f=P(A|0,e|0,h|0)|0,B()|0,u=O(7,0,h|0)|0,e=e&~(B()|0),h=O(M0(f&7)|0,0,h|0)|0,A=A&~u|h,e=e|(B()|0),i>>>0<n>>>0;)i=i+1|0}while(!1);if((l|0)>0){i=0;do A=je(A,e)|0,e=B()|0,i=i+1|0;while((i|0)!=(l|0))}}else A=0,e=0;while(!1);return u=e,h=A,tA(u|0),w=s,h|0}function e0(e){return e=e|0,(e|0)%2|0|0}function Ve(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0;return n=w,w=w+16|0,t=n,A>>>0>15?(t=4,w=n,t|0):(r[e+4>>2]&2146435072|0)==2146435072||(r[e+8+4>>2]&2146435072|0)==2146435072?(t=3,w=n,t|0):(ji(e,A,t),A=n1(t,A)|0,t=B()|0,r[i>>2]=A,r[i+4>>2]=t,(A|0)==0&(t|0)==0&&$(27795,27122,1050,27145),t=0,w=n,t|0)}function ce(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0;if(n=i+4|0,l=P(e|0,A|0,52)|0,B()|0,l=l&15,o=P(e|0,A|0,45)|0,B()|0,t=(l|0)==0,LA(o&127)|0){if(t)return o=1,o|0;t=1}else{if(t)return o=0,o|0;(r[n>>2]|0)==0&&(r[i+8>>2]|0)==0?t=(r[i+12>>2]|0)!=0&1:t=1}for(i=1;i&1?le(n):y0(n),o=P(e|0,A|0,(15-i|0)*3|0)|0,B()|0,T2(n,o&7),i>>>0<l>>>0;)i=i+1|0;return t|0}function x0(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(h=w,w=w+16|0,s=h,u=P(e|0,A|0,45)|0,B()|0,u=u&127,u>>>0>121)return r[i>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,r[i+12>>2]=0,u=5,w=h,u|0;A:do if((LA(u)|0)!=0&&(l=P(e|0,A|0,52)|0,B()|0,l=l&15,(l|0)!=0)){t=1;e:for(;;){switch(f=P(e|0,A|0,(15-t|0)*3|0)|0,B()|0,f&7){case 5:break e;case 0:break;default:{t=A;break A}}if(t>>>0<l>>>0)t=t+1|0;else{t=A;break A}}for(n=1,t=A;A=(15-n|0)*3|0,o=O(7,0,A|0)|0,f=t&~(B()|0),t=P(e|0,t|0,A|0)|0,B()|0,t=O(a0(t&7)|0,0,A|0)|0,e=e&~o|t,t=f|(B()|0),n>>>0<l>>>0;)n=n+1|0}else t=A;while(!1);if(f=7696+(u*28|0)|0,r[i>>2]=r[f>>2],r[i+4>>2]=r[f+4>>2],r[i+8>>2]=r[f+8>>2],r[i+12>>2]=r[f+12>>2],!(ce(e,t,i)|0))return u=0,w=h,u|0;if(o=i+4|0,r[s>>2]=r[o>>2],r[s+4>>2]=r[o+4>>2],r[s+8>>2]=r[o+8>>2],l=P(e|0,t|0,52)|0,B()|0,f=l&15,l&1?(y0(o),l=f+1|0):l=f,!(LA(u)|0))t=0;else{A:do if(!f)t=0;else for(A=1;;){if(n=P(e|0,t|0,(15-A|0)*3|0)|0,B()|0,n=n&7,n|0){t=n;break A}if(A>>>0<f>>>0)A=A+1|0;else{t=0;break}}while(!1);t=(t|0)==4&1}if(!(S0(i,l,t,0)|0))(l|0)!=(f|0)&&(r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2]);else{if(LA(u)|0)do;while((S0(i,l,0,0)|0)!=0);(l|0)!=(f|0)&&P2(o)}return u=0,w=h,u|0}function L0(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;return l=w,w=w+16|0,t=l,n=x0(e,A,t)|0,n|0?(w=l,n|0):(n=P(e|0,A|0,52)|0,B()|0,ci(t,n&15,i),n=0,w=l,n|0)}function H0(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0;if(o=w,w=w+16|0,l=o,t=x0(e,A,l)|0,t|0)return l=t,w=o,l|0;t=P(e|0,A|0,45)|0,B()|0,t=(LA(t&127)|0)==0,n=P(e|0,A|0,52)|0,B()|0,n=n&15;A:do if(!t){if(n|0)for(t=1;;){if(f=O(7,0,(15-t|0)*3|0)|0,!((f&e|0)==0&((B()|0)&A|0)==0))break A;if(t>>>0<n>>>0)t=t+1|0;else break}return He(l,n,0,5,i),f=0,w=o,f|0}while(!1);return ze(l,n,0,6,i),f=0,w=o,f|0}function l1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;if(n=P(e|0,A|0,45)|0,B()|0,!(LA(n&127)|0))return n=2,r[i>>2]=n,0;if(n=P(e|0,A|0,52)|0,B()|0,n=n&15,!n)return n=5,r[i>>2]=n,0;for(t=1;;){if(l=O(7,0,(15-t|0)*3|0)|0,!((l&e|0)==0&((B()|0)&A|0)==0)){t=2,e=6;break}if(t>>>0<n>>>0)t=t+1|0;else{t=5,e=6;break}}return(e|0)==6&&(r[i>>2]=t),0}function N2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0;k=w,w=w+128|0,u=k+112|0,l=k+96|0,h=k,n=P(e|0,A|0,52)|0,B()|0,f=n&15,r[u>>2]=f,o=P(e|0,A|0,45)|0,B()|0,o=o&127;A:do if(LA(o)|0){if(f|0)for(t=1;;){if(s=O(7,0,(15-t|0)*3|0)|0,!((s&e|0)==0&((B()|0)&A|0)==0)){n=0;break A}if(t>>>0<f>>>0)t=t+1|0;else break}if(n&1)n=1;else return s=O(f+1|0,0,52)|0,h=B()|0|A&-15728641,u=O(7,0,(14-f|0)*3|0)|0,h=N2((s|e)&~u,h&~(B()|0),i)|0,w=k,h|0}else n=0;while(!1);if(t=x0(e,A,l)|0,!t){n?(S2(l,u,h),s=5):(x2(l,u,h),s=6);A:do if(LA(o)|0)if(!f)e=5;else for(t=1;;){if(o=O(7,0,(15-t|0)*3|0)|0,!((o&e|0)==0&((B()|0)&A|0)==0)){e=2;break A}if(t>>>0<f>>>0)t=t+1|0;else{e=5;break}}else e=2;while(!1);Q0(i|0,-1,e<<2|0)|0;A:do if(n)for(l=0;;){if(o=h+(l<<4)|0,Ki(o,r[u>>2]|0)|0,o=r[o>>2]|0,f=r[i>>2]|0,(f|0)==-1|(f|0)==(o|0))t=i;else{n=0;do{if(n=n+1|0,n>>>0>=e>>>0){t=1;break A}t=i+(n<<2)|0,f=r[t>>2]|0}while(!((f|0)==-1|(f|0)==(o|0)))}if(r[t>>2]=o,l=l+1|0,l>>>0>=s>>>0){t=0;break}}else for(l=0;;){if(o=h+(l<<4)|0,S0(o,r[u>>2]|0,0,1)|0,o=r[o>>2]|0,f=r[i>>2]|0,(f|0)==-1|(f|0)==(o|0))t=i;else{n=0;do{if(n=n+1|0,n>>>0>=e>>>0){t=1;break A}t=i+(n<<2)|0,f=r[t>>2]|0}while(!((f|0)==-1|(f|0)==(o|0)))}if(r[t>>2]=o,l=l+1|0,l>>>0>=s>>>0){t=0;break}}while(!1)}return h=t,w=k,h|0}function o1(){return 12}function Ke(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0;if(e>>>0>15)return f=4,f|0;if(O(e|0,0,52)|0,f=B()|0|134225919,!e){i=0,t=0;do LA(t)|0&&(O(t|0,0,45)|0,o=f|(B()|0),e=A+(i<<3)|0,r[e>>2]=-1,r[e+4>>2]=o,i=i+1|0),t=t+1|0;while((t|0)!=122);return i=0,i|0}i=0,o=0;do{if(LA(o)|0){for(O(o|0,0,45)|0,t=1,n=-1,l=f|(B()|0);s=O(7,0,(15-t|0)*3|0)|0,n=n&~s,l=l&~(B()|0),(t|0)!=(e|0);)t=t+1|0;s=A+(i<<3)|0,r[s>>2]=n,r[s+4>>2]=l,i=i+1|0}o=o+1|0}while((o|0)!=122);return i=0,i|0}function f1(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0;if(_=w,w=w+16|0,Q=_,p=P(e|0,A|0,52)|0,B()|0,p=p&15,i>>>0>15)return p=4,w=_,p|0;if((p|0)<(i|0))return p=12,w=_,p|0;if((p|0)!=(i|0))if(l=O(i|0,0,52)|0,l=l|e,f=B()|0|A&-15728641,(p|0)>(i|0)){s=i;do b=O(7,0,(14-s|0)*3|0)|0,s=s+1|0,l=b|l,f=B()|0|f;while((s|0)<(p|0));b=l}else b=l;else b=e,f=A;D=P(b|0,f|0,45)|0,B()|0;A:do if(LA(D&127)|0){if(s=P(b|0,f|0,52)|0,B()|0,s=s&15,s|0)for(l=1;;){if(D=O(7,0,(15-l|0)*3|0)|0,!((D&b|0)==0&((B()|0)&f|0)==0)){u=33;break A}if(l>>>0<s>>>0)l=l+1|0;else break}if(D=t,r[D>>2]=0,r[D+4>>2]=0,(p|0)>(i|0)){for(D=A&-15728641,a=p;;){if(E=a,a=a+-1|0,a>>>0>15|(p|0)<(a|0)){u=19;break}if((p|0)!=(a|0))if(l=O(a|0,0,52)|0,l=l|e,s=B()|0|D,(p|0)<(E|0))k=l;else{u=a;do k=O(7,0,(14-u|0)*3|0)|0,u=u+1|0,l=k|l,s=B()|0|s;while((u|0)<(p|0));k=l}else k=e,s=A;if(h=P(k|0,s|0,45)|0,B()|0,!(LA(h&127)|0))l=0;else{h=P(k|0,s|0,52)|0,B()|0,h=h&15;e:do if(!h)l=0;else for(u=1;;){if(l=P(k|0,s|0,(15-u|0)*3|0)|0,B()|0,l=l&7,l|0)break e;if(u>>>0<h>>>0)u=u+1|0;else{l=0;break}}while(!1);l=(l|0)==0&1}if(s=P(e|0,A|0,(15-E|0)*3|0)|0,B()|0,s=s&7,(s|0)==7){n=5,u=42;break}if(l=(l|0)!=0,(s|0)==1&l){n=5,u=42;break}if(k=s+(((s|0)!=0&l)<<31>>31)|0,k|0&&(u=p-E|0,u=D0(7,0,u,((u|0)<0)<<31>>31)|0,h=B()|0,l?(l=zA(u|0,h|0,5,0)|0,l=V(l|0,B()|0,-5,-1)|0,l=m0(l|0,B()|0,6,0)|0,l=V(l|0,B()|0,1,0)|0,s=B()|0):(l=u,s=h),E=k+-1|0,E=zA(u|0,h|0,E|0,((E|0)<0)<<31>>31|0)|0,E=V(l|0,s|0,E|0,B()|0)|0,k=B()|0,h=t,h=V(E|0,k|0,r[h>>2]|0,r[h+4>>2]|0)|0,k=B()|0,E=t,r[E>>2]=h,r[E+4>>2]=k),(a|0)<=(i|0)){u=37;break}}if((u|0)==19)$(27795,27122,1367,27158);else if((u|0)==37){o=t,n=r[o+4>>2]|0,o=r[o>>2]|0;break}else if((u|0)==42)return w=_,n|0}else n=0,o=0}else u=33;while(!1);A:do if((u|0)==33)if(D=t,r[D>>2]=0,r[D+4>>2]=0,(p|0)>(i|0)){for(l=p;;){if(n=P(e|0,A|0,(15-l|0)*3|0)|0,B()|0,n=n&7,(n|0)==7){n=5;break}if(o=p-l|0,o=D0(7,0,o,((o|0)<0)<<31>>31)|0,n=zA(o|0,B()|0,n|0,0)|0,o=B()|0,D=t,o=V(r[D>>2]|0,r[D+4>>2]|0,n|0,o|0)|0,n=B()|0,D=t,r[D>>2]=o,r[D+4>>2]=n,l=l+-1|0,(l|0)<=(i|0))break A}return w=_,n|0}else n=0,o=0;while(!1);return Z0(b,f,p,Q)|0&&$(27795,27122,1327,27173),p=Q,Q=r[p+4>>2]|0,((n|0)>-1|(n|0)==-1&o>>>0>4294967295)&((Q|0)>(n|0)|((Q|0)==(n|0)?(r[p>>2]|0)>>>0>o>>>0:0))?(p=0,w=_,p|0):($(27795,27122,1407,27158),0)}function s1(e,A,i,t,n,l){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,l=l|0;var o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0;if(k=w,w=w+16|0,o=k,n>>>0>15)return l=4,w=k,l|0;if(f=P(i|0,t|0,52)|0,B()|0,f=f&15,(f|0)>(n|0))return l=12,w=k,l|0;if(Z0(i,t,n,o)|0&&$(27795,27122,1327,27173),h=o,u=r[h+4>>2]|0,!(((A|0)>-1|(A|0)==-1&e>>>0>4294967295)&((u|0)>(A|0)|((u|0)==(A|0)?(r[h>>2]|0)>>>0>e>>>0:0))))return l=2,w=k,l|0;h=n-f|0,n=O(n|0,0,52)|0,s=B()|0|t&-15728641,u=l,r[u>>2]=n|i,r[u+4>>2]=s,u=P(i|0,t|0,45)|0,B()|0;A:do if(LA(u&127)|0){if(f|0)for(o=1;;){if(u=O(7,0,(15-o|0)*3|0)|0,!((u&i|0)==0&((B()|0)&t|0)==0))break A;if(o>>>0<f>>>0)o=o+1|0;else break}if((h|0)<1)return l=0,w=k,l|0;for(u=f^15,t=-1,s=1,o=1;;){f=h-s|0,f=D0(7,0,f,((f|0)<0)<<31>>31)|0,i=B()|0;do if(o)if(o=zA(f|0,i|0,5,0)|0,o=V(o|0,B()|0,-5,-1)|0,o=m0(o|0,B()|0,6,0)|0,n=B()|0,(A|0)>(n|0)|(A|0)==(n|0)&e>>>0>o>>>0){A=V(e|0,A|0,-1,-1)|0,A=HA(A|0,B()|0,o|0,n|0)|0,o=B()|0,E=l,D=r[E>>2]|0,E=r[E+4>>2]|0,b=(u+t|0)*3|0,a=O(7,0,b|0)|0,E=E&~(B()|0),t=m0(A|0,o|0,f|0,i|0)|0,e=B()|0,n=V(t|0,e|0,2,0)|0,b=O(n|0,B()|0,b|0)|0,E=B()|0|E,n=l,r[n>>2]=b|D&~a,r[n+4>>2]=E,e=zA(t|0,e|0,f|0,i|0)|0,e=HA(A|0,o|0,e|0,B()|0)|0,o=0,A=B()|0;break}else{b=l,a=r[b>>2]|0,b=r[b+4>>2]|0,D=O(7,0,(u+t|0)*3|0)|0,b=b&~(B()|0),o=l,r[o>>2]=a&~D,r[o+4>>2]=b,o=1;break}else a=l,n=r[a>>2]|0,a=r[a+4>>2]|0,t=(u+t|0)*3|0,E=O(7,0,t|0)|0,a=a&~(B()|0),b=m0(e|0,A|0,f|0,i|0)|0,o=B()|0,t=O(b|0,o|0,t|0)|0,a=B()|0|a,D=l,r[D>>2]=t|n&~E,r[D+4>>2]=a,o=zA(b|0,o|0,f|0,i|0)|0,e=HA(e|0,A|0,o|0,B()|0)|0,o=0,A=B()|0;while(!1);if((h|0)>(s|0))t=~s,s=s+1|0;else{A=0;break}}return w=k,A|0}while(!1);if((h|0)<1)return b=0,w=k,b|0;for(n=f^15,o=1;;)if(D=h-o|0,D=D0(7,0,D,((D|0)<0)<<31>>31)|0,b=B()|0,s=l,i=r[s>>2]|0,s=r[s+4>>2]|0,f=(n-o|0)*3|0,t=O(7,0,f|0)|0,s=s&~(B()|0),E=m0(e|0,A|0,D|0,b|0)|0,a=B()|0,f=O(E|0,a|0,f|0)|0,s=B()|0|s,u=l,r[u>>2]=f|i&~t,r[u+4>>2]=s,b=zA(E|0,a|0,D|0,b|0)|0,e=HA(e|0,A|0,b|0,B()|0)|0,A=B()|0,(h|0)<=(o|0)){A=0;break}else o=o+1|0;return w=k,A|0}function Ze(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0;n=P(A|0,i|0,52)|0,B()|0,n=n&15,(A|0)==0&(i|0)==0|((t|0)>15|(n|0)>(t|0))?(l=-1,A=-1,i=0,n=0):(A=z2(A,i,n+1|0,t)|0,o=(B()|0)&-15728641,i=O(t|0,0,52)|0,i=A|i,o=o|(B()|0),A=(IA(i,o)|0)==0,l=n,A=A?-1:t,n=o),o=e,r[o>>2]=i,r[o+4>>2]=n,r[e+8>>2]=l,r[e+12>>2]=A}function Y2(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0;if(n=P(e|0,A|0,52)|0,B()|0,n=n&15,l=t+8|0,r[l>>2]=n,(e|0)==0&(A|0)==0|((i|0)>15|(n|0)>(i|0))){i=t,r[i>>2]=0,r[i+4>>2]=0,r[l>>2]=-1,r[t+12>>2]=-1;return}if(e=z2(e,A,n+1|0,i)|0,l=(B()|0)&-15728641,n=O(i|0,0,52)|0,n=e|n,l=l|(B()|0),e=t,r[e>>2]=n,r[e+4>>2]=l,e=t+12|0,IA(n,l)|0){r[e>>2]=i;return}else{r[e>>2]=-1;return}}function Je(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0;if(i=e,A=r[i>>2]|0,i=r[i+4>>2]|0,!((A|0)==0&(i|0)==0)&&(t=P(A|0,i|0,52)|0,B()|0,t=t&15,f=O(1,0,(t^15)*3|0)|0,A=V(f|0,B()|0,A|0,i|0)|0,i=B()|0,f=e,r[f>>2]=A,r[f+4>>2]=i,f=e+8|0,o=r[f>>2]|0,!((t|0)<(o|0)))){for(s=e+12|0,l=t;;){if((l|0)==(o|0)){t=5;break}if(u=(l|0)==(r[s>>2]|0),n=(15-l|0)*3|0,t=P(A|0,i|0,n|0)|0,B()|0,t=t&7,u&((t|0)==1&!0)){t=7;break}if(!((t|0)==7&!0)){t=10;break}if(u=O(1,0,n|0)|0,A=V(A|0,i|0,u|0,B()|0)|0,i=B()|0,u=e,r[u>>2]=A,r[u+4>>2]=i,(l|0)>(o|0))l=l+-1|0;else{t=10;break}}if((t|0)==5){u=e,r[u>>2]=0,r[u+4>>2]=0,r[f>>2]=-1,r[s>>2]=-1;return}else if((t|0)==7){o=O(1,0,n|0)|0,o=V(A|0,i|0,o|0,B()|0)|0,f=B()|0,u=e,r[u>>2]=o,r[u+4>>2]=f,r[s>>2]=l+-1;return}else if((t|0)==10)return}}function J0(e){e=+e;var A=0;return A=e<0?e+6.283185307179586:e,+(e>=6.283185307179586?A+-6.283185307179586:A)}function z0(e,A){return e=e|0,A=A|0,+hA(+(+g[e>>3]-+g[A>>3]))<17453292519943298e-27?(A=+hA(+(+g[e+8>>3]-+g[A+8>>3]))<17453292519943298e-27,A|0):(A=0,A|0)}function qA(e,A){switch(e=+e,A=A|0,A|0){case 1:{e=e<0?e+6.283185307179586:e;break}case 2:{e=e>0?e+-6.283185307179586:e;break}}return+e}function u1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0;return n=+g[A>>3],t=+g[e>>3],l=+gA(+((n-t)*.5)),i=+gA(+((+g[A+8>>3]-+g[e+8>>3])*.5)),i=l*l+i*(+QA(+n)*+QA(+t)*i),+(+A0(+ +DA(+i),+ +DA(+(1-i)))*2)}function X0(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0;return n=+g[A>>3],t=+g[e>>3],l=+gA(+((n-t)*.5)),i=+gA(+((+g[A+8>>3]-+g[e+8>>3])*.5)),i=l*l+i*(+QA(+n)*+QA(+t)*i),+(+A0(+ +DA(+i),+ +DA(+(1-i)))*2*6371.007180918475)}function h1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0;return n=+g[A>>3],t=+g[e>>3],l=+gA(+((n-t)*.5)),i=+gA(+((+g[A+8>>3]-+g[e+8>>3])*.5)),i=l*l+i*(+QA(+n)*+QA(+t)*i),+(+A0(+ +DA(+i),+ +DA(+(1-i)))*2*6371.007180918475*1e3)}function g1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0;return l=+g[A>>3],t=+QA(+l),n=+g[A+8>>3]-+g[e+8>>3],o=t*+gA(+n),i=+g[e>>3],+ +A0(+o,+(+gA(+l)*+QA(+i)-+QA(+n)*(t*+gA(+i))))}function w1(e,A,i,t){e=e|0,A=+A,i=+i,t=t|0;var n=0,l=0,o=0,f=0;if(i<1e-16){r[t>>2]=r[e>>2],r[t+4>>2]=r[e+4>>2],r[t+8>>2]=r[e+8>>2],r[t+12>>2]=r[e+12>>2];return}l=A<0?A+6.283185307179586:A,l=A>=6.283185307179586?l+-6.283185307179586:l;do if(l<1e-16)A=+g[e>>3]+i,g[t>>3]=A,n=t;else{if(n=+hA(+(l+-3.141592653589793))<1e-16,A=+g[e>>3],n){A=A-i,g[t>>3]=A,n=t;break}if(o=+QA(+i),i=+gA(+i),A=o*+gA(+A)+ +QA(+l)*(i*+QA(+A)),A=A>1?1:A,A=+ri(+(A<-1?-1:A)),g[t>>3]=A,+hA(+(A+-1.5707963267948966))<1e-16){g[t>>3]=1.5707963267948966,g[t+8>>3]=0;return}if(+hA(+(A+1.5707963267948966))<1e-16){g[t>>3]=-1.5707963267948966,g[t+8>>3]=0;return}if(f=1/+QA(+A),l=i*+gA(+l)*f,i=+g[e>>3],A=f*((o-+gA(+A)*+gA(+i))/+QA(+i)),o=l>1?1:l,A=A>1?1:A,A=+g[e+8>>3]+ +A0(+(o<-1?-1:o),+(A<-1?-1:A)),A>3.141592653589793)do A=A+-6.283185307179586;while(A>3.141592653589793);if(A<-3.141592653589793)do A=A+6.283185307179586;while(A<-3.141592653589793);g[t+8>>3]=A;return}while(!1);if(+hA(+(A+-1.5707963267948966))<1e-16){g[n>>3]=1.5707963267948966,g[t+8>>3]=0;return}if(+hA(+(A+1.5707963267948966))<1e-16){g[n>>3]=-1.5707963267948966,g[t+8>>3]=0;return}if(A=+g[e+8>>3],A>3.141592653589793)do A=A+-6.283185307179586;while(A>3.141592653589793);if(A<-3.141592653589793)do A=A+6.283185307179586;while(A<-3.141592653589793);g[t+8>>3]=A}function j2(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[20656+(e<<3)>>3],A=0,A|0)}function v1(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[20784+(e<<3)>>3],A=0,A|0)}function k1(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[20912+(e<<3)>>3],A=0,A|0)}function B1(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[21040+(e<<3)>>3],A=0,A|0)}function se(e,A){e=e|0,A=A|0;var i=0;return e>>>0>15?(A=4,A|0):(i=D0(7,0,e,((e|0)<0)<<31>>31)|0,i=zA(i|0,B()|0,120,0)|0,e=B()|0,r[A>>2]=i|2,r[A+4>>2]=e,A=0,A|0)}function W2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0;return E=+g[A>>3],h=+g[e>>3],s=+gA(+((E-h)*.5)),l=+g[A+8>>3],u=+g[e+8>>3],o=+gA(+((l-u)*.5)),f=+QA(+h),k=+QA(+E),o=s*s+o*(k*f*o),o=+A0(+ +DA(+o),+ +DA(+(1-o)))*2,s=+g[i>>3],E=+gA(+((s-E)*.5)),t=+g[i+8>>3],l=+gA(+((t-l)*.5)),n=+QA(+s),l=E*E+l*(k*n*l),l=+A0(+ +DA(+l),+ +DA(+(1-l)))*2,s=+gA(+((h-s)*.5)),t=+gA(+((u-t)*.5)),t=s*s+t*(f*n*t),t=+A0(+ +DA(+t),+ +DA(+(1-t)))*2,n=(o+l+t)*.5,+(+Le(+ +DA(+(+$A(+(n*.5))*+$A(+((n-o)*.5))*+$A(+((n-l)*.5))*+$A(+((n-t)*.5)))))*4)}function Xe(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0;if(f=w,w=w+192|0,l=f+168|0,o=f,n=L0(e,A,l)|0,n|0)return i=n,w=f,i|0;if(H0(e,A,o)|0&&$(27795,27190,415,27199),A=r[o>>2]|0,(A|0)>0){if(t=+W2(o+8|0,o+8+(((A|0)!=1&1)<<4)|0,l)+0,(A|0)!=1){e=1;do n=e,e=e+1|0,t=t+ +W2(o+8+(n<<4)|0,o+8+(((e|0)%(A|0)|0)<<4)|0,l);while((e|0)<(A|0))}}else t=0;return g[i>>3]=t,i=0,w=f,i|0}function E1(e,A,i){return e=e|0,A=A|0,i=i|0,e=Xe(e,A,i)|0,e|0||(g[i>>3]=+g[i>>3]*6371.007180918475*6371.007180918475),e|0}function a1(e,A,i){return e=e|0,A=A|0,i=i|0,e=Xe(e,A,i)|0,e|0||(g[i>>3]=+g[i>>3]*6371.007180918475*6371.007180918475*1e3*1e3),e|0}function D1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(f=w,w=w+176|0,o=f,e=fe(e,A,o)|0,e|0)return o=e,w=f,o|0;if(g[i>>3]=0,e=r[o>>2]|0,(e|0)<=1)return o=0,w=f,o|0;A=e+-1|0,e=0,t=+g[o+8>>3],n=+g[o+16>>3],l=0;do e=e+1|0,u=t,t=+g[o+8+(e<<4)>>3],h=+gA(+((t-u)*.5)),s=n,n=+g[o+8+(e<<4)+8>>3],s=+gA(+((n-s)*.5)),s=h*h+s*(+QA(+t)*+QA(+u)*s),l=l+ +A0(+ +DA(+s),+ +DA(+(1-s)))*2;while((e|0)<(A|0));return g[i>>3]=l,o=0,w=f,o|0}function b1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(f=w,w=w+176|0,o=f,e=fe(e,A,o)|0,e|0)return o=e,l=+g[i>>3],l=l*6371.007180918475,g[i>>3]=l,w=f,o|0;if(g[i>>3]=0,e=r[o>>2]|0,(e|0)<=1)return o=0,l=0,l=l*6371.007180918475,g[i>>3]=l,w=f,o|0;A=e+-1|0,e=0,t=+g[o+8>>3],n=+g[o+16>>3],l=0;do e=e+1|0,u=t,t=+g[o+8+(e<<4)>>3],h=+gA(+((t-u)*.5)),s=n,n=+g[o+8+(e<<4)+8>>3],s=+gA(+((n-s)*.5)),s=h*h+s*(+QA(+u)*+QA(+t)*s),l=l+ +A0(+ +DA(+s),+ +DA(+(1-s)))*2;while((e|0)!=(A|0));return g[i>>3]=l,o=0,h=l,h=h*6371.007180918475,g[i>>3]=h,w=f,o|0}function m1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(f=w,w=w+176|0,o=f,e=fe(e,A,o)|0,e|0)return o=e,l=+g[i>>3],l=l*6371.007180918475,l=l*1e3,g[i>>3]=l,w=f,o|0;if(g[i>>3]=0,e=r[o>>2]|0,(e|0)<=1)return o=0,l=0,l=l*6371.007180918475,l=l*1e3,g[i>>3]=l,w=f,o|0;A=e+-1|0,e=0,t=+g[o+8>>3],n=+g[o+16>>3],l=0;do e=e+1|0,u=t,t=+g[o+8+(e<<4)>>3],h=+gA(+((t-u)*.5)),s=n,n=+g[o+8+(e<<4)+8>>3],s=+gA(+((n-s)*.5)),s=h*h+s*(+QA(+u)*+QA(+t)*s),l=l+ +A0(+ +DA(+s),+ +DA(+(1-s)))*2;while((e|0)!=(A|0));return g[i>>3]=l,o=0,h=l,h=h*6371.007180918475,h=h*1e3,g[i>>3]=h,w=f,o|0}function Q1(e){e=e|0;var A=0,i=0,t=0;return A=XA(1,12)|0,A||$(27280,27235,49,27293),i=e+4|0,t=r[i>>2]|0,t|0?(t=t+8|0,r[t>>2]=A,r[i>>2]=A,A|0):(r[e>>2]|0&&$(27310,27235,61,27333),t=e,r[t>>2]=A,r[i>>2]=A,A|0)}function C1(e,A){e=e|0,A=A|0;var i=0,t=0;return t=f0(24)|0,t||$(27347,27235,78,27361),r[t>>2]=r[A>>2],r[t+4>>2]=r[A+4>>2],r[t+8>>2]=r[A+8>>2],r[t+12>>2]=r[A+12>>2],r[t+16>>2]=0,A=e+4|0,i=r[A>>2]|0,i|0?(r[i+16>>2]=t,r[A>>2]=t,t|0):(r[e>>2]|0&&$(27376,27235,82,27361),r[e>>2]=t,r[A>>2]=t,t|0)}function V2(e){e=e|0;var A=0,i=0,t=0,n=0;if(e)for(t=1;;){if(A=r[e>>2]|0,A|0)do{if(i=r[A>>2]|0,i|0)do n=i,i=r[i+16>>2]|0,c(n);while((i|0)!=0);n=A,A=r[A+8>>2]|0,c(n)}while((A|0)!=0);if(A=e,e=r[e+8>>2]|0,t||c(A),e)t=0;else break}}function _1(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0,nA=0,wA=0,q=0,Y=0,R=0,uA=0,yA=0,oA=0;if(n=e+8|0,r[n>>2]|0)return oA=1,oA|0;if(t=r[e>>2]|0,!t)return oA=0,oA|0;A=t,i=0;do i=i+1|0,A=r[A+8>>2]|0;while((A|0)!=0);if(i>>>0<2)return oA=0,oA|0;uA=f0(i<<2)|0,uA||$(27396,27235,317,27415),R=f0(i<<5)|0,R||$(27437,27235,321,27415),r[e>>2]=0,N=e+4|0,r[N>>2]=0,r[n>>2]=0,i=0,Y=0,S=0,k=0;A:for(;;){if(h=r[t>>2]|0,h){l=0,o=h;do{if(s=+g[o+8>>3],A=o,o=r[o+16>>2]|0,u=(o|0)==0,n=u?h:o,f=+g[n+8>>3],+hA(+(s-f))>3.141592653589793){oA=14;break}l=l+(f-s)*(+g[A>>3]+ +g[n>>3])}while(!u);if((oA|0)==14){oA=0,l=0,A=h;do m=+g[A+8>>3],q=A+16|0,wA=r[q>>2]|0,wA=(wA|0)==0?h:wA,C=+g[wA+8>>3],l=l+(+g[A>>3]+ +g[wA>>3])*((C<0?C+6.283185307179586:C)-(m<0?m+6.283185307179586:m)),A=r[((A|0)==0?t:q)>>2]|0;while((A|0)!=0)}l>0?(r[uA+(Y<<2)>>2]=t,Y=Y+1|0,n=S,A=k):oA=19}else oA=19;if((oA|0)==19){oA=0;do if(i){if(A=i+8|0,r[A>>2]|0){oA=21;break A}if(i=XA(1,12)|0,!i){oA=23;break A}r[A>>2]=i,n=i+4|0,o=i,A=k}else if(k){n=N,o=k+8|0,A=t,i=e;break}else if(r[e>>2]|0){oA=27;break A}else{n=N,o=e,A=t,i=e;break}while(!1);if(r[o>>2]=t,r[n>>2]=t,o=R+(S<<5)|0,u=r[t>>2]|0,u){for(h=R+(S<<5)+8|0,g[h>>3]=17976931348623157e292,k=R+(S<<5)+24|0,g[k>>3]=17976931348623157e292,g[o>>3]=-17976931348623157e292,E=R+(S<<5)+16|0,g[E>>3]=-17976931348623157e292,p=17976931348623157e292,_=-17976931348623157e292,n=0,a=u,s=17976931348623157e292,b=17976931348623157e292,Q=-17976931348623157e292,f=-17976931348623157e292;l=+g[a>>3],m=+g[a+8>>3],a=r[a+16>>2]|0,D=(a|0)==0,C=+g[(D?u:a)+8>>3],l<s&&(g[h>>3]=l,s=l),m<b&&(g[k>>3]=m,b=m),l>Q?g[o>>3]=l:l=Q,m>f&&(g[E>>3]=m,f=m),p=m>0&m<p?m:p,_=m<0&m>_?m:_,n=n|+hA(+(m-C))>3.141592653589793,!D;)Q=l;n&&(g[E>>3]=_,g[k>>3]=p)}else r[o>>2]=0,r[o+4>>2]=0,r[o+8>>2]=0,r[o+12>>2]=0,r[o+16>>2]=0,r[o+20>>2]=0,r[o+24>>2]=0,r[o+28>>2]=0;n=S+1|0}if(q=t+8|0,t=r[q>>2]|0,r[q>>2]=0,t)S=n,k=A;else{oA=45;break}}if((oA|0)==21)$(27213,27235,35,27247);else if((oA|0)==23)$(27267,27235,37,27247);else if((oA|0)==27)$(27310,27235,61,27333);else if((oA|0)==45){A:do if((Y|0)>0){for(q=(n|0)==0,nA=n<<2,wA=(e|0)==0,rA=0,A=0;;){if(U=r[uA+(rA<<2)>>2]|0,q)oA=73;else{if(S=f0(nA)|0,!S){oA=50;break}if(N=f0(nA)|0,!N){oA=52;break}e:do if(wA)i=0;else{for(n=0,i=0,o=e;t=R+(n<<5)|0,c2(r[o>>2]|0,t,r[U>>2]|0)|0?(r[S+(i<<2)>>2]=o,r[N+(i<<2)>>2]=t,D=i+1|0):D=i,o=r[o+8>>2]|0,o;)n=n+1|0,i=D;if((D|0)>0)if(t=r[S>>2]|0,(D|0)==1)i=t;else for(E=0,a=-1,i=t,k=t;;){for(u=r[k>>2]|0,t=0,o=0;n=r[r[S+(o<<2)>>2]>>2]|0,(n|0)==(u|0)?h=t:h=t+((c2(n,r[N+(o<<2)>>2]|0,r[u>>2]|0)|0)&1)|0,o=o+1|0,(o|0)!=(D|0);)t=h;if(n=(h|0)>(a|0),i=n?k:i,t=E+1|0,(t|0)==(D|0))break e;E=t,a=n?h:a,k=r[S+(t<<2)>>2]|0}else i=0}while(!1);if(c(S),c(N),i){if(n=i+4|0,t=r[n>>2]|0,t)i=t+8|0;else if(r[i>>2]|0){oA=70;break}r[i>>2]=U,r[n>>2]=U}else oA=73}if((oA|0)==73){if(oA=0,A=r[U>>2]|0,A|0)do N=A,A=r[A+16>>2]|0,c(N);while((A|0)!=0);c(U),A=1}if(rA=rA+1|0,(rA|0)>=(Y|0)){yA=A;break A}}(oA|0)==50?$(27452,27235,249,27471):(oA|0)==52?$(27490,27235,252,27471):(oA|0)==70&&$(27310,27235,61,27333)}else yA=0;while(!1);return c(uA),c(R),oA=yA,oA|0}return 0}function c2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(!(Oe(A,i)|0)||(A=p2(A)|0,t=+g[i>>3],n=+g[i+8>>3],n=A&n<0?n+6.283185307179586:n,e=r[e>>2]|0,!e))return e=0,e|0;if(A){A=0,u=n,i=e;A:for(;;){for(;o=+g[i>>3],n=+g[i+8>>3],i=i+16|0,h=r[i>>2]|0,h=(h|0)==0?e:h,l=+g[h>>3],f=+g[h+8>>3],o>l?(s=o,o=f):(s=l,l=o,o=n,n=f),t=t==l|t==s?t+2220446049250313e-31:t,!!(t<l|t>s);)if(i=r[i>>2]|0,!i){i=22;break A}if(f=o<0?o+6.283185307179586:o,o=n<0?n+6.283185307179586:n,u=f==u|o==u?u+-2220446049250313e-31:u,s=f+(o-f)*((t-l)/(s-l)),(s<0?s+6.283185307179586:s)>u&&(A=A^1),i=r[i>>2]|0,!i){i=22;break}}if((i|0)==22)return A|0}else{A=0,u=n,i=e;A:for(;;){for(;o=+g[i>>3],n=+g[i+8>>3],i=i+16|0,h=r[i>>2]|0,h=(h|0)==0?e:h,l=+g[h>>3],f=+g[h+8>>3],o>l?(s=o,o=f):(s=l,l=o,o=n,n=f),t=t==l|t==s?t+2220446049250313e-31:t,!!(t<l|t>s);)if(i=r[i>>2]|0,!i){i=22;break A}if(u=o==u|n==u?u+-2220446049250313e-31:u,o+(n-o)*((t-l)/(s-l))>u&&(A=A^1),i=r[i>>2]|0,!i){i=22;break}}if((i|0)==22)return A|0}return 0}function v0(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0;if(_=w,w=w+32|0,p=_+16|0,Q=_,l=P(e|0,A|0,52)|0,B()|0,l=l&15,a=P(i|0,t|0,52)|0,B()|0,(l|0)!=(a&15|0))return p=12,w=_,p|0;if(u=P(e|0,A|0,45)|0,B()|0,u=u&127,h=P(i|0,t|0,45)|0,B()|0,h=h&127,u>>>0>121|h>>>0>121)return p=5,w=_,p|0;if(a=(u|0)!=(h|0),a){if(f=Ge(u,h)|0,(f|0)==7)return p=1,w=_,p|0;s=Ge(h,u)|0,(s|0)==7?$(27514,27538,161,27548):(D=f,o=s)}else D=0,o=0;k=LA(u)|0,E=LA(h)|0,r[p>>2]=0,r[p+4>>2]=0,r[p+8>>2]=0,r[p+12>>2]=0;do if(D){if(h=r[4272+(u*28|0)+(D<<2)>>2]|0,f=(h|0)>0,E)if(f){u=0,s=i,f=t;do s=t1(s,f)|0,f=B()|0,o=a0(o)|0,(o|0)==1&&(o=a0(1)|0),u=u+1|0;while((u|0)!=(h|0));h=o,u=s,s=f}else h=o,u=i,s=t;else if(f){u=0,s=i,f=t;do s=We(s,f)|0,f=B()|0,o=a0(o)|0,u=u+1|0;while((u|0)!=(h|0));h=o,u=s,s=f}else h=o,u=i,s=t;if(ce(u,s,p)|0,a||$(27563,27538,191,27548),f=(k|0)!=0,o=(E|0)!=0,f&o&&$(27590,27538,192,27548),f){if(o=JA(e,A)|0,(o|0)==7){l=5;break}if(d[22e3+(o*7|0)+D>>0]|0){l=1;break}s=r[21168+(o*28|0)+(D<<2)>>2]|0,u=s}else if(o){if(o=JA(u,s)|0,(o|0)==7){l=5;break}if(d[22e3+(o*7|0)+h>>0]|0){l=1;break}u=0,s=r[21168+(h*28|0)+(o<<2)>>2]|0}else u=0,s=0;if((u|s|0)<0)l=5;else{if((s|0)>0){f=p+4|0,o=0;do oe(f),o=o+1|0;while((o|0)!=(s|0))}if(r[Q>>2]=0,r[Q+4>>2]=0,r[Q+8>>2]=0,T2(Q,D),l|0)for(;e0(l)|0?le(Q):y0(Q),(l|0)>1;)l=l+-1|0;if((u|0)>0){l=0;do oe(Q),l=l+1|0;while((l|0)!=(u|0))}b=p+4|0,KA(b,Q,b),cA(b),b=51}}else if(ce(i,t,p)|0,(k|0)!=0&(E|0)!=0)if((h|0)!=(u|0)&&$(27621,27538,261,27548),o=JA(e,A)|0,l=JA(i,t)|0,(o|0)==7|(l|0)==7)l=5;else if(d[22e3+(o*7|0)+l>>0]|0)l=1;else if(o=r[21168+(o*28|0)+(l<<2)>>2]|0,(o|0)>0){f=p+4|0,l=0;do oe(f),l=l+1|0;while((l|0)!=(o|0));b=51}else b=51;else b=51;while(!1);return(b|0)==51&&(l=p+4|0,r[n>>2]=r[l>>2],r[n+4>>2]=r[l+4>>2],r[n+8>>2]=r[l+8>>2],l=0),p=l,w=_,p|0}function K2(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0;if(b=w,w=w+48|0,u=b+36|0,o=b+24|0,f=b+12|0,s=b,n=P(e|0,A|0,52)|0,B()|0,n=n&15,E=P(e|0,A|0,45)|0,B()|0,E=E&127,E>>>0>121)return t=5,w=b,t|0;if(h=LA(E)|0,O(n|0,0,52)|0,Q=B()|0|134225919,l=t,r[l>>2]=-1,r[l+4>>2]=Q,!n)return n=ne(i)|0,(n|0)==7||(n=Fe(E,n)|0,(n|0)==127)?(Q=1,w=b,Q|0):(a=O(n|0,0,45)|0,D=B()|0,E=t,D=r[E+4>>2]&-1040385|D,Q=t,r[Q>>2]=r[E>>2]|a,r[Q+4>>2]=D,Q=0,w=b,Q|0);for(r[u>>2]=r[i>>2],r[u+4>>2]=r[i+4>>2],r[u+8>>2]=r[i+8>>2],i=n;;){if(l=i,i=i+-1|0,r[o>>2]=r[u>>2],r[o+4>>2]=r[u+4>>2],r[o+8>>2]=r[u+8>>2],e0(l)|0){if(n=di(u)|0,n|0){i=13;break}r[f>>2]=r[u>>2],r[f+4>>2]=r[u+4>>2],r[f+8>>2]=r[u+8>>2],le(f)}else{if(n=Fi(u)|0,n|0){i=13;break}r[f>>2]=r[u>>2],r[f+4>>2]=r[u+4>>2],r[f+8>>2]=r[u+8>>2],y0(f)}if(Se(o,f,s),cA(s),n=t,_=r[n>>2]|0,n=r[n+4>>2]|0,C=(15-l|0)*3|0,p=O(7,0,C|0)|0,n=n&~(B()|0),C=O(ne(s)|0,0,C|0)|0,n=B()|0|n,Q=t,r[Q>>2]=C|_&~p,r[Q+4>>2]=n,(l|0)<=1){i=14;break}}A:do if((i|0)!=13&&(i|0)==14)if((r[u>>2]|0)<=1&&(r[u+4>>2]|0)<=1&&(r[u+8>>2]|0)<=1){i=ne(u)|0,n=Fe(E,i)|0,(n|0)==127?s=0:s=LA(n)|0;e:do if(i){if(h){if(n=JA(e,A)|0,(n|0)==7){n=5;break A}if(l=r[21376+(n*28|0)+(i<<2)>>2]|0,(l|0)>0){n=i,i=0;do n=M0(n)|0,i=i+1|0;while((i|0)!=(l|0))}else n=i;if((n|0)==1){n=9;break A}i=Fe(E,n)|0,(i|0)==127&&$(27648,27538,411,27678),LA(i)|0?$(27693,27538,412,27678):(D=i,a=l,k=n)}else D=n,a=0,k=i;if(f=r[4272+(E*28|0)+(k<<2)>>2]|0,(f|0)<=-1&&$(27724,27538,419,27678),!s){if((a|0)<0){n=5;break A}if(a|0){l=t,n=0,i=r[l>>2]|0,l=r[l+4>>2]|0;do i=I0(i,l)|0,l=B()|0,C=t,r[C>>2]=i,r[C+4>>2]=l,n=n+1|0;while((n|0)<(a|0))}if((f|0)<=0){n=D,i=58;break}for(l=t,n=0,i=r[l>>2]|0,l=r[l+4>>2]|0;;)if(i=I0(i,l)|0,l=B()|0,C=t,r[C>>2]=i,r[C+4>>2]=l,n=n+1|0,(n|0)==(f|0)){n=D,i=58;break e}}if(o=Ge(D,E)|0,(o|0)==7&&$(27514,27538,428,27678),n=t,i=r[n>>2]|0,n=r[n+4>>2]|0,(f|0)>0){l=0;do i=I0(i,n)|0,n=B()|0,C=t,r[C>>2]=i,r[C+4>>2]=n,l=l+1|0;while((l|0)!=(f|0))}if(n=JA(i,n)|0,(n|0)==7&&$(27795,27538,440,27678),i=de(D)|0,i=r[(i?21792:21584)+(o*28|0)+(n<<2)>>2]|0,(i|0)<0&&$(27795,27538,454,27678),!i)n=D,i=58;else{o=t,n=0,l=r[o>>2]|0,o=r[o+4>>2]|0;do l=je(l,o)|0,o=B()|0,C=t,r[C>>2]=l,r[C+4>>2]=o,n=n+1|0;while((n|0)<(i|0));n=D,i=58}}else if((h|0)!=0&(s|0)!=0){if(i=JA(e,A)|0,l=t,l=JA(r[l>>2]|0,r[l+4>>2]|0)|0,(i|0)==7|(l|0)==7){n=5;break A}if(l=r[21376+(i*28|0)+(l<<2)>>2]|0,(l|0)<0){n=5;break A}if(!l)i=59;else{f=t,i=0,o=r[f>>2]|0,f=r[f+4>>2]|0;do o=I0(o,f)|0,f=B()|0,C=t,r[C>>2]=o,r[C+4>>2]=f,i=i+1|0;while((i|0)<(l|0));i=58}}else i=58;while(!1);if((i|0)==58&&s&&(i=59),(i|0)==59&&(C=t,(JA(r[C>>2]|0,r[C+4>>2]|0)|0)==1)){n=9;break}C=t,p=r[C>>2]|0,C=r[C+4>>2]&-1040385,_=O(n|0,0,45)|0,C=C|(B()|0),n=t,r[n>>2]=p|_,r[n+4>>2]=C,n=0}else n=1;while(!1);return C=n,w=b,C|0}function p1(e,A,i,t,n,l){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,l=l|0;var o=0,f=0;return f=w,w=w+16|0,o=f,n?e=15:(e=v0(e,A,i,t,o)|0,e||(Oi(o,l),e=0)),w=f,e|0}function y1(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0;return o=w,w=w+16|0,l=o,t?i=15:(i=Ri(i,l)|0,i||(i=K2(e,A,l,n)|0)),w=o,i|0}function M1(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0;return s=w,w=w+32|0,o=s+12|0,f=s,l=v0(e,A,e,A,o)|0,l|0?(f=l,w=s,f|0):(e=v0(e,A,i,t,f)|0,e|0?(f=e,w=s,f|0):(o=xe(o,f)|0,f=n,r[f>>2]=o,r[f+4>>2]=((o|0)<0)<<31>>31,f=0,w=s,f|0))}function I1(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0;return s=w,w=w+32|0,o=s+12|0,f=s,l=v0(e,A,e,A,o)|0,!l&&(l=v0(e,A,i,t,f)|0,!l)?(t=xe(o,f)|0,t=V(t|0,((t|0)<0)<<31>>31|0,1,0)|0,o=B()|0,f=n,r[f>>2]=t,r[f+4>>2]=o,f=0,w=s,f|0):(f=l,w=s,f|0)}function L1(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0;if(U=w,w=w+48|0,S=U+24|0,o=U+12|0,N=U,l=v0(e,A,e,A,S)|0,!l&&(l=v0(e,A,i,t,o)|0,!l)){C=xe(S,o)|0,m=((C|0)<0)<<31>>31,r[S>>2]=0,r[S+4>>2]=0,r[S+8>>2]=0,r[o>>2]=0,r[o+4>>2]=0,r[o+8>>2]=0,v0(e,A,e,A,S)|0&&$(27795,27538,692,27747),v0(e,A,i,t,o)|0&&$(27795,27538,697,27747),O2(S),O2(o),h=(C|0)==0?0:1/+(C|0),i=r[S>>2]|0,b=h*+((r[o>>2]|0)-i|0),Q=S+4|0,t=r[Q>>2]|0,p=h*+((r[o+4>>2]|0)-t|0),_=S+8|0,l=r[_>>2]|0,h=h*+((r[o+8>>2]|0)-l|0),r[N>>2]=i,k=N+4|0,r[k>>2]=t,E=N+8|0,r[E>>2]=l;A:do if((C|0)<0)l=0;else for(a=0,D=0;;){s=+(D>>>0)+4294967296*+(a|0),rA=b*s+ +(i|0),f=p*s+ +(t|0),s=h*s+ +(l|0),i=~~+we(+rA),o=~~+we(+f),l=~~+we(+s),rA=+hA(+(+(i|0)-rA)),f=+hA(+(+(o|0)-f)),s=+hA(+(+(l|0)-s));do if(rA>f&rA>s)i=0-(o+l)|0,t=o;else if(u=0-i|0,f>s){t=u-l|0;break}else{t=o,l=u-o|0;break}while(!1);if(r[N>>2]=i,r[k>>2]=t,r[E>>2]=l,Si(N),l=K2(e,A,N,n+(D<<3)|0)|0,l|0)break A;if(!((a|0)<(m|0)|(a|0)==(m|0)&D>>>0<C>>>0)){l=0;break A}i=V(D|0,a|0,1,0)|0,t=B()|0,a=t,D=i,i=r[S>>2]|0,t=r[Q>>2]|0,l=r[_>>2]|0}while(!1);return N=l,w=U,N|0}return N=l,w=U,N|0}function D0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0;if((i|0)==0&(t|0)==0)return n=0,l=1,tA(n|0),l|0;l=e,n=A,e=1,A=0;do o=(i&1|0)==0&!0,e=zA((o?1:l)|0,(o?0:n)|0,e|0,A|0)|0,A=B()|0,i=or(i|0,t|0,1)|0,t=B()|0,l=zA(l|0,n|0,l|0,n|0)|0,n=B()|0;while(!((i|0)==0&(t|0)==0));return tA(A|0),e|0}function qe(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0;f=w,w=w+16|0,l=f,o=P(e|0,A|0,52)|0,B()|0,o=o&15;do if(o){if(n=L0(e,A,l)|0,!n){u=+g[l>>3],s=1/+QA(+u),h=+g[25968+(o<<3)>>3],g[i>>3]=u+h,g[i+8>>3]=u-h,u=+g[l+8>>3],s=h*s,g[i+16>>3]=s+u,g[i+24>>3]=u-s;break}return o=n,w=f,o|0}else{if(n=P(e|0,A|0,45)|0,B()|0,n=n&127,n>>>0>121)return o=5,w=f,o|0;l=22064+(n<<5)|0,r[i>>2]=r[l>>2],r[i+4>>2]=r[l+4>>2],r[i+8>>2]=r[l+8>>2],r[i+12>>2]=r[l+12>>2],r[i+16>>2]=r[l+16>>2],r[i+20>>2]=r[l+20>>2],r[i+24>>2]=r[l+24>>2],r[i+28>>2]=r[l+28>>2];break}while(!1);return Li(i,t?1.4:1.1),t=26096+(o<<3)|0,(r[t>>2]|0)==(e|0)&&(r[t+4>>2]|0)==(A|0)&&(g[i>>3]=1.5707963267948966),o=26224+(o<<3)|0,(r[o>>2]|0)==(e|0)&&(r[o+4>>2]|0)==(A|0)&&(g[i+8>>3]=-1.5707963267948966),+g[i>>3]!=1.5707963267948966&&+g[i+8>>3]!=-1.5707963267948966?(o=0,w=f,o|0):(g[i+16>>3]=3.141592653589793,g[i+24>>3]=-3.141592653589793,o=0,w=f,o|0)}function P1(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0;u=w,w=w+48|0,o=u+32|0,l=u+40|0,f=u,Ne(o,0,0,0),s=r[o>>2]|0,o=r[o+4>>2]|0;do if(i>>>0<=15){if(n=$0(t)|0,n|0){t=f,r[t>>2]=0,r[t+4>>2]=0,r[f+8>>2]=n,r[f+12>>2]=-1,t=f+16|0,s=f+29|0,r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,d[t+12>>0]=0,d[s>>0]=d[l>>0]|0,d[s+1>>0]=d[l+1>>0]|0,d[s+2>>0]=d[l+2>>0]|0;break}if(n=XA((r[A+8>>2]|0)+1|0,32)|0,n){$e(A,n),h=f,r[h>>2]=s,r[h+4>>2]=o,r[f+8>>2]=0,r[f+12>>2]=i,r[f+16>>2]=t,r[f+20>>2]=A,r[f+24>>2]=n,d[f+28>>0]=0,s=f+29|0,d[s>>0]=d[l>>0]|0,d[s+1>>0]=d[l+1>>0]|0,d[s+2>>0]=d[l+2>>0]|0;break}else{t=f,r[t>>2]=0,r[t+4>>2]=0,r[f+8>>2]=13,r[f+12>>2]=-1,t=f+16|0,s=f+29|0,r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,d[t+12>>0]=0,d[s>>0]=d[l>>0]|0,d[s+1>>0]=d[l+1>>0]|0,d[s+2>>0]=d[l+2>>0]|0;break}}else s=f,r[s>>2]=0,r[s+4>>2]=0,r[f+8>>2]=4,r[f+12>>2]=-1,s=f+16|0,h=f+29|0,r[s>>2]=0,r[s+4>>2]=0,r[s+8>>2]=0,d[s+12>>0]=0,d[h>>0]=d[l>>0]|0,d[h+1>>0]=d[l+1>>0]|0,d[h+2>>0]=d[l+2>>0]|0;while(!1);ue(f),r[e>>2]=r[f>>2],r[e+4>>2]=r[f+4>>2],r[e+8>>2]=r[f+8>>2],r[e+12>>2]=r[f+12>>2],r[e+16>>2]=r[f+16>>2],r[e+20>>2]=r[f+20>>2],r[e+24>>2]=r[f+24>>2],r[e+28>>2]=r[f+28>>2],w=u}function ue(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0;if(m=w,w=w+336|0,a=m+168|0,D=m,t=e,i=r[t>>2]|0,t=r[t+4>>2]|0,(i|0)==0&(t|0)==0){w=m;return}if(A=e+28|0,d[A>>0]|0?(i=Z2(i,t)|0,t=B()|0):d[A>>0]=1,C=e+20|0,!(r[r[C>>2]>>2]|0)){A=e+24|0,i=r[A>>2]|0,i|0&&c(i),_=e,r[_>>2]=0,r[_+4>>2]=0,r[e+8>>2]=0,r[C>>2]=0,r[e+12>>2]=-1,r[e+16>>2]=0,r[A>>2]=0,w=m;return}_=e+16|0,A=r[_>>2]|0,n=A&15;A:do if((i|0)==0&(t|0)==0)p=e+24|0;else{b=e+12|0,k=(n|0)==3,h=A&255,s=(n|1|0)==3,E=e+24|0,u=(n+-1|0)>>>0<3,o=(n|2|0)==3,f=D+8|0;e:for(;;){if(l=P(i|0,t|0,52)|0,B()|0,l=l&15,(l|0)==(r[b>>2]|0)){switch(h&15){case 0:case 2:case 3:{if(n=L0(i,t,a)|0,n|0){Q=15;break e}if(A2(r[C>>2]|0,r[E>>2]|0,a)|0){Q=19;break e}break}}if(s&&(n=r[(r[C>>2]|0)+4>>2]|0,r[a>>2]=r[n>>2],r[a+4>>2]=r[n+4>>2],r[a+8>>2]=r[n+8>>2],r[a+12>>2]=r[n+12>>2],Oe(26832,a)|0)){if(Ve(r[(r[C>>2]|0)+4>>2]|0,l,D)|0){Q=25;break}if(n=D,(r[n>>2]|0)==(i|0)&&(r[n+4>>2]|0)==(t|0)){Q=29;break}}if(u){if(n=H0(i,t,a)|0,n|0){Q=32;break}if(qe(i,t,D,0)|0){Q=36;break}if(o&&X2(r[C>>2]|0,r[E>>2]|0,a,D)|0){Q=42;break}if(s&&q2(r[C>>2]|0,r[E>>2]|0,a,D)|0){Q=42;break}}if(k){if(A=qe(i,t,a,1)|0,n=r[E>>2]|0,A|0){Q=45;break}if(Re(n,a)|0){if(M2(D,a),y2(a,r[E>>2]|0)|0){Q=53;break}if(A2(r[C>>2]|0,r[E>>2]|0,f)|0){Q=53;break}if(q2(r[C>>2]|0,r[E>>2]|0,D,a)|0){Q=53;break}}}}do if((l|0)<(r[b>>2]|0)){if(A=qe(i,t,a,1)|0,n=r[E>>2]|0,A|0){Q=58;break e}if(!(Re(n,a)|0)){Q=73;break}if(y2(r[E>>2]|0,a)|0&&(M2(D,a),X2(r[C>>2]|0,r[E>>2]|0,D,a)|0)){Q=65;break e}if(i=U2(i,t,l+1|0,D)|0,i|0){Q=67;break e}t=D,i=r[t>>2]|0,t=r[t+4>>2]|0}else Q=73;while(!1);if((Q|0)==73&&(Q=0,i=Z2(i,t)|0,t=B()|0),(i|0)==0&(t|0)==0){p=E;break A}}switch(Q|0){case 15:{A=r[E>>2]|0,A|0&&c(A),Q=e,r[Q>>2]=0,r[Q+4>>2]=0,r[C>>2]=0,r[b>>2]=-1,r[_>>2]=0,r[E>>2]=0,r[e+8>>2]=n,Q=20;break}case 19:{r[e>>2]=i,r[e+4>>2]=t,Q=20;break}case 25:{$(27795,27761,470,27772);break}case 29:{r[e>>2]=i,r[e+4>>2]=t,w=m;return}case 32:{A=r[E>>2]|0,A|0&&c(A),p=e,r[p>>2]=0,r[p+4>>2]=0,r[C>>2]=0,r[b>>2]=-1,r[_>>2]=0,r[E>>2]=0,r[e+8>>2]=n,w=m;return}case 36:{$(27795,27761,493,27772);break}case 42:{r[e>>2]=i,r[e+4>>2]=t,w=m;return}case 45:{n|0&&c(n),Q=e,r[Q>>2]=0,r[Q+4>>2]=0,r[C>>2]=0,r[b>>2]=-1,r[_>>2]=0,r[E>>2]=0,r[e+8>>2]=A,Q=55;break}case 53:{r[e>>2]=i,r[e+4>>2]=t,Q=55;break}case 58:{n|0&&c(n),Q=e,r[Q>>2]=0,r[Q+4>>2]=0,r[C>>2]=0,r[b>>2]=-1,r[_>>2]=0,r[E>>2]=0,r[e+8>>2]=A,Q=71;break}case 65:{r[e>>2]=i,r[e+4>>2]=t,Q=71;break}case 67:{A=r[E>>2]|0,A|0&&c(A),p=e,r[p>>2]=0,r[p+4>>2]=0,r[C>>2]=0,r[b>>2]=-1,r[_>>2]=0,r[E>>2]=0,r[e+8>>2]=i,w=m;return}}if((Q|0)==20){w=m;return}else if((Q|0)==55){w=m;return}else if((Q|0)==71){w=m;return}}while(!1);A=r[p>>2]|0,A|0&&c(A),Q=e,r[Q>>2]=0,r[Q+4>>2]=0,r[e+8>>2]=0,r[C>>2]=0,r[e+12>>2]=-1,r[_>>2]=0,r[p>>2]=0,w=m}function Z2(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0;k=w,w=w+16|0,h=k,t=P(e|0,A|0,52)|0,B()|0,t=t&15,i=P(e|0,A|0,45)|0,B()|0;do if(t){for(;i=O(t+4095|0,0,52)|0,n=B()|0|A&-15728641,l=(15-t|0)*3|0,o=O(7,0,l|0)|0,f=B()|0,i=i|e|o,n=n|f,s=P(e|0,A|0,l|0)|0,B()|0,s=s&7,t=t+-1|0,!(s>>>0<6);)if(t)A=n,e=i;else{u=4;break}if((u|0)==4){i=P(i|0,n|0,45)|0,B()|0;break}return h=(s|0)==0&(IA(i,n)|0)!=0,h=O((h?2:1)+s|0,0,l|0)|0,u=B()|0|A&~f,h=h|e&~o,tA(u|0),w=k,h|0}while(!1);return i=i&127,i>>>0>120?(u=0,h=0,tA(u|0),w=k,h|0):(Ne(h,0,i+1|0,0),u=r[h+4>>2]|0,h=r[h>>2]|0,tA(u|0),w=k,h|0)}function T1(e,A,i,t,n,l){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0,l=l|0;var o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0;Q=w,w=w+160|0,k=Q+80|0,f=Q+64|0,E=Q+112|0,b=Q,P1(k,e,A,i),u=k,Ze(f,r[u>>2]|0,r[u+4>>2]|0,A),u=f,s=r[u>>2]|0,u=r[u+4>>2]|0,o=r[k+8>>2]|0,a=E+4|0,r[a>>2]=r[k>>2],r[a+4>>2]=r[k+4>>2],r[a+8>>2]=r[k+8>>2],r[a+12>>2]=r[k+12>>2],r[a+16>>2]=r[k+16>>2],r[a+20>>2]=r[k+20>>2],r[a+24>>2]=r[k+24>>2],r[a+28>>2]=r[k+28>>2],a=b,r[a>>2]=s,r[a+4>>2]=u,a=b+8|0,r[a>>2]=o,e=b+12|0,A=E,i=e+36|0;do r[e>>2]=r[A>>2],e=e+4|0,A=A+4|0;while((e|0)<(i|0));if(E=b+48|0,r[E>>2]=r[f>>2],r[E+4>>2]=r[f+4>>2],r[E+8>>2]=r[f+8>>2],r[E+12>>2]=r[f+12>>2],(s|0)==0&(u|0)==0)return b=o,w=Q,b|0;i=b+16|0,h=b+24|0,k=b+28|0,o=0,f=0,A=s,e=u;do{if(!((o|0)<(n|0)|(o|0)==(n|0)&f>>>0<t>>>0)){D=4;break}if(u=f,f=V(f|0,o|0,1,0)|0,o=B()|0,u=l+(u<<3)|0,r[u>>2]=A,r[u+4>>2]=e,Je(E),e=E,A=r[e>>2]|0,e=r[e+4>>2]|0,(A|0)==0&(e|0)==0){if(ue(i),A=i,e=r[A>>2]|0,A=r[A+4>>2]|0,(e|0)==0&(A|0)==0){D=10;break}Y2(e,A,r[k>>2]|0,E),e=E,A=r[e>>2]|0,e=r[e+4>>2]|0}u=b,r[u>>2]=A,r[u+4>>2]=e}while(!((A|0)==0&(e|0)==0));return(D|0)==4?(e=b+40|0,A=r[e>>2]|0,A|0&&c(A),D=b+16|0,r[D>>2]=0,r[D+4>>2]=0,r[h>>2]=0,r[b+36>>2]=0,r[k>>2]=-1,r[b+32>>2]=0,r[e>>2]=0,Y2(0,0,0,E),r[b>>2]=0,r[b+4>>2]=0,r[a>>2]=0,b=14,w=Q,b|0):((D|0)==10&&(r[b>>2]=0,r[b+4>>2]=0,r[a>>2]=r[h>>2]),b=r[a>>2]|0,w=Q,b|0)}function d1(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0;if(k=w,w=w+48|0,s=k+32|0,f=k+40|0,u=k,!(r[e>>2]|0))return h=t,r[h>>2]=0,r[h+4>>2]=0,h=0,w=k,h|0;Ne(s,0,0,0),o=s,n=r[o>>2]|0,o=r[o+4>>2]|0;do if(A>>>0>15)h=u,r[h>>2]=0,r[h+4>>2]=0,r[u+8>>2]=4,r[u+12>>2]=-1,h=u+16|0,i=u+29|0,r[h>>2]=0,r[h+4>>2]=0,r[h+8>>2]=0,d[h+12>>0]=0,d[i>>0]=d[f>>0]|0,d[i+1>>0]=d[f+1>>0]|0,d[i+2>>0]=d[f+2>>0]|0,i=4,h=9;else{if(i=$0(i)|0,i|0){s=u,r[s>>2]=0,r[s+4>>2]=0,r[u+8>>2]=i,r[u+12>>2]=-1,s=u+16|0,h=u+29|0,r[s>>2]=0,r[s+4>>2]=0,r[s+8>>2]=0,d[s+12>>0]=0,d[h>>0]=d[f>>0]|0,d[h+1>>0]=d[f+1>>0]|0,d[h+2>>0]=d[f+2>>0]|0,h=9;break}if(i=XA((r[e+8>>2]|0)+1|0,32)|0,!i){h=u,r[h>>2]=0,r[h+4>>2]=0,r[u+8>>2]=13,r[u+12>>2]=-1,h=u+16|0,i=u+29|0,r[h>>2]=0,r[h+4>>2]=0,r[h+8>>2]=0,d[h+12>>0]=0,d[i>>0]=d[f>>0]|0,d[i+1>>0]=d[f+1>>0]|0,d[i+2>>0]=d[f+2>>0]|0,i=13,h=9;break}$e(e,i),a=u,r[a>>2]=n,r[a+4>>2]=o,o=u+8|0,r[o>>2]=0,r[u+12>>2]=A,r[u+20>>2]=e,r[u+24>>2]=i,d[u+28>>0]=0,n=u+29|0,d[n>>0]=d[f>>0]|0,d[n+1>>0]=d[f+1>>0]|0,d[n+2>>0]=d[f+2>>0]|0,r[u+16>>2]=3,E=+yi(i),E=E*+pi(i),l=+hA(+ +g[i>>3]),l=E/+QA(+ +ge(+l,+ +hA(+ +g[i+8>>3])))*6371.007180918475*6371.007180918475,n=u+12|0,i=r[n>>2]|0;A:do if((i|0)>0)do{if(j2(i+-1|0,s)|0,!(l/+g[s>>3]>10))break A;a=r[n>>2]|0,i=a+-1|0,r[n>>2]=i}while((a|0)>1);while(!1);if(ue(u),n=t,r[n>>2]=0,r[n+4>>2]=0,n=u,i=r[n>>2]|0,n=r[n+4>>2]|0,!((i|0)==0&(n|0)==0))do Z0(i,n,A,s)|0,f=s,e=t,f=V(r[e>>2]|0,r[e+4>>2]|0,r[f>>2]|0,r[f+4>>2]|0)|0,e=B()|0,a=t,r[a>>2]=f,r[a+4>>2]=e,ue(u),a=u,i=r[a>>2]|0,n=r[a+4>>2]|0;while(!((i|0)==0&(n|0)==0));i=r[o>>2]|0}while(!1);return a=i,w=k,a|0}function q0(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0;if(!(Oe(A,i)|0)||(A=p2(A)|0,t=+g[i>>3],n=+g[i+8>>3],n=A&n<0?n+6.283185307179586:n,E=r[e>>2]|0,(E|0)<=0))return E=0,E|0;if(k=r[e+4>>2]|0,A){A=0,h=n,i=-1,e=0;A:for(;;){for(u=e;o=+g[k+(u<<4)>>3],n=+g[k+(u<<4)+8>>3],e=(i+2|0)%(E|0)|0,l=+g[k+(e<<4)>>3],f=+g[k+(e<<4)+8>>3],o>l?(s=o,o=f):(s=l,l=o,o=n,n=f),t=t==l|t==s?t+2220446049250313e-31:t,!!(t<l|t>s);)if(i=u+1|0,(i|0)>=(E|0)){i=22;break A}else e=u,u=i,i=e;if(f=o<0?o+6.283185307179586:o,o=n<0?n+6.283185307179586:n,h=f==h|o==h?h+-2220446049250313e-31:h,s=f+(o-f)*((t-l)/(s-l)),(s<0?s+6.283185307179586:s)>h&&(A=A^1),e=u+1|0,(e|0)>=(E|0)){i=22;break}else i=u}if((i|0)==22)return A|0}else{A=0,h=n,i=-1,e=0;A:for(;;){for(u=e;o=+g[k+(u<<4)>>3],n=+g[k+(u<<4)+8>>3],e=(i+2|0)%(E|0)|0,l=+g[k+(e<<4)>>3],f=+g[k+(e<<4)+8>>3],o>l?(s=o,o=f):(s=l,l=o,o=n,n=f),t=t==l|t==s?t+2220446049250313e-31:t,!!(t<l|t>s);)if(i=u+1|0,(i|0)>=(E|0)){i=22;break A}else e=u,u=i,i=e;if(h=o==h|n==h?h+-2220446049250313e-31:h,o+(n-o)*((t-l)/(s-l))>h&&(A=A^1),e=u+1|0,(e|0)>=(E|0)){i=22;break}else i=u}if((i|0)==22)return A|0}return 0}function J2(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0;if(D=r[e>>2]|0,!D){r[A>>2]=0,r[A+4>>2]=0,r[A+8>>2]=0,r[A+12>>2]=0,r[A+16>>2]=0,r[A+20>>2]=0,r[A+24>>2]=0,r[A+28>>2]=0;return}if(b=A+8|0,g[b>>3]=17976931348623157e292,Q=A+24|0,g[Q>>3]=17976931348623157e292,g[A>>3]=-17976931348623157e292,p=A+16|0,g[p>>3]=-17976931348623157e292,!((D|0)<=0)){for(E=r[e+4>>2]|0,u=17976931348623157e292,h=-17976931348623157e292,k=0,e=-1,l=17976931348623157e292,o=17976931348623157e292,s=-17976931348623157e292,t=-17976931348623157e292,a=0;i=+g[E+(a<<4)>>3],f=+g[E+(a<<4)+8>>3],e=e+2|0,n=+g[E+(((e|0)==(D|0)?0:e)<<4)+8>>3],i<l&&(g[b>>3]=i,l=i),f<o&&(g[Q>>3]=f,o=f),i>s?g[A>>3]=i:i=s,f>t&&(g[p>>3]=f,t=f),u=f>0&f<u?f:u,h=f<0&f>h?f:h,k=k|+hA(+(f-n))>3.141592653589793,e=a+1|0,(e|0)!=(D|0);)_=a,s=i,a=e,e=_;k&&(g[p>>3]=h,g[Q>>3]=u)}}function $0(e){return e=e|0,(e>>>0<4?0:15)|0}function $e(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0;if(D=r[e>>2]|0,D){if(b=A+8|0,g[b>>3]=17976931348623157e292,Q=A+24|0,g[Q>>3]=17976931348623157e292,g[A>>3]=-17976931348623157e292,p=A+16|0,g[p>>3]=-17976931348623157e292,(D|0)>0){for(n=r[e+4>>2]|0,E=17976931348623157e292,a=-17976931348623157e292,t=0,i=-1,s=17976931348623157e292,u=17976931348623157e292,k=-17976931348623157e292,o=-17976931348623157e292,_=0;l=+g[n+(_<<4)>>3],h=+g[n+(_<<4)+8>>3],N=i+2|0,f=+g[n+(((N|0)==(D|0)?0:N)<<4)+8>>3],l<s&&(g[b>>3]=l,s=l),h<u&&(g[Q>>3]=h,u=h),l>k?g[A>>3]=l:l=k,h>o&&(g[p>>3]=h,o=h),E=h>0&h<E?h:E,a=h<0&h>a?h:a,t=t|+hA(+(h-f))>3.141592653589793,i=_+1|0,(i|0)!=(D|0);)N=_,k=l,_=i,i=N;t&&(g[p>>3]=a,g[Q>>3]=E)}}else r[A>>2]=0,r[A+4>>2]=0,r[A+8>>2]=0,r[A+12>>2]=0,r[A+16>>2]=0,r[A+20>>2]=0,r[A+24>>2]=0,r[A+28>>2]=0;if(N=e+8|0,i=r[N>>2]|0,!((i|0)<=0)){S=e+12|0,m=0;do if(n=r[S>>2]|0,t=m,m=m+1|0,Q=A+(m<<5)|0,p=r[n+(t<<3)>>2]|0,p){if(_=A+(m<<5)+8|0,g[_>>3]=17976931348623157e292,e=A+(m<<5)+24|0,g[e>>3]=17976931348623157e292,g[Q>>3]=-17976931348623157e292,C=A+(m<<5)+16|0,g[C>>3]=-17976931348623157e292,(p|0)>0){for(D=r[n+(t<<3)+4>>2]|0,E=17976931348623157e292,a=-17976931348623157e292,n=0,t=-1,b=0,s=17976931348623157e292,u=17976931348623157e292,h=-17976931348623157e292,o=-17976931348623157e292;l=+g[D+(b<<4)>>3],k=+g[D+(b<<4)+8>>3],t=t+2|0,f=+g[D+(((t|0)==(p|0)?0:t)<<4)+8>>3],l<s&&(g[_>>3]=l,s=l),k<u&&(g[e>>3]=k,u=k),l>h?g[Q>>3]=l:l=h,k>o&&(g[C>>3]=k,o=k),E=k>0&k<E?k:E,a=k<0&k>a?k:a,n=n|+hA(+(k-f))>3.141592653589793,t=b+1|0,(t|0)!=(p|0);)U=b,b=t,h=l,t=U;n&&(g[C>>3]=a,g[e>>3]=E)}}else r[Q>>2]=0,r[Q+4>>2]=0,r[Q+8>>2]=0,r[Q+12>>2]=0,r[Q+16>>2]=0,r[Q+20>>2]=0,r[Q+24>>2]=0,r[Q+28>>2]=0,i=r[N>>2]|0;while((m|0)<(i|0))}}function A2(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;if(!(q0(e,A,i)|0))return n=0,n|0;if(n=e+8|0,(r[n>>2]|0)<=0)return n=1,n|0;for(t=e+12|0,e=0;;){if(l=e,e=e+1|0,q0((r[t>>2]|0)+(l<<3)|0,A+(e<<5)|0,i)|0){e=0,t=6;break}if((e|0)>=(r[n>>2]|0)){e=1,t=6;break}}return(t|0)==6?e|0:0}function X2(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(u=w,w=w+16|0,f=u,o=i+8|0,!(q0(e,A,o)|0))return s=0,w=u,s|0;s=e+8|0;A:do if((r[s>>2]|0)>0){for(l=e+12|0,n=0;;){if(h=n,n=n+1|0,q0((r[l>>2]|0)+(h<<3)|0,A+(n<<5)|0,o)|0){n=0;break}if((n|0)>=(r[s>>2]|0))break A}return w=u,n|0}while(!1);if(he(e,A,i,t)|0)return h=0,w=u,h|0;r[f>>2]=r[i>>2],r[f+4>>2]=o,n=r[s>>2]|0;A:do if((n|0)>0)for(e=e+12|0,o=0,l=n;;){if(n=r[e>>2]|0,(r[n+(o<<3)>>2]|0)>0){if(q0(f,t,r[n+(o<<3)+4>>2]|0)|0){n=0;break A}if(n=o+1|0,he((r[e>>2]|0)+(o<<3)|0,A+(n<<5)|0,i,t)|0){n=0;break A}l=r[s>>2]|0}else n=o+1|0;if((n|0)<(l|0))o=n;else{n=1;break}}else n=1;while(!1);return h=n,w=u,h|0}function he(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0,N=0,U=0,rA=0;if(N=w,w=w+176|0,_=N+172|0,n=N+168|0,C=N,!(Re(A,t)|0))return e=0,w=N,e|0;if(Mi(A,t,_,n),Y0(C|0,i|0,168)|0,(r[i>>2]|0)>0){A=0;do U=C+8+(A<<4)+8|0,p=+qA(+g[U>>3],r[n>>2]|0),g[U>>3]=p,A=A+1|0;while((A|0)<(r[i>>2]|0))}b=+g[t>>3],Q=+g[t+8>>3],p=+qA(+g[t+16>>3],r[n>>2]|0),a=+qA(+g[t+24>>3],r[n>>2]|0);A:do if((r[e>>2]|0)>0){if(t=e+4|0,n=r[C>>2]|0,(n|0)<=0){for(A=0;;)if(A=A+1|0,(A|0)>=(r[e>>2]|0)){A=0;break A}}for(i=0;;){if(A=r[t>>2]|0,E=+g[A+(i<<4)>>3],D=+qA(+g[A+(i<<4)+8>>3],r[_>>2]|0),A=r[t>>2]|0,i=i+1|0,U=(i|0)%(r[e>>2]|0)|0,l=+g[A+(U<<4)>>3],o=+qA(+g[A+(U<<4)+8>>3],r[_>>2]|0),!(E>=b)|!(l>=b)&&!(E<=Q)|!(l<=Q)&&!(D<=a)|!(o<=a)&&!(D>=p)|!(o>=p)){k=l-E,u=o-D,A=0;do if(rA=A,A=A+1|0,U=(A|0)==(n|0)?0:A,l=+g[C+8+(rA<<4)+8>>3],o=+g[C+8+(U<<4)+8>>3]-l,f=+g[C+8+(rA<<4)>>3],s=+g[C+8+(U<<4)>>3]-f,h=k*o-u*s,h!=0&&(m=D-l,S=E-f,s=(m*s-o*S)/h,!(s<0|s>1))&&(h=(k*m-u*S)/h,h>=0&h<=1)){A=1;break A}while((A|0)<(n|0))}if((i|0)>=(r[e>>2]|0)){A=0;break}}}else A=0;while(!1);return rA=A,w=N,rA|0}function q2(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0;if(he(e,A,i,t)|0)return l=1,l|0;if(l=e+8|0,(r[l>>2]|0)<=0)return l=0,l|0;for(n=e+12|0,e=0;;){if(o=e,e=e+1|0,he((r[n>>2]|0)+(o<<3)|0,A+(e<<5)|0,i,t)|0){e=1,n=6;break}if((e|0)>=(r[l>>2]|0)){e=0,n=6;break}}return(n|0)==6?e|0:0}function F1(){return 8}function G1(){return 16}function O1(){return 168}function R1(){return 8}function S1(){return 16}function x1(){return 12}function H1(){return 8}function z1(e){return e=e|0,+(+((r[e>>2]|0)>>>0)+4294967296*+(r[e+4>>2]|0))}function U1(e){e=e|0;var A=0,i=0;return i=+g[e>>3],A=+g[e+8>>3],+ +DA(+(i*i+A*A))}function $2(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0;u=+g[e>>3],s=+g[A>>3]-u,f=+g[e+8>>3],o=+g[A+8>>3]-f,k=+g[i>>3],l=+g[t>>3]-k,E=+g[i+8>>3],h=+g[t+8>>3]-E,l=(l*(f-E)-(u-k)*h)/(s*h-o*l),g[n>>3]=u+s*l,g[n+8>>3]=f+o*l}function Ar(e,A){return e=e|0,A=A|0,+hA(+(+g[e>>3]-+g[A>>3]))<11920928955078125e-23?(A=+hA(+(+g[e+8>>3]-+g[A+8>>3]))<11920928955078125e-23,A|0):(A=0,A|0)}function FA(e,A){e=e|0,A=A|0;var i=0,t=0,n=0;return n=+g[e>>3]-+g[A>>3],t=+g[e+8>>3]-+g[A+8>>3],i=+g[e+16>>3]-+g[A+16>>3],+(n*n+t*t+i*i)}function N1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0;i=+g[e>>3],t=+QA(+i),i=+gA(+i),g[A+16>>3]=i,i=+g[e+8>>3],n=t*+QA(+i),g[A>>3]=n,i=t*+gA(+i),g[A+8>>3]=i}function Y1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;if(l=w,w=w+16|0,n=l,t=IA(e,A)|0,(i+-1|0)>>>0>5||(t=(t|0)!=0,(i|0)==1&t))return n=-1,w=l,n|0;do if(Ae(e,A,n)|0)t=-1;else if(t){t=((r[26352+(i<<2)>>2]|0)+5-(r[n>>2]|0)|0)%5|0;break}else{t=((r[26384+(i<<2)>>2]|0)+6-(r[n>>2]|0)|0)%6|0;break}while(!1);return n=t,w=l,n|0}function Ae(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0;if(h=w,w=w+32|0,f=h+16|0,s=h,t=x0(e,A,f)|0,t|0)return i=t,w=h,i|0;l=H2(e,A)|0,u=JA(e,A)|0,mi(l,s),t=Qi(l,r[f>>2]|0)|0;do if(LA(l)|0){do switch(l|0){case 4:{n=0;break}case 14:{n=1;break}case 24:{n=2;break}case 38:{n=3;break}case 49:{n=4;break}case 58:{n=5;break}case 63:{n=6;break}case 72:{n=7;break}case 83:{n=8;break}case 97:{n=9;break}case 107:{n=10;break}case 117:{n=11;break}default:$(27795,27797,75,27806)}while(!1);if(o=r[26416+(n*24|0)+8>>2]|0,A=r[26416+(n*24|0)+16>>2]|0,e=r[f>>2]|0,(e|0)!=(r[s>>2]|0)&&(s=de(l)|0,e=r[f>>2]|0,s|(e|0)==(A|0)&&(t=(t+1|0)%6|0)),(u|0)==3&(e|0)==(A|0)){t=(t+5|0)%6|0;break}(u|0)==5&(e|0)==(o|0)&&(t=(t+1|0)%6|0)}while(!1);return r[i>>2]=t,i=0,w=h,i|0}function r0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0;if(C=w,w=w+32|0,_=C+24|0,Q=C+20|0,D=C+8|0,a=C+16|0,E=C,s=(IA(e,A)|0)==0,s=s?6:5,h=P(e|0,A|0,52)|0,B()|0,h=h&15,s>>>0<=i>>>0)return t=2,w=C,t|0;k=(h|0)==0,!k&&(b=O(7,0,(h^15)*3|0)|0,(b&e|0)==0&((B()|0)&A|0)==0)?n=i:l=4;A:do if((l|0)==4){if(n=(IA(e,A)|0)!=0,((n?4:5)|0)<(i|0)||Ae(e,A,_)|0||(l=(r[_>>2]|0)+i|0,n?n=26704+(((l|0)%5|0)<<2)|0:n=26736+(((l|0)%6|0)<<2)|0,b=r[n>>2]|0,(b|0)==7))return t=1,w=C,t|0;r[Q>>2]=0,n=xA(e,A,b,Q,D)|0;do if(!n){if(f=D,u=r[f>>2]|0,f=r[f+4>>2]|0,o=f>>>0<A>>>0|(f|0)==(A|0)&u>>>0<e>>>0,l=o?u:e,o=o?f:A,!k&&(k=O(7,0,(h^15)*3|0)|0,(u&k|0)==0&(f&(B()|0)|0)==0))n=i;else{if(f=(i+-1+s|0)%(s|0)|0,n=IA(e,A)|0,(f|0)<0&&$(27795,27797,248,27822),s=(n|0)!=0,((s?4:5)|0)<(f|0)&&$(27795,27797,248,27822),Ae(e,A,_)|0&&$(27795,27797,248,27822),n=(r[_>>2]|0)+f|0,s?n=26704+(((n|0)%5|0)<<2)|0:n=26736+(((n|0)%6|0)<<2)|0,f=r[n>>2]|0,(f|0)==7&&$(27795,27797,248,27822),r[a>>2]=0,n=xA(e,A,f,a,E)|0,n|0)break;u=E,s=r[u>>2]|0,u=r[u+4>>2]|0;do if(u>>>0<o>>>0|(u|0)==(o|0)&s>>>0<l>>>0){if(IA(s,u)|0?l=Te(s,u,e,A)|0:l=r[26800+((((r[a>>2]|0)+(r[26768+(f<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,n=IA(s,u)|0,(l+-1|0)>>>0>5){n=-1,l=s,o=u;break}if(n=(n|0)!=0,(l|0)==1&n){n=-1,l=s,o=u;break}do if(Ae(s,u,_)|0)n=-1;else if(n){n=((r[26352+(l<<2)>>2]|0)+5-(r[_>>2]|0)|0)%5|0;break}else{n=((r[26384+(l<<2)>>2]|0)+6-(r[_>>2]|0)|0)%6|0;break}while(!1);l=s,o=u}else n=i;while(!1);f=D,u=r[f>>2]|0,f=r[f+4>>2]|0}if((l|0)==(u|0)&(o|0)==(f|0)){if(s=(IA(u,f)|0)!=0,s?e=Te(u,f,e,A)|0:e=r[26800+((((r[Q>>2]|0)+(r[26768+(b<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,n=IA(u,f)|0,(e+-1|0)>>>0<=5&&(p=(n|0)!=0,!((e|0)==1&p)))do if(Ae(u,f,_)|0)n=-1;else if(p){n=((r[26352+(e<<2)>>2]|0)+5-(r[_>>2]|0)|0)%5|0;break}else{n=((r[26384+(e<<2)>>2]|0)+6-(r[_>>2]|0)|0)%6|0;break}while(!1);else n=-1;n=n+1|0,n=(n|0)==6|s&(n|0)==5?0:n}A=o,e=l;break A}while(!1);return t=n,w=C,t|0}while(!1);return p=O(n|0,0,56)|0,_=B()|0|A&-2130706433|536870912,r[t>>2]=p|e,r[t+4>>2]=_,t=0,w=C,t|0}function j1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;return l=(IA(e,A)|0)==0,t=r0(e,A,0,i)|0,n=(t|0)==0,l?!n||(t=r0(e,A,1,i+8|0)|0,t|0)||(t=r0(e,A,2,i+16|0)|0,t|0)||(t=r0(e,A,3,i+24|0)|0,t|0)||(t=r0(e,A,4,i+32|0)|0,t)?(l=t,l|0):r0(e,A,5,i+40|0)|0:!n||(t=r0(e,A,1,i+8|0)|0,t|0)||(t=r0(e,A,2,i+16|0)|0,t|0)||(t=r0(e,A,3,i+24|0)|0,t|0)||(t=r0(e,A,4,i+32|0)|0,t|0)?(l=t,l|0):(l=i+40|0,r[l>>2]=0,r[l+4>>2]=0,l=0,l|0)}function W1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0,f=0,s=0;return s=w,w=w+192|0,n=s,l=s+168|0,o=P(e|0,A|0,56)|0,B()|0,o=o&7,f=A&-2130706433|134217728,t=x0(e,f,l)|0,t|0?(f=t,w=s,f|0):(A=P(e|0,A|0,52)|0,B()|0,A=A&15,IA(e,f)|0?He(l,A,o,1,n):ze(l,A,o,1,n),f=n+8|0,r[i>>2]=r[f>>2],r[i+4>>2]=r[f+4>>2],r[i+8>>2]=r[f+8>>2],r[i+12>>2]=r[f+12>>2],f=0,w=s,f|0)}function er(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0;return n=w,w=w+16|0,i=n,!(!0&(A&2013265920|0)==536870912)||(t=A&-2130706433|134217728,!(Ue(e,t)|0))?(t=0,w=n,t|0):(l=P(e|0,A|0,56)|0,B()|0,l=(r0(e,t,l&7,i)|0)==0,t=i,t=l&((r[t>>2]|0)==(e|0)?(r[t+4>>2]|0)==(A|0):0)&1,w=n,t|0)}function rr(e,A,i){e=e|0,A=A|0,i=i|0;var t=0;(A|0)>0?(t=XA(A,4)|0,r[e>>2]=t,t||$(27835,27858,40,27872)):r[e>>2]=0,r[e+4>>2]=A,r[e+8>>2]=0,r[e+12>>2]=i}function ir(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0;n=e+4|0,l=e+12|0,o=e+8|0;A:for(;;){for(i=r[n>>2]|0,A=0;;){if((A|0)>=(i|0))break A;if(t=r[e>>2]|0,f=r[t+(A<<2)>>2]|0,!f)A=A+1|0;else break}A=t+(~~(+hA(+(+E0(10,+ +(15-(r[l>>2]|0)|0))*(+g[f>>3]+ +g[f+8>>3])))%+(i|0))>>>0<<2)|0,i=r[A>>2]|0;e:do if(i|0){if(t=f+32|0,(i|0)==(f|0))r[A>>2]=r[t>>2];else{if(i=i+32|0,A=r[i>>2]|0,!A)break;for(;(A|0)!=(f|0);)if(i=A+32|0,A=r[i>>2]|0,!A)break e;r[i>>2]=r[t>>2]}c(f),r[o>>2]=(r[o>>2]|0)+-1}while(!1)}c(r[e>>2]|0)}function tr(e){e=e|0;var A=0,i=0,t=0;for(t=r[e+4>>2]|0,i=0;;){if((i|0)>=(t|0)){A=0,i=4;break}if(A=r[(r[e>>2]|0)+(i<<2)>>2]|0,!A)i=i+1|0;else{i=4;break}}return(i|0)==4?A|0:0}function nr(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0;if(i=~~(+hA(+(+E0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,i=(r[e>>2]|0)+(i<<2)|0,t=r[i>>2]|0,!t)return l=1,l|0;l=A+32|0;do if((t|0)!=(A|0)){if(i=r[t+32>>2]|0,!i)return l=1,l|0;for(n=i;;){if((n|0)==(A|0)){n=8;break}if(i=r[n+32>>2]|0,i)t=n,n=i;else{i=1,n=10;break}}if((n|0)==8){r[t+32>>2]=r[l>>2];break}else if((n|0)==10)return i|0}else r[i>>2]=r[l>>2];while(!1);return c(A),l=e+8|0,r[l>>2]=(r[l>>2]|0)+-1,l=0,l|0}function V1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0;l=f0(40)|0,l||$(27888,27858,98,27901),r[l>>2]=r[A>>2],r[l+4>>2]=r[A+4>>2],r[l+8>>2]=r[A+8>>2],r[l+12>>2]=r[A+12>>2],n=l+16|0,r[n>>2]=r[i>>2],r[n+4>>2]=r[i+4>>2],r[n+8>>2]=r[i+8>>2],r[n+12>>2]=r[i+12>>2],r[l+32>>2]=0,n=~~(+hA(+(+E0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,n=(r[e>>2]|0)+(n<<2)|0,t=r[n>>2]|0;do if(!t)r[n>>2]=l;else{for(;!(z0(t,A)|0&&z0(t+16|0,i)|0);)if(n=r[t+32>>2]|0,t=(n|0)==0?t:n,!(r[t+32>>2]|0)){o=10;break}if((o|0)==10){r[t+32>>2]=l;break}return c(l),o=t,o|0}while(!1);return o=e+8|0,r[o>>2]=(r[o>>2]|0)+1,o=l,o|0}function c1(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0;if(n=~~(+hA(+(+E0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,n=r[(r[e>>2]|0)+(n<<2)>>2]|0,!n)return i=0,i|0;if(!i){for(e=n;;){if(z0(e,A)|0){t=10;break}if(e=r[e+32>>2]|0,!e){e=0,t=10;break}}if((t|0)==10)return e|0}for(e=n;;){if(z0(e,A)|0&&z0(e+16|0,i)|0){t=10;break}if(e=r[e+32>>2]|0,!e){e=0,t=10;break}}return(t|0)==10?e|0:0}function K1(e,A){e=e|0,A=A|0;var i=0;if(i=~~(+hA(+(+E0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,e=r[(r[e>>2]|0)+(i<<2)>>2]|0,!e)return i=0,i|0;for(;;){if(z0(e,A)|0){A=5;break}if(e=r[e+32>>2]|0,!e){e=0,A=5;break}}return(A|0)==5?e|0:0}function Z1(){return 27920}function b0(e){return e=+e,~~+sr(+e)|0}function f0(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0,b=0,Q=0,p=0,_=0,C=0,m=0,S=0;S=w,w=w+16|0,E=S;do if(e>>>0<245){if(u=e>>>0<11?16:e+11&-8,e=u>>>3,k=r[6981]|0,i=k>>>e,i&3|0)return A=(i&1^1)+e|0,e=27964+(A<<1<<2)|0,i=e+8|0,t=r[i>>2]|0,n=t+8|0,l=r[n>>2]|0,(l|0)==(e|0)?r[6981]=k&~(1<<A):(r[l+12>>2]=e,r[i>>2]=l),m=A<<3,r[t+4>>2]=m|3,m=t+m+4|0,r[m>>2]=r[m>>2]|1,m=n,w=S,m|0;if(h=r[6983]|0,u>>>0>h>>>0){if(i|0)return A=2<<e,A=i<<e&(A|0-A),A=(A&0-A)+-1|0,f=A>>>12&16,A=A>>>f,i=A>>>5&8,A=A>>>i,l=A>>>2&4,A=A>>>l,e=A>>>1&2,A=A>>>e,t=A>>>1&1,t=(i|f|l|e|t)+(A>>>t)|0,A=27964+(t<<1<<2)|0,e=A+8|0,l=r[e>>2]|0,f=l+8|0,i=r[f>>2]|0,(i|0)==(A|0)?(e=k&~(1<<t),r[6981]=e):(r[i+12>>2]=A,r[e>>2]=i,e=k),m=t<<3,o=m-u|0,r[l+4>>2]=u|3,n=l+u|0,r[n+4>>2]=o|1,r[l+m>>2]=o,h|0&&(t=r[6986]|0,A=h>>>3,i=27964+(A<<1<<2)|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=t,r[A+12>>2]=t,r[t+8>>2]=A,r[t+12>>2]=i),r[6983]=o,r[6986]=n,m=f,w=S,m|0;if(l=r[6982]|0,l){for(i=(l&0-l)+-1|0,n=i>>>12&16,i=i>>>n,t=i>>>5&8,i=i>>>t,o=i>>>2&4,i=i>>>o,f=i>>>1&2,i=i>>>f,s=i>>>1&1,s=r[28228+((t|n|o|f|s)+(i>>>s)<<2)>>2]|0,i=s,f=s,s=(r[s+4>>2]&-8)-u|0;e=r[i+16>>2]|0,!(!e&&(e=r[i+20>>2]|0,!e));)o=(r[e+4>>2]&-8)-u|0,n=o>>>0<s>>>0,i=e,f=n?e:f,s=n?o:s;if(o=f+u|0,o>>>0>f>>>0){n=r[f+24>>2]|0,A=r[f+12>>2]|0;do if((A|0)==(f|0)){if(e=f+20|0,A=r[e>>2]|0,!A&&(e=f+16|0,A=r[e>>2]|0,!A)){i=0;break}for(;;)if(t=A+20|0,i=r[t>>2]|0,i)A=i,e=t;else if(t=A+16|0,i=r[t>>2]|0,i)A=i,e=t;else break;r[e>>2]=0,i=A}else i=r[f+8>>2]|0,r[i+12>>2]=A,r[A+8>>2]=i,i=A;while(!1);do if(n|0){if(A=r[f+28>>2]|0,e=28228+(A<<2)|0,(f|0)==(r[e>>2]|0)){if(r[e>>2]=i,!i){r[6982]=l&~(1<<A);break}}else if(m=n+16|0,r[((r[m>>2]|0)==(f|0)?m:n+20|0)>>2]=i,!i)break;r[i+24>>2]=n,A=r[f+16>>2]|0,A|0&&(r[i+16>>2]=A,r[A+24>>2]=i),A=r[f+20>>2]|0,A|0&&(r[i+20>>2]=A,r[A+24>>2]=i)}while(!1);return s>>>0<16?(m=s+u|0,r[f+4>>2]=m|3,m=f+m+4|0,r[m>>2]=r[m>>2]|1):(r[f+4>>2]=u|3,r[o+4>>2]=s|1,r[o+s>>2]=s,h|0&&(t=r[6986]|0,A=h>>>3,i=27964+(A<<1<<2)|0,A=1<<A,A&k?(e=i+8|0,A=r[e>>2]|0):(r[6981]=A|k,A=i,e=i+8|0),r[e>>2]=t,r[A+12>>2]=t,r[t+8>>2]=A,r[t+12>>2]=i),r[6983]=s,r[6986]=o),m=f+8|0,w=S,m|0}else k=u}else k=u}else k=u}else if(e>>>0<=4294967231)if(e=e+11|0,u=e&-8,t=r[6982]|0,t){n=0-u|0,e=e>>>8,e?u>>>0>16777215?s=31:(k=(e+1048320|0)>>>16&8,b=e<<k,f=(b+520192|0)>>>16&4,b=b<<f,s=(b+245760|0)>>>16&2,s=14-(f|k|s)+(b<<s>>>15)|0,s=u>>>(s+7|0)&1|s<<1):s=0,i=r[28228+(s<<2)>>2]|0;A:do if(!i)i=0,e=0,b=61;else for(e=0,f=u<<((s|0)==31?0:25-(s>>>1)|0),l=0;;){if(o=(r[i+4>>2]&-8)-u|0,o>>>0<n>>>0)if(o)e=i,n=o;else{e=i,n=0,b=65;break A}if(b=r[i+20>>2]|0,i=r[i+16+(f>>>31<<2)>>2]|0,l=(b|0)==0|(b|0)==(i|0)?l:b,i)f=f<<1;else{i=l,b=61;break}}while(!1);if((b|0)==61){if((i|0)==0&(e|0)==0){if(e=2<<s,e=(e|0-e)&t,!e){k=u;break}k=(e&0-e)+-1|0,o=k>>>12&16,k=k>>>o,l=k>>>5&8,k=k>>>l,f=k>>>2&4,k=k>>>f,s=k>>>1&2,k=k>>>s,i=k>>>1&1,e=0,i=r[28228+((l|o|f|s|i)+(k>>>i)<<2)>>2]|0}i?b=65:(f=e,o=n)}if((b|0)==65)for(l=i;;)if(k=(r[l+4>>2]&-8)-u|0,i=k>>>0<n>>>0,n=i?k:n,e=i?l:e,i=r[l+16>>2]|0,i||(i=r[l+20>>2]|0),i)l=i;else{f=e,o=n;break}if((f|0)!=0&&o>>>0<((r[6983]|0)-u|0)>>>0&&(h=f+u|0,h>>>0>f>>>0)){l=r[f+24>>2]|0,A=r[f+12>>2]|0;do if((A|0)==(f|0)){if(e=f+20|0,A=r[e>>2]|0,!A&&(e=f+16|0,A=r[e>>2]|0,!A)){A=0;break}for(;;)if(n=A+20|0,i=r[n>>2]|0,i)A=i,e=n;else if(n=A+16|0,i=r[n>>2]|0,i)A=i,e=n;else break;r[e>>2]=0}else m=r[f+8>>2]|0,r[m+12>>2]=A,r[A+8>>2]=m;while(!1);do if(l){if(e=r[f+28>>2]|0,i=28228+(e<<2)|0,(f|0)==(r[i>>2]|0)){if(r[i>>2]=A,!A){t=t&~(1<<e),r[6982]=t;break}}else if(m=l+16|0,r[((r[m>>2]|0)==(f|0)?m:l+20|0)>>2]=A,!A)break;r[A+24>>2]=l,e=r[f+16>>2]|0,e|0&&(r[A+16>>2]=e,r[e+24>>2]=A),e=r[f+20>>2]|0,e&&(r[A+20>>2]=e,r[e+24>>2]=A)}while(!1);A:do if(o>>>0<16)m=o+u|0,r[f+4>>2]=m|3,m=f+m+4|0,r[m>>2]=r[m>>2]|1;else{if(r[f+4>>2]=u|3,r[h+4>>2]=o|1,r[h+o>>2]=o,A=o>>>3,o>>>0<256){i=27964+(A<<1<<2)|0,e=r[6981]|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=h,r[A+12>>2]=h,r[h+8>>2]=A,r[h+12>>2]=i;break}if(A=o>>>8,A?o>>>0>16777215?i=31:(C=(A+1048320|0)>>>16&8,m=A<<C,_=(m+520192|0)>>>16&4,m=m<<_,i=(m+245760|0)>>>16&2,i=14-(_|C|i)+(m<<i>>>15)|0,i=o>>>(i+7|0)&1|i<<1):i=0,A=28228+(i<<2)|0,r[h+28>>2]=i,e=h+16|0,r[e+4>>2]=0,r[e>>2]=0,e=1<<i,!(t&e)){r[6982]=t|e,r[A>>2]=h,r[h+24>>2]=A,r[h+12>>2]=h,r[h+8>>2]=h;break}A=r[A>>2]|0;e:do if((r[A+4>>2]&-8|0)!=(o|0)){for(t=o<<((i|0)==31?0:25-(i>>>1)|0);i=A+16+(t>>>31<<2)|0,e=r[i>>2]|0,!!e;)if((r[e+4>>2]&-8|0)==(o|0)){A=e;break e}else t=t<<1,A=e;r[i>>2]=h,r[h+24>>2]=A,r[h+12>>2]=h,r[h+8>>2]=h;break A}while(!1);C=A+8|0,m=r[C>>2]|0,r[m+12>>2]=h,r[C>>2]=h,r[h+8>>2]=m,r[h+12>>2]=A,r[h+24>>2]=0}while(!1);return m=f+8|0,w=S,m|0}else k=u}else k=u;else k=-1;while(!1);if(i=r[6983]|0,i>>>0>=k>>>0)return A=i-k|0,e=r[6986]|0,A>>>0>15?(m=e+k|0,r[6986]=m,r[6983]=A,r[m+4>>2]=A|1,r[e+i>>2]=A,r[e+4>>2]=k|3):(r[6983]=0,r[6986]=0,r[e+4>>2]=i|3,m=e+i+4|0,r[m>>2]=r[m>>2]|1),m=e+8|0,w=S,m|0;if(o=r[6984]|0,o>>>0>k>>>0)return _=o-k|0,r[6984]=_,m=r[6987]|0,C=m+k|0,r[6987]=C,r[C+4>>2]=_|1,r[m+4>>2]=k|3,m=m+8|0,w=S,m|0;if(r[7099]|0?e=r[7101]|0:(r[7101]=4096,r[7100]=4096,r[7102]=-1,r[7103]=-1,r[7104]=0,r[7092]=0,r[7099]=E&-16^1431655768,e=4096),f=k+48|0,s=k+47|0,l=e+s|0,n=0-e|0,u=l&n,u>>>0<=k>>>0||(e=r[7091]|0,e|0&&(h=r[7089]|0,E=h+u|0,E>>>0<=h>>>0|E>>>0>e>>>0)))return m=0,w=S,m|0;A:do if(r[7092]&4)A=0,b=143;else{i=r[6987]|0;e:do if(i){for(t=28372;E=r[t>>2]|0,!(E>>>0<=i>>>0&&(E+(r[t+4>>2]|0)|0)>>>0>i>>>0);)if(e=r[t+8>>2]|0,e)t=e;else{b=128;break e}if(A=l-o&n,A>>>0<2147483647)if(e=C0(A|0)|0,(e|0)==((r[t>>2]|0)+(r[t+4>>2]|0)|0)){if((e|0)!=-1){o=A,l=e,b=145;break A}}else t=e,b=136;else A=0}else b=128;while(!1);do if((b|0)==128)if(i=C0(0)|0,(i|0)!=-1&&(A=i,a=r[7100]|0,D=a+-1|0,A=((D&A|0)==0?0:(D+A&0-a)-A|0)+u|0,a=r[7089]|0,D=A+a|0,A>>>0>k>>>0&A>>>0<2147483647)){if(E=r[7091]|0,E|0&&D>>>0<=a>>>0|D>>>0>E>>>0){A=0;break}if(e=C0(A|0)|0,(e|0)==(i|0)){o=A,l=i,b=145;break A}else t=e,b=136}else A=0;while(!1);do if((b|0)==136){if(i=0-A|0,!(f>>>0>A>>>0&(A>>>0<2147483647&(t|0)!=-1)))if((t|0)==-1){A=0;break}else{o=A,l=t,b=145;break A}if(e=r[7101]|0,e=s-A+e&0-e,e>>>0>=2147483647){o=A,l=t,b=145;break A}if((C0(e|0)|0)==-1){C0(i|0)|0,A=0;break}else{o=e+A|0,l=t,b=145;break A}}while(!1);r[7092]=r[7092]|4,b=143}while(!1);if((b|0)==143&&u>>>0<2147483647&&(_=C0(u|0)|0,D=C0(0)|0,Q=D-_|0,p=Q>>>0>(k+40|0)>>>0,!((_|0)==-1|p^1|_>>>0<D>>>0&((_|0)!=-1&(D|0)!=-1)^1))&&(o=p?Q:A,l=_,b=145),(b|0)==145){A=(r[7089]|0)+o|0,r[7089]=A,A>>>0>(r[7090]|0)>>>0&&(r[7090]=A),s=r[6987]|0;A:do if(s){for(A=28372;;){if(e=r[A>>2]|0,i=r[A+4>>2]|0,(l|0)==(e+i|0)){b=154;break}if(t=r[A+8>>2]|0,t)A=t;else break}if((b|0)==154&&(C=A+4|0,(r[A+12>>2]&8|0)==0)&&l>>>0>s>>>0&e>>>0<=s>>>0){r[C>>2]=i+o,m=(r[6984]|0)+o|0,_=s+8|0,_=(_&7|0)==0?0:0-_&7,C=s+_|0,_=m-_|0,r[6987]=C,r[6984]=_,r[C+4>>2]=_|1,r[s+m+4>>2]=40,r[6988]=r[7103];break}for(l>>>0<(r[6985]|0)>>>0&&(r[6985]=l),i=l+o|0,A=28372;;){if((r[A>>2]|0)==(i|0)){b=162;break}if(e=r[A+8>>2]|0,e)A=e;else break}if((b|0)==162&&(r[A+12>>2]&8|0)==0){r[A>>2]=l,h=A+4|0,r[h>>2]=(r[h>>2]|0)+o,h=l+8|0,h=l+((h&7|0)==0?0:0-h&7)|0,A=i+8|0,A=i+((A&7|0)==0?0:0-A&7)|0,u=h+k|0,f=A-h-k|0,r[h+4>>2]=k|3;e:do if((s|0)==(A|0))m=(r[6984]|0)+f|0,r[6984]=m,r[6987]=u,r[u+4>>2]=m|1;else{if((r[6986]|0)==(A|0)){m=(r[6983]|0)+f|0,r[6983]=m,r[6986]=u,r[u+4>>2]=m|1,r[u+m>>2]=m;break}if(e=r[A+4>>2]|0,(e&3|0)==1){o=e&-8,t=e>>>3;r:do if(e>>>0<256)if(e=r[A+8>>2]|0,i=r[A+12>>2]|0,(i|0)==(e|0)){r[6981]=r[6981]&~(1<<t);break}else{r[e+12>>2]=i,r[i+8>>2]=e;break}else{l=r[A+24>>2]|0,e=r[A+12>>2]|0;do if((e|0)==(A|0)){if(i=A+16|0,t=i+4|0,e=r[t>>2]|0,e)i=t;else if(e=r[i>>2]|0,!e){e=0;break}for(;;)if(n=e+20|0,t=r[n>>2]|0,t)e=t,i=n;else if(n=e+16|0,t=r[n>>2]|0,t)e=t,i=n;else break;r[i>>2]=0}else m=r[A+8>>2]|0,r[m+12>>2]=e,r[e+8>>2]=m;while(!1);if(!l)break;i=r[A+28>>2]|0,t=28228+(i<<2)|0;do if((r[t>>2]|0)!=(A|0)){if(m=l+16|0,r[((r[m>>2]|0)==(A|0)?m:l+20|0)>>2]=e,!e)break r}else{if(r[t>>2]=e,e|0)break;r[6982]=r[6982]&~(1<<i);break r}while(!1);if(r[e+24>>2]=l,i=A+16|0,t=r[i>>2]|0,t|0&&(r[e+16>>2]=t,r[t+24>>2]=e),i=r[i+4>>2]|0,!i)break;r[e+20>>2]=i,r[i+24>>2]=e}while(!1);A=A+o|0,n=o+f|0}else n=f;if(A=A+4|0,r[A>>2]=r[A>>2]&-2,r[u+4>>2]=n|1,r[u+n>>2]=n,A=n>>>3,n>>>0<256){i=27964+(A<<1<<2)|0,e=r[6981]|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=u,r[A+12>>2]=u,r[u+8>>2]=A,r[u+12>>2]=i;break}A=n>>>8;do if(!A)t=0;else{if(n>>>0>16777215){t=31;break}C=(A+1048320|0)>>>16&8,m=A<<C,_=(m+520192|0)>>>16&4,m=m<<_,t=(m+245760|0)>>>16&2,t=14-(_|C|t)+(m<<t>>>15)|0,t=n>>>(t+7|0)&1|t<<1}while(!1);if(A=28228+(t<<2)|0,r[u+28>>2]=t,e=u+16|0,r[e+4>>2]=0,r[e>>2]=0,e=r[6982]|0,i=1<<t,!(e&i)){r[6982]=e|i,r[A>>2]=u,r[u+24>>2]=A,r[u+12>>2]=u,r[u+8>>2]=u;break}A=r[A>>2]|0;r:do if((r[A+4>>2]&-8|0)!=(n|0)){for(t=n<<((t|0)==31?0:25-(t>>>1)|0);i=A+16+(t>>>31<<2)|0,e=r[i>>2]|0,!!e;)if((r[e+4>>2]&-8|0)==(n|0)){A=e;break r}else t=t<<1,A=e;r[i>>2]=u,r[u+24>>2]=A,r[u+12>>2]=u,r[u+8>>2]=u;break e}while(!1);C=A+8|0,m=r[C>>2]|0,r[m+12>>2]=u,r[C>>2]=u,r[u+8>>2]=m,r[u+12>>2]=A,r[u+24>>2]=0}while(!1);return m=h+8|0,w=S,m|0}for(A=28372;e=r[A>>2]|0,!(e>>>0<=s>>>0&&(m=e+(r[A+4>>2]|0)|0,m>>>0>s>>>0));)A=r[A+8>>2]|0;n=m+-47|0,e=n+8|0,e=n+((e&7|0)==0?0:0-e&7)|0,n=s+16|0,e=e>>>0<n>>>0?s:e,A=e+8|0,i=o+-40|0,_=l+8|0,_=(_&7|0)==0?0:0-_&7,C=l+_|0,_=i-_|0,r[6987]=C,r[6984]=_,r[C+4>>2]=_|1,r[l+i+4>>2]=40,r[6988]=r[7103],i=e+4|0,r[i>>2]=27,r[A>>2]=r[7093],r[A+4>>2]=r[7094],r[A+8>>2]=r[7095],r[A+12>>2]=r[7096],r[7093]=l,r[7094]=o,r[7096]=0,r[7095]=A,A=e+24|0;do C=A,A=A+4|0,r[A>>2]=7;while((C+8|0)>>>0<m>>>0);if((e|0)!=(s|0)){if(l=e-s|0,r[i>>2]=r[i>>2]&-2,r[s+4>>2]=l|1,r[e>>2]=l,A=l>>>3,l>>>0<256){i=27964+(A<<1<<2)|0,e=r[6981]|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=s,r[A+12>>2]=s,r[s+8>>2]=A,r[s+12>>2]=i;break}if(A=l>>>8,A?l>>>0>16777215?t=31:(C=(A+1048320|0)>>>16&8,m=A<<C,_=(m+520192|0)>>>16&4,m=m<<_,t=(m+245760|0)>>>16&2,t=14-(_|C|t)+(m<<t>>>15)|0,t=l>>>(t+7|0)&1|t<<1):t=0,i=28228+(t<<2)|0,r[s+28>>2]=t,r[s+20>>2]=0,r[n>>2]=0,A=r[6982]|0,e=1<<t,!(A&e)){r[6982]=A|e,r[i>>2]=s,r[s+24>>2]=i,r[s+12>>2]=s,r[s+8>>2]=s;break}A=r[i>>2]|0;e:do if((r[A+4>>2]&-8|0)!=(l|0)){for(t=l<<((t|0)==31?0:25-(t>>>1)|0);i=A+16+(t>>>31<<2)|0,e=r[i>>2]|0,!!e;)if((r[e+4>>2]&-8|0)==(l|0)){A=e;break e}else t=t<<1,A=e;r[i>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s;break A}while(!1);C=A+8|0,m=r[C>>2]|0,r[m+12>>2]=s,r[C>>2]=s,r[s+8>>2]=m,r[s+12>>2]=A,r[s+24>>2]=0}}else m=r[6985]|0,(m|0)==0|l>>>0<m>>>0&&(r[6985]=l),r[7093]=l,r[7094]=o,r[7096]=0,r[6990]=r[7099],r[6989]=-1,r[6994]=27964,r[6993]=27964,r[6996]=27972,r[6995]=27972,r[6998]=27980,r[6997]=27980,r[7e3]=27988,r[6999]=27988,r[7002]=27996,r[7001]=27996,r[7004]=28004,r[7003]=28004,r[7006]=28012,r[7005]=28012,r[7008]=28020,r[7007]=28020,r[7010]=28028,r[7009]=28028,r[7012]=28036,r[7011]=28036,r[7014]=28044,r[7013]=28044,r[7016]=28052,r[7015]=28052,r[7018]=28060,r[7017]=28060,r[7020]=28068,r[7019]=28068,r[7022]=28076,r[7021]=28076,r[7024]=28084,r[7023]=28084,r[7026]=28092,r[7025]=28092,r[7028]=28100,r[7027]=28100,r[7030]=28108,r[7029]=28108,r[7032]=28116,r[7031]=28116,r[7034]=28124,r[7033]=28124,r[7036]=28132,r[7035]=28132,r[7038]=28140,r[7037]=28140,r[7040]=28148,r[7039]=28148,r[7042]=28156,r[7041]=28156,r[7044]=28164,r[7043]=28164,r[7046]=28172,r[7045]=28172,r[7048]=28180,r[7047]=28180,r[7050]=28188,r[7049]=28188,r[7052]=28196,r[7051]=28196,r[7054]=28204,r[7053]=28204,r[7056]=28212,r[7055]=28212,m=o+-40|0,_=l+8|0,_=(_&7|0)==0?0:0-_&7,C=l+_|0,_=m-_|0,r[6987]=C,r[6984]=_,r[C+4>>2]=_|1,r[l+m+4>>2]=40,r[6988]=r[7103];while(!1);if(A=r[6984]|0,A>>>0>k>>>0)return _=A-k|0,r[6984]=_,m=r[6987]|0,C=m+k|0,r[6987]=C,r[C+4>>2]=_|1,r[m+4>>2]=k|3,m=m+8|0,w=S,m|0}return m=Z1()|0,r[m>>2]=12,m=0,w=S,m|0}function c(e){e=e|0;var A=0,i=0,t=0,n=0,l=0,o=0,f=0,s=0;if(e){i=e+-8|0,n=r[6985]|0,e=r[e+-4>>2]|0,A=e&-8,s=i+A|0;do if(e&1)f=i,o=i;else{if(t=r[i>>2]|0,!(e&3)||(o=i+(0-t)|0,l=t+A|0,o>>>0<n>>>0))return;if((r[6986]|0)==(o|0)){if(e=s+4|0,A=r[e>>2]|0,(A&3|0)!=3){f=o,A=l;break}r[6983]=l,r[e>>2]=A&-2,r[o+4>>2]=l|1,r[o+l>>2]=l;return}if(i=t>>>3,t>>>0<256)if(e=r[o+8>>2]|0,A=r[o+12>>2]|0,(A|0)==(e|0)){r[6981]=r[6981]&~(1<<i),f=o,A=l;break}else{r[e+12>>2]=A,r[A+8>>2]=e,f=o,A=l;break}n=r[o+24>>2]|0,e=r[o+12>>2]|0;do if((e|0)==(o|0)){if(A=o+16|0,i=A+4|0,e=r[i>>2]|0,e)A=i;else if(e=r[A>>2]|0,!e){e=0;break}for(;;)if(t=e+20|0,i=r[t>>2]|0,i)e=i,A=t;else if(t=e+16|0,i=r[t>>2]|0,i)e=i,A=t;else break;r[A>>2]=0}else f=r[o+8>>2]|0,r[f+12>>2]=e,r[e+8>>2]=f;while(!1);if(n){if(A=r[o+28>>2]|0,i=28228+(A<<2)|0,(r[i>>2]|0)==(o|0)){if(r[i>>2]=e,!e){r[6982]=r[6982]&~(1<<A),f=o,A=l;break}}else if(f=n+16|0,r[((r[f>>2]|0)==(o|0)?f:n+20|0)>>2]=e,!e){f=o,A=l;break}r[e+24>>2]=n,A=o+16|0,i=r[A>>2]|0,i|0&&(r[e+16>>2]=i,r[i+24>>2]=e),A=r[A+4>>2]|0,A?(r[e+20>>2]=A,r[A+24>>2]=e,f=o,A=l):(f=o,A=l)}else f=o,A=l}while(!1);if(!(o>>>0>=s>>>0)&&(e=s+4|0,t=r[e>>2]|0,!!(t&1))){if(t&2)r[e>>2]=t&-2,r[f+4>>2]=A|1,r[o+A>>2]=A,n=A;else{if((r[6987]|0)==(s|0)){if(s=(r[6984]|0)+A|0,r[6984]=s,r[6987]=f,r[f+4>>2]=s|1,(f|0)!=(r[6986]|0))return;r[6986]=0,r[6983]=0;return}if((r[6986]|0)==(s|0)){s=(r[6983]|0)+A|0,r[6983]=s,r[6986]=o,r[f+4>>2]=s|1,r[o+s>>2]=s;return}n=(t&-8)+A|0,i=t>>>3;do if(t>>>0<256)if(A=r[s+8>>2]|0,e=r[s+12>>2]|0,(e|0)==(A|0)){r[6981]=r[6981]&~(1<<i);break}else{r[A+12>>2]=e,r[e+8>>2]=A;break}else{l=r[s+24>>2]|0,e=r[s+12>>2]|0;do if((e|0)==(s|0)){if(A=s+16|0,i=A+4|0,e=r[i>>2]|0,e)A=i;else if(e=r[A>>2]|0,!e){i=0;break}for(;;)if(t=e+20|0,i=r[t>>2]|0,i)e=i,A=t;else if(t=e+16|0,i=r[t>>2]|0,i)e=i,A=t;else break;r[A>>2]=0,i=e}else i=r[s+8>>2]|0,r[i+12>>2]=e,r[e+8>>2]=i,i=e;while(!1);if(l|0){if(e=r[s+28>>2]|0,A=28228+(e<<2)|0,(r[A>>2]|0)==(s|0)){if(r[A>>2]=i,!i){r[6982]=r[6982]&~(1<<e);break}}else if(t=l+16|0,r[((r[t>>2]|0)==(s|0)?t:l+20|0)>>2]=i,!i)break;r[i+24>>2]=l,e=s+16|0,A=r[e>>2]|0,A|0&&(r[i+16>>2]=A,r[A+24>>2]=i),e=r[e+4>>2]|0,e|0&&(r[i+20>>2]=e,r[e+24>>2]=i)}}while(!1);if(r[f+4>>2]=n|1,r[o+n>>2]=n,(f|0)==(r[6986]|0)){r[6983]=n;return}}if(e=n>>>3,n>>>0<256){i=27964+(e<<1<<2)|0,A=r[6981]|0,e=1<<e,A&e?(A=i+8|0,e=r[A>>2]|0):(r[6981]=A|e,e=i,A=i+8|0),r[A>>2]=f,r[e+12>>2]=f,r[f+8>>2]=e,r[f+12>>2]=i;return}e=n>>>8,e?n>>>0>16777215?t=31:(o=(e+1048320|0)>>>16&8,s=e<<o,l=(s+520192|0)>>>16&4,s=s<<l,t=(s+245760|0)>>>16&2,t=14-(l|o|t)+(s<<t>>>15)|0,t=n>>>(t+7|0)&1|t<<1):t=0,e=28228+(t<<2)|0,r[f+28>>2]=t,r[f+20>>2]=0,r[f+16>>2]=0,A=r[6982]|0,i=1<<t;A:do if(!(A&i))r[6982]=A|i,r[e>>2]=f,r[f+24>>2]=e,r[f+12>>2]=f,r[f+8>>2]=f;else{e=r[e>>2]|0;e:do if((r[e+4>>2]&-8|0)!=(n|0)){for(t=n<<((t|0)==31?0:25-(t>>>1)|0);i=e+16+(t>>>31<<2)|0,A=r[i>>2]|0,!!A;)if((r[A+4>>2]&-8|0)==(n|0)){e=A;break e}else t=t<<1,e=A;r[i>>2]=f,r[f+24>>2]=e,r[f+12>>2]=f,r[f+8>>2]=f;break A}while(!1);o=e+8|0,s=r[o>>2]|0,r[s+12>>2]=f,r[o>>2]=f,r[f+8>>2]=s,r[f+12>>2]=e,r[f+24>>2]=0}while(!1);if(s=(r[6989]|0)+-1|0,r[6989]=s,!(s|0)){for(e=28380;e=r[e>>2]|0,e;)e=e+8|0;r[6989]=-1}}}}function XA(e,A){e=e|0,A=A|0;var i=0;return e?(i=l0(A,e)|0,(A|e)>>>0>65535&&(i=((i>>>0)/(e>>>0)|0|0)==(A|0)?i:-1)):i=0,e=f0(i)|0,!e||!(r[e+-4>>2]&3)||Q0(e|0,0,i|0)|0,e|0}function V(e,A,i,t){return e=e|0,A=A|0,i=i|0,t=t|0,i=e+i>>>0,tA(A+t+(i>>>0<e>>>0|0)>>>0|0),i|0|0}function HA(e,A,i,t){return e=e|0,A=A|0,i=i|0,t=t|0,t=A-t-(i>>>0>e>>>0|0)>>>0,tA(t|0),e-i>>>0|0|0}function lr(e){return e=e|0,(e?31-(w0(e^e-1)|0)|0:32)|0}function e2(e,A,i,t,n){e=e|0,A=A|0,i=i|0,t=t|0,n=n|0;var l=0,o=0,f=0,s=0,u=0,h=0,k=0,E=0,a=0,D=0;if(h=e,s=A,u=s,o=i,E=t,f=E,!u)return l=(n|0)!=0,f?l?(r[n>>2]=e|0,r[n+4>>2]=A&0,E=0,n=0,tA(E|0),n|0):(E=0,n=0,tA(E|0),n|0):(l&&(r[n>>2]=(h>>>0)%(o>>>0),r[n+4>>2]=0),E=0,n=(h>>>0)/(o>>>0)>>>0,tA(E|0),n|0);l=(f|0)==0;do if(o){if(!l){if(l=(w0(f|0)|0)-(w0(u|0)|0)|0,l>>>0<=31){k=l+1|0,f=31-l|0,A=l-31>>31,o=k,e=h>>>(k>>>0)&A|u<<f,A=u>>>(k>>>0)&A,l=0,f=h<<f;break}return n?(r[n>>2]=e|0,r[n+4>>2]=s|A&0,E=0,n=0,tA(E|0),n|0):(E=0,n=0,tA(E|0),n|0)}if(l=o-1|0,l&o|0){f=(w0(o|0)|0)+33-(w0(u|0)|0)|0,D=64-f|0,k=32-f|0,s=k>>31,a=f-32|0,A=a>>31,o=f,e=k-1>>31&u>>>(a>>>0)|(u<<k|h>>>(f>>>0))&A,A=A&u>>>(f>>>0),l=h<<D&s,f=(u<<D|h>>>(a>>>0))&s|h<<k&f-33>>31;break}return n|0&&(r[n>>2]=l&h,r[n+4>>2]=0),(o|0)==1?(a=s|A&0,D=e|0|0,tA(a|0),D|0):(D=lr(o|0)|0,a=u>>>(D>>>0)|0,D=u<<32-D|h>>>(D>>>0)|0,tA(a|0),D|0)}else{if(l)return n|0&&(r[n>>2]=(u>>>0)%(o>>>0),r[n+4>>2]=0),a=0,D=(u>>>0)/(o>>>0)>>>0,tA(a|0),D|0;if(!h)return n|0&&(r[n>>2]=0,r[n+4>>2]=(u>>>0)%(f>>>0)),a=0,D=(u>>>0)/(f>>>0)>>>0,tA(a|0),D|0;if(l=f-1|0,!(l&f))return n|0&&(r[n>>2]=e|0,r[n+4>>2]=l&u|A&0),a=0,D=u>>>((lr(f|0)|0)>>>0),tA(a|0),D|0;if(l=(w0(f|0)|0)-(w0(u|0)|0)|0,l>>>0<=30){A=l+1|0,f=31-l|0,o=A,e=u<<f|h>>>(A>>>0),A=u>>>(A>>>0),l=0,f=h<<f;break}return n?(r[n>>2]=e|0,r[n+4>>2]=s|A&0,a=0,D=0,tA(a|0),D|0):(a=0,D=0,tA(a|0),D|0)}while(!1);if(!o)u=f,s=0,f=0;else{k=i|0|0,h=E|t&0,u=V(k|0,h|0,-1,-1)|0,i=B()|0,s=f,f=0;do t=s,s=l>>>31|s<<1,l=f|l<<1,t=e<<1|t>>>31|0,E=e>>>31|A<<1|0,HA(u|0,i|0,t|0,E|0)|0,D=B()|0,a=D>>31|((D|0)<0?-1:0)<<1,f=a&1,e=HA(t|0,E|0,a&k|0,(((D|0)<0?-1:0)>>31|((D|0)<0?-1:0)<<1)&h|0)|0,A=B()|0,o=o-1|0;while((o|0)!=0);u=s,s=0}return o=0,n|0&&(r[n>>2]=e,r[n+4>>2]=A),a=(l|0)>>>31|(u|o)<<1|(o<<1|l>>>31)&0|s,D=(l<<1|0)&-2|f,tA(a|0),D|0}function m0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0;return u=A>>31|((A|0)<0?-1:0)<<1,s=((A|0)<0?-1:0)>>31|((A|0)<0?-1:0)<<1,l=t>>31|((t|0)<0?-1:0)<<1,n=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,f=HA(u^e|0,s^A|0,u|0,s|0)|0,o=B()|0,e=l^u,A=n^s,HA((e2(f,o,HA(l^i|0,n^t|0,l|0,n|0)|0,B()|0,0)|0)^e|0,(B()|0)^A|0,e|0,A|0)|0}function J1(e,A){e=e|0,A=A|0;var i=0,t=0,n=0,l=0;return l=e&65535,n=A&65535,i=l0(n,l)|0,t=e>>>16,e=(i>>>16)+(l0(n,t)|0)|0,n=A>>>16,A=l0(n,l)|0,tA((e>>>16)+(l0(n,t)|0)+(((e&65535)+A|0)>>>16)|0),e+A<<16|i&65535|0|0}function zA(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0;return n=e,l=i,i=J1(n,l)|0,e=B()|0,tA((l0(A,l)|0)+(l0(t,n)|0)+e|e&0|0),i|0|0|0}function U0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0,o=0,f=0,s=0,u=0;return n=w,w=w+16|0,f=n|0,o=A>>31|((A|0)<0?-1:0)<<1,l=((A|0)<0?-1:0)>>31|((A|0)<0?-1:0)<<1,u=t>>31|((t|0)<0?-1:0)<<1,s=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,e=HA(o^e|0,l^A|0,o|0,l|0)|0,A=B()|0,e2(e,A,HA(u^i|0,s^t|0,u|0,s|0)|0,B()|0,f)|0,t=HA(r[f>>2]^o|0,r[f+4>>2]^l|0,o|0,l|0)|0,i=B()|0,w=n,tA(i|0),t|0}function N0(e,A,i,t){e=e|0,A=A|0,i=i|0,t=t|0;var n=0,l=0;return l=w,w=w+16|0,n=l|0,e2(e,A,i,t,n)|0,w=l,tA(r[n+4>>2]|0),r[n>>2]|0|0}function or(e,A,i){return e=e|0,A=A|0,i=i|0,(i|0)<32?(tA(A>>i|0),e>>>i|(A&(1<<i)-1)<<32-i):(tA(((A|0)<0?-1:0)|0),A>>i-32|0)}function P(e,A,i){return e=e|0,A=A|0,i=i|0,(i|0)<32?(tA(A>>>i|0),e>>>i|(A&(1<<i)-1)<<32-i):(tA(0),A>>>i-32|0)}function O(e,A,i){return e=e|0,A=A|0,i=i|0,(i|0)<32?(tA(A<<i|(e&(1<<i)-1<<32-i)>>>32-i|0),e<<i):(tA(e<<i-32|0),0)}function r2(e,A,i){return e=e|0,A=A|0,A=w0(A)|0,(A|0)==32&&(A=A+(w0(e)|0)|0),tA(0),A|0}function fr(e,A){return e=+e,A=+A,e!=e?+A:A!=A?+e:+ii(+e,+A)}function ge(e,A){return e=+e,A=+A,e!=e?+A:A!=A?+e:+Pe(+e,+A)}function we(e){return e=+e,e>=0?+SA(e+.5):+R0(e-.5)}function Y0(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0;if((i|0)>=8192)return ni(e|0,A|0,i|0)|0,e|0;if(l=e|0,n=e+i|0,(e&3)==(A&3)){for(;e&3;){if(!i)return l|0;d[e>>0]=d[A>>0]|0,e=e+1|0,A=A+1|0,i=i-1|0}for(i=n&-4|0,t=i-64|0;(e|0)<=(t|0);)r[e>>2]=r[A>>2],r[e+4>>2]=r[A+4>>2],r[e+8>>2]=r[A+8>>2],r[e+12>>2]=r[A+12>>2],r[e+16>>2]=r[A+16>>2],r[e+20>>2]=r[A+20>>2],r[e+24>>2]=r[A+24>>2],r[e+28>>2]=r[A+28>>2],r[e+32>>2]=r[A+32>>2],r[e+36>>2]=r[A+36>>2],r[e+40>>2]=r[A+40>>2],r[e+44>>2]=r[A+44>>2],r[e+48>>2]=r[A+48>>2],r[e+52>>2]=r[A+52>>2],r[e+56>>2]=r[A+56>>2],r[e+60>>2]=r[A+60>>2],e=e+64|0,A=A+64|0;for(;(e|0)<(i|0);)r[e>>2]=r[A>>2],e=e+4|0,A=A+4|0}else for(i=n-4|0;(e|0)<(i|0);)d[e>>0]=d[A>>0]|0,d[e+1>>0]=d[A+1>>0]|0,d[e+2>>0]=d[A+2>>0]|0,d[e+3>>0]=d[A+3>>0]|0,e=e+4|0,A=A+4|0;for(;(e|0)<(n|0);)d[e>>0]=d[A>>0]|0,e=e+1|0,A=A+1|0;return l|0}function Q0(e,A,i){e=e|0,A=A|0,i=i|0;var t=0,n=0,l=0,o=0;if(l=e+i|0,A=A&255,(i|0)>=67){for(;e&3;)d[e>>0]=A,e=e+1|0;for(t=l&-4|0,o=A|A<<8|A<<16|A<<24,n=t-64|0;(e|0)<=(n|0);)r[e>>2]=o,r[e+4>>2]=o,r[e+8>>2]=o,r[e+12>>2]=o,r[e+16>>2]=o,r[e+20>>2]=o,r[e+24>>2]=o,r[e+28>>2]=o,r[e+32>>2]=o,r[e+36>>2]=o,r[e+40>>2]=o,r[e+44>>2]=o,r[e+48>>2]=o,r[e+52>>2]=o,r[e+56>>2]=o,r[e+60>>2]=o,e=e+64|0;for(;(e|0)<(t|0);)r[e>>2]=o,e=e+4|0}for(;(e|0)<(l|0);)d[e>>0]=A,e=e+1|0;return l-i|0}function sr(e){return e=+e,e>=0?+SA(e+.5):+R0(e-.5)}function C0(e){e=e|0;var A=0,i=0,t=0;return t=ti()|0,i=r[pA>>2]|0,A=i+e|0,(e|0)>0&(A|0)<(i|0)|(A|0)<0?(oi(A|0)|0,E2(12),-1):(A|0)>(t|0)&&!(li(A|0)|0)?(E2(12),-1):(r[pA>>2]=A,i|0)}return{___divdi3:m0,___muldi3:zA,___remdi3:U0,___uremdi3:N0,_areNeighborCells:xi,_bitshift64Ashr:or,_bitshift64Lshr:P,_bitshift64Shl:O,_calloc:XA,_cellAreaKm2:E1,_cellAreaM2:a1,_cellAreaRads2:Xe,_cellToBoundary:H0,_cellToCenterChild:U2,_cellToChildPos:f1,_cellToChildren:$i,_cellToChildrenSize:Z0,_cellToLatLng:L0,_cellToLocalIj:p1,_cellToParent:Ye,_cellToVertex:r0,_cellToVertexes:j1,_cellsToDirectedEdge:Hi,_cellsToLinkedMultiPolygon:Di,_childPosToCell:s1,_compactCells:A1,_constructCell:Xi,_destroyLinkedMultiPolygon:V2,_directedEdgeToBoundary:fe,_directedEdgeToCells:Ni,_edgeLengthKm:b1,_edgeLengthM:m1,_edgeLengthRads:D1,_emscripten_replace_memory:fi,_free:c,_getBaseCellNumber:H2,_getDirectedEdgeDestination:Ui,_getDirectedEdgeOrigin:zi,_getHexagonAreaAvgKm2:j2,_getHexagonAreaAvgM2:v1,_getHexagonEdgeLengthAvgKm:k1,_getHexagonEdgeLengthAvgM:B1,_getIcosahedronFaces:N2,_getIndexDigit:Ji,_getNumCells:se,_getPentagons:Ke,_getRes0Cells:_i,_getResolution:Zi,_greatCircleDistanceKm:X0,_greatCircleDistanceM:h1,_greatCircleDistanceRads:u1,_gridDisk:a2,_gridDiskDistances:D2,_gridDistance:M1,_gridPathCells:L1,_gridPathCellsSize:I1,_gridRing:vi,_gridRingUnsafe:m2,_i64Add:V,_i64Subtract:HA,_isPentagon:IA,_isResClassIII:i1,_isValidCell:Ue,_isValidDirectedEdge:R2,_isValidIndex:qi,_isValidVertex:er,_latLngToCell:Ve,_llvm_ctlz_i64:r2,_llvm_maxnum_f64:fr,_llvm_minnum_f64:ge,_llvm_round_f64:we,_localIjToCell:y1,_malloc:f0,_maxFaceCount:l1,_maxGridDiskSize:wi,_maxPolygonToCellsSize:Bi,_maxPolygonToCellsSizeExperimental:d1,_memcpy:Y0,_memset:Q0,_originToDirectedEdges:Yi,_pentagonCount:o1,_polygonToCells:Ei,_polygonToCellsExperimental:T1,_readInt64AsDoubleFromPointer:z1,_res0CellCount:Ci,_round:sr,_sbrk:C0,_sizeOfCellBoundary:O1,_sizeOfCoordIJ:H1,_sizeOfGeoLoop:R1,_sizeOfGeoPolygon:S1,_sizeOfH3Index:F1,_sizeOfLatLng:G1,_sizeOfLinkedGeoPolygon:x1,_uncompactCells:e1,_uncompactCellsSize:r1,_vertexToLatLng:W1,establishStackSpace:gi,stackAlloc:si,stackRestore:hi,stackSave:ui}})(Xr,qr,W);v.___divdi3=G.___divdi3,v.___muldi3=G.___muldi3,v.___remdi3=G.___remdi3,v.___uremdi3=G.___uremdi3,v._areNeighborCells=G._areNeighborCells,v._bitshift64Ashr=G._bitshift64Ashr,v._bitshift64Lshr=G._bitshift64Lshr,v._bitshift64Shl=G._bitshift64Shl,v._calloc=G._calloc,v._cellAreaKm2=G._cellAreaKm2,v._cellAreaM2=G._cellAreaM2,v._cellAreaRads2=G._cellAreaRads2,v._cellToBoundary=G._cellToBoundary,v._cellToCenterChild=G._cellToCenterChild,v._cellToChildPos=G._cellToChildPos,v._cellToChildren=G._cellToChildren,v._cellToChildrenSize=G._cellToChildrenSize,v._cellToLatLng=G._cellToLatLng,v._cellToLocalIj=G._cellToLocalIj,v._cellToParent=G._cellToParent,v._cellToVertex=G._cellToVertex,v._cellToVertexes=G._cellToVertexes,v._cellsToDirectedEdge=G._cellsToDirectedEdge,v._cellsToLinkedMultiPolygon=G._cellsToLinkedMultiPolygon,v._childPosToCell=G._childPosToCell,v._compactCells=G._compactCells,v._constructCell=G._constructCell,v._destroyLinkedMultiPolygon=G._destroyLinkedMultiPolygon,v._directedEdgeToBoundary=G._directedEdgeToBoundary,v._directedEdgeToCells=G._directedEdgeToCells,v._edgeLengthKm=G._edgeLengthKm,v._edgeLengthM=G._edgeLengthM,v._edgeLengthRads=G._edgeLengthRads;var $r=v._emscripten_replace_memory=G._emscripten_replace_memory;v._free=G._free,v._getBaseCellNumber=G._getBaseCellNumber,v._getDirectedEdgeDestination=G._getDirectedEdgeDestination,v._getDirectedEdgeOrigin=G._getDirectedEdgeOrigin,v._getHexagonAreaAvgKm2=G._getHexagonAreaAvgKm2,v._getHexagonAreaAvgM2=G._getHexagonAreaAvgM2,v._getHexagonEdgeLengthAvgKm=G._getHexagonEdgeLengthAvgKm,v._getHexagonEdgeLengthAvgM=G._getHexagonEdgeLengthAvgM,v._getIcosahedronFaces=G._getIcosahedronFaces,v._getIndexDigit=G._getIndexDigit,v._getNumCells=G._getNumCells,v._getPentagons=G._getPentagons,v._getRes0Cells=G._getRes0Cells,v._getResolution=G._getResolution,v._greatCircleDistanceKm=G._greatCircleDistanceKm,v._greatCircleDistanceM=G._greatCircleDistanceM,v._greatCircleDistanceRads=G._greatCircleDistanceRads,v._gridDisk=G._gridDisk,v._gridDiskDistances=G._gridDiskDistances,v._gridDistance=G._gridDistance,v._gridPathCells=G._gridPathCells,v._gridPathCellsSize=G._gridPathCellsSize,v._gridRing=G._gridRing,v._gridRingUnsafe=G._gridRingUnsafe,v._i64Add=G._i64Add,v._i64Subtract=G._i64Subtract,v._isPentagon=G._isPentagon,v._isResClassIII=G._isResClassIII,v._isValidCell=G._isValidCell,v._isValidDirectedEdge=G._isValidDirectedEdge,v._isValidIndex=G._isValidIndex,v._isValidVertex=G._isValidVertex,v._latLngToCell=G._latLngToCell,v._llvm_ctlz_i64=G._llvm_ctlz_i64,v._llvm_maxnum_f64=G._llvm_maxnum_f64,v._llvm_minnum_f64=G._llvm_minnum_f64,v._llvm_round_f64=G._llvm_round_f64,v._localIjToCell=G._localIjToCell,v._malloc=G._malloc,v._maxFaceCount=G._maxFaceCount,v._maxGridDiskSize=G._maxGridDiskSize,v._maxPolygonToCellsSize=G._maxPolygonToCellsSize,v._maxPolygonToCellsSizeExperimental=G._maxPolygonToCellsSizeExperimental,v._memcpy=G._memcpy,v._memset=G._memset,v._originToDirectedEdges=G._originToDirectedEdges,v._pentagonCount=G._pentagonCount,v._polygonToCells=G._polygonToCells,v._polygonToCellsExperimental=G._polygonToCellsExperimental,v._readInt64AsDoubleFromPointer=G._readInt64AsDoubleFromPointer,v._res0CellCount=G._res0CellCount,v._round=G._round,v._sbrk=G._sbrk,v._sizeOfCellBoundary=G._sizeOfCellBoundary,v._sizeOfCoordIJ=G._sizeOfCoordIJ,v._sizeOfGeoLoop=G._sizeOfGeoLoop,v._sizeOfGeoPolygon=G._sizeOfGeoPolygon,v._sizeOfH3Index=G._sizeOfH3Index,v._sizeOfLatLng=G._sizeOfLatLng,v._sizeOfLinkedGeoPolygon=G._sizeOfLinkedGeoPolygon,v._uncompactCells=G._uncompactCells,v._uncompactCellsSize=G._uncompactCellsSize,v._vertexToLatLng=G._vertexToLatLng,v.establishStackSpace=G.establishStackSpace;var w2=v.stackAlloc=G.stackAlloc,Ai=v.stackRestore=G.stackRestore,ei=v.stackSave=G.stackSave;if(v.asm=G,v.cwrap=me,v.setValue=WA,v.getValue=d0,g0){h2(g0)||(g0=x(g0));{zr();var Me=function(M){M.byteLength&&(M=new Uint8Array(M)),X.set(M,TA),v.memoryInitializerRequest&&delete v.memoryInitializerRequest.response,Ur()},v2=function(){J(g0,Me,function(){throw"could not load memory initializer "+g0})},k2=ye(g0);if(k2)Me(k2.buffer);else if(v.memoryInitializerRequest){var B2=function(){var M=v.memoryInitializerRequest,T=M.response;if(M.status!==200&&M.status!==0){var H=ye(v.memoryInitializerRequestURL);if(H)T=H.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+M.status+", retrying "+g0),v2();return}}Me(T)};v.memoryInitializerRequest.response?setTimeout(B2,0):v.memoryInitializerRequest.addEventListener("load",B2)}else v2()}}var ie;c0=function M(){ie||Ie(),ie||(c0=M)};function Ie(M){if(_0>0||(Pr(),_0>0))return;function T(){ie||(ie=!0,!B0&&(Tr(),dr(),v.onRuntimeInitialized&&v.onRuntimeInitialized(),Fr()))}v.setStatus?(v.setStatus("Running..."),setTimeout(function(){setTimeout(function(){v.setStatus("")},1),T()},1)):T()}v.run=Ie;function O0(M){throw v.onAbort&&v.onAbort(M),M+="",j(M),lA(M),B0=!0,"abort("+M+"). Build with -s ASSERTIONS=1 for more info."}if(v.abort=O0,v.preInit)for(typeof v.preInit=="function"&&(v.preInit=[v.preInit]);v.preInit.length>0;)v.preInit.pop()();return Ie(),y})(typeof PA=="object"?PA:{}),Z="number",K=Z,j0=Z,AA=Z,eA=Z,UA=Z,z=Z,lt=[["sizeOfH3Index",Z],["sizeOfLatLng",Z],["sizeOfCellBoundary",Z],["sizeOfGeoLoop",Z],["sizeOfGeoPolygon",Z],["sizeOfLinkedGeoPolygon",Z],["sizeOfCoordIJ",Z],["readInt64AsDoubleFromPointer",Z],["isValidCell",j0,[AA,eA]],["isValidIndex",j0,[AA,eA]],["latLngToCell",K,[Z,Z,UA,z]],["cellToLatLng",K,[AA,eA,z]],["cellToBoundary",K,[AA,eA,z]],["maxGridDiskSize",K,[Z,z]],["gridDisk",K,[AA,eA,Z,z]],["gridDiskDistances",K,[AA,eA,Z,z,z]],["gridRing",K,[AA,eA,Z,z]],["gridRingUnsafe",K,[AA,eA,Z,z]],["maxPolygonToCellsSize",K,[z,UA,Z,z]],["polygonToCells",K,[z,UA,Z,z]],["maxPolygonToCellsSizeExperimental",K,[z,UA,Z,z]],["polygonToCellsExperimental",K,[z,UA,Z,Z,Z,z]],["cellsToLinkedMultiPolygon",K,[z,Z,z]],["destroyLinkedMultiPolygon",null,[z]],["compactCells",K,[z,z,Z,Z]],["uncompactCells",K,[z,Z,Z,z,Z,UA]],["uncompactCellsSize",K,[z,Z,Z,UA,z]],["isPentagon",j0,[AA,eA]],["isResClassIII",j0,[AA,eA]],["getBaseCellNumber",Z,[AA,eA]],["getResolution",Z,[AA,eA]],["getIndexDigit",Z,[AA,eA,Z]],["constructCell",K,[Z,Z,z,z]],["maxFaceCount",K,[AA,eA,z]],["getIcosahedronFaces",K,[AA,eA,z]],["cellToParent",K,[AA,eA,UA,z]],["cellToChildren",K,[AA,eA,UA,z]],["cellToCenterChild",K,[AA,eA,UA,z]],["cellToChildrenSize",K,[AA,eA,UA,z]],["cellToChildPos",K,[AA,eA,UA,z]],["childPosToCell",K,[Z,Z,AA,eA,UA,z]],["areNeighborCells",K,[AA,eA,AA,eA,z]],["cellsToDirectedEdge",K,[AA,eA,AA,eA,z]],["getDirectedEdgeOrigin",K,[AA,eA,z]],["getDirectedEdgeDestination",K,[AA,eA,z]],["isValidDirectedEdge",j0,[AA,eA]],["directedEdgeToCells",K,[AA,eA,z]],["originToDirectedEdges",K,[AA,eA,z]],["directedEdgeToBoundary",K,[AA,eA,z]],["gridDistance",K,[AA,eA,AA,eA,z]],["gridPathCells",K,[AA,eA,AA,eA,z]],["gridPathCellsSize",K,[AA,eA,AA,eA,z]],["cellToLocalIj",K,[AA,eA,AA,eA,Z,z]],["localIjToCell",K,[AA,eA,z,Z,z]],["getHexagonAreaAvgM2",K,[UA,z]],["getHexagonAreaAvgKm2",K,[UA,z]],["getHexagonEdgeLengthAvgM",K,[UA,z]],["getHexagonEdgeLengthAvgKm",K,[UA,z]],["greatCircleDistanceM",Z,[z,z]],["greatCircleDistanceKm",Z,[z,z]],["greatCircleDistanceRads",Z,[z,z]],["cellAreaM2",K,[AA,eA,z]],["cellAreaKm2",K,[AA,eA,z]],["cellAreaRads2",K,[AA,eA,z]],["edgeLengthM",K,[AA,eA,z]],["edgeLengthKm",K,[AA,eA,z]],["edgeLengthRads",K,[AA,eA,z]],["getNumCells",K,[UA,z]],["getRes0Cells",K,[z]],["res0CellCount",Z],["getPentagons",K,[Z,z]],["pentagonCount",Z],["cellToVertex",K,[AA,eA,Z,z]],["cellToVertexes",K,[AA,eA,z]],["vertexToLatLng",K,[AA,eA,z]],["isValidVertex",j0,[AA,eA]]],ot=0,ft=1,st=2,ut=3,Er=4,ht=5,gt=6,wt=7,vt=8,kt=9,Bt=10,Et=11,at=12,Dt=13,bt=14,mt=15,Qt=16,Ct=17,_t=18,pt=19,dA={};dA[ot]="Success";dA[ft]="The operation failed but a more specific error is not available";dA[st]="Argument was outside of acceptable range";dA[ut]="Latitude or longitude arguments were outside of acceptable range";dA[Er]="Resolution argument was outside of acceptable range";dA[ht]="Cell argument was not valid";dA[gt]="Directed edge argument was not valid";dA[wt]="Undirected edge argument was not valid";dA[vt]="Vertex argument was not valid";dA[kt]="Pentagon distortion was encountered";dA[Bt]="Duplicate input";dA[Et]="Cell arguments were not neighbors";dA[at]="Cell arguments had incompatible resolutions";dA[Dt]="Memory allocation failed";dA[bt]="Bounds of provided memory were insufficient";dA[mt]="Mode or flags argument was not valid";dA[Qt]="Index argument was not valid";dA[Ct]="Base cell number was outside of acceptable range";dA[_t]="Child indexing digits invalid";dA[pt]="Child indexing digits refer to a deleted subsequence";var f2=1e3,ar=1001,Dr=1002,ae={};ae[f2]="Unknown unit";ae[ar]="Array length out of bounds";ae[Dr]="Got unexpected null value for H3 index";var yt="Unknown error";function br(y,v,I){var L=I&&"value"in I,F=new Error((y[v]||yt)+" (code: "+v+(L?", value: "+I.value:"")+")");return F.code=v,F}function mr(y,v){var I=arguments.length===2?{value:v}:{};return br(dA,y,I)}function De(y,v){var I=arguments.length===2?{value:v}:{};return br(ae,y,I)}function k0(y){if(y!==0)throw mr(y)}var YA={};lt.forEach(function(v){YA[v[0]]=PA.cwrap.apply(PA,v)});var W0=16,Mt=4,T0=8,It=8,Ee=YA.sizeOfH3Index(),Lt=YA.sizeOfLatLng(),Pt=YA.sizeOfCellBoundary();YA.sizeOfGeoPolygon();YA.sizeOfGeoLoop();YA.sizeOfLinkedGeoPolygon();YA.sizeOfCoordIJ();var P0={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function Tt(y){if(typeof y!="number"||y<0||y>15||Math.floor(y)!==y)throw mr(Er,y);return y}function dt(y){if(!y)throw De(Dr);return y}var Ft=Math.pow(2,32)-1;function Gt(y){if(y>Ft)throw De(ar,y);return y}var Ot=/[^0-9a-fA-F]/;function s2(y){if(Array.isArray(y)&&y.length===2&&Number.isInteger(y[0])&&Number.isInteger(y[1]))return y;if(typeof y!="string"||Ot.test(y))return[0,0];var v=parseInt(y.substring(0,y.length-8),W0),I=parseInt(y.substring(y.length-8),W0);return[I,v]}function vr(y){if(y>=0)return y.toString(W0);y=y&2147483647;var v=Qr(8,y.toString(W0)),I=(parseInt(v[0],W0)+8).toString(W0);return v=I+v.substring(1),v}function Rt(y,v){return vr(v)+Qr(8,vr(y))}function Qr(y,v){for(var I=y-v.length,L="",F=0;F<I;F++)L+="0";return L=L+v,L}function Cr(y,v){v===void 0&&(v=0);var I=PA.getValue(y+Ee*v,"i32"),L=PA.getValue(y+Ee*v+Mt,"i32");return L?Rt(I,L):null}function _r(y,v){return v===void 0&&(v=0),PA.getValue(y+T0*v,"double")}function St(y){return YA.readInt64AsDoubleFromPointer(y)}function xt(y,v){for(var I=[],L=0;L<v;L++){var F=Cr(y,L);F!==null&&I.push(F)}return I}function kr(y){return ct(PA.getValue(y,"double"))}function Ht(y){return[kr(y+T0),kr(y)]}function zt(y,v,I){for(var L=PA.getValue(y,"i32"),F=y+T0,x=[],J=Ht,j=0;j<L*2;j+=2)x.push(J(F+T0*j));return x.push(x[0]),x}function Ut(y,v,I){var L=PA._malloc(Lt);PA.HEAPF64.set([y,v].map(Vt),L/T0);var F=PA._malloc(Ee);try{return k0(YA.latLngToCell(L,I,F)),dt(Cr(F))}finally{PA._free(F),PA._free(L)}}function Nt(y,v){var I=PA._malloc(Pt),L=s2(y),F=L[0],x=L[1];try{return k0(YA.cellToBoundary(F,x,I)),zt(I,v,v)}finally{PA._free(I)}}function Yt(y,v){var I=s2(y),L=I[0],F=I[1],x=PA._malloc(It);try{k0(YA.maxGridDiskSize(v,x));var J=Gt(St(x)),j=PA._calloc(J,Ee);try{return k0(YA.gridDisk(L,F,v,j)),xt(j,J)}finally{PA._free(j)}}finally{PA._free(x)}}function jt(y,v){var I=s2(y),L=I[0],F=I[1],x=PA._malloc(T0);try{switch(v){case P0.m2:k0(YA.cellAreaM2(L,F,x));break;case P0.km2:k0(YA.cellAreaKm2(L,F,x));break;case P0.rads2:k0(YA.cellAreaRads2(L,F,x));break;default:throw De(f2,v)}return _r(x)}finally{PA._free(x)}}function Wt(y,v){Tt(y);var I=PA._malloc(T0);try{switch(v){case P0.m:k0(YA.getHexagonEdgeLengthAvgM(y,I));break;case P0.km:k0(YA.getHexagonEdgeLengthAvgKm(y,I));break;default:throw De(f2,v)}return _r(I)}finally{PA._free(I)}}function Vt(y){return y*Math.PI/180}function ct(y){return y*180/Math.PI}const Kt=P0.m,Zt=P0.m2;function Jt(y){return`POLYGON((${Nt(y,!0).map(([L,F])=>`${L} ${F}`).join(",")}))`}class pr{constructor(){i0(this,"type",s0.H3)}latLngToGridKey(v,I,L){return Ut(I,v,L)}getNeighbors(v,I){const F=Yt(v,1).filter(J=>J!==v),x=[GA.EAST,GA.NORTHEAST,GA.NORTHWEST,GA.WEST,GA.SOUTHWEST,GA.SOUTHEAST];return F.map((J,j)=>({gridKey:J,locationType:x[j%x.length]??GA.CENTER}))}gridKeyToWKT(v){return Jt(v)}calculateEdgeLength(v,I){return Wt(I,Kt)}calculateArea(v,I){return jt(v,Zt)}formatLength(v){return v>=1e3?`${(v/1e3).toFixed(2)} km`:`${v.toFixed(2)} m`}formatArea(v){return v>=1e6?`${(v/1e6).toFixed(2)} km²`:`${v.toFixed(2)} m²`}buildFeature(v,I,L,F,x,J,j,lA,CA){const BA=this.latLngToGridKey(I,L,F),OA=[{primary:!0,gridKey:BA,wkt:this.gridKeyToWKT(BA),locationType:GA.CENTER}];if(x){const TA=this.getNeighbors(BA,F);for(const WA of TA)OA.push({primary:!1,gridKey:WA.gridKey,wkt:this.gridKeyToWKT(WA.gridKey),locationType:WA.locationType})}return{id:v,type:s0.H3,grids:OA,drawNeighbor:x,accuracy:F,primaryColor:J,lineWidth:j,lineOpacity:lA,fillOpacity:CA}}}function Xt(y){return y&&y.__esModule&&Object.prototype.hasOwnProperty.call(y,"default")?y.default:y}var t2,Br;function qt(){if(Br)return t2;Br=1;for(var y="0123456789bcdefghjkmnpqrstuvwxyz",v={},I=0;I<y.length;I++)v[y.charAt(I)]=I;var L="auto",F=-90,x=90,J=-180,j=180,lA=[0,5,7,8,11,12,13,15,16,17,18],CA=function(sA,fA,W){if(W===L){if(typeof sA=="number"||typeof fA=="number")throw new Error("string notation required for auto precision.");var iA=sA.split(".")[1].length,X=fA.split(".")[1].length,vA=Math.max(iA,X);W=lA[vA]}else W===void 0&&(W=9);for(var EA=[],mA=0,kA=0,bA=0,_A=x,RA=F,VA=j,t0=J,jA;EA.length<W;)if(kA%2===0?(jA=(VA+t0)/2,fA>jA?(bA=(bA<<1)+1,t0=jA):(bA=(bA<<1)+0,VA=jA)):(jA=(_A+RA)/2,sA>jA?(bA=(bA<<1)+1,RA=jA):(bA=(bA<<1)+0,_A=jA)),mA++,kA++,mA===5){var n0=y[bA];EA.push(n0),mA=0,bA=0}return EA.join("")},BA=function(sA,fA,W){W=W||52;for(var iA=0,X=x,vA=F,EA=j,mA=J,kA,bA=0;iA<W;)bA*=2,iA%2===0?(kA=(EA+mA)/2,fA>kA?(bA+=1,mA=kA):EA=kA):(kA=(X+vA)/2,sA>kA?(bA+=1,vA=kA):X=kA),iA++;return bA},OA=function(sA){for(var fA=!0,W=x,iA=F,X=j,vA=J,EA,mA=0,kA=0,bA=sA.length;kA<bA;kA++){var _A=sA[kA].toLowerCase();mA=v[_A];for(var RA=4;RA>=0;RA--){var VA=mA>>RA&1;fA?(EA=(X+vA)/2,VA===1?vA=EA:X=EA):(EA=(W+iA)/2,VA===1?iA=EA:W=EA),fA=!fA}}return[iA,vA,W,X]},TA=function(sA,fA){fA=fA||52;for(var W=x,iA=F,X=j,vA=J,EA=0,mA=0,kA=fA/2,bA=0;bA<kA;bA++)mA=WA(sA,(kA-bA)*2-1),EA=WA(sA,(kA-bA)*2-2),EA===0?W=(W+iA)/2:iA=(W+iA)/2,mA===0?X=(X+vA)/2:vA=(X+vA)/2;return[iA,vA,W,X]};function WA(sA,fA){return sA/Math.pow(2,fA)&1}var d0=function(sA){var fA=OA(sA),W=(fA[0]+fA[2])/2,iA=(fA[1]+fA[3])/2,X=fA[2]-W,vA=fA[3]-iA;return{latitude:W,longitude:iA,error:{latitude:X,longitude:vA}}},B0=function(sA,fA){var W=TA(sA,fA),iA=(W[0]+W[2])/2,X=(W[1]+W[3])/2,vA=W[2]-iA,EA=W[3]-X;return{latitude:iA,longitude:X,error:{latitude:vA,longitude:EA}}},ee=function(sA,fA){var W=d0(sA),iA=W.latitude+fA[0]*W.error.latitude*2,X=W.longitude+fA[1]*W.error.longitude*2;return X=u0(X),iA=F0(iA),CA(iA,X,sA.length)},V0=function(sA,fA,W){W=W||52;var iA=B0(sA,W),X=iA.latitude+fA[0]*iA.error.latitude*2,vA=iA.longitude+fA[1]*iA.error.longitude*2;return vA=u0(vA),X=F0(X),BA(X,vA,W)},be=function(sA){var fA=sA.length,W=d0(sA),iA=W.latitude,X=W.longitude,vA=W.error.latitude*2,EA=W.error.longitude*2,mA,kA,bA=[_A(1,0),_A(1,1),_A(0,1),_A(-1,1),_A(-1,0),_A(-1,-1),_A(0,-1),_A(1,-1)];function _A(RA,VA){return mA=iA+RA*vA,kA=X+VA*EA,kA=u0(kA),mA=F0(mA),CA(mA,kA,fA)}return bA},me=function(sA,fA){fA=fA||52;var W=B0(sA,fA),iA=W.latitude,X=W.longitude,vA=W.error.latitude*2,EA=W.error.longitude*2,mA,kA,bA=[_A(1,0),_A(1,1),_A(0,1),_A(-1,1),_A(-1,0),_A(-1,-1),_A(0,-1),_A(1,-1)];function _A(RA,VA){return mA=iA+RA*vA,kA=X+VA*EA,kA=u0(kA),mA=F0(mA),BA(mA,kA,fA)}return bA},re=function(sA,fA,W,iA,X){X=X||9;for(var vA=CA(sA,fA,X),EA=CA(W,iA,X),mA=d0(vA),kA=mA.error.latitude*2,bA=mA.error.longitude*2,_A=OA(vA),RA=OA(EA),VA=Math.round((RA[0]-_A[0])/kA),t0=Math.round((RA[1]-_A[1])/bA),jA=[],n0=0;n0<=VA;n0++)for(var h0=0;h0<=t0;h0++)jA.push(ee(vA,[n0,h0]));return jA},Qe=function(sA,fA,W,iA,X){X=X||52;for(var vA=BA(sA,fA,X),EA=BA(W,iA,X),mA=B0(vA,X),kA=mA.error.latitude*2,bA=mA.error.longitude*2,_A=TA(vA,X),RA=TA(EA,X),VA=Math.round((RA[0]-_A[0])/kA),t0=Math.round((RA[1]-_A[1])/bA),jA=[],n0=0;n0<=VA;n0++)for(var h0=0;h0<=t0;h0++)jA.push(V0(vA,[n0,h0],X));return jA};function u0(sA){return sA>j?J+sA%j:sA<J?j+sA%j:sA}function F0(sA){return sA>x?x:sA<F?F:sA}var Ce={ENCODE_AUTO:L,encode:CA,encode_uint64:BA,encode_int:BA,decode:d0,decode_int:B0,decode_uint64:B0,decode_bbox:OA,decode_bbox_uint64:TA,decode_bbox_int:TA,neighbor:ee,neighbor_int:V0,neighbors:be,neighbors_int:me,bboxes:re,bboxes_int:Qe};return t2=Ce,t2}var $t=qt();const l2=Xt($t),An={n:GA.NORTH,ne:GA.NORTHEAST,e:GA.EAST,se:GA.SOUTHEAST,s:GA.SOUTH,sw:GA.SOUTHWEST,w:GA.WEST,nw:GA.NORTHWEST};function o2(y){const{latitude:v,longitude:I,error:L}=l2.decode(y);return{minLat:v-L.latitude,maxLat:v+L.latitude,minLng:I-L.longitude,maxLng:I+L.longitude}}function en(y){const v=o2(y);return`POLYGON((${v.minLng} ${v.minLat},${v.maxLng} ${v.minLat},${v.maxLng} ${v.maxLat},${v.minLng} ${v.maxLat},${v.minLng} ${v.minLat}))`}function ve(y,v,I,L){const x=BA=>BA*Math.PI/180,J=x(I-y),j=x(L-v),lA=Math.sin(J/2)*Math.sin(J/2)+Math.cos(x(y))*Math.cos(x(I))*Math.sin(j/2)*Math.sin(j/2);return 6371e3*(2*Math.atan2(Math.sqrt(lA),Math.sqrt(1-lA)))}class yr{constructor(){i0(this,"type",s0.GEOHASH)}latLngToGridKey(v,I,L){return l2.encode(I,v,L)}getNeighbors(v,I){const L=l2.neighbors(v);return Object.entries(L).filter(([,F])=>F!=="").map(([F,x])=>({gridKey:x,locationType:An[F]??GA.CENTER}))}gridKeyToWKT(v){return en(v)}calculateEdgeLength(v,I){const L=o2(v),F=ve(L.minLat,L.minLng,L.minLat,L.maxLng),x=ve(L.minLat,L.minLng,L.maxLat,L.minLng);return Math.max(F,x)}calculateArea(v,I){const L=o2(v),F=ve(L.minLat,L.minLng,L.minLat,L.maxLng),x=ve(L.minLat,L.minLng,L.maxLat,L.minLng);return F*x}formatLength(v){return v>=1e3?`${(v/1e3).toFixed(2)} km`:`${v.toFixed(2)} m`}formatArea(v){return v>=1e6?`${(v/1e6).toFixed(2)} km²`:`${v.toFixed(2)} m²`}buildFeature(v,I,L,F,x,J,j,lA,CA){const BA=this.latLngToGridKey(I,L,F),OA=[{primary:!0,gridKey:BA,wkt:this.gridKeyToWKT(BA),locationType:GA.CENTER}];if(x){const TA=this.getNeighbors(BA,F);for(const WA of TA)OA.push({primary:!1,gridKey:WA.gridKey,wkt:this.gridKeyToWKT(WA.gridKey),locationType:WA.locationType})}return{id:v,type:s0.GEOHASH,grids:OA,drawNeighbor:x,accuracy:F,primaryColor:J,lineWidth:j,lineOpacity:lA,fillOpacity:CA}}}const ke=new Map;function Be(y){if(!ke.has(y))switch(y){case s0.H3:ke.set(y,new pr);break;case s0.GEOHASH:ke.set(y,new yr);break}return ke.get(y)}let Mr=1;function Ir(){return Mr++}function rn(){Mr=1}function Lr(y,v,I,L){return y.some(F=>F.type===v&&F.accuracy===I&&F.grids.some(x=>x.primary&&x.gridKey===L))}const n2={type:s0.H3,accuracy:6,drawNeighbor:!1,lineWidth:2,primaryColor:"#0000FF",lineOpacity:1,fillOpacity:.3,enableDel:!1,showLen:!1,showArea:!1,debug:!1};class tn{constructor(v,I){i0(this,"adapter");i0(this,"callbacks");i0(this,"layerHandle",null);i0(this,"features",[]);i0(this,"enableDel",!1);i0(this,"_drawEnabled",!1);i0(this,"options",{...n2});this.adapter=v,this.callbacks=I??{}}get drawEnabled(){return this._drawEnabled}log(...v){this.options.debug&&console.log("[DrawTool]",...v)}startDraw(v={}){if(this.log("startDraw",JSON.stringify(v)),this.layerHandle||(this.layerHandle=this.adapter.createLayer(),this.log("layer created",this.layerHandle.id.toString())),this.options={...n2,...v},this.enableDel=this.options.enableDel,this._drawEnabled=!0,v.oldFeatures&&v.oldFeatures.length>0){this.log("oldFeatures loaded",v.oldFeatures.length);for(const I of v.oldFeatures)this.features.push(I),this.adapter.addFeature(this.layerHandle,I)}}stopDraw(){this.log("stopDraw"),this.layerHandle&&(this.adapter.hideDeleteIcon(this.layerHandle),this.adapter.destroyLayer(this.layerHandle),this.layerHandle=null),this.features=[],this.enableDel=!1,this._drawEnabled=!1,this.options={...n2}}onDblClick(v){if(!this.layerHandle||!this._drawEnabled){this.log("onDblClick ignored: layerHandle=",!!this.layerHandle,"drawEnabled=",this._drawEnabled);return}this.log("onDblClick",v);const I=Be(this.options.type),[L,F]=v,x=I.latLngToGridKey(L,F,this.options.accuracy);if(this.log("gridKey generated",x),Lr(this.features,this.options.type,this.options.accuracy,x)){this.log("duplicate grid detected, skipped");return}const J=Ir();this.log("id generated",J);const j=I.buildFeature(J,L,F,this.options.accuracy,this.options.drawNeighbor,this.options.primaryColor,this.options.lineWidth,this.options.lineOpacity,this.options.fillOpacity);if(this.log("feature built",JSON.stringify({id:j.id,type:j.type,gridCount:j.grids.length})),this.callbacks.insertBiz){const lA=this.callbacks.insertBiz(j);if(this.log("insertBiz callback returned",lA),!lA)return}this.features.push(j),this.adapter.addFeature(this.layerHandle,j),this._drawEnabled=!1,this.options.showLen&&(this.log("showing length label"),this.showLengthLabel(j)),this.options.showArea&&(this.log("showing area label"),this.showAreaLabel(j))}onClick(v){if(!this.layerHandle||!this.enableDel)return;this.log("onClick",v),this.adapter.hideDeleteIcon(this.layerHandle);const I=this.adapter.findFeatureIdAtCoordinate(this.layerHandle,v);if(I===null){this.log("onClick: no feature hit");return}this.log("onClick: hit featureId=",I);const L=this.features.find(F=>F.id===I);L&&this.adapter.showDeleteWithConfirm(this.layerHandle,L,v).then(F=>{this.log("delete confirm result",F),F&&this.executeDelete(L)})}getFeatures(){return[...this.features]}getOptions(){return{...this.options}}executeDelete(v){if(this.callbacks.delBiz&&!this.callbacks.delBiz(v)){this.log("delBiz returned false, restoring feature",v.id),this.adapter.addFeature(this.layerHandle,v);return}this.log("executing delete feature",v.id),this.adapter.removeFeature(this.layerHandle,v.id),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"len"),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"len-width"),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"len-height"),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"area"),this.features=this.features.filter(I=>I.id!==v.id),this.log("feature deleted, remaining count=",this.features.length)}showLengthLabel(v){const I=Be(this.options.type),L=v.grids.find(F=>F.primary);if(L)if(this.options.type===s0.GEOHASH){const{width:F,height:x}=this.getGeoHashDimensions(L.wkt),J=I.formatLength(F),j=I.formatLength(x),lA=this.getPolygonEdgeMidpoints(L.wkt);lA.length>=4&&(this.adapter.showFeatureLabel(this.layerHandle,v.id,J,lA[0],"len-width",this.options.primaryColor),this.adapter.showFeatureLabel(this.layerHandle,v.id,j,lA[3],"len-height",this.options.primaryColor))}else{const F=I.calculateEdgeLength(L.gridKey,this.options.accuracy),x=I.formatLength(F),J=this.getPolygonEdgeMidpoints(L.wkt);J.length>0&&this.adapter.showFeatureLabel(this.layerHandle,v.id,x,J[0],"len",this.options.primaryColor)}}showAreaLabel(v){const I=Be(this.options.type),L=v.grids.find(lA=>lA.primary);if(!L)return;const F=I.calculateArea(L.gridKey,this.options.accuracy),x=I.formatArea(F),[J,j]=this.getGridCenter(L.wkt);this.adapter.showFeatureLabel(this.layerHandle,v.id,x,[J,j],"area",this.options.primaryColor)}getPolygonEdgeMidpoints(v){if(!v.startsWith("POLYGON"))return[];const L=v.replace(/POLYGON\(\(/,"").replace(/\)\)/,"").split(",").map(x=>x.trim().split(/\s+/).map(Number)),F=[];for(let x=0;x<L.length-1;x++){const[J,j]=L[x],[lA,CA]=L[x+1];F.push([(J+lA)/2,(j+CA)/2])}return F}getGeoHashDimensions(v){this.getPolygonEdgeMidpoints(v);const I=this.parsePolygonVertices(v);if(I.length<4)return{width:0,height:0};const[L,F]=I[0],[x]=I[1],[,J]=I[2],j=6371e3,lA=WA=>WA*Math.PI/180,CA=lA(x-L),BA=lA(J-F),OA=CA*j*Math.cos(lA((F+J)/2)),TA=BA*j;return{width:OA,height:TA}}parsePolygonVertices(v){return v.startsWith("POLYGON")?v.replace(/POLYGON\(\(/,"").replace(/\)\)/,"").split(",").map(L=>L.trim().split(/\s+/).map(Number)):[]}getGridCenter(v){if(v.startsWith("POINT")){const I=v.match(/POINT\(([-\d.]+)\s+([-\d.]+)\)/);if(I)return[parseFloat(I[1]),parseFloat(I[2])]}if(v.startsWith("POLYGON")){const L=v.replace(/POLYGON\(\(/,"").replace(/\)\)/,"").split(",").map(lA=>lA.trim().split(/\s+/).map(Number)),F=L.map(([lA])=>lA),x=L.map(([,lA])=>lA),J=(Math.min(...F)+Math.max(...F))/2,j=(Math.min(...x)+Math.max(...x))/2;return[J,j]}return[0,0]}}exports.DrawTool=tn;exports.GeoHashGridStrategy=yr;exports.GridType=s0;exports.H3GridStrategy=pr;exports.LocationType=GA;exports.OpenLayerAdapter=nt;exports.generateId=Ir;exports.getGridStrategy=Be;exports.isDuplicateGrid=Lr;exports.resetIdGenerator=rn;