@npm9912/v-map 0.1.1 → 0.2.1
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/README.md +17 -5
- package/dist/cjs/{cesium-provider-BiFFyAl9.js → cesium-provider-CTtu9eTD.js} +6 -5
- package/dist/cjs/{deck-provider-Ctq3Q8a1.js → deck-provider-fNa818HH.js} +9 -9
- package/dist/cjs/events-BMG7RKne.js +11 -0
- package/dist/cjs/{geotiff-source-RaNzzWkC.js → geotiff-source-B9ARUE9z.js} +1 -1
- package/dist/cjs/{index-ISOEpMC3.js → index-9APmzoa2.js} +6 -6
- package/dist/cjs/{index-CbVT-Con.js → index-BJg0ncfC.js} +4 -4
- package/dist/cjs/{index-CJvvX4yx.js → index-C1ubapwF.js} +4 -4
- package/dist/cjs/{index-B8LHqjyg.js → index-ChrKyU6i.js} +4 -4
- package/dist/cjs/{index-JSwBbvGA.js → index-DmGHwivM.js} +1 -0
- package/dist/cjs/{layer-extension-B_olS0rc.js → layer-extension-D3a-1DFI.js} +1 -1
- package/dist/cjs/{leaflet-provider-DOqfs7g5.js → leaflet-provider-7Nw-AdV_.js} +6 -5
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{messages-D7h4m8Tx.js → messages-CFCxeG8p.js} +0 -9
- package/dist/cjs/{openlayers-provider-Dfeg6L4n.js → openlayers-provider-DMxYtFkS.js} +5 -4
- package/dist/cjs/{polygon-layer-B9PrN7vr.js → polygon-layer-Dx1ZWZP0.js} +1 -1
- package/dist/cjs/{scenegraph-layer-DwNoxQdi.js → scenegraph-layer-ctLehP0q.js} +1 -1
- package/dist/cjs/v-map-builder.cjs.entry.js +4 -3
- package/dist/cjs/v-map-error.cjs.entry.js +121 -0
- package/dist/cjs/v-map-layer-geojson_12.cjs.entry.js +11 -10
- package/dist/cjs/{v-map-layer-helper-iAzxAg9I.js → v-map-layer-helper-DnWpjZ_Q.js} +7 -6
- package/dist/cjs/v-map-layer-terrain-geotiff.cjs.entry.js +5 -4
- package/dist/cjs/v-map-layercontrol.cjs.entry.js +1 -1
- package/dist/cjs/v-map.cjs.js +2 -2
- package/dist/cjs/{v-map.v-map-layer-osm.v-map-layergroup-BsXp3BoL.js → v-map.v-map-layer-osm.v-map-layergroup-BJ3_NqAj.js} +16 -15
- package/dist/cjs/v-map_3.cjs.entry.js +5 -4
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/v-map/v-map.css +3 -0
- package/dist/collection/components/v-map-error/v-map-error.css +136 -0
- package/dist/collection/components/v-map-error/v-map-error.js +277 -0
- package/dist/collection/components/v-map-error/v-map-error.test.js +131 -0
- package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.js +1 -1
- package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.js +1 -1
- package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.js +1 -1
- package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.js +1 -1
- package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.js +1 -1
- package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.js +1 -1
- package/dist/collection/components/v-map-layergroup/v-map-layergroup.js +1 -1
- package/dist/collection/components/v-map-style/v-map-style.js +1 -1
- package/dist/components/cesium-provider.js +1 -1
- package/dist/components/deck-provider.js +1 -1
- package/dist/components/events.js +1 -1
- package/dist/components/geotiff-source.js +1 -1
- package/dist/components/leaflet-provider.js +1 -1
- package/dist/components/logger.js +1 -0
- package/dist/components/openlayers-provider.js +1 -1
- package/dist/components/v-map-builder.js +2 -2
- package/dist/components/v-map-error.d.ts +11 -0
- package/dist/components/v-map-error.js +1 -0
- package/dist/components/v-map-layer-geojson2.js +1 -1
- package/dist/components/v-map-layer-geotiff2.js +1 -1
- package/dist/components/v-map-layer-google2.js +1 -1
- package/dist/components/v-map-layer-helper.js +1 -1
- package/dist/components/v-map-layer-osm2.js +1 -1
- package/dist/components/v-map-layer-scatterplot2.js +1 -1
- package/dist/components/v-map-layer-terrain-geotiff.js +1 -1
- package/dist/components/v-map-layer-terrain2.js +1 -1
- package/dist/components/v-map-layer-tile3d2.js +1 -1
- package/dist/components/v-map-layer-wcs2.js +1 -1
- package/dist/components/v-map-layer-wfs2.js +1 -1
- package/dist/components/v-map-layer-wkt2.js +1 -1
- package/dist/components/v-map-layer-wms2.js +1 -1
- package/dist/components/v-map-layer-xyz2.js +1 -1
- package/dist/components/v-map-layergroup2.js +1 -1
- package/dist/components/v-map-style2.js +2 -2
- package/dist/components/v-map2.js +1 -1
- package/dist/esm/{cesium-provider-BJfAup3w.js → cesium-provider-Bh__cBGf.js} +6 -5
- package/dist/esm/{deck-provider-C7U9VDEq.js → deck-provider-DxIpS4lY.js} +9 -9
- package/dist/esm/events-CrV_misM.js +9 -0
- package/dist/esm/{geotiff-source-esnDnC-u.js → geotiff-source-BRjO-Dvr.js} +1 -1
- package/dist/esm/{index-BIEmlzCf.js → index-Bh2gBu9u.js} +5 -5
- package/dist/esm/{index-jzneDarq.js → index-BoNyIrdq.js} +1 -1
- package/dist/esm/{index-jN06TXUp.js → index-C3mnOs0I.js} +4 -4
- package/dist/esm/{index-B1zwA4IC.js → index-C63kfbil.js} +6 -6
- package/dist/esm/{index-DbSdn93t.js → index-DxbztwCv.js} +7 -7
- package/dist/esm/{layer-extension-CZXK5goK.js → layer-extension-C5Y2UES3.js} +1 -1
- package/dist/esm/{leaflet-provider-Q41TB6ku.js → leaflet-provider-k6JSYiYX.js} +6 -5
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{messages-CMKJzsgL.js → messages-QJHuuz0g.js} +1 -9
- package/dist/esm/{openlayers-provider-CMsDsQTQ.js → openlayers-provider-DIquf3Tx.js} +5 -4
- package/dist/esm/{polygon-layer-ByhxGhWC.js → polygon-layer-ZIT5mJy5.js} +1 -1
- package/dist/esm/{scenegraph-layer-09K_B6DT.js → scenegraph-layer-CNIRd2uu.js} +1 -1
- package/dist/esm/v-map-builder.entry.js +3 -2
- package/dist/esm/v-map-error.entry.js +119 -0
- package/dist/esm/v-map-layer-geojson_12.entry.js +10 -9
- package/dist/esm/{v-map-layer-helper-Dys44Cgo.js → v-map-layer-helper-CuHYsU9f.js} +2 -1
- package/dist/esm/v-map-layer-terrain-geotiff.entry.js +5 -4
- package/dist/esm/v-map-layercontrol.entry.js +1 -1
- package/dist/esm/v-map.js +3 -3
- package/dist/esm/{v-map.v-map-layer-osm.v-map-layergroup-B4pFHuSf.js → v-map.v-map-layer-osm.v-map-layergroup-Zwdvm9PG.js} +10 -9
- package/dist/esm/v-map_3.entry.js +5 -4
- package/dist/types/components/v-map-error/v-map-error.d.ts +79 -0
- package/dist/types/components/v-map-error/v-map-error.test.d.ts +1 -0
- package/dist/types/components.d.ts +128 -0
- package/dist/v-map/p-05ee633f.entry.js +1 -0
- package/dist/v-map/p-08ad1392.entry.js +1 -0
- package/dist/v-map/p-2-mR3oVa.js +1 -0
- package/dist/v-map/{p-c21c93fe.entry.js → p-3a57b64a.entry.js} +1 -1
- package/dist/v-map/p-58dda864.entry.js +1 -0
- package/dist/v-map/p-915314c0.entry.js +10 -0
- package/dist/v-map/{p-MyTSFnEk.js → p-9Rt23jlQ.js} +1 -1
- package/dist/v-map/p-BSsFEMZP.js +1 -0
- package/dist/v-map/{p-jzneDarq.js → p-BoNyIrdq.js} +2 -2
- package/dist/v-map/p-BpE6L1g0.js +1 -0
- package/dist/v-map/{p-DvHXtWUg.js → p-C0M0-Kvt.js} +1 -1
- package/dist/v-map/p-CbiLpFhO.js +1 -0
- package/dist/v-map/p-Ci70E1EM.js +1 -0
- package/dist/v-map/p-CrV_misM.js +1 -0
- package/dist/v-map/{p-DrOQ9V4h.js → p-DAf4itFZ.js} +1 -1
- package/dist/v-map/p-DVBtCUtQ.js +1 -0
- package/dist/v-map/{p-CZqY0yW4.js → p-DuJ_mTaq.js} +1 -1
- package/dist/v-map/p-G6iftXUC.js +1 -0
- package/dist/v-map/{p-CMKJzsgL.js → p-QJHuuz0g.js} +1 -1
- package/dist/v-map/{p-aa410e64.entry.js → p-e21ea0ce.entry.js} +2 -2
- package/dist/v-map/{p-DmICdG34.js → p-rCyRSFJb.js} +2 -2
- package/dist/v-map/{p-CafTHT9i.js → p-vhbi5XXi.js} +1 -1
- package/dist/v-map/{p-Dckgonw8.js → p-yXLNXXx-.js} +1 -1
- package/dist/v-map/v-map.esm.js +1 -1
- package/package.json +1 -1
- package/dist/v-map/p--vVleK-M.js +0 -1
- package/dist/v-map/p-09d10db0.entry.js +0 -1
- package/dist/v-map/p-5eba6058.entry.js +0 -10
- package/dist/v-map/p-6b102336.entry.js +0 -1
- package/dist/v-map/p-BdijL4Av.js +0 -1
- package/dist/v-map/p-BeFu0ap4.js +0 -1
- package/dist/v-map/p-BxFJezdK.js +0 -1
- package/dist/v-map/p-DCTHyf58.js +0 -1
- package/dist/v-map/p-WaMDUuAz.js +0 -1
- package/dist/v-map/p-uiIP-taz.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{C as A,ae as e,E as t,d as r,B as n,O as i,D as o,P as a,l as s,S as f,M as u,j as l,G as c,aP as h,aQ as d,aR as g,a0 as w,e as v,aS as B,aT as b}from"./p-MyTSFnEk.js";export{aU as TerrainLayer,aW as _Tile2DHeader,aV as _Tileset2D}from"./p-MyTSFnEk.js";import{a as M,A as k,C as m,P as Q}from"./p-DvHXtWUg.js";import{ImageSource as D,createImageSource as p}from"@loaders.gl/wms";import{g as E}from"./p-E-ZsRS8r.js";import{p as C,a as y,S as P}from"./p-DrOQ9V4h.js";import{load as I}from"@loaders.gl/core";import{Tileset3D as F,TILE_TYPE as T}from"@loaders.gl/tiles";import{Tiles3DLoader as L}from"@loaders.gl/3d-tiles";import{MVTWorkerLoader as x}from"@loaders.gl/mvt";import{binaryToGeojson as G}from"@loaders.gl/gis";import{L as S}from"./p-CZqY0yW4.js";import"./p-B-bAcABs.js";import"./p-DhQAXuA7.js";import"./p-DR9McdNX.js";import"./p-CMKJzsgL.js";import"./p-Dckgonw8.js";import"@loaders.gl/images";import"@loaders.gl/loader-utils";import"@loaders.gl/terrain";import"@loaders.gl/schema";import"@loaders.gl/gltf";const U={...M.defaultProps};class z extends A{indexToBounds(){return null}renderLayers(){const{elevationScale:A,extruded:e,wireframe:t,filled:r,stroked:n,lineWidthUnits:i,lineWidthScale:o,lineWidthMinPixels:a,lineWidthMaxPixels:s,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:l,getElevation:c,getFillColor:h,getLineColor:d,getLineWidth:g}=this.props,{updateTriggers:w,material:v,transitions:B}=this.props,b=this.getSubLayerClass("cell",M),{updateTriggers:k,...m}=this.indexToBounds()||{};return new b({filled:r,wireframe:t,extruded:e,elevationScale:A,stroked:n,lineWidthUnits:i,lineWidthScale:o,lineWidthMinPixels:a,lineWidthMaxPixels:s,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:l,material:v,transitions:B,getElevation:c,getFillColor:h,getLineColor:d,getLineWidth:g},this.getSubLayerProps({id:"cell",updateTriggers:w&&{...k,getElevation:w.getElevation,getFillColor:w.getFillColor,getLineColor:w.getLineColor,getLineWidth:w.getLineWidth}}),m)}}var R,O;function Y(){if(O)return R;O=1;var A,e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,i=(A,t)=>{for(var r in t)e(A,r,{get:t[r],enumerable:!0})},o={};i(o,{cellArea:()=>jn,cellToBoundary:()=>Rn,cellToChildren:()=>In,cellToLonLat:()=>zn,cellToParent:()=>Fn,getNumCells:()=>Vn,getRes0Cells:()=>Tn,getResolution:()=>Cn,hexToU64:()=>Yn,lonLatToCell:()=>Gn,u64ToHex:()=>_n}),A=o,R=((A,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let o of r(i))n.call(A,o)||undefined===o||e(A,o,{get:()=>i[o],enumerable:!(a=t(i,o))||a.enumerable});return A})(e({},"__esModule",{value:!0}),A);var a={};i(a,{ARRAY_TYPE:()=>f,EPSILON:()=>s,RANDOM:()=>u,equals:()=>d,setMatrixArrayType:()=>l,toRadian:()=>h});var s=1e-6,f="undefined"!=typeof Float32Array?Float32Array:Array,u=Math.random;function l(A){f=A}var c=Math.PI/180;function h(A){return A*c}function d(A,e){return Math.abs(A-e)<=s*Math.max(1,Math.abs(A),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var A=0,e=arguments.length;e--;)A+=arguments[e]*arguments[e];return Math.sqrt(A)});var g={};function w(){var A=new f(4);return f!=Float32Array&&(A[1]=0,A[2]=0),A[0]=1,A[3]=1,A}function v(A){var e=new f(4);return e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[3],e}function B(A,e){return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A}function b(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=1,A}function M(A,e,t,r){var n=new f(4);return n[0]=A,n[1]=e,n[2]=t,n[3]=r,n}function k(A,e,t,r,n){return A[0]=e,A[1]=t,A[2]=r,A[3]=n,A}function m(A,e){if(A===e){var t=e[1];A[1]=e[2],A[2]=t}else A[0]=e[0],A[1]=e[2],A[2]=e[1],A[3]=e[3];return A}function Q(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=t*i-n*r;return o?(A[0]=i*(o=1/o),A[1]=-r*o,A[2]=-n*o,A[3]=t*o,A):null}function D(A,e){var t=e[0];return A[0]=e[3],A[1]=-e[1],A[2]=-e[2],A[3]=t,A}function p(A){return A[0]*A[3]-A[2]*A[1]}function E(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=t[0],s=t[1],f=t[2],u=t[3];return A[0]=r*a+i*s,A[1]=n*a+o*s,A[2]=r*f+i*u,A[3]=n*f+o*u,A}function C(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s+i*a,A[1]=n*s+o*a,A[2]=r*-a+i*s,A[3]=n*-a+o*s,A}function y(A,e,t){var r=e[1],n=e[2],i=e[3],o=t[0],a=t[1];return A[0]=e[0]*o,A[1]=r*o,A[2]=n*a,A[3]=i*a,A}function P(A,e){var t=Math.sin(e),r=Math.cos(e);return A[0]=r,A[1]=t,A[2]=-t,A[3]=r,A}function I(A,e){return A[0]=e[0],A[1]=0,A[2]=0,A[3]=e[1],A}function F(A){return"mat2("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+")"}function T(A){return Math.hypot(A[0],A[1],A[2],A[3])}function L(A,e,t,r){return A[2]=r[2]/r[0],t[0]=r[0],t[1]=r[1],t[3]=r[3]-A[2]*t[1],[A,e,t]}function x(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A[2]=e[2]+t[2],A[3]=e[3]+t[3],A}function G(A,e,t){return A[0]=e[0]-t[0],A[1]=e[1]-t[1],A[2]=e[2]-t[2],A[3]=e[3]-t[3],A}function S(A,e){return A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]&&A[3]===e[3]}function U(A,e){var t=A[0],r=A[1],n=A[2],i=A[3],o=e[0],a=e[1],f=e[2],u=e[3];return Math.abs(t-o)<=s*Math.max(1,Math.abs(t),Math.abs(o))&&Math.abs(r-a)<=s*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-f)<=s*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(i-u)<=s*Math.max(1,Math.abs(i),Math.abs(u))}function z(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A[2]=e[2]*t,A[3]=e[3]*t,A}function Y(A,e,t,r){return A[0]=e[0]+t[0]*r,A[1]=e[1]+t[1]*r,A[2]=e[2]+t[2]*r,A[3]=e[3]+t[3]*r,A}i(g,{LDU:()=>L,add:()=>x,adjoint:()=>D,clone:()=>v,copy:()=>B,create:()=>w,determinant:()=>p,equals:()=>U,exactEquals:()=>S,frob:()=>T,fromRotation:()=>P,fromScaling:()=>I,fromValues:()=>M,identity:()=>b,invert:()=>Q,mul:()=>_,multiply:()=>E,multiplyScalar:()=>z,multiplyScalarAndAdd:()=>Y,rotate:()=>C,scale:()=>y,set:()=>k,str:()=>F,sub:()=>W,subtract:()=>G,transpose:()=>m});var _=E,W=G,H={};i(H,{add:()=>Be,calculateW:()=>XA,clone:()=>de,conjugate:()=>re,copy:()=>we,create:()=>YA,dot:()=>ke,equals:()=>Pe,exactEquals:()=>ye,exp:()=>KA,fromEuler:()=>ie,fromMat3:()=>ne,fromValues:()=>ge,getAngle:()=>VA,getAxisAngle:()=>HA,identity:()=>_A,invert:()=>te,len:()=>De,length:()=>Qe,lerp:()=>me,ln:()=>qA,mul:()=>be,multiply:()=>jA,normalize:()=>Ce,pow:()=>$A,random:()=>ee,rotateX:()=>NA,rotateY:()=>ZA,rotateZ:()=>JA,rotationTo:()=>Ie,scale:()=>Me,set:()=>ve,setAxes:()=>Te,setAxisAngle:()=>WA,slerp:()=>Ae,sqlerp:()=>Fe,sqrLen:()=>Ee,squaredLength:()=>pe,str:()=>oe});var V={};function j(){var A=new f(3);return f!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0),A}function N(A){var e=new f(3);return e[0]=A[0],e[1]=A[1],e[2]=A[2],e}function Z(A){return Math.hypot(A[0],A[1],A[2])}function J(A,e,t){var r=new f(3);return r[0]=A,r[1]=e,r[2]=t,r}function X(A,e){return A[0]=e[0],A[1]=e[1],A[2]=e[2],A}function K(A,e,t,r){return A[0]=e,A[1]=t,A[2]=r,A}function q(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A[2]=e[2]+t[2],A}function $(A,e,t){return A[0]=e[0]-t[0],A[1]=e[1]-t[1],A[2]=e[2]-t[2],A}function AA(A,e,t){return A[0]=e[0]*t[0],A[1]=e[1]*t[1],A[2]=e[2]*t[2],A}function eA(A,e,t){return A[0]=e[0]/t[0],A[1]=e[1]/t[1],A[2]=e[2]/t[2],A}function tA(A,e){return A[0]=Math.ceil(e[0]),A[1]=Math.ceil(e[1]),A[2]=Math.ceil(e[2]),A}function rA(A,e){return A[0]=Math.floor(e[0]),A[1]=Math.floor(e[1]),A[2]=Math.floor(e[2]),A}function nA(A,e,t){return A[0]=Math.min(e[0],t[0]),A[1]=Math.min(e[1],t[1]),A[2]=Math.min(e[2],t[2]),A}function iA(A,e,t){return A[0]=Math.max(e[0],t[0]),A[1]=Math.max(e[1],t[1]),A[2]=Math.max(e[2],t[2]),A}function oA(A,e){return A[0]=Math.round(e[0]),A[1]=Math.round(e[1]),A[2]=Math.round(e[2]),A}function aA(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A[2]=e[2]*t,A}function sA(A,e,t,r){return A[0]=e[0]+t[0]*r,A[1]=e[1]+t[1]*r,A[2]=e[2]+t[2]*r,A}function fA(A,e){return Math.hypot(e[0]-A[0],e[1]-A[1],e[2]-A[2])}function uA(A,e){var t=e[0]-A[0],r=e[1]-A[1],n=e[2]-A[2];return t*t+r*r+n*n}function lA(A){var e=A[0],t=A[1],r=A[2];return e*e+t*t+r*r}function cA(A,e){return A[0]=-e[0],A[1]=-e[1],A[2]=-e[2],A}function hA(A,e){return A[0]=1/e[0],A[1]=1/e[1],A[2]=1/e[2],A}function dA(A,e){var t=e[0],r=e[1],n=e[2],i=t*t+r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),A[0]=e[0]*i,A[1]=e[1]*i,A[2]=e[2]*i,A}function gA(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]}function wA(A,e,t){var r=e[0],n=e[1],i=e[2],o=t[0],a=t[1],s=t[2];return A[0]=n*s-i*a,A[1]=i*o-r*s,A[2]=r*a-n*o,A}function vA(A,e,t,r){var n=e[0],i=e[1],o=e[2];return A[0]=n+r*(t[0]-n),A[1]=i+r*(t[1]-i),A[2]=o+r*(t[2]-o),A}function BA(A,e,t,r,n,i){var o=i*i,a=o*(2*i-3)+1,s=o*(i-2)+i,f=o*(i-1),u=o*(3-2*i);return A[0]=e[0]*a+t[0]*s+r[0]*f+n[0]*u,A[1]=e[1]*a+t[1]*s+r[1]*f+n[1]*u,A[2]=e[2]*a+t[2]*s+r[2]*f+n[2]*u,A}function bA(A,e,t,r,n,i){var o=1-i,a=o*o,s=i*i,f=a*o,u=3*i*a,l=3*s*o,c=s*i;return A[0]=e[0]*f+t[0]*u+r[0]*l+n[0]*c,A[1]=e[1]*f+t[1]*u+r[1]*l+n[1]*c,A[2]=e[2]*f+t[2]*u+r[2]*l+n[2]*c,A}function MA(A,e){e=e||1;var t=2*u()*Math.PI,r=2*u()-1,n=Math.sqrt(1-r*r)*e;return A[0]=Math.cos(t)*n,A[1]=Math.sin(t)*n,A[2]=r*e,A}function kA(A,e,t){var r=e[0],n=e[1],i=e[2],o=t[3]*r+t[7]*n+t[11]*i+t[15];return A[0]=(t[0]*r+t[4]*n+t[8]*i+t[12])/(o=o||1),A[1]=(t[1]*r+t[5]*n+t[9]*i+t[13])/o,A[2]=(t[2]*r+t[6]*n+t[10]*i+t[14])/o,A}function mA(A,e,t){var r=e[0],n=e[1],i=e[2];return A[0]=r*t[0]+n*t[3]+i*t[6],A[1]=r*t[1]+n*t[4]+i*t[7],A[2]=r*t[2]+n*t[5]+i*t[8],A}function QA(A,e,t){var r=t[0],n=t[1],i=t[2],o=e[0],a=e[1],s=e[2],f=n*s-i*a,u=i*o-r*s,l=r*a-n*o,c=n*l-i*u,h=i*f-r*l,d=r*u-n*f,g=2*t[3];return u*=g,l*=g,h*=2,d*=2,A[0]=o+(f*=g)+(c*=2),A[1]=a+u+h,A[2]=s+l+d,A}function DA(A,e,t,r){var n=[],i=[];return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],i[0]=n[0],i[1]=n[1]*Math.cos(r)-n[2]*Math.sin(r),i[2]=n[1]*Math.sin(r)+n[2]*Math.cos(r),A[0]=i[0]+t[0],A[1]=i[1]+t[1],A[2]=i[2]+t[2],A}function pA(A,e,t,r){var n=[],i=[];return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],i[0]=n[2]*Math.sin(r)+n[0]*Math.cos(r),i[1]=n[1],i[2]=n[2]*Math.cos(r)-n[0]*Math.sin(r),A[0]=i[0]+t[0],A[1]=i[1]+t[1],A[2]=i[2]+t[2],A}function EA(A,e,t,r){var n=[],i=[];return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],i[0]=n[0]*Math.cos(r)-n[1]*Math.sin(r),i[1]=n[0]*Math.sin(r)+n[1]*Math.cos(r),i[2]=n[2],A[0]=i[0]+t[0],A[1]=i[1]+t[1],A[2]=i[2]+t[2],A}function CA(A,e){var t=A[0],r=A[1],n=A[2],i=e[0],o=e[1],a=e[2],s=Math.sqrt(t*t+r*r+n*n)*Math.sqrt(i*i+o*o+a*a),f=s&&gA(A,e)/s;return Math.acos(Math.min(Math.max(f,-1),1))}function yA(A){return A[0]=0,A[1]=0,A[2]=0,A}function PA(A){return"vec3("+A[0]+", "+A[1]+", "+A[2]+")"}function IA(A,e){return A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]}function FA(A,e){var t=A[0],r=A[1],n=A[2],i=e[0],o=e[1],a=e[2];return Math.abs(t-i)<=s*Math.max(1,Math.abs(t),Math.abs(i))&&Math.abs(r-o)<=s*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=s*Math.max(1,Math.abs(n),Math.abs(a))}i(V,{add:()=>q,angle:()=>CA,bezier:()=>bA,ceil:()=>tA,clone:()=>N,copy:()=>X,create:()=>j,cross:()=>wA,dist:()=>SA,distance:()=>fA,div:()=>GA,divide:()=>eA,dot:()=>gA,equals:()=>FA,exactEquals:()=>IA,floor:()=>rA,forEach:()=>OA,fromValues:()=>J,hermite:()=>BA,inverse:()=>hA,len:()=>zA,length:()=>Z,lerp:()=>vA,max:()=>iA,min:()=>nA,mul:()=>xA,multiply:()=>AA,negate:()=>cA,normalize:()=>dA,random:()=>MA,rotateX:()=>DA,rotateY:()=>pA,rotateZ:()=>EA,round:()=>oA,scale:()=>aA,scaleAndAdd:()=>sA,set:()=>K,sqrDist:()=>UA,sqrLen:()=>RA,squaredDistance:()=>uA,squaredLength:()=>lA,str:()=>PA,sub:()=>LA,subtract:()=>$,transformMat3:()=>mA,transformMat4:()=>kA,transformQuat:()=>QA,zero:()=>yA});var TA,LA=$,xA=AA,GA=eA,SA=fA,UA=uA,zA=Z,RA=lA,OA=(TA=j(),function(A,e,t,r,n,i){var o,a;for(e||(e=3),t||(t=0),a=r?Math.min(r*e+t,A.length):A.length,o=t;o<a;o+=e)TA[0]=A[o],TA[1]=A[o+1],TA[2]=A[o+2],n(TA,TA,i),A[o]=TA[0],A[o+1]=TA[1],A[o+2]=TA[2];return A});function YA(){var A=new f(4);return f!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0),A[3]=1,A}function _A(A){return A[0]=0,A[1]=0,A[2]=0,A[3]=1,A}function WA(A,e,t){t*=.5;var r=Math.sin(t);return A[0]=r*e[0],A[1]=r*e[1],A[2]=r*e[2],A[3]=Math.cos(t),A}function HA(A,e){var t=2*Math.acos(e[3]),r=Math.sin(t/2);return r>s?(A[0]=e[0]/r,A[1]=e[1]/r,A[2]=e[2]/r):(A[0]=1,A[1]=0,A[2]=0),t}function VA(A,e){var t=ke(A,e);return Math.acos(2*t*t-1)}function jA(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=t[0],s=t[1],f=t[2],u=t[3];return A[0]=r*u+o*a+n*f-i*s,A[1]=n*u+o*s+i*a-r*f,A[2]=i*u+o*f+r*s-n*a,A[3]=o*u-r*a-n*s-i*f,A}function NA(A,e,t){t*=.5;var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s+o*a,A[1]=n*s+i*a,A[2]=i*s-n*a,A[3]=o*s-r*a,A}function ZA(A,e,t){t*=.5;var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s-i*a,A[1]=n*s+o*a,A[2]=i*s+r*a,A[3]=o*s-n*a,A}function JA(A,e,t){t*=.5;var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s+n*a,A[1]=n*s-r*a,A[2]=i*s+o*a,A[3]=o*s-i*a,A}function XA(A,e){var t=e[0],r=e[1],n=e[2];return A[0]=t,A[1]=r,A[2]=n,A[3]=Math.sqrt(Math.abs(1-t*t-r*r-n*n)),A}function KA(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=Math.sqrt(t*t+r*r+n*n),a=Math.exp(i),s=o>0?a*Math.sin(o)/o:0;return A[0]=t*s,A[1]=r*s,A[2]=n*s,A[3]=a*Math.cos(o),A}function qA(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=Math.sqrt(t*t+r*r+n*n),a=o>0?Math.atan2(o,i)/o:0;return A[0]=t*a,A[1]=r*a,A[2]=n*a,A[3]=.5*Math.log(t*t+r*r+n*n+i*i),A}function $A(A,e,t){return qA(A,e),Me(A,A,t),KA(A,A),A}function Ae(A,e,t,r){var n,i,o,a,f,u=e[0],l=e[1],c=e[2],h=e[3],d=t[0],g=t[1],w=t[2],v=t[3];return(i=u*d+l*g+c*w+h*v)<0&&(i=-i,d=-d,g=-g,w=-w,v=-v),1-i>s?(n=Math.acos(i),o=Math.sin(n),a=Math.sin((1-r)*n)/o,f=Math.sin(r*n)/o):(a=1-r,f=r),A[0]=a*u+f*d,A[1]=a*l+f*g,A[2]=a*c+f*w,A[3]=a*h+f*v,A}function ee(A){var e=u(),t=u(),r=u(),n=Math.sqrt(1-e),i=Math.sqrt(e);return A[0]=n*Math.sin(2*Math.PI*t),A[1]=n*Math.cos(2*Math.PI*t),A[2]=i*Math.sin(2*Math.PI*r),A[3]=i*Math.cos(2*Math.PI*r),A}function te(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=t*t+r*r+n*n+i*i,a=o?1/o:0;return A[0]=-t*a,A[1]=-r*a,A[2]=-n*a,A[3]=i*a,A}function re(A,e){return A[0]=-e[0],A[1]=-e[1],A[2]=-e[2],A[3]=e[3],A}function ne(A,e){var t,r=e[0]+e[4]+e[8];if(r>0)t=Math.sqrt(r+1),A[3]=.5*t,A[0]=(e[5]-e[7])*(t=.5/t),A[1]=(e[6]-e[2])*t,A[2]=(e[1]-e[3])*t;else{var n=0;e[4]>e[0]&&(n=1),e[8]>e[3*n+n]&&(n=2);var i=(n+1)%3,o=(n+2)%3;t=Math.sqrt(e[3*n+n]-e[3*i+i]-e[3*o+o]+1),A[n]=.5*t,A[3]=(e[3*i+o]-e[3*o+i])*(t=.5/t),A[i]=(e[3*i+n]+e[3*n+i])*t,A[o]=(e[3*o+n]+e[3*n+o])*t}return A}function ie(A,e,t,r){var n=.5*Math.PI/180;e*=n,t*=n,r*=n;var i=Math.sin(e),o=Math.cos(e),a=Math.sin(t),s=Math.cos(t),f=Math.sin(r),u=Math.cos(r);return A[0]=i*s*u-o*a*f,A[1]=o*a*u+i*s*f,A[2]=o*s*f-i*a*u,A[3]=o*s*u+i*a*f,A}function oe(A){return"quat("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+")"}!function(){var A;A=new f(4),f!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0,A[3]=0)}();var ae,se,fe,ue,le,ce,he,de=function(A){var e=new f(4);return e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[3],e},ge=function(A,e,t,r){var n=new f(4);return n[0]=A,n[1]=e,n[2]=t,n[3]=r,n},we=function(A,e){return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A},ve=function(A,e,t,r,n){return A[0]=e,A[1]=t,A[2]=r,A[3]=n,A},Be=function(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A[2]=e[2]+t[2],A[3]=e[3]+t[3],A},be=jA,Me=function(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A[2]=e[2]*t,A[3]=e[3]*t,A},ke=function(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]+A[3]*e[3]},me=function(A,e,t,r){var n=e[0],i=e[1],o=e[2],a=e[3];return A[0]=n+r*(t[0]-n),A[1]=i+r*(t[1]-i),A[2]=o+r*(t[2]-o),A[3]=a+r*(t[3]-a),A},Qe=function(A){return Math.hypot(A[0],A[1],A[2],A[3])},De=Qe,pe=function(A){var e=A[0],t=A[1],r=A[2],n=A[3];return e*e+t*t+r*r+n*n},Ee=pe,Ce=function(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=t*t+r*r+n*n+i*i;return o>0&&(o=1/Math.sqrt(o)),A[0]=t*o,A[1]=r*o,A[2]=n*o,A[3]=i*o,A},ye=function(A,e){return A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]&&A[3]===e[3]},Pe=function(A,e){var t=A[0],r=A[1],n=A[2],i=A[3],o=e[0],a=e[1],f=e[2],u=e[3];return Math.abs(t-o)<=s*Math.max(1,Math.abs(t),Math.abs(o))&&Math.abs(r-a)<=s*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-f)<=s*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(i-u)<=s*Math.max(1,Math.abs(i),Math.abs(u))},Ie=(ae=j(),se=J(1,0,0),fe=J(0,1,0),function(A,e,t){var r=gA(e,t);return r<-.999999?(wA(ae,se,e),zA(ae)<1e-6&&wA(ae,fe,e),dA(ae,ae),WA(A,ae,Math.PI),A):r>.999999?(A[0]=0,A[1]=0,A[2]=0,A[3]=1,A):(wA(ae,e,t),A[0]=ae[0],A[1]=ae[1],A[2]=ae[2],A[3]=1+r,Ce(A,A))}),Fe=(ue=YA(),le=YA(),function(A,e,t,r,n,i){return Ae(ue,e,n,i),Ae(le,t,r,i),Ae(A,ue,le,2*i*(1-i)),A}),Te=(ce=new f(9),f!=Float32Array&&(ce[1]=0,ce[2]=0,ce[3]=0,ce[5]=0,ce[6]=0,ce[7]=0),ce[0]=1,ce[4]=1,ce[8]=1,he=ce,function(A,e,t,r){return he[0]=t[0],he[3]=t[1],he[6]=t[2],he[1]=r[0],he[4]=r[1],he[7]=r[2],he[2]=-e[0],he[5]=-e[1],he[8]=-e[2],Ce(A,ne(A,he))}),Le={};function xe(){var A=new f(2);return f!=Float32Array&&(A[0]=0,A[1]=0),A}function Ge(A){var e=new f(2);return e[0]=A[0],e[1]=A[1],e}function Se(A,e){var t=new f(2);return t[0]=A,t[1]=e,t}function Ue(A,e){return A[0]=e[0],A[1]=e[1],A}function ze(A,e,t){return A[0]=e,A[1]=t,A}function Re(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A}function Oe(A,e,t){return A[0]=e[0]-t[0],A[1]=e[1]-t[1],A}function Ye(A,e,t){return A[0]=e[0]*t[0],A[1]=e[1]*t[1],A}function _e(A,e,t){return A[0]=e[0]/t[0],A[1]=e[1]/t[1],A}function We(A,e){return A[0]=Math.ceil(e[0]),A[1]=Math.ceil(e[1]),A}function He(A,e){return A[0]=Math.floor(e[0]),A[1]=Math.floor(e[1]),A}function Ve(A,e,t){return A[0]=Math.min(e[0],t[0]),A[1]=Math.min(e[1],t[1]),A}function je(A,e,t){return A[0]=Math.max(e[0],t[0]),A[1]=Math.max(e[1],t[1]),A}function Ne(A,e){return A[0]=Math.round(e[0]),A[1]=Math.round(e[1]),A}function Ze(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A}function Je(A,e,t,r){return A[0]=e[0]+t[0]*r,A[1]=e[1]+t[1]*r,A}function Xe(A,e){return Math.hypot(e[0]-A[0],e[1]-A[1])}function Ke(A,e){var t=e[0]-A[0],r=e[1]-A[1];return t*t+r*r}function qe(A){return Math.hypot(A[0],A[1])}function $e(A){var e=A[0],t=A[1];return e*e+t*t}function At(A,e){return A[0]=-e[0],A[1]=-e[1],A}function et(A,e){return A[0]=1/e[0],A[1]=1/e[1],A}function tt(A,e){var t=e[0],r=e[1],n=t*t+r*r;return n>0&&(n=1/Math.sqrt(n)),A[0]=e[0]*n,A[1]=e[1]*n,A}function rt(A,e){return A[0]*e[0]+A[1]*e[1]}function nt(A,e,t){var r=e[0]*t[1]-e[1]*t[0];return A[0]=A[1]=0,A[2]=r,A}function it(A,e,t,r){var n=e[0],i=e[1];return A[0]=n+r*(t[0]-n),A[1]=i+r*(t[1]-i),A}function ot(A,e){e=e||1;var t=2*u()*Math.PI;return A[0]=Math.cos(t)*e,A[1]=Math.sin(t)*e,A}function at(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[2]*n,A[1]=t[1]*r+t[3]*n,A}function st(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[2]*n+t[4],A[1]=t[1]*r+t[3]*n+t[5],A}function ft(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[3]*n+t[6],A[1]=t[1]*r+t[4]*n+t[7],A}function ut(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[4]*n+t[12],A[1]=t[1]*r+t[5]*n+t[13],A}function lt(A,e,t,r){var n=e[0]-t[0],i=e[1]-t[1],o=Math.sin(r),a=Math.cos(r);return A[0]=n*a-i*o+t[0],A[1]=n*o+i*a+t[1],A}function ct(A,e){var t=A[0],r=A[1],n=e[0],i=e[1],o=Math.sqrt(t*t+r*r)*Math.sqrt(n*n+i*i);return Math.acos(Math.min(Math.max(o&&(t*n+r*i)/o,-1),1))}function ht(A){return A[0]=0,A[1]=0,A}function dt(A){return"vec2("+A[0]+", "+A[1]+")"}function gt(A,e){return A[0]===e[0]&&A[1]===e[1]}function wt(A,e){var t=A[0],r=A[1],n=e[0],i=e[1];return Math.abs(t-n)<=s*Math.max(1,Math.abs(t),Math.abs(n))&&Math.abs(r-i)<=s*Math.max(1,Math.abs(r),Math.abs(i))}i(Le,{add:()=>Re,angle:()=>ct,ceil:()=>We,clone:()=>Ge,copy:()=>Ue,create:()=>xe,cross:()=>nt,dist:()=>kt,distance:()=>Xe,div:()=>Mt,divide:()=>_e,dot:()=>rt,equals:()=>wt,exactEquals:()=>gt,floor:()=>He,forEach:()=>Dt,fromValues:()=>Se,inverse:()=>et,len:()=>vt,length:()=>qe,lerp:()=>it,max:()=>je,min:()=>Ve,mul:()=>bt,multiply:()=>Ye,negate:()=>At,normalize:()=>tt,random:()=>ot,rotate:()=>lt,round:()=>Ne,scale:()=>Ze,scaleAndAdd:()=>Je,set:()=>ze,sqrDist:()=>mt,sqrLen:()=>Qt,squaredDistance:()=>Ke,squaredLength:()=>$e,str:()=>dt,sub:()=>Bt,subtract:()=>Oe,transformMat2:()=>at,transformMat2d:()=>st,transformMat3:()=>ft,transformMat4:()=>ut,zero:()=>ht});var vt=qe,Bt=Oe,bt=Ye,Mt=_e,kt=Xe,mt=Ke,Qt=$e,Dt=function(){var A=xe();return function(e,t,r,n,i,o){var a,s;for(t||(t=2),r||(r=0),s=n?Math.min(n*t+r,e.length):e.length,a=r;a<s;a+=t)A[0]=e[a],A[1]=e[a+1],i(A,A,o),e[a]=A[0],e[a+1]=A[1];return e}}(),pt=(1+Math.sqrt(5))/2,Et=2*Math.PI/5,Ct=Math.PI/5,yt=Math.PI/10,Pt=2*Math.atan(pt),It=Math.PI-Pt,Ft=(Math.sqrt(5)-1)/2,Tt=3-Math.sqrt(5);a.setMatrixArrayType(Float64Array);var Lt=class A{constructor(A){this.vertices=A,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let A=0;const e=this.vertices.length;for(let t=0;t<e;t++){const r=(t+1)%e;A+=(this.vertices[r][0]-this.vertices[t][0])*(this.vertices[r][1]+this.vertices[t][1])}return A}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(A){for(const e of this.vertices)Le.scale(e,e,A);return this}rotate180(){for(const A of this.vertices)Le.negate(A,A);return this}reflectY(){for(const A of this.vertices)A[1]=-A[1];return this.vertices.reverse(),this}translate(A){for(const e of this.vertices)Le.add(e,e,A);return this}transform(A){for(const e of this.vertices)Le.transformMat2(e,e,A);return this}transform2d(A){for(const e of this.vertices)Le.transformMat2d(e,e,A);return this}clone(){return new A(this.vertices.map((A=>Le.clone(A))))}getCenter(){const A=this.vertices.length;return this.vertices.reduce(((e,t)=>[e[0]+t[0]/A,e[1]+t[1]/A]),[0,0])}containsPoint(A){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");const e=this.vertices.length;let t=1;for(let r=0;r<e;r++){const n=this.vertices[r],i=this.vertices[(r+1)%e],o=A[0]-n[0],a=A[1]-n[1],s=(n[0]-i[0])*a-(n[1]-i[1])*o;if(s<0){const A=Math.sqrt(o*o+a*a);t=Math.min(t,s/A)}}return t}splitEdges(e){if(e<=1)return this;const t=[],r=this.vertices.length;for(let A=0;A<r;A++){const n=this.vertices[A],i=this.vertices[(A+1)%r];t.push(Le.clone(n));for(let A=1;A<e;A++){const r=A/e,o=Le.create();Le.lerp(o,n,i,r),t.push(o)}}return new A(t)}};a.setMatrixArrayType(Float64Array);var xt=[0,0],Gt=[0,1],St=[.7885966681787006,1.6149108024237764],Ut=[1.6171013659387945,1.054928690397459],zt=[Math.cos(yt),Math.sin(yt)],Rt=2*Le.length(St)*Math.cos(Ct),Ot=Ct-Math.atan2(St[1],St[0]),Yt=2*Ft/Rt;[xt,Gt,St,Ut,zt].forEach((A=>{Le.scale(A,A,Yt),Le.rotate(A,A,[0,0],Ot)}));var _t=new Lt([xt,Gt,St,Ut,zt]),Wt=Math.atan2(St[1],St[0])-Ct,Ht=Ft/Math.cos(Ct),Vt=Wt+Ct,jt=[Ht*Math.cos(Vt),Ht*Math.sin(Vt)],Nt=Wt-Ct,Zt=[Ht*Math.cos(Nt),Ht*Math.sin(Nt)],Jt=new Lt([[0,0],jt,Zt]),Xt=g.fromValues(jt[0],jt[1],Zt[0],Zt[1]),Kt=g.invert(g.create(),Xt),qt=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2.559257686421274e-9,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),$t=new Float64Array([.0022392089963541657,28831978048607556e-22,5.08622073997266e-9,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]);a.setMatrixArrayType(Float64Array);var Ar=new class{applyCoefficients(A,e){const t=Math.sin(A),r=Math.cos(A),n=2*(r-t)*(r+t);let i,o;return i=n*e[5]+e[4],o=n*i+e[3],i=n*o-i+e[2],o=n*i-o+e[1],i=n*o-i+e[0],A+2*t*r*i}forward(A){return this.applyCoefficients(A,qt)}inverse(A){return this.applyCoefficients(A,$t)}};function er(A){return A*(Math.PI/180)}function tr(A){return A*(180/Math.PI)}function rr(A){return[Le.length(A),Math.atan2(A[1],A[0])]}function nr(A){const e=Math.atan2(A[1],A[0]),t=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return[e,Math.acos(A[2]/t)]}function ir([A,e]){const t=Math.sin(e);return[t*Math.cos(A),t*Math.sin(A),Math.cos(e)]}var or=93;function ar([A,e]){const t=er(A+or),r=er(e),n=Ar.forward(r);return[t,Math.PI/2-n]}function sr([A,e]){const t=tr(A)-or,r=Math.PI/2-e;return[t,tr(Ar.inverse(r))]}a.setMatrixArrayType(Float64Array);var fr=Math.sqrt(5),ur=Math.sqrt(.2),lr=Math.sqrt((1-ur)/2),cr=Math.sqrt((1+ur)/2),hr=.5,dr=Math.sqrt((2.5-fr)/10),gr=Math.sqrt((2.5+fr)/10),wr=Math.sqrt((1+ur)/8),vr=Math.sqrt((1-ur)/8),Br=Math.sqrt((3-fr)/8),br=Math.sqrt((3+fr)/8),Mr=[[0,0],[lr,0],[dr,hr],[-wr,Br],[-wr,-Br],[dr,-hr],[-cr,0],[-vr,-br],[gr,-hr],[gr,hr],[-vr,br],[0,0]].map((([A,e])=>[-e,A])).map(((A,e)=>0===e?[0,0,0,1]:11===e?[0,-1,0,0]:[...A,0,e<6?cr:lr]));a.setMatrixArrayType(Float64Array);var kr=["vu","uw","vw","vw","vw"],mr=["wu","uw","vw","vu","uw"],Qr=["wu","uv","wv","wu","uw"],Dr=["vu","uv","wv","wu","uw"],pr=[kr,Dr,Qr,mr,Qr,Dr,Qr,mr,mr,mr,Dr,Dr],Er=[4,2,3,2,0,4,3,2,2,0,3,0],Cr=[0,1,2,4,3,5,7,8,6,11,10,9],yr=[],Pr=0;function Ir(A,e,t){if(Pr>11)throw new Error(`Too many origins: ${Pr}`);const r=H.create();H.conjugate(r,t),yr.push({id:Pr,axis:A,quat:t,inverseQuat:r,angle:e,orientation:pr[Pr],firstQuintant:Er[Pr]}),Pr++}function Fr(A){let e=1/0,t=yr[0];for(const r of yr){const n=Tr(A,r.axis);n<e&&(e=n,t=r)}return t}function Tr(A,e){const[t,r]=A,[n,i]=e,o=n-t,a=Math.sin((i-r)/2),s=Math.sin(o/2);return a*a+s*s*Math.sin(r)*Math.sin(i)}!function(){Ir([0,0],0,Mr[0]);for(let A=0;A<5;A++){const e=A*Et,t=e+Ct;Ir([e,It],Ct,Mr[A+1]),Ir([t,Math.PI-It],Ct,Mr[(A+3)%5+6])}Ir([0,Math.PI],0,Mr[11])}(),yr.sort(((A,e)=>Cr.indexOf(A.id)-Cr.indexOf(e.id))),yr.forEach(((A,e)=>A.id=e));var Lr=class{forward([A,e]){return[Math.tan(e),A]}inverse([A,e]){return[e,Math.atan(A)]}},xr=V.create(),Gr=V.create(),Sr=V.create(),Ur=V.create();function zr(A,e){V.lerp(xr,A,e,.5),V.normalize(xr,xr),V.cross(xr,A,xr);const t=V.length(xr);if(t<1e-8){const t=V.subtract(V.create(),A,e);return.5*V.length(t)}return t}function Rr(A,e,t,r){const n=V.angle(e,t);if(n<1e-12)return V.lerp(A,e,t,r);const i=Math.sin((1-r)*n)/Math.sin(n),o=Math.sin(r*n)/Math.sin(n),a=V.scale(V.create(),e,i),s=V.scale(V.create(),t,o);return V.add(A,a,s)}a.setMatrixArrayType(Float64Array);var Or=V.create(),Yr=V.create(),_r=V.create(),Wr=V.create(),Hr=class{constructor(A){this._area=null,this.vertices=A,Object.freeze(this.vertices)}getBoundary(A=1,e=!0){const t=[],r=this.vertices.length;for(let e=0;e<r*A;e++)t.push(this.slerp(e/A));return e&&t.push(t[0]),t}slerp(A){const e=this.vertices.length,t=A%1,r=Math.floor(A%e),n=(r+1)%e;return Rr(V.create(),this.vertices[r],this.vertices[n],t)}getTransformedVertices(A){const e=this.vertices.length,t=Math.floor(A%e),r=(t+1)%e,n=(t+e-1)%e,i=V.clone(this.vertices[t]),o=V.clone(this.vertices[r]),a=V.clone(this.vertices[n]);return V.sub(o,o,i),V.sub(a,a,i),[i,o,a]}containsPoint(A){const e=this.vertices.length;let t=1/0;for(let r=0;r<e;r++){const[e,n,i]=this.getTransformedVertices(r),o=V.sub(V.create(),A,e);V.normalize(o,o),V.normalize(n,n),V.normalize(i,i);const a=V.cross(V.create(),n,o),s=V.cross(V.create(),o,i),f=V.dot(e,a),u=V.dot(e,s);t=Math.min(t,f,u)}return t}getTriangleArea(A,e,t){V.lerp(Or,e,t,.5),V.lerp(Yr,t,A,.5),V.lerp(_r,A,e,.5),V.normalize(Or,Or),V.normalize(Yr,Yr),V.normalize(_r,_r);const r=(n=Or,V.cross(Gr,Yr,_r),V.dot(n,Gr));var n;const i=Math.max(-1,Math.min(1,r));return Math.abs(i)<1e-8?2*i:2*Math.asin(i)}getArea(){return null===this._area&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(3===this.vertices.length)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;V.set(Wr,0,0,0);for(const A of this.vertices)V.add(Wr,Wr,A);V.normalize(Wr,Wr);let A=0;for(let e=0;e<this.vertices.length;e++){const t=this.getTriangleArea(Wr,this.vertices[e],this.vertices[(e+1)%this.vertices.length]);isNaN(t)||(A+=t)}return this._area=A,this._area}isWindingCorrect(){this.getArea()}};a.setMatrixArrayType(Float64Array);var Vr=class extends Hr{constructor(A){if(3!==A.length)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(A)}};a.setMatrixArrayType(Float64Array);var jr=class{forward(A,e,t){const[r,n,i]=e,o=new Vr([r,n,i]),a=V.subtract(V.create(),A,r);V.normalize(a,a);const s=function(A,e,t,r,n){V.cross(Gr,r,n);const i=V.dot(e,Gr),o=V.dot(t,Gr);return V.scale(Sr,e,o),V.scale(Ur,t,i),V.sub(A,Ur,Sr)}(V.create(),r,a,n,i);V.normalize(s,s);const f=zr(r,A)/zr(r,s),u=f/o.getArea();return function(A,[e,t,r]){return[A[0]*e[0]+A[1]*t[0]+A[2]*r[0],A[0]*e[1]+A[1]*t[1]+A[2]*r[1]]}([1-f,u*new Vr([r,s,i]).getArea(),u*new Vr([r,n,s]).getArea()],t)}inverse(A,e,t){const[r,n,i]=t,o=new Vr([r,n,i]),a=function(A,[e,t,r]){const n=[e[0]-r[0],e[1]-r[1]],i=[r[0]-t[0],r[1]-t[1]],o=[A[0]-r[0],A[1]-r[1]],a=i[0]*n[1]-i[1]*n[0],s=(i[0]*o[1]-i[1]*o[0])/a,f=(n[0]*o[1]-n[1]*o[0])/a;return[s,f,1-(s+f)]}(A,e),s=1-1e-14;if(a[0]>s)return r;if(a[1]>s)return n;if(a[2]>s)return i;const f=V.create();V.cross(f,n,i);const u=o.getArea(),l=1-a[0],c=a[2]/l*u,h=Math.sin(c),d=Math.sin(c/2),g=2*d*d,w=V.dot(r,n),v=V.dot(n,i),B=V.dot(i,r),b=V.length(f),M=h*V.dot(r,f)+g*(w*v-B),k=g*b*(1+w),m=2/Math.acos(v)*Math.atan2(k,M),Q=Rr(V.create(),n,i,m),D=zr(r,Q);return Rr([0,0,0],r,Q,this.safeAcos(l*D)/this.safeAcos(D))}safeAcos(A){return A<.001?2*A+A*A*A/3:Math.acos(1-2*A*A)}};a.setMatrixArrayType(Float64Array);var Nr=-1,Zr=1,Jr=([A,e])=>Le.fromValues(A-e,e),Xr=Le.fromValues(1,0),Kr=Le.fromValues(0,1),qr=Le.negate(Le.create(),Xr),$r=Le.negate(Le.create(),Kr),An=Le.fromValues(0,0),en=(A,[e,t])=>{let r=An,n=An;switch(e===Zr&&t===Zr?(r=Xr,n=Kr):e===Nr&&t===Zr?(r=$r,n=qr):e===Zr&&t===Nr?(r=Kr,n=Xr):e===Nr&&t===Nr&&(r=qr,n=$r),A){case 0:return An;case 1:return r;case 2:return Le.add(Le.create(),n,r);case 3:return Le.scaleAndAdd(Le.create(),n,r,2);default:throw new Error(`Invalid Quaternary value: ${A}`)}},tn=A=>[[Zr,Zr],[Zr,Nr],[Zr,Zr],[Nr,Zr]][A],rn=Le.fromValues(-1,1);function nn(A){return Array.from({length:A.length},((e,t)=>A.indexOf(t)))}var on=[0,1,3,4,5,6,7,2],an=[0,1,2,7,3,4,5,6],sn=nn(on),fn=nn(an),un=(A,e,t,r,n)=>{if(e<=0)return;const i=A[e]||0,o=A[e-1];let a=!0,s=!0;if(r!==(0===t[0]+t[1])?(a=1===i||2===i,s=1===i):(a=i<2,s=0===i),!a)return;const f=s?o:o+4,u=n[f];A[e-1]=u%4,A[e]=(i+4+Math.floor(u/4)-Math.floor(f/4))%4},ln=(A,e,t)=>{let r=BigInt(A);const n="wv"===t||"vw"===t,i="wu"===t||"uw"===t;("vu"===t||"wu"===t||"vw"===t)&&(r=(1n<<BigInt(2*e))-r-1n);const o=cn(r,e,n,i);if(i){const{offset:[A,e],flips:[t,r]}=o;o.offset=[e,A],t===Nr&&Le.add(o.offset,o.offset,rn),r===Nr&&Le.subtract(o.offset,o.offset,rn)}if(n){const{offset:[A,t],flips:r}=o,n=(1<<e)-(A+t);r[0]=-r[0],o.offset[1]=n,o.flips=r}return o},cn=(A,e,t,r)=>{const n=Le.create(),i=[Zr,Zr];let o=BigInt(A);const a=[];for(;o>0n||a.length<e;)a.push(Number(o%4n)),o>>=2n;const s=r?an:on;for(let A=a.length-1;A>=0;A--)un(a,A,i,t,s),Le.multiply(i,i,tn(a[A]));i[0]=Zr,i[1]=Zr;for(let A=a.length-1;A>=0;A--){Le.scale(n,n,2);const e=en(a[A],i);Le.add(n,n,e),Le.multiply(i,i,tn(a[A]))}return{flips:i,k:a[0]||0,offset:Jr(n)}},hn=([A,e],t)=>{let r=0,n=t[0]===Nr?-(A+e):A+e,i=t[1]===Nr?-A:A,o=t[0]===Nr?-e:e;return r=t[0]+t[1]===0?o<1?0:i>1?3:n>1?2:1:n<1?0:i>1?3:o>1?2:1,r},dn=(A,e,t="uv")=>{const r="vu"===t||"wu"===t||"vw"===t,n="wv"===t||"vw"===t,i="wu"===t||"uw"===t;let o=[...A];if(i&&(o[0]=A[1],o[1]=A[0]),n){const[A,t]=o;o[1]=(1<<e)-(A+t)}let a=gn(o,n,i,e);return r&&(a=(1n<<BigInt(2*e))-a-1n),a},gn=(A,e,t,r)=>{const n=r,i=new Array(n),o=[Zr,Zr],a=Le.create();for(let e=n-1;e>=0;e--){const t=Le.subtract(Le.create(),A,a),r=1<<e,n=Le.scale(Le.create(),t,1/r),s=hn(n,o);i[e]=s;const f=Jr(en(s,o)),u=Le.scale(Le.create(),f,r);Le.add(a,a,u),Le.multiply(o,o,tn(s))}const s=t?fn:sn;for(let A=0;A<i.length;A++)Le.multiply(o,o,tn(i[A])),un(i,A,o,e,s);let f=0n;for(let A=n-1;A>=0;A--){const e=1n<<BigInt(2*A);f+=BigInt(i[A])*e}return f};a.setMatrixArrayType(Float64Array);var wn=Le.clone(Zt),vn=Le.negate(Le.create(),Zt),Bn=[0,1,2,3,4].map((A=>{const e=g.create();return g.fromRotation(e,Et*A),e})),bn=Le.create();function Mn(A){const e=Jt.clone();return e.transform(Bn[A]),e}a.setMatrixArrayType(Float64Array),a.setMatrixArrayType(Float64Array);var kn=new class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),62!==this.vertices.length)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(A){this.invocations++,1e4===this.invocations&&console.warn("Too many CRS invocations, results should be cached");for(const e of this.vertices)if(V.distance(A,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){yr.forEach((A=>this.add(ir(A.axis))))}addVertices(){const A=Math.atan(Tt);for(const e of yr)for(let t=0;t<5;t++){const r=ir([(2*t+1)*Math.PI/5+e.angle,A]);V.transformQuat(r,r,e.quat),this.add(r)}}addMidpoints(){const A=Math.atan(Ft);for(const e of yr)for(let t=0;t<5;t++){const r=ir([2*t*Math.PI/5+e.angle,A]);V.transformQuat(r,r,e.quat),this.add(r)}}add(A){const e=V.normalize(V.create(),A);return!this.vertices.find((A=>V.distance(e,A)<1e-5))&&(this.vertices.push(e),!0)}},mn=2,Qn=30,Dn=58n,pn=0x3ffffffffffffffn,En=0n;function Cn(A){let e=Qn-1,t=A>>1n;for(;e>-1&&0n===(0b1n&t);)e-=1,t>>=e<mn?1n:2n;return e}function yn(A){const e=Cn(A);if(-1===e)return{origin:yr[0],segment:0,S:0n,resolution:e};const t=Number(A>>58n);let r,n;if(0===e)r=yr[t],n=0;else{const A=Math.floor(t/5);r=yr[A],n=(t+r.firstQuintant)%5}if(!r)throw new Error(`Could not parse origin: ${t}`);if(e<mn)return{origin:r,segment:n,S:0n,resolution:e};const i=BigInt(2*(e-mn+1));return{origin:r,segment:n,S:(A&pn)>>Dn-i,resolution:e}}function Pn(A){const{origin:e,segment:t,S:r,resolution:n}=A;if(n>Qn)throw new Error(`Resolution (${n}) is too large`);if(-1===n)return En;let i;i=n<mn?BigInt(n+1):BigInt(2*(1+n-mn)+1);const o=(t-e.firstQuintant+5)%5;let a;if(a=0===n?BigInt(e.id)<<58n:BigInt(5*e.id+o)<<58n,n>=mn){const A=BigInt(2*(n-mn+1));if(BigInt(r)>=1n<<A)throw new Error(`S (${r}) is too large for resolution level ${n}`);a+=BigInt(r)<<Dn-A}return a|=1n<<Dn-i,a}function In(A,e){const{origin:t,segment:r,S:n,resolution:i}=yn(A),o=e??i+1;if(o<i)throw new Error(`Target resolution (${o}) must be equal to or greater than current resolution (${i})`);if(o>Qn)throw new Error(`Target resolution (${o}) exceeds maximum resolution (${Qn})`);if(o===i)return[A];let a=[t],s=[r];-1===i&&(a=yr),(-1===i&&o>0||0===i)&&(s=[0,1,2,3,4]);const f=o-Math.max(i,mn-1),u=Math.pow(4,f),l=[],c=n<<BigInt(2*f);for(const A of a)for(const e of s)for(let t=0;t<u;t++){const r=c+BigInt(t);l.push(Pn({origin:A,segment:e,S:r,resolution:o}))}return l}function Fn(A,e){const{origin:t,segment:r,S:n,resolution:i}=yn(A),o=e??i-1;if(o<0)throw new Error(`Target resolution (${o}) cannot be negative`);if(o>i)throw new Error(`Target resolution (${o}) must be equal to or less than current resolution (${i})`);return o===i?A:Pn({origin:t,segment:r,S:n>>BigInt(2*(i-o)),resolution:o})}function Tn(){return In(En,0)}a.setMatrixArrayType(Float64Array);var Ln=g.create(),xn=new class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new jr,this.gnomonic=new Lr}forward(A,e){const t=yr[e],r=ir(A),n=V.create();V.transformQuat(n,r,t.inverseQuat);const i=nr(n),o=this.gnomonic.forward(i);o[1]=o[1]-t.angle;const a=this.getFaceTriangleIndex(o),s=this.shouldReflect(o);let f=this.getFaceTriangle(a,s,!1),u=this.getSphericalTriangle(a,e,s);return this.polyhedral.forward(r,u,f)}inverse(A,e){const t=rr(A),r=this.getFaceTriangleIndex(t),n=this.shouldReflect(t),i=this.getFaceTriangle(r,n,!1),o=this.getSphericalTriangle(r,e,n);return nr(this.polyhedral.inverse(A,i,o))}shouldReflect(A){const[e,t]=A,r=function([A,e]){return[A*Math.cos(e),A*Math.sin(e)]}([e,this.normalizeGamma(t)])[0];return r>Ft}getFaceTriangleIndex([A,e]){return(Math.floor(e/Ct)+10)%10}getFaceTriangle(A,e=!1,t=!1){let r=A;return e&&(r+=t?20:10),this.faceTriangles[r]||(this.faceTriangles[r]=e?this._getReflectedFaceTriangle(A,t):this._getFaceTriangle(A),Object.freeze(this.faceTriangles[r])),this.faceTriangles[r]}_getFaceTriangle(A){const e=Math.floor((A+1)/2)%5,[t,r,n]=Mn(e).getVertices(),i=Le.create();return Le.lerp(i,r,n,.5),A%2==0?[t,i,r]:[t,n,i]}_getReflectedFaceTriangle(A,e=!1){let[t,r,n]=this._getFaceTriangle(A).map((A=>Le.clone(A)));const i=A%2==0;return Le.negate(t,t),Le.scaleAndAdd(t,t,i?r:n,e?1+1/Math.cos(It):2),[t,n,r]}getSphericalTriangle(A,e,t=!1){let r=10*e+A;return t&&(r+=120),this.sphericalTriangles[r]||(this.sphericalTriangles[r]=this._getSphericalTriangle(A,e,t),Object.freeze(this.sphericalTriangles[r])),this.sphericalTriangles[r]}_getSphericalTriangle(A,e,t=!1){const r=yr[e];return this.getFaceTriangle(A,t,!0).map((A=>{const[e,t]=rr(A),n=ir(this.gnomonic.inverse([e,t+r.angle]));return V.transformQuat(n,n,r.quat),kn.getVertex(n)}))}normalizeGamma(A){const e=A/Et;return(e-Math.round(e))*Et}};function Gn(A,e){if(e<mn)return Pn(Sn(A,e));const t=[A],r=50/Math.pow(2,1+e-mn);for(let e=0;e<25;e++){const n=e/25*r,i=Le.fromValues(Math.cos(e)*n,Math.sin(e)*n);Le.add(i,i,A),t.push(i)}const n=new Set,i=[];for(const r of t){const t=Sn(r,e),o=Pn(t);if(!n.has(o)){n.add(o);const e=On(t,A);if(e>0)return Pn(t);i.push({cell:t,distance:e})}}return i.sort(((A,e)=>e.distance-A.distance)),Pn(i[0].cell)}function Sn(A,e){const t=ar(A),r={...Fr(t)},n=xn.forward(t,r.id),i=function([A,e]){return(Math.round(e/Et)+5)%5}(rr(n)),{segment:o,orientation:a}=function(A,e){const t=e.orientation,r=((A-e.firstQuintant+5)%5*(t===kr||t===mr?-1:1)+5)%5;return{segment:(e.firstQuintant+r)%5,orientation:t[r]}}(i,r);if(e<mn)return{S:0n,segment:o,origin:r,resolution:e};0!==i&&(g.fromRotation(Ln,-2*Ct*i),Le.transformMat2(n,n,Ln));const s=1+e-mn;Le.scale(n,n,2**s);const f=(u=n,Le.transformMat2(Le.create(),u,Kt));var u;return{S:dn(f,s,a),segment:o,origin:r,resolution:e}}function Un({S:A,segment:e,origin:t,resolution:r}){const{quintant:n,orientation:i}=function(A,e){const t=e.orientation,r=(A-e.firstQuintant+5)%5;return{quintant:(e.firstQuintant+(t===kr||t===mr?-1:1)*r+5)%5,orientation:t[r]}}(e,t);if(r===mn-1)return Mn(n);if(r===mn-2)return function(){const A=[];for(const e of Bn)A.push(Le.transformMat2(Le.create(),jt,e));return A.reverse(),new Lt(A)}();const o=r-mn+1;return function(A,e,t){const r=_t.clone();Le.transformMat2(bn,t.offset,Xt),t.flips[0]===Zr&&t.flips[1]===Nr&&r.rotate180();const{k:n}=t,i=t.flips[0]+t.flips[1];return((-2===i||2===i)&&n>1||0===i&&(0===n||3===n))&&r.reflectY(),t.flips[0]===Nr&&t.flips[1]===Nr?r.rotate180():t.flips[0]===Nr?r.translate(vn):t.flips[1]===Nr&&r.translate(wn),r.translate(bn),r.scale(1/2**A),r.transform(Bn[e]),r}(o,n,ln(A,o,i))}function zn(A){const{S:e,segment:t,origin:r,resolution:n}=yn(A),i=Un({S:e,segment:t,origin:r,resolution:n});return sr(xn.inverse(i.getCenter(),r.id))}function Rn(A,{closedRing:e=!0,segments:t="auto"}={closedRing:!0,segments:"auto"}){const{S:r,segment:n,origin:i,resolution:o}=yn(A);"auto"===t&&(t=Math.max(1,Math.pow(2,6-o)));const a=function(A){const e=A.map((A=>ir(ar(A)))),t=V.create();for(const A of e)V.add(t,t,A);V.normalize(t,t);let[r,n]=sr(nr(t));return(n>89.99||n<-89.99)&&(r=A[0][0]),r=((r+180)%360+360)%360-180,A.map((A=>{let[e,t]=A;for(;e-r>180;)e-=360;for(;e-r<-180;)e+=360;return[e,t]}))}(Un({S:r,segment:n,origin:i,resolution:o}).splitEdges(t).getVertices().map((A=>xn.inverse(A,i.id))).map((A=>sr(A))));return e&&a.push(a[0]),a.reverse(),a}function On(A,e){const t=Un(A),r=ar(e),n=xn.forward(r,A.origin.id);return t.containsPoint(n)}function Yn(A){return BigInt(`0x${A}`)}function _n(A){return A.toString(16)}var Wn=6371007.2,Hn=4*Math.PI*Wn*Wn;function Vn(A){return"bigint"==typeof A?A<0n?0n:0n===A?12n:60n*4n**(A-1n):A<0?0:0===A?12:60*4**(A-1)}function jn(A){return A<0?Hn:Hn/Vn(A)}return a.setMatrixArrayType(Float64Array),R}z.layerName="GeoCellLayer",z.defaultProps=U;var _=Y(),W=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i="";"undefined"!=typeof document&&document.currentScript&&(i=document.currentScript.src),i=0!==i.indexOf("blob:")?i.substr(0,i.lastIndexOf("/")+1):"",n=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=Y(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)};var o=t.print||console.log.bind(console),a=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null;var s=0,f=!1;function u(A){var e=t["_"+A];return e||AA("Assertion failed: "+("Cannot call unknown function "+A+", make sure it is exported")),e}var l,c,h,d,g,w,v,B="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function b(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&B)return B.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var s=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|s:(7&o)<<18|a<<12|s<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var f=o-65536;i+=String.fromCharCode(55296|f>>10,56320|1023&f)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(h,A,e):""}function M(A,e){return A%e>0&&(A+=e-A%e),A}function k(A){l=A,t.HEAP8=c=new Int8Array(A),t.HEAP16=d=new Int16Array(A),t.HEAP32=g=new Int32Array(A),t.HEAPU8=h=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=w=new Float32Array(A),t.HEAPF64=v=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var m=t.TOTAL_MEMORY||33554432;function Q(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}m=(l=t.buffer?t.buffer:new ArrayBuffer(m)).byteLength,k(l),g[7152]=5271520;var D=[],p=[],E=[],C=[],y=Math.abs,P=Math.ceil,I=Math.floor,F=Math.min,T=0,L=null;t.preloadedImages={},t.preloadedAudios={};var x,G,S=null,U="data:application/octet-stream;base64,";function z(A){return String.prototype.startsWith?A.startsWith(U):0===A.indexOf(U)}function R(){return c.length}S="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+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";var O="function"==typeof atob?atob:function(A){var e,t,r,n,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",f=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{r=a.indexOf(A.charAt(f++)),e=(15&(n=a.indexOf(A.charAt(f++))))<<4|(i=a.indexOf(A.charAt(f++)))>>2,t=(3&i)<<6|(o=a.indexOf(A.charAt(f++))),s+=String.fromCharCode(r<<2|n>>4),64!==i&&(s+=String.fromCharCode(e)),64!==o&&(s+=String.fromCharCode(t))}while(f<A.length);return s};function Y(A){if(z(A))return function(A){try{for(var e=O(A),t=new Uint8Array(e.length),r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(U.length))}var _=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t),i=new A.Float64Array(t),o=0|e.o,a=0|e.p,s=A.Math.floor,f=A.Math.abs,u=A.Math.sqrt,l=A.Math.pow,c=A.Math.cos,h=A.Math.sin,d=A.Math.tan,g=A.Math.acos,w=A.Math.asin,v=A.Math.atan,B=A.Math.atan2,b=A.Math.ceil,M=A.Math.imul,k=A.Math.min,m=A.Math.max,Q=A.Math.clz32,D=e.b,p=e.c,E=e.d,C=e.e,y=e.f,P=e.g,I=e.h,F=e.i,T=28640;function L(A,e,t,r){return 0|x(A|=0,e|=0,t|=0,r|=0,0)}function x(A,e,t,r,i){var o,a=0,s=0,f=0,u=0;if(o=T,T=T+16|0,s=o,!(0|G(A|=0,e|=0,t|=0,r|=0,i|=0)))return T=o,0;do{if((0|t)>=0){if((0|t)>13780509){if(0|(a=0|de(15,s)))break;s=0|n[(f=s)>>2],f=0|n[f+4>>2]}else u=0|nt(0|t,0|(a=((0|t)<0)<<31>>31),3,0),f=0|p(),a=0|$e(0|t,0|a,1,0),a=0|$e(0|(a=0|nt(0|u,0|f,0|a,0|p())),0|p(),1,0),f=0|p(),n[s>>2]=a,n[s+4>>2]=f,s=a;if(gt(0|r,0,s<<3),0|i){gt(0|i,0,s<<2),a=0|S(A,e,t,r,i,s,f,0);break}(a=0|qe(s,4))?(u=0|S(A,e,t,r,a,s,f,0),Ke(a),a=u):a=13}else a=2}while(0);return T=o,0|a}function G(A,e,t,r,i){e|=0,t|=0,r|=0,i|=0;var o,a,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0;if(a=T,T=T+16|0,w=a+8|0,n[(g=o=a)>>2]=A|=0,n[g+4>>2]=e,(0|t)<0)return T=a,2;if(n[(s=r)>>2]=A,n[s+4>>2]=e,(s=!!(0|i))&&(n[i>>2]=0),0|VA(A,e))return T=a,9;n[w>>2]=0;A:do{if((0|t)>=1)if(s)for(h=1,c=0,d=0,g=1,s=A;;){if(!(c|d)){if(0|(s=0|U(s,e,4,w,o)))break A;if(0|VA(s=0|n[(e=o)>>2],e=0|n[e+4>>2])){s=9;break A}}if(0|(s=0|U(s,e,0|n[26800+(d<<2)>>2],w,o)))break A;if(s=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,n[i+(h<<2)>>2]=g,f=(0|(A=c+1|0))==(0|g),l=6==(0|(u=d+1|0)),0|VA(s,e)){s=9;break A}if((0|(g=g+(l&f&1)|0))>(0|t)){s=0;break}h=h+1|0,c=f?0:A,d=f?l?0:u:d}else for(h=1,c=0,d=0,g=1,s=A;;){if(!(c|d)){if(0|(s=0|U(s,e,4,w,o)))break A;if(0|VA(s=0|n[(e=o)>>2],e=0|n[e+4>>2])){s=9;break A}}if(0|(s=0|U(s,e,0|n[26800+(d<<2)>>2],w,o)))break A;if(s=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,f=(0|(A=c+1|0))==(0|g),l=6==(0|(u=d+1|0)),0|VA(s,e)){s=9;break A}if((0|(g=g+(l&f&1)|0))>(0|t)){s=0;break}h=h+1|0,c=f?0:A,d=f?l?0:u:d}else s=0}while(0);return T=a,0|s}function S(A,e,t,r,i,o,a,s){t|=0,r|=0,i|=0,s|=0;var f,u,l,c=0,h=0,d=0,g=0,w=0,v=0,B=0;if(l=T,T=T+16|0,f=l+8|0,u=l,c=0|ot(0|(A|=0),0|(e|=0),0|(o|=0),0|(a|=0)),d=0|p(),!(!(0|(B=0|n[(v=g=r+(c<<3)|0)>>2]))&!(0|(v=0|n[v+4>>2]))|(h=(0|B)==(0|A)&(0|v)==(0|e))))do{c=0|it(0|(c=0|$e(0|c,0|d,1,0)),0|p(),0|o,0|a),d=0|p(),h=(0|(v=0|n[(B=g=r+(c<<3)|0)>>2]))==(0|A)&(0|(B=0|n[B+4>>2]))==(0|e)}while(!(!(0|v)&!(0|B)|h));if(c=i+(c<<2)|0,h&&(0|n[c>>2])<=(0|s))return T=l,0;if(n[(B=g)>>2]=A,n[B+4>>2]=e,n[c>>2]=s,(0|s)>=(0|t))return T=l,0;switch(h=s+1|0,n[f>>2]=0,0|(c=0|U(A,e,2,f,u))){case 9:w=9;break;case 0:(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h))||(w=9)}A:do{if(9==(0|w)){switch(n[f>>2]=0,0|(c=0|U(A,e,3,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,1,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,5,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,4,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,6,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}return T=l,0}}while(0);return T=l,0|c}function U(A,e,t,r,i){A|=0,e|=0,i|=0;var o,a,s=0,f=0,u=0,l=0,c=0,h=0,d=0;if((t|=0)>>>0>6)return 1;if(n[(r|=0)>>2]=c=(0|n[r>>2])%6|0,(0|c)>0){s=0;do{t=0|kA(t),s=s+1|0}while((0|s)<(0|n[r>>2]))}if(c=0|st(0|A,0|e,45),p(),(a=127&c)>>>0>121)return 5;o=0|ZA(A,e),s=0|st(0|A,0|e,52),p(),s&=15;A:do{if(s){for(;;){if(u=0|st(0|A,0|e,0|(f=3*(15-s|0)|0)),p(),7==(0|(u&=7))){e=5;break}if(d=!(0|$A(s)),s=s+-1|0,h=0|ft(7,0,0|f),e&=~p(),A=ft(0|n[(d?432:16)+(28*u|0)+(t<<2)>>2],0,0|f)|A&~h,e|=f=0|p(),!(t=0|n[(d?640:224)+(28*u|0)+(t<<2)>>2])){t=0;break A}if(!s){l=8;break A}}return 0|e}l=8}while(0);8==(0|l)&&(A|=0|ft(0|(d=0|n[848+(28*a|0)+(t<<2)>>2]),0,45),e=p()|-1040385&e,t=0|n[4272+(28*a|0)+(t<<2)>>2],127&~d||(d=0|ft(0|n[848+(28*a|0)+20>>2],0,45),e=p()|-1040385&e,t=0|n[4272+(28*a|0)+20>>2],A=0|XA(d|A,e),e=0|p(),n[r>>2]=1+(0|n[r>>2]))),u=0|st(0|A,0|e,45),p(),u&=127;A:do{if(0|_(u)){e:do{if(1==(0|ZA(A,e))){if((0|a)!=(0|u)){if(0|j(u,0|n[7696+(28*a|0)>>2])){A=0|qA(A,e),f=1,e=0|p();break}E(27795,26864,533,26872)}switch(0|o){case 3:A=0|XA(A,e),e=0|p(),n[r>>2]=1+(0|n[r>>2]),f=0;break e;case 5:A=0|qA(A,e),e=0|p(),n[r>>2]=5+(0|n[r>>2]),f=0;break e;case 0:return 9;default:return 1}}else f=0}while(0);if((0|t)>0){s=0;do{A=0|JA(A,e),e=0|p(),s=s+1|0}while((0|s)!=(0|t))}if((0|a)!=(0|u)){if(!(0|W(u))){if(!!(0|f)|5!=(0|ZA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|ZA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){s=0;do{A=0|XA(A,e),e=0|p(),s=s+1|0}while((0|s)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,n[(d=i)>>2]=A,n[d+4>>2]=e,0}function z(A,e,t,r){e|=0,t|=0,r|=0;var i,o,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0;if(o=T,T=T+16|0,g=o+8|0,n[(d=i=o)>>2]=A|=0,n[d+4>>2]=e,(0|t)<0)return T=o,2;if(!t)return n[(g=r)>>2]=A,n[g+4>>2]=e,T=o,0;n[g>>2]=0;A:do{if(0|VA(A,e))A=9;else{a=0,d=A;do{if(0|(A=0|U(d,e,4,g,i)))break A;if(a=a+1|0,0|VA(d=0|n[(e=i)>>2],e=0|n[e+4>>2])){A=9;break A}}while((0|a)<(0|t));n[(h=r)>>2]=d,n[h+4>>2]=e,h=t+-1|0,c=0,A=1;do{if(a=26800+(c<<2)|0,5==(0|c))for(f=0|n[a>>2],s=0,a=A;;){if(0|(A=0|U(0|n[(A=i)>>2],0|n[A+4>>2],f,g,i)))break A;if((0|s)!=(0|h)){if(u=0|n[(l=i)>>2],l=0|n[l+4>>2],n[(A=r+(a<<3)|0)>>2]=u,n[A+4>>2]=l,0|VA(u,l)){A=9;break A}A=a+1|0}else A=a;if((0|(s=s+1|0))>=(0|t))break;a=A}else for(l=0|n[a>>2],u=0,a=A,s=0|n[(f=i)>>2],f=0|n[f+4>>2];;){if(0|(A=0|U(s,f,l,g,i)))break A;if(s=0|n[(f=i)>>2],f=0|n[f+4>>2],n[(A=r+(a<<3)|0)>>2]=s,n[A+4>>2]=f,A=a+1|0,0|VA(s,f)){A=9;break A}if((0|(u=u+1|0))>=(0|t))break;a=A}c=c+1|0}while(c>>>0<6);A=(0|d)==(0|n[(A=i)>>2])&&(0|e)==(0|n[A+4>>2])?0:9}}while(0);return T=o,0|A}function R(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0;if(i=T,T=T+16|0,s=i,!(t|=0))return n[r>>2]=A,n[r+4>>2]=e,T=i,0;do{if((0|t)>=0){if((0|t)>13780509){if(0|(o=0|de(15,s)))break;o=0|n[(a=s)>>2],a=0|n[a+4>>2]}else c=0|nt(0|t,0|(o=((0|t)<0)<<31>>31),3,0),a=0|p(),o=0|$e(0|t,0|o,1,0),o=0|$e(0|(o=0|nt(0|c,0|a,0|o,0|p())),0|p(),1,0),a=0|p(),n[(c=s)>>2]=o,n[c+4>>2]=a;if(l=0|qe(o,8)){if(!(c=0|qe(o,4))){Ke(l),o=13;break}if(0|(o=0|S(A,e,t,l,c,o,a,0))){Ke(l),Ke(c);break}if(e=0|n[s>>2],(0|(s=0|n[s+4>>2]))>0|!(0|s)&e>>>0>0){o=0,f=0,u=0;do{!(0|(a=0|n[(A=l+(f<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2]))||(0|n[c+(f<<2)>>2])!=(0|t)||(n[(h=r+(o<<3)|0)>>2]=a,n[h+4>>2]=A,o=o+1|0),f=0|$e(0|f,0|u,1,0),u=0|p()}while((0|u)<(0|s)|(0|u)==(0|s)&f>>>0<e>>>0)}Ke(l),Ke(c),o=0}else o=13}else o=2}while(0);return T=i,0|o}function O(A,e,t,r){t|=0,r|=0;var i,o,a,s=0,f=0;for(a=T,T=T+16|0,i=a,o=a+8|0,s=(s=!(0|VA(A|=0,e|=0)))?1:2;;){if(n[o>>2]=0,!(0|U(A,e,s,o,i))&((0|n[(f=i)>>2])==(0|t)?(0|n[f+4>>2])==(0|r):0)){A=4;break}if((s=s+1|0)>>>0>=7){s=7,A=4;break}}return 4==(0|A)?(T=a,0|s):0}function Y(A,e,t,r,o,a,s){e|=0,t|=0,r|=0,o|=0,a|=0,s|=0;var f,u,l,c,h,d,g,w,v,B,b=0,M=0,k=0,m=0,Q=0,D=0,E=0,C=0,y=0,P=0,I=0,F=0,L=0,x=0,G=0,S=0,U=0,z=0,R=0;if(B=T,T=T+64|0,v=B+24|0,u=B,(0|(M=0|n[(A|=0)>>2]))<=0)return T=B,0;for(l=A+4|0,c=8+(g=B+48|0)|0,h=8+(w=B+32|0)|0,d=8+(f=B+8|0)|0,b=0,L=0;;){n[g>>2]=n[(F=(k=0|n[l>>2])+(L<<4)|0)>>2],n[g+4>>2]=n[F+4>>2],n[g+8>>2]=n[F+8>>2],n[g+12>>2]=n[F+12>>2],(0|L)==(M+-1|0)?(n[w>>2]=n[k>>2],n[w+4>>2]=n[k+4>>2],n[w+8>>2]=n[k+8>>2],n[w+12>>2]=n[k+12>>2]):(n[w>>2]=n[(F=k+(L+1<<4)|0)>>2],n[w+4>>2]=n[F+4>>2],n[w+8>>2]=n[F+8>>2],n[w+12>>2]=n[F+12>>2]),M=0|rA(g,w,r,v);A:do{if(M)k=0,b=M;else if(k=0|n[(M=v)>>2],(0|(M=0|n[M+4>>2]))>0|!(0|M)&k>>>0>0){I=0,F=0;e:for(;;){if(U=1/(+(k>>>0)+4294967296*+(0|M)),R=+i[g>>3],z=+((M=0|At(0|k,0|M,0|I,0|F))>>>0)+4294967296*+(0|p()),i[f>>3]=U*(R*z)+U*(+i[w>>3]*(S=+(I>>>0)+4294967296*+(0|F))),i[d>>3]=U*(+i[c>>3]*z)+U*(+i[h>>3]*S),0|(M=0|Ae(f,r,u))){b=M;break}D=0|ot(0|(y=0|n[(P=u)>>2]),0|(P=0|n[P+4>>2]),0|e,0|t),m=0|p(),k=0|n[(Q=M=s+(D<<3)|0)>>2],Q=0|n[Q+4>>2];t:do{if(!(0|k)&!(0|Q))x=M,G=16;else for(E=0,C=0;;){if((0|E)>(0|t)|(0|E)==(0|t)&C>>>0>e>>>0){b=1;break e}if((0|k)==(0|y)&(0|Q)==(0|P))break t;if(D=0|it(0|(M=0|$e(0|D,0|m,1,0)),0|p(),0|e,0|t),m=0|p(),C=0|$e(0|C,0|E,1,0),E=0|p(),!(0|(k=0|n[(Q=M=s+(D<<3)|0)>>2]))&!(0|(Q=0|n[Q+4>>2]))){x=M,G=16;break}}}while(0);if(16!=(0|G)||(G=0,!(0|y)&!(0|P))||(n[(C=x)>>2]=y,n[C+4>>2]=P,n[(C=a+(n[o>>2]<<3)|0)>>2]=y,n[C+4>>2]=P,C=0|$e(0|n[(C=o)>>2],0|n[C+4>>2],1,0),y=0|p(),n[(P=o)>>2]=C,n[P+4>>2]=y),I=0|$e(0|I,0|F,1,0),F=0|p(),k=0|n[(M=v)>>2],!((0|(M=0|n[M+4>>2]))>(0|F)|(0|M)==(0|F)&k>>>0>I>>>0)){k=1;break A}}k=0}else k=1}while(0);if(L=L+1|0,!k){G=21;break}if((0|L)>=(0|(M=0|n[A>>2]))){b=0,G=21;break}}return 21==(0|G)?(T=B,0|b):0}function _(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|n[7696+(28*A|0)+16>>2])}function W(A){return 4==(0|(A|=0))|117==(0|A)}function H(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function V(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function j(A,e){return(0|n[7696+(28*(A|=0)|0)+20>>2])==(0|(e|=0))?0|(e=1):0|(e=(0|n[7696+(28*A|0)+24>>2])==(0|e))}function N(A,e){return 0|n[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function Z(A,e){return(0|n[848+(28*(A|=0)|0)>>2])==(0|(e|=0))?0|(e=0):(0|n[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[848+(28*A|0)+24>>2])==(0|e)?6:7)}function J(A){var e,t,r;return e=(r=+i[16+(A|=0)>>3])-(t=+i[A+24>>3]),+(r<t?e+6.283185307179586:e)}function X(A){return+i[16+(A|=0)>>3]<+i[A+24>>3]|0}function K(A){return+(+i[(A|=0)>>3]-+i[A+8>>3])}function q(A,e){var t,r,n=0;return(n=+i[(e|=0)>>3])>=+i[8+(A|=0)>>3]&&n<=+i[A>>3]?(e=(r=+i[e+8>>3])>=(n=+i[A+24>>3]),A=r<=(t=+i[A+16>>3])&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function $(A,e){var t,r,n,o,a,s=0,f=0,u=0,l=0;return+i[(A|=0)>>3]<+i[8+(e|=0)>>3]||+i[A+8>>3]>+i[e>>3]?0|(s=0):(u=(a=+i[(s=e+16|0)>>3])<(o=+i[(r=e+24|0)>>3]),e=(l=+i[(t=A+24|0)>>3])-a<o-(f=+i[A+16>>3]),A=(n=f<l)?u|e?1:2:0,e=u?n?1:e?2:1:0,(f=+le(f,A))<+le(+i[r>>3],e)||(l=+le(+i[t>>3],A))>+le(+i[s>>3],e)?0|(u=0):0|(u=1))}function AA(A,e){var t,r,n,o,a,s=0,f=0,u=0,l=0;return+i[(A|=0)>>3]<+i[(e|=0)>>3]||+i[A+8>>3]>+i[e+8>>3]?0|(s=0):(u=(l=+i[(t=e+16|0)>>3])<(a=+i[(r=e+24|0)>>3]),e=(f=+i[A+24>>3])-l<a-(o=+i[(s=A+16|0)>>3]),A=(n=o<f)?u|e?1:2:0,e=u?n?1:e?2:1:0,(f=+le(f,A))<=+le(+i[r>>3],e)?0|(u=(l=+le(+i[s>>3],A))>=+le(+i[t>>3],e)):0|(u=0))}function eA(A,e){A|=0,e|=0;var t,r,o,a,s,f=0;o=T,T=T+176|0,n[(r=o)>>2]=4,i[r+8>>3]=f=+i[e>>3],i[r+16>>3]=a=+i[e+16>>3],i[r+24>>3]=f,i[r+32>>3]=f=+i[e+24>>3],i[r+40>>3]=s=+i[e+8>>3],i[r+48>>3]=f,i[r+56>>3]=s,i[r+64>>3]=a,t=96+(e=r+72|0)|0;do{n[e>>2]=0,e=e+4|0}while((0|e)<(0|t));dt(0|A,0|r,168),T=o}function tA(A,e,t){A|=0,e|=0,t|=0;var r,a,u,l,c,h,d,g=0,w=0,v=0,B=0,M=0,m=0,Q=0;h=T,T=T+288|0,c=h+264|0,B=h+96|0,w=(g=v=h)+96|0;do{n[g>>2]=0,g=g+4|0}while((0|g)<(0|w));return 0|(e=0|ie(e,v))?(T=h,0|(m=e)):(re(v=0|n[(w=v)>>2],w=0|n[w+4>>2],c),ne(v,w,B),l=+ce(c,B+8|0),i[c>>3]=+i[A>>3],i[(w=c+8|0)>>3]=+i[A+16>>3],i[B>>3]=+i[A+8>>3],i[(v=B+8|0)>>3]=+i[A+24>>3],a=+ce(c,B),u=+f(+(Q=+i[w>>3]-+i[v>>3])),r=+f(+(d=+i[c>>3]-+i[B>>3])),!(0==Q|0==d)&&(Q=+lt(+u,+r),Q=+b(+a*a/+ct(+Q/+ct(+u,+r),3)/(l*(2.59807621135*l)*.8)),i[o>>3]=Q,M=~~Q>>>0,m=+f(Q)>=1?Q>0?~~+k(+s(Q/4294967296),4294967295)>>>0:~~+b((Q-+(~~Q>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2])?(n[(e=t)>>2]=(B=!(0|M)&!(0|m))?1:M,n[e+4>>2]=B?0:m,e=0):e=1,T=h,0|(m=e))}function rA(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var a,u,l,c,h=0,d=0,g=0;c=T,T=T+288|0,u=c+264|0,l=c+96|0,a=(h=d=c)+96|0;do{n[h>>2]=0,h=h+4|0}while((0|h)<(0|a));return 0|(t=0|ie(t,d))?(T=c,0|(r=t)):(re(h=0|n[(t=d)>>2],t=0|n[t+4>>2],u),ne(h,t,l),g=+ce(u,l+8|0),g=+b(+ +ce(A,e)/(2*g)),i[o>>3]=g,t=~~g>>>0,h=+f(g)>=1?g>0?~~+k(+s(g/4294967296),4294967295)>>>0:~~+b((g-+(~~g>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2]?(n[r>>2]=(d=!(0|t)&!(0|h))?1:t,n[r+4>>2]=d?0:h,T=c,0|(r=0)):(T=c,0|(r=1)))}function nA(A,e,t,r){t|=0,r|=0,n[(A|=0)>>2]=e|=0,n[A+4>>2]=t,n[A+8>>2]=r}function iA(A,e){A|=0;var t,r,o,a,s=0,u=0,l=0,c=0,h=0,d=0,g=0;n[(a=8+(e|=0)|0)>>2]=0,c=+f(+(r=+i[A>>3])),c+=.5*(h=1.1547005383792515*+f(+(o=+i[A+8>>3]))),c-=+(0|(s=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=s,h<.5*(c+1)){n[e+4>>2]=A;break}n[e+4>>2]=A=A+1|0;break}if(n[e+4>>2]=A=(1&!(h<(g=1-c)))+A|0,g<=h&h<2*c){n[e>>2]=s=s+1|0;break}n[e>>2]=s;break}if(!(c<.6666666666666666)){if(n[e>>2]=s=s+1|0,h<.5*c){n[e+4>>2]=A;break}n[e+4>>2]=A=A+1|0;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=s;break}}else n[e+4>>2]=A=A+1|0;n[e>>2]=s=s+1|0}while(0);do{if(r<0){if(1&A){s=~~(+(0|s)-(2*(+((d=0|At(0|s,((0|s)<0)<<31>>31,0|(d=(A+1|0)/2|0),((0|d)<0)<<31>>31))>>>0)+4294967296*+(0|p()))+1)),n[e>>2]=s;break}s=~~(+(0|s)-2*(+((d=0|At(0|s,((0|s)<0)<<31>>31,0|(d=(0|A)/2|0),((0|d)<0)<<31>>31))>>>0)+4294967296*+(0|p()))),n[e>>2]=s;break}}while(0);d=e+4|0,o<0&&(n[e>>2]=s=s-((1|A<<1)/2|0)|0,n[d>>2]=A=0-A|0),u=A-s|0,(0|s)<0?(l=0-s|0,n[d>>2]=u,n[a>>2]=l,n[e>>2]=0,A=u,s=0):l=0,(0|A)<0&&(n[e>>2]=s=s-A|0,n[a>>2]=l=l-A|0,n[d>>2]=0,A=0),t=s-l|0,u=A-l|0,(0|l)<0&&(n[e>>2]=t,n[d>>2]=u,n[a>>2]=0,A=u,s=t,l=0),(0|(u=(0|l)<(0|(u=(0|A)<(0|s)?A:s))?l:u))<=0||(n[e>>2]=s-u,n[d>>2]=A-u,n[a>>2]=l-u)}function oA(A){var e,t=0,r=0,i=0,o=0,a=0;r=0|n[(e=4+(A|=0)|0)>>2],(0|(t=0|n[A>>2]))<0&&(n[e>>2]=r=r-t|0,n[(a=A+8|0)>>2]=(0|n[a>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(n[A>>2]=t=t-r|0,n[(a=A+8|0)>>2]=o=(0|n[a>>2])-r|0,n[e>>2]=0,r=0):(a=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(n[A>>2]=t=t-o|0,n[e>>2]=r=r-o|0,n[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[a>>2]=o-i)}function aA(A,e){var t,r;i[(e|=0)>>3]=+((0|n[(A|=0)>>2])-(r=0|n[A+8>>2])|0)-.5*(t=+((0|n[A+4>>2])-r|0)),i[e+8>>3]=.8660254037844386*t}function sA(A,e,t){n[(t|=0)>>2]=(0|n[(e|=0)>>2])+(0|n[(A|=0)>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function fA(A,e,t){n[(t|=0)>>2]=(0|n[(A|=0)>>2])-(0|n[(e|=0)>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function uA(A,e){var t,r=0;r=0|M(0|n[(A|=0)>>2],e|=0),n[A>>2]=r,t=0|M(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|M(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function lA(A){var e,t,r=0,i=0,o=0,a=0,s=0;A=(A=(i=(0|(a=(0|n[8+(A|=0)>>2])-((s=(0|(t=0|n[A>>2]))<0)?t:0)+((e=(0|(o=(0|n[A+4>>2])-(s?t:0)|0))<0)?0-o|0:0)|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?a:0)|0))<(0|(a=(s?0:t)-(e?o:0)-(i?a:0)|0))?r:a))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(0|A?1==(0|A)?1:7:0);case 1:return 0|(0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 6;default:break A}}}while(0);return 7}function cA(A){var e,t,r=0,i=0,o=0,a=0,s=0,f=0,u=0;if((e=(0|n[(A|=0)>>2])-(f=0|n[(t=A+8|0)>>2])|0)>>>0>715827881|(f=(0|n[(u=A+4|0)>>2])-f|0)>>>0>715827881){if(a=2147483647-e|0,s=-2147483648-e|0,(o=(0|e)>0)?(0|a)<(0|e):(0|s)>(0|e))return 1;if(i=e<<1,o?(2147483647-i|0)<(0|e):(-2147483648-i|0)>(0|e))return 1;if((0|f)>0?(2147483647-f|0)<(0|f):(-2147483648-f|0)>(0|f))return 1;if(r=3*e|0,i=f<<1,(o?(0|a)<(0|i):(0|s)>(0|i))||((0|e)>-1?(-2147483648|r)>=(0|f):(-2147483648^r)<(0|f)))return 1}else i=f<<1,r=3*e|0;return o=0|Je(.14285714285714285*+(r-f|0)),n[A>>2]=o,a=0|Je(.14285714285714285*+(i+e|0)),n[u>>2]=a,n[t>>2]=0,r=(i=(0|a)<(0|o))?o:a,(0|(i=i?a:o))<0&&((-2147483648==(0|i)||((0|r)>0?(2147483647-r|0)<(0|i):(-2147483648-r|0)>(0|i)))&&E(27795,26892,354,26903),((0|r)>-1?(-2147483648|r)>=(0|i):(-2147483648^r)<(0|i))&&E(27795,26892,354,26903)),r=a-o|0,(0|o)<0?(i=0-o|0,n[u>>2]=r,n[t>>2]=i,n[A>>2]=0,o=0):(r=a,i=0),(0|r)<0&&(n[A>>2]=o=o-r|0,n[t>>2]=i=i-r|0,n[u>>2]=0,r=0),s=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=s,n[u>>2]=a,n[t>>2]=0,r=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[u>>2]=r-o,n[t>>2]=i-o),0}function hA(A){var e,t=0,r=0,i=0,o=0,a=0,s=0,f=0;if((a=(0|n[(A|=0)>>2])-(o=0|n[(e=A+8|0)>>2])|0)>>>0>715827881|(o=(0|n[(s=A+4|0)>>2])-o|0)>>>0>715827881){if((r=(0|a)>0)?(2147483647-a|0)<(0|a):(-2147483648-a|0)>(0|a))return 1;if(t=a<<1,(i=(0|o)>0)?(2147483647-o|0)<(0|o):(-2147483648-o|0)>(0|o))return 1;if(f=o<<1,i?(2147483647-f|0)<(0|o):(-2147483648-f|0)>(0|o))return 1;if(r?(2147483647-t|0)<(0|o):(-2147483648-t|0)>(0|o))return 1;if(r=3*o|0,(0|o)>-1?(-2147483648|r)>=(0|a):(-2147483648^r)<(0|a))return 1}else r=3*o|0,t=a<<1;return i=0|Je(.14285714285714285*+(t+o|0)),n[A>>2]=i,o=0|Je(.14285714285714285*+(r-a|0)),n[s>>2]=o,n[e>>2]=0,t=(r=(0|o)<(0|i))?i:o,(0|(r=r?o:i))<0&&((-2147483648==(0|r)||((0|t)>0?(2147483647-t|0)<(0|r):(-2147483648-t|0)>(0|r)))&&E(27795,26892,402,26917),((0|t)>-1?(-2147483648|t)>=(0|r):(-2147483648^t)<(0|r))&&E(27795,26892,402,26917)),t=o-i|0,(0|i)<0?(r=0-i|0,n[s>>2]=t,n[e>>2]=r,n[A>>2]=0,i=0):(t=o,r=0),(0|t)<0&&(n[A>>2]=i=i-t|0,n[e>>2]=r=r-t|0,n[s>>2]=0,t=0),a=i-r|0,o=t-r|0,(0|r)<0?(n[A>>2]=a,n[s>>2]=o,n[e>>2]=0,t=o,o=a,r=0):o=i,(0|(i=(0|r)<(0|(i=(0|t)<(0|o)?t:o))?r:i))<=0||(n[A>>2]=o-i,n[s>>2]=t-i,n[e>>2]=r-i),0}function dA(A){var e,t,r=0,i=0,o=0,a=0,s=0;o=0|Je(.14285714285714285*+((3*(r=(0|n[(A|=0)>>2])-(i=0|n[(e=A+8|0)>>2])|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Je(.14285714285714285*+((i<<1)+r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(s=0-o|0,n[t>>2]=i,n[e>>2]=s,n[A>>2]=0,r=i,o=0,i=s):i=0,(0|r)<0&&(n[A>>2]=o=o-r|0,n[e>>2]=i=i-r|0,n[t>>2]=0,r=0),s=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=a,n[e>>2]=0,r=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function gA(A){var e,t,r=0,i=0,o=0,a=0,s=0;o=0|Je(.14285714285714285*+(((r=(0|n[(A|=0)>>2])-(i=0|n[(e=A+8|0)>>2])|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Je(.14285714285714285*+((3*i|0)-r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(s=0-o|0,n[t>>2]=i,n[e>>2]=s,n[A>>2]=0,r=i,o=0,i=s):i=0,(0|r)<0&&(n[A>>2]=o=o-r|0,n[e>>2]=i=i-r|0,n[t>>2]=0,r=0),s=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=a,n[e>>2]=0,r=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function wA(A){var e,t,r,i=0,o=0,a=0,s=0;a=0|n[(r=8+(A|=0)|0)>>2],n[A>>2]=s=(o=0|n[(t=A+4|0)>>2])+(3*(i=0|n[A>>2])|0)|0,n[t>>2]=o=a+(3*o|0)|0,n[r>>2]=i=(3*a|0)+i|0,a=o-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function vA(A){var e,t,r,i=0,o=0,a=0,s=0;a=(3*(i=0|n[(t=4+(A|=0)|0)>>2])|0)+(s=0|n[A>>2])|0,n[A>>2]=s=(o=0|n[(r=A+8|0)>>2])+(3*s|0)|0,n[t>>2]=a,n[r>>2]=i=(3*o|0)+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):o=a,(0|o)<0&&(n[A>>2]=s=s-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function BA(A,e){A|=0;var t,r,i,o=0,a=0,s=0;((e|=0)-1|0)>>>0>=6||(n[A>>2]=s=(0|n[15440+(12*e|0)>>2])+(0|n[A>>2])|0,n[(i=A+4|0)>>2]=a=(0|n[15440+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[(r=A+8|0)>>2]=e=(0|n[15440+(12*e|0)+8>>2])+(0|n[r>>2])|0,o=a-s|0,(0|s)<0?(e=e-s|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=e=e-o|0,n[i>>2]=0,o=0),t=a-e|0,s=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=s,n[r>>2]=0,a=t,e=0):s=o,(0|(o=(0|e)<(0|(o=(0|s)<(0|a)?s:a))?e:o))<=0||(n[A>>2]=a-o,n[i>>2]=s-o,n[r>>2]=e-o))}function bA(A){var e,t,r,i=0,o=0,a=0,s=0;a=(i=0|n[(t=4+(A|=0)|0)>>2])+(s=0|n[A>>2])|0,n[A>>2]=s=(o=0|n[(r=A+8|0)>>2])+s|0,n[t>>2]=a,n[r>>2]=i=o+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function MA(A){var e,t,r,i=0,o=0,a=0,s=0;o=0|n[(r=8+(A|=0)|0)>>2],n[A>>2]=s=(a=0|n[(t=A+4|0)>>2])+(i=0|n[A>>2])|0,n[t>>2]=a=o+a|0,n[r>>2]=i=o+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function kA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function mA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function QA(A){var e,t,r,i=0,o=0,a=0,s=0;a=0|n[(r=8+(A|=0)|0)>>2],n[A>>2]=s=(o=0|n[(t=A+4|0)>>2])+((i=0|n[A>>2])<<1)|0,n[t>>2]=o=a+(o<<1)|0,n[r>>2]=i=(a<<1)+i|0,a=o-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function DA(A){var e,t,r,i=0,o=0,a=0,s=0;a=((i=0|n[(t=4+(A|=0)|0)>>2])<<1)+(s=0|n[A>>2])|0,n[A>>2]=s=(o=0|n[(r=A+8|0)>>2])+(s<<1)|0,n[t>>2]=a,n[r>>2]=i=(o<<1)+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):o=a,(0|o)<0&&(n[A>>2]=s=s-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function pA(A,e){var t,r,i,o=0,a=0,s=0;return e=(e=(A=(0|(s=((i=(0|(r=(0|n[(A|=0)>>2])-(0|n[(e|=0)>>2])|0))<0)?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+((t=(0|(a=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0)?0-a|0:0)|0))<0)?0:s)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:a)-(A?s:0)|0))<(0|(s=(i?0:r)-(t?a:0)-(A?s:0)|0))?o:s))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=s-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function EA(A,e){var t;n[(e|=0)>>2]=(0|n[(A|=0)>>2])-(t=0|n[A+8>>2]),n[e+4>>2]=(0|n[A+4>>2])-t}function CA(A,e){var t,r,i,o=0,a=0,s=0;if(n[(e|=0)>>2]=a=0|n[(A|=0)>>2],n[(r=e+4|0)>>2]=s=0|n[A+4>>2],n[(i=e+8|0)>>2]=0,A=(o=(0|s)<(0|a))?a:s,(0|(o=o?s:a))<0){if(-2147483648==(0|o)||((0|A)>0?(2147483647-A|0)<(0|o):(-2147483648-A|0)>(0|o)))return 1;if((0|A)>-1?(-2147483648|A)>=(0|o):(-2147483648^A)<(0|o))return 1}return A=s-a|0,(0|a)<0?(o=0-a|0,n[r>>2]=A,n[i>>2]=o,n[e>>2]=0,a=0):(A=s,o=0),(0|A)<0&&(n[e>>2]=a=a-A|0,n[i>>2]=o=o-A|0,n[r>>2]=0,A=0),t=a-o|0,s=A-o|0,(0|o)<0?(n[e>>2]=t,n[r>>2]=s,n[i>>2]=0,A=s,s=t,o=0):s=a,(0|(a=(0|o)<(0|(a=(0|A)<(0|s)?A:s))?o:a))<=0||(n[e>>2]=s-a,n[r>>2]=A-a,n[i>>2]=o-a),0}function yA(A){var e,t,r,i;n[(A|=0)>>2]=t=(i=0|n[(e=A+8|0)>>2])-(0|n[A>>2])|0,n[(r=A+4|0)>>2]=A=(0|n[r>>2])-i|0,n[e>>2]=0-(A+t)}function PA(A){var e,t,r=0,i=0,o=0,a=0,s=0;n[(A|=0)>>2]=r=0-(i=0|n[A>>2])|0,n[(e=A+8|0)>>2]=0,a=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=a,n[e>>2]=i,n[A>>2]=0,r=0,o=a):i=0,(0|o)<0?(n[A>>2]=s=r-o|0,n[e>>2]=i=i-o|0,n[t>>2]=0,a=s-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,a=s)):a=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|a)?o:a))?i:r))<=0||(n[A>>2]=a-r,n[t>>2]=o-r,n[e>>2]=i-r)}function IA(A,e,t){t|=0;var r,i,o=0,a=0;return i=T,T=T+16|0,r=i,a=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|st(0|(A|=0),0|e,56),p(),o=0|function(A,e,t){t|=0;var r,i=0,o=0;if(r=T,T=T+16|0,o=r,i=0|VA(A|=0,e|=0),(t+-1|0)>>>0>5)return T=r,-1;if(1==(0|t)&(i=!!(0|i)))return T=r,-1;do{if(!(0|Oe(A,e,o))){if(i){i=(5+(0|n[26352+(t<<2)>>2])-(0|n[o>>2])|0)%5|0;break}i=(6+(0|n[26384+(t<<2)>>2])-(0|n[o>>2])|0)%6|0;break}i=-1}while(0);return T=r,0|(o=i)}(A,a,7&o),-1==(0|o)?(n[t>>2]=0,T=i,0|(a=6)):(0|te(A,a,r)&&E(27795,26932,282,26947),e=0|st(0|A,0|e,52),p(),e&=15,0|VA(A,a)?xA(r,e,o,2,t):zA(r,e,o,2,t),T=i,0|(a=0))):(T=i,0|(a=6))}function FA(A,e,t,r){e|=0,r|=0;var o,a=0,s=0,f=0,u=0;if(o=T,T=T+16|0,function(A,e,t){e|=0,t|=0;var r,o,a=0;o=T,T=T+32|0,function(A,e){e|=0;var t,r,n=0;t=+c(+(n=+i[(A|=0)>>3])),n=+h(+n),i[e+16>>3]=n,r=t*+c(+(n=+i[A+8>>3])),i[e>>3]=r,n=t*+h(+n),i[e+8>>3]=n}(A|=0,r=o),n[e>>2]=0,i[t>>3]=5,(a=+Re(16400,r))<+i[t>>3]&&(n[e>>2]=0,i[t>>3]=a),(a=+Re(16424,r))<+i[t>>3]&&(n[e>>2]=1,i[t>>3]=a),(a=+Re(16448,r))<+i[t>>3]&&(n[e>>2]=2,i[t>>3]=a),(a=+Re(16472,r))<+i[t>>3]&&(n[e>>2]=3,i[t>>3]=a),(a=+Re(16496,r))<+i[t>>3]&&(n[e>>2]=4,i[t>>3]=a),(a=+Re(16520,r))<+i[t>>3]&&(n[e>>2]=5,i[t>>3]=a),(a=+Re(16544,r))<+i[t>>3]&&(n[e>>2]=6,i[t>>3]=a),(a=+Re(16568,r))<+i[t>>3]&&(n[e>>2]=7,i[t>>3]=a),(a=+Re(16592,r))<+i[t>>3]&&(n[e>>2]=8,i[t>>3]=a),(a=+Re(16616,r))<+i[t>>3]&&(n[e>>2]=9,i[t>>3]=a),(a=+Re(16640,r))<+i[t>>3]&&(n[e>>2]=10,i[t>>3]=a),(a=+Re(16664,r))<+i[t>>3]&&(n[e>>2]=11,i[t>>3]=a),(a=+Re(16688,r))<+i[t>>3]&&(n[e>>2]=12,i[t>>3]=a),(a=+Re(16712,r))<+i[t>>3]&&(n[e>>2]=13,i[t>>3]=a),(a=+Re(16736,r))<+i[t>>3]&&(n[e>>2]=14,i[t>>3]=a),(a=+Re(16760,r))<+i[t>>3]&&(n[e>>2]=15,i[t>>3]=a),(a=+Re(16784,r))<+i[t>>3]&&(n[e>>2]=16,i[t>>3]=a),(a=+Re(16808,r))<+i[t>>3]&&(n[e>>2]=17,i[t>>3]=a),(a=+Re(16832,r))<+i[t>>3]&&(n[e>>2]=18,i[t>>3]=a),(a=+Re(16856,r))<+i[t>>3]?(n[e>>2]=19,i[t>>3]=a,T=o):T=o}(A|=0,t|=0,u=o),(s=+g(+(1-.5*+i[u>>3])))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(T=o);if(a=+fe((a=+i[15920+(24*(u=0|n[t>>2])|0)>>3])-+fe(+function(A,e){A|=0;var t,r,n,o,a;return a=(r=+c(+(o=+i[(e|=0)>>3])))*+h(+(n=+i[e+8>>3]-+i[A+8>>3])),t=+i[A>>3],+ +B(+a,+(+h(+o)*+c(+t)-+c(+n)*(r*+h(+t))))}(15600+(u<<4)|0,A))),f=0|$A(e)?+fe(a+-.3334731722518321):a,a=2.618033988749896*+d(+s),(0|e)>0){A=0;do{a*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}s=+c(+f)*a,i[r>>3]=s,f=+h(+f)*a,i[r+8>>3]=f,T=o}function TA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var a,s=0,l=0;if(s=+function(A){var e,t;return+ +u(+((t=+i[(A|=0)>>3])*t+(e=+i[A+8>>3])*e))}(A|=0),s<1e-16)return n[o>>2]=n[(e=15600+(e<<4)|0)>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(l=+B(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{s*=.37796447300922725,A=A+1|0}while((0|A)!=(0|t))}a=.3333333333333333*s,r?(t=!(0|$A(t)),s=+v(.381966011250105*(t?a:.37796447300922725*a))):(s=+v(.381966011250105*s),0|$A(t)&&(l=+fe(l+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,r|=0;var o=0,a=0,s=0,u=0;if((t=+t)<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+f(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){i[r>>3]=e-=t,o=r;break}if(s=+c(+t),t=+h(+t),e=s*+h(+e)+ +c(+a)*(t*+c(+e)),e=+w(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+f(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(u=1/+c(+e),a=t*+h(+a)*u,t=+i[A>>3],e=u*((s-+h(+e)*+h(+t))/+c(+t)),(e=+i[A+8>>3]+ +B(+((s=a>1?1:a)<-1?-1:s),+((e=e>1?1:e)<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}i[r>>3]=e=+i[A>>3]+t,o=r}while(0);if(+f(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if((e=+i[A+8>>3])>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15600+(e<<4)|0,+fe(+i[15920+(24*e|0)>>3]-l),s,o)}function LA(A,e,t){var r,i;e|=0,t|=0,r=T,T=T+16|0,aA(4+(A|=0)|0,i=r),TA(i,0|n[A>>2],e,0,t),T=r}function xA(A,e,t,r,o){A|=0,t|=0,r|=0,o|=0;var a,s,f,u,l,c,h,d,g,w,v,B,b,M,k,m,Q,D,p,C,y,P,I=0,F=0,L=0,x=0,G=0,S=0;if(P=T,T=T+272|0,x=P+240|0,p=P,C=P+224|0,y=P+208|0,v=P+176|0,B=P+160|0,b=P+192|0,M=P+144|0,k=P+128|0,m=P+112|0,Q=P+96|0,D=P+80|0,n[(I=P+256|0)>>2]=e|=0,n[x>>2]=n[A>>2],n[x+4>>2]=n[A+4>>2],n[x+8>>2]=n[A+8>>2],n[x+12>>2]=n[A+12>>2],GA(x,I,p),n[o>>2]=0,(0|(x=r+t+(5==(0|r)&1)|0))<=(0|t))T=P;else{s=C+4|0,f=v+4|0,u=t+5|0,l=16880+((a=0|n[I>>2])<<2)|0,c=16960+(a<<2)|0,h=k+8|0,d=m+8|0,g=Q+8|0,w=y+4|0,L=t;A:for(;;){n[y>>2]=n[(F=p+((0|L)%5<<4)|0)>>2],n[y+4>>2]=n[F+4>>2],n[y+8>>2]=n[F+8>>2],n[y+12>>2]=n[F+12>>2];do{}while(2==(0|SA(y,a,0,1)));if((0|L)>(0|t)&!!(0|$A(e))){if(n[v>>2]=n[y>>2],n[v+4>>2]=n[y+4>>2],n[v+8>>2]=n[y+8>>2],n[v+12>>2]=n[y+12>>2],aA(s,B),n[v>>2]=n[18640+(80*(r=0|n[v>>2])|0)+(20*(I=0|n[17040+(80*r|0)+(n[C>>2]<<2)>>2])|0)>>2],(0|(F=0|n[18640+(80*r|0)+(20*I|0)+16>>2]))>0){A=0;do{bA(f),A=A+1|0}while((0|A)<(0|F))}switch(n[b>>2]=n[(F=18640+(80*r|0)+(20*I|0)+4|0)>>2],n[b+4>>2]=n[F+4>>2],n[b+8>>2]=n[F+8>>2],uA(b,3*(0|n[l>>2])|0),sA(f,b,f),oA(f),aA(f,M),i[k>>3]=3*(G=+(0|n[c>>2])),i[h>>3]=0,i[m>>3]=S=-1.5*G,i[d>>3]=2.598076211353316*G,i[Q>>3]=S,i[g>>3]=-2.598076211353316*G,0|n[17040+(80*(0|n[v>>2])|0)+(n[y>>2]<<2)>>2]){case 1:A=m,r=k;break;case 3:A=Q,r=m;break;case 2:A=k,r=Q;break;default:A=12;break A}Ue(B,M,r,A,D),TA(D,0|n[v>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|L)<(0|u)&&(aA(w,v),TA(v,0|n[y>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[C>>2]=n[y>>2],n[C+4>>2]=n[y+4>>2],n[C+8>>2]=n[y+8>>2],n[C+12>>2]=n[y+12>>2],(0|(L=L+1|0))>=(0|x)){A=3;break}}3!=(0|A)?12==(0|A)&&E(26970,27017,572,27027):T=P}}function GA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,s=0,f=0;r=T,T=T+128|0,o=r,s=20240,f=60+(a=i=r+64|0)|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));s=20304,f=(a=o)+60|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));i=(f=!(0|$A(0|n[e>>2])))?i:o,QA(o=A+4|0),DA(o),0|$A(0|n[e>>2])&&(vA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],sA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],sA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],sA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],sA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],sA(o,i+48|0,t=t+68|0),oA(t),T=r}function SA(A,e,t,r){t|=0;var i,o,a,s,f,u,l=0,c=0,h=0,d=0,g=0;if(u=T,T=T+32|0,f=u+12|0,o=u,d=0|n[16960+((e|=0)<<2)>>2],d=(s=!!(0|(r|=0)))?3*d|0:d,l=0|n[(g=4+(A|=0)|0)>>2],i=0|n[(a=A+8|0)>>2],s){if((0|(l=i+l+(r=0|n[(c=A+12|0)>>2])|0))==(0|d))return T=u,1;h=c}else l=i+l+(r=0|n[(h=A+12|0)>>2])|0;if((0|l)<=(0|d))return T=u,0;do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18640+(80*r|0)+60|0,r=A;break}r=18640+(80*r|0)+40|0,t?(nA(f,d,0,0),fA(g,f,o),MA(o),sA(o,f,g),c=r,r=A):(c=r,r=A)}else c=18640+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(l=c+16|0)>>2])>0){r=0;do{bA(g),r=r+1|0}while((0|r)<(0|n[l>>2]))}return n[f>>2]=n[(A=c+4|0)>>2],n[f+4>>2]=n[A+4>>2],n[f+8>>2]=n[A+8>>2],e=0|n[16880+(e<<2)>>2],uA(f,s?3*e|0:e),sA(g,f,g),oA(g),T=u,0|(s&&((0|n[a>>2])+(0|n[g>>2])+(0|n[h>>2])|0)==(0|d)?1:2)}function UA(A,e){A|=0,e|=0;var t=0;do{t=0|SA(A,e,0,1)}while(2==(0|t));return 0|t}function zA(A,e,t,r,o){A|=0,t|=0,r|=0,o|=0;var a,s,f,u,l,c,h,d,g,w,v,B,b,M,k,m,Q,D,p=0,C=0,y=0,P=0,I=0;if(D=T,T=T+240|0,M=D+208|0,k=D,m=D+192|0,Q=D+176|0,g=D+160|0,w=D+144|0,v=D+128|0,B=D+112|0,b=D+96|0,n[(p=D+224|0)>>2]=e|=0,n[M>>2]=n[A>>2],n[M+4>>2]=n[A+4>>2],n[M+8>>2]=n[A+8>>2],n[M+12>>2]=n[A+12>>2],RA(M,p,k),n[o>>2]=0,(0|(d=r+t+(6==(0|r)&1)|0))<=(0|t))T=D;else{s=t+6|0,f=16960+((a=0|n[p>>2])<<2)|0,u=w+8|0,l=v+8|0,c=B+8|0,h=m+4|0,C=0,y=t,r=-1;A:for(;;){if(n[m>>2]=n[(A=k+((p=(0|y)%6|0)<<4)|0)>>2],n[m+4>>2]=n[A+4>>2],n[m+8>>2]=n[A+8>>2],n[m+12>>2]=n[A+12>>2],A=C,C=0|SA(m,a,0,1),(0|y)>(0|t)&!!(0|$A(e))&&1!=(0|A)&&(0|n[m>>2])!=(0|r)){switch(aA(k+((p+5|0)%6<<4)+4|0,Q),aA(k+(p<<4)+4|0,g),i[w>>3]=3*(P=+(0|n[f>>2])),i[u>>3]=0,i[v>>3]=I=-1.5*P,i[l>>3]=2.598076211353316*P,i[B>>3]=I,i[c>>3]=-2.598076211353316*P,0|n[17040+(80*(p=0|n[M>>2])|0)+(((0|r)==(0|p)?n[m>>2]:r)<<2)>>2]){case 1:A=v,r=w;break;case 3:A=B,r=v;break;case 2:A=w,r=B;break;default:A=8;break A}Ue(Q,g,r,A,b),0|ze(Q,b)||0|ze(g,b)||(TA(b,0|n[M>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|y)<(0|s)&&(aA(h,Q),TA(Q,0|n[m>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(y=y+1|0))>=(0|d)){A=3;break}r=0|n[m>>2]}3!=(0|A)?8==(0|A)&&E(27054,27017,737,27099):T=D}}function RA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,s=0,f=0;r=T,T=T+160|0,o=r,s=20368,f=72+(a=i=r+80|0)|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));s=20448,f=(a=o)+72|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));i=(f=!(0|$A(0|n[e>>2])))?i:o,QA(o=A+4|0),DA(o),0|$A(0|n[e>>2])&&(vA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],sA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],sA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],sA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],sA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],sA(o,i+48|0,e=t+68|0),oA(e),n[t+80>>2]=n[A>>2],sA(o,i+60|0,t=t+84|0),oA(t),T=r}function OA(A,e){return e=0|st(0|(A|=0),0|(e|=0),45),p(),127&e}function YA(A,e){A|=0;var t=0,n=0,i=0,o=0;return!0&134217728==(-16777216&(e|=0))?(n=0|st(0|A,0|e,52),p(),n&=15,t=0|st(0|A,0|e,45),p(),(t&=127)>>>0>121?0|(A=0):!(613566756&(o=0|ft(0|(i=0|st(0|A,0|e,0|(o=3*(15^n)|0))),0|p(),0|o))&At(-1227133514,-1171,0|o,0|(i=0|p())))&!(4681&i&p())&&15==(0|n)|!(0|(o=0|st(0|ft(0|~A,0|~e,0|(o=19+(3*n|0)|0)),0|p(),0|o)))&!(0|p())?0|r[20528+t|0]?!(0|A)&!(0|(e&=8191))?0|(o=1):(o=0|ut(0|A,0|e),p(),0|!!((63-o|0)%3|0)):0|(o=1):0|(o=0)):0|(A=0)}function _A(A,e,t,r){A|=0,t|=0,r|=0;var i=0,o=0,a=0,s=0;if(i=0|ft(0|(e|=0),0,52),o=0|p(),t=0|ft(0|t,0,45),t=o|p()|134225919,(0|e)<1)return r=t,n[(e=A)>>2]=o=-1,void(n[(A=A+4|0)>>2]=r);for(o=1,i=-1;s=0|ft(7,0,0|(a=3*(15-o|0)|0)),t&=~p(),i=i&~s|(a=0|ft(0|r,0,0|a)),t|=p(),(0|o)!=(0|e);)o=o+1|0;n[(a=s=A)>>2]=i,n[(s=s+4|0)>>2]=t}function WA(A,e,t,r){t|=0,r|=0;var i=0,o=0;if(o=0|st(0|(A|=0),0|(e|=0),52),p(),t>>>0>15)return 4;if((0|(o&=15))<(0|t))return 12;if((0|o)==(0|t))return n[r>>2]=A,n[r+4>>2]=e,0;if(i=0|ft(0|t,0,52),i|=A,A=p()|-15728641&e,(0|o)>(0|t))do{e=0|ft(7,0,3*(14-t|0)|0),t=t+1|0,i|=e,A=p()|A}while((0|t)<(0|o));return n[r>>2]=i,n[r+4>>2]=A,0}function HA(A,e,t,r){t|=0,r|=0;var i=0,o=0,a=0;if(o=0|st(0|(A|=0),0|(e|=0),52),p(),!((0|t)<16&(0|(o&=15))<=(0|t)))return 4;i=t-o|0,t=0|st(0|A,0|e,45),p();A:do{if(0|_(127&t)){e:do{if(0|o){for(t=1;!((a=0|ft(7,0,3*(15-t|0)|0))&A)&!(p()&e);){if(!(t>>>0<o>>>0))break e;t=t+1|0}t=0|De(7,0,i,((0|i)<0)<<31>>31),i=0|p();break A}}while(0);t=0|$e(0|(t=0|nt(0|(t=0|De(7,0,i,((0|i)<0)<<31>>31)),0|p(),5,0)),0|p(),-5,-1),t=0|$e(0|(t=0|rt(0|t,0|p(),6,0)),0|p(),1,0),i=0|p()}else t=0|De(7,0,i,((0|i)<0)<<31>>31),i=0|p()}while(0);return n[(a=r)>>2]=t,n[a+4>>2]=i,0}function VA(A,e){var t=0,r=0,n=0;if(n=0|st(0|(A|=0),0|(e|=0),45),p(),!(0|_(127&n)))return 0;n=0|st(0|A,0|e,52),p(),n&=15;A:do{if(n)for(r=1;;){if(t=0|st(0|A,0|e,3*(15-r|0)|0),p(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 1&!(0|t)}function jA(A,e,t,r){return A|=0,e|=0,(0|(r|=0))<(0|(t|=0))?(r=A,D(0|(t=e)),0|r):(t=0|ft(-1,-1,3+(3*(r-t|0)|0)|0),r=0|ft(0|~t,0|~p(),3*(15-r|0)|0),t=~p()&e,r=~r&A,D(0|t),0|r)}function NA(A,e,t,r){t|=0,r|=0;var i=0;return i=0|st(0|(A|=0),0|(e|=0),52),p(),(0|t)<16&(0|(i&=15))<=(0|t)?((0|i)<(0|t)&&(i=0|ft(-1,-1,3+(3*(t+-1-i|0)|0)|0),i=0|ft(0|~i,0|~p(),3*(15-t|0)|0),e=~p()&e,A&=~i),i=0|ft(0|t,0,52),t=-15728641&e|p(),n[r>>2]=A|i,n[r+4>>2]=t,0|(r=0)):0|(r=4)}function ZA(A,e){var t=0,r=0,n=0;if(n=0|st(0|(A|=0),0|(e|=0),52),p(),!(n&=15))return 0;for(r=1;;){if(t=0|st(0|A,0|e,3*(15-r|0)|0),p(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function JA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,s=0;if(s=0|st(0|(A|=0),0|(e|=0),52),p(),!(s&=15))return s=A,D(0|(a=e)),0|s;for(a=1,t=0;;){r=0|ft(7,0,0|(i=3*(15-a|0)|0)),n=0|p(),o=0|st(0|A,0|e,0|i),p(),A=(i=0|ft(0|kA(7&o),0,0|i))|A&~r,e=(o=0|p())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|st(0|A,0|e,52),p(),r&=15){t=1;e:for(;;){switch(o=0|st(0|A,0|e,3*(15-t|0)|0),p(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|st(0|A,0|e,0|(o=3*(15-t|0)|0)),p(),i=0|ft(7,0,0|o),e&=~p(),A=A&~i|(o=0|ft(0|kA(7&n),0,0|o)),e|=p(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return D(0|e),0|A}function XA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|st(0|(A|=0),0|(e|=0),52),p(),!(r&=15))return r=A,D(0|(t=e)),0|r;for(t=1;o=0|st(0|A,0|e,0|(i=3*(15-t|0)|0)),p(),n=0|ft(7,0,0|i),e&=~p(),A=(i=0|ft(0|kA(7&o),0,0|i))|A&~n,e=p()|e,t>>>0<r>>>0;)t=t+1|0;return D(0|e),0|A}function KA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,s=0;if(s=0|st(0|(A|=0),0|(e|=0),52),p(),!(s&=15))return s=A,D(0|(a=e)),0|s;for(a=1,t=0;;){r=0|ft(7,0,0|(i=3*(15-a|0)|0)),n=0|p(),o=0|st(0|A,0|e,0|i),p(),A=(i=0|ft(0|mA(7&o),0,0|i))|A&~r,e=(o=0|p())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|st(0|A,0|e,52),p(),r&=15){t=1;e:for(;;){switch(o=0|st(0|A,0|e,3*(15-t|0)|0),p(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|ft(7,0,0|(n=3*(15-t|0)|0)),o=e&~p(),e=0|st(0|A,0|e,0|n),p(),A=A&~i|(e=0|ft(0|mA(7&e),0,0|n)),e=o|p(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return D(0|e),0|A}function qA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|st(0|(A|=0),0|(e|=0),52),p(),!(r&=15))return r=A,D(0|(t=e)),0|r;for(t=1;i=0|ft(7,0,0|(o=3*(15-t|0)|0)),n=e&~p(),e=0|st(0|A,0|e,0|o),p(),A=(e=0|ft(0|mA(7&e),0,0|o))|A&~i,e=p()|n,t>>>0<r>>>0;)t=t+1|0;return D(0|e),0|A}function $A(A){return(0|(A|=0))%2|0}function Ae(A,e,t){t|=0;var r,i=0;return r=T,T=T+16|0,i=r,(e|=0)>>>0>15?(T=r,0|(i=4)):2146435072&~n[4+(A|=0)>>2]&&2146435072&~n[A+8+4>>2]?(function(A,e,t){var r,n;r=T,T=T+16|0,FA(A|=0,e|=0,t|=0,n=r),iA(n,t+4|0),T=r}(A,e,i),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,a=0,s=0,f=0,u=0,l=0;if(t=T,T=T+64|0,f=t+40|0,i=t+24|0,o=t+12|0,a=t,ft(0|(e|=0),0,52),r=134225919|p(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(f=0,D(0|(s=0)),T=t,0|f):(ft(0|H(A),0,45),s=p()|r,f=-1,D(0|s),T=t,0|f);if(n[f>>2]=n[A>>2],n[f+4>>2]=n[A+4>>2],n[f+8>>2]=n[A+8>>2],n[f+12>>2]=n[A+12>>2],s=f+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[s>>2],n[i+4>>2]=n[s+4>>2],n[i+8>>2]=n[s+8>>2],1&e?(dA(s),n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],wA(o)):(gA(s),n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],vA(o)),fA(i,o,a),oA(a),u=0|ft(7,0,0|(l=3*(15-e|0)|0)),r&=~p(),A=(l=0|ft(0|lA(a),0,0|l))|A&~u,r=p()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[s>>2])<=2&&(0|n[f+8>>2])<=2&&(0|n[f+12>>2])<=2){if(e=0|ft(0|(i=0|H(f)),0,45),e|=A,A=p()|-1040385&r,a=0|V(f),!(0|_(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|st(0|e,0|A,52),p(),i&=15)for(r=1;f=0|st(0|e,0|A,0|(l=3*(15-r|0)|0)),p(),u=0|ft(7,0,0|l),A&=~p(),e=e&~u|(l=0|ft(0|kA(7&f),0,0|l)),A|=p(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|st(0|e,0|A,52),p(),o&=15;e:do{if(o){r=1;t:for(;;){switch(l=0|st(0|e,0|A,3*(15-r|0)|0),p(),7&l){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|j(i,0|n[f>>2]))for(r=1;u=0|ft(7,0,0|(f=3*(15-r|0)|0)),l=A&~p(),A=0|st(0|e,0|A,0|f),p(),e=e&~u|(A=0|ft(0|mA(7&A),0,0|f)),A=l|p(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;f=0|st(0|e,0|A,0|(l=3*(15-r|0)|0)),p(),u=0|ft(7,0,0|l),A&=~p(),e=e&~u|(l=0|ft(0|kA(7&f),0,0|l)),A|=p(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|a)>0){r=0;do{e=0|JA(e,A),A=0|p(),r=r+1|0}while((0|r)!=(0|a))}}else e=0,A=0}while(0);return l=e,D(0|(u=A)),T=t,0|l}(i,e),i=0|p(),n[t>>2]=e,n[t+4>>2]=i,!(0|e)&!(0|i)&&E(27795,27122,959,27145),T=r,0|(i=0)):(T=r,0|(i=3))}function ee(A,e,t){var r,i=0,o=0,a=0;if(r=4+(t|=0)|0,o=0|st(0|(A|=0),0|(e|=0),52),p(),o&=15,a=0|st(0|A,0|e,45),p(),i=!(0|o),0|_(127&a)){if(i)return 1;i=1}else{if(i)return 0;i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?wA(r):vA(r),a=0|st(0|A,0|e,3*(15-t|0)|0),p(),BA(r,7&a),t>>>0<o>>>0;)t=t+1|0;return 0|i}function te(A,e,t){t|=0;var r,i,o=0,a=0,s=0,f=0,u=0,l=0;if(i=T,T=T+16|0,r=i,l=0|st(0|(A|=0),0|(e|=0),45),p(),(l&=127)>>>0>121)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,T=i,5;A:do{if(0|_(l)&&(s=0|st(0|A,0|e,52),p(),0|(s&=15))){o=1;e:for(;;){switch(u=0|st(0|A,0|e,3*(15-o|0)|0),p(),7&u){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<s>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;f=0|ft(7,0,0|(e=3*(15-a|0)|0)),u=o&~p(),o=0|st(0|A,0|o,0|e),p(),A=A&~f|(o=0|ft(0|mA(7&o),0,0|e)),o=u|p(),a>>>0<s>>>0;)a=a+1|0}else o=e}while(0);if(n[t>>2]=n[(u=7696+(28*l|0)|0)>>2],n[t+4>>2]=n[u+4>>2],n[t+8>>2]=n[u+8>>2],n[t+12>>2]=n[u+12>>2],!(0|ee(A,o,t)))return T=i,0;if(n[r>>2]=n[(f=t+4|0)>>2],n[r+4>>2]=n[f+4>>2],n[r+8>>2]=n[f+8>>2],s=0|st(0|A,0|o,52),p(),u=15&s,1&s?(vA(f),s=u+1|0):s=u,0|_(l)){A:do{if(u)for(e=1;;){if(a=0|st(0|A,0|o,3*(15-e|0)|0),p(),0|(a&=7)){o=a;break A}if(!(e>>>0<u>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|SA(t,s,o,0)){if(0|_(l))do{}while(0|SA(t,s,0,0));(0|s)!=(0|u)&&gA(f)}else(0|s)!=(0|u)&&(n[f>>2]=n[r>>2],n[f+4>>2]=n[r+4>>2],n[f+8>>2]=n[r+8>>2]);return T=i,0}function re(A,e,t){t|=0;var r,n,i=0;return n=T,T=T+16|0,0|(i=0|te(A|=0,e|=0,r=n))?(T=n,0|i):(i=0|st(0|A,0|e,52),p(),LA(r,15&i,t),T=n,0|(i=0))}function ne(A,e,t){t|=0;var r,n=0,i=0,o=0;if(r=T,T=T+16|0,0|(n=0|te(A|=0,e|=0,o=r)))return T=r,0|n;n=0|st(0|A,0|e,45),p(),n=!(0|_(127&n)),i=0|st(0|A,0|e,52),p(),i&=15;A:do{if(!n){if(0|i)for(n=1;;){if(!(!(ft(7,0,3*(15-n|0)|0)&A)&!(p()&e)))break A;if(!(n>>>0<i>>>0))break;n=n+1|0}return xA(o,i,0,5,t),T=r,0}}while(0);return zA(o,i,0,6,t),T=r,0}function ie(A,e){e|=0;var t=0,r=0,i=0,o=0,a=0,s=0,f=0;if((A|=0)>>>0>15)return 4;if(ft(0|A,0,52),s=134225919|p(),!A){t=0,r=0;do{0|_(r)&&(ft(0|r,0,45),a=s|p(),n[(A=e+(t<<3)|0)>>2]=-1,n[A+4>>2]=a,t=t+1|0),r=r+1|0}while(122!=(0|r));return 0}t=0,a=0;do{if(0|_(a)){for(ft(0|a,0,45),r=1,i=-1,o=s|p();i&=~(f=0|ft(7,0,3*(15-r|0)|0)),o&=~p(),(0|r)!=(0|A);)r=r+1|0;n[(f=e+(t<<3)|0)>>2]=i,n[f+4>>2]=o,t=t+1|0}a=a+1|0}while(122!=(0|a));return 0}function oe(A,e,t,r){A|=0,r|=0;var i=0,o=0,a=0;i=0|st(0|(e|=0),0|(t|=0),52),p(),!(0|e)&!(0|t)|(0|r)>15|(0|(i&=15))>(0|r)?(o=-1,e=-1,t=0,i=0):(e=0|jA(e,t,i+1|0,r),a=-15728641&p(),t=0|ft(0|r,0,52),o=i,e=(e=!(0|VA(t|=e,a|=p())))?-1:r,i=a),n[(a=A)>>2]=t,n[a+4>>2]=i,n[A+8>>2]=o,n[A+12>>2]=e}function ae(A,e,t,r){t|=0,r|=0;var i=0,o=0;return i=0|st(0|(A|=0),0|(e|=0),52),p(),n[(o=r+8|0)>>2]=i&=15,!(0|A)&!(0|e)|(0|t)>15|(0|i)>(0|t)?(n[(t=r)>>2]=0,n[t+4>>2]=0,n[o>>2]=-1,void(n[r+12>>2]=-1)):(A=0|jA(A,e,i+1|0,t),o=-15728641&p(),i=0|ft(0|t,0,52),i|=A,o|=p(),n[(A=r)>>2]=i,n[A+4>>2]=o,A=r+12|0,0|VA(i,o)?void(n[A>>2]=t):void(n[A>>2]=-1))}function se(A){var e,t=0,r=0,i=0,o=0,a=0,s=0,f=0,u=0;if(!(!(0|(t=0|n[(r=A|=0)>>2]))&!(0|(r=0|n[r+4>>2]))||(i=0|st(0|t,0|r,52),p(),t=0|$e(0|(f=0|ft(1,0,3*(15^(i&=15))|0)),0|p(),0|t,0|r),r=0|p(),n[(f=A)>>2]=t,n[f+4>>2]=r,(0|i)<(0|(s=0|n[(f=A+8|0)>>2]))))){for(e=A+12|0,a=i;;){if((0|a)==(0|s)){i=5;break}if(u=(0|a)==(0|n[e>>2]),i=0|st(0|t,0|r,0|(o=3*(15-a|0)|0)),p(),u&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(t=0|$e(0|t,0|r,0|(u=0|ft(1,0,0|o)),0|p()),r=0|p(),n[(u=A)>>2]=t,n[u+4>>2]=r,!((0|a)>(0|s))){i=10;break}a=a+-1|0}if(5==(0|i))return n[(u=A)>>2]=0,n[u+4>>2]=0,n[f>>2]=-1,void(n[e>>2]=-1);if(7==(0|i))return s=0|$e(0|t,0|r,0|(s=0|ft(1,0,0|o)),0|p()),f=0|p(),n[(u=A)>>2]=s,n[u+4>>2]=f,void(n[e>>2]=a+-1)}}function fe(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function ue(A,e){return+f(+(+i[(A|=0)>>3]-+i[(e|=0)>>3]))<17453292519943298e-27?0|(e=+f(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function le(A,e){switch(A=+A,0|(e|=0)){case 1:A=A<0?A+6.283185307179586:A;break;case 2:A=A>0?A+-6.283185307179586:A}return+A}function ce(A,e){var t,r,n,o=0;return o=(n=+h(.5*((r=+i[(e|=0)>>3])-(t=+i[(A|=0)>>3]))))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+B(+ +u(+o),+ +u(+(1-o)))*6371.007180918475}function he(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))}function de(A,e){e|=0;var t=0;return(A|=0)>>>0>15?0|(e=4):(t=0|nt(0|(t=0|De(7,0,A,((0|A)<0)<<31>>31)),0|p(),120,0),A=0|p(),n[e>>2]=2|t,n[e+4>>2]=A,0|(e=0))}function ge(A,e,t){t|=0;var r,n,o,a,s=0,f=0,l=0,g=0,w=0,b=0;return w=+h(.5*((b=+i[(e|=0)>>3])-(o=+i[(A|=0)>>3]))),g=+h(.5*((l=+i[e+8>>3])-(n=+i[A+8>>3]))),r=+c(+o),a=+c(+b),g=2*+B(+ +u(+(g=w*w+g*(a*r*g))),+ +u(+(1-g))),b=+h(.5*((w=+i[t>>3])-b)),l=+h(.5*((s=+i[t+8>>3])-l)),f=+c(+w),l=2*+B(+ +u(+(l=b*b+l*(a*f*l))),+ +u(+(1-l))),w=+h(.5*(o-w)),s=+h(.5*(n-s)),s=2*+B(+ +u(+(s=w*w+s*(r*f*s))),+ +u(+(1-s))),4*+v(+ +u(+ +d(.5*(f=.5*(g+l+s)))*+d(.5*(f-g))*+d(.5*(f-l))*+d(.5*(f-s))))}function we(A,e,t){t|=0;var r,o,a,s=0,f=0;if(a=T,T=T+192|0,o=a,0|(f=0|re(A|=0,e|=0,r=a+168|0)))return T=a,0|f;if(0|ne(A,e,o)&&E(27795,27190,415,27199),(0|(e=0|n[o>>2]))>0){if(s=+ge(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{s+=+ge(o+8+((f=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else s=0;return i[t>>3]=s,T=a,0}function ve(A){A|=0;var e,t,r=0;return(e=0|qe(1,12))||E(27280,27235,49,27293),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&E(27310,27235,61,27333),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function Be(A,e){var t,r;return A|=0,e|=0,(r=0|Xe(24))||E(27347,27235,78,27361),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&E(27376,27235,82,27361),n[A>>2]=r,n[e>>2]=r,0|r)}function be(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],Ke(i)}while(0|t);i=e,e=0|n[e+8>>2],Ke(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||Ke(e),!A)break;r=0}}function Me(A){var e,t,r=0,o=0,a=0,s=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,p=0,C=0,y=0,P=0,I=0,F=0,T=0,L=0,x=0,G=0,S=0;if(0|n[(s=8+(A|=0)|0)>>2])return 1;if(!(a=0|n[A>>2]))return 0;r=a,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0;(t=0|Xe(o<<2))||E(27396,27235,317,27415),(e=0|Xe(o<<5))||E(27437,27235,321,27415),n[A>>2]=0,n[(y=A+4|0)>>2]=0,n[s>>2]=0,o=0,x=0,C=0,w=0;A:for(;;){if(g=0|n[a>>2]){u=0,l=g;do{if(r=l,+f(+((h=+i[l+8>>3])-(c=+i[(s=(d=!(0|(l=0|n[l+16>>2])))?g:l)+8>>3])))>3.141592653589793){S=14;break}u+=(c-h)*(+i[r>>3]+ +i[s>>3])}while(!d);if(14==(0|S)){S=0,u=0,r=g;do{u+=(+i[r>>3]+ +i[(T=0|(T=0|n[(L=r+16|0)>>2])?T:g)>>3])*(((D=+i[T+8>>3])<0?D+6.283185307179586:D)-((p=+i[r+8>>3])<0?p+6.283185307179586:p)),r=0|n[(0|r?L:a)>>2]}while(0|r)}u>0?(n[t+(x<<2)>>2]=a,x=x+1|0,s=C,r=w):S=19}else S=19;if(19==(0|S)){S=0;do{if(!o){if(w){s=y,l=w+8|0,r=a,o=A;break}if(0|n[A>>2]){S=27;break A}s=y,l=A,r=a,o=A;break}if(0|n[(r=o+8|0)>>2]){S=21;break A}if(!(o=0|qe(1,12))){S=23;break A}n[r>>2]=o,s=o+4|0,l=o,r=w}while(0);if(n[l>>2]=a,n[s>>2]=a,l=e+(C<<5)|0,d=0|n[a>>2]){for(i[(g=e+(C<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(C<<5)+24|0)>>3]=17976931348623157e292,i[l>>3]=-17976931348623157e292,i[(v=e+(C<<5)+16|0)>>3]=-17976931348623157e292,m=17976931348623157e292,Q=-17976931348623157e292,s=0,B=d,h=17976931348623157e292,M=17976931348623157e292,k=-17976931348623157e292,c=-17976931348623157e292;u=+i[B>>3],p=+i[B+8>>3],D=+i[((b=!(0|(B=0|n[B+16>>2])))?d:B)+8>>3],u<h&&(i[g>>3]=u,h=u),p<M&&(i[w>>3]=p,M=p),u>k?i[l>>3]=u:u=k,p>c&&(i[v>>3]=p,c=p),m=p>0&p<m?p:m,Q=p<0&p>Q?p:Q,s|=+f(+(p-D))>3.141592653589793,!b;)k=u;s&&(i[v>>3]=Q,i[w>>3]=m)}else n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,n[l+12>>2]=0,n[l+16>>2]=0,n[l+20>>2]=0,n[l+24>>2]=0,n[l+28>>2]=0;s=C+1|0}if(a=0|n[(L=a+8|0)>>2],n[L>>2]=0,!a){S=45;break}C=s,w=r}if(21==(0|S))E(27213,27235,35,27247);else if(23==(0|S))E(27267,27235,37,27247);else if(27==(0|S))E(27310,27235,61,27333);else if(45==(0|S)){A:do{if((0|x)>0){for(L=!(0|s),F=s<<2,T=!(0|A),I=0,r=0;;){if(P=0|n[t+(I<<2)>>2],L)S=73;else{if(!(C=0|Xe(F))){S=50;break}if(!(y=0|Xe(F))){S=52;break}e:do{if(T)o=0;else{for(s=0,o=0,l=A;0|ke(0|n[l>>2],a=e+(s<<5)|0,0|n[P>>2])?(n[C+(o<<2)>>2]=l,n[y+(o<<2)>>2]=a,b=o+1|0):b=o,l=0|n[l+8>>2];)s=s+1|0,o=b;if((0|b)>0)if(a=0|n[C>>2],1==(0|b))o=a;else for(v=0,B=-1,o=a,w=a;;){for(d=0|n[w>>2],a=0,l=0;g=(0|(s=0|n[n[C+(l<<2)>>2]>>2]))==(0|d)?a:a+(1&ke(s,0|n[y+(l<<2)>>2],0|n[d>>2]))|0,(0|(l=l+1|0))!=(0|b);)a=g;if(o=(s=(0|g)>(0|B))?w:o,(0|(a=v+1|0))==(0|b))break e;v=a,B=s?g:B,w=0|n[C+(a<<2)>>2]}else o=0}}while(0);if(Ke(C),Ke(y),o){if(a=0|n[(s=o+4|0)>>2])o=a+8|0;else if(0|n[o>>2]){S=70;break}n[o>>2]=P,n[s>>2]=P}else S=73}if(73==(0|S)){if(S=0,0|(r=0|n[P>>2]))do{y=r,r=0|n[r+16>>2],Ke(y)}while(0|r);Ke(P),r=1}if((0|(I=I+1|0))>=(0|x)){G=r;break A}}50==(0|S)?E(27452,27235,249,27471):52==(0|S)?E(27490,27235,252,27471):70==(0|S)&&E(27310,27235,61,27333)}else G=0}while(0);return Ke(t),Ke(e),0|G}return 0}function ke(A,e,t){A|=0;var r=0,o=0,a=0,s=0,f=0,u=0,l=0,c=0;if(!(0|q(e|=0,t|=0)))return 0;if(e=0|X(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0;if(e){e=0,l=o,t=A;A:for(;;){for(;s=+i[t>>3],o=+i[t+8>>3],f=+i[(c=0|(c=0|n[(t=t+16|0)>>2])?c:A)+8>>3],s>(a=+i[c>>3])?(u=s,s=f):(u=a,a=s,s=o,o=f),(r=r==a|r==u?r+2220446049250313e-31:r)<a|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(((u=(f=s<0?s+6.283185307179586:s)+(r-a)/(u-a)*((s=o<0?o+6.283185307179586:o)-f))<0?u+6.283185307179586:u)>(l=f==l|s==l?l+-2220446049250313e-31:l)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,l=o,t=A;A:for(;;){for(;s=+i[t>>3],o=+i[t+8>>3],f=+i[(c=0|(c=0|n[(t=t+16|0)>>2])?c:A)+8>>3],s>(a=+i[c>>3])?(u=s,s=f):(u=a,a=s,s=o,o=f),(r=r==a|r==u?r+2220446049250313e-31:r)<a|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(s+(r-a)/(u-a)*(o-s)>(l=s==l|o==l?l+-2220446049250313e-31:l)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function me(A,e,t,i,o){t|=0,i|=0,o|=0;var a,s,f,u,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0;if(u=T,T=T+32|0,M=u+16|0,f=u,l=0|st(0|(A|=0),0|(e|=0),52),p(),l&=15,v=0|st(0|t,0|i,52),p(),(0|l)!=(15&v))return T=u,12;if(g=0|st(0|A,0|e,45),p(),g&=127,w=0|st(0|t,0|i,45),p(),g>>>0>121|(w&=127)>>>0>121)return T=u,5;if(v=(0|g)!=(0|w)){if(7==(0|(h=0|Z(g,w))))return T=u,1;7==(0|(d=0|Z(w,g)))?E(27514,27538,161,27548):(B=h,c=d)}else B=0,c=0;a=0|_(g),s=0|_(w),n[M>>2]=0,n[M+4>>2]=0,n[M+8>>2]=0,n[M+12>>2]=0;do{if(B){if(h=(0|(w=0|n[4272+(28*g|0)+(B<<2)>>2]))>0,s)if(h){g=0,d=t,h=i;do{d=0|KA(d,h),h=0|p(),1==(0|(c=0|mA(c)))&&(c=0|mA(1)),g=g+1|0}while((0|g)!=(0|w));w=c,g=d,d=h}else w=c,g=t,d=i;else if(h){g=0,d=t,h=i;do{d=0|qA(d,h),h=0|p(),c=0|mA(c),g=g+1|0}while((0|g)!=(0|w));w=c,g=d,d=h}else w=c,g=t,d=i;if(ee(g,d,M),v||E(27563,27538,191,27548),(h=!!(0|a))&(c=!!(0|s))&&E(27590,27538,192,27548),h){if(7==(0|(c=0|ZA(A,e)))){l=5;break}if(0|r[22e3+(7*c|0)+B|0]){l=1;break}g=d=0|n[21168+(28*c|0)+(B<<2)>>2]}else if(c){if(7==(0|(c=0|ZA(g,d)))){l=5;break}if(0|r[22e3+(7*c|0)+w|0]){l=1;break}g=0,d=0|n[21168+(28*w|0)+(c<<2)>>2]}else g=0,d=0;if((g|d)<0)l=5;else{if((0|d)>0){h=M+4|0,c=0;do{MA(h),c=c+1|0}while((0|c)!=(0|d))}if(n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,BA(f,B),0|l)for(;0|$A(l)?wA(f):vA(f),(0|l)>1;)l=l+-1|0;if((0|g)>0){l=0;do{MA(f),l=l+1|0}while((0|l)!=(0|g))}sA(b=M+4|0,f,b),oA(b),b=51}}else if(ee(t,i,M),!!(0|a)&!!(0|s))if((0|w)!=(0|g)&&E(27621,27538,261,27548),7==(0|(c=0|ZA(A,e)))|7==(0|(l=0|ZA(t,i))))l=5;else if(0|r[22e3+(7*c|0)+l|0])l=1;else if((0|(c=0|n[21168+(28*c|0)+(l<<2)>>2]))>0){h=M+4|0,l=0;do{MA(h),l=l+1|0}while((0|l)!=(0|c));b=51}else b=51;else b=51}while(0);return 51==(0|b)&&(n[o>>2]=n[(l=M+4|0)>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],l=0),T=u,0|l}function Qe(A,e,t,r){t|=0,r|=0;var i,o,a,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0;if(a=T,T=T+48|0,i=a+36|0,u=a+24|0,l=a+12|0,c=a,s=0|st(0|(A|=0),0|(e|=0),52),p(),s&=15,d=0|st(0|A,0|e,45),p(),(d&=127)>>>0>121)return T=a,5;if(o=0|_(d),ft(0|s,0,52),v=134225919|p(),n[(f=r)>>2]=-1,n[f+4>>2]=v,!s)return 7==(0|(s=0|lA(t)))||127==(0|(s=0|N(d,s)))?(T=a,0|(v=1)):(g=0|ft(0|s,0,45),w=0|p(),w|=-1040385&n[(d=r)+4>>2],n[(v=r)>>2]=n[d>>2]|g,n[v+4>>2]=w,T=a,0|(v=0));for(n[i>>2]=n[t>>2],n[i+4>>2]=n[t+4>>2],n[i+8>>2]=n[t+8>>2],t=s;;){if(f=t,t=t+-1|0,n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],0|$A(f)){if(0|(s=0|cA(i))){t=13;break}n[l>>2]=n[i>>2],n[l+4>>2]=n[i+4>>2],n[l+8>>2]=n[i+8>>2],wA(l)}else{if(0|(s=0|hA(i))){t=13;break}n[l>>2]=n[i>>2],n[l+4>>2]=n[i+4>>2],n[l+8>>2]=n[i+8>>2],vA(l)}if(fA(u,l,c),oA(c),b=0|n[(s=r)>>2],s=0|n[s+4>>2],B=0|ft(7,0,0|(M=3*(15-f|0)|0)),s&=~p(),M=0|ft(0|lA(c),0,0|M),s=p()|s,n[(v=r)>>2]=M|b&~B,n[v+4>>2]=s,(0|f)<=1){t=14;break}}A:do{if(13!=(0|t)&&14==(0|t))if((0|n[i>>2])<=1&&(0|n[i+4>>2])<=1&&(0|n[i+8>>2])<=1){c=127==(0|(s=0|N(d,t=0|lA(i))))?0:0|_(s);e:do{if(t){if(o){if(7==(0|(s=0|ZA(A,e)))){s=5;break A}if((0|(f=0|n[21376+(28*s|0)+(t<<2)>>2]))>0){s=t,t=0;do{s=0|kA(s),t=t+1|0}while((0|t)!=(0|f))}else s=t;if(1==(0|s)){s=9;break A}127==(0|(t=0|N(d,s)))&&E(27648,27538,411,27678),0|_(t)?E(27693,27538,412,27678):(w=t,g=f,h=s)}else w=s,g=0,h=t;if((0|(l=0|n[4272+(28*d|0)+(h<<2)>>2]))<=-1&&E(27724,27538,419,27678),!c){if((0|g)<0){s=5;break A}if(0|g){s=0,t=0|n[(f=r)>>2],f=0|n[f+4>>2];do{t=0|XA(t,f),f=0|p(),n[(M=r)>>2]=t,n[M+4>>2]=f,s=s+1|0}while((0|s)<(0|g))}if((0|l)<=0){s=w,t=58;break}for(s=0,t=0|n[(f=r)>>2],f=0|n[f+4>>2];;)if(t=0|XA(t,f),f=0|p(),n[(M=r)>>2]=t,n[M+4>>2]=f,(0|(s=s+1|0))==(0|l)){s=w,t=58;break e}}if(7==(0|(u=0|Z(w,d)))&&E(27514,27538,428,27678),t=0|n[(s=r)>>2],s=0|n[s+4>>2],(0|l)>0){f=0;do{t=0|XA(t,s),s=0|p(),n[(M=r)>>2]=t,n[M+4>>2]=s,f=f+1|0}while((0|f)!=(0|l))}if(7==(0|(s=0|ZA(t,s)))&&E(27795,27538,440,27678),t=0|W(w),(0|(t=0|n[(t?21792:21584)+(28*u|0)+(s<<2)>>2]))<0&&E(27795,27538,454,27678),t){s=0,f=0|n[(u=r)>>2],u=0|n[u+4>>2];do{f=0|JA(f,u),u=0|p(),n[(M=r)>>2]=f,n[M+4>>2]=u,s=s+1|0}while((0|s)<(0|t));s=w,t=58}else s=w,t=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(t=0|ZA(A,e)))|7==(0|(f=0|ZA(0|n[(f=r)>>2],0|n[f+4>>2])))){s=5;break A}if((0|(f=0|n[21376+(28*t|0)+(f<<2)>>2]))<0){s=5;break A}if(f){t=0,u=0|n[(l=r)>>2],l=0|n[l+4>>2];do{u=0|XA(u,l),l=0|p(),n[(M=r)>>2]=u,n[M+4>>2]=l,t=t+1|0}while((0|t)<(0|f));t=58}else t=59}else t=58}while(0);if(58==(0|t)&&c&&(t=59),59==(0|t)&&1==(0|ZA(0|n[(M=r)>>2],0|n[M+4>>2]))){s=9;break}B=0|n[(M=r)>>2],M=-1040385&n[M+4>>2],b=0|ft(0|s,0,45),M|=p(),n[(s=r)>>2]=B|b,n[s+4>>2]=M,s=0}else s=1}while(0);return T=a,0|s}function De(A,e,t,r){A|=0,e|=0;var n=0,i=0,o=0;if(!(0|(t|=0))&!(0|(r|=0)))return i=1,D(0|(n=0)),0|i;i=A,n=e,A=1,e=0;do{A=0|nt(0|((o=!0&!(1&t))?1:i),0|(o?0:n),0|A,0|e),e=0|p(),t=0|at(0|t,0|r,1),r=0|p(),i=0|nt(0|i,0|n,0|i,0|n),n=0|p()}while(!(!(0|t)&!(0|r)));return D(0|e),0|A}function pe(A,e,t,r){t|=0,r|=0;var o,a=0,s=0,f=0,u=0,l=0,h=0;o=T,T=T+16|0,s=o,f=0|st(0|(A|=0),0|(e|=0),52),p(),f&=15;do{if(f){if(!(a=0|re(A,e,s))){u=1/+c(+(l=+i[s>>3])),i[t>>3]=l+(h=+i[25968+(f<<3)>>3]),i[t+8>>3]=l-h,i[t+16>>3]=(u*=h)+(l=+i[s+8>>3]),i[t+24>>3]=l-u;break}return T=o,0|a}if(a=0|st(0|A,0|e,45),p(),(a&=127)>>>0>121)return T=o,5;n[t>>2]=n[(s=22064+(a<<5)|0)>>2],n[t+4>>2]=n[s+4>>2],n[t+8>>2]=n[s+8>>2],n[t+12>>2]=n[s+12>>2],n[t+16>>2]=n[s+16>>2],n[t+20>>2]=n[s+20>>2],n[t+24>>2]=n[s+24>>2],n[t+28>>2]=n[s+28>>2];break}while(0);return function(A,e){var t,r,n,o,a,s,f,u=0,l=0;u=(o=+i[(n=16+(A|=0)|0)>>3])-(r=+i[(t=A+24|0)>>3]),l=+i[A>>3],u=.5*((u=o<r?u+6.283185307179586:u)*(e=+e)-u),i[A>>3]=(l+=e=.5*((f=l-(s=+i[(a=A+8|0)>>3]))*e-f))>1.5707963267948966?1.5707963267948966:l,i[a>>3]=(e=s-e)<-1.5707963267948966?-1.5707963267948966:e,i[n>>3]=(e=(e=o+u)>3.141592653589793?e+-6.283185307179586:e)<-3.141592653589793?e+6.283185307179586:e,i[t>>3]=(e=(e=r-u)>3.141592653589793?e+-6.283185307179586:e)<-3.141592653589793?e+6.283185307179586:e}(t,r?1.4:1.1),(0|n[(r=26096+(f<<3)|0)>>2])==(0|A)&&(0|n[r+4>>2])==(0|e)&&(i[t>>3]=1.5707963267948966),(0|n[(f=26224+(f<<3)|0)>>2])==(0|A)&&(0|n[f+4>>2])==(0|e)&&(i[t+8>>3]=-1.5707963267948966),1.5707963267948966!=+i[t>>3]&&-1.5707963267948966!=+i[t+8>>3]?(T=o,0|(f=0)):(i[t+16>>3]=3.141592653589793,i[t+24>>3]=-3.141592653589793,T=o,0|(f=0))}function Ee(A,e,t,i){A|=0,e|=0,t|=0,i|=0;var o,a,s,f=0,u=0,l=0,c=0;s=T,T=T+48|0,o=s+40|0,a=s,_A(u=s+32|0,0,0,0),l=0|n[u>>2],u=0|n[u+4>>2];do{if(t>>>0<=15){if(0|(f=0|Fe(i))){n[(i=a)>>2]=0,n[i+4>>2]=0,n[a+8>>2]=f,n[a+12>>2]=-1,l=a+29|0,n[(i=a+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[0|l]=0|r[0|o],r[l+1|0]=0|r[o+1|0],r[l+2|0]=0|r[o+2|0];break}if(f=0|qe(1+(0|n[e+8>>2])|0,32)){Te(e,f),n[(c=a)>>2]=l,n[c+4>>2]=u,n[a+8>>2]=0,n[a+12>>2]=t,n[a+16>>2]=i,n[a+20>>2]=e,n[a+24>>2]=f,r[a+28|0]=0,r[0|(l=a+29|0)]=0|r[0|o],r[l+1|0]=0|r[o+1|0],r[l+2|0]=0|r[o+2|0];break}n[(i=a)>>2]=0,n[i+4>>2]=0,n[a+8>>2]=13,n[a+12>>2]=-1,l=a+29|0,n[(i=a+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[0|l]=0|r[0|o],r[l+1|0]=0|r[o+1|0],r[l+2|0]=0|r[o+2|0];break}n[(l=a)>>2]=0,n[l+4>>2]=0,n[a+8>>2]=4,n[a+12>>2]=-1,c=a+29|0,n[(l=a+16|0)>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,r[l+12|0]=0,r[0|c]=0|r[0|o],r[c+1|0]=0|r[o+1|0],r[c+2|0]=0|r[o+2|0]}while(0);Ce(a),n[A>>2]=n[a>>2],n[A+4>>2]=n[a+4>>2],n[A+8>>2]=n[a+8>>2],n[A+12>>2]=n[a+12>>2],n[A+16>>2]=n[a+16>>2],n[A+20>>2]=n[a+20>>2],n[A+24>>2]=n[a+24>>2],n[A+28>>2]=n[a+28>>2],T=s}function Ce(A){var e,t,i,o,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0;if(o=T,T=T+336|0,e=o+168|0,t=o,!(0|(s=0|n[(f=A|=0)>>2]))&!(0|(f=0|n[f+4>>2])))T=o;else{if(0|r[0|(a=A+28|0)]?(s=0|ye(s,f),f=0|p()):r[0|a]=1,!(0|n[n[(i=A+20|0)>>2]>>2]))return 0|(s=0|n[(a=A+24|0)>>2])&&Ke(s),n[(m=A)>>2]=0,n[m+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[A+16>>2]=0,n[a>>2]=0,void(T=o);u=15&(a=0|n[(m=A+16|0)>>2]);A:do{if(!(0|s)&!(0|f))k=A+24|0;else{b=A+12|0,v=3==(0|u),w=255&a,d=3==(1|u),B=A+24|0,g=(u+-1|0)>>>0<3,c=3==(2|u),h=t+8|0;e:for(;;){if(l=0|st(0|s,0|f,52),p(),(0|(l&=15))==(0|n[b>>2])){switch(15&w){case 0:case 2:case 3:if(0|(u=0|re(s,f,e))){M=15;break e}if(0|Le(0|n[i>>2],0|n[B>>2],e)){M=19;break e}}if(d&&(n[e>>2]=n[(u=0|n[4+(0|n[i>>2])>>2])>>2],n[e+4>>2]=n[u+4>>2],n[e+8>>2]=n[u+8>>2],n[e+12>>2]=n[u+12>>2],0|q(26832,e))){if(0|Ae(0|n[4+(0|n[i>>2])>>2],l,t)){M=25;break}if((0|n[(u=t)>>2])==(0|s)&&(0|n[u+4>>2])==(0|f)){M=29;break}}if(g){if(0|(u=0|ne(s,f,e))){M=32;break}if(0|pe(s,f,t,0)){M=36;break}if(c&&0|xe(0|n[i>>2],0|n[B>>2],e,t)){M=42;break}if(d&&0|Se(0|n[i>>2],0|n[B>>2],e,t)){M=42;break}}if(v){if(a=0|pe(s,f,e,1),u=0|n[B>>2],0|a){M=45;break}if(0|$(u,e)){if(eA(t,e),0|AA(e,0|n[B>>2])){M=53;break}if(0|Le(0|n[i>>2],0|n[B>>2],h)){M=53;break}if(0|Se(0|n[i>>2],0|n[B>>2],t,e)){M=53;break}}}}do{if((0|l)<(0|n[b>>2])){if(a=0|pe(s,f,e,1),u=0|n[B>>2],0|a){M=58;break e}if(!(0|$(u,e))){M=73;break}if(0|AA(0|n[B>>2],e)&&(eA(t,e),0|xe(0|n[i>>2],0|n[B>>2],t,e))){M=65;break e}if(0|(s=0|NA(s,f,l+1|0,t))){M=67;break e}s=0|n[(f=t)>>2],f=0|n[f+4>>2]}else M=73}while(0);if(73==(0|M)&&(M=0,s=0|ye(s,f),f=0|p()),!(0|s)&!(0|f)){k=B;break A}}switch(0|M){case 15:0|(a=0|n[B>>2])&&Ke(a),n[(M=A)>>2]=0,n[M+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=u,M=20;break;case 19:n[A>>2]=s,n[A+4>>2]=f,M=20;break;case 25:E(27795,27761,470,27772);break;case 29:case 42:return n[A>>2]=s,n[A+4>>2]=f,void(T=o);case 32:return 0|(a=0|n[B>>2])&&Ke(a),n[(k=A)>>2]=0,n[k+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=u,void(T=o);case 36:E(27795,27761,493,27772);break;case 45:0|u&&Ke(u),n[(M=A)>>2]=0,n[M+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=a,M=55;break;case 53:n[A>>2]=s,n[A+4>>2]=f,M=55;break;case 58:0|u&&Ke(u),n[(M=A)>>2]=0,n[M+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=a,M=71;break;case 65:n[A>>2]=s,n[A+4>>2]=f,M=71;break;case 67:return 0|(a=0|n[B>>2])&&Ke(a),n[(k=A)>>2]=0,n[k+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=s,void(T=o)}if(20==(0|M))return void(T=o);if(55==(0|M))return void(T=o);if(71==(0|M))return void(T=o)}}while(0);0|(a=0|n[k>>2])&&Ke(a),n[(M=A)>>2]=0,n[M+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[m>>2]=0,n[k>>2]=0,T=o}}function ye(A,e){var t,r=0,i=0,o=0,a=0,s=0,f=0,u=0,l=0,c=0;t=T,T=T+16|0,c=t,i=0|st(0|(A|=0),0|(e|=0),52),p(),i&=15,r=0|st(0|A,0|e,45),p();do{if(i){for(;r=0|ft(i+4095|0,0,52),o=p()|-15728641&e,r=r|A|(s=0|ft(7,0,0|(a=3*(15-i|0)|0))),o|=f=0|p(),u=0|st(0|A,0|e,0|a),p(),i=i+-1|0,!((u&=7)>>>0<6);){if(!i){l=4;break}e=o,A=r}if(4==(0|l)){r=0|st(0|r,0|o,45),p();break}return c=0|ft(((c=!(0|u)&!!(0|VA(r,o)))?2:1)+u|0,0,0|a),l=p()|e&~f,c|=A&~s,D(0|l),T=t,0|c}}while(0);return(r&=127)>>>0>120?(c=0,D(0|(l=0)),T=t,0|c):(_A(c,0,r+1|0,0),l=0|n[c+4>>2],c=0|n[c>>2],D(0|l),T=t,0|c)}function Pe(A,e,t){A|=0;var r,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0;if(!(0|q(e|=0,t|=0)))return 0;if(e=0|X(e),o=+i[t>>3],a=e&(a=+i[t+8>>3])<0?a+6.283185307179586:a,(0|(d=0|n[A>>2]))<=0)return 0;if(r=0|n[A+4>>2],e){e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;a=+i[r+(c<<4)+8>>3],u=+i[r+((A=(t+2|0)%(0|d)|0)<<4)+8>>3],(f=+i[r+(c<<4)>>3])>(s=+i[r+(A<<4)>>3])?(l=f,f=u):(l=s,s=f,f=a,a=u),(o=o==s|o==l?o+2220446049250313e-31:o)<s|o>l;){if((0|(t=c+1|0))>=(0|d)){t=22;break A}A=c,c=t,t=A}if(((l=(u=f<0?f+6.283185307179586:f)+(o-s)/(l-s)*((f=a<0?a+6.283185307179586:a)-u))<0?l+6.283185307179586:l)>(h=u==h|f==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|d)){t=22;break}t=c}if(22==(0|t))return 0|e}else{e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;a=+i[r+(c<<4)+8>>3],u=+i[r+((A=(t+2|0)%(0|d)|0)<<4)+8>>3],(f=+i[r+(c<<4)>>3])>(s=+i[r+(A<<4)>>3])?(l=f,f=u):(l=s,s=f,f=a,a=u),(o=o==s|o==l?o+2220446049250313e-31:o)<s|o>l;){if((0|(t=c+1|0))>=(0|d)){t=22;break A}A=c,c=t,t=A}if(f+(o-s)/(l-s)*(a-f)>(h=f==h|a==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|d)){t=22;break}t=c}if(22==(0|t))return 0|e}return 0}function Ie(A,e){e|=0;var t,r,o,a,s,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(s=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],v=17976931348623157e292,B=-17976931348623157e292,b=0,A=-1,h=17976931348623157e292,d=17976931348623157e292,w=-17976931348623157e292,l=-17976931348623157e292,M=0;g=+i[t+(M<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|r)?0:A)<<4)+8>>3],(u=+i[t+(M<<4)>>3])<h&&(i[o>>3]=u,h=u),g<d&&(i[a>>3]=g,d=g),u>w?i[e>>3]=u:u=w,g>l&&(i[s>>3]=g,l=g),v=g>0&g<v?g:v,B=g<0&g>B?g:B,b|=+f(+(g-c))>3.141592653589793,(0|(A=M+1|0))!=(0|r);)k=M,w=u,M=A,A=k;b&&(i[s>>3]=B,i[a>>3]=v)}}function Fe(A){return 0|((A|=0)>>>0<4?0:15)}function Te(A,e){e|=0;var t,r=0,o=0,a=0,s=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,p=0,E=0;if(B=0|n[(A|=0)>>2]){if(i[(b=e+8|0)>>3]=17976931348623157e292,i[(M=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(k=e+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|n[A+4>>2],w=17976931348623157e292,v=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,m=0;d=+i[a+(m<<4)+8>>3],l=+i[a+(((0|(p=r+2|0))==(0|B)?0:p)<<4)+8>>3],(s=+i[a+(m<<4)>>3])<c&&(i[b>>3]=s,c=s),d<h&&(i[M>>3]=d,h=d),s>g?i[e>>3]=s:s=g,d>u&&(i[k>>3]=d,u=d),w=d>0&d<w?d:w,v=d<0&d>v?d:v,o|=+f(+(d-l))>3.141592653589793,(0|(r=m+1|0))!=(0|B);)p=m,g=s,m=r,r=p;o&&(i[k>>3]=v,i[M>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(p=A+8|0)>>2]))<=0)){t=A+12|0,D=0;do{if(o=D,M=e+((D=D+1|0)<<5)|0,k=0|n[(a=0|n[t>>2])+(o<<3)>>2]){if(i[(m=e+(D<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(D<<5)+24|0)>>3]=17976931348623157e292,i[M>>3]=-17976931348623157e292,i[(Q=e+(D<<5)+16|0)>>3]=-17976931348623157e292,(0|k)>0){for(B=0|n[a+(o<<3)+4>>2],w=17976931348623157e292,v=-17976931348623157e292,a=0,o=-1,b=0,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,u=-17976931348623157e292;g=+i[B+(b<<4)+8>>3],l=+i[B+(((0|(o=o+2|0))==(0|k)?0:o)<<4)+8>>3],(s=+i[B+(b<<4)>>3])<c&&(i[m>>3]=s,c=s),g<h&&(i[A>>3]=g,h=g),s>d?i[M>>3]=s:s=d,g>u&&(i[Q>>3]=g,u=g),w=g>0&g<w?g:w,v=g<0&g>v?g:v,a|=+f(+(g-l))>3.141592653589793,(0|(o=b+1|0))!=(0|k);)E=b,b=o,d=s,o=E;a&&(i[Q>>3]=v,i[A>>3]=w)}}else n[M>>2]=0,n[M+4>>2]=0,n[M+8>>2]=0,n[M+12>>2]=0,n[M+16>>2]=0,n[M+20>>2]=0,n[M+24>>2]=0,n[M+28>>2]=0,r=0|n[p>>2]}while((0|D)<(0|r))}}function Le(A,e,t){var r=0,i=0;if(!(0|Pe(A|=0,e|=0,t|=0)))return 0;if((0|n[(i=A+8|0)>>2])<=0)return 1;for(r=A+12|0,A=0;;){if(0|Pe((0|n[r>>2])+(A<<3)|0,e+((A=A+1|0)<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function xe(A,e,t,r){r|=0;var i,o,a=0,s=0,f=0,u=0;if(o=T,T=T+16|0,i=o,!(0|Pe(A|=0,e|=0,f=8+(t|=0)|0)))return T=o,0;u=A+8|0;A:do{if((0|n[u>>2])>0){for(s=A+12|0,a=0;;){if(0|Pe((0|n[s>>2])+(a<<3)|0,e+((a=a+1|0)<<5)|0,f)){a=0;break}if((0|a)>=(0|n[u>>2]))break A}return T=o,0|a}}while(0);if(0|Ge(A,e,t,r))return T=o,0;n[i>>2]=n[t>>2],n[i+4>>2]=f,a=0|n[u>>2];A:do{if((0|a)>0)for(A=A+12|0,f=0,s=a;;){if((0|n[(a=0|n[A>>2])+(f<<3)>>2])>0){if(0|Pe(i,r,0|n[a+(f<<3)+4>>2])){a=0;break A}if(0|Ge((0|n[A>>2])+(f<<3)|0,e+((a=f+1|0)<<5)|0,t,r)){a=0;break A}s=0|n[u>>2]}else a=f+1|0;if(!((0|a)<(0|s))){a=1;break}f=a}else a=1}while(0);return T=o,0|a}function Ge(A,e,t,r){A|=0,t|=0;var o,a,s,f,u,l,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,p=0,E=0;if(l=T,T=T+176|0,f=l+172|0,c=l+168|0,u=l,!(0|$(e|=0,r|=0)))return T=l,0;if(function(A,e,t,r){var o,a,s,f,u;r|=0,o=(f=+i[16+(e|=0)>>3])<(s=+i[e+24>>3]),e=(u=+i[24+(A|=0)>>3])-f<s-(a=+i[A+16>>3]),n[(t|=0)>>2]=(A=a<u)?o|e?1:2:0,n[r>>2]=o?A?1:e?2:1:0}(e,r,f,c),dt(0|u,0|t,168),(0|n[t>>2])>0){e=0;do{m=+le(+i[(p=u+8+(e<<4)+8|0)>>3],0|n[c>>2]),i[p>>3]=m,e=e+1|0}while((0|e)<(0|n[t>>2]))}a=+i[r>>3],s=+i[r+8>>3],m=+le(+i[r+16>>3],0|n[c>>2]),o=+le(+i[r+24>>3],0|n[c>>2]);A:do{if((0|n[A>>2])>0){if(r=A+4|0,(0|(c=0|n[u>>2]))<=0)for(e=0;;)if((0|(e=e+1|0))>=(0|n[A>>2])){e=0;break A}for(t=0;;){if(M=+i[(e=0|n[r>>2])+(t<<4)>>3],k=+le(+i[e+(t<<4)+8>>3],0|n[f>>2]),h=+i[(e=0|n[r>>2])+((p=(0|(t=t+1|0))%(0|n[A>>2])|0)<<4)>>3],d=+le(+i[e+(p<<4)+8>>3],0|n[f>>2]),!(M>=a)|!(h>=a)&&!(M<=s)|!(h<=s)&&!(k<=o)|!(d<=o)&&!(k>=m)|!(d>=m)){b=h-M,v=d-k,e=0;do{if(E=e,!(0==(B=b*(d=+i[u+8+((p=(0|(e=e+1|0))==(0|c)?0:e)<<4)+8>>3]-(h=+i[u+8+(E<<4)+8>>3]))-v*(w=+i[u+8+(p<<4)>>3]-(g=+i[u+8+(E<<4)>>3])))||(Q=k-h,D=M-g,w=(Q*w-d*D)/B,w<0|w>1))&&(B=(b*Q-v*D)/B)>=0&B<=1){e=1;break A}}while((0|e)<(0|c))}if((0|t)>=(0|n[A>>2])){e=0;break}}}else e=0}while(0);return T=l,0|e}function Se(A,e,t,r){var i=0,o=0;if(0|Ge(A|=0,e|=0,t|=0,r|=0))return 1;if((0|n[(o=A+8|0)>>2])<=0)return 0;for(i=A+12|0,A=0;;){if(0|Ge((0|n[i>>2])+(A<<3)|0,e+((A=A+1|0)<<5)|0,t,r)){A=1,i=6;break}if((0|A)>=(0|n[o>>2])){A=0,i=6;break}}return 6==(0|i)?0|A:0}function Ue(A,e,t,r,n){var o,a,s,f,u,l,c,h=0;i[(n|=0)>>3]=(f=+i[(A|=0)>>3])+(s=+i[(e|=0)>>3]-f)*(h=((h=+i[(r|=0)>>3]-(l=+i[(t|=0)>>3]))*((a=+i[A+8>>3])-(c=+i[t+8>>3]))-(f-l)*(u=+i[r+8>>3]-c))/(s*u-(o=+i[e+8>>3]-a)*h)),i[n+8>>3]=a+o*h}function ze(A,e){return+f(+(+i[(A|=0)>>3]-+i[(e|=0)>>3]))<1.1920928955078125e-7?0|(e=+f(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function Re(A,e){var t,r,n;return+((n=+i[(A|=0)>>3]-+i[(e|=0)>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function Oe(A,e,t){t|=0;var r,i,o,a,s=0,f=0,u=0;if(a=T,T=T+32|0,u=a,0|(s=0|te(A|=0,e|=0,i=a+16|0)))return T=a,0|s;r=0|OA(A,e),o=0|ZA(A,e),function(A,e){n[(e|=0)>>2]=n[(A=7696+(28*(A|=0)|0)|0)>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(r,u),s=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11120+(216*e|0)>>2])!=(0|A))if((0|n[11120+(216*e|0)+8>>2])!=(0|A))if((0|n[11120+(216*e|0)+16>>2])!=(0|A))if((0|n[11120+(216*e|0)+24>>2])!=(0|A))if((0|n[11120+(216*e|0)+32>>2])!=(0|A))if((0|n[11120+(216*e|0)+40>>2])!=(0|A))if((0|n[11120+(216*e|0)+48>>2])!=(0|A))if((0|n[11120+(216*e|0)+56>>2])!=(0|A))if((0|n[11120+(216*e|0)+64>>2])!=(0|A))if((0|n[11120+(216*e|0)+72>>2])!=(0|A))if((0|n[11120+(216*e|0)+80>>2])!=(0|A))if((0|n[11120+(216*e|0)+88>>2])!=(0|A))if((0|n[11120+(216*e|0)+96>>2])!=(0|A))if((0|n[11120+(216*e|0)+104>>2])!=(0|A))if((0|n[11120+(216*e|0)+112>>2])!=(0|A))if((0|n[11120+(216*e|0)+120>>2])!=(0|A))if((0|n[11120+(216*e|0)+128>>2])!=(0|A)){if((0|n[11120+(216*e|0)+136>>2])!=(0|A)){if((0|n[11120+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11120+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11120+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11120+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11120+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11120+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11120+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11120+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11120+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11120+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(r,0|n[i>>2]);A:do{if(0|_(r)){switch(0|r){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:s=1;break A}if(f=0|n[26416+(24*A|0)+8>>2],e=0|n[26416+(24*A|0)+16>>2],(0|(A=0|n[i>>2]))!=(0|n[u>>2])&&(u=0|W(r))|(0|(A=0|n[i>>2]))==(0|e)&&(s=(s+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){s=(s+5|0)%6|0,f=22;break}5==(0|o)&(0|A)==(0|f)?(s=(s+1|0)%6|0,f=22):f=22}else f=22}while(0);return 22==(0|f)&&(n[t>>2]=s,s=0),T=a,0|s}function Ye(A,e,t,r){t|=0,r|=0;var i,o,a,s,f,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0;if(f=T,T=T+32|0,M=f+24|0,s=f+20|0,a=f+8|0,o=f+16|0,i=f,d=(d=!(0|VA(A|=0,e|=0)))?6:5,w=0|st(0|A,0|e,52),p(),d>>>0<=t>>>0)return T=f,2;!(v=!(0|(w&=15)))&&!((B=0|ft(7,0,3*(15^w)|0))&A)&!(p()&e)?u=t:l=4;A:do{if(4==(0|l)){if((0|((u=!!(0|VA(A,e)))?4:5))<(0|t))return T=f,1;if(0|Oe(A,e,M))return T=f,1;if(l=(0|n[M>>2])+t|0,7==(0|(B=0|n[(u=u?26704+((0|l)%5<<2)|0:26736+((0|l)%6<<2)|0)>>2])))return T=f,1;n[s>>2]=0,u=0|U(A,e,B,s,a);do{if(!u){if(g=0|n[(h=a)>>2],l=(c=(h=0|n[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&g>>>0<A>>>0)?g:A,c=c?h:e,!v&&!(g&(v=0|ft(7,0,3*(15^w)|0)))&!(h&p()))u=t;else{if(h=(t+-1+d|0)%(0|d)|0,u=0|VA(A,e),(0|h)<0&&E(27795,27797,246,27806),(0|((d=!!(0|u))?4:5))<(0|h)&&E(27795,27797,246,27806),0|Oe(A,e,M)&&E(27795,27797,246,27806),u=(0|n[M>>2])+h|0,7==(0|(h=0|n[(u=d?26704+((0|u)%5<<2)|0:26736+((0|u)%6<<2)|0)>>2]))&&E(27795,27797,246,27806),n[o>>2]=0,0|(u=0|U(A,e,h,o,i)))break;d=0|n[(g=i)>>2],g=0|n[g+4>>2];do{if(g>>>0<c>>>0|(0|g)==(0|c)&d>>>0<l>>>0){if(l=0|VA(d,g)?0|O(d,g,A,e):0|n[26800+(((0|n[o>>2])+(0|n[26768+(h<<2)>>2])|0)%6<<2)>>2],u=0|VA(d,g),(l+-1|0)>>>0>5){u=-1,l=d,c=g;break}if(1==(0|l)&(u=!!(0|u))){u=-1,l=d,c=g;break}do{if(!(0|Oe(d,g,M))){if(u){u=(5+(0|n[26352+(l<<2)>>2])-(0|n[M>>2])|0)%5|0;break}u=(6+(0|n[26384+(l<<2)>>2])-(0|n[M>>2])|0)%6|0;break}u=-1}while(0);l=d,c=g}else u=t}while(0);g=0|n[(h=a)>>2],h=0|n[h+4>>2]}if((0|l)==(0|g)&(0|c)==(0|h)){if(A=(d=!!(0|VA(g,h)))?0|O(g,h,A,e):0|n[26800+(((0|n[s>>2])+(0|n[26768+(B<<2)>>2])|0)%6<<2)>>2],u=0|VA(g,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(b=!!(0|u))))do{if(!(0|Oe(g,h,M))){if(b){u=(5+(0|n[26352+(A<<2)>>2])-(0|n[M>>2])|0)%5|0;break}u=(6+(0|n[26384+(A<<2)>>2])-(0|n[M>>2])|0)%6|0;break}u=-1}while(0);else u=-1;u=6==(0|(u=u+1|0))|d&5==(0|u)?0:u}e=c,A=l;break A}}while(0);return T=f,0|u}}while(0);return b=0|ft(0|u,0,56),M=p()|-2130706433&e|536870912,n[r>>2]=b|A,n[r+4>>2]=M,T=f,0}function _e(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|qe(e,4),n[A>>2]=r,r||E(27819,27842,40,27856)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function We(A){var e,t,r,o=0,a=0,s=0,u=0;e=4+(A|=0)|0,t=A+12|0,r=A+8|0;A:for(;;){for(a=0|n[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(u=0|n[(s=0|n[A>>2])+(o<<2)>>2])break;o=o+1|0}o=s+(~~(+f(+ +l(10,+ +(15-(0|n[t>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|a))>>>0<<2)|0,a=0|n[o>>2];e:do{if(0|a){if(s=u+32|0,(0|a)==(0|u))n[o>>2]=n[s>>2];else{if(!(o=0|n[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|n[(a=o+32|0)>>2]))break e;n[a>>2]=n[s>>2]}Ke(u),n[r>>2]=(0|n[r>>2])-1}}while(0)}Ke(0|n[A>>2])}function He(A){var e,t=0,r=0;for(e=0|n[4+(A|=0)>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function Ve(A,e){e|=0;var t=0,r=0,o=0,a=0;if(t=~~(+f(+ +l(10,+ +(15-(0|n[12+(A|=0)>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(r=0|n[(t=(0|n[A>>2])+(t<<2)|0)>>2]))return 1;a=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 1;for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[a>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[a>>2]}while(0);return Ke(e),n[(a=A+8|0)>>2]=(0|n[a>>2])-1,0}function je(A,e,t){A|=0,e|=0,t|=0;var r,o=0,a=0,s=0;(r=0|Xe(40))||E(27872,27842,98,27885),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(a=r+16|0)>>2]=n[t>>2],n[a+4>>2]=n[t+4>>2],n[a+8>>2]=n[t+8>>2],n[a+12>>2]=n[t+12>>2],n[r+32>>2]=0,a=~~(+f(+ +l(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,o=0|n[(a=(0|n[A>>2])+(a<<2)|0)>>2];do{if(o){for(;!(0|ue(o,e)&&0|ue(o+16|0,t));)if(!(0|n[(o=0|(a=0|n[o+32>>2])?a:o)+32>>2])){s=10;break}if(10==(0|s)){n[o+32>>2]=r;break}return Ke(r),0|o}n[a>>2]=r}while(0);return n[(s=A+8|0)>>2]=1+(0|n[s>>2]),0|r}function Ne(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+f(+ +l(10,+ +(15-(0|n[12+(A|=0)>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0;if(!t){for(A=o;;){if(0|ue(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|ue(A,e)&&0|ue(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function Ze(A,e){e|=0;var t=0;if(t=~~(+f(+ +l(10,+ +(15-(0|n[12+(A|=0)>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0;for(;;){if(0|ue(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function Je(A){return 0|+wt(+(A=+A))}function Xe(A){A|=0;var e,t=0,r=0,i=0,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0;e=T,T=T+16|0,d=e;do{if(A>>>0<245){if(3&(r=(h=0|n[6977])>>>(A=(l=A>>>0<11?16:A+11&-8)>>>3)))return(0|(a=0|n[(o=8+(i=0|n[(r=8+(A=27948+((t=(1&r^1)+A|0)<<1<<2)|0)|0)>>2])|0)>>2]))==(0|A)?n[6977]=h&~(1<<t):(n[a+12>>2]=A,n[r>>2]=a),n[i+4>>2]=3|(m=t<<3),n[(m=i+m+4|0)>>2]=1|n[m>>2],T=e,0|o;if(l>>>0>(c=0|n[6979])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,(0|(r=0|n[(f=8+(a=0|n[(A=8+(t=27948+((i=((r=(t>>>=f=t>>>12&16)>>>5&8)|f|(a=(t>>>=r)>>>2&4)|(A=(t>>>=a)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)|0)>>2])|0)>>2]))==(0|t)?n[6977]=A=h&~(1<<i):(n[r+12>>2]=t,n[A>>2]=r,A=h),s=(m=i<<3)-l|0,n[a+4>>2]=3|l,n[4+(o=a+l|0)>>2]=1|s,n[a+m>>2]=s,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=s,n[6982]=o,T=e,0|f;if(a=0|n[6978]){for(r=(a&0-a)-1|0,r=u=0|n[28212+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(s=(r>>>=i)>>>2&4)|(f=(r>>>=s)>>>1&2)|(u=(r>>>=f)>>>1&1))+(r>>>u)<<2)>>2],f=u,u=(-8&n[u+4>>2])-l|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,f=(o=(s=(-8&n[A+4>>2])-l|0)>>>0<u>>>0)?A:f,u=o?s:u;if((s=f+l|0)>>>0>f>>>0){o=0|n[f+24>>2],t=0|n[f+12>>2];do{if((0|t)==(0|f)){if(!(t=0|n[(A=f+20|0)>>2])&&!(t=0|n[(A=f+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else n[12+(r=0|n[f+8>>2])>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if((0|f)==(0|n[(A=28212+((t=0|n[f+28>>2])<<2)|0)>>2])){if(n[A>>2]=r,!r){n[6978]=a&~(1<<t);break}}else if(n[((0|n[(m=o+16|0)>>2])==(0|f)?m:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[f+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[f+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return u>>>0<16?(n[f+4>>2]=3|(m=u+l|0),n[(m=f+m+4|0)>>2]=1|n[m>>2]):(n[f+4>>2]=3|l,n[s+4>>2]=1|u,n[s+u>>2]=u,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[6977]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=u,n[6982]=s),T=e,0|f+8}h=l}else h=l}else h=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),i=0|n[6978]){o=0-l|0,u=(A>>>=8)?l>>>0>16777215?31:l>>>(7+(u=14-((f=(520192+(v=A<<(h=(A+1048320|0)>>>16&8))|0)>>>16&4)|h|(u=(245760+(v<<=f)|0)>>>16&2))+(v<<u>>>15)|0)|0)&1|u<<1:0,r=0|n[28212+(u<<2)>>2];A:do{if(r)for(A=0,f=l<<(31==(0|u)?0:25-(u>>>1)),a=0;;){if((s=(-8&n[r+4>>2])-l|0)>>>0<o>>>0){if(!s){A=r,o=0,v=65;break A}A=r,o=s}if(a=!(0|(v=0|n[r+20>>2]))|(0|v)==(0|(r=0|n[r+16+(f>>>31<<2)>>2]))?a:v,!r){r=a,v=61;break}f<<=1}else r=0,A=0,v=61}while(0);if(61==(0|v)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<u)|0-A)&i)){h=l;break}h=(A&0-A)-1|0,A=0,r=0|n[28212+(((a=(h>>>=s=h>>>12&16)>>>5&8)|s|(f=(h>>>=a)>>>2&4)|(u=(h>>>=f)>>>1&2)|(r=(h>>>=u)>>>1&1))+(h>>>r)<<2)>>2]}r?v=65:(f=A,s=o)}if(65==(0|v))for(a=r;;){if(o=(r=(h=(-8&n[a+4>>2])-l|0)>>>0<o>>>0)?h:o,A=r?a:A,(r=0|n[a+16>>2])||(r=0|n[a+20>>2]),!r){f=A,s=o;break}a=r}if(0|f&&s>>>0<((0|n[6979])-l|0)>>>0&&(c=f+l|0)>>>0>f>>>0){a=0|n[f+24>>2],t=0|n[f+12>>2];do{if((0|t)==(0|f)){if(!(t=0|n[(A=f+20|0)>>2])&&!(t=0|n[(A=f+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else n[12+(m=0|n[f+8>>2])>>2]=t,n[t+8>>2]=m}while(0);do{if(a){if((0|f)==(0|n[(r=28212+((A=0|n[f+28>>2])<<2)|0)>>2])){if(n[r>>2]=t,!t){n[6978]=i&=~(1<<A);break}}else if(n[((0|n[(m=a+16|0)>>2])==(0|f)?m:a+20)>>2]=t,!t)break;n[t+24>>2]=a,0|(A=0|n[f+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[f+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(s>>>0<16)n[f+4>>2]=3|(m=s+l|0),n[(m=f+m+4|0)>>2]=1|n[m>>2];else{if(n[f+4>>2]=3|l,n[c+4>>2]=1|s,n[c+s>>2]=s,t=s>>>3,s>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=28212+((r=(t=s>>>8)?s>>>0>16777215?31:s>>>(7+(r=14-((M=(520192+(m=t<<(k=(t+1048320|0)>>>16&8))|0)>>>16&4)|k|(r=(245760+(m<<=M)|0)>>>16&2))+(m<<r>>>15)|0)|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[4+(A=c+16|0)>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[6978]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|s)){for(i=s<<(31==(0|r)?0:25-(r>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);n[12+(m=0|n[(k=t+8|0)>>2])>>2]=c,n[k>>2]=c,n[c+8>>2]=m,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return T=e,0|f+8}h=l}else h=l;else h=-1}while(0);if((r=0|n[6979])>>>0>=h>>>0)return A=0|n[6982],(t=r-h|0)>>>0>15?(n[6982]=m=A+h|0,n[6979]=t,n[m+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[6979]=0,n[6982]=0,n[A+4>>2]=3|r,n[(m=A+r+4|0)>>2]=1|n[m>>2]),T=e,0|A+8;if((s=0|n[6980])>>>0>h>>>0)return n[6980]=M=s-h|0,n[6983]=k=(m=0|n[6983])+h|0,n[k+4>>2]=1|M,n[m+4>>2]=3|h,T=e,0|m+8;if(0|n[7095]?A=0|n[7097]:(n[7097]=4096,n[7096]=4096,n[7098]=-1,n[7099]=-1,n[7100]=0,n[7088]=0,n[7095]=-16&d^1431655768,A=4096),f=h+48|0,(l=(a=A+(u=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return T=e,0;if(0|(A=0|n[7087])&&(d=(c=0|n[7085])+l|0)>>>0<=c>>>0|d>>>0>A>>>0)return T=e,0;A:do{if(4&n[7088])t=0,v=143;else{r=0|n[6983];e:do{if(r){for(i=28356;!((d=0|n[i>>2])>>>0<=r>>>0&&(d+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){v=128;break e}i=A}if((t=a-s&o)>>>0<2147483647)if((0|(A=0|vt(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){s=t,a=A,v=145;break A}}else i=A,v=136;else t=0}else v=128}while(0);do{if(128==(0|v))if(-1!=(0|(r=0|vt(0)))&&(w=(t=((w=(g=0|n[7096])-1|0)&(t=r)?(w+t&0-g)-t|0:0)+l|0)+(g=0|n[7085])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(d=0|n[7087])&&w>>>0<=g>>>0|w>>>0>d>>>0){t=0;break}if((0|(A=0|vt(0|t)))==(0|r)){s=t,a=r,v=145;break A}i=A,v=136}else t=0}while(0);do{if(136==(0|v)){if(r=0-t|0,!(f>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}s=t,a=i,v=145;break A}if((A=u-t+(A=0|n[7097])&0-A)>>>0>=2147483647){s=t,a=i,v=145;break A}if(-1==(0|vt(0|A))){vt(0|r),t=0;break}s=A+t|0,a=i,v=145;break A}}while(0);n[7088]=4|n[7088],v=143}}while(0);if(143==(0|v)&&l>>>0<2147483647&&!(-1==(0|(M=0|vt(0|l)))|1^(b=(B=(w=0|vt(0))-M|0)>>>0>(h+40|0)>>>0)|M>>>0<w>>>0&-1!=(0|M)&-1!=(0|w)^1)&&(s=b?B:t,a=M,v=145),145==(0|v)){n[7085]=t=(0|n[7085])+s|0,t>>>0>(0|n[7086])>>>0&&(n[7086]=t),u=0|n[6983];A:do{if(u){for(t=28356;;){if((0|a)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){v=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|v)||(k=t+4|0,8&n[t+12>>2]))&&a>>>0>u>>>0&A>>>0<=u>>>0){n[k>>2]=r+s,k=u+(M=7&(M=u+8|0)?0-M&7:0)|0,M=(m=(0|n[6980])+s|0)-M|0,n[6983]=k,n[6980]=M,n[k+4>>2]=1|M,n[u+m+4>>2]=40,n[6984]=n[7099];break}for(a>>>0<(0|n[6981])>>>0&&(n[6981]=a),r=a+s|0,t=28356;;){if((0|n[t>>2])==(0|r)){v=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|v)&&!(8&n[t+12>>2])){n[t>>2]=a,n[(c=t+4|0)>>2]=(0|n[c>>2])+s,l=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,f=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|u)==(0|t))n[6980]=m=(0|n[6980])+f|0,n[6983]=l,n[l+4>>2]=1|m;else{if((0|n[6982])==(0|t)){n[6979]=m=(0|n[6979])+f|0,n[6982]=l,n[l+4>>2]=1|m,n[l+m>>2]=m;break}if(1==(3&(A=0|n[t+4>>2]))){s=-8&A,i=A>>>3;t:do{if(A>>>0<256){if((0|(r=0|n[t+12>>2]))==(0|(A=0|n[t+8>>2]))){n[6977]=n[6977]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}a=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=4+(r=t+16|0)|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else n[12+(m=0|n[t+8>>2])>>2]=A,n[A+8>>2]=m}while(0);if(!a)break;i=28212+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[6978]=n[6978]&~(1<<r);break t}if(n[((0|n[(m=a+16|0)>>2])==(0|t)?m:a+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=a,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+s|0,o=s+f|0}else o=f;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[l+4>>2]=1|o,n[l+o>>2]=o,t=o>>>3,o>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=l,n[t+12>>2]=l,n[l+8>>2]=t,n[l+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>(7+(i=14-((M=(520192+(m=t<<(k=(t+1048320|0)>>>16&8))|0)>>>16&4)|k|(i=(245760+(m<<=M)|0)>>>16&2))+(m<<i>>>15)|0)|0)&1|i<<1}else i=0}while(0);if(t=28212+(i<<2)|0,n[l+28>>2]=i,n[4+(A=l+16|0)>>2]=0,n[A>>2]=0,!((A=0|n[6978])&(r=1<<i))){n[6978]=A|r,n[t>>2]=l,n[l+24>>2]=t,n[l+12>>2]=l,n[l+8>>2]=l;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=l,n[l+24>>2]=t,n[l+12>>2]=l,n[l+8>>2]=l;break e}}while(0);n[12+(m=0|n[(k=t+8|0)>>2])>>2]=l,n[k>>2]=l,n[l+8>>2]=m,n[l+12>>2]=t,n[l+24>>2]=0}}while(0);return T=e,0|c+8}for(t=28356;!((A=0|n[t>>2])>>>0<=u>>>0&&(m=A+(0|n[t+4>>2])|0)>>>0>u>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=m+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,k=a+(M=7&(M=a+8|0)?0-M&7:0)|0,M=(r=s+-40|0)-M|0,n[6983]=k,n[6980]=M,n[k+4>>2]=1|M,n[a+r+4>>2]=40,n[6984]=n[7099],n[(r=A+4|0)>>2]=27,n[t>>2]=n[7089],n[t+4>>2]=n[7090],n[t+8>>2]=n[7091],n[t+12>>2]=n[7092],n[7089]=a,n[7090]=s,n[7092]=0,n[7091]=t,t=A+24|0;do{k=t,n[(t=t+4|0)>>2]=7}while((k+8|0)>>>0<m>>>0);if((0|A)!=(0|u)){if(a=A-u|0,n[r>>2]=-2&n[r>>2],n[u+4>>2]=1|a,n[A>>2]=a,t=a>>>3,a>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}if(r=28212+((i=(t=a>>>8)?a>>>0>16777215?31:a>>>(7+(i=14-((M=(520192+(m=t<<(k=(t+1048320|0)>>>16&8))|0)>>>16&4)|k|(i=(245760+(m<<=M)|0)>>>16&2))+(m<<i>>>15)|0)|0)&1|i<<1:0)<<2)|0,n[u+28>>2]=i,n[u+20>>2]=0,n[o>>2]=0,!((t=0|n[6978])&(A=1<<i))){n[6978]=t|A,n[r>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break A}}while(0);n[12+(m=0|n[(k=t+8|0)>>2])>>2]=u,n[k>>2]=u,n[u+8>>2]=m,n[u+12>>2]=t,n[u+24>>2]=0}}else!(0|(m=0|n[6981]))|a>>>0<m>>>0&&(n[6981]=a),n[7089]=a,n[7090]=s,n[7092]=0,n[6986]=n[7095],n[6985]=-1,n[6990]=27948,n[6989]=27948,n[6992]=27956,n[6991]=27956,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,n[6998]=27980,n[6997]=27980,n[7e3]=27988,n[6999]=27988,n[7002]=27996,n[7001]=27996,n[7004]=28004,n[7003]=28004,n[7006]=28012,n[7005]=28012,n[7008]=28020,n[7007]=28020,n[7010]=28028,n[7009]=28028,n[7012]=28036,n[7011]=28036,n[7014]=28044,n[7013]=28044,n[7016]=28052,n[7015]=28052,n[7018]=28060,n[7017]=28060,n[7020]=28068,n[7019]=28068,n[7022]=28076,n[7021]=28076,n[7024]=28084,n[7023]=28084,n[7026]=28092,n[7025]=28092,n[7028]=28100,n[7027]=28100,n[7030]=28108,n[7029]=28108,n[7032]=28116,n[7031]=28116,n[7034]=28124,n[7033]=28124,n[7036]=28132,n[7035]=28132,n[7038]=28140,n[7037]=28140,n[7040]=28148,n[7039]=28148,n[7042]=28156,n[7041]=28156,n[7044]=28164,n[7043]=28164,n[7046]=28172,n[7045]=28172,n[7048]=28180,n[7047]=28180,n[7050]=28188,n[7049]=28188,n[7052]=28196,n[7051]=28196,k=a+(M=7&(M=a+8|0)?0-M&7:0)|0,M=(m=s+-40|0)-M|0,n[6983]=k,n[6980]=M,n[k+4>>2]=1|M,n[a+m+4>>2]=40,n[6984]=n[7099]}while(0);if((t=0|n[6980])>>>0>h>>>0)return n[6980]=M=t-h|0,n[6983]=k=(m=0|n[6983])+h|0,n[k+4>>2]=1|M,n[m+4>>2]=3|h,T=e,0|m+8}return n[(m=27904)>>2]=12,T=e,0}function Ke(A){var e=0,t=0,r=0,i=0,o=0,a=0,s=0,f=0;if(A|=0){i=0|n[6981],f=(t=A+-8|0)+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)s=t,a=t;else{if(!(3&A))return;if(o=(r=0|n[t>>2])+e|0,(a=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[6982])==(0|a)){if(3&~(e=0|n[(A=f+4|0)>>2])){s=a,e=o;break}return n[6979]=o,n[A>>2]=-2&e,n[a+4>>2]=1|o,void(n[a+o>>2]=o)}if(t=r>>>3,r>>>0<256){if((0|(e=0|n[a+12>>2]))==(0|(A=0|n[a+8>>2]))){n[6977]=n[6977]&~(1<<t),s=a,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,s=a,e=o;break}i=0|n[a+24>>2],A=0|n[a+12>>2];do{if((0|A)==(0|a)){if(A=0|n[(t=4+(e=a+16|0)|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else n[12+(s=0|n[a+8>>2])>>2]=A,n[A+8>>2]=s}while(0);if(i){if((0|n[(t=28212+((e=0|n[a+28>>2])<<2)|0)>>2])==(0|a)){if(n[t>>2]=A,!A){n[6978]=n[6978]&~(1<<e),s=a,e=o;break}}else if(n[((0|n[(s=i+16|0)>>2])==(0|a)?s:i+20)>>2]=A,!A){s=a,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=a+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,s=a,e=o):(s=a,e=o)}else s=a,e=o}}while(0);if(!(a>>>0>=f>>>0)&&1&(r=0|n[(A=f+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[s+4>>2]=1|e,n[a+e>>2]=e,i=e;else{if((0|n[6983])==(0|f)){if(n[6980]=f=(0|n[6980])+e|0,n[6983]=s,n[s+4>>2]=1|f,(0|s)!=(0|n[6982]))return;return n[6982]=0,void(n[6979]=0)}if((0|n[6982])==(0|f))return n[6979]=f=(0|n[6979])+e|0,n[6982]=a,n[s+4>>2]=1|f,void(n[a+f>>2]=f);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if((0|(A=0|n[f+12>>2]))==(0|(e=0|n[f+8>>2]))){n[6977]=n[6977]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[f+24>>2],A=0|n[f+12>>2];do{if((0|A)==(0|f)){if(A=0|n[(t=4+(e=f+16|0)|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else n[12+(t=0|n[f+8>>2])>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if((0|n[(e=28212+((A=0|n[f+28>>2])<<2)|0)>>2])==(0|f)){if(n[e>>2]=t,!t){n[6978]=n[6978]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|f)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=f+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[s+4>>2]=1|i,n[a+i>>2]=i,(0|s)==(0|n[6982]))return void(n[6979]=i)}if(A=i>>>3,i>>>0<256)return t=27948+(A<<1<<2)|0,(e=0|n[6977])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[6977]=e|A,A=t,e=t+8|0),n[e>>2]=s,n[A+12>>2]=s,n[s+8>>2]=A,void(n[s+12>>2]=t);A=28212+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>(7+(r=14-((o=(520192+(f=A<<(a=(A+1048320|0)>>>16&8))|0)>>>16&4)|a|(r=(245760+(f<<=o)|0)>>>16&2))+(f<<r>>>15)|0)|0)&1|r<<1:0)<<2)|0,n[s+28>>2]=r,n[s+20>>2]=0,n[s+16>>2]=0,e=0|n[6978],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1));e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=s,n[s+24>>2]=A,n[s+12>>2]=s,n[s+8>>2]=s;break A}}while(0);n[12+(f=0|n[(a=A+8|0)>>2])>>2]=s,n[a>>2]=s,n[s+8>>2]=f,n[s+12>>2]=A,n[s+24>>2]=0}else n[6978]=e|t,n[A>>2]=s,n[s+24>>2]=A,n[s+12>>2]=s,n[s+8>>2]=s}while(0);if(n[6985]=f=(0|n[6985])-1|0,!(0|f)){for(A=28364;A=0|n[A>>2];)A=A+8|0;n[6985]=-1}}}}function qe(A,e){e|=0;var t=0;return(A|=0)?(t=0|M(e,A),(e|A)>>>0>65535&&(t=((t>>>0)/(A>>>0)|0)==(0|e)?t:-1)):t=0,(A=0|Xe(t))&&3&n[A+-4>>2]?(gt(0|A,0,0|t),0|A):0|A}function $e(A,e,t,r){return 0|(D((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}function At(A,e,t,r){return 0|(D(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function et(A){return 0|((A|=0)?31-(0|Q(A^A-1)):32)}function tt(A,e,t,r,i){i|=0;var o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0;if(l=A|=0,a=t|=0,s=h=r|=0,!(u=f=e|=0))return o=!!(0|i),s?o?(n[i>>2]=0|A,n[i+4>>2]=0,i=0,0|(D(0|(h=0)),i)):(i=0,0|(D(0|(h=0)),i)):(o&&(n[i>>2]=(l>>>0)%(a>>>0),n[i+4>>2]=0),i=(l>>>0)/(a>>>0)>>>0,0|(D(0|(h=0)),i));o=!(0|s);do{if(a){if(!o){if((o=(0|Q(0|s))-(0|Q(0|u))|0)>>>0<=31){a=c=o+1|0,A=l>>>(c>>>0)&(e=o-31>>31)|u<<(s=31-o|0),e&=u>>>(c>>>0),o=0,s=l<<s;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|f,i=0,0|(D(0|(h=0)),i)):(i=0,0|(D(0|(h=0)),i))}if((o=a-1|0)&a){a=s=33+(0|Q(0|a))-(0|Q(0|u))|0,A=(c=32-s|0)-1>>31&u>>>((d=s-32|0)>>>0)|(u<<c|l>>>(s>>>0))&(e=d>>31),e&=u>>>(s>>>0),o=l<<(g=64-s|0)&(f=c>>31),s=(u<<g|l>>>(d>>>0))&f|l<<c&s-33>>31;break}return 0|i&&(n[i>>2]=o&l,n[i+4>>2]=0),1==(0|a)?(g=0|A,0|(D(0|(d=0|f)),g)):(d=u>>>((g=0|et(0|a))>>>0)|0,g=u<<32-g|l>>>(g>>>0),0|(D(0|d),g))}if(o)return 0|i&&(n[i>>2]=(u>>>0)%(a>>>0),n[i+4>>2]=0),g=(u>>>0)/(a>>>0)>>>0,0|(D(0|(d=0)),g);if(!l)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(u>>>0)%(s>>>0)),g=(u>>>0)/(s>>>0)>>>0,0|(D(0|(d=0)),g);if(!((o=s-1|0)&s))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&u),d=0,g=u>>>((0|et(0|s))>>>0),0|(D(0|d),g);if((o=(0|Q(0|s))-(0|Q(0|u))|0)>>>0<=30){a=e=o+1|0,A=u<<(s=31-o|0)|l>>>(e>>>0),e=u>>>(e>>>0),o=0,s=l<<s;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|f,g=0,0|(D(0|(d=0)),g)):(g=0,0|(D(0|(d=0)),g))}while(0);if(a){u=0|$e(0|(c=0|t),0|(l=0|h),-1,-1),t=0|p(),f=s,s=0;do{r=f,f=o>>>31|f<<1,o=s|o<<1,At(0|u,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),s=1&(d=(g=0|p())>>31|((0|g)<0?-1:0)<<1),A=0|At(0|r,0|h,d&c,(((0|g)<0?-1:0)>>31|((0|g)<0?-1:0)<<1)&l),e=0|p(),a=a-1|0}while(0|a);u=f,f=0}else u=s,f=0,s=0;return a=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),g=o<<1&-2|s,0|(D(0|(d=(0|o)>>>31|(u|a)<<1|f)),g)}function rt(A,e,t,r){var n,i,o,a,s;return t|=0,i=(r|=0)>>31|((0|r)<0?-1:0)<<1,n=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,o=0|At((s=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(a=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|s,0|a),A=i^s,e=n^a,0|At(tt(o,0|p(),0|At(i^t,n^r,0|i,0|n),0|p(),0)^A,p()^e,0|A,0|e)}function nt(A,e,t,r){var n,i;return e|=0,r|=0,t=0|function(A,e){var t,r,n,i=0;return A=((t=0|M(i=65535&(e|=0),n=65535&(A|=0)))>>>16)+(0|M(i,r=A>>>16))|0,e=0|M(i=e>>>16,n),0|(D((A>>>16)+(0|M(i,r))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&t)}(n=A|=0,i=t|=0),A=0|p(),0|(D((0|M(e,i))+(0|M(r,n))+A|0),t)}function it(A,e,t,r){var i,o,a,s,f,u;return t|=0,i=T,T=T+16|0,s=0|i,u=(r|=0)>>31|((0|r)<0?-1:0)<<1,f=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,tt(A=0|At((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(o=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|a,0|o),e=0|p(),0|At(u^t,f^r,0|u,0|f),0|p(),s),r=0|At(n[s>>2]^a,n[s+4>>2]^o,0|a,0|o),t=0|p(),T=i,0|(D(0|t),r)}function ot(A,e,t,r){var i,o;return o=T,T=T+16|0,tt(A|=0,e|=0,t|=0,r|=0,i=0|o),T=o,0|(D(0|n[i+4>>2]),n[i>>2])}function at(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(D(e>>t),A>>>t|(e&(1<<t)-1)<<32-t):(D(0|((0|e)<0?-1:0)),e>>t-32)}function st(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(D(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(D(0),e>>>t-32|0)}function ft(A,e,t){return A|=0,(0|(t|=0))<32?(D((e|=0)<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(D(A<<t-32),0)}function ut(A,e){return A|=0,32==(0|(e=0|Q(e|=0)))&&(e=e+(0|Q(A))|0),D(0),0|e}function lt(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+m(+A,+e)}function ct(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+k(+A,+e)}function ht(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function dt(A,e,t){A|=0,e|=0;var i,o,a=0;if((0|(t|=0))>=8192)return P(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[0|A]=0|r[0|e],A=A+1|0,e=e+1|0,t=t-1|0}for(a=(t=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[0|A]=0|r[0|e],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[0|A]=0|r[0|e],A=A+1|0,e=e+1|0;return 0|o}function gt(A,e,t){e|=0;var i,o=0,a=0,s=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[0|A]=e,A=A+1|0;for(s=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=s,n[A+4>>2]=s,n[A+8>>2]=s,n[A+12>>2]=s,n[A+16>>2]=s,n[A+20>>2]=s,n[A+24>>2]=s,n[A+28>>2]=s,n[A+32>>2]=s,n[A+36>>2]=s,n[A+40>>2]=s,n[A+44>>2]=s,n[A+48>>2]=s,n[A+52>>2]=s,n[A+56>>2]=s,n[A+60>>2]=s,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=s,A=A+4|0}for(;(0|A)<(0|i);)r[0|A]=e,A=A+1|0;return i-t|0}function wt(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function vt(A){var e,t,r;return A|=0,r=0|y(),(0|A)>0&(0|(e=(t=0|n[a>>2])+A|0))<(0|t)|(0|e)<0?(F(0|e),C(12),-1):(0|e)>(0|r)&&!(0|I(0|e))?(C(12),-1):(n[a>>2]=e,0|t)}return{___divdi3:rt,___muldi3:nt,___remdi3:it,___uremdi3:ot,_areNeighborCells:function(A,e,t,r,i){i|=0;var o,a,s,f=0,u=0,l=0,c=0;if(s=T,T=T+64|0,a=s,o=s+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(r|=0))))return T=s,5;if((0|(A|=0))==(0|(t|=0))&(0|e)==(0|r))return n[i>>2]=0,T=s,0;if(u=0|st(0|A,0|e,52),p(),u&=15,c=0|st(0|t,0|r,52),p(),(0|u)!=(15&c))return T=s,12;if(f=u+-1|0,u>>>0>1){WA(A,e,f,a),WA(t,r,f,o),l=0|n[(c=a)>>2],c=0|n[c+4>>2];A:do{if((0|l)==(0|n[o>>2])&&(0|c)==(0|n[o+4>>2])){f=0|st(0|A,0|e,0|(u=3*(15^u)|0)),p(),f&=7,u=0|st(0|t,0|r,0|u),p(),u&=7;do{if(!(0|f)|!(0|u))n[i>>2]=1,f=0;else if(7==(0|f))f=5;else{if(1==(0|f)|1==(0|u)&&0|VA(l,c)){f=5;break}if((0|n[15536+(f<<2)>>2])!=(0|u)&&(0|n[15568+(f<<2)>>2])!=(0|u))break A;n[i>>2]=1,f=0}}while(0);return T=s,0|f}}while(0)}u=(f=a)+56|0;do{n[f>>2]=0,f=f+4|0}while((0|f)<(0|u));return L(A,e,1,a),f=(0|n[(e=a)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+8|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+16|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+24|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+32|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+40|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)?1:1&((0|n[(f=a+48|0)>>2])==(0|t)?(0|n[f+4>>2])==(0|r):0),n[i>>2]=f,T=s,0},_bitshift64Ashr:at,_bitshift64Lshr:st,_bitshift64Shl:ft,_calloc:qe,_cellAreaKm2:function(A,e,t){return 0|(A=0|we(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475),0|A},_cellAreaM2:function(A,e,t){return 0|(A=0|we(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475*1e3*1e3),0|A},_cellAreaRads2:we,_cellToBoundary:ne,_cellToCenterChild:NA,_cellToChildPos:function(A,e,t,r){t|=0,r|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0;if(i=T,T=T+16|0,B=i,b=0|st(0|(A|=0),0|(e|=0),52),p(),t>>>0>15)return T=i,4;if((0|(b&=15))<(0|t))return T=i,12;if((0|b)!=(0|t))if(a=0|ft(0|t,0,52),a|=A,f=p()|-15728641&e,(0|b)>(0|t)){u=t;do{v=0|ft(7,0,3*(14-u|0)|0),u=u+1|0,a|=v,f=p()|f}while((0|u)<(0|b));v=a}else v=a;else v=A,f=e;w=0|st(0|v,0|f,45),p();A:do{if(0|_(127&w)){if(u=0|st(0|v,0|f,52),p(),0|(u&=15))for(a=1;;){if(!(!((w=0|ft(7,0,3*(15-a|0)|0))&v)&!(p()&f))){l=33;break A}if(!(a>>>0<u>>>0))break;a=a+1|0}if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|b)>(0|t)){for(w=-15728641&e,g=b;;){if(d=g,(g=g+-1|0)>>>0>15|(0|b)<(0|g)){l=19;break}if((0|b)!=(0|g))if(a=0|ft(0|g,0,52),a|=A,u=p()|w,(0|b)<(0|d))h=a;else{l=g;do{h=0|ft(7,0,3*(14-l|0)|0),l=l+1|0,a|=h,u=p()|u}while((0|l)<(0|b));h=a}else h=A,u=e;if(c=0|st(0|h,0|u,45),p(),0|_(127&c)){c=0|st(0|h,0|u,52),p(),c&=15;e:do{if(c)for(l=1;;){if(a=0|st(0|h,0|u,3*(15-l|0)|0),p(),0|(a&=7))break e;if(!(l>>>0<c>>>0)){a=0;break}l=l+1|0}else a=0}while(0);a=1&!(0|a)}else a=0;if(u=0|st(0|A,0|e,3*(15-d|0)|0),p(),7==(0|(u&=7))){o=5,l=42;break}if(1==(0|u)&(a=!!(0|a))){o=5,l=42;break}if(0|(h=u+((!!(0|u)&a)<<31>>31)|0)&&(l=0|De(7,0,l=b-d|0,((0|l)<0)<<31>>31),c=0|p(),a?(a=0|$e(0|(a=0|nt(0|l,0|c,5,0)),0|p(),-5,-1),a=0|$e(0|(a=0|rt(0|a,0|p(),6,0)),0|p(),1,0),u=0|p()):(a=l,u=c),d=0|$e(0|a,0|u,0|(d=0|nt(0|l,0|c,0|(d=h+-1|0),((0|d)<0)<<31>>31)),0|p()),c=0|$e(0|d,0|(h=0|p()),0|n[(c=r)>>2],0|n[c+4>>2]),h=0|p(),n[(d=r)>>2]=c,n[d+4>>2]=h),(0|g)<=(0|t)){l=37;break}}if(19==(0|l))E(27795,27122,1276,27158);else{if(37==(0|l)){o=0|n[(s=r)+4>>2],s=0|n[s>>2];break}if(42==(0|l))return T=i,0|o}}else o=0,s=0}else l=33}while(0);A:do{if(33==(0|l)){if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|b)>(0|t)){for(a=b;;){if(o=0|st(0|A,0|e,3*(15-a|0)|0),p(),7==(0|(o&=7))){o=5;break}if(o=0|nt(0|(s=0|De(7,0,s=b-a|0,((0|s)<0)<<31>>31)),0|p(),0|o,0),s=0|p(),s=0|$e(0|n[(w=r)>>2],0|n[w+4>>2],0|o,0|s),o=0|p(),n[(w=r)>>2]=s,n[w+4>>2]=o,(0|(a=a+-1|0))<=(0|t))break A}return T=i,0|o}o=0,s=0}}while(0);return 0|HA(v,f,b,B)&&E(27795,27122,1236,27173),((0|o)>-1|-1==(0|o)&s>>>0>4294967295)&((0|(B=0|n[(b=B)+4>>2]))>(0|o)|((0|B)==(0|o)?(0|n[b>>2])>>>0>s>>>0:0))?(T=i,0|(b=0)):(E(27795,27122,1316,27158),0)},_cellToChildren:function(A,e,t,r){r|=0;var i,o,a=0,s=0;if(o=T,T=T+16|0,oe(i=o,A|=0,e|=0,t|=0),!(0|(A=0|n[(e=i)>>2]))&!(0|(e=0|n[e+4>>2])))return T=o,0;a=0,t=0;do{n[(s=r+(a<<3)|0)>>2]=A,n[s+4>>2]=e,a=0|$e(0|a,0|t,1,0),t=0|p(),se(i),A=0|n[(s=i)>>2],e=0|n[s+4>>2]}while(!(!(0|A)&!(0|e)));return T=o,0},_cellToChildrenSize:HA,_cellToLatLng:re,_cellToLocalIj:function(A,e,t,r,n,i){var o,a;return A|=0,i|=0,a=T,T=T+16|0,o=a,(n|=0)?A=15:(A=0|me(A,e|=0,t|=0,r|=0,o))||(EA(o,i),A=0),T=a,0|A},_cellToParent:WA,_cellToVertex:Ye,_cellToVertexes:function(A,e,t){t|=0;var r,i=0,o=0;return o=!(0|VA(A|=0,e|=0)),r=!(0|(i=0|Ye(A,e,0,t))),o?r?0|(i=0|Ye(A,e,1,t+8|0))||0|(i=0|Ye(A,e,2,t+16|0))||0|(i=0|Ye(A,e,3,t+24|0))||(i=0|Ye(A,e,4,t+32|0))?0|(o=i):0|Ye(A,e,5,t+40|0):0|(o=i):r?0|(i=0|Ye(A,e,1,t+8|0))||0|(i=0|Ye(A,e,2,t+16|0))||0|(i=0|Ye(A,e,3,t+24|0))||0|(i=0|Ye(A,e,4,t+32|0))?0|(o=i):(n[(o=t+40|0)>>2]=0,n[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,t,r,i){return i|=0,7==(0|(t=0|O(A|=0,e|=0,t|=0,r|=0)))?0|(i=11):(r=0|ft(0|t,0,56),e=-2130706433&e|p()|268435456,n[i>>2]=A|r,n[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,t){t|=0;var r,i,o,a=0;if(o=T,T=T+32|0,r=o,A=0|function(A,e,t){A|=0,t|=0;var r,i,o=0,a=0,s=0,f=0,u=0,l=0;if(i=T,T=T+176|0,r=i,(0|(e|=0))<1)return _e(t,0,0),T=i,0;for(u=0|st(0|n[(u=A)>>2],0|n[u+4>>2],52),p(),_e(t,(0|e)>6?e:6,15&u),u=0;!(0|(o=0|ne(0|n[(o=A+(u<<3)|0)>>2],0|n[o+4>>2],r)));){if((0|(o=0|n[r>>2]))>0){f=0;do{s=r+8+(f<<4)|0,(a=0|Ne(t,o=r+8+((0|(f=f+1|0))%(0|o)<<4)|0,s))?Ve(t,a):je(t,s,o),o=0|n[r>>2]}while((0|f)<(0|o))}if((0|(u=u+1|0))>=(0|e)){o=0,l=13;break}}return 13==(0|l)?(T=i,0|o):(We(t),T=i,0|(l=o))}(A|=0,e|=0,i=o+16|0),0|A)return T=o,0|A;if(n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,0|(A=0|He(i)))do{e=0|ve(t);do{Be(e,A),n[r>>2]=n[(a=A+16|0)>>2],n[r+4>>2]=n[a+4>>2],n[r+8>>2]=n[a+8>>2],n[r+12>>2]=n[a+12>>2],Ve(i,A),A=0|Ze(i,r)}while(0|A);A=0|He(i)}while(0|A);return We(i),(A=0|Me(t))?(be(t),T=o,0|(a=A)):(T=o,0|(a=0))},_childPosToCell:function(A,e,t,r,i,o){A|=0,e|=0,o|=0;var a,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0;if(a=T,T=T+16|0,s=a,(i|=0)>>>0>15)return T=a,4;if(f=0|st(0|(t|=0),0|(r|=0),52),p(),(0|(f&=15))>(0|i))return T=a,12;if(0|HA(t,r,i,s)&&E(27795,27122,1236,27173),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(l=0|n[(c=s)+4>>2]))>(0|e)|((0|l)==(0|e)?(0|n[c>>2])>>>0>A>>>0:0))))return T=a,2;c=i-f|0,i=0|ft(0|i,0,52),u=p()|-15728641&r,n[(l=o)>>2]=i|t,n[l+4>>2]=u,l=0|st(0|t,0|r,45),p();A:do{if(0|_(127&l)){if(0|f)for(s=1;;){if(!(!((l=0|ft(7,0,3*(15-s|0)|0))&t)&!(p()&r)))break A;if(!(s>>>0<f>>>0))break;s=s+1|0}if((0|c)<1)return T=a,0;for(l=15^f,r=-1,u=1,s=1;;){f=0|De(7,0,f=c-u|0,((0|f)<0)<<31>>31),t=0|p();do{if(s){if(s=0|rt(0|(s=0|$e(0|(s=0|nt(0|f,0|t,5,0)),0|p(),-5,-1)),0|p(),6,0),(0|e)>(0|(i=0|p()))|(0|e)==(0|i)&A>>>0>s>>>0){e=0|At(0|(e=0|$e(0|A,0|e,-1,-1)),0|p(),0|s,0|i),s=0|p(),g=0|n[(h=o)>>2],h=0|n[h+4>>2],d=0|ft(7,0,0|(w=3*(l+r|0)|0)),h&=~p(),w=0|ft(0|(i=0|$e(0|(r=0|rt(0|e,0|s,0|f,0|t)),0|(A=0|p()),2,0)),0|p(),0|w),h=p()|h,n[(i=o)>>2]=w|g&~d,n[i+4>>2]=h,A=0|At(0|e,0|s,0|(A=0|nt(0|r,0|A,0|f,0|t)),0|p()),s=0,e=0|p();break}d=0|n[(w=o)>>2],w=0|n[w+4>>2],g=0|ft(7,0,3*(l+r|0)|0),w&=~p(),n[(s=o)>>2]=d&~g,n[s+4>>2]=w,s=1;break}i=0|n[(d=o)>>2],d=0|n[d+4>>2],h=0|ft(7,0,0|(r=3*(l+r|0)|0)),d&=~p(),r=0|ft(0|(w=0|rt(0|A,0|e,0|f,0|t)),0|(s=0|p()),0|r),d=p()|d,n[(g=o)>>2]=r|i&~h,n[g+4>>2]=d,A=0|At(0|A,0|e,0|(s=0|nt(0|w,0|s,0|f,0|t)),0|p()),s=0,e=0|p()}while(0);if(!((0|c)>(0|u))){e=0;break}r=~u,u=u+1|0}return T=a,0|e}}while(0);if((0|c)<1)return T=a,0;for(i=15^f,s=1;;){if(g=0|De(7,0,g=c-s|0,((0|g)<0)<<31>>31),w=0|p(),t=0|n[(u=o)>>2],u=0|n[u+4>>2],r=0|ft(7,0,0|(f=3*(i-s|0)|0)),u&=~p(),f=0|ft(0|(h=0|rt(0|A,0|e,0|g,0|w)),0|(d=0|p()),0|f),u=p()|u,n[(l=o)>>2]=f|t&~r,n[l+4>>2]=u,A=0|At(0|A,0|e,0|(w=0|nt(0|h,0|d,0|g,0|w)),0|p()),e=0|p(),(0|c)<=(0|s)){e=0;break}s=s+1|0}return T=a,0|e},_compactCells:function(A,e,t,r){e|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,C=0,y=0,P=0,I=0,F=0,T=0;if(!(0|(t|=0))&!(0|(r|=0)))return 0;if(a=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if(!((0|r)>0|!(0|r)&t>>>0>0))return 0;if(n[(T=e)>>2]=a,n[T+4>>2]=o,1==(0|t)&!(0|r))return 0;o=1,a=0;do{F=0|n[4+(I=A+(o<<3)|0)>>2],n[(T=e+(o<<3)|0)>>2]=n[I>>2],n[T+4>>2]=F,o=0|$e(0|o,0|a,1,0),a=0|p()}while((0|a)<(0|r)|(0|a)==(0|r)&o>>>0<t>>>0);return 0}if(!(F=0|Xe(i=t<<3)))return 13;if(dt(0|F,0|A,0|i),!(I=0|qe(t,8)))return Ke(F),13;A:for(;;){y=0|st(0|(l=0|n[(o=F)>>2]),0|(o=0|n[o+4>>2]),52),p(),P=(y&=15)-1|0,C=!!(0|y),D=(0|r)>0|!(0|r)&t>>>0>0;e:do{if(C&D){if(M=0|ft(0|P,0,52),k=0|p(),P>>>0>15){if(!(!(0|l)&!(0|o))){T=16;break A}for(a=0,A=0;;){if(a=0|$e(0|a,0|A,1,0),!((0|(A=0|p()))<(0|r)|(0|A)==(0|r)&a>>>0<t>>>0))break e;if(!(!(0|(Q=0|n[(s=F+(a<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2])))){o=s,T=16;break A}}}for(f=l,A=o,a=0,s=0;;){if(!(!(0|f)&!(0|A))){if(!(!0&!(117440512&A))){T=21;break A}if(c=0|st(0|f,0|A,52),p(),(0|(c&=15))<(0|P)){o=12,T=27;break A}if((0|c)!=(0|P)&&(f|=M,A=-15728641&A|k,c>>>0>=y>>>0)){u=P;do{Q=0|ft(7,0,3*(14-u|0)|0),u=u+1|0,f|=Q,A=p()|A}while(u>>>0<c>>>0)}if(d=0|ot(0|f,0|A,0|t,0|r),g=0|p(),!(!(0|(h=0|n[(c=u=I+(d<<3)|0)>>2]))&!(0|(c=0|n[c+4>>2])))){B=0,b=0;do{if((0|B)>(0|r)|(0|B)==(0|r)&b>>>0>t>>>0){T=31;break A}if((0|h)==(0|f)&(-117440513&c)==(0|A)){w=0|st(0|h,0|c,56),p(),v=1+(w&=7)|0,Q=0|st(0|h,0|c,45),p();t:do{if(0|_(127&Q)){if(h=0|st(0|h,0|c,52),p(),!(h&=15)){c=6;break}for(c=1;;){if(!(!((Q=0|ft(7,0,3*(15-c|0)|0))&f)&!(p()&A))){c=7;break t}if(!(c>>>0<h>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((w+2|0)>>>0>c>>>0){T=41;break A}Q=0|ft(0|v,0,56),A=p()|-117440513&A,n[(m=u)>>2]=0,n[m+4>>2]=0,f|=Q}else d=0|it(0|(d=0|$e(0|d,0|g,1,0)),0|p(),0|t,0|r),g=0|p();b=0|$e(0|b,0|B,1,0),B=0|p(),h=0|n[(c=u=I+(d<<3)|0)>>2],c=0|n[c+4>>2]}while(!(!(0|h)&!(0|c)))}n[(Q=u)>>2]=f,n[Q+4>>2]=A}if(a=0|$e(0|a,0|s,1,0),!((0|(s=0|p()))<(0|r)|(0|s)==(0|r)&a>>>0<t>>>0))break e;f=0|n[(A=F+(a<<3)|0)>>2],A=0|n[A+4>>2]}}}while(0);if(Q=0|$e(0|t,0|r,5,0),(m=0|p())>>>0<0|!(0|m)&Q>>>0<11){T=85;break}if(Q=0|rt(0|t,0|r,6,0),p(),!(Q=0|qe(Q,8))){T=48;break}do{if(D){for(v=0,A=0,w=0,B=0;;){if(!(0|(a=0|n[(s=c=I+(v<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2])))m=w;else{h=0|st(0|a,0|s,56),p(),f=1+(h&=7)|0,d=-117440513&s,m=0|st(0|a,0|s,45),p();e:do{if(0|_(127&m)){if(g=0|st(0|a,0|s,52),p(),0|(g&=15))for(u=1;;){if(!(!(a&(m=0|ft(7,0,3*(15-u|0)|0)))&!(d&p())))break e;if(!(u>>>0<g>>>0))break;u=u+1|0}a|=s=0|ft(0|f,0,56),s=p()|d,n[(f=c)>>2]=a,n[f+4>>2]=s,f=h+2|0}}while(0);7==(0|f)?(n[(m=Q+(A<<3)|0)>>2]=a,n[m+4>>2]=-117440513&s,A=0|$e(0|A,0|w,1,0),m=0|p()):m=w}if(v=0|$e(0|v,0|B,1,0),!((0|(B=0|p()))<(0|r)|(0|B)==(0|r)&v>>>0<t>>>0))break;w=m}if(D){if(b=P>>>0>15,M=0|ft(0|P,0,52),k=0|p(),!C){for(a=0,u=0,f=0,s=0;!(0|l)&!(0|o)||(n[(P=e+(a<<3)|0)>>2]=l,n[P+4>>2]=o,a=0|$e(0|a,0|u,1,0),u=0|p()),f=0|$e(0|f,0|s,1,0),(0|(s=0|p()))<(0|r)|(0|s)==(0|r)&f>>>0<t>>>0;)l=0|n[(o=F+(f<<3)|0)>>2],o=0|n[o+4>>2];o=m;break}for(a=0,u=0,s=0,f=0;;){do{if(!(!(0|l)&!(0|o))){if(g=0|st(0|l,0|o,52),p(),b|(0|(g&=15))<(0|P)){T=80;break A}if((0|g)!=(0|P)){if(c=l|M,h=-15728641&o|k,g>>>0>=y>>>0){d=P;do{C=0|ft(7,0,3*(14-d|0)|0),d=d+1|0,c|=C,h=p()|h}while(d>>>0<g>>>0)}}else c=l,h=o;w=0|ot(0|c,0|h,0|t,0|r),d=0,g=0,B=0|p();do{if((0|d)>(0|r)|(0|d)==(0|r)&g>>>0>t>>>0){T=81;break A}if((-117440513&(v=0|n[4+(C=I+(w<<3)|0)>>2]))==(0|h)&&(0|n[C>>2])==(0|c)){T=65;break}w=0|it(0|(C=0|$e(0|w,0|B,1,0)),0|p(),0|t,0|r),B=0|p(),g=0|$e(0|g,0|d,1,0),d=0|p(),C=I+(w<<3)|0}while((0|n[C>>2])!=(0|c)||(0|n[C+4>>2])!=(0|h));if(65==(0|T)&&(T=0,!0&100663296==(117440512&v)))break;n[(C=e+(a<<3)|0)>>2]=l,n[C+4>>2]=o,a=0|$e(0|a,0|u,1,0),u=0|p()}}while(0);if(s=0|$e(0|s,0|f,1,0),!((0|(f=0|p()))<(0|r)|(0|f)==(0|r)&s>>>0<t>>>0))break;l=0|n[(o=F+(s<<3)|0)>>2],o=0|n[o+4>>2]}o=m}else a=0,o=m}else a=0,A=0,o=0}while(0);if(gt(0|I,0,0|i),dt(0|F,0|Q,A<<3),Ke(Q),!(0|A)&!(0|o)){T=89;break}e=e+(a<<3)|0,r=o,t=A}if(16==(0|T))!0&!(117440512&o)?(o=4,T=27):T=21;else if(31==(0|T))E(27795,27122,529,27132);else{if(41==(0|T))return Ke(F),Ke(I),10;if(48==(0|T))return Ke(F),Ke(I),13;80==(0|T)?E(27795,27122,620,27132):81==(0|T)?E(27795,27122,632,27132):85==(0|T)&&(dt(0|e,0|F,t<<3),T=89)}return 21==(0|T)?(Ke(F),Ke(I),0|(T=5)):27==(0|T)?(Ke(F),Ke(I),0|(T=o)):89==(0|T)?(Ke(F),Ke(I),0|(T=0)):0},_destroyLinkedMultiPolygon:be,_directedEdgeToBoundary:IA,_directedEdgeToCells:function(A,e,t){A|=0;var r,i,o,a=0;return r=T,T=T+16|0,a=r,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,n[(o=t|=0)>>2]=A,n[o+4>>2]=i,n[a>>2]=0,e=0|st(0|A,0|e,56),p(),a=0|U(A,i,7&e,a,t+8|0),T=r,0|a):(T=r,0|(a=6))},_edgeLengthKm:function(A,e,t){t|=0;var r,o=0,a=0,s=0,f=0,l=0,d=0,g=0;if(r=T,T=T+176|0,0|(A=0|IA(A|=0,e|=0,f=r)))return f=A,s=+i[t>>3],i[t>>3]=s*=6371.007180918475,T=r,0|f;if(i[t>>3]=0,(0|(A=0|n[f>>2]))<=1)return f=0,s=0,i[t>>3]=s*=6371.007180918475,T=r,0|f;e=A+-1|0,A=0,o=+i[f+8>>3],a=+i[f+16>>3],s=0;do{d=o,l=a,l=(g=+h(.5*((o=+i[f+8+((A=A+1|0)<<4)>>3])-d)))*g+(l=+h(.5*((a=+i[f+8+(A<<4)+8>>3])-l)))*(+c(+d)*+c(+o)*l),s+=2*+B(+ +u(+l),+ +u(+(1-l)))}while((0|A)!=(0|e));return i[t>>3]=s,f=0,g=s,i[t>>3]=g*=6371.007180918475,T=r,0|f},_edgeLengthM:function(A,e,t){t|=0;var r,o=0,a=0,s=0,f=0,l=0,d=0,g=0;if(r=T,T=T+176|0,0|(A=0|IA(A|=0,e|=0,f=r)))return f=A,s=+i[t>>3],s*=6371.007180918475,i[t>>3]=s*=1e3,T=r,0|f;if(i[t>>3]=0,(0|(A=0|n[f>>2]))<=1)return f=0,s=0,s*=6371.007180918475,i[t>>3]=s*=1e3,T=r,0|f;e=A+-1|0,A=0,o=+i[f+8>>3],a=+i[f+16>>3],s=0;do{d=o,l=a,l=(g=+h(.5*((o=+i[f+8+((A=A+1|0)<<4)>>3])-d)))*g+(l=+h(.5*((a=+i[f+8+(A<<4)+8>>3])-l)))*(+c(+d)*+c(+o)*l),s+=2*+B(+ +u(+l),+ +u(+(1-l)))}while((0|A)!=(0|e));return i[t>>3]=s,f=0,g=s,g*=6371.007180918475,i[t>>3]=g*=1e3,T=r,0|f},_edgeLengthRads:function(A,e,t){t|=0;var r,o=0,a=0,s=0,f=0,l=0,d=0,g=0;if(r=T,T=T+176|0,0|(A=0|IA(A|=0,e|=0,f=r)))return T=r,0|A;if(i[t>>3]=0,(0|(A=0|n[f>>2]))<=1)return T=r,0;e=A+-1|0,A=0,o=+i[f+8>>3],a=+i[f+16>>3],s=0;do{d=o,l=a,l=(g=+h(.5*((o=+i[f+8+((A=A+1|0)<<4)>>3])-d)))*g+(l=+h(.5*((a=+i[f+8+(A<<4)+8>>3])-l)))*(+c(+o)*+c(+d)*l),s+=2*+B(+ +u(+l),+ +u(+(1-l)))}while((0|A)<(0|e));return i[t>>3]=s,T=r,0},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_free:Ke,_getBaseCellNumber:OA,_getDirectedEdgeDestination:function(A,e,t){A|=0,e|=0,t|=0;var r,i,o=0;return r=T,T=T+16|0,n[(o=r)>>2]=0,!0&268435456==(2013265920&e)?(i=0|st(0|A,0|e,56),p(),o=0|U(A,-2130706433&e|134217728,7&i,o,t),T=r,0|o):(T=r,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,t){return t|=0,!0&268435456==(2013265920&(e|=0))?(n[t>>2]=A|=0,n[t+4>>2]=-2130706433&e|134217728,0|(t=0)):0|(t=6)},_getHexagonAreaAvgKm2:he,_getHexagonAreaAvgM2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20784+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgKm:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20912+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgM:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[21040+(A<<3)>>3],0|(e=0))},_getIcosahedronFaces:function A(e,t,r){r|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0;i=T,T=T+128|0,c=i+112|0,s=i+96|0,h=i,a=0|st(0|(e|=0),0|(t|=0),52),p(),n[c>>2]=u=15&a,f=0|st(0|e,0|t,45),p(),f&=127;A:do{if(0|_(f)){if(0|u)for(o=1;;){if(!(!((l=0|ft(7,0,3*(15-o|0)|0))&e)&!(p()&t))){a=0;break A}if(!(o>>>0<u>>>0))break;o=o+1|0}if(!(1&a))return l=0|ft(u+1|0,0,52),h=p()|-15728641&t,h=0|A((l|e)&~(c=0|ft(7,0,3*(14-u|0)|0)),h&~p(),r),T=i,0|h;a=1}else a=0}while(0);if(!(o=0|te(e,t,s))){a?(GA(s,c,h),l=5):(RA(s,c,h),l=6);A:do{if(0|_(f))if(u)for(o=1;;){if(!(!((f=0|ft(7,0,3*(15-o|0)|0))&e)&!(p()&t))){e=2;break A}if(!(o>>>0<u>>>0)){e=5;break}o=o+1|0}else e=5;else e=2}while(0);gt(0|r,-1,e<<2);A:do{if(a)for(s=0;;){if(UA(f=h+(s<<4)|0,0|n[c>>2]),-1==(0|(u=0|n[r>>2]))|(0|u)==(0|(f=0|n[f>>2])))o=r;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}u=0|n[(o=r+(a<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|f)))}if(n[o>>2]=f,(s=s+1|0)>>>0>=l>>>0){o=0;break}}else for(s=0;;){if(SA(f=h+(s<<4)|0,0|n[c>>2],0,1),-1==(0|(u=0|n[r>>2]))|(0|u)==(0|(f=0|n[f>>2])))o=r;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}u=0|n[(o=r+(a<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|f)))}if(n[o>>2]=f,(s=s+1|0)>>>0>=l>>>0){o=0;break}}}while(0)}return T=i,0|o},_getNumCells:de,_getPentagons:ie,_getRes0Cells:function(A){A|=0;var e=0,t=0,r=0;e=0;do{ft(0|e,0,45),r=134225919|p(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|st(0|(A|=0),0|(e|=0),52),p(),15&e},_greatCircleDistanceKm:ce,_greatCircleDistanceM:function(A,e){var t,r,n,o=0;return o=(n=+h(.5*((r=+i[(e|=0)>>3])-(t=+i[(A|=0)>>3]))))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+B(+ +u(+o),+ +u(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){var t,r,n,o=0;return o=(n=+h(.5*((r=+i[(e|=0)>>3])-(t=+i[(A|=0)>>3]))))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+B(+ +u(+o),+ +u(+(1-o)))},_gridDisk:L,_gridDiskDistances:x,_gridDistance:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a,s=0,f=0;return a=T,T=T+32|0,f=a,0|(o=0|me(A|=0,e|=0,A,e,s=a+12|0))?(T=a,0|(f=o)):0|(A=0|me(A,e,t,r,f))?(T=a,0|(f=A)):(s=0|pA(s,f),n[(f=i)>>2]=s,n[f+4>>2]=((0|s)<0)<<31>>31,T=a,0|(f=0))},_gridPathCells:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a,s=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,C=0,y=0;if(a=T,T=T+48|0,u=a+12|0,C=a,!(s=0|me(A|=0,e|=0,A,e,o=a+24|0))&&!(s=0|me(A,e,t,r,u))){D=((0|(Q=0|pA(o,u)))<0)<<31>>31,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,0|me(A,e,A,e,o)&&E(27795,27538,692,27747),0|me(A,e,t,r,u)&&E(27795,27538,697,27747),yA(o),yA(u),b=(d=0|Q?1/+(0|Q):0)*+((0|n[u>>2])-(t=0|n[o>>2])|0),k=d*+((0|n[u+4>>2])-(r=0|n[(M=o+4|0)>>2])|0),d*=+((0|n[u+8>>2])-(s=0|n[(m=o+8|0)>>2])|0),n[C>>2]=t,n[(g=C+4|0)>>2]=r,n[(w=C+8|0)>>2]=s;A:do{if((0|Q)<0)s=0;else for(v=0,B=0;;){y=b*(c=+(B>>>0)+4294967296*+(0|v))+ +(0|t),l=k*c+ +(0|r),c=d*c+ +(0|s),t=~~+ht(+y),u=~~+ht(+l),s=~~+ht(+c),y=+f(+(+(0|t)-y)),l=+f(+(+(0|u)-l)),c=+f(+(+(0|s)-c));do{if(!(y>l&y>c)){if(h=0-t|0,l>c){r=h-s|0;break}r=u,s=h-u|0;break}t=0-(u+s)|0,r=u}while(0);if(n[C>>2]=t,n[g>>2]=r,n[w>>2]=s,PA(C),0|(s=0|Qe(A,e,C,i+(B<<3)|0)))break A;if(!((0|v)<(0|D)|(0|v)==(0|D)&B>>>0<Q>>>0)){s=0;break A}t=0|$e(0|B,0|v,1,0),v=r=0|p(),B=t,t=0|n[o>>2],r=0|n[M>>2],s=0|n[m>>2]}}while(0);return T=a,0|s}return T=a,0|s},_gridPathCellsSize:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a=0,s=0,f=0;return o=T,T=T+32|0,f=o,(a=0|me(A|=0,e|=0,A,e,s=o+12|0))||(a=0|me(A,e,t,r,f))?(T=o,0|(f=a)):(r=0|$e(0|(r=0|pA(s,f)),((0|r)<0)<<31>>31,1,0),s=0|p(),n[(f=i)>>2]=r,n[f+4>>2]=s,T=o,0|(f=0))},_gridRing:function(A,e,t,r){return 0|z(A|=0,e|=0,t|=0,r|=0)?(gt(0|r,0,48*t|0),0|(r=0|R(A,e,t,r))):0|(r=0)},_gridRingUnsafe:z,_i64Add:$e,_i64Subtract:At,_isPentagon:VA,_isResClassIII:function(A,e){return e=0|st(0|(A|=0),0|(e|=0),52),p(),1&e},_isValidCell:YA,_isValidDirectedEdge:function(A,e){var t=0;switch(t=0|st(0|(A|=0),0|(e|=0),56),p(),7&t){case 0:case 7:return 0}return t=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|VA(A,t))?0|(t=0):0|(t=0|YA(A,t)):0|(t=0)},_isValidVertex:function(A,e){A|=0;var t,r,i=0,o=0;return r=T,T=T+16|0,t=r,!0&536870912==(2013265920&(e|=0))&&0|YA(A,i=-2130706433&e|134217728)?(o=0|st(0|A,0|e,56),p(),o=!(0|Ye(A,i,7&o,t)),T=r,0|(i=o&((0|n[(i=t)>>2])==(0|A)?(0|n[i+4>>2])==(0|e):0)&1)):(T=r,0|(i=0))},_latLngToCell:Ae,_llvm_ctlz_i64:ut,_llvm_maxnum_f64:lt,_llvm_minnum_f64:ct,_llvm_round_f64:ht,_localIjToCell:function(A,e,t,r,n){var i,o;return A|=0,e|=0,t|=0,n|=0,o=T,T=T+16|0,i=o,(r|=0)?t=15:(t=0|CA(t,i))||(t=0|Qe(A,e,i,n)),T=o,0|t},_malloc:Xe,_maxFaceCount:function(A,e,t){t|=0;var r=0,i=0;if(i=0|st(0|(A|=0),0|(e|=0),45),p(),!(0|_(127&i)))return n[t>>2]=i=2,0;if(i=0|st(0|A,0|e,52),p(),!(i&=15))return n[t>>2]=i=5,0;for(r=1;;){if(!(!(ft(7,0,3*(15-r|0)|0)&A)&!(p()&e))){r=2,A=6;break}if(!(r>>>0<i>>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?(n[t>>2]=r,0):0},_maxGridDiskSize:function(A,e){e|=0;var t=0,r=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|de(15,e)):(i=0|nt(0|A,0|(t=((0|A)<0)<<31>>31),3,0),r=0|p(),t=0|$e(0|A,0|t,1,0),t=0|$e(0|(t=0|nt(0|i,0|r,0|t,0|p())),0|p(),1,0),A=0|p(),n[e>>2]=t,n[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,a=0,s=0,f=0,u=0;if(i=T,T=T+48|0,o=i+16|0,a=i+8|0,s=i,0|(t=0|Fe(t|=0)))return T=i,0|t;if(f=0|n[(u=A)+4>>2],n[(t=a)>>2]=n[u>>2],n[t+4>>2]=f,Ie(a,o),!(t=0|tA(o,e,s))){if(e=0|n[a>>2],(0|(a=0|n[A+8>>2]))>0){o=0|n[A+12>>2],t=0;do{e=(0|n[o+(t<<3)>>2])+e|0,t=t+1|0}while((0|t)<(0|a))}o=0|n[(t=s)>>2],(0|(t=0|n[t+4>>2]))<(0|(a=((0|e)<0)<<31>>31))|(0|t)==(0|a)&o>>>0<e>>>0?(n[(t=s)>>2]=e,n[t+4>>2]=a,t=a):e=o,f=0|$e(0|e,0|t,12,0),u=0|p(),n[(t=s)>>2]=f,n[t+4>>2]=u,n[(t=r)>>2]=f,n[t+4>>2]=u,t=0}return T=i,0|t},_maxPolygonToCellsSizeExperimental:function(A,e,t,o){e|=0,t|=0,o|=0;var a,s,u=0,l=0,h=0,d=0,g=0,w=0,v=0,B=0;if(s=T,T=T+48|0,g=s+32|0,d=s+40|0,a=s,!(0|n[(A|=0)>>2]))return n[(w=o)>>2]=0,n[w+4>>2]=0,T=s,0;_A(g,0,0,0),u=0|n[(h=g)>>2],h=0|n[h+4>>2];do{if(e>>>0>15)n[(w=a)>>2]=0,n[w+4>>2]=0,n[a+8>>2]=4,n[a+12>>2]=-1,t=a+29|0,n[(w=a+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[0|t]=0|r[0|d],r[t+1|0]=0|r[d+1|0],r[t+2|0]=0|r[d+2|0],t=4,w=9;else{if(0|(t=0|Fe(t))){n[(g=a)>>2]=0,n[g+4>>2]=0,n[a+8>>2]=t,n[a+12>>2]=-1,w=a+29|0,n[(g=a+16|0)>>2]=0,n[g+4>>2]=0,n[g+8>>2]=0,r[g+12|0]=0,r[0|w]=0|r[0|d],r[w+1|0]=0|r[d+1|0],r[w+2|0]=0|r[d+2|0],w=9;break}if(!(t=0|qe(1+(0|n[A+8>>2])|0,32))){n[(w=a)>>2]=0,n[w+4>>2]=0,n[a+8>>2]=13,n[a+12>>2]=-1,t=a+29|0,n[(w=a+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[0|t]=0|r[0|d],r[t+1|0]=0|r[d+1|0],r[t+2|0]=0|r[d+2|0],t=13,w=9;break}Te(A,t),n[(B=a)>>2]=u,n[B+4>>2]=h,n[(h=a+8|0)>>2]=0,n[a+12>>2]=e,n[a+20>>2]=A,n[a+24>>2]=t,r[a+28|0]=0,r[0|(u=a+29|0)]=0|r[0|d],r[u+1|0]=0|r[d+1|0],r[u+2|0]=0|r[d+2|0],n[a+16>>2]=3,v=+K(t),v*=+J(t),l=+f(+ +i[t>>3]),l=v/+c(+ +ct(+l,+ +f(+ +i[t+8>>3])))*6371.007180918475*6371.007180918475,t=0|n[(u=a+12|0)>>2];A:do{if((0|t)>0)do{if(he(t+-1|0,g),!(l/+i[g>>3]>10))break A;n[u>>2]=t=(B=0|n[u>>2])-1|0}while((0|B)>1)}while(0);if(Ce(a),n[(u=o)>>2]=0,n[u+4>>2]=0,!(!(0|(t=0|n[(u=a)>>2]))&!(0|(u=0|n[u+4>>2]))))do{HA(t,u,e,g),d=0|$e(0|n[(A=o)>>2],0|n[A+4>>2],0|n[(d=g)>>2],0|n[d+4>>2]),A=0|p(),n[(B=o)>>2]=d,n[B+4>>2]=A,Ce(a),t=0|n[(B=a)>>2],u=0|n[B+4>>2]}while(!(!(0|t)&!(0|u)));t=0|n[h>>2]}}while(0);return T=s,0|t},_memcpy:dt,_memset:gt,_originToDirectedEdges:function(A,e,t){t|=0;var r,i=0;return r=!(0|VA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o,a,s,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,E=0,C=0,y=0,P=0,I=0,F=0,L=0,x=0,U=0,z=0,R=0;if(s=T,T=T+112|0,i=s+80|0,h=s+72|0,o=s,a=s+56|0,0|(f=0|Fe(t|=0)))return T=s,0|f;if(!(R=0|Xe(32+(n[(d=A+8|0)>>2]<<5)|0)))return T=s,13;if(Te(A,R),!(f=0|Fe(t))){if(z=0|n[(U=A)+4>>2],n[(f=h)>>2]=n[U>>2],n[f+4>>2]=z,Ie(h,i),f=0|tA(i,e,o))U=0,z=0;else{if(f=0|n[h>>2],(0|(u=0|n[d>>2]))>0){l=0|n[A+12>>2],t=0;do{f=(0|n[l+(t<<3)>>2])+f|0,t=t+1|0}while((0|t)!=(0|u));t=f}else t=f;u=0|n[(f=o)>>2],(0|(f=0|n[f+4>>2]))<(0|(l=((0|t)<0)<<31>>31))|(0|f)==(0|l)&u>>>0<t>>>0?(n[(f=o)>>2]=t,n[f+4>>2]=l,f=l):t=u,U=0|$e(0|t,0|f,12,0),z=0|p(),n[(f=o)>>2]=U,n[f+4>>2]=z,f=0}if(!f){if(!(t=0|qe(U,8)))return Ke(R),T=s,13;if(!(c=0|qe(U,8)))return Ke(R),Ke(t),T=s,13;n[(L=i)>>2]=0,n[L+4>>2]=0,x=0|n[(L=A)+4>>2],n[(f=h)>>2]=n[L>>2],n[f+4>>2]=x,f=0|Y(h,U,z,e,i,t,c);A:do{if(f)Ke(t),Ke(c),Ke(R);else{e:do{if((0|n[d>>2])>0){for(l=A+12|0,u=0;f=0|Y((0|n[l>>2])+(u<<3)|0,U,z,e,i,t,c),u=u+1|0,!(0|f);)if((0|u)>=(0|n[d>>2]))break e;Ke(t),Ke(c),Ke(R);break A}}while(0);(0|z)>0|!(0|z)&U>>>0>0&>(0|c,0,U<<3),L=0|n[(x=i)+4>>2];e:do{if((0|L)>0|!(0|L)&(0|n[x>>2])>>>0>0){P=t,I=c,F=t,L=c,x=t,f=t,E=t,C=c,y=c,t=c;t:for(;;){for(k=0,m=0,Q=0,D=0,u=0,l=0;;){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|G(d=0|n[(e=P+(k<<3)|0)>>2],e=0|n[e+4>>2],1,o,0)){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|qe(7,4))&&(S(d,e,1,o,c,7,0,0),Ke(c))}for(M=0;;){B=0|n[(b=o+(M<<3)|0)>>2],b=0|n[b+4>>2];r:do{if(!(0|B)&!(0|b))c=u,h=l;else{if(g=0|ot(0|B,0|b,0|U,0|z),d=0|p(),!(!(0|(h=0|n[(e=c=r+(g<<3)|0)>>2]))&!(0|(e=0|n[e+4>>2])))){w=0,v=0;do{if((0|w)>(0|z)|(0|w)==(0|z)&v>>>0>U>>>0)break t;if((0|h)==(0|B)&(0|e)==(0|b)){c=u,h=l;break r}g=0|it(0|(c=0|$e(0|g,0|d,1,0)),0|p(),0|U,0|z),d=0|p(),v=0|$e(0|v,0|w,1,0),w=0|p(),h=0|n[(e=c=r+(g<<3)|0)>>2],e=0|n[e+4>>2]}while(!(!(0|h)&!(0|e)))}if(!(0|B)&!(0|b)){c=u,h=l;break}re(B,b,a),0|Le(A,R,a)&&(v=0|$e(0|u,0|l,1,0),l=0|p(),n[(w=c)>>2]=B,n[w+4>>2]=b,n[(u=I+(u<<3)|0)>>2]=B,n[u+4>>2]=b,u=v),c=u,h=l}}while(0);if((M=M+1|0)>>>0>=7)break;u=c,l=h}if(k=0|$e(0|k,0|m,1,0),m=0|p(),Q=0|$e(0|Q,0|D,1,0),D=0|p(),u=0|n[(l=i)>>2],!((0|D)<(0|(l=0|n[l+4>>2]))|(0|D)==(0|l)&Q>>>0<u>>>0))break;u=c,l=h}if((0|l)>0|!(0|l)&u>>>0>0){u=0,l=0;do{n[(D=P+(u<<3)|0)>>2]=0,n[D+4>>2]=0,u=0|$e(0|u,0|l,1,0),l=0|p(),Q=0|n[(D=i)+4>>2]}while((0|l)<(0|Q)|((0|l)==(0|Q)?u>>>0<(0|n[D>>2])>>>0:0))}if(n[(D=i)>>2]=c,n[D+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;M=t,k=y,m=x,Q=C,D=I,t=E,y=f,C=F,E=M,f=k,x=L,L=m,F=Q,I=P,P=D}Ke(F),Ke(L),Ke(R),f=1;break A}f=c}while(0);Ke(R),Ke(t),Ke(f),f=0}}while(0);return T=s,0|f}}return Ke(R),T=s,0|f},_polygonToCellsExperimental:function(A,e,t,r,i,o){r|=0,i|=0,o|=0;var a,s,f,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0;f=T,T=T+160|0,l=f+64|0,d=f+112|0,v=f,Ee(h=f+80|0,A|=0,e|=0,t|=0),oe(l,0|n[(c=h)>>2],0|n[c+4>>2],e),a=0|n[(c=l)>>2],c=0|n[c+4>>2],u=0|n[h+8>>2],n[(g=d+4|0)>>2]=n[h>>2],n[g+4>>2]=n[h+4>>2],n[g+8>>2]=n[h+8>>2],n[g+12>>2]=n[h+12>>2],n[g+16>>2]=n[h+16>>2],n[g+20>>2]=n[h+20>>2],n[g+24>>2]=n[h+24>>2],n[g+28>>2]=n[h+28>>2],n[(g=v)>>2]=a,n[g+4>>2]=c,n[(g=v+8|0)>>2]=u,e=d,t=36+(A=v+12|0)|0;do{n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}while((0|A)<(0|t));if(n[(d=v+48|0)>>2]=n[l>>2],n[d+4>>2]=n[l+4>>2],n[d+8>>2]=n[l+8>>2],n[d+12>>2]=n[l+12>>2],!(0|a)&!(0|c))return T=f,0|u;t=v+16|0,s=v+24|0,h=v+28|0,u=0,l=0,e=a,A=c;do{if(!((0|u)<(0|i)|(0|u)==(0|i)&l>>>0<r>>>0)){w=4;break}if(c=l,l=0|$e(0|l,0|u,1,0),u=0|p(),n[(c=o+(c<<3)|0)>>2]=e,n[c+4>>2]=A,se(d),!(0|(e=0|n[(A=d)>>2]))&!(0|(A=0|n[A+4>>2]))){if(Ce(t),!(0|(A=0|n[(e=t)>>2]))&!(0|(e=0|n[e+4>>2]))){w=10;break}ae(A,e,0|n[h>>2],d),e=0|n[(A=d)>>2],A=0|n[A+4>>2]}n[(c=v)>>2]=e,n[c+4>>2]=A}while(!(!(0|e)&!(0|A)));return 4==(0|w)?(0|(e=0|n[(A=v+40|0)>>2])&&Ke(e),n[(w=v+16|0)>>2]=0,n[w+4>>2]=0,n[s>>2]=0,n[v+36>>2]=0,n[h>>2]=-1,n[v+32>>2]=0,n[A>>2]=0,ae(0,0,0,d),n[v>>2]=0,n[v+4>>2]=0,n[g>>2]=0,T=f,0|(v=14)):(10==(0|w)&&(n[v>>2]=0,n[v+4>>2]=0,n[g>>2]=n[s>>2]),T=f,0|(v=0|n[g>>2]))},_readInt64AsDoubleFromPointer:function(A){return+(+((0|n[(A|=0)>>2])>>>0)+4294967296*+(0|n[A+4>>2]))},_res0CellCount:function(){return 122},_round:wt,_sbrk:vt,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(A,e,t,r,i,o,a){A|=0,r|=0,i|=0,o|=0;var s,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0;if(s=T,T=T+16|0,w=s,!((0|(t|=0))>0|!(0|t)&(e|=0)>>>0>0))return T=s,0;if((0|(a|=0))>=16)return T=s,12;d=0,g=0,h=0,f=0;A:for(;;){if(c=0|st(0|(u=0|n[(l=A+(d<<3)|0)>>2]),0|(l=0|n[l+4>>2]),52),p(),(15&c)>(0|a)){f=12,u=11;break}if(oe(w,u,l,a),!(0|(l=0|n[(c=w)>>2]))&!(0|(c=0|n[c+4>>2])))u=h;else{u=h;do{if(!((0|f)<(0|o)|(0|f)==(0|o)&u>>>0<i>>>0)){u=10;break A}n[(h=r+(u<<3)|0)>>2]=l,n[h+4>>2]=c,u=0|$e(0|u,0|f,1,0),f=0|p(),se(w),l=0|n[(h=w)>>2],c=0|n[h+4>>2]}while(!(!(0|l)&!(0|c)))}if(d=0|$e(0|d,0|g,1,0),!((0|(g=0|p()))<(0|t)|(0|g)==(0|t)&d>>>0<e>>>0)){f=0,u=11;break}h=u}return 10==(0|u)?(T=s,0|(w=14)):11==(0|u)?(T=s,0|f):0},_uncompactCellsSize:function(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,a,s=0,f=0,u=0,l=0,c=0,h=0;a=T,T=T+16|0,o=a;A:do{if((0|t)>0|!(0|t)&e>>>0>0){for(c=0,f=0,s=0,h=0;;){if(!(!(0|(u=0|n[(l=A+(c<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2]))||(l=!(0|HA(u,l,r,o)),f=0|$e(0|n[(u=o)>>2],0|n[u+4>>2],0|f,0|s),s=0|p(),l))){s=12;break}if(c=0|$e(0|c,0|h,1,0),!((0|(h=0|p()))<(0|t)|(0|h)==(0|t)&c>>>0<e>>>0))break A}return T=a,0|s}f=0,s=0}while(0);return n[i>>2]=f,n[i+4>>2]=s,T=a,0},_vertexToLatLng:function(A,e,t){t|=0;var r,i,o,a,s=0,f=0;return a=T,T=T+192|0,i=a,o=a+168|0,s=0|st(0|(A|=0),0|(e|=0),56),p(),s&=7,0|(r=0|te(A,f=-2130706433&e|134217728,o))?(T=a,0|(f=r)):(e=0|st(0|A,0|e,52),p(),e&=15,0|VA(A,f)?xA(o,e,s,1,i):zA(o,e,s,1,i),n[t>>2]=n[(f=i+8|0)>>2],n[t+4>>2]=n[f+4>>2],n[t+8>>2]=n[f+8>>2],n[t+12>>2]=n[f+12>>2],T=a,0|(f=0))},establishStackSpace:function(A){T=A|=0},stackAlloc:function(A){var e;return e=T,T=15+(T=T+(A|=0)|0)&-16,0|e},stackRestore:function(A){T=A|=0},stackSave:function(){return 0|T}}}({Math,Int8Array,Int32Array,Float64Array},{b:function(A){s=A},c:function(){return s},d:function(A,e,t,r){AA("Assertion failed: "+b(A)+", at: "+[e?b(e):"unknown filename",t,r?b(r):"unknown function"])},e:function(A){return t.___errno_location&&(g[t.___errno_location()>>2]=A),A},f:R,g:function(A,e,t){h.set(h.subarray(e,e+t),A)},h:function(A){var e=R(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?M(2*n,t):Math.min(M((3*n+2147483648)/4,t),r);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(c),W(e),k(e),1}catch(A){}}(n)},i:function(){AA("OOM")},o:28624,p:28608},l);t.___divdi3=_.___divdi3,t.___muldi3=_.___muldi3,t.___remdi3=_.___remdi3,t.___uremdi3=_.___uremdi3,t._areNeighborCells=_._areNeighborCells,t._bitshift64Ashr=_._bitshift64Ashr,t._bitshift64Lshr=_._bitshift64Lshr,t._bitshift64Shl=_._bitshift64Shl,t._calloc=_._calloc,t._cellAreaKm2=_._cellAreaKm2,t._cellAreaM2=_._cellAreaM2,t._cellAreaRads2=_._cellAreaRads2,t._cellToBoundary=_._cellToBoundary,t._cellToCenterChild=_._cellToCenterChild,t._cellToChildPos=_._cellToChildPos,t._cellToChildren=_._cellToChildren,t._cellToChildrenSize=_._cellToChildrenSize,t._cellToLatLng=_._cellToLatLng,t._cellToLocalIj=_._cellToLocalIj,t._cellToParent=_._cellToParent,t._cellToVertex=_._cellToVertex,t._cellToVertexes=_._cellToVertexes,t._cellsToDirectedEdge=_._cellsToDirectedEdge,t._cellsToLinkedMultiPolygon=_._cellsToLinkedMultiPolygon,t._childPosToCell=_._childPosToCell,t._compactCells=_._compactCells,t._destroyLinkedMultiPolygon=_._destroyLinkedMultiPolygon,t._directedEdgeToBoundary=_._directedEdgeToBoundary,t._directedEdgeToCells=_._directedEdgeToCells,t._edgeLengthKm=_._edgeLengthKm,t._edgeLengthM=_._edgeLengthM,t._edgeLengthRads=_._edgeLengthRads;var W=t._emscripten_replace_memory=_._emscripten_replace_memory;t._free=_._free,t._getBaseCellNumber=_._getBaseCellNumber,t._getDirectedEdgeDestination=_._getDirectedEdgeDestination,t._getDirectedEdgeOrigin=_._getDirectedEdgeOrigin,t._getHexagonAreaAvgKm2=_._getHexagonAreaAvgKm2,t._getHexagonAreaAvgM2=_._getHexagonAreaAvgM2,t._getHexagonEdgeLengthAvgKm=_._getHexagonEdgeLengthAvgKm,t._getHexagonEdgeLengthAvgM=_._getHexagonEdgeLengthAvgM,t._getIcosahedronFaces=_._getIcosahedronFaces,t._getNumCells=_._getNumCells,t._getPentagons=_._getPentagons,t._getRes0Cells=_._getRes0Cells,t._getResolution=_._getResolution,t._greatCircleDistanceKm=_._greatCircleDistanceKm,t._greatCircleDistanceM=_._greatCircleDistanceM,t._greatCircleDistanceRads=_._greatCircleDistanceRads,t._gridDisk=_._gridDisk,t._gridDiskDistances=_._gridDiskDistances,t._gridDistance=_._gridDistance,t._gridPathCells=_._gridPathCells,t._gridPathCellsSize=_._gridPathCellsSize,t._gridRing=_._gridRing,t._gridRingUnsafe=_._gridRingUnsafe,t._i64Add=_._i64Add,t._i64Subtract=_._i64Subtract,t._isPentagon=_._isPentagon,t._isResClassIII=_._isResClassIII,t._isValidCell=_._isValidCell,t._isValidDirectedEdge=_._isValidDirectedEdge,t._isValidVertex=_._isValidVertex,t._latLngToCell=_._latLngToCell,t._llvm_ctlz_i64=_._llvm_ctlz_i64,t._llvm_maxnum_f64=_._llvm_maxnum_f64,t._llvm_minnum_f64=_._llvm_minnum_f64,t._llvm_round_f64=_._llvm_round_f64,t._localIjToCell=_._localIjToCell,t._malloc=_._malloc,t._maxFaceCount=_._maxFaceCount,t._maxGridDiskSize=_._maxGridDiskSize,t._maxPolygonToCellsSize=_._maxPolygonToCellsSize,t._maxPolygonToCellsSizeExperimental=_._maxPolygonToCellsSizeExperimental,t._memcpy=_._memcpy,t._memset=_._memset,t._originToDirectedEdges=_._originToDirectedEdges,t._pentagonCount=_._pentagonCount,t._polygonToCells=_._polygonToCells,t._polygonToCellsExperimental=_._polygonToCellsExperimental,t._readInt64AsDoubleFromPointer=_._readInt64AsDoubleFromPointer,t._res0CellCount=_._res0CellCount,t._round=_._round,t._sbrk=_._sbrk,t._sizeOfCellBoundary=_._sizeOfCellBoundary,t._sizeOfCoordIJ=_._sizeOfCoordIJ,t._sizeOfGeoLoop=_._sizeOfGeoLoop,t._sizeOfGeoPolygon=_._sizeOfGeoPolygon,t._sizeOfH3Index=_._sizeOfH3Index,t._sizeOfLatLng=_._sizeOfLatLng,t._sizeOfLinkedGeoPolygon=_._sizeOfLinkedGeoPolygon,t._uncompactCells=_._uncompactCells,t._uncompactCellsSize=_._uncompactCellsSize,t._vertexToLatLng=_._vertexToLatLng,t.establishStackSpace=_.establishStackSpace;var H,V,j=t.stackAlloc=_.stackAlloc,N=t.stackRestore=_.stackRestore,Z=t.stackSave=_.stackSave;if(t.asm=_,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every((function(A){return"number"===A}));return"string"!==e&&n&&!r?u(A):function(){return function(A,e,t,r){var n={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);!function(A,e,t){!function(A,e,t,r){if(!(r>0))return 0;for(var n=t+r-1,i=0;i<A.length;++i){var o=A.charCodeAt(i);if(o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&A.charCodeAt(++i)),o<=127){if(t>=n)break;e[t++]=o}else if(o<=2047){if(t+1>=n)break;e[t++]=192|o>>6,e[t++]=128|63&o}else if(o<=65535){if(t+2>=n)break;e[t++]=224|o>>12,e[t++]=128|o>>6&63,e[t++]=128|63&o}else{if(t+3>=n)break;e[t++]=240|o>>18,e[t++]=128|o>>12&63,e[t++]=128|o>>6&63,e[t++]=128|63&o}}e[t]=0}(A,h,e,t)}(A,e=j(t),t)}return e},array:function(A){var e=j(A.length);return function(A,e){c.set(A,e)}(A,e),e}},i=u(A),o=[],a=0;if(r)for(var s=0;s<r.length;s++){var f=n[t[s]];f?(0===a&&(a=Z()),o[s]=f(r[s])):o[s]=r[s]}var l=i.apply(null,o);return l=function(A){return"string"===e?b(A):"boolean"===e?Boolean(A):A}(l),0!==a&&N(a),l}(A,e,t,arguments)}},t.setValue=function(A,e,t){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":c[0|A]=e;break;case"i16":d[A>>1]=e;break;case"i32":g[A>>2]=e;break;case"i64":G=[e>>>0,(x=e,+y(x)>=1?x>0?(0|F(+I(x/4294967296),4294967295))>>>0:~~+P((x-+(~~x>>>0))/4294967296)>>>0:0)],g[A>>2]=G[0],g[A+4>>2]=G[1];break;case"float":w[A>>2]=e;break;case"double":v[A>>3]=e;break;default:AA("invalid type for setValue: "+t)}},t.getValue=function(A,e){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return c[0|A];case"i16":return d[A>>1];case"i32":case"i64":return g[A>>2];case"float":return w[A>>2];case"double":return v[A>>3];default:AA("invalid type for getValue: "+e)}return null},S){z(S)||(H=S,S=t.locateFile?t.locateFile(H,i):i+H),T++,t.monitorRunDependencies&&t.monitorRunDependencies(T);var J=function(A){A.byteLength&&(A=new Uint8Array(A)),h.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(T--,t.monitorRunDependencies&&t.monitorRunDependencies(T),0==T&&L){var A=L;L=null,A()}}()},X=function(){n(S,J,(function(){throw"could not load memory initializer "+S}))},K=Y(S);if(K)J(K.buffer);else if(t.memoryInitializerRequest){var q=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var r=Y(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+S),void X();e=r.buffer}J(e)};t.memoryInitializerRequest.response?setTimeout(q,0):t.memoryInitializerRequest.addEventListener("load",q)}else X()}function $(){function A(){V||(V=!0,f||(Q(p),Q(E),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)A=t.postRun.shift(),C.unshift(A);var A;Q(C)}()))}T>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)A=t.preRun.shift(),D.unshift(A);var A;Q(D)}(),T>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),A()}),1)):A()))}function AA(A){throw t.onAbort&&t.onAbort(A),o(A+=""),a(A),f=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(L=function A(){V||$(),V||(L=A)},t.run=$,t.abort=AA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return $(),A}("object"==typeof W?W:{}),H="number",V={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid"},j={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function N(A,e,t){var r=new Error((A[e]||"Unknown error")+" (code: "+e+(t&&"value"in t?", value: "+t.value:"")+")");return r.code=e,r}function Z(A,e){return N(V,A,2===arguments.length?{value:e}:{})}function J(A,e){return N(j,A,2===arguments.length?{value:e}:{})}function X(A){if(0!==A)throw Z(A)}var K={};[["sizeOfH3Index",H],["sizeOfLatLng",H],["sizeOfCellBoundary",H],["sizeOfGeoLoop",H],["sizeOfGeoPolygon",H],["sizeOfLinkedGeoPolygon",H],["sizeOfCoordIJ",H],["readInt64AsDoubleFromPointer",H],["isValidCell",H,[H,H]],["latLngToCell",H,[H,H,H,H]],["cellToLatLng",H,[H,H,H]],["cellToBoundary",H,[H,H,H]],["maxGridDiskSize",H,[H,H]],["gridDisk",H,[H,H,H,H]],["gridDiskDistances",H,[H,H,H,H,H]],["gridRing",H,[H,H,H,H]],["gridRingUnsafe",H,[H,H,H,H]],["maxPolygonToCellsSize",H,[H,H,H,H]],["polygonToCells",H,[H,H,H,H]],["maxPolygonToCellsSizeExperimental",H,[H,H,H,H]],["polygonToCellsExperimental",H,[H,H,H,H,H,H]],["cellsToLinkedMultiPolygon",H,[H,H,H]],["destroyLinkedMultiPolygon",null,[H]],["compactCells",H,[H,H,H,H]],["uncompactCells",H,[H,H,H,H,H,H]],["uncompactCellsSize",H,[H,H,H,H,H]],["isPentagon",H,[H,H]],["isResClassIII",H,[H,H]],["getBaseCellNumber",H,[H,H]],["getResolution",H,[H,H]],["maxFaceCount",H,[H,H,H]],["getIcosahedronFaces",H,[H,H,H]],["cellToParent",H,[H,H,H,H]],["cellToChildren",H,[H,H,H,H]],["cellToCenterChild",H,[H,H,H,H]],["cellToChildrenSize",H,[H,H,H,H]],["cellToChildPos",H,[H,H,H,H]],["childPosToCell",H,[H,H,H,H,H,H]],["areNeighborCells",H,[H,H,H,H,H]],["cellsToDirectedEdge",H,[H,H,H,H,H]],["getDirectedEdgeOrigin",H,[H,H,H]],["getDirectedEdgeDestination",H,[H,H,H]],["isValidDirectedEdge",H,[H,H]],["directedEdgeToCells",H,[H,H,H]],["originToDirectedEdges",H,[H,H,H]],["directedEdgeToBoundary",H,[H,H,H]],["gridDistance",H,[H,H,H,H,H]],["gridPathCells",H,[H,H,H,H,H]],["gridPathCellsSize",H,[H,H,H,H,H]],["cellToLocalIj",H,[H,H,H,H,H,H]],["localIjToCell",H,[H,H,H,H,H]],["getHexagonAreaAvgM2",H,[H,H]],["getHexagonAreaAvgKm2",H,[H,H]],["getHexagonEdgeLengthAvgM",H,[H,H]],["getHexagonEdgeLengthAvgKm",H,[H,H]],["greatCircleDistanceM",H,[H,H]],["greatCircleDistanceKm",H,[H,H]],["greatCircleDistanceRads",H,[H,H]],["cellAreaM2",H,[H,H,H]],["cellAreaKm2",H,[H,H,H]],["cellAreaRads2",H,[H,H,H]],["edgeLengthM",H,[H,H,H]],["edgeLengthKm",H,[H,H,H]],["edgeLengthRads",H,[H,H,H]],["getNumCells",H,[H,H]],["getRes0Cells",H,[H]],["res0CellCount",H],["getPentagons",H,[H,H]],["pentagonCount",H],["cellToVertex",H,[H,H,H,H]],["cellToVertexes",H,[H,H,H]],["vertexToLatLng",H,[H,H,H]],["isValidVertex",H,[H,H]]].forEach((function(A){K[A[0]]=W.cwrap.apply(W,A)}));var q=16,$=K.sizeOfH3Index(),AA=K.sizeOfLatLng(),eA=K.sizeOfCellBoundary();K.sizeOfGeoPolygon(),K.sizeOfGeoLoop();var tA=K.sizeOfLinkedGeoPolygon();K.sizeOfCoordIJ();var rA=/[^0-9a-fA-F]/;function nA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||rA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),q);return[parseInt(A.substring(A.length-8),q),e]}function iA(A){if(A>=0)return A.toString(q);var e=oA(8,(A&=2147483647).toString(q));return(parseInt(e[0],q)+8).toString(q)+e.substring(1)}function oA(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+e}function aA(A,e,t){W.HEAPU32.set(nA(A),e/4+2*t)}function sA(A){return 180*W.getValue(A,"double")/Math.PI}function fA(A){return[sA(A+8),sA(A)]}function uA(A){var e=nA(A);return Boolean(K.isPentagon(e[0],e[1]))}function lA(A,e,t){var r=W._malloc(AA);W.HEAPF64.set([A,e].map(gA),r/8);var n=W._malloc($);try{return X(K.latLngToCell(r,t,n)),function(A){if(!A)throw J(1002);return A}(function(A,e){void 0===e&&(e=0);var t=W.getValue(A+$*e,"i32"),r=W.getValue(A+$*e+4,"i32");return r?function(A,e){return iA(e)+oA(8,iA(A))}(t,r):null}(n))}finally{W._free(n),W._free(r)}}function cA(A){var e,t=W._malloc(AA),r=nA(A),n=r[0],i=r[1];try{return X(K.cellToLatLng(n,i,t)),[sA(e=t),sA(e+8)]}finally{W._free(t)}}function hA(A){if(!A||!A.length)return[];var e=A.length,t=W._calloc(e,$);!function(A,e){for(var t=e.length,r=0;r<t;r++)aA(e[r],A,r)}(t,A);var r=W._calloc(tA);try{return X(K.cellsToLinkedMultiPolygon(t,e,r)),function(A){for(var e,t,r,n,i=[],o=fA;A;){for(i.push(e=[]),t=W.getValue(A,"i8*");t;){for(e.push(r=[]),n=W.getValue(t,"i8*");n;)r.push(o(n)),n=W.getValue(n+16,"i8*");r.push(r[0]),t=W.getValue(t+8,"i8*")}A=W.getValue(A+8,"i8*")}return i}(r)}finally{K.destroyLinkedMultiPolygon(r),W._free(r),W._free(t)}}function dA(A,e){!function(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw Z(4,A)}(A);var t,r=W._malloc(8);try{switch(e){case"m":X(K.getHexagonEdgeLengthAvgM(A,r));break;case"km":X(K.getHexagonEdgeLengthAvgKm(A,r));break;default:throw J(1e3,e)}return void 0===t&&(t=0),W.getValue(r+8*t,"double")}finally{W._free(r)}}function gA(A){return A*Math.PI/180}function wA(A,e){e=void 0===e?A[0][0]:e;for(const t of A){const A=t[0]-e;A>180?t[0]-=360:A<-180&&(t[0]+=360)}}function vA(A,e,t){const r=A(e,t),[n,i]=cA(r);return[i,n]}function BA(A,t=1){const r=function(A){var e=W._malloc(eA),t=nA(A),r=t[0],n=t[1];try{return X(K.cellToBoundary(r,n,e)),function(A){for(var e=W.getValue(A,"i32"),t=A+8,r=[],n=fA,i=0;i<2*e;i+=2)r.push(n(t+8*i));return r.push(r[0]),r}(e)}finally{W._free(e)}}(A);return 1!==t?function(A,t,r){const[n,i]=cA(A),o=t.length;wA(t,i);const a=t[0]===t[o-1]?o-1:o;for(let A=0;A<a;A++)t[A][0]=e(i,t[A][0],r),t[A][1]=e(n,t[A][1],r)}(A,r,t):wA(r),r}function bA(A){const e=new Float64Array(2*A.length);let t=0;for(const r of A)e[t++]=r[0],e[t++]=r[1];return e}class MA extends z{indexToBounds(){const{data:A,getPentagon:e}=this.props;return{data:A,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(A,t)=>{const r=e(A,t);return bA(_.cellToBoundary("string"==typeof r?_.hexToU64(r):r,{closedRing:!0,segments:"auto"}))}}}}MA.layerName="A5Layer",MA.defaultProps={getPentagon:{type:"accessor",value:A=>A.pentagon}};const kA=6378137*Math.PI;function mA(A){const e=t(A);return e[0]=(e[0]/256-1)*kA,e[1]=(e[1]/256-1)*kA,e}const QA={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(A,e)=>console.error(e,A)}};class DA extends A{get isLoaded(){return 0===this.state?.loadCounter&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:A,props:e,oldProps:t}){const{viewport:n}=this.context;A.dataChanged||e.serviceType!==t.serviceType?(this.state.imageSource=this._createImageSource(e),this._loadMetadata(),this.debounce((()=>this.loadImage(n,"image source changed")),0)):r(e.layers,t.layers,1)?A.viewportChanged&&this.debounce((()=>this.loadImage(n,"viewport changed"))):this.debounce((()=>this.loadImage(n,"layers changed")),0)}finalizeState(){}renderLayers(){const{bounds:A,image:e,lastRequestParameters:t}=this.state;return e&&new n({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:"EPSG:4326"===t.srs?i.LNGLAT:i.CARTESIAN,bounds:A,image:e})}async getFeatureInfoText(A,e){const{lastRequestParameters:t}=this.state;return t?await(this.state.imageSource.getFeatureInfoText?.({...t,query_layers:t.layers,x:A,y:e,info_format:"application/vnd.ogc.gml"})):""}_createImageSource(A){if(A.data instanceof D)return A.data;if("string"==typeof A.data)return p({url:A.data,loadOptions:A.loadOptions,type:A.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){const{imageSource:A}=this.state;try{this.state.loadCounter++;const e=await A.getMetadata();this.state.imageSource===A&&this.getCurrentLayer()?.props.onMetadataLoad(e)}catch(A){this.getCurrentLayer()?.props.onMetadataLoadError(A)}finally{this.state.loadCounter--}}async loadImage(A,e){const{layers:t,serviceType:r}=this.props;if("wms"===r&&0===t.length)return;const n=A.getBounds(),{width:i,height:o}=A,a=this.getRequestId();let{srs:s}=this.props;"auto"===s&&(s=A.resolution?"EPSG:4326":"EPSG:3857");const f={width:i,height:o,boundingBox:[[n[0],n[1]],[n[2],n[3]]],layers:t,crs:s};if("EPSG:3857"===s){const A=mA([n[0],n[1]]),e=mA([n[2],n[3]]);f.boundingBox=[A,e]}try{this.state.loadCounter++,this.props.onImageLoadStart(a);const A=await this.state.imageSource.getImage(f);this.state.lastRequestId<a&&(this.getCurrentLayer()?.props.onImageLoad(a),this.setState({image:A,bounds:n,lastRequestParameters:f,lastRequestId:a}))}catch(A){this.raiseError(A,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(a,A)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(A,e=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout((()=>A()),e)}}DA.layerName="WMSLayer",DA.defaultProps=QA;class pA extends k{}pA.layerName="GreatCircleLayer",pA.defaultProps={getHeight:{type:"accessor",value:0},greatCircle:!0};var EA,CA,yA,PA={exports:{}},IA=(EA||(EA=1,
|
|
1
|
+
import{C as A,ae as e,E as t,d as r,B as n,O as i,D as o,P as a,l as s,S as f,M as u,j as l,G as c,aP as h,aQ as d,aR as g,a0 as w,e as v,aS as B,aT as b}from"./p-9Rt23jlQ.js";export{aU as TerrainLayer,aW as _Tile2DHeader,aV as _Tileset2D}from"./p-9Rt23jlQ.js";import{a as M,A as k,C as m,P as Q}from"./p-C0M0-Kvt.js";import{ImageSource as D,createImageSource as p}from"@loaders.gl/wms";import{g as E}from"./p-E-ZsRS8r.js";import{p as C,a as y,S as P}from"./p-DAf4itFZ.js";import{load as I}from"@loaders.gl/core";import{Tileset3D as F,TILE_TYPE as T}from"@loaders.gl/tiles";import{Tiles3DLoader as L}from"@loaders.gl/3d-tiles";import{MVTWorkerLoader as x}from"@loaders.gl/mvt";import{binaryToGeojson as G}from"@loaders.gl/gis";import{L as S}from"./p-DuJ_mTaq.js";import"./p-B-bAcABs.js";import"./p-DhQAXuA7.js";import"./p-DR9McdNX.js";import"./p-QJHuuz0g.js";import"./p-yXLNXXx-.js";import"@loaders.gl/images";import"@loaders.gl/loader-utils";import"@loaders.gl/terrain";import"@loaders.gl/schema";import"@loaders.gl/gltf";const U={...M.defaultProps};class R extends A{indexToBounds(){return null}renderLayers(){const{elevationScale:A,extruded:e,wireframe:t,filled:r,stroked:n,lineWidthUnits:i,lineWidthScale:o,lineWidthMinPixels:a,lineWidthMaxPixels:s,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:l,getElevation:c,getFillColor:h,getLineColor:d,getLineWidth:g}=this.props,{updateTriggers:w,material:v,transitions:B}=this.props,b=this.getSubLayerClass("cell",M),{updateTriggers:k,...m}=this.indexToBounds()||{};return new b({filled:r,wireframe:t,extruded:e,elevationScale:A,stroked:n,lineWidthUnits:i,lineWidthScale:o,lineWidthMinPixels:a,lineWidthMaxPixels:s,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:l,material:v,transitions:B,getElevation:c,getFillColor:h,getLineColor:d,getLineWidth:g},this.getSubLayerProps({id:"cell",updateTriggers:w&&{...k,getElevation:w.getElevation,getFillColor:w.getFillColor,getLineColor:w.getLineColor,getLineWidth:w.getLineWidth}}),m)}}var z,O;function Y(){if(O)return z;O=1;var A,e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,i=(A,t)=>{for(var r in t)e(A,r,{get:t[r],enumerable:!0})},o={};i(o,{cellArea:()=>jn,cellToBoundary:()=>zn,cellToChildren:()=>In,cellToLonLat:()=>Rn,cellToParent:()=>Fn,getNumCells:()=>Vn,getRes0Cells:()=>Tn,getResolution:()=>Cn,hexToU64:()=>Yn,lonLatToCell:()=>Gn,u64ToHex:()=>_n}),A=o,z=((A,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let o of r(i))n.call(A,o)||undefined===o||e(A,o,{get:()=>i[o],enumerable:!(a=t(i,o))||a.enumerable});return A})(e({},"__esModule",{value:!0}),A);var a={};i(a,{ARRAY_TYPE:()=>f,EPSILON:()=>s,RANDOM:()=>u,equals:()=>d,setMatrixArrayType:()=>l,toRadian:()=>h});var s=1e-6,f="undefined"!=typeof Float32Array?Float32Array:Array,u=Math.random;function l(A){f=A}var c=Math.PI/180;function h(A){return A*c}function d(A,e){return Math.abs(A-e)<=s*Math.max(1,Math.abs(A),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var A=0,e=arguments.length;e--;)A+=arguments[e]*arguments[e];return Math.sqrt(A)});var g={};function w(){var A=new f(4);return f!=Float32Array&&(A[1]=0,A[2]=0),A[0]=1,A[3]=1,A}function v(A){var e=new f(4);return e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[3],e}function B(A,e){return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A}function b(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=1,A}function M(A,e,t,r){var n=new f(4);return n[0]=A,n[1]=e,n[2]=t,n[3]=r,n}function k(A,e,t,r,n){return A[0]=e,A[1]=t,A[2]=r,A[3]=n,A}function m(A,e){if(A===e){var t=e[1];A[1]=e[2],A[2]=t}else A[0]=e[0],A[1]=e[2],A[2]=e[1],A[3]=e[3];return A}function Q(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=t*i-n*r;return o?(A[0]=i*(o=1/o),A[1]=-r*o,A[2]=-n*o,A[3]=t*o,A):null}function D(A,e){var t=e[0];return A[0]=e[3],A[1]=-e[1],A[2]=-e[2],A[3]=t,A}function p(A){return A[0]*A[3]-A[2]*A[1]}function E(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=t[0],s=t[1],f=t[2],u=t[3];return A[0]=r*a+i*s,A[1]=n*a+o*s,A[2]=r*f+i*u,A[3]=n*f+o*u,A}function C(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s+i*a,A[1]=n*s+o*a,A[2]=r*-a+i*s,A[3]=n*-a+o*s,A}function y(A,e,t){var r=e[1],n=e[2],i=e[3],o=t[0],a=t[1];return A[0]=e[0]*o,A[1]=r*o,A[2]=n*a,A[3]=i*a,A}function P(A,e){var t=Math.sin(e),r=Math.cos(e);return A[0]=r,A[1]=t,A[2]=-t,A[3]=r,A}function I(A,e){return A[0]=e[0],A[1]=0,A[2]=0,A[3]=e[1],A}function F(A){return"mat2("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+")"}function T(A){return Math.hypot(A[0],A[1],A[2],A[3])}function L(A,e,t,r){return A[2]=r[2]/r[0],t[0]=r[0],t[1]=r[1],t[3]=r[3]-A[2]*t[1],[A,e,t]}function x(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A[2]=e[2]+t[2],A[3]=e[3]+t[3],A}function G(A,e,t){return A[0]=e[0]-t[0],A[1]=e[1]-t[1],A[2]=e[2]-t[2],A[3]=e[3]-t[3],A}function S(A,e){return A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]&&A[3]===e[3]}function U(A,e){var t=A[0],r=A[1],n=A[2],i=A[3],o=e[0],a=e[1],f=e[2],u=e[3];return Math.abs(t-o)<=s*Math.max(1,Math.abs(t),Math.abs(o))&&Math.abs(r-a)<=s*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-f)<=s*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(i-u)<=s*Math.max(1,Math.abs(i),Math.abs(u))}function R(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A[2]=e[2]*t,A[3]=e[3]*t,A}function Y(A,e,t,r){return A[0]=e[0]+t[0]*r,A[1]=e[1]+t[1]*r,A[2]=e[2]+t[2]*r,A[3]=e[3]+t[3]*r,A}i(g,{LDU:()=>L,add:()=>x,adjoint:()=>D,clone:()=>v,copy:()=>B,create:()=>w,determinant:()=>p,equals:()=>U,exactEquals:()=>S,frob:()=>T,fromRotation:()=>P,fromScaling:()=>I,fromValues:()=>M,identity:()=>b,invert:()=>Q,mul:()=>_,multiply:()=>E,multiplyScalar:()=>R,multiplyScalarAndAdd:()=>Y,rotate:()=>C,scale:()=>y,set:()=>k,str:()=>F,sub:()=>W,subtract:()=>G,transpose:()=>m});var _=E,W=G,H={};i(H,{add:()=>Be,calculateW:()=>XA,clone:()=>de,conjugate:()=>re,copy:()=>we,create:()=>YA,dot:()=>ke,equals:()=>Pe,exactEquals:()=>ye,exp:()=>KA,fromEuler:()=>ie,fromMat3:()=>ne,fromValues:()=>ge,getAngle:()=>VA,getAxisAngle:()=>HA,identity:()=>_A,invert:()=>te,len:()=>De,length:()=>Qe,lerp:()=>me,ln:()=>qA,mul:()=>be,multiply:()=>jA,normalize:()=>Ce,pow:()=>$A,random:()=>ee,rotateX:()=>NA,rotateY:()=>ZA,rotateZ:()=>JA,rotationTo:()=>Ie,scale:()=>Me,set:()=>ve,setAxes:()=>Te,setAxisAngle:()=>WA,slerp:()=>Ae,sqlerp:()=>Fe,sqrLen:()=>Ee,squaredLength:()=>pe,str:()=>oe});var V={};function j(){var A=new f(3);return f!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0),A}function N(A){var e=new f(3);return e[0]=A[0],e[1]=A[1],e[2]=A[2],e}function Z(A){return Math.hypot(A[0],A[1],A[2])}function J(A,e,t){var r=new f(3);return r[0]=A,r[1]=e,r[2]=t,r}function X(A,e){return A[0]=e[0],A[1]=e[1],A[2]=e[2],A}function K(A,e,t,r){return A[0]=e,A[1]=t,A[2]=r,A}function q(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A[2]=e[2]+t[2],A}function $(A,e,t){return A[0]=e[0]-t[0],A[1]=e[1]-t[1],A[2]=e[2]-t[2],A}function AA(A,e,t){return A[0]=e[0]*t[0],A[1]=e[1]*t[1],A[2]=e[2]*t[2],A}function eA(A,e,t){return A[0]=e[0]/t[0],A[1]=e[1]/t[1],A[2]=e[2]/t[2],A}function tA(A,e){return A[0]=Math.ceil(e[0]),A[1]=Math.ceil(e[1]),A[2]=Math.ceil(e[2]),A}function rA(A,e){return A[0]=Math.floor(e[0]),A[1]=Math.floor(e[1]),A[2]=Math.floor(e[2]),A}function nA(A,e,t){return A[0]=Math.min(e[0],t[0]),A[1]=Math.min(e[1],t[1]),A[2]=Math.min(e[2],t[2]),A}function iA(A,e,t){return A[0]=Math.max(e[0],t[0]),A[1]=Math.max(e[1],t[1]),A[2]=Math.max(e[2],t[2]),A}function oA(A,e){return A[0]=Math.round(e[0]),A[1]=Math.round(e[1]),A[2]=Math.round(e[2]),A}function aA(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A[2]=e[2]*t,A}function sA(A,e,t,r){return A[0]=e[0]+t[0]*r,A[1]=e[1]+t[1]*r,A[2]=e[2]+t[2]*r,A}function fA(A,e){return Math.hypot(e[0]-A[0],e[1]-A[1],e[2]-A[2])}function uA(A,e){var t=e[0]-A[0],r=e[1]-A[1],n=e[2]-A[2];return t*t+r*r+n*n}function lA(A){var e=A[0],t=A[1],r=A[2];return e*e+t*t+r*r}function cA(A,e){return A[0]=-e[0],A[1]=-e[1],A[2]=-e[2],A}function hA(A,e){return A[0]=1/e[0],A[1]=1/e[1],A[2]=1/e[2],A}function dA(A,e){var t=e[0],r=e[1],n=e[2],i=t*t+r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),A[0]=e[0]*i,A[1]=e[1]*i,A[2]=e[2]*i,A}function gA(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]}function wA(A,e,t){var r=e[0],n=e[1],i=e[2],o=t[0],a=t[1],s=t[2];return A[0]=n*s-i*a,A[1]=i*o-r*s,A[2]=r*a-n*o,A}function vA(A,e,t,r){var n=e[0],i=e[1],o=e[2];return A[0]=n+r*(t[0]-n),A[1]=i+r*(t[1]-i),A[2]=o+r*(t[2]-o),A}function BA(A,e,t,r,n,i){var o=i*i,a=o*(2*i-3)+1,s=o*(i-2)+i,f=o*(i-1),u=o*(3-2*i);return A[0]=e[0]*a+t[0]*s+r[0]*f+n[0]*u,A[1]=e[1]*a+t[1]*s+r[1]*f+n[1]*u,A[2]=e[2]*a+t[2]*s+r[2]*f+n[2]*u,A}function bA(A,e,t,r,n,i){var o=1-i,a=o*o,s=i*i,f=a*o,u=3*i*a,l=3*s*o,c=s*i;return A[0]=e[0]*f+t[0]*u+r[0]*l+n[0]*c,A[1]=e[1]*f+t[1]*u+r[1]*l+n[1]*c,A[2]=e[2]*f+t[2]*u+r[2]*l+n[2]*c,A}function MA(A,e){e=e||1;var t=2*u()*Math.PI,r=2*u()-1,n=Math.sqrt(1-r*r)*e;return A[0]=Math.cos(t)*n,A[1]=Math.sin(t)*n,A[2]=r*e,A}function kA(A,e,t){var r=e[0],n=e[1],i=e[2],o=t[3]*r+t[7]*n+t[11]*i+t[15];return A[0]=(t[0]*r+t[4]*n+t[8]*i+t[12])/(o=o||1),A[1]=(t[1]*r+t[5]*n+t[9]*i+t[13])/o,A[2]=(t[2]*r+t[6]*n+t[10]*i+t[14])/o,A}function mA(A,e,t){var r=e[0],n=e[1],i=e[2];return A[0]=r*t[0]+n*t[3]+i*t[6],A[1]=r*t[1]+n*t[4]+i*t[7],A[2]=r*t[2]+n*t[5]+i*t[8],A}function QA(A,e,t){var r=t[0],n=t[1],i=t[2],o=e[0],a=e[1],s=e[2],f=n*s-i*a,u=i*o-r*s,l=r*a-n*o,c=n*l-i*u,h=i*f-r*l,d=r*u-n*f,g=2*t[3];return u*=g,l*=g,h*=2,d*=2,A[0]=o+(f*=g)+(c*=2),A[1]=a+u+h,A[2]=s+l+d,A}function DA(A,e,t,r){var n=[],i=[];return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],i[0]=n[0],i[1]=n[1]*Math.cos(r)-n[2]*Math.sin(r),i[2]=n[1]*Math.sin(r)+n[2]*Math.cos(r),A[0]=i[0]+t[0],A[1]=i[1]+t[1],A[2]=i[2]+t[2],A}function pA(A,e,t,r){var n=[],i=[];return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],i[0]=n[2]*Math.sin(r)+n[0]*Math.cos(r),i[1]=n[1],i[2]=n[2]*Math.cos(r)-n[0]*Math.sin(r),A[0]=i[0]+t[0],A[1]=i[1]+t[1],A[2]=i[2]+t[2],A}function EA(A,e,t,r){var n=[],i=[];return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],i[0]=n[0]*Math.cos(r)-n[1]*Math.sin(r),i[1]=n[0]*Math.sin(r)+n[1]*Math.cos(r),i[2]=n[2],A[0]=i[0]+t[0],A[1]=i[1]+t[1],A[2]=i[2]+t[2],A}function CA(A,e){var t=A[0],r=A[1],n=A[2],i=e[0],o=e[1],a=e[2],s=Math.sqrt(t*t+r*r+n*n)*Math.sqrt(i*i+o*o+a*a),f=s&&gA(A,e)/s;return Math.acos(Math.min(Math.max(f,-1),1))}function yA(A){return A[0]=0,A[1]=0,A[2]=0,A}function PA(A){return"vec3("+A[0]+", "+A[1]+", "+A[2]+")"}function IA(A,e){return A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]}function FA(A,e){var t=A[0],r=A[1],n=A[2],i=e[0],o=e[1],a=e[2];return Math.abs(t-i)<=s*Math.max(1,Math.abs(t),Math.abs(i))&&Math.abs(r-o)<=s*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=s*Math.max(1,Math.abs(n),Math.abs(a))}i(V,{add:()=>q,angle:()=>CA,bezier:()=>bA,ceil:()=>tA,clone:()=>N,copy:()=>X,create:()=>j,cross:()=>wA,dist:()=>SA,distance:()=>fA,div:()=>GA,divide:()=>eA,dot:()=>gA,equals:()=>FA,exactEquals:()=>IA,floor:()=>rA,forEach:()=>OA,fromValues:()=>J,hermite:()=>BA,inverse:()=>hA,len:()=>RA,length:()=>Z,lerp:()=>vA,max:()=>iA,min:()=>nA,mul:()=>xA,multiply:()=>AA,negate:()=>cA,normalize:()=>dA,random:()=>MA,rotateX:()=>DA,rotateY:()=>pA,rotateZ:()=>EA,round:()=>oA,scale:()=>aA,scaleAndAdd:()=>sA,set:()=>K,sqrDist:()=>UA,sqrLen:()=>zA,squaredDistance:()=>uA,squaredLength:()=>lA,str:()=>PA,sub:()=>LA,subtract:()=>$,transformMat3:()=>mA,transformMat4:()=>kA,transformQuat:()=>QA,zero:()=>yA});var TA,LA=$,xA=AA,GA=eA,SA=fA,UA=uA,RA=Z,zA=lA,OA=(TA=j(),function(A,e,t,r,n,i){var o,a;for(e||(e=3),t||(t=0),a=r?Math.min(r*e+t,A.length):A.length,o=t;o<a;o+=e)TA[0]=A[o],TA[1]=A[o+1],TA[2]=A[o+2],n(TA,TA,i),A[o]=TA[0],A[o+1]=TA[1],A[o+2]=TA[2];return A});function YA(){var A=new f(4);return f!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0),A[3]=1,A}function _A(A){return A[0]=0,A[1]=0,A[2]=0,A[3]=1,A}function WA(A,e,t){t*=.5;var r=Math.sin(t);return A[0]=r*e[0],A[1]=r*e[1],A[2]=r*e[2],A[3]=Math.cos(t),A}function HA(A,e){var t=2*Math.acos(e[3]),r=Math.sin(t/2);return r>s?(A[0]=e[0]/r,A[1]=e[1]/r,A[2]=e[2]/r):(A[0]=1,A[1]=0,A[2]=0),t}function VA(A,e){var t=ke(A,e);return Math.acos(2*t*t-1)}function jA(A,e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=t[0],s=t[1],f=t[2],u=t[3];return A[0]=r*u+o*a+n*f-i*s,A[1]=n*u+o*s+i*a-r*f,A[2]=i*u+o*f+r*s-n*a,A[3]=o*u-r*a-n*s-i*f,A}function NA(A,e,t){t*=.5;var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s+o*a,A[1]=n*s+i*a,A[2]=i*s-n*a,A[3]=o*s-r*a,A}function ZA(A,e,t){t*=.5;var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s-i*a,A[1]=n*s+o*a,A[2]=i*s+r*a,A[3]=o*s-n*a,A}function JA(A,e,t){t*=.5;var r=e[0],n=e[1],i=e[2],o=e[3],a=Math.sin(t),s=Math.cos(t);return A[0]=r*s+n*a,A[1]=n*s-r*a,A[2]=i*s+o*a,A[3]=o*s-i*a,A}function XA(A,e){var t=e[0],r=e[1],n=e[2];return A[0]=t,A[1]=r,A[2]=n,A[3]=Math.sqrt(Math.abs(1-t*t-r*r-n*n)),A}function KA(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=Math.sqrt(t*t+r*r+n*n),a=Math.exp(i),s=o>0?a*Math.sin(o)/o:0;return A[0]=t*s,A[1]=r*s,A[2]=n*s,A[3]=a*Math.cos(o),A}function qA(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=Math.sqrt(t*t+r*r+n*n),a=o>0?Math.atan2(o,i)/o:0;return A[0]=t*a,A[1]=r*a,A[2]=n*a,A[3]=.5*Math.log(t*t+r*r+n*n+i*i),A}function $A(A,e,t){return qA(A,e),Me(A,A,t),KA(A,A),A}function Ae(A,e,t,r){var n,i,o,a,f,u=e[0],l=e[1],c=e[2],h=e[3],d=t[0],g=t[1],w=t[2],v=t[3];return(i=u*d+l*g+c*w+h*v)<0&&(i=-i,d=-d,g=-g,w=-w,v=-v),1-i>s?(n=Math.acos(i),o=Math.sin(n),a=Math.sin((1-r)*n)/o,f=Math.sin(r*n)/o):(a=1-r,f=r),A[0]=a*u+f*d,A[1]=a*l+f*g,A[2]=a*c+f*w,A[3]=a*h+f*v,A}function ee(A){var e=u(),t=u(),r=u(),n=Math.sqrt(1-e),i=Math.sqrt(e);return A[0]=n*Math.sin(2*Math.PI*t),A[1]=n*Math.cos(2*Math.PI*t),A[2]=i*Math.sin(2*Math.PI*r),A[3]=i*Math.cos(2*Math.PI*r),A}function te(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=t*t+r*r+n*n+i*i,a=o?1/o:0;return A[0]=-t*a,A[1]=-r*a,A[2]=-n*a,A[3]=i*a,A}function re(A,e){return A[0]=-e[0],A[1]=-e[1],A[2]=-e[2],A[3]=e[3],A}function ne(A,e){var t,r=e[0]+e[4]+e[8];if(r>0)t=Math.sqrt(r+1),A[3]=.5*t,A[0]=(e[5]-e[7])*(t=.5/t),A[1]=(e[6]-e[2])*t,A[2]=(e[1]-e[3])*t;else{var n=0;e[4]>e[0]&&(n=1),e[8]>e[3*n+n]&&(n=2);var i=(n+1)%3,o=(n+2)%3;t=Math.sqrt(e[3*n+n]-e[3*i+i]-e[3*o+o]+1),A[n]=.5*t,A[3]=(e[3*i+o]-e[3*o+i])*(t=.5/t),A[i]=(e[3*i+n]+e[3*n+i])*t,A[o]=(e[3*o+n]+e[3*n+o])*t}return A}function ie(A,e,t,r){var n=.5*Math.PI/180;e*=n,t*=n,r*=n;var i=Math.sin(e),o=Math.cos(e),a=Math.sin(t),s=Math.cos(t),f=Math.sin(r),u=Math.cos(r);return A[0]=i*s*u-o*a*f,A[1]=o*a*u+i*s*f,A[2]=o*s*f-i*a*u,A[3]=o*s*u+i*a*f,A}function oe(A){return"quat("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+")"}!function(){var A;A=new f(4),f!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0,A[3]=0)}();var ae,se,fe,ue,le,ce,he,de=function(A){var e=new f(4);return e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[3],e},ge=function(A,e,t,r){var n=new f(4);return n[0]=A,n[1]=e,n[2]=t,n[3]=r,n},we=function(A,e){return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A},ve=function(A,e,t,r,n){return A[0]=e,A[1]=t,A[2]=r,A[3]=n,A},Be=function(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A[2]=e[2]+t[2],A[3]=e[3]+t[3],A},be=jA,Me=function(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A[2]=e[2]*t,A[3]=e[3]*t,A},ke=function(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]+A[3]*e[3]},me=function(A,e,t,r){var n=e[0],i=e[1],o=e[2],a=e[3];return A[0]=n+r*(t[0]-n),A[1]=i+r*(t[1]-i),A[2]=o+r*(t[2]-o),A[3]=a+r*(t[3]-a),A},Qe=function(A){return Math.hypot(A[0],A[1],A[2],A[3])},De=Qe,pe=function(A){var e=A[0],t=A[1],r=A[2],n=A[3];return e*e+t*t+r*r+n*n},Ee=pe,Ce=function(A,e){var t=e[0],r=e[1],n=e[2],i=e[3],o=t*t+r*r+n*n+i*i;return o>0&&(o=1/Math.sqrt(o)),A[0]=t*o,A[1]=r*o,A[2]=n*o,A[3]=i*o,A},ye=function(A,e){return A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]&&A[3]===e[3]},Pe=function(A,e){var t=A[0],r=A[1],n=A[2],i=A[3],o=e[0],a=e[1],f=e[2],u=e[3];return Math.abs(t-o)<=s*Math.max(1,Math.abs(t),Math.abs(o))&&Math.abs(r-a)<=s*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-f)<=s*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(i-u)<=s*Math.max(1,Math.abs(i),Math.abs(u))},Ie=(ae=j(),se=J(1,0,0),fe=J(0,1,0),function(A,e,t){var r=gA(e,t);return r<-.999999?(wA(ae,se,e),RA(ae)<1e-6&&wA(ae,fe,e),dA(ae,ae),WA(A,ae,Math.PI),A):r>.999999?(A[0]=0,A[1]=0,A[2]=0,A[3]=1,A):(wA(ae,e,t),A[0]=ae[0],A[1]=ae[1],A[2]=ae[2],A[3]=1+r,Ce(A,A))}),Fe=(ue=YA(),le=YA(),function(A,e,t,r,n,i){return Ae(ue,e,n,i),Ae(le,t,r,i),Ae(A,ue,le,2*i*(1-i)),A}),Te=(ce=new f(9),f!=Float32Array&&(ce[1]=0,ce[2]=0,ce[3]=0,ce[5]=0,ce[6]=0,ce[7]=0),ce[0]=1,ce[4]=1,ce[8]=1,he=ce,function(A,e,t,r){return he[0]=t[0],he[3]=t[1],he[6]=t[2],he[1]=r[0],he[4]=r[1],he[7]=r[2],he[2]=-e[0],he[5]=-e[1],he[8]=-e[2],Ce(A,ne(A,he))}),Le={};function xe(){var A=new f(2);return f!=Float32Array&&(A[0]=0,A[1]=0),A}function Ge(A){var e=new f(2);return e[0]=A[0],e[1]=A[1],e}function Se(A,e){var t=new f(2);return t[0]=A,t[1]=e,t}function Ue(A,e){return A[0]=e[0],A[1]=e[1],A}function Re(A,e,t){return A[0]=e,A[1]=t,A}function ze(A,e,t){return A[0]=e[0]+t[0],A[1]=e[1]+t[1],A}function Oe(A,e,t){return A[0]=e[0]-t[0],A[1]=e[1]-t[1],A}function Ye(A,e,t){return A[0]=e[0]*t[0],A[1]=e[1]*t[1],A}function _e(A,e,t){return A[0]=e[0]/t[0],A[1]=e[1]/t[1],A}function We(A,e){return A[0]=Math.ceil(e[0]),A[1]=Math.ceil(e[1]),A}function He(A,e){return A[0]=Math.floor(e[0]),A[1]=Math.floor(e[1]),A}function Ve(A,e,t){return A[0]=Math.min(e[0],t[0]),A[1]=Math.min(e[1],t[1]),A}function je(A,e,t){return A[0]=Math.max(e[0],t[0]),A[1]=Math.max(e[1],t[1]),A}function Ne(A,e){return A[0]=Math.round(e[0]),A[1]=Math.round(e[1]),A}function Ze(A,e,t){return A[0]=e[0]*t,A[1]=e[1]*t,A}function Je(A,e,t,r){return A[0]=e[0]+t[0]*r,A[1]=e[1]+t[1]*r,A}function Xe(A,e){return Math.hypot(e[0]-A[0],e[1]-A[1])}function Ke(A,e){var t=e[0]-A[0],r=e[1]-A[1];return t*t+r*r}function qe(A){return Math.hypot(A[0],A[1])}function $e(A){var e=A[0],t=A[1];return e*e+t*t}function At(A,e){return A[0]=-e[0],A[1]=-e[1],A}function et(A,e){return A[0]=1/e[0],A[1]=1/e[1],A}function tt(A,e){var t=e[0],r=e[1],n=t*t+r*r;return n>0&&(n=1/Math.sqrt(n)),A[0]=e[0]*n,A[1]=e[1]*n,A}function rt(A,e){return A[0]*e[0]+A[1]*e[1]}function nt(A,e,t){var r=e[0]*t[1]-e[1]*t[0];return A[0]=A[1]=0,A[2]=r,A}function it(A,e,t,r){var n=e[0],i=e[1];return A[0]=n+r*(t[0]-n),A[1]=i+r*(t[1]-i),A}function ot(A,e){e=e||1;var t=2*u()*Math.PI;return A[0]=Math.cos(t)*e,A[1]=Math.sin(t)*e,A}function at(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[2]*n,A[1]=t[1]*r+t[3]*n,A}function st(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[2]*n+t[4],A[1]=t[1]*r+t[3]*n+t[5],A}function ft(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[3]*n+t[6],A[1]=t[1]*r+t[4]*n+t[7],A}function ut(A,e,t){var r=e[0],n=e[1];return A[0]=t[0]*r+t[4]*n+t[12],A[1]=t[1]*r+t[5]*n+t[13],A}function lt(A,e,t,r){var n=e[0]-t[0],i=e[1]-t[1],o=Math.sin(r),a=Math.cos(r);return A[0]=n*a-i*o+t[0],A[1]=n*o+i*a+t[1],A}function ct(A,e){var t=A[0],r=A[1],n=e[0],i=e[1],o=Math.sqrt(t*t+r*r)*Math.sqrt(n*n+i*i);return Math.acos(Math.min(Math.max(o&&(t*n+r*i)/o,-1),1))}function ht(A){return A[0]=0,A[1]=0,A}function dt(A){return"vec2("+A[0]+", "+A[1]+")"}function gt(A,e){return A[0]===e[0]&&A[1]===e[1]}function wt(A,e){var t=A[0],r=A[1],n=e[0],i=e[1];return Math.abs(t-n)<=s*Math.max(1,Math.abs(t),Math.abs(n))&&Math.abs(r-i)<=s*Math.max(1,Math.abs(r),Math.abs(i))}i(Le,{add:()=>ze,angle:()=>ct,ceil:()=>We,clone:()=>Ge,copy:()=>Ue,create:()=>xe,cross:()=>nt,dist:()=>kt,distance:()=>Xe,div:()=>Mt,divide:()=>_e,dot:()=>rt,equals:()=>wt,exactEquals:()=>gt,floor:()=>He,forEach:()=>Dt,fromValues:()=>Se,inverse:()=>et,len:()=>vt,length:()=>qe,lerp:()=>it,max:()=>je,min:()=>Ve,mul:()=>bt,multiply:()=>Ye,negate:()=>At,normalize:()=>tt,random:()=>ot,rotate:()=>lt,round:()=>Ne,scale:()=>Ze,scaleAndAdd:()=>Je,set:()=>Re,sqrDist:()=>mt,sqrLen:()=>Qt,squaredDistance:()=>Ke,squaredLength:()=>$e,str:()=>dt,sub:()=>Bt,subtract:()=>Oe,transformMat2:()=>at,transformMat2d:()=>st,transformMat3:()=>ft,transformMat4:()=>ut,zero:()=>ht});var vt=qe,Bt=Oe,bt=Ye,Mt=_e,kt=Xe,mt=Ke,Qt=$e,Dt=function(){var A=xe();return function(e,t,r,n,i,o){var a,s;for(t||(t=2),r||(r=0),s=n?Math.min(n*t+r,e.length):e.length,a=r;a<s;a+=t)A[0]=e[a],A[1]=e[a+1],i(A,A,o),e[a]=A[0],e[a+1]=A[1];return e}}(),pt=(1+Math.sqrt(5))/2,Et=2*Math.PI/5,Ct=Math.PI/5,yt=Math.PI/10,Pt=2*Math.atan(pt),It=Math.PI-Pt,Ft=(Math.sqrt(5)-1)/2,Tt=3-Math.sqrt(5);a.setMatrixArrayType(Float64Array);var Lt=class A{constructor(A){this.vertices=A,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let A=0;const e=this.vertices.length;for(let t=0;t<e;t++){const r=(t+1)%e;A+=(this.vertices[r][0]-this.vertices[t][0])*(this.vertices[r][1]+this.vertices[t][1])}return A}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(A){for(const e of this.vertices)Le.scale(e,e,A);return this}rotate180(){for(const A of this.vertices)Le.negate(A,A);return this}reflectY(){for(const A of this.vertices)A[1]=-A[1];return this.vertices.reverse(),this}translate(A){for(const e of this.vertices)Le.add(e,e,A);return this}transform(A){for(const e of this.vertices)Le.transformMat2(e,e,A);return this}transform2d(A){for(const e of this.vertices)Le.transformMat2d(e,e,A);return this}clone(){return new A(this.vertices.map((A=>Le.clone(A))))}getCenter(){const A=this.vertices.length;return this.vertices.reduce(((e,t)=>[e[0]+t[0]/A,e[1]+t[1]/A]),[0,0])}containsPoint(A){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");const e=this.vertices.length;let t=1;for(let r=0;r<e;r++){const n=this.vertices[r],i=this.vertices[(r+1)%e],o=A[0]-n[0],a=A[1]-n[1],s=(n[0]-i[0])*a-(n[1]-i[1])*o;if(s<0){const A=Math.sqrt(o*o+a*a);t=Math.min(t,s/A)}}return t}splitEdges(e){if(e<=1)return this;const t=[],r=this.vertices.length;for(let A=0;A<r;A++){const n=this.vertices[A],i=this.vertices[(A+1)%r];t.push(Le.clone(n));for(let A=1;A<e;A++){const r=A/e,o=Le.create();Le.lerp(o,n,i,r),t.push(o)}}return new A(t)}};a.setMatrixArrayType(Float64Array);var xt=[0,0],Gt=[0,1],St=[.7885966681787006,1.6149108024237764],Ut=[1.6171013659387945,1.054928690397459],Rt=[Math.cos(yt),Math.sin(yt)],zt=2*Le.length(St)*Math.cos(Ct),Ot=Ct-Math.atan2(St[1],St[0]),Yt=2*Ft/zt;[xt,Gt,St,Ut,Rt].forEach((A=>{Le.scale(A,A,Yt),Le.rotate(A,A,[0,0],Ot)}));var _t=new Lt([xt,Gt,St,Ut,Rt]),Wt=Math.atan2(St[1],St[0])-Ct,Ht=Ft/Math.cos(Ct),Vt=Wt+Ct,jt=[Ht*Math.cos(Vt),Ht*Math.sin(Vt)],Nt=Wt-Ct,Zt=[Ht*Math.cos(Nt),Ht*Math.sin(Nt)],Jt=new Lt([[0,0],jt,Zt]),Xt=g.fromValues(jt[0],jt[1],Zt[0],Zt[1]),Kt=g.invert(g.create(),Xt),qt=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2.559257686421274e-9,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),$t=new Float64Array([.0022392089963541657,28831978048607556e-22,5.08622073997266e-9,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]);a.setMatrixArrayType(Float64Array);var Ar=new class{applyCoefficients(A,e){const t=Math.sin(A),r=Math.cos(A),n=2*(r-t)*(r+t);let i,o;return i=n*e[5]+e[4],o=n*i+e[3],i=n*o-i+e[2],o=n*i-o+e[1],i=n*o-i+e[0],A+2*t*r*i}forward(A){return this.applyCoefficients(A,qt)}inverse(A){return this.applyCoefficients(A,$t)}};function er(A){return A*(Math.PI/180)}function tr(A){return A*(180/Math.PI)}function rr(A){return[Le.length(A),Math.atan2(A[1],A[0])]}function nr(A){const e=Math.atan2(A[1],A[0]),t=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return[e,Math.acos(A[2]/t)]}function ir([A,e]){const t=Math.sin(e);return[t*Math.cos(A),t*Math.sin(A),Math.cos(e)]}var or=93;function ar([A,e]){const t=er(A+or),r=er(e),n=Ar.forward(r);return[t,Math.PI/2-n]}function sr([A,e]){const t=tr(A)-or,r=Math.PI/2-e;return[t,tr(Ar.inverse(r))]}a.setMatrixArrayType(Float64Array);var fr=Math.sqrt(5),ur=Math.sqrt(.2),lr=Math.sqrt((1-ur)/2),cr=Math.sqrt((1+ur)/2),hr=.5,dr=Math.sqrt((2.5-fr)/10),gr=Math.sqrt((2.5+fr)/10),wr=Math.sqrt((1+ur)/8),vr=Math.sqrt((1-ur)/8),Br=Math.sqrt((3-fr)/8),br=Math.sqrt((3+fr)/8),Mr=[[0,0],[lr,0],[dr,hr],[-wr,Br],[-wr,-Br],[dr,-hr],[-cr,0],[-vr,-br],[gr,-hr],[gr,hr],[-vr,br],[0,0]].map((([A,e])=>[-e,A])).map(((A,e)=>0===e?[0,0,0,1]:11===e?[0,-1,0,0]:[...A,0,e<6?cr:lr]));a.setMatrixArrayType(Float64Array);var kr=["vu","uw","vw","vw","vw"],mr=["wu","uw","vw","vu","uw"],Qr=["wu","uv","wv","wu","uw"],Dr=["vu","uv","wv","wu","uw"],pr=[kr,Dr,Qr,mr,Qr,Dr,Qr,mr,mr,mr,Dr,Dr],Er=[4,2,3,2,0,4,3,2,2,0,3,0],Cr=[0,1,2,4,3,5,7,8,6,11,10,9],yr=[],Pr=0;function Ir(A,e,t){if(Pr>11)throw new Error(`Too many origins: ${Pr}`);const r=H.create();H.conjugate(r,t),yr.push({id:Pr,axis:A,quat:t,inverseQuat:r,angle:e,orientation:pr[Pr],firstQuintant:Er[Pr]}),Pr++}function Fr(A){let e=1/0,t=yr[0];for(const r of yr){const n=Tr(A,r.axis);n<e&&(e=n,t=r)}return t}function Tr(A,e){const[t,r]=A,[n,i]=e,o=n-t,a=Math.sin((i-r)/2),s=Math.sin(o/2);return a*a+s*s*Math.sin(r)*Math.sin(i)}!function(){Ir([0,0],0,Mr[0]);for(let A=0;A<5;A++){const e=A*Et,t=e+Ct;Ir([e,It],Ct,Mr[A+1]),Ir([t,Math.PI-It],Ct,Mr[(A+3)%5+6])}Ir([0,Math.PI],0,Mr[11])}(),yr.sort(((A,e)=>Cr.indexOf(A.id)-Cr.indexOf(e.id))),yr.forEach(((A,e)=>A.id=e));var Lr=class{forward([A,e]){return[Math.tan(e),A]}inverse([A,e]){return[e,Math.atan(A)]}},xr=V.create(),Gr=V.create(),Sr=V.create(),Ur=V.create();function Rr(A,e){V.lerp(xr,A,e,.5),V.normalize(xr,xr),V.cross(xr,A,xr);const t=V.length(xr);if(t<1e-8){const t=V.subtract(V.create(),A,e);return.5*V.length(t)}return t}function zr(A,e,t,r){const n=V.angle(e,t);if(n<1e-12)return V.lerp(A,e,t,r);const i=Math.sin((1-r)*n)/Math.sin(n),o=Math.sin(r*n)/Math.sin(n),a=V.scale(V.create(),e,i),s=V.scale(V.create(),t,o);return V.add(A,a,s)}a.setMatrixArrayType(Float64Array);var Or=V.create(),Yr=V.create(),_r=V.create(),Wr=V.create(),Hr=class{constructor(A){this._area=null,this.vertices=A,Object.freeze(this.vertices)}getBoundary(A=1,e=!0){const t=[],r=this.vertices.length;for(let e=0;e<r*A;e++)t.push(this.slerp(e/A));return e&&t.push(t[0]),t}slerp(A){const e=this.vertices.length,t=A%1,r=Math.floor(A%e),n=(r+1)%e;return zr(V.create(),this.vertices[r],this.vertices[n],t)}getTransformedVertices(A){const e=this.vertices.length,t=Math.floor(A%e),r=(t+1)%e,n=(t+e-1)%e,i=V.clone(this.vertices[t]),o=V.clone(this.vertices[r]),a=V.clone(this.vertices[n]);return V.sub(o,o,i),V.sub(a,a,i),[i,o,a]}containsPoint(A){const e=this.vertices.length;let t=1/0;for(let r=0;r<e;r++){const[e,n,i]=this.getTransformedVertices(r),o=V.sub(V.create(),A,e);V.normalize(o,o),V.normalize(n,n),V.normalize(i,i);const a=V.cross(V.create(),n,o),s=V.cross(V.create(),o,i),f=V.dot(e,a),u=V.dot(e,s);t=Math.min(t,f,u)}return t}getTriangleArea(A,e,t){V.lerp(Or,e,t,.5),V.lerp(Yr,t,A,.5),V.lerp(_r,A,e,.5),V.normalize(Or,Or),V.normalize(Yr,Yr),V.normalize(_r,_r);const r=(n=Or,V.cross(Gr,Yr,_r),V.dot(n,Gr));var n;const i=Math.max(-1,Math.min(1,r));return Math.abs(i)<1e-8?2*i:2*Math.asin(i)}getArea(){return null===this._area&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(3===this.vertices.length)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;V.set(Wr,0,0,0);for(const A of this.vertices)V.add(Wr,Wr,A);V.normalize(Wr,Wr);let A=0;for(let e=0;e<this.vertices.length;e++){const t=this.getTriangleArea(Wr,this.vertices[e],this.vertices[(e+1)%this.vertices.length]);isNaN(t)||(A+=t)}return this._area=A,this._area}isWindingCorrect(){this.getArea()}};a.setMatrixArrayType(Float64Array);var Vr=class extends Hr{constructor(A){if(3!==A.length)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(A)}};a.setMatrixArrayType(Float64Array);var jr=class{forward(A,e,t){const[r,n,i]=e,o=new Vr([r,n,i]),a=V.subtract(V.create(),A,r);V.normalize(a,a);const s=function(A,e,t,r,n){V.cross(Gr,r,n);const i=V.dot(e,Gr),o=V.dot(t,Gr);return V.scale(Sr,e,o),V.scale(Ur,t,i),V.sub(A,Ur,Sr)}(V.create(),r,a,n,i);V.normalize(s,s);const f=Rr(r,A)/Rr(r,s),u=f/o.getArea();return function(A,[e,t,r]){return[A[0]*e[0]+A[1]*t[0]+A[2]*r[0],A[0]*e[1]+A[1]*t[1]+A[2]*r[1]]}([1-f,u*new Vr([r,s,i]).getArea(),u*new Vr([r,n,s]).getArea()],t)}inverse(A,e,t){const[r,n,i]=t,o=new Vr([r,n,i]),a=function(A,[e,t,r]){const n=[e[0]-r[0],e[1]-r[1]],i=[r[0]-t[0],r[1]-t[1]],o=[A[0]-r[0],A[1]-r[1]],a=i[0]*n[1]-i[1]*n[0],s=(i[0]*o[1]-i[1]*o[0])/a,f=(n[0]*o[1]-n[1]*o[0])/a;return[s,f,1-(s+f)]}(A,e),s=1-1e-14;if(a[0]>s)return r;if(a[1]>s)return n;if(a[2]>s)return i;const f=V.create();V.cross(f,n,i);const u=o.getArea(),l=1-a[0],c=a[2]/l*u,h=Math.sin(c),d=Math.sin(c/2),g=2*d*d,w=V.dot(r,n),v=V.dot(n,i),B=V.dot(i,r),b=V.length(f),M=h*V.dot(r,f)+g*(w*v-B),k=g*b*(1+w),m=2/Math.acos(v)*Math.atan2(k,M),Q=zr(V.create(),n,i,m),D=Rr(r,Q);return zr([0,0,0],r,Q,this.safeAcos(l*D)/this.safeAcos(D))}safeAcos(A){return A<.001?2*A+A*A*A/3:Math.acos(1-2*A*A)}};a.setMatrixArrayType(Float64Array);var Nr=-1,Zr=1,Jr=([A,e])=>Le.fromValues(A-e,e),Xr=Le.fromValues(1,0),Kr=Le.fromValues(0,1),qr=Le.negate(Le.create(),Xr),$r=Le.negate(Le.create(),Kr),An=Le.fromValues(0,0),en=(A,[e,t])=>{let r=An,n=An;switch(e===Zr&&t===Zr?(r=Xr,n=Kr):e===Nr&&t===Zr?(r=$r,n=qr):e===Zr&&t===Nr?(r=Kr,n=Xr):e===Nr&&t===Nr&&(r=qr,n=$r),A){case 0:return An;case 1:return r;case 2:return Le.add(Le.create(),n,r);case 3:return Le.scaleAndAdd(Le.create(),n,r,2);default:throw new Error(`Invalid Quaternary value: ${A}`)}},tn=A=>[[Zr,Zr],[Zr,Nr],[Zr,Zr],[Nr,Zr]][A],rn=Le.fromValues(-1,1);function nn(A){return Array.from({length:A.length},((e,t)=>A.indexOf(t)))}var on=[0,1,3,4,5,6,7,2],an=[0,1,2,7,3,4,5,6],sn=nn(on),fn=nn(an),un=(A,e,t,r,n)=>{if(e<=0)return;const i=A[e]||0,o=A[e-1];let a=!0,s=!0;if(r!==(0===t[0]+t[1])?(a=1===i||2===i,s=1===i):(a=i<2,s=0===i),!a)return;const f=s?o:o+4,u=n[f];A[e-1]=u%4,A[e]=(i+4+Math.floor(u/4)-Math.floor(f/4))%4},ln=(A,e,t)=>{let r=BigInt(A);const n="wv"===t||"vw"===t,i="wu"===t||"uw"===t;("vu"===t||"wu"===t||"vw"===t)&&(r=(1n<<BigInt(2*e))-r-1n);const o=cn(r,e,n,i);if(i){const{offset:[A,e],flips:[t,r]}=o;o.offset=[e,A],t===Nr&&Le.add(o.offset,o.offset,rn),r===Nr&&Le.subtract(o.offset,o.offset,rn)}if(n){const{offset:[A,t],flips:r}=o,n=(1<<e)-(A+t);r[0]=-r[0],o.offset[1]=n,o.flips=r}return o},cn=(A,e,t,r)=>{const n=Le.create(),i=[Zr,Zr];let o=BigInt(A);const a=[];for(;o>0n||a.length<e;)a.push(Number(o%4n)),o>>=2n;const s=r?an:on;for(let A=a.length-1;A>=0;A--)un(a,A,i,t,s),Le.multiply(i,i,tn(a[A]));i[0]=Zr,i[1]=Zr;for(let A=a.length-1;A>=0;A--){Le.scale(n,n,2);const e=en(a[A],i);Le.add(n,n,e),Le.multiply(i,i,tn(a[A]))}return{flips:i,k:a[0]||0,offset:Jr(n)}},hn=([A,e],t)=>{let r=0,n=t[0]===Nr?-(A+e):A+e,i=t[1]===Nr?-A:A,o=t[0]===Nr?-e:e;return r=t[0]+t[1]===0?o<1?0:i>1?3:n>1?2:1:n<1?0:i>1?3:o>1?2:1,r},dn=(A,e,t="uv")=>{const r="vu"===t||"wu"===t||"vw"===t,n="wv"===t||"vw"===t,i="wu"===t||"uw"===t;let o=[...A];if(i&&(o[0]=A[1],o[1]=A[0]),n){const[A,t]=o;o[1]=(1<<e)-(A+t)}let a=gn(o,n,i,e);return r&&(a=(1n<<BigInt(2*e))-a-1n),a},gn=(A,e,t,r)=>{const n=r,i=new Array(n),o=[Zr,Zr],a=Le.create();for(let e=n-1;e>=0;e--){const t=Le.subtract(Le.create(),A,a),r=1<<e,n=Le.scale(Le.create(),t,1/r),s=hn(n,o);i[e]=s;const f=Jr(en(s,o)),u=Le.scale(Le.create(),f,r);Le.add(a,a,u),Le.multiply(o,o,tn(s))}const s=t?fn:sn;for(let A=0;A<i.length;A++)Le.multiply(o,o,tn(i[A])),un(i,A,o,e,s);let f=0n;for(let A=n-1;A>=0;A--){const e=1n<<BigInt(2*A);f+=BigInt(i[A])*e}return f};a.setMatrixArrayType(Float64Array);var wn=Le.clone(Zt),vn=Le.negate(Le.create(),Zt),Bn=[0,1,2,3,4].map((A=>{const e=g.create();return g.fromRotation(e,Et*A),e})),bn=Le.create();function Mn(A){const e=Jt.clone();return e.transform(Bn[A]),e}a.setMatrixArrayType(Float64Array),a.setMatrixArrayType(Float64Array);var kn=new class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),62!==this.vertices.length)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(A){this.invocations++,1e4===this.invocations&&console.warn("Too many CRS invocations, results should be cached");for(const e of this.vertices)if(V.distance(A,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){yr.forEach((A=>this.add(ir(A.axis))))}addVertices(){const A=Math.atan(Tt);for(const e of yr)for(let t=0;t<5;t++){const r=ir([(2*t+1)*Math.PI/5+e.angle,A]);V.transformQuat(r,r,e.quat),this.add(r)}}addMidpoints(){const A=Math.atan(Ft);for(const e of yr)for(let t=0;t<5;t++){const r=ir([2*t*Math.PI/5+e.angle,A]);V.transformQuat(r,r,e.quat),this.add(r)}}add(A){const e=V.normalize(V.create(),A);return!this.vertices.find((A=>V.distance(e,A)<1e-5))&&(this.vertices.push(e),!0)}},mn=2,Qn=30,Dn=58n,pn=0x3ffffffffffffffn,En=0n;function Cn(A){let e=Qn-1,t=A>>1n;for(;e>-1&&0n===(0b1n&t);)e-=1,t>>=e<mn?1n:2n;return e}function yn(A){const e=Cn(A);if(-1===e)return{origin:yr[0],segment:0,S:0n,resolution:e};const t=Number(A>>58n);let r,n;if(0===e)r=yr[t],n=0;else{const A=Math.floor(t/5);r=yr[A],n=(t+r.firstQuintant)%5}if(!r)throw new Error(`Could not parse origin: ${t}`);if(e<mn)return{origin:r,segment:n,S:0n,resolution:e};const i=BigInt(2*(e-mn+1));return{origin:r,segment:n,S:(A&pn)>>Dn-i,resolution:e}}function Pn(A){const{origin:e,segment:t,S:r,resolution:n}=A;if(n>Qn)throw new Error(`Resolution (${n}) is too large`);if(-1===n)return En;let i;i=n<mn?BigInt(n+1):BigInt(2*(1+n-mn)+1);const o=(t-e.firstQuintant+5)%5;let a;if(a=0===n?BigInt(e.id)<<58n:BigInt(5*e.id+o)<<58n,n>=mn){const A=BigInt(2*(n-mn+1));if(BigInt(r)>=1n<<A)throw new Error(`S (${r}) is too large for resolution level ${n}`);a+=BigInt(r)<<Dn-A}return a|=1n<<Dn-i,a}function In(A,e){const{origin:t,segment:r,S:n,resolution:i}=yn(A),o=e??i+1;if(o<i)throw new Error(`Target resolution (${o}) must be equal to or greater than current resolution (${i})`);if(o>Qn)throw new Error(`Target resolution (${o}) exceeds maximum resolution (${Qn})`);if(o===i)return[A];let a=[t],s=[r];-1===i&&(a=yr),(-1===i&&o>0||0===i)&&(s=[0,1,2,3,4]);const f=o-Math.max(i,mn-1),u=Math.pow(4,f),l=[],c=n<<BigInt(2*f);for(const A of a)for(const e of s)for(let t=0;t<u;t++){const r=c+BigInt(t);l.push(Pn({origin:A,segment:e,S:r,resolution:o}))}return l}function Fn(A,e){const{origin:t,segment:r,S:n,resolution:i}=yn(A),o=e??i-1;if(o<0)throw new Error(`Target resolution (${o}) cannot be negative`);if(o>i)throw new Error(`Target resolution (${o}) must be equal to or less than current resolution (${i})`);return o===i?A:Pn({origin:t,segment:r,S:n>>BigInt(2*(i-o)),resolution:o})}function Tn(){return In(En,0)}a.setMatrixArrayType(Float64Array);var Ln=g.create(),xn=new class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new jr,this.gnomonic=new Lr}forward(A,e){const t=yr[e],r=ir(A),n=V.create();V.transformQuat(n,r,t.inverseQuat);const i=nr(n),o=this.gnomonic.forward(i);o[1]=o[1]-t.angle;const a=this.getFaceTriangleIndex(o),s=this.shouldReflect(o);let f=this.getFaceTriangle(a,s,!1),u=this.getSphericalTriangle(a,e,s);return this.polyhedral.forward(r,u,f)}inverse(A,e){const t=rr(A),r=this.getFaceTriangleIndex(t),n=this.shouldReflect(t),i=this.getFaceTriangle(r,n,!1),o=this.getSphericalTriangle(r,e,n);return nr(this.polyhedral.inverse(A,i,o))}shouldReflect(A){const[e,t]=A,r=function([A,e]){return[A*Math.cos(e),A*Math.sin(e)]}([e,this.normalizeGamma(t)])[0];return r>Ft}getFaceTriangleIndex([A,e]){return(Math.floor(e/Ct)+10)%10}getFaceTriangle(A,e=!1,t=!1){let r=A;return e&&(r+=t?20:10),this.faceTriangles[r]||(this.faceTriangles[r]=e?this._getReflectedFaceTriangle(A,t):this._getFaceTriangle(A),Object.freeze(this.faceTriangles[r])),this.faceTriangles[r]}_getFaceTriangle(A){const e=Math.floor((A+1)/2)%5,[t,r,n]=Mn(e).getVertices(),i=Le.create();return Le.lerp(i,r,n,.5),A%2==0?[t,i,r]:[t,n,i]}_getReflectedFaceTriangle(A,e=!1){let[t,r,n]=this._getFaceTriangle(A).map((A=>Le.clone(A)));const i=A%2==0;return Le.negate(t,t),Le.scaleAndAdd(t,t,i?r:n,e?1+1/Math.cos(It):2),[t,n,r]}getSphericalTriangle(A,e,t=!1){let r=10*e+A;return t&&(r+=120),this.sphericalTriangles[r]||(this.sphericalTriangles[r]=this._getSphericalTriangle(A,e,t),Object.freeze(this.sphericalTriangles[r])),this.sphericalTriangles[r]}_getSphericalTriangle(A,e,t=!1){const r=yr[e];return this.getFaceTriangle(A,t,!0).map((A=>{const[e,t]=rr(A),n=ir(this.gnomonic.inverse([e,t+r.angle]));return V.transformQuat(n,n,r.quat),kn.getVertex(n)}))}normalizeGamma(A){const e=A/Et;return(e-Math.round(e))*Et}};function Gn(A,e){if(e<mn)return Pn(Sn(A,e));const t=[A],r=50/Math.pow(2,1+e-mn);for(let e=0;e<25;e++){const n=e/25*r,i=Le.fromValues(Math.cos(e)*n,Math.sin(e)*n);Le.add(i,i,A),t.push(i)}const n=new Set,i=[];for(const r of t){const t=Sn(r,e),o=Pn(t);if(!n.has(o)){n.add(o);const e=On(t,A);if(e>0)return Pn(t);i.push({cell:t,distance:e})}}return i.sort(((A,e)=>e.distance-A.distance)),Pn(i[0].cell)}function Sn(A,e){const t=ar(A),r={...Fr(t)},n=xn.forward(t,r.id),i=function([A,e]){return(Math.round(e/Et)+5)%5}(rr(n)),{segment:o,orientation:a}=function(A,e){const t=e.orientation,r=((A-e.firstQuintant+5)%5*(t===kr||t===mr?-1:1)+5)%5;return{segment:(e.firstQuintant+r)%5,orientation:t[r]}}(i,r);if(e<mn)return{S:0n,segment:o,origin:r,resolution:e};0!==i&&(g.fromRotation(Ln,-2*Ct*i),Le.transformMat2(n,n,Ln));const s=1+e-mn;Le.scale(n,n,2**s);const f=(u=n,Le.transformMat2(Le.create(),u,Kt));var u;return{S:dn(f,s,a),segment:o,origin:r,resolution:e}}function Un({S:A,segment:e,origin:t,resolution:r}){const{quintant:n,orientation:i}=function(A,e){const t=e.orientation,r=(A-e.firstQuintant+5)%5;return{quintant:(e.firstQuintant+(t===kr||t===mr?-1:1)*r+5)%5,orientation:t[r]}}(e,t);if(r===mn-1)return Mn(n);if(r===mn-2)return function(){const A=[];for(const e of Bn)A.push(Le.transformMat2(Le.create(),jt,e));return A.reverse(),new Lt(A)}();const o=r-mn+1;return function(A,e,t){const r=_t.clone();Le.transformMat2(bn,t.offset,Xt),t.flips[0]===Zr&&t.flips[1]===Nr&&r.rotate180();const{k:n}=t,i=t.flips[0]+t.flips[1];return((-2===i||2===i)&&n>1||0===i&&(0===n||3===n))&&r.reflectY(),t.flips[0]===Nr&&t.flips[1]===Nr?r.rotate180():t.flips[0]===Nr?r.translate(vn):t.flips[1]===Nr&&r.translate(wn),r.translate(bn),r.scale(1/2**A),r.transform(Bn[e]),r}(o,n,ln(A,o,i))}function Rn(A){const{S:e,segment:t,origin:r,resolution:n}=yn(A),i=Un({S:e,segment:t,origin:r,resolution:n});return sr(xn.inverse(i.getCenter(),r.id))}function zn(A,{closedRing:e=!0,segments:t="auto"}={closedRing:!0,segments:"auto"}){const{S:r,segment:n,origin:i,resolution:o}=yn(A);"auto"===t&&(t=Math.max(1,Math.pow(2,6-o)));const a=function(A){const e=A.map((A=>ir(ar(A)))),t=V.create();for(const A of e)V.add(t,t,A);V.normalize(t,t);let[r,n]=sr(nr(t));return(n>89.99||n<-89.99)&&(r=A[0][0]),r=((r+180)%360+360)%360-180,A.map((A=>{let[e,t]=A;for(;e-r>180;)e-=360;for(;e-r<-180;)e+=360;return[e,t]}))}(Un({S:r,segment:n,origin:i,resolution:o}).splitEdges(t).getVertices().map((A=>xn.inverse(A,i.id))).map((A=>sr(A))));return e&&a.push(a[0]),a.reverse(),a}function On(A,e){const t=Un(A),r=ar(e),n=xn.forward(r,A.origin.id);return t.containsPoint(n)}function Yn(A){return BigInt(`0x${A}`)}function _n(A){return A.toString(16)}var Wn=6371007.2,Hn=4*Math.PI*Wn*Wn;function Vn(A){return"bigint"==typeof A?A<0n?0n:0n===A?12n:60n*4n**(A-1n):A<0?0:0===A?12:60*4**(A-1)}function jn(A){return A<0?Hn:Hn/Vn(A)}return a.setMatrixArrayType(Float64Array),z}R.layerName="GeoCellLayer",R.defaultProps=U;var _=Y(),W=function(A){var e,t=void 0!==(A=A||{})?A:{},r={};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);var n,i="";"undefined"!=typeof document&&document.currentScript&&(i=document.currentScript.src),i=0!==i.indexOf("blob:")?i.substr(0,i.lastIndexOf("/")+1):"",n=function(A,e,t){var r=new XMLHttpRequest;r.open("GET",A,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)e(r.response);else{var n=Y(A);n?e(n.buffer):t()}},r.onerror=t,r.send(null)};var o=t.print||console.log.bind(console),a=t.printErr||console.warn.bind(console);for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);r=null;var s=0,f=!1;function u(A){var e=t["_"+A];return e||AA("Assertion failed: "+("Cannot call unknown function "+A+", make sure it is exported")),e}var l,c,h,d,g,w,v,B="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function b(A,e){return A?function(A,e,t){for(var r=e+t,n=e;A[n]&&!(n>=r);)++n;if(n-e>16&&A.subarray&&B)return B.decode(A.subarray(e,n));for(var i="";e<n;){var o=A[e++];if(128&o){var a=63&A[e++];if(192!=(224&o)){var s=63&A[e++];if((o=224==(240&o)?(15&o)<<12|a<<6|s:(7&o)<<18|a<<12|s<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var f=o-65536;i+=String.fromCharCode(55296|f>>10,56320|1023&f)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(h,A,e):""}function M(A,e){return A%e>0&&(A+=e-A%e),A}function k(A){l=A,t.HEAP8=c=new Int8Array(A),t.HEAP16=d=new Int16Array(A),t.HEAP32=g=new Int32Array(A),t.HEAPU8=h=new Uint8Array(A),t.HEAPU16=new Uint16Array(A),t.HEAPU32=new Uint32Array(A),t.HEAPF32=w=new Float32Array(A),t.HEAPF64=v=new Float64Array(A)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var m=t.TOTAL_MEMORY||33554432;function Q(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?t.dynCall_v(r):t.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}m=(l=t.buffer?t.buffer:new ArrayBuffer(m)).byteLength,k(l),g[7152]=5271520;var D=[],p=[],E=[],C=[],y=Math.abs,P=Math.ceil,I=Math.floor,F=Math.min,T=0,L=null;t.preloadedImages={},t.preloadedAudios={};var x,G,S=null,U="data:application/octet-stream;base64,";function R(A){return String.prototype.startsWith?A.startsWith(U):0===A.indexOf(U)}function z(){return c.length}S="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+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";var O="function"==typeof atob?atob:function(A){var e,t,r,n,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",f=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{r=a.indexOf(A.charAt(f++)),e=(15&(n=a.indexOf(A.charAt(f++))))<<4|(i=a.indexOf(A.charAt(f++)))>>2,t=(3&i)<<6|(o=a.indexOf(A.charAt(f++))),s+=String.fromCharCode(r<<2|n>>4),64!==i&&(s+=String.fromCharCode(e)),64!==o&&(s+=String.fromCharCode(t))}while(f<A.length);return s};function Y(A){if(R(A))return function(A){try{for(var e=O(A),t=new Uint8Array(e.length),r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}catch(A){throw new Error("Converting base64 string to bytes failed.")}}(A.slice(U.length))}var _=function(A,e,t){var r=new A.Int8Array(t),n=new A.Int32Array(t),i=new A.Float64Array(t),o=0|e.o,a=0|e.p,s=A.Math.floor,f=A.Math.abs,u=A.Math.sqrt,l=A.Math.pow,c=A.Math.cos,h=A.Math.sin,d=A.Math.tan,g=A.Math.acos,w=A.Math.asin,v=A.Math.atan,B=A.Math.atan2,b=A.Math.ceil,M=A.Math.imul,k=A.Math.min,m=A.Math.max,Q=A.Math.clz32,D=e.b,p=e.c,E=e.d,C=e.e,y=e.f,P=e.g,I=e.h,F=e.i,T=28640;function L(A,e,t,r){return 0|x(A|=0,e|=0,t|=0,r|=0,0)}function x(A,e,t,r,i){var o,a=0,s=0,f=0,u=0;if(o=T,T=T+16|0,s=o,!(0|G(A|=0,e|=0,t|=0,r|=0,i|=0)))return T=o,0;do{if((0|t)>=0){if((0|t)>13780509){if(0|(a=0|de(15,s)))break;s=0|n[(f=s)>>2],f=0|n[f+4>>2]}else u=0|nt(0|t,0|(a=((0|t)<0)<<31>>31),3,0),f=0|p(),a=0|$e(0|t,0|a,1,0),a=0|$e(0|(a=0|nt(0|u,0|f,0|a,0|p())),0|p(),1,0),f=0|p(),n[s>>2]=a,n[s+4>>2]=f,s=a;if(gt(0|r,0,s<<3),0|i){gt(0|i,0,s<<2),a=0|S(A,e,t,r,i,s,f,0);break}(a=0|qe(s,4))?(u=0|S(A,e,t,r,a,s,f,0),Ke(a),a=u):a=13}else a=2}while(0);return T=o,0|a}function G(A,e,t,r,i){e|=0,t|=0,r|=0,i|=0;var o,a,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0;if(a=T,T=T+16|0,w=a+8|0,n[(g=o=a)>>2]=A|=0,n[g+4>>2]=e,(0|t)<0)return T=a,2;if(n[(s=r)>>2]=A,n[s+4>>2]=e,(s=!!(0|i))&&(n[i>>2]=0),0|VA(A,e))return T=a,9;n[w>>2]=0;A:do{if((0|t)>=1)if(s)for(h=1,c=0,d=0,g=1,s=A;;){if(!(c|d)){if(0|(s=0|U(s,e,4,w,o)))break A;if(0|VA(s=0|n[(e=o)>>2],e=0|n[e+4>>2])){s=9;break A}}if(0|(s=0|U(s,e,0|n[26800+(d<<2)>>2],w,o)))break A;if(s=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,n[i+(h<<2)>>2]=g,f=(0|(A=c+1|0))==(0|g),l=6==(0|(u=d+1|0)),0|VA(s,e)){s=9;break A}if((0|(g=g+(l&f&1)|0))>(0|t)){s=0;break}h=h+1|0,c=f?0:A,d=f?l?0:u:d}else for(h=1,c=0,d=0,g=1,s=A;;){if(!(c|d)){if(0|(s=0|U(s,e,4,w,o)))break A;if(0|VA(s=0|n[(e=o)>>2],e=0|n[e+4>>2])){s=9;break A}}if(0|(s=0|U(s,e,0|n[26800+(d<<2)>>2],w,o)))break A;if(s=0|n[(e=o)>>2],e=0|n[e+4>>2],n[(A=r+(h<<3)|0)>>2]=s,n[A+4>>2]=e,f=(0|(A=c+1|0))==(0|g),l=6==(0|(u=d+1|0)),0|VA(s,e)){s=9;break A}if((0|(g=g+(l&f&1)|0))>(0|t)){s=0;break}h=h+1|0,c=f?0:A,d=f?l?0:u:d}else s=0}while(0);return T=a,0|s}function S(A,e,t,r,i,o,a,s){t|=0,r|=0,i|=0,s|=0;var f,u,l,c=0,h=0,d=0,g=0,w=0,v=0,B=0;if(l=T,T=T+16|0,f=l+8|0,u=l,c=0|ot(0|(A|=0),0|(e|=0),0|(o|=0),0|(a|=0)),d=0|p(),!(!(0|(B=0|n[(v=g=r+(c<<3)|0)>>2]))&!(0|(v=0|n[v+4>>2]))|(h=(0|B)==(0|A)&(0|v)==(0|e))))do{c=0|it(0|(c=0|$e(0|c,0|d,1,0)),0|p(),0|o,0|a),d=0|p(),h=(0|(v=0|n[(B=g=r+(c<<3)|0)>>2]))==(0|A)&(0|(B=0|n[B+4>>2]))==(0|e)}while(!(!(0|v)&!(0|B)|h));if(c=i+(c<<2)|0,h&&(0|n[c>>2])<=(0|s))return T=l,0;if(n[(B=g)>>2]=A,n[B+4>>2]=e,n[c>>2]=s,(0|s)>=(0|t))return T=l,0;switch(h=s+1|0,n[f>>2]=0,0|(c=0|U(A,e,2,f,u))){case 9:w=9;break;case 0:(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h))||(w=9)}A:do{if(9==(0|w)){switch(n[f>>2]=0,0|(c=0|U(A,e,3,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,1,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,5,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,4,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}switch(n[f>>2]=0,0|(c=0|U(A,e,6,f,u))){case 9:break;case 0:if(0|(c=0|S(0|n[(c=u)>>2],0|n[c+4>>2],t,r,i,o,a,h)))break A;break;default:break A}return T=l,0}}while(0);return T=l,0|c}function U(A,e,t,r,i){A|=0,e|=0,i|=0;var o,a,s=0,f=0,u=0,l=0,c=0,h=0,d=0;if((t|=0)>>>0>6)return 1;if(n[(r|=0)>>2]=c=(0|n[r>>2])%6|0,(0|c)>0){s=0;do{t=0|kA(t),s=s+1|0}while((0|s)<(0|n[r>>2]))}if(c=0|st(0|A,0|e,45),p(),(a=127&c)>>>0>121)return 5;o=0|ZA(A,e),s=0|st(0|A,0|e,52),p(),s&=15;A:do{if(s){for(;;){if(u=0|st(0|A,0|e,0|(f=3*(15-s|0)|0)),p(),7==(0|(u&=7))){e=5;break}if(d=!(0|$A(s)),s=s+-1|0,h=0|ft(7,0,0|f),e&=~p(),A=ft(0|n[(d?432:16)+(28*u|0)+(t<<2)>>2],0,0|f)|A&~h,e|=f=0|p(),!(t=0|n[(d?640:224)+(28*u|0)+(t<<2)>>2])){t=0;break A}if(!s){l=8;break A}}return 0|e}l=8}while(0);8==(0|l)&&(A|=0|ft(0|(d=0|n[848+(28*a|0)+(t<<2)>>2]),0,45),e=p()|-1040385&e,t=0|n[4272+(28*a|0)+(t<<2)>>2],127&~d||(d=0|ft(0|n[848+(28*a|0)+20>>2],0,45),e=p()|-1040385&e,t=0|n[4272+(28*a|0)+20>>2],A=0|XA(d|A,e),e=0|p(),n[r>>2]=1+(0|n[r>>2]))),u=0|st(0|A,0|e,45),p(),u&=127;A:do{if(0|_(u)){e:do{if(1==(0|ZA(A,e))){if((0|a)!=(0|u)){if(0|j(u,0|n[7696+(28*a|0)>>2])){A=0|qA(A,e),f=1,e=0|p();break}E(27795,26864,533,26872)}switch(0|o){case 3:A=0|XA(A,e),e=0|p(),n[r>>2]=1+(0|n[r>>2]),f=0;break e;case 5:A=0|qA(A,e),e=0|p(),n[r>>2]=5+(0|n[r>>2]),f=0;break e;case 0:return 9;default:return 1}}else f=0}while(0);if((0|t)>0){s=0;do{A=0|JA(A,e),e=0|p(),s=s+1|0}while((0|s)!=(0|t))}if((0|a)!=(0|u)){if(!(0|W(u))){if(!!(0|f)|5!=(0|ZA(A,e)))break;n[r>>2]=1+(0|n[r>>2]);break}switch(127&c){case 8:case 118:break A}3!=(0|ZA(A,e))&&(n[r>>2]=1+(0|n[r>>2]))}}else if((0|t)>0){s=0;do{A=0|XA(A,e),e=0|p(),s=s+1|0}while((0|s)!=(0|t))}}while(0);return n[r>>2]=((0|n[r>>2])+t|0)%6|0,n[(d=i)>>2]=A,n[d+4>>2]=e,0}function R(A,e,t,r){e|=0,t|=0,r|=0;var i,o,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0;if(o=T,T=T+16|0,g=o+8|0,n[(d=i=o)>>2]=A|=0,n[d+4>>2]=e,(0|t)<0)return T=o,2;if(!t)return n[(g=r)>>2]=A,n[g+4>>2]=e,T=o,0;n[g>>2]=0;A:do{if(0|VA(A,e))A=9;else{a=0,d=A;do{if(0|(A=0|U(d,e,4,g,i)))break A;if(a=a+1|0,0|VA(d=0|n[(e=i)>>2],e=0|n[e+4>>2])){A=9;break A}}while((0|a)<(0|t));n[(h=r)>>2]=d,n[h+4>>2]=e,h=t+-1|0,c=0,A=1;do{if(a=26800+(c<<2)|0,5==(0|c))for(f=0|n[a>>2],s=0,a=A;;){if(0|(A=0|U(0|n[(A=i)>>2],0|n[A+4>>2],f,g,i)))break A;if((0|s)!=(0|h)){if(u=0|n[(l=i)>>2],l=0|n[l+4>>2],n[(A=r+(a<<3)|0)>>2]=u,n[A+4>>2]=l,0|VA(u,l)){A=9;break A}A=a+1|0}else A=a;if((0|(s=s+1|0))>=(0|t))break;a=A}else for(l=0|n[a>>2],u=0,a=A,s=0|n[(f=i)>>2],f=0|n[f+4>>2];;){if(0|(A=0|U(s,f,l,g,i)))break A;if(s=0|n[(f=i)>>2],f=0|n[f+4>>2],n[(A=r+(a<<3)|0)>>2]=s,n[A+4>>2]=f,A=a+1|0,0|VA(s,f)){A=9;break A}if((0|(u=u+1|0))>=(0|t))break;a=A}c=c+1|0}while(c>>>0<6);A=(0|d)==(0|n[(A=i)>>2])&&(0|e)==(0|n[A+4>>2])?0:9}}while(0);return T=o,0|A}function z(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0;if(i=T,T=T+16|0,s=i,!(t|=0))return n[r>>2]=A,n[r+4>>2]=e,T=i,0;do{if((0|t)>=0){if((0|t)>13780509){if(0|(o=0|de(15,s)))break;o=0|n[(a=s)>>2],a=0|n[a+4>>2]}else c=0|nt(0|t,0|(o=((0|t)<0)<<31>>31),3,0),a=0|p(),o=0|$e(0|t,0|o,1,0),o=0|$e(0|(o=0|nt(0|c,0|a,0|o,0|p())),0|p(),1,0),a=0|p(),n[(c=s)>>2]=o,n[c+4>>2]=a;if(l=0|qe(o,8)){if(!(c=0|qe(o,4))){Ke(l),o=13;break}if(0|(o=0|S(A,e,t,l,c,o,a,0))){Ke(l),Ke(c);break}if(e=0|n[s>>2],(0|(s=0|n[s+4>>2]))>0|!(0|s)&e>>>0>0){o=0,f=0,u=0;do{!(0|(a=0|n[(A=l+(f<<3)|0)>>2]))&!(0|(A=0|n[A+4>>2]))||(0|n[c+(f<<2)>>2])!=(0|t)||(n[(h=r+(o<<3)|0)>>2]=a,n[h+4>>2]=A,o=o+1|0),f=0|$e(0|f,0|u,1,0),u=0|p()}while((0|u)<(0|s)|(0|u)==(0|s)&f>>>0<e>>>0)}Ke(l),Ke(c),o=0}else o=13}else o=2}while(0);return T=i,0|o}function O(A,e,t,r){t|=0,r|=0;var i,o,a,s=0,f=0;for(a=T,T=T+16|0,i=a,o=a+8|0,s=(s=!(0|VA(A|=0,e|=0)))?1:2;;){if(n[o>>2]=0,!(0|U(A,e,s,o,i))&((0|n[(f=i)>>2])==(0|t)?(0|n[f+4>>2])==(0|r):0)){A=4;break}if((s=s+1|0)>>>0>=7){s=7,A=4;break}}return 4==(0|A)?(T=a,0|s):0}function Y(A,e,t,r,o,a,s){e|=0,t|=0,r|=0,o|=0,a|=0,s|=0;var f,u,l,c,h,d,g,w,v,B,b=0,M=0,k=0,m=0,Q=0,D=0,E=0,C=0,y=0,P=0,I=0,F=0,L=0,x=0,G=0,S=0,U=0,R=0,z=0;if(B=T,T=T+64|0,v=B+24|0,u=B,(0|(M=0|n[(A|=0)>>2]))<=0)return T=B,0;for(l=A+4|0,c=8+(g=B+48|0)|0,h=8+(w=B+32|0)|0,d=8+(f=B+8|0)|0,b=0,L=0;;){n[g>>2]=n[(F=(k=0|n[l>>2])+(L<<4)|0)>>2],n[g+4>>2]=n[F+4>>2],n[g+8>>2]=n[F+8>>2],n[g+12>>2]=n[F+12>>2],(0|L)==(M+-1|0)?(n[w>>2]=n[k>>2],n[w+4>>2]=n[k+4>>2],n[w+8>>2]=n[k+8>>2],n[w+12>>2]=n[k+12>>2]):(n[w>>2]=n[(F=k+(L+1<<4)|0)>>2],n[w+4>>2]=n[F+4>>2],n[w+8>>2]=n[F+8>>2],n[w+12>>2]=n[F+12>>2]),M=0|rA(g,w,r,v);A:do{if(M)k=0,b=M;else if(k=0|n[(M=v)>>2],(0|(M=0|n[M+4>>2]))>0|!(0|M)&k>>>0>0){I=0,F=0;e:for(;;){if(U=1/(+(k>>>0)+4294967296*+(0|M)),z=+i[g>>3],R=+((M=0|At(0|k,0|M,0|I,0|F))>>>0)+4294967296*+(0|p()),i[f>>3]=U*(z*R)+U*(+i[w>>3]*(S=+(I>>>0)+4294967296*+(0|F))),i[d>>3]=U*(+i[c>>3]*R)+U*(+i[h>>3]*S),0|(M=0|Ae(f,r,u))){b=M;break}D=0|ot(0|(y=0|n[(P=u)>>2]),0|(P=0|n[P+4>>2]),0|e,0|t),m=0|p(),k=0|n[(Q=M=s+(D<<3)|0)>>2],Q=0|n[Q+4>>2];t:do{if(!(0|k)&!(0|Q))x=M,G=16;else for(E=0,C=0;;){if((0|E)>(0|t)|(0|E)==(0|t)&C>>>0>e>>>0){b=1;break e}if((0|k)==(0|y)&(0|Q)==(0|P))break t;if(D=0|it(0|(M=0|$e(0|D,0|m,1,0)),0|p(),0|e,0|t),m=0|p(),C=0|$e(0|C,0|E,1,0),E=0|p(),!(0|(k=0|n[(Q=M=s+(D<<3)|0)>>2]))&!(0|(Q=0|n[Q+4>>2]))){x=M,G=16;break}}}while(0);if(16!=(0|G)||(G=0,!(0|y)&!(0|P))||(n[(C=x)>>2]=y,n[C+4>>2]=P,n[(C=a+(n[o>>2]<<3)|0)>>2]=y,n[C+4>>2]=P,C=0|$e(0|n[(C=o)>>2],0|n[C+4>>2],1,0),y=0|p(),n[(P=o)>>2]=C,n[P+4>>2]=y),I=0|$e(0|I,0|F,1,0),F=0|p(),k=0|n[(M=v)>>2],!((0|(M=0|n[M+4>>2]))>(0|F)|(0|M)==(0|F)&k>>>0>I>>>0)){k=1;break A}}k=0}else k=1}while(0);if(L=L+1|0,!k){G=21;break}if((0|L)>=(0|(M=0|n[A>>2]))){b=0,G=21;break}}return 21==(0|G)?(T=B,0|b):0}function _(A){return(A|=0)>>>0>121?0|(A=0):0|(A=0|n[7696+(28*A|0)+16>>2])}function W(A){return 4==(0|(A|=0))|117==(0|A)}function H(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)>>2]}function V(A){return 0|n[11120+(216*(0|n[(A|=0)>>2])|0)+(72*(0|n[A+4>>2])|0)+(24*(0|n[A+8>>2])|0)+(n[A+12>>2]<<3)+4>>2]}function j(A,e){return(0|n[7696+(28*(A|=0)|0)+20>>2])==(0|(e|=0))?0|(e=1):0|(e=(0|n[7696+(28*A|0)+24>>2])==(0|e))}function N(A,e){return 0|n[848+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function Z(A,e){return(0|n[848+(28*(A|=0)|0)>>2])==(0|(e|=0))?0|(e=0):(0|n[848+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|n[848+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|n[848+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|n[848+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|n[848+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|n[848+(28*A|0)+24>>2])==(0|e)?6:7)}function J(A){var e,t,r;return e=(r=+i[16+(A|=0)>>3])-(t=+i[A+24>>3]),+(r<t?e+6.283185307179586:e)}function X(A){return+i[16+(A|=0)>>3]<+i[A+24>>3]|0}function K(A){return+(+i[(A|=0)>>3]-+i[A+8>>3])}function q(A,e){var t,r,n=0;return(n=+i[(e|=0)>>3])>=+i[8+(A|=0)>>3]&&n<=+i[A>>3]?(e=(r=+i[e+8>>3])>=(n=+i[A+24>>3]),A=r<=(t=+i[A+16>>3])&1,t<n?e&&(A=1):e||(A=0),0|(e=!!(0|A))):0|(e=0)}function $(A,e){var t,r,n,o,a,s=0,f=0,u=0,l=0;return+i[(A|=0)>>3]<+i[8+(e|=0)>>3]||+i[A+8>>3]>+i[e>>3]?0|(s=0):(u=(a=+i[(s=e+16|0)>>3])<(o=+i[(r=e+24|0)>>3]),e=(l=+i[(t=A+24|0)>>3])-a<o-(f=+i[A+16>>3]),A=(n=f<l)?u|e?1:2:0,e=u?n?1:e?2:1:0,(f=+le(f,A))<+le(+i[r>>3],e)||(l=+le(+i[t>>3],A))>+le(+i[s>>3],e)?0|(u=0):0|(u=1))}function AA(A,e){var t,r,n,o,a,s=0,f=0,u=0,l=0;return+i[(A|=0)>>3]<+i[(e|=0)>>3]||+i[A+8>>3]>+i[e+8>>3]?0|(s=0):(u=(l=+i[(t=e+16|0)>>3])<(a=+i[(r=e+24|0)>>3]),e=(f=+i[A+24>>3])-l<a-(o=+i[(s=A+16|0)>>3]),A=(n=o<f)?u|e?1:2:0,e=u?n?1:e?2:1:0,(f=+le(f,A))<=+le(+i[r>>3],e)?0|(u=(l=+le(+i[s>>3],A))>=+le(+i[t>>3],e)):0|(u=0))}function eA(A,e){A|=0,e|=0;var t,r,o,a,s,f=0;o=T,T=T+176|0,n[(r=o)>>2]=4,i[r+8>>3]=f=+i[e>>3],i[r+16>>3]=a=+i[e+16>>3],i[r+24>>3]=f,i[r+32>>3]=f=+i[e+24>>3],i[r+40>>3]=s=+i[e+8>>3],i[r+48>>3]=f,i[r+56>>3]=s,i[r+64>>3]=a,t=96+(e=r+72|0)|0;do{n[e>>2]=0,e=e+4|0}while((0|e)<(0|t));dt(0|A,0|r,168),T=o}function tA(A,e,t){A|=0,e|=0,t|=0;var r,a,u,l,c,h,d,g=0,w=0,v=0,B=0,M=0,m=0,Q=0;h=T,T=T+288|0,c=h+264|0,B=h+96|0,w=(g=v=h)+96|0;do{n[g>>2]=0,g=g+4|0}while((0|g)<(0|w));return 0|(e=0|ie(e,v))?(T=h,0|(m=e)):(re(v=0|n[(w=v)>>2],w=0|n[w+4>>2],c),ne(v,w,B),l=+ce(c,B+8|0),i[c>>3]=+i[A>>3],i[(w=c+8|0)>>3]=+i[A+16>>3],i[B>>3]=+i[A+8>>3],i[(v=B+8|0)>>3]=+i[A+24>>3],a=+ce(c,B),u=+f(+(Q=+i[w>>3]-+i[v>>3])),r=+f(+(d=+i[c>>3]-+i[B>>3])),!(0==Q|0==d)&&(Q=+lt(+u,+r),Q=+b(+a*a/+ct(+Q/+ct(+u,+r),3)/(l*(2.59807621135*l)*.8)),i[o>>3]=Q,M=~~Q>>>0,m=+f(Q)>=1?Q>0?~~+k(+s(Q/4294967296),4294967295)>>>0:~~+b((Q-+(~~Q>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2])?(n[(e=t)>>2]=(B=!(0|M)&!(0|m))?1:M,n[e+4>>2]=B?0:m,e=0):e=1,T=h,0|(m=e))}function rA(A,e,t,r){A|=0,e|=0,t|=0,r|=0;var a,u,l,c,h=0,d=0,g=0;c=T,T=T+288|0,u=c+264|0,l=c+96|0,a=(h=d=c)+96|0;do{n[h>>2]=0,h=h+4|0}while((0|h)<(0|a));return 0|(t=0|ie(t,d))?(T=c,0|(r=t)):(re(h=0|n[(t=d)>>2],t=0|n[t+4>>2],u),ne(h,t,l),g=+ce(u,l+8|0),g=+b(+ +ce(A,e)/(2*g)),i[o>>3]=g,t=~~g>>>0,h=+f(g)>=1?g>0?~~+k(+s(g/4294967296),4294967295)>>>0:~~+b((g-+(~~g>>>0))/4294967296)>>>0:0,2146435072&~n[o+4>>2]?(n[r>>2]=(d=!(0|t)&!(0|h))?1:t,n[r+4>>2]=d?0:h,T=c,0|(r=0)):(T=c,0|(r=1)))}function nA(A,e,t,r){t|=0,r|=0,n[(A|=0)>>2]=e|=0,n[A+4>>2]=t,n[A+8>>2]=r}function iA(A,e){A|=0;var t,r,o,a,s=0,u=0,l=0,c=0,h=0,d=0,g=0;n[(a=8+(e|=0)|0)>>2]=0,c=+f(+(r=+i[A>>3])),c+=.5*(h=1.1547005383792515*+f(+(o=+i[A+8>>3]))),c-=+(0|(s=~~c)),h-=+(0|(A=~~h));do{if(c<.5){if(c<.3333333333333333){if(n[e>>2]=s,h<.5*(c+1)){n[e+4>>2]=A;break}n[e+4>>2]=A=A+1|0;break}if(n[e+4>>2]=A=(1&!(h<(g=1-c)))+A|0,g<=h&h<2*c){n[e>>2]=s=s+1|0;break}n[e>>2]=s;break}if(!(c<.6666666666666666)){if(n[e>>2]=s=s+1|0,h<.5*c){n[e+4>>2]=A;break}n[e+4>>2]=A=A+1|0;break}if(h<1-c){if(n[e+4>>2]=A,2*c-1<h){n[e>>2]=s;break}}else n[e+4>>2]=A=A+1|0;n[e>>2]=s=s+1|0}while(0);do{if(r<0){if(1&A){s=~~(+(0|s)-(2*(+((d=0|At(0|s,((0|s)<0)<<31>>31,0|(d=(A+1|0)/2|0),((0|d)<0)<<31>>31))>>>0)+4294967296*+(0|p()))+1)),n[e>>2]=s;break}s=~~(+(0|s)-2*(+((d=0|At(0|s,((0|s)<0)<<31>>31,0|(d=(0|A)/2|0),((0|d)<0)<<31>>31))>>>0)+4294967296*+(0|p()))),n[e>>2]=s;break}}while(0);d=e+4|0,o<0&&(n[e>>2]=s=s-((1|A<<1)/2|0)|0,n[d>>2]=A=0-A|0),u=A-s|0,(0|s)<0?(l=0-s|0,n[d>>2]=u,n[a>>2]=l,n[e>>2]=0,A=u,s=0):l=0,(0|A)<0&&(n[e>>2]=s=s-A|0,n[a>>2]=l=l-A|0,n[d>>2]=0,A=0),t=s-l|0,u=A-l|0,(0|l)<0&&(n[e>>2]=t,n[d>>2]=u,n[a>>2]=0,A=u,s=t,l=0),(0|(u=(0|l)<(0|(u=(0|A)<(0|s)?A:s))?l:u))<=0||(n[e>>2]=s-u,n[d>>2]=A-u,n[a>>2]=l-u)}function oA(A){var e,t=0,r=0,i=0,o=0,a=0;r=0|n[(e=4+(A|=0)|0)>>2],(0|(t=0|n[A>>2]))<0&&(n[e>>2]=r=r-t|0,n[(a=A+8|0)>>2]=(0|n[a>>2])-t,n[A>>2]=0,t=0),(0|r)<0?(n[A>>2]=t=t-r|0,n[(a=A+8|0)>>2]=o=(0|n[a>>2])-r|0,n[e>>2]=0,r=0):(a=o=A+8|0,o=0|n[o>>2]),(0|o)<0&&(n[A>>2]=t=t-o|0,n[e>>2]=r=r-o|0,n[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|r)<(0|t)?r:t))?o:i))<=0||(n[A>>2]=t-i,n[e>>2]=r-i,n[a>>2]=o-i)}function aA(A,e){var t,r;i[(e|=0)>>3]=+((0|n[(A|=0)>>2])-(r=0|n[A+8>>2])|0)-.5*(t=+((0|n[A+4>>2])-r|0)),i[e+8>>3]=.8660254037844386*t}function sA(A,e,t){n[(t|=0)>>2]=(0|n[(e|=0)>>2])+(0|n[(A|=0)>>2]),n[t+4>>2]=(0|n[e+4>>2])+(0|n[A+4>>2]),n[t+8>>2]=(0|n[e+8>>2])+(0|n[A+8>>2])}function fA(A,e,t){n[(t|=0)>>2]=(0|n[(A|=0)>>2])-(0|n[(e|=0)>>2]),n[t+4>>2]=(0|n[A+4>>2])-(0|n[e+4>>2]),n[t+8>>2]=(0|n[A+8>>2])-(0|n[e+8>>2])}function uA(A,e){var t,r=0;r=0|M(0|n[(A|=0)>>2],e|=0),n[A>>2]=r,t=0|M(0|n[(r=A+4|0)>>2],e),n[r>>2]=t,e=0|M(0|n[(A=A+8|0)>>2],e),n[A>>2]=e}function lA(A){var e,t,r=0,i=0,o=0,a=0,s=0;A=(A=(i=(0|(a=(0|n[8+(A|=0)>>2])-((s=(0|(t=0|n[A>>2]))<0)?t:0)+((e=(0|(o=(0|n[A+4>>2])-(s?t:0)|0))<0)?0-o|0:0)|0))<0)?0:a)-((o=(0|(i=(0|A)<(0|(i=(0|(r=(e?0:o)-(i?a:0)|0))<(0|(a=(s?0:t)-(e?o:0)-(i?a:0)|0))?r:a))?A:i))>0)?i:0)|0,r=r-(o?i:0)|0;A:do{switch(a-(o?i:0)|0){case 0:switch(0|r){case 0:return 0|(0|A?1==(0|A)?1:7:0);case 1:return 0|(0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|r){case 0:return 0|(0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 6;default:break A}}}while(0);return 7}function cA(A){var e,t,r=0,i=0,o=0,a=0,s=0,f=0,u=0;if((e=(0|n[(A|=0)>>2])-(f=0|n[(t=A+8|0)>>2])|0)>>>0>715827881|(f=(0|n[(u=A+4|0)>>2])-f|0)>>>0>715827881){if(a=2147483647-e|0,s=-2147483648-e|0,(o=(0|e)>0)?(0|a)<(0|e):(0|s)>(0|e))return 1;if(i=e<<1,o?(2147483647-i|0)<(0|e):(-2147483648-i|0)>(0|e))return 1;if((0|f)>0?(2147483647-f|0)<(0|f):(-2147483648-f|0)>(0|f))return 1;if(r=3*e|0,i=f<<1,(o?(0|a)<(0|i):(0|s)>(0|i))||((0|e)>-1?(-2147483648|r)>=(0|f):(-2147483648^r)<(0|f)))return 1}else i=f<<1,r=3*e|0;return o=0|Je(.14285714285714285*+(r-f|0)),n[A>>2]=o,a=0|Je(.14285714285714285*+(i+e|0)),n[u>>2]=a,n[t>>2]=0,r=(i=(0|a)<(0|o))?o:a,(0|(i=i?a:o))<0&&((-2147483648==(0|i)||((0|r)>0?(2147483647-r|0)<(0|i):(-2147483648-r|0)>(0|i)))&&E(27795,26892,354,26903),((0|r)>-1?(-2147483648|r)>=(0|i):(-2147483648^r)<(0|i))&&E(27795,26892,354,26903)),r=a-o|0,(0|o)<0?(i=0-o|0,n[u>>2]=r,n[t>>2]=i,n[A>>2]=0,o=0):(r=a,i=0),(0|r)<0&&(n[A>>2]=o=o-r|0,n[t>>2]=i=i-r|0,n[u>>2]=0,r=0),s=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=s,n[u>>2]=a,n[t>>2]=0,r=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[u>>2]=r-o,n[t>>2]=i-o),0}function hA(A){var e,t=0,r=0,i=0,o=0,a=0,s=0,f=0;if((a=(0|n[(A|=0)>>2])-(o=0|n[(e=A+8|0)>>2])|0)>>>0>715827881|(o=(0|n[(s=A+4|0)>>2])-o|0)>>>0>715827881){if((r=(0|a)>0)?(2147483647-a|0)<(0|a):(-2147483648-a|0)>(0|a))return 1;if(t=a<<1,(i=(0|o)>0)?(2147483647-o|0)<(0|o):(-2147483648-o|0)>(0|o))return 1;if(f=o<<1,i?(2147483647-f|0)<(0|o):(-2147483648-f|0)>(0|o))return 1;if(r?(2147483647-t|0)<(0|o):(-2147483648-t|0)>(0|o))return 1;if(r=3*o|0,(0|o)>-1?(-2147483648|r)>=(0|a):(-2147483648^r)<(0|a))return 1}else r=3*o|0,t=a<<1;return i=0|Je(.14285714285714285*+(t+o|0)),n[A>>2]=i,o=0|Je(.14285714285714285*+(r-a|0)),n[s>>2]=o,n[e>>2]=0,t=(r=(0|o)<(0|i))?i:o,(0|(r=r?o:i))<0&&((-2147483648==(0|r)||((0|t)>0?(2147483647-t|0)<(0|r):(-2147483648-t|0)>(0|r)))&&E(27795,26892,402,26917),((0|t)>-1?(-2147483648|t)>=(0|r):(-2147483648^t)<(0|r))&&E(27795,26892,402,26917)),t=o-i|0,(0|i)<0?(r=0-i|0,n[s>>2]=t,n[e>>2]=r,n[A>>2]=0,i=0):(t=o,r=0),(0|t)<0&&(n[A>>2]=i=i-t|0,n[e>>2]=r=r-t|0,n[s>>2]=0,t=0),a=i-r|0,o=t-r|0,(0|r)<0?(n[A>>2]=a,n[s>>2]=o,n[e>>2]=0,t=o,o=a,r=0):o=i,(0|(i=(0|r)<(0|(i=(0|t)<(0|o)?t:o))?r:i))<=0||(n[A>>2]=o-i,n[s>>2]=t-i,n[e>>2]=r-i),0}function dA(A){var e,t,r=0,i=0,o=0,a=0,s=0;o=0|Je(.14285714285714285*+((3*(r=(0|n[(A|=0)>>2])-(i=0|n[(e=A+8|0)>>2])|0)|0)-(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Je(.14285714285714285*+((i<<1)+r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(s=0-o|0,n[t>>2]=i,n[e>>2]=s,n[A>>2]=0,r=i,o=0,i=s):i=0,(0|r)<0&&(n[A>>2]=o=o-r|0,n[e>>2]=i=i-r|0,n[t>>2]=0,r=0),s=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=a,n[e>>2]=0,r=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function gA(A){var e,t,r=0,i=0,o=0,a=0,s=0;o=0|Je(.14285714285714285*+(((r=(0|n[(A|=0)>>2])-(i=0|n[(e=A+8|0)>>2])|0)<<1)+(i=(0|n[(t=A+4|0)>>2])-i|0)|0)),n[A>>2]=o,r=0|Je(.14285714285714285*+((3*i|0)-r|0)),n[t>>2]=r,n[e>>2]=0,i=r-o|0,(0|o)<0?(s=0-o|0,n[t>>2]=i,n[e>>2]=s,n[A>>2]=0,r=i,o=0,i=s):i=0,(0|r)<0&&(n[A>>2]=o=o-r|0,n[e>>2]=i=i-r|0,n[t>>2]=0,r=0),s=o-i|0,a=r-i|0,(0|i)<0?(n[A>>2]=s,n[t>>2]=a,n[e>>2]=0,r=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|r)<(0|a)?r:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=r-o,n[e>>2]=i-o)}function wA(A){var e,t,r,i=0,o=0,a=0,s=0;a=0|n[(r=8+(A|=0)|0)>>2],n[A>>2]=s=(o=0|n[(t=A+4|0)>>2])+(3*(i=0|n[A>>2])|0)|0,n[t>>2]=o=a+(3*o|0)|0,n[r>>2]=i=(3*a|0)+i|0,a=o-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function vA(A){var e,t,r,i=0,o=0,a=0,s=0;a=(3*(i=0|n[(t=4+(A|=0)|0)>>2])|0)+(s=0|n[A>>2])|0,n[A>>2]=s=(o=0|n[(r=A+8|0)>>2])+(3*s|0)|0,n[t>>2]=a,n[r>>2]=i=(3*o|0)+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):o=a,(0|o)<0&&(n[A>>2]=s=s-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function BA(A,e){A|=0;var t,r,i,o=0,a=0,s=0;((e|=0)-1|0)>>>0>=6||(n[A>>2]=s=(0|n[15440+(12*e|0)>>2])+(0|n[A>>2])|0,n[(i=A+4|0)>>2]=a=(0|n[15440+(12*e|0)+4>>2])+(0|n[i>>2])|0,n[(r=A+8|0)>>2]=e=(0|n[15440+(12*e|0)+8>>2])+(0|n[r>>2])|0,o=a-s|0,(0|s)<0?(e=e-s|0,n[i>>2]=o,n[r>>2]=e,n[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=e=e-o|0,n[i>>2]=0,o=0),t=a-e|0,s=o-e|0,(0|e)<0?(n[A>>2]=t,n[i>>2]=s,n[r>>2]=0,a=t,e=0):s=o,(0|(o=(0|e)<(0|(o=(0|s)<(0|a)?s:a))?e:o))<=0||(n[A>>2]=a-o,n[i>>2]=s-o,n[r>>2]=e-o))}function bA(A){var e,t,r,i=0,o=0,a=0,s=0;a=(i=0|n[(t=4+(A|=0)|0)>>2])+(s=0|n[A>>2])|0,n[A>>2]=s=(o=0|n[(r=A+8|0)>>2])+s|0,n[t>>2]=a,n[r>>2]=i=o+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function MA(A){var e,t,r,i=0,o=0,a=0,s=0;o=0|n[(r=8+(A|=0)|0)>>2],n[A>>2]=s=(a=0|n[(t=A+4|0)>>2])+(i=0|n[A>>2])|0,n[t>>2]=a=o+a|0,n[r>>2]=i=o+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function kA(A){switch(0|(A|=0)){case 1:A=5;break;case 5:A=4;break;case 4:A=6;break;case 6:A=2;break;case 2:A=3;break;case 3:A=1}return 0|A}function mA(A){switch(0|(A|=0)){case 1:A=3;break;case 3:A=2;break;case 2:A=6;break;case 6:A=4;break;case 4:A=5;break;case 5:A=1}return 0|A}function QA(A){var e,t,r,i=0,o=0,a=0,s=0;a=0|n[(r=8+(A|=0)|0)>>2],n[A>>2]=s=(o=0|n[(t=A+4|0)>>2])+((i=0|n[A>>2])<<1)|0,n[t>>2]=o=a+(o<<1)|0,n[r>>2]=i=(a<<1)+i|0,a=o-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=a,n[r>>2]=i,n[A>>2]=0,o=a,a=0):a=s,(0|o)<0&&(n[A>>2]=a=a-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=a-i|0,s=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=s,n[r>>2]=0,a=e,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(n[A>>2]=a-o,n[t>>2]=s-o,n[r>>2]=i-o)}function DA(A){var e,t,r,i=0,o=0,a=0,s=0;a=((i=0|n[(t=4+(A|=0)|0)>>2])<<1)+(s=0|n[A>>2])|0,n[A>>2]=s=(o=0|n[(r=A+8|0)>>2])+(s<<1)|0,n[t>>2]=a,n[r>>2]=i=(o<<1)+i|0,o=a-s|0,(0|s)<0?(i=i-s|0,n[t>>2]=o,n[r>>2]=i,n[A>>2]=0,s=0):o=a,(0|o)<0&&(n[A>>2]=s=s-o|0,n[r>>2]=i=i-o|0,n[t>>2]=0,o=0),e=s-i|0,a=o-i|0,(0|i)<0?(n[A>>2]=e,n[t>>2]=a,n[r>>2]=0,s=e,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(n[A>>2]=s-o,n[t>>2]=a-o,n[r>>2]=i-o)}function pA(A,e){var t,r,i,o=0,a=0,s=0;return e=(e=(A=(0|(s=((i=(0|(r=(0|n[(A|=0)>>2])-(0|n[(e|=0)>>2])|0))<0)?0-r|0:0)+(0|n[A+8>>2])-(0|n[e+8>>2])+((t=(0|(a=(0|n[A+4>>2])-(0|n[e+4>>2])-(i?r:0)|0))<0)?0-a|0:0)|0))<0)?0:s)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(t?0:a)-(A?s:0)|0))<(0|(s=(i?0:r)-(t?a:0)-(A?s:0)|0))?o:s))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=s-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function EA(A,e){var t;n[(e|=0)>>2]=(0|n[(A|=0)>>2])-(t=0|n[A+8>>2]),n[e+4>>2]=(0|n[A+4>>2])-t}function CA(A,e){var t,r,i,o=0,a=0,s=0;if(n[(e|=0)>>2]=a=0|n[(A|=0)>>2],n[(r=e+4|0)>>2]=s=0|n[A+4>>2],n[(i=e+8|0)>>2]=0,A=(o=(0|s)<(0|a))?a:s,(0|(o=o?s:a))<0){if(-2147483648==(0|o)||((0|A)>0?(2147483647-A|0)<(0|o):(-2147483648-A|0)>(0|o)))return 1;if((0|A)>-1?(-2147483648|A)>=(0|o):(-2147483648^A)<(0|o))return 1}return A=s-a|0,(0|a)<0?(o=0-a|0,n[r>>2]=A,n[i>>2]=o,n[e>>2]=0,a=0):(A=s,o=0),(0|A)<0&&(n[e>>2]=a=a-A|0,n[i>>2]=o=o-A|0,n[r>>2]=0,A=0),t=a-o|0,s=A-o|0,(0|o)<0?(n[e>>2]=t,n[r>>2]=s,n[i>>2]=0,A=s,s=t,o=0):s=a,(0|(a=(0|o)<(0|(a=(0|A)<(0|s)?A:s))?o:a))<=0||(n[e>>2]=s-a,n[r>>2]=A-a,n[i>>2]=o-a),0}function yA(A){var e,t,r,i;n[(A|=0)>>2]=t=(i=0|n[(e=A+8|0)>>2])-(0|n[A>>2])|0,n[(r=A+4|0)>>2]=A=(0|n[r>>2])-i|0,n[e>>2]=0-(A+t)}function PA(A){var e,t,r=0,i=0,o=0,a=0,s=0;n[(A|=0)>>2]=r=0-(i=0|n[A>>2])|0,n[(e=A+8|0)>>2]=0,a=(o=0|n[(t=A+4|0)>>2])+i|0,(0|i)>0?(n[t>>2]=a,n[e>>2]=i,n[A>>2]=0,r=0,o=a):i=0,(0|o)<0?(n[A>>2]=s=r-o|0,n[e>>2]=i=i-o|0,n[t>>2]=0,a=s-i|0,r=0-i|0,(0|i)<0?(n[A>>2]=a,n[t>>2]=r,n[e>>2]=0,o=r,i=0):(o=0,a=s)):a=r,(0|(r=(0|i)<(0|(r=(0|o)<(0|a)?o:a))?i:r))<=0||(n[A>>2]=a-r,n[t>>2]=o-r,n[e>>2]=i-r)}function IA(A,e,t){t|=0;var r,i,o=0,a=0;return i=T,T=T+16|0,r=i,a=-2130706433&(e|=0)|134217728,!0&268435456==(2013265920&e)?(o=0|st(0|(A|=0),0|e,56),p(),o=0|function(A,e,t){t|=0;var r,i=0,o=0;if(r=T,T=T+16|0,o=r,i=0|VA(A|=0,e|=0),(t+-1|0)>>>0>5)return T=r,-1;if(1==(0|t)&(i=!!(0|i)))return T=r,-1;do{if(!(0|Oe(A,e,o))){if(i){i=(5+(0|n[26352+(t<<2)>>2])-(0|n[o>>2])|0)%5|0;break}i=(6+(0|n[26384+(t<<2)>>2])-(0|n[o>>2])|0)%6|0;break}i=-1}while(0);return T=r,0|(o=i)}(A,a,7&o),-1==(0|o)?(n[t>>2]=0,T=i,0|(a=6)):(0|te(A,a,r)&&E(27795,26932,282,26947),e=0|st(0|A,0|e,52),p(),e&=15,0|VA(A,a)?xA(r,e,o,2,t):RA(r,e,o,2,t),T=i,0|(a=0))):(T=i,0|(a=6))}function FA(A,e,t,r){e|=0,r|=0;var o,a=0,s=0,f=0,u=0;if(o=T,T=T+16|0,function(A,e,t){e|=0,t|=0;var r,o,a=0;o=T,T=T+32|0,function(A,e){e|=0;var t,r,n=0;t=+c(+(n=+i[(A|=0)>>3])),n=+h(+n),i[e+16>>3]=n,r=t*+c(+(n=+i[A+8>>3])),i[e>>3]=r,n=t*+h(+n),i[e+8>>3]=n}(A|=0,r=o),n[e>>2]=0,i[t>>3]=5,(a=+ze(16400,r))<+i[t>>3]&&(n[e>>2]=0,i[t>>3]=a),(a=+ze(16424,r))<+i[t>>3]&&(n[e>>2]=1,i[t>>3]=a),(a=+ze(16448,r))<+i[t>>3]&&(n[e>>2]=2,i[t>>3]=a),(a=+ze(16472,r))<+i[t>>3]&&(n[e>>2]=3,i[t>>3]=a),(a=+ze(16496,r))<+i[t>>3]&&(n[e>>2]=4,i[t>>3]=a),(a=+ze(16520,r))<+i[t>>3]&&(n[e>>2]=5,i[t>>3]=a),(a=+ze(16544,r))<+i[t>>3]&&(n[e>>2]=6,i[t>>3]=a),(a=+ze(16568,r))<+i[t>>3]&&(n[e>>2]=7,i[t>>3]=a),(a=+ze(16592,r))<+i[t>>3]&&(n[e>>2]=8,i[t>>3]=a),(a=+ze(16616,r))<+i[t>>3]&&(n[e>>2]=9,i[t>>3]=a),(a=+ze(16640,r))<+i[t>>3]&&(n[e>>2]=10,i[t>>3]=a),(a=+ze(16664,r))<+i[t>>3]&&(n[e>>2]=11,i[t>>3]=a),(a=+ze(16688,r))<+i[t>>3]&&(n[e>>2]=12,i[t>>3]=a),(a=+ze(16712,r))<+i[t>>3]&&(n[e>>2]=13,i[t>>3]=a),(a=+ze(16736,r))<+i[t>>3]&&(n[e>>2]=14,i[t>>3]=a),(a=+ze(16760,r))<+i[t>>3]&&(n[e>>2]=15,i[t>>3]=a),(a=+ze(16784,r))<+i[t>>3]&&(n[e>>2]=16,i[t>>3]=a),(a=+ze(16808,r))<+i[t>>3]&&(n[e>>2]=17,i[t>>3]=a),(a=+ze(16832,r))<+i[t>>3]&&(n[e>>2]=18,i[t>>3]=a),(a=+ze(16856,r))<+i[t>>3]?(n[e>>2]=19,i[t>>3]=a,T=o):T=o}(A|=0,t|=0,u=o),(s=+g(+(1-.5*+i[u>>3])))<1e-16)return n[r>>2]=0,n[r+4>>2]=0,n[r+8>>2]=0,n[r+12>>2]=0,void(T=o);if(a=+fe((a=+i[15920+(24*(u=0|n[t>>2])|0)>>3])-+fe(+function(A,e){A|=0;var t,r,n,o,a;return a=(r=+c(+(o=+i[(e|=0)>>3])))*+h(+(n=+i[e+8>>3]-+i[A+8>>3])),t=+i[A>>3],+ +B(+a,+(+h(+o)*+c(+t)-+c(+n)*(r*+h(+t))))}(15600+(u<<4)|0,A))),f=0|$A(e)?+fe(a+-.3334731722518321):a,a=2.618033988749896*+d(+s),(0|e)>0){A=0;do{a*=2.6457513110645907,A=A+1|0}while((0|A)!=(0|e))}s=+c(+f)*a,i[r>>3]=s,f=+h(+f)*a,i[r+8>>3]=f,T=o}function TA(A,e,t,r,o){e|=0,t|=0,r|=0,o|=0;var a,s=0,l=0;if(s=+function(A){var e,t;return+ +u(+((t=+i[(A|=0)>>3])*t+(e=+i[A+8>>3])*e))}(A|=0),s<1e-16)return n[o>>2]=n[(e=15600+(e<<4)|0)>>2],n[o+4>>2]=n[e+4>>2],n[o+8>>2]=n[e+8>>2],void(n[o+12>>2]=n[e+12>>2]);if(l=+B(+ +i[A+8>>3],+ +i[A>>3]),(0|t)>0){A=0;do{s*=.37796447300922725,A=A+1|0}while((0|A)!=(0|t))}a=.3333333333333333*s,r?(t=!(0|$A(t)),s=+v(.381966011250105*(t?a:.37796447300922725*a))):(s=+v(.381966011250105*s),0|$A(t)&&(l=+fe(l+.3334731722518321))),function(A,e,t,r){A|=0,e=+e,r|=0;var o=0,a=0,s=0,u=0;if((t=+t)<1e-16)return n[r>>2]=n[A>>2],n[r+4>>2]=n[A+4>>2],n[r+8>>2]=n[A+8>>2],void(n[r+12>>2]=n[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+f(+(a+-3.141592653589793))<1e-16,e=+i[A>>3],o){i[r>>3]=e-=t,o=r;break}if(s=+c(+t),t=+h(+t),e=s*+h(+e)+ +c(+a)*(t*+c(+e)),e=+w(+((e=e>1?1:e)<-1?-1:e)),i[r>>3]=e,+f(+(e+-1.5707963267948966))<1e-16)return i[r>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[r>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if(u=1/+c(+e),a=t*+h(+a)*u,t=+i[A>>3],e=u*((s-+h(+e)*+h(+t))/+c(+t)),(e=+i[A+8>>3]+ +B(+((s=a>1?1:a)<-1?-1:s),+((e=e>1?1:e)<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(i[r+8>>3]=e)}i[r>>3]=e=+i[A>>3]+t,o=r}while(0);if(+f(+(e+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[r+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[r+8>>3]=0);if((e=+i[A+8>>3])>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);i[r+8>>3]=e}(15600+(e<<4)|0,+fe(+i[15920+(24*e|0)>>3]-l),s,o)}function LA(A,e,t){var r,i;e|=0,t|=0,r=T,T=T+16|0,aA(4+(A|=0)|0,i=r),TA(i,0|n[A>>2],e,0,t),T=r}function xA(A,e,t,r,o){A|=0,t|=0,r|=0,o|=0;var a,s,f,u,l,c,h,d,g,w,v,B,b,M,k,m,Q,D,p,C,y,P,I=0,F=0,L=0,x=0,G=0,S=0;if(P=T,T=T+272|0,x=P+240|0,p=P,C=P+224|0,y=P+208|0,v=P+176|0,B=P+160|0,b=P+192|0,M=P+144|0,k=P+128|0,m=P+112|0,Q=P+96|0,D=P+80|0,n[(I=P+256|0)>>2]=e|=0,n[x>>2]=n[A>>2],n[x+4>>2]=n[A+4>>2],n[x+8>>2]=n[A+8>>2],n[x+12>>2]=n[A+12>>2],GA(x,I,p),n[o>>2]=0,(0|(x=r+t+(5==(0|r)&1)|0))<=(0|t))T=P;else{s=C+4|0,f=v+4|0,u=t+5|0,l=16880+((a=0|n[I>>2])<<2)|0,c=16960+(a<<2)|0,h=k+8|0,d=m+8|0,g=Q+8|0,w=y+4|0,L=t;A:for(;;){n[y>>2]=n[(F=p+((0|L)%5<<4)|0)>>2],n[y+4>>2]=n[F+4>>2],n[y+8>>2]=n[F+8>>2],n[y+12>>2]=n[F+12>>2];do{}while(2==(0|SA(y,a,0,1)));if((0|L)>(0|t)&!!(0|$A(e))){if(n[v>>2]=n[y>>2],n[v+4>>2]=n[y+4>>2],n[v+8>>2]=n[y+8>>2],n[v+12>>2]=n[y+12>>2],aA(s,B),n[v>>2]=n[18640+(80*(r=0|n[v>>2])|0)+(20*(I=0|n[17040+(80*r|0)+(n[C>>2]<<2)>>2])|0)>>2],(0|(F=0|n[18640+(80*r|0)+(20*I|0)+16>>2]))>0){A=0;do{bA(f),A=A+1|0}while((0|A)<(0|F))}switch(n[b>>2]=n[(F=18640+(80*r|0)+(20*I|0)+4|0)>>2],n[b+4>>2]=n[F+4>>2],n[b+8>>2]=n[F+8>>2],uA(b,3*(0|n[l>>2])|0),sA(f,b,f),oA(f),aA(f,M),i[k>>3]=3*(G=+(0|n[c>>2])),i[h>>3]=0,i[m>>3]=S=-1.5*G,i[d>>3]=2.598076211353316*G,i[Q>>3]=S,i[g>>3]=-2.598076211353316*G,0|n[17040+(80*(0|n[v>>2])|0)+(n[y>>2]<<2)>>2]){case 1:A=m,r=k;break;case 3:A=Q,r=m;break;case 2:A=k,r=Q;break;default:A=12;break A}Ue(B,M,r,A,D),TA(D,0|n[v>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])}if((0|L)<(0|u)&&(aA(w,v),TA(v,0|n[y>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),n[C>>2]=n[y>>2],n[C+4>>2]=n[y+4>>2],n[C+8>>2]=n[y+8>>2],n[C+12>>2]=n[y+12>>2],(0|(L=L+1|0))>=(0|x)){A=3;break}}3!=(0|A)?12==(0|A)&&E(26970,27017,572,27027):T=P}}function GA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,s=0,f=0;r=T,T=T+128|0,o=r,s=20240,f=60+(a=i=r+64|0)|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));s=20304,f=(a=o)+60|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));i=(f=!(0|$A(0|n[e>>2])))?i:o,QA(o=A+4|0),DA(o),0|$A(0|n[e>>2])&&(vA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],sA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],sA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],sA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],sA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],sA(o,i+48|0,t=t+68|0),oA(t),T=r}function SA(A,e,t,r){t|=0;var i,o,a,s,f,u,l=0,c=0,h=0,d=0,g=0;if(u=T,T=T+32|0,f=u+12|0,o=u,d=0|n[16960+((e|=0)<<2)>>2],d=(s=!!(0|(r|=0)))?3*d|0:d,l=0|n[(g=4+(A|=0)|0)>>2],i=0|n[(a=A+8|0)>>2],s){if((0|(l=i+l+(r=0|n[(c=A+12|0)>>2])|0))==(0|d))return T=u,1;h=c}else l=i+l+(r=0|n[(h=A+12|0)>>2])|0;if((0|l)<=(0|d))return T=u,0;do{if((0|r)>0){if(r=0|n[A>>2],(0|i)>0){c=18640+(80*r|0)+60|0,r=A;break}r=18640+(80*r|0)+40|0,t?(nA(f,d,0,0),fA(g,f,o),MA(o),sA(o,f,g),c=r,r=A):(c=r,r=A)}else c=18640+(80*(0|n[A>>2])|0)+20|0,r=A}while(0);if(n[r>>2]=n[c>>2],(0|n[(l=c+16|0)>>2])>0){r=0;do{bA(g),r=r+1|0}while((0|r)<(0|n[l>>2]))}return n[f>>2]=n[(A=c+4|0)>>2],n[f+4>>2]=n[A+4>>2],n[f+8>>2]=n[A+8>>2],e=0|n[16880+(e<<2)>>2],uA(f,s?3*e|0:e),sA(g,f,g),oA(g),T=u,0|(s&&((0|n[a>>2])+(0|n[g>>2])+(0|n[h>>2])|0)==(0|d)?1:2)}function UA(A,e){A|=0,e|=0;var t=0;do{t=0|SA(A,e,0,1)}while(2==(0|t));return 0|t}function RA(A,e,t,r,o){A|=0,t|=0,r|=0,o|=0;var a,s,f,u,l,c,h,d,g,w,v,B,b,M,k,m,Q,D,p=0,C=0,y=0,P=0,I=0;if(D=T,T=T+240|0,M=D+208|0,k=D,m=D+192|0,Q=D+176|0,g=D+160|0,w=D+144|0,v=D+128|0,B=D+112|0,b=D+96|0,n[(p=D+224|0)>>2]=e|=0,n[M>>2]=n[A>>2],n[M+4>>2]=n[A+4>>2],n[M+8>>2]=n[A+8>>2],n[M+12>>2]=n[A+12>>2],zA(M,p,k),n[o>>2]=0,(0|(d=r+t+(6==(0|r)&1)|0))<=(0|t))T=D;else{s=t+6|0,f=16960+((a=0|n[p>>2])<<2)|0,u=w+8|0,l=v+8|0,c=B+8|0,h=m+4|0,C=0,y=t,r=-1;A:for(;;){if(n[m>>2]=n[(A=k+((p=(0|y)%6|0)<<4)|0)>>2],n[m+4>>2]=n[A+4>>2],n[m+8>>2]=n[A+8>>2],n[m+12>>2]=n[A+12>>2],A=C,C=0|SA(m,a,0,1),(0|y)>(0|t)&!!(0|$A(e))&&1!=(0|A)&&(0|n[m>>2])!=(0|r)){switch(aA(k+((p+5|0)%6<<4)+4|0,Q),aA(k+(p<<4)+4|0,g),i[w>>3]=3*(P=+(0|n[f>>2])),i[u>>3]=0,i[v>>3]=I=-1.5*P,i[l>>3]=2.598076211353316*P,i[B>>3]=I,i[c>>3]=-2.598076211353316*P,0|n[17040+(80*(p=0|n[M>>2])|0)+(((0|r)==(0|p)?n[m>>2]:r)<<2)>>2]){case 1:A=v,r=w;break;case 3:A=B,r=v;break;case 2:A=w,r=B;break;default:A=8;break A}Ue(Q,g,r,A,b),0|Re(Q,b)||0|Re(g,b)||(TA(b,0|n[M>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2]))}if((0|y)<(0|s)&&(aA(h,Q),TA(Q,0|n[m>>2],a,1,o+8+(n[o>>2]<<4)|0),n[o>>2]=1+(0|n[o>>2])),(0|(y=y+1|0))>=(0|d)){A=3;break}r=0|n[m>>2]}3!=(0|A)?8==(0|A)&&E(27054,27017,737,27099):T=D}}function zA(A,e,t){A|=0,e|=0,t|=0;var r,i=0,o=0,a=0,s=0,f=0;r=T,T=T+160|0,o=r,s=20368,f=72+(a=i=r+80|0)|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));s=20448,f=(a=o)+72|0;do{n[a>>2]=n[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|f));i=(f=!(0|$A(0|n[e>>2])))?i:o,QA(o=A+4|0),DA(o),0|$A(0|n[e>>2])&&(vA(o),n[e>>2]=1+(0|n[e>>2])),n[t>>2]=n[A>>2],sA(o,i,e=t+4|0),oA(e),n[t+16>>2]=n[A>>2],sA(o,i+12|0,e=t+20|0),oA(e),n[t+32>>2]=n[A>>2],sA(o,i+24|0,e=t+36|0),oA(e),n[t+48>>2]=n[A>>2],sA(o,i+36|0,e=t+52|0),oA(e),n[t+64>>2]=n[A>>2],sA(o,i+48|0,e=t+68|0),oA(e),n[t+80>>2]=n[A>>2],sA(o,i+60|0,t=t+84|0),oA(t),T=r}function OA(A,e){return e=0|st(0|(A|=0),0|(e|=0),45),p(),127&e}function YA(A,e){A|=0;var t=0,n=0,i=0,o=0;return!0&134217728==(-16777216&(e|=0))?(n=0|st(0|A,0|e,52),p(),n&=15,t=0|st(0|A,0|e,45),p(),(t&=127)>>>0>121?0|(A=0):!(613566756&(o=0|ft(0|(i=0|st(0|A,0|e,0|(o=3*(15^n)|0))),0|p(),0|o))&At(-1227133514,-1171,0|o,0|(i=0|p())))&!(4681&i&p())&&15==(0|n)|!(0|(o=0|st(0|ft(0|~A,0|~e,0|(o=19+(3*n|0)|0)),0|p(),0|o)))&!(0|p())?0|r[20528+t|0]?!(0|A)&!(0|(e&=8191))?0|(o=1):(o=0|ut(0|A,0|e),p(),0|!!((63-o|0)%3|0)):0|(o=1):0|(o=0)):0|(A=0)}function _A(A,e,t,r){A|=0,t|=0,r|=0;var i=0,o=0,a=0,s=0;if(i=0|ft(0|(e|=0),0,52),o=0|p(),t=0|ft(0|t,0,45),t=o|p()|134225919,(0|e)<1)return r=t,n[(e=A)>>2]=o=-1,void(n[(A=A+4|0)>>2]=r);for(o=1,i=-1;s=0|ft(7,0,0|(a=3*(15-o|0)|0)),t&=~p(),i=i&~s|(a=0|ft(0|r,0,0|a)),t|=p(),(0|o)!=(0|e);)o=o+1|0;n[(a=s=A)>>2]=i,n[(s=s+4|0)>>2]=t}function WA(A,e,t,r){t|=0,r|=0;var i=0,o=0;if(o=0|st(0|(A|=0),0|(e|=0),52),p(),t>>>0>15)return 4;if((0|(o&=15))<(0|t))return 12;if((0|o)==(0|t))return n[r>>2]=A,n[r+4>>2]=e,0;if(i=0|ft(0|t,0,52),i|=A,A=p()|-15728641&e,(0|o)>(0|t))do{e=0|ft(7,0,3*(14-t|0)|0),t=t+1|0,i|=e,A=p()|A}while((0|t)<(0|o));return n[r>>2]=i,n[r+4>>2]=A,0}function HA(A,e,t,r){t|=0,r|=0;var i=0,o=0,a=0;if(o=0|st(0|(A|=0),0|(e|=0),52),p(),!((0|t)<16&(0|(o&=15))<=(0|t)))return 4;i=t-o|0,t=0|st(0|A,0|e,45),p();A:do{if(0|_(127&t)){e:do{if(0|o){for(t=1;!((a=0|ft(7,0,3*(15-t|0)|0))&A)&!(p()&e);){if(!(t>>>0<o>>>0))break e;t=t+1|0}t=0|De(7,0,i,((0|i)<0)<<31>>31),i=0|p();break A}}while(0);t=0|$e(0|(t=0|nt(0|(t=0|De(7,0,i,((0|i)<0)<<31>>31)),0|p(),5,0)),0|p(),-5,-1),t=0|$e(0|(t=0|rt(0|t,0|p(),6,0)),0|p(),1,0),i=0|p()}else t=0|De(7,0,i,((0|i)<0)<<31>>31),i=0|p()}while(0);return n[(a=r)>>2]=t,n[a+4>>2]=i,0}function VA(A,e){var t=0,r=0,n=0;if(n=0|st(0|(A|=0),0|(e|=0),45),p(),!(0|_(127&n)))return 0;n=0|st(0|A,0|e,52),p(),n&=15;A:do{if(n)for(r=1;;){if(t=0|st(0|A,0|e,3*(15-r|0)|0),p(),0|(t&=7))break A;if(!(r>>>0<n>>>0)){t=0;break}r=r+1|0}else t=0}while(0);return 1&!(0|t)}function jA(A,e,t,r){return A|=0,e|=0,(0|(r|=0))<(0|(t|=0))?(r=A,D(0|(t=e)),0|r):(t=0|ft(-1,-1,3+(3*(r-t|0)|0)|0),r=0|ft(0|~t,0|~p(),3*(15-r|0)|0),t=~p()&e,r=~r&A,D(0|t),0|r)}function NA(A,e,t,r){t|=0,r|=0;var i=0;return i=0|st(0|(A|=0),0|(e|=0),52),p(),(0|t)<16&(0|(i&=15))<=(0|t)?((0|i)<(0|t)&&(i=0|ft(-1,-1,3+(3*(t+-1-i|0)|0)|0),i=0|ft(0|~i,0|~p(),3*(15-t|0)|0),e=~p()&e,A&=~i),i=0|ft(0|t,0,52),t=-15728641&e|p(),n[r>>2]=A|i,n[r+4>>2]=t,0|(r=0)):0|(r=4)}function ZA(A,e){var t=0,r=0,n=0;if(n=0|st(0|(A|=0),0|(e|=0),52),p(),!(n&=15))return 0;for(r=1;;){if(t=0|st(0|A,0|e,3*(15-r|0)|0),p(),0|(t&=7)){r=5;break}if(!(r>>>0<n>>>0)){t=0,r=5;break}r=r+1|0}return 5==(0|r)?0|t:0}function JA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,s=0;if(s=0|st(0|(A|=0),0|(e|=0),52),p(),!(s&=15))return s=A,D(0|(a=e)),0|s;for(a=1,t=0;;){r=0|ft(7,0,0|(i=3*(15-a|0)|0)),n=0|p(),o=0|st(0|A,0|e,0|i),p(),A=(i=0|ft(0|kA(7&o),0,0|i))|A&~r,e=(o=0|p())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|st(0|A,0|e,52),p(),r&=15){t=1;e:for(;;){switch(o=0|st(0|A,0|e,3*(15-t|0)|0),p(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(n=0|st(0|A,0|e,0|(o=3*(15-t|0)|0)),p(),i=0|ft(7,0,0|o),e&=~p(),A=A&~i|(o=0|ft(0|kA(7&n),0,0|o)),e|=p(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return D(0|e),0|A}function XA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|st(0|(A|=0),0|(e|=0),52),p(),!(r&=15))return r=A,D(0|(t=e)),0|r;for(t=1;o=0|st(0|A,0|e,0|(i=3*(15-t|0)|0)),p(),n=0|ft(7,0,0|i),e&=~p(),A=(i=0|ft(0|kA(7&o),0,0|i))|A&~n,e=p()|e,t>>>0<r>>>0;)t=t+1|0;return D(0|e),0|A}function KA(A,e){var t=0,r=0,n=0,i=0,o=0,a=0,s=0;if(s=0|st(0|(A|=0),0|(e|=0),52),p(),!(s&=15))return s=A,D(0|(a=e)),0|s;for(a=1,t=0;;){r=0|ft(7,0,0|(i=3*(15-a|0)|0)),n=0|p(),o=0|st(0|A,0|e,0|i),p(),A=(i=0|ft(0|mA(7&o),0,0|i))|A&~r,e=(o=0|p())|e&~n;A:do{if(!t)if(!(i&r)&!(o&n))t=0;else if(r=0|st(0|A,0|e,52),p(),r&=15){t=1;e:for(;;){switch(o=0|st(0|A,0|e,3*(15-t|0)|0),p(),7&o){case 1:break e;case 0:break;default:t=1;break A}if(!(t>>>0<r>>>0)){t=1;break A}t=t+1|0}for(t=1;;){if(i=0|ft(7,0,0|(n=3*(15-t|0)|0)),o=e&~p(),e=0|st(0|A,0|e,0|n),p(),A=A&~i|(e=0|ft(0|mA(7&e),0,0|n)),e=o|p(),!(t>>>0<r>>>0)){t=1;break}t=t+1|0}}else t=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return D(0|e),0|A}function qA(A,e){var t=0,r=0,n=0,i=0,o=0;if(r=0|st(0|(A|=0),0|(e|=0),52),p(),!(r&=15))return r=A,D(0|(t=e)),0|r;for(t=1;i=0|ft(7,0,0|(o=3*(15-t|0)|0)),n=e&~p(),e=0|st(0|A,0|e,0|o),p(),A=(e=0|ft(0|mA(7&e),0,0|o))|A&~i,e=p()|n,t>>>0<r>>>0;)t=t+1|0;return D(0|e),0|A}function $A(A){return(0|(A|=0))%2|0}function Ae(A,e,t){t|=0;var r,i=0;return r=T,T=T+16|0,i=r,(e|=0)>>>0>15?(T=r,0|(i=4)):2146435072&~n[4+(A|=0)>>2]&&2146435072&~n[A+8+4>>2]?(function(A,e,t){var r,n;r=T,T=T+16|0,FA(A|=0,e|=0,t|=0,n=r),iA(n,t+4|0),T=r}(A,e,i),e=0|function(A,e){A|=0;var t,r=0,i=0,o=0,a=0,s=0,f=0,u=0,l=0;if(t=T,T=T+64|0,f=t+40|0,i=t+24|0,o=t+12|0,a=t,ft(0|(e|=0),0,52),r=134225919|p(),!e)return(0|n[A+4>>2])>2||(0|n[A+8>>2])>2||(0|n[A+12>>2])>2?(f=0,D(0|(s=0)),T=t,0|f):(ft(0|H(A),0,45),s=p()|r,f=-1,D(0|s),T=t,0|f);if(n[f>>2]=n[A>>2],n[f+4>>2]=n[A+4>>2],n[f+8>>2]=n[A+8>>2],n[f+12>>2]=n[A+12>>2],s=f+4|0,(0|e)>0)for(A=-1;n[i>>2]=n[s>>2],n[i+4>>2]=n[s+4>>2],n[i+8>>2]=n[s+8>>2],1&e?(dA(s),n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],wA(o)):(gA(s),n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],vA(o)),fA(i,o,a),oA(a),u=0|ft(7,0,0|(l=3*(15-e|0)|0)),r&=~p(),A=(l=0|ft(0|lA(a),0,0|l))|A&~u,r=p()|r,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|n[s>>2])<=2&&(0|n[f+8>>2])<=2&&(0|n[f+12>>2])<=2){if(e=0|ft(0|(i=0|H(f)),0,45),e|=A,A=p()|-1040385&r,a=0|V(f),!(0|_(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|st(0|e,0|A,52),p(),i&=15)for(r=1;f=0|st(0|e,0|A,0|(l=3*(15-r|0)|0)),p(),u=0|ft(7,0,0|l),A&=~p(),e=e&~u|(l=0|ft(0|kA(7&f),0,0|l)),A|=p(),r>>>0<i>>>0;)r=r+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|st(0|e,0|A,52),p(),o&=15;e:do{if(o){r=1;t:for(;;){switch(l=0|st(0|e,0|A,3*(15-r|0)|0),p(),7&l){case 1:break t;case 0:break;default:break e}if(!(r>>>0<o>>>0))break e;r=r+1|0}if(0|j(i,0|n[f>>2]))for(r=1;u=0|ft(7,0,0|(f=3*(15-r|0)|0)),l=A&~p(),A=0|st(0|e,0|A,0|f),p(),e=e&~u|(A=0|ft(0|mA(7&A),0,0|f)),A=l|p(),r>>>0<o>>>0;)r=r+1|0;else for(r=1;f=0|st(0|e,0|A,0|(l=3*(15-r|0)|0)),p(),u=0|ft(7,0,0|l),A&=~p(),e=e&~u|(l=0|ft(0|kA(7&f),0,0|l)),A|=p(),r>>>0<o>>>0;)r=r+1|0}}while(0);if((0|a)>0){r=0;do{e=0|JA(e,A),A=0|p(),r=r+1|0}while((0|r)!=(0|a))}}else e=0,A=0}while(0);return l=e,D(0|(u=A)),T=t,0|l}(i,e),i=0|p(),n[t>>2]=e,n[t+4>>2]=i,!(0|e)&!(0|i)&&E(27795,27122,959,27145),T=r,0|(i=0)):(T=r,0|(i=3))}function ee(A,e,t){var r,i=0,o=0,a=0;if(r=4+(t|=0)|0,o=0|st(0|(A|=0),0|(e|=0),52),p(),o&=15,a=0|st(0|A,0|e,45),p(),i=!(0|o),0|_(127&a)){if(i)return 1;i=1}else{if(i)return 0;i=0|n[r>>2]||0|n[t+8>>2]?1:1&!!(0|n[t+12>>2])}for(t=1;1&t?wA(r):vA(r),a=0|st(0|A,0|e,3*(15-t|0)|0),p(),BA(r,7&a),t>>>0<o>>>0;)t=t+1|0;return 0|i}function te(A,e,t){t|=0;var r,i,o=0,a=0,s=0,f=0,u=0,l=0;if(i=T,T=T+16|0,r=i,l=0|st(0|(A|=0),0|(e|=0),45),p(),(l&=127)>>>0>121)return n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,n[t+12>>2]=0,T=i,5;A:do{if(0|_(l)&&(s=0|st(0|A,0|e,52),p(),0|(s&=15))){o=1;e:for(;;){switch(u=0|st(0|A,0|e,3*(15-o|0)|0),p(),7&u){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0<s>>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;f=0|ft(7,0,0|(e=3*(15-a|0)|0)),u=o&~p(),o=0|st(0|A,0|o,0|e),p(),A=A&~f|(o=0|ft(0|mA(7&o),0,0|e)),o=u|p(),a>>>0<s>>>0;)a=a+1|0}else o=e}while(0);if(n[t>>2]=n[(u=7696+(28*l|0)|0)>>2],n[t+4>>2]=n[u+4>>2],n[t+8>>2]=n[u+8>>2],n[t+12>>2]=n[u+12>>2],!(0|ee(A,o,t)))return T=i,0;if(n[r>>2]=n[(f=t+4|0)>>2],n[r+4>>2]=n[f+4>>2],n[r+8>>2]=n[f+8>>2],s=0|st(0|A,0|o,52),p(),u=15&s,1&s?(vA(f),s=u+1|0):s=u,0|_(l)){A:do{if(u)for(e=1;;){if(a=0|st(0|A,0|o,3*(15-e|0)|0),p(),0|(a&=7)){o=a;break A}if(!(e>>>0<u>>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|SA(t,s,o,0)){if(0|_(l))do{}while(0|SA(t,s,0,0));(0|s)!=(0|u)&&gA(f)}else(0|s)!=(0|u)&&(n[f>>2]=n[r>>2],n[f+4>>2]=n[r+4>>2],n[f+8>>2]=n[r+8>>2]);return T=i,0}function re(A,e,t){t|=0;var r,n,i=0;return n=T,T=T+16|0,0|(i=0|te(A|=0,e|=0,r=n))?(T=n,0|i):(i=0|st(0|A,0|e,52),p(),LA(r,15&i,t),T=n,0|(i=0))}function ne(A,e,t){t|=0;var r,n=0,i=0,o=0;if(r=T,T=T+16|0,0|(n=0|te(A|=0,e|=0,o=r)))return T=r,0|n;n=0|st(0|A,0|e,45),p(),n=!(0|_(127&n)),i=0|st(0|A,0|e,52),p(),i&=15;A:do{if(!n){if(0|i)for(n=1;;){if(!(!(ft(7,0,3*(15-n|0)|0)&A)&!(p()&e)))break A;if(!(n>>>0<i>>>0))break;n=n+1|0}return xA(o,i,0,5,t),T=r,0}}while(0);return RA(o,i,0,6,t),T=r,0}function ie(A,e){e|=0;var t=0,r=0,i=0,o=0,a=0,s=0,f=0;if((A|=0)>>>0>15)return 4;if(ft(0|A,0,52),s=134225919|p(),!A){t=0,r=0;do{0|_(r)&&(ft(0|r,0,45),a=s|p(),n[(A=e+(t<<3)|0)>>2]=-1,n[A+4>>2]=a,t=t+1|0),r=r+1|0}while(122!=(0|r));return 0}t=0,a=0;do{if(0|_(a)){for(ft(0|a,0,45),r=1,i=-1,o=s|p();i&=~(f=0|ft(7,0,3*(15-r|0)|0)),o&=~p(),(0|r)!=(0|A);)r=r+1|0;n[(f=e+(t<<3)|0)>>2]=i,n[f+4>>2]=o,t=t+1|0}a=a+1|0}while(122!=(0|a));return 0}function oe(A,e,t,r){A|=0,r|=0;var i=0,o=0,a=0;i=0|st(0|(e|=0),0|(t|=0),52),p(),!(0|e)&!(0|t)|(0|r)>15|(0|(i&=15))>(0|r)?(o=-1,e=-1,t=0,i=0):(e=0|jA(e,t,i+1|0,r),a=-15728641&p(),t=0|ft(0|r,0,52),o=i,e=(e=!(0|VA(t|=e,a|=p())))?-1:r,i=a),n[(a=A)>>2]=t,n[a+4>>2]=i,n[A+8>>2]=o,n[A+12>>2]=e}function ae(A,e,t,r){t|=0,r|=0;var i=0,o=0;return i=0|st(0|(A|=0),0|(e|=0),52),p(),n[(o=r+8|0)>>2]=i&=15,!(0|A)&!(0|e)|(0|t)>15|(0|i)>(0|t)?(n[(t=r)>>2]=0,n[t+4>>2]=0,n[o>>2]=-1,void(n[r+12>>2]=-1)):(A=0|jA(A,e,i+1|0,t),o=-15728641&p(),i=0|ft(0|t,0,52),i|=A,o|=p(),n[(A=r)>>2]=i,n[A+4>>2]=o,A=r+12|0,0|VA(i,o)?void(n[A>>2]=t):void(n[A>>2]=-1))}function se(A){var e,t=0,r=0,i=0,o=0,a=0,s=0,f=0,u=0;if(!(!(0|(t=0|n[(r=A|=0)>>2]))&!(0|(r=0|n[r+4>>2]))||(i=0|st(0|t,0|r,52),p(),t=0|$e(0|(f=0|ft(1,0,3*(15^(i&=15))|0)),0|p(),0|t,0|r),r=0|p(),n[(f=A)>>2]=t,n[f+4>>2]=r,(0|i)<(0|(s=0|n[(f=A+8|0)>>2]))))){for(e=A+12|0,a=i;;){if((0|a)==(0|s)){i=5;break}if(u=(0|a)==(0|n[e>>2]),i=0|st(0|t,0|r,0|(o=3*(15-a|0)|0)),p(),u&1==(0|(i&=7))&!0){i=7;break}if(!(7==(0|i)&!0)){i=10;break}if(t=0|$e(0|t,0|r,0|(u=0|ft(1,0,0|o)),0|p()),r=0|p(),n[(u=A)>>2]=t,n[u+4>>2]=r,!((0|a)>(0|s))){i=10;break}a=a+-1|0}if(5==(0|i))return n[(u=A)>>2]=0,n[u+4>>2]=0,n[f>>2]=-1,void(n[e>>2]=-1);if(7==(0|i))return s=0|$e(0|t,0|r,0|(s=0|ft(1,0,0|o)),0|p()),f=0|p(),n[(u=A)>>2]=s,n[u+4>>2]=f,void(n[e>>2]=a+-1)}}function fe(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function ue(A,e){return+f(+(+i[(A|=0)>>3]-+i[(e|=0)>>3]))<17453292519943298e-27?0|(e=+f(+(+i[A+8>>3]-+i[e+8>>3]))<17453292519943298e-27):0|(e=0)}function le(A,e){switch(A=+A,0|(e|=0)){case 1:A=A<0?A+6.283185307179586:A;break;case 2:A=A>0?A+-6.283185307179586:A}return+A}function ce(A,e){var t,r,n,o=0;return o=(n=+h(.5*((r=+i[(e|=0)>>3])-(t=+i[(A|=0)>>3]))))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+B(+ +u(+o),+ +u(+(1-o)))*6371.007180918475}function he(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20656+(A<<3)>>3],0|(e=0))}function de(A,e){e|=0;var t=0;return(A|=0)>>>0>15?0|(e=4):(t=0|nt(0|(t=0|De(7,0,A,((0|A)<0)<<31>>31)),0|p(),120,0),A=0|p(),n[e>>2]=2|t,n[e+4>>2]=A,0|(e=0))}function ge(A,e,t){t|=0;var r,n,o,a,s=0,f=0,l=0,g=0,w=0,b=0;return w=+h(.5*((b=+i[(e|=0)>>3])-(o=+i[(A|=0)>>3]))),g=+h(.5*((l=+i[e+8>>3])-(n=+i[A+8>>3]))),r=+c(+o),a=+c(+b),g=2*+B(+ +u(+(g=w*w+g*(a*r*g))),+ +u(+(1-g))),b=+h(.5*((w=+i[t>>3])-b)),l=+h(.5*((s=+i[t+8>>3])-l)),f=+c(+w),l=2*+B(+ +u(+(l=b*b+l*(a*f*l))),+ +u(+(1-l))),w=+h(.5*(o-w)),s=+h(.5*(n-s)),s=2*+B(+ +u(+(s=w*w+s*(r*f*s))),+ +u(+(1-s))),4*+v(+ +u(+ +d(.5*(f=.5*(g+l+s)))*+d(.5*(f-g))*+d(.5*(f-l))*+d(.5*(f-s))))}function we(A,e,t){t|=0;var r,o,a,s=0,f=0;if(a=T,T=T+192|0,o=a,0|(f=0|re(A|=0,e|=0,r=a+168|0)))return T=a,0|f;if(0|ne(A,e,o)&&E(27795,27190,415,27199),(0|(e=0|n[o>>2]))>0){if(s=+ge(o+8|0,o+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{s+=+ge(o+8+((f=A)<<4)|0,o+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else s=0;return i[t>>3]=s,T=a,0}function ve(A){A|=0;var e,t,r=0;return(e=0|qe(1,12))||E(27280,27235,49,27293),0|(r=0|n[(t=A+4|0)>>2])?(n[(r=r+8|0)>>2]=e,n[t>>2]=e,0|e):(0|n[A>>2]&&E(27310,27235,61,27333),n[(r=A)>>2]=e,n[t>>2]=e,0|e)}function Be(A,e){var t,r;return A|=0,e|=0,(r=0|Xe(24))||E(27347,27235,78,27361),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[r+16>>2]=0,0|(t=0|n[(e=A+4|0)>>2])?(n[t+16>>2]=r,n[e>>2]=r,0|r):(0|n[A>>2]&&E(27376,27235,82,27361),n[A>>2]=r,n[e>>2]=r,0|r)}function be(A){var e=0,t=0,r=0,i=0;if(A|=0)for(r=1;;){if(0|(e=0|n[A>>2]))do{if(0|(t=0|n[e>>2]))do{i=t,t=0|n[t+16>>2],Ke(i)}while(0|t);i=e,e=0|n[e+8>>2],Ke(i)}while(0|e);if(e=A,A=0|n[A+8>>2],r||Ke(e),!A)break;r=0}}function Me(A){var e,t,r=0,o=0,a=0,s=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,p=0,C=0,y=0,P=0,I=0,F=0,T=0,L=0,x=0,G=0,S=0;if(0|n[(s=8+(A|=0)|0)>>2])return 1;if(!(a=0|n[A>>2]))return 0;r=a,o=0;do{o=o+1|0,r=0|n[r+8>>2]}while(0|r);if(o>>>0<2)return 0;(t=0|Xe(o<<2))||E(27396,27235,317,27415),(e=0|Xe(o<<5))||E(27437,27235,321,27415),n[A>>2]=0,n[(y=A+4|0)>>2]=0,n[s>>2]=0,o=0,x=0,C=0,w=0;A:for(;;){if(g=0|n[a>>2]){u=0,l=g;do{if(r=l,+f(+((h=+i[l+8>>3])-(c=+i[(s=(d=!(0|(l=0|n[l+16>>2])))?g:l)+8>>3])))>3.141592653589793){S=14;break}u+=(c-h)*(+i[r>>3]+ +i[s>>3])}while(!d);if(14==(0|S)){S=0,u=0,r=g;do{u+=(+i[r>>3]+ +i[(T=0|(T=0|n[(L=r+16|0)>>2])?T:g)>>3])*(((D=+i[T+8>>3])<0?D+6.283185307179586:D)-((p=+i[r+8>>3])<0?p+6.283185307179586:p)),r=0|n[(0|r?L:a)>>2]}while(0|r)}u>0?(n[t+(x<<2)>>2]=a,x=x+1|0,s=C,r=w):S=19}else S=19;if(19==(0|S)){S=0;do{if(!o){if(w){s=y,l=w+8|0,r=a,o=A;break}if(0|n[A>>2]){S=27;break A}s=y,l=A,r=a,o=A;break}if(0|n[(r=o+8|0)>>2]){S=21;break A}if(!(o=0|qe(1,12))){S=23;break A}n[r>>2]=o,s=o+4|0,l=o,r=w}while(0);if(n[l>>2]=a,n[s>>2]=a,l=e+(C<<5)|0,d=0|n[a>>2]){for(i[(g=e+(C<<5)+8|0)>>3]=17976931348623157e292,i[(w=e+(C<<5)+24|0)>>3]=17976931348623157e292,i[l>>3]=-17976931348623157e292,i[(v=e+(C<<5)+16|0)>>3]=-17976931348623157e292,m=17976931348623157e292,Q=-17976931348623157e292,s=0,B=d,h=17976931348623157e292,M=17976931348623157e292,k=-17976931348623157e292,c=-17976931348623157e292;u=+i[B>>3],p=+i[B+8>>3],D=+i[((b=!(0|(B=0|n[B+16>>2])))?d:B)+8>>3],u<h&&(i[g>>3]=u,h=u),p<M&&(i[w>>3]=p,M=p),u>k?i[l>>3]=u:u=k,p>c&&(i[v>>3]=p,c=p),m=p>0&p<m?p:m,Q=p<0&p>Q?p:Q,s|=+f(+(p-D))>3.141592653589793,!b;)k=u;s&&(i[v>>3]=Q,i[w>>3]=m)}else n[l>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,n[l+12>>2]=0,n[l+16>>2]=0,n[l+20>>2]=0,n[l+24>>2]=0,n[l+28>>2]=0;s=C+1|0}if(a=0|n[(L=a+8|0)>>2],n[L>>2]=0,!a){S=45;break}C=s,w=r}if(21==(0|S))E(27213,27235,35,27247);else if(23==(0|S))E(27267,27235,37,27247);else if(27==(0|S))E(27310,27235,61,27333);else if(45==(0|S)){A:do{if((0|x)>0){for(L=!(0|s),F=s<<2,T=!(0|A),I=0,r=0;;){if(P=0|n[t+(I<<2)>>2],L)S=73;else{if(!(C=0|Xe(F))){S=50;break}if(!(y=0|Xe(F))){S=52;break}e:do{if(T)o=0;else{for(s=0,o=0,l=A;0|ke(0|n[l>>2],a=e+(s<<5)|0,0|n[P>>2])?(n[C+(o<<2)>>2]=l,n[y+(o<<2)>>2]=a,b=o+1|0):b=o,l=0|n[l+8>>2];)s=s+1|0,o=b;if((0|b)>0)if(a=0|n[C>>2],1==(0|b))o=a;else for(v=0,B=-1,o=a,w=a;;){for(d=0|n[w>>2],a=0,l=0;g=(0|(s=0|n[n[C+(l<<2)>>2]>>2]))==(0|d)?a:a+(1&ke(s,0|n[y+(l<<2)>>2],0|n[d>>2]))|0,(0|(l=l+1|0))!=(0|b);)a=g;if(o=(s=(0|g)>(0|B))?w:o,(0|(a=v+1|0))==(0|b))break e;v=a,B=s?g:B,w=0|n[C+(a<<2)>>2]}else o=0}}while(0);if(Ke(C),Ke(y),o){if(a=0|n[(s=o+4|0)>>2])o=a+8|0;else if(0|n[o>>2]){S=70;break}n[o>>2]=P,n[s>>2]=P}else S=73}if(73==(0|S)){if(S=0,0|(r=0|n[P>>2]))do{y=r,r=0|n[r+16>>2],Ke(y)}while(0|r);Ke(P),r=1}if((0|(I=I+1|0))>=(0|x)){G=r;break A}}50==(0|S)?E(27452,27235,249,27471):52==(0|S)?E(27490,27235,252,27471):70==(0|S)&&E(27310,27235,61,27333)}else G=0}while(0);return Ke(t),Ke(e),0|G}return 0}function ke(A,e,t){A|=0;var r=0,o=0,a=0,s=0,f=0,u=0,l=0,c=0;if(!(0|q(e|=0,t|=0)))return 0;if(e=0|X(e),r=+i[t>>3],o=e&(o=+i[t+8>>3])<0?o+6.283185307179586:o,!(A=0|n[A>>2]))return 0;if(e){e=0,l=o,t=A;A:for(;;){for(;s=+i[t>>3],o=+i[t+8>>3],f=+i[(c=0|(c=0|n[(t=t+16|0)>>2])?c:A)+8>>3],s>(a=+i[c>>3])?(u=s,s=f):(u=a,a=s,s=o,o=f),(r=r==a|r==u?r+2220446049250313e-31:r)<a|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(((u=(f=s<0?s+6.283185307179586:s)+(r-a)/(u-a)*((s=o<0?o+6.283185307179586:o)-f))<0?u+6.283185307179586:u)>(l=f==l|s==l?l+-2220446049250313e-31:l)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}else{e=0,l=o,t=A;A:for(;;){for(;s=+i[t>>3],o=+i[t+8>>3],f=+i[(c=0|(c=0|n[(t=t+16|0)>>2])?c:A)+8>>3],s>(a=+i[c>>3])?(u=s,s=f):(u=a,a=s,s=o,o=f),(r=r==a|r==u?r+2220446049250313e-31:r)<a|r>u;)if(!(t=0|n[t>>2])){t=22;break A}if(s+(r-a)/(u-a)*(o-s)>(l=s==l|o==l?l+-2220446049250313e-31:l)&&(e^=1),!(t=0|n[t>>2])){t=22;break}}if(22==(0|t))return 0|e}return 0}function me(A,e,t,i,o){t|=0,i|=0,o|=0;var a,s,f,u,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0;if(u=T,T=T+32|0,M=u+16|0,f=u,l=0|st(0|(A|=0),0|(e|=0),52),p(),l&=15,v=0|st(0|t,0|i,52),p(),(0|l)!=(15&v))return T=u,12;if(g=0|st(0|A,0|e,45),p(),g&=127,w=0|st(0|t,0|i,45),p(),g>>>0>121|(w&=127)>>>0>121)return T=u,5;if(v=(0|g)!=(0|w)){if(7==(0|(h=0|Z(g,w))))return T=u,1;7==(0|(d=0|Z(w,g)))?E(27514,27538,161,27548):(B=h,c=d)}else B=0,c=0;a=0|_(g),s=0|_(w),n[M>>2]=0,n[M+4>>2]=0,n[M+8>>2]=0,n[M+12>>2]=0;do{if(B){if(h=(0|(w=0|n[4272+(28*g|0)+(B<<2)>>2]))>0,s)if(h){g=0,d=t,h=i;do{d=0|KA(d,h),h=0|p(),1==(0|(c=0|mA(c)))&&(c=0|mA(1)),g=g+1|0}while((0|g)!=(0|w));w=c,g=d,d=h}else w=c,g=t,d=i;else if(h){g=0,d=t,h=i;do{d=0|qA(d,h),h=0|p(),c=0|mA(c),g=g+1|0}while((0|g)!=(0|w));w=c,g=d,d=h}else w=c,g=t,d=i;if(ee(g,d,M),v||E(27563,27538,191,27548),(h=!!(0|a))&(c=!!(0|s))&&E(27590,27538,192,27548),h){if(7==(0|(c=0|ZA(A,e)))){l=5;break}if(0|r[22e3+(7*c|0)+B|0]){l=1;break}g=d=0|n[21168+(28*c|0)+(B<<2)>>2]}else if(c){if(7==(0|(c=0|ZA(g,d)))){l=5;break}if(0|r[22e3+(7*c|0)+w|0]){l=1;break}g=0,d=0|n[21168+(28*w|0)+(c<<2)>>2]}else g=0,d=0;if((g|d)<0)l=5;else{if((0|d)>0){h=M+4|0,c=0;do{MA(h),c=c+1|0}while((0|c)!=(0|d))}if(n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,BA(f,B),0|l)for(;0|$A(l)?wA(f):vA(f),(0|l)>1;)l=l+-1|0;if((0|g)>0){l=0;do{MA(f),l=l+1|0}while((0|l)!=(0|g))}sA(b=M+4|0,f,b),oA(b),b=51}}else if(ee(t,i,M),!!(0|a)&!!(0|s))if((0|w)!=(0|g)&&E(27621,27538,261,27548),7==(0|(c=0|ZA(A,e)))|7==(0|(l=0|ZA(t,i))))l=5;else if(0|r[22e3+(7*c|0)+l|0])l=1;else if((0|(c=0|n[21168+(28*c|0)+(l<<2)>>2]))>0){h=M+4|0,l=0;do{MA(h),l=l+1|0}while((0|l)!=(0|c));b=51}else b=51;else b=51}while(0);return 51==(0|b)&&(n[o>>2]=n[(l=M+4|0)>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],l=0),T=u,0|l}function Qe(A,e,t,r){t|=0,r|=0;var i,o,a,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0;if(a=T,T=T+48|0,i=a+36|0,u=a+24|0,l=a+12|0,c=a,s=0|st(0|(A|=0),0|(e|=0),52),p(),s&=15,d=0|st(0|A,0|e,45),p(),(d&=127)>>>0>121)return T=a,5;if(o=0|_(d),ft(0|s,0,52),v=134225919|p(),n[(f=r)>>2]=-1,n[f+4>>2]=v,!s)return 7==(0|(s=0|lA(t)))||127==(0|(s=0|N(d,s)))?(T=a,0|(v=1)):(g=0|ft(0|s,0,45),w=0|p(),w|=-1040385&n[(d=r)+4>>2],n[(v=r)>>2]=n[d>>2]|g,n[v+4>>2]=w,T=a,0|(v=0));for(n[i>>2]=n[t>>2],n[i+4>>2]=n[t+4>>2],n[i+8>>2]=n[t+8>>2],t=s;;){if(f=t,t=t+-1|0,n[u>>2]=n[i>>2],n[u+4>>2]=n[i+4>>2],n[u+8>>2]=n[i+8>>2],0|$A(f)){if(0|(s=0|cA(i))){t=13;break}n[l>>2]=n[i>>2],n[l+4>>2]=n[i+4>>2],n[l+8>>2]=n[i+8>>2],wA(l)}else{if(0|(s=0|hA(i))){t=13;break}n[l>>2]=n[i>>2],n[l+4>>2]=n[i+4>>2],n[l+8>>2]=n[i+8>>2],vA(l)}if(fA(u,l,c),oA(c),b=0|n[(s=r)>>2],s=0|n[s+4>>2],B=0|ft(7,0,0|(M=3*(15-f|0)|0)),s&=~p(),M=0|ft(0|lA(c),0,0|M),s=p()|s,n[(v=r)>>2]=M|b&~B,n[v+4>>2]=s,(0|f)<=1){t=14;break}}A:do{if(13!=(0|t)&&14==(0|t))if((0|n[i>>2])<=1&&(0|n[i+4>>2])<=1&&(0|n[i+8>>2])<=1){c=127==(0|(s=0|N(d,t=0|lA(i))))?0:0|_(s);e:do{if(t){if(o){if(7==(0|(s=0|ZA(A,e)))){s=5;break A}if((0|(f=0|n[21376+(28*s|0)+(t<<2)>>2]))>0){s=t,t=0;do{s=0|kA(s),t=t+1|0}while((0|t)!=(0|f))}else s=t;if(1==(0|s)){s=9;break A}127==(0|(t=0|N(d,s)))&&E(27648,27538,411,27678),0|_(t)?E(27693,27538,412,27678):(w=t,g=f,h=s)}else w=s,g=0,h=t;if((0|(l=0|n[4272+(28*d|0)+(h<<2)>>2]))<=-1&&E(27724,27538,419,27678),!c){if((0|g)<0){s=5;break A}if(0|g){s=0,t=0|n[(f=r)>>2],f=0|n[f+4>>2];do{t=0|XA(t,f),f=0|p(),n[(M=r)>>2]=t,n[M+4>>2]=f,s=s+1|0}while((0|s)<(0|g))}if((0|l)<=0){s=w,t=58;break}for(s=0,t=0|n[(f=r)>>2],f=0|n[f+4>>2];;)if(t=0|XA(t,f),f=0|p(),n[(M=r)>>2]=t,n[M+4>>2]=f,(0|(s=s+1|0))==(0|l)){s=w,t=58;break e}}if(7==(0|(u=0|Z(w,d)))&&E(27514,27538,428,27678),t=0|n[(s=r)>>2],s=0|n[s+4>>2],(0|l)>0){f=0;do{t=0|XA(t,s),s=0|p(),n[(M=r)>>2]=t,n[M+4>>2]=s,f=f+1|0}while((0|f)!=(0|l))}if(7==(0|(s=0|ZA(t,s)))&&E(27795,27538,440,27678),t=0|W(w),(0|(t=0|n[(t?21792:21584)+(28*u|0)+(s<<2)>>2]))<0&&E(27795,27538,454,27678),t){s=0,f=0|n[(u=r)>>2],u=0|n[u+4>>2];do{f=0|JA(f,u),u=0|p(),n[(M=r)>>2]=f,n[M+4>>2]=u,s=s+1|0}while((0|s)<(0|t));s=w,t=58}else s=w,t=58}else if(!!(0|o)&!!(0|c)){if(7==(0|(t=0|ZA(A,e)))|7==(0|(f=0|ZA(0|n[(f=r)>>2],0|n[f+4>>2])))){s=5;break A}if((0|(f=0|n[21376+(28*t|0)+(f<<2)>>2]))<0){s=5;break A}if(f){t=0,u=0|n[(l=r)>>2],l=0|n[l+4>>2];do{u=0|XA(u,l),l=0|p(),n[(M=r)>>2]=u,n[M+4>>2]=l,t=t+1|0}while((0|t)<(0|f));t=58}else t=59}else t=58}while(0);if(58==(0|t)&&c&&(t=59),59==(0|t)&&1==(0|ZA(0|n[(M=r)>>2],0|n[M+4>>2]))){s=9;break}B=0|n[(M=r)>>2],M=-1040385&n[M+4>>2],b=0|ft(0|s,0,45),M|=p(),n[(s=r)>>2]=B|b,n[s+4>>2]=M,s=0}else s=1}while(0);return T=a,0|s}function De(A,e,t,r){A|=0,e|=0;var n=0,i=0,o=0;if(!(0|(t|=0))&!(0|(r|=0)))return i=1,D(0|(n=0)),0|i;i=A,n=e,A=1,e=0;do{A=0|nt(0|((o=!0&!(1&t))?1:i),0|(o?0:n),0|A,0|e),e=0|p(),t=0|at(0|t,0|r,1),r=0|p(),i=0|nt(0|i,0|n,0|i,0|n),n=0|p()}while(!(!(0|t)&!(0|r)));return D(0|e),0|A}function pe(A,e,t,r){t|=0,r|=0;var o,a=0,s=0,f=0,u=0,l=0,h=0;o=T,T=T+16|0,s=o,f=0|st(0|(A|=0),0|(e|=0),52),p(),f&=15;do{if(f){if(!(a=0|re(A,e,s))){u=1/+c(+(l=+i[s>>3])),i[t>>3]=l+(h=+i[25968+(f<<3)>>3]),i[t+8>>3]=l-h,i[t+16>>3]=(u*=h)+(l=+i[s+8>>3]),i[t+24>>3]=l-u;break}return T=o,0|a}if(a=0|st(0|A,0|e,45),p(),(a&=127)>>>0>121)return T=o,5;n[t>>2]=n[(s=22064+(a<<5)|0)>>2],n[t+4>>2]=n[s+4>>2],n[t+8>>2]=n[s+8>>2],n[t+12>>2]=n[s+12>>2],n[t+16>>2]=n[s+16>>2],n[t+20>>2]=n[s+20>>2],n[t+24>>2]=n[s+24>>2],n[t+28>>2]=n[s+28>>2];break}while(0);return function(A,e){var t,r,n,o,a,s,f,u=0,l=0;u=(o=+i[(n=16+(A|=0)|0)>>3])-(r=+i[(t=A+24|0)>>3]),l=+i[A>>3],u=.5*((u=o<r?u+6.283185307179586:u)*(e=+e)-u),i[A>>3]=(l+=e=.5*((f=l-(s=+i[(a=A+8|0)>>3]))*e-f))>1.5707963267948966?1.5707963267948966:l,i[a>>3]=(e=s-e)<-1.5707963267948966?-1.5707963267948966:e,i[n>>3]=(e=(e=o+u)>3.141592653589793?e+-6.283185307179586:e)<-3.141592653589793?e+6.283185307179586:e,i[t>>3]=(e=(e=r-u)>3.141592653589793?e+-6.283185307179586:e)<-3.141592653589793?e+6.283185307179586:e}(t,r?1.4:1.1),(0|n[(r=26096+(f<<3)|0)>>2])==(0|A)&&(0|n[r+4>>2])==(0|e)&&(i[t>>3]=1.5707963267948966),(0|n[(f=26224+(f<<3)|0)>>2])==(0|A)&&(0|n[f+4>>2])==(0|e)&&(i[t+8>>3]=-1.5707963267948966),1.5707963267948966!=+i[t>>3]&&-1.5707963267948966!=+i[t+8>>3]?(T=o,0|(f=0)):(i[t+16>>3]=3.141592653589793,i[t+24>>3]=-3.141592653589793,T=o,0|(f=0))}function Ee(A,e,t,i){A|=0,e|=0,t|=0,i|=0;var o,a,s,f=0,u=0,l=0,c=0;s=T,T=T+48|0,o=s+40|0,a=s,_A(u=s+32|0,0,0,0),l=0|n[u>>2],u=0|n[u+4>>2];do{if(t>>>0<=15){if(0|(f=0|Fe(i))){n[(i=a)>>2]=0,n[i+4>>2]=0,n[a+8>>2]=f,n[a+12>>2]=-1,l=a+29|0,n[(i=a+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[0|l]=0|r[0|o],r[l+1|0]=0|r[o+1|0],r[l+2|0]=0|r[o+2|0];break}if(f=0|qe(1+(0|n[e+8>>2])|0,32)){Te(e,f),n[(c=a)>>2]=l,n[c+4>>2]=u,n[a+8>>2]=0,n[a+12>>2]=t,n[a+16>>2]=i,n[a+20>>2]=e,n[a+24>>2]=f,r[a+28|0]=0,r[0|(l=a+29|0)]=0|r[0|o],r[l+1|0]=0|r[o+1|0],r[l+2|0]=0|r[o+2|0];break}n[(i=a)>>2]=0,n[i+4>>2]=0,n[a+8>>2]=13,n[a+12>>2]=-1,l=a+29|0,n[(i=a+16|0)>>2]=0,n[i+4>>2]=0,n[i+8>>2]=0,r[i+12|0]=0,r[0|l]=0|r[0|o],r[l+1|0]=0|r[o+1|0],r[l+2|0]=0|r[o+2|0];break}n[(l=a)>>2]=0,n[l+4>>2]=0,n[a+8>>2]=4,n[a+12>>2]=-1,c=a+29|0,n[(l=a+16|0)>>2]=0,n[l+4>>2]=0,n[l+8>>2]=0,r[l+12|0]=0,r[0|c]=0|r[0|o],r[c+1|0]=0|r[o+1|0],r[c+2|0]=0|r[o+2|0]}while(0);Ce(a),n[A>>2]=n[a>>2],n[A+4>>2]=n[a+4>>2],n[A+8>>2]=n[a+8>>2],n[A+12>>2]=n[a+12>>2],n[A+16>>2]=n[a+16>>2],n[A+20>>2]=n[a+20>>2],n[A+24>>2]=n[a+24>>2],n[A+28>>2]=n[a+28>>2],T=s}function Ce(A){var e,t,i,o,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0;if(o=T,T=T+336|0,e=o+168|0,t=o,!(0|(s=0|n[(f=A|=0)>>2]))&!(0|(f=0|n[f+4>>2])))T=o;else{if(0|r[0|(a=A+28|0)]?(s=0|ye(s,f),f=0|p()):r[0|a]=1,!(0|n[n[(i=A+20|0)>>2]>>2]))return 0|(s=0|n[(a=A+24|0)>>2])&&Ke(s),n[(m=A)>>2]=0,n[m+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[A+16>>2]=0,n[a>>2]=0,void(T=o);u=15&(a=0|n[(m=A+16|0)>>2]);A:do{if(!(0|s)&!(0|f))k=A+24|0;else{b=A+12|0,v=3==(0|u),w=255&a,d=3==(1|u),B=A+24|0,g=(u+-1|0)>>>0<3,c=3==(2|u),h=t+8|0;e:for(;;){if(l=0|st(0|s,0|f,52),p(),(0|(l&=15))==(0|n[b>>2])){switch(15&w){case 0:case 2:case 3:if(0|(u=0|re(s,f,e))){M=15;break e}if(0|Le(0|n[i>>2],0|n[B>>2],e)){M=19;break e}}if(d&&(n[e>>2]=n[(u=0|n[4+(0|n[i>>2])>>2])>>2],n[e+4>>2]=n[u+4>>2],n[e+8>>2]=n[u+8>>2],n[e+12>>2]=n[u+12>>2],0|q(26832,e))){if(0|Ae(0|n[4+(0|n[i>>2])>>2],l,t)){M=25;break}if((0|n[(u=t)>>2])==(0|s)&&(0|n[u+4>>2])==(0|f)){M=29;break}}if(g){if(0|(u=0|ne(s,f,e))){M=32;break}if(0|pe(s,f,t,0)){M=36;break}if(c&&0|xe(0|n[i>>2],0|n[B>>2],e,t)){M=42;break}if(d&&0|Se(0|n[i>>2],0|n[B>>2],e,t)){M=42;break}}if(v){if(a=0|pe(s,f,e,1),u=0|n[B>>2],0|a){M=45;break}if(0|$(u,e)){if(eA(t,e),0|AA(e,0|n[B>>2])){M=53;break}if(0|Le(0|n[i>>2],0|n[B>>2],h)){M=53;break}if(0|Se(0|n[i>>2],0|n[B>>2],t,e)){M=53;break}}}}do{if((0|l)<(0|n[b>>2])){if(a=0|pe(s,f,e,1),u=0|n[B>>2],0|a){M=58;break e}if(!(0|$(u,e))){M=73;break}if(0|AA(0|n[B>>2],e)&&(eA(t,e),0|xe(0|n[i>>2],0|n[B>>2],t,e))){M=65;break e}if(0|(s=0|NA(s,f,l+1|0,t))){M=67;break e}s=0|n[(f=t)>>2],f=0|n[f+4>>2]}else M=73}while(0);if(73==(0|M)&&(M=0,s=0|ye(s,f),f=0|p()),!(0|s)&!(0|f)){k=B;break A}}switch(0|M){case 15:0|(a=0|n[B>>2])&&Ke(a),n[(M=A)>>2]=0,n[M+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=u,M=20;break;case 19:n[A>>2]=s,n[A+4>>2]=f,M=20;break;case 25:E(27795,27761,470,27772);break;case 29:case 42:return n[A>>2]=s,n[A+4>>2]=f,void(T=o);case 32:return 0|(a=0|n[B>>2])&&Ke(a),n[(k=A)>>2]=0,n[k+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=u,void(T=o);case 36:E(27795,27761,493,27772);break;case 45:0|u&&Ke(u),n[(M=A)>>2]=0,n[M+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=a,M=55;break;case 53:n[A>>2]=s,n[A+4>>2]=f,M=55;break;case 58:0|u&&Ke(u),n[(M=A)>>2]=0,n[M+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=a,M=71;break;case 65:n[A>>2]=s,n[A+4>>2]=f,M=71;break;case 67:return 0|(a=0|n[B>>2])&&Ke(a),n[(k=A)>>2]=0,n[k+4>>2]=0,n[i>>2]=0,n[b>>2]=-1,n[m>>2]=0,n[B>>2]=0,n[A+8>>2]=s,void(T=o)}if(20==(0|M))return void(T=o);if(55==(0|M))return void(T=o);if(71==(0|M))return void(T=o)}}while(0);0|(a=0|n[k>>2])&&Ke(a),n[(M=A)>>2]=0,n[M+4>>2]=0,n[A+8>>2]=0,n[i>>2]=0,n[A+12>>2]=-1,n[m>>2]=0,n[k>>2]=0,T=o}}function ye(A,e){var t,r=0,i=0,o=0,a=0,s=0,f=0,u=0,l=0,c=0;t=T,T=T+16|0,c=t,i=0|st(0|(A|=0),0|(e|=0),52),p(),i&=15,r=0|st(0|A,0|e,45),p();do{if(i){for(;r=0|ft(i+4095|0,0,52),o=p()|-15728641&e,r=r|A|(s=0|ft(7,0,0|(a=3*(15-i|0)|0))),o|=f=0|p(),u=0|st(0|A,0|e,0|a),p(),i=i+-1|0,!((u&=7)>>>0<6);){if(!i){l=4;break}e=o,A=r}if(4==(0|l)){r=0|st(0|r,0|o,45),p();break}return c=0|ft(((c=!(0|u)&!!(0|VA(r,o)))?2:1)+u|0,0,0|a),l=p()|e&~f,c|=A&~s,D(0|l),T=t,0|c}}while(0);return(r&=127)>>>0>120?(c=0,D(0|(l=0)),T=t,0|c):(_A(c,0,r+1|0,0),l=0|n[c+4>>2],c=0|n[c>>2],D(0|l),T=t,0|c)}function Pe(A,e,t){A|=0;var r,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0;if(!(0|q(e|=0,t|=0)))return 0;if(e=0|X(e),o=+i[t>>3],a=e&(a=+i[t+8>>3])<0?a+6.283185307179586:a,(0|(d=0|n[A>>2]))<=0)return 0;if(r=0|n[A+4>>2],e){e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;a=+i[r+(c<<4)+8>>3],u=+i[r+((A=(t+2|0)%(0|d)|0)<<4)+8>>3],(f=+i[r+(c<<4)>>3])>(s=+i[r+(A<<4)>>3])?(l=f,f=u):(l=s,s=f,f=a,a=u),(o=o==s|o==l?o+2220446049250313e-31:o)<s|o>l;){if((0|(t=c+1|0))>=(0|d)){t=22;break A}A=c,c=t,t=A}if(((l=(u=f<0?f+6.283185307179586:f)+(o-s)/(l-s)*((f=a<0?a+6.283185307179586:a)-u))<0?l+6.283185307179586:l)>(h=u==h|f==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|d)){t=22;break}t=c}if(22==(0|t))return 0|e}else{e=0,h=a,t=-1,A=0;A:for(;;){for(c=A;a=+i[r+(c<<4)+8>>3],u=+i[r+((A=(t+2|0)%(0|d)|0)<<4)+8>>3],(f=+i[r+(c<<4)>>3])>(s=+i[r+(A<<4)>>3])?(l=f,f=u):(l=s,s=f,f=a,a=u),(o=o==s|o==l?o+2220446049250313e-31:o)<s|o>l;){if((0|(t=c+1|0))>=(0|d)){t=22;break A}A=c,c=t,t=A}if(f+(o-s)/(l-s)*(a-f)>(h=f==h|a==h?h+-2220446049250313e-31:h)&&(e^=1),(0|(A=c+1|0))>=(0|d)){t=22;break}t=c}if(22==(0|t))return 0|e}return 0}function Ie(A,e){e|=0;var t,r,o,a,s,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0;if(!(r=0|n[(A|=0)>>2]))return n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,void(n[e+28>>2]=0);if(i[(o=e+8|0)>>3]=17976931348623157e292,i[(a=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(s=e+16|0)>>3]=-17976931348623157e292,!((0|r)<=0)){for(t=0|n[A+4>>2],v=17976931348623157e292,B=-17976931348623157e292,b=0,A=-1,h=17976931348623157e292,d=17976931348623157e292,w=-17976931348623157e292,l=-17976931348623157e292,M=0;g=+i[t+(M<<4)+8>>3],c=+i[t+(((0|(A=A+2|0))==(0|r)?0:A)<<4)+8>>3],(u=+i[t+(M<<4)>>3])<h&&(i[o>>3]=u,h=u),g<d&&(i[a>>3]=g,d=g),u>w?i[e>>3]=u:u=w,g>l&&(i[s>>3]=g,l=g),v=g>0&g<v?g:v,B=g<0&g>B?g:B,b|=+f(+(g-c))>3.141592653589793,(0|(A=M+1|0))!=(0|r);)k=M,w=u,M=A,A=k;b&&(i[s>>3]=B,i[a>>3]=v)}}function Fe(A){return 0|((A|=0)>>>0<4?0:15)}function Te(A,e){e|=0;var t,r=0,o=0,a=0,s=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,p=0,E=0;if(B=0|n[(A|=0)>>2]){if(i[(b=e+8|0)>>3]=17976931348623157e292,i[(M=e+24|0)>>3]=17976931348623157e292,i[e>>3]=-17976931348623157e292,i[(k=e+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|n[A+4>>2],w=17976931348623157e292,v=-17976931348623157e292,o=0,r=-1,c=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,m=0;d=+i[a+(m<<4)+8>>3],l=+i[a+(((0|(p=r+2|0))==(0|B)?0:p)<<4)+8>>3],(s=+i[a+(m<<4)>>3])<c&&(i[b>>3]=s,c=s),d<h&&(i[M>>3]=d,h=d),s>g?i[e>>3]=s:s=g,d>u&&(i[k>>3]=d,u=d),w=d>0&d<w?d:w,v=d<0&d>v?d:v,o|=+f(+(d-l))>3.141592653589793,(0|(r=m+1|0))!=(0|B);)p=m,g=s,m=r,r=p;o&&(i[k>>3]=v,i[M>>3]=w)}}else n[e>>2]=0,n[e+4>>2]=0,n[e+8>>2]=0,n[e+12>>2]=0,n[e+16>>2]=0,n[e+20>>2]=0,n[e+24>>2]=0,n[e+28>>2]=0;if(!((0|(r=0|n[(p=A+8|0)>>2]))<=0)){t=A+12|0,D=0;do{if(o=D,M=e+((D=D+1|0)<<5)|0,k=0|n[(a=0|n[t>>2])+(o<<3)>>2]){if(i[(m=e+(D<<5)+8|0)>>3]=17976931348623157e292,i[(A=e+(D<<5)+24|0)>>3]=17976931348623157e292,i[M>>3]=-17976931348623157e292,i[(Q=e+(D<<5)+16|0)>>3]=-17976931348623157e292,(0|k)>0){for(B=0|n[a+(o<<3)+4>>2],w=17976931348623157e292,v=-17976931348623157e292,a=0,o=-1,b=0,c=17976931348623157e292,h=17976931348623157e292,d=-17976931348623157e292,u=-17976931348623157e292;g=+i[B+(b<<4)+8>>3],l=+i[B+(((0|(o=o+2|0))==(0|k)?0:o)<<4)+8>>3],(s=+i[B+(b<<4)>>3])<c&&(i[m>>3]=s,c=s),g<h&&(i[A>>3]=g,h=g),s>d?i[M>>3]=s:s=d,g>u&&(i[Q>>3]=g,u=g),w=g>0&g<w?g:w,v=g<0&g>v?g:v,a|=+f(+(g-l))>3.141592653589793,(0|(o=b+1|0))!=(0|k);)E=b,b=o,d=s,o=E;a&&(i[Q>>3]=v,i[A>>3]=w)}}else n[M>>2]=0,n[M+4>>2]=0,n[M+8>>2]=0,n[M+12>>2]=0,n[M+16>>2]=0,n[M+20>>2]=0,n[M+24>>2]=0,n[M+28>>2]=0,r=0|n[p>>2]}while((0|D)<(0|r))}}function Le(A,e,t){var r=0,i=0;if(!(0|Pe(A|=0,e|=0,t|=0)))return 0;if((0|n[(i=A+8|0)>>2])<=0)return 1;for(r=A+12|0,A=0;;){if(0|Pe((0|n[r>>2])+(A<<3)|0,e+((A=A+1|0)<<5)|0,t)){A=0,r=6;break}if((0|A)>=(0|n[i>>2])){A=1,r=6;break}}return 6==(0|r)?0|A:0}function xe(A,e,t,r){r|=0;var i,o,a=0,s=0,f=0,u=0;if(o=T,T=T+16|0,i=o,!(0|Pe(A|=0,e|=0,f=8+(t|=0)|0)))return T=o,0;u=A+8|0;A:do{if((0|n[u>>2])>0){for(s=A+12|0,a=0;;){if(0|Pe((0|n[s>>2])+(a<<3)|0,e+((a=a+1|0)<<5)|0,f)){a=0;break}if((0|a)>=(0|n[u>>2]))break A}return T=o,0|a}}while(0);if(0|Ge(A,e,t,r))return T=o,0;n[i>>2]=n[t>>2],n[i+4>>2]=f,a=0|n[u>>2];A:do{if((0|a)>0)for(A=A+12|0,f=0,s=a;;){if((0|n[(a=0|n[A>>2])+(f<<3)>>2])>0){if(0|Pe(i,r,0|n[a+(f<<3)+4>>2])){a=0;break A}if(0|Ge((0|n[A>>2])+(f<<3)|0,e+((a=f+1|0)<<5)|0,t,r)){a=0;break A}s=0|n[u>>2]}else a=f+1|0;if(!((0|a)<(0|s))){a=1;break}f=a}else a=1}while(0);return T=o,0|a}function Ge(A,e,t,r){A|=0,t|=0;var o,a,s,f,u,l,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,p=0,E=0;if(l=T,T=T+176|0,f=l+172|0,c=l+168|0,u=l,!(0|$(e|=0,r|=0)))return T=l,0;if(function(A,e,t,r){var o,a,s,f,u;r|=0,o=(f=+i[16+(e|=0)>>3])<(s=+i[e+24>>3]),e=(u=+i[24+(A|=0)>>3])-f<s-(a=+i[A+16>>3]),n[(t|=0)>>2]=(A=a<u)?o|e?1:2:0,n[r>>2]=o?A?1:e?2:1:0}(e,r,f,c),dt(0|u,0|t,168),(0|n[t>>2])>0){e=0;do{m=+le(+i[(p=u+8+(e<<4)+8|0)>>3],0|n[c>>2]),i[p>>3]=m,e=e+1|0}while((0|e)<(0|n[t>>2]))}a=+i[r>>3],s=+i[r+8>>3],m=+le(+i[r+16>>3],0|n[c>>2]),o=+le(+i[r+24>>3],0|n[c>>2]);A:do{if((0|n[A>>2])>0){if(r=A+4|0,(0|(c=0|n[u>>2]))<=0)for(e=0;;)if((0|(e=e+1|0))>=(0|n[A>>2])){e=0;break A}for(t=0;;){if(M=+i[(e=0|n[r>>2])+(t<<4)>>3],k=+le(+i[e+(t<<4)+8>>3],0|n[f>>2]),h=+i[(e=0|n[r>>2])+((p=(0|(t=t+1|0))%(0|n[A>>2])|0)<<4)>>3],d=+le(+i[e+(p<<4)+8>>3],0|n[f>>2]),!(M>=a)|!(h>=a)&&!(M<=s)|!(h<=s)&&!(k<=o)|!(d<=o)&&!(k>=m)|!(d>=m)){b=h-M,v=d-k,e=0;do{if(E=e,!(0==(B=b*(d=+i[u+8+((p=(0|(e=e+1|0))==(0|c)?0:e)<<4)+8>>3]-(h=+i[u+8+(E<<4)+8>>3]))-v*(w=+i[u+8+(p<<4)>>3]-(g=+i[u+8+(E<<4)>>3])))||(Q=k-h,D=M-g,w=(Q*w-d*D)/B,w<0|w>1))&&(B=(b*Q-v*D)/B)>=0&B<=1){e=1;break A}}while((0|e)<(0|c))}if((0|t)>=(0|n[A>>2])){e=0;break}}}else e=0}while(0);return T=l,0|e}function Se(A,e,t,r){var i=0,o=0;if(0|Ge(A|=0,e|=0,t|=0,r|=0))return 1;if((0|n[(o=A+8|0)>>2])<=0)return 0;for(i=A+12|0,A=0;;){if(0|Ge((0|n[i>>2])+(A<<3)|0,e+((A=A+1|0)<<5)|0,t,r)){A=1,i=6;break}if((0|A)>=(0|n[o>>2])){A=0,i=6;break}}return 6==(0|i)?0|A:0}function Ue(A,e,t,r,n){var o,a,s,f,u,l,c,h=0;i[(n|=0)>>3]=(f=+i[(A|=0)>>3])+(s=+i[(e|=0)>>3]-f)*(h=((h=+i[(r|=0)>>3]-(l=+i[(t|=0)>>3]))*((a=+i[A+8>>3])-(c=+i[t+8>>3]))-(f-l)*(u=+i[r+8>>3]-c))/(s*u-(o=+i[e+8>>3]-a)*h)),i[n+8>>3]=a+o*h}function Re(A,e){return+f(+(+i[(A|=0)>>3]-+i[(e|=0)>>3]))<1.1920928955078125e-7?0|(e=+f(+(+i[A+8>>3]-+i[e+8>>3]))<1.1920928955078125e-7):0|(e=0)}function ze(A,e){var t,r,n;return+((n=+i[(A|=0)>>3]-+i[(e|=0)>>3])*n+(r=+i[A+8>>3]-+i[e+8>>3])*r+(t=+i[A+16>>3]-+i[e+16>>3])*t)}function Oe(A,e,t){t|=0;var r,i,o,a,s=0,f=0,u=0;if(a=T,T=T+32|0,u=a,0|(s=0|te(A|=0,e|=0,i=a+16|0)))return T=a,0|s;r=0|OA(A,e),o=0|ZA(A,e),function(A,e){n[(e|=0)>>2]=n[(A=7696+(28*(A|=0)|0)|0)>>2],n[e+4>>2]=n[A+4>>2],n[e+8>>2]=n[A+8>>2],n[e+12>>2]=n[A+12>>2]}(r,u),s=0|function(A,e){A|=0;var t=0,r=0;if((e|=0)>>>0>20)return-1;do{if((0|n[11120+(216*e|0)>>2])!=(0|A))if((0|n[11120+(216*e|0)+8>>2])!=(0|A))if((0|n[11120+(216*e|0)+16>>2])!=(0|A))if((0|n[11120+(216*e|0)+24>>2])!=(0|A))if((0|n[11120+(216*e|0)+32>>2])!=(0|A))if((0|n[11120+(216*e|0)+40>>2])!=(0|A))if((0|n[11120+(216*e|0)+48>>2])!=(0|A))if((0|n[11120+(216*e|0)+56>>2])!=(0|A))if((0|n[11120+(216*e|0)+64>>2])!=(0|A))if((0|n[11120+(216*e|0)+72>>2])!=(0|A))if((0|n[11120+(216*e|0)+80>>2])!=(0|A))if((0|n[11120+(216*e|0)+88>>2])!=(0|A))if((0|n[11120+(216*e|0)+96>>2])!=(0|A))if((0|n[11120+(216*e|0)+104>>2])!=(0|A))if((0|n[11120+(216*e|0)+112>>2])!=(0|A))if((0|n[11120+(216*e|0)+120>>2])!=(0|A))if((0|n[11120+(216*e|0)+128>>2])!=(0|A)){if((0|n[11120+(216*e|0)+136>>2])!=(0|A)){if((0|n[11120+(216*e|0)+144>>2])==(0|A)){A=0,t=2,r=0;break}if((0|n[11120+(216*e|0)+152>>2])==(0|A)){A=0,t=2,r=1;break}if((0|n[11120+(216*e|0)+160>>2])==(0|A)){A=0,t=2,r=2;break}if((0|n[11120+(216*e|0)+168>>2])==(0|A)){A=1,t=2,r=0;break}if((0|n[11120+(216*e|0)+176>>2])==(0|A)){A=1,t=2,r=1;break}if((0|n[11120+(216*e|0)+184>>2])==(0|A)){A=1,t=2,r=2;break}if((0|n[11120+(216*e|0)+192>>2])==(0|A)){A=2,t=2,r=0;break}if((0|n[11120+(216*e|0)+200>>2])==(0|A)){A=2,t=2,r=1;break}if((0|n[11120+(216*e|0)+208>>2])==(0|A)){A=2,t=2,r=2;break}return-1}A=2,t=1,r=2}else A=2,t=1,r=1;else A=2,t=1,r=0;else A=1,t=1,r=2;else A=1,t=1,r=1;else A=1,t=1,r=0;else A=0,t=1,r=2;else A=0,t=1,r=1;else A=0,t=1,r=0;else A=2,t=0,r=2;else A=2,t=0,r=1;else A=2,t=0,r=0;else A=1,t=0,r=2;else A=1,t=0,r=1;else A=1,t=0,r=0;else A=0,t=0,r=2;else A=0,t=0,r=1;else A=0,t=0,r=0}while(0);return 0|n[11120+(216*e|0)+(72*t|0)+(24*A|0)+(r<<3)+4>>2]}(r,0|n[i>>2]);A:do{if(0|_(r)){switch(0|r){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:s=1;break A}if(f=0|n[26416+(24*A|0)+8>>2],e=0|n[26416+(24*A|0)+16>>2],(0|(A=0|n[i>>2]))!=(0|n[u>>2])&&(u=0|W(r))|(0|(A=0|n[i>>2]))==(0|e)&&(s=(s+1|0)%6|0),3==(0|o)&(0|A)==(0|e)){s=(s+5|0)%6|0,f=22;break}5==(0|o)&(0|A)==(0|f)?(s=(s+1|0)%6|0,f=22):f=22}else f=22}while(0);return 22==(0|f)&&(n[t>>2]=s,s=0),T=a,0|s}function Ye(A,e,t,r){t|=0,r|=0;var i,o,a,s,f,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0;if(f=T,T=T+32|0,M=f+24|0,s=f+20|0,a=f+8|0,o=f+16|0,i=f,d=(d=!(0|VA(A|=0,e|=0)))?6:5,w=0|st(0|A,0|e,52),p(),d>>>0<=t>>>0)return T=f,2;!(v=!(0|(w&=15)))&&!((B=0|ft(7,0,3*(15^w)|0))&A)&!(p()&e)?u=t:l=4;A:do{if(4==(0|l)){if((0|((u=!!(0|VA(A,e)))?4:5))<(0|t))return T=f,1;if(0|Oe(A,e,M))return T=f,1;if(l=(0|n[M>>2])+t|0,7==(0|(B=0|n[(u=u?26704+((0|l)%5<<2)|0:26736+((0|l)%6<<2)|0)>>2])))return T=f,1;n[s>>2]=0,u=0|U(A,e,B,s,a);do{if(!u){if(g=0|n[(h=a)>>2],l=(c=(h=0|n[h+4>>2])>>>0<e>>>0|(0|h)==(0|e)&g>>>0<A>>>0)?g:A,c=c?h:e,!v&&!(g&(v=0|ft(7,0,3*(15^w)|0)))&!(h&p()))u=t;else{if(h=(t+-1+d|0)%(0|d)|0,u=0|VA(A,e),(0|h)<0&&E(27795,27797,246,27806),(0|((d=!!(0|u))?4:5))<(0|h)&&E(27795,27797,246,27806),0|Oe(A,e,M)&&E(27795,27797,246,27806),u=(0|n[M>>2])+h|0,7==(0|(h=0|n[(u=d?26704+((0|u)%5<<2)|0:26736+((0|u)%6<<2)|0)>>2]))&&E(27795,27797,246,27806),n[o>>2]=0,0|(u=0|U(A,e,h,o,i)))break;d=0|n[(g=i)>>2],g=0|n[g+4>>2];do{if(g>>>0<c>>>0|(0|g)==(0|c)&d>>>0<l>>>0){if(l=0|VA(d,g)?0|O(d,g,A,e):0|n[26800+(((0|n[o>>2])+(0|n[26768+(h<<2)>>2])|0)%6<<2)>>2],u=0|VA(d,g),(l+-1|0)>>>0>5){u=-1,l=d,c=g;break}if(1==(0|l)&(u=!!(0|u))){u=-1,l=d,c=g;break}do{if(!(0|Oe(d,g,M))){if(u){u=(5+(0|n[26352+(l<<2)>>2])-(0|n[M>>2])|0)%5|0;break}u=(6+(0|n[26384+(l<<2)>>2])-(0|n[M>>2])|0)%6|0;break}u=-1}while(0);l=d,c=g}else u=t}while(0);g=0|n[(h=a)>>2],h=0|n[h+4>>2]}if((0|l)==(0|g)&(0|c)==(0|h)){if(A=(d=!!(0|VA(g,h)))?0|O(g,h,A,e):0|n[26800+(((0|n[s>>2])+(0|n[26768+(B<<2)>>2])|0)%6<<2)>>2],u=0|VA(g,h),(A+-1|0)>>>0<=5&&!(1==(0|A)&(b=!!(0|u))))do{if(!(0|Oe(g,h,M))){if(b){u=(5+(0|n[26352+(A<<2)>>2])-(0|n[M>>2])|0)%5|0;break}u=(6+(0|n[26384+(A<<2)>>2])-(0|n[M>>2])|0)%6|0;break}u=-1}while(0);else u=-1;u=6==(0|(u=u+1|0))|d&5==(0|u)?0:u}e=c,A=l;break A}}while(0);return T=f,0|u}}while(0);return b=0|ft(0|u,0,56),M=p()|-2130706433&e|536870912,n[r>>2]=b|A,n[r+4>>2]=M,T=f,0}function _e(A,e,t){A|=0,t|=0;var r=0;(0|(e|=0))>0?(r=0|qe(e,4),n[A>>2]=r,r||E(27819,27842,40,27856)):n[A>>2]=0,n[A+4>>2]=e,n[A+8>>2]=0,n[A+12>>2]=t}function We(A){var e,t,r,o=0,a=0,s=0,u=0;e=4+(A|=0)|0,t=A+12|0,r=A+8|0;A:for(;;){for(a=0|n[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(u=0|n[(s=0|n[A>>2])+(o<<2)>>2])break;o=o+1|0}o=s+(~~(+f(+ +l(10,+ +(15-(0|n[t>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|a))>>>0<<2)|0,a=0|n[o>>2];e:do{if(0|a){if(s=u+32|0,(0|a)==(0|u))n[o>>2]=n[s>>2];else{if(!(o=0|n[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|n[(a=o+32|0)>>2]))break e;n[a>>2]=n[s>>2]}Ke(u),n[r>>2]=(0|n[r>>2])-1}}while(0)}Ke(0|n[A>>2])}function He(A){var e,t=0,r=0;for(e=0|n[4+(A|=0)>>2],r=0;;){if((0|r)>=(0|e)){t=0,r=4;break}if(t=0|n[(0|n[A>>2])+(r<<2)>>2]){r=4;break}r=r+1|0}return 4==(0|r)?0|t:0}function Ve(A,e){e|=0;var t=0,r=0,o=0,a=0;if(t=~~(+f(+ +l(10,+ +(15-(0|n[12+(A|=0)>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(r=0|n[(t=(0|n[A>>2])+(t<<2)|0)>>2]))return 1;a=e+32|0;do{if((0|r)!=(0|e)){if(!(t=0|n[r+32>>2]))return 1;for(o=t;;){if((0|o)==(0|e)){o=8;break}if(!(t=0|n[o+32>>2])){t=1,o=10;break}r=o,o=t}if(8==(0|o)){n[r+32>>2]=n[a>>2];break}if(10==(0|o))return 0|t}else n[t>>2]=n[a>>2]}while(0);return Ke(e),n[(a=A+8|0)>>2]=(0|n[a>>2])-1,0}function je(A,e,t){A|=0,e|=0,t|=0;var r,o=0,a=0,s=0;(r=0|Xe(40))||E(27872,27842,98,27885),n[r>>2]=n[e>>2],n[r+4>>2]=n[e+4>>2],n[r+8>>2]=n[e+8>>2],n[r+12>>2]=n[e+12>>2],n[(a=r+16|0)>>2]=n[t>>2],n[a+4>>2]=n[t+4>>2],n[a+8>>2]=n[t+8>>2],n[a+12>>2]=n[t+12>>2],n[r+32>>2]=0,a=~~(+f(+ +l(10,+ +(15-(0|n[A+12>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,o=0|n[(a=(0|n[A>>2])+(a<<2)|0)>>2];do{if(o){for(;!(0|ue(o,e)&&0|ue(o+16|0,t));)if(!(0|n[(o=0|(a=0|n[o+32>>2])?a:o)+32>>2])){s=10;break}if(10==(0|s)){n[o+32>>2]=r;break}return Ke(r),0|o}n[a>>2]=r}while(0);return n[(s=A+8|0)>>2]=1+(0|n[s>>2]),0|r}function Ne(A,e,t){e|=0,t|=0;var r=0,o=0;if(o=~~(+f(+ +l(10,+ +(15-(0|n[12+(A|=0)>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(o=0|n[(0|n[A>>2])+(o<<2)>>2]))return 0;if(!t){for(A=o;;){if(0|ue(A,e)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}if(10==(0|r))return 0|A}for(A=o;;){if(0|ue(A,e)&&0|ue(A+16|0,t)){r=10;break}if(!(A=0|n[A+32>>2])){A=0,r=10;break}}return 10==(0|r)?0|A:0}function Ze(A,e){e|=0;var t=0;if(t=~~(+f(+ +l(10,+ +(15-(0|n[12+(A|=0)>>2])|0))*(+i[e>>3]+ +i[e+8>>3]))%+(0|n[A+4>>2]))>>>0,!(A=0|n[(0|n[A>>2])+(t<<2)>>2]))return 0;for(;;){if(0|ue(A,e)){e=5;break}if(!(A=0|n[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function Je(A){return 0|+wt(+(A=+A))}function Xe(A){A|=0;var e,t=0,r=0,i=0,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0;e=T,T=T+16|0,d=e;do{if(A>>>0<245){if(3&(r=(h=0|n[6977])>>>(A=(l=A>>>0<11?16:A+11&-8)>>>3)))return(0|(a=0|n[(o=8+(i=0|n[(r=8+(A=27948+((t=(1&r^1)+A|0)<<1<<2)|0)|0)>>2])|0)>>2]))==(0|A)?n[6977]=h&~(1<<t):(n[a+12>>2]=A,n[r>>2]=a),n[i+4>>2]=3|(m=t<<3),n[(m=i+m+4|0)>>2]=1|n[m>>2],T=e,0|o;if(l>>>0>(c=0|n[6979])>>>0){if(0|r)return t=((t=r<<A&((t=2<<A)|0-t))&0-t)-1|0,(0|(r=0|n[(f=8+(a=0|n[(A=8+(t=27948+((i=((r=(t>>>=f=t>>>12&16)>>>5&8)|f|(a=(t>>>=r)>>>2&4)|(A=(t>>>=a)>>>1&2)|(i=(t>>>=A)>>>1&1))+(t>>>i)|0)<<1<<2)|0)|0)>>2])|0)>>2]))==(0|t)?n[6977]=A=h&~(1<<i):(n[r+12>>2]=t,n[A>>2]=r,A=h),s=(m=i<<3)-l|0,n[a+4>>2]=3|l,n[4+(o=a+l|0)>>2]=1|s,n[a+m>>2]=s,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,A&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=s,n[6982]=o,T=e,0|f;if(a=0|n[6978]){for(r=(a&0-a)-1|0,r=u=0|n[28212+(((i=(r>>>=o=r>>>12&16)>>>5&8)|o|(s=(r>>>=i)>>>2&4)|(f=(r>>>=s)>>>1&2)|(u=(r>>>=f)>>>1&1))+(r>>>u)<<2)>>2],f=u,u=(-8&n[u+4>>2])-l|0;(A=0|n[r+16>>2])||(A=0|n[r+20>>2]);)r=A,f=(o=(s=(-8&n[A+4>>2])-l|0)>>>0<u>>>0)?A:f,u=o?s:u;if((s=f+l|0)>>>0>f>>>0){o=0|n[f+24>>2],t=0|n[f+12>>2];do{if((0|t)==(0|f)){if(!(t=0|n[(A=f+20|0)>>2])&&!(t=0|n[(A=f+16|0)>>2])){r=0;break}for(;;)if(r=0|n[(i=t+20|0)>>2])t=r,A=i;else{if(!(r=0|n[(i=t+16|0)>>2]))break;t=r,A=i}n[A>>2]=0,r=t}else n[12+(r=0|n[f+8>>2])>>2]=t,n[t+8>>2]=r,r=t}while(0);do{if(0|o){if((0|f)==(0|n[(A=28212+((t=0|n[f+28>>2])<<2)|0)>>2])){if(n[A>>2]=r,!r){n[6978]=a&~(1<<t);break}}else if(n[((0|n[(m=o+16|0)>>2])==(0|f)?m:o+20)>>2]=r,!r)break;n[r+24>>2]=o,0|(t=0|n[f+16>>2])&&(n[r+16>>2]=t,n[t+24>>2]=r),0|(t=0|n[f+20>>2])&&(n[r+20>>2]=t,n[t+24>>2]=r)}}while(0);return u>>>0<16?(n[f+4>>2]=3|(m=u+l|0),n[(m=f+m+4|0)>>2]=1|n[m>>2]):(n[f+4>>2]=3|l,n[s+4>>2]=1|u,n[s+u>>2]=u,0|c&&(i=0|n[6982],r=27948+((t=c>>>3)<<1<<2)|0,(t=1<<t)&h?t=0|n[(A=r+8|0)>>2]:(n[6977]=t|h,t=r,A=r+8|0),n[A>>2]=i,n[t+12>>2]=i,n[i+8>>2]=t,n[i+12>>2]=r),n[6979]=u,n[6982]=s),T=e,0|f+8}h=l}else h=l}else h=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),i=0|n[6978]){o=0-l|0,u=(A>>>=8)?l>>>0>16777215?31:l>>>(7+(u=14-((f=(520192+(v=A<<(h=(A+1048320|0)>>>16&8))|0)>>>16&4)|h|(u=(245760+(v<<=f)|0)>>>16&2))+(v<<u>>>15)|0)|0)&1|u<<1:0,r=0|n[28212+(u<<2)>>2];A:do{if(r)for(A=0,f=l<<(31==(0|u)?0:25-(u>>>1)),a=0;;){if((s=(-8&n[r+4>>2])-l|0)>>>0<o>>>0){if(!s){A=r,o=0,v=65;break A}A=r,o=s}if(a=!(0|(v=0|n[r+20>>2]))|(0|v)==(0|(r=0|n[r+16+(f>>>31<<2)>>2]))?a:v,!r){r=a,v=61;break}f<<=1}else r=0,A=0,v=61}while(0);if(61==(0|v)){if(!(0|r)&!(0|A)){if(!(A=((A=2<<u)|0-A)&i)){h=l;break}h=(A&0-A)-1|0,A=0,r=0|n[28212+(((a=(h>>>=s=h>>>12&16)>>>5&8)|s|(f=(h>>>=a)>>>2&4)|(u=(h>>>=f)>>>1&2)|(r=(h>>>=u)>>>1&1))+(h>>>r)<<2)>>2]}r?v=65:(f=A,s=o)}if(65==(0|v))for(a=r;;){if(o=(r=(h=(-8&n[a+4>>2])-l|0)>>>0<o>>>0)?h:o,A=r?a:A,(r=0|n[a+16>>2])||(r=0|n[a+20>>2]),!r){f=A,s=o;break}a=r}if(0|f&&s>>>0<((0|n[6979])-l|0)>>>0&&(c=f+l|0)>>>0>f>>>0){a=0|n[f+24>>2],t=0|n[f+12>>2];do{if((0|t)==(0|f)){if(!(t=0|n[(A=f+20|0)>>2])&&!(t=0|n[(A=f+16|0)>>2])){t=0;break}for(;;)if(r=0|n[(o=t+20|0)>>2])t=r,A=o;else{if(!(r=0|n[(o=t+16|0)>>2]))break;t=r,A=o}n[A>>2]=0}else n[12+(m=0|n[f+8>>2])>>2]=t,n[t+8>>2]=m}while(0);do{if(a){if((0|f)==(0|n[(r=28212+((A=0|n[f+28>>2])<<2)|0)>>2])){if(n[r>>2]=t,!t){n[6978]=i&=~(1<<A);break}}else if(n[((0|n[(m=a+16|0)>>2])==(0|f)?m:a+20)>>2]=t,!t)break;n[t+24>>2]=a,0|(A=0|n[f+16>>2])&&(n[t+16>>2]=A,n[A+24>>2]=t),(A=0|n[f+20>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);A:do{if(s>>>0<16)n[f+4>>2]=3|(m=s+l|0),n[(m=f+m+4|0)>>2]=1|n[m>>2];else{if(n[f+4>>2]=3|l,n[c+4>>2]=1|s,n[c+s>>2]=s,t=s>>>3,s>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=c,n[t+12>>2]=c,n[c+8>>2]=t,n[c+12>>2]=r;break}if(t=28212+((r=(t=s>>>8)?s>>>0>16777215?31:s>>>(7+(r=14-((M=(520192+(m=t<<(k=(t+1048320|0)>>>16&8))|0)>>>16&4)|k|(r=(245760+(m<<=M)|0)>>>16&2))+(m<<r>>>15)|0)|0)&1|r<<1:0)<<2)|0,n[c+28>>2]=r,n[4+(A=c+16|0)>>2]=0,n[A>>2]=0,!(i&(A=1<<r))){n[6978]=i|A,n[t>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break}t=0|n[t>>2];e:do{if((-8&n[t+4>>2])!=(0|s)){for(i=s<<(31==(0|r)?0:25-(r>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|s)){t=A;break e}i<<=1,t=A}n[r>>2]=c,n[c+24>>2]=t,n[c+12>>2]=c,n[c+8>>2]=c;break A}}while(0);n[12+(m=0|n[(k=t+8|0)>>2])>>2]=c,n[k>>2]=c,n[c+8>>2]=m,n[c+12>>2]=t,n[c+24>>2]=0}}while(0);return T=e,0|f+8}h=l}else h=l;else h=-1}while(0);if((r=0|n[6979])>>>0>=h>>>0)return A=0|n[6982],(t=r-h|0)>>>0>15?(n[6982]=m=A+h|0,n[6979]=t,n[m+4>>2]=1|t,n[A+r>>2]=t,n[A+4>>2]=3|h):(n[6979]=0,n[6982]=0,n[A+4>>2]=3|r,n[(m=A+r+4|0)>>2]=1|n[m>>2]),T=e,0|A+8;if((s=0|n[6980])>>>0>h>>>0)return n[6980]=M=s-h|0,n[6983]=k=(m=0|n[6983])+h|0,n[k+4>>2]=1|M,n[m+4>>2]=3|h,T=e,0|m+8;if(0|n[7095]?A=0|n[7097]:(n[7097]=4096,n[7096]=4096,n[7098]=-1,n[7099]=-1,n[7100]=0,n[7088]=0,n[7095]=-16&d^1431655768,A=4096),f=h+48|0,(l=(a=A+(u=h+47|0)|0)&(o=0-A|0))>>>0<=h>>>0)return T=e,0;if(0|(A=0|n[7087])&&(d=(c=0|n[7085])+l|0)>>>0<=c>>>0|d>>>0>A>>>0)return T=e,0;A:do{if(4&n[7088])t=0,v=143;else{r=0|n[6983];e:do{if(r){for(i=28356;!((d=0|n[i>>2])>>>0<=r>>>0&&(d+(0|n[i+4>>2])|0)>>>0>r>>>0);){if(!(A=0|n[i+8>>2])){v=128;break e}i=A}if((t=a-s&o)>>>0<2147483647)if((0|(A=0|vt(0|t)))==((0|n[i>>2])+(0|n[i+4>>2])|0)){if(-1!=(0|A)){s=t,a=A,v=145;break A}}else i=A,v=136;else t=0}else v=128}while(0);do{if(128==(0|v))if(-1!=(0|(r=0|vt(0)))&&(w=(t=((w=(g=0|n[7096])-1|0)&(t=r)?(w+t&0-g)-t|0:0)+l|0)+(g=0|n[7085])|0,t>>>0>h>>>0&t>>>0<2147483647)){if(0|(d=0|n[7087])&&w>>>0<=g>>>0|w>>>0>d>>>0){t=0;break}if((0|(A=0|vt(0|t)))==(0|r)){s=t,a=r,v=145;break A}i=A,v=136}else t=0}while(0);do{if(136==(0|v)){if(r=0-t|0,!(f>>>0>t>>>0&t>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){t=0;break}s=t,a=i,v=145;break A}if((A=u-t+(A=0|n[7097])&0-A)>>>0>=2147483647){s=t,a=i,v=145;break A}if(-1==(0|vt(0|A))){vt(0|r),t=0;break}s=A+t|0,a=i,v=145;break A}}while(0);n[7088]=4|n[7088],v=143}}while(0);if(143==(0|v)&&l>>>0<2147483647&&!(-1==(0|(M=0|vt(0|l)))|1^(b=(B=(w=0|vt(0))-M|0)>>>0>(h+40|0)>>>0)|M>>>0<w>>>0&-1!=(0|M)&-1!=(0|w)^1)&&(s=b?B:t,a=M,v=145),145==(0|v)){n[7085]=t=(0|n[7085])+s|0,t>>>0>(0|n[7086])>>>0&&(n[7086]=t),u=0|n[6983];A:do{if(u){for(t=28356;;){if((0|a)==((A=0|n[t>>2])+(r=0|n[t+4>>2])|0)){v=154;break}if(!(i=0|n[t+8>>2]))break;t=i}if(!(154!=(0|v)||(k=t+4|0,8&n[t+12>>2]))&&a>>>0>u>>>0&A>>>0<=u>>>0){n[k>>2]=r+s,k=u+(M=7&(M=u+8|0)?0-M&7:0)|0,M=(m=(0|n[6980])+s|0)-M|0,n[6983]=k,n[6980]=M,n[k+4>>2]=1|M,n[u+m+4>>2]=40,n[6984]=n[7099];break}for(a>>>0<(0|n[6981])>>>0&&(n[6981]=a),r=a+s|0,t=28356;;){if((0|n[t>>2])==(0|r)){v=162;break}if(!(A=0|n[t+8>>2]))break;t=A}if(162==(0|v)&&!(8&n[t+12>>2])){n[t>>2]=a,n[(c=t+4|0)>>2]=(0|n[c>>2])+s,l=(c=a+(7&(c=a+8|0)?0-c&7:0)|0)+h|0,f=(t=r+(7&(t=r+8|0)?0-t&7:0)|0)-c-h|0,n[c+4>>2]=3|h;e:do{if((0|u)==(0|t))n[6980]=m=(0|n[6980])+f|0,n[6983]=l,n[l+4>>2]=1|m;else{if((0|n[6982])==(0|t)){n[6979]=m=(0|n[6979])+f|0,n[6982]=l,n[l+4>>2]=1|m,n[l+m>>2]=m;break}if(1==(3&(A=0|n[t+4>>2]))){s=-8&A,i=A>>>3;t:do{if(A>>>0<256){if((0|(r=0|n[t+12>>2]))==(0|(A=0|n[t+8>>2]))){n[6977]=n[6977]&~(1<<i);break}n[A+12>>2]=r,n[r+8>>2]=A;break}a=0|n[t+24>>2],A=0|n[t+12>>2];do{if((0|A)==(0|t)){if(A=0|n[(i=4+(r=t+16|0)|0)>>2])r=i;else if(!(A=0|n[r>>2])){A=0;break}for(;;)if(i=0|n[(o=A+20|0)>>2])A=i,r=o;else{if(!(i=0|n[(o=A+16|0)>>2]))break;A=i,r=o}n[r>>2]=0}else n[12+(m=0|n[t+8>>2])>>2]=A,n[A+8>>2]=m}while(0);if(!a)break;i=28212+((r=0|n[t+28>>2])<<2)|0;do{if((0|n[i>>2])==(0|t)){if(n[i>>2]=A,0|A)break;n[6978]=n[6978]&~(1<<r);break t}if(n[((0|n[(m=a+16|0)>>2])==(0|t)?m:a+20)>>2]=A,!A)break t}while(0);if(n[A+24>>2]=a,0|(i=0|n[(r=t+16|0)>>2])&&(n[A+16>>2]=i,n[i+24>>2]=A),!(r=0|n[r+4>>2]))break;n[A+20>>2]=r,n[r+24>>2]=A}while(0);t=t+s|0,o=s+f|0}else o=f;if(n[(t=t+4|0)>>2]=-2&n[t>>2],n[l+4>>2]=1|o,n[l+o>>2]=o,t=o>>>3,o>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=l,n[t+12>>2]=l,n[l+8>>2]=t,n[l+12>>2]=r;break}t=o>>>8;do{if(t){if(o>>>0>16777215){i=31;break}i=o>>>(7+(i=14-((M=(520192+(m=t<<(k=(t+1048320|0)>>>16&8))|0)>>>16&4)|k|(i=(245760+(m<<=M)|0)>>>16&2))+(m<<i>>>15)|0)|0)&1|i<<1}else i=0}while(0);if(t=28212+(i<<2)|0,n[l+28>>2]=i,n[4+(A=l+16|0)>>2]=0,n[A>>2]=0,!((A=0|n[6978])&(r=1<<i))){n[6978]=A|r,n[t>>2]=l,n[l+24>>2]=t,n[l+12>>2]=l,n[l+8>>2]=l;break}t=0|n[t>>2];t:do{if((-8&n[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|o)){t=A;break t}i<<=1,t=A}n[r>>2]=l,n[l+24>>2]=t,n[l+12>>2]=l,n[l+8>>2]=l;break e}}while(0);n[12+(m=0|n[(k=t+8|0)>>2])>>2]=l,n[k>>2]=l,n[l+8>>2]=m,n[l+12>>2]=t,n[l+24>>2]=0}}while(0);return T=e,0|c+8}for(t=28356;!((A=0|n[t>>2])>>>0<=u>>>0&&(m=A+(0|n[t+4>>2])|0)>>>0>u>>>0);)t=0|n[t+8>>2];t=(A=(A=(o=m+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,k=a+(M=7&(M=a+8|0)?0-M&7:0)|0,M=(r=s+-40|0)-M|0,n[6983]=k,n[6980]=M,n[k+4>>2]=1|M,n[a+r+4>>2]=40,n[6984]=n[7099],n[(r=A+4|0)>>2]=27,n[t>>2]=n[7089],n[t+4>>2]=n[7090],n[t+8>>2]=n[7091],n[t+12>>2]=n[7092],n[7089]=a,n[7090]=s,n[7092]=0,n[7091]=t,t=A+24|0;do{k=t,n[(t=t+4|0)>>2]=7}while((k+8|0)>>>0<m>>>0);if((0|A)!=(0|u)){if(a=A-u|0,n[r>>2]=-2&n[r>>2],n[u+4>>2]=1|a,n[A>>2]=a,t=a>>>3,a>>>0<256){r=27948+(t<<1<<2)|0,(A=0|n[6977])&(t=1<<t)?t=0|n[(A=r+8|0)>>2]:(n[6977]=A|t,t=r,A=r+8|0),n[A>>2]=u,n[t+12>>2]=u,n[u+8>>2]=t,n[u+12>>2]=r;break}if(r=28212+((i=(t=a>>>8)?a>>>0>16777215?31:a>>>(7+(i=14-((M=(520192+(m=t<<(k=(t+1048320|0)>>>16&8))|0)>>>16&4)|k|(i=(245760+(m<<=M)|0)>>>16&2))+(m<<i>>>15)|0)|0)&1|i<<1:0)<<2)|0,n[u+28>>2]=i,n[u+20>>2]=0,n[o>>2]=0,!((t=0|n[6978])&(A=1<<i))){n[6978]=t|A,n[r>>2]=u,n[u+24>>2]=r,n[u+12>>2]=u,n[u+8>>2]=u;break}t=0|n[r>>2];e:do{if((-8&n[t+4>>2])!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1));A=0|n[(r=t+16+(i>>>31<<2)|0)>>2];){if((-8&n[A+4>>2])==(0|a)){t=A;break e}i<<=1,t=A}n[r>>2]=u,n[u+24>>2]=t,n[u+12>>2]=u,n[u+8>>2]=u;break A}}while(0);n[12+(m=0|n[(k=t+8|0)>>2])>>2]=u,n[k>>2]=u,n[u+8>>2]=m,n[u+12>>2]=t,n[u+24>>2]=0}}else!(0|(m=0|n[6981]))|a>>>0<m>>>0&&(n[6981]=a),n[7089]=a,n[7090]=s,n[7092]=0,n[6986]=n[7095],n[6985]=-1,n[6990]=27948,n[6989]=27948,n[6992]=27956,n[6991]=27956,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,n[6998]=27980,n[6997]=27980,n[7e3]=27988,n[6999]=27988,n[7002]=27996,n[7001]=27996,n[7004]=28004,n[7003]=28004,n[7006]=28012,n[7005]=28012,n[7008]=28020,n[7007]=28020,n[7010]=28028,n[7009]=28028,n[7012]=28036,n[7011]=28036,n[7014]=28044,n[7013]=28044,n[7016]=28052,n[7015]=28052,n[7018]=28060,n[7017]=28060,n[7020]=28068,n[7019]=28068,n[7022]=28076,n[7021]=28076,n[7024]=28084,n[7023]=28084,n[7026]=28092,n[7025]=28092,n[7028]=28100,n[7027]=28100,n[7030]=28108,n[7029]=28108,n[7032]=28116,n[7031]=28116,n[7034]=28124,n[7033]=28124,n[7036]=28132,n[7035]=28132,n[7038]=28140,n[7037]=28140,n[7040]=28148,n[7039]=28148,n[7042]=28156,n[7041]=28156,n[7044]=28164,n[7043]=28164,n[7046]=28172,n[7045]=28172,n[7048]=28180,n[7047]=28180,n[7050]=28188,n[7049]=28188,n[7052]=28196,n[7051]=28196,k=a+(M=7&(M=a+8|0)?0-M&7:0)|0,M=(m=s+-40|0)-M|0,n[6983]=k,n[6980]=M,n[k+4>>2]=1|M,n[a+m+4>>2]=40,n[6984]=n[7099]}while(0);if((t=0|n[6980])>>>0>h>>>0)return n[6980]=M=t-h|0,n[6983]=k=(m=0|n[6983])+h|0,n[k+4>>2]=1|M,n[m+4>>2]=3|h,T=e,0|m+8}return n[(m=27904)>>2]=12,T=e,0}function Ke(A){var e=0,t=0,r=0,i=0,o=0,a=0,s=0,f=0;if(A|=0){i=0|n[6981],f=(t=A+-8|0)+(e=-8&(A=0|n[A+-4>>2]))|0;do{if(1&A)s=t,a=t;else{if(!(3&A))return;if(o=(r=0|n[t>>2])+e|0,(a=t+(0-r)|0)>>>0<i>>>0)return;if((0|n[6982])==(0|a)){if(3&~(e=0|n[(A=f+4|0)>>2])){s=a,e=o;break}return n[6979]=o,n[A>>2]=-2&e,n[a+4>>2]=1|o,void(n[a+o>>2]=o)}if(t=r>>>3,r>>>0<256){if((0|(e=0|n[a+12>>2]))==(0|(A=0|n[a+8>>2]))){n[6977]=n[6977]&~(1<<t),s=a,e=o;break}n[A+12>>2]=e,n[e+8>>2]=A,s=a,e=o;break}i=0|n[a+24>>2],A=0|n[a+12>>2];do{if((0|A)==(0|a)){if(A=0|n[(t=4+(e=a+16|0)|0)>>2])e=t;else if(!(A=0|n[e>>2])){A=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0}else n[12+(s=0|n[a+8>>2])>>2]=A,n[A+8>>2]=s}while(0);if(i){if((0|n[(t=28212+((e=0|n[a+28>>2])<<2)|0)>>2])==(0|a)){if(n[t>>2]=A,!A){n[6978]=n[6978]&~(1<<e),s=a,e=o;break}}else if(n[((0|n[(s=i+16|0)>>2])==(0|a)?s:i+20)>>2]=A,!A){s=a,e=o;break}n[A+24>>2]=i,0|(t=0|n[(e=a+16|0)>>2])&&(n[A+16>>2]=t,n[t+24>>2]=A),(e=0|n[e+4>>2])?(n[A+20>>2]=e,n[e+24>>2]=A,s=a,e=o):(s=a,e=o)}else s=a,e=o}}while(0);if(!(a>>>0>=f>>>0)&&1&(r=0|n[(A=f+4|0)>>2])){if(2&r)n[A>>2]=-2&r,n[s+4>>2]=1|e,n[a+e>>2]=e,i=e;else{if((0|n[6983])==(0|f)){if(n[6980]=f=(0|n[6980])+e|0,n[6983]=s,n[s+4>>2]=1|f,(0|s)!=(0|n[6982]))return;return n[6982]=0,void(n[6979]=0)}if((0|n[6982])==(0|f))return n[6979]=f=(0|n[6979])+e|0,n[6982]=a,n[s+4>>2]=1|f,void(n[a+f>>2]=f);i=(-8&r)+e|0,t=r>>>3;do{if(r>>>0<256){if((0|(A=0|n[f+12>>2]))==(0|(e=0|n[f+8>>2]))){n[6977]=n[6977]&~(1<<t);break}n[e+12>>2]=A,n[A+8>>2]=e;break}o=0|n[f+24>>2],A=0|n[f+12>>2];do{if((0|A)==(0|f)){if(A=0|n[(t=4+(e=f+16|0)|0)>>2])e=t;else if(!(A=0|n[e>>2])){t=0;break}for(;;)if(t=0|n[(r=A+20|0)>>2])A=t,e=r;else{if(!(t=0|n[(r=A+16|0)>>2]))break;A=t,e=r}n[e>>2]=0,t=A}else n[12+(t=0|n[f+8>>2])>>2]=A,n[A+8>>2]=t,t=A}while(0);if(0|o){if((0|n[(e=28212+((A=0|n[f+28>>2])<<2)|0)>>2])==(0|f)){if(n[e>>2]=t,!t){n[6978]=n[6978]&~(1<<A);break}}else if(n[((0|n[(r=o+16|0)>>2])==(0|f)?r:o+20)>>2]=t,!t)break;n[t+24>>2]=o,0|(e=0|n[(A=f+16|0)>>2])&&(n[t+16>>2]=e,n[e+24>>2]=t),0|(A=0|n[A+4>>2])&&(n[t+20>>2]=A,n[A+24>>2]=t)}}while(0);if(n[s+4>>2]=1|i,n[a+i>>2]=i,(0|s)==(0|n[6982]))return void(n[6979]=i)}if(A=i>>>3,i>>>0<256)return t=27948+(A<<1<<2)|0,(e=0|n[6977])&(A=1<<A)?A=0|n[(e=t+8|0)>>2]:(n[6977]=e|A,A=t,e=t+8|0),n[e>>2]=s,n[A+12>>2]=s,n[s+8>>2]=A,void(n[s+12>>2]=t);A=28212+((r=(A=i>>>8)?i>>>0>16777215?31:i>>>(7+(r=14-((o=(520192+(f=A<<(a=(A+1048320|0)>>>16&8))|0)>>>16&4)|a|(r=(245760+(f<<=o)|0)>>>16&2))+(f<<r>>>15)|0)|0)&1|r<<1:0)<<2)|0,n[s+28>>2]=r,n[s+20>>2]=0,n[s+16>>2]=0,e=0|n[6978],t=1<<r;A:do{if(e&t){A=0|n[A>>2];e:do{if((-8&n[A+4>>2])!=(0|i)){for(r=i<<(31==(0|r)?0:25-(r>>>1));e=0|n[(t=A+16+(r>>>31<<2)|0)>>2];){if((-8&n[e+4>>2])==(0|i)){A=e;break e}r<<=1,A=e}n[t>>2]=s,n[s+24>>2]=A,n[s+12>>2]=s,n[s+8>>2]=s;break A}}while(0);n[12+(f=0|n[(a=A+8|0)>>2])>>2]=s,n[a>>2]=s,n[s+8>>2]=f,n[s+12>>2]=A,n[s+24>>2]=0}else n[6978]=e|t,n[A>>2]=s,n[s+24>>2]=A,n[s+12>>2]=s,n[s+8>>2]=s}while(0);if(n[6985]=f=(0|n[6985])-1|0,!(0|f)){for(A=28364;A=0|n[A>>2];)A=A+8|0;n[6985]=-1}}}}function qe(A,e){e|=0;var t=0;return(A|=0)?(t=0|M(e,A),(e|A)>>>0>65535&&(t=((t>>>0)/(A>>>0)|0)==(0|e)?t:-1)):t=0,(A=0|Xe(t))&&3&n[A+-4>>2]?(gt(0|A,0,0|t),0|A):0|A}function $e(A,e,t,r){return 0|(D((e|=0)+(r|=0)+((t=(A|=0)+(t|=0)>>>0)>>>0<A>>>0|0)>>>0|0),t)}function At(A,e,t,r){return 0|(D(0|(r=(e|=0)-(r|=0)-((t|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-t>>>0)}function et(A){return 0|((A|=0)?31-(0|Q(A^A-1)):32)}function tt(A,e,t,r,i){i|=0;var o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0;if(l=A|=0,a=t|=0,s=h=r|=0,!(u=f=e|=0))return o=!!(0|i),s?o?(n[i>>2]=0|A,n[i+4>>2]=0,i=0,0|(D(0|(h=0)),i)):(i=0,0|(D(0|(h=0)),i)):(o&&(n[i>>2]=(l>>>0)%(a>>>0),n[i+4>>2]=0),i=(l>>>0)/(a>>>0)>>>0,0|(D(0|(h=0)),i));o=!(0|s);do{if(a){if(!o){if((o=(0|Q(0|s))-(0|Q(0|u))|0)>>>0<=31){a=c=o+1|0,A=l>>>(c>>>0)&(e=o-31>>31)|u<<(s=31-o|0),e&=u>>>(c>>>0),o=0,s=l<<s;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|f,i=0,0|(D(0|(h=0)),i)):(i=0,0|(D(0|(h=0)),i))}if((o=a-1|0)&a){a=s=33+(0|Q(0|a))-(0|Q(0|u))|0,A=(c=32-s|0)-1>>31&u>>>((d=s-32|0)>>>0)|(u<<c|l>>>(s>>>0))&(e=d>>31),e&=u>>>(s>>>0),o=l<<(g=64-s|0)&(f=c>>31),s=(u<<g|l>>>(d>>>0))&f|l<<c&s-33>>31;break}return 0|i&&(n[i>>2]=o&l,n[i+4>>2]=0),1==(0|a)?(g=0|A,0|(D(0|(d=0|f)),g)):(d=u>>>((g=0|et(0|a))>>>0)|0,g=u<<32-g|l>>>(g>>>0),0|(D(0|d),g))}if(o)return 0|i&&(n[i>>2]=(u>>>0)%(a>>>0),n[i+4>>2]=0),g=(u>>>0)/(a>>>0)>>>0,0|(D(0|(d=0)),g);if(!l)return 0|i&&(n[i>>2]=0,n[i+4>>2]=(u>>>0)%(s>>>0)),g=(u>>>0)/(s>>>0)>>>0,0|(D(0|(d=0)),g);if(!((o=s-1|0)&s))return 0|i&&(n[i>>2]=0|A,n[i+4>>2]=o&u),d=0,g=u>>>((0|et(0|s))>>>0),0|(D(0|d),g);if((o=(0|Q(0|s))-(0|Q(0|u))|0)>>>0<=30){a=e=o+1|0,A=u<<(s=31-o|0)|l>>>(e>>>0),e=u>>>(e>>>0),o=0,s=l<<s;break}return i?(n[i>>2]=0|A,n[i+4>>2]=0|f,g=0,0|(D(0|(d=0)),g)):(g=0,0|(D(0|(d=0)),g))}while(0);if(a){u=0|$e(0|(c=0|t),0|(l=0|h),-1,-1),t=0|p(),f=s,s=0;do{r=f,f=o>>>31|f<<1,o=s|o<<1,At(0|u,0|t,0|(r=A<<1|r>>>31),0|(h=A>>>31|e<<1)),s=1&(d=(g=0|p())>>31|((0|g)<0?-1:0)<<1),A=0|At(0|r,0|h,d&c,(((0|g)<0?-1:0)>>31|((0|g)<0?-1:0)<<1)&l),e=0|p(),a=a-1|0}while(0|a);u=f,f=0}else u=s,f=0,s=0;return a=0,0|i&&(n[i>>2]=A,n[i+4>>2]=e),g=o<<1&-2|s,0|(D(0|(d=(0|o)>>>31|(u|a)<<1|f)),g)}function rt(A,e,t,r){var n,i,o,a,s;return t|=0,i=(r|=0)>>31|((0|r)<0?-1:0)<<1,n=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,o=0|At((s=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(a=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|s,0|a),A=i^s,e=n^a,0|At(tt(o,0|p(),0|At(i^t,n^r,0|i,0|n),0|p(),0)^A,p()^e,0|A,0|e)}function nt(A,e,t,r){var n,i;return e|=0,r|=0,t=0|function(A,e){var t,r,n,i=0;return A=((t=0|M(i=65535&(e|=0),n=65535&(A|=0)))>>>16)+(0|M(i,r=A>>>16))|0,e=0|M(i=e>>>16,n),0|(D((A>>>16)+(0|M(i,r))+(((65535&A)+e|0)>>>16)|0),A+e<<16|65535&t)}(n=A|=0,i=t|=0),A=0|p(),0|(D((0|M(e,i))+(0|M(r,n))+A|0),t)}function it(A,e,t,r){var i,o,a,s,f,u;return t|=0,i=T,T=T+16|0,s=0|i,u=(r|=0)>>31|((0|r)<0?-1:0)<<1,f=((0|r)<0?-1:0)>>31|((0|r)<0?-1:0)<<1,tt(A=0|At((a=(e|=0)>>31|((0|e)<0?-1:0)<<1)^(A|=0),(o=((0|e)<0?-1:0)>>31|((0|e)<0?-1:0)<<1)^e,0|a,0|o),e=0|p(),0|At(u^t,f^r,0|u,0|f),0|p(),s),r=0|At(n[s>>2]^a,n[s+4>>2]^o,0|a,0|o),t=0|p(),T=i,0|(D(0|t),r)}function ot(A,e,t,r){var i,o;return o=T,T=T+16|0,tt(A|=0,e|=0,t|=0,r|=0,i=0|o),T=o,0|(D(0|n[i+4>>2]),n[i>>2])}function at(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(D(e>>t),A>>>t|(e&(1<<t)-1)<<32-t):(D(0|((0|e)<0?-1:0)),e>>t-32)}function st(A,e,t){return A|=0,e|=0,(0|(t|=0))<32?(D(e>>>t|0),A>>>t|(e&(1<<t)-1)<<32-t):(D(0),e>>>t-32|0)}function ft(A,e,t){return A|=0,(0|(t|=0))<32?(D((e|=0)<<t|(A&(1<<t)-1<<32-t)>>>32-t),A<<t):(D(A<<t-32),0)}function ut(A,e){return A|=0,32==(0|(e=0|Q(e|=0)))&&(e=e+(0|Q(A))|0),D(0),0|e}function lt(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+m(+A,+e)}function ct(A,e){return e=+e,(A=+A)!=A?+e:e!=e?+A:+k(+A,+e)}function ht(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function dt(A,e,t){A|=0,e|=0;var i,o,a=0;if((0|(t|=0))>=8192)return P(0|A,0|e,0|t),0|A;if(o=0|A,i=A+t|0,(3&A)==(3&e)){for(;3&A;){if(!t)return 0|o;r[0|A]=0|r[0|e],A=A+1|0,e=e+1|0,t=t-1|0}for(a=(t=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=n[e>>2],n[A+4>>2]=n[e+4>>2],n[A+8>>2]=n[e+8>>2],n[A+12>>2]=n[e+12>>2],n[A+16>>2]=n[e+16>>2],n[A+20>>2]=n[e+20>>2],n[A+24>>2]=n[e+24>>2],n[A+28>>2]=n[e+28>>2],n[A+32>>2]=n[e+32>>2],n[A+36>>2]=n[e+36>>2],n[A+40>>2]=n[e+40>>2],n[A+44>>2]=n[e+44>>2],n[A+48>>2]=n[e+48>>2],n[A+52>>2]=n[e+52>>2],n[A+56>>2]=n[e+56>>2],n[A+60>>2]=n[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|t);)n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}else for(t=i-4|0;(0|A)<(0|t);)r[0|A]=0|r[0|e],r[A+1|0]=0|r[e+1|0],r[A+2|0]=0|r[e+2|0],r[A+3|0]=0|r[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)r[0|A]=0|r[0|e],A=A+1|0,e=e+1|0;return 0|o}function gt(A,e,t){e|=0;var i,o=0,a=0,s=0;if(i=(A|=0)+(t|=0)|0,e&=255,(0|t)>=67){for(;3&A;)r[0|A]=e,A=A+1|0;for(s=e|e<<8|e<<16|e<<24,a=(o=-4&i)-64|0;(0|A)<=(0|a);)n[A>>2]=s,n[A+4>>2]=s,n[A+8>>2]=s,n[A+12>>2]=s,n[A+16>>2]=s,n[A+20>>2]=s,n[A+24>>2]=s,n[A+28>>2]=s,n[A+32>>2]=s,n[A+36>>2]=s,n[A+40>>2]=s,n[A+44>>2]=s,n[A+48>>2]=s,n[A+52>>2]=s,n[A+56>>2]=s,n[A+60>>2]=s,A=A+64|0;for(;(0|A)<(0|o);)n[A>>2]=s,A=A+4|0}for(;(0|A)<(0|i);)r[0|A]=e,A=A+1|0;return i-t|0}function wt(A){return(A=+A)>=0?+s(A+.5):+b(A-.5)}function vt(A){var e,t,r;return A|=0,r=0|y(),(0|A)>0&(0|(e=(t=0|n[a>>2])+A|0))<(0|t)|(0|e)<0?(F(0|e),C(12),-1):(0|e)>(0|r)&&!(0|I(0|e))?(C(12),-1):(n[a>>2]=e,0|t)}return{___divdi3:rt,___muldi3:nt,___remdi3:it,___uremdi3:ot,_areNeighborCells:function(A,e,t,r,i){i|=0;var o,a,s,f=0,u=0,l=0,c=0;if(s=T,T=T+64|0,a=s,o=s+56|0,!(!0&134217728==(2013265920&(e|=0))&!0&134217728==(2013265920&(r|=0))))return T=s,5;if((0|(A|=0))==(0|(t|=0))&(0|e)==(0|r))return n[i>>2]=0,T=s,0;if(u=0|st(0|A,0|e,52),p(),u&=15,c=0|st(0|t,0|r,52),p(),(0|u)!=(15&c))return T=s,12;if(f=u+-1|0,u>>>0>1){WA(A,e,f,a),WA(t,r,f,o),l=0|n[(c=a)>>2],c=0|n[c+4>>2];A:do{if((0|l)==(0|n[o>>2])&&(0|c)==(0|n[o+4>>2])){f=0|st(0|A,0|e,0|(u=3*(15^u)|0)),p(),f&=7,u=0|st(0|t,0|r,0|u),p(),u&=7;do{if(!(0|f)|!(0|u))n[i>>2]=1,f=0;else if(7==(0|f))f=5;else{if(1==(0|f)|1==(0|u)&&0|VA(l,c)){f=5;break}if((0|n[15536+(f<<2)>>2])!=(0|u)&&(0|n[15568+(f<<2)>>2])!=(0|u))break A;n[i>>2]=1,f=0}}while(0);return T=s,0|f}}while(0)}u=(f=a)+56|0;do{n[f>>2]=0,f=f+4|0}while((0|f)<(0|u));return L(A,e,1,a),f=(0|n[(e=a)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+8|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+16|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+24|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+32|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)||(0|n[(e=a+40|0)>>2])==(0|t)&&(0|n[e+4>>2])==(0|r)?1:1&((0|n[(f=a+48|0)>>2])==(0|t)?(0|n[f+4>>2])==(0|r):0),n[i>>2]=f,T=s,0},_bitshift64Ashr:at,_bitshift64Lshr:st,_bitshift64Shl:ft,_calloc:qe,_cellAreaKm2:function(A,e,t){return 0|(A=0|we(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475),0|A},_cellAreaM2:function(A,e,t){return 0|(A=0|we(A|=0,e|=0,t|=0))||(i[t>>3]=6371.007180918475*+i[t>>3]*6371.007180918475*1e3*1e3),0|A},_cellAreaRads2:we,_cellToBoundary:ne,_cellToCenterChild:NA,_cellToChildPos:function(A,e,t,r){t|=0,r|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0;if(i=T,T=T+16|0,B=i,b=0|st(0|(A|=0),0|(e|=0),52),p(),t>>>0>15)return T=i,4;if((0|(b&=15))<(0|t))return T=i,12;if((0|b)!=(0|t))if(a=0|ft(0|t,0,52),a|=A,f=p()|-15728641&e,(0|b)>(0|t)){u=t;do{v=0|ft(7,0,3*(14-u|0)|0),u=u+1|0,a|=v,f=p()|f}while((0|u)<(0|b));v=a}else v=a;else v=A,f=e;w=0|st(0|v,0|f,45),p();A:do{if(0|_(127&w)){if(u=0|st(0|v,0|f,52),p(),0|(u&=15))for(a=1;;){if(!(!((w=0|ft(7,0,3*(15-a|0)|0))&v)&!(p()&f))){l=33;break A}if(!(a>>>0<u>>>0))break;a=a+1|0}if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|b)>(0|t)){for(w=-15728641&e,g=b;;){if(d=g,(g=g+-1|0)>>>0>15|(0|b)<(0|g)){l=19;break}if((0|b)!=(0|g))if(a=0|ft(0|g,0,52),a|=A,u=p()|w,(0|b)<(0|d))h=a;else{l=g;do{h=0|ft(7,0,3*(14-l|0)|0),l=l+1|0,a|=h,u=p()|u}while((0|l)<(0|b));h=a}else h=A,u=e;if(c=0|st(0|h,0|u,45),p(),0|_(127&c)){c=0|st(0|h,0|u,52),p(),c&=15;e:do{if(c)for(l=1;;){if(a=0|st(0|h,0|u,3*(15-l|0)|0),p(),0|(a&=7))break e;if(!(l>>>0<c>>>0)){a=0;break}l=l+1|0}else a=0}while(0);a=1&!(0|a)}else a=0;if(u=0|st(0|A,0|e,3*(15-d|0)|0),p(),7==(0|(u&=7))){o=5,l=42;break}if(1==(0|u)&(a=!!(0|a))){o=5,l=42;break}if(0|(h=u+((!!(0|u)&a)<<31>>31)|0)&&(l=0|De(7,0,l=b-d|0,((0|l)<0)<<31>>31),c=0|p(),a?(a=0|$e(0|(a=0|nt(0|l,0|c,5,0)),0|p(),-5,-1),a=0|$e(0|(a=0|rt(0|a,0|p(),6,0)),0|p(),1,0),u=0|p()):(a=l,u=c),d=0|$e(0|a,0|u,0|(d=0|nt(0|l,0|c,0|(d=h+-1|0),((0|d)<0)<<31>>31)),0|p()),c=0|$e(0|d,0|(h=0|p()),0|n[(c=r)>>2],0|n[c+4>>2]),h=0|p(),n[(d=r)>>2]=c,n[d+4>>2]=h),(0|g)<=(0|t)){l=37;break}}if(19==(0|l))E(27795,27122,1276,27158);else{if(37==(0|l)){o=0|n[(s=r)+4>>2],s=0|n[s>>2];break}if(42==(0|l))return T=i,0|o}}else o=0,s=0}else l=33}while(0);A:do{if(33==(0|l)){if(n[(w=r)>>2]=0,n[w+4>>2]=0,(0|b)>(0|t)){for(a=b;;){if(o=0|st(0|A,0|e,3*(15-a|0)|0),p(),7==(0|(o&=7))){o=5;break}if(o=0|nt(0|(s=0|De(7,0,s=b-a|0,((0|s)<0)<<31>>31)),0|p(),0|o,0),s=0|p(),s=0|$e(0|n[(w=r)>>2],0|n[w+4>>2],0|o,0|s),o=0|p(),n[(w=r)>>2]=s,n[w+4>>2]=o,(0|(a=a+-1|0))<=(0|t))break A}return T=i,0|o}o=0,s=0}}while(0);return 0|HA(v,f,b,B)&&E(27795,27122,1236,27173),((0|o)>-1|-1==(0|o)&s>>>0>4294967295)&((0|(B=0|n[(b=B)+4>>2]))>(0|o)|((0|B)==(0|o)?(0|n[b>>2])>>>0>s>>>0:0))?(T=i,0|(b=0)):(E(27795,27122,1316,27158),0)},_cellToChildren:function(A,e,t,r){r|=0;var i,o,a=0,s=0;if(o=T,T=T+16|0,oe(i=o,A|=0,e|=0,t|=0),!(0|(A=0|n[(e=i)>>2]))&!(0|(e=0|n[e+4>>2])))return T=o,0;a=0,t=0;do{n[(s=r+(a<<3)|0)>>2]=A,n[s+4>>2]=e,a=0|$e(0|a,0|t,1,0),t=0|p(),se(i),A=0|n[(s=i)>>2],e=0|n[s+4>>2]}while(!(!(0|A)&!(0|e)));return T=o,0},_cellToChildrenSize:HA,_cellToLatLng:re,_cellToLocalIj:function(A,e,t,r,n,i){var o,a;return A|=0,i|=0,a=T,T=T+16|0,o=a,(n|=0)?A=15:(A=0|me(A,e|=0,t|=0,r|=0,o))||(EA(o,i),A=0),T=a,0|A},_cellToParent:WA,_cellToVertex:Ye,_cellToVertexes:function(A,e,t){t|=0;var r,i=0,o=0;return o=!(0|VA(A|=0,e|=0)),r=!(0|(i=0|Ye(A,e,0,t))),o?r?0|(i=0|Ye(A,e,1,t+8|0))||0|(i=0|Ye(A,e,2,t+16|0))||0|(i=0|Ye(A,e,3,t+24|0))||(i=0|Ye(A,e,4,t+32|0))?0|(o=i):0|Ye(A,e,5,t+40|0):0|(o=i):r?0|(i=0|Ye(A,e,1,t+8|0))||0|(i=0|Ye(A,e,2,t+16|0))||0|(i=0|Ye(A,e,3,t+24|0))||0|(i=0|Ye(A,e,4,t+32|0))?0|(o=i):(n[(o=t+40|0)>>2]=0,n[o+4>>2]=0,0|(o=0)):0|(o=i)},_cellsToDirectedEdge:function(A,e,t,r,i){return i|=0,7==(0|(t=0|O(A|=0,e|=0,t|=0,r|=0)))?0|(i=11):(r=0|ft(0|t,0,56),e=-2130706433&e|p()|268435456,n[i>>2]=A|r,n[i+4>>2]=e,0|(i=0))},_cellsToLinkedMultiPolygon:function(A,e,t){t|=0;var r,i,o,a=0;if(o=T,T=T+32|0,r=o,A=0|function(A,e,t){A|=0,t|=0;var r,i,o=0,a=0,s=0,f=0,u=0,l=0;if(i=T,T=T+176|0,r=i,(0|(e|=0))<1)return _e(t,0,0),T=i,0;for(u=0|st(0|n[(u=A)>>2],0|n[u+4>>2],52),p(),_e(t,(0|e)>6?e:6,15&u),u=0;!(0|(o=0|ne(0|n[(o=A+(u<<3)|0)>>2],0|n[o+4>>2],r)));){if((0|(o=0|n[r>>2]))>0){f=0;do{s=r+8+(f<<4)|0,(a=0|Ne(t,o=r+8+((0|(f=f+1|0))%(0|o)<<4)|0,s))?Ve(t,a):je(t,s,o),o=0|n[r>>2]}while((0|f)<(0|o))}if((0|(u=u+1|0))>=(0|e)){o=0,l=13;break}}return 13==(0|l)?(T=i,0|o):(We(t),T=i,0|(l=o))}(A|=0,e|=0,i=o+16|0),0|A)return T=o,0|A;if(n[t>>2]=0,n[t+4>>2]=0,n[t+8>>2]=0,0|(A=0|He(i)))do{e=0|ve(t);do{Be(e,A),n[r>>2]=n[(a=A+16|0)>>2],n[r+4>>2]=n[a+4>>2],n[r+8>>2]=n[a+8>>2],n[r+12>>2]=n[a+12>>2],Ve(i,A),A=0|Ze(i,r)}while(0|A);A=0|He(i)}while(0|A);return We(i),(A=0|Me(t))?(be(t),T=o,0|(a=A)):(T=o,0|(a=0))},_childPosToCell:function(A,e,t,r,i,o){A|=0,e|=0,o|=0;var a,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0;if(a=T,T=T+16|0,s=a,(i|=0)>>>0>15)return T=a,4;if(f=0|st(0|(t|=0),0|(r|=0),52),p(),(0|(f&=15))>(0|i))return T=a,12;if(0|HA(t,r,i,s)&&E(27795,27122,1236,27173),!(((0|e)>-1|-1==(0|e)&A>>>0>4294967295)&((0|(l=0|n[(c=s)+4>>2]))>(0|e)|((0|l)==(0|e)?(0|n[c>>2])>>>0>A>>>0:0))))return T=a,2;c=i-f|0,i=0|ft(0|i,0,52),u=p()|-15728641&r,n[(l=o)>>2]=i|t,n[l+4>>2]=u,l=0|st(0|t,0|r,45),p();A:do{if(0|_(127&l)){if(0|f)for(s=1;;){if(!(!((l=0|ft(7,0,3*(15-s|0)|0))&t)&!(p()&r)))break A;if(!(s>>>0<f>>>0))break;s=s+1|0}if((0|c)<1)return T=a,0;for(l=15^f,r=-1,u=1,s=1;;){f=0|De(7,0,f=c-u|0,((0|f)<0)<<31>>31),t=0|p();do{if(s){if(s=0|rt(0|(s=0|$e(0|(s=0|nt(0|f,0|t,5,0)),0|p(),-5,-1)),0|p(),6,0),(0|e)>(0|(i=0|p()))|(0|e)==(0|i)&A>>>0>s>>>0){e=0|At(0|(e=0|$e(0|A,0|e,-1,-1)),0|p(),0|s,0|i),s=0|p(),g=0|n[(h=o)>>2],h=0|n[h+4>>2],d=0|ft(7,0,0|(w=3*(l+r|0)|0)),h&=~p(),w=0|ft(0|(i=0|$e(0|(r=0|rt(0|e,0|s,0|f,0|t)),0|(A=0|p()),2,0)),0|p(),0|w),h=p()|h,n[(i=o)>>2]=w|g&~d,n[i+4>>2]=h,A=0|At(0|e,0|s,0|(A=0|nt(0|r,0|A,0|f,0|t)),0|p()),s=0,e=0|p();break}d=0|n[(w=o)>>2],w=0|n[w+4>>2],g=0|ft(7,0,3*(l+r|0)|0),w&=~p(),n[(s=o)>>2]=d&~g,n[s+4>>2]=w,s=1;break}i=0|n[(d=o)>>2],d=0|n[d+4>>2],h=0|ft(7,0,0|(r=3*(l+r|0)|0)),d&=~p(),r=0|ft(0|(w=0|rt(0|A,0|e,0|f,0|t)),0|(s=0|p()),0|r),d=p()|d,n[(g=o)>>2]=r|i&~h,n[g+4>>2]=d,A=0|At(0|A,0|e,0|(s=0|nt(0|w,0|s,0|f,0|t)),0|p()),s=0,e=0|p()}while(0);if(!((0|c)>(0|u))){e=0;break}r=~u,u=u+1|0}return T=a,0|e}}while(0);if((0|c)<1)return T=a,0;for(i=15^f,s=1;;){if(g=0|De(7,0,g=c-s|0,((0|g)<0)<<31>>31),w=0|p(),t=0|n[(u=o)>>2],u=0|n[u+4>>2],r=0|ft(7,0,0|(f=3*(i-s|0)|0)),u&=~p(),f=0|ft(0|(h=0|rt(0|A,0|e,0|g,0|w)),0|(d=0|p()),0|f),u=p()|u,n[(l=o)>>2]=f|t&~r,n[l+4>>2]=u,A=0|At(0|A,0|e,0|(w=0|nt(0|h,0|d,0|g,0|w)),0|p()),e=0|p(),(0|c)<=(0|s)){e=0;break}s=s+1|0}return T=a,0|e},_compactCells:function(A,e,t,r){e|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,C=0,y=0,P=0,I=0,F=0,T=0;if(!(0|(t|=0))&!(0|(r|=0)))return 0;if(a=0|n[(o=A|=0)>>2],!0&!(15728640&(o=0|n[o+4>>2]))){if(!((0|r)>0|!(0|r)&t>>>0>0))return 0;if(n[(T=e)>>2]=a,n[T+4>>2]=o,1==(0|t)&!(0|r))return 0;o=1,a=0;do{F=0|n[4+(I=A+(o<<3)|0)>>2],n[(T=e+(o<<3)|0)>>2]=n[I>>2],n[T+4>>2]=F,o=0|$e(0|o,0|a,1,0),a=0|p()}while((0|a)<(0|r)|(0|a)==(0|r)&o>>>0<t>>>0);return 0}if(!(F=0|Xe(i=t<<3)))return 13;if(dt(0|F,0|A,0|i),!(I=0|qe(t,8)))return Ke(F),13;A:for(;;){y=0|st(0|(l=0|n[(o=F)>>2]),0|(o=0|n[o+4>>2]),52),p(),P=(y&=15)-1|0,C=!!(0|y),D=(0|r)>0|!(0|r)&t>>>0>0;e:do{if(C&D){if(M=0|ft(0|P,0,52),k=0|p(),P>>>0>15){if(!(!(0|l)&!(0|o))){T=16;break A}for(a=0,A=0;;){if(a=0|$e(0|a,0|A,1,0),!((0|(A=0|p()))<(0|r)|(0|A)==(0|r)&a>>>0<t>>>0))break e;if(!(!(0|(Q=0|n[(s=F+(a<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2])))){o=s,T=16;break A}}}for(f=l,A=o,a=0,s=0;;){if(!(!(0|f)&!(0|A))){if(!(!0&!(117440512&A))){T=21;break A}if(c=0|st(0|f,0|A,52),p(),(0|(c&=15))<(0|P)){o=12,T=27;break A}if((0|c)!=(0|P)&&(f|=M,A=-15728641&A|k,c>>>0>=y>>>0)){u=P;do{Q=0|ft(7,0,3*(14-u|0)|0),u=u+1|0,f|=Q,A=p()|A}while(u>>>0<c>>>0)}if(d=0|ot(0|f,0|A,0|t,0|r),g=0|p(),!(!(0|(h=0|n[(c=u=I+(d<<3)|0)>>2]))&!(0|(c=0|n[c+4>>2])))){B=0,b=0;do{if((0|B)>(0|r)|(0|B)==(0|r)&b>>>0>t>>>0){T=31;break A}if((0|h)==(0|f)&(-117440513&c)==(0|A)){w=0|st(0|h,0|c,56),p(),v=1+(w&=7)|0,Q=0|st(0|h,0|c,45),p();t:do{if(0|_(127&Q)){if(h=0|st(0|h,0|c,52),p(),!(h&=15)){c=6;break}for(c=1;;){if(!(!((Q=0|ft(7,0,3*(15-c|0)|0))&f)&!(p()&A))){c=7;break t}if(!(c>>>0<h>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((w+2|0)>>>0>c>>>0){T=41;break A}Q=0|ft(0|v,0,56),A=p()|-117440513&A,n[(m=u)>>2]=0,n[m+4>>2]=0,f|=Q}else d=0|it(0|(d=0|$e(0|d,0|g,1,0)),0|p(),0|t,0|r),g=0|p();b=0|$e(0|b,0|B,1,0),B=0|p(),h=0|n[(c=u=I+(d<<3)|0)>>2],c=0|n[c+4>>2]}while(!(!(0|h)&!(0|c)))}n[(Q=u)>>2]=f,n[Q+4>>2]=A}if(a=0|$e(0|a,0|s,1,0),!((0|(s=0|p()))<(0|r)|(0|s)==(0|r)&a>>>0<t>>>0))break e;f=0|n[(A=F+(a<<3)|0)>>2],A=0|n[A+4>>2]}}}while(0);if(Q=0|$e(0|t,0|r,5,0),(m=0|p())>>>0<0|!(0|m)&Q>>>0<11){T=85;break}if(Q=0|rt(0|t,0|r,6,0),p(),!(Q=0|qe(Q,8))){T=48;break}do{if(D){for(v=0,A=0,w=0,B=0;;){if(!(0|(a=0|n[(s=c=I+(v<<3)|0)>>2]))&!(0|(s=0|n[s+4>>2])))m=w;else{h=0|st(0|a,0|s,56),p(),f=1+(h&=7)|0,d=-117440513&s,m=0|st(0|a,0|s,45),p();e:do{if(0|_(127&m)){if(g=0|st(0|a,0|s,52),p(),0|(g&=15))for(u=1;;){if(!(!(a&(m=0|ft(7,0,3*(15-u|0)|0)))&!(d&p())))break e;if(!(u>>>0<g>>>0))break;u=u+1|0}a|=s=0|ft(0|f,0,56),s=p()|d,n[(f=c)>>2]=a,n[f+4>>2]=s,f=h+2|0}}while(0);7==(0|f)?(n[(m=Q+(A<<3)|0)>>2]=a,n[m+4>>2]=-117440513&s,A=0|$e(0|A,0|w,1,0),m=0|p()):m=w}if(v=0|$e(0|v,0|B,1,0),!((0|(B=0|p()))<(0|r)|(0|B)==(0|r)&v>>>0<t>>>0))break;w=m}if(D){if(b=P>>>0>15,M=0|ft(0|P,0,52),k=0|p(),!C){for(a=0,u=0,f=0,s=0;!(0|l)&!(0|o)||(n[(P=e+(a<<3)|0)>>2]=l,n[P+4>>2]=o,a=0|$e(0|a,0|u,1,0),u=0|p()),f=0|$e(0|f,0|s,1,0),(0|(s=0|p()))<(0|r)|(0|s)==(0|r)&f>>>0<t>>>0;)l=0|n[(o=F+(f<<3)|0)>>2],o=0|n[o+4>>2];o=m;break}for(a=0,u=0,s=0,f=0;;){do{if(!(!(0|l)&!(0|o))){if(g=0|st(0|l,0|o,52),p(),b|(0|(g&=15))<(0|P)){T=80;break A}if((0|g)!=(0|P)){if(c=l|M,h=-15728641&o|k,g>>>0>=y>>>0){d=P;do{C=0|ft(7,0,3*(14-d|0)|0),d=d+1|0,c|=C,h=p()|h}while(d>>>0<g>>>0)}}else c=l,h=o;w=0|ot(0|c,0|h,0|t,0|r),d=0,g=0,B=0|p();do{if((0|d)>(0|r)|(0|d)==(0|r)&g>>>0>t>>>0){T=81;break A}if((-117440513&(v=0|n[4+(C=I+(w<<3)|0)>>2]))==(0|h)&&(0|n[C>>2])==(0|c)){T=65;break}w=0|it(0|(C=0|$e(0|w,0|B,1,0)),0|p(),0|t,0|r),B=0|p(),g=0|$e(0|g,0|d,1,0),d=0|p(),C=I+(w<<3)|0}while((0|n[C>>2])!=(0|c)||(0|n[C+4>>2])!=(0|h));if(65==(0|T)&&(T=0,!0&100663296==(117440512&v)))break;n[(C=e+(a<<3)|0)>>2]=l,n[C+4>>2]=o,a=0|$e(0|a,0|u,1,0),u=0|p()}}while(0);if(s=0|$e(0|s,0|f,1,0),!((0|(f=0|p()))<(0|r)|(0|f)==(0|r)&s>>>0<t>>>0))break;l=0|n[(o=F+(s<<3)|0)>>2],o=0|n[o+4>>2]}o=m}else a=0,o=m}else a=0,A=0,o=0}while(0);if(gt(0|I,0,0|i),dt(0|F,0|Q,A<<3),Ke(Q),!(0|A)&!(0|o)){T=89;break}e=e+(a<<3)|0,r=o,t=A}if(16==(0|T))!0&!(117440512&o)?(o=4,T=27):T=21;else if(31==(0|T))E(27795,27122,529,27132);else{if(41==(0|T))return Ke(F),Ke(I),10;if(48==(0|T))return Ke(F),Ke(I),13;80==(0|T)?E(27795,27122,620,27132):81==(0|T)?E(27795,27122,632,27132):85==(0|T)&&(dt(0|e,0|F,t<<3),T=89)}return 21==(0|T)?(Ke(F),Ke(I),0|(T=5)):27==(0|T)?(Ke(F),Ke(I),0|(T=o)):89==(0|T)?(Ke(F),Ke(I),0|(T=0)):0},_destroyLinkedMultiPolygon:be,_directedEdgeToBoundary:IA,_directedEdgeToCells:function(A,e,t){A|=0;var r,i,o,a=0;return r=T,T=T+16|0,a=r,!0&268435456==(2013265920&(e|=0))?(i=-2130706433&e|134217728,n[(o=t|=0)>>2]=A,n[o+4>>2]=i,n[a>>2]=0,e=0|st(0|A,0|e,56),p(),a=0|U(A,i,7&e,a,t+8|0),T=r,0|a):(T=r,0|(a=6))},_edgeLengthKm:function(A,e,t){t|=0;var r,o=0,a=0,s=0,f=0,l=0,d=0,g=0;if(r=T,T=T+176|0,0|(A=0|IA(A|=0,e|=0,f=r)))return f=A,s=+i[t>>3],i[t>>3]=s*=6371.007180918475,T=r,0|f;if(i[t>>3]=0,(0|(A=0|n[f>>2]))<=1)return f=0,s=0,i[t>>3]=s*=6371.007180918475,T=r,0|f;e=A+-1|0,A=0,o=+i[f+8>>3],a=+i[f+16>>3],s=0;do{d=o,l=a,l=(g=+h(.5*((o=+i[f+8+((A=A+1|0)<<4)>>3])-d)))*g+(l=+h(.5*((a=+i[f+8+(A<<4)+8>>3])-l)))*(+c(+d)*+c(+o)*l),s+=2*+B(+ +u(+l),+ +u(+(1-l)))}while((0|A)!=(0|e));return i[t>>3]=s,f=0,g=s,i[t>>3]=g*=6371.007180918475,T=r,0|f},_edgeLengthM:function(A,e,t){t|=0;var r,o=0,a=0,s=0,f=0,l=0,d=0,g=0;if(r=T,T=T+176|0,0|(A=0|IA(A|=0,e|=0,f=r)))return f=A,s=+i[t>>3],s*=6371.007180918475,i[t>>3]=s*=1e3,T=r,0|f;if(i[t>>3]=0,(0|(A=0|n[f>>2]))<=1)return f=0,s=0,s*=6371.007180918475,i[t>>3]=s*=1e3,T=r,0|f;e=A+-1|0,A=0,o=+i[f+8>>3],a=+i[f+16>>3],s=0;do{d=o,l=a,l=(g=+h(.5*((o=+i[f+8+((A=A+1|0)<<4)>>3])-d)))*g+(l=+h(.5*((a=+i[f+8+(A<<4)+8>>3])-l)))*(+c(+d)*+c(+o)*l),s+=2*+B(+ +u(+l),+ +u(+(1-l)))}while((0|A)!=(0|e));return i[t>>3]=s,f=0,g=s,g*=6371.007180918475,i[t>>3]=g*=1e3,T=r,0|f},_edgeLengthRads:function(A,e,t){t|=0;var r,o=0,a=0,s=0,f=0,l=0,d=0,g=0;if(r=T,T=T+176|0,0|(A=0|IA(A|=0,e|=0,f=r)))return T=r,0|A;if(i[t>>3]=0,(0|(A=0|n[f>>2]))<=1)return T=r,0;e=A+-1|0,A=0,o=+i[f+8>>3],a=+i[f+16>>3],s=0;do{d=o,l=a,l=(g=+h(.5*((o=+i[f+8+((A=A+1|0)<<4)>>3])-d)))*g+(l=+h(.5*((a=+i[f+8+(A<<4)+8>>3])-l)))*(+c(+o)*+c(+d)*l),s+=2*+B(+ +u(+l),+ +u(+(1-l)))}while((0|A)<(0|e));return i[t>>3]=s,T=r,0},_emscripten_replace_memory:function(A){return r=new Int8Array(A),n=new Int32Array(A),i=new Float64Array(A),t=A,!0},_free:Ke,_getBaseCellNumber:OA,_getDirectedEdgeDestination:function(A,e,t){A|=0,e|=0,t|=0;var r,i,o=0;return r=T,T=T+16|0,n[(o=r)>>2]=0,!0&268435456==(2013265920&e)?(i=0|st(0|A,0|e,56),p(),o=0|U(A,-2130706433&e|134217728,7&i,o,t),T=r,0|o):(T=r,0|(o=6))},_getDirectedEdgeOrigin:function(A,e,t){return t|=0,!0&268435456==(2013265920&(e|=0))?(n[t>>2]=A|=0,n[t+4>>2]=-2130706433&e|134217728,0|(t=0)):0|(t=6)},_getHexagonAreaAvgKm2:he,_getHexagonAreaAvgM2:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20784+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgKm:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[20912+(A<<3)>>3],0|(e=0))},_getHexagonEdgeLengthAvgM:function(A,e){return e|=0,(A|=0)>>>0>15?0|(e=4):(i[e>>3]=+i[21040+(A<<3)>>3],0|(e=0))},_getIcosahedronFaces:function A(e,t,r){r|=0;var i,o=0,a=0,s=0,f=0,u=0,l=0,c=0,h=0;i=T,T=T+128|0,c=i+112|0,s=i+96|0,h=i,a=0|st(0|(e|=0),0|(t|=0),52),p(),n[c>>2]=u=15&a,f=0|st(0|e,0|t,45),p(),f&=127;A:do{if(0|_(f)){if(0|u)for(o=1;;){if(!(!((l=0|ft(7,0,3*(15-o|0)|0))&e)&!(p()&t))){a=0;break A}if(!(o>>>0<u>>>0))break;o=o+1|0}if(!(1&a))return l=0|ft(u+1|0,0,52),h=p()|-15728641&t,h=0|A((l|e)&~(c=0|ft(7,0,3*(14-u|0)|0)),h&~p(),r),T=i,0|h;a=1}else a=0}while(0);if(!(o=0|te(e,t,s))){a?(GA(s,c,h),l=5):(zA(s,c,h),l=6);A:do{if(0|_(f))if(u)for(o=1;;){if(!(!((f=0|ft(7,0,3*(15-o|0)|0))&e)&!(p()&t))){e=2;break A}if(!(o>>>0<u>>>0)){e=5;break}o=o+1|0}else e=5;else e=2}while(0);gt(0|r,-1,e<<2);A:do{if(a)for(s=0;;){if(UA(f=h+(s<<4)|0,0|n[c>>2]),-1==(0|(u=0|n[r>>2]))|(0|u)==(0|(f=0|n[f>>2])))o=r;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}u=0|n[(o=r+(a<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|f)))}if(n[o>>2]=f,(s=s+1|0)>>>0>=l>>>0){o=0;break}}else for(s=0;;){if(SA(f=h+(s<<4)|0,0|n[c>>2],0,1),-1==(0|(u=0|n[r>>2]))|(0|u)==(0|(f=0|n[f>>2])))o=r;else{a=0;do{if((a=a+1|0)>>>0>=e>>>0){o=1;break A}u=0|n[(o=r+(a<<2)|0)>>2]}while(!(-1==(0|u)|(0|u)==(0|f)))}if(n[o>>2]=f,(s=s+1|0)>>>0>=l>>>0){o=0;break}}}while(0)}return T=i,0|o},_getNumCells:de,_getPentagons:ie,_getRes0Cells:function(A){A|=0;var e=0,t=0,r=0;e=0;do{ft(0|e,0,45),r=134225919|p(),n[(t=A+(e<<3)|0)>>2]=-1,n[t+4>>2]=r,e=e+1|0}while(122!=(0|e));return 0},_getResolution:function(A,e){return e=0|st(0|(A|=0),0|(e|=0),52),p(),15&e},_greatCircleDistanceKm:ce,_greatCircleDistanceM:function(A,e){var t,r,n,o=0;return o=(n=+h(.5*((r=+i[(e|=0)>>3])-(t=+i[(A|=0)>>3]))))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+B(+ +u(+o),+ +u(+(1-o)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(A,e){var t,r,n,o=0;return o=(n=+h(.5*((r=+i[(e|=0)>>3])-(t=+i[(A|=0)>>3]))))*n+(o=+h(.5*(+i[e+8>>3]-+i[A+8>>3])))*(+c(+r)*+c(+t)*o),2*+B(+ +u(+o),+ +u(+(1-o)))},_gridDisk:L,_gridDiskDistances:x,_gridDistance:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a,s=0,f=0;return a=T,T=T+32|0,f=a,0|(o=0|me(A|=0,e|=0,A,e,s=a+12|0))?(T=a,0|(f=o)):0|(A=0|me(A,e,t,r,f))?(T=a,0|(f=A)):(s=0|pA(s,f),n[(f=i)>>2]=s,n[f+4>>2]=((0|s)<0)<<31>>31,T=a,0|(f=0))},_gridPathCells:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a,s=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,C=0,y=0;if(a=T,T=T+48|0,u=a+12|0,C=a,!(s=0|me(A|=0,e|=0,A,e,o=a+24|0))&&!(s=0|me(A,e,t,r,u))){D=((0|(Q=0|pA(o,u)))<0)<<31>>31,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,0|me(A,e,A,e,o)&&E(27795,27538,692,27747),0|me(A,e,t,r,u)&&E(27795,27538,697,27747),yA(o),yA(u),b=(d=0|Q?1/+(0|Q):0)*+((0|n[u>>2])-(t=0|n[o>>2])|0),k=d*+((0|n[u+4>>2])-(r=0|n[(M=o+4|0)>>2])|0),d*=+((0|n[u+8>>2])-(s=0|n[(m=o+8|0)>>2])|0),n[C>>2]=t,n[(g=C+4|0)>>2]=r,n[(w=C+8|0)>>2]=s;A:do{if((0|Q)<0)s=0;else for(v=0,B=0;;){y=b*(c=+(B>>>0)+4294967296*+(0|v))+ +(0|t),l=k*c+ +(0|r),c=d*c+ +(0|s),t=~~+ht(+y),u=~~+ht(+l),s=~~+ht(+c),y=+f(+(+(0|t)-y)),l=+f(+(+(0|u)-l)),c=+f(+(+(0|s)-c));do{if(!(y>l&y>c)){if(h=0-t|0,l>c){r=h-s|0;break}r=u,s=h-u|0;break}t=0-(u+s)|0,r=u}while(0);if(n[C>>2]=t,n[g>>2]=r,n[w>>2]=s,PA(C),0|(s=0|Qe(A,e,C,i+(B<<3)|0)))break A;if(!((0|v)<(0|D)|(0|v)==(0|D)&B>>>0<Q>>>0)){s=0;break A}t=0|$e(0|B,0|v,1,0),v=r=0|p(),B=t,t=0|n[o>>2],r=0|n[M>>2],s=0|n[m>>2]}}while(0);return T=a,0|s}return T=a,0|s},_gridPathCellsSize:function(A,e,t,r,i){t|=0,r|=0,i|=0;var o,a=0,s=0,f=0;return o=T,T=T+32|0,f=o,(a=0|me(A|=0,e|=0,A,e,s=o+12|0))||(a=0|me(A,e,t,r,f))?(T=o,0|(f=a)):(r=0|$e(0|(r=0|pA(s,f)),((0|r)<0)<<31>>31,1,0),s=0|p(),n[(f=i)>>2]=r,n[f+4>>2]=s,T=o,0|(f=0))},_gridRing:function(A,e,t,r){return 0|R(A|=0,e|=0,t|=0,r|=0)?(gt(0|r,0,48*t|0),0|(r=0|z(A,e,t,r))):0|(r=0)},_gridRingUnsafe:R,_i64Add:$e,_i64Subtract:At,_isPentagon:VA,_isResClassIII:function(A,e){return e=0|st(0|(A|=0),0|(e|=0),52),p(),1&e},_isValidCell:YA,_isValidDirectedEdge:function(A,e){var t=0;switch(t=0|st(0|(A|=0),0|(e|=0),56),p(),7&t){case 0:case 7:return 0}return t=-2130706433&e|134217728,!0&268435456==(2013265920&e)?!0&16777216==(117440512&e)&!!(0|VA(A,t))?0|(t=0):0|(t=0|YA(A,t)):0|(t=0)},_isValidVertex:function(A,e){A|=0;var t,r,i=0,o=0;return r=T,T=T+16|0,t=r,!0&536870912==(2013265920&(e|=0))&&0|YA(A,i=-2130706433&e|134217728)?(o=0|st(0|A,0|e,56),p(),o=!(0|Ye(A,i,7&o,t)),T=r,0|(i=o&((0|n[(i=t)>>2])==(0|A)?(0|n[i+4>>2])==(0|e):0)&1)):(T=r,0|(i=0))},_latLngToCell:Ae,_llvm_ctlz_i64:ut,_llvm_maxnum_f64:lt,_llvm_minnum_f64:ct,_llvm_round_f64:ht,_localIjToCell:function(A,e,t,r,n){var i,o;return A|=0,e|=0,t|=0,n|=0,o=T,T=T+16|0,i=o,(r|=0)?t=15:(t=0|CA(t,i))||(t=0|Qe(A,e,i,n)),T=o,0|t},_malloc:Xe,_maxFaceCount:function(A,e,t){t|=0;var r=0,i=0;if(i=0|st(0|(A|=0),0|(e|=0),45),p(),!(0|_(127&i)))return n[t>>2]=i=2,0;if(i=0|st(0|A,0|e,52),p(),!(i&=15))return n[t>>2]=i=5,0;for(r=1;;){if(!(!(ft(7,0,3*(15-r|0)|0)&A)&!(p()&e))){r=2,A=6;break}if(!(r>>>0<i>>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?(n[t>>2]=r,0):0},_maxGridDiskSize:function(A,e){e|=0;var t=0,r=0,i=0;return(0|(A|=0))<0?0|(e=2):(0|A)>13780509?0|(e=0|de(15,e)):(i=0|nt(0|A,0|(t=((0|A)<0)<<31>>31),3,0),r=0|p(),t=0|$e(0|A,0|t,1,0),t=0|$e(0|(t=0|nt(0|i,0|r,0|t,0|p())),0|p(),1,0),A=0|p(),n[e>>2]=t,n[e+4>>2]=A,0|(e=0))},_maxPolygonToCellsSize:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o=0,a=0,s=0,f=0,u=0;if(i=T,T=T+48|0,o=i+16|0,a=i+8|0,s=i,0|(t=0|Fe(t|=0)))return T=i,0|t;if(f=0|n[(u=A)+4>>2],n[(t=a)>>2]=n[u>>2],n[t+4>>2]=f,Ie(a,o),!(t=0|tA(o,e,s))){if(e=0|n[a>>2],(0|(a=0|n[A+8>>2]))>0){o=0|n[A+12>>2],t=0;do{e=(0|n[o+(t<<3)>>2])+e|0,t=t+1|0}while((0|t)<(0|a))}o=0|n[(t=s)>>2],(0|(t=0|n[t+4>>2]))<(0|(a=((0|e)<0)<<31>>31))|(0|t)==(0|a)&o>>>0<e>>>0?(n[(t=s)>>2]=e,n[t+4>>2]=a,t=a):e=o,f=0|$e(0|e,0|t,12,0),u=0|p(),n[(t=s)>>2]=f,n[t+4>>2]=u,n[(t=r)>>2]=f,n[t+4>>2]=u,t=0}return T=i,0|t},_maxPolygonToCellsSizeExperimental:function(A,e,t,o){e|=0,t|=0,o|=0;var a,s,u=0,l=0,h=0,d=0,g=0,w=0,v=0,B=0;if(s=T,T=T+48|0,g=s+32|0,d=s+40|0,a=s,!(0|n[(A|=0)>>2]))return n[(w=o)>>2]=0,n[w+4>>2]=0,T=s,0;_A(g,0,0,0),u=0|n[(h=g)>>2],h=0|n[h+4>>2];do{if(e>>>0>15)n[(w=a)>>2]=0,n[w+4>>2]=0,n[a+8>>2]=4,n[a+12>>2]=-1,t=a+29|0,n[(w=a+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[0|t]=0|r[0|d],r[t+1|0]=0|r[d+1|0],r[t+2|0]=0|r[d+2|0],t=4,w=9;else{if(0|(t=0|Fe(t))){n[(g=a)>>2]=0,n[g+4>>2]=0,n[a+8>>2]=t,n[a+12>>2]=-1,w=a+29|0,n[(g=a+16|0)>>2]=0,n[g+4>>2]=0,n[g+8>>2]=0,r[g+12|0]=0,r[0|w]=0|r[0|d],r[w+1|0]=0|r[d+1|0],r[w+2|0]=0|r[d+2|0],w=9;break}if(!(t=0|qe(1+(0|n[A+8>>2])|0,32))){n[(w=a)>>2]=0,n[w+4>>2]=0,n[a+8>>2]=13,n[a+12>>2]=-1,t=a+29|0,n[(w=a+16|0)>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,r[w+12|0]=0,r[0|t]=0|r[0|d],r[t+1|0]=0|r[d+1|0],r[t+2|0]=0|r[d+2|0],t=13,w=9;break}Te(A,t),n[(B=a)>>2]=u,n[B+4>>2]=h,n[(h=a+8|0)>>2]=0,n[a+12>>2]=e,n[a+20>>2]=A,n[a+24>>2]=t,r[a+28|0]=0,r[0|(u=a+29|0)]=0|r[0|d],r[u+1|0]=0|r[d+1|0],r[u+2|0]=0|r[d+2|0],n[a+16>>2]=3,v=+K(t),v*=+J(t),l=+f(+ +i[t>>3]),l=v/+c(+ +ct(+l,+ +f(+ +i[t+8>>3])))*6371.007180918475*6371.007180918475,t=0|n[(u=a+12|0)>>2];A:do{if((0|t)>0)do{if(he(t+-1|0,g),!(l/+i[g>>3]>10))break A;n[u>>2]=t=(B=0|n[u>>2])-1|0}while((0|B)>1)}while(0);if(Ce(a),n[(u=o)>>2]=0,n[u+4>>2]=0,!(!(0|(t=0|n[(u=a)>>2]))&!(0|(u=0|n[u+4>>2]))))do{HA(t,u,e,g),d=0|$e(0|n[(A=o)>>2],0|n[A+4>>2],0|n[(d=g)>>2],0|n[d+4>>2]),A=0|p(),n[(B=o)>>2]=d,n[B+4>>2]=A,Ce(a),t=0|n[(B=a)>>2],u=0|n[B+4>>2]}while(!(!(0|t)&!(0|u)));t=0|n[h>>2]}}while(0);return T=s,0|t},_memcpy:dt,_memset:gt,_originToDirectedEdges:function(A,e,t){t|=0;var r,i=0;return r=!(0|VA(A|=0,e|=0)),e&=-2130706433,n[(i=t)>>2]=r?A:0,n[i+4>>2]=r?285212672|e:0,n[(i=t+8|0)>>2]=A,n[i+4>>2]=301989888|e,n[(i=t+16|0)>>2]=A,n[i+4>>2]=318767104|e,n[(i=t+24|0)>>2]=A,n[i+4>>2]=335544320|e,n[(i=t+32|0)>>2]=A,n[i+4>>2]=352321536|e,n[(t=t+40|0)>>2]=A,n[t+4>>2]=369098752|e,0},_pentagonCount:function(){return 12},_polygonToCells:function(A,e,t,r){A|=0,e|=0,r|=0;var i,o,a,s,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0,B=0,b=0,M=0,k=0,m=0,Q=0,D=0,E=0,C=0,y=0,P=0,I=0,F=0,L=0,x=0,U=0,R=0,z=0;if(s=T,T=T+112|0,i=s+80|0,h=s+72|0,o=s,a=s+56|0,0|(f=0|Fe(t|=0)))return T=s,0|f;if(!(z=0|Xe(32+(n[(d=A+8|0)>>2]<<5)|0)))return T=s,13;if(Te(A,z),!(f=0|Fe(t))){if(R=0|n[(U=A)+4>>2],n[(f=h)>>2]=n[U>>2],n[f+4>>2]=R,Ie(h,i),f=0|tA(i,e,o))U=0,R=0;else{if(f=0|n[h>>2],(0|(u=0|n[d>>2]))>0){l=0|n[A+12>>2],t=0;do{f=(0|n[l+(t<<3)>>2])+f|0,t=t+1|0}while((0|t)!=(0|u));t=f}else t=f;u=0|n[(f=o)>>2],(0|(f=0|n[f+4>>2]))<(0|(l=((0|t)<0)<<31>>31))|(0|f)==(0|l)&u>>>0<t>>>0?(n[(f=o)>>2]=t,n[f+4>>2]=l,f=l):t=u,U=0|$e(0|t,0|f,12,0),R=0|p(),n[(f=o)>>2]=U,n[f+4>>2]=R,f=0}if(!f){if(!(t=0|qe(U,8)))return Ke(z),T=s,13;if(!(c=0|qe(U,8)))return Ke(z),Ke(t),T=s,13;n[(L=i)>>2]=0,n[L+4>>2]=0,x=0|n[(L=A)+4>>2],n[(f=h)>>2]=n[L>>2],n[f+4>>2]=x,f=0|Y(h,U,R,e,i,t,c);A:do{if(f)Ke(t),Ke(c),Ke(z);else{e:do{if((0|n[d>>2])>0){for(l=A+12|0,u=0;f=0|Y((0|n[l>>2])+(u<<3)|0,U,R,e,i,t,c),u=u+1|0,!(0|f);)if((0|u)>=(0|n[d>>2]))break e;Ke(t),Ke(c),Ke(z);break A}}while(0);(0|R)>0|!(0|R)&U>>>0>0&>(0|c,0,U<<3),L=0|n[(x=i)+4>>2];e:do{if((0|L)>0|!(0|L)&(0|n[x>>2])>>>0>0){P=t,I=c,F=t,L=c,x=t,f=t,E=t,C=c,y=c,t=c;t:for(;;){for(k=0,m=0,Q=0,D=0,u=0,l=0;;){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));if(0|G(d=0|n[(e=P+(k<<3)|0)>>2],e=0|n[e+4>>2],1,o,0)){h=(c=o)+56|0;do{n[c>>2]=0,c=c+4|0}while((0|c)<(0|h));0|(c=0|qe(7,4))&&(S(d,e,1,o,c,7,0,0),Ke(c))}for(M=0;;){B=0|n[(b=o+(M<<3)|0)>>2],b=0|n[b+4>>2];r:do{if(!(0|B)&!(0|b))c=u,h=l;else{if(g=0|ot(0|B,0|b,0|U,0|R),d=0|p(),!(!(0|(h=0|n[(e=c=r+(g<<3)|0)>>2]))&!(0|(e=0|n[e+4>>2])))){w=0,v=0;do{if((0|w)>(0|R)|(0|w)==(0|R)&v>>>0>U>>>0)break t;if((0|h)==(0|B)&(0|e)==(0|b)){c=u,h=l;break r}g=0|it(0|(c=0|$e(0|g,0|d,1,0)),0|p(),0|U,0|R),d=0|p(),v=0|$e(0|v,0|w,1,0),w=0|p(),h=0|n[(e=c=r+(g<<3)|0)>>2],e=0|n[e+4>>2]}while(!(!(0|h)&!(0|e)))}if(!(0|B)&!(0|b)){c=u,h=l;break}re(B,b,a),0|Le(A,z,a)&&(v=0|$e(0|u,0|l,1,0),l=0|p(),n[(w=c)>>2]=B,n[w+4>>2]=b,n[(u=I+(u<<3)|0)>>2]=B,n[u+4>>2]=b,u=v),c=u,h=l}}while(0);if((M=M+1|0)>>>0>=7)break;u=c,l=h}if(k=0|$e(0|k,0|m,1,0),m=0|p(),Q=0|$e(0|Q,0|D,1,0),D=0|p(),u=0|n[(l=i)>>2],!((0|D)<(0|(l=0|n[l+4>>2]))|(0|D)==(0|l)&Q>>>0<u>>>0))break;u=c,l=h}if((0|l)>0|!(0|l)&u>>>0>0){u=0,l=0;do{n[(D=P+(u<<3)|0)>>2]=0,n[D+4>>2]=0,u=0|$e(0|u,0|l,1,0),l=0|p(),Q=0|n[(D=i)+4>>2]}while((0|l)<(0|Q)|((0|l)==(0|Q)?u>>>0<(0|n[D>>2])>>>0:0))}if(n[(D=i)>>2]=c,n[D+4>>2]=h,!((0|h)>0|!(0|h)&c>>>0>0))break e;M=t,k=y,m=x,Q=C,D=I,t=E,y=f,C=F,E=M,f=k,x=L,L=m,F=Q,I=P,P=D}Ke(F),Ke(L),Ke(z),f=1;break A}f=c}while(0);Ke(z),Ke(t),Ke(f),f=0}}while(0);return T=s,0|f}}return Ke(z),T=s,0|f},_polygonToCellsExperimental:function(A,e,t,r,i,o){r|=0,i|=0,o|=0;var a,s,f,u=0,l=0,c=0,h=0,d=0,g=0,w=0,v=0;f=T,T=T+160|0,l=f+64|0,d=f+112|0,v=f,Ee(h=f+80|0,A|=0,e|=0,t|=0),oe(l,0|n[(c=h)>>2],0|n[c+4>>2],e),a=0|n[(c=l)>>2],c=0|n[c+4>>2],u=0|n[h+8>>2],n[(g=d+4|0)>>2]=n[h>>2],n[g+4>>2]=n[h+4>>2],n[g+8>>2]=n[h+8>>2],n[g+12>>2]=n[h+12>>2],n[g+16>>2]=n[h+16>>2],n[g+20>>2]=n[h+20>>2],n[g+24>>2]=n[h+24>>2],n[g+28>>2]=n[h+28>>2],n[(g=v)>>2]=a,n[g+4>>2]=c,n[(g=v+8|0)>>2]=u,e=d,t=36+(A=v+12|0)|0;do{n[A>>2]=n[e>>2],A=A+4|0,e=e+4|0}while((0|A)<(0|t));if(n[(d=v+48|0)>>2]=n[l>>2],n[d+4>>2]=n[l+4>>2],n[d+8>>2]=n[l+8>>2],n[d+12>>2]=n[l+12>>2],!(0|a)&!(0|c))return T=f,0|u;t=v+16|0,s=v+24|0,h=v+28|0,u=0,l=0,e=a,A=c;do{if(!((0|u)<(0|i)|(0|u)==(0|i)&l>>>0<r>>>0)){w=4;break}if(c=l,l=0|$e(0|l,0|u,1,0),u=0|p(),n[(c=o+(c<<3)|0)>>2]=e,n[c+4>>2]=A,se(d),!(0|(e=0|n[(A=d)>>2]))&!(0|(A=0|n[A+4>>2]))){if(Ce(t),!(0|(A=0|n[(e=t)>>2]))&!(0|(e=0|n[e+4>>2]))){w=10;break}ae(A,e,0|n[h>>2],d),e=0|n[(A=d)>>2],A=0|n[A+4>>2]}n[(c=v)>>2]=e,n[c+4>>2]=A}while(!(!(0|e)&!(0|A)));return 4==(0|w)?(0|(e=0|n[(A=v+40|0)>>2])&&Ke(e),n[(w=v+16|0)>>2]=0,n[w+4>>2]=0,n[s>>2]=0,n[v+36>>2]=0,n[h>>2]=-1,n[v+32>>2]=0,n[A>>2]=0,ae(0,0,0,d),n[v>>2]=0,n[v+4>>2]=0,n[g>>2]=0,T=f,0|(v=14)):(10==(0|w)&&(n[v>>2]=0,n[v+4>>2]=0,n[g>>2]=n[s>>2]),T=f,0|(v=0|n[g>>2]))},_readInt64AsDoubleFromPointer:function(A){return+(+((0|n[(A|=0)>>2])>>>0)+4294967296*+(0|n[A+4>>2]))},_res0CellCount:function(){return 122},_round:wt,_sbrk:vt,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(A,e,t,r,i,o,a){A|=0,r|=0,i|=0,o|=0;var s,f=0,u=0,l=0,c=0,h=0,d=0,g=0,w=0;if(s=T,T=T+16|0,w=s,!((0|(t|=0))>0|!(0|t)&(e|=0)>>>0>0))return T=s,0;if((0|(a|=0))>=16)return T=s,12;d=0,g=0,h=0,f=0;A:for(;;){if(c=0|st(0|(u=0|n[(l=A+(d<<3)|0)>>2]),0|(l=0|n[l+4>>2]),52),p(),(15&c)>(0|a)){f=12,u=11;break}if(oe(w,u,l,a),!(0|(l=0|n[(c=w)>>2]))&!(0|(c=0|n[c+4>>2])))u=h;else{u=h;do{if(!((0|f)<(0|o)|(0|f)==(0|o)&u>>>0<i>>>0)){u=10;break A}n[(h=r+(u<<3)|0)>>2]=l,n[h+4>>2]=c,u=0|$e(0|u,0|f,1,0),f=0|p(),se(w),l=0|n[(h=w)>>2],c=0|n[h+4>>2]}while(!(!(0|l)&!(0|c)))}if(d=0|$e(0|d,0|g,1,0),!((0|(g=0|p()))<(0|t)|(0|g)==(0|t)&d>>>0<e>>>0)){f=0,u=11;break}h=u}return 10==(0|u)?(T=s,0|(w=14)):11==(0|u)?(T=s,0|f):0},_uncompactCellsSize:function(A,e,t,r,i){A|=0,e|=0,t|=0,r|=0,i|=0;var o,a,s=0,f=0,u=0,l=0,c=0,h=0;a=T,T=T+16|0,o=a;A:do{if((0|t)>0|!(0|t)&e>>>0>0){for(c=0,f=0,s=0,h=0;;){if(!(!(0|(u=0|n[(l=A+(c<<3)|0)>>2]))&!(0|(l=0|n[l+4>>2]))||(l=!(0|HA(u,l,r,o)),f=0|$e(0|n[(u=o)>>2],0|n[u+4>>2],0|f,0|s),s=0|p(),l))){s=12;break}if(c=0|$e(0|c,0|h,1,0),!((0|(h=0|p()))<(0|t)|(0|h)==(0|t)&c>>>0<e>>>0))break A}return T=a,0|s}f=0,s=0}while(0);return n[i>>2]=f,n[i+4>>2]=s,T=a,0},_vertexToLatLng:function(A,e,t){t|=0;var r,i,o,a,s=0,f=0;return a=T,T=T+192|0,i=a,o=a+168|0,s=0|st(0|(A|=0),0|(e|=0),56),p(),s&=7,0|(r=0|te(A,f=-2130706433&e|134217728,o))?(T=a,0|(f=r)):(e=0|st(0|A,0|e,52),p(),e&=15,0|VA(A,f)?xA(o,e,s,1,i):RA(o,e,s,1,i),n[t>>2]=n[(f=i+8|0)>>2],n[t+4>>2]=n[f+4>>2],n[t+8>>2]=n[f+8>>2],n[t+12>>2]=n[f+12>>2],T=a,0|(f=0))},establishStackSpace:function(A){T=A|=0},stackAlloc:function(A){var e;return e=T,T=15+(T=T+(A|=0)|0)&-16,0|e},stackRestore:function(A){T=A|=0},stackSave:function(){return 0|T}}}({Math,Int8Array,Int32Array,Float64Array},{b:function(A){s=A},c:function(){return s},d:function(A,e,t,r){AA("Assertion failed: "+b(A)+", at: "+[e?b(e):"unknown filename",t,r?b(r):"unknown function"])},e:function(A){return t.___errno_location&&(g[t.___errno_location()>>2]=A),A},f:z,g:function(A,e,t){h.set(h.subarray(e,e+t),A)},h:function(A){var e=z(),t=16777216,r=2130706432;if(A>r)return!1;for(var n=Math.max(e,16777216);n<A;)n=n<=536870912?M(2*n,t):Math.min(M((3*n+2147483648)/4,t),r);return!!function(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(c),W(e),k(e),1}catch(A){}}(n)},i:function(){AA("OOM")},o:28624,p:28608},l);t.___divdi3=_.___divdi3,t.___muldi3=_.___muldi3,t.___remdi3=_.___remdi3,t.___uremdi3=_.___uremdi3,t._areNeighborCells=_._areNeighborCells,t._bitshift64Ashr=_._bitshift64Ashr,t._bitshift64Lshr=_._bitshift64Lshr,t._bitshift64Shl=_._bitshift64Shl,t._calloc=_._calloc,t._cellAreaKm2=_._cellAreaKm2,t._cellAreaM2=_._cellAreaM2,t._cellAreaRads2=_._cellAreaRads2,t._cellToBoundary=_._cellToBoundary,t._cellToCenterChild=_._cellToCenterChild,t._cellToChildPos=_._cellToChildPos,t._cellToChildren=_._cellToChildren,t._cellToChildrenSize=_._cellToChildrenSize,t._cellToLatLng=_._cellToLatLng,t._cellToLocalIj=_._cellToLocalIj,t._cellToParent=_._cellToParent,t._cellToVertex=_._cellToVertex,t._cellToVertexes=_._cellToVertexes,t._cellsToDirectedEdge=_._cellsToDirectedEdge,t._cellsToLinkedMultiPolygon=_._cellsToLinkedMultiPolygon,t._childPosToCell=_._childPosToCell,t._compactCells=_._compactCells,t._destroyLinkedMultiPolygon=_._destroyLinkedMultiPolygon,t._directedEdgeToBoundary=_._directedEdgeToBoundary,t._directedEdgeToCells=_._directedEdgeToCells,t._edgeLengthKm=_._edgeLengthKm,t._edgeLengthM=_._edgeLengthM,t._edgeLengthRads=_._edgeLengthRads;var W=t._emscripten_replace_memory=_._emscripten_replace_memory;t._free=_._free,t._getBaseCellNumber=_._getBaseCellNumber,t._getDirectedEdgeDestination=_._getDirectedEdgeDestination,t._getDirectedEdgeOrigin=_._getDirectedEdgeOrigin,t._getHexagonAreaAvgKm2=_._getHexagonAreaAvgKm2,t._getHexagonAreaAvgM2=_._getHexagonAreaAvgM2,t._getHexagonEdgeLengthAvgKm=_._getHexagonEdgeLengthAvgKm,t._getHexagonEdgeLengthAvgM=_._getHexagonEdgeLengthAvgM,t._getIcosahedronFaces=_._getIcosahedronFaces,t._getNumCells=_._getNumCells,t._getPentagons=_._getPentagons,t._getRes0Cells=_._getRes0Cells,t._getResolution=_._getResolution,t._greatCircleDistanceKm=_._greatCircleDistanceKm,t._greatCircleDistanceM=_._greatCircleDistanceM,t._greatCircleDistanceRads=_._greatCircleDistanceRads,t._gridDisk=_._gridDisk,t._gridDiskDistances=_._gridDiskDistances,t._gridDistance=_._gridDistance,t._gridPathCells=_._gridPathCells,t._gridPathCellsSize=_._gridPathCellsSize,t._gridRing=_._gridRing,t._gridRingUnsafe=_._gridRingUnsafe,t._i64Add=_._i64Add,t._i64Subtract=_._i64Subtract,t._isPentagon=_._isPentagon,t._isResClassIII=_._isResClassIII,t._isValidCell=_._isValidCell,t._isValidDirectedEdge=_._isValidDirectedEdge,t._isValidVertex=_._isValidVertex,t._latLngToCell=_._latLngToCell,t._llvm_ctlz_i64=_._llvm_ctlz_i64,t._llvm_maxnum_f64=_._llvm_maxnum_f64,t._llvm_minnum_f64=_._llvm_minnum_f64,t._llvm_round_f64=_._llvm_round_f64,t._localIjToCell=_._localIjToCell,t._malloc=_._malloc,t._maxFaceCount=_._maxFaceCount,t._maxGridDiskSize=_._maxGridDiskSize,t._maxPolygonToCellsSize=_._maxPolygonToCellsSize,t._maxPolygonToCellsSizeExperimental=_._maxPolygonToCellsSizeExperimental,t._memcpy=_._memcpy,t._memset=_._memset,t._originToDirectedEdges=_._originToDirectedEdges,t._pentagonCount=_._pentagonCount,t._polygonToCells=_._polygonToCells,t._polygonToCellsExperimental=_._polygonToCellsExperimental,t._readInt64AsDoubleFromPointer=_._readInt64AsDoubleFromPointer,t._res0CellCount=_._res0CellCount,t._round=_._round,t._sbrk=_._sbrk,t._sizeOfCellBoundary=_._sizeOfCellBoundary,t._sizeOfCoordIJ=_._sizeOfCoordIJ,t._sizeOfGeoLoop=_._sizeOfGeoLoop,t._sizeOfGeoPolygon=_._sizeOfGeoPolygon,t._sizeOfH3Index=_._sizeOfH3Index,t._sizeOfLatLng=_._sizeOfLatLng,t._sizeOfLinkedGeoPolygon=_._sizeOfLinkedGeoPolygon,t._uncompactCells=_._uncompactCells,t._uncompactCellsSize=_._uncompactCellsSize,t._vertexToLatLng=_._vertexToLatLng,t.establishStackSpace=_.establishStackSpace;var H,V,j=t.stackAlloc=_.stackAlloc,N=t.stackRestore=_.stackRestore,Z=t.stackSave=_.stackSave;if(t.asm=_,t.cwrap=function(A,e,t,r){var n=(t=t||[]).every((function(A){return"number"===A}));return"string"!==e&&n&&!r?u(A):function(){return function(A,e,t,r){var n={string:function(A){var e=0;if(null!=A&&0!==A){var t=1+(A.length<<2);!function(A,e,t){!function(A,e,t,r){if(!(r>0))return 0;for(var n=t+r-1,i=0;i<A.length;++i){var o=A.charCodeAt(i);if(o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&A.charCodeAt(++i)),o<=127){if(t>=n)break;e[t++]=o}else if(o<=2047){if(t+1>=n)break;e[t++]=192|o>>6,e[t++]=128|63&o}else if(o<=65535){if(t+2>=n)break;e[t++]=224|o>>12,e[t++]=128|o>>6&63,e[t++]=128|63&o}else{if(t+3>=n)break;e[t++]=240|o>>18,e[t++]=128|o>>12&63,e[t++]=128|o>>6&63,e[t++]=128|63&o}}e[t]=0}(A,h,e,t)}(A,e=j(t),t)}return e},array:function(A){var e=j(A.length);return function(A,e){c.set(A,e)}(A,e),e}},i=u(A),o=[],a=0;if(r)for(var s=0;s<r.length;s++){var f=n[t[s]];f?(0===a&&(a=Z()),o[s]=f(r[s])):o[s]=r[s]}var l=i.apply(null,o);return l=function(A){return"string"===e?b(A):"boolean"===e?Boolean(A):A}(l),0!==a&&N(a),l}(A,e,t,arguments)}},t.setValue=function(A,e,t){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":c[0|A]=e;break;case"i16":d[A>>1]=e;break;case"i32":g[A>>2]=e;break;case"i64":G=[e>>>0,(x=e,+y(x)>=1?x>0?(0|F(+I(x/4294967296),4294967295))>>>0:~~+P((x-+(~~x>>>0))/4294967296)>>>0:0)],g[A>>2]=G[0],g[A+4>>2]=G[1];break;case"float":w[A>>2]=e;break;case"double":v[A>>3]=e;break;default:AA("invalid type for setValue: "+t)}},t.getValue=function(A,e){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return c[0|A];case"i16":return d[A>>1];case"i32":case"i64":return g[A>>2];case"float":return w[A>>2];case"double":return v[A>>3];default:AA("invalid type for getValue: "+e)}return null},S){R(S)||(H=S,S=t.locateFile?t.locateFile(H,i):i+H),T++,t.monitorRunDependencies&&t.monitorRunDependencies(T);var J=function(A){A.byteLength&&(A=new Uint8Array(A)),h.set(A,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(){if(T--,t.monitorRunDependencies&&t.monitorRunDependencies(T),0==T&&L){var A=L;L=null,A()}}()},X=function(){n(S,J,(function(){throw"could not load memory initializer "+S}))},K=Y(S);if(K)J(K.buffer);else if(t.memoryInitializerRequest){var q=function(){var A=t.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var r=Y(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+S),void X();e=r.buffer}J(e)};t.memoryInitializerRequest.response?setTimeout(q,0):t.memoryInitializerRequest.addEventListener("load",q)}else X()}function $(){function A(){V||(V=!0,f||(Q(p),Q(E),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)A=t.postRun.shift(),C.unshift(A);var A;Q(C)}()))}T>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)A=t.preRun.shift(),D.unshift(A);var A;Q(D)}(),T>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),A()}),1)):A()))}function AA(A){throw t.onAbort&&t.onAbort(A),o(A+=""),a(A),f=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(L=function A(){V||$(),V||(L=A)},t.run=$,t.abort=AA,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return $(),A}("object"==typeof W?W:{}),H="number",V={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid"},j={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function N(A,e,t){var r=new Error((A[e]||"Unknown error")+" (code: "+e+(t&&"value"in t?", value: "+t.value:"")+")");return r.code=e,r}function Z(A,e){return N(V,A,2===arguments.length?{value:e}:{})}function J(A,e){return N(j,A,2===arguments.length?{value:e}:{})}function X(A){if(0!==A)throw Z(A)}var K={};[["sizeOfH3Index",H],["sizeOfLatLng",H],["sizeOfCellBoundary",H],["sizeOfGeoLoop",H],["sizeOfGeoPolygon",H],["sizeOfLinkedGeoPolygon",H],["sizeOfCoordIJ",H],["readInt64AsDoubleFromPointer",H],["isValidCell",H,[H,H]],["latLngToCell",H,[H,H,H,H]],["cellToLatLng",H,[H,H,H]],["cellToBoundary",H,[H,H,H]],["maxGridDiskSize",H,[H,H]],["gridDisk",H,[H,H,H,H]],["gridDiskDistances",H,[H,H,H,H,H]],["gridRing",H,[H,H,H,H]],["gridRingUnsafe",H,[H,H,H,H]],["maxPolygonToCellsSize",H,[H,H,H,H]],["polygonToCells",H,[H,H,H,H]],["maxPolygonToCellsSizeExperimental",H,[H,H,H,H]],["polygonToCellsExperimental",H,[H,H,H,H,H,H]],["cellsToLinkedMultiPolygon",H,[H,H,H]],["destroyLinkedMultiPolygon",null,[H]],["compactCells",H,[H,H,H,H]],["uncompactCells",H,[H,H,H,H,H,H]],["uncompactCellsSize",H,[H,H,H,H,H]],["isPentagon",H,[H,H]],["isResClassIII",H,[H,H]],["getBaseCellNumber",H,[H,H]],["getResolution",H,[H,H]],["maxFaceCount",H,[H,H,H]],["getIcosahedronFaces",H,[H,H,H]],["cellToParent",H,[H,H,H,H]],["cellToChildren",H,[H,H,H,H]],["cellToCenterChild",H,[H,H,H,H]],["cellToChildrenSize",H,[H,H,H,H]],["cellToChildPos",H,[H,H,H,H]],["childPosToCell",H,[H,H,H,H,H,H]],["areNeighborCells",H,[H,H,H,H,H]],["cellsToDirectedEdge",H,[H,H,H,H,H]],["getDirectedEdgeOrigin",H,[H,H,H]],["getDirectedEdgeDestination",H,[H,H,H]],["isValidDirectedEdge",H,[H,H]],["directedEdgeToCells",H,[H,H,H]],["originToDirectedEdges",H,[H,H,H]],["directedEdgeToBoundary",H,[H,H,H]],["gridDistance",H,[H,H,H,H,H]],["gridPathCells",H,[H,H,H,H,H]],["gridPathCellsSize",H,[H,H,H,H,H]],["cellToLocalIj",H,[H,H,H,H,H,H]],["localIjToCell",H,[H,H,H,H,H]],["getHexagonAreaAvgM2",H,[H,H]],["getHexagonAreaAvgKm2",H,[H,H]],["getHexagonEdgeLengthAvgM",H,[H,H]],["getHexagonEdgeLengthAvgKm",H,[H,H]],["greatCircleDistanceM",H,[H,H]],["greatCircleDistanceKm",H,[H,H]],["greatCircleDistanceRads",H,[H,H]],["cellAreaM2",H,[H,H,H]],["cellAreaKm2",H,[H,H,H]],["cellAreaRads2",H,[H,H,H]],["edgeLengthM",H,[H,H,H]],["edgeLengthKm",H,[H,H,H]],["edgeLengthRads",H,[H,H,H]],["getNumCells",H,[H,H]],["getRes0Cells",H,[H]],["res0CellCount",H],["getPentagons",H,[H,H]],["pentagonCount",H],["cellToVertex",H,[H,H,H,H]],["cellToVertexes",H,[H,H,H]],["vertexToLatLng",H,[H,H,H]],["isValidVertex",H,[H,H]]].forEach((function(A){K[A[0]]=W.cwrap.apply(W,A)}));var q=16,$=K.sizeOfH3Index(),AA=K.sizeOfLatLng(),eA=K.sizeOfCellBoundary();K.sizeOfGeoPolygon(),K.sizeOfGeoLoop();var tA=K.sizeOfLinkedGeoPolygon();K.sizeOfCoordIJ();var rA=/[^0-9a-fA-F]/;function nA(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||rA.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),q);return[parseInt(A.substring(A.length-8),q),e]}function iA(A){if(A>=0)return A.toString(q);var e=oA(8,(A&=2147483647).toString(q));return(parseInt(e[0],q)+8).toString(q)+e.substring(1)}function oA(A,e){for(var t=A-e.length,r="",n=0;n<t;n++)r+="0";return r+e}function aA(A,e,t){W.HEAPU32.set(nA(A),e/4+2*t)}function sA(A){return 180*W.getValue(A,"double")/Math.PI}function fA(A){return[sA(A+8),sA(A)]}function uA(A){var e=nA(A);return Boolean(K.isPentagon(e[0],e[1]))}function lA(A,e,t){var r=W._malloc(AA);W.HEAPF64.set([A,e].map(gA),r/8);var n=W._malloc($);try{return X(K.latLngToCell(r,t,n)),function(A){if(!A)throw J(1002);return A}(function(A,e){void 0===e&&(e=0);var t=W.getValue(A+$*e,"i32"),r=W.getValue(A+$*e+4,"i32");return r?function(A,e){return iA(e)+oA(8,iA(A))}(t,r):null}(n))}finally{W._free(n),W._free(r)}}function cA(A){var e,t=W._malloc(AA),r=nA(A),n=r[0],i=r[1];try{return X(K.cellToLatLng(n,i,t)),[sA(e=t),sA(e+8)]}finally{W._free(t)}}function hA(A){if(!A||!A.length)return[];var e=A.length,t=W._calloc(e,$);!function(A,e){for(var t=e.length,r=0;r<t;r++)aA(e[r],A,r)}(t,A);var r=W._calloc(tA);try{return X(K.cellsToLinkedMultiPolygon(t,e,r)),function(A){for(var e,t,r,n,i=[],o=fA;A;){for(i.push(e=[]),t=W.getValue(A,"i8*");t;){for(e.push(r=[]),n=W.getValue(t,"i8*");n;)r.push(o(n)),n=W.getValue(n+16,"i8*");r.push(r[0]),t=W.getValue(t+8,"i8*")}A=W.getValue(A+8,"i8*")}return i}(r)}finally{K.destroyLinkedMultiPolygon(r),W._free(r),W._free(t)}}function dA(A,e){!function(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw Z(4,A)}(A);var t,r=W._malloc(8);try{switch(e){case"m":X(K.getHexagonEdgeLengthAvgM(A,r));break;case"km":X(K.getHexagonEdgeLengthAvgKm(A,r));break;default:throw J(1e3,e)}return void 0===t&&(t=0),W.getValue(r+8*t,"double")}finally{W._free(r)}}function gA(A){return A*Math.PI/180}function wA(A,e){e=void 0===e?A[0][0]:e;for(const t of A){const A=t[0]-e;A>180?t[0]-=360:A<-180&&(t[0]+=360)}}function vA(A,e,t){const r=A(e,t),[n,i]=cA(r);return[i,n]}function BA(A,t=1){const r=function(A){var e=W._malloc(eA),t=nA(A),r=t[0],n=t[1];try{return X(K.cellToBoundary(r,n,e)),function(A){for(var e=W.getValue(A,"i32"),t=A+8,r=[],n=fA,i=0;i<2*e;i+=2)r.push(n(t+8*i));return r.push(r[0]),r}(e)}finally{W._free(e)}}(A);return 1!==t?function(A,t,r){const[n,i]=cA(A),o=t.length;wA(t,i);const a=t[0]===t[o-1]?o-1:o;for(let A=0;A<a;A++)t[A][0]=e(i,t[A][0],r),t[A][1]=e(n,t[A][1],r)}(A,r,t):wA(r),r}function bA(A){const e=new Float64Array(2*A.length);let t=0;for(const r of A)e[t++]=r[0],e[t++]=r[1];return e}class MA extends R{indexToBounds(){const{data:A,getPentagon:e}=this.props;return{data:A,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(A,t)=>{const r=e(A,t);return bA(_.cellToBoundary("string"==typeof r?_.hexToU64(r):r,{closedRing:!0,segments:"auto"}))}}}}MA.layerName="A5Layer",MA.defaultProps={getPentagon:{type:"accessor",value:A=>A.pentagon}};const kA=6378137*Math.PI;function mA(A){const e=t(A);return e[0]=(e[0]/256-1)*kA,e[1]=(e[1]/256-1)*kA,e}const QA={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(A,e)=>console.error(e,A)}};class DA extends A{get isLoaded(){return 0===this.state?.loadCounter&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:A,props:e,oldProps:t}){const{viewport:n}=this.context;A.dataChanged||e.serviceType!==t.serviceType?(this.state.imageSource=this._createImageSource(e),this._loadMetadata(),this.debounce((()=>this.loadImage(n,"image source changed")),0)):r(e.layers,t.layers,1)?A.viewportChanged&&this.debounce((()=>this.loadImage(n,"viewport changed"))):this.debounce((()=>this.loadImage(n,"layers changed")),0)}finalizeState(){}renderLayers(){const{bounds:A,image:e,lastRequestParameters:t}=this.state;return e&&new n({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:"EPSG:4326"===t.srs?i.LNGLAT:i.CARTESIAN,bounds:A,image:e})}async getFeatureInfoText(A,e){const{lastRequestParameters:t}=this.state;return t?await(this.state.imageSource.getFeatureInfoText?.({...t,query_layers:t.layers,x:A,y:e,info_format:"application/vnd.ogc.gml"})):""}_createImageSource(A){if(A.data instanceof D)return A.data;if("string"==typeof A.data)return p({url:A.data,loadOptions:A.loadOptions,type:A.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){const{imageSource:A}=this.state;try{this.state.loadCounter++;const e=await A.getMetadata();this.state.imageSource===A&&this.getCurrentLayer()?.props.onMetadataLoad(e)}catch(A){this.getCurrentLayer()?.props.onMetadataLoadError(A)}finally{this.state.loadCounter--}}async loadImage(A,e){const{layers:t,serviceType:r}=this.props;if("wms"===r&&0===t.length)return;const n=A.getBounds(),{width:i,height:o}=A,a=this.getRequestId();let{srs:s}=this.props;"auto"===s&&(s=A.resolution?"EPSG:4326":"EPSG:3857");const f={width:i,height:o,boundingBox:[[n[0],n[1]],[n[2],n[3]]],layers:t,crs:s};if("EPSG:3857"===s){const A=mA([n[0],n[1]]),e=mA([n[2],n[3]]);f.boundingBox=[A,e]}try{this.state.loadCounter++,this.props.onImageLoadStart(a);const A=await this.state.imageSource.getImage(f);this.state.lastRequestId<a&&(this.getCurrentLayer()?.props.onImageLoad(a),this.setState({image:A,bounds:n,lastRequestParameters:f,lastRequestId:a}))}catch(A){this.raiseError(A,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(a,A)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(A,e=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout((()=>A()),e)}}DA.layerName="WMSLayer",DA.defaultProps=QA;class pA extends k{}pA.layerName="GreatCircleLayer",pA.defaultProps={getHeight:{type:"accessor",value:0},greatCircle:!0};var EA,CA,yA,PA={exports:{}},IA=(EA||(EA=1,
|
|
2
2
|
/**
|
|
3
3
|
* @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
4
4
|
* Released under the Apache License, Version 2.0
|
|
5
5
|
* see: https://github.com/dcodeIO/long.js for details
|
|
6
6
|
*/
|
|
7
|
-
CA=PA.exports,yA=function(){function A(A,e,t){this.low=0|A,this.high=0|e,this.unsigned=!!t}function e(A){return!0===(A&&A.__isLong__)}Object.defineProperty(A.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),A.isLong=e;var t={},r={};function n(A,e){var n,i,a;return e?(a=0<=(A>>>=0)&&A<256)&&(i=r[A])?i:(n=o(A,(0|A)<0?-1:0,!0),a&&(r[A]=n),n):(a=-128<=(A|=0)&&A<128)&&(i=t[A])?i:(n=o(A,A<0?-1:0,!1),a&&(t[A]=n),n)}function i(A,e){if(isNaN(A)||!isFinite(A))return e?g:d;if(e){if(A<0)return g;if(A>=l)return M}else{if(A<=-c)return k;if(A+1>=c)return b}return A<0?i(-A,e).neg():o(A%u|0,A/u|0,e)}function o(e,t,r){return new A(e,t,r)}A.fromInt=n,A.fromNumber=i,A.fromBits=o;var a=Math.pow;function s(A,e,t){if(0===A.length)throw Error("empty string");if("NaN"===A||"Infinity"===A||"+Infinity"===A||"-Infinity"===A)return d;if("number"==typeof e?(t=e,e=!1):e=!!e,(t=t||10)<2||36<t)throw RangeError("radix");var r;if((r=A.indexOf("-"))>0)throw Error("interior hyphen");if(0===r)return s(A.substring(1),e,t).neg();for(var n=i(a(t,8)),o=d,f=0;f<A.length;f+=8){var u=Math.min(8,A.length-f),l=parseInt(A.substring(f,f+u),t);if(u<8){var c=i(a(t,u));o=o.mul(c).add(i(l))}else o=(o=o.mul(n)).add(i(l))}return o.unsigned=e,o}function f(e){return e instanceof A?e:"number"==typeof e?i(e):"string"==typeof e?s(e):o(e.low,e.high,e.unsigned)}A.fromString=s,A.fromValue=f;var u=4294967296,l=u*u,c=l/2,h=n(1<<24),d=n(0);A.ZERO=d;var g=n(0,!0);A.UZERO=g;var w=n(1);A.ONE=w;var v=n(1,!0);A.UONE=v;var B=n(-1);A.NEG_ONE=B;var b=o(-1,2147483647,!1);A.MAX_VALUE=b;var M=o(-1,-1,!0);A.MAX_UNSIGNED_VALUE=M;var k=o(0,-2147483648,!1);A.MIN_VALUE=k;var m=A.prototype;return m.toInt=function(){return this.unsigned?this.low>>>0:this.low},m.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},m.toString=function(A){if((A=A||10)<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(k)){var e=i(A),t=this.div(e),r=t.mul(e).sub(this);return t.toString(A)+r.toInt().toString(A)}return"-"+this.neg().toString(A)}for(var n=i(a(A,6),this.unsigned),o=this,s="";;){var f=o.div(n),u=(o.sub(f.mul(n)).toInt()>>>0).toString(A);if((o=f).isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},m.getHighBits=function(){return this.high},m.getHighBitsUnsigned=function(){return this.high>>>0},m.getLowBits=function(){return this.low},m.getLowBitsUnsigned=function(){return this.low>>>0},m.getNumBitsAbs=function(){if(this.isNegative())return this.eq(k)?64:this.neg().getNumBitsAbs();for(var A=0!=this.high?this.high:this.low,e=31;e>0&&!(A&1<<e);e--);return 0!=this.high?e+33:e+1},m.isZero=function(){return 0===this.high&&0===this.low},m.isNegative=function(){return!this.unsigned&&this.high<0},m.isPositive=function(){return this.unsigned||this.high>=0},m.isOdd=function(){return!(1&~this.low)},m.isEven=function(){return!(1&this.low)},m.equals=function(A){return e(A)||(A=f(A)),(this.unsigned===A.unsigned||this.high>>>31!=1||A.high>>>31!=1)&&this.high===A.high&&this.low===A.low},m.eq=m.equals,m.notEquals=function(A){return!this.eq(A)},m.neq=m.notEquals,m.lessThan=function(A){return this.comp(A)<0},m.lt=m.lessThan,m.lessThanOrEqual=function(A){return this.comp(A)<=0},m.lte=m.lessThanOrEqual,m.greaterThan=function(A){return this.comp(A)>0},m.gt=m.greaterThan,m.greaterThanOrEqual=function(A){return this.comp(A)>=0},m.gte=m.greaterThanOrEqual,m.compare=function(A){if(e(A)||(A=f(A)),this.eq(A))return 0;var t=this.isNegative(),r=A.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1},m.comp=m.compare,m.negate=function(){return!this.unsigned&&this.eq(k)?k:this.not().add(w)},m.neg=m.negate,m.add=function(A){e(A)||(A=f(A));var t=0,r=0,n=0,i=0;return n+=(i+=(65535&this.low)+(65535&A.low))>>>16,r+=(n+=(this.low>>>16)+(A.low>>>16))>>>16,t+=(r+=(65535&this.high)+(65535&A.high))>>>16,t+=(this.high>>>16)+(A.high>>>16),o((n&=65535)<<16|(i&=65535),(t&=65535)<<16|(r&=65535),this.unsigned)},m.subtract=function(A){return e(A)||(A=f(A)),this.add(A.neg())},m.sub=m.subtract,m.multiply=function(A){if(this.isZero())return d;if(e(A)||(A=f(A)),A.isZero())return d;if(this.eq(k))return A.isOdd()?k:d;if(A.eq(k))return this.isOdd()?k:d;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(h)&&A.lt(h))return i(this.toNumber()*A.toNumber(),this.unsigned);var t=65535&this.high,r=this.low>>>16,n=65535&this.low,a=65535&A.high,s=A.low>>>16,u=65535&A.low,l=0,c=0,g=0,w=0;return g+=(w+=n*u)>>>16,c+=(g+=r*u)>>>16,g&=65535,c+=(g+=n*s)>>>16,l+=(c+=t*u)>>>16,c&=65535,l+=(c+=r*s)>>>16,c&=65535,l+=(c+=n*a)>>>16,l+=(this.high>>>16)*u+t*s+r*a+n*(A.high>>>16),o((g&=65535)<<16|(w&=65535),(l&=65535)<<16|(c&=65535),this.unsigned)},m.mul=m.multiply,m.divide=function(A){if(e(A)||(A=f(A)),A.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?g:d;var t,r,n;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return g;if(A.gt(this.shru(1)))return v;n=g}else{if(this.eq(k))return A.eq(w)||A.eq(B)?k:A.eq(k)?w:(t=this.shr(1).div(A).shl(1)).eq(d)?A.isNegative()?w:B:(r=this.sub(A.mul(t)),n=t.add(r.div(A)));if(A.eq(k))return this.unsigned?g:d;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();n=d}for(r=this;r.gte(A);){t=Math.max(1,Math.floor(r.toNumber()/A.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),s=o<=48?1:a(2,o-48),u=i(t),l=u.mul(A);l.isNegative()||l.gt(r);)l=(u=i(t-=s,this.unsigned)).mul(A);u.isZero()&&(u=w),n=n.add(u),r=r.sub(l)}return n},m.div=m.divide,m.modulo=function(A){return e(A)||(A=f(A)),this.sub(this.div(A).mul(A))},m.mod=m.modulo,m.not=function(){return o(~this.low,~this.high,this.unsigned)},m.and=function(A){return e(A)||(A=f(A)),o(this.low&A.low,this.high&A.high,this.unsigned)},m.or=function(A){return e(A)||(A=f(A)),o(this.low|A.low,this.high|A.high,this.unsigned)},m.xor=function(A){return e(A)||(A=f(A)),o(this.low^A.low,this.high^A.high,this.unsigned)},m.shiftLeft=function(A){return e(A)&&(A=A.toInt()),0==(A&=63)?this:A<32?o(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):o(0,this.low<<A-32,this.unsigned)},m.shl=m.shiftLeft,m.shiftRight=function(A){return e(A)&&(A=A.toInt()),0==(A&=63)?this:A<32?o(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):o(this.high>>A-32,this.high>=0?0:-1,this.unsigned)},m.shr=m.shiftRight,m.shiftRightUnsigned=function(A){if(e(A)&&(A=A.toInt()),0==(A&=63))return this;var t=this.high;return A<32?o(this.low>>>A|t<<32-A,t>>>A,this.unsigned):o(32===A?t:t>>>A-32,0,this.unsigned)},m.shru=m.shiftRightUnsigned,m.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},m.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},m.toBytes=function(A){return A?this.toBytesLE():this.toBytesBE()},m.toBytesLE=function(){var A=this.high,e=this.low;return[255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&A,A>>>8&255,A>>>16&255,A>>>24&255]},m.toBytesBE=function(){var A=this.high,e=this.low;return[A>>>24&255,A>>>16&255,A>>>8&255,255&A,e>>>24&255,e>>>16&255,e>>>8&255,255&e]},A},PA&&PA.exports?PA.exports=yA():(CA.dcodeIO=CA.dcodeIO||{}).Long=yA()),PA.exports),FA=E(IA);const TA=180/Math.PI;function LA(A,e,t){const r=1<<e;return[(A[0]+t[0])/r,(A[1]+t[1])/r]}function xA(A){return A>=.5?1/3*(4*A*A-1):1/3*(1-4*(1-A)*(1-A))}function GA(A,[e,t]){switch(A){case 0:return[1,e,t];case 1:return[-e,1,t];case 2:return[-e,-t,1];case 3:return[-1,-t,-e];case 4:return[t,-1,-e];case 5:return[t,e,-1];default:throw new Error("Invalid face")}}function SA([A,e,t]){const r=Math.atan2(t,Math.sqrt(A*A+e*e));return[Math.atan2(e,A)*TA,r*TA]}function UA(A,e,t,r){if(0===r){1===t&&(e[0]=A-1-e[0],e[1]=A-1-e[1]);const r=e[0];e[0]=e[1],e[1]=r}}function zA(A){return function({face:A,ij:e,level:t}){const r=[[0,0],[0,1],[1,1],[1,0],[0,0]],n=Math.max(1,Math.ceil(100*Math.pow(2,-t))),i=new Float64Array(4*n*2+2);let o=0,a=0;for(let f=0;f<4;f++){const u=r[f].slice(0),l=r[f+1],c=(l[0]-u[0])/n,h=(l[1]-u[1])/n;for(let r=0;r<n;r++){u[0]+=c,u[1]+=h;const r=SA(GA(A,[xA((s=LA(e,t,u))[0]),xA(s[1])]));Math.abs(r[1])>89.999&&(r[0]=a);const n=r[0]-a;r[0]+=n>180?-360:n<-180?360:0,i[o++]=r[0],i[o++]=r[1],a=r[0]}}var s;return i[o++]=i[0],i[o++]=i[1],i}(function(A){const e=A.split("/"),t=parseInt(e[0],10),r=e[1],n=r.length,i=[0,0];let o;for(let A=n-1;A>=0;A--){o=n-A;const e=r[A];let t=0,a=0;"1"===e?a=1:"2"===e?(t=1,a=1):"3"===e&&(t=1);const s=Math.pow(2,o-1);UA(s,i,t,a),i[0]+=s*t,i[1]+=s*a}if(t%2==1){const A=i[0];i[0]=i[1],i[1]=A}return{face:t,ij:i,level:o}}(function(A){if("string"==typeof A){if(A.indexOf("/")>0)return A;A=function(A){const e=A.padEnd(16,"0");return FA.fromString(e,16)}(A)}return function(A){let e=FA.fromString(A,!0,10).toString(2);for(;e.length<64;)e="0"+e;const t=e.lastIndexOf("1"),r=e.substring(0,3),n=e.substring(3,t),i=n.length/2,o=FA.fromString(r,!0,2).toString(10);let a=FA.fromString(n,!0,2).toString(4);for(;a.length<i;)a="0"+a;return`${o}/${a}`}(A.toString())}(A)))}class RA extends z{indexToBounds(){const{data:A,getS2Token:e}=this.props;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(A,t)=>zA(e(A,t))}}}RA.layerName="S2Layer",RA.defaultProps={getS2Token:{type:"accessor",value:A=>A.token}};class OA extends z{indexToBounds(){const{data:A,extruded:e,getQuadkey:t}=this.props,r=e?.99:1;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(A,e)=>function(A,e=1){const[t,r]=function(A,e){let t=0,r=0,n=1<<A.length;const i=n/512;for(let e=0;e<A.length;e++){n>>=1;const i=parseInt(A[e]);i%2&&(t|=n),i>1&&(r|=n)}return[[t/i,512-r/i],[(t+e)/i,512-(r+e)/i]]}(A,e),[n,i]=o(t),[a,s]=o(r);return[a,i,a,s,n,s,n,i,a,i]}(t(A,e),r),updateTriggers:{getPolygon:r}}}}OA.layerName="QuadkeyLayer",OA.defaultProps={getQuadkey:{type:"accessor",value:A=>A.quadkey}};const YA="uniform tripsUniforms {\n bool fadeTrail;\n float trailLength;\n float currentTime;\n} trips;\n",_A={name:"trips",vs:YA,fs:YA,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};class WA extends a{getShaders(){const A=super.getShaders();return A.inject={"vs:#decl":"in float instanceTimestamps;\nin float instanceNextTimestamps;\nout float vTime;\n","vs:#main-end":"vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;\n","fs:#decl":"in float vTime;\n","fs:#main-start":"if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) {\n discard;\n}\n","fs:DECKGL_FILTER_COLOR":"if(trips.fadeTrail) {\n color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;\n}\n"},A.modules=[...A.modules,_A],A}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(A){const{fadeTrail:e,trailLength:t,currentTime:r}=this.props;this.state.model.shaderInputs.setProps({trips:{fadeTrail:e,trailLength:t,currentTime:r}}),super.draw(A)}}WA.layerName="TripsLayer",WA.defaultProps={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:A=>A.timestamps}};const HA={...M.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:A=>A.hexagon},extruded:!0};class VA extends A{initializeState(){VA._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:A}){return this._shouldUseHighPrecision()?A.propsOrDataChanged:A.somethingChanged}updateState({props:A,changeFlags:e}){if(!0!==A.highPrecision&&(e.dataChanged||e.updateTriggersChanged&&e.updateTriggersChanged.getHexagon)){const A=this._calculateH3DataProps();this.setState(A)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let A=-1,e=!1,t=!1;const{iterable:r,objectInfo:n}=s(this.props.data);for(const s of r){n.index++;const r=this.props.getHexagon(s,n),f=(void 0,void 0,void 0,i=nA(r),K.isValidCell(o=i[0],a=i[1])?K.getResolution(o,a):-1);if(A<0){if(A=f,!this.props.highPrecision)break}else if(A!==f){t=!0;break}if(uA(r)){e=!0;break}}var i,o,a;return{resolution:A,edgeLengthKM:A>=0?dA(A,"km"):0,hasMultipleRes:t,hasPentagon:e}}_shouldUseHighPrecision(){if("auto"===this.props.highPrecision){const{resolution:A,hasPentagon:e,hasMultipleRes:t}=this.state,{viewport:r}=this.context;return Boolean(r?.resolution)||t||e||A>=0&&A<=5}return this.props.highPrecision}_updateVertices(A){if(this._shouldUseHighPrecision())return;const{resolution:e,edgeLengthKM:t,centerHex:r}=this.state;if(e<0)return;const n=this.props.centerHexagon||lA(A.latitude,A.longitude,e);if(r===n)return;if(r)try{if(function(A,e){var t=nA(A),r=t[0],n=t[1],i=nA(e),o=i[0],a=i[1],s=W._malloc(8);try{return X(K.gridDistance(r,n,o,a,s)),K.readInt64AsDoubleFromPointer(s)}finally{W._free(s)}}(r,n)*t<10)return}catch{}const{unitsPerMeter:i}=A.distanceScales;let o=BA(n);const[a,s]=cA(n),[f,u]=A.projectFlat([s,a]);o=o.map((e=>{const t=A.projectFlat(e);return[(t[0]-f)/i[0],(t[1]-u)/i[1]]})),this.setState({centerHex:n,vertices:o})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){const{elevationScale:A,material:e,coverage:t,extruded:r,wireframe:n,stroked:i,filled:o,lineWidthUnits:a,lineWidthScale:s,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:l,getElevation:c,getLineColor:h,getLineWidth:d,transitions:g,updateTriggers:w}=this.props;return{elevationScale:A,extruded:r,coverage:t,wireframe:n,stroked:i,filled:o,lineWidthUnits:a,lineWidthScale:s,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:e,getElevation:c,getFillColor:l,getLineColor:h,getLineWidth:d,transitions:g,updateTriggers:{getFillColor:w.getFillColor,getElevation:w.getElevation,getLineColor:w.getLineColor,getLineWidth:w.getLineWidth}}}_renderPolygonLayer(){const{data:A,getHexagon:e,updateTriggers:t,coverage:r}=this.props,n=this.getSubLayerClass("hexagon-cell-hifi",M),i=this._getForwardProps();return i.updateTriggers.getPolygon=function(A,e){let t;return t=null==A?e:"object"==typeof A?{...A,coverage:e}:{getHexagon:A,coverage:e},t}(t.getHexagon,r),new n(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:A,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(A,t)=>bA(BA(e(A,t),r))})}_renderColumnLayer(){const{data:A,getHexagon:e,updateTriggers:t}=this.props,r=this.getSubLayerClass("hexagon-cell",m),n=this._getForwardProps();return n.updateTriggers.getPosition=t.getHexagon,new r(n,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:n.updateTriggers}),{data:A,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:vA.bind(null,e)})}}VA.defaultProps=HA,VA.layerName="H3HexagonLayer",VA._checkH3Lib=()=>{};class jA extends z{initializeState(){VA._checkH3Lib()}updateState({props:A,changeFlags:e}){if(e.dataChanged||e.updateTriggersChanged&&e.updateTriggersChanged.getHexagons){const{data:e,getHexagons:t}=A,r=[],{iterable:n,objectInfo:i}=s(e);for(const A of n){i.index++;const e=hA(t(A,i));for(const t of e){for(const A of t)wA(A);r.push(this.getSubLayerRow({polygon:t},A,i.index))}}this.setState({polygons:r})}}indexToBounds(){const{getElevation:A,getFillColor:e,getLineColor:t,getLineWidth:r}=this.props;return{data:this.state.polygons,getPolygon:A=>A.polygon,getElevation:this.getSubLayerAccessor(A),getFillColor:this.getSubLayerAccessor(e),getLineColor:this.getSubLayerAccessor(t),getLineWidth:this.getSubLayerAccessor(r)}}}jA.layerName="H3ClusterLayer",jA.defaultProps={getHexagons:{type:"accessor",value:A=>A.hexagons}};const NA="uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n",ZA={name:"mesh",vs:NA,fs:NA,uniformTypes:{pickFeatureIds:"f32"}};class JA extends f{getShaders(){const A=super.getShaders();return A.modules.push(C,ZA),{...A,vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec4 uvRegions;\nin vec3 featureIdsPickingColors;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec3 instanceModelMatrixCol0;\nin vec3 instanceModelMatrixCol1;\nin vec3 instanceModelMatrixCol2;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\nvec2 applyUVRegion(vec2 uv) {\n#ifdef HAS_UV_REGIONS\nreturn fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n#else\nreturn uv;\n#endif\n}\nvoid main(void) {\nvec2 uv = applyUVRegion(texCoords);\ngeometry.uv = uv;\nif (mesh.pickFeatureIds) {\ngeometry.pickingColor = featureIdsPickingColors;\n} else {\ngeometry.pickingColor = instancePickingColors;\n}\nmat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);\nvTexCoord = uv;\ncameraPosition = project.cameraPosition;\nvColor = vec4(colors * instanceColors.rgb, instanceColors.a);\nvec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;\nvec3 projectedPosition = project_position(positions);\nposition_commonspace = vec4(projectedPosition, 1.0);\ngl_Position = project_common_position_to_clipspace(position_commonspace);\ngeometry.position = position_commonspace;\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\ngeometry.normal = normals_commonspace;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n#ifdef MODULE_PBRMATERIAL\npbr_vPosition = geometry.position.xyz;\n#ifdef HAS_NORMALS\npbr_vNormal = geometry.normal;\n#endif\n#ifdef HAS_UV\npbr_vUV = uv;\n#else\npbr_vUV = vec2(0., 0.);\n#endif\ngeometry.uv = pbr_vUV;\n#endif\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\nprecision highp float;\nuniform sampler2D sampler;\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\n#ifdef MODULE_PBRMATERIAL\nfragColor = vColor * pbr_filterColor(vec4(0));\ngeometry.uv = pbr_vUV;\nfragColor.a *= layer.opacity;\n#else\ngeometry.uv = vTexCoord;\nvec3 normal;\nif (simpleMesh.flatShading) {\nnormal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n} else {\nnormal = normals_commonspace;\n}\nvec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;\nvec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\nfragColor = vec4(lightColor, color.a * layer.opacity);\n#endif\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n"}}initializeState(){const{featureIds:A}=this.props;super.initializeState();const e=this.getAttributeManager();A&&e.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(A){super.updateState(A);const{props:e,oldProps:t}=A;e.pbrMaterial!==t.pbrMaterial&&this.updatePbrMaterialUniforms(e.pbrMaterial)}draw(A){const{featureIds:e}=this.props,{model:t}=this.state;if(!t)return;const r={pickFeatureIds:Boolean(e)};t.shaderInputs.setProps({pbrProjection:{camera:this.context.viewport.cameraPosition},mesh:r}),super.draw(A)}getModel(A){const{id:e}=this.props,t=this.parseMaterial(this.props.pbrMaterial,A);this.setState({parsedPBRMaterial:t});const r=this.getShaders();return function(A){const e=A.positions||A.POSITION;A.COLOR_0||A.colors||(A.colors={size:4,value:new Uint8Array(e.value.length/e.size*4).fill(255),normalized:!0})}(A.attributes),new u(this.context.device,{...this.getShaders(),id:e,geometry:A,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...r.defines,...t?.defines,HAS_UV_REGIONS:A.attributes.uvRegions?1:0},parameters:t?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(A){const{model:e}=this.state;if(e){const{mesh:t}=this.props,r=this.parseMaterial(A,t);this.setState({parsedPBRMaterial:r});const{pbr_baseColorSampler:n}=r.bindings,{emptyTexture:i}=this.state,o={sampler:n||i,hasTexture:Boolean(n)},{camera:a,...s}={...r.bindings,...r.uniforms};e.shaderInputs.setProps({simpleMesh:o,pbrMaterial:s})}}parseMaterial(A,e){const t=Boolean(A.pbrMetallicRoughness&&A.pbrMetallicRoughness.baseColorTexture);return y(this.context.device,{unlit:t,...A},{NORMAL:e.attributes.normals,TEXCOORD_0:e.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(A){const e=this.props.featureIds,t=new Uint8ClampedArray(e.length*A.size),r=[];for(let A=0;A<e.length;A++)this.encodePickingColor(e[A],r),t[3*A]=r[0],t[3*A+1]=r[1],t[3*A+2]=r[2];A.value=t}finalizeState(A){super.finalizeState(A),this.state.parsedPBRMaterial?.generatedTextures.forEach((A=>A.destroy())),this.setState({parsedPBRMaterial:null})}}JA.layerName="MeshLayer",JA.defaultProps={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};const XA=[0],KA={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:L,onTilesetLoad:{type:"function",value:()=>{}},onTileLoad:{type:"function",value:()=>{}},onTileUnload:{type:"function",value:()=>{}},onTileError:{type:"function",value:()=>{}},_getMeshColor:{type:"function",value:()=>[255,255,255]}};class qA extends A{initializeState(){"onTileLoadFail"in this.props&&l.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:A}){return A.somethingChanged}updateState({props:A,oldProps:e,changeFlags:t}){if(A.data&&A.data!==e.data&&this._loadTileset(A.data),t.viewportChanged){const{activeViewports:A}=this.state;Object.keys(A).length&&(this._updateTileset(A),this.state.lastUpdatedViewports=A,this.state.activeViewports={})}if(t.propsChanged){const{layerMap:A}=this.state;for(const e in A)A[e].needsUpdate=!0}}activateViewport(A){const{activeViewports:e,lastUpdatedViewports:t}=this.state;this.internalState.viewport=A,e[A.id]=A;const r=t?.[A.id];r&&A.equals(r)||(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:A,sourceLayer:e}){const t=e&&e.props.tile;return A.picked&&(A.object=t),A.sourceTile=t,A}filterSubLayer({layer:A,viewport:e}){const{tile:t}=A.props,{id:r}=e;return t.selected&&t.viewportIds.includes(r)}_updateAutoHighlight(A){const e=A.sourceTile,t=this.state.layerMap[e?.id];t&&t.layer&&t.layer.updateAutoHighlight(A)}async _loadTileset(A){const{loadOptions:e={}}=this.props,t=this.props.loader||this.props.loaders,r=Array.isArray(t)?t[0]:t,n={loadOptions:{...e}};let i=A;if(r.preload){const t=await r.preload(A,e);t.url&&(i=t.url),t.headers&&(n.loadOptions.fetch={...n.loadOptions.fetch,headers:t.headers}),Object.assign(n,t)}const o=await I(i,r,n.loadOptions),a=new F(o,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...n});this.setState({tileset3d:a,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(a)}_onTileLoad(A){const{lastUpdatedViewports:e}=this.state;this.props.onTileLoad(A),this._updateTileset(e),this.setNeedsUpdate()}_onTileUnload(A){delete this.state.layerMap[A.id],this.props.onTileUnload(A)}_updateTileset(A){if(!A)return;const{tileset3d:e}=this.state,{timeline:t}=this.context,r=Object.keys(A).length;t&&r&&e&&e.selectTiles(Object.values(A)).then((A=>{this.state.frameNumber!==A&&this.setState({frameNumber:A})}))}_getSubLayer(A,e){if(!A.content)return null;switch(A.type){case T.POINTCLOUD:return this._makePointCloudLayer(A,e);case T.SCENEGRAPH:return this._make3DModelLayer(A);case T.MESH:return this._makeSimpleMeshLayer(A,e);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${A.content.type}`)}}_makePointCloudLayer(A,e){const{attributes:t,pointCount:r,constantRGBA:n,cartographicOrigin:o,modelMatrix:a}=A.content,{positions:s,normals:f,colors:u}=t;if(!s)return null;const l=e&&e.props.data||{header:{vertexCount:r},attributes:{POSITION:s,NORMAL:f,COLOR_0:u}},{pointSize:c,getPointColor:h}=this.props;return new(this.getSubLayerClass("pointcloud",Q))({pointSize:c},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${A.id}`,tile:A,data:l,coordinateSystem:i.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:n||h,_offset:0})}_make3DModelLayer(A){const{gltf:e,instances:t,cartographicOrigin:r,modelMatrix:n}=A.content;return new(this.getSubLayerClass("scenegraph",P))({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${A.id}`,tile:A,data:t||XA,scenegraph:e,coordinateSystem:i.METER_OFFSETS,coordinateOrigin:r,modelMatrix:n,getTransformMatrix:A=>A.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(A,e){const t=A.content,{attributes:r,indices:n,modelMatrix:o,cartographicOrigin:a,coordinateSystem:s=i.METER_OFFSETS,material:f,featureIds:u}=t,{_getMeshColor:l}=this.props,h=e&&e.props.mesh||new c({topology:"triangle-list",attributes:$A(r),indices:n});return new(this.getSubLayerClass("mesh",JA))(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${A.id}`,tile:A,mesh:h,data:XA,getColor:l(A),pbrMaterial:f,modelMatrix:o,coordinateOrigin:a,coordinateSystem:s,featureIds:u,_offset:0})}renderLayers(){const{tileset3d:A,layerMap:e}=this.state;return A?A.tiles.map((A=>{const t=e[A.id]=e[A.id]||{tile:A};let{layer:r}=t;return A.selected&&(r?t.needsUpdate&&(r=this._getSubLayer(A,r),t.needsUpdate=!1):r=this._getSubLayer(A)),t.layer=r,r})).filter(Boolean):null}}function $A(A){const e={};return e.positions={...A.positions,value:new Float32Array(A.positions.value)},A.normals&&(e.normals=A.normals),A.texCoords&&(e.texCoords=A.texCoords),A.colors&&(e.colors=A.colors),A.uvRegions&&(e.uvRegions=A.uvRegions),e}qA.defaultProps=KA,qA.layerName="Tile3DLayer";const Ae="\nuniform clipUniforms {\n vec4 bounds;\n} clip;\n\nbool clip_isInBounds(vec2 position) {\n return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3];\n}\n",ee={name:"clip",vs:Ae,uniformTypes:{bounds:"vec4<f32>"}},te={"vs:#decl":"\nout float clip_isVisible;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));\n","fs:#decl":"\nin float clip_isVisible;\n","fs:DECKGL_FILTER_COLOR":"\n if (clip_isVisible < 0.5) discard;\n"},re={name:"clip",fs:Ae,uniformTypes:{bounds:"vec4<f32>"}},ne={"vs:#decl":"\nout vec2 clip_commonPosition;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_commonPosition = geometry.position.xy;\n","fs:#decl":"\nin vec2 clip_commonPosition;\n","fs:DECKGL_FILTER_COLOR":"\n if (!clip_isInBounds(clip_commonPosition)) discard;\n"};class ie extends S{getShaders(){let A="instancePositions"in this.getAttributeManager().attributes;return void 0!==this.props.clipByInstance&&(A=Boolean(this.props.clipByInstance)),this.state.clipByInstance=A,A?{modules:[ee],inject:te}:{modules:[re],inject:ne}}draw(){const{clipBounds:A}=this.props,e={};if(this.state.clipByInstance)e.bounds=A;else{const t=this.projectPosition([A[0],A[1],0]),r=this.projectPosition([A[2],A[3],0]);e.bounds=[Math.min(t[0],r[0]),Math.min(t[1],r[1]),Math.max(t[0],r[0]),Math.max(t[1],r[1])]}this.setShaderModuleProps({clip:e})}}ie.defaultProps={clipBounds:[0,0,1,1],clipByInstance:void 0},ie.extensionName="ClipExtension";const oe={Point:ae,MultiPoint:function(A,e,t){return se(A,e,t)},LineString:fe,MultiLineString:function(A,e,t){return A.map((A=>fe(A,e,t)))},Polygon:ue,MultiPolygon:function(A,e,t){return A.map((A=>ue(A,e,t)))}};function ae([A,t],[r,n],i){const o=e(r[0],n[0],A),a=e(r[1],n[1],t);return i.unprojectFlat([o,a])}function se(A,e,t){return A.map((A=>ae(A,e,t)))}function fe(A,e,t){return se(A,e,t)}function ue(A,e,t){return A.map((A=>se(A,e,t)))}const le=["points","lines","polygons"];function ce(A,e,t,r){const n=A.featureIds.value;if(!n.length)return-1;let i=0,o=n[n.length-1]+1;if(r){const e=function(A,e){if(!A.__layers){const e={},{properties:t}=A;for(let A=0;A<t.length;A++){const{layerName:r}=t[A];r&&(e[r]?e[r][1]=A:e[r]=[A,A])}A.__layers=e}return A.__layers[e]}(A,r);if(!e)return-1;i=e[0],o=e[1]+1}let a=-1;if(e in A.numericProps){const r=A.numericProps[e].value.findIndex(((A,e)=>A===t&&n[e]>=i&&n[e]<o));return r>=0?A.globalFeatureIds.value[r]:-1}return e?a=he(A.properties,(A=>A[e]===t),i,o):A.fields&&(a=he(A.fields,(A=>A.id===t),i,o)),a>=0?function(A,e){if(!A.__ids){const e=[],t=A.featureIds.value,r=A.globalFeatureIds.value;for(let A=0;A<t.length;A++)e[t[A]]=r[A];A.__ids=e}return A.__ids[e]}(A,a):-1}function he(A,e,t,r){for(let n=t;n<r;n++)if(e(A[n],n))return n;return-1}const de={...v.defaultProps,data:b,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[x],binary:!0};class ge extends h{initializeState(){super.initializeState(),this.setState({binary:void 0===this.context.viewport.resolution&&this.props.binary,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:A,oldProps:e,context:t,changeFlags:r}){r.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:A,oldProps:e,context:t,changeFlags:r}),this._setWGS84PropertyForTiles());const{highlightColor:n}=A;n!==e.highlightColor&&Array.isArray(n)&&this.setState({highlightColor:n})}async _updateTileData(){let A=this.props.data,e=null;if("string"!=typeof A||d(A))A&&"object"==typeof A&&"tilejson"in A&&(e=A);else{const{onDataLoad:t,fetch:r}=this.props;this.setState({data:null,tileJSON:null});try{e=await r(A,{propName:"data",layer:this,loaders:[]})}catch(e){this.raiseError(e,"loading TileJSON"),A=null}t&&t(e,{propName:"data",layer:this})}e&&(A=e.tiles),this.setState({data:A,tileJSON:e})}_getTilesetOptions(){const A=super._getTilesetOptions(),e=this.state.tileJSON,{minZoom:t,maxZoom:r}=this.props;return e&&(Number.isFinite(e.minzoom)&&e.minzoom>t&&(A.minZoom=e.minzoom),Number.isFinite(e.maxzoom)&&(!Number.isFinite(r)||e.maxzoom<r)&&(A.maxZoom=e.maxzoom)),A}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(A){const{data:e,binary:t}=this.state,{index:r,signal:n}=A,i=g(e,A);if(!i)return Promise.reject("Invalid URL");let o=this.getLoadOptions();const{fetch:a}=this.props;return o={...o,mimeType:"application/x-protobuf",mvt:{...o?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:r},gis:t?{format:"binary"}:{}},a(i,{propName:"data",layer:this,loadOptions:o,signal:n})}renderSubLayers(A){const{x:e,y:t,z:r}=A.tile.index,n=Math.pow(2,r),o=512/n,a=-o,s=512*e/n,f=512*(1-t/n),u=(new w).scale([o,a,1]);A.autoHighlight=!1,this.context.viewport.resolution||(A.modelMatrix=u,A.coordinateOrigin=[s,f,0],A.coordinateSystem=i.CARTESIAN,A.extensions=[...A.extensions||[],new ie]);const c=super.renderSubLayers(A);return!this.state.binary||c instanceof v||l.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),c}_updateAutoHighlight(A){const{uniqueIdProperty:e}=this.props,{hoveredFeatureId:t,hoveredFeatureLayerName:r}=this.state,n=A.object;let i=null,o=null;n&&(i=we(n,e),o=ve(n));let{highlightColor:a}=this.props;"function"==typeof a&&(a=a(A)),t===i&&r===o||this.setState({highlightColor:a,hoveredFeatureId:i,hoveredFeatureLayerName:o})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(A){const e=super.getPickingInfo(A);if(this.state.binary&&-1!==e.index){const{data:t}=A.sourceLayer.props;e.object=G(t,{globalFeatureId:e.index})}return e.object&&!this._isWGS84()&&(e.object=be(e.object,e.tile.bbox,this.context.viewport)),e}getSubLayerPropsByTile(A){return{highlightedObjectIndex:this.getHighlightedObjectIndex(A),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(A){const{hoveredFeatureId:e,hoveredFeatureLayerName:t,binary:r}=this.state,{uniqueIdProperty:n,highlightedFeatureId:i}=this.props,o=A.content,a=Be(i);if(!Be(e)&&!a)return-1;const s=a?i:e;return Array.isArray(o)?o.findIndex((A=>{const e=we(A,n)===s,r=a||ve(A)===t;return e&&r})):o&&r?function(A,e,t,r){for(const n of le){const i=A[n]&&ce(A[n],e,t,r);if(i>=0)return i}return-1}(o,n,s,a?"":t):-1}_pickObjects(A){const{deck:e,viewport:t}=this.context;return e.pickObjects({x:t.x,y:t.y,width:t.width,height:t.height,layerIds:[this.id],maxObjects:A})}getRenderedFeatures(A=null){const e=this._pickObjects(A),t=new Set,r=[];for(const A of e){const e=we(A.object,this.props.uniqueIdProperty);void 0===e?r.push(A.object):t.has(e)||(t.add(e),r.push(A.object))}return r}_setWGS84PropertyForTiles(){const A="dataInWGS84";this.state.tileset.selectedTiles.forEach((e=>{e.hasOwnProperty(A)||Object.defineProperty(e,A,{get:()=>{if(!e.content)return null;if(this.state.binary&&Array.isArray(e.content)&&!e.content.length)return[];const{bbox:A}=e;if(void 0===e._contentWGS84&&B(A)){const t=this.state.binary?G(e.content):e.content;e._contentWGS84=t.map((e=>be(e,A,this.context.viewport)))}return e._contentWGS84}})}))}}function we(A,e){return A.properties&&e?A.properties[e]:"id"in A?A.id:void 0}function ve(A){return A.properties?.layerName||null}function Be(A){return null!=A&&""!==A}function be(A,e,t){const r={...A,geometry:{type:A.geometry.type}};return Object.defineProperty(r.geometry,"coordinates",{get:()=>{const r=function(A,e,t){const r=[t.projectFlat([e.west,e.north]),t.projectFlat([e.east,e.south])];return{...A,coordinates:oe[A.type](A.coordinates,r,t)}}(A.geometry,e,t);return r.coordinates}}),r}ge.layerName="MVTLayer",ge.defaultProps=de;const Me={};for(let A=0;A<32;A++)Me["0123456789bcdefghjkmnpqrstuvwxyz".charAt(A)]=A;class ke extends z{indexToBounds(){const{data:A,getGeohash:e}=this.props;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(A,t)=>function(A){const[e,t,r,n]=function(A){let e,t=!0,r=90,n=-90,i=180,o=-180,a=0;for(let s=0,f=A.length;s<f;s++){const f=A[s].toLowerCase();a=Me[f];for(let A=4;A>=0;A--){const s=a>>A&1;t?(e=(i+o)/2,1===s?o=e:i=e):(e=(r+n)/2,1===s?n=e:r=e),t=!t}}return[n,o,r,i]}(A);return[n,r,n,e,t,e,t,r,n,r]}(e(A,t))}}}ke.layerName="GeohashLayer",ke.defaultProps={getGeohash:{type:"accessor",value:A=>A.geohash}};export{MA as A5Layer,ke as GeohashLayer,pA as GreatCircleLayer,jA as H3ClusterLayer,VA as H3HexagonLayer,ge as MVTLayer,OA as QuadkeyLayer,RA as S2Layer,qA as Tile3DLayer,h as TileLayer,WA as TripsLayer,z as _GeoCellLayer,DA as _WMSLayer,g as _getURLFromTemplate}
|
|
7
|
+
CA=PA.exports,yA=function(){function A(A,e,t){this.low=0|A,this.high=0|e,this.unsigned=!!t}function e(A){return!0===(A&&A.__isLong__)}Object.defineProperty(A.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),A.isLong=e;var t={},r={};function n(A,e){var n,i,a;return e?(a=0<=(A>>>=0)&&A<256)&&(i=r[A])?i:(n=o(A,(0|A)<0?-1:0,!0),a&&(r[A]=n),n):(a=-128<=(A|=0)&&A<128)&&(i=t[A])?i:(n=o(A,A<0?-1:0,!1),a&&(t[A]=n),n)}function i(A,e){if(isNaN(A)||!isFinite(A))return e?g:d;if(e){if(A<0)return g;if(A>=l)return M}else{if(A<=-c)return k;if(A+1>=c)return b}return A<0?i(-A,e).neg():o(A%u|0,A/u|0,e)}function o(e,t,r){return new A(e,t,r)}A.fromInt=n,A.fromNumber=i,A.fromBits=o;var a=Math.pow;function s(A,e,t){if(0===A.length)throw Error("empty string");if("NaN"===A||"Infinity"===A||"+Infinity"===A||"-Infinity"===A)return d;if("number"==typeof e?(t=e,e=!1):e=!!e,(t=t||10)<2||36<t)throw RangeError("radix");var r;if((r=A.indexOf("-"))>0)throw Error("interior hyphen");if(0===r)return s(A.substring(1),e,t).neg();for(var n=i(a(t,8)),o=d,f=0;f<A.length;f+=8){var u=Math.min(8,A.length-f),l=parseInt(A.substring(f,f+u),t);if(u<8){var c=i(a(t,u));o=o.mul(c).add(i(l))}else o=(o=o.mul(n)).add(i(l))}return o.unsigned=e,o}function f(e){return e instanceof A?e:"number"==typeof e?i(e):"string"==typeof e?s(e):o(e.low,e.high,e.unsigned)}A.fromString=s,A.fromValue=f;var u=4294967296,l=u*u,c=l/2,h=n(1<<24),d=n(0);A.ZERO=d;var g=n(0,!0);A.UZERO=g;var w=n(1);A.ONE=w;var v=n(1,!0);A.UONE=v;var B=n(-1);A.NEG_ONE=B;var b=o(-1,2147483647,!1);A.MAX_VALUE=b;var M=o(-1,-1,!0);A.MAX_UNSIGNED_VALUE=M;var k=o(0,-2147483648,!1);A.MIN_VALUE=k;var m=A.prototype;return m.toInt=function(){return this.unsigned?this.low>>>0:this.low},m.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},m.toString=function(A){if((A=A||10)<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(k)){var e=i(A),t=this.div(e),r=t.mul(e).sub(this);return t.toString(A)+r.toInt().toString(A)}return"-"+this.neg().toString(A)}for(var n=i(a(A,6),this.unsigned),o=this,s="";;){var f=o.div(n),u=(o.sub(f.mul(n)).toInt()>>>0).toString(A);if((o=f).isZero())return u+s;for(;u.length<6;)u="0"+u;s=""+u+s}},m.getHighBits=function(){return this.high},m.getHighBitsUnsigned=function(){return this.high>>>0},m.getLowBits=function(){return this.low},m.getLowBitsUnsigned=function(){return this.low>>>0},m.getNumBitsAbs=function(){if(this.isNegative())return this.eq(k)?64:this.neg().getNumBitsAbs();for(var A=0!=this.high?this.high:this.low,e=31;e>0&&!(A&1<<e);e--);return 0!=this.high?e+33:e+1},m.isZero=function(){return 0===this.high&&0===this.low},m.isNegative=function(){return!this.unsigned&&this.high<0},m.isPositive=function(){return this.unsigned||this.high>=0},m.isOdd=function(){return!(1&~this.low)},m.isEven=function(){return!(1&this.low)},m.equals=function(A){return e(A)||(A=f(A)),(this.unsigned===A.unsigned||this.high>>>31!=1||A.high>>>31!=1)&&this.high===A.high&&this.low===A.low},m.eq=m.equals,m.notEquals=function(A){return!this.eq(A)},m.neq=m.notEquals,m.lessThan=function(A){return this.comp(A)<0},m.lt=m.lessThan,m.lessThanOrEqual=function(A){return this.comp(A)<=0},m.lte=m.lessThanOrEqual,m.greaterThan=function(A){return this.comp(A)>0},m.gt=m.greaterThan,m.greaterThanOrEqual=function(A){return this.comp(A)>=0},m.gte=m.greaterThanOrEqual,m.compare=function(A){if(e(A)||(A=f(A)),this.eq(A))return 0;var t=this.isNegative(),r=A.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1},m.comp=m.compare,m.negate=function(){return!this.unsigned&&this.eq(k)?k:this.not().add(w)},m.neg=m.negate,m.add=function(A){e(A)||(A=f(A));var t=0,r=0,n=0,i=0;return n+=(i+=(65535&this.low)+(65535&A.low))>>>16,r+=(n+=(this.low>>>16)+(A.low>>>16))>>>16,t+=(r+=(65535&this.high)+(65535&A.high))>>>16,t+=(this.high>>>16)+(A.high>>>16),o((n&=65535)<<16|(i&=65535),(t&=65535)<<16|(r&=65535),this.unsigned)},m.subtract=function(A){return e(A)||(A=f(A)),this.add(A.neg())},m.sub=m.subtract,m.multiply=function(A){if(this.isZero())return d;if(e(A)||(A=f(A)),A.isZero())return d;if(this.eq(k))return A.isOdd()?k:d;if(A.eq(k))return this.isOdd()?k:d;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(h)&&A.lt(h))return i(this.toNumber()*A.toNumber(),this.unsigned);var t=65535&this.high,r=this.low>>>16,n=65535&this.low,a=65535&A.high,s=A.low>>>16,u=65535&A.low,l=0,c=0,g=0,w=0;return g+=(w+=n*u)>>>16,c+=(g+=r*u)>>>16,g&=65535,c+=(g+=n*s)>>>16,l+=(c+=t*u)>>>16,c&=65535,l+=(c+=r*s)>>>16,c&=65535,l+=(c+=n*a)>>>16,l+=(this.high>>>16)*u+t*s+r*a+n*(A.high>>>16),o((g&=65535)<<16|(w&=65535),(l&=65535)<<16|(c&=65535),this.unsigned)},m.mul=m.multiply,m.divide=function(A){if(e(A)||(A=f(A)),A.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?g:d;var t,r,n;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return g;if(A.gt(this.shru(1)))return v;n=g}else{if(this.eq(k))return A.eq(w)||A.eq(B)?k:A.eq(k)?w:(t=this.shr(1).div(A).shl(1)).eq(d)?A.isNegative()?w:B:(r=this.sub(A.mul(t)),n=t.add(r.div(A)));if(A.eq(k))return this.unsigned?g:d;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();n=d}for(r=this;r.gte(A);){t=Math.max(1,Math.floor(r.toNumber()/A.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),s=o<=48?1:a(2,o-48),u=i(t),l=u.mul(A);l.isNegative()||l.gt(r);)l=(u=i(t-=s,this.unsigned)).mul(A);u.isZero()&&(u=w),n=n.add(u),r=r.sub(l)}return n},m.div=m.divide,m.modulo=function(A){return e(A)||(A=f(A)),this.sub(this.div(A).mul(A))},m.mod=m.modulo,m.not=function(){return o(~this.low,~this.high,this.unsigned)},m.and=function(A){return e(A)||(A=f(A)),o(this.low&A.low,this.high&A.high,this.unsigned)},m.or=function(A){return e(A)||(A=f(A)),o(this.low|A.low,this.high|A.high,this.unsigned)},m.xor=function(A){return e(A)||(A=f(A)),o(this.low^A.low,this.high^A.high,this.unsigned)},m.shiftLeft=function(A){return e(A)&&(A=A.toInt()),0==(A&=63)?this:A<32?o(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):o(0,this.low<<A-32,this.unsigned)},m.shl=m.shiftLeft,m.shiftRight=function(A){return e(A)&&(A=A.toInt()),0==(A&=63)?this:A<32?o(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):o(this.high>>A-32,this.high>=0?0:-1,this.unsigned)},m.shr=m.shiftRight,m.shiftRightUnsigned=function(A){if(e(A)&&(A=A.toInt()),0==(A&=63))return this;var t=this.high;return A<32?o(this.low>>>A|t<<32-A,t>>>A,this.unsigned):o(32===A?t:t>>>A-32,0,this.unsigned)},m.shru=m.shiftRightUnsigned,m.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},m.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},m.toBytes=function(A){return A?this.toBytesLE():this.toBytesBE()},m.toBytesLE=function(){var A=this.high,e=this.low;return[255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&A,A>>>8&255,A>>>16&255,A>>>24&255]},m.toBytesBE=function(){var A=this.high,e=this.low;return[A>>>24&255,A>>>16&255,A>>>8&255,255&A,e>>>24&255,e>>>16&255,e>>>8&255,255&e]},A},PA&&PA.exports?PA.exports=yA():(CA.dcodeIO=CA.dcodeIO||{}).Long=yA()),PA.exports),FA=E(IA);const TA=180/Math.PI;function LA(A,e,t){const r=1<<e;return[(A[0]+t[0])/r,(A[1]+t[1])/r]}function xA(A){return A>=.5?1/3*(4*A*A-1):1/3*(1-4*(1-A)*(1-A))}function GA(A,[e,t]){switch(A){case 0:return[1,e,t];case 1:return[-e,1,t];case 2:return[-e,-t,1];case 3:return[-1,-t,-e];case 4:return[t,-1,-e];case 5:return[t,e,-1];default:throw new Error("Invalid face")}}function SA([A,e,t]){const r=Math.atan2(t,Math.sqrt(A*A+e*e));return[Math.atan2(e,A)*TA,r*TA]}function UA(A,e,t,r){if(0===r){1===t&&(e[0]=A-1-e[0],e[1]=A-1-e[1]);const r=e[0];e[0]=e[1],e[1]=r}}function RA(A){return function({face:A,ij:e,level:t}){const r=[[0,0],[0,1],[1,1],[1,0],[0,0]],n=Math.max(1,Math.ceil(100*Math.pow(2,-t))),i=new Float64Array(4*n*2+2);let o=0,a=0;for(let f=0;f<4;f++){const u=r[f].slice(0),l=r[f+1],c=(l[0]-u[0])/n,h=(l[1]-u[1])/n;for(let r=0;r<n;r++){u[0]+=c,u[1]+=h;const r=SA(GA(A,[xA((s=LA(e,t,u))[0]),xA(s[1])]));Math.abs(r[1])>89.999&&(r[0]=a);const n=r[0]-a;r[0]+=n>180?-360:n<-180?360:0,i[o++]=r[0],i[o++]=r[1],a=r[0]}}var s;return i[o++]=i[0],i[o++]=i[1],i}(function(A){const e=A.split("/"),t=parseInt(e[0],10),r=e[1],n=r.length,i=[0,0];let o;for(let A=n-1;A>=0;A--){o=n-A;const e=r[A];let t=0,a=0;"1"===e?a=1:"2"===e?(t=1,a=1):"3"===e&&(t=1);const s=Math.pow(2,o-1);UA(s,i,t,a),i[0]+=s*t,i[1]+=s*a}if(t%2==1){const A=i[0];i[0]=i[1],i[1]=A}return{face:t,ij:i,level:o}}(function(A){if("string"==typeof A){if(A.indexOf("/")>0)return A;A=function(A){const e=A.padEnd(16,"0");return FA.fromString(e,16)}(A)}return function(A){let e=FA.fromString(A,!0,10).toString(2);for(;e.length<64;)e="0"+e;const t=e.lastIndexOf("1"),r=e.substring(0,3),n=e.substring(3,t),i=n.length/2,o=FA.fromString(r,!0,2).toString(10);let a=FA.fromString(n,!0,2).toString(4);for(;a.length<i;)a="0"+a;return`${o}/${a}`}(A.toString())}(A)))}class zA extends R{indexToBounds(){const{data:A,getS2Token:e}=this.props;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(A,t)=>RA(e(A,t))}}}zA.layerName="S2Layer",zA.defaultProps={getS2Token:{type:"accessor",value:A=>A.token}};class OA extends R{indexToBounds(){const{data:A,extruded:e,getQuadkey:t}=this.props,r=e?.99:1;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(A,e)=>function(A,e=1){const[t,r]=function(A,e){let t=0,r=0,n=1<<A.length;const i=n/512;for(let e=0;e<A.length;e++){n>>=1;const i=parseInt(A[e]);i%2&&(t|=n),i>1&&(r|=n)}return[[t/i,512-r/i],[(t+e)/i,512-(r+e)/i]]}(A,e),[n,i]=o(t),[a,s]=o(r);return[a,i,a,s,n,s,n,i,a,i]}(t(A,e),r),updateTriggers:{getPolygon:r}}}}OA.layerName="QuadkeyLayer",OA.defaultProps={getQuadkey:{type:"accessor",value:A=>A.quadkey}};const YA="uniform tripsUniforms {\n bool fadeTrail;\n float trailLength;\n float currentTime;\n} trips;\n",_A={name:"trips",vs:YA,fs:YA,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};class WA extends a{getShaders(){const A=super.getShaders();return A.inject={"vs:#decl":"in float instanceTimestamps;\nin float instanceNextTimestamps;\nout float vTime;\n","vs:#main-end":"vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;\n","fs:#decl":"in float vTime;\n","fs:#main-start":"if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) {\n discard;\n}\n","fs:DECKGL_FILTER_COLOR":"if(trips.fadeTrail) {\n color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;\n}\n"},A.modules=[...A.modules,_A],A}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(A){const{fadeTrail:e,trailLength:t,currentTime:r}=this.props;this.state.model.shaderInputs.setProps({trips:{fadeTrail:e,trailLength:t,currentTime:r}}),super.draw(A)}}WA.layerName="TripsLayer",WA.defaultProps={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:A=>A.timestamps}};const HA={...M.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:A=>A.hexagon},extruded:!0};class VA extends A{initializeState(){VA._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:A}){return this._shouldUseHighPrecision()?A.propsOrDataChanged:A.somethingChanged}updateState({props:A,changeFlags:e}){if(!0!==A.highPrecision&&(e.dataChanged||e.updateTriggersChanged&&e.updateTriggersChanged.getHexagon)){const A=this._calculateH3DataProps();this.setState(A)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let A=-1,e=!1,t=!1;const{iterable:r,objectInfo:n}=s(this.props.data);for(const s of r){n.index++;const r=this.props.getHexagon(s,n),f=(void 0,void 0,void 0,i=nA(r),K.isValidCell(o=i[0],a=i[1])?K.getResolution(o,a):-1);if(A<0){if(A=f,!this.props.highPrecision)break}else if(A!==f){t=!0;break}if(uA(r)){e=!0;break}}var i,o,a;return{resolution:A,edgeLengthKM:A>=0?dA(A,"km"):0,hasMultipleRes:t,hasPentagon:e}}_shouldUseHighPrecision(){if("auto"===this.props.highPrecision){const{resolution:A,hasPentagon:e,hasMultipleRes:t}=this.state,{viewport:r}=this.context;return Boolean(r?.resolution)||t||e||A>=0&&A<=5}return this.props.highPrecision}_updateVertices(A){if(this._shouldUseHighPrecision())return;const{resolution:e,edgeLengthKM:t,centerHex:r}=this.state;if(e<0)return;const n=this.props.centerHexagon||lA(A.latitude,A.longitude,e);if(r===n)return;if(r)try{if(function(A,e){var t=nA(A),r=t[0],n=t[1],i=nA(e),o=i[0],a=i[1],s=W._malloc(8);try{return X(K.gridDistance(r,n,o,a,s)),K.readInt64AsDoubleFromPointer(s)}finally{W._free(s)}}(r,n)*t<10)return}catch{}const{unitsPerMeter:i}=A.distanceScales;let o=BA(n);const[a,s]=cA(n),[f,u]=A.projectFlat([s,a]);o=o.map((e=>{const t=A.projectFlat(e);return[(t[0]-f)/i[0],(t[1]-u)/i[1]]})),this.setState({centerHex:n,vertices:o})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){const{elevationScale:A,material:e,coverage:t,extruded:r,wireframe:n,stroked:i,filled:o,lineWidthUnits:a,lineWidthScale:s,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:l,getElevation:c,getLineColor:h,getLineWidth:d,transitions:g,updateTriggers:w}=this.props;return{elevationScale:A,extruded:r,coverage:t,wireframe:n,stroked:i,filled:o,lineWidthUnits:a,lineWidthScale:s,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:e,getElevation:c,getFillColor:l,getLineColor:h,getLineWidth:d,transitions:g,updateTriggers:{getFillColor:w.getFillColor,getElevation:w.getElevation,getLineColor:w.getLineColor,getLineWidth:w.getLineWidth}}}_renderPolygonLayer(){const{data:A,getHexagon:e,updateTriggers:t,coverage:r}=this.props,n=this.getSubLayerClass("hexagon-cell-hifi",M),i=this._getForwardProps();return i.updateTriggers.getPolygon=function(A,e){let t;return t=null==A?e:"object"==typeof A?{...A,coverage:e}:{getHexagon:A,coverage:e},t}(t.getHexagon,r),new n(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:A,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(A,t)=>bA(BA(e(A,t),r))})}_renderColumnLayer(){const{data:A,getHexagon:e,updateTriggers:t}=this.props,r=this.getSubLayerClass("hexagon-cell",m),n=this._getForwardProps();return n.updateTriggers.getPosition=t.getHexagon,new r(n,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:n.updateTriggers}),{data:A,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:vA.bind(null,e)})}}VA.defaultProps=HA,VA.layerName="H3HexagonLayer",VA._checkH3Lib=()=>{};class jA extends R{initializeState(){VA._checkH3Lib()}updateState({props:A,changeFlags:e}){if(e.dataChanged||e.updateTriggersChanged&&e.updateTriggersChanged.getHexagons){const{data:e,getHexagons:t}=A,r=[],{iterable:n,objectInfo:i}=s(e);for(const A of n){i.index++;const e=hA(t(A,i));for(const t of e){for(const A of t)wA(A);r.push(this.getSubLayerRow({polygon:t},A,i.index))}}this.setState({polygons:r})}}indexToBounds(){const{getElevation:A,getFillColor:e,getLineColor:t,getLineWidth:r}=this.props;return{data:this.state.polygons,getPolygon:A=>A.polygon,getElevation:this.getSubLayerAccessor(A),getFillColor:this.getSubLayerAccessor(e),getLineColor:this.getSubLayerAccessor(t),getLineWidth:this.getSubLayerAccessor(r)}}}jA.layerName="H3ClusterLayer",jA.defaultProps={getHexagons:{type:"accessor",value:A=>A.hexagons}};const NA="uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n",ZA={name:"mesh",vs:NA,fs:NA,uniformTypes:{pickFeatureIds:"f32"}};class JA extends f{getShaders(){const A=super.getShaders();return A.modules.push(C,ZA),{...A,vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec4 uvRegions;\nin vec3 featureIdsPickingColors;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec3 instanceModelMatrixCol0;\nin vec3 instanceModelMatrixCol1;\nin vec3 instanceModelMatrixCol2;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\nvec2 applyUVRegion(vec2 uv) {\n#ifdef HAS_UV_REGIONS\nreturn fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n#else\nreturn uv;\n#endif\n}\nvoid main(void) {\nvec2 uv = applyUVRegion(texCoords);\ngeometry.uv = uv;\nif (mesh.pickFeatureIds) {\ngeometry.pickingColor = featureIdsPickingColors;\n} else {\ngeometry.pickingColor = instancePickingColors;\n}\nmat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);\nvTexCoord = uv;\ncameraPosition = project.cameraPosition;\nvColor = vec4(colors * instanceColors.rgb, instanceColors.a);\nvec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;\nvec3 projectedPosition = project_position(positions);\nposition_commonspace = vec4(projectedPosition, 1.0);\ngl_Position = project_common_position_to_clipspace(position_commonspace);\ngeometry.position = position_commonspace;\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\ngeometry.normal = normals_commonspace;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n#ifdef MODULE_PBRMATERIAL\npbr_vPosition = geometry.position.xyz;\n#ifdef HAS_NORMALS\npbr_vNormal = geometry.normal;\n#endif\n#ifdef HAS_UV\npbr_vUV = uv;\n#else\npbr_vUV = vec2(0., 0.);\n#endif\ngeometry.uv = pbr_vUV;\n#endif\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\nprecision highp float;\nuniform sampler2D sampler;\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\n#ifdef MODULE_PBRMATERIAL\nfragColor = vColor * pbr_filterColor(vec4(0));\ngeometry.uv = pbr_vUV;\nfragColor.a *= layer.opacity;\n#else\ngeometry.uv = vTexCoord;\nvec3 normal;\nif (simpleMesh.flatShading) {\nnormal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n} else {\nnormal = normals_commonspace;\n}\nvec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;\nvec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\nfragColor = vec4(lightColor, color.a * layer.opacity);\n#endif\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n"}}initializeState(){const{featureIds:A}=this.props;super.initializeState();const e=this.getAttributeManager();A&&e.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(A){super.updateState(A);const{props:e,oldProps:t}=A;e.pbrMaterial!==t.pbrMaterial&&this.updatePbrMaterialUniforms(e.pbrMaterial)}draw(A){const{featureIds:e}=this.props,{model:t}=this.state;if(!t)return;const r={pickFeatureIds:Boolean(e)};t.shaderInputs.setProps({pbrProjection:{camera:this.context.viewport.cameraPosition},mesh:r}),super.draw(A)}getModel(A){const{id:e}=this.props,t=this.parseMaterial(this.props.pbrMaterial,A);this.setState({parsedPBRMaterial:t});const r=this.getShaders();return function(A){const e=A.positions||A.POSITION;A.COLOR_0||A.colors||(A.colors={size:4,value:new Uint8Array(e.value.length/e.size*4).fill(255),normalized:!0})}(A.attributes),new u(this.context.device,{...this.getShaders(),id:e,geometry:A,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...r.defines,...t?.defines,HAS_UV_REGIONS:A.attributes.uvRegions?1:0},parameters:t?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(A){const{model:e}=this.state;if(e){const{mesh:t}=this.props,r=this.parseMaterial(A,t);this.setState({parsedPBRMaterial:r});const{pbr_baseColorSampler:n}=r.bindings,{emptyTexture:i}=this.state,o={sampler:n||i,hasTexture:Boolean(n)},{camera:a,...s}={...r.bindings,...r.uniforms};e.shaderInputs.setProps({simpleMesh:o,pbrMaterial:s})}}parseMaterial(A,e){const t=Boolean(A.pbrMetallicRoughness&&A.pbrMetallicRoughness.baseColorTexture);return y(this.context.device,{unlit:t,...A},{NORMAL:e.attributes.normals,TEXCOORD_0:e.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(A){const e=this.props.featureIds,t=new Uint8ClampedArray(e.length*A.size),r=[];for(let A=0;A<e.length;A++)this.encodePickingColor(e[A],r),t[3*A]=r[0],t[3*A+1]=r[1],t[3*A+2]=r[2];A.value=t}finalizeState(A){super.finalizeState(A),this.state.parsedPBRMaterial?.generatedTextures.forEach((A=>A.destroy())),this.setState({parsedPBRMaterial:null})}}JA.layerName="MeshLayer",JA.defaultProps={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};const XA=[0],KA={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:L,onTilesetLoad:{type:"function",value:()=>{}},onTileLoad:{type:"function",value:()=>{}},onTileUnload:{type:"function",value:()=>{}},onTileError:{type:"function",value:()=>{}},_getMeshColor:{type:"function",value:()=>[255,255,255]}};class qA extends A{initializeState(){"onTileLoadFail"in this.props&&l.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:A}){return A.somethingChanged}updateState({props:A,oldProps:e,changeFlags:t}){if(A.data&&A.data!==e.data&&this._loadTileset(A.data),t.viewportChanged){const{activeViewports:A}=this.state;Object.keys(A).length&&(this._updateTileset(A),this.state.lastUpdatedViewports=A,this.state.activeViewports={})}if(t.propsChanged){const{layerMap:A}=this.state;for(const e in A)A[e].needsUpdate=!0}}activateViewport(A){const{activeViewports:e,lastUpdatedViewports:t}=this.state;this.internalState.viewport=A,e[A.id]=A;const r=t?.[A.id];r&&A.equals(r)||(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:A,sourceLayer:e}){const t=e&&e.props.tile;return A.picked&&(A.object=t),A.sourceTile=t,A}filterSubLayer({layer:A,viewport:e}){const{tile:t}=A.props,{id:r}=e;return t.selected&&t.viewportIds.includes(r)}_updateAutoHighlight(A){const e=A.sourceTile,t=this.state.layerMap[e?.id];t&&t.layer&&t.layer.updateAutoHighlight(A)}async _loadTileset(A){const{loadOptions:e={}}=this.props,t=this.props.loader||this.props.loaders,r=Array.isArray(t)?t[0]:t,n={loadOptions:{...e}};let i=A;if(r.preload){const t=await r.preload(A,e);t.url&&(i=t.url),t.headers&&(n.loadOptions.fetch={...n.loadOptions.fetch,headers:t.headers}),Object.assign(n,t)}const o=await I(i,r,n.loadOptions),a=new F(o,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...n});this.setState({tileset3d:a,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(a)}_onTileLoad(A){const{lastUpdatedViewports:e}=this.state;this.props.onTileLoad(A),this._updateTileset(e),this.setNeedsUpdate()}_onTileUnload(A){delete this.state.layerMap[A.id],this.props.onTileUnload(A)}_updateTileset(A){if(!A)return;const{tileset3d:e}=this.state,{timeline:t}=this.context,r=Object.keys(A).length;t&&r&&e&&e.selectTiles(Object.values(A)).then((A=>{this.state.frameNumber!==A&&this.setState({frameNumber:A})}))}_getSubLayer(A,e){if(!A.content)return null;switch(A.type){case T.POINTCLOUD:return this._makePointCloudLayer(A,e);case T.SCENEGRAPH:return this._make3DModelLayer(A);case T.MESH:return this._makeSimpleMeshLayer(A,e);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${A.content.type}`)}}_makePointCloudLayer(A,e){const{attributes:t,pointCount:r,constantRGBA:n,cartographicOrigin:o,modelMatrix:a}=A.content,{positions:s,normals:f,colors:u}=t;if(!s)return null;const l=e&&e.props.data||{header:{vertexCount:r},attributes:{POSITION:s,NORMAL:f,COLOR_0:u}},{pointSize:c,getPointColor:h}=this.props;return new(this.getSubLayerClass("pointcloud",Q))({pointSize:c},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${A.id}`,tile:A,data:l,coordinateSystem:i.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:n||h,_offset:0})}_make3DModelLayer(A){const{gltf:e,instances:t,cartographicOrigin:r,modelMatrix:n}=A.content;return new(this.getSubLayerClass("scenegraph",P))({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${A.id}`,tile:A,data:t||XA,scenegraph:e,coordinateSystem:i.METER_OFFSETS,coordinateOrigin:r,modelMatrix:n,getTransformMatrix:A=>A.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(A,e){const t=A.content,{attributes:r,indices:n,modelMatrix:o,cartographicOrigin:a,coordinateSystem:s=i.METER_OFFSETS,material:f,featureIds:u}=t,{_getMeshColor:l}=this.props,h=e&&e.props.mesh||new c({topology:"triangle-list",attributes:$A(r),indices:n});return new(this.getSubLayerClass("mesh",JA))(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${A.id}`,tile:A,mesh:h,data:XA,getColor:l(A),pbrMaterial:f,modelMatrix:o,coordinateOrigin:a,coordinateSystem:s,featureIds:u,_offset:0})}renderLayers(){const{tileset3d:A,layerMap:e}=this.state;return A?A.tiles.map((A=>{const t=e[A.id]=e[A.id]||{tile:A};let{layer:r}=t;return A.selected&&(r?t.needsUpdate&&(r=this._getSubLayer(A,r),t.needsUpdate=!1):r=this._getSubLayer(A)),t.layer=r,r})).filter(Boolean):null}}function $A(A){const e={};return e.positions={...A.positions,value:new Float32Array(A.positions.value)},A.normals&&(e.normals=A.normals),A.texCoords&&(e.texCoords=A.texCoords),A.colors&&(e.colors=A.colors),A.uvRegions&&(e.uvRegions=A.uvRegions),e}qA.defaultProps=KA,qA.layerName="Tile3DLayer";const Ae="\nuniform clipUniforms {\n vec4 bounds;\n} clip;\n\nbool clip_isInBounds(vec2 position) {\n return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3];\n}\n",ee={name:"clip",vs:Ae,uniformTypes:{bounds:"vec4<f32>"}},te={"vs:#decl":"\nout float clip_isVisible;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));\n","fs:#decl":"\nin float clip_isVisible;\n","fs:DECKGL_FILTER_COLOR":"\n if (clip_isVisible < 0.5) discard;\n"},re={name:"clip",fs:Ae,uniformTypes:{bounds:"vec4<f32>"}},ne={"vs:#decl":"\nout vec2 clip_commonPosition;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_commonPosition = geometry.position.xy;\n","fs:#decl":"\nin vec2 clip_commonPosition;\n","fs:DECKGL_FILTER_COLOR":"\n if (!clip_isInBounds(clip_commonPosition)) discard;\n"};class ie extends S{getShaders(){let A="instancePositions"in this.getAttributeManager().attributes;return void 0!==this.props.clipByInstance&&(A=Boolean(this.props.clipByInstance)),this.state.clipByInstance=A,A?{modules:[ee],inject:te}:{modules:[re],inject:ne}}draw(){const{clipBounds:A}=this.props,e={};if(this.state.clipByInstance)e.bounds=A;else{const t=this.projectPosition([A[0],A[1],0]),r=this.projectPosition([A[2],A[3],0]);e.bounds=[Math.min(t[0],r[0]),Math.min(t[1],r[1]),Math.max(t[0],r[0]),Math.max(t[1],r[1])]}this.setShaderModuleProps({clip:e})}}ie.defaultProps={clipBounds:[0,0,1,1],clipByInstance:void 0},ie.extensionName="ClipExtension";const oe={Point:ae,MultiPoint:function(A,e,t){return se(A,e,t)},LineString:fe,MultiLineString:function(A,e,t){return A.map((A=>fe(A,e,t)))},Polygon:ue,MultiPolygon:function(A,e,t){return A.map((A=>ue(A,e,t)))}};function ae([A,t],[r,n],i){const o=e(r[0],n[0],A),a=e(r[1],n[1],t);return i.unprojectFlat([o,a])}function se(A,e,t){return A.map((A=>ae(A,e,t)))}function fe(A,e,t){return se(A,e,t)}function ue(A,e,t){return A.map((A=>se(A,e,t)))}const le=["points","lines","polygons"];function ce(A,e,t,r){const n=A.featureIds.value;if(!n.length)return-1;let i=0,o=n[n.length-1]+1;if(r){const e=function(A,e){if(!A.__layers){const e={},{properties:t}=A;for(let A=0;A<t.length;A++){const{layerName:r}=t[A];r&&(e[r]?e[r][1]=A:e[r]=[A,A])}A.__layers=e}return A.__layers[e]}(A,r);if(!e)return-1;i=e[0],o=e[1]+1}let a=-1;if(e in A.numericProps){const r=A.numericProps[e].value.findIndex(((A,e)=>A===t&&n[e]>=i&&n[e]<o));return r>=0?A.globalFeatureIds.value[r]:-1}return e?a=he(A.properties,(A=>A[e]===t),i,o):A.fields&&(a=he(A.fields,(A=>A.id===t),i,o)),a>=0?function(A,e){if(!A.__ids){const e=[],t=A.featureIds.value,r=A.globalFeatureIds.value;for(let A=0;A<t.length;A++)e[t[A]]=r[A];A.__ids=e}return A.__ids[e]}(A,a):-1}function he(A,e,t,r){for(let n=t;n<r;n++)if(e(A[n],n))return n;return-1}const de={...v.defaultProps,data:b,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[x],binary:!0};class ge extends h{initializeState(){super.initializeState(),this.setState({binary:void 0===this.context.viewport.resolution&&this.props.binary,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:A,oldProps:e,context:t,changeFlags:r}){r.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:A,oldProps:e,context:t,changeFlags:r}),this._setWGS84PropertyForTiles());const{highlightColor:n}=A;n!==e.highlightColor&&Array.isArray(n)&&this.setState({highlightColor:n})}async _updateTileData(){let A=this.props.data,e=null;if("string"!=typeof A||d(A))A&&"object"==typeof A&&"tilejson"in A&&(e=A);else{const{onDataLoad:t,fetch:r}=this.props;this.setState({data:null,tileJSON:null});try{e=await r(A,{propName:"data",layer:this,loaders:[]})}catch(e){this.raiseError(e,"loading TileJSON"),A=null}t&&t(e,{propName:"data",layer:this})}e&&(A=e.tiles),this.setState({data:A,tileJSON:e})}_getTilesetOptions(){const A=super._getTilesetOptions(),e=this.state.tileJSON,{minZoom:t,maxZoom:r}=this.props;return e&&(Number.isFinite(e.minzoom)&&e.minzoom>t&&(A.minZoom=e.minzoom),Number.isFinite(e.maxzoom)&&(!Number.isFinite(r)||e.maxzoom<r)&&(A.maxZoom=e.maxzoom)),A}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(A){const{data:e,binary:t}=this.state,{index:r,signal:n}=A,i=g(e,A);if(!i)return Promise.reject("Invalid URL");let o=this.getLoadOptions();const{fetch:a}=this.props;return o={...o,mimeType:"application/x-protobuf",mvt:{...o?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:r},gis:t?{format:"binary"}:{}},a(i,{propName:"data",layer:this,loadOptions:o,signal:n})}renderSubLayers(A){const{x:e,y:t,z:r}=A.tile.index,n=Math.pow(2,r),o=512/n,a=-o,s=512*e/n,f=512*(1-t/n),u=(new w).scale([o,a,1]);A.autoHighlight=!1,this.context.viewport.resolution||(A.modelMatrix=u,A.coordinateOrigin=[s,f,0],A.coordinateSystem=i.CARTESIAN,A.extensions=[...A.extensions||[],new ie]);const c=super.renderSubLayers(A);return!this.state.binary||c instanceof v||l.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),c}_updateAutoHighlight(A){const{uniqueIdProperty:e}=this.props,{hoveredFeatureId:t,hoveredFeatureLayerName:r}=this.state,n=A.object;let i=null,o=null;n&&(i=we(n,e),o=ve(n));let{highlightColor:a}=this.props;"function"==typeof a&&(a=a(A)),t===i&&r===o||this.setState({highlightColor:a,hoveredFeatureId:i,hoveredFeatureLayerName:o})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(A){const e=super.getPickingInfo(A);if(this.state.binary&&-1!==e.index){const{data:t}=A.sourceLayer.props;e.object=G(t,{globalFeatureId:e.index})}return e.object&&!this._isWGS84()&&(e.object=be(e.object,e.tile.bbox,this.context.viewport)),e}getSubLayerPropsByTile(A){return{highlightedObjectIndex:this.getHighlightedObjectIndex(A),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(A){const{hoveredFeatureId:e,hoveredFeatureLayerName:t,binary:r}=this.state,{uniqueIdProperty:n,highlightedFeatureId:i}=this.props,o=A.content,a=Be(i);if(!Be(e)&&!a)return-1;const s=a?i:e;return Array.isArray(o)?o.findIndex((A=>{const e=we(A,n)===s,r=a||ve(A)===t;return e&&r})):o&&r?function(A,e,t,r){for(const n of le){const i=A[n]&&ce(A[n],e,t,r);if(i>=0)return i}return-1}(o,n,s,a?"":t):-1}_pickObjects(A){const{deck:e,viewport:t}=this.context;return e.pickObjects({x:t.x,y:t.y,width:t.width,height:t.height,layerIds:[this.id],maxObjects:A})}getRenderedFeatures(A=null){const e=this._pickObjects(A),t=new Set,r=[];for(const A of e){const e=we(A.object,this.props.uniqueIdProperty);void 0===e?r.push(A.object):t.has(e)||(t.add(e),r.push(A.object))}return r}_setWGS84PropertyForTiles(){const A="dataInWGS84";this.state.tileset.selectedTiles.forEach((e=>{e.hasOwnProperty(A)||Object.defineProperty(e,A,{get:()=>{if(!e.content)return null;if(this.state.binary&&Array.isArray(e.content)&&!e.content.length)return[];const{bbox:A}=e;if(void 0===e._contentWGS84&&B(A)){const t=this.state.binary?G(e.content):e.content;e._contentWGS84=t.map((e=>be(e,A,this.context.viewport)))}return e._contentWGS84}})}))}}function we(A,e){return A.properties&&e?A.properties[e]:"id"in A?A.id:void 0}function ve(A){return A.properties?.layerName||null}function Be(A){return null!=A&&""!==A}function be(A,e,t){const r={...A,geometry:{type:A.geometry.type}};return Object.defineProperty(r.geometry,"coordinates",{get:()=>{const r=function(A,e,t){const r=[t.projectFlat([e.west,e.north]),t.projectFlat([e.east,e.south])];return{...A,coordinates:oe[A.type](A.coordinates,r,t)}}(A.geometry,e,t);return r.coordinates}}),r}ge.layerName="MVTLayer",ge.defaultProps=de;const Me={};for(let A=0;A<32;A++)Me["0123456789bcdefghjkmnpqrstuvwxyz".charAt(A)]=A;class ke extends R{indexToBounds(){const{data:A,getGeohash:e}=this.props;return{data:A,_normalize:!1,positionFormat:"XY",getPolygon:(A,t)=>function(A){const[e,t,r,n]=function(A){let e,t=!0,r=90,n=-90,i=180,o=-180,a=0;for(let s=0,f=A.length;s<f;s++){const f=A[s].toLowerCase();a=Me[f];for(let A=4;A>=0;A--){const s=a>>A&1;t?(e=(i+o)/2,1===s?o=e:i=e):(e=(r+n)/2,1===s?n=e:r=e),t=!t}}return[n,o,r,i]}(A);return[n,r,n,e,t,e,t,r,n,r]}(e(A,t))}}}ke.layerName="GeohashLayer",ke.defaultProps={getGeohash:{type:"accessor",value:A=>A.geohash}};export{MA as A5Layer,ke as GeohashLayer,pA as GreatCircleLayer,jA as H3ClusterLayer,VA as H3HexagonLayer,ge as MVTLayer,OA as QuadkeyLayer,zA as S2Layer,qA as Tile3DLayer,h as TileLayer,WA as TripsLayer,R as _GeoCellLayer,DA as _WMSLayer,g as _getURLFromTemplate}
|