diff --git a/dist/spa/assets/ErrorNotFound.c4812c2a.js b/dist/spa/assets/ErrorNotFound.c4812c2a.js new file mode 100644 index 0000000..5c3d5d5 --- /dev/null +++ b/dist/spa/assets/ErrorNotFound.c4812c2a.js @@ -0,0 +1 @@ +import{ah as t,aX as o,ai as a,aj as s,an as e,ak as n,am as r}from"./index.d5b71521.js";const c=o({name:"ErrorNotFound"}),l={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},d=e("div",{style:{"font-size":"30vh"}}," 404 ",-1),i=e("div",{class:"text-h2",style:{opacity:".4"}}," Oops. Nothing here... ",-1);function _(p,f,h,u,m,x){return a(),s("div",l,[e("div",null,[d,i,n(r,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])])}var N=t(c,[["render",_]]);export{N as default}; diff --git a/dist/spa/assets/IndexPage.4fe7212a.js b/dist/spa/assets/IndexPage.4fe7212a.js new file mode 100644 index 0000000..09dcddb --- /dev/null +++ b/dist/spa/assets/IndexPage.4fe7212a.js @@ -0,0 +1 @@ +import{Q as e}from"./QPage.fbcc8738.js";import{ah as a,aX as t,ai as n,aT as o,al as s,an as r}from"./index.d5b71521.js";const c=t({name:"IndexPage"}),l=r("img",{alt:"Unreal Vault Organizer logo",style:{width:"200px",height:"200px"}},null,-1);function i(p,d,f,_,x,m){return n(),o(e,{class:"flex flex-center"},{default:s(()=>[l]),_:1})}var u=a(c,[["render",i]]);export{u as default}; diff --git a/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff b/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff new file mode 100644 index 0000000..a815cf8 Binary files /dev/null and b/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff differ diff --git a/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff b/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff new file mode 100644 index 0000000..d39bb52 Binary files /dev/null and b/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff differ diff --git a/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff b/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff new file mode 100644 index 0000000..36979ae Binary files /dev/null and b/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff differ diff --git a/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff b/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff new file mode 100644 index 0000000..db0012d Binary files /dev/null and b/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff differ diff --git a/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff b/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff new file mode 100644 index 0000000..04cbe94 Binary files /dev/null and b/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff differ diff --git a/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff b/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff new file mode 100644 index 0000000..9eaa94f Binary files /dev/null and b/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff differ diff --git a/dist/spa/assets/MainLayout.78f1fccc.css b/dist/spa/assets/MainLayout.78f1fccc.css new file mode 100644 index 0000000..d0589d6 --- /dev/null +++ b/dist/spa/assets/MainLayout.78f1fccc.css @@ -0,0 +1 @@ +.mapbox-gl-draw_ctrl-bottom-left,.mapbox-gl-draw_ctrl-top-left{margin-left:0;border-radius:0 4px 4px 0}.mapbox-gl-draw_ctrl-top-right,.mapbox-gl-draw_ctrl-bottom-right{margin-right:0;border-radius:4px 0 0 4px}.mapbox-gl-draw_ctrl-draw{background-color:#000000bf;border-color:#000000e6}.mapbox-gl-draw_ctrl-draw>button{border-color:#000000e6;color:#ffffff80;width:30px;height:30px}.mapbox-gl-draw_ctrl-draw>button:hover{background-color:#000000d9;color:#ffffffbf}.mapbox-gl-draw_ctrl-draw>button.active,.mapbox-gl-draw_ctrl-draw>button.active:hover{background-color:#000000f2;color:#fff}.mapbox-gl-draw_ctrl-draw-btn{background-repeat:no-repeat;background-position:center}.mapbox-gl-draw_point{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/>%3C/svg>')}.mapbox-gl-draw_polygon{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/>%3C/svg>')}.mapbox-gl-draw_line{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/>%3C/svg>')}.mapbox-gl-draw_trash{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/>%3C/svg>')}.mapbox-gl-draw_uncombine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="m12 2c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm4 4c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l1 1c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-1-1c-.2-.2-.4-.3-.7-.3zm-7 1c-1 0-1 1-.5 1.5.3.3 1 1 1 1l-1 1s-.5.5 0 1 1 0 1 0l1-1 1 1c.5.5 1.5.5 1.5-.5v-4zm-5 3c-.3 0-.5.1-.7.3l-1 1c-.4.4-.4 1 0 1.4l4.9 4.9c.4.4 1 .4 1.4 0l1-1c.4-.4.4-1 0-1.4l-4.9-4.9c-.1-.2-.4-.3-.7-.3z"/>%3C/svg>')}.mapbox-gl-draw_combine{background-image:url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20">%3Cpath d="M12.1,2c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l4.9,4.9c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-4.9-4.9C12.6,2.1,12.3,2,12.1,2z M8,8C7,8,7,9,7.5,9.5c0.3,0.3,1,1,1,1l-1,1c0,0-0.5,0.5,0,1s1,0,1,0l1-1l1,1 C11,13,12,13,12,12V8H8z M4,10c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1c0.4-0.4,0.4-1,0-1.4 l-1-1C4.5,10.1,4.3,10,4,10z M8,14c-0.3,0-0.5,0.1-0.7,0.3l-1,1c-0.4,0.4-0.4,1,0,1.4l1,1c0.4,0.4,1,0.4,1.4,0l1-1 c0.4-0.4,0.4-1,0-1.4l-1-1C8.5,14.1,8.3,14,8,14z"/>%3C/svg>')}.mapboxgl-map.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:pointer}.mapboxgl-map.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mouse-add .mapboxgl-canvas-container.mapboxgl-interactive{cursor:crosshair}.mapboxgl-map.mouse-move.mode-direct_select .mapboxgl-canvas-container.mapboxgl-interactive{cursor:grab;cursor:-webkit-grab}.mapboxgl-map.mode-direct_select.feature-vertex.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mode-direct_select.feature-midpoint.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:cell}.mapboxgl-map.mode-direct_select.feature-feature.mouse-move .mapboxgl-canvas-container.mapboxgl-interactive{cursor:move}.mapboxgl-map.mode-static.mouse-pointer .mapboxgl-canvas-container.mapboxgl-interactive{cursor:grab;cursor:-webkit-grab}.mapbox-gl-draw_boxselect{pointer-events:none;position:absolute;top:0;left:0;width:0;height:0;background:rgba(0,0,0,.1);border:2px dotted #fff;opacity:.5}#mb-tbar{z-index:1}.mapboxgl-popup{max-width:400px;font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif} diff --git a/dist/spa/assets/MainLayout.9c08e3a6.js b/dist/spa/assets/MainLayout.9c08e3a6.js new file mode 100644 index 0000000..6574d43 --- /dev/null +++ b/dist/spa/assets/MainLayout.9c08e3a6.js @@ -0,0 +1,1181 @@ +import{r as ref,i as isRuntimeSsrPreHydration,o as onMounted,c as createComponent,a as onBeforeUnmount,n as noop,b as nextTick,h,g as getCurrentInstance,l as listenOpts,d as inject,e as emptyRenderFn,f as computed,w as watch,j as hUniqueSlot,k as layoutKey,P as Platform,m as createDirective,p as client$1,q as leftClick,s as addEvt,t as preventDraggable,u as prevent,v as stop,x as position,y as cleanEvt,z as stopAndPrevent,A as useModelToggleProps,B as useDarkProps,C as useModelToggleEmits,D as useDark,E as useTimeout,F as useModelToggle,G as useHistory,H as withDirectives,I as hDir,J as hSlot,K as usePreventScroll,L as tabsKey,R as Ripple,M as isKeyCode,N as shouldIgnoreKey,Q as QIcon,O as hMergeSlot,S as isDeepEqual,T as uid$1,U as useTick,V as provide,W as onDeactivated,X as onActivated,Y as Transition,Z as getNormalizedVNodes,_ as KeepAlive,$ as pageContainerKey,a0 as getScrollTarget,a1 as getVerticalScrollPosition,a2 as getHorizontalScrollPosition,a3 as getScrollbarWidth,a4 as reactive,a5 as onUnmounted,a6 as portalProxyList,a7 as useTransitionProps,a8 as useTransition,a9 as usePortal,aa as addFocusout,ab as removeFocusout,ac as removeEscapeKey,ad as closePortalMenus,ae as addEscapeKey,af as addFocusFn,ag as childHasFocus,ah as _export_sfc,ai as openBlock,aj as createElementBlock,ak as createVNode,al as withCtx,am as QBtn,an as createBaseVNode,ao as QOptionGroup,ap as createTextVNode,aq as toDisplayString,ar as QSpinner,as as useFieldProps,at as useFieldEmits,au as useField,av as useFieldState,aw as useSizeProps,ax as useSize,ay as hMergeSlotSafely,az as useRouterLinkProps,aA as useRouterLink,aB as debounce$2,aC as onBeforeMount,aD as useFormProps,aE as useFormInputNameAttr,aF as fieldValueIsFilled,aG as onBeforeUpdate,aH as onUpdated,aI as useKeyComposition,aJ as QDialog,aK as getPortalProxy,aL as closePortals,aM as quasarKey,aN as vShow,aO as QInput,aP as QCard,aQ as QCardSection,aR as QCardActions,aS as Fragment,aT as createBlock,aU as QSeparator,aV as Notify,aW as resolveComponent}from"./index.d5b71521.js";import{Q as QPage}from"./QPage.fbcc8738.js";function useCanRender(){const e=ref(!isRuntimeSsrPreHydration.value);return e.value===!1&&onMounted(()=>{e.value=!0}),e}const hasObserver=typeof ResizeObserver<"u",resizeProps=hasObserver===!0?{}:{style:"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;",url:"about:blank"};var QResizeObserver=createComponent({name:"QResizeObserver",props:{debounce:{type:[String,Number],default:100}},emits:["resize"],setup(e,{emit:r}){let n=null,o,u={width:-1,height:-1};function f(w){w===!0||e.debounce===0||e.debounce==="0"?_():n===null&&(n=setTimeout(_,e.debounce))}function _(){if(clearTimeout(n),n=null,o){const{offsetWidth:w,offsetHeight:E}=o;(w!==u.width||E!==u.height)&&(u={width:w,height:E},r("resize",u))}}const{proxy:a}=getCurrentInstance();if(hasObserver===!0){let w;const E=M=>{o=a.$el.parentNode,o?(w=new ResizeObserver(f),w.observe(o),_()):M!==!0&&nextTick(()=>{E(!0)})};return onMounted(()=>{E()}),onBeforeUnmount(()=>{clearTimeout(n),w!==void 0&&(w.disconnect!==void 0?w.disconnect():o&&w.unobserve(o))}),noop}else{let M=function(){clearTimeout(n),E!==void 0&&(E.removeEventListener!==void 0&&E.removeEventListener("resize",f,listenOpts.passive),E=void 0)},k=function(){M(),o&&o.contentDocument&&(E=o.contentDocument.defaultView,E.addEventListener("resize",f,listenOpts.passive),_())};const w=useCanRender();let E;return onMounted(()=>{nextTick(()=>{o=a.$el,o&&k()})}),onBeforeUnmount(M),a.trigger=f,()=>{if(w.value===!0)return h("object",{style:resizeProps.style,tabindex:-1,type:"text/html",data:resizeProps.url,"aria-hidden":"true",onLoad:k})}}}}),QHeader=createComponent({name:"QHeader",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:r,emit:n}){const{proxy:{$q:o}}=getCurrentInstance(),u=inject(layoutKey,emptyRenderFn);if(u===emptyRenderFn)return console.error("QHeader needs to be child of QLayout"),emptyRenderFn;const f=ref(parseInt(e.heightHint,10)),_=ref(!0),a=computed(()=>e.reveal===!0||u.view.value.indexOf("H")>-1||o.platform.is.ios&&u.isContainer.value===!0),w=computed(()=>{if(e.modelValue!==!0)return 0;if(a.value===!0)return _.value===!0?f.value:0;const oe=f.value-u.scroll.value.position;return oe>0?oe:0}),E=computed(()=>e.modelValue!==!0||a.value===!0&&_.value!==!0),M=computed(()=>e.modelValue===!0&&E.value===!0&&e.reveal===!0),k=computed(()=>"q-header q-layout__section--marginal "+(a.value===!0?"fixed":"absolute")+"-top"+(e.bordered===!0?" q-header--bordered":"")+(E.value===!0?" q-header--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus":"")),L=computed(()=>{const oe=u.rows.value.top,W={};return oe[0]==="l"&&u.left.space===!0&&(W[o.lang.rtl===!0?"right":"left"]=`${u.left.size}px`),oe[2]==="r"&&u.right.space===!0&&(W[o.lang.rtl===!0?"left":"right"]=`${u.right.size}px`),W});function D(oe,W){u.update("header",oe,W)}function U(oe,W){oe.value!==W&&(oe.value=W)}function q({height:oe}){U(f,oe),D("size",oe)}function Y(oe){M.value===!0&&U(_,!0),n("focusin",oe)}watch(()=>e.modelValue,oe=>{D("space",oe),U(_,!0),u.animate()}),watch(w,oe=>{D("offset",oe)}),watch(()=>e.reveal,oe=>{oe===!1&&U(_,e.modelValue)}),watch(_,oe=>{u.animate(),n("reveal",oe)}),watch(u.scroll,oe=>{e.reveal===!0&&U(_,oe.direction==="up"||oe.position<=e.revealOffset||oe.position-oe.inflectionPoint<100)});const X={};return u.instances.header=X,e.modelValue===!0&&D("size",f.value),D("space",e.modelValue),D("offset",w.value),onBeforeUnmount(()=>{u.instances.header===X&&(u.instances.header=void 0,D("size",0),D("offset",0),D("space",!1))}),()=>{const oe=hUniqueSlot(r.default,[]);return e.elevated===!0&&oe.push(h("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),oe.push(h(QResizeObserver,{debounce:0,onResize:q})),h("header",{class:k.value,style:L.value,onFocusin:Y},oe)}}});const modifiersAll={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},directionList=Object.keys(modifiersAll);modifiersAll.all=!0;function getModifierDirections(e){const r={};for(const n of directionList)e[n]===!0&&(r[n]=!0);return Object.keys(r).length===0?modifiersAll:(r.horizontal===!0?r.left=r.right=!0:r.left===!0&&r.right===!0&&(r.horizontal=!0),r.vertical===!0?r.up=r.down=!0:r.up===!0&&r.down===!0&&(r.vertical=!0),r.horizontal===!0&&r.vertical===!0&&(r.all=!0),r)}function shouldStart(e,r){return r.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof r.handler=="function"&&e.target.nodeName.toUpperCase()!=="INPUT"&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(r.uid)===-1)}function clearSelection(){if(window.getSelection!==void 0){const e=window.getSelection();e.empty!==void 0?e.empty():e.removeAllRanges!==void 0&&(e.removeAllRanges(),Platform.is.mobile!==!0&&e.addRange(document.createRange()))}else document.selection!==void 0&&document.selection.empty()}function getChanges(e,r,n){const o=position(e);let u,f=o.left-r.event.x,_=o.top-r.event.y,a=Math.abs(f),w=Math.abs(_);const E=r.direction;E.horizontal===!0&&E.vertical!==!0?u=f<0?"left":"right":E.horizontal!==!0&&E.vertical===!0?u=_<0?"up":"down":E.up===!0&&_<0?(u="up",a>w&&(E.left===!0&&f<0?u="left":E.right===!0&&f>0&&(u="right"))):E.down===!0&&_>0?(u="down",a>w&&(E.left===!0&&f<0?u="left":E.right===!0&&f>0&&(u="right"))):E.left===!0&&f<0?(u="left",a0&&(u="down"))):E.right===!0&&f>0&&(u="right",a0&&(u="down")));let M=!1;if(u===void 0&&n===!1){if(r.event.isFirst===!0||r.event.lastDir===void 0)return{};u=r.event.lastDir,M=!0,u==="left"||u==="right"?(o.left-=f,a=0,f=0):(o.top-=_,w=0,_=0)}return{synthetic:M,payload:{evt:e,touch:r.event.mouse!==!0,mouse:r.event.mouse===!0,position:o,direction:u,isFirst:r.event.isFirst,isFinal:n===!0,duration:Date.now()-r.event.time,distance:{x:a,y:w},offset:{x:f,y:_},delta:{x:o.left-r.event.lastX,y:o.top-r.event.lastY}}}}let uid=0;var TouchPan=createDirective({name:"touch-pan",beforeMount(e,{value:r,modifiers:n}){if(n.mouse!==!0&&client$1.has.touch!==!0)return;function o(f,_){n.mouse===!0&&_===!0?stopAndPrevent(f):(n.stop===!0&&stop(f),n.prevent===!0&&prevent(f))}const u={uid:"qvtp_"+uid++,handler:r,modifiers:n,direction:getModifierDirections(n),noop,mouseStart(f){shouldStart(f,u)&&leftClick(f)&&(addEvt(u,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),u.start(f,!0))},touchStart(f){if(shouldStart(f,u)){const _=f.target;addEvt(u,"temp",[[_,"touchmove","move","notPassiveCapture"],[_,"touchcancel","end","passiveCapture"],[_,"touchend","end","passiveCapture"]]),u.start(f)}},start(f,_){if(client$1.is.firefox===!0&&preventDraggable(e,!0),u.lastEvt=f,_===!0||n.stop===!0){if(u.direction.all!==!0&&(_!==!0||u.modifiers.mouseAllDir!==!0&&u.modifiers.mousealldir!==!0)){const E=f.type.indexOf("mouse")>-1?new MouseEvent(f.type,f):new TouchEvent(f.type,f);f.defaultPrevented===!0&&prevent(E),f.cancelBubble===!0&&stop(E),Object.assign(E,{qKeyEvent:f.qKeyEvent,qClickOutside:f.qClickOutside,qAnchorHandled:f.qAnchorHandled,qClonedBy:f.qClonedBy===void 0?[u.uid]:f.qClonedBy.concat(u.uid)}),u.initialEvent={target:f.target,event:E}}stop(f)}const{left:a,top:w}=position(f);u.event={x:a,y:w,time:Date.now(),mouse:_===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:a,lastY:w}},move(f){if(u.event===void 0)return;const _=position(f),a=_.left-u.event.x,w=_.top-u.event.y;if(a===0&&w===0)return;u.lastEvt=f;const E=u.event.mouse===!0,M=()=>{o(f,E);let D;n.preserveCursor!==!0&&n.preservecursor!==!0&&(D=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),E===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),clearSelection(),u.styleCleanup=U=>{if(u.styleCleanup=void 0,D!==void 0&&(document.documentElement.style.cursor=D),document.body.classList.remove("non-selectable"),E===!0){const q=()=>{document.body.classList.remove("no-pointer-events--children")};U!==void 0?setTimeout(()=>{q(),U()},50):q()}else U!==void 0&&U()}};if(u.event.detected===!0){u.event.isFirst!==!0&&o(f,u.event.mouse);const{payload:D,synthetic:U}=getChanges(f,u,!1);D!==void 0&&(u.handler(D)===!1?u.end(f):(u.styleCleanup===void 0&&u.event.isFirst===!0&&M(),u.event.lastX=D.position.left,u.event.lastY=D.position.top,u.event.lastDir=U===!0?void 0:D.direction,u.event.isFirst=!1));return}if(u.direction.all===!0||E===!0&&(u.modifiers.mouseAllDir===!0||u.modifiers.mousealldir===!0)){M(),u.event.detected=!0,u.move(f);return}const k=Math.abs(a),L=Math.abs(w);k!==L&&(u.direction.horizontal===!0&&k>L||u.direction.vertical===!0&&k0||u.direction.left===!0&&k>L&&a<0||u.direction.right===!0&&k>L&&a>0?(u.event.detected=!0,u.move(f)):u.end(f,!0))},end(f,_){if(u.event!==void 0){if(cleanEvt(u,"temp"),client$1.is.firefox===!0&&preventDraggable(e,!1),_===!0)u.styleCleanup!==void 0&&u.styleCleanup(),u.event.detected!==!0&&u.initialEvent!==void 0&&u.initialEvent.target.dispatchEvent(u.initialEvent.event);else if(u.event.detected===!0){u.event.isFirst===!0&&u.handler(getChanges(f===void 0?u.lastEvt:f,u).payload);const{payload:a}=getChanges(f===void 0?u.lastEvt:f,u,!0),w=()=>{u.handler(a)};u.styleCleanup!==void 0?u.styleCleanup(w):w()}u.event=void 0,u.initialEvent=void 0,u.lastEvt=void 0}}};if(e.__qtouchpan=u,n.mouse===!0){const f=n.mouseCapture===!0||n.mousecapture===!0?"Capture":"";addEvt(u,"main",[[e,"mousedown","mouseStart",`passive${f}`]])}client$1.has.touch===!0&&addEvt(u,"main",[[e,"touchstart","touchStart",`passive${n.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,r){const n=e.__qtouchpan;n!==void 0&&(r.oldValue!==r.value&&(typeof value!="function"&&n.end(),n.handler=r.value),n.direction=getModifierDirections(r.modifiers))},beforeUnmount(e){const r=e.__qtouchpan;r!==void 0&&(r.event!==void 0&&r.end(),cleanEvt(r,"main"),cleanEvt(r,"temp"),client$1.is.firefox===!0&&preventDraggable(e,!1),r.styleCleanup!==void 0&&r.styleCleanup(),delete e.__qtouchpan)}});function between(e,r,n){return n<=r?r:Math.min(n,Math.max(r,e))}function normalizeToInterval(e,r,n){if(n<=r)return r;const o=n-r+1;let u=r+(e-r)%o;return u["left","right"].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>["default","desktop","mobile"].includes(e),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...useModelToggleEmits,"onLayout","miniState"],setup(e,{slots:r,emit:n,attrs:o}){const u=getCurrentInstance(),{proxy:{$q:f}}=u,_=useDark(e,f),{preventBodyScroll:a}=usePreventScroll(),{registerTimeout:w,removeTimeout:E}=useTimeout(),M=inject(layoutKey,emptyRenderFn);if(M===emptyRenderFn)return console.error("QDrawer needs to be child of QLayout"),emptyRenderFn;let k,L,D;const U=ref(e.behavior==="mobile"||e.behavior!=="desktop"&&M.totalWidth.value<=e.breakpoint),q=computed(()=>e.mini===!0&&U.value!==!0),Y=computed(()=>q.value===!0?e.miniWidth:e.width),X=ref(e.showIfAbove===!0&&U.value===!1?!0:e.modelValue===!0),oe=computed(()=>e.persistent!==!0&&(U.value===!0||Xe.value===!0));function W(Ae,pt){if(ve(),Ae!==!1&&M.animate(),yi(0),U.value===!0){const jt=M.instances[Ft.value];jt!==void 0&&jt.belowBreakpoint===!0&&jt.hide(!1),St(1),M.isContainer.value!==!0&&a(!0)}else St(0),Ae!==!1&&kt(!1);w(()=>{Ae!==!1&&kt(!0),pt!==!0&&n("show",Ae)},duration)}function K(Ae,pt){se(),Ae!==!1&&M.animate(),St(0),yi(ue.value*Y.value),rt(),pt!==!0?w(()=>{n("hide",Ae)},duration):E()}const{show:ie,hide:Te}=useModelToggle({showing:X,hideOnRouteChange:oe,handleShow:W,handleHide:K}),{addToHistory:ve,removeFromHistory:se}=useHistory(X,Te,oe),_e={belowBreakpoint:U,hide:Te},ee=computed(()=>e.side==="right"),ue=computed(()=>(f.lang.rtl===!0?-1:1)*(ee.value===!0?1:-1)),Me=ref(0),ke=ref(!1),Qe=ref(!1),at=ref(Y.value*ue.value),Ft=computed(()=>ee.value===!0?"left":"right"),Qt=computed(()=>X.value===!0&&U.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:Y.value:0),Rt=computed(()=>e.overlay===!0||e.miniToOverlay===!0||M.view.value.indexOf(ee.value?"R":"L")>-1||f.platform.is.ios===!0&&M.isContainer.value===!0),Jt=computed(()=>e.overlay===!1&&X.value===!0&&U.value===!1),Xe=computed(()=>e.overlay===!0&&X.value===!0&&U.value===!1),mt=computed(()=>"fullscreen q-drawer__backdrop"+(X.value===!1&&ke.value===!1?" hidden":"")),gt=computed(()=>({backgroundColor:`rgba(0,0,0,${Me.value*.4})`})),ot=computed(()=>ee.value===!0?M.rows.value.top[2]==="r":M.rows.value.top[0]==="l"),At=computed(()=>ee.value===!0?M.rows.value.bottom[2]==="r":M.rows.value.bottom[0]==="l"),xt=computed(()=>{const Ae={};return M.header.space===!0&&ot.value===!1&&(Rt.value===!0?Ae.top=`${M.header.offset}px`:M.header.space===!0&&(Ae.top=`${M.header.size}px`)),M.footer.space===!0&&At.value===!1&&(Rt.value===!0?Ae.bottom=`${M.footer.offset}px`:M.footer.space===!0&&(Ae.bottom=`${M.footer.size}px`)),Ae}),Ct=computed(()=>{const Ae={width:`${Y.value}px`,transform:`translateX(${at.value}px)`};return U.value===!0?Ae:Object.assign(Ae,xt.value)}),It=computed(()=>"q-drawer__content fit "+(M.isContainer.value!==!0?"scroll":"overflow-auto")),mi=computed(()=>`q-drawer q-drawer--${e.side}`+(Qe.value===!0?" q-drawer--mini-animate":"")+(e.bordered===!0?" q-drawer--bordered":"")+(_.value===!0?" q-drawer--dark q-dark":"")+(ke.value===!0?" no-transition":X.value===!0?"":" q-layout--prevent-focus")+(U.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${q.value===!0?"mini":"standard"}`+(Rt.value===!0||Jt.value!==!0?" fixed":"")+(e.overlay===!0||e.miniToOverlay===!0?" q-drawer--on-top":"")+(ot.value===!0?" q-drawer--top-padding":""))),_t=computed(()=>{const Ae=f.lang.rtl===!0?e.side:Ft.value;return[[TouchPan,Ti,void 0,{[Ae]:!0,mouse:!0}]]}),Ei=computed(()=>{const Ae=f.lang.rtl===!0?Ft.value:e.side;return[[TouchPan,Si,void 0,{[Ae]:!0,mouse:!0}]]}),zi=computed(()=>{const Ae=f.lang.rtl===!0?Ft.value:e.side;return[[TouchPan,Si,void 0,{[Ae]:!0,mouse:!0,mouseAllDir:!0}]]});function Bi(){gi(U,e.behavior==="mobile"||e.behavior!=="desktop"&&M.totalWidth.value<=e.breakpoint)}watch(U,Ae=>{Ae===!0?(k=X.value,X.value===!0&&Te(!1)):e.overlay===!1&&e.behavior!=="mobile"&&k!==!1&&(X.value===!0?(yi(0),St(0),rt()):ie(!1))}),watch(()=>e.side,(Ae,pt)=>{M.instances[pt]===_e&&(M.instances[pt]=void 0,M[pt].space=!1,M[pt].offset=0),M.instances[Ae]=_e,M[Ae].size=Y.value,M[Ae].space=Jt.value,M[Ae].offset=Qt.value}),watch(M.totalWidth,()=>{(M.isContainer.value===!0||document.qScrollPrevented!==!0)&&Bi()}),watch(()=>e.behavior+e.breakpoint,Bi),watch(M.isContainer,Ae=>{X.value===!0&&a(Ae!==!0),Ae===!0&&Bi()}),watch(M.scrollbarWidth,()=>{yi(X.value===!0?0:void 0)}),watch(Qt,Ae=>{dt("offset",Ae)}),watch(Jt,Ae=>{n("onLayout",Ae),dt("space",Ae)}),watch(ee,()=>{yi()}),watch(Y,Ae=>{yi(),di(e.miniToOverlay,Ae)}),watch(()=>e.miniToOverlay,Ae=>{di(Ae,Y.value)}),watch(()=>f.lang.rtl,()=>{yi()}),watch(()=>e.mini,()=>{e.modelValue===!0&&(Ai(),M.animate())}),watch(q,Ae=>{n("miniState",Ae)});function yi(Ae){Ae===void 0?nextTick(()=>{Ae=X.value===!0?0:Y.value,yi(ue.value*Ae)}):(M.isContainer.value===!0&&ee.value===!0&&(U.value===!0||Math.abs(Ae)===Y.value)&&(Ae+=ue.value*M.scrollbarWidth.value),at.value=Ae)}function St(Ae){Me.value=Ae}function kt(Ae){const pt=Ae===!0?"remove":M.isContainer.value!==!0?"add":"";pt!==""&&document.body.classList[pt]("q-body--drawer-toggle")}function Ai(){clearTimeout(L),u.proxy&&u.proxy.$el&&u.proxy.$el.classList.add("q-drawer--mini-animate"),Qe.value=!0,L=setTimeout(()=>{Qe.value=!1,u&&u.proxy&&u.proxy.$el&&u.proxy.$el.classList.remove("q-drawer--mini-animate")},150)}function Ti(Ae){if(X.value!==!1)return;const pt=Y.value,jt=between(Ae.distance.x,0,pt);if(Ae.isFinal===!0){jt>=Math.min(75,pt)===!0?ie():(M.animate(),St(0),yi(ue.value*pt)),ke.value=!1;return}yi((f.lang.rtl===!0?ee.value!==!0:ee.value)?Math.max(pt-jt,0):Math.min(0,jt-pt)),St(between(jt/pt,0,1)),Ae.isFirst===!0&&(ke.value=!0)}function Si(Ae){if(X.value!==!0)return;const pt=Y.value,jt=Ae.direction===e.side,Nt=(f.lang.rtl===!0?jt!==!0:jt)?between(Ae.distance.x,0,pt):0;if(Ae.isFinal===!0){Math.abs(Nt){n("onLayout",Jt.value),n("miniState",q.value),k=e.showIfAbove===!0;const Ae=()=>{(X.value===!0?W:K)(!1,!0)};if(M.totalWidth.value!==0){nextTick(Ae);return}D=watch(M.totalWidth,()=>{D(),D=void 0,X.value===!1&&e.showIfAbove===!0&&U.value===!1?ie(!1):Ae()})}),onBeforeUnmount(()=>{D!==void 0&&D(),clearTimeout(L),X.value===!0&&rt(),M.instances[e.side]===_e&&(M.instances[e.side]=void 0,dt("size",0),dt("offset",0),dt("space",!1))}),()=>{const Ae=[];U.value===!0&&(e.noSwipeOpen===!1&&Ae.push(withDirectives(h("div",{key:"open",class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":"true"}),_t.value)),Ae.push(hDir("div",{ref:"backdrop",class:mt.value,style:gt.value,"aria-hidden":"true",onClick:Te},void 0,"backdrop",e.noSwipeBackdrop!==!0&&X.value===!0,()=>zi.value)));const pt=q.value===!0&&r.mini!==void 0,jt=[h("div",{...o,key:""+pt,class:[It.value,o.class]},pt===!0?r.mini():hSlot(r.default))];return e.elevated===!0&&X.value===!0&&jt.push(h("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),Ae.push(hDir("aside",{ref:"content",class:mi.value,style:Ct.value},jt,"contentclose",e.noSwipeClose!==!0&&U.value===!0,()=>Ei.value)),h("div",{class:"q-drawer-container"},Ae)}}});let id=0;const useTabEmits=["click","keydown"],useTabProps={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${id++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function useTab(e,r,n,o){const u=inject(tabsKey,emptyRenderFn);if(u===emptyRenderFn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),emptyRenderFn;const{proxy:f}=getCurrentInstance(),_=ref(null),a=ref(null),w=ref(null),E=computed(()=>e.disable===!0||e.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},e.ripple===!0?{}:e.ripple)),M=computed(()=>u.currentModel.value===e.name),k=computed(()=>"q-tab relative-position self-stretch flex flex-center text-center"+(M.value===!0?" q-tab--active"+(u.tabProps.value.activeClass?" "+u.tabProps.value.activeClass:"")+(u.tabProps.value.activeColor?` text-${u.tabProps.value.activeColor}`:"")+(u.tabProps.value.activeBgColor?` bg-${u.tabProps.value.activeBgColor}`:""):" q-tab--inactive")+(e.icon&&e.label&&u.tabProps.value.inlineLabel===!1?" q-tab--full":"")+(e.noCaps===!0||u.tabProps.value.noCaps===!0?" q-tab--no-caps":"")+(e.disable===!0?" disabled":" q-focusable q-hoverable cursor-pointer")+(o!==void 0?o.linkClass.value:"")),L=computed(()=>"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable "+(u.tabProps.value.inlineLabel===!0?"row no-wrap q-tab__content--inline":"column")+(e.contentClass!==void 0?` ${e.contentClass}`:"")),D=computed(()=>e.disable===!0||u.hasFocus.value===!0||M.value===!1&&u.hasActiveTab.value===!0?-1:e.tabindex||0);function U(W,K){if(K!==!0&&_.value!==null&&_.value.focus(),e.disable===!0){o!==void 0&&o.hasRouterLink.value===!0&&stopAndPrevent(W);return}if(o===void 0){u.updateModel({name:e.name}),n("click",W);return}if(o.hasRouterLink.value===!0){const ie=(Te={})=>{let ve;const se=Te.to===void 0||isDeepEqual(Te.to,e.to)===!0?u.avoidRouteWatcher=uid$1():null;return o.navigateToRouterLink(W,{...Te,returnRouterError:!0}).catch(_e=>{ve=_e}).then(_e=>{if(se===u.avoidRouteWatcher&&(u.avoidRouteWatcher=!1,ve===void 0&&(_e===void 0||_e.message.startsWith("Avoided redundant navigation")===!0)&&u.updateModel({name:e.name})),Te.returnRouterError===!0)return ve!==void 0?Promise.reject(ve):_e})};n("click",W,ie),W.defaultPrevented!==!0&&ie();return}n("click",W)}function q(W){isKeyCode(W,[13,32])?U(W,!0):shouldIgnoreKey(W)!==!0&&W.keyCode>=35&&W.keyCode<=40&&W.altKey!==!0&&W.metaKey!==!0&&u.onKbdNavigate(W.keyCode,f.$el)===!0&&stopAndPrevent(W),n("keydown",W)}function Y(){const W=u.tabProps.value.narrowIndicator,K=[],ie=h("div",{ref:w,class:["q-tab__indicator",u.tabProps.value.indicatorClass]});e.icon!==void 0&&K.push(h(QIcon,{class:"q-tab__icon",name:e.icon})),e.label!==void 0&&K.push(h("div",{class:"q-tab__label"},e.label)),e.alert!==!1&&K.push(e.alertIcon!==void 0?h(QIcon,{class:"q-tab__alert-icon",color:e.alert!==!0?e.alert:void 0,name:e.alertIcon}):h("div",{class:"q-tab__alert"+(e.alert!==!0?` text-${e.alert}`:"")})),W===!0&&K.push(ie);const Te=[h("div",{class:"q-focus-helper",tabindex:-1,ref:_}),h("div",{class:L.value},hMergeSlot(r.default,K))];return W===!1&&Te.push(ie),Te}const X={name:computed(()=>e.name),rootRef:a,tabIndicatorRef:w,routeData:o};onBeforeUnmount(()=>{u.unregisterTab(X)}),onMounted(()=>{u.registerTab(X)});function oe(W,K){const ie={ref:a,class:k.value,tabindex:D.value,role:"tab","aria-selected":M.value===!0?"true":"false","aria-disabled":e.disable===!0?"true":void 0,onClick:U,onKeydown:q,...K};return withDirectives(h(W,ie,Y()),[[Ripple,E.value]])}return{renderTab:oe,$tabs:u}}var QTab=createComponent({name:"QTab",props:useTabProps,emits:useTabEmits,setup(e,{slots:r,emit:n}){const{renderTab:o}=useTab(e,r,n);return()=>o("div")}});let rtlHasScrollBug=!1;{const e=document.createElement("div");e.setAttribute("dir","rtl"),Object.assign(e.style,{width:"1px",height:"1px",overflow:"auto"});const r=document.createElement("div");Object.assign(r.style,{width:"1000px",height:"1px"}),document.body.appendChild(e),e.appendChild(r),e.scrollLeft=-1e3,rtlHasScrollBug=e.scrollLeft>=0,e.remove()}function getIndicatorClass(e,r,n){const o=n===!0?["left","right"]:["top","bottom"];return`absolute-${r===!0?o[0]:o[1]}${e?` text-${e}`:""}`}const alignValues=["left","center","right","justify"];var QTabs=createComponent({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:e=>alignValues.includes(e)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(e,{slots:r,emit:n}){const{proxy:o}=getCurrentInstance(),{$q:u}=o,{registerTick:f}=useTick(),{registerTick:_}=useTick(),{registerTick:a}=useTick(),{registerTimeout:w,removeTimeout:E}=useTimeout(),{registerTimeout:M,removeTimeout:k}=useTimeout(),L=ref(null),D=ref(null),U=ref(e.modelValue),q=ref(!1),Y=ref(!0),X=ref(!1),oe=ref(!1),W=computed(()=>u.platform.is.desktop===!0||e.mobileArrows===!0),K=[],ie=ref(0),Te=ref(!1);let ve,se,_e,ee=W.value===!0?At:noop;const ue=computed(()=>({activeClass:e.activeClass,activeColor:e.activeColor,activeBgColor:e.activeBgColor,indicatorClass:getIndicatorClass(e.indicatorColor,e.switchIndicator,e.vertical),narrowIndicator:e.narrowIndicator,inlineLabel:e.inlineLabel,noCaps:e.noCaps})),Me=computed(()=>{const Ae=ie.value,pt=U.value;for(let jt=0;jt`q-tabs__content--align-${q.value===!0?"left":oe.value===!0?"justify":e.align}`),Qe=computed(()=>`q-tabs row no-wrap items-center q-tabs--${q.value===!0?"":"not-"}scrollable q-tabs--${e.vertical===!0?"vertical":"horizontal"} q-tabs__arrows--${W.value===!0&&e.outsideArrows===!0?"outside":"inside"}`+(e.dense===!0?" q-tabs--dense":"")+(e.shrink===!0?" col-shrink":"")+(e.stretch===!0?" self-stretch":"")),at=computed(()=>"q-tabs__content row no-wrap items-center self-stretch hide-scrollbar relative-position "+ke.value+(e.contentClass!==void 0?` ${e.contentClass}`:"")+(u.platform.is.mobile===!0?" scroll":"")),Ft=computed(()=>e.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),Qt=computed(()=>e.vertical!==!0&&u.lang.rtl===!0),Rt=computed(()=>rtlHasScrollBug===!1&&Qt.value===!0);watch(Qt,ee),watch(()=>e.modelValue,Ae=>{Jt({name:Ae,setCurrent:!0,skipEmit:!0})}),watch(()=>e.outsideArrows,()=>{Xe()}),watch(W,Ae=>{ee=Ae===!0?At:noop,Xe()});function Jt({name:Ae,setCurrent:pt,skipEmit:jt,fromRoute:Nt}){U.value!==Ae&&(jt!==!0&&e["onUpdate:modelValue"]!==void 0&&n("update:modelValue",Ae),(pt===!0||e["onUpdate:modelValue"]===void 0)&&(gt(U.value,Ae),U.value=Ae))}function Xe(){f(()=>{mt({width:L.value.offsetWidth,height:L.value.offsetHeight})})}function mt(Ae){if(Ft.value===void 0||D.value===null)return;const pt=Ae[Ft.value.container],jt=Math.min(D.value[Ft.value.scroll],Array.prototype.reduce.call(D.value.children,(Ht,Ut)=>Ht+(Ut[Ft.value.content]||0),0)),Nt=pt>0&&jt>pt;q.value=Nt,Nt===!0&&_(ee),oe.value=ptHt.name.value===Ae):null,Nt=pt!=null&&pt!==""?K.find(Ht=>Ht.name.value===pt):null;if(jt&&Nt){const Ht=jt.tabIndicatorRef.value,Ut=Nt.tabIndicatorRef.value;clearTimeout(ve),Ht.style.transition="none",Ht.style.transform="none",Ut.style.transition="none",Ut.style.transform="none";const Pt=Ht.getBoundingClientRect(),ei=Ut.getBoundingClientRect();Ut.style.transform=e.vertical===!0?`translate3d(0,${Pt.top-ei.top}px,0) scale3d(1,${ei.height?Pt.height/ei.height:1},1)`:`translate3d(${Pt.left-ei.left}px,0,0) scale3d(${ei.width?Pt.width/ei.width:1},1,1)`,a(()=>{ve=setTimeout(()=>{Ut.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Ut.style.transform="none"},70)})}Nt&&q.value===!0&&ot(Nt.rootRef.value)}function ot(Ae){const{left:pt,width:jt,top:Nt,height:Ht}=D.value.getBoundingClientRect(),Ut=Ae.getBoundingClientRect();let Pt=e.vertical===!0?Ut.top-Nt:Ut.left-pt;if(Pt<0){D.value[e.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(Pt),ee();return}Pt+=e.vertical===!0?Ut.height-Ht:Ut.width-jt,Pt>0&&(D.value[e.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(Pt),ee())}function At(){const Ae=D.value;if(Ae!==null){const pt=Ae.getBoundingClientRect(),jt=e.vertical===!0?Ae.scrollTop:Math.abs(Ae.scrollLeft);Qt.value===!0?(Y.value=Math.ceil(jt+pt.width)0):(Y.value=jt>0,X.value=e.vertical===!0?Math.ceil(jt+pt.height){zi(Ae)===!0&&mi()},5)}function Ct(){xt(Rt.value===!0?Number.MAX_SAFE_INTEGER:0)}function It(){xt(Rt.value===!0?0:Number.MAX_SAFE_INTEGER)}function mi(){clearInterval(se)}function _t(Ae,pt){const jt=Array.prototype.filter.call(D.value.children,ei=>ei===pt||ei.matches&&ei.matches(".q-tab.q-focusable")===!0),Nt=jt.length;if(Nt===0)return;if(Ae===36)return ot(jt[0]),jt[0].focus(),!0;if(Ae===35)return ot(jt[Nt-1]),jt[Nt-1].focus(),!0;const Ht=Ae===(e.vertical===!0?38:37),Ut=Ae===(e.vertical===!0?40:39),Pt=Ht===!0?-1:Ut===!0?1:void 0;if(Pt!==void 0){const ei=Qt.value===!0?-1:1,Li=jt.indexOf(pt)+Pt*ei;return Li>=0&&LiRt.value===!0?{get:Ae=>Math.abs(Ae.scrollLeft),set:(Ae,pt)=>{Ae.scrollLeft=-pt}}:e.vertical===!0?{get:Ae=>Ae.scrollTop,set:(Ae,pt)=>{Ae.scrollTop=pt}}:{get:Ae=>Ae.scrollLeft,set:(Ae,pt)=>{Ae.scrollLeft=pt}});function zi(Ae){const pt=D.value,{get:jt,set:Nt}=Ei.value;let Ht=!1,Ut=jt(pt);const Pt=Ae=Ae)&&(Ht=!0,Ut=Ae),Nt(pt,Ut),ee(),Ht}function Bi(Ae,pt){for(const jt in Ae)if(Ae[jt]!==pt[jt])return!1;return!0}function yi(){let Ae=null,pt={matchedLen:0,queryDiff:9999,hrefLen:0};const jt=K.filter(Pt=>Pt.routeData!==void 0&&Pt.routeData.hasRouterLink.value===!0),{hash:Nt,query:Ht}=o.$route,Ut=Object.keys(Ht).length;for(const Pt of jt){const ei=Pt.routeData.exact.value===!0;if(Pt.routeData[ei===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:Li,query:fi,matched:Ii,href:Hi}=Pt.routeData.resolvedLink.value,er=Object.keys(fi).length;if(ei===!0){if(Li!==Nt||er!==Ut||Bi(Ht,fi)===!1)continue;Ae=Pt.name.value;break}if(Li!==""&&Li!==Nt||er!==0&&Bi(fi,Ht)===!1)continue;const Gi={matchedLen:Ii.length,queryDiff:Ut-er,hrefLen:Hi.length-Li.length};if(Gi.matchedLen>pt.matchedLen){Ae=Pt.name.value,pt=Gi;continue}else if(Gi.matchedLen!==pt.matchedLen)continue;if(Gi.queryDiffpt.hrefLen&&(Ae=Pt.name.value,pt=Gi)}Ae===null&&K.some(Pt=>Pt.routeData===void 0&&Pt.name.value===U.value)===!0||Jt({name:Ae,setCurrent:!0})}function St(Ae){if(E(),Te.value!==!0&&L.value!==null&&Ae.target&&typeof Ae.target.closest=="function"){const pt=Ae.target.closest(".q-tab");pt&&L.value.contains(pt)===!0&&(Te.value=!0,q.value===!0&&ot(pt))}}function kt(){w(()=>{Te.value=!1},30)}function Ai(){dt.avoidRouteWatcher===!1?M(yi):k()}function Ti(){if(_e===void 0){const Ae=watch(()=>o.$route.fullPath,Ai);_e=()=>{Ae(),_e=void 0}}}function Si(Ae){K.push(Ae),ie.value++,Xe(),Ae.routeData===void 0||o.$route===void 0?M(()=>{if(q.value===!0){const pt=U.value,jt=pt!=null&&pt!==""?K.find(Nt=>Nt.name.value===pt):null;jt&&ot(jt.rootRef.value)}}):(Ti(),Ae.routeData.hasRouterLink.value===!0&&Ai())}function rt(Ae){K.splice(K.indexOf(Ae),1),ie.value--,Xe(),_e!==void 0&&Ae.routeData!==void 0&&(K.every(pt=>pt.routeData===void 0)===!0&&_e(),Ai())}const dt={currentModel:U,tabProps:ue,hasFocus:Te,hasActiveTab:Me,registerTab:Si,unregisterTab:rt,verifyRouteModel:Ai,updateModel:Jt,onKbdNavigate:_t,avoidRouteWatcher:!1};provide(tabsKey,dt);function gi(){clearTimeout(ve),mi(),_e!==void 0&&_e()}let di;return onBeforeUnmount(gi),onDeactivated(()=>{di=_e!==void 0,gi()}),onActivated(()=>{di===!0&&Ti(),Xe()}),()=>{const Ae=[h(QResizeObserver,{onResize:mt}),h("div",{ref:D,class:at.value,onScroll:ee},hSlot(r.default))];return W.value===!0&&Ae.push(h(QIcon,{class:"q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon"+(Y.value===!0?"":" q-tabs__arrow--faded"),name:e.leftIcon||u.iconSet.tabs[e.vertical===!0?"up":"left"],onMousedownPassive:Ct,onTouchstartPassive:Ct,onMouseupPassive:mi,onMouseleavePassive:mi,onTouchendPassive:mi}),h(QIcon,{class:"q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon"+(X.value===!0?"":" q-tabs__arrow--faded"),name:e.rightIcon||u.iconSet.tabs[e.vertical===!0?"down":"right"],onMousedownPassive:It,onTouchstartPassive:It,onMouseupPassive:mi,onMouseleavePassive:mi,onTouchendPassive:mi})),h("div",{ref:L,class:Qe.value,role:"tablist",onFocusin:St,onFocusout:kt},Ae)}}});function parseArg(e){const r=[.06,6,50];return typeof e=="string"&&e.length&&e.split(":").forEach((n,o)=>{const u=parseFloat(n);u&&(r[o]=u)}),r}var TouchSwipe=createDirective({name:"touch-swipe",beforeMount(e,{value:r,arg:n,modifiers:o}){if(o.mouse!==!0&&client$1.has.touch!==!0)return;const u=o.mouseCapture===!0?"Capture":"",f={handler:r,sensitivity:parseArg(n),direction:getModifierDirections(o),noop,mouseStart(_){shouldStart(_,f)&&leftClick(_)&&(addEvt(f,"temp",[[document,"mousemove","move",`notPassive${u}`],[document,"mouseup","end","notPassiveCapture"]]),f.start(_,!0))},touchStart(_){if(shouldStart(_,f)){const a=_.target;addEvt(f,"temp",[[a,"touchmove","move","notPassiveCapture"],[a,"touchcancel","end","notPassiveCapture"],[a,"touchend","end","notPassiveCapture"]]),f.start(_)}},start(_,a){client$1.is.firefox===!0&&preventDraggable(e,!0);const w=position(_);f.event={x:w.left,y:w.top,time:Date.now(),mouse:a===!0,dir:!1}},move(_){if(f.event===void 0)return;if(f.event.dir!==!1){stopAndPrevent(_);return}const a=Date.now()-f.event.time;if(a===0)return;const w=position(_),E=w.left-f.event.x,M=Math.abs(E),k=w.top-f.event.y,L=Math.abs(k);if(f.event.mouse!==!0){if(Mf.sensitivity[0]&&(f.event.dir=k<0?"up":"down"),f.direction.horizontal===!0&&M>L&&L<100&&D>f.sensitivity[0]&&(f.event.dir=E<0?"left":"right"),f.direction.up===!0&&Mf.sensitivity[0]&&(f.event.dir="up"),f.direction.down===!0&&M0&&M<100&&U>f.sensitivity[0]&&(f.event.dir="down"),f.direction.left===!0&&M>L&&E<0&&L<100&&D>f.sensitivity[0]&&(f.event.dir="left"),f.direction.right===!0&&M>L&&E>0&&L<100&&D>f.sensitivity[0]&&(f.event.dir="right"),f.event.dir!==!1?(stopAndPrevent(_),f.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),clearSelection(),f.styleCleanup=q=>{f.styleCleanup=void 0,document.body.classList.remove("non-selectable");const Y=()=>{document.body.classList.remove("no-pointer-events--children")};q===!0?setTimeout(Y,50):Y()}),f.handler({evt:_,touch:f.event.mouse!==!0,mouse:f.event.mouse,direction:f.event.dir,duration:a,distance:{x:M,y:L}})):f.end(_)},end(_){f.event!==void 0&&(cleanEvt(f,"temp"),client$1.is.firefox===!0&&preventDraggable(e,!1),f.styleCleanup!==void 0&&f.styleCleanup(!0),_!==void 0&&f.event.dir!==!1&&stopAndPrevent(_),f.event=void 0)}};if(e.__qtouchswipe=f,o.mouse===!0){const _=o.mouseCapture===!0||o.mousecapture===!0?"Capture":"";addEvt(f,"main",[[e,"mousedown","mouseStart",`passive${_}`]])}client$1.has.touch===!0&&addEvt(f,"main",[[e,"touchstart","touchStart",`passive${o.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,r){const n=e.__qtouchswipe;n!==void 0&&(r.oldValue!==r.value&&(typeof r.value!="function"&&n.end(),n.handler=r.value),n.direction=getModifierDirections(r.modifiers))},beforeUnmount(e){const r=e.__qtouchswipe;r!==void 0&&(cleanEvt(r,"main"),cleanEvt(r,"temp"),client$1.is.firefox===!0&&preventDraggable(e,!1),r.styleCleanup!==void 0&&r.styleCleanup(),delete e.__qtouchswipe)}});function useCache(){const e=new Map;return{getCache:function(r,n){return e[r]===void 0?e[r]=n:e[r]},getCacheWithFn:function(r,n){return e[r]===void 0?e[r]=n():e[r]}}}const usePanelChildProps={name:{required:!0},disable:Boolean},PanelWrapper={setup(e,{slots:r}){return()=>h("div",{class:"q-panel scroll",role:"tabpanel"},hSlot(r.default))}},usePanelProps={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},usePanelEmits=["update:modelValue","beforeTransition","transition"];function usePanel(){const{props:e,emit:r,proxy:n}=getCurrentInstance(),{getCacheWithFn:o}=useCache();let u,f;const _=ref(null),a=ref(null);function w(ke){const Qe=e.vertical===!0?"up":"left";ve((n.$q.lang.rtl===!0?-1:1)*(ke.direction===Qe?1:-1))}const E=computed(()=>[[TouchSwipe,w,void 0,{horizontal:e.vertical!==!0,vertical:e.vertical,mouse:!0}]]),M=computed(()=>e.transitionPrev||`slide-${e.vertical===!0?"down":"right"}`),k=computed(()=>e.transitionNext||`slide-${e.vertical===!0?"up":"left"}`),L=computed(()=>`--q-transition-duration: ${e.transitionDuration}ms`),D=computed(()=>typeof e.modelValue=="string"||typeof e.modelValue=="number"?e.modelValue:String(e.modelValue)),U=computed(()=>({include:e.keepAliveInclude,exclude:e.keepAliveExclude,max:e.keepAliveMax})),q=computed(()=>e.keepAliveInclude!==void 0||e.keepAliveExclude!==void 0);watch(()=>e.modelValue,(ke,Qe)=>{const at=W(ke)===!0?K(ke):-1;f!==!0&&Te(at===-1?0:at{r("transition",ke,Qe)}))});function Y(){ve(1)}function X(){ve(-1)}function oe(ke){r("update:modelValue",ke)}function W(ke){return ke!=null&&ke!==""}function K(ke){return u.findIndex(Qe=>Qe.props.name===ke&&Qe.props.disable!==""&&Qe.props.disable!==!0)}function ie(){return u.filter(ke=>ke.props.disable!==""&&ke.props.disable!==!0)}function Te(ke){const Qe=ke!==0&&e.animated===!0&&_.value!==-1?"q-transition--"+(ke===-1?M.value:k.value):null;a.value!==Qe&&(a.value=Qe)}function ve(ke,Qe=_.value){let at=Qe+ke;for(;at>-1&&at{f=!1});return}at+=ke}e.infinite===!0&&u.length>0&&Qe!==-1&&Qe!==u.length&&ve(ke,ke===-1?u.length:-1)}function se(){const ke=K(e.modelValue);return _.value!==ke&&(_.value=ke),!0}function _e(){const ke=W(e.modelValue)===!0&&se()&&u[_.value];return e.keepAlive===!0?[h(KeepAlive,U.value,[h(q.value===!0?o(D.value,()=>({...PanelWrapper,name:D.value})):PanelWrapper,{key:D.value,style:L.value},()=>ke)])]:[h("div",{class:"q-panel scroll",style:L.value,key:D.value,role:"tabpanel"},[ke])]}function ee(){if(u.length!==0)return e.animated===!0?[h(Transition,{name:a.value},_e)]:_e()}function ue(ke){return u=getNormalizedVNodes(hSlot(ke.default,[])).filter(Qe=>Qe.props!==null&&Qe.props.slot===void 0&&W(Qe.props.name)===!0),u.length}function Me(){return u}return Object.assign(n,{next:Y,previous:X,goTo:oe}),{panelIndex:_,panelDirectives:E,updatePanelsList:ue,updatePanelIndex:se,getPanelContent:ee,getEnabledPanels:ie,getPanels:Me,isValidPanelName:W,keepAliveProps:U,needsUniqueKeepAliveWrapper:q,goToPanelByOffset:ve,goToPanel:oe,nextPanel:Y,previousPanel:X}}var QTabPanel=createComponent({name:"QTabPanel",props:usePanelChildProps,setup(e,{slots:r}){return()=>h("div",{class:"q-tab-panel",role:"tabpanel"},hSlot(r.default))}}),QTabPanels=createComponent({name:"QTabPanels",props:{...usePanelProps,...useDarkProps},emits:usePanelEmits,setup(e,{slots:r}){const n=getCurrentInstance(),o=useDark(e,n.proxy.$q),{updatePanelsList:u,getPanelContent:f,panelDirectives:_}=usePanel(),a=computed(()=>"q-tab-panels q-panel-parent"+(o.value===!0?" q-tab-panels--dark q-dark":""));return()=>(u(r),hDir("div",{class:a.value},f(),"pan",e.swipeable,()=>_.value))}}),QPageContainer=createComponent({name:"QPageContainer",setup(e,{slots:r}){const{proxy:{$q:n}}=getCurrentInstance(),o=inject(layoutKey,emptyRenderFn);if(o===emptyRenderFn)return console.error("QPageContainer needs to be child of QLayout"),emptyRenderFn;provide(pageContainerKey,!0);const u=computed(()=>{const f={};return o.header.space===!0&&(f.paddingTop=`${o.header.size}px`),o.right.space===!0&&(f[`padding${n.lang.rtl===!0?"Left":"Right"}`]=`${o.right.size}px`),o.footer.space===!0&&(f.paddingBottom=`${o.footer.size}px`),o.left.space===!0&&(f[`padding${n.lang.rtl===!0?"Right":"Left"}`]=`${o.left.size}px`),f});return()=>h("div",{class:"q-page-container",style:u.value},hSlot(r.default))}});const{passive}=listenOpts,axisValues=["both","horizontal","vertical"];var QScrollObserver=createComponent({name:"QScrollObserver",props:{axis:{type:String,validator:e=>axisValues.includes(e),default:"vertical"},debounce:[String,Number],scrollTarget:{default:void 0}},emits:["scroll"],setup(e,{emit:r}){const n={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let o=null,u,f;watch(()=>e.scrollTarget,()=>{w(),a()});function _(){o!==null&&o();const k=Math.max(0,getVerticalScrollPosition(u)),L=getHorizontalScrollPosition(u),D={top:k-n.position.top,left:L-n.position.left};if(e.axis==="vertical"&&D.top===0||e.axis==="horizontal"&&D.left===0)return;const U=Math.abs(D.top)>=Math.abs(D.left)?D.top<0?"up":"down":D.left<0?"left":"right";n.position={top:k,left:L},n.directionChanged=n.direction!==U,n.delta=D,n.directionChanged===!0&&(n.direction=U,n.inflectionPoint=n.position),r("scroll",{...n})}function a(){u=getScrollTarget(f,e.scrollTarget),u.addEventListener("scroll",E,passive),E(!0)}function w(){u!==void 0&&(u.removeEventListener("scroll",E,passive),u=void 0)}function E(k){if(k===!0||e.debounce===0||e.debounce==="0")_();else if(o===null){const[L,D]=e.debounce?[setTimeout(_,e.debounce),clearTimeout]:[requestAnimationFrame(_),cancelAnimationFrame];o=()=>{D(L),o=null}}}const{proxy:M}=getCurrentInstance();return watch(()=>M.$q.lang.rtl,_),onMounted(()=>{f=M.$el.parentNode,a()}),onBeforeUnmount(()=>{o!==null&&o(),w()}),Object.assign(M,{trigger:E,getPosition:()=>n}),noop}}),QLayout=createComponent({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:r,emit:n}){const{proxy:{$q:o}}=getCurrentInstance(),u=ref(null),f=ref(o.screen.height),_=ref(e.container===!0?0:o.screen.width),a=ref({position:0,direction:"down",inflectionPoint:0}),w=ref(0),E=ref(isRuntimeSsrPreHydration.value===!0?0:getScrollbarWidth()),M=computed(()=>"q-layout q-layout--"+(e.container===!0?"containerized":"standard")),k=computed(()=>e.container===!1?{minHeight:o.screen.height+"px"}:null),L=computed(()=>E.value!==0?{[o.lang.rtl===!0?"left":"right"]:`${E.value}px`}:null),D=computed(()=>E.value!==0?{[o.lang.rtl===!0?"right":"left"]:0,[o.lang.rtl===!0?"left":"right"]:`-${E.value}px`,width:`calc(100% + ${E.value}px)`}:null);function U(K){if(e.container===!0||document.qScrollPrevented!==!0){const ie={position:K.position.top,direction:K.direction,directionChanged:K.directionChanged,inflectionPoint:K.inflectionPoint.top,delta:K.delta.top};a.value=ie,e.onScroll!==void 0&&n("scroll",ie)}}function q(K){const{height:ie,width:Te}=K;let ve=!1;f.value!==ie&&(ve=!0,f.value=ie,e.onScrollHeight!==void 0&&n("scrollHeight",ie),X()),_.value!==Te&&(ve=!0,_.value=Te),ve===!0&&e.onResize!==void 0&&n("resize",K)}function Y({height:K}){w.value!==K&&(w.value=K,X())}function X(){if(e.container===!0){const K=f.value>w.value?getScrollbarWidth():0;E.value!==K&&(E.value=K)}}let oe;const W={instances:{},view:computed(()=>e.view),isContainer:computed(()=>e.container),rootRef:u,height:f,containerHeight:w,scrollbarWidth:E,totalWidth:computed(()=>_.value+E.value),rows:computed(()=>{const K=e.view.toLowerCase().split(" ");return{top:K[0].split(""),middle:K[1].split(""),bottom:K[2].split("")}}),header:reactive({size:0,offset:0,space:!1}),right:reactive({size:300,offset:0,space:!1}),footer:reactive({size:0,offset:0,space:!1}),left:reactive({size:300,offset:0,space:!1}),scroll:a,animate(){oe!==void 0?clearTimeout(oe):document.body.classList.add("q-body--layout-animate"),oe=setTimeout(()=>{document.body.classList.remove("q-body--layout-animate"),oe=void 0},155)},update(K,ie,Te){W[K][ie]=Te}};if(provide(layoutKey,W),getScrollbarWidth()>0){let Te=function(){K=null,ie.classList.remove("hide-scrollbar")},ve=function(){if(K===null){if(ie.scrollHeight>o.screen.height)return;ie.classList.add("hide-scrollbar")}else clearTimeout(K);K=setTimeout(Te,300)},se=function(_e){K!==null&&_e==="remove"&&(clearTimeout(K),Te()),window[`${_e}EventListener`]("resize",ve)},K=null;const ie=document.body;watch(()=>e.container!==!0?"add":"remove",se),e.container!==!0&&se("add"),onUnmounted(()=>{se("remove")})}return()=>{const K=hMergeSlot(r.default,[h(QScrollObserver,{onScroll:U}),h(QResizeObserver,{onResize:q})]),ie=h("div",{class:M.value,style:k.value,ref:e.container===!0?void 0:u,tabindex:-1},K);return e.container===!0?h("div",{class:"q-layout-container overflow-hidden",ref:u},[h(QResizeObserver,{onResize:Y}),h("div",{class:"absolute-full",style:L.value},[h("div",{class:"scroll",style:D.value},[ie])])]):ie}}});const useAnchorProps={target:{default:!0},noParentEvent:Boolean,contextMenu:Boolean};function useAnchor({showing:e,avoidEmit:r,configureAnchorEl:n}){const{props:o,proxy:u,emit:f}=getCurrentInstance(),_=ref(null);let a;function w(D){return _.value===null?!1:D===void 0||D.touches===void 0||D.touches.length<=1}const E={};n===void 0&&(Object.assign(E,{hide(D){u.hide(D)},toggle(D){u.toggle(D),D.qAnchorHandled=!0},toggleKey(D){isKeyCode(D,13)===!0&&E.toggle(D)},contextClick(D){u.hide(D),prevent(D),nextTick(()=>{u.show(D),D.qAnchorHandled=!0})},prevent,mobileTouch(D){if(E.mobileCleanup(D),w(D)!==!0)return;u.hide(D),_.value.classList.add("non-selectable");const U=D.target;addEvt(E,"anchor",[[U,"touchmove","mobileCleanup","passive"],[U,"touchend","mobileCleanup","passive"],[U,"touchcancel","mobileCleanup","passive"],[_.value,"contextmenu","prevent","notPassive"]]),a=setTimeout(()=>{u.show(D),D.qAnchorHandled=!0},300)},mobileCleanup(D){_.value.classList.remove("non-selectable"),clearTimeout(a),e.value===!0&&D!==void 0&&clearSelection()}}),n=function(D=o.contextMenu){if(o.noParentEvent===!0||_.value===null)return;let U;D===!0?u.$q.platform.is.mobile===!0?U=[[_.value,"touchstart","mobileTouch","passive"]]:U=[[_.value,"mousedown","hide","passive"],[_.value,"contextmenu","contextClick","notPassive"]]:U=[[_.value,"click","toggle","passive"],[_.value,"keyup","toggleKey","passive"]],addEvt(E,"anchor",U)});function M(){cleanEvt(E,"anchor")}function k(D){for(_.value=D;_.value.classList.contains("q-anchor--skip");)_.value=_.value.parentNode;n()}function L(){if(o.target===!1||o.target===""||u.$el.parentNode===null)_.value=null;else if(o.target===!0)k(u.$el.parentNode);else{let D=o.target;if(typeof o.target=="string")try{D=document.querySelector(o.target)}catch{D=void 0}D!=null?(_.value=D.$el||D,n()):(_.value=null,console.error(`Anchor: target "${o.target}" not found`))}}return watch(()=>o.contextMenu,D=>{_.value!==null&&(M(),n(D))}),watch(()=>o.target,()=>{_.value!==null&&M(),L()}),watch(()=>o.noParentEvent,D=>{_.value!==null&&(D===!0?M():n())}),onMounted(()=>{L(),r!==!0&&o.modelValue===!0&&_.value===null&&f("update:modelValue",!1)}),onBeforeUnmount(()=>{clearTimeout(a),M()}),{anchorEl:_,canShow:w,anchorEvents:E}}function useScrollTarget(e,r){const n=ref(null);let o;function u(a,w){const E=`${w!==void 0?"add":"remove"}EventListener`,M=w!==void 0?w:o;a!==window&&a[E]("scroll",M,listenOpts.passive),window[E]("scroll",M,listenOpts.passive),o=w}function f(){n.value!==null&&(u(n.value),n.value=null)}const _=watch(()=>e.noParentEvent,()=>{n.value!==null&&(f(),r())});return onBeforeUnmount(_),{localScrollTarget:n,unconfigureScrollTarget:f,changeScrollEvent:u}}let timer;const{notPassiveCapture}=listenOpts,registeredList=[];function globalHandler(e){clearTimeout(timer);const r=e.target;if(r===void 0||r.nodeType===8||r.classList.contains("no-pointer-events")===!0)return;let n=portalProxyList.length-1;for(;n>=0;){const o=portalProxyList[n].$;if(o.type.name!=="QDialog")break;if(o.props.seamless!==!0)return;n--}for(let o=registeredList.length-1;o>=0;o--){const u=registeredList[o];if((u.anchorEl.value===null||u.anchorEl.value.contains(r)===!1)&&(r===document.body||u.innerRef.value!==null&&u.innerRef.value.contains(r)===!1))e.qClickOutside=!0,u.onClickOutside(e);else return}}function addClickOutside(e){registeredList.push(e),registeredList.length===1&&(document.addEventListener("mousedown",globalHandler,notPassiveCapture),document.addEventListener("touchstart",globalHandler,notPassiveCapture))}function removeClickOutside(e){const r=registeredList.findIndex(n=>n===e);r>-1&&(registeredList.splice(r,1),registeredList.length===0&&(clearTimeout(timer),document.removeEventListener("mousedown",globalHandler,notPassiveCapture),document.removeEventListener("touchstart",globalHandler,notPassiveCapture)))}let vpLeft,vpTop;function validatePosition(e){const r=e.split(" ");return r.length!==2?!1:["top","center","bottom"].includes(r[0])!==!0?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):["left","middle","right","start","end"].includes(r[1])!==!0?(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1):!0}function validateOffset(e){return e?!(e.length!==2||typeof e[0]!="number"||typeof e[1]!="number"):!0}const horizontalPos={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};["left","middle","right"].forEach(e=>{horizontalPos[`${e}#ltr`]=e,horizontalPos[`${e}#rtl`]=e});function parsePosition(e,r){const n=e.split(" ");return{vertical:n[0],horizontal:horizontalPos[`${n[1]}#${r===!0?"rtl":"ltr"}`]}}function getAnchorProps(e,r){let{top:n,left:o,right:u,bottom:f,width:_,height:a}=e.getBoundingClientRect();return r!==void 0&&(n-=r[1],o-=r[0],f+=r[1],u+=r[0],_+=r[0],a+=r[1]),{top:n,left:o,right:u,bottom:f,width:_,height:a,middle:o+(u-o)/2,center:n+(f-n)/2}}function getTargetProps(e){return{top:0,center:e.offsetHeight/2,bottom:e.offsetHeight,left:0,middle:e.offsetWidth/2,right:e.offsetWidth}}function setPosition(e){if(client$1.is.ios===!0&&window.visualViewport!==void 0){const a=document.body.style,{offsetLeft:w,offsetTop:E}=window.visualViewport;w!==vpLeft&&(a.setProperty("--q-pe-left",w+"px"),vpLeft=w),E!==vpTop&&(a.setProperty("--q-pe-top",E+"px"),vpTop=E)}let r;const{scrollLeft:n,scrollTop:o}=e.el;if(e.absoluteOffset===void 0)r=getAnchorProps(e.anchorEl,e.cover===!0?[0,0]:e.offset);else{const{top:a,left:w}=e.anchorEl.getBoundingClientRect(),E=a+e.absoluteOffset.top,M=w+e.absoluteOffset.left;r={top:E,left:M,width:1,height:1,right:M+1,center:E,middle:M,bottom:E+1}}let u={maxHeight:e.maxHeight,maxWidth:e.maxWidth,visibility:"visible"};(e.fit===!0||e.cover===!0)&&(u.minWidth=r.width+"px",e.cover===!0&&(u.minHeight=r.height+"px")),Object.assign(e.el.style,u);const f=getTargetProps(e.el),_={top:r[e.anchorOrigin.vertical]-f[e.selfOrigin.vertical],left:r[e.anchorOrigin.horizontal]-f[e.selfOrigin.horizontal]};applyBoundaries(_,r,f,e.anchorOrigin,e.selfOrigin),u={top:_.top+"px",left:_.left+"px"},_.maxHeight!==void 0&&(u.maxHeight=_.maxHeight+"px",r.height>_.maxHeight&&(u.minHeight=u.maxHeight)),_.maxWidth!==void 0&&(u.maxWidth=_.maxWidth+"px",r.width>_.maxWidth&&(u.minWidth=u.maxWidth)),Object.assign(e.el.style,u),e.el.scrollTop!==o&&(e.el.scrollTop=o),e.el.scrollLeft!==n&&(e.el.scrollLeft=n)}function applyBoundaries(e,r,n,o,u){const f=n.bottom,_=n.right,a=getScrollbarWidth(),w=window.innerHeight-a,E=document.body.clientWidth;if(e.top<0||e.top+f>w)if(u.vertical==="center")e.top=r[o.vertical]>w/2?Math.max(0,w-f):0,e.maxHeight=Math.min(f,w);else if(r[o.vertical]>w/2){const M=Math.min(w,o.vertical==="center"?r.center:o.vertical===u.vertical?r.bottom:r.top);e.maxHeight=Math.min(f,M),e.top=Math.max(0,M-f)}else e.top=Math.max(0,o.vertical==="center"?r.center:o.vertical===u.vertical?r.top:r.bottom),e.maxHeight=Math.min(f,w-e.top);if(e.left<0||e.left+_>E)if(e.maxWidth=Math.min(_,E),u.horizontal==="middle")e.left=r[o.horizontal]>E/2?Math.max(0,E-_):0;else if(r[o.horizontal]>E/2){const M=Math.min(E,o.horizontal==="middle"?r.middle:o.horizontal===u.horizontal?r.right:r.left);e.maxWidth=Math.min(_,M),e.left=Math.max(0,M-e.maxWidth)}else e.left=Math.max(0,o.horizontal==="middle"?r.middle:o.horizontal===u.horizontal?r.left:r.right),e.maxWidth=Math.min(_,E-e.left)}var QMenu=createComponent({name:"QMenu",inheritAttrs:!1,props:{...useAnchorProps,...useModelToggleProps,...useDarkProps,...useTransitionProps,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:validatePosition},self:{type:String,validator:validatePosition},offset:{type:Array,validator:validateOffset},scrollTarget:{default:void 0},touchPosition:Boolean,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...useModelToggleEmits,"click","escapeKey"],setup(e,{slots:r,emit:n,attrs:o}){let u=null,f,_,a;const w=getCurrentInstance(),{proxy:E}=w,{$q:M}=E,k=ref(null),L=ref(!1),D=computed(()=>e.persistent!==!0&&e.noRouteDismiss!==!0),U=useDark(e,M),{registerTick:q,removeTick:Y}=useTick(),{registerTimeout:X}=useTimeout(),{transitionProps:oe,transitionStyle:W}=useTransition(e),{localScrollTarget:K,changeScrollEvent:ie,unconfigureScrollTarget:Te}=useScrollTarget(e,ot),{anchorEl:ve,canShow:se}=useAnchor({showing:L}),{hide:_e}=useModelToggle({showing:L,canShow:se,handleShow:Xe,handleHide:mt,hideOnRouteChange:D,processOnMount:!0}),{showPortal:ee,hidePortal:ue,renderPortal:Me}=usePortal(w,k,mi),ke={anchorEl:ve,innerRef:k,onClickOutside(_t){if(e.persistent!==!0&&L.value===!0)return _e(_t),(_t.type==="touchstart"||_t.target.classList.contains("q-dialog__backdrop"))&&stopAndPrevent(_t),!0}},Qe=computed(()=>parsePosition(e.anchor||(e.cover===!0?"center middle":"bottom start"),M.lang.rtl)),at=computed(()=>e.cover===!0?Qe.value:parsePosition(e.self||"top start",M.lang.rtl)),Ft=computed(()=>(e.square===!0?" q-menu--square":"")+(U.value===!0?" q-menu--dark q-dark":"")),Qt=computed(()=>e.autoClose===!0?{onClick:At}:{}),Rt=computed(()=>L.value===!0&&e.persistent!==!0);watch(Rt,_t=>{_t===!0?(addEscapeKey(Ct),addClickOutside(ke)):(removeEscapeKey(Ct),removeClickOutside(ke))});function Jt(){addFocusFn(()=>{let _t=k.value;_t&&_t.contains(document.activeElement)!==!0&&(_t=_t.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||_t.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||_t.querySelector("[autofocus], [data-autofocus]")||_t,_t.focus({preventScroll:!0}))})}function Xe(_t){if(u=e.noRefocus===!1?document.activeElement:null,addFocusout(xt),ee(),ot(),f=void 0,_t!==void 0&&(e.touchPosition||e.contextMenu)){const Ei=position(_t);if(Ei.left!==void 0){const{top:zi,left:Bi}=ve.value.getBoundingClientRect();f={left:Ei.left-Bi,top:Ei.top-zi}}}_===void 0&&(_=watch(()=>M.screen.width+"|"+M.screen.height+"|"+e.self+"|"+e.anchor+"|"+M.lang.rtl,It)),e.noFocus!==!0&&document.activeElement.blur(),q(()=>{It(),e.noFocus!==!0&&Jt()}),X(()=>{M.platform.is.ios===!0&&(a=e.autoClose,k.value.click()),It(),ee(!0),n("show",_t)},e.transitionDuration)}function mt(_t){Y(),ue(),gt(!0),u!==null&&(_t===void 0||_t.qClickOutside!==!0)&&(u.focus(),u=null),X(()=>{ue(!0),n("hide",_t)},e.transitionDuration)}function gt(_t){f=void 0,_!==void 0&&(_(),_=void 0),(_t===!0||L.value===!0)&&(removeFocusout(xt),Te(),removeClickOutside(ke),removeEscapeKey(Ct)),_t!==!0&&(u=null)}function ot(){(ve.value!==null||e.scrollTarget!==void 0)&&(K.value=getScrollTarget(ve.value,e.scrollTarget),ie(K.value,It))}function At(_t){a!==!0?(closePortalMenus(E,_t),n("click",_t)):a=!1}function xt(_t){Rt.value===!0&&e.noFocus!==!0&&childHasFocus(k.value,_t.target)!==!0&&Jt()}function Ct(_t){n("escapeKey"),_e(_t)}function It(){const _t=k.value;_t===null||ve.value===null||setPosition({el:_t,offset:e.offset,anchorEl:ve.value,anchorOrigin:Qe.value,selfOrigin:at.value,absoluteOffset:f,fit:e.fit,cover:e.cover,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function mi(){return h(Transition,oe.value,()=>L.value===!0?h("div",{role:"menu",...o,ref:k,tabindex:-1,class:["q-menu q-position-engine scroll"+Ft.value,o.class],style:[o.style,W.value],...Qt.value},hSlot(r.default)):null)}return onBeforeUnmount(gt),Object.assign(E,{focus:Jt,updatePosition:It}),Me}}),QToolbar=createComponent({name:"QToolbar",props:{inset:Boolean},setup(e,{slots:r}){const n=computed(()=>"q-toolbar row no-wrap items-center"+(e.inset===!0?" q-toolbar--inset":""));return()=>h("div",{class:n.value,role:"toolbar"},hSlot(r.default))}});class Store{constructor(r="unreal-mapbox",n="keyval"){this.storeName=n,this._dbp=new Promise((o,u)=>{const f=indexedDB.open(r,3);f.onerror=()=>u(f.error),f.onsuccess=()=>o(f.result),f.onupgradeneeded=()=>{try{f.result.deleteObjectStore(n)}catch{}f.result.createObjectStore(n)}})}_withIDBStore(r,n){return this._dbp.then(o=>new Promise((u,f)=>{const _=o.transaction(this.storeName,r);_.oncomplete=()=>u(),_.onabort=_.onerror=()=>f(_.error),n(_.objectStore(this.storeName))}))}}let store;function getDefaultStore(){return store||(store=new Store),store}function get(e,r=getDefaultStore()){let n;return r._withIDBStore("readonly",o=>{n=o.get(e)}).then(()=>n.result)}function set(e,r,n=getDefaultStore()){return n._withIDBStore("readwrite",o=>{o.put(r,e)})}function del(e,r=getDefaultStore()){return r._withIDBStore("readwrite",n=>{n.delete(e)})}function clear(e=getDefaultStore()){return e._withIDBStore("readwrite",r=>{r.clear()})}function keys(e=getDefaultStore()){const r=[];return e._withIDBStore("readonly",n=>{(n.openKeyCursor||n.openCursor).call(n).onsuccess=function(){!this.result||(r.push(this.result.key),this.result.continue())}}).then(()=>r)}var idbKeyval={keys,clear,del,set,get};function getFileHandle(){if("showOpenFilePicker"in window)return window.showOpenFilePicker().then(e=>e[0])}function getDirHandle(){if("showDirectoryPicker"in window)return window.showDirectoryPicker().then(e=>e)}async function verifyPermission(e,r){const n={};return r&&(n.writable=!0,n.mode="readwrite"),await e.queryPermission(n)==="granted"||await e.requestPermission(n)==="granted"}async function writeFileToDisk(e,r,n){let u=await(await e.getFileHandle(r,{create:!0})).createWritable();await u.write(n),await u.close()}async function fileExists(e,r){try{return await e.getFileHandle(r),!0}catch(n){if(n.name==="NotFoundError")return!1;if(n.name==="NotAllowedError")return console.log("Please select directory to verify permissions"),!1}}async function readFileFromDisk(e,r){return await(await(await e.getFileHandle(r)).getFile()).arrayBuffer()}var fileUtils={getDirHandle,verifyPermission,writeFileToDisk,fileExists,getFileHandle,readFileFromDisk},commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var r=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),r}function commonjsRequire(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var mapboxGl={exports:{}};(function(e,r){(function(n,o){e.exports=o()})(commonjsGlobal,function(){var n,o,u;function f(a,w){if(!n)n=w;else if(!o)o=w;else{var E="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+n+")(sharedChunk); ("+o+")(sharedChunk); self.onerror = null;",M={};n(M),u=w(M),typeof window<"u"&&window&&window.URL&&window.URL.createObjectURL&&(u.workerUrl=window.URL.createObjectURL(new Blob([E],{type:"text/javascript"})))}}f(["exports"],function(a){var w=typeof self<"u"?self:{},E=M;function M(l,t,s,d){this.cx=3*l,this.bx=3*(s-l)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*t,this.by=3*(d-t)-this.cy,this.ay=1-this.cy-this.by,this.p1x=l,this.p1y=d,this.p2x=s,this.p2y=d}M.prototype.sampleCurveX=function(l){return((this.ax*l+this.bx)*l+this.cx)*l},M.prototype.sampleCurveY=function(l){return((this.ay*l+this.by)*l+this.cy)*l},M.prototype.sampleCurveDerivativeX=function(l){return(3*this.ax*l+2*this.bx)*l+this.cx},M.prototype.solveCurveX=function(l,t){var s,d,m,y,b;for(t===void 0&&(t=1e-6),m=l,b=0;b<8;b++){if(y=this.sampleCurveX(m)-l,Math.abs(y)(d=1))return d;for(;sy?s=m:d=m,m=.5*(d-s)+s}return m},M.prototype.solve=function(l,t){return this.sampleCurveY(this.solveCurveX(l,t))};var k=L;function L(l,t){this.x=l,this.y=t}L.prototype={clone:function(){return new L(this.x,this.y)},add:function(l){return this.clone()._add(l)},sub:function(l){return this.clone()._sub(l)},multByPoint:function(l){return this.clone()._multByPoint(l)},divByPoint:function(l){return this.clone()._divByPoint(l)},mult:function(l){return this.clone()._mult(l)},div:function(l){return this.clone()._div(l)},rotate:function(l){return this.clone()._rotate(l)},rotateAround:function(l,t){return this.clone()._rotateAround(l,t)},matMult:function(l){return this.clone()._matMult(l)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(l){return this.x===l.x&&this.y===l.y},dist:function(l){return Math.sqrt(this.distSqr(l))},distSqr:function(l){var t=l.x-this.x,s=l.y-this.y;return t*t+s*s},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(l){return Math.atan2(this.y-l.y,this.x-l.x)},angleWith:function(l){return this.angleWithSep(l.x,l.y)},angleWithSep:function(l,t){return Math.atan2(this.x*t-this.y*l,this.x*l+this.y*t)},_matMult:function(l){var t=l[2]*this.x+l[3]*this.y;return this.x=l[0]*this.x+l[1]*this.y,this.y=t,this},_add:function(l){return this.x+=l.x,this.y+=l.y,this},_sub:function(l){return this.x-=l.x,this.y-=l.y,this},_mult:function(l){return this.x*=l,this.y*=l,this},_div:function(l){return this.x/=l,this.y/=l,this},_multByPoint:function(l){return this.x*=l.x,this.y*=l.y,this},_divByPoint:function(l){return this.x/=l.x,this.y/=l.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var l=this.y;return this.y=this.x,this.x=-l,this},_rotate:function(l){var t=Math.cos(l),s=Math.sin(l),d=s*this.x+t*this.y;return this.x=t*this.x-s*this.y,this.y=d,this},_rotateAround:function(l,t){var s=Math.cos(l),d=Math.sin(l),m=t.y+d*(this.x-t.x)+s*(this.y-t.y);return this.x=t.x+s*(this.x-t.x)-d*(this.y-t.y),this.y=m,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},L.convert=function(l){return l instanceof L?l:Array.isArray(l)?new L(l[0],l[1]):l};const D=Math.PI/180,U=180/Math.PI;function q(l){return l*D}function Y(l){return l*U}const X=[[0,0],[1,0],[1,1],[0,1]];function oe(l){if(l<=0)return 0;if(l>=1)return 1;const t=l*l,s=t*l;return 4*(l<.5?s:3*(l-t)+s-.75)}function W(l,t,s,d){const m=new E(l,t,s,d);return function(y){return m.solve(y)}}const K=W(.25,.1,.25,1);function ie(l,t,s){return Math.min(s,Math.max(t,l))}function Te(l,t,s){return(s=ie((s-l)/(t-l),0,1))*s*(3-2*s)}function ve(l,t,s){const d=s-t,m=((l-t)%d+d)%d+t;return m===t?s:m}function se(l,t,s){if(!l.length)return s(null,[]);let d=l.length;const m=new Array(l.length);let y=null;l.forEach((b,T)=>{t(b,(C,I)=>{C&&(y=C),m[T]=I,--d==0&&s(y,m)})})}function _e(l){const t=[];for(const s in l)t.push(l[s]);return t}function ee(l,...t){for(const s of t)for(const d in s)l[d]=s[d];return l}let ue=1;function Me(){return ue++}function ke(){return function l(t){return t?(t^Math.random()*(16>>t/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,l)}()}function Qe(l){return l<=1?1:Math.pow(2,Math.ceil(Math.log(l)/Math.LN2))}function at(l){return!!l&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(l)}function Ft(l,t){l.forEach(s=>{t[s]&&(t[s]=t[s].bind(t))})}function Qt(l,t){return l.indexOf(t,l.length-t.length)!==-1}function Rt(l,t,s){const d={};for(const m in l)d[m]=t.call(s||this,l[m],m,l);return d}function Jt(l,t,s){const d={};for(const m in l)t.call(s||this,l[m],m,l)&&(d[m]=l[m]);return d}function Xe(l){return Array.isArray(l)?l.map(Xe):typeof l=="object"&&l?Rt(l,Xe):l}const mt={};function gt(l){mt[l]||(typeof console<"u"&&console.warn(l),mt[l]=!0)}function ot(l,t,s){return(s.y-l.y)*(t.x-l.x)>(t.y-l.y)*(s.x-l.x)}function At(l){let t=0;for(let s,d,m=0,y=l.length,b=y-1;m@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(s,d,m,y)=>{const b=m||y;return t[d]=!b||b.toLowerCase(),""}),t["max-age"]){const s=parseInt(t["max-age"],10);isNaN(s)?delete t["max-age"]:t["max-age"]=s}return t}let It=null;function mi(l){if(It==null){const t=l.navigator?l.navigator.userAgent:null;It=!!l.safari||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome")))}return It}function _t(l){try{const t=w[l];return t.setItem("_mapbox_test_",1),t.removeItem("_mapbox_test_"),!0}catch{return!1}}function Ei(l,t){return[l[4*t],l[4*t+1],l[4*t+2],l[4*t+3]]}const zi=w.performance;function Bi(l){const t=l?l.url.toString():void 0;return zi.getEntriesByName(t)}var yi="2.10.0";let St,kt,Ai,Ti;const Si={now:()=>Ai!==void 0?Ai:w.performance.now(),setNow(l){Ai=l},restoreNow(){Ai=void 0},frame(l){const t=w.requestAnimationFrame(l);return{cancel:()=>w.cancelAnimationFrame(t)}},getImageData(l,t=0){const{width:s,height:d}=l;Ti||(Ti=w.document.createElement("canvas"));const m=Ti.getContext("2d");if(!m)throw new Error("failed to create canvas 2d context");return(s>Ti.width||d>Ti.height)&&(Ti.width=s,Ti.height=d),m.clearRect(-t,-t,s+2*t,d+2*t),m.drawImage(l,0,0,s,d),m.getImageData(-t,-t,s+2*t,d+2*t)},resolveURL:l=>(St||(St=w.document.createElement("a")),St.href=l,St.href),get devicePixelRatio(){return w.devicePixelRatio},get prefersReducedMotion(){return!!w.matchMedia&&(kt==null&&(kt=w.matchMedia("(prefers-reduced-motion: reduce)")),kt.matches)}};let rt;const dt={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(rt==null){const l=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{rt={}.API_URL_REGEX!=null?new RegExp({}.API_URL_REGEX):l}catch{rt=l}}return rt},get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf("https://api.mapbox.cn")===0?"https://events.mapbox.cn/events/v2":this.API_URL.indexOf("https://api.mapbox.com")===0?"https://events.mapbox.com/events/v2":null:null},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},gi={supported:!1,testSupport:function(l){!pt&&Ae&&(jt?Nt(l):di=l)}};let di,Ae,pt=!1,jt=!1;function Nt(l){const t=l.createTexture();l.bindTexture(l.TEXTURE_2D,t);try{if(l.texImage2D(l.TEXTURE_2D,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,Ae),l.isContextLost())return;gi.supported=!0}catch{}l.deleteTexture(t),pt=!0}w.document&&(Ae=w.document.createElement("img"),Ae.onload=function(){di&&Nt(di),di=null,jt=!0},Ae.onerror=function(){pt=!0,di=null},Ae.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const Ht="01",Ut="NO_ACCESS_TOKEN";function Pt(l){return l.indexOf("mapbox:")===0}function ei(l){return dt.API_URL_REGEX.test(l)}const Li=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function fi(l){const t=l.match(Li);if(!t)throw new Error("Unable to parse URL object");return{protocol:t[1],authority:t[2],path:t[3]||"/",params:t[4]?t[4].split("&"):[]}}function Ii(l){const t=l.params.length?`?${l.params.join("&")}`:"";return`${l.protocol}://${l.authority}${l.path}${t}`}function Hi(l){if(!l)return null;const t=l.split(".");if(!t||t.length!==3)return null;try{return JSON.parse(decodeURIComponent(w.atob(t[1]).split("").map(s=>"%"+("00"+s.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch{return null}}class er{constructor(t){this.type=t,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(t){const s=Hi(dt.ACCESS_TOKEN);let d="";return d=s&&s.u?w.btoa(encodeURIComponent(s.u).replace(/%([0-9A-F]{2})/g,(m,y)=>String.fromCharCode(Number("0x"+y)))):dt.ACCESS_TOKEN||"",t?`mapbox.eventData.${t}:${d}`:`mapbox.eventData:${d}`}fetchEventData(){const t=_t("localStorage"),s=this.getStorageKey(),d=this.getStorageKey("uuid");if(t)try{const m=w.localStorage.getItem(s);m&&(this.eventData=JSON.parse(m));const y=w.localStorage.getItem(d);y&&(this.anonId=y)}catch{gt("Unable to read from LocalStorage")}}saveEventData(){const t=_t("localStorage"),s=this.getStorageKey(),d=this.getStorageKey("uuid");if(t)try{w.localStorage.setItem(d,this.anonId),Object.keys(this.eventData).length>=1&&w.localStorage.setItem(s,JSON.stringify(this.eventData))}catch{gt("Unable to write to LocalStorage")}}processRequests(t){}postEvent(t,s,d,m){if(!dt.EVENTS_URL)return;const y=fi(dt.EVENTS_URL);y.params.push(`access_token=${m||dt.ACCESS_TOKEN||""}`);const b={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:yi,skuId:Ht,userId:this.anonId},T=s?ee(b,s):b,C={url:Ii(y),headers:{"Content-Type":"text/plain"},body:JSON.stringify([T])};this.pendingRequest=st(C,I=>{this.pendingRequest=null,d(I),this.saveEventData(),this.processRequests(m)})}queueRequest(t,s){this.queue.push(t),this.processRequests(s)}}const Gi=new class extends er{constructor(l){super("appUserTurnstile"),this._customAccessToken=l}postTurnstileEvent(l,t){dt.EVENTS_URL&&dt.ACCESS_TOKEN&&Array.isArray(l)&&l.some(s=>Pt(s)||ei(s))&&this.queueRequest(Date.now(),t)}processRequests(l){if(this.pendingRequest||this.queue.length===0)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const t=Hi(dt.ACCESS_TOKEN),s=t?t.u:dt.ACCESS_TOKEN;let d=s!==this.eventData.tokenU;at(this.anonId)||(this.anonId=ke(),d=!0);const m=this.queue.shift();if(this.eventData.lastSuccess){const y=new Date(this.eventData.lastSuccess),b=new Date(m),T=(m-this.eventData.lastSuccess)/864e5;d=d||T>=1||T<-1||y.getDate()!==b.getDate()}else d=!0;d?this.postEvent(m,{"enabled.telemetry":!1},y=>{y||(this.eventData.lastSuccess=m,this.eventData.tokenU=s)},l):this.processRequests()}},Mi=Gi.postTurnstileEvent.bind(Gi),Pr=new class extends er{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(l,t,s,d){this.skuToken=t,this.errorCb=d,dt.EVENTS_URL&&(s||dt.ACCESS_TOKEN?this.queueRequest({id:l,timestamp:Date.now()},s):this.errorCb(new Error(Ut)))}processRequests(l){if(this.pendingRequest||this.queue.length===0)return;const{id:t,timestamp:s}=this.queue.shift();t&&this.success[t]||(this.anonId||this.fetchEventData(),at(this.anonId)||(this.anonId=ke()),this.postEvent(s,{skuToken:this.skuToken},d=>{d?this.errorCb(d):t&&(this.success[t]=!0)},l))}},xn=Pr.postMapLoadEvent.bind(Pr),In=new class extends er{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(l,t,s,d){if(!dt.API_URL||!dt.SESSION_PATH)return;const m=fi(dt.API_URL+dt.SESSION_PATH);m.params.push(`sku=${t||""}`),m.params.push(`access_token=${d||dt.ACCESS_TOKEN||""}`);const y={url:Ii(m),headers:{"Content-Type":"text/plain"}};this.pendingRequest=Vt(y,b=>{this.pendingRequest=null,s(b),this.saveEventData(),this.processRequests(d)})}getSessionAPI(l,t,s,d){this.skuToken=t,this.errorCb=d,dt.SESSION_PATH&&dt.API_URL&&(s||dt.ACCESS_TOKEN?this.queueRequest({id:l,timestamp:Date.now()},s):this.errorCb(new Error(Ut)))}processRequests(l){if(this.pendingRequest||this.queue.length===0)return;const{id:t,timestamp:s}=this.queue.shift();t&&this.success[t]||this.getSession(s,this.skuToken,d=>{d?this.errorCb(d):t&&(this.success[t]=!0)},l)}},Zr=In.getSessionAPI.bind(In),Kr=new Set;let Ki,Xr=500,Fr=50,wr={};function xe(l){const t=Q(l);let s,d;t&&t.forEach(y=>{const b=y.split("=");b[0]==="language"?s=b[1]:b[0]==="worldview"&&(d=b[1])});let m="mapbox-tiles";return s&&(m+=`-${s}`),d&&(m+=`-${d}`),m}function te(){try{return w.caches}catch{}}function $(l){const t=te();t&&!wr[l]&&(wr[l]=t.open(l))}function Q(l){const t=l.indexOf("?");return t>0?l.slice(t+1).split("&"):[]}function ce(l){const t=l.indexOf("?");if(t<0)return l;const s=Q(l).filter(d=>{const m=d.split("=");return m[0]==="language"||m[0]==="worldview"});return s.length?`${l.slice(0,t)}?${s.join("&")}`:l.slice(0,t)}let fe=1/0;const Ie={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(Ie);class $e extends Error{constructor(t,s,d){s===401&&ei(d)&&(t+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),super(t),this.status=s,this.url=d}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}const je=xt()?()=>self.worker&&self.worker.referrer:()=>(w.location.protocol==="blob:"?w.parent:w).location.href,Be=function(l,t){if(!(/^file:/.test(s=l.url)||/^file:/.test(je())&&!/^\w+:/.test(s))){if(w.fetch&&w.Request&&w.AbortController&&w.Request.prototype.hasOwnProperty("signal"))return function(d,m){const y=new w.AbortController,b=new w.Request(d.url,{method:d.method||"GET",body:d.body,credentials:d.credentials,headers:d.headers,referrer:je(),signal:y.signal});let T=!1,C=!1;const I=(F=b.url).indexOf("sku=")>0&&ei(F);var F;d.type==="json"&&b.headers.set("Accept","application/json");const N=(H,J,ne)=>{if(C)return;if(H&&H.message!=="SecurityError"&>(H),J&&ne)return V(J);const he=Date.now();w.fetch(b).then(we=>{if(we.ok){const De=I?we.clone():null;return V(we,De,he)}return m(new $e(we.statusText,we.status,d.url))}).catch(we=>{we.code!==20&&m(new Error(we.message))})},V=(H,J,ne)=>{(d.type==="arrayBuffer"?H.arrayBuffer():d.type==="json"?H.json():H.text()).then(he=>{C||(J&&ne&&function(we,De,Se){const Ce=xe(we.url);if($(Ce),!wr[Ce])return;const Ue={status:De.status,statusText:De.statusText,headers:new w.Headers};De.headers.forEach((it,yt)=>Ue.headers.set(yt,it));const Re=Ct(De.headers.get("Cache-Control")||"");if(Re["no-store"])return;Re["max-age"]&&Ue.headers.set("Expires",new Date(Se+1e3*Re["max-age"]).toUTCString());const nt=Ue.headers.get("Expires");nt&&(new Date(nt).getTime()-Se<42e4||function(it,yt){if(Ki===void 0)try{new Response(new ReadableStream),Ki=!0}catch{Ki=!1}Ki?yt(it.body):it.blob().then(yt)}(De,it=>{const yt=new w.Response(it,Ue);$(Ce),wr[Ce]&&wr[Ce].then(Zt=>Zt.put(ce(we.url),yt)).catch(Zt=>gt(Zt.message))}))}(b,J,ne),T=!0,m(null,he,H.headers.get("Cache-Control"),H.headers.get("Expires")))}).catch(he=>{C||m(new Error(he.message))})};return I?function(H,J){const ne=xe(H.url);if($(ne),!wr[ne])return J(null);const he=ce(H.url);wr[ne].then(we=>{we.match(he).then(De=>{const Se=function(Ce){if(!Ce)return!1;const Ue=new Date(Ce.headers.get("Expires")||0),Re=Ct(Ce.headers.get("Cache-Control")||"");return Ue>Date.now()&&!Re["no-cache"]}(De);we.delete(he),Se&&we.put(he,De.clone()),J(null,De,Se)}).catch(J)}).catch(J)}(b,N):N(null,null),{cancel:()=>{C=!0,T||y.abort()}}}(l,t);if(xt()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",l,t,void 0,!0)}var s;return function(d,m){const y=new w.XMLHttpRequest;y.open(d.method||"GET",d.url,!0),d.type==="arrayBuffer"&&(y.responseType="arraybuffer");for(const b in d.headers)y.setRequestHeader(b,d.headers[b]);return d.type==="json"&&(y.responseType="text",y.setRequestHeader("Accept","application/json")),y.withCredentials=d.credentials==="include",y.onerror=()=>{m(new Error(y.statusText))},y.onload=()=>{if((y.status>=200&&y.status<300||y.status===0)&&y.response!==null){let b=y.response;if(d.type==="json")try{b=JSON.parse(y.response)}catch(T){return m(T)}m(null,b,y.getResponseHeader("Cache-Control"),y.getResponseHeader("Expires"))}else m(new $e(y.statusText,y.status,d.url))},y.send(d.body),{cancel:()=>y.abort()}}(l,t)},He=function(l,t){return Be(ee(l,{type:"arrayBuffer"}),t)},st=function(l,t){return Be(ee(l,{method:"POST"}),t)},Vt=function(l,t){return Be(ee(l,{method:"GET"}),t)};function ut(l){const t=w.document.createElement("a");return t.href=l,t.protocol===w.document.location.protocol&&t.host===w.document.location.host}const pi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";let ai,ci;ai=[],ci=0;const Ci=function(l,t){if(gi.supported&&(l.headers||(l.headers={}),l.headers.accept="image/webp,*/*"),ci>=dt.MAX_PARALLEL_IMAGE_REQUESTS){const y={requestParameters:l,callback:t,cancelled:!1,cancel(){this.cancelled=!0}};return ai.push(y),y}ci++;let s=!1;const d=()=>{if(!s)for(s=!0,ci--;ai.length&&ci{d(),y?t(y):b&&(w.createImageBitmap?function(I,F){const N=new w.Blob([new Uint8Array(I)],{type:"image/png"});w.createImageBitmap(N).then(V=>{F(null,V)}).catch(V=>{F(new Error(`Could not load image because of ${V.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(b,(I,F)=>t(I,F,T,C)):function(I,F){const N=new w.Image,V=w.URL;N.onload=()=>{F(null,N),V.revokeObjectURL(N.src),N.onload=null,w.requestAnimationFrame(()=>{N.src=pi})},N.onerror=()=>F(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const H=new w.Blob([new Uint8Array(I)],{type:"image/png"});N.src=I.byteLength?V.createObjectURL(H):pi}(b,(I,F)=>t(I,F,T,C)))});return{cancel:()=>{m.cancel(),d()}}};function Ri(l,t,s){s[l]&&s[l].indexOf(t)!==-1||(s[l]=s[l]||[],s[l].push(t))}function tr(l,t,s){if(s&&s[l]){const d=s[l].indexOf(t);d!==-1&&s[l].splice(d,1)}}class Le{constructor(t,s={}){ee(this,s),this.type=t}}class Gt extends Le{constructor(t,s={}){super("error",ee({error:t},s))}}class ht{on(t,s){return this._listeners=this._listeners||{},Ri(t,s,this._listeners),this}off(t,s){return tr(t,s,this._listeners),tr(t,s,this._oneTimeListeners),this}once(t,s){return s?(this._oneTimeListeners=this._oneTimeListeners||{},Ri(t,s,this._oneTimeListeners),this):new Promise(d=>this.once(t,d))}fire(t,s){typeof t=="string"&&(t=new Le(t,s||{}));const d=t.type;if(this.listens(d)){t.target=this;const m=this._listeners&&this._listeners[d]?this._listeners[d].slice():[];for(const T of m)T.call(this,t);const y=this._oneTimeListeners&&this._oneTimeListeners[d]?this._oneTimeListeners[d].slice():[];for(const T of y)tr(d,T,this._oneTimeListeners),T.call(this,t);const b=this._eventedParent;b&&(ee(t,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),b.fire(t))}else t instanceof Gt&&console.error(t.error);return this}listens(t){return!!(this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t))}setEventedParent(t,s){return this._eventedParent=t,this._eventedParentData=s,this}}var qe=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"cross-faded"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"cross-faded":{"type":"property-type"},"cross-faded-data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function Wi(l,...t){for(const s of t)for(const d in s)l[d]=s[d];return l}function Ni(l){return l instanceof Number||l instanceof String||l instanceof Boolean?l.valueOf():l}function fr(l){if(Array.isArray(l))return l.map(fr);if(l instanceof Object&&!(l instanceof Number||l instanceof String||l instanceof Boolean)){const t={};for(const s in l)t[s]=fr(l[s]);return t}return Ni(l)}class Gr extends Error{constructor(t,s){super(s),this.message=s,this.key=t}}var un=Gr;class fa{constructor(t,s=[]){this.parent=t,this.bindings={};for(const[d,m]of s)this.bindings[d]=m}concat(t){return new fa(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var nn=fa;const So={kind:"null"},ri={kind:"number"},qi={kind:"string"},ji={kind:"boolean"},kn={kind:"color"},sn={kind:"object"},Vi={kind:"value"},Zo={kind:"collator"},pa={kind:"formatted"},ma={kind:"resolvedImage"};function Pn(l,t){return{kind:"array",itemType:l,N:t}}function kr(l){if(l.kind==="array"){const t=kr(l.itemType);return typeof l.N=="number"?`array<${t}, ${l.N}>`:l.itemType.kind==="value"?"array":`array<${t}>`}return l.kind}const Js=[So,ri,qi,ji,kn,pa,sn,Pn(Vi),ma];function Xo(l,t){if(t.kind==="error")return null;if(l.kind==="array"){if(t.kind==="array"&&(t.N===0&&t.itemType.kind==="value"||!Xo(l.itemType,t.itemType))&&(typeof l.N!="number"||l.N===t.N))return null}else{if(l.kind===t.kind)return null;if(l.kind==="value"){for(const s of Js)if(!Xo(s,t))return null}}return`Expected ${kr(l)} but found ${kr(t)} instead.`}function Oa(l,t){return t.some(s=>s.kind===l.kind)}function yo(l,t){return t.some(s=>s==="null"?l===null:s==="array"?Array.isArray(l):s==="object"?l&&!Array.isArray(l)&&typeof l=="object":s===typeof l)}function Na(l){var t={exports:{}};return l(t,t.exports),t.exports}var B=Na(function(l,t){var s={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function d(T){return(T=Math.round(T))<0?0:T>255?255:T}function m(T){return d(T[T.length-1]==="%"?parseFloat(T)/100*255:parseInt(T))}function y(T){return(C=T[T.length-1]==="%"?parseFloat(T)/100:parseFloat(T))<0?0:C>1?1:C;var C}function b(T,C,I){return I<0?I+=1:I>1&&(I-=1),6*I<1?T+(C-T)*I*6:2*I<1?C:3*I<2?T+(C-T)*(2/3-I)*6:T}try{t.parseCSSColor=function(T){var C,I=T.replace(/ /g,"").toLowerCase();if(I in s)return s[I].slice();if(I[0]==="#")return I.length===4?(C=parseInt(I.substr(1),16))>=0&&C<=4095?[(3840&C)>>4|(3840&C)>>8,240&C|(240&C)>>4,15&C|(15&C)<<4,1]:null:I.length===7&&(C=parseInt(I.substr(1),16))>=0&&C<=16777215?[(16711680&C)>>16,(65280&C)>>8,255&C,1]:null;var F=I.indexOf("("),N=I.indexOf(")");if(F!==-1&&N+1===I.length){var V=I.substr(0,F),H=I.substr(F+1,N-(F+1)).split(","),J=1;switch(V){case"rgba":if(H.length!==4)return null;J=y(H.pop());case"rgb":return H.length!==3?null:[m(H[0]),m(H[1]),m(H[2]),J];case"hsla":if(H.length!==4)return null;J=y(H.pop());case"hsl":if(H.length!==3)return null;var ne=(parseFloat(H[0])%360+360)%360/360,he=y(H[1]),we=y(H[2]),De=we<=.5?we*(he+1):we+he-we*he,Se=2*we-De;return[d(255*b(Se,De,ne+1/3)),d(255*b(Se,De,ne)),d(255*b(Se,De,ne-1/3)),J];default:return null}}return null}}catch{}});class G{constructor(t,s,d,m=1){this.r=t,this.g=s,this.b=d,this.a=m}static parse(t){if(!t)return;if(t instanceof G)return t;if(typeof t!="string")return;const s=B.parseCSSColor(t);return s?new G(s[0]/255*s[3],s[1]/255*s[3],s[2]/255*s[3],s[3]):void 0}toString(){const[t,s,d,m]=this.toArray();return`rgba(${Math.round(t)},${Math.round(s)},${Math.round(d)},${m})`}toArray(){const{r:t,g:s,b:d,a:m}=this;return m===0?[0,0,0,0]:[255*t/m,255*s/m,255*d/m,m]}toArray01(){const{r:t,g:s,b:d,a:m}=this;return m===0?[0,0,0,0]:[t/m,s/m,d/m,m]}toArray01PremultipliedAlpha(){const{r:t,g:s,b:d,a:m}=this;return[t,s,d,m]}}G.black=new G(0,0,0,1),G.white=new G(1,1,1,1),G.transparent=new G(0,0,0,0),G.red=new G(1,0,0,1),G.blue=new G(0,0,1,1);var ae=G;class Ve{constructor(t,s,d){this.sensitivity=t?s?"variant":"case":s?"accent":"base",this.locale=d,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,s){return this.collator.compare(t,s)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Je{constructor(t,s,d,m,y){this.text=t.normalize?t.normalize():t,this.image=s,this.scale=d,this.fontStack=m,this.textColor=y}}class Ze{constructor(t){this.sections=t}static fromString(t){return new Ze([new Je(t,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(t=>t.text.length!==0||t.image&&t.image.name.length!==0)}static factory(t){return t instanceof Ze?t:Ze.fromString(t)}toString(){return this.sections.length===0?"":this.sections.map(t=>t.text).join("")}serialize(){const t=["format"];for(const s of this.sections){if(s.image){t.push(["image",s.image.name]);continue}t.push(s.text);const d={};s.fontStack&&(d["text-font"]=["literal",s.fontStack.split(",")]),s.scale&&(d["font-scale"]=s.scale),s.textColor&&(d["text-color"]=["rgba"].concat(s.textColor.toArray())),t.push(d)}return t}}class Ke{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Ke({name:t,available:!1}):null}serialize(){return["image",this.name]}}function qt(l,t,s,d){return typeof l=="number"&&l>=0&&l<=255&&typeof t=="number"&&t>=0&&t<=255&&typeof s=="number"&&s>=0&&s<=255?d===void 0||typeof d=="number"&&d>=0&&d<=1?null:`Invalid rgba value [${[l,t,s,d].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof d=="number"?[l,t,s,d]:[l,t,s]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Lt(l){if(l===null||typeof l=="string"||typeof l=="boolean"||typeof l=="number"||l instanceof ae||l instanceof Ve||l instanceof Ze||l instanceof Ke)return!0;if(Array.isArray(l)){for(const t of l)if(!Lt(t))return!1;return!0}if(typeof l=="object"){for(const t in l)if(!Lt(l[t]))return!1;return!0}return!1}function Xt(l){if(l===null)return So;if(typeof l=="string")return qi;if(typeof l=="boolean")return ji;if(typeof l=="number")return ri;if(l instanceof ae)return kn;if(l instanceof Ve)return Zo;if(l instanceof Ze)return pa;if(l instanceof Ke)return ma;if(Array.isArray(l)){const t=l.length;let s;for(const d of l){const m=Xt(d);if(s){if(s===m)continue;s=Vi;break}s=m}return Pn(s||Vi,t)}return sn}function tt(l){const t=typeof l;return l===null?"":t==="string"||t==="number"||t==="boolean"?String(l):l instanceof ae||l instanceof Ze||l instanceof Ke?l.toString():JSON.stringify(l)}class ni{constructor(t,s){this.type=t,this.value=s}static parse(t,s){if(t.length!==2)return s.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Lt(t[1]))return s.error("invalid value");const d=t[1];let m=Xt(d);const y=s.expectedType;return m.kind!=="array"||m.N!==0||!y||y.kind!=="array"||typeof y.N=="number"&&y.N!==0||(m=y),new ni(m,d)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof ae?["rgba"].concat(this.value.toArray()):this.value instanceof Ze?this.value.serialize():this.value}}var _i=ni,xi=class{constructor(l){this.name="ExpressionEvaluationError",this.message=l}toJSON(){return this.message}};const Ui={string:qi,number:ri,boolean:ji,object:sn};class Vr{constructor(t,s){this.type=t,this.args=s}static parse(t,s){if(t.length<2)return s.error("Expected at least one argument.");let d,m=1;const y=t[0];if(y==="array"){let T,C;if(t.length>2){const I=t[1];if(typeof I!="string"||!(I in Ui)||I==="object")return s.error('The item type argument of "array" must be one of string, number, boolean',1);T=Ui[I],m++}else T=Vi;if(t.length>3){if(t[2]!==null&&(typeof t[2]!="number"||t[2]<0||t[2]!==Math.floor(t[2])))return s.error('The length argument to "array" must be a positive integer literal',2);C=t[2],m++}d=Pn(T,C)}else d=Ui[y];const b=[];for(;mt.outputDefined())}serialize(){const t=this.type,s=[t.kind];if(t.kind==="array"){const d=t.itemType;if(d.kind==="string"||d.kind==="number"||d.kind==="boolean"){s.push(d.kind);const m=t.N;(typeof m=="number"||this.args.length>1)&&s.push(m)}}return s.concat(this.args.map(d=>d.serialize()))}}var vt=Vr;class vi{constructor(t){this.type=pa,this.sections=t}static parse(t,s){if(t.length<2)return s.error("Expected at least one argument.");const d=t[1];if(!Array.isArray(d)&&typeof d=="object")return s.error("First argument must be an image or text section.");const m=[];let y=!1;for(let b=1;b<=t.length-1;++b){const T=t[b];if(y&&typeof T=="object"&&!Array.isArray(T)){y=!1;let C=null;if(T["font-scale"]&&(C=s.parse(T["font-scale"],1,ri),!C))return null;let I=null;if(T["text-font"]&&(I=s.parse(T["text-font"],1,Pn(qi)),!I))return null;let F=null;if(T["text-color"]&&(F=s.parse(T["text-color"],1,kn),!F))return null;const N=m[m.length-1];N.scale=C,N.font=I,N.textColor=F}else{const C=s.parse(t[b],1,Vi);if(!C)return null;const I=C.type.kind;if(I!=="string"&&I!=="value"&&I!=="null"&&I!=="resolvedImage")return s.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");y=!0,m.push({content:C,scale:null,font:null,textColor:null})}}return new vi(m)}evaluate(t){return new Ze(this.sections.map(s=>{const d=s.content.evaluate(t);return Xt(d)===ma?new Je("",d,null,null,null):new Je(tt(d),null,s.scale?s.scale.evaluate(t):null,s.font?s.font.evaluate(t).join(","):null,s.textColor?s.textColor.evaluate(t):null)}))}eachChild(t){for(const s of this.sections)t(s.content),s.scale&&t(s.scale),s.font&&t(s.font),s.textColor&&t(s.textColor)}outputDefined(){return!1}serialize(){const t=["format"];for(const s of this.sections){t.push(s.content.serialize());const d={};s.scale&&(d["font-scale"]=s.scale.serialize()),s.font&&(d["text-font"]=s.font.serialize()),s.textColor&&(d["text-color"]=s.textColor.serialize()),t.push(d)}return t}}class pr{constructor(t){this.type=ma,this.input=t}static parse(t,s){if(t.length!==2)return s.error("Expected two arguments.");const d=s.parse(t[1],1,qi);return d?new pr(d):s.error("No image name provided.")}evaluate(t){const s=this.input.evaluate(t),d=Ke.fromString(s);return d&&t.availableImages&&(d.available=t.availableImages.indexOf(s)>-1),d}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const yr={"to-boolean":ji,"to-color":kn,"to-number":ri,"to-string":qi};class Dr{constructor(t,s){this.type=t,this.args=s}static parse(t,s){if(t.length<2)return s.error("Expected at least one argument.");const d=t[0];if((d==="to-boolean"||d==="to-string")&&t.length!==2)return s.error("Expected one argument.");const m=yr[d],y=[];for(let b=1;b4?`Invalid rbga value ${JSON.stringify(s)}: expected an array containing either three or four numeric values.`:qt(s[0],s[1],s[2],s[3]),!d))return new ae(s[0]/255,s[1]/255,s[2]/255,s[3])}throw new xi(d||`Could not parse color from value '${typeof s=="string"?s:String(JSON.stringify(s))}'`)}if(this.type.kind==="number"){let s=null;for(const d of this.args){if(s=d.evaluate(t),s===null)return 0;const m=Number(s);if(!isNaN(m))return m}throw new xi(`Could not convert ${JSON.stringify(s)} to number.`)}return this.type.kind==="formatted"?Ze.fromString(tt(this.args[0].evaluate(t))):this.type.kind==="resolvedImage"?Ke.fromString(tt(this.args[0].evaluate(t))):tt(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){if(this.type.kind==="formatted")return new vi([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new pr(this.args[0]).serialize();const t=[`to-${this.type.kind}`];return this.eachChild(s=>{t.push(s.serialize())}),t}}var Pi=Dr;const Mo=["Unknown","Point","LineString","Polygon"];var so=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&this.feature.id!==void 0?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?Mo[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const l=this.featureDistanceData.center,t=this.featureDistanceData.scale,{x:s,y:d}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(s*t-l[0])+this.featureDistanceData.bearing[1]*(d*t-l[1])}return 0}parseColor(l){let t=this._parseColorCache[l];return t||(t=this._parseColorCache[l]=ae.parse(l)),t}};class ar{constructor(t,s,d,m){this.name=t,this.type=s,this._evaluate=d,this.args=m}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(t=>t.serialize()))}static parse(t,s){const d=t[0],m=ar.definitions[d];if(!m)return s.error(`Unknown expression "${d}". If you wanted a literal array, use ["literal", [...]].`,0);const y=Array.isArray(m)?m[0]:m.type,b=Array.isArray(m)?[[m[1],m[2]]]:m.overloads,T=b.filter(([I])=>!Array.isArray(I)||I.length===t.length-1);let C=null;for(const[I,F]of T){C=new Ao(s.registry,s.path,null,s.scope);const N=[];let V=!1;for(let H=1;H{return V=N,Array.isArray(V)?`(${V.map(kr).join(", ")})`:`(${kr(V.type)}...)`;var V}).join(" | "),F=[];for(let N=1;N=t[2]||l[1]<=t[1]||l[3]>=t[3])}function el(l,t){const s=(180+l[0])/360,d=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+l[1]*Math.PI/360)))/360,m=Math.pow(2,t.z);return[Math.round(s*m*Qn),Math.round(d*m*Qn)]}function tl(l,t,s){const d=l[0]-t[0],m=l[1]-t[1],y=l[0]-s[0],b=l[1]-s[1];return d*b-y*m==0&&d*y<=0&&m*b<=0}function Va(l,t){let s=!1;for(let b=0,T=t.length;b(d=l)[1]!=(y=C[I+1])[1]>d[1]&&d[0]<(y[0]-m[0])*(d[1]-m[1])/(y[1]-m[1])+m[0]&&(s=!s)}}var d,m,y;return s}function ga(l,t){for(let s=0;s0&&T<0||b<0&&T>0}function il(l,t,s){for(const I of s)for(let F=0;Fs[2]){const m=.5*d;let y=l[0]-s[0]>m?-d:s[0]-l[0]>m?d:0;y===0&&(y=l[0]-s[2]>m?-d:s[2]-l[0]>m?d:0),l[0]+=y}Ua(t,l)}function bs(l,t,s,d){const m=Math.pow(2,d.z)*Qn,y=[d.x*Qn,d.y*Qn],b=[];if(!l)return b;for(const T of l)for(const C of T){const I=[C.x+y[0],C.y+y[1]];vs(I,t,s,m),b.push(I)}return b}function ya(l,t,s,d){const m=Math.pow(2,d.z)*Qn,y=[d.x*Qn,d.y*Qn],b=[];if(!l)return b;for(const C of l){const I=[];for(const F of C){const N=[F.x+y[0],F.y+y[1]];Ua(t,N),I.push(N)}b.push(I)}if(t[2]-t[0]<=m/2){(T=t)[0]=T[1]=1/0,T[2]=T[3]=-1/0;for(const C of b)for(const I of C)vs(I,t,s,m)}var T;return b}class Jn{constructor(t,s){this.type=ji,this.geojson=t,this.geometries=s}static parse(t,s){if(t.length!==2)return s.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Lt(t[1])){const d=t[1];if(d.type==="FeatureCollection")for(let m=0;m{t&&!lo(s)&&(t=!1)}),t}function eo(l){if(l instanceof Hr&&l.name==="feature-state")return!1;let t=!0;return l.eachChild(s=>{t&&!eo(s)&&(t=!1)}),t}function co(l,t){if(l instanceof Hr&&t.indexOf(l.name)>=0)return!1;let s=!0;return l.eachChild(d=>{s&&!co(d,t)&&(s=!1)}),s}class ja{constructor(t,s){this.type=s.type,this.name=t,this.boundExpression=s}static parse(t,s){if(t.length!==2||typeof t[1]!="string")return s.error("'var' expression requires exactly one string literal argument.");const d=t[1];return s.scope.has(d)?new ja(d,s.scope.get(d)):s.error(`Unknown variable "${d}". Make sure "${d}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var Ga=ja;class qa{constructor(t,s=[],d,m=new nn,y=[]){this.registry=t,this.path=s,this.key=s.map(b=>`[${b}]`).join(""),this.scope=m,this.errors=y,this.expectedType=d}parse(t,s,d,m,y={}){return s?this.concat(s,d,m)._parse(t,y):this._parse(t,y)}_parse(t,s){function d(m,y,b){return b==="assert"?new vt(y,[m]):b==="coerce"?new Pi(y,[m]):m}if(t!==null&&typeof t!="string"&&typeof t!="boolean"&&typeof t!="number"||(t=["literal",t]),Array.isArray(t)){if(t.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const m=t[0];if(typeof m!="string")return this.error(`Expression name must be a string, but found ${typeof m} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const y=this.registry[m];if(y){let b=y.parse(t,this);if(!b)return null;if(this.expectedType){const T=this.expectedType,C=b.type;if(T.kind!=="string"&&T.kind!=="number"&&T.kind!=="boolean"&&T.kind!=="object"&&T.kind!=="array"||C.kind!=="value")if(T.kind!=="color"&&T.kind!=="formatted"&&T.kind!=="resolvedImage"||C.kind!=="value"&&C.kind!=="string"){if(this.checkSubtype(T,C))return null}else b=d(b,T,s.typeAnnotation||"coerce");else b=d(b,T,s.typeAnnotation||"assert")}if(!(b instanceof _i)&&b.type.kind!=="resolvedImage"&&ur(b)){const T=new so;try{b=new _i(b.type,b.evaluate(T))}catch(C){return this.error(C.message),null}}return b}return this.error(`Unknown expression "${m}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(t===void 0?"'undefined' value invalid. Use null instead.":typeof t=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,s,d){const m=typeof t=="number"?this.path.concat(t):this.path,y=d?this.scope.concat(d):this.scope;return new qa(this.registry,m,s||null,y,this.errors)}error(t,...s){const d=`${this.key}${s.map(m=>`[${m}]`).join("")}`;this.errors.push(new un(d,t))}checkSubtype(t,s){const d=Xo(t,s);return d&&this.error(d),d}}var Ao=qa;function ur(l){if(l instanceof Ga)return ur(l.boundExpression);if(l instanceof Hr&&l.name==="error"||l instanceof ln||l instanceof Ho)return!1;const t=l instanceof Pi||l instanceof vt;let s=!0;return l.eachChild(d=>{s=t?s&&ur(d):s&&d instanceof _i}),!!s&&lo(l)&&co(l,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}function xa(l,t){const s=l.length-1;let d,m,y=0,b=s,T=0;for(;y<=b;)if(T=Math.floor((y+b)/2),d=l[T],m=l[T+1],d<=t){if(T===s||tt))throw new xi("Input is not a number.");b=T-1}return 0}class va{constructor(t,s,d){this.type=t,this.input=s,this.labels=[],this.outputs=[];for(const[m,y]of d)this.labels.push(m),this.outputs.push(y)}static parse(t,s){if(t.length-1<4)return s.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return s.error("Expected an even number of arguments.");const d=s.parse(t[1],1,ri);if(!d)return null;const m=[];let y=null;s.expectedType&&s.expectedType.kind!=="value"&&(y=s.expectedType);for(let b=1;b=T)return s.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',I);const N=s.parse(C,F,y);if(!N)return null;y=y||N.type,m.push([T,N])}return new va(y,d,m)}evaluate(t){const s=this.labels,d=this.outputs;if(s.length===1)return d[0].evaluate(t);const m=this.input.evaluate(t);if(m<=s[0])return d[0].evaluate(t);const y=s.length;return m>=s[y-1]?d[y-1].evaluate(t):d[xa(s,m)].evaluate(t)}eachChild(t){t(this.input);for(const s of this.outputs)t(s)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){const t=["step",this.input.serialize()];for(let s=0;s0&&t.push(this.labels[s]),t.push(this.outputs[s].serialize());return t}}var uo=va;function Qi(l,t,s){return l*(1-s)+t*s}function On(l,t,s){return l.map((d,m)=>Qi(d,t[m],s))}var xo=Object.freeze({__proto__:null,number:Qi,color:function(l,t,s){return new ae(Qi(l.r,t.r,s),Qi(l.g,t.g,s),Qi(l.b,t.b,s),Qi(l.a,t.a,s))},array:On});const to=.95047,ws=1.08883,Wo=4/29,Nn=6/29,Yo=3*Nn*Nn,rl=Math.PI/180,Es=180/Math.PI;function Za(l){return l>.008856451679035631?Math.pow(l,1/3):l/Yo+Wo}function Xa(l){return l>Nn?l*l*l:Yo*(l-Wo)}function Ha(l){return 255*(l<=.0031308?12.92*l:1.055*Math.pow(l,1/2.4)-.055)}function Co(l){return(l/=255)<=.04045?l/12.92:Math.pow((l+.055)/1.055,2.4)}function Io(l){const t=Co(l.r),s=Co(l.g),d=Co(l.b),m=Za((.4124564*t+.3575761*s+.1804375*d)/to),y=Za((.2126729*t+.7151522*s+.072175*d)/1);return{l:116*y-16,a:500*(m-y),b:200*(y-Za((.0193339*t+.119192*s+.9503041*d)/ws)),alpha:l.a}}function Ts(l){let t=(l.l+16)/116,s=isNaN(l.a)?t:t+l.a/500,d=isNaN(l.b)?t:t-l.b/200;return t=1*Xa(t),s=to*Xa(s),d=ws*Xa(d),new ae(Ha(3.2404542*s-1.5371385*t-.4985314*d),Ha(-.969266*s+1.8760108*t+.041556*d),Ha(.0556434*s-.2040259*t+1.0572252*d),l.alpha)}function ho(l,t,s){const d=t-l;return l+s*(d>180||d<-180?d-360*Math.round(d/360):d)}const ba={forward:Io,reverse:Ts,interpolate:function(l,t,s){return{l:Qi(l.l,t.l,s),a:Qi(l.a,t.a,s),b:Qi(l.b,t.b,s),alpha:Qi(l.alpha,t.alpha,s)}}},Un={forward:function(l){const{l:t,a:s,b:d}=Io(l),m=Math.atan2(d,s)*Es;return{h:m<0?m+360:m,c:Math.sqrt(s*s+d*d),l:t,alpha:l.a}},reverse:function(l){const t=l.h*rl,s=l.c;return Ts({l:l.l,a:Math.cos(t)*s,b:Math.sin(t)*s,alpha:l.alpha})},interpolate:function(l,t,s){return{h:ho(l.h,t.h,s),c:Qi(l.c,t.c,s),l:Qi(l.l,t.l,s),alpha:Qi(l.alpha,t.alpha,s)}}};var Ss=Object.freeze({__proto__:null,lab:ba,hcl:Un});class wa{constructor(t,s,d,m,y){this.type=t,this.operator=s,this.interpolation=d,this.input=m,this.labels=[],this.outputs=[];for(const[b,T]of y)this.labels.push(b),this.outputs.push(T)}static interpolationFactor(t,s,d,m){let y=0;if(t.name==="exponential")y=ko(s,t.base,d,m);else if(t.name==="linear")y=ko(s,1,d,m);else if(t.name==="cubic-bezier"){const b=t.controlPoints;y=new E(b[0],b[1],b[2],b[3]).solve(ko(s,1,d,m))}return y}static parse(t,s){let[d,m,y,...b]=t;if(!Array.isArray(m)||m.length===0)return s.error("Expected an interpolation type expression.",1);if(m[0]==="linear")m={name:"linear"};else if(m[0]==="exponential"){const I=m[1];if(typeof I!="number")return s.error("Exponential interpolation requires a numeric base.",1,1);m={name:"exponential",base:I}}else{if(m[0]!=="cubic-bezier")return s.error(`Unknown interpolation type ${String(m[0])}`,1,0);{const I=m.slice(1);if(I.length!==4||I.some(F=>typeof F!="number"||F<0||F>1))return s.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);m={name:"cubic-bezier",controlPoints:I}}}if(t.length-1<4)return s.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return s.error("Expected an even number of arguments.");if(y=s.parse(y,2,ri),!y)return null;const T=[];let C=null;d==="interpolate-hcl"||d==="interpolate-lab"?C=kn:s.expectedType&&s.expectedType.kind!=="value"&&(C=s.expectedType);for(let I=0;I=F)return s.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',V);const J=s.parse(N,H,C);if(!J)return null;C=C||J.type,T.push([F,J])}return C.kind==="number"||C.kind==="color"||C.kind==="array"&&C.itemType.kind==="number"&&typeof C.N=="number"?new wa(C,d,m,y,T):s.error(`Type ${kr(C)} is not interpolatable.`)}evaluate(t){const s=this.labels,d=this.outputs;if(s.length===1)return d[0].evaluate(t);const m=this.input.evaluate(t);if(m<=s[0])return d[0].evaluate(t);const y=s.length;if(m>=s[y-1])return d[y-1].evaluate(t);const b=xa(s,m),T=wa.interpolationFactor(this.interpolation,m,s[b],s[b+1]),C=d[b].evaluate(t),I=d[b+1].evaluate(t);return this.operator==="interpolate"?xo[this.type.kind.toLowerCase()](C,I,T):this.operator==="interpolate-hcl"?Un.reverse(Un.interpolate(Un.forward(C),Un.forward(I),T)):ba.reverse(ba.interpolate(ba.forward(C),ba.forward(I),T))}eachChild(t){t(this.input);for(const s of this.outputs)t(s)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){let t;t=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const s=[this.operator,t,this.input.serialize()];for(let d=0;dXo(m,T.type));return new Wa(b?Vi:d,y)}evaluate(t){let s,d=null,m=0;for(const y of this.args){if(m++,d=y.evaluate(t),d&&d instanceof Ke&&!d.available&&(s||(s=d),d=null,m===this.args.length))return s;if(d!==null)break}return d}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=["coalesce"];return this.eachChild(s=>{t.push(s.serialize())}),t}}var Ms=Wa;class Ya{constructor(t,s){this.type=s.type,this.bindings=[].concat(t),this.result=s}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const s of this.bindings)t(s[1]);t(this.result)}static parse(t,s){if(t.length<4)return s.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const d=[];for(let y=1;y=d.length)throw new xi(`Array index out of bounds: ${s} > ${d.length-1}.`);if(s!==Math.floor(s))throw new xi(`Array index must be an integer, but found ${s} instead.`);return d[s]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var nl=Ka;class We{constructor(t,s){this.type=ji,this.needle=t,this.haystack=s}static parse(t,s){if(t.length!==3)return s.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const d=s.parse(t[1],1,Vi),m=s.parse(t[2],2,Vi);return d&&m?Oa(d.type,[ji,qi,ri,So,Vi])?new We(d,m):s.error(`Expected first argument to be of type boolean, string, number or null, but found ${kr(d.type)} instead`):null}evaluate(t){const s=this.needle.evaluate(t),d=this.haystack.evaluate(t);if(d==null)return!1;if(!yo(s,["boolean","string","number","null"]))throw new xi(`Expected first argument to be of type boolean, string, number or null, but found ${kr(Xt(s))} instead.`);if(!yo(d,["string","array"]))throw new xi(`Expected second argument to be of type array or string, but found ${kr(Xt(d))} instead.`);return d.indexOf(s)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var ft=We;class oi{constructor(t,s,d){this.type=ri,this.needle=t,this.haystack=s,this.fromIndex=d}static parse(t,s){if(t.length<=2||t.length>=5)return s.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const d=s.parse(t[1],1,Vi),m=s.parse(t[2],2,Vi);if(!d||!m)return null;if(!Oa(d.type,[ji,qi,ri,So,Vi]))return s.error(`Expected first argument to be of type boolean, string, number or null, but found ${kr(d.type)} instead`);if(t.length===4){const y=s.parse(t[3],3,ri);return y?new oi(d,m,y):null}return new oi(d,m)}evaluate(t){const s=this.needle.evaluate(t),d=this.haystack.evaluate(t);if(!yo(s,["boolean","string","number","null"]))throw new xi(`Expected first argument to be of type boolean, string, number or null, but found ${kr(Xt(s))} instead.`);if(!yo(d,["string","array"]))throw new xi(`Expected second argument to be of type array or string, but found ${kr(Xt(d))} instead.`);if(this.fromIndex){const m=this.fromIndex.evaluate(t);return d.indexOf(s,m)}return d.indexOf(s)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){const t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var Fi=oi;class Er{constructor(t,s,d,m,y,b){this.inputType=t,this.type=s,this.input=d,this.cases=m,this.outputs=y,this.otherwise=b}static parse(t,s){if(t.length<5)return s.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return s.error("Expected an even number of arguments.");let d,m;s.expectedType&&s.expectedType.kind!=="value"&&(m=s.expectedType);const y={},b=[];for(let I=2;INumber.MAX_SAFE_INTEGER)return V.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof J=="number"&&Math.floor(J)!==J)return V.error("Numeric branch labels must be integer values.");if(d){if(V.checkSubtype(d,Xt(J)))return null}else d=Xt(J);if(y[String(J)]!==void 0)return V.error("Branch labels must be unique.");y[String(J)]=b.length}const H=s.parse(N,I,m);if(!H)return null;m=m||H.type,b.push(H)}const T=s.parse(t[1],1,Vi);if(!T)return null;const C=s.parse(t[t.length-1],t.length-1,m);return C?T.type.kind!=="value"&&s.concat(1).checkSubtype(d,T.type)?null:new Er(d,m,T,y,b,C):null}evaluate(t){const s=this.input.evaluate(t);return(Xt(s)===this.inputType&&this.outputs[this.cases[s]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],s=Object.keys(this.cases).sort(),d=[],m={};for(const b of s){const T=m[this.cases[b]];T===void 0?(m[this.cases[b]]=d.length,d.push([this.cases[b],[b]])):d[T][1].push(b)}const y=b=>this.inputType.kind==="number"?Number(b):b;for(const[b,T]of d)t.push(T.length===1?y(T[0]):T.map(y)),t.push(this.outputs[b].serialize());return t.push(this.otherwise.serialize()),t}}var lr=Er;class Br{constructor(t,s,d){this.type=t,this.branches=s,this.otherwise=d}static parse(t,s){if(t.length<4)return s.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return s.error("Expected an odd number of arguments.");let d;s.expectedType&&s.expectedType.kind!=="value"&&(d=s.expectedType);const m=[];for(let b=1;bs.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild(s=>{t.push(s.serialize())}),t}}var Qr=Br;class vn{constructor(t,s,d,m){this.type=t,this.input=s,this.beginIndex=d,this.endIndex=m}static parse(t,s){if(t.length<=2||t.length>=5)return s.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const d=s.parse(t[1],1,Vi),m=s.parse(t[2],2,ri);if(!d||!m)return null;if(!Oa(d.type,[Pn(Vi),qi,Vi]))return s.error(`Expected first argument to be of type array or string, but found ${kr(d.type)} instead`);if(t.length===4){const y=s.parse(t[3],3,ri);return y?new vn(d.type,d,m,y):null}return new vn(d.type,d,m)}evaluate(t){const s=this.input.evaluate(t),d=this.beginIndex.evaluate(t);if(!yo(s,["string","array"]))throw new xi(`Expected first argument to be of type array or string, but found ${kr(Xt(s))} instead.`);if(this.endIndex){const m=this.endIndex.evaluate(t);return s.slice(d,m)}return s.slice(d)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}serialize(){if(this.endIndex!=null&&this.endIndex!==void 0){const t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Jr=vn;function Wr(l,t){return l==="=="||l==="!="?t.kind==="boolean"||t.kind==="string"||t.kind==="number"||t.kind==="null"||t.kind==="value":t.kind==="string"||t.kind==="number"||t.kind==="value"}function $n(l,t,s,d){return d.compare(t,s)===0}function bn(l,t,s){const d=l!=="=="&&l!=="!=";return class Cp{constructor(y,b,T){this.type=ji,this.lhs=y,this.rhs=b,this.collator=T,this.hasUntypedArgument=y.type.kind==="value"||b.type.kind==="value"}static parse(y,b){if(y.length!==3&&y.length!==4)return b.error("Expected two or three arguments.");const T=y[0];let C=b.parse(y[1],1,Vi);if(!C)return null;if(!Wr(T,C.type))return b.concat(1).error(`"${T}" comparisons are not supported for type '${kr(C.type)}'.`);let I=b.parse(y[2],2,Vi);if(!I)return null;if(!Wr(T,I.type))return b.concat(2).error(`"${T}" comparisons are not supported for type '${kr(I.type)}'.`);if(C.type.kind!==I.type.kind&&C.type.kind!=="value"&&I.type.kind!=="value")return b.error(`Cannot compare types '${kr(C.type)}' and '${kr(I.type)}'.`);d&&(C.type.kind==="value"&&I.type.kind!=="value"?C=new vt(I.type,[C]):C.type.kind!=="value"&&I.type.kind==="value"&&(I=new vt(C.type,[I])));let F=null;if(y.length===4){if(C.type.kind!=="string"&&I.type.kind!=="string"&&C.type.kind!=="value"&&I.type.kind!=="value")return b.error("Cannot use collator to compare non-string types.");if(F=b.parse(y[3],3,Zo),!F)return null}return new Cp(C,I,F)}evaluate(y){const b=this.lhs.evaluate(y),T=this.rhs.evaluate(y);if(d&&this.hasUntypedArgument){const C=Xt(b),I=Xt(T);if(C.kind!==I.kind||C.kind!=="string"&&C.kind!=="number")throw new xi(`Expected arguments for "${l}" to be (string, string) or (number, number), but found (${C.kind}, ${I.kind}) instead.`)}if(this.collator&&!d&&this.hasUntypedArgument){const C=Xt(b),I=Xt(T);if(C.kind!=="string"||I.kind!=="string")return t(y,b,T)}return this.collator?s(y,b,T,this.collator.evaluate(y)):t(y,b,T)}eachChild(y){y(this.lhs),y(this.rhs),this.collator&&y(this.collator)}outputDefined(){return!0}serialize(){const y=[l];return this.eachChild(b=>{y.push(b.serialize())}),y}}}const fn=bn("==",function(l,t,s){return t===s},$n),fo=bn("!=",function(l,t,s){return t!==s},function(l,t,s,d){return!$n(0,t,s,d)}),Qo=bn("<",function(l,t,s){return t",function(l,t,s){return t>s},function(l,t,s,d){return d.compare(t,s)>0}),Do=bn("<=",function(l,t,s){return t<=s},function(l,t,s,d){return d.compare(t,s)<=0}),Jo=bn(">=",function(l,t,s){return t>=s},function(l,t,s,d){return d.compare(t,s)>=0});class Qa{constructor(t,s,d,m,y,b){this.type=qi,this.number=t,this.locale=s,this.currency=d,this.unit=m,this.minFractionDigits=y,this.maxFractionDigits=b}static parse(t,s){if(t.length!==3)return s.error("Expected two arguments.");const d=s.parse(t[1],1,ri);if(!d)return null;const m=t[2];if(typeof m!="object"||Array.isArray(m))return s.error("NumberFormat options argument must be an object.");let y=null;if(m.locale&&(y=s.parse(m.locale,1,qi),!y))return null;let b=null;if(m.currency&&(b=s.parse(m.currency,1,qi),!b))return null;let T=null;if(m.unit&&(T=s.parse(m.unit,1,qi),!T))return null;let C=null;if(m["min-fraction-digits"]&&(C=s.parse(m["min-fraction-digits"],1,ri),!C))return null;let I=null;return m["max-fraction-digits"]&&(I=s.parse(m["max-fraction-digits"],1,ri),!I)?null:new Qa(d,y,b,T,C,I)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class As{constructor(t){this.type=ri,this.input=t}static parse(t,s){if(t.length!==2)return s.error(`Expected 1 argument, but found ${t.length-1} instead.`);const d=s.parse(t[1],1);return d?d.type.kind!=="array"&&d.type.kind!=="string"&&d.type.kind!=="value"?s.error(`Expected argument of type string or array, but found ${kr(d.type)} instead.`):new As(d):null}evaluate(t){const s=this.input.evaluate(t);if(typeof s=="string"||Array.isArray(s))return s.length;throw new xi(`Expected value to be of type string or array, but found ${kr(Xt(s))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(s=>{t.push(s.serialize())}),t}}const ol={"==":fn,"!=":fo,">":Po,"<":Qo,">=":Jo,"<=":Do,array:vt,at:nl,boolean:vt,case:Qr,coalesce:Ms,collator:ln,format:vi,image:pr,in:ft,"index-of":Fi,interpolate:Vn,"interpolate-hcl":Vn,"interpolate-lab":Vn,length:As,let:Ko,literal:_i,match:lr,number:vt,"number-format":Qa,object:vt,slice:Jr,step:uo,string:vt,"to-boolean":Pi,"to-color":Pi,"to-number":Pi,"to-string":Pi,var:Ga,within:Ho};function xr(l,[t,s,d,m]){t=t.evaluate(l),s=s.evaluate(l),d=d.evaluate(l);const y=m?m.evaluate(l):1,b=qt(t,s,d,y);if(b)throw new xi(b);return new ae(t/255*y,s/255*y,d/255*y,y)}function gr(l,t){return l in t}function Bo(l,t){const s=t[l];return s===void 0?null:s}function hn(l){return{type:l}}Hr.register(ol,{error:[{kind:"error"},[qi],(l,[t])=>{throw new xi(t.evaluate(l))}],typeof:[qi,[Vi],(l,[t])=>kr(Xt(t.evaluate(l)))],"to-rgba":[Pn(ri,4),[kn],(l,[t])=>t.evaluate(l).toArray()],rgb:[kn,[ri,ri,ri],xr],rgba:[kn,[ri,ri,ri,ri],xr],has:{type:ji,overloads:[[[qi],(l,[t])=>gr(t.evaluate(l),l.properties())],[[qi,sn],(l,[t,s])=>gr(t.evaluate(l),s.evaluate(l))]]},get:{type:Vi,overloads:[[[qi],(l,[t])=>Bo(t.evaluate(l),l.properties())],[[qi,sn],(l,[t,s])=>Bo(t.evaluate(l),s.evaluate(l))]]},"feature-state":[Vi,[qi],(l,[t])=>Bo(t.evaluate(l),l.featureState||{})],properties:[sn,[],l=>l.properties()],"geometry-type":[qi,[],l=>l.geometryType()],id:[Vi,[],l=>l.id()],zoom:[ri,[],l=>l.globals.zoom],pitch:[ri,[],l=>l.globals.pitch||0],"distance-from-center":[ri,[],l=>l.distanceFromCenter()],"heatmap-density":[ri,[],l=>l.globals.heatmapDensity||0],"line-progress":[ri,[],l=>l.globals.lineProgress||0],"sky-radial-progress":[ri,[],l=>l.globals.skyRadialProgress||0],accumulated:[Vi,[],l=>l.globals.accumulated===void 0?null:l.globals.accumulated],"+":[ri,hn(ri),(l,t)=>{let s=0;for(const d of t)s+=d.evaluate(l);return s}],"*":[ri,hn(ri),(l,t)=>{let s=1;for(const d of t)s*=d.evaluate(l);return s}],"-":{type:ri,overloads:[[[ri,ri],(l,[t,s])=>t.evaluate(l)-s.evaluate(l)],[[ri],(l,[t])=>-t.evaluate(l)]]},"/":[ri,[ri,ri],(l,[t,s])=>t.evaluate(l)/s.evaluate(l)],"%":[ri,[ri,ri],(l,[t,s])=>t.evaluate(l)%s.evaluate(l)],ln2:[ri,[],()=>Math.LN2],pi:[ri,[],()=>Math.PI],e:[ri,[],()=>Math.E],"^":[ri,[ri,ri],(l,[t,s])=>Math.pow(t.evaluate(l),s.evaluate(l))],sqrt:[ri,[ri],(l,[t])=>Math.sqrt(t.evaluate(l))],log10:[ri,[ri],(l,[t])=>Math.log(t.evaluate(l))/Math.LN10],ln:[ri,[ri],(l,[t])=>Math.log(t.evaluate(l))],log2:[ri,[ri],(l,[t])=>Math.log(t.evaluate(l))/Math.LN2],sin:[ri,[ri],(l,[t])=>Math.sin(t.evaluate(l))],cos:[ri,[ri],(l,[t])=>Math.cos(t.evaluate(l))],tan:[ri,[ri],(l,[t])=>Math.tan(t.evaluate(l))],asin:[ri,[ri],(l,[t])=>Math.asin(t.evaluate(l))],acos:[ri,[ri],(l,[t])=>Math.acos(t.evaluate(l))],atan:[ri,[ri],(l,[t])=>Math.atan(t.evaluate(l))],min:[ri,hn(ri),(l,t)=>Math.min(...t.map(s=>s.evaluate(l)))],max:[ri,hn(ri),(l,t)=>Math.max(...t.map(s=>s.evaluate(l)))],abs:[ri,[ri],(l,[t])=>Math.abs(t.evaluate(l))],round:[ri,[ri],(l,[t])=>{const s=t.evaluate(l);return s<0?-Math.round(-s):Math.round(s)}],floor:[ri,[ri],(l,[t])=>Math.floor(t.evaluate(l))],ceil:[ri,[ri],(l,[t])=>Math.ceil(t.evaluate(l))],"filter-==":[ji,[qi,Vi],(l,[t,s])=>l.properties()[t.value]===s.value],"filter-id-==":[ji,[Vi],(l,[t])=>l.id()===t.value],"filter-type-==":[ji,[qi],(l,[t])=>l.geometryType()===t.value],"filter-<":[ji,[qi,Vi],(l,[t,s])=>{const d=l.properties()[t.value],m=s.value;return typeof d==typeof m&&d{const s=l.id(),d=t.value;return typeof s==typeof d&&s":[ji,[qi,Vi],(l,[t,s])=>{const d=l.properties()[t.value],m=s.value;return typeof d==typeof m&&d>m}],"filter-id->":[ji,[Vi],(l,[t])=>{const s=l.id(),d=t.value;return typeof s==typeof d&&s>d}],"filter-<=":[ji,[qi,Vi],(l,[t,s])=>{const d=l.properties()[t.value],m=s.value;return typeof d==typeof m&&d<=m}],"filter-id-<=":[ji,[Vi],(l,[t])=>{const s=l.id(),d=t.value;return typeof s==typeof d&&s<=d}],"filter->=":[ji,[qi,Vi],(l,[t,s])=>{const d=l.properties()[t.value],m=s.value;return typeof d==typeof m&&d>=m}],"filter-id->=":[ji,[Vi],(l,[t])=>{const s=l.id(),d=t.value;return typeof s==typeof d&&s>=d}],"filter-has":[ji,[Vi],(l,[t])=>t.value in l.properties()],"filter-has-id":[ji,[],l=>l.id()!==null&&l.id()!==void 0],"filter-type-in":[ji,[Pn(qi)],(l,[t])=>t.value.indexOf(l.geometryType())>=0],"filter-id-in":[ji,[Pn(Vi)],(l,[t])=>t.value.indexOf(l.id())>=0],"filter-in-small":[ji,[qi,Pn(Vi)],(l,[t,s])=>s.value.indexOf(l.properties()[t.value])>=0],"filter-in-large":[ji,[qi,Pn(Vi)],(l,[t,s])=>function(d,m,y,b){for(;y<=b;){const T=y+b>>1;if(m[T]===d)return!0;m[T]>d?b=T-1:y=T+1}return!1}(l.properties()[t.value],s.value,0,s.value.length-1)],all:{type:ji,overloads:[[[ji,ji],(l,[t,s])=>t.evaluate(l)&&s.evaluate(l)],[hn(ji),(l,t)=>{for(const s of t)if(!s.evaluate(l))return!1;return!0}]]},any:{type:ji,overloads:[[[ji,ji],(l,[t,s])=>t.evaluate(l)||s.evaluate(l)],[hn(ji),(l,t)=>{for(const s of t)if(s.evaluate(l))return!0;return!1}]]},"!":[ji,[ji],(l,[t])=>!t.evaluate(l)],"is-supported-script":[ji,[qi],(l,[t])=>{const s=l.globals&&l.globals.isSupportedScript;return!s||s(t.evaluate(l))}],upcase:[qi,[qi],(l,[t])=>t.evaluate(l).toUpperCase()],downcase:[qi,[qi],(l,[t])=>t.evaluate(l).toLowerCase()],concat:[qi,hn(Vi),(l,t)=>t.map(s=>tt(s.evaluate(l))).join("")],"resolved-locale":[qi,[Zo],(l,[t])=>t.evaluate(l).resolvedLocale()]});var Lo=ol;function Bn(l){return{result:"success",value:l}}function wn(l){return{result:"error",value:l}}function Ln(l){return l["property-type"]==="data-driven"||l["property-type"]==="cross-faded-data-driven"}function ea(l){return!!l.expression&&l.expression.parameters.indexOf("zoom")>-1}function ta(l){return!!l.expression&&l.expression.interpolated}function sr(l){return l instanceof Number?"number":l instanceof String?"string":l instanceof Boolean?"boolean":Array.isArray(l)?"array":l===null?"null":typeof l}function jn(l){return typeof l=="object"&&l!==null&&!Array.isArray(l)}function Cs(l){return l}function vo(l,t){const s=t.type==="color",d=l.stops&&typeof l.stops[0][0]=="object",m=d||!(d||l.property!==void 0),y=l.type||(ta(t)?"exponential":"interval");if(s&&((l=Wi({},l)).stops&&(l.stops=l.stops.map(I=>[I[0],ae.parse(I[1])])),l.default=ae.parse(l.default?l.default:t.default)),l.colorSpace&&l.colorSpace!=="rgb"&&!Ss[l.colorSpace])throw new Error(`Unknown color space: ${l.colorSpace}`);let b,T,C;if(y==="exponential")b=es;else if(y==="interval")b=Hn;else if(y==="categorical"){b=Ja,T=Object.create(null);for(const I of l.stops)T[I[0]]=I[1];C=typeof l.stops[0][0]}else{if(y!=="identity")throw new Error(`Unknown function type "${y}"`);b=po}if(d){const I={},F=[];for(let H=0;HH[0]),evaluate:({zoom:H},J)=>es({stops:N,base:l.base},t,H).evaluate(H,J)}}if(m){const I=y==="exponential"?{name:"exponential",base:l.base!==void 0?l.base:1}:null;return{kind:"camera",interpolationType:I,interpolationFactor:Vn.interpolationFactor.bind(void 0,I),zoomStops:l.stops.map(F=>F[0]),evaluate:({zoom:F})=>b(l,t,F,T,C)}}return{kind:"source",evaluate(I,F){const N=F&&F.properties?F.properties[l.property]:void 0;return N===void 0?Ro(l.default,t.default):b(l,t,N,T,C)}}}function Ro(l,t,s){return l!==void 0?l:t!==void 0?t:s!==void 0?s:void 0}function Ja(l,t,s,d,m){return Ro(typeof s===m?d[s]:void 0,l.default,t.default)}function Hn(l,t,s){if(sr(s)!=="number")return Ro(l.default,t.default);const d=l.stops.length;if(d===1||s<=l.stops[0][0])return l.stops[0][1];if(s>=l.stops[d-1][0])return l.stops[d-1][1];const m=xa(l.stops.map(y=>y[0]),s);return l.stops[m][1]}function es(l,t,s){const d=l.base!==void 0?l.base:1;if(sr(s)!=="number")return Ro(l.default,t.default);const m=l.stops.length;if(m===1||s<=l.stops[0][0])return l.stops[0][1];if(s>=l.stops[m-1][0])return l.stops[m-1][1];const y=xa(l.stops.map(F=>F[0]),s),b=function(F,N,V,H){const J=H-V,ne=F-V;return J===0?0:N===1?ne/J:(Math.pow(N,ne)-1)/(Math.pow(N,J)-1)}(s,d,l.stops[y][0],l.stops[y+1][0]),T=l.stops[y][1],C=l.stops[y+1][1];let I=xo[t.type]||Cs;if(l.colorSpace&&l.colorSpace!=="rgb"){const F=Ss[l.colorSpace];I=(N,V)=>F.reverse(F.interpolate(F.forward(N),F.forward(V),b))}return typeof T.evaluate=="function"?{evaluate(...F){const N=T.evaluate.apply(void 0,F),V=C.evaluate.apply(void 0,F);if(N!==void 0&&V!==void 0)return I(N,V,b)}}:I(T,C,b)}function po(l,t,s){return t.type==="color"?s=ae.parse(s):t.type==="formatted"?s=Ze.fromString(s.toString()):t.type==="resolvedImage"?s=Ke.fromString(s.toString()):sr(s)===t.type||t.type==="enum"&&t.values[s]||(s=void 0),Ro(s,l.default,t.default)}class ia{constructor(t,s){this.expression=t,this._warningHistory={},this._evaluator=new so,this._defaultValue=s?function(d){return d.type==="color"&&(jn(d.default)||Array.isArray(d.default))?new ae(0,0,0,0):d.type==="color"?ae.parse(d.default)||null:d.default===void 0?null:d.default}(s):null,this._enumValues=s&&s.type==="enum"?s.values:null}evaluateWithoutErrorHandling(t,s,d,m,y,b,T,C){return this._evaluator.globals=t,this._evaluator.feature=s,this._evaluator.featureState=d,this._evaluator.canonical=m||null,this._evaluator.availableImages=y||null,this._evaluator.formattedSection=b,this._evaluator.featureTileCoord=T||null,this._evaluator.featureDistanceData=C||null,this.expression.evaluate(this._evaluator)}evaluate(t,s,d,m,y,b,T,C){this._evaluator.globals=t,this._evaluator.feature=s||null,this._evaluator.featureState=d||null,this._evaluator.canonical=m||null,this._evaluator.availableImages=y||null,this._evaluator.formattedSection=b||null,this._evaluator.featureTileCoord=T||null,this._evaluator.featureDistanceData=C||null;try{const I=this.expression.evaluate(this._evaluator);if(I==null||typeof I=="number"&&I!=I)return this._defaultValue;if(this._enumValues&&!(I in this._enumValues))throw new xi(`Expected value to be one of ${Object.keys(this._enumValues).map(F=>JSON.stringify(F)).join(", ")}, but found ${JSON.stringify(I)} instead.`);return I}catch(I){return this._warningHistory[I.message]||(this._warningHistory[I.message]=!0,typeof console<"u"&&console.warn(I.message)),this._defaultValue}}}function al(l){return Array.isArray(l)&&l.length>0&&typeof l[0]=="string"&&l[0]in Lo}function ts(l,t){const s=new Ao(Lo,[],t?function(m){const y={color:kn,string:qi,number:ri,enum:qi,boolean:ji,formatted:pa,resolvedImage:ma};return m.type==="array"?Pn(y[m.value]||Vi,m.length):y[m.type]}(t):void 0),d=s.parse(l,void 0,void 0,void 0,t&&t.type==="string"?{typeAnnotation:"coerce"}:void 0);return d?Bn(new ia(d,t)):wn(s.errors)}class Fl{constructor(t,s){this.kind=t,this._styleExpression=s,this.isStateDependent=t!=="constant"&&!eo(s.expression)}evaluateWithoutErrorHandling(t,s,d,m,y,b){return this._styleExpression.evaluateWithoutErrorHandling(t,s,d,m,y,b)}evaluate(t,s,d,m,y,b){return this._styleExpression.evaluate(t,s,d,m,y,b)}}class Is{constructor(t,s,d,m){this.kind=t,this.zoomStops=d,this._styleExpression=s,this.isStateDependent=t!=="camera"&&!eo(s.expression),this.interpolationType=m}evaluateWithoutErrorHandling(t,s,d,m,y,b){return this._styleExpression.evaluateWithoutErrorHandling(t,s,d,m,y,b)}evaluate(t,s,d,m,y,b){return this._styleExpression.evaluate(t,s,d,m,y,b)}interpolationFactor(t,s,d){return this.interpolationType?Vn.interpolationFactor(this.interpolationType,t,s,d):0}}function Ol(l,t){if((l=ts(l,t)).result==="error")return l;const s=l.value.expression,d=lo(s);if(!d&&!Ln(t))return wn([new un("","data expressions not supported")]);const m=co(s,["zoom","pitch","distance-from-center"]);if(!m&&!ea(t))return wn([new un("","zoom expressions not supported")]);const y=rs(s);return y||m?y instanceof un?wn([y]):y instanceof Vn&&!ta(t)?wn([new un("",'"interpolate" expressions cannot be used with this property')]):Bn(y?new Is(d?"camera":"composite",l.value,y.labels,y instanceof Vn?y.interpolation:void 0):new Fl(d?"constant":"source",l.value)):wn([new un("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class is{constructor(t,s){this._parameters=t,this._specification=s,Wi(this,vo(this._parameters,this._specification))}static deserialize(t){return new is(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function rs(l){let t=null;if(l instanceof Ko)t=rs(l.result);else if(l instanceof Ms){for(const s of l.args)if(t=rs(s),t)break}else(l instanceof uo||l instanceof Vn)&&l.input instanceof Hr&&l.input.name==="zoom"&&(t=l);return t instanceof un||l.eachChild(s=>{const d=rs(s);d instanceof un?t=d:!t&&d?t=new un("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):t&&d&&t!==d&&(t=new un("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),t}class si{constructor(t,s,d,m){this.message=(t?`${t}: `:"")+d,m&&(this.identifier=m),s!=null&&s.__line__&&(this.line=s.__line__)}}function Wn(l){const t=l.key,s=l.value,d=l.valueSpec||{},m=l.objectElementValidators||{},y=l.style,b=l.styleSpec;let T=[];const C=sr(s);if(C!=="object")return[new si(t,s,`object expected, ${C} found`)];for(const I in s){const F=I.split(".")[0],N=d[F]||d["*"];let V;m[F]?V=m[F]:d[F]?V=pn:m["*"]?V=m["*"]:d["*"]&&(V=pn),V?T=T.concat(V({key:(t&&`${t}.`)+I,value:s[I],valueSpec:N,style:y,styleSpec:b,object:s,objectKey:I},s)):T.push(new si(t,s[I],`unknown property "${I}"`))}for(const I in d)m[I]||d[I].required&&d[I].default===void 0&&s[I]===void 0&&T.push(new si(t,s,`missing required property "${I}"`));return T}function Nl(l){const t=l.value,s=l.valueSpec,d=l.style,m=l.styleSpec,y=l.key,b=l.arrayElementValidator||pn;if(sr(t)!=="array")return[new si(y,t,`array expected, ${sr(t)} found`)];if(s.length&&t.length!==s.length)return[new si(y,t,`array length ${s.length} expected, length ${t.length} found`)];if(s["min-length"]&&t.lengthy)return[new si(t,s,`${s} is greater than the maximum value ${y}`)]}return[]}function ks(l){const t=l.valueSpec,s=Ni(l.value.type);let d,m,y,b={};const T=s!=="categorical"&&l.value.property===void 0,C=!T,I=sr(l.value.stops)==="array"&&sr(l.value.stops[0])==="array"&&sr(l.value.stops[0][0])==="object",F=Wn({key:l.key,value:l.value,valueSpec:l.styleSpec.function,style:l.style,styleSpec:l.styleSpec,objectElementValidators:{stops:function(H){if(s==="identity")return[new si(H.key,H.value,'identity function may not have a "stops" property')];let J=[];const ne=H.value;return J=J.concat(Nl({key:H.key,value:ne,valueSpec:H.valueSpec,style:H.style,styleSpec:H.styleSpec,arrayElementValidator:N})),sr(ne)==="array"&&ne.length===0&&J.push(new si(H.key,ne,"array must have at least one stop")),J},default:function(H){return pn({key:H.key,value:H.value,valueSpec:t,style:H.style,styleSpec:H.styleSpec})}}});return s==="identity"&&T&&F.push(new si(l.key,l.value,'missing required property "property"')),s==="identity"||l.value.stops||F.push(new si(l.key,l.value,'missing required property "stops"')),s==="exponential"&&l.valueSpec.expression&&!ta(l.valueSpec)&&F.push(new si(l.key,l.value,"exponential functions not supported")),l.styleSpec.$version>=8&&(C&&!Ln(l.valueSpec)?F.push(new si(l.key,l.value,"property functions not supported")):T&&!ea(l.valueSpec)&&F.push(new si(l.key,l.value,"zoom functions not supported"))),s!=="categorical"&&!I||l.value.property!==void 0||F.push(new si(l.key,l.value,'"property" property is required')),F;function N(H){let J=[];const ne=H.value,he=H.key;if(sr(ne)!=="array")return[new si(he,ne,`array expected, ${sr(ne)} found`)];if(ne.length!==2)return[new si(he,ne,`array length 2 expected, length ${ne.length} found`)];if(I){if(sr(ne[0])!=="object")return[new si(he,ne,`object expected, ${sr(ne[0])} found`)];if(ne[0].zoom===void 0)return[new si(he,ne,"object stop key must have zoom")];if(ne[0].value===void 0)return[new si(he,ne,"object stop key must have value")];const we=Ni(ne[0].zoom);if(typeof we!="number")return[new si(he,ne[0].zoom,"stop zoom values must be numbers")];if(y&&y>we)return[new si(he,ne[0].zoom,"stop zoom values must appear in ascending order")];we!==y&&(y=we,m=void 0,b={}),J=J.concat(Wn({key:`${he}[0]`,value:ne[0],valueSpec:{zoom:{}},style:H.style,styleSpec:H.styleSpec,objectElementValidators:{zoom:Ul,value:V}}))}else J=J.concat(V({key:`${he}[0]`,value:ne[0],valueSpec:{},style:H.style,styleSpec:H.styleSpec},ne));return al(fr(ne[1]))?J.concat([new si(`${he}[1]`,ne[1],"expressions are not allowed in function stops.")]):J.concat(pn({key:`${he}[1]`,value:ne[1],valueSpec:t,style:H.style,styleSpec:H.styleSpec}))}function V(H,J){const ne=sr(H.value),he=Ni(H.value),we=H.value!==null?H.value:J;if(d){if(ne!==d)return[new si(H.key,we,`${ne} stop domain type must match previous stop domain type ${d}`)]}else d=ne;if(ne!=="number"&&ne!=="string"&&ne!=="boolean"&&typeof he!="number"&&typeof he!="string"&&typeof he!="boolean")return[new si(H.key,we,"stop domain value must be a number, string, or boolean")];if(ne!=="number"&&s!=="categorical"){let De=`number expected, ${ne} found`;return Ln(t)&&s===void 0&&(De+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new si(H.key,we,De)]}return s!=="categorical"||ne!=="number"||typeof he=="number"&&isFinite(he)&&Math.floor(he)===he?s!=="categorical"&&ne==="number"&&typeof he=="number"&&typeof m=="number"&&m!==void 0&&henew si(`${l.key}${d.key}`,l.value,d.message));const s=t.value.expression||t.value._styleExpression.expression;if(l.expressionContext==="property"&&l.propertyKey==="text-font"&&!s.outputDefined())return[new si(l.key,l.value,`Invalid data expression for "${l.propertyKey}". Output values must be contained as literals within the expression.`)];if(l.expressionContext==="property"&&l.propertyType==="layout"&&!eo(s))return[new si(l.key,l.value,'"feature-state" data expressions are not supported with layout properties.')];if(l.expressionContext==="filter")return Vl(s,l);if(l.expressionContext&&l.expressionContext.indexOf("cluster")===0){if(!co(s,["zoom","feature-state"]))return[new si(l.key,l.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(l.expressionContext==="cluster-initial"&&!lo(s))return[new si(l.key,l.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Vl(l,t){const s=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(t.valueSpec&&t.valueSpec.expression)for(const m of t.valueSpec.expression.parameters)s.delete(m);if(s.size===0)return[];const d=[];return l instanceof Hr&&s.has(l.name)?[new si(t.key,t.value,`["${l.name}"] expression is not supported in a filter for a ${t.object.type} layer with id: ${t.object.id}`)]:(l.eachChild(m=>{d.push(...Vl(m,t))}),d)}function Ps(l){const t=l.key,s=l.value,d=l.valueSpec,m=[];return Array.isArray(d.values)?d.values.indexOf(Ni(s))===-1&&m.push(new si(t,s,`expected one of [${d.values.join(", ")}], ${JSON.stringify(s)} found`)):Object.keys(d.values).indexOf(Ni(s))===-1&&m.push(new si(t,s,`expected one of [${Object.keys(d.values).join(", ")}], ${JSON.stringify(s)} found`)),m}function Ds(l){if(l===!0||l===!1)return!0;if(!Array.isArray(l)||l.length===0)return!1;switch(l[0]){case"has":return l.length>=2&&l[1]!=="$id"&&l[1]!=="$type";case"in":return l.length>=3&&(typeof l[1]!="string"||Array.isArray(l[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return l.length!==3||Array.isArray(l[1])||Array.isArray(l[2]);case"any":case"all":for(const t of l.slice(1))if(!Ds(t)&&typeof t!="boolean")return!1;return!0;default:return!0}}function Bs(l,t="fill"){if(l==null)return{filter:()=>!0,needGeometry:!1,needFeature:!1};Ds(l)||(l=sl(l));const s=l;let d=!0;try{d=function(I){if(!zo(I))return I;let F=fr(I);return $l(F),F=Dc(F),F}(s)}catch{console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. +This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md +and paste the contents of this message in the report. +Thank you! +Filter Expression: +${JSON.stringify(s,null,2)} + `)}const m=qe[`filter_${t}`],y=ts(d,m);let b=null;if(y.result==="error")throw new Error(y.value.map(I=>`${I.key}: ${I.message}`).join(", "));b=(I,F,N)=>y.value.evaluate(I,F,{},N);let T=null,C=null;if(d!==s){const I=ts(s,m);if(I.result==="error")throw new Error(I.value.map(F=>`${F.key}: ${F.message}`).join(", "));T=(F,N,V,H,J)=>I.value.evaluate(F,N,{},V,void 0,void 0,H,J),C=!lo(I.value.expression)}return b=b,{filter:b,dynamicFilter:T||void 0,needGeometry:Bc(d),needFeature:!!C}}function Dc(l){if(!Array.isArray(l))return l;const t=function(s){if($u.has(s[0])){for(let d=1;dDc(s))}function $l(l){let t=!1;const s=[];if(l[0]==="case"){for(let d=1;d",">=","<","<=","to-boolean"]);function ju(l,t){return lt?1:0}function Bc(l){if(!Array.isArray(l))return!1;if(l[0]==="within")return!0;for(let t=1;t"||t==="<="||t===">="?jl(l[1],l[2],t):t==="any"?(s=l.slice(1),["any"].concat(s.map(sl))):t==="all"?["all"].concat(l.slice(1).map(sl)):t==="none"?["all"].concat(l.slice(1).map(sl).map(En)):t==="in"?Ls(l[1],l.slice(2)):t==="!in"?En(Ls(l[1],l.slice(2))):t==="has"?Rs(l[1]):t==="!has"?En(Rs(l[1])):t!=="within"||l;var s}function jl(l,t,s){switch(l){case"$type":return[`filter-type-${s}`,t];case"$id":return[`filter-id-${s}`,t];default:return[`filter-${s}`,l,t]}}function Ls(l,t){if(t.length===0)return!1;switch(l){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some(s=>typeof s!=typeof t[0])?["filter-in-large",l,["literal",t.sort(ju)]]:["filter-in-small",l,["literal",t]]}}function Rs(l){switch(l){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",l]}}function En(l){return["!",l]}function ns(l){return Ds(fr(l.value))?mo(Wi({},l,{expressionContext:"filter",valueSpec:l.styleSpec[`filter_${l.layerType||"fill"}`]})):Lc(l)}function Lc(l){const t=l.value,s=l.key;if(sr(t)!=="array")return[new si(s,t,`array expected, ${sr(t)} found`)];const d=l.styleSpec;let m,y=[];if(t.length<1)return[new si(s,t,"filter array must have at least 1 element")];switch(y=y.concat(Ps({key:`${s}[0]`,value:t[0],valueSpec:d.filter_operator,style:l.style,styleSpec:l.styleSpec})),Ni(t[0])){case"<":case"<=":case">":case">=":t.length>=2&&Ni(t[1])==="$type"&&y.push(new si(s,t,`"$type" cannot be use with operator "${t[0]}"`));case"==":case"!=":t.length!==3&&y.push(new si(s,t,`filter array for operator "${t[0]}" must have 3 elements`));case"in":case"!in":t.length>=2&&(m=sr(t[1]),m!=="string"&&y.push(new si(`${s}[1]`,t[1],`string expected, ${m} found`)));for(let b=2;b{I in s&&t.push(new si(d,s[I],`"${I}" is prohibited for ref layers`))}),m.layers.forEach(I=>{Ni(I.id)===T&&(C=I)}),C?C.ref?t.push(new si(d,s.ref,"ref cannot reference another ref layer")):b=Ni(C.type):typeof T=="string"&&t.push(new si(d,s.ref,`ref layer "${T}" not found`))}else if(b!=="background"&&b!=="sky")if(s.source){const C=m.sources&&m.sources[s.source],I=C&&Ni(C.type);C?I==="vector"&&b==="raster"?t.push(new si(d,s.source,`layer "${s.id}" requires a raster source`)):I==="raster"&&b!=="raster"?t.push(new si(d,s.source,`layer "${s.id}" requires a vector source`)):I!=="vector"||s["source-layer"]?I==="raster-dem"&&b!=="hillshade"?t.push(new si(d,s.source,"raster-dem source can only be used with layer type 'hillshade'.")):b!=="line"||!s.paint||!s.paint["line-gradient"]&&!s.paint["line-trim-offset"]||I==="geojson"&&C.lineMetrics||t.push(new si(d,s,`layer "${s.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new si(d,s,`layer "${s.id}" must specify a "source-layer"`)):t.push(new si(d,s.source,`source "${s.source}" not found`))}else t.push(new si(d,s,'missing required property "source"'));return t=t.concat(Wn({key:d,value:s,valueSpec:y.layer,style:l.style,styleSpec:l.styleSpec,objectElementValidators:{"*":()=>[],type:()=>pn({key:`${d}.type`,value:s.type,valueSpec:y.layer.type,style:l.style,styleSpec:l.styleSpec,object:s,objectKey:"type"}),filter:C=>ns(Wi({layerType:b},C)),layout:C=>Wn({layer:s,key:C.key,value:C.value,valueSpec:{},style:C.style,styleSpec:C.styleSpec,objectElementValidators:{"*":I=>Fc(Wi({layerType:b},I))}}),paint:C=>Wn({layer:s,key:C.key,value:C.value,valueSpec:{},style:C.style,styleSpec:C.styleSpec,objectElementValidators:{"*":I=>zc(Wi({layerType:b},I))}})}})),t}function os(l){const t=l.value,s=l.key,d=sr(t);return d!=="string"?[new si(s,t,`string expected, ${d} found`)]:[]}const cl={promoteId:function({key:l,value:t}){if(sr(t)==="string")return os({key:l,value:t});{const s=[];for(const d in t)s.push(...os({key:`${l}.${d}`,value:t[d]}));return s}}};function Oc(l){const t=l.value,s=l.key,d=l.styleSpec,m=l.style;if(!t.type)return[new si(s,t,'"type" is required')];const y=Ni(t.type);let b;switch(y){case"vector":case"raster":case"raster-dem":return b=Wn({key:s,value:t,valueSpec:d[`source_${y.replace("-","_")}`],style:l.style,styleSpec:d,objectElementValidators:cl}),b;case"geojson":if(b=Wn({key:s,value:t,valueSpec:d.source_geojson,style:m,styleSpec:d,objectElementValidators:cl}),t.cluster)for(const T in t.clusterProperties){const[C,I]=t.clusterProperties[T],F=typeof C=="string"?[C,["accumulated"],["get",T]]:C;b.push(...mo({key:`${s}.${T}.map`,value:I,expressionContext:"cluster-map"})),b.push(...mo({key:`${s}.${T}.reduce`,value:F,expressionContext:"cluster-reduce"}))}return b;case"video":return Wn({key:s,value:t,valueSpec:d.source_video,style:m,styleSpec:d});case"image":return Wn({key:s,value:t,valueSpec:d.source_image,style:m,styleSpec:d});case"canvas":return[new si(s,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Ps({key:`${s}.type`,value:t.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:m,styleSpec:d})}}function Nc(l){const t=l.value,s=l.styleSpec,d=s.light,m=l.style;let y=[];const b=sr(t);if(t===void 0)return y;if(b!=="object")return y=y.concat([new si("light",t,`object expected, ${b} found`)]),y;for(const T in t){const C=T.match(/^(.*)-transition$/);y=y.concat(C&&d[C[1]]&&d[C[1]].transition?pn({key:T,value:t[T],valueSpec:s.transition,style:m,styleSpec:s}):d[T]?pn({key:T,value:t[T],valueSpec:d[T],style:m,styleSpec:s}):[new si(T,t[T],`unknown property "${T}"`)])}return y}function ul(l){const t=l.value,s=l.key,d=l.style,m=l.styleSpec,y=m.terrain;let b=[];const T=sr(t);if(t===void 0)return b;if(T!=="object")return b=b.concat([new si("terrain",t,`object expected, ${T} found`)]),b;for(const C in t){const I=C.match(/^(.*)-transition$/);b=b.concat(I&&y[I[1]]&&y[I[1]].transition?pn({key:C,value:t[C],valueSpec:m.transition,style:d,styleSpec:m}):y[C]?pn({key:C,value:t[C],valueSpec:y[C],style:d,styleSpec:m}):[new si(C,t[C],`unknown property "${C}"`)])}if(t.source){const C=d.sources&&d.sources[t.source],I=C&&Ni(C.type);C?I!=="raster-dem"&&b.push(new si(s,t.source,`terrain cannot be used with a source of type ${String(I)}, it only be used with a "raster-dem" source type`)):b.push(new si(s,t.source,`source "${t.source}" not found`))}else b.push(new si(s,t,'terrain is missing required property "source"'));return b}function Uc(l){const t=l.value,s=l.style,d=l.styleSpec,m=d.fog;let y=[];const b=sr(t);if(t===void 0)return y;if(b!=="object")return y=y.concat([new si("fog",t,`object expected, ${b} found`)]),y;for(const T in t){const C=T.match(/^(.*)-transition$/);y=y.concat(C&&m[C[1]]&&m[C[1]].transition?pn({key:T,value:t[T],valueSpec:d.transition,style:s,styleSpec:d}):m[T]?pn({key:T,value:t[T],valueSpec:m[T],style:s,styleSpec:d}):[new si(T,t[T],`unknown property "${T}"`)])}return y}const Gl={"*":()=>[],array:Nl,boolean:function(l){const t=l.value,s=l.key,d=sr(t);return d!=="boolean"?[new si(s,t,`boolean expected, ${d} found`)]:[]},number:Ul,color:function(l){const t=l.key,s=l.value,d=sr(s);return d!=="string"?[new si(t,s,`color expected, ${d} found`)]:B.parseCSSColor(s)===null?[new si(t,s,`color expected, "${s}" found`)]:[]},enum:Ps,filter:ns,function:ks,layer:ll,object:Wn,source:Oc,light:Nc,terrain:ul,fog:Uc,string:os,formatted:function(l){return os(l).length===0?[]:mo(l)},resolvedImage:function(l){return os(l).length===0?[]:mo(l)},projection:function(l){const t=l.value,s=l.styleSpec,d=s.projection,m=l.style;let y=[];const b=sr(t);if(b==="object")for(const T in t)y=y.concat(pn({key:T,value:t[T],valueSpec:d[T],style:m,styleSpec:s}));else b!=="string"&&(y=y.concat([new si("projection",t,`object or string expected, ${b} found`)]));return y}};function pn(l){const t=l.value,s=l.valueSpec,d=l.styleSpec;return s.expression&&jn(Ni(t))?ks(l):s.expression&&al(fr(t))?mo(l):s.type&&Gl[s.type]?Gl[s.type](l):Wn(Wi({},l,{valueSpec:s.type?d[s.type]:s}))}function Gu(l){const t=l.value,s=l.key,d=os(l);return d.length||(t.indexOf("{fontstack}")===-1&&d.push(new si(s,t,'"glyphs" url must include a "{fontstack}" token')),t.indexOf("{range}")===-1&&d.push(new si(s,t,'"glyphs" url must include a "{range}" token'))),d}function hl(l,t=qe){return Fo(pn({key:"",value:l,valueSpec:t.$root,styleSpec:t,style:l,objectElementValidators:{glyphs:Gu,"*":()=>[]}}))}const dl=l=>Fo(zc(l)),Vc=l=>Fo(Fc(l));function Fo(l){return l.slice().sort((t,s)=>t.line&&s.line?t.line-s.line:0)}function ql(l,t){let s=!1;if(t&&t.length)for(const d of t)l.fire(new Gt(new Error(d.message))),s=!0;return s}var as=io;function io(l,t,s){var d=this.cells=[];if(l instanceof ArrayBuffer){this.arrayBuffer=l;var m=new Int32Array(this.arrayBuffer);l=m[0],this.d=(t=m[1])+2*(s=m[2]);for(var y=0;y=F[H+0]&&d>=F[H+1])?(b[V]=!0,y.push(I[V])):b[V]=!1}}},io.prototype._forEachCell=function(l,t,s,d,m,y,b,T){for(var C=this._convertToCellCoord(l),I=this._convertToCellCoord(t),F=this._convertToCellCoord(s),N=this._convertToCellCoord(d),V=C;V<=F;V++)for(var H=I;H<=N;H++){var J=this.d*H+V;if((!T||T(this._convertFromCellCoord(V),this._convertFromCellCoord(H),this._convertFromCellCoord(V+1),this._convertFromCellCoord(H+1)))&&m.call(this,l,t,s,d,J,y,b,T))return}},io.prototype._convertFromCellCoord=function(l){return(l-this.padding)/this.scale},io.prototype._convertToCellCoord=function(l){return Math.max(0,Math.min(this.d-1,Math.floor(l*this.scale)+this.padding))},io.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var l=this.cells,t=3+this.cells.length+1+1,s=0,d=0;d=0||(m[y]=ss(l[y],t)));l instanceof Error&&(m.message=l.message)}if(m.$name)throw new Error("$name property is reserved for worker serialization logic.");return d!=="Object"&&(m.$name=d),m}throw new Error("can't serialize object of type "+typeof l)}function zs(l){if(l==null||typeof l=="boolean"||typeof l=="number"||typeof l=="string"||l instanceof Boolean||l instanceof Number||l instanceof String||l instanceof Date||l instanceof RegExp||$c(l)||jc(l)||ArrayBuffer.isView(l)||l instanceof w.ImageData)return l;if(Array.isArray(l))return l.map(zs);if(typeof l=="object"){const t=l.$name||"Object",{klass:s}=fl[t];if(!s)throw new Error(`can't deserialize unregistered class ${t}`);if(s.deserialize)return s.deserialize(l);const d=Object.create(s.prototype);for(const m of Object.keys(l))m!=="$name"&&(d[m]=zs(l[m]));return d}throw new Error("can't deserialize object of type "+typeof l)}class Gc{constructor(){this.first=!0}update(t,s){const d=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=d,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=d,!0):(this.lastFloorZoom>d?(this.lastIntegerZoom=d+1,this.lastIntegerZoomTime=s):this.lastFloorZooml>=1536&&l<=1791,Zc=l=>l>=1872&&l<=1919,Xc=l=>l>=2208&&l<=2303,Hc=l=>l>=11904&&l<=12031,Wc=l=>l>=12032&&l<=12255,Fs=l=>l>=12272&&l<=12287,pl=l=>l>=12288&&l<=12351,Zl=l=>l>=12352&&l<=12447,Ea=l=>l>=12448&&l<=12543,Yc=l=>l>=12544&&l<=12591,Xl=l=>l>=12704&&l<=12735,Kc=l=>l>=12736&&l<=12783,Hl=l=>l>=12784&&l<=12799,Wl=l=>l>=12800&&l<=13055,Yl=l=>l>=13056&&l<=13311,Kl=l=>l>=13312&&l<=19903,Os=l=>l>=19968&&l<=40959,ml=l=>l>=40960&&l<=42127,Qc=l=>l>=42128&&l<=42191,Jc=l=>l>=44032&&l<=55215,eu=l=>l>=63744&&l<=64255,Ns=l=>l>=64336&&l<=65023,tu=l=>l>=65040&&l<=65055,Ql=l=>l>=65072&&l<=65103,iu=l=>l>=65104&&l<=65135,Jl=l=>l>=65136&&l<=65279,ec=l=>l>=65280&&l<=65519;function gl(l){for(const t of l)if(_l(t.charCodeAt(0)))return!0;return!1}function qu(l){for(const t of l)if(!Zu(t.charCodeAt(0)))return!1;return!0}function Zu(l){return!(qc(l)||Zc(l)||Xc(l)||Ns(l)||Jl(l))}function _l(l){return!(l!==746&&l!==747&&(l<4352||!(Xl(l)||Yc(l)||Ql(l)&&!(l>=65097&&l<=65103)||eu(l)||Yl(l)||Hc(l)||Kc(l)||!(!pl(l)||l>=12296&&l<=12305||l>=12308&&l<=12319||l===12336)||Kl(l)||Os(l)||Wl(l)||(t=>t>=12592&&t<=12687)(l)||(t=>t>=43360&&t<=43391)(l)||(t=>t>=55216&&t<=55295)(l)||(t=>t>=4352&&t<=4607)(l)||Jc(l)||Zl(l)||Fs(l)||(t=>t>=12688&&t<=12703)(l)||Wc(l)||Hl(l)||Ea(l)&&l!==12540||!(!ec(l)||l===65288||l===65289||l===65293||l>=65306&&l<=65310||l===65339||l===65341||l===65343||l>=65371&&l<=65503||l===65507||l>=65512&&l<=65519)||!(!iu(l)||l>=65112&&l<=65118||l>=65123&&l<=65126)||(t=>t>=5120&&t<=5759)(l)||(t=>t>=6320&&t<=6399)(l)||tu(l)||(t=>t>=19904&&t<=19967)(l)||ml(l)||Qc(l))))}function Us(l){return!(_l(l)||function(t){return!!((s=>s>=128&&s<=255)(t)&&(t===167||t===169||t===174||t===177||t===188||t===189||t===190||t===215||t===247)||(s=>s>=8192&&s<=8303)(t)&&(t===8214||t===8224||t===8225||t===8240||t===8241||t===8251||t===8252||t===8258||t===8263||t===8264||t===8265||t===8273)||(s=>s>=8448&&s<=8527)(t)||(s=>s>=8528&&s<=8591)(t)||(s=>s>=8960&&s<=9215)(t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||t===9003||t>=9085&&t<=9114||t>=9150&&t<=9165||t===9167||t>=9169&&t<=9179||t>=9186&&t<=9215)||(s=>s>=9216&&s<=9279)(t)&&t!==9251||(s=>s>=9280&&s<=9311)(t)||(s=>s>=9312&&s<=9471)(t)||(s=>s>=9632&&s<=9727)(t)||(s=>s>=9728&&s<=9983)(t)&&!(t>=9754&&t<=9759)||(s=>s>=11008&&s<=11263)(t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||pl(t)||Ea(t)||(s=>s>=57344&&s<=63743)(t)||Ql(t)||iu(t)||ec(t)||t===8734||t===8756||t===8757||t>=9984&&t<=10087||t>=10102&&t<=10131||t===65532||t===65533)}(l))}function g(l){return l>=1424&&l<=2303||Ns(l)||Jl(l)}function c(l,t){return!(!t&&g(l)||l>=2304&&l<=3583||l>=3840&&l<=4255||(s=>s>=6016&&s<=6143)(l))}function p(l){for(const t of l)if(g(t.charCodeAt(0)))return!0;return!1}const x="deferred",S="loading",A="loaded";let P=null,z="unavailable",O=null;const j=function(l){l&&typeof l=="string"&&l.indexOf("NetworkError")>-1&&(z="error"),P&&P(l)};function Z(){re.fire(new Le("pluginStateChange",{pluginStatus:z,pluginURL:O}))}const re=new ht,le=function(){return z},ye=function(){if(z!==x||!O)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");z=S,Z(),O&&He({url:O},l=>{l?j(l):(z=A,Z())})},pe={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>z===A||pe.applyArabicShaping!=null,isLoading:()=>z===S,setState(l){z=l.pluginStatus,O=l.pluginURL},isParsed:()=>pe.applyArabicShaping!=null&&pe.processBidirectionalText!=null&&pe.processStyledBidirectionalText!=null,getPluginURL:()=>O};class me{constructor(t,s){this.zoom=t,s?(this.now=s.now,this.fadeDuration=s.fadeDuration,this.zoomHistory=s.zoomHistory,this.transition=s.transition,this.pitch=s.pitch):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Gc,this.transition={},this.pitch=0)}isSupportedScript(t){return function(s,d){for(const m of s)if(!c(m.charCodeAt(0),d))return!1;return!0}(t,pe.isLoaded())}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,s=t-Math.floor(t),d=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:s+(1-s)*d}:{fromScale:.5,toScale:1,t:1-(1-d)*s}}}class ge{constructor(t,s){this.property=t,this.value=s,this.expression=function(d,m){if(jn(d))return new is(d,m);if(al(d)){const y=Ol(d,m);if(y.result==="error")throw new Error(y.value.map(b=>`${b.key}: ${b.message}`).join(", "));return y.value}{let y=d;return typeof d=="string"&&m.type==="color"&&(y=ae.parse(d)),{kind:"constant",evaluate:()=>y}}}(s===void 0?t.specification.default:s,t.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(t,s,d){return this.property.possiblyEvaluate(this,t,s,d)}}class de{constructor(t){this.property=t,this.value=new ge(t,void 0)}transitioned(t,s){return new be(this.property,this.value,s,ee({},t.transition,this.transition),t.now)}untransitioned(){return new be(this.property,this.value,null,{},0)}}class Ee{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}getValue(t){return Xe(this._values[t].value.value)}setValue(t,s){this._values.hasOwnProperty(t)||(this._values[t]=new de(this._values[t].property)),this._values[t].value=new ge(this._values[t].property,s===null?void 0:Xe(s))}getTransition(t){return Xe(this._values[t].transition)}setTransition(t,s){this._values.hasOwnProperty(t)||(this._values[t]=new de(this._values[t].property)),this._values[t].transition=Xe(s)||void 0}serialize(){const t={};for(const s of Object.keys(this._values)){const d=this.getValue(s);d!==void 0&&(t[s]=d);const m=this.getTransition(s);m!==void 0&&(t[`${s}-transition`]=m)}return t}transitioned(t,s){const d=new Ne(this._properties);for(const m of Object.keys(this._values))d._values[m]=this._values[m].transitioned(t,s._values[m]);return d}untransitioned(){const t=new Ne(this._properties);for(const s of Object.keys(this._values))t._values[s]=this._values[s].untransitioned();return t}}class be{constructor(t,s,d,m,y){const b=m.delay||0,T=m.duration||0;y=y||0,this.property=t,this.value=s,this.begin=y+b,this.end=this.begin+T,t.specification.transition&&(m.delay||m.duration)&&(this.prior=d)}possiblyEvaluate(t,s,d){const m=t.now||0,y=this.value.possiblyEvaluate(t,s,d),b=this.prior;if(b){if(m>this.end)return this.prior=null,y;if(this.value.isDataDriven())return this.prior=null,y;if(mm.zoomHistory.lastIntegerZoom?{from:t,to:s,other:d}:{from:d,to:s,other:t}}interpolate(t){return t}}class zt{constructor(t){this.specification=t}possiblyEvaluate(t,s,d,m){if(t.value!==void 0){if(t.expression.kind==="constant"){const y=t.expression.evaluate(s,null,{},d,m);return this._calculate(y,y,y,s)}return this._calculate(t.expression.evaluate(new me(Math.floor(s.zoom-1),s)),t.expression.evaluate(new me(Math.floor(s.zoom),s)),t.expression.evaluate(new me(Math.floor(s.zoom+1),s)),s)}}_calculate(t,s,d,m){return m.zoom>m.zoomHistory.lastIntegerZoom?{from:t,to:s}:{from:d,to:s}}interpolate(t){return t}}class Ye{constructor(t){this.specification=t}possiblyEvaluate(t,s,d,m){return!!t.expression.evaluate(s,null,{},d,m)}interpolate(){return!1}}class bt{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];const s=new me(0,{});for(const d in t){const m=t[d];m.specification.overridable&&this.overridableProperties.push(d);const y=this.defaultPropertyValues[d]=new ge(m,void 0),b=this.defaultTransitionablePropertyValues[d]=new de(m);this.defaultTransitioningPropertyValues[d]=b.untransitioned(),this.defaultPossiblyEvaluatedValues[d]=y.possiblyEvaluate(s)}}}function Mt(l,t){return 256*(l=ie(Math.floor(l),0,255))+ie(Math.floor(t),0,255)}hi(Ge,"DataDrivenProperty"),hi(ze,"DataConstantProperty"),hi(et,"CrossFadedDataDrivenProperty"),hi(zt,"CrossFadedProperty"),hi(Ye,"ColorRampProperty");const Wt={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ct{constructor(t,s){this._structArray=t,this._pos1=s*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class $t{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(t,s){return t._trim(),s&&(t.isTransferred=!0,s.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const s=Object.create(this.prototype);return s.arrayBuffer=t.arrayBuffer,s.length=t.length,s.capacity=t.arrayBuffer.byteLength/s.bytesPerElement,s._refreshViews(),s}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(t){this.reserve(t),this.length=t}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const s=this.uint8;this._refreshViews(),s&&this.uint8.set(s)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}}function Tt(l,t=1){let s=0,d=0;return{members:l.map(m=>{const y=Wt[m.type].BYTES_PER_ELEMENT,b=s=ti(s,Math.max(t,y)),T=m.components||1;return d=Math.max(d,y),s+=y*T,{name:m.name,type:m.type,components:T,offset:b}}),size:ti(s,Math.max(d,t)),alignment:t}}function ti(l,t){return Math.ceil(l/t)*t}class Kt extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,s){const d=this.length;return this.resize(d+1),this.emplace(d,t,s)}emplace(t,s,d){const m=2*t;return this.int16[m+0]=s,this.int16[m+1]=d,t}}Kt.prototype.bytesPerElement=4,hi(Kt,"StructArrayLayout2i4");class bi extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,s,d){const m=this.length;return this.resize(m+1),this.emplace(m,t,s,d)}emplace(t,s,d,m){const y=3*t;return this.int16[y+0]=s,this.int16[y+1]=d,this.int16[y+2]=m,t}}bi.prototype.bytesPerElement=6,hi(bi,"StructArrayLayout3i6");class Di extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,s,d,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,s,d,m)}emplace(t,s,d,m,y){const b=4*t;return this.int16[b+0]=s,this.int16[b+1]=d,this.int16[b+2]=m,this.int16[b+3]=y,t}}Di.prototype.bytesPerElement=8,hi(Di,"StructArrayLayout4i8");class $i extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T){const C=this.length;return this.resize(C+1),this.emplace(C,t,s,d,m,y,b,T)}emplace(t,s,d,m,y,b,T,C){const I=6*t,F=12*t,N=3*t;return this.int16[I+0]=s,this.int16[I+1]=d,this.uint8[F+4]=m,this.uint8[F+5]=y,this.uint8[F+6]=b,this.uint8[F+7]=T,this.float32[N+2]=C,t}}$i.prototype.bytesPerElement=12,hi($i,"StructArrayLayout2i4ub1f12");class nr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s,d,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,s,d,m)}emplace(t,s,d,m,y){const b=4*t;return this.float32[b+0]=s,this.float32[b+1]=d,this.float32[b+2]=m,this.float32[b+3]=y,t}}nr.prototype.bytesPerElement=16,hi(nr,"StructArrayLayout4f16");class wi extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T,C,I,F){const N=this.length;return this.resize(N+1),this.emplace(N,t,s,d,m,y,b,T,C,I,F)}emplace(t,s,d,m,y,b,T,C,I,F,N){const V=10*t;return this.uint16[V+0]=s,this.uint16[V+1]=d,this.uint16[V+2]=m,this.uint16[V+3]=y,this.uint16[V+4]=b,this.uint16[V+5]=T,this.uint16[V+6]=C,this.uint16[V+7]=I,this.uint16[V+8]=F,this.uint16[V+9]=N,t}}wi.prototype.bytesPerElement=20,hi(wi,"StructArrayLayout10ui20");class Xi extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T,C){const I=this.length;return this.resize(I+1),this.emplace(I,t,s,d,m,y,b,T,C)}emplace(t,s,d,m,y,b,T,C,I){const F=8*t;return this.uint16[F+0]=s,this.uint16[F+1]=d,this.uint16[F+2]=m,this.uint16[F+3]=y,this.uint16[F+4]=b,this.uint16[F+5]=T,this.uint16[F+6]=C,this.uint16[F+7]=I,t}}Xi.prototype.bytesPerElement=16,hi(Xi,"StructArrayLayout8ui16");class hr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b){const T=this.length;return this.resize(T+1),this.emplace(T,t,s,d,m,y,b)}emplace(t,s,d,m,y,b,T){const C=6*t;return this.int16[C+0]=s,this.int16[C+1]=d,this.int16[C+2]=m,this.int16[C+3]=y,this.int16[C+4]=b,this.int16[C+5]=T,t}}hr.prototype.bytesPerElement=12,hi(hr,"StructArrayLayout6i12");class Lr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T,C,I,F,N,V){const H=this.length;return this.resize(H+1),this.emplace(H,t,s,d,m,y,b,T,C,I,F,N,V)}emplace(t,s,d,m,y,b,T,C,I,F,N,V,H){const J=12*t;return this.int16[J+0]=s,this.int16[J+1]=d,this.int16[J+2]=m,this.int16[J+3]=y,this.uint16[J+4]=b,this.uint16[J+5]=T,this.uint16[J+6]=C,this.uint16[J+7]=I,this.int16[J+8]=F,this.int16[J+9]=N,this.int16[J+10]=V,this.int16[J+11]=H,t}}Lr.prototype.bytesPerElement=24,hi(Lr,"StructArrayLayout4i4ui4i24");class qr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b){const T=this.length;return this.resize(T+1),this.emplace(T,t,s,d,m,y,b)}emplace(t,s,d,m,y,b,T){const C=10*t,I=5*t;return this.int16[C+0]=s,this.int16[C+1]=d,this.int16[C+2]=m,this.float32[I+2]=y,this.float32[I+3]=b,this.float32[I+4]=T,t}}qr.prototype.bytesPerElement=20,hi(qr,"StructArrayLayout3i3f20");class vr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t){const s=this.length;return this.resize(s+1),this.emplace(s,t)}emplace(t,s){return this.uint32[1*t+0]=s,t}}vr.prototype.bytesPerElement=4,hi(vr,"StructArrayLayout1ul4");class mn extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T,C,I,F,N,V,H){const J=this.length;return this.resize(J+1),this.emplace(J,t,s,d,m,y,b,T,C,I,F,N,V,H)}emplace(t,s,d,m,y,b,T,C,I,F,N,V,H,J){const ne=20*t,he=10*t;return this.int16[ne+0]=s,this.int16[ne+1]=d,this.int16[ne+2]=m,this.int16[ne+3]=y,this.int16[ne+4]=b,this.float32[he+3]=T,this.float32[he+4]=C,this.float32[he+5]=I,this.float32[he+6]=F,this.int16[ne+14]=N,this.uint32[he+8]=V,this.uint16[ne+18]=H,this.uint16[ne+19]=J,t}}mn.prototype.bytesPerElement=40,hi(mn,"StructArrayLayout5i4f1i1ul2ui40");class go extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T){const C=this.length;return this.resize(C+1),this.emplace(C,t,s,d,m,y,b,T)}emplace(t,s,d,m,y,b,T,C){const I=8*t;return this.int16[I+0]=s,this.int16[I+1]=d,this.int16[I+2]=m,this.int16[I+4]=y,this.int16[I+5]=b,this.int16[I+6]=T,this.int16[I+7]=C,t}}go.prototype.bytesPerElement=16,hi(go,"StructArrayLayout3i2i2i16");class Oo extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y){const b=this.length;return this.resize(b+1),this.emplace(b,t,s,d,m,y)}emplace(t,s,d,m,y,b){const T=4*t,C=8*t;return this.float32[T+0]=s,this.float32[T+1]=d,this.float32[T+2]=m,this.int16[C+6]=y,this.int16[C+7]=b,t}}Oo.prototype.bytesPerElement=16,hi(Oo,"StructArrayLayout2f1f2i16");class Rr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s,d,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,s,d,m)}emplace(t,s,d,m,y){const b=12*t,T=3*t;return this.uint8[b+0]=s,this.uint8[b+1]=d,this.float32[T+1]=m,this.float32[T+2]=y,t}}Rr.prototype.bytesPerElement=12,hi(Rr,"StructArrayLayout2ub2f12");class Or extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s,d){const m=this.length;return this.resize(m+1),this.emplace(m,t,s,d)}emplace(t,s,d,m){const y=3*t;return this.float32[y+0]=s,this.float32[y+1]=d,this.float32[y+2]=m,t}}Or.prototype.bytesPerElement=12,hi(Or,"StructArrayLayout3f12");class rr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s,d){const m=this.length;return this.resize(m+1),this.emplace(m,t,s,d)}emplace(t,s,d,m){const y=3*t;return this.uint16[y+0]=s,this.uint16[y+1]=d,this.uint16[y+2]=m,t}}rr.prototype.bytesPerElement=6,hi(rr,"StructArrayLayout3ui6");class tn extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he,we,De,Se,Ce,Ue){const Re=this.length;return this.resize(Re+1),this.emplace(Re,t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he,we,De,Se,Ce,Ue)}emplace(t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he,we,De,Se,Ce,Ue,Re){const nt=30*t,it=15*t,yt=60*t;return this.int16[nt+0]=s,this.int16[nt+1]=d,this.int16[nt+2]=m,this.float32[it+2]=y,this.float32[it+3]=b,this.uint16[nt+8]=T,this.uint16[nt+9]=C,this.uint32[it+5]=I,this.uint32[it+6]=F,this.uint32[it+7]=N,this.uint16[nt+16]=V,this.uint16[nt+17]=H,this.uint16[nt+18]=J,this.float32[it+10]=ne,this.float32[it+11]=he,this.uint8[yt+48]=we,this.uint8[yt+49]=De,this.uint8[yt+50]=Se,this.uint32[it+13]=Ce,this.int16[nt+28]=Ue,this.uint8[yt+58]=Re,t}}tn.prototype.bytesPerElement=60,hi(tn,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class Tn extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he,we,De,Se,Ce,Ue,Re,nt,it,yt,Zt,lt,wt,Dt,Et){const Ot=this.length;return this.resize(Ot+1),this.emplace(Ot,t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he,we,De,Se,Ce,Ue,Re,nt,it,yt,Zt,lt,wt,Dt,Et)}emplace(t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he,we,De,Se,Ce,Ue,Re,nt,it,yt,Zt,lt,wt,Dt,Et,Ot){const Bt=38*t,ii=19*t;return this.int16[Bt+0]=s,this.int16[Bt+1]=d,this.int16[Bt+2]=m,this.float32[ii+2]=y,this.float32[ii+3]=b,this.int16[Bt+8]=T,this.int16[Bt+9]=C,this.int16[Bt+10]=I,this.int16[Bt+11]=F,this.int16[Bt+12]=N,this.int16[Bt+13]=V,this.uint16[Bt+14]=H,this.uint16[Bt+15]=J,this.uint16[Bt+16]=ne,this.uint16[Bt+17]=he,this.uint16[Bt+18]=we,this.uint16[Bt+19]=De,this.uint16[Bt+20]=Se,this.uint16[Bt+21]=Ce,this.uint16[Bt+22]=Ue,this.uint16[Bt+23]=Re,this.uint16[Bt+24]=nt,this.uint16[Bt+25]=it,this.uint16[Bt+26]=yt,this.uint16[Bt+27]=Zt,this.uint16[Bt+28]=lt,this.uint32[ii+15]=wt,this.float32[ii+16]=Dt,this.float32[ii+17]=Et,this.float32[ii+18]=Ot,t}}Tn.prototype.bytesPerElement=76,hi(Tn,"StructArrayLayout3i2f6i15ui1ul3f76");class Mr extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t){const s=this.length;return this.resize(s+1),this.emplace(s,t)}emplace(t,s){return this.float32[1*t+0]=s,t}}Mr.prototype.bytesPerElement=4,hi(Mr,"StructArrayLayout1f4");class Sn extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s,d,m,y){const b=this.length;return this.resize(b+1),this.emplace(b,t,s,d,m,y)}emplace(t,s,d,m,y,b){const T=5*t;return this.float32[T+0]=s,this.float32[T+1]=d,this.float32[T+2]=m,this.float32[T+3]=y,this.float32[T+4]=b,t}}Sn.prototype.bytesPerElement=20,hi(Sn,"StructArrayLayout5f20");class Ta extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s,d,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,s,d,m)}emplace(t,s,d,m,y){const b=6*t;return this.uint32[3*t+0]=s,this.uint16[b+2]=d,this.uint16[b+3]=m,this.uint16[b+4]=y,t}}Ta.prototype.bytesPerElement=12,hi(Ta,"StructArrayLayout1ul3ui12");class Rn extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,s){const d=this.length;return this.resize(d+1),this.emplace(d,t,s)}emplace(t,s,d){const m=2*t;return this.uint16[m+0]=s,this.uint16[m+1]=d,t}}Rn.prototype.bytesPerElement=4,hi(Rn,"StructArrayLayout2ui4");class Sa extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t){const s=this.length;return this.resize(s+1),this.emplace(s,t)}emplace(t,s){return this.uint16[1*t+0]=s,t}}Sa.prototype.bytesPerElement=2,hi(Sa,"StructArrayLayout1ui2");class Ma extends $t{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,s){const d=this.length;return this.resize(d+1),this.emplace(d,t,s)}emplace(t,s,d){const m=2*t;return this.float32[m+0]=s,this.float32[m+1]=d,t}}Ma.prototype.bytesPerElement=8,hi(Ma,"StructArrayLayout2f8");class Aa extends ct{get a_pos_30(){return this._structArray.int16[this._pos2+0]}get a_pos_31(){return this._structArray.int16[this._pos2+1]}get a_pos_32(){return this._structArray.int16[this._pos2+2]}get a_pos_normal_30(){return this._structArray.int16[this._pos2+3]}get a_pos_normal_31(){return this._structArray.int16[this._pos2+4]}get a_pos_normal_32(){return this._structArray.int16[this._pos2+5]}}Aa.prototype.size=12;class zn extends hr{get(t){return new Aa(this,t)}}hi(zn,"FillExtrusionExtArray");class Ca extends ct{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}Ca.prototype.size=40;class ra extends mn{get(t){return new Ca(this,t)}}hi(ra,"CollisionBoxArray");class Vs extends ct{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(t){this._structArray.uint8[this._pos1+49]=t}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(t){this._structArray.uint8[this._pos1+50]=t}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(t){this._structArray.uint32[this._pos4+13]=t}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(t){this._structArray.uint8[this._pos1+58]=t}}Vs.prototype.size=60;class Jh extends tn{get(t){return new Vs(this,t)}}hi(Jh,"PlacedSymbolArray");class ed extends ct{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(t){this._structArray.uint32[this._pos4+15]=t}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}ed.prototype.size=76;class td extends Tn{get(t){return new ed(this,t)}}hi(td,"SymbolInstanceArray");class rd extends Mr{getoffsetX(t){return this.float32[1*t+0]}}hi(rd,"GlyphOffsetArray");class nd extends bi{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}hi(nd,"SymbolLineVertexArray");class od extends ct{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}od.prototype.size=12;class ad extends Ta{get(t){return new od(this,t)}}hi(ad,"FeatureIndexArray");class sd extends ct{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}sd.prototype.size=4;class ld extends Rn{get(t){return new sd(this,t)}}hi(ld,"FillExtrusionCentroidArray");class cd extends ct{get a_pos_30(){return this._structArray.int16[this._pos2+0]}get a_pos_31(){return this._structArray.int16[this._pos2+1]}get a_pos_32(){return this._structArray.int16[this._pos2+2]}get a_pos_normal_30(){return this._structArray.int16[this._pos2+3]}get a_pos_normal_31(){return this._structArray.int16[this._pos2+4]}get a_pos_normal_32(){return this._structArray.int16[this._pos2+5]}}cd.prototype.size=12;class ud extends hr{get(t){return new cd(this,t)}}hi(ud,"CircleGlobeExtArray");const Ip=Tt([{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"}]),kp=Tt([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var hd=Na(function(l){l.exports=function(t,s){var d,m,y,b,T,C,I,F;for(m=t.length-(d=3&t.length),y=s,T=3432918353,C=461845907,F=0;F>>16)*T&65535)<<16)&4294967295)<<15|I>>>17))*C+(((I>>>16)*C&65535)<<16)&4294967295)<<13|y>>>19))+((5*(y>>>16)&65535)<<16)&4294967295))+((58964+(b>>>16)&65535)<<16);switch(I=0,d){case 3:I^=(255&t.charCodeAt(F+2))<<16;case 2:I^=(255&t.charCodeAt(F+1))<<8;case 1:y^=I=(65535&(I=(I=(65535&(I^=255&t.charCodeAt(F)))*T+(((I>>>16)*T&65535)<<16)&4294967295)<<15|I>>>17))*C+(((I>>>16)*C&65535)<<16)&4294967295}return y^=t.length,y=2246822507*(65535&(y^=y>>>16))+((2246822507*(y>>>16)&65535)<<16)&4294967295,y=3266489909*(65535&(y^=y>>>13))+((3266489909*(y>>>16)&65535)<<16)&4294967295,(y^=y>>>16)>>>0}}),Pp=Na(function(l){l.exports=function(t,s){for(var d,m=t.length,y=s^m,b=0;m>=4;)d=1540483477*(65535&(d=255&t.charCodeAt(b)|(255&t.charCodeAt(++b))<<8|(255&t.charCodeAt(++b))<<16|(255&t.charCodeAt(++b))<<24))+((1540483477*(d>>>16)&65535)<<16),y=1540483477*(65535&y)+((1540483477*(y>>>16)&65535)<<16)^(d=1540483477*(65535&(d^=d>>>24))+((1540483477*(d>>>16)&65535)<<16)),m-=4,++b;switch(m){case 3:y^=(255&t.charCodeAt(b+2))<<16;case 2:y^=(255&t.charCodeAt(b+1))<<8;case 1:y=1540483477*(65535&(y^=255&t.charCodeAt(b)))+((1540483477*(y>>>16)&65535)<<16)}return y=1540483477*(65535&(y^=y>>>13))+((1540483477*(y>>>16)&65535)<<16),(y^=y>>>15)>>>0}}),tc=hd,Dp=Pp;tc.murmur3=hd,tc.murmur2=Dp;class ru{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(t,s,d,m){this.ids.push(dd(t)),this.positions.push(s,d,m)}getPositions(t){const s=dd(t);let d=0,m=this.ids.length-1;for(;d>1;this.ids[b]>=s?m=b:d=b+1}const y=[];for(;this.ids[d]===s;)y.push({index:this.positions[3*d],start:this.positions[3*d+1],end:this.positions[3*d+2]}),d++;return y}static serialize(t,s){const d=new Float64Array(t.ids),m=new Uint32Array(t.positions);return Xu(d,m,0,d.length-1),s&&s.push(d.buffer,m.buffer),{ids:d,positions:m}}static deserialize(t){const s=new ru;return s.ids=t.ids,s.positions=t.positions,s.indexed=!0,s}}function dd(l){const t=+l;return!isNaN(t)&&Number.MIN_SAFE_INTEGER<=t&&t<=Number.MAX_SAFE_INTEGER?t:tc(String(l))}function Xu(l,t,s,d){for(;s>1];let y=s-1,b=d+1;for(;;){do y++;while(l[y]m);if(y>=b)break;nu(l,y,b),nu(t,3*y,3*b),nu(t,3*y+1,3*b+1),nu(t,3*y+2,3*b+2)}b-s`u_${m}`),this.type=d}setUniform(t,s,d,m,y){s.set(t,y,m.constantOr(this.value))}getBinding(t,s){return this.type==="color"?new pd(t):new ou(t)}}class yl{constructor(t,s){this.uniformNames=s.map(d=>`u_${d}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(t,s){this.pixelRatioFrom=s.pixelRatio||1,this.pixelRatioTo=t.pixelRatio||1,this.patternFrom=s.tl.concat(s.br),this.patternTo=t.tl.concat(t.br)}setUniform(t,s,d,m,y){const b=y==="u_pattern_to"||y==="u_dash_to"?this.patternTo:y==="u_pattern_from"||y==="u_dash_from"?this.patternFrom:y==="u_pixel_ratio_to"?this.pixelRatioTo:y==="u_pixel_ratio_from"?this.pixelRatioFrom:null;b&&s.set(t,y,b)}getBinding(t,s){return s==="u_pattern_from"||s==="u_pattern_to"||s==="u_dash_from"||s==="u_dash_to"?new fd(t):new ou(t)}}class ka{constructor(t,s,d,m){this.expression=t,this.type=d,this.maxValue=0,this.paintVertexAttributes=s.map(y=>({name:`a_${y}`,type:"Float32",components:d==="color"?2:1,offset:0})),this.paintVertexArray=new m}populatePaintArray(t,s,d,m,y,b){const T=this.paintVertexArray.length,C=this.expression.evaluate(new me(0),s,{},y,m,b);this.paintVertexArray.resize(t),this._setPaintValue(T,t,C)}updatePaintArray(t,s,d,m,y){const b=this.expression.evaluate({zoom:0},d,m,void 0,y);this._setPaintValue(t,s,b)}_setPaintValue(t,s,d){if(this.type==="color"){const m=Hu(d);for(let y=t;y`u_${T}_t`),this.type=d,this.useIntegerZoom=m,this.zoom=y,this.maxValue=0,this.paintVertexAttributes=s.map(T=>({name:`a_${T}`,type:"Float32",components:d==="color"?4:2,offset:0})),this.paintVertexArray=new b}populatePaintArray(t,s,d,m,y,b){const T=this.expression.evaluate(new me(this.zoom),s,{},y,m,b),C=this.expression.evaluate(new me(this.zoom+1),s,{},y,m,b),I=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(I,t,T,C)}updatePaintArray(t,s,d,m,y){const b=this.expression.evaluate({zoom:this.zoom},d,m,void 0,y),T=this.expression.evaluate({zoom:this.zoom+1},d,m,void 0,y);this._setPaintValue(t,s,b,T)}_setPaintValue(t,s,d,m){if(this.type==="color"){const y=Hu(d),b=Hu(m);for(let T=t;T!0){this.binders={},this._buffers=[];const m=[];for(const y in t.paint._values){if(!d(y))continue;const b=t.paint.get(y);if(!(b instanceof Pe&&Ln(b.property.specification)))continue;const T=Fp(y,t.type),C=b.value,I=b.property.specification.type,F=b.property.useIntegerZoom,N=b.property.specification["property-type"],V=N==="cross-faded"||N==="cross-faded-data-driven",H=String(y)==="line-dasharray"&&t.layout.get("line-cap").value.kind!=="constant";if(C.kind!=="constant"||H)if(C.kind==="source"||H||V){const J=md(y,I,"source");this.binders[y]=V?new ls(C,T,I,F,s,J,t.id):new ka(C,T,I,J),m.push(`/a_${y}`)}else{const J=md(y,I,"composite");this.binders[y]=new No(C,T,I,F,s,J),m.push(`/z_${y}`)}else this.binders[y]=V?new yl(C.value,T):new ic(C.value,T,I),m.push(`/u_${y}`)}this.cacheKey=m.sort().join("")}getMaxValue(t){const s=this.binders[t];return s instanceof ka||s instanceof No?s.maxValue:0}populatePaintArrays(t,s,d,m,y,b){for(const T in this.binders){const C=this.binders[T];(C instanceof ka||C instanceof No||C instanceof ls)&&C.populatePaintArray(t,s,d,m,y,b)}}setConstantPatternPositions(t,s){for(const d in this.binders){const m=this.binders[d];m instanceof yl&&m.setConstantPatternPositions(t,s)}}updatePaintArrays(t,s,d,m,y,b){let T=!1;for(const C in t){const I=s.getPositions(C);for(const F of I){const N=d.feature(F.index);for(const V in this.binders){const H=this.binders[V];if((H instanceof ka||H instanceof No||H instanceof ls)&&H.expression.isStateDependent===!0){const J=m.paint.get(V);H.expression=J.value,H.updatePaintArray(F.start,F.end,N,t[C],y,b),T=!0}}}}return T}defines(){const t=[];for(const s in this.binders){const d=this.binders[s];(d instanceof ic||d instanceof yl)&&t.push(...d.uniformNames.map(m=>`#define HAS_UNIFORM_${m}`))}return t}getBinderAttributes(){const t=[];for(const s in this.binders){const d=this.binders[s];if(d instanceof ka||d instanceof No||d instanceof ls)for(let m=0;m!0){this.programConfigurations={};for(const m of t)this.programConfigurations[m.id]=new cs(m,s,d);this.needsUpload=!1,this._featureMap=new ru,this._bufferOffset=0}populatePaintArrays(t,s,d,m,y,b,T){for(const C in this.programConfigurations)this.programConfigurations[C].populatePaintArrays(t,s,m,y,b,T);s.id!==void 0&&this._featureMap.add(s.id,d,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0}updatePaintArrays(t,s,d,m,y){for(const b of d)this.needsUpload=this.programConfigurations[b.id].updatePaintArrays(t,this._featureMap,s,b,m,y)||this.needsUpload}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const s in this.programConfigurations)this.programConfigurations[s].upload(t);this.needsUpload=!1}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy()}}const zp={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"line-dasharray":["dash_to","dash_from"]};function Fp(l,t){return zp[l]||[l.replace(`${t}-`,"").replace(/-/g,"_")]}const Op={"line-pattern":{source:wi,composite:wi},"fill-pattern":{source:wi,composite:wi},"fill-extrusion-pattern":{source:wi,composite:wi},"line-dasharray":{source:Xi,composite:Xi}},Np={color:{source:Ma,composite:nr},number:{source:Mr,composite:Ma}};function md(l,t,s){const d=Op[l];return d&&d[s]||Np[t][s]}hi(ic,"ConstantBinder"),hi(yl,"CrossFadedConstantBinder"),hi(ka,"SourceExpressionBinder"),hi(ls,"CrossFadedCompositeBinder"),hi(No,"CompositeExpressionBinder"),hi(cs,"ProgramConfiguration",{omit:["_buffers"]}),hi($s,"ProgramConfigurationSet");const au="-transition";class Uo extends ht{constructor(t,s){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,t.type!=="custom"&&(this.metadata=(t=t).metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,t.type!=="background"&&t.type!=="sky"&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),s.layout&&(this._unevaluatedLayout=new Fe(s.layout)),s.paint)){this._transitionablePaint=new Ee(s.paint);for(const d in t.paint)this.setPaintProperty(d,t.paint[d],{validate:!1});for(const d in t.layout)this.setLayoutProperty(d,t.layout[d],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Oe(s.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return t==="visibility"?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,s,d={}){s!=null&&this._validate(Vc,`layers.${this.id}.layout.${t}`,t,s,d)||(t!=="visibility"?this._unevaluatedLayout.setValue(t,s):this.visibility=s)}getPaintProperty(t){return Qt(t,au)?this._transitionablePaint.getTransition(t.slice(0,-au.length)):this._transitionablePaint.getValue(t)}setPaintProperty(t,s,d={}){if(s!=null&&this._validate(dl,`layers.${this.id}.paint.${t}`,t,s,d))return!1;if(Qt(t,au))return this._transitionablePaint.setTransition(t.slice(0,-au.length),s||void 0),!1;{const m=this._transitionablePaint._values[t],y=m.property.specification["property-type"]==="cross-faded-data-driven",b=m.value.isDataDriven(),T=m.value;this._transitionablePaint.setValue(t,s),this._handleSpecialPaintPropertyUpdate(t);const C=this._transitionablePaint._values[t].value;return C.isDataDriven()||b||y||this._handleOverridablePaintPropertyUpdate(t,T,C)}}_handleSpecialPaintPropertyUpdate(t){}getProgramIds(){return null}getProgramConfiguration(t){return null}_handleOverridablePaintPropertyUpdate(t,s,d){return!1}isHidden(t){return!!(this.minzoom&&t=this.maxzoom)||this.visibility==="none"}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,s){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,s)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,s)}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),Jt(t,(s,d)=>!(s===void 0||d==="layout"&&!Object.keys(s).length||d==="paint"&&!Object.keys(s).length))}_validate(t,s,d,m,y={}){return(!y||y.validate!==!1)&&ql(this,t.call(hl,{key:s,layerType:this.type,objectKey:d,value:m,styleSpec:qe,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const t in this.paint._values){const s=this.paint.get(t);if(s instanceof Pe&&Ln(s.property.specification)&&(s.value.kind==="source"||s.value.kind==="composite")&&s.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=Bs(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const Up=Tt([{name:"a_pos",components:2,type:"Int16"}],4),Vp=Tt([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class an{constructor(t=[]){this.segments=t}prepareSegment(t,s,d,m){let y=this.segments[this.segments.length-1];return t>an.MAX_VERTEX_ARRAY_LENGTH&>(`Max vertices per segment is ${an.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!y||y.vertexLength+t>an.MAX_VERTEX_ARRAY_LENGTH||y.sortKey!==m)&&(y={vertexOffset:s.length,primitiveOffset:d.length,vertexLength:0,primitiveLength:0},m!==void 0&&(y.sortKey=m),this.segments.push(y)),y}get(){return this.segments}destroy(){for(const t of this.segments)for(const s in t.vaos)t.vaos[s].destroy()}static simpleSegment(t,s,d,m){return new an([{vertexOffset:t,primitiveOffset:s,vertexLength:d,primitiveLength:m,vaos:{},sortKey:0}])}}an.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,hi(an,"SegmentVector");var Oi=8192;class us{constructor(t,s){t&&(s?this.setSouthWest(t).setNorthEast(s):t.length===4?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))}setNorthEast(t){return this._ne=t instanceof _r?new _r(t.lng,t.lat):_r.convert(t),this}setSouthWest(t){return this._sw=t instanceof _r?new _r(t.lng,t.lat):_r.convert(t),this}extend(t){const s=this._sw,d=this._ne;let m,y;if(t instanceof _r)m=t,y=t;else{if(!(t instanceof us))return Array.isArray(t)?t.length===4||t.every(Array.isArray)?this.extend(us.convert(t)):this.extend(_r.convert(t)):this;if(m=t._sw,y=t._ne,!m||!y)return this}return s||d?(s.lng=Math.min(m.lng,s.lng),s.lat=Math.min(m.lat,s.lat),d.lng=Math.max(y.lng,d.lng),d.lat=Math.max(y.lat,d.lat)):(this._sw=new _r(m.lng,m.lat),this._ne=new _r(y.lng,y.lat)),this}getCenter(){return new _r((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new _r(this.getWest(),this.getNorth())}getSouthEast(){return new _r(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(t){const{lng:s,lat:d}=_r.convert(t);let m=this._sw.lng<=s&&s<=this._ne.lng;return this._sw.lng>this._ne.lng&&(m=this._sw.lng>=s&&s>=this._ne.lng),this._sw.lat<=d&&d<=this._ne.lat&&m}static convert(t){return!t||t instanceof us?t:new us(t)}}const Wu=63710088e-1;class _r{constructor(t,s){if(isNaN(t)||isNaN(s))throw new Error(`Invalid LngLat object: (${t}, ${s})`);if(this.lng=+t,this.lat=+s,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new _r(ve(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const s=Math.PI/180,d=this.lat*s,m=t.lat*s,y=Math.sin(d)*Math.sin(m)+Math.cos(d)*Math.cos(m)*Math.cos((t.lng-this.lng)*s);return Wu*Math.acos(Math.min(y,1))}toBounds(t=0){const s=360*t/40075017,d=s/Math.cos(Math.PI/180*this.lat);return new us(new _r(this.lng-d,this.lat-s),new _r(this.lng+d,this.lat+s))}static convert(t){if(t instanceof _r)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new _r(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t=="object"&&t!==null)return new _r(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const gd=2*Math.PI*Wu;function Yu(l){return gd*Math.cos(l*Math.PI/180)}function na(l){return(180+l)/360}function Pa(l){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+l*Math.PI/360)))/360}function bo(l,t){return l/Yu(t)}function wo(l){return 360*l-180}function Mn(l){return 360/Math.PI*Math.atan(Math.exp((180-360*l)*Math.PI/180))-90}function _d(l,t){return l*Yu(Mn(t))}const oa=85.051129;function yd(l){return 1/Math.cos(l*Math.PI/180)}class xl{constructor(t,s,d=0){this.x=+t,this.y=+s,this.z=+d}static fromLngLat(t,s=0){const d=_r.convert(t);return new xl(na(d.lng),Pa(d.lat),bo(s,d.lat))}toLngLat(){return new _r(wo(this.x),Mn(this.y))}toAltitude(){return _d(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/gd*yd(Mn(this.y))}}function Ku(l,t,s,d,m,y,b,T,C){const I=(t+d)/2,F=(s+m)/2,N=new k(I,F);T(N),function(V,H,J,ne,he,we){const De=J-he,Se=ne-we;return Math.abs((ne-H)*De-(J-V)*Se)/Math.hypot(De,Se)}(N.x,N.y,y.x,y.y,b.x,b.y)>=C?(Ku(l,t,s,I,F,y,N,T,C),Ku(l,I,F,d,m,N,b,T,C)):l.push(b)}function xd(l,t,s){let d=l[0],m=d.x,y=d.y;t(d);const b=[d];for(let T=1;Tl.x+1||dl.y+1)&>("Geometry exceeds allowed extent, reduce your vector tile buffer size"),l}function Da(l,t,s){const d=l.loadGeometry(),m=l.extent,y=Oi/m;if(t&&s&&s.projection.isReprojectedInTileSpace){const b=1<{const H=wo((t.x+V.x/m)/b),J=Mn((t.y+V.y/m)/b),ne=F.project(H,J);V.x=(ne.x*T-C)*m,V.y=(ne.y*T-I)*m};for(let V=0;V=m||J.y<0||J.y>=m||(N(J),H.push(J));d[V]=H}}for(const b of d)for(const T of b)jp(T,y);return d}function js(l,t){return{type:l.type,id:l.id,properties:l.properties,geometry:t?Da(l):[]}}function su(l,t,s,d,m){l.emplaceBack(2*t+(d+1)/2,2*s+(m+1)/2)}function lu(l,t,s){l.emplaceBack(t.x,t.y,t.z,s[0]*16384,s[1]*16384,s[2]*16384)}class eh{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(s=>s.id),this.index=t.index,this.hasPattern=!1,this.projection=t.projection,this.layoutVertexArray=new Kt,this.indexArray=new rr,this.segments=new an,this.programConfigurations=new $s(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter(s=>s.isStateDependent()).map(s=>s.id)}populate(t,s,d,m){const y=this.layers[0],b=[];let T=null;y.type==="circle"&&(T=y.layout.get("circle-sort-key"));for(const{feature:I,id:F,index:N,sourceLayerIndex:V}of t){const H=this.layers[0]._featureFilter.needGeometry,J=js(I,H);if(!this.layers[0]._featureFilter.filter(new me(this.zoom),J,d))continue;const ne=T?T.evaluate(J,{},d):void 0,he={id:F,properties:I.properties,type:I.type,sourceLayerIndex:V,index:N,geometry:H?J.geometry:Da(I,d,m),patterns:{},sortKey:ne};b.push(he)}T&&b.sort((I,F)=>I.sortKey-F.sortKey);let C=null;m.projection.name==="globe"&&(this.globeExtVertexArray=new ud,C=m.projection);for(const I of b){const{geometry:F,index:N,sourceLayerIndex:V}=I,H=t[N].feature;this.addFeature(I,F,N,s.availableImages,d,C),s.featureIndex.insert(H,F,N,V,this.index)}}update(t,s,d,m){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,s,this.stateDependentLayers,d,m)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Up.members),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,Vp.members))),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}addFeature(t,s,d,m,y,b){for(const T of s)for(const C of T){const I=C.x,F=C.y;if(I<0||I>=Oi||F<0||F>=Oi)continue;if(b){const H=b.projectTilePoint(I,F,y),J=b.upVector(y,I,F),ne=this.globeExtVertexArray;lu(ne,H,J),lu(ne,H,J),lu(ne,H,J),lu(ne,H,J)}const N=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),V=N.vertexLength;su(this.layoutVertexArray,I,F,-1,-1),su(this.layoutVertexArray,I,F,1,-1),su(this.layoutVertexArray,I,F,1,1),su(this.layoutVertexArray,I,F,-1,1),this.indexArray.emplaceBack(V,V+1,V+2),this.indexArray.emplaceBack(V,V+2,V+3),N.vertexLength+=4,N.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,d,{},m,y)}}function bd(l,t){for(let s=0;s1){if(th(l,t))return!0;for(let d=0;d1?s:s.sub(t)._mult(m)._add(t))}function Td(l,t){let s,d,m,y=!1;for(let b=0;bt.y!=m.y>t.y&&t.x<(m.x-d.x)*(t.y-d.y)/(m.y-d.y)+d.x&&(y=!y)}return y}function Gs(l,t){let s=!1;for(let d=0,m=l.length-1;dt.y!=b.y>t.y&&t.x<(b.x-y.x)*(t.y-y.y)/(b.y-y.y)+y.x&&(s=!s)}return s}function Sd(l,t,s,d,m){for(const b of l)if(t<=b.x&&s<=b.y&&d>=b.x&&m>=b.y)return!0;const y=[new k(t,s),new k(t,m),new k(d,m),new k(d,s)];if(l.length>2){for(const b of y)if(Gs(l,b))return!0}for(let b=0;bm.x&&t.x>m.x||l.ym.y&&t.y>m.y)return!1;const y=ot(l,t,s[0]);return y!==ot(l,t,s[1])||y!==ot(l,t,s[2])||y!==ot(l,t,s[3])}function vl(l,t,s){const d=t.paint.get(l).value;return d.kind==="constant"?d.value:s.programConfigurations.get(t.id).getMaxValue(l)}function cu(l){return Math.sqrt(l[0]*l[0]+l[1]*l[1])}function Md(l,t,s,d,m){if(!t[0]&&!t[1])return l;const y=k.convert(t)._mult(m);s==="viewport"&&y._rotate(-d);const b=[];for(let T=0;T0&&(y=1/Math.sqrt(y)),l[0]=t[0]*y,l[1]=t[1]*y,l[2]=t[2]*y,l}function Eo(l,t){return l[0]*t[0]+l[1]*t[1]+l[2]*t[2]}function ch(l,t,s){var d=t[0],m=t[1],y=t[2],b=s[0],T=s[1],C=s[2];return l[0]=m*C-y*T,l[1]=y*b-d*C,l[2]=d*T-m*b,l}function cn(l,t,s){var d=t[0],m=t[1],y=t[2],b=s[3]*d+s[7]*m+s[11]*y+s[15];return l[0]=(s[0]*d+s[4]*m+s[8]*y+s[12])/(b=b||1),l[1]=(s[1]*d+s[5]*m+s[9]*y+s[13])/b,l[2]=(s[2]*d+s[6]*m+s[10]*y+s[14])/b,l}function Bd(l,t,s){var d=s[0],m=s[1],y=s[2],b=t[0],T=t[1],C=t[2],I=m*C-y*T,F=y*b-d*C,N=d*T-m*b,V=m*N-y*F,H=y*I-d*N,J=d*F-m*I,ne=2*s[3];return F*=ne,N*=ne,H*=2,J*=2,l[0]=b+(I*=ne)+(V*=2),l[1]=T+F+H,l[2]=C+N+J,l}var oc,$o=ah,Kp=Dd,Qp=nc;function Ld(l,t,s){return l[0]=t[0]*s,l[1]=t[1]*s,l[2]=t[2]*s,l[3]=t[3]*s,l}function Zs(l,t,s){var d=t[0],m=t[1],y=t[2],b=t[3];return l[0]=s[0]*d+s[4]*m+s[8]*y+s[12]*b,l[1]=s[1]*d+s[5]*m+s[9]*y+s[13]*b,l[2]=s[2]*d+s[6]*m+s[10]*y+s[14]*b,l[3]=s[3]*d+s[7]*m+s[11]*y+s[15]*b,l}function Rd(){var l=new ro(4);return ro!=Float32Array&&(l[0]=0,l[1]=0,l[2]=0),l[3]=1,l}function zd(l){return l[0]=0,l[1]=0,l[2]=0,l[3]=1,l}function Fd(l,t,s){s*=.5;var d=t[0],m=t[1],y=t[2],b=t[3],T=Math.sin(s),C=Math.cos(s);return l[0]=d*C+b*T,l[1]=m*C+y*T,l[2]=y*C-m*T,l[3]=b*C-d*T,l}function Od(l,t,s){s*=.5;var d=t[0],m=t[1],y=t[2],b=t[3],T=Math.sin(s),C=Math.cos(s);return l[0]=d*C-y*T,l[1]=m*C+b*T,l[2]=y*C+d*T,l[3]=b*C-m*T,l}oh(),oc=new ro(4),ro!=Float32Array&&(oc[0]=0,oc[1]=0,oc[2]=0,oc[3]=0),oh(),wl(1,0,0),wl(0,1,0),Rd(),Rd(),Cd();class uh{constructor(t,s){this.pos=t,this.dir=s}intersectsPlane(t,s,d){const m=Eo(s,this.dir);if(Math.abs(m)<1e-6)return!1;const y=((t[0]-this.pos[0])*s[0]+(t[1]-this.pos[1])*s[1]+(t[2]-this.pos[2])*s[2])/m;return d[0]=this.pos[0]+this.dir[0]*y,d[1]=this.pos[1]+this.dir[1]*y,d[2]=this.pos[2]+this.dir[2]*y,!0}closestPointOnSphere(t,s,d){if(function(H,J){var ne=H[0],he=H[1],we=H[2],De=J[0],Se=J[1],Ce=J[2];return Math.abs(ne-De)<=uu*Math.max(1,Math.abs(ne),Math.abs(De))&&Math.abs(he-Se)<=uu*Math.max(1,Math.abs(he),Math.abs(Se))&&Math.abs(we-Ce)<=uu*Math.max(1,Math.abs(we),Math.abs(Ce))}(this.pos,t)||s===0)return d[0]=d[1]=d[2]=0,!1;const[m,y,b]=this.dir,T=this.pos[0]-t[0],C=this.pos[1]-t[1],I=this.pos[2]-t[2],F=m*m+y*y+b*b,N=2*(T*m+C*y+I*b),V=N*N-4*F*(T*T+C*C+I*I-s*s);if(V<0){const H=Math.max(-N/2,0),J=T+m*H,ne=C+y*H,he=I+b*H,we=Math.hypot(J,ne,he);return d[0]=J*s/we,d[1]=ne*s/we,d[2]=he*s/we,!1}{const H=(-N-Math.sqrt(V))/(2*F);if(H<0){const J=Math.hypot(T,C,I);return d[0]=T*s/J,d[1]=C*s/J,d[2]=I*s/J,!1}return d[0]=T+m*H,d[1]=C+y*H,d[2]=I+b*H,!0}}}class hh{constructor(t,s,d,m,y){this.TL=t,this.TR=s,this.BR=d,this.BL=m,this.horizon=y}static fromInvProjectionMatrix(t,s,d){const m=[-1,1,1],y=[1,1,1],b=[1,-1,1],T=[-1,-1,1],C=cn(m,m,t),I=cn(y,y,t),F=cn(b,b,t),N=cn(T,T,t);return new hh(C,I,F,N,s/d)}}class dh{constructor(t,s){this.points=t,this.planes=s}static fromInvProjectionMatrix(t,s,d,m){const y=Math.pow(2,d),b=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(C=>{const I=Zs([],C,t),F=1/I[3]/s*y;return function(N,V,H){return N[0]=V[0]*H[0],N[1]=V[1]*H[1],N[2]=V[2]*H[2],N[3]=V[3]*H[3],N}(I,I,[F,F,m?1/I[3]:F,F])}),T=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(C=>{const I=Gn([],ch([],$o([],b[C[0]],b[C[1]]),$o([],b[C[2]],b[C[1]]))),F=-Eo(I,b[C[1]]);return I.concat(F)});return new dh(b,T)}}class Yn{static fromPoints(t){const s=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE],d=[Number.MIN_VALUE,Number.MIN_VALUE,Number.MIN_VALUE];for(const m of t)s[0]=Math.min(s[0],m[0]),s[1]=Math.min(s[1],m[1]),s[2]=Math.min(s[2],m[2]),d[0]=Math.max(d[0],m[0]),d[1]=Math.max(d[1],m[1]),d[2]=Math.max(d[2],m[2]);return new Yn(s,d)}constructor(t,s){this.min=t,this.max=s,this.center=Vo([],hs([],this.min,this.max),.5)}quadrant(t){const s=[t%2==0,t<2],d=Pd(this.min),m=Pd(this.max);for(let y=0;y=0;if(b===0)return 0;b!==s.length&&(d=!1)}if(d)return 2;for(let m=0;m<3;m++){let y=Number.MAX_VALUE,b=-Number.MAX_VALUE;for(let T=0;Tthis.max[m]-this.min[m])return 0}return 1}}function Nd(l,t,s,d,m,y,b,T,C){if(y&&l.queryGeometry.isAboveHorizon)return!1;y&&(C*=l.pixelToTileUnitsFactor);const I=l.tileID.canonical,F=s.projection.upVectorScale(I,s.center.lat,s.worldSize).metersToTile;for(const N of t)for(const V of N){const H=V.add(T),J=m&&s.elevation?s.elevation.exaggeration()*m.getElevationAt(H.x,H.y,!0):0,ne=s.projection.projectTilePoint(H.x,H.y,I);if(J>0){const Se=s.projection.upVector(I,H.x,H.y);ne.x+=Se[0]*F*J,ne.y+=Se[1]*F*J,ne.z+=Se[2]*F*J}const he=y?H:Jp(ne.x,ne.y,ne.z,d),we=y?l.tilespaceRays.map(Se=>tm(Se,J)):l.queryGeometry.screenGeometry,De=Zs([],[ne.x,ne.y,ne.z,1],d);if(!b&&y?C*=De[3]/s.cameraToCenterDistance:b&&!y&&(C*=s.cameraToCenterDistance/De[3]),y){const Se=Mn((V.y/Oi+I.y)/(1<l.width||m.height>l.height||s.x>l.width-m.width||s.y>l.height-m.height)throw new RangeError("out of range source coordinates for image copy");if(m.width>t.width||m.height>t.height||d.x>t.width-m.width||d.y>t.height-m.height)throw new RangeError("out of range destination coordinates for image copy");const b=l.data,T=t.data;for(let C=0;C{t[l.evaluationKey]=C;const I=l.expression.evaluate(t);m.data[b+T+0]=Math.floor(255*I.r/I.a),m.data[b+T+1]=Math.floor(255*I.g/I.a),m.data[b+T+2]=Math.floor(255*I.b/I.a),m.data[b+T+3]=Math.floor(255*I.a)};if(l.clips)for(let b=0,T=0;b80*s){d=y=l[0],m=b=l[1];for(var J=s;Jy&&(y=T),C>b&&(b=C);I=(I=Math.max(y-d,b-m))!==0?32767/I:0}return ac(V,H,s,d,m,I,0),H}function Gd(l,t,s,d,m){var y,b;if(m===_h(l,t,s,d)>0)for(y=t;y=t;y-=d)b=Xd(y,l[y],l[y+1],b);return b&&mu(b,b.next)&&(lc(b),b=b.next),b}function Xs(l,t){if(!l)return l;t||(t=l);var s,d=l;do if(s=!1,d.steiner||!mu(d,d.next)&&rn(d.prev,d,d.next)!==0)d=d.next;else{if(lc(d),(d=t=d.prev)===d.next)break;s=!0}while(s||d!==t);return t}function ac(l,t,s,d,m,y,b){if(l){!b&&y&&function(F,N,V,H){var J=F;do J.z===0&&(J.z=mh(J.x,J.y,N,V,H)),J.prevZ=J.prev,J.nextZ=J.next,J=J.next;while(J!==F);J.prevZ.nextZ=null,J.prevZ=null,function(ne){var he,we,De,Se,Ce,Ue,Re,nt,it=1;do{for(we=ne,ne=null,Ce=null,Ue=0;we;){for(Ue++,De=we,Re=0,he=0;he0||nt>0&&De;)Re!==0&&(nt===0||!De||we.z<=De.z)?(Se=we,we=we.nextZ,Re--):(Se=De,De=De.nextZ,nt--),Ce?Ce.nextZ=Se:ne=Se,Se.prevZ=Ce,Ce=Se;we=De}Ce.nextZ=null,it*=2}while(Ue>1)}(J)}(l,d,m,y);for(var T,C,I=l;l.prev!==l.next;)if(T=l.prev,C=l.next,y?lm(l,d,m,y):sm(l))t.push(T.i/s|0),t.push(l.i/s|0),t.push(C.i/s|0),lc(l),l=C.next,I=C.next;else if((l=C)===I){b?b===1?ac(l=cm(Xs(l),t,s),t,s,d,m,y,2):b===2&&um(l,t,s,d,m,y):ac(Xs(l),t,s,d,m,y,1);break}}}function sm(l){var t=l.prev,s=l,d=l.next;if(rn(t,s,d)>=0)return!1;for(var m=t.x,y=s.x,b=d.x,T=t.y,C=s.y,I=d.y,F=my?m>b?m:b:y>b?y:b,H=T>C?T>I?T:I:C>I?C:I,J=d.next;J!==t;){if(J.x>=F&&J.x<=V&&J.y>=N&&J.y<=H&&El(m,T,y,C,b,I,J.x,J.y)&&rn(J.prev,J,J.next)>=0)return!1;J=J.next}return!0}function lm(l,t,s,d){var m=l.prev,y=l,b=l.next;if(rn(m,y,b)>=0)return!1;for(var T=m.x,C=y.x,I=b.x,F=m.y,N=y.y,V=b.y,H=TC?T>I?T:I:C>I?C:I,he=F>N?F>V?F:V:N>V?N:V,we=mh(H,J,t,s,d),De=mh(ne,he,t,s,d),Se=l.prevZ,Ce=l.nextZ;Se&&Se.z>=we&&Ce&&Ce.z<=De;){if(Se.x>=H&&Se.x<=ne&&Se.y>=J&&Se.y<=he&&Se!==m&&Se!==b&&El(T,F,C,N,I,V,Se.x,Se.y)&&rn(Se.prev,Se,Se.next)>=0||(Se=Se.prevZ,Ce.x>=H&&Ce.x<=ne&&Ce.y>=J&&Ce.y<=he&&Ce!==m&&Ce!==b&&El(T,F,C,N,I,V,Ce.x,Ce.y)&&rn(Ce.prev,Ce,Ce.next)>=0))return!1;Ce=Ce.nextZ}for(;Se&&Se.z>=we;){if(Se.x>=H&&Se.x<=ne&&Se.y>=J&&Se.y<=he&&Se!==m&&Se!==b&&El(T,F,C,N,I,V,Se.x,Se.y)&&rn(Se.prev,Se,Se.next)>=0)return!1;Se=Se.prevZ}for(;Ce&&Ce.z<=De;){if(Ce.x>=H&&Ce.x<=ne&&Ce.y>=J&&Ce.y<=he&&Ce!==m&&Ce!==b&&El(T,F,C,N,I,V,Ce.x,Ce.y)&&rn(Ce.prev,Ce,Ce.next)>=0)return!1;Ce=Ce.nextZ}return!0}function cm(l,t,s){var d=l;do{var m=d.prev,y=d.next.next;!mu(m,y)&&qd(m,d,d.next,y)&&sc(m,y)&&sc(y,m)&&(t.push(m.i/s|0),t.push(d.i/s|0),t.push(y.i/s|0),lc(d),lc(d.next),d=l=y),d=d.next}while(d!==l);return Xs(d)}function um(l,t,s,d,m,y){var b=l;do{for(var T=b.next.next;T!==b.prev;){if(b.i!==T.i&&mm(b,T)){var C=Zd(b,T);return b=Xs(b,b.next),C=Xs(C,C.next),ac(b,t,s,d,m,y,0),void ac(C,t,s,d,m,y,0)}T=T.next}b=b.next}while(b!==l)}function hm(l,t){return l.x-t.x}function dm(l,t){var s=function(m,y){var b,T=y,C=m.x,I=m.y,F=-1/0;do{if(I<=T.y&&I>=T.next.y&&T.next.y!==T.y){var N=T.x+(I-T.y)*(T.next.x-T.x)/(T.next.y-T.y);if(N<=C&&N>F&&(F=N,b=T.x=T.x&&T.x>=J&&C!==T.x&&El(Ib.x||T.x===b.x&&fm(b,T)))&&(b=T,he=V)),T=T.next;while(T!==H);return b}(l,t);if(!s)return t;var d=Zd(s,l);return Xs(d,d.next),Xs(s,s.next)}function fm(l,t){return rn(l.prev,l,t.prev)<0&&rn(t.next,l,l.next)<0}function mh(l,t,s,d,m){return(l=1431655765&((l=858993459&((l=252645135&((l=16711935&((l=(l-s)*m|0)|l<<8))|l<<4))|l<<2))|l<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-d)*m|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function pm(l){var t=l,s=l;do(t.x=(l-b)*(y-T)&&(l-b)*(d-T)>=(s-b)*(t-T)&&(s-b)*(y-T)>=(m-b)*(d-T)}function mm(l,t){return l.next.i!==t.i&&l.prev.i!==t.i&&!function(s,d){var m=s;do{if(m.i!==s.i&&m.next.i!==s.i&&m.i!==d.i&&m.next.i!==d.i&&qd(m,m.next,s,d))return!0;m=m.next}while(m!==s);return!1}(l,t)&&(sc(l,t)&&sc(t,l)&&function(s,d){var m=s,y=!1,b=(s.x+d.x)/2,T=(s.y+d.y)/2;do m.y>T!=m.next.y>T&&m.next.y!==m.y&&b<(m.next.x-m.x)*(T-m.y)/(m.next.y-m.y)+m.x&&(y=!y),m=m.next;while(m!==s);return y}(l,t)&&(rn(l.prev,l,t.prev)||rn(l,t.prev,t))||mu(l,t)&&rn(l.prev,l,l.next)>0&&rn(t.prev,t,t.next)>0)}function rn(l,t,s){return(t.y-l.y)*(s.x-t.x)-(t.x-l.x)*(s.y-t.y)}function mu(l,t){return l.x===t.x&&l.y===t.y}function qd(l,t,s,d){var m=_u(rn(l,t,s)),y=_u(rn(l,t,d)),b=_u(rn(s,d,l)),T=_u(rn(s,d,t));return m!==y&&b!==T||!(m!==0||!gu(l,s,t))||!(y!==0||!gu(l,d,t))||!(b!==0||!gu(s,l,d))||!(T!==0||!gu(s,t,d))}function gu(l,t,s){return t.x<=Math.max(l.x,s.x)&&t.x>=Math.min(l.x,s.x)&&t.y<=Math.max(l.y,s.y)&&t.y>=Math.min(l.y,s.y)}function _u(l){return l>0?1:l<0?-1:0}function sc(l,t){return rn(l.prev,l,l.next)<0?rn(l,t,l.next)>=0&&rn(l,l.prev,t)>=0:rn(l,t,l.prev)<0||rn(l,l.next,t)<0}function Zd(l,t){var s=new gh(l.i,l.x,l.y),d=new gh(t.i,t.x,t.y),m=l.next,y=t.prev;return l.next=t,t.prev=l,s.next=m,m.prev=s,d.next=s,s.prev=d,y.next=d,d.prev=y,d}function Xd(l,t,s,d){var m=new gh(l,t,s);return d?(m.next=d.next,m.prev=d,d.next.prev=m,d.next=m):(m.prev=m,m.next=m),m}function lc(l){l.next.prev=l.prev,l.prev.next=l.next,l.prevZ&&(l.prevZ.nextZ=l.nextZ),l.nextZ&&(l.nextZ.prevZ=l.prevZ)}function gh(l,t,s){this.i=l,this.x=t,this.y=s,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function _h(l,t,s,d){for(var m=0,y=t,b=s-d;ys;){if(d-s>600){var y=d-s+1,b=t-s+1,T=Math.log(y),C=.5*Math.exp(2*T/3),I=.5*Math.sqrt(T*C*(y-C)/y)*(b-y/2<0?-1:1);Hd(l,t,Math.max(s,Math.floor(t-b*C/y+I)),Math.min(d,Math.floor(t+(y-b)*C/y+I)),m)}var F=l[t],N=s,V=d;for(cc(l,s,t),m(l[d],F)>0&&cc(l,s,d);N0;)V--}m(l[s],F)===0?cc(l,s,V):cc(l,++V,d),V<=t&&(s=V+1),t<=V&&(d=V-1)}}function cc(l,t,s){var d=l[t];l[t]=l[s],l[s]=d}function _m(l,t){return lt?1:0}function yh(l,t){const s=l.length;if(s<=1)return[l];const d=[];let m,y;for(let b=0;b1)for(let b=0;b0&&s.holes.push(d+=l[m-1].length)}return s},fu.default=am;class yu{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(s=>s.id),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Kt,this.indexArray=new rr,this.indexArray2=new Rn,this.programConfigurations=new $s(t.layers,t.zoom),this.segments=new an,this.segments2=new an,this.stateDependentLayerIds=this.layers.filter(s=>s.isStateDependent()).map(s=>s.id),this.projection=t.projection}populate(t,s,d,m){this.hasPattern=xh("fill",this.layers,s);const y=this.layers[0].layout.get("fill-sort-key"),b=[];for(const{feature:T,id:C,index:I,sourceLayerIndex:F}of t){const N=this.layers[0]._featureFilter.needGeometry,V=js(T,N);if(!this.layers[0]._featureFilter.filter(new me(this.zoom),V,d))continue;const H=y?y.evaluate(V,{},d,s.availableImages):void 0,J={id:C,properties:T.properties,type:T.type,sourceLayerIndex:F,index:I,geometry:N?V.geometry:Da(T,d,m),patterns:{},sortKey:H};b.push(J)}y&&b.sort((T,C)=>T.sortKey-C.sortKey);for(const T of b){const{geometry:C,index:I,sourceLayerIndex:F}=T;if(this.hasPattern){const N=vh("fill",this.layers,T,this.zoom,s);this.patternFeatures.push(N)}else this.addFeature(T,C,I,d,{},s.availableImages);s.featureIndex.insert(t[I].feature,C,I,F,this.index)}}update(t,s,d,m){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,s,this.stateDependentLayers,d,m)}addFeatures(t,s,d,m,y){for(const b of this.patternFeatures)this.addFeature(b,b.geometry,b.index,s,d,m)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,om),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(t,s,d,m,y,b=[]){for(const T of yh(s,500)){let C=0;for(const J of T)C+=J.length;const I=this.segments.prepareSegment(C,this.layoutVertexArray,this.indexArray),F=I.vertexLength,N=[],V=[];for(const J of T){if(J.length===0)continue;J!==T[0]&&V.push(N.length/2);const ne=this.segments2.prepareSegment(J.length,this.layoutVertexArray,this.indexArray2),he=ne.vertexLength;this.layoutVertexArray.emplaceBack(J[0].x,J[0].y),this.indexArray2.emplaceBack(he+J.length-1,he),N.push(J[0].x),N.push(J[0].y);for(let we=1;we>3}if(m--,d===1||d===2)y+=l.readSVarint(),b+=l.readSVarint(),d===1&&(t&&T.push(t),t=[]),t.push(new k(y,b));else{if(d!==7)throw new Error("unknown command "+d);t&&t.push(t[0].clone())}}return t&&T.push(t),T},Tl.prototype.bbox=function(){var l=this._pbf;l.pos=this._geometry;for(var t=l.readVarint()+l.pos,s=1,d=0,m=0,y=0,b=1/0,T=-1/0,C=1/0,I=-1/0;l.pos>3}if(d--,s===1||s===2)(m+=l.readSVarint())T&&(T=m),(y+=l.readSVarint())I&&(I=y);else if(s!==7)throw new Error("unknown command "+s)}return[b,C,T,I]},Tl.prototype.toGeoJSON=function(l,t,s){var d,m,y=this.extent*Math.pow(2,s),b=this.extent*l,T=this.extent*t,C=this.loadGeometry(),I=Tl.types[this.type];function F(H){for(var J=0;J>3;m=b===1?d.readString():b===2?d.readFloat():b===3?d.readDouble():b===4?d.readVarint64():b===5?d.readVarint():b===6?d.readSVarint():b===7?d.readBoolean():null}return m}(s))}function Cm(l,t,s){if(l===3){var d=new Yd(s,s.readVarint()+s.pos);d.length&&(t[d.name]=d)}}Kd.prototype.feature=function(l){if(l<0||l>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[l];var t=this._pbf.readVarint()+this._pbf.pos;return new Wd(this._pbf,t,this.extent,this._keys,this._values)};var Hs={VectorTile:function(l,t){this.layers=l.readFields(Cm,{},t)},VectorTileFeature:Wd,VectorTileLayer:Yd};function xu(l,t,s,d){const m=[],y=d===0?(b,T,C,I,F,N)=>{b.push(new k(N,C+(N-T)/(I-T)*(F-C)))}:(b,T,C,I,F,N)=>{b.push(new k(T+(N-C)/(F-C)*(I-T),N))};for(const b of l){const T=[];for(const C of b){if(C.length<=2)continue;const I=[];for(let V=0;Vt&&y(I,H,J,ne,he,t):we>s?De=t&&y(I,H,J,ne,he,t),De>s&&we<=s&&y(I,H,J,ne,he,s)}let F=C[C.length-1];const N=d===0?F.x:F.y;N>=t&&N<=s&&I.push(F),I.length&&(F=I[I.length-1],I[0].x===F.x&&I[0].y===F.y||I.push(I[0]),T.push(I))}T.length&&m.push(T)}return m}const Im=Hs.VectorTileFeature.types,km=Math.pow(2,13);function uc(l,t,s,d,m,y,b,T){l.emplaceBack((t<<1)+b,(s<<1)+y,(Math.floor(d*km)<<1)+m,Math.round(T))}function hc(l,t,s){l.emplaceBack(t.x,t.y,t.z,s[0]*16384,s[1]*16384,s[2]*16384)}class Qd{constructor(){this.acc=new k(0,0),this.polyCount=[]}startRing(t){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new k(t.x,t.y),this.max=new k(t.x,t.y))}append(t,s){this.currentPolyCount.edges++,this.acc._add(t);const d=this.min,m=this.max;t.xm.x&&(m.x=t.x),t.ym.y&&(m.y=t.y),((t.x===0||t.x===Oi)&&t.x===s.x)!=((t.y===0||t.y===Oi)&&t.y===s.y)&&this.processBorderOverlap(t,s),s.x<0!=t.x<0&&this.addBorderIntersection(0,Qi(s.y,t.y,(0-s.x)/(t.x-s.x))),s.x>Oi!=t.x>Oi&&this.addBorderIntersection(1,Qi(s.y,t.y,(Oi-s.x)/(t.x-s.x))),s.y<0!=t.y<0&&this.addBorderIntersection(2,Qi(s.x,t.x,(0-s.y)/(t.y-s.y))),s.y>Oi!=t.y>Oi&&this.addBorderIntersection(3,Qi(s.x,t.x,(Oi-s.y)/(t.y-s.y)))}addBorderIntersection(t,s){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const d=this.borders[t];sd[1]&&(d[1]=s)}processBorderOverlap(t,s){if(t.x===s.x){if(t.y===s.y)return;const d=t.x===0?0:1;this.addBorderIntersection(d,s.y),this.addBorderIntersection(d,t.y)}else{const d=t.y===0?2:3;this.addBorderIntersection(d,s.x),this.addBorderIntersection(d,t.x)}}centroid(){const t=this.polyCount.reduce((s,d)=>s+d.edges,0);return t!==0?this.acc.div(t)._round():new k(0,0)}span(){return new k(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((t,s)=>t+ +(s[0]!==Number.MAX_VALUE),0)}}class dc{constructor(t){this.zoom=t.zoom,this.canonical=t.canonical,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(s=>s.id),this.index=t.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=t.projection,this.layoutVertexArray=new Di,this.centroidVertexArray=new ld,this.indexArray=new rr,this.programConfigurations=new $s(t.layers,t.zoom),this.segments=new an,this.stateDependentLayerIds=this.layers.filter(s=>s.isStateDependent()).map(s=>s.id),this.enableTerrain=t.enableTerrain}populate(t,s,d,m){this.features=[],this.hasPattern=xh("fill-extrusion",this.layers,s),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(y){const b=Math.exp(Math.PI*(1-y.y/(1<=0;we--){const De=H[we];(De.length===0||(J=De[0]).every(Se=>Se.x<=0)||J.every(Se=>Se.x>=Oi)||J.every(Se=>Se.y<=0)||J.every(Se=>Se.y>=Oi))&&H.splice(we,1)}var J;let ne;if(F)ne=af(H,C,m);else{ne=[];for(const we of H)ne.push({polygon:we,bounds:C})}const he=V?this.edgeRadius:0;for(const{polygon:we,bounds:De}of ne){let Se=0,Ce=0;for(const Re of we)V&&!Re[0].equals(Re[Re.length-1])&&Re.push(Re[0]),Ce+=V?Re.length-1:Re.length;const Ue=this.segments.prepareSegment((V?5:4)*Ce,this.layoutVertexArray,this.indexArray);if(V){const Re=[],nt=[];Se=Ue.vertexLength;for(const yt of we){let Zt,lt;yt.length&&yt!==we[0]&&nt.push(Re.length/2),Zt=yt[1].sub(yt[0])._perp()._unit();for(let wt=1;wt4&&rf(Re[Re.length-2],Re[0],Re[1]),lt=he?Pm(Re[Re.length-2],Re[0],Re[1],he):0;it=Re[1].sub(Re[0])._perp()._unit();for(let wt=1,Dt=0;wt0?1:0,ki=Et.dist(Ot);if(Dt+ki>32768&&(Dt=0),he){yt=Bt.sub(Ot)._perp()._unit();let ui=ef(Et,Ot,Bt,Jd(it,yt),he);isNaN(ui)&&(ui=0);const Cr=Ot.sub(Et)._unit();Et=Et.add(Cr.mult(lt))._round(),Ot=Ot.add(Cr.mult(-ui))._round(),lt=ui,it=yt}const Yt=Ue.vertexLength,or=Re.length>4&&rf(Et,Ot,Bt);let Zi=nf(Dt,Zt,!0);if(uc(this.layoutVertexArray,Et.x,Et.y,Yi,Ji,0,0,Zi),uc(this.layoutVertexArray,Et.x,Et.y,Yi,Ji,0,1,Zi),Dt+=ki,Zi=nf(Dt,or,!1),Zt=or,uc(this.layoutVertexArray,Ot.x,Ot.y,Yi,Ji,0,0,Zi),uc(this.layoutVertexArray,Ot.x,Ot.y,Yi,Ji,0,1,Zi),Ue.vertexLength+=4,this.indexArray.emplaceBack(Yt+0,Yt+1,Yt+2),this.indexArray.emplaceBack(Yt+1,Yt+3,Yt+2),Ue.primitiveLength+=2,he){const ui=Se+(wt===1?Re.length-2:wt-2),Cr=wt===1?Se:ui+1;if(this.indexArray.emplaceBack(Yt+1,ui,Yt+3),this.indexArray.emplaceBack(ui,Cr,Yt+3),Ue.primitiveLength+=2,nt===void 0&&(nt=Yt),!tf(Bt,Re[wt],De)){const Tr=wt===Re.length-1?nt:Ue.vertexLength;this.indexArray.emplaceBack(Yt+2,Yt+3,Tr),this.indexArray.emplaceBack(Yt+3,Tr+1,Tr),this.indexArray.emplaceBack(Yt+3,Cr,Tr+1),Ue.primitiveLength+=3}}if(F){const ui=this.layoutVertexExtArray,Cr=I.projectTilePoint(Et.x,Et.y,m),Tr=I.projectTilePoint(Ot.x,Ot.y,m),Nr=I.upVector(m,Et.x,Et.y),ir=I.upVector(m,Ot.x,Ot.y);hc(ui,Cr,Nr),hc(ui,Cr,Nr),hc(ui,Tr,ir),hc(ui,Tr,ir)}}V&&(Se+=Re.length-1)}}if(N&&N.polyCount.length>0){if(N.borders){N.vertexArrayOffset=this.centroidVertexArray.length;const we=N.borders,De=this.featuresOnBorder.push(N)-1;for(let Se=0;Se<4;Se++)we[Se][0]!==Number.MAX_VALUE&&this.borders[Se].push(De)}this.encodeCentroid(N.borders?void 0:N.centroid(),N)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,d,y,b,m)}sortBorders(){for(let t=0;t<4;t++)this.borders[t].sort((s,d)=>this.featuresOnBorder[s].borders[t][0]-this.featuresOnBorder[d].borders[t][0])}encodeCentroid(t,s,d=!0){let m,y;if(t)if(t.y!==0){const T=s.span()._mult(this.tileToMeter);m=(Math.max(t.x,1)<<3)+Math.min(7,Math.round(T.x/10)),y=(Math.max(t.y,1)<<3)+Math.min(7,Math.round(T.y/10))}else m=Math.ceil(7*(t.x+450)),y=0;else m=0,y=+d;let b=d?this.centroidVertexArray.length:s.vertexArrayOffset;for(const T of s.polyCount){d&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*T.edges+T.top);for(let C=0;Cs[1].x&&t.x>s[1].x||l.ys[1].y&&t.y>s[1].y}function rf(l,t,s){if(l.x<0||l.x>=Oi||t.x<0||t.x>=Oi||s.x<0||s.x>=Oi)return!1;const d=s.sub(t),m=d.perp(),y=l.sub(t);return(d.x*y.x+d.y*y.y)/Math.sqrt((d.x*d.x+d.y*d.y)*(y.x*y.x+y.y*y.y))>-.866&&m.x*y.x+m.y*y.y<0}function nf(l,t,s){const d=t?2|l:-3&l;return s?1|d:-2&d}function of(){const l=Math.PI/32,t=Math.tan(l),s=Wu;return s*Math.sqrt(1+2*t*t)-s}function af(l,t,s){const d=1<{for(const it of Re)J.push({polygon:it,bounds:nt})},he=Math.ceil(Math.log2(F)),we=Math.ceil(Math.log2(N)),De=he-we,Se=[];for(let Re=0;Re0?0:1);for(let Re=0;Rent+1?Ue.push({polygons:Et,bounds:Bt,depth:nt+1}):ne(Et,Bt)}if(Ot.length){const Bt=[new k(it===0?Dt:yt.x,it===1?Dt:yt.y),Zt];Se.length>nt+1?Ue.push({polygons:Ot,bounds:Bt,depth:nt+1}):ne(Ot,Bt)}}return J}(l,t,Math.ceil((y-m)/11.25),Math.ceil((b-T)/11.25),1,(C,I,F)=>{if(C===0)return .5*(I+F);{const N=Mn((s.y+I/Oi)/d);return(Pa(.5*(Mn((s.y+F/Oi)/d)+N))*d-s.y)*Oi}})}hi(dc,"FillExtrusionBucket",{omit:["layers","features"]}),hi(Qd,"PartMetadata");const Dm=new bt({"fill-extrusion-edge-radius":new ze(qe["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var Bm={paint:new bt({"fill-extrusion-opacity":new ze(qe["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Ge(qe["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new ze(qe["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new ze(qe["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new et(qe["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Ge(qe["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Ge(qe["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new ze(qe["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new ze(qe["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new ze(qe["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"])}),layout:Dm};function sf(l,t,s){var d=2*Math.PI*6378137/256/Math.pow(2,s);return[l*d-2*Math.PI*6378137/2,t*d-2*Math.PI*6378137/2]}class vu{constructor(t,s,d){this.z=t,this.x=s,this.y=d,this.key=fc(0,t,t,s,d)}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,s){const d=function(y,b,T){var C=sf(256*y,256*(b=Math.pow(2,T)-b-1),T),I=sf(256*(y+1),256*(b+1),T);return C[0]+","+C[1]+","+I[0]+","+I[1]}(this.x,this.y,this.z),m=function(y,b,T){let C,I="";for(let F=y;F>0;F--)C=1<this.canonical.z?new qn(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new qn(t,this.wrap,t,this.canonical.x>>s,this.canonical.y>>s)}calculateScaledKey(t,s=!0){if(this.overscaledZ===t&&s)return this.key;if(t>this.canonical.z)return fc(this.wrap*+s,t,this.canonical.z,this.canonical.x,this.canonical.y);{const d=this.canonical.z-t;return fc(this.wrap*+s,t,t,this.canonical.x>>d,this.canonical.y>>d)}}isChildOf(t){if(t.wrap!==this.wrap)return!1;const s=this.canonical.z-t.canonical.z;return t.overscaledZ===0||t.overscaledZ>s&&t.canonical.y===this.canonical.y>>s}children(t){if(this.overscaledZ>=t)return[new qn(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const s=this.canonical.z+1,d=2*this.canonical.x,m=2*this.canonical.y;return[new qn(s,this.wrap,s,d,m),new qn(s,this.wrap,s,d+1,m),new qn(s,this.wrap,s,d,m+1),new qn(s,this.wrap,s,d+1,m+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.ys.id),this.index=t.index,this.projection=t.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(s=>{this.gradients[s.id]={}}),this.layoutVertexArray=new $i,this.layoutVertexArray2=new nr,this.indexArray=new rr,this.programConfigurations=new $s(t.layers,t.zoom),this.segments=new an,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(s=>s.isStateDependent()).map(s=>s.id)}populate(t,s,d,m){this.hasPattern=xh("line",this.layers,s);const y=this.layers[0].layout.get("line-sort-key"),b=[];for(const{feature:F,id:N,index:V,sourceLayerIndex:H}of t){const J=this.layers[0]._featureFilter.needGeometry,ne=js(F,J);if(!this.layers[0]._featureFilter.filter(new me(this.zoom),ne,d))continue;const he=y?y.evaluate(ne,{},d):void 0,we={id:N,properties:F.properties,type:F.type,sourceLayerIndex:H,index:V,geometry:J?ne.geometry:Da(F,d,m),patterns:{},sortKey:he};b.push(we)}y&&b.sort((F,N)=>F.sortKey-N.sortKey);const{lineAtlas:T,featureIndex:C}=s,I=this.addConstantDashes(T);for(const F of b){const{geometry:N,index:V,sourceLayerIndex:H}=F;if(I&&this.addFeatureDashes(F,T),this.hasPattern){const J=vh("line",this.layers,F,this.zoom,s);this.patternFeatures.push(J)}else this.addFeature(F,N,V,d,T.positions,s.availableImages);C.insert(t[V].feature,N,V,H,this.index)}}addConstantDashes(t){let s=!1;for(const d of this.layers){const m=d.paint.get("line-dasharray").value,y=d.layout.get("line-cap").value;if(m.kind!=="constant"||y.kind!=="constant")s=!0;else{const b=y.value,T=m.value;if(!T)continue;t.addDash(T.from,b),t.addDash(T.to,b),T.other&&t.addDash(T.other,b)}}return s}addFeatureDashes(t,s){const d=this.zoom;for(const m of this.layers){const y=m.paint.get("line-dasharray").value,b=m.layout.get("line-cap").value;if(y.kind==="constant"&&b.kind==="constant")continue;let T,C,I,F,N,V;if(y.kind==="constant"){const he=y.value;if(!he)continue;T=he.other||he.to,C=he.to,I=he.from}else T=y.evaluate({zoom:d-1},t),C=y.evaluate({zoom:d},t),I=y.evaluate({zoom:d+1},t);b.kind==="constant"?F=N=V=b.value:(F=b.evaluate({zoom:d-1},t),N=b.evaluate({zoom:d},t),V=b.evaluate({zoom:d+1},t)),s.addDash(T,F),s.addDash(C,N),s.addDash(I,V);const H=s.getKey(T,F),J=s.getKey(C,N),ne=s.getKey(I,V);t.patterns[m.id]={min:H,mid:J,max:ne}}}update(t,s,d,m){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,s,this.stateDependentLayers,d,m)}addFeatures(t,s,d,m,y){for(const b of this.patternFeatures)this.addFeature(b,b.geometry,b.index,s,d,m)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Fm)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Rm),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(t){if(t.properties&&t.properties.hasOwnProperty("mapbox_clip_start")&&t.properties.hasOwnProperty("mapbox_clip_end"))return{start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,s,d,m,y,b){const T=this.layers[0].layout,C=T.get("line-join").evaluate(t,{}),I=T.get("line-cap").evaluate(t,{}),F=T.get("line-miter-limit"),N=T.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const V of s)this.addLine(V,t,C,I,F,N);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,d,y,b,m)}addLine(t,s,d,m,y,b){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let we=0;we=2&&t[C-1].equals(t[C-2]);)C--;let I=0;for(;I0;if(nt&&we>I){const lt=V.dist(H);if(lt>2*F){const wt=V.sub(V.sub(H)._mult(F/lt)._round());this.updateDistance(H,wt),this.addCurrentVertex(wt,ne,0,0,N),H=wt}}const yt=H&&J;let Zt=yt?d:T?"butt":m;if(yt&&Zt==="round"&&(Uey&&(Zt="bevel"),Zt==="bevel"&&(Ue>2&&(Zt="flipbevel"),Ue100)De=he.mult(-1);else{const lt=Ue*ne.add(he).mag()/ne.sub(he).mag();De._perp()._mult(lt*(it?-1:1))}this.addCurrentVertex(V,De,0,0,N),this.addCurrentVertex(V,De.mult(-1),0,0,N)}else if(Zt==="bevel"||Zt==="fakeround"){const lt=-Math.sqrt(Ue*Ue-1),wt=it?lt:0,Dt=it?0:lt;if(H&&this.addCurrentVertex(V,ne,wt,Dt,N),Zt==="fakeround"){const Et=Math.round(180*Re/Math.PI/20);for(let Ot=1;Ot2*F){const wt=V.add(J.sub(V)._mult(F/lt)._round());this.updateDistance(V,wt),this.addCurrentVertex(wt,he,0,0,N),V=wt}}}}addCurrentVertex(t,s,d,m,y,b=!1){const T=s.y*m-s.x,C=-s.y-s.x*m;this.addHalfVertex(t,s.x+s.y*d,s.y-s.x*d,b,!1,d,y),this.addHalfVertex(t,T,C,b,!0,-m,y)}addHalfVertex({x:t,y:s},d,m,y,b,T,C){this.layoutVertexArray.emplaceBack((t<<1)+(y?1:0),(s<<1)+(b?1:0),Math.round(63*d)+128,Math.round(63*m)+128,1+(T===0?0:T<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const I=C.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,I),C.primitiveLength++),b?this.e2=I:this.e1=I}updateScaledDistance(){if(this.lineClips){const t=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=t*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(t,s){this.distance+=t.dist(s),this.updateScaledDistance()}}hi(wu,"LineBucket",{omit:["layers","patternFeatures"]});const Um=new bt({"line-cap":new Ge(qe.layout_line["line-cap"]),"line-join":new Ge(qe.layout_line["line-join"]),"line-miter-limit":new ze(qe.layout_line["line-miter-limit"]),"line-round-limit":new ze(qe.layout_line["line-round-limit"]),"line-sort-key":new Ge(qe.layout_line["line-sort-key"])});var hf={paint:new bt({"line-opacity":new Ge(qe.paint_line["line-opacity"]),"line-color":new Ge(qe.paint_line["line-color"]),"line-translate":new ze(qe.paint_line["line-translate"]),"line-translate-anchor":new ze(qe.paint_line["line-translate-anchor"]),"line-width":new Ge(qe.paint_line["line-width"]),"line-gap-width":new Ge(qe.paint_line["line-gap-width"]),"line-offset":new Ge(qe.paint_line["line-offset"]),"line-blur":new Ge(qe.paint_line["line-blur"]),"line-dasharray":new et(qe.paint_line["line-dasharray"]),"line-pattern":new et(qe.paint_line["line-pattern"]),"line-gradient":new Ye(qe.paint_line["line-gradient"]),"line-trim-offset":new ze(qe.paint_line["line-trim-offset"])}),layout:Um};const df=new class extends Ge{possiblyEvaluate(l,t){return t=new me(Math.floor(t.zoom),{now:t.now,fadeDuration:t.fadeDuration,zoomHistory:t.zoomHistory,transition:t.transition}),super.possiblyEvaluate(l,t)}evaluate(l,t,s,d){return t=ee({},t,{zoom:Math.floor(t.zoom)}),super.evaluate(l,t,s,d)}}(hf.paint.properties["line-width"].specification);function ff(l,t){return t>0?t+2*l:l}df.useIntegerZoom=!0;const Vm=Tt([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),$m=Tt([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),jm=Tt([{name:"a_projected_pos",components:4,type:"Float32"}],4);Tt([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Gm=Tt([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),qm=Tt([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);Tt([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const pf=Tt([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Zm=Tt([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);Tt([{name:"triangle",components:3,type:"Uint16"}]),Tt([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),Tt([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Tt([{type:"Float32",name:"offsetX"}]),Tt([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var An=24;const sa=128;function bh(l,t){const{expression:s}=t;if(s.kind==="constant")return{kind:"constant",layoutSize:s.evaluate(new me(l+1))};if(s.kind==="source")return{kind:"source"};{const{zoomStops:d,interpolationType:m}=s;let y=0;for(;y{d.text=function(m,y,b){const T=y.layout.get("text-transform").evaluate(b,{});return T==="uppercase"?m=m.toLocaleUpperCase():T==="lowercase"&&(m=m.toLocaleLowerCase()),pe.applyArabicShaping&&(m=pe.applyArabicShaping(m)),m}(d.text,t,s)}),l}const mc={"!":"\uFE15","#":"\uFF03",$:"\uFF04","%":"\uFF05","&":"\uFF06","(":"\uFE35",")":"\uFE36","*":"\uFF0A","+":"\uFF0B",",":"\uFE10","-":"\uFE32",".":"\u30FB","/":"\uFF0F",":":"\uFE13",";":"\uFE14","<":"\uFE3F","=":"\uFF1D",">":"\uFE40","?":"\uFE16","@":"\uFF20","[":"\uFE47","\\":"\uFF3C","]":"\uFE48","^":"\uFF3E",_:"\uFE33","`":"\uFF40","{":"\uFE37","|":"\u2015","}":"\uFE38","~":"\uFF5E","\xA2":"\uFFE0","\xA3":"\uFFE1","\xA5":"\uFFE5","\xA6":"\uFFE4","\xAC":"\uFFE2","\xAF":"\uFFE3","\u2013":"\uFE32","\u2014":"\uFE31","\u2018":"\uFE43","\u2019":"\uFE44","\u201C":"\uFE41","\u201D":"\uFE42","\u2026":"\uFE19","\u2027":"\u30FB","\u20A9":"\uFFE6","\u3001":"\uFE11","\u3002":"\uFE12","\u3008":"\uFE3F","\u3009":"\uFE40","\u300A":"\uFE3D","\u300B":"\uFE3E","\u300C":"\uFE41","\u300D":"\uFE42","\u300E":"\uFE43","\u300F":"\uFE44","\u3010":"\uFE3B","\u3011":"\uFE3C","\u3014":"\uFE39","\u3015":"\uFE3A","\u3016":"\uFE17","\u3017":"\uFE18","\uFF01":"\uFE15","\uFF08":"\uFE35","\uFF09":"\uFE36","\uFF0C":"\uFE10","\uFF0D":"\uFE32","\uFF0E":"\u30FB","\uFF1A":"\uFE13","\uFF1B":"\uFE14","\uFF1C":"\uFE3F","\uFF1E":"\uFE40","\uFF1F":"\uFE16","\uFF3B":"\uFE47","\uFF3D":"\uFE48","\uFF3F":"\uFE33","\uFF5B":"\uFE37","\uFF5C":"\u2015","\uFF5D":"\uFE38","\uFF5F":"\uFE35","\uFF60":"\uFE36","\uFF61":"\uFE12","\uFF62":"\uFE41","\uFF63":"\uFE42"};function Wm(l){return l==="\uFE36"||l==="\uFE48"||l==="\uFE38"||l==="\uFE44"||l==="\uFE42"||l==="\uFE3E"||l==="\uFE3C"||l==="\uFE3A"||l==="\uFE18"||l==="\uFE40"||l==="\uFE10"||l==="\uFE13"||l==="\uFE14"||l==="\uFF40"||l==="\uFFE3"||l==="\uFE11"||l==="\uFE12"}function Ym(l){return l==="\uFE35"||l==="\uFE47"||l==="\uFE37"||l==="\uFE43"||l==="\uFE41"||l==="\uFE3D"||l==="\uFE3B"||l==="\uFE39"||l==="\uFE17"||l==="\uFE3F"}var mf=function(l,t,s,d,m){var y,b,T=8*m-d-1,C=(1<>1,F=-7,N=s?m-1:0,V=s?-1:1,H=l[t+N];for(N+=V,y=H&(1<<-F)-1,H>>=-F,F+=T;F>0;y=256*y+l[t+N],N+=V,F-=8);for(b=y&(1<<-F)-1,y>>=-F,F+=d;F>0;b=256*b+l[t+N],N+=V,F-=8);if(y===0)y=1-I;else{if(y===C)return b?NaN:1/0*(H?-1:1);b+=Math.pow(2,d),y-=I}return(H?-1:1)*b*Math.pow(2,y-d)},gf=function(l,t,s,d,m,y){var b,T,C,I=8*y-m-1,F=(1<>1,V=m===23?Math.pow(2,-24)-Math.pow(2,-77):0,H=d?0:y-1,J=d?1:-1,ne=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(T=isNaN(t)?1:0,b=F):(b=Math.floor(Math.log(t)/Math.LN2),t*(C=Math.pow(2,-b))<1&&(b--,C*=2),(t+=b+N>=1?V/C:V*Math.pow(2,1-N))*C>=2&&(b++,C/=2),b+N>=F?(T=0,b=F):b+N>=1?(T=(t*C-1)*Math.pow(2,m),b+=N):(T=t*Math.pow(2,N-1)*Math.pow(2,m),b=0));m>=8;l[s+H]=255&T,H+=J,T/=256,m-=8);for(b=b<0;l[s+H]=255&b,H+=J,b/=256,I-=8);l[s+H-J]|=128*ne},gc=Ar;function Ar(l){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(l)?l:new Uint8Array(l||0),this.pos=0,this.type=0,this.length=this.buf.length}Ar.Varint=0,Ar.Fixed64=1,Ar.Bytes=2,Ar.Fixed32=5;var wh=4294967296,_f=1/wh,yf=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function La(l){return l.type===Ar.Bytes?l.readVarint()+l.pos:l.pos+1}function Ml(l,t,s){return s?4294967296*t+(l>>>0):4294967296*(t>>>0)+(l>>>0)}function xf(l,t,s){var d=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(7*Math.LN2));s.realloc(d);for(var m=s.pos-1;m>=l;m--)s.buf[m+d]=s.buf[m]}function Km(l,t){for(var s=0;s>>8,l[s+2]=t>>>16,l[s+3]=t>>>24}function vf(l,t){return(l[t]|l[t+1]<<8|l[t+2]<<16)+(l[t+3]<<24)}function ag(l,t,s){t.glyphs=[],l===1&&s.readMessage(sg,t)}function sg(l,t,s){if(l===3){const{id:d,bitmap:m,width:y,height:b,left:T,top:C,advance:I}=s.readMessage(lg,{});t.glyphs.push({id:d,bitmap:new Ba({width:y+6,height:b+6},m),metrics:{width:y,height:b,left:T,top:C,advance:I}})}else l===4?t.ascender=s.readSVarint():l===5&&(t.descender=s.readSVarint())}function lg(l,t,s){l===1?t.id=s.readVarint():l===2?t.bitmap=s.readBytes():l===3?t.width=s.readVarint():l===4?t.height=s.readVarint():l===5?t.left=s.readSVarint():l===6?t.top=s.readSVarint():l===7&&(t.advance=s.readVarint())}function Eh(l){let t=0,s=0;for(const b of l)t+=b.w*b.h,s=Math.max(s,b.w);l.sort((b,T)=>T.h-b.h);const d=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),s),h:1/0}];let m=0,y=0;for(const b of l)for(let T=d.length-1;T>=0;T--){const C=d[T];if(!(b.w>C.w||b.h>C.h)){if(b.x=C.x,b.y=C.y,y=Math.max(y,b.y+b.h),m=Math.max(m,b.x+b.w),b.w===C.w&&b.h===C.h){const I=d.pop();T>3,y=this.pos;this.type=7&d,l(m,t,this),this.pos===y&&this.skip(d)}return t},readMessage:function(l,t){return this.readFields(l,t,this.readVarint()+this.pos)},readFixed32:function(){var l=Tu(this.buf,this.pos);return this.pos+=4,l},readSFixed32:function(){var l=vf(this.buf,this.pos);return this.pos+=4,l},readFixed64:function(){var l=Tu(this.buf,this.pos)+Tu(this.buf,this.pos+4)*wh;return this.pos+=8,l},readSFixed64:function(){var l=Tu(this.buf,this.pos)+vf(this.buf,this.pos+4)*wh;return this.pos+=8,l},readFloat:function(){var l=mf(this.buf,this.pos,!0,23,4);return this.pos+=4,l},readDouble:function(){var l=mf(this.buf,this.pos,!0,52,8);return this.pos+=8,l},readVarint:function(l){var t,s,d=this.buf;return t=127&(s=d[this.pos++]),s<128?t:(t|=(127&(s=d[this.pos++]))<<7,s<128?t:(t|=(127&(s=d[this.pos++]))<<14,s<128?t:(t|=(127&(s=d[this.pos++]))<<21,s<128?t:function(m,y,b){var T,C,I=b.buf;if(T=(112&(C=I[b.pos++]))>>4,C<128||(T|=(127&(C=I[b.pos++]))<<3,C<128)||(T|=(127&(C=I[b.pos++]))<<10,C<128)||(T|=(127&(C=I[b.pos++]))<<17,C<128)||(T|=(127&(C=I[b.pos++]))<<24,C<128)||(T|=(1&(C=I[b.pos++]))<<31,C<128))return Ml(m,T,y);throw new Error("Expected varint not more than 10 bytes")}(t|=(15&(s=d[this.pos]))<<28,l,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var l=this.readVarint();return l%2==1?(l+1)/-2:l/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var l=this.readVarint()+this.pos,t=this.pos;return this.pos=l,l-t>=12&&yf?function(s,d,m){return yf.decode(s.subarray(d,m))}(this.buf,t,l):function(s,d,m){for(var y="",b=d;b239?4:F>223?3:F>191?2:1;if(b+V>m)break;V===1?F<128&&(N=F):V===2?(192&(T=s[b+1]))==128&&(N=(31&F)<<6|63&T)<=127&&(N=null):V===3?(C=s[b+2],(192&(T=s[b+1]))==128&&(192&C)==128&&((N=(15&F)<<12|(63&T)<<6|63&C)<=2047||N>=55296&&N<=57343)&&(N=null)):V===4&&(C=s[b+2],I=s[b+3],(192&(T=s[b+1]))==128&&(192&C)==128&&(192&I)==128&&((N=(15&F)<<18|(63&T)<<12|(63&C)<<6|63&I)<=65535||N>=1114112)&&(N=null)),N===null?(N=65533,V=1):N>65535&&(N-=65536,y+=String.fromCharCode(N>>>10&1023|55296),N=56320|1023&N),y+=String.fromCharCode(N),b+=V}return y}(this.buf,t,l)},readBytes:function(){var l=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,l);return this.pos=l,t},readPackedVarint:function(l,t){if(this.type!==Ar.Bytes)return l.push(this.readVarint(t));var s=La(this);for(l=l||[];this.pos127;);else if(t===Ar.Bytes)this.pos=this.readVarint()+this.pos;else if(t===Ar.Fixed32)this.pos+=4;else{if(t!==Ar.Fixed64)throw new Error("Unimplemented type: "+t);this.pos+=8}},writeTag:function(l,t){this.writeVarint(l<<3|t)},realloc:function(l){for(var t=this.length||16;t268435455||l<0?function(t,s){var d,m;if(t>=0?(d=t%4294967296|0,m=t/4294967296|0):(m=~(-t/4294967296),4294967295^(d=~(-t%4294967296))?d=d+1|0:(d=0,m=m+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");s.realloc(10),function(y,b,T){T.buf[T.pos++]=127&y|128,y>>>=7,T.buf[T.pos++]=127&y|128,y>>>=7,T.buf[T.pos++]=127&y|128,y>>>=7,T.buf[T.pos++]=127&y|128,T.buf[T.pos]=127&(y>>>=7)}(d,0,s),function(y,b){var T=(7&y)<<4;b.buf[b.pos++]|=T|((y>>>=3)?128:0),y&&(b.buf[b.pos++]=127&y|((y>>>=7)?128:0),y&&(b.buf[b.pos++]=127&y|((y>>>=7)?128:0),y&&(b.buf[b.pos++]=127&y|((y>>>=7)?128:0),y&&(b.buf[b.pos++]=127&y|((y>>>=7)?128:0),y&&(b.buf[b.pos++]=127&y)))))}(m,s)}(l,this):(this.realloc(4),this.buf[this.pos++]=127&l|(l>127?128:0),l<=127||(this.buf[this.pos++]=127&(l>>>=7)|(l>127?128:0),l<=127||(this.buf[this.pos++]=127&(l>>>=7)|(l>127?128:0),l<=127||(this.buf[this.pos++]=l>>>7&127))))},writeSVarint:function(l){this.writeVarint(l<0?2*-l-1:2*l)},writeBoolean:function(l){this.writeVarint(Boolean(l))},writeString:function(l){l=String(l),this.realloc(4*l.length),this.pos++;var t=this.pos;this.pos=function(d,m,y){for(var b,T,C=0;C55295&&b<57344){if(!T){b>56319||C+1===m.length?(d[y++]=239,d[y++]=191,d[y++]=189):T=b;continue}if(b<56320){d[y++]=239,d[y++]=191,d[y++]=189,T=b;continue}b=T-55296<<10|b-56320|65536,T=null}else T&&(d[y++]=239,d[y++]=191,d[y++]=189,T=null);b<128?d[y++]=b:(b<2048?d[y++]=b>>6|192:(b<65536?d[y++]=b>>12|224:(d[y++]=b>>18|240,d[y++]=b>>12&63|128),d[y++]=b>>6&63|128),d[y++]=63&b|128)}return y}(this.buf,l,this.pos);var s=this.pos-t;s>=128&&xf(t,s,this),this.pos=t-1,this.writeVarint(s),this.pos+=s},writeFloat:function(l){this.realloc(4),gf(this.buf,l,this.pos,!0,23,4),this.pos+=4},writeDouble:function(l){this.realloc(8),gf(this.buf,l,this.pos,!0,52,8),this.pos+=8},writeBytes:function(l){var t=l.length;this.writeVarint(t),this.realloc(t);for(var s=0;s=128&&xf(s,d,this),this.pos=s-1,this.writeVarint(d),this.pos+=d},writeMessage:function(l,t,s){this.writeTag(l,Ar.Bytes),this.writeRawMessage(t,s)},writePackedVarint:function(l,t){t.length&&this.writeMessage(l,Km,t)},writePackedSVarint:function(l,t){t.length&&this.writeMessage(l,Qm,t)},writePackedBoolean:function(l,t){t.length&&this.writeMessage(l,tg,t)},writePackedFloat:function(l,t){t.length&&this.writeMessage(l,Jm,t)},writePackedDouble:function(l,t){t.length&&this.writeMessage(l,eg,t)},writePackedFixed32:function(l,t){t.length&&this.writeMessage(l,ig,t)},writePackedSFixed32:function(l,t){t.length&&this.writeMessage(l,rg,t)},writePackedFixed64:function(l,t){t.length&&this.writeMessage(l,ng,t)},writePackedSFixed64:function(l,t){t.length&&this.writeMessage(l,og,t)},writeBytesField:function(l,t){this.writeTag(l,Ar.Bytes),this.writeBytes(t)},writeFixed32Field:function(l,t){this.writeTag(l,Ar.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(l,t){this.writeTag(l,Ar.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(l,t){this.writeTag(l,Ar.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(l,t){this.writeTag(l,Ar.Fixed64),this.writeSFixed64(t)},writeVarintField:function(l,t){this.writeTag(l,Ar.Varint),this.writeVarint(t)},writeSVarintField:function(l,t){this.writeTag(l,Ar.Varint),this.writeSVarint(t)},writeStringField:function(l,t){this.writeTag(l,Ar.Bytes),this.writeString(t)},writeFloatField:function(l,t){this.writeTag(l,Ar.Fixed32),this.writeFloat(t)},writeDoubleField:function(l,t){this.writeTag(l,Ar.Fixed64),this.writeDouble(t)},writeBooleanField:function(l,t){this.writeVarintField(l,Boolean(t))}};class Th{constructor(t,{pixelRatio:s,version:d,stretchX:m,stretchY:y,content:b}){this.paddedRect=t,this.pixelRatio=s,this.stretchX=m,this.stretchY=y,this.content=b,this.version=d}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class bf{constructor(t,s){const d={},m={};this.haveRenderCallbacks=[];const y=[];this.addImages(t,d,y),this.addImages(s,m,y);const{w:b,h:T}=Eh(y),C=new no({width:b||1,height:T||1});for(const I in t){const F=t[I],N=d[I].paddedRect;no.copy(F.data,C,{x:0,y:0},{x:N.x+1,y:N.y+1},F.data)}for(const I in s){const F=s[I],N=m[I].paddedRect,V=N.x+1,H=N.y+1,J=F.data.width,ne=F.data.height;no.copy(F.data,C,{x:0,y:0},{x:V,y:H},F.data),no.copy(F.data,C,{x:0,y:ne-1},{x:V,y:H-1},{width:J,height:1}),no.copy(F.data,C,{x:0,y:0},{x:V,y:H+ne},{width:J,height:1}),no.copy(F.data,C,{x:J-1,y:0},{x:V-1,y:H},{width:1,height:ne}),no.copy(F.data,C,{x:0,y:0},{x:V+J,y:H},{width:1,height:ne})}this.image=C,this.iconPositions=d,this.patternPositions=m}addImages(t,s,d){for(const m in t){const y=t[m],b={x:0,y:0,w:y.data.width+2,h:y.data.height+2};d.push(b),s[m]=new Th(b,y),y.hasRenderCallback&&this.haveRenderCallbacks.push(m)}}patchUpdatedImages(t,s){this.haveRenderCallbacks=this.haveRenderCallbacks.filter(d=>t.hasImage(d)),t.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const d in t.updatedImages)this.patchUpdatedImage(this.iconPositions[d],t.getImage(d),s),this.patchUpdatedImage(this.patternPositions[d],t.getImage(d),s)}patchUpdatedImage(t,s,d){if(!t||!s||t.version===s.version)return;t.version=s.version;const[m,y]=t.tl;d.update(s.data,void 0,{x:m,y})}}hi(Th,"ImagePosition"),hi(bf,"ImageAtlas");const _o={horizontal:1,vertical:2,horizontalOnly:3};class _c{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(t,s){const d=new _c;return d.scale=t||1,d.fontStack=s,d}static forImage(t){const s=new _c;return s.imageName=t,s}}class Cl{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(t,s){const d=new Cl;for(let m=0;m=0&&d>=t&&Su[this.text.charCodeAt(d)];d--)s--;this.text=this.text.substring(t,s),this.sectionIndex=this.sectionIndex.slice(t,s)}substring(t,s){const d=new Cl;return d.text=this.text.substring(t,s),d.sectionIndex=this.sectionIndex.slice(t,s),d.sections=this.sections,d}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((t,s)=>Math.max(t,this.sections[s].scale),0)}addTextSection(t,s){this.text+=t.text,this.sections.push(_c.forText(t.scale,t.fontStack||s));const d=this.sections.length-1;for(let m=0;m=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Sh(l,t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne){const he=Cl.fromFeature(l,m);let we;N===_o.vertical&&he.verticalizePunctuation(V);const{processBidirectionalText:De,processStyledBidirectionalText:Se}=pe;if(De&&he.sections.length===1){we=[];const Re=De(he.toString(),Mh(he,I,y,t,d,H,J));for(const nt of Re){const it=new Cl;it.text=nt,it.sections=he.sections;for(let yt=0;yt0&&Fa>zr&&(zr=Fa)}else{const Xn=it[Yr.fontStack];if(!Xn)continue;Xn[mr]&&(Ur=Xn[mr]);const yn=nt[Yr.fontStack];if(!yn)continue;const Fa=yn.glyphs[mr];if(!Fa)continue;if(Zn=Fa.metrics,_n=mr!==8203?An:0,or){const Rl=yn.ascender!==void 0?Math.abs(yn.ascender):0,Ic=yn.descender!==void 0?Math.abs(yn.descender):0,kc=(Rl+Ic)*jr;$r=0;let F=0;for(let V=0;V-s/2;){if(b--,b<0)return!1;T-=l[b].dist(y),y=l[b]}T+=l[b].dist(l[b+1]),b++;const C=[];let I=0;for(;Td;)I-=C.shift().angleDelta;if(I>m)return!1;b++,T+=F.dist(N)}return!0}function If(l){let t=0;for(let s=0;sI){const J=(I-C)/H,ne=Qi(N.x,V.x,J),he=Qi(N.y,V.y,J),we=new Ra(ne,he,0,V.angleTo(N),F);return!b||Cf(l,we,T,b,t)?we:void 0}C+=H}}function fg(l,t,s,d,m,y,b,T,C){const I=kf(d,y,b),F=Pf(d,m),N=F*b,V=l[0].x===0||l[0].x===C||l[0].y===0||l[0].y===C;return t-N=0&&Ce=0&&Ue=0&&V+I<=F){const Re=new Ra(Ce,Ue,0,De,J);Re._round(),d&&!Cf(l,Re,y,d,m)||H.push(Re)}}N+=we}return T||H.length||b||(H=Df(l,N/2,s,d,m,y,b,!0,C)),H}function Bf(l,t,s,d,m){const y=[];for(let b=0;b=d&&N.x>=d||(F.x>=d?F=new k(d,F.y+(d-F.x)/(N.x-F.x)*(N.y-F.y))._round():N.x>=d&&(N=new k(d,F.y+(d-F.x)/(N.x-F.x)*(N.y-F.y))._round()),F.y>=m&&N.y>=m||(F.y>=m?F=new k(F.x+(m-F.y)/(N.y-F.y)*(N.x-F.x),m)._round():N.y>=m&&(N=new k(F.x+(m-F.y)/(N.y-F.y)*(N.x-F.x),m)._round()),C&&F.equals(C[C.length-1])||(C=[F],y.push(C)),C.push(N)))))}}return y}hi(Ra,"Anchor");const yc=1e20;function Lf(l,t,s,d,m,y,b,T,C){for(let I=t;I-1);C++,y[C]=T,b[C]=I,b[C+1]=yc}for(let T=0,C=0;T{let T=this.entries[m];T||(T=this.entries[m]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let C=T.glyphs[y];if(C!==void 0)return void b(null,{stack:m,id:y,glyph:C});if(C=this._tinySDF(T,m,y),C)return T.glyphs[y]=C,void b(null,{stack:m,id:y,glyph:C});const I=Math.floor(y/256);if(256*I>65535)return void b(new Error("glyphs > 65535 not supported"));if(T.ranges[I])return void b(null,{stack:m,id:y,glyph:C});let F=T.requests[I];F||(F=T.requests[I]=[],Il.loadGlyphRange(m,I,this.url,this.requestManager,(N,V)=>{if(V){T.ascender=V.ascender,T.descender=V.descender;for(const H in V.glyphs)this._doesCharSupportLocalGlyph(+H)||(T.glyphs[+H]=V.glyphs[+H]);T.ranges[I]=!0}for(const H of F)H(N,V);delete T.requests[I]})),F.push((N,V)=>{N?b(N):V&&b(null,{stack:m,id:y,glyph:V.glyphs[y]||null})})},(m,y)=>{if(m)s(m);else if(y){const b={};for(const{stack:T,id:C,glyph:I}of y)b[T]===void 0&&(b[T]={}),b[T].glyphs===void 0&&(b[T].glyphs={}),b[T].glyphs[C]=I&&{id:I.id,bitmap:I.bitmap.clone(),metrics:I.metrics},b[T].ascender=this.entries[T].ascender,b[T].descender=this.entries[T].descender;s(null,b)}})}_doesCharSupportLocalGlyph(t){return this.localGlyphMode!==Ch.none&&(this.localGlyphMode===Ch.all?!!this.localFontFamily:!!this.localFontFamily&&(Os(t)||Jc(t)||Zl(t)||Ea(t)||pl(t)))}_tinySDF(t,s,d){const m=this.localFontFamily;if(!m||!this._doesCharSupportLocalGlyph(d))return;let y=t.tinySDF;if(!y){let ne="400";/bold/i.test(s)?ne="900":/medium/i.test(s)?ne="500":/light/i.test(s)&&(ne="200"),y=t.tinySDF=new Il.TinySDF({fontFamily:m,fontWeight:ne,fontSize:48,buffer:6,radius:16}),y.fontWeight=ne}if(this.localGlyphs[y.fontWeight][d])return this.localGlyphs[y.fontWeight][d];const b=String.fromCharCode(d),{data:T,width:C,height:I,glyphWidth:F,glyphHeight:N,glyphLeft:V,glyphTop:H,glyphAdvance:J}=y.draw(b);return this.localGlyphs[y.fontWeight][d]={id:d,bitmap:new Ba({width:C,height:I},T),metrics:{width:F/2,height:N/2,left:V/2,top:H/2-27,advance:J/2,localGlyph:!0}}}}function zf(l,t,s,d){const m=[],y=l.image,b=y.pixelRatio,T=y.paddedRect.w-2,C=y.paddedRect.h-2,I=l.right-l.left,F=l.bottom-l.top,N=y.stretchX||[[0,T]],V=y.stretchY||[[0,C]],H=(lt,wt)=>lt+wt[1]-wt[0],J=N.reduce(H,0),ne=V.reduce(H,0),he=T-J,we=C-ne;let De=0,Se=J,Ce=0,Ue=ne,Re=0,nt=he,it=0,yt=we;if(y.content&&d){const lt=y.content;De=Mu(N,0,lt[0]),Ce=Mu(V,0,lt[1]),Se=Mu(N,lt[0],lt[2]),Ue=Mu(V,lt[1],lt[3]),Re=lt[0]-De,it=lt[1]-Ce,nt=lt[2]-lt[0]-Se,yt=lt[3]-lt[1]-Ue}const Zt=(lt,wt,Dt,Et)=>{const Ot=Au(lt.stretch-De,Se,I,l.left),Bt=Cu(lt.fixed-Re,nt,lt.stretch,J),ii=Au(wt.stretch-Ce,Ue,F,l.top),Yi=Cu(wt.fixed-it,yt,wt.stretch,ne),Ji=Au(Dt.stretch-De,Se,I,l.left),ki=Cu(Dt.fixed-Re,nt,Dt.stretch,J),Yt=Au(Et.stretch-Ce,Ue,F,l.top),or=Cu(Et.fixed-it,yt,Et.stretch,ne),Zi=new k(Ot,ii),ui=new k(Ji,ii),Cr=new k(Ji,Yt),Tr=new k(Ot,Yt),Nr=new k(Bt/b,Yi/b),ir=new k(ki/b,or/b),dr=t*Math.PI/180;if(dr){const br=Math.sin(dr),zr=Math.cos(dr),$r=[zr,-br,br,zr];Zi._matMult($r),ui._matMult($r),Tr._matMult($r),Cr._matMult($r)}const Ir=lt.stretch+lt.fixed,Sr=wt.stretch+wt.fixed;return{tl:Zi,tr:ui,bl:Tr,br:Cr,tex:{x:y.paddedRect.x+1+Ir,y:y.paddedRect.y+1+Sr,w:Dt.stretch+Dt.fixed-Ir,h:Et.stretch+Et.fixed-Sr},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Nr,pixelOffsetBR:ir,minFontScaleX:nt/b/I,minFontScaleY:yt/b/F,isSDF:s}};if(d&&(y.stretchX||y.stretchY)){const lt=Ff(N,he,J),wt=Ff(V,we,ne);for(let Dt=0;Dt{if(C)m(C);else if(I){const F={},N=function(V){return new gc(V).readFields(ag,{})}(I);for(const V of N.glyphs)F[V.id]=V;m(null,{glyphs:F,ascender:N.ascender,descender:N.descender})}})},Il.TinySDF=class{constructor({fontSize:l=24,buffer:t=3,radius:s=8,cutoff:d=.25,fontFamily:m="sans-serif",fontWeight:y="normal",fontStyle:b="normal"}={}){this.buffer=t,this.cutoff=d,this.radius=s;const T=this.size=l+4*t,C=this._createCanvas(T),I=this.ctx=C.getContext("2d",{willReadFrequently:!0});I.font=`${b} ${y} ${l}px ${m}`,I.textBaseline="alphabetic",I.textAlign="left",I.fillStyle="black",this.gridOuter=new Float64Array(T*T),this.gridInner=new Float64Array(T*T),this.f=new Float64Array(T),this.z=new Float64Array(T+1),this.v=new Uint16Array(T)}_createCanvas(l){const t=document.createElement("canvas");return t.width=t.height=l,t}draw(l){const{width:t,actualBoundingBoxAscent:s,actualBoundingBoxDescent:d,actualBoundingBoxLeft:m,actualBoundingBoxRight:y}=this.ctx.measureText(l),b=Math.ceil(s),T=Math.min(this.size-this.buffer,Math.ceil(y-m)),C=Math.min(this.size-this.buffer,b+Math.ceil(d)),I=T+2*this.buffer,F=C+2*this.buffer,N=Math.max(I*F,0),V=new Uint8ClampedArray(N),H={data:V,width:I,height:F,glyphWidth:T,glyphHeight:C,glyphTop:b,glyphLeft:0,glyphAdvance:t};if(T===0||C===0)return H;const{ctx:J,buffer:ne,gridInner:he,gridOuter:we}=this;J.clearRect(ne,ne,T,C),J.fillText(l,ne,ne+b);const De=J.getImageData(ne,ne,T,C);we.fill(yc,0,N),he.fill(0,0,N);for(let Se=0;Se0?nt*nt:0,he[Re]=nt<0?nt*nt:0}}Lf(we,0,0,I,F,I,this.f,this.v,this.z),Lf(he,ne,ne,T,C,I,this.f,this.v,this.z);for(let Se=0;Se0)for(let d=(this.length>>1)-1;d>=0;d--)this._down(d)}push(t){this.data.push(t),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const t=this.data[0],s=this.data.pop();return this.length--,this.length>0&&(this.data[0]=s,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:s,compare:d}=this,m=s[t];for(;t>0;){const y=t-1>>1,b=s[y];if(d(m,b)>=0)break;s[t]=b,t=y}s[t]=m}_down(t){const{data:s,compare:d}=this,m=this.length>>1,y=s[t];for(;t=0)break;s[t]=T,t=b}s[t]=y}}function gg(l,t){return lt?1:0}function _g(l,t=1,s=!1){let d=1/0,m=1/0,y=-1/0,b=-1/0;const T=l[0];for(let H=0;Hy)&&(y=J.x),(!H||J.y>b)&&(b=J.y)}const C=Math.min(y-d,b-m);let I=C/2;const F=new mg([],yg);if(C===0)return new k(d,m);for(let H=d;HN.d||!N.d)&&(N=H,s&&console.log("found best %d after %d probes",Math.round(1e4*H.d)/1e4,V)),H.max-N.d<=t||(I=H.h/2,F.push(new kl(H.p.x-I,H.p.y-I,I,l)),F.push(new kl(H.p.x+I,H.p.y-I,I,l)),F.push(new kl(H.p.x-I,H.p.y+I,I,l)),F.push(new kl(H.p.x+I,H.p.y+I,I,l)),V+=4)}return s&&(console.log(`num probes: ${V}`),console.log(`best distance: ${N.d}`)),N.p}function yg(l,t){return t.max-l.max}function kl(l,t,s,d){this.p=new k(l,t),this.h=s,this.d=function(m,y){let b=!1,T=1/0;for(let C=0;Cm.y!=J.y>m.y&&m.x<(J.x-H.x)*(m.y-H.y)/(J.y-H.y)+H.x&&(b=!b),T=Math.min(T,Ed(m,H,J))}}return(b?1:-1)*Math.sqrt(T)}(this.p,d),this.max=this.d+this.h*Math.SQRT2}const Ih=Number.POSITIVE_INFINITY,xg=Math.sqrt(2);function Of(l,t){return t[1]!==Ih?function(s,d,m){let y=0,b=0;switch(d=Math.abs(d),m=Math.abs(m),s){case"top-right":case"top-left":case"top":b=m-7;break;case"bottom-right":case"bottom-left":case"bottom":b=7-m}switch(s){case"top-right":case"bottom-right":case"right":y=-d;break;case"top-left":case"bottom-left":case"left":y=d}return[y,b]}(l,t[0],t[1]):function(s,d){let m=0,y=0;d<0&&(d=0);const b=d/xg;switch(s){case"top-right":case"top-left":y=b-7;break;case"bottom-right":case"bottom-left":y=7-b;break;case"bottom":y=7-d;break;case"top":y=d-7}switch(s){case"top-right":case"bottom-right":m=-b;break;case"top-left":case"bottom-left":m=b;break;case"left":m=d;break;case"right":m=-d}return[m,y]}(l,t[0])}function vg(l,t,s,d,m,y,b,T,C,I){l.createArrays(),l.tilePixelRatio=Oi/(512*l.overscaling),l.compareText={},l.iconsNeedLinear=!1;const F=l.layers[0].layout,N=l.layers[0]._unevaluatedLayout._values,V={};if(l.textSizeData.kind==="composite"){const{minZoom:ne,maxZoom:he}=l.textSizeData;V.compositeTextSizes=[N["text-size"].possiblyEvaluate(new me(ne),T),N["text-size"].possiblyEvaluate(new me(he),T)]}if(l.iconSizeData.kind==="composite"){const{minZoom:ne,maxZoom:he}=l.iconSizeData;V.compositeIconSizes=[N["icon-size"].possiblyEvaluate(new me(ne),T),N["icon-size"].possiblyEvaluate(new me(he),T)]}V.layoutTextSize=N["text-size"].possiblyEvaluate(new me(C+1),T),V.layoutIconSize=N["icon-size"].possiblyEvaluate(new me(C+1),T),V.textMaxSize=N["text-size"].possiblyEvaluate(new me(18),T);const H=F.get("text-rotation-alignment")==="map"&&F.get("symbol-placement")!=="point",J=F.get("text-size");for(const ne of l.features){const he=F.get("text-font").evaluate(ne,{},T).join(","),we=J.evaluate(ne,{},T),De=V.layoutTextSize.evaluate(ne,{},T),Se=(V.layoutIconSize.evaluate(ne,{},T),{horizontal:{},vertical:void 0}),Ce=ne.text;let Ue,Re=[0,0];if(Ce){const yt=Ce.toString(),Zt=F.get("text-letter-spacing").evaluate(ne,{},T)*An,lt=F.get("text-line-height").evaluate(ne,{},T)*An,wt=qu(yt)?Zt:0,Dt=F.get("text-anchor").evaluate(ne,{},T),Et=F.get("text-variable-anchor");if(!Et){const ki=F.get("text-radial-offset").evaluate(ne,{},T);Re=ki?Of(Dt,[ki*An,Ih]):F.get("text-offset").evaluate(ne,{},T).map(Yt=>Yt*An)}let Ot=H?"center":F.get("text-justify").evaluate(ne,{},T);const Bt=F.get("symbol-placement"),ii=Bt==="point",Yi=Bt==="point"?F.get("text-max-width").evaluate(ne,{},T)*An:0,Ji=ki=>{l.allowVerticalPlacement&&gl(yt)&&(Se.vertical=Sh(Ce,t,s,m,he,Yi,lt,Dt,ki,wt,Re,_o.vertical,!0,Bt,De,we))};if(!H&&Et){const ki=Ot==="auto"?Et.map(or=>kh(or)):[Ot];let Yt=!1;for(let or=0;or=0||!gl(yt)){const ki=Sh(Ce,t,s,m,he,Yi,lt,Dt,Ot,wt,Re,_o.horizontal,!1,Bt,De,we);ki&&(Se.horizontal[Ot]=ki)}Ji(Bt==="point"?"left":Ot)}}let nt=!1;if(ne.icon&&ne.icon.name){const yt=d[ne.icon.name];yt&&(Ue=hg(m[ne.icon.name],F.get("icon-offset").evaluate(ne,{},T),F.get("icon-anchor").evaluate(ne,{},T)),nt=yt.sdf,l.sdfIcons===void 0?l.sdfIcons=yt.sdf:l.sdfIcons!==yt.sdf&>("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(yt.pixelRatio!==l.pixelRatio||F.get("icon-rotate").constantOr(1)!==0)&&(l.iconsNeedLinear=!0))}const it=Uf(Se.horizontal)||Se.vertical;l.iconsInText||(l.iconsInText=!!it&&it.iconsInText),(it||Ue)&&bg(l,ne,Se,Ue,d,V,De,0,Re,nt,b,T,I)}y&&l.generateCollisionDebugBuffers(C,l.collisionBoxArray)}function kh(l){switch(l){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function bg(l,t,s,d,m,y,b,T,C,I,F,N,V){let H=y.textMaxSize.evaluate(t,{},N);H===void 0&&(H=b);const J=l.layers[0].layout,ne=J.get("icon-offset").evaluate(t,{},N),he=Uf(s.horizontal)||s.vertical,we=V.name==="globe",De=b/24,Se=l.tilePixelRatio*H/24,Ce=(wt=l.overscaling,l.zoom>18&&wt>2&&(wt>>=1),Math.max(Oi/(512*wt),1)*J.get("symbol-spacing")),Ue=J.get("text-padding")*l.tilePixelRatio,Re=J.get("icon-padding")*l.tilePixelRatio,nt=q(J.get("text-max-angle")),it=J.get("text-rotation-alignment")==="map"&&J.get("symbol-placement")!=="point",yt=J.get("icon-rotation-alignment")==="map"&&J.get("symbol-placement")!=="point",Zt=J.get("symbol-placement"),lt=Ce/2;var wt;const Dt=J.get("icon-text-fit");let Et;d&&Dt!=="none"&&(l.allowVerticalPlacement&&s.vertical&&(Et=Af(d,s.vertical,Dt,J.get("icon-text-fit-padding"),ne,De)),he&&(d=Af(d,he,Dt,J.get("icon-text-fit-padding"),ne,De)));const Ot=(Bt,ii,Yi)=>{if(ii.x<0||ii.x>=Oi||ii.y<0||ii.y>=Oi)return;let Ji=null;if(we){const{x:ki,y:Yt,z:or}=V.projectTilePoint(ii.x,ii.y,Yi);Ji={anchor:new Ra(ki,Yt,or,0,void 0),up:V.upVector(Yi,ii.x,ii.y)}}(function(ki,Yt,or,Zi,ui,Cr,Tr,Nr,ir,dr,Ir,Sr,br,zr,$r,gn,Kn,cr,Yr,Fn,mr,jr,Zn,Ur,en){const _n=ki.addToLineVertexArray(Yt,Zi);let dn,Cn,Xn,yn,Fa,Rl,Ic,kc=0,Ep=0,Tp=0,Sp=0,Xh=-1,Hh=-1;const da={};let Mp=tc("");const Ks=or?or.anchor:Yt;let Wh=0,Yh=0;if(ir._unevaluatedLayout.getValue("text-radial-offset")===void 0?[Wh,Yh]=ir.layout.get("text-offset").evaluate(mr,{},en).map(oo=>oo*An):(Wh=ir.layout.get("text-radial-offset").evaluate(mr,{},en)*An,Yh=Ih),ki.allowVerticalPlacement&&ui.vertical){const oo=ui.vertical;if($r)Rl=Ph(oo),Nr&&(Ic=Ph(Nr));else{const ao=ir.layout.get("text-rotate").evaluate(mr,{},en)+90;Xn=Iu(dr,Ks,Yt,Ir,Sr,br,oo,zr,ao,gn),Nr&&(yn=Iu(dr,Ks,Yt,Ir,Sr,br,Nr,cr,ao))}}if(Cr){const oo=ir.layout.get("icon-rotate").evaluate(mr,{},en),ao=ir.layout.get("icon-text-fit")!=="none",Pc=zf(Cr,oo,Zn,ao),Qh=Nr?zf(Nr,oo,Zn,ao):void 0;Cn=Iu(dr,Ks,Yt,Ir,Sr,br,Cr,cr,oo),kc=4*Pc.length;const Ap=ki.iconSizeData;let Qs=null;Ap.kind==="source"?(Qs=[sa*ir.layout.get("icon-size").evaluate(mr,{},en)],Qs[0]>ds&>(`${ki.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):Ap.kind==="composite"&&(Qs=[sa*jr.compositeIconSizes[0].evaluate(mr,{},en),sa*jr.compositeIconSizes[1].evaluate(mr,{},en)],(Qs[0]>ds||Qs[1]>ds)&>(`${ki.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),ki.addSymbols(ki.icon,Pc,Qs,Fn,Yr,mr,!1,or,Yt,_n.lineStartIndex,_n.lineLength,-1,Ur,en),Xh=ki.icon.placedSymbolArray.length-1,Qh&&(Ep=4*Qh.length,ki.addSymbols(ki.icon,Qh,Qs,Fn,Yr,mr,_o.vertical,or,Yt,_n.lineStartIndex,_n.lineLength,-1,Ur,en),Hh=ki.icon.placedSymbolArray.length-1)}for(const oo in ui.horizontal){const ao=ui.horizontal[oo];dn||(Mp=tc(ao.text),$r?Fa=Ph(ao):dn=Iu(dr,Ks,Yt,Ir,Sr,br,ao,zr,ir.layout.get("text-rotate").evaluate(mr,{},en),gn));const Pc=ao.positionedLines.length===1;if(Tp+=Nf(ki,or,Yt,ao,Tr,ir,$r,mr,gn,_n,ui.vertical?_o.horizontal:_o.horizontalOnly,Pc?Object.keys(ui.horizontal):[oo],da,Xh,jr,Ur,en),Pc)break}ui.vertical&&(Sp+=Nf(ki,or,Yt,ui.vertical,Tr,ir,$r,mr,gn,_n,_o.vertical,["vertical"],da,Hh,jr,Ur,en));let ys=-1;const Kh=(oo,ao)=>oo?Math.max(oo,ao):ao;ys=Kh(Fa,ys),ys=Kh(Rl,ys),ys=Kh(Ic,ys);const Jg=ys>-1?1:0;ki.glyphOffsetArray.length>=ps.MAX_GLYPHS&>("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),mr.sortKey!==void 0&&ki.addToSortKeyRanges(ki.symbolInstances.length,mr.sortKey),ki.symbolInstances.emplaceBack(Ks.x,Ks.y,Ks.z,Yt.x,Yt.y,da.right>=0?da.right:-1,da.center>=0?da.center:-1,da.left>=0?da.left:-1,da.vertical>=0?da.vertical:-1,Xh,Hh,Mp,dn!==void 0?dn:ki.collisionBoxArray.length,dn!==void 0?dn+1:ki.collisionBoxArray.length,Xn!==void 0?Xn:ki.collisionBoxArray.length,Xn!==void 0?Xn+1:ki.collisionBoxArray.length,Cn!==void 0?Cn:ki.collisionBoxArray.length,Cn!==void 0?Cn+1:ki.collisionBoxArray.length,yn||ki.collisionBoxArray.length,yn?yn+1:ki.collisionBoxArray.length,Ir,Tp,Sp,kc,Ep,Jg,0,Wh,Yh,ys)})(l,ii,Ji,Bt,s,d,m,Et,l.layers[0],l.collisionBoxArray,t.index,t.sourceLayerIndex,l.index,Ue,it,C,0,Re,yt,ne,t,y,I,F,N)};if(Zt==="line")for(const Bt of Bf(t.geometry,0,0,Oi,Oi)){const ii=fg(Bt,Ce,nt,s.vertical||he,d,24,Se,l.overscaling,Oi);for(const Yi of ii){const Ji=he;Ji&&wg(l,Ji.text,lt,Yi)||Ot(Bt,Yi,N)}}else if(Zt==="line-center"){for(const Bt of t.geometry)if(Bt.length>1){const ii=dg(Bt,nt,s.vertical||he,d,24,Se);ii&&Ot(Bt,ii,N)}}else if(t.type==="Polygon")for(const Bt of yh(t.geometry,0)){const ii=_g(Bt,16);Ot(Bt[0],new Ra(ii.x,ii.y,0,0,void 0),N)}else if(t.type==="LineString")for(const Bt of t.geometry)Ot(Bt,new Ra(Bt[0].x,Bt[0].y,0,0,void 0),N);else if(t.type==="Point")for(const Bt of t.geometry)for(const ii of Bt)Ot([ii],new Ra(ii.x,ii.y,0,0,void 0),N)}const ds=32640;function Nf(l,t,s,d,m,y,b,T,C,I,F,N,V,H,J,ne,he){const we=function(Ce,Ue,Re,nt,it,yt,Zt,lt){const wt=[];if(Ue.positionedLines.length===0)return wt;const Dt=nt.layout.get("text-rotate").evaluate(yt,{})*Math.PI/180,Et=function(Ji){const ki=Ji[0],Yt=Ji[1],or=ki*Yt;return or>0?[ki,-Yt]:or<0?[-ki,Yt]:ki===0?[Yt,ki]:[Yt,-ki]}(Re);let Ot=Math.abs(Ue.top-Ue.bottom);for(const Ji of Ue.positionedLines)Ot-=Ji.lineOffset;const Bt=Ue.positionedLines.length,ii=Ot/Bt;let Yi=Ue.top-Re[1];for(let Ji=0;Jids&>(`${l.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):De.kind==="composite"&&(Se=[sa*J.compositeTextSizes[0].evaluate(T,{},he),sa*J.compositeTextSizes[1].evaluate(T,{},he)],(Se[0]>ds||Se[1]>ds)&>(`${l.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),l.addSymbols(l.text,we,Se,C,b,T,F,t,s,I.lineStartIndex,I.lineLength,H,ne,he);for(const Ce of N)V[Ce]=l.text.placedSymbolArray.length-1;return 4*we.length}function Uf(l){for(const t in l)return l[t];return null}function Iu(l,t,s,d,m,y,b,T,C,I){let F=b.top,N=b.bottom,V=b.left,H=b.right;const J=b.collisionPadding;if(J&&(V-=J[0],F-=J[1],H+=J[2],N+=J[3]),C){const ne=new k(V,F),he=new k(H,F),we=new k(V,N),De=new k(H,N),Se=q(C);let Ce=new k(0,0);I&&(Ce=new k(I[0],I[1])),ne._rotateAround(Se,Ce),he._rotateAround(Se,Ce),we._rotateAround(Se,Ce),De._rotateAround(Se,Ce),V=Math.min(ne.x,he.x,we.x,De.x),H=Math.max(ne.x,he.x,we.x,De.x),F=Math.min(ne.y,he.y,we.y,De.y),N=Math.max(ne.y,he.y,we.y,De.y)}return l.emplaceBack(t.x,t.y,t.z,s.x,s.y,V,F,H,N,T,d,m,y),l.length-1}function Ph(l){l.collisionPadding&&(l.top-=l.collisionPadding[1],l.bottom+=l.collisionPadding[3]);const t=l.bottom-l.top;return t>0?Math.max(10,t):null}function wg(l,t,s,d){const m=l.compareText;if(t in m){const y=m[t];for(let b=y.length-1;b>=0;b--)if(d.dist(y[b])1?null:function(d,m,y,b){const T=Math.sin(y);return d*(Math.sin((1-b)*y)/T)+m*(Math.sin(b*y)/T)}(l.a[t],l.b[t],l.angle,ie(s,0,1))+l.center[t]}function la(l){if(l.z<=1)return Tg[l.z+2*l.y+l.x];const t=Lh(ku(l));return Yn.fromPoints(t)}function Gf(l,t){const s=wc(t.zoom);if(s===0)return la(l);const d=ku(l),m=Lh(d),y=na(d.getWest())*t.worldSize,b=na(d.getEast())*t.worldSize,T=Pa(d.getNorth())*t.worldSize,C=Pa(d.getSouth())*t.worldSize,I=[y,T,0],F=[b,T,0],N=[y,C,0],V=[b,C,0],H=rh([],t.globeMatrix);return cn(I,I,H),cn(F,F,H),cn(N,N,H),cn(V,V,H),m[0]=On(m[0],N,s),m[1]=On(m[1],V,s),m[2]=On(m[2],F,s),m[3]=On(m[3],I,s),Yn.fromPoints(m)}function qf(l,t,s,d,m){for(const y of s)cn(y,y,d),Vo(y,y,m),sh(l,l,y),lh(t,t,y)}function Mg(l,t,s){const d=t/l.worldSize,m=Number.MAX_VALUE,y=[-m,-m,-m],b=[m,m,m],T=l.globeMatrix;if(s.z<=1)return qf(b,y,la(s).getCorners(),T,d),new Yn(b,y);const C=ku(s),I=Lh(C);if(qf(b,y,I,T,d),C.contains(l.center)){y[2]=0;const nt=l.point,it=[nt.x*d,nt.y*d,0];return sh(b,b,it),lh(y,y,it),new Yn(b,y)}const F=[T[12]*d,T[13]*d,T[14]*d],N=C.getCenter(),V=ie(l.center.lat,-85.051129,oa),H=ie(N.lat,-85.051129,oa),J=na(l.center.lng),ne=Pa(V);let he=J-na(N.lng);const we=ne-Pa(H);he>.5?he-=1:he<-.5&&(he+=1);let De=0;Math.abs(he)>Math.abs(we)?De=he>=0?1:3:(De=we>=0?0:2,du(F,F,[T[4]*d,T[5]*d,T[6]*d],-Math.sin(q(we>=0?C.getSouth():C.getNorth()))*za));const Se=I[De],Ce=I[(De+1)%4],Ue=new Sg(Se,Ce,F),Re=[Bh(Ue,0)||Se[0],Bh(Ue,1)||Se[1],Bh(Ue,2)||Se[2]];return b[2]=Math.min(Se[2],Ce[2]),sh(b,b,Re),lh(y,y,Re),new Yn(b,y)}function ku({x:l,y:t,z:s}){const d=1/(1<Se&&(Ce(Re,Et,it,yt,wt,Dt),Ce(Et,nt,wt,Dt,Zt,lt))}Ce(N,V,d,y,m,y),Ce(V,H,m,y,m,b),Ce(H,J,m,b,d,b),Ce(J,N,d,b,d,y),ne-=Se,he-=Se,we+=Se,De+=Se;const Ue=1/Math.max(we-ne,De-he);return{scale:Ue,x:ne*Ue,y:he*Ue,x2:we*Ue,y2:De*Ue,projection:t}}const Ig=aa(new Float32Array(16));class fs{constructor(t){this.spec=t,this.name=t.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7]}project(t,s){return{x:0,y:0,z:0}}unproject(t,s){return new _r(0,0)}projectTilePoint(t,s,d){return{x:t,y:s,z:0}}locationPoint(t,s,d=!0){return t._coordinatePoint(t.locationCoordinate(s),d)}pixelsPerMeter(t,s){return bo(1,t)*s}pixelSpaceConversion(t,s,d){return 1}farthestPixelDistance(t){return Yf(t,t.pixelsPerMeter)}pointCoordinate(t,s,d,m){const y=t.horizonLineFromTop(!1),b=new k(s,Math.max(y,d));return t.rayIntersectionCoordinate(t.pointRayIntersection(b,m))}pointCoordinate3D(t,s,d){const m=new k(s,d);if(t.elevation)return t.elevation.pointCoordinate(m);{const y=this.pointCoordinate(t,m.x,m.y,0);return[y.x,y.y,y.z]}}isPointAboveHorizon(t,s){if(t.elevation)return!this.pointCoordinate3D(t,s.x,s.y);const d=t.horizonLineFromTop();return s.y0?s<-Bl+d&&(s=-Bl+d):s>Bl-d&&(s=Bl-d);const b=y/Math.pow(Lu(s),m),T=b*Math.sin(m*t),C=y-b*Math.cos(m*t);return{x:.5*(T/Math.PI+.5),y:1-.5*(C/Math.PI+.5),z:0}}unproject(t,s){t=(2*t-.5)*Math.PI,s=(2*(1-s)-.5)*Math.PI;const{n:d,f:m}=this,y=m-s,b=Math.sign(y),T=Math.sign(d)*Math.sqrt(t*t+y*y);let C=Math.atan2(t,Math.abs(y))*b;y*d<0&&(C-=Math.PI*Math.sign(t)*b);const I=ie(Y(C/d)+this.center[0],-180,180),F=ie(Y(2*Math.atan(Math.pow(m/T,1/d))-Bl),-85.051129,oa);return new _r(I,F)}}class Kf extends fs{constructor(t){super(t),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(t,s){return{x:na(t),y:Pa(s),z:0}}unproject(t,s){const d=wo(t),m=Mn(s);return new _r(d,m)}}const Qf=q(oa);class Lg extends fs{project(t,s){const d=(s=q(s))*s,m=d*d;return{x:.5*((t=q(t))*(.8707-.131979*d+m*(m*(.003971*d-.001529*m)-.013791))/Math.PI+.5),y:1-.5*(s*(1.007226+d*(.015085+m*(.028874*d-.044475-.005916*m)))/Math.PI+1),z:0}}unproject(t,s){t=(2*t-.5)*Math.PI;let d=s=(2*(1-s)-1)*Math.PI,m=25,y=0,b=d*d;do{b=d*d;const I=b*b;y=(d*(1.007226+b*(.015085+I*(.028874*b-.044475-.005916*I)))-s)/(1.007226+b*(.045255+I*(.259866*b-.311325-.005916*11*I))),d=ie(d-y,-Qf,Qf)}while(Math.abs(y)>1e-6&&--m>0);b=d*d;const T=ie(Y(t/(.8707+b*(b*(b*b*b*(.003971-.001529*b)-.013791)-.131979))),-180,180),C=Y(d);return new _r(T,C)}}const Jf=q(oa);class Rg extends fs{project(t,s){s=q(s),t=q(t);const d=Math.cos(s),m=2/Math.PI,y=Math.acos(d*Math.cos(t/2)),b=Math.sin(y)/y,T=.5*(t*m+2*d*Math.sin(t/2)/b)||0,C=.5*(s+Math.sin(s)/b)||0;return{x:.5*(T/Math.PI+.5),y:1-.5*(C/Math.PI+1),z:0}}unproject(t,s){let d=t=(2*t-.5)*Math.PI,m=s=(2*(1-s)-1)*Math.PI,y=25;const b=1e-6;let T=0,C=0;do{const I=Math.cos(m),F=Math.sin(m),N=2*F*I,V=F*F,H=I*I,J=Math.cos(d/2),ne=Math.sin(d/2),he=2*J*ne,we=ne*ne,De=1-H*J*J,Se=De?1/De:0,Ce=De?Math.acos(I*J)*Math.sqrt(1/De):0,Ue=.5*(2*Ce*I*ne+2*d/Math.PI)-t,Re=.5*(Ce*F+m)-s,nt=.5*Se*(H*we+Ce*I*J*V)+1/Math.PI,it=Se*(he*N/4-Ce*F*ne),yt=.125*Se*(N*ne-Ce*F*H*he),Zt=.5*Se*(V*J+Ce*we*I)+.5,lt=it*yt-Zt*nt;T=(Re*it-Ue*Zt)/lt,C=(Ue*yt-Re*nt)/lt,d=ie(d-T,-Math.PI,Math.PI),m=ie(m-C,-Jf,Jf)}while((Math.abs(T)>b||Math.abs(C)>b)&&--y>0);return new _r(Y(d),Y(m))}}class ep extends fs{constructor(t){super(t),this.center=t.center||[0,0],this.parallels=t.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(q(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(t,s){const{scale:d,cosPhi:m}=this;return{x:q(t)*m*d+.5,y:-Math.sin(q(s))/m*d+.5,z:0}}unproject(t,s){const{scale:d,cosPhi:m}=this,y=-(s-.5)/d,b=ie(Y((t-.5)/d)/m,-180,180),T=Math.asin(ie(y*m,-1,1)),C=ie(Y(T),-85.051129,oa);return new _r(b,C)}}class zg extends Kf{constructor(t){super(t),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug","custom"],this.range=[3,5]}projectTilePoint(t,s,d){const m=vc(t,s,d);return cn(m,m,bc(la(d))),{x:m[0],y:m[1],z:m[2]}}locationPoint(t,s){const d=Pu(s.lat,s.lng),m=Gn([],d),y=t.elevation?t.elevation.getAtPointOrZero(t.locationCoordinate(s),t._centerAltitude):t._centerAltitude;du(d,d,m,bo(1,0)*Oi*y);const b=aa(new Float64Array(16));return bl(b,t.pixelMatrix,t.globeMatrix),cn(d,d,b),new k(d[0],d[1])}pixelsPerMeter(t,s){return bo(1,0)*s}pixelSpaceConversion(t,s,d){const m=Qi(bo(1,45)*s,bo(1,t)*s,d);return this.pixelsPerMeter(t,s)/m}createTileMatrix(t,s,d){const m=Rh(la(d.canonical));return bl(new Float64Array(16),t.globeMatrix,m)}createInversionMatrix(t,s){const{center:d}=t,m=bc(la(s));return hu(m,m,q(d.lng)),nh(m,m,q(d.lat)),qs(m,m,[t._pixelsPerMercatorPixel,t._pixelsPerMercatorPixel,1]),Float32Array.from(m)}pointCoordinate(t,s,d,m){return jf(t,s,d,!0)||new xl(0,0)}pointCoordinate3D(t,s,d){const m=this.pointCoordinate(t,s,d,0);return[m.x,m.y,m.z]}isPointAboveHorizon(t,s){return!jf(t,s.x,s.y,!1)}farthestPixelDistance(t){const s=function(m,y){const b=m.cameraToCenterDistance,T=m._centerAltitude*y,C=m._camera,I=m._camera.forward(),F=hs([],Vo([],I,-b),[0,0,T]),N=m.worldSize/(2*Math.PI),V=[0,0,-N],H=m.width/m.height,J=Math.tan(m.fovAboveCenter),ne=Vo([],C.up(),J),he=Vo([],C.right(),J*H),we=Gn([],hs([],hs([],I,ne),he)),De=[];let Se;if(new uh(F,we).closestPointOnSphere(V,N,De)){const Ce=hs([],De,V),Ue=$o([],Ce,F);Se=Math.cos(m.fovAboveCenter)*nc(Ue)}else{const Ce=$o([],F,V),Ue=$o([],V,F);Gn(Ue,Ue);const Re=nc(Ce)-N;Se=Math.sqrt(Re*(Re+2*N));const nt=Math.acos(Se/(N+Re))-Math.acos(Eo(I,Ue));Se*=Math.cos(nt)}return 1.01*Se}(t,this.pixelsPerMeter(t.center.lat,t.worldSize)),d=wc(t.zoom);if(d>0){const m=Yf(t,bo(1,t.center.lat)*t.worldSize),y=t.worldSize/(2*Math.PI),b=Math.max(t.width,t.height)/t.worldSize*Math.PI;return Qi(s,m+y*(1-Math.cos(b)),Math.pow(d,10))}return s}upVector(t,s,d){return vc(s,d,t,1)}upVectorScale(t){return{metersToTile:Dh*Du(la(t))}}}function tp(l){const t=l.parallels,s=!!t&&Math.abs(t[0]+t[1])<.01;switch(l.name){case"mercator":return new Kf(l);case"equirectangular":return new Dg(l);case"naturalEarth":return new Lg(l);case"equalEarth":return new Pg(l);case"winkelTripel":return new Rg(l);case"albers":return s?new ep(l):new kg(l);case"lambertConformalConic":return s?new ep(l):new Bg(l);case"globe":return new zg(l)}throw new Error(`Invalid projection name: ${l.name}`)}const Fg=Hs.VectorTileFeature.types,Og=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function Ru(l,t,s,d,m,y,b,T,C,I,F,N,V){const H=T?Math.min(ds,Math.round(T[0])):0,J=T?Math.min(ds,Math.round(T[1])):0;l.emplaceBack(t,s,Math.round(32*d),Math.round(32*m),y,b,(H<<1)+(C?1:0),J,16*I,16*F,256*N,256*V)}function zu(l,t,s,d,m,y,b){l.emplaceBack(t,s,d,m,y,b)}function Fu(l,t,s,d,m){l.emplaceBack(t,s,d,m),l.emplaceBack(t,s,d,m),l.emplaceBack(t,s,d,m),l.emplaceBack(t,s,d,m)}function Ng(l){for(const t of l.sections)if(p(t.text))return!0;return!1}class zh{constructor(t){this.layoutVertexArray=new Lr,this.indexArray=new rr,this.programConfigurations=t,this.segments=new an,this.dynamicLayoutVertexArray=new nr,this.opacityVertexArray=new vr,this.placedSymbolArray=new Jh,this.globeExtVertexArray=new qr}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(t,s,d,m){this.isEmpty()||(d&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Vm.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,s),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,jm.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Og,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,$m.members,!0)),this.opacityVertexBuffer.itemSize=1),(d||m)&&this.programConfigurations.upload(t))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}}hi(zh,"SymbolBuffers");class Fh{constructor(t,s,d){this.layoutVertexArray=new t,this.layoutAttributes=s,this.indexArray=new d,this.segments=new an,this.collisionVertexArray=new Rr,this.collisionVertexArrayExt=new Or}upload(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,Gm.members,!0),this.collisionVertexBufferExt=t.createVertexBuffer(this.collisionVertexArrayExt,qm.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}hi(Fh,"CollisionBuffers");class ps{constructor(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(b=>b.id),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=aa([]),this.placementViewportMatrix=aa([]);const s=this.layers[0]._unevaluatedLayout._values;this.textSizeData=bh(this.zoom,s["text-size"]),this.iconSizeData=bh(this.zoom,s["icon-size"]);const d=this.layers[0].layout,m=d.get("symbol-sort-key"),y=d.get("symbol-z-order");this.canOverlap=d.get("text-allow-overlap")||d.get("icon-allow-overlap")||d.get("text-ignore-placement")||d.get("icon-ignore-placement"),this.sortFeaturesByKey=y!=="viewport-y"&&m.constantOr(1)!==void 0,this.sortFeaturesByY=(y==="viewport-y"||y==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=d.get("text-writing-mode").map(b=>_o[b]),this.stateDependentLayerIds=this.layers.filter(b=>b.isStateDependent()).map(b=>b.id),this.sourceID=t.sourceID,this.projection=t.projection}createArrays(){this.text=new zh(new $s(this.layers,this.zoom,t=>/^text/.test(t))),this.icon=new zh(new $s(this.layers,this.zoom,t=>/^icon/.test(t))),this.glyphOffsetArray=new rd,this.lineVertexArray=new nd,this.symbolInstances=new td}calculateGlyphDependencies(t,s,d,m,y){for(let b=0;b0)&&(C.value.kind!=="constant"||C.value.value.length>0),V=F.value.kind!=="constant"||!!F.value.value||Object.keys(F.parameters).length>0,H=b.get("symbol-sort-key");if(this.features=[],!N&&!V)return;const J=s.iconDependencies,ne=s.glyphDependencies,he=s.availableImages,we=new me(this.zoom);for(const{feature:De,id:Se,index:Ce,sourceLayerIndex:Ue}of t){const Re=y._featureFilter.needGeometry,nt=js(De,Re);if(!y._featureFilter.filter(we,nt,d))continue;if(Re||(nt.geometry=Da(De,d,m)),T&&De.type!==1&&d.z<=5){const lt=nt.geometry,wt=.98078528056;for(let Dt=0;DtEt,(Et,Ot)=>Eo(vc(Et.x,Et.y,d,1),vc(Ot.x,Ot.y,d,1))=0;for(const Dt of it.sections)if(Dt.image)J[Dt.image.name]=!0;else{const Et=gl(it.toString()),Ot=Dt.fontStack||lt,Bt=ne[Ot]=ne[Ot]||{};this.calculateGlyphDependencies(Dt.text,Bt,wt,this.allowVerticalPlacement,Et)}}}b.get("symbol-placement")==="line"&&(this.features=function(De){const Se={},Ce={},Ue=[];let Re=0;function nt(lt){Ue.push(De[lt]),Re++}function it(lt,wt,Dt){const Et=Ce[lt];return delete Ce[lt],Ce[wt]=Et,Ue[Et].geometry[0].pop(),Ue[Et].geometry[0]=Ue[Et].geometry[0].concat(Dt[0]),Et}function yt(lt,wt,Dt){const Et=Se[wt];return delete Se[wt],Se[lt]=Et,Ue[Et].geometry[0].shift(),Ue[Et].geometry[0]=Dt[0].concat(Ue[Et].geometry[0]),Et}function Zt(lt,wt,Dt){const Et=Dt?wt[0][wt[0].length-1]:wt[0][0];return`${lt}:${Et.x}:${Et.y}`}for(let lt=0;ltlt.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((De,Se)=>De.sortKey-Se.sortKey)}update(t,s,d,m){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,s,this.layers,d,m),this.icon.programConfigurations.updatePaintArrays(t,s,this.layers,d,m))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||(this.projectionInstance=tp(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(t,s){const d=this.lineVertexArray.length,m=t.segment;if(m!==void 0){let y=t.dist(s[m+1]),b=t.dist(s[m]);const T={};for(let C=m+1;C=0;C--)T[C]={x:s[C].x,y:s[C].y,tileUnitDistanceFromAnchor:b},C>0&&(b+=s[C-1].dist(s[C]));for(let C=0;C=0?s.rightJustifiedTextSymbolIndex:s.centerJustifiedTextSymbolIndex>=0?s.centerJustifiedTextSymbolIndex:s.leftJustifiedTextSymbolIndex>=0?s.leftJustifiedTextSymbolIndex:s.verticalPlacedTextSymbolIndex>=0?s.verticalPlacedTextSymbolIndex:m),b=Eu(this.textSizeData,t,y)/An;return this.tilePixelRatio*b}getSymbolInstanceIconSize(t,s,d){const m=this.icon.placedSymbolArray.get(d),y=Eu(this.iconSizeData,t,m);return this.tilePixelRatio*y}_commitDebugCollisionVertexUpdate(t,s,d){t.emplaceBack(s,-d,-d),t.emplaceBack(s,d,-d),t.emplaceBack(s,d,d),t.emplaceBack(s,-d,d)}_updateTextDebugCollisionBoxes(t,s,d,m,y,b){for(let T=m;T0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,s){const d=t.placedSymbolArray.get(s),m=d.vertexStartIndex+4*d.numGlyphs;for(let y=d.vertexStartIndex;ym[T]-m[C]||y[C]-y[T]),b}addToSortKeyRanges(t,s){const d=this.sortKeyRanges[this.sortKeyRanges.length-1];d&&d.sortKey===s?d.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:s,symbolInstanceStart:t,symbolInstanceEnd:t+1})}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const s of this.symbolInstanceIndexes){const d=this.symbolInstances.get(s);this.featureSortOrder.push(d.featureIndex),[d.rightJustifiedTextSymbolIndex,d.centerJustifiedTextSymbolIndex,d.leftJustifiedTextSymbolIndex].forEach((m,y,b)=>{m>=0&&b.indexOf(m)===y&&this.addIndicesForPlacedSymbol(this.text,m)}),d.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,d.verticalPlacedTextSymbolIndex),d.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,d.placedIconSymbolIndex),d.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,d.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}hi(ps,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),ps.MAX_GLYPHS=65535,ps.addDynamicAttributes=Fu;const Ug=new bt({"symbol-placement":new ze(qe.layout_symbol["symbol-placement"]),"symbol-spacing":new ze(qe.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ze(qe.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ge(qe.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ze(qe.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ze(qe.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new ze(qe.layout_symbol["icon-ignore-placement"]),"icon-optional":new ze(qe.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ze(qe.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ge(qe.layout_symbol["icon-size"]),"icon-text-fit":new ze(qe.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ze(qe.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ge(qe.layout_symbol["icon-image"]),"icon-rotate":new Ge(qe.layout_symbol["icon-rotate"]),"icon-padding":new ze(qe.layout_symbol["icon-padding"]),"icon-keep-upright":new ze(qe.layout_symbol["icon-keep-upright"]),"icon-offset":new Ge(qe.layout_symbol["icon-offset"]),"icon-anchor":new Ge(qe.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ze(qe.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ze(qe.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ze(qe.layout_symbol["text-rotation-alignment"]),"text-field":new Ge(qe.layout_symbol["text-field"]),"text-font":new Ge(qe.layout_symbol["text-font"]),"text-size":new Ge(qe.layout_symbol["text-size"]),"text-max-width":new Ge(qe.layout_symbol["text-max-width"]),"text-line-height":new Ge(qe.layout_symbol["text-line-height"]),"text-letter-spacing":new Ge(qe.layout_symbol["text-letter-spacing"]),"text-justify":new Ge(qe.layout_symbol["text-justify"]),"text-radial-offset":new Ge(qe.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ze(qe.layout_symbol["text-variable-anchor"]),"text-anchor":new Ge(qe.layout_symbol["text-anchor"]),"text-max-angle":new ze(qe.layout_symbol["text-max-angle"]),"text-writing-mode":new ze(qe.layout_symbol["text-writing-mode"]),"text-rotate":new Ge(qe.layout_symbol["text-rotate"]),"text-padding":new ze(qe.layout_symbol["text-padding"]),"text-keep-upright":new ze(qe.layout_symbol["text-keep-upright"]),"text-transform":new Ge(qe.layout_symbol["text-transform"]),"text-offset":new Ge(qe.layout_symbol["text-offset"]),"text-allow-overlap":new ze(qe.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new ze(qe.layout_symbol["text-ignore-placement"]),"text-optional":new ze(qe.layout_symbol["text-optional"])});var Oh={paint:new bt({"icon-opacity":new Ge(qe.paint_symbol["icon-opacity"]),"icon-color":new Ge(qe.paint_symbol["icon-color"]),"icon-halo-color":new Ge(qe.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ge(qe.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ge(qe.paint_symbol["icon-halo-blur"]),"icon-translate":new ze(qe.paint_symbol["icon-translate"]),"icon-translate-anchor":new ze(qe.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ge(qe.paint_symbol["text-opacity"]),"text-color":new Ge(qe.paint_symbol["text-color"],{runtimeType:kn,getOverride:l=>l.textColor,hasOverride:l=>!!l.textColor}),"text-halo-color":new Ge(qe.paint_symbol["text-halo-color"]),"text-halo-width":new Ge(qe.paint_symbol["text-halo-width"]),"text-halo-blur":new Ge(qe.paint_symbol["text-halo-blur"]),"text-translate":new ze(qe.paint_symbol["text-translate"]),"text-translate-anchor":new ze(qe.paint_symbol["text-translate-anchor"])}),layout:Ug};class ip{constructor(t){this.type=t.property.overrides?t.property.overrides.runtimeType:So,this.defaultValue=t}evaluate(t){if(t.formattedSection){const s=this.defaultValue.property.overrides;if(s&&s.hasOverride(t.formattedSection))return s.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}hi(ip,"FormatSectionOverride",{omit:["defaultValue"]});class Ou extends Uo{constructor(t){super(t,Oh)}recalculate(t,s){super.recalculate(t,s),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const d=this.layout.get("text-writing-mode");if(d){const m=[];for(const y of d)m.indexOf(y)<0&&m.push(y);this.layout._values["text-writing-mode"]=m}else this.layout._values["text-writing-mode"]=this.layout.get("symbol-placement")==="point"?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(t,s,d,m){const y=this.layout.get(t).evaluate(s,{},d,m),b=this._unevaluatedLayout._values[t];return b.isDataDriven()||al(b.value)||!y?y:function(T,C){return C.replace(/{([^{}]+)}/g,(I,F)=>F in T?String(T[F]):"")}(s.properties,y)}createBucket(t){return new ps(t)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const t of Oh.paint.overridableProperties){if(!Ou.hasPaintOverride(this.layout,t))continue;const s=this.paint.get(t),d=new ip(s),m=new ia(d,s.property.specification);let y=null;y=s.value.kind==="constant"||s.value.kind==="source"?new Fl("source",m):new Is("composite",m,s.value.zoomStops,s.value._interpolationType),this.paint._values[t]=new Pe(s.property,y,s.parameters)}}_handleOverridablePaintPropertyUpdate(t,s,d){return!(!this.layout||s.isDataDriven()||d.isDataDriven())&&Ou.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,s){const d=t.get("text-field"),m=Oh.paint.properties[s];let y=!1;const b=T=>{for(const C of T)if(m.overrides&&m.overrides.hasOverride(C))return void(y=!0)};if(d.value.kind==="constant"&&d.value.value instanceof Ze)b(d.value.value.sections);else if(d.value.kind==="source"){const T=I=>{y||(I instanceof _i&&Xt(I.value)===pa?b(I.value.sections):I instanceof vi?b(I.sections):I.eachChild(T))},C=d.value;C._styleExpression&&T(C._styleExpression.expression)}return y}getProgramConfiguration(t){return new cs(this,t)}}var Vg={paint:new bt({"background-color":new ze(qe.paint_background["background-color"]),"background-pattern":new zt(qe.paint_background["background-pattern"]),"background-opacity":new ze(qe.paint_background["background-opacity"])})},$g={paint:new bt({"raster-opacity":new ze(qe.paint_raster["raster-opacity"]),"raster-hue-rotate":new ze(qe.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new ze(qe.paint_raster["raster-brightness-min"]),"raster-brightness-max":new ze(qe.paint_raster["raster-brightness-max"]),"raster-saturation":new ze(qe.paint_raster["raster-saturation"]),"raster-contrast":new ze(qe.paint_raster["raster-contrast"]),"raster-resampling":new ze(qe.paint_raster["raster-resampling"]),"raster-fade-duration":new ze(qe.paint_raster["raster-fade-duration"])})};class jg extends Uo{constructor(t){super(t,{}),this.implementation=t}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl)}onRemove(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl)}}var Gg={paint:new bt({"sky-type":new ze(qe.paint_sky["sky-type"]),"sky-atmosphere-sun":new ze(qe.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new ze(qe.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new ze(qe.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new ze(qe.paint_sky["sky-gradient-radius"]),"sky-gradient":new Ye(qe.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new ze(qe.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new ze(qe.paint_sky["sky-atmosphere-color"]),"sky-opacity":new ze(qe.paint_sky["sky-opacity"])})};function Nh(l,t,s){const d=[0,0,1],m=zd([]);return Od(m,m,s?-q(l)+Math.PI:q(l)),Fd(m,m,-q(t)),Bd(d,d,m),Gn(d,d)}const qg={circle:class extends Uo{constructor(l){super(l,Wp)}createBucket(l){return new eh(l)}queryRadius(l){const t=l;return vl("circle-radius",this,t)+vl("circle-stroke-width",this,t)+cu(this.paint.get("circle-translate"))}queryIntersectsFeature(l,t,s,d,m,y,b,T){const C=Ad(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),y.angle,l.pixelToTileUnitsFactor),I=this.paint.get("circle-radius").evaluate(t,s)+this.paint.get("circle-stroke-width").evaluate(t,s);return Nd(l,d,y,b,T,this.paint.get("circle-pitch-alignment")==="map",this.paint.get("circle-pitch-scale")==="map",C,I)}getProgramIds(){return["circle"]}getProgramConfiguration(l){return new cs(this,l)}},heatmap:class extends Uo{createBucket(l){return new Vd(l)}constructor(l){super(l,im),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(l){l==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=ph({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(l){return vl("heatmap-radius",this,l)}queryIntersectsFeature(l,t,s,d,m,y,b,T){const C=this.paint.get("heatmap-radius").evaluate(t,s);return Nd(l,d,y,b,T,!0,!0,new k(0,0),C)}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(l){return new cs(this,l)}},hillshade:class extends Uo{constructor(l){super(l,rm)}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}getProgramIds(){return["hillshade","hillshadePrepare"]}},fill:class extends Uo{constructor(l){super(l,vm)}getProgramIds(){const l=this.paint.get("fill-pattern"),t=l&&l.constantOr(1),s=[t?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&s.push(t&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),s}getProgramConfiguration(l){return new cs(this,l)}recalculate(l,t){super.recalculate(l,t);const s=this.paint._values["fill-outline-color"];s.value.kind==="constant"&&s.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(l){return new yu(l)}queryRadius(){return cu(this.paint.get("fill-translate"))}queryIntersectsFeature(l,t,s,d,m,y){return!l.queryGeometry.isAboveHorizon&&wd(Md(l.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),y.angle,l.pixelToTileUnitsFactor),d)}isTileClipped(){return!0}},"fill-extrusion":class extends Uo{constructor(l){super(l,Bm)}createBucket(l){return new dc(l)}queryRadius(){return cu(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(l){return new cs(this,l)}queryIntersectsFeature(l,t,s,d,m,y,b,T,C){const I=Ad(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),y.angle,l.pixelToTileUnitsFactor),F=this.paint.get("fill-extrusion-height").evaluate(t,s),N=this.paint.get("fill-extrusion-base").evaluate(t,s),V=[0,0],H=T&&y.elevation,J=y.elevation?y.elevation.exaggeration():1,ne=l.tile.getBucket(this);if(H&&ne instanceof dc){const De=ne.centroidVertexArray,Se=C+1;if(SeDe.polygon).flat());const he=function(De,Se,Ce,Ue,Re,nt,it,yt,Zt,lt,wt){return De.projection.name==="globe"?function(Dt,Et,Ot,Bt,ii,Yi,Ji,ki,Yt,or,Zi){const ui=[],Cr=[],Tr=Dt.projection.upVectorScale(Zi,Dt.center.lat,Dt.worldSize).metersToTile,Nr=[0,0,0,1],ir=[0,0,0,1],dr=(Sr,br,zr,$r)=>{Sr[0]=br,Sr[1]=zr,Sr[2]=$r,Sr[3]=1},Ir=of();Ot>0&&(Ot+=Ir),Bt+=Ir;for(const Sr of Et){const br=[],zr=[];for(const $r of Sr){const gn=$r.x+ii.x,Kn=$r.y+ii.y,cr=Dt.projection.projectTilePoint(gn,Kn,Zi),Yr=Dt.projection.upVector(Zi,$r.x,$r.y);let Fn=Ot,mr=Bt;if(Ji){const jr=uf(gn,Kn,Ot,Bt,Ji,ki,Yt,or);Fn+=jr.base,mr+=jr.top}Ot!==0?dr(Nr,cr.x+Yr[0]*Tr*Fn,cr.y+Yr[1]*Tr*Fn,cr.z+Yr[2]*Tr*Fn):dr(Nr,cr.x,cr.y,cr.z),dr(ir,cr.x+Yr[0]*Tr*mr,cr.y+Yr[1]*Tr*mr,cr.z+Yr[2]*Tr*mr),cn(Nr,Nr,Yi),cn(ir,ir,Yi),br.push(bu(Nr)),zr.push(bu(ir))}ui.push(br),Cr.push(zr)}return[ui,Cr]}(De,Se,Ce,Ue,Re,nt,it,yt,Zt,lt,wt):it?function(Dt,Et,Ot,Bt,ii,Yi,Ji,ki,Yt){const or=[],Zi=[],ui=[0,0,0,1];for(const Cr of Dt){const Tr=[],Nr=[];for(const ir of Cr){const dr=ir.x+Bt.x,Ir=ir.y+Bt.y,Sr=uf(dr,Ir,Et,Ot,Yi,Ji,ki,Yt);ui[0]=dr,ui[1]=Ir,ui[2]=Sr.base,ui[3]=1,Zs(ui,ui,ii),ui[3]=Math.max(ui[3],1e-5);const br=bu([ui[0]/ui[3],ui[1]/ui[3],ui[2]/ui[3]]);ui[0]=dr,ui[1]=Ir,ui[2]=Sr.top,ui[3]=1,Zs(ui,ui,ii),ui[3]=Math.max(ui[3],1e-5);const zr=bu([ui[0]/ui[3],ui[1]/ui[3],ui[2]/ui[3]]);Tr.push(br),Nr.push(zr)}or.push(Tr),Zi.push(Nr)}return[or,Zi]}(Se,Ce,Ue,Re,nt,it,yt,Zt,lt):function(Dt,Et,Ot,Bt,ii){const Yi=[],Ji=[],ki=ii[8]*Et,Yt=ii[9]*Et,or=ii[10]*Et,Zi=ii[11]*Et,ui=ii[8]*Ot,Cr=ii[9]*Ot,Tr=ii[10]*Ot,Nr=ii[11]*Ot;for(const ir of Dt){const dr=[],Ir=[];for(const Sr of ir){const br=Sr.x+Bt.x,zr=Sr.y+Bt.y,$r=ii[0]*br+ii[4]*zr+ii[12],gn=ii[1]*br+ii[5]*zr+ii[13],Kn=ii[2]*br+ii[6]*zr+ii[14],cr=ii[3]*br+ii[7]*zr+ii[15],Yr=$r+ki,Fn=gn+Yt,mr=Kn+or,jr=Math.max(cr+Zi,1e-5),Zn=$r+ui,Ur=gn+Cr,en=Kn+Tr,_n=Math.max(cr+Nr,1e-5),dn=new k(Yr/jr,Fn/jr);dn.z=mr/jr,dr.push(dn);const Cn=new k(Zn/_n,Ur/_n);Cn.z=en/_n,Ir.push(Cn)}Yi.push(dr),Ji.push(Ir)}return[Yi,Ji]}(Se,Ce,Ue,Re,nt)}(y,d,N,F,I,b,H?T:null,V,J,y.center.lat,l.tileID.canonical),we=l.queryGeometry;return function(De,Se,Ce){let Ue=1/0;wd(Ce,Se)&&(Ue=cf(Ce,Se[0]));for(let Re=0;Re=3){for(let J=0;J1&&(C=t[++T]);const F=Math.abs(I-C.left),N=Math.abs(I-C.right),V=Math.min(F,N);let H;const J=y/d*(m+1);if(C.isDash){const ne=m-Math.abs(J);H=Math.sqrt(V*V+ne*ne)}else H=m-Math.sqrt(V*V+J*J);this.image.data[b+I]=Math.max(0,Math.min(255,H+128))}}}addRegularDash(t,s){for(let C=t.length-1;C>=0;--C){const I=t[C],F=t[C+1];I.zeroLength?t.splice(C,1):F&&F.isDash===I.isDash&&(F.left=I.left,t.splice(C,1))}const d=t[0],m=t[t.length-1];d.isDash===m.isDash&&(d.left=m.left-this.width,m.right=d.right+this.width);const y=this.width*this.nextRow;let b=0,T=t[b];for(let C=0;C1&&(T=t[++b]);const I=Math.abs(C-T.left),F=Math.abs(C-T.right),N=Math.min(I,F);this.image.data[y+C]=Math.max(0,Math.min(255,(T.isDash?N:-N)+s+128))}}addDash(t,s){const d=this.getKey(t,s);if(this.positions[d])return this.positions[d];const m=s==="round",y=m?7:0,b=2*y+1;if(this.nextRow+b>this.height)return gt("LineAtlas out of space"),null;t.length===0&&t.push(1);let T=0;for(let F=0;F{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){this._channel=void 0,this._callback=()=>{}}}class Xg{constructor(){this.tasks={},this.taskQueue=[],Ft(["process"],this),this.invoker=new Zg(this.process),this.nextId=0}add(t,s){const d=this.nextId++,m=function({type:y,isSymbolTile:b,zoom:T}){return T=T||0,y==="message"?0:y!=="maybePrepare"||b?y!=="parseTile"||b?y==="parseTile"&&b?300-T:y==="maybePrepare"&&b?400-T:500:200-T:100-T}(s);if(m===0){xt();try{t()}finally{}return{cancel:()=>{}}}return this.tasks[d]={fn:t,metadata:s,priority:m,id:d},this.taskQueue.push(d),this.invoker.trigger(),{cancel:()=>{delete this.tasks[d]}}}process(){xt();try{if(this.taskQueue=this.taskQueue.filter(d=>!!this.tasks[d]),!this.taskQueue.length)return;const t=this.pick();if(t===null)return;const s=this.tasks[t];if(delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),!s)return;s.fn()}finally{}}pick(){let t=null,s=1/0;for(let m=0;m>=1)>1;){const I=s+m>>1,F=d+y>>1;1&t?(m=s,y=d,s=b,d=T):(s=m,d=y,m=b,y=T),b=I,T=F}const C=4*l;ms[C+0]=s,ms[C+1]=d,ms[C+2]=m,ms[C+3]=y}const ua=new Uint16Array(2178),gs=new Uint8Array(1089),Nu=new Uint16Array(1089);function op(l){return l===0?-.03125:l===32?.03125:0}var ap=Tt([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const sp={type:2,extent:Oi,loadGeometry:()=>[[new k(0,0),new k(8193,0),new k(8193,8193),new k(0,8193),new k(0,0)]]};class Vh{constructor(t,s,d,m,y){this.tileID=t,this.uid=Me(),this.uses=0,this.tileSize=s,this.tileZoom=d,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=y,this.expiredRequestCount=0,this.state="loading",m&&m.transform&&(this.projection=m.transform.projection)}registerFadeDuration(t){const s=t+this.timeAdded;sy.getLayer(I)).filter(Boolean);if(C.length!==0){T.layers=C,T.stateDependentLayerIds&&(T.stateDependentLayers=T.stateDependentLayerIds.map(I=>C.filter(F=>F.id===I)[0]));for(const I of C)b[I.id]=T}}return b}(t.buckets,s.style),this.hasSymbolBuckets=!1;for(const m in this.buckets){const y=this.buckets[m];if(y instanceof ps){if(this.hasSymbolBuckets=!0,!d)break;y.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const m in this.buckets){const y=this.buckets[m];if(y instanceof ps&&y.hasRTLText){this.hasRTLText=!0,pe.isLoading()||pe.isLoaded()||le()!=="deferred"||ye();break}}this.queryPadding=0;for(const m in this.buckets){const y=this.buckets[m];this.queryPadding=Math.max(this.queryPadding,s.style.getLayer(m).queryRadius(y))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage),t.lineAtlas&&(this.lineAtlas=t.lineAtlas)}else this.collisionBoxArray=new ra}unloadVectorData(){if(this.hasData()){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(t){return this.buckets[t.id]}upload(t){for(const d in this.buckets){const m=this.buckets[d];m.uploadPending()&&m.upload(t)}const s=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Ac(t,this.imageAtlas.image,s.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Ac(t,this.glyphAtlasImage,s.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new Ac(t,this.lineAtlas.image,s.ALPHA),this.lineAtlas.uploaded=!0)}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)}queryRenderedFeatures(t,s,d,m,y,b,T,C){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:m,pixelPosMatrix:T,transform:b,params:y,tileTransform:this.tileTransform},t,s,d):{}}querySourceFeatures(t,s){const d=this.latestFeatureIndex;if(!d||!d.rawTileData)return;const m=d.loadVTLayers(),y=s?s.sourceLayer:"",b=m._geojsonTileLayer||m[y];if(!b)return;const T=Bs(s&&s.filter),{z:C,x:I,y:F}=this.tileID.canonical,N={z:C,x:I,y:F};for(let V=0;Vd)m=!1;else if(s)if(this.expirationTime=0;he--){const we=4*he,De=ms[we+0],Se=ms[we+1],Ce=ms[we+2],Ue=ms[we+3],Re=De+Ce>>1,nt=Se+Ue>>1,it=Re+nt-Se,yt=nt+De-Re,Zt=Se*ca+De,lt=Ue*ca+Ce,wt=nt*ca+Re,Dt=Math.hypot((ua[2*Zt+0]+ua[2*lt+0])/2-ua[2*wt+0],(ua[2*Zt+1]+ua[2*lt+1])/2-ua[2*wt+1])>=16;if(gs[wt]=gs[wt]||(Dt?1:0),he<1022){const Et=(Se+yt>>1)*ca+(De+it>>1),Ot=(Ue+yt>>1)*ca+(Ce+it>>1);gs[wt]=gs[wt]||gs[Et]||gs[Ot]}}const N=new Di,V=new rr;let H=0;function J(he,we){const De=we*ca+he;return Nu[De]===0&&(N.emplaceBack(ua[2*De+0],ua[2*De+1],he*Oi/To,we*Oi/To),Nu[De]=++H),Nu[De]-1}function ne(he,we,De,Se,Ce,Ue){const Re=he+De>>1,nt=we+Se>>1;if(Math.abs(he-Ce)+Math.abs(we-Ue)>1&&gs[nt*ca+Re])ne(Ce,Ue,he,we,Re,nt),ne(De,Se,Ce,Ue,Re,nt);else{const it=J(he,we),yt=J(De,Se),Zt=J(Ce,Ue);V.emplaceBack(it,yt,Zt)}}return ne(0,0,To,To,To,0),ne(To,To,0,0,0,To),{vertices:N,indices:V}}(this.tileID.canonical,s);m=b.vertices,y=b.indices}else{m=new Di,y=new rr;for(const{x:T,y:C}of d)m.emplaceBack(T,C,0,0);const b=fu(m.int16,void 0,4);for(let T=0;T0&&(T=rh(new Float64Array(16),s.globeMatrix));const C=(m.x+.5)/(1<.5?I=-1:C<-.5&&(I=1),this._makeGlobeTileDebugBorderBuffer(t,m,s,y,T,b,I),this._makeGlobeTileDebugTextBuffer(t,m,s,y,T,b,I)}_globePoint(t,s,d,m,y,b,T,C){let I=vc(t,s,d);if(b){const F=1<{const De=(ne-H)/(we-1),Se=(he-J)/(we-1),Ce=C.length;for(let Ue=0;UeN*H+J;for(let H=0;Ht[b])return null}else{const T=1/d[b];let C=(l[b]-s[b])*T,I=(t[b]-s[b])*T;if(C>I){const F=C;C=I,I=F}if(C>m&&(m=C),Iy)return null}return m}function up(l,t,s,d,m,y,b,T,C,I,F){const N=d-l,V=m-t,H=y-s,J=b-l,ne=T-t,he=C-s,we=F[1]*he-F[2]*ne,De=F[2]*J-F[0]*he,Se=F[0]*ne-F[1]*J,Ce=N*we+V*De+H*Se;if(Math.abs(Ce)<1e-15)return null;const Ue=1/Ce,Re=I[0]-l,nt=I[1]-t,it=I[2]-s,yt=(Re*we+nt*De+it*Se)*Ue;if(yt<0||yt>1)return null;const Zt=nt*H-it*V,lt=it*N-Re*H,wt=Re*V-nt*N,Dt=(F[0]*Zt+F[1]*lt+F[2]*wt)*Ue;return Dt<0||yt+Dt>1?null:(J*Zt+ne*lt+he*wt)*Ue}function hp(l,t,s){return(l-t)/(s-t)}function dp(l,t,s,d,m,y,b,T,C){const I=1<{const De=he?1:0,Se=(H+1)*ne-De,Ce=J*ne,Ue=(J+1)*ne-De;we[0]=H*ne,we[1]=Ce,we[2]=Se,we[3]=Ue};let N=new lp(C);const V=[];for(let H=0;H=1;C/=2){const H=T[T.length-1];N=new lp(C);for(let J=0;J0;){const{idx:J,t:ne,nodex:he,nodey:we,depth:De}=H.pop();if(this.leaves[J]){dp(he,we,De,t,s,d,m,N,V);const Ce=1<=Bt[2])return ne}continue}let Se=0;for(let Ce=0;Ce=I[F[it]]&&(F.splice(it,0,Ce),nt=!0);nt||(F[Se]=Ce),Se++}}for(let Ce=0;Ce=this.dim+1||s<-1||s>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(s+1)*this.stride+(t+1)}_unpackMapbox(t,s,d){return(256*t*256+256*s+d)/10-1e4}_unpackTerrarium(t,s,d){return 256*t+s+d/256-32768}static pack(t,s){const d=[0,0,0,0],m=Uu.getUnpackVector(s);let y=Math.floor((t+m[3])/m[2]);return d[2]=y%256,y=Math.floor(y/256),d[1]=y%256,y=Math.floor(y/256),d[0]=y,d}getPixels(){return new no({width:this.stride,height:this.stride},this.pixels)}backfillBorder(t,s,d){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let m=s*this.dim,y=s*this.dim+this.dim,b=d*this.dim,T=d*this.dim+this.dim;switch(s){case-1:m=y-1;break;case 1:y=m+1}switch(d){case-1:b=T-1;break;case 1:T=b+1}const C=-s*this.dim,I=-d*this.dim;for(let F=b;F{this.remove(t,y)},d)),this.data[m].push(y),this.order.push(m),this.order.length>this.max){const b=this._getAndRemoveByKey(this.order[0]);b&&this.onRemove(b)}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const s=this.data[t].shift();return s.timeout&&clearTimeout(s.timeout),this.data[t].length===0&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),s.value}getByKey(t){const s=this.data[t];return s?s[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,s){if(!this.has(t))return this;const d=t.wrapped().key,m=s===void 0?0:this.data[d].indexOf(s),y=this.data[d][m];return this.data[d].splice(m,1),y.timeout&&clearTimeout(y.timeout),this.data[d].length===0&&delete this.data[d],this.onRemove(y.value),this.order.splice(this.order.indexOf(d),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const s=this._getAndRemoveByKey(this.order[0]);s&&this.onRemove(s)}return this}filter(t){const s=[];for(const d in this.data)for(const m of this.data[d])t(m.value)||s.push(m);for(const d of s)this.remove(d.value.tileID,d)}}class Ll{constructor(t,s,d){this.func=t,this.mask=s,this.range=d}}Ll.ReadOnly=!1,Ll.ReadWrite=!0,Ll.disabled=new Ll(519,Ll.ReadOnly,[0,1]);const $h=7680;class jh{constructor(t,s,d,m,y,b){this.test=t,this.ref=s,this.mask=d,this.fail=m,this.depthFail=y,this.pass=b}}jh.disabled=new jh({func:519,mask:0},0,0,$h,$h,$h);class ha{constructor(t,s,d){this.blendFunction=t,this.blendColor=s,this.mask=d}}ha.Replace=[1,0],ha.disabled=new ha(ha.Replace,ae.transparent,[!1,!1,!1,!1]),ha.unblended=new ha(ha.Replace,ae.transparent,[!0,!0,!0,!0]),ha.alphaBlended=new ha([1,771],ae.transparent,[!0,!0,!0,!0]);const Gh=1029,qh=2305;class qo{constructor(t,s,d){this.enable=t,this.mode=s,this.frontFace=d}}qo.disabled=new qo(!1,Gh,qh),qo.backCCW=new qo(!0,Gh,qh),qo.backCW=new qo(!0,Gh,2304),qo.frontCW=new qo(!0,1028,2304),qo.frontCCW=new qo(!0,1028,qh);class Ys extends ht{constructor(t,s,d){super(),this.id=t,this._onlySymbols=d,s.on("data",m=>{m.dataType==="source"&&m.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&m.dataType==="source"&&m.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform))}),s.on("error",()=>{this._sourceErrored=!0}),this._source=s,this._tiles={},this._cache=new Yg(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=s.minTileCacheSize,this._maxTileCacheSize=s.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new Wg,this._isRaster=this._source.type==="raster"||this._source.type==="raster-dem"||this._source.type==="custom"&&this._source._dataType==="raster"}onAdd(t){this.map=t,this._minTileCacheSize=this._minTileCacheSize===void 0&&t?t._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=this._maxTileCacheSize===void 0&&t?t._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const t in this._tiles){const s=this._tiles[t];if(s.state!=="loaded"&&s.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(t,s){return t.isSymbolTile=this._onlySymbols,this._source.loadTile(t,s)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,()=>{})}_abortTile(t){if(this._source.abortTile)return this._source.abortTile(t,()=>{})}serialize(){return this._source.serialize()}prepare(t){if(this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._source.prepareTile)for(const s in this._tiles){const d=this._tiles[s];this._source.prepareTile(d)&&this.map.painter.terrain&&this.map.painter.terrain._clearRenderCacheForTile(this.id,d.tileID),d.upload(t),d.prepare(this.map.style.imageManager)}else for(const s in this._tiles){const d=this._tiles[s];d.upload(t),d.prepare(this.map.style.imageManager)}}getIds(){return _e(this._tiles).map(t=>t.tileID).sort(gp).map(t=>t.key)}getRenderableIds(t){const s=[];for(const d in this._tiles)this._isIdRenderable(+d,t)&&s.push(this._tiles[d]);return t?s.sort((d,m)=>{const y=d.tileID,b=m.tileID,T=new k(y.canonical.x,y.canonical.y)._rotate(this.transform.angle),C=new k(b.canonical.x,b.canonical.y)._rotate(this.transform.angle);return y.overscaledZ-b.overscaledZ||C.y-T.y||C.x-T.x}).map(d=>d.tileID.key):s.map(d=>d.tileID).sort(gp).map(d=>d.key)}hasRenderableParent(t){const s=this.findLoadedParent(t,0);return!!s&&this._isIdRenderable(s.tileID.key)}_isIdRenderable(t,s){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(s||!this._tiles[t].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const t in this._tiles)this._tiles[t].state!=="errored"&&this._reloadTile(+t,"reloading")}}_reloadTile(t,s){const d=this._tiles[t];d&&(d.state!=="loading"&&(d.state=s),this._loadTile(d,this._tileLoaded.bind(this,d,t,s)))}_tileLoaded(t,s,d,m){if(m)if(t.state="errored",m.status!==404)this._source.fire(new Gt(m,{tile:t}));else if(this._source.type==="raster-dem"&&this.usedForTerrain&&this.map.painter.terrain){const y=this.map.painter.terrain;this.update(this.transform,y.getScaledDemTileSize(),!0),y.resetTileLookupCache(this.id)}else this.update(this.transform);else t.timeAdded=Si.now(),d==="expired"&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(s,t),this._source.type==="raster-dem"&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),this._source.fire(new Le("data",{dataType:"source",tile:t,coord:t.tileID,sourceCacheId:this.id}))}_backfillDEM(t){const s=this.getRenderableIds();for(let m=0;m1||(Math.abs(b)>1&&(Math.abs(b+C)===1?b+=C:Math.abs(b-C)===1&&(b-=C)),y.dem&&m.dem&&(m.dem.backfillBorder(y.dem,b,T),m.neighboringTiles&&m.neighboringTiles[I]&&(m.neighboringTiles[I].backfilled=!0)))}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,s,d,m){for(const y in this._tiles){let b=this._tiles[y];if(m[y]||!b.hasData()||b.tileID.overscaledZ<=s||b.tileID.overscaledZ>d)continue;let T=b.tileID;for(;b&&b.tileID.overscaledZ>s+1;){const I=b.tileID.scaledTo(b.tileID.overscaledZ-1);b=this._tiles[I.key],b&&b.hasData()&&(T=I)}let C=T;for(;C.overscaledZ>s;)if(C=C.scaledTo(C.overscaledZ-1),t[C.key]){m[T.key]=T;break}}}findLoadedParent(t,s){if(t.key in this._loadedParentTiles){const d=this._loadedParentTiles[t.key];return d&&d.tileID.overscaledZ>=s?d:null}for(let d=t.overscaledZ-1;d>=s;d--){const m=t.scaledTo(d),y=this._getLoadedTile(m);if(y)return y}}_getLoadedTile(t){const s=this._tiles[t.key];return s&&s.hasData()?s:this._cache.getByKey(this._source.reparseOverscaled?t.wrapped().key:t.canonical.key)}updateCacheSize(t,s){s=s||this._source.tileSize;const d=Math.ceil(t.width/s)+1,m=Math.ceil(t.height/s)+1,y=Math.floor(d*m*5),b=typeof this._minTileCacheSize=="number"?Math.max(this._minTileCacheSize,y):y,T=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,b):b;this._cache.setMaxSize(T)}handleWrapJump(t){const s=Math.round((t-(this._prevLng===void 0?t:this._prevLng))/360);if(this._prevLng=t,s){const d={};for(const m in this._tiles){const y=this._tiles[m];y.tileID=y.tileID.unwrapTo(y.tileID.wrap+s),d[y.tileID.key]=y}this._tiles=d;for(const m in this._timers)clearTimeout(this._timers[m]),delete this._timers[m];for(const m in this._tiles)this._setTileReloadTimer(+m,this._tiles[m])}}update(t,s,d){if(this.transform=t,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!d)return;let m;this.updateCacheSize(t,s),this.transform.projection.name!=="globe"&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?m=t.getVisibleUnwrappedCoordinates(this._source.tileID).map(T=>new qn(T.canonical.z,T.wrap,T.canonical.z,T.canonical.x,T.canonical.y)):(m=t.coveringTiles({tileSize:s||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!d,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(m=m.filter(T=>this._source.hasTile(T)))):m=[];const y=this._updateRetainedTiles(m);if(_p(this._source.type)&&m.length!==0){const T={},C={},I=Object.keys(y);for(const N of I){const V=y[N],H=this._tiles[N];if(!H||H.fadeEndTime&&H.fadeEndTime<=Si.now())continue;const J=this.findLoadedParent(V,Math.max(V.overscaledZ-Ys.maxOverzooming,this._source.minzoom));J&&(this._addTile(J.tileID),T[J.tileID.key]=J.tileID),C[N]=V}const F=m[m.length-1].overscaledZ;for(const N in this._tiles){const V=this._tiles[N];if(y[N]||!V.hasData())continue;let H=V.tileID;for(;H.overscaledZ>F;){H=H.scaledTo(H.overscaledZ-1);const J=this._tiles[H.key];if(J&&J.hasData()&&C[H.key]){y[N]=V.tileID;break}}}for(const N in T)y[N]||(this._coveredTiles[N]=!0,y[N]=T[N])}for(const T in y)this._tiles[T].clearFadeHold();const b=function(T,C){const I=[];for(const F in T)F in C||I.push(F);return I}(this._tiles,y);for(const T of b){const C=this._tiles[T];C.hasSymbolBuckets&&!C.holdingForFade()?C.setHoldDuration(this.map._fadeDuration):C.hasSymbolBuckets&&!C.symbolFadeFinished()||this._removeTile(+T)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(+t)}_updateRetainedTiles(t){const s={};if(t.length===0)return s;const d={},m=t.reduce((I,F)=>Math.min(I,F.overscaledZ),1/0),y=t[0].overscaledZ,b=Math.max(y-Ys.maxOverzooming,this._source.minzoom),T=Math.max(y+Ys.maxUnderzooming,this._source.minzoom),C={};for(const I of t){const F=this._addTile(I);s[I.key]=I,F.hasData()||m=this._source.maxzoom){const V=I.children(this._source.maxzoom)[0],H=this.getTile(V);if(H&&H.hasData()){s[V.key]=V;continue}}else{const V=I.children(this._source.maxzoom);if(s[V[0].key]&&s[V[1].key]&&s[V[2].key]&&s[V[3].key])continue}let N=F.wasRequested();for(let V=I.overscaledZ-1;V>=b;--V){const H=I.scaledTo(V);if(d[H.key]||(d[H.key]=!0,F=this.getTile(H),!F&&N&&(F=this._addTile(H)),F&&(s[H.key]=H,N=F.wasRequested(),F.hasData())))break}}return s}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const s=[];let d,m=this._tiles[t].tileID;for(;m.overscaledZ>0;){if(m.key in this._loadedParentTiles){d=this._loadedParentTiles[m.key];break}s.push(m.key);const y=m.scaledTo(m.overscaledZ-1);if(d=this._getLoadedTile(y),d)break;m=y}for(const y of s)this._loadedParentTiles[y]=d}}_addTile(t){let s=this._tiles[t.key];if(s)return this._source.prepareTile&&this._source.prepareTile(s),s;s=this._cache.getAndRemove(t),s&&(this._setTileReloadTimer(t.key,s),s.tileID=t,this._state.initializeTileState(s,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,s)));const d=Boolean(s);if(!d){const m=this.map?this.map.painter:null;s=new Vh(t,this._source.tileSize*t.overscaleFactor(),this.transform.tileZoom,m,this._isRaster),this._source.prepareTile&&this._source.prepareTile(s)||this._loadTile(s,this._tileLoaded.bind(this,s,t.key,s.state))}return s?(s.uses++,this._tiles[t.key]=s,d||this._source.fire(new Le("dataloading",{tile:s,coord:s.tileID,dataType:"source"})),s):null}_setTileReloadTimer(t,s){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const d=s.getExpiryTimeout();d&&(this._timers[t]=setTimeout(()=>{this._reloadTile(t,"expired"),delete this._timers[t]},d))}_removeTile(t){const s=this._tiles[t];s&&(s.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),s.uses>0||(s.hasData()&&s.state!=="reloading"?this._cache.add(s.tileID,s,s.getExpiryTimeout()):(s.aborted=!0,this._abortTile(s),this._unloadTile(s))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(+t);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id)}tilesIn(t,s,d){const m=[],y=this.transform;if(!y)return m;const b=y.projection.name==="globe",T=na(y.center.lng);for(const C in this._tiles){const I=this._tiles[C];if(d&&I.clearQueryDebugViz(),I.holdingForFade())continue;let F;if(b){const N=I.tileID.canonical;if(N.z===0){const V=[Math.abs(ie(T,...Cc(N,-1))-T),Math.abs(ie(T,...Cc(N,1))-T)];F=[0,2*V.indexOf(Math.min(...V))-1]}else{const V=[Math.abs(ie(T,...Cc(N,-1))-T),Math.abs(ie(T,...Cc(N,0))-T),Math.abs(ie(T,...Cc(N,1))-T)];F=[V.indexOf(Math.min(...V))-1]}}else F=[0];for(const N of F){const V=t.containsTile(I,y,s,N);V&&m.push(V)}}return m}getVisibleCoordinates(t){const s=this.getRenderableIds(t).map(d=>this._tiles[d].tileID);for(const d of s)d.projMatrix=this.transform.calculateProjMatrix(d.toUnwrapped());return s}hasTransition(){if(this._source.hasTransition())return!0;if(_p(this._source.type))for(const t in this._tiles){const s=this._tiles[t];if(s.fadeEndTime!==void 0&&s.fadeEndTime>=Si.now())return!0}return!1}setFeatureState(t,s,d){this._state.updateState(t=t||"_geojsonTileLayer",s,d)}removeFeatureState(t,s,d){this._state.removeFeatureState(t=t||"_geojsonTileLayer",s,d)}getFeatureState(t,s){return this._state.getState(t=t||"_geojsonTileLayer",s)}setDependencies(t,s,d){const m=this._tiles[t];m&&m.setDependencies(s,d)}reloadTilesForDependencies(t,s){for(const d in this._tiles)this._tiles[d].hasDependency(t,s)&&this._reloadTile(+d,"reloading");this._cache.filter(d=>!d.hasDependency(t,s))}_preloadTiles(t,s){const d=new Map,m=Array.isArray(t)?t:[t],y=this.map.painter.terrain,b=this.usedForTerrain&&y?y.getScaledDemTileSize():this._source.tileSize;for(const T of m){const C=T.coveringTiles({tileSize:b,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const I of C)d.set(I.key,I);this.usedForTerrain&&T.updateElevation(!1)}se(Array.from(d.values()),(T,C)=>{const I=new Vh(T,this._source.tileSize*T.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(I,F=>{this._source.type==="raster-dem"&&I.dem&&this._backfillDEM(I),C(F,I)})},s)}}function gp(l,t){const s=Math.abs(2*l.wrap)-+(l.wrap<0),d=Math.abs(2*t.wrap)-+(t.wrap<0);return l.overscaledZ-t.overscaledZ||d-s||t.canonical.y-l.canonical.y||t.canonical.x-l.canonical.x}function _p(l){return l==="raster"||l==="image"||l==="video"}function Cc(l,t){const s=1<=0&&N[3]>=0&&C.insert(T,N[0],N[1],N[2],N[3])}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new Hs.VectorTile(new gc(this.rawTileData)).layers,this.sourceLayerCoder=new rp(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const t in this.vtLayers)this.vtFeatures[t]=[]}return this.vtLayers}query(t,s,d,m){this.loadVTLayers();const y=t.params||{},b=Bs(y.filter),T=t.tileResult,C=t.transform,I=T.bufferedTilespaceBounds,F=this.grid.query(I.min.x,I.min.y,I.max.x,I.max.y,(J,ne,he,we)=>Sd(T.bufferedTilespaceGeometry,J,ne,he,we));F.sort(Kg);let N=null;C.elevation&&F.length>0&&(N=Vu.create(C.elevation,this.tileID));const V={};let H;for(let J=0;J(we||(we=Da(De,this.tileID.canonical,t.tileTransform)),Se.queryIntersectsFeature(T,De,Ce,we,this.z,t.transform,t.pixelPosMatrix,N,Ue)))}return V}loadMatchingFeature(t,s,d,m,y,b,T,C,I){const{featureIndex:F,bucketIndex:N,sourceLayerIndex:V,layoutVertexArrayOffset:H}=s,J=this.bucketLayerIDs[N];if(m&&!function(De,Se){for(let Ce=0;Ce=0)return!0;return!1}(m,J))return;const ne=this.sourceLayerCoder.decode(V),he=this.vtLayers[ne].feature(F);if(d.needGeometry){const De=js(he,!0);if(!d.filter(new me(this.tileID.overscaledZ),De,this.tileID.canonical))return}else if(!d.filter(new me(this.tileID.overscaledZ),he))return;const we=this.getId(he,ne);for(let De=0;De{const T=t instanceof Oe?t.get(b):null;return T&&T.evaluate?T.evaluate(s,d,m):T})}function Kg(l,t){return t-l}hi(yp,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});class vp{constructor(t){const s={},d=[];for(const T in t){const C=t[T],I=s[T]={};for(const F in C.glyphs){const N=C.glyphs[+F];if(!N||N.bitmap.width===0||N.bitmap.height===0)continue;const V=N.metrics.localGlyph?2:1,H={x:0,y:0,w:N.bitmap.width+2*V,h:N.bitmap.height+2*V};d.push(H),I[F]=H}}const{w:m,h:y}=Eh(d),b=new Ba({width:m||1,height:y||1});for(const T in t){const C=t[T];for(const I in C.glyphs){const F=C.glyphs[+I];if(!F||F.bitmap.width===0||F.bitmap.height===0)continue;const N=s[T][I],V=F.metrics.localGlyph?2:1;Ba.copy(F.bitmap,b,{x:0,y:0},{x:N.x+V,y:N.y+V},F.bitmap)}}this.image=b,this.positions=s}}hi(vp,"GlyphAtlas");class Qg{constructor(t){this.tileID=new qn(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.tileZoom=t.tileZoom,this.uid=t.uid,this.zoom=t.zoom,this.canonical=t.tileID.canonical,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=t.showCollisionBoxes,this.collectResourceTiming=!!t.collectResourceTiming,this.returnDependencies=!!t.returnDependencies,this.promoteId=t.promoteId,this.enableTerrain=!!t.enableTerrain,this.isSymbolTile=t.isSymbolTile,this.tileTransform=Ws(t.tileID.canonical,t.projection),this.projection=t.projection}parse(t,s,d,m,y){this.status="parsing",this.data=t,this.collisionBoxArray=new ra;const b=new rp(Object.keys(t.layers).sort()),T=new yp(this.tileID,this.promoteId);T.bucketLayerIDs=[];const C={},I=new Uh(256,256),F={featureIndex:T,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:I,availableImages:d},N=s.familiesBySource[this.source];for(const Ue in N){const Re=t.layers[Ue];if(!Re)continue;let nt=!1,it=!1;for(const lt of N[Ue])lt[0].type==="symbol"?nt=!0:it=!0;if(this.isSymbolTile===!0&&!nt||this.isSymbolTile===!1&&!it)continue;Re.version===1&>(`Vector tile source "${this.source}" layer "${Ue}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const yt=b.encode(Ue),Zt=[];for(let lt=0;lt=wt.maxzoom||wt.visibility!=="none"&&(Zh(lt,this.zoom,d),(C[wt.id]=wt.createBucket({index:T.bucketLayerIDs.length,layers:lt,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:yt,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:d})).populate(Zt,F,this.tileID.canonical,this.tileTransform),T.bucketLayerIDs.push(lt.map(Dt=>Dt.id)))}}let V,H,J,ne;I.trim();const he={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},we=Rt(F.glyphDependencies,Ue=>Object.keys(Ue).map(Number));Object.keys(we).length?m.send("getGlyphs",{uid:this.uid,stacks:we},(Ue,Re)=>{V||(V=Ue,H=Re,Ce.call(this))},void 0,!1,he):H={};const De=Object.keys(F.iconDependencies);De.length?m.send("getImages",{icons:De,source:this.source,tileID:this.tileID,type:"icons"},(Ue,Re)=>{V||(V=Ue,J=Re,Ce.call(this))},void 0,!1,he):J={};const Se=Object.keys(F.patternDependencies);function Ce(){if(V)return y(V);if(H&&J&&ne){const Ue=new vp(H),Re=new bf(J,ne);for(const nt in C){const it=C[nt];it instanceof ps?(Zh(it.layers,this.zoom,d),vg(it,H,Ue.positions,J,Re.iconPositions,this.showCollisionBoxes,d,this.tileID.canonical,this.tileZoom,this.projection)):it.hasPattern&&(it instanceof wu||it instanceof yu||it instanceof dc)&&(Zh(it.layers,this.zoom,d),it.addFeatures(F,this.tileID.canonical,Re.patternPositions,d,this.tileTransform))}this.status="done",y(null,{buckets:_e(C).filter(nt=>!nt.isEmpty()),featureIndex:T,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:Ue.image,lineAtlas:I,imageAtlas:Re,glyphMap:this.returnDependencies?H:null,iconMap:this.returnDependencies?J:null,glyphPositions:this.returnDependencies?Ue.positions:null})}}Se.length?m.send("getImages",{icons:Se,source:this.source,tileID:this.tileID,type:"patterns"},(Ue,Re)=>{V||(V=Ue,ne=Re,Ce.call(this))},void 0,!1,he):ne={},Ce.call(this)}}function Zh(l,t,s){const d=new me(t);for(const m of l)m.recalculate(d,s)}class bp{constructor(t){this.entries={},this.scheduler=t}request(t,s,d,m){const y=this.entries[t]=this.entries[t]||{callbacks:[]};if(y.result){const[b,T]=y.result;return this.scheduler?this.scheduler.add(()=>{m(b,T)},s):m(b,T),()=>{}}return y.callbacks.push(m),y.cancel||(y.cancel=d((b,T)=>{y.result=[b,T];for(const C of y.callbacks)this.scheduler?this.scheduler.add(()=>{C(b,T)},s):C(b,T);setTimeout(()=>delete this.entries[t],3e3)})),()=>{y.result||(y.callbacks=y.callbacks.filter(b=>b!==m),y.callbacks.length||(y.cancel(),delete this.entries[t]))}}}function wp(l,t,s){const d=JSON.stringify(l.request);return l.data&&(this.deduped.entries[d]={result:[null,l.data]}),this.deduped.request(d,{type:"parseTile",isSymbolTile:l.isSymbolTile,zoom:l.tileZoom},m=>{const y=He(l.request,(b,T,C,I)=>{b?m(b):T&&m(null,{vectorTile:s?void 0:new Hs.VectorTile(new gc(T)),rawData:T,cacheControl:C,expires:I})});return()=>{y.cancel(),m()}},t)}a.ARRAY_TYPE=ro,a.AUTH_ERR_MSG=Ut,a.Aabb=Yn,a.Actor=class{constructor(l,t,s){this.target=l,this.parent=t,this.mapId=s,this.callbacks={},this.cancelCallbacks={},Ft(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=xt()?l:w,this.scheduler=new Xg}send(l,t,s,d,m=!1,y){const b=Math.round(1e18*Math.random()).toString(36).substring(0,10);s&&(s.metadata=y,this.callbacks[b]=s);const T=mi(this.globalScope)?void 0:[];return this.target.postMessage({id:b,type:l,hasCallback:!!s,targetMapId:d,mustQueue:m,sourceMapId:this.mapId,data:ss(t,T)},T),{cancel:()=>{s&&delete this.callbacks[b],this.target.postMessage({id:b,type:"",targetMapId:d,sourceMapId:this.mapId})}}}receive(l){const t=l.data,s=t.id;if(s&&(!t.targetMapId||this.mapId===t.targetMapId))if(t.type===""){const d=this.cancelCallbacks[s];delete this.cancelCallbacks[s],d&&d.cancel()}else if(t.mustQueue||xt()){const d=this.callbacks[s];this.cancelCallbacks[s]=this.scheduler.add(()=>this.processTask(s,t),d&&d.metadata||{type:"message"})}else this.processTask(s,t)}processTask(l,t){if(t.type===""){const s=this.callbacks[l];delete this.callbacks[l],s&&(t.error?s(zs(t.error)):s(null,zs(t.data)))}else{const s=mi(this.globalScope)?void 0:[],d=t.hasCallback?(y,b)=>{delete this.cancelCallbacks[l],this.target.postMessage({id:l,type:"",sourceMapId:this.mapId,error:y?ss(y):null,data:ss(b,s)},s)}:y=>{},m=zs(t.data);if(this.parent[t.type])this.parent[t.type](t.sourceMapId,m,d);else if(this.parent.getWorkerSource){const y=t.type.split(".");this.parent.getWorkerSource(t.sourceMapId,y[0],m.source)[y[1]](m,d)}else d(new Error(`Could not find function ${t.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},a.CanonicalTileID=vu,a.Color=ae,a.ColorMode=ha,a.CullFaceMode=qo,a.DEMData=Uu,a.DataConstantProperty=ze,a.DedupedRequest=bp,a.DepthMode=Ll,a.EXTENT=Oi,a.Elevation=class{isDataAvailableAtPoint(l){const t=this._source();if(!t||l.y<0||l.y>1)return!1;const s=t.getSource().maxzoom,d=1<1)return t;const m=d.getSource().maxzoom,y=1<{const y=this.getAtTileOffset(l,m.x,m.y),b=d.upVector(l.canonical,m.x,m.y);return Vo(b,b,y*d.upVectorScale(l.canonical,t,s).metersToTile),b}}getForTilePoints(l,t,s,d){const m=Vu.create(this,l,d);return!!m&&(t.forEach(y=>{y[2]=this.exaggeration()*m.getElevationAt(y[0],y[1],s)}),!0)}getMinMaxForTile(l){const t=this.findDEMTileFor(l);if(!t||!t.dem)return null;const s=t.dem.tree,d=t.tileID,m=1<this._skuTokenExpiresAt}transformRequest(l,t){return this._transformRequestFn&&this._transformRequestFn(l,t)||{url:l}}normalizeStyleURL(l,t){if(!Pt(l))return l;const s=fi(l);return s.path=`/styles/v1${s.path}`,this._makeAPIURL(s,this._customAccessToken||t)}normalizeGlyphsURL(l,t){if(!Pt(l))return l;const s=fi(l);return s.path=`/fonts/v1${s.path}`,this._makeAPIURL(s,this._customAccessToken||t)}normalizeSourceURL(l,t,s,d){if(!Pt(l))return l;const m=fi(l);return m.path=`/v4/${m.authority}.json`,m.params.push("secure"),s&&m.params.push(`language=${s}`),d&&m.params.push(`worldview=${d}`),this._makeAPIURL(m,this._customAccessToken||t)}normalizeSpriteURL(l,t,s,d){const m=fi(l);return Pt(l)?(m.path=`/styles/v1${m.path}/sprite${t}${s}`,this._makeAPIURL(m,this._customAccessToken||d)):(m.path+=`${t}${s}`,Ii(m))}normalizeTileURL(l,t,s){if(this._isSkuTokenExpired()&&this._createSkuToken(),l&&!Pt(l))return l;const d=fi(l);d.path=d.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${t||s&&d.authority!=="raster"&&s===512?"@2x":""}${gi.supported?".webp":"$1"}`),d.authority==="raster"?d.path=`/${dt.RASTER_URL_PREFIX}${d.path}`:(d.path=d.path.replace(/^.+\/v4\//,"/"),d.path=`/${dt.TILE_URL_VERSION}${d.path}`);const m=this._customAccessToken||function(y){for(const b of y){const T=b.match(/^access_token=(.*)$/);if(T)return T[1]}return null}(d.params)||dt.ACCESS_TOKEN;return dt.REQUIRE_ACCESS_TOKEN&&m&&this._skuToken&&d.params.push(`sku=${this._skuToken}`),this._makeAPIURL(d,m)}canonicalizeTileURL(l,t){const s=fi(l);if(!s.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!s.path.match(/\.[\w]+$/))return l;let d="mapbox://";s.path.match(/^\/raster\/v1\//)?d+=`raster/${s.path.replace(`/${dt.RASTER_URL_PREFIX}/`,"")}`:d+=`tiles/${s.path.replace(`/${dt.TILE_URL_VERSION}/`,"")}`;let m=s.params;return t&&(m=m.filter(y=>!y.match(/^access_token=/))),m.length&&(d+=`?${m.join("&")}`),d}canonicalizeTileset(l,t){const s=!!t&&Pt(t),d=[];for(const m of l.tiles||[])ei(m)?d.push(this.canonicalizeTileURL(m,s)):d.push(m);return d}_makeAPIURL(l,t){const s="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",d=fi(dt.API_URL);if(l.protocol=d.protocol,l.authority=d.authority,l.protocol==="http"){const m=l.params.indexOf("secure");m>=0&&l.params.splice(m,1)}if(d.path!=="/"&&(l.path=`${d.path}${l.path}`),!dt.REQUIRE_ACCESS_TOKEN)return Ii(l);if(t=t||dt.ACCESS_TOKEN,!this._silenceAuthErrors){if(!t)throw new Error(`An API access token is required to use Mapbox GL. ${s}`);if(t[0]==="s")throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${s}`)}return l.params=l.params.filter(m=>m.indexOf("access_token")===-1),l.params.push(`access_token=${t||""}`),Ii(l)}},a.ResourceType=Ie,a.SegmentVector=an,a.SourceCache=Ys,a.StencilMode=jh,a.StructArrayLayout1ui2=Sa,a.StructArrayLayout2f1f2i16=Oo,a.StructArrayLayout2i4=Kt,a.StructArrayLayout2ui4=Rn,a.StructArrayLayout3f12=Or,a.StructArrayLayout3ui6=rr,a.StructArrayLayout4i8=Di,a.StructArrayLayout5f20=Sn,a.Texture=Ac,a.Tile=Vh,a.Transitionable=Ee,a.Uniform1f=ou,a.Uniform1i=class extends Ia{constructor(l){super(l),this.current=0}set(l,t,s){this.fetchUniformLocation(l,t)&&this.current!==s&&(this.current=s,this.gl.uniform1i(this.location,s))}},a.Uniform2f=class extends Ia{constructor(l){super(l),this.current=[0,0]}set(l,t,s){this.fetchUniformLocation(l,t)&&(s[0]===this.current[0]&&s[1]===this.current[1]||(this.current=s,this.gl.uniform2f(this.location,s[0],s[1])))}},a.Uniform3f=class extends Ia{constructor(l){super(l),this.current=[0,0,0]}set(l,t,s){this.fetchUniformLocation(l,t)&&(s[0]===this.current[0]&&s[1]===this.current[1]&&s[2]===this.current[2]||(this.current=s,this.gl.uniform3f(this.location,s[0],s[1],s[2])))}},a.Uniform4f=fd,a.UniformColor=pd,a.UniformMatrix2f=class extends Ia{constructor(l){super(l),this.current=Rp}set(l,t,s){if(this.fetchUniformLocation(l,t)){for(let d=0;d<4;d++)if(s[d]!==this.current[d]){this.current=s,this.gl.uniformMatrix2fv(this.location,!1,s);break}}}},a.UniformMatrix3f=class extends Ia{constructor(l){super(l),this.current=Lp}set(l,t,s){if(this.fetchUniformLocation(l,t)){for(let d=0;d<9;d++)if(s[d]!==this.current[d]){this.current=s,this.gl.uniformMatrix3fv(this.location,!1,s);break}}}},a.UniformMatrix4f=class extends Ia{constructor(l){super(l),this.current=Bp}set(l,t,s){if(this.fetchUniformLocation(l,t)){if(s[12]!==this.current[12]||s[0]!==this.current[0])return this.current=s,void this.gl.uniformMatrix4fv(this.location,!1,s);for(let d=1;d<16;d++)if(s[d]!==this.current[d]){this.current=s,this.gl.uniformMatrix4fv(this.location,!1,s);break}}}},a.UnwrappedTileID=lf,a.ValidationError=si,a.VectorTileWorkerSource=class extends ht{constructor(l,t,s,d,m){super(),this.actor=l,this.layerIndex=t,this.availableImages=s,this.loadVectorData=m||wp,this.loading={},this.loaded={},this.deduped=new bp(l.scheduler),this.isSpriteLoaded=d,this.scheduler=l.scheduler}loadTile(l,t){const s=l.uid,d=l&&l.request,m=d&&d.collectResourceTiming,y=this.loading[s]=new Qg(l);y.abort=this.loadVectorData(l,(b,T)=>{const C=!this.loading[s];if(delete this.loading[s],C||b||!T)return y.status="done",C||(this.loaded[s]=y),t(b);const I=T.rawData,F={};T.expires&&(F.expires=T.expires),T.cacheControl&&(F.cacheControl=T.cacheControl),y.vectorTile=T.vectorTile||new Hs.VectorTile(new gc(I));const N=()=>{y.parse(y.vectorTile,this.layerIndex,this.availableImages,this.actor,(V,H)=>{if(V||!H)return t(V);const J={};if(m){const ne=Bi(d);ne.length>0&&(J.resourceTiming=JSON.parse(JSON.stringify(ne)))}t(null,ee({rawTileData:I.slice(0)},H,F,J))})};this.isSpriteLoaded?N():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(N,{type:"parseTile",isSymbolTile:l.isSymbolTile,zoom:l.tileZoom}):N()}),this.loaded=this.loaded||{},this.loaded[s]=y})}reloadTile(l,t){const s=this.loaded,d=l.uid,m=this;if(s&&s[d]){const y=s[d];y.showCollisionBoxes=l.showCollisionBoxes,y.enableTerrain=!!l.enableTerrain,y.projection=l.projection,y.tileTransform=Ws(l.tileID.canonical,l.projection);const b=(T,C)=>{const I=y.reloadCallback;I&&(delete y.reloadCallback,y.parse(y.vectorTile,m.layerIndex,this.availableImages,m.actor,I)),t(T,C)};y.status==="parsing"?y.reloadCallback=b:y.status==="done"&&(y.vectorTile?y.parse(y.vectorTile,this.layerIndex,this.availableImages,this.actor,b):b())}}abortTile(l,t){const s=l.uid,d=this.loading[s];d&&(d.abort&&d.abort(),delete this.loading[s]),t()}removeTile(l,t){const s=this.loaded,d=l.uid;s&&s[d]&&delete s[d],t()}},a.WritingMode=_o,a.ZoomHistory=Gc,a.add=hs,a.addDynamicAttributes=Fu,a.adjoint=function(l,t){var s=t[0],d=t[1],m=t[2],y=t[3],b=t[4],T=t[5],C=t[6],I=t[7],F=t[8];return l[0]=b*F-T*I,l[1]=m*I-d*F,l[2]=d*T-m*b,l[3]=T*C-y*F,l[4]=s*F-m*C,l[5]=m*y-s*T,l[6]=y*I-b*C,l[7]=d*C-s*I,l[8]=s*b-d*y,l},a.asyncAll=se,a.bezier=W,a.bindAll=Ft,a.boundsAttributes=ap,a.bufferConvexPolygon=function(l,t){const s=[];for(let d=0;dFr&&(l.getActor().send("enforceCacheSizeLimit",Xr),fe=0)},a.calculateGlobeLabelMatrix=function(l,t){const{x:s,y:d}=l.point,m=Xf(s,d,l.worldSize/l._pixelsPerMercatorPixel,0,0);return bl(m,m,Rh(la(t)))},a.calculateGlobeMatrix=function(l){const{x:t,y:s}=l.point,{lng:d,lat:m}=l._center;return Xf(t,s,l.worldSize,d,m)},a.calculateGlobeMercatorMatrix=function(l){const t=l.pixelsPerMeter,s=t/bo(1,l.center.lat),d=aa(new Float64Array(16));return rc(d,d,[l.point.x,l.point.y,0]),qs(d,d,[s,s,t]),Float32Array.from(d)},a.circumferenceAtLatitude=Yu,a.clamp=ie,a.clearTileCache=function(l){const t=te(),s=[];for(const d in wr)t&&s.push(t.delete(d)),delete wr[d];l&&Promise.all(s).catch(l).then(()=>l())},a.clipLine=Bf,a.clone=function(l){var t=new ro(16);return t[0]=l[0],t[1]=l[1],t[2]=l[2],t[3]=l[3],t[4]=l[4],t[5]=l[5],t[6]=l[6],t[7]=l[7],t[8]=l[8],t[9]=l[9],t[10]=l[10],t[11]=l[11],t[12]=l[12],t[13]=l[13],t[14]=l[14],t[15]=l[15],t},a.clone$1=Xe,a.collisionCircleLayout=Zm,a.config=dt,a.conjugate=function(l,t){return l[0]=-t[0],l[1]=-t[1],l[2]=-t[2],l[3]=t[3],l},a.create=function(){var l=new ro(16);return ro!=Float32Array&&(l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[6]=0,l[7]=0,l[8]=0,l[9]=0,l[11]=0,l[12]=0,l[13]=0,l[14]=0),l[0]=1,l[5]=1,l[10]=1,l[15]=1,l},a.create$1=Cd,a.createExpression=ts,a.createLayout=Tt,a.createStyleLayer=function(l){return l.type==="custom"?new jg(l):new qg[l.type](l)},a.cross=ch,a.degToRad=q,a.distance=function(l,t){return Math.hypot(t[0]-l[0],t[1]-l[1],t[2]-l[2])},a.div=function(l,t,s){return l[0]=t[0]/s[0],l[1]=t[1]/s[1],l[2]=t[2]/s[2],l},a.dot=Eo,a.ease=K,a.easeCubicInOut=oe,a.emitValidationErrors=ql,a.endsWith=Qt,a.enforceCacheSizeLimit=function(l){for(const t in wr)$(t),wr[t].then(s=>{s.keys().then(d=>{for(let m=0;my&&(d+=(l[m]-y)*(l[m]-y)),t[m]{}}},a.globeCenterToScreenPoint=function(l){const t=[0,0,0],s=aa(new Float64Array(16));return bl(s,l.pixelMatrix,l.globeMatrix),cn(t,t,s),new k(t[0],t[1])},a.globeDenormalizeECEF=Rh,a.globeECEFOrigin=function(l,t){const s=[0,0,0];return cn(s,s,bc(la(t.canonical))),cn(s,s,l),s},a.globeNormalizeECEF=bc,a.globePixelsToTileUnits=function(l,t){return Oi/(512*Math.pow(2,l))*Du(la(t))},a.globePoleMatrixForTile=function(l,t,s){const d=aa(new Float64Array(16)),m=(t/(1<0;return d===0&&!m&&!b&&y},a.identity=aa,a.identity$1=zd,a.invert=rh,a.isFullscreen=function(){return!!w.document.fullscreenElement||!!w.document.webkitFullscreenElement},a.isLngLatBehindGlobe=function(l,t){return Hf(l,t)>Math.PI/2*1.01},a.isMapAuthenticated=function(l){return Kr.has(l)},a.isMapboxURL=Pt,a.isSafariWithAntialiasingBug=function(l){const t=l.navigator?l.navigator.userAgent:null;return!!mi(l)&&t&&(t.match("Version/15.4")||t.match("Version/15.5")||t.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},a.latFromMercatorY=Mn,a.len=Qp,a.length=nc,a.length$1=function(l){return Math.hypot(l[0],l[1],l[2],l[3])},a.loadVectorTile=wp,a.makeRequest=Be,a.mapValue=function(l,t,s,d,m){return ie((l-t)/(s-t)*(m-d)+d,d,m)},a.mercatorScale=yd,a.mercatorXfromLng=na,a.mercatorYfromLat=Pa,a.mercatorZfromAltitude=bo,a.mul=Yp,a.mul$1=Kp,a.multiply=bl,a.multiply$1=function(l,t,s){var d=t[0],m=t[1],y=t[2],b=t[3],T=t[4],C=t[5],I=t[6],F=t[7],N=t[8],V=s[0],H=s[1],J=s[2],ne=s[3],he=s[4],we=s[5],De=s[6],Se=s[7],Ce=s[8];return l[0]=V*d+H*b+J*I,l[1]=V*m+H*T+J*F,l[2]=V*y+H*C+J*N,l[3]=ne*d+he*b+we*I,l[4]=ne*m+he*T+we*F,l[5]=ne*y+he*C+we*N,l[6]=De*d+Se*b+Ce*I,l[7]=De*m+Se*T+Ce*F,l[8]=De*y+Se*C+Ce*N,l},a.multiply$2=Dd,a.nextPowerOfTwo=Qe,a.normalize=Gn,a.normalize$1=function(l,t){var s=t[0],d=t[1],m=t[2],y=t[3],b=s*s+d*d+m*m+y*y;return b>0&&(b=1/Math.sqrt(b)),l[0]=s*b,l[1]=d*b,l[2]=m*b,l[3]=y*b,l},a.number=Qi,a.ortho=function(l,t,s,d,m,y,b){var T=1/(t-s),C=1/(d-m),I=1/(y-b);return l[0]=-2*T,l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[5]=-2*C,l[6]=0,l[7]=0,l[8]=0,l[9]=0,l[10]=2*I,l[11]=0,l[12]=(t+s)*T,l[13]=(m+d)*C,l[14]=(b+y)*I,l[15]=1,l},a.pbf=gc,a.perspective=function(l,t,s,d,m){var y,b=1/Math.tan(t/2);return l[0]=b/s,l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[5]=b,l[6]=0,l[7]=0,l[8]=0,l[9]=0,l[11]=-1,l[12]=0,l[13]=0,l[15]=0,m!=null&&m!==1/0?(l[10]=(m+d)*(y=1/(d-m)),l[14]=2*m*d*y):(l[10]=-1,l[14]=-2*d),l},a.pick=function(l,t){const s={};for(let d=0;dFo(ns(l)),a.validateFog=l=>Fo(Uc(l)),a.validateLayer=l=>Fo(ll(l)),a.validateLight=l=>Fo(Nc(l)),a.validateSource=l=>Fo(Oc(l)),a.validateStyle=hl,a.validateTerrain=l=>Fo(ul(l)),a.values=_e,a.vectorTile=Hs,a.version=yi,a.warnOnce=gt,a.window=w,a.wrap=ve}),f(["./shared"],function(a){function w(te){if(typeof te=="number"||typeof te=="boolean"||typeof te=="string"||te==null)return JSON.stringify(te);if(Array.isArray(te)){let Q="[";for(const ce of te)Q+=`${w(ce)},`;return`${Q}]`}let $="{";for(const Q of Object.keys(te).sort())$+=`${Q}:${w(te[Q])},`;return`${$}}`}function E(te){let $="";for(const Q of a.refProperties)$+=`/${w(te[Q])}`;return $}class M{constructor($){this.keyCache={},$&&this.replace($)}replace($){this._layerConfigs={},this._layers={},this.update($,[])}update($,Q){for(const fe of $)this._layerConfigs[fe.id]=fe,(this._layers[fe.id]=a.createStyleLayer(fe)).compileFilter(),this.keyCache[fe.id]&&delete this.keyCache[fe.id];for(const fe of Q)delete this.keyCache[fe],delete this._layerConfigs[fe],delete this._layers[fe];this.familiesBySource={};const ce=function(fe,Ie){const $e={};for(let Be=0;Bethis._layers[Vt.id]),$e=Ie[0];if($e.visibility==="none")continue;const je=$e.source||"";let Be=this.familiesBySource[je];Be||(Be=this.familiesBySource[je]={});const He=$e.sourceLayer||"_geojsonTileLayer";let st=Be[He];st||(st=Be[He]=[]),st.push(Ie)}}}class k{loadTile($,Q){const{uid:ce,encoding:fe,rawImageData:Ie,padding:$e,buildQuadTree:je}=$,Be=a.window.ImageBitmap&&Ie instanceof a.window.ImageBitmap?this.getImageData(Ie,$e):Ie;Q(null,new a.DEMData(ce,Be,fe,$e<1,je))}getImageData($,Q){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas($.width,$.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=$.width,this.offscreenCanvas.height=$.height,this.offscreenCanvasContext.drawImage($,0,0,$.width,$.height);const ce=this.offscreenCanvasContext.getImageData(-Q,-Q,$.width+2*Q,$.height+2*Q);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),ce}}var L=function te($,Q){var ce,fe=$&&$.type;if(fe==="FeatureCollection")for(ce=0;ce<$.features.length;ce++)te($.features[ce],Q);else if(fe==="GeometryCollection")for(ce=0;ce<$.geometries.length;ce++)te($.geometries[ce],Q);else if(fe==="Feature")te($.geometry,Q);else if(fe==="Polygon")D($.coordinates,Q);else if(fe==="MultiPolygon")for(ce=0;ce<$.coordinates.length;ce++)D($.coordinates[ce],Q);return $};function D(te,$){if(te.length!==0){U(te[0],$);for(var Q=1;Q=Math.abs(je)?Q-Be+je:je-Be+Q,Q=Be}Q+ce>=0!=!!$&&te.reverse()}const q=a.vectorTile.VectorTileFeature.prototype.toGeoJSON;class Y{constructor($){this._feature=$,this.extent=a.EXTENT,this.type=$.type,this.properties=$.tags,"id"in $&&!isNaN($.id)&&(this.id=parseInt($.id,10))}loadGeometry(){if(this._feature.type===1){const $=[];for(const Q of this._feature.geometry)$.push([new a.pointGeometry(Q[0],Q[1])]);return $}{const $=[];for(const Q of this._feature.geometry){const ce=[];for(const fe of Q)ce.push(new a.pointGeometry(fe[0],fe[1]));$.push(ce)}return $}}toGeoJSON($,Q,ce){return q.call(this,$,Q,ce)}}class X{constructor($){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=a.EXTENT,this.length=$.length,this._features=$}feature($){return new Y(this._features[$])}}var oe=a.vectorTile.VectorTileFeature,W=K;function K(te,$){this.options=$||{},this.features=te,this.length=te.length}function ie(te,$){this.id=typeof te.id=="number"?te.id:void 0,this.type=te.type,this.rawGeometry=te.type===1?[te.geometry]:te.geometry,this.properties=te.tags,this.extent=$||4096}K.prototype.feature=function(te){return new ie(this.features[te],this.options.extent)},ie.prototype.loadGeometry=function(){var te=this.rawGeometry;this.geometry=[];for(var $=0;$>31}function Qe(te,$){for(var Q=te.loadGeometry(),ce=te.type,fe=0,Ie=0,$e=Q.length,je=0;je<$e;je++){var Be=Q[je],He=1;ce===1&&(He=Be.length),$.writeVarint(Me(1,He));for(var st=ce===3?Be.length-1:Be.length,Vt=0;Vt>1;Qt(te,$,$e,ce,fe,Ie%2),Ft(te,$,Q,ce,$e-1,Ie+1),Ft(te,$,Q,$e+1,fe,Ie+1)}function Qt(te,$,Q,ce,fe,Ie){for(;fe>ce;){if(fe-ce>600){const He=fe-ce+1,st=Q-ce+1,Vt=Math.log(He),ut=.5*Math.exp(2*Vt/3),pi=.5*Math.sqrt(Vt*ut*(He-ut)/He)*(st-He/2<0?-1:1);Qt(te,$,Q,Math.max(ce,Math.floor(Q-st*ut/He+pi)),Math.min(fe,Math.floor(Q+(He-st)*ut/He+pi)),Ie)}const $e=$[2*Q+Ie];let je=ce,Be=fe;for(Rt(te,$,ce,Q),$[2*fe+Ie]>$e&&Rt(te,$,ce,fe);je$e;)Be--}$[2*ce+Ie]===$e?Rt(te,$,ce,Be):(Be++,Rt(te,$,Be,fe)),Be<=Q&&(ce=Be+1),Q<=Be&&(fe=Be-1)}}function Rt(te,$,Q,ce){Jt(te,Q,ce),Jt($,2*Q,2*ce),Jt($,2*Q+1,2*ce+1)}function Jt(te,$,Q){const ce=te[$];te[$]=te[Q],te[Q]=ce}function Xe(te,$,Q,ce){const fe=te-Q,Ie=$-ce;return fe*fe+Ie*Ie}Te.fromVectorTileJs=se,Te.fromGeojsonVt=function(te,$){$=$||{};var Q={};for(var ce in te)Q[ce]=new W(te[ce].features,$),Q[ce].name=ce,Q[ce].version=$.version,Q[ce].extent=$.extent;return se({layers:Q})},Te.GeoJSONWrapper=ve;const mt=te=>te[0],gt=te=>te[1];class ot{constructor($,Q=mt,ce=gt,fe=64,Ie=Float64Array){this.nodeSize=fe,this.points=$;const $e=$.length<65536?Uint16Array:Uint32Array,je=this.ids=new $e($.length),Be=this.coords=new Ie(2*$.length);for(let He=0;He<$.length;He++)je[He]=He,Be[2*He]=Q($[He]),Be[2*He+1]=ce($[He]);Ft(je,Be,fe,0,je.length-1,0)}range($,Q,ce,fe){return function(Ie,$e,je,Be,He,st,Vt){const ut=[0,Ie.length-1,0],pi=[];let ai,ci;for(;ut.length;){const Ci=ut.pop(),Ri=ut.pop(),tr=ut.pop();if(Ri-tr<=Vt){for(let ht=tr;ht<=Ri;ht++)ai=$e[2*ht],ci=$e[2*ht+1],ai>=je&&ai<=He&&ci>=Be&&ci<=st&&pi.push(Ie[ht]);continue}const Le=Math.floor((tr+Ri)/2);ai=$e[2*Le],ci=$e[2*Le+1],ai>=je&&ai<=He&&ci>=Be&&ci<=st&&pi.push(Ie[Le]);const Gt=(Ci+1)%2;(Ci===0?je<=ai:Be<=ci)&&(ut.push(tr),ut.push(Le-1),ut.push(Gt)),(Ci===0?He>=ai:st>=ci)&&(ut.push(Le+1),ut.push(Ri),ut.push(Gt))}return pi}(this.ids,this.coords,$,Q,ce,fe,this.nodeSize)}within($,Q,ce){return function(fe,Ie,$e,je,Be,He){const st=[0,fe.length-1,0],Vt=[],ut=Be*Be;for(;st.length;){const pi=st.pop(),ai=st.pop(),ci=st.pop();if(ai-ci<=He){for(let Gt=ci;Gt<=ai;Gt++)Xe(Ie[2*Gt],Ie[2*Gt+1],$e,je)<=ut&&Vt.push(fe[Gt]);continue}const Ci=Math.floor((ci+ai)/2),Ri=Ie[2*Ci],tr=Ie[2*Ci+1];Xe(Ri,tr,$e,je)<=ut&&Vt.push(fe[Ci]);const Le=(pi+1)%2;(pi===0?$e-Be<=Ri:je-Be<=tr)&&(st.push(ci),st.push(Ci-1),st.push(Le)),(pi===0?$e+Be>=Ri:je+Be>=tr)&&(st.push(Ci+1),st.push(ai),st.push(Le))}return Vt}(this.ids,this.coords,$,Q,ce,this.nodeSize)}}const At={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:te=>te},xt=Math.fround||(Ct=new Float32Array(1),te=>(Ct[0]=+te,Ct[0]));var Ct;class It{constructor($){this.options=kt(Object.create(At),$),this.trees=new Array(this.options.maxZoom+1)}load($){const{log:Q,minZoom:ce,maxZoom:fe,nodeSize:Ie}=this.options;Q&&console.time("total time");const $e=`prepare ${$.length} points`;Q&&console.time($e),this.points=$;let je=[];for(let Be=0;Be<$.length;Be++)$[Be].geometry&&je.push(_t($[Be],Be));this.trees[fe+1]=new ot(je,Ai,Ti,Ie,Float32Array),Q&&console.timeEnd($e);for(let Be=fe;Be>=ce;Be--){const He=+Date.now();je=this._cluster(je,Be),this.trees[Be]=new ot(je,Ai,Ti,Ie,Float32Array),Q&&console.log("z%d: %d clusters in %dms",Be,je.length,+Date.now()-He)}return Q&&console.timeEnd("total time"),this}getClusters($,Q){let ce=(($[0]+180)%360+360)%360-180;const fe=Math.max(-90,Math.min(90,$[1]));let Ie=$[2]===180?180:(($[2]+180)%360+360)%360-180;const $e=Math.max(-90,Math.min(90,$[3]));if($[2]-$[0]>=360)ce=-180,Ie=180;else if(ce>Ie){const st=this.getClusters([ce,fe,180,$e],Q),Vt=this.getClusters([-180,fe,Ie,$e],Q);return st.concat(Vt)}const je=this.trees[this._limitZoom(Q)],Be=je.range(Bi(ce),yi($e),Bi(Ie),yi(fe)),He=[];for(const st of Be){const Vt=je.points[st];He.push(Vt.numPoints?Ei(Vt):this.points[Vt.index])}return He}getChildren($){const Q=this._getOriginId($),ce=this._getOriginZoom($),fe="No cluster with the specified id.",Ie=this.trees[ce];if(!Ie)throw new Error(fe);const $e=Ie.points[Q];if(!$e)throw new Error(fe);const je=this.options.radius/(this.options.extent*Math.pow(2,ce-1)),Be=Ie.within($e.x,$e.y,je),He=[];for(const st of Be){const Vt=Ie.points[st];Vt.parentId===$&&He.push(Vt.numPoints?Ei(Vt):this.points[Vt.index])}if(He.length===0)throw new Error(fe);return He}getLeaves($,Q,ce){const fe=[];return this._appendLeaves(fe,$,Q=Q||10,ce=ce||0,0),fe}getTile($,Q,ce){const fe=this.trees[this._limitZoom($)],Ie=Math.pow(2,$),{extent:$e,radius:je}=this.options,Be=je/$e,He=(ce-Be)/Ie,st=(ce+1+Be)/Ie,Vt={features:[]};return this._addTileFeatures(fe.range((Q-Be)/Ie,He,(Q+1+Be)/Ie,st),fe.points,Q,ce,Ie,Vt),Q===0&&this._addTileFeatures(fe.range(1-Be/Ie,He,1,st),fe.points,Ie,ce,Ie,Vt),Q===Ie-1&&this._addTileFeatures(fe.range(0,He,Be/Ie,st),fe.points,-1,ce,Ie,Vt),Vt.features.length?Vt:null}getClusterExpansionZoom($){let Q=this._getOriginZoom($)-1;for(;Q<=this.options.maxZoom;){const ce=this.getChildren($);if(Q++,ce.length!==1)break;$=ce[0].properties.cluster_id}return Q}_appendLeaves($,Q,ce,fe,Ie){const $e=this.getChildren(Q);for(const je of $e){const Be=je.properties;if(Be&&Be.cluster?Ie+Be.point_count<=fe?Ie+=Be.point_count:Ie=this._appendLeaves($,Be.cluster_id,ce,fe,Ie):IeQ&&(ai+=Ci.numPoints||1)}if(ai>pi&&ai>=je){let ci=st.x*pi,Ci=st.y*pi,Ri=$e&&pi>1?this._map(st,!0):null;const tr=(He<<5)+(Q+1)+this.points.length;for(const Le of ut){const Gt=Vt.points[Le];if(Gt.zoom<=Q)continue;Gt.zoom=Q;const ht=Gt.numPoints||1;ci+=Gt.x*ht,Ci+=Gt.y*ht,Gt.parentId=tr,$e&&(Ri||(Ri=this._map(st,!0)),$e(Ri,this._map(Gt)))}st.parentId=tr,ce.push(mi(ci/ai,Ci/ai,tr,ai,Ri))}else if(ce.push(st),ai>1)for(const ci of ut){const Ci=Vt.points[ci];Ci.zoom<=Q||(Ci.zoom=Q,ce.push(Ci))}}return ce}_getOriginId($){return $-this.points.length>>5}_getOriginZoom($){return($-this.points.length)%32}_map($,Q){if($.numPoints)return Q?kt({},$.properties):$.properties;const ce=this.points[$.index].properties,fe=this.options.map(ce);return Q&&fe===ce?kt({},fe):fe}}function mi(te,$,Q,ce,fe){return{x:xt(te),y:xt($),zoom:1/0,id:Q,parentId:-1,numPoints:ce,properties:fe}}function _t(te,$){const[Q,ce]=te.geometry.coordinates;return{x:xt(Bi(Q)),y:xt(yi(ce)),zoom:1/0,index:$,parentId:-1}}function Ei(te){return{type:"Feature",id:te.id,properties:zi(te),geometry:{type:"Point",coordinates:[($=te.x,360*($-.5)),St(te.y)]}};var $}function zi(te){const $=te.numPoints,Q=$>=1e4?`${Math.round($/1e3)}k`:$>=1e3?Math.round($/100)/10+"k":$;return kt(kt({},te.properties),{cluster:!0,cluster_id:te.id,point_count:$,point_count_abbreviated:Q})}function Bi(te){return te/360+.5}function yi(te){const $=Math.sin(te*Math.PI/180),Q=.5-.25*Math.log((1+$)/(1-$))/Math.PI;return Q<0?0:Q>1?1:Q}function St(te){const $=(180-360*te)*Math.PI/180;return 360*Math.atan(Math.exp($))/Math.PI-90}function kt(te,$){for(const Q in $)te[Q]=$[Q];return te}function Ai(te){return te.x}function Ti(te){return te.y}function Si(te,$,Q,ce){for(var fe,Ie=ce,$e=Q-$>>1,je=Q-$,Be=te[$],He=te[$+1],st=te[Q],Vt=te[Q+1],ut=$+3;utIe)fe=ut,Ie=pi;else if(pi===Ie){var ai=Math.abs(ut-$e);aice&&(fe-$>3&&Si(te,$,fe,ce),te[fe+2]=Ie,Q-fe>3&&Si(te,fe,Q,ce))}function rt(te,$,Q,ce,fe,Ie){var $e=fe-Q,je=Ie-ce;if($e!==0||je!==0){var Be=((te-Q)*$e+($-ce)*je)/($e*$e+je*je);Be>1?(Q=fe,ce=Ie):Be>0&&(Q+=$e*Be,ce+=je*Be)}return($e=te-Q)*$e+(je=$-ce)*je}function dt(te,$,Q,ce){var fe={id:te===void 0?null:te,type:$,geometry:Q,tags:ce,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Ie){var $e=Ie.geometry,je=Ie.type;if(je==="Point"||je==="MultiPoint"||je==="LineString")gi(Ie,$e);else if(je==="Polygon"||je==="MultiLineString")for(var Be=0;Be<$e.length;Be++)gi(Ie,$e[Be]);else if(je==="MultiPolygon")for(Be=0;Be<$e.length;Be++)for(var He=0;He<$e[Be].length;He++)gi(Ie,$e[Be][He])}(fe),fe}function gi(te,$){for(var Q=0;Q<$.length;Q+=3)te.minX=Math.min(te.minX,$[Q]),te.minY=Math.min(te.minY,$[Q+1]),te.maxX=Math.max(te.maxX,$[Q]),te.maxY=Math.max(te.maxY,$[Q+1])}function di(te,$,Q,ce){if($.geometry){var fe=$.geometry.coordinates,Ie=$.geometry.type,$e=Math.pow(Q.tolerance/((1<0&&($e+=ce?(fe*He-Be*Ie)/2:Math.sqrt(Math.pow(Be-fe,2)+Math.pow(He-Ie,2))),fe=Be,Ie=He}var st=$.length-3;$[2]=1,Si($,0,st,Q),$[st+2]=1,$.size=Math.abs($e),$.start=0,$.end=$.size}function jt(te,$,Q,ce){for(var fe=0;fe1?1:Q}function Ut(te,$,Q,ce,fe,Ie,$e,je){if(ce/=$,Ie>=(Q/=$)&&$e=ce)return null;for(var Be=[],He=0;He=Q&&ai=ce)){var ci=[];if(ut==="Point"||ut==="MultiPoint")Pt(Vt,ci,Q,ce,fe);else if(ut==="LineString")ei(Vt,ci,Q,ce,fe,!1,je.lineMetrics);else if(ut==="MultiLineString")fi(Vt,ci,Q,ce,fe,!1);else if(ut==="Polygon")fi(Vt,ci,Q,ce,fe,!0);else if(ut==="MultiPolygon")for(var Ci=0;Ci=Q&&$e<=ce&&($.push(te[Ie]),$.push(te[Ie+1]),$.push(te[Ie+2]))}}function ei(te,$,Q,ce,fe,Ie,$e){for(var je,Be,He=Li(te),st=fe===0?Hi:er,Vt=te.start,ut=0;utQ&&(Be=st(He,pi,ai,Ci,Ri,Q),$e&&(He.start=Vt+je*Be)):tr>ce?Le=Q&&(Be=st(He,pi,ai,Ci,Ri,Q),Gt=!0),Le>ce&&tr<=ce&&(Be=st(He,pi,ai,Ci,Ri,ce),Gt=!0),!Ie&&Gt&&($e&&(He.end=Vt+je*Be),$.push(He),He=Li(te)),$e&&(Vt+=je)}var ht=te.length-3;pi=te[ht],ai=te[ht+1],ci=te[ht+2],(tr=fe===0?pi:ai)>=Q&&tr<=ce&&Ii(He,pi,ai,ci),ht=He.length-3,Ie&&ht>=3&&(He[ht]!==He[0]||He[ht+1]!==He[1])&&Ii(He,He[0],He[1],He[2]),He.length&&$.push(He)}function Li(te){var $=[];return $.size=te.size,$.start=te.start,$.end=te.end,$}function fi(te,$,Q,ce,fe,Ie){for(var $e=0;$e$e.maxX&&($e.maxX=st),Vt>$e.maxY&&($e.maxY=Vt)}return $e}function Zr(te,$,Q,ce){var fe=$.geometry,Ie=$.type,$e=[];if(Ie==="Point"||Ie==="MultiPoint")for(var je=0;je0&&$.size<(fe?$e:ce))Q.numPoints+=$.length/3;else{for(var je=[],Be=0;Be<$.length;Be+=3)(ce===0||$[Be+2]>$e)&&(Q.numSimplified++,je.push($[Be]),je.push($[Be+1])),Q.numPoints++;fe&&function(He,st){for(var Vt=0,ut=0,pi=He.length,ai=pi-2;ut0===st)for(ut=0,pi=He.length;ut24)throw new Error("maxZoom should be in the 0-24 range");if($.promoteId&&$.generateId)throw new Error("promoteId and generateId cannot be used together.");var ce=function(fe,Ie){var $e=[];if(fe.type==="FeatureCollection")for(var je=0;je1&&console.time("creation"),ut=this.tiles[Vt]=In(te,$,Q,ce,Be),this.tileCoords.push({z:$,x:Q,y:ce}),He)){He>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",$,Q,ce,ut.numFeatures,ut.numPoints,ut.numSimplified),console.timeEnd("creation"));var pi="z"+$;this.stats[pi]=(this.stats[pi]||0)+1,this.total++}if(ut.source=te,fe){if($===Be.maxZoom||$===fe)continue;var ai=1<1&&console.time("clipping");var ci,Ci,Ri,tr,Le,Gt,ht=.5*Be.buffer/Be.extent,qe=.5-ht,Wi=.5+ht,Ni=1+ht;ci=Ci=Ri=tr=null,Le=Ut(te,st,Q-ht,Q+Wi,0,ut.minX,ut.maxX,Be),Gt=Ut(te,st,Q+qe,Q+Ni,0,ut.minX,ut.maxX,Be),te=null,Le&&(ci=Ut(Le,st,ce-ht,ce+Wi,1,ut.minY,ut.maxY,Be),Ci=Ut(Le,st,ce+qe,ce+Ni,1,ut.minY,ut.maxY,Be),Le=null),Gt&&(Ri=Ut(Gt,st,ce-ht,ce+Wi,1,ut.minY,ut.maxY,Be),tr=Ut(Gt,st,ce+qe,ce+Ni,1,ut.minY,ut.maxY,Be),Gt=null),He>1&&console.timeEnd("clipping"),je.push(ci||[],$+1,2*Q,2*ce),je.push(Ci||[],$+1,2*Q,2*ce+1),je.push(Ri||[],$+1,2*Q+1,2*ce),je.push(tr||[],$+1,2*Q+1,2*ce+1)}}},Ki.prototype.getTile=function(te,$,Q){var ce=this.options,fe=ce.extent,Ie=ce.debug;if(te<0||te>24)return null;var $e=1<1&&console.log("drilling down to z%d-%d-%d",te,$,Q);for(var Be,He=te,st=$,Vt=Q;!Be&&He>0;)He--,st=Math.floor(st/2),Vt=Math.floor(Vt/2),Be=this.tiles[Xr(He,st,Vt)];return Be&&Be.source?(Ie>1&&console.log("found parent tile z%d-%d-%d",He,st,Vt),Ie>1&&console.time("drilling down"),this.splitTile(Be.source,He,st,Vt,te,$,Q),Ie>1&&console.timeEnd("drilling down"),this.tiles[je]?Pr(this.tiles[je],fe):null):null};class wr extends a.VectorTileWorkerSource{constructor($,Q,ce,fe,Ie){super($,Q,ce,fe,Fr),Ie&&(this.loadGeoJSON=Ie)}loadData($,Q){const ce=$&&$.request,fe=ce&&ce.collectResourceTiming;this.loadGeoJSON($,(Ie,$e)=>{if(Ie||!$e)return Q(Ie);if(typeof $e!="object")return Q(new Error(`Input data given to '${$.source}' is not a valid GeoJSON object.`));{L($e,!0);try{if($.filter){const Be=a.createExpression($.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(Be.result==="error")throw new Error(Be.value.map(st=>`${st.key}: ${st.message}`).join(", "));const He=$e.features.filter(st=>Be.value.evaluate({zoom:0},st));$e={type:"FeatureCollection",features:He}}this._geoJSONIndex=$.cluster?new It(function({superclusterOptions:Be,clusterProperties:He}){if(!He||!Be)return Be;const st={},Vt={},ut={accumulated:null,zoom:0},pi={properties:null},ai=Object.keys(He);for(const ci of ai){const[Ci,Ri]=He[ci],tr=a.createExpression(Ri),Le=a.createExpression(typeof Ci=="string"?[Ci,["accumulated"],["get",ci]]:Ci);st[ci]=tr.value,Vt[ci]=Le.value}return Be.map=ci=>{pi.properties=ci;const Ci={};for(const Ri of ai)Ci[Ri]=st[Ri].evaluate(ut,pi);return Ci},Be.reduce=(ci,Ci)=>{pi.properties=Ci;for(const Ri of ai)ut.accumulated=ci[Ri],ci[Ri]=Vt[Ri].evaluate(ut,pi)},Be}($)).load($e.features):function(Be,He){return new Ki(Be,He)}($e,$.geojsonVtOptions)}catch(Be){return Q(Be)}this.loaded={};const je={};if(fe){const Be=a.getPerformanceMeasurement(ce);Be&&(je.resourceTiming={},je.resourceTiming[$.source]=JSON.parse(JSON.stringify(Be)))}Q(null,je)}})}reloadTile($,Q){const ce=this.loaded;return ce&&ce[$.uid]?super.reloadTile($,Q):this.loadTile($,Q)}loadGeoJSON($,Q){if($.request)a.getJSON($.request,Q);else{if(typeof $.data!="string")return Q(new Error(`Input data given to '${$.source}' is not a valid GeoJSON object.`));try{return Q(null,JSON.parse($.data))}catch{return Q(new Error(`Input data given to '${$.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom($,Q){try{Q(null,this._geoJSONIndex.getClusterExpansionZoom($.clusterId))}catch(ce){Q(ce)}}getClusterChildren($,Q){try{Q(null,this._geoJSONIndex.getChildren($.clusterId))}catch(ce){Q(ce)}}getClusterLeaves($,Q){try{Q(null,this._geoJSONIndex.getLeaves($.clusterId,$.limit,$.offset))}catch(ce){Q(ce)}}}class xe{constructor($){this.self=$,this.actor=new a.Actor($,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=a.getProjection({name:"mercator"}),this.workerSourceTypes={vector:a.VectorTileWorkerSource,geojson:wr},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(Q,ce)=>{if(this.workerSourceTypes[Q])throw new Error(`Worker source with name "${Q}" already registered.`);this.workerSourceTypes[Q]=ce},this.self.registerRTLTextPlugin=Q=>{if(a.plugin.isParsed())throw new Error("RTL text plugin already registered.");a.plugin.applyArabicShaping=Q.applyArabicShaping,a.plugin.processBidirectionalText=Q.processBidirectionalText,a.plugin.processStyledBidirectionalText=Q.processStyledBidirectionalText}}clearCaches($,Q,ce){delete this.layerIndexes[$],delete this.availableImages[$],delete this.workerSources[$],delete this.demWorkerSources[$],ce()}checkIfReady($,Q,ce){ce()}setReferrer($,Q){this.referrer=Q}spriteLoaded($,Q){this.isSpriteLoaded[$]=Q;for(const ce in this.workerSources[$]){const fe=this.workerSources[$][ce];for(const Ie in fe)fe[Ie]instanceof a.VectorTileWorkerSource&&(fe[Ie].isSpriteLoaded=Q,fe[Ie].fire(new a.Event("isSpriteLoaded")))}}setImages($,Q,ce){this.availableImages[$]=Q;for(const fe in this.workerSources[$]){const Ie=this.workerSources[$][fe];for(const $e in Ie)Ie[$e].availableImages=Q}ce()}enableTerrain($,Q,ce){this.terrain=Q,ce()}setProjection($,Q){this.projections[$]=a.getProjection(Q)}setLayers($,Q,ce){this.getLayerIndex($).replace(Q),ce()}updateLayers($,Q,ce){this.getLayerIndex($).update(Q.layers,Q.removedIds),ce()}loadTile($,Q,ce){const fe=this.enableTerrain?a.extend({enableTerrain:this.terrain},Q):Q;fe.projection=this.projections[$]||this.defaultProjection,this.getWorkerSource($,Q.type,Q.source).loadTile(fe,ce)}loadDEMTile($,Q,ce){const fe=this.enableTerrain?a.extend({buildQuadTree:this.terrain},Q):Q;this.getDEMWorkerSource($,Q.source).loadTile(fe,ce)}reloadTile($,Q,ce){const fe=this.enableTerrain?a.extend({enableTerrain:this.terrain},Q):Q;fe.projection=this.projections[$]||this.defaultProjection,this.getWorkerSource($,Q.type,Q.source).reloadTile(fe,ce)}abortTile($,Q,ce){this.getWorkerSource($,Q.type,Q.source).abortTile(Q,ce)}removeTile($,Q,ce){this.getWorkerSource($,Q.type,Q.source).removeTile(Q,ce)}removeSource($,Q,ce){if(!this.workerSources[$]||!this.workerSources[$][Q.type]||!this.workerSources[$][Q.type][Q.source])return;const fe=this.workerSources[$][Q.type][Q.source];delete this.workerSources[$][Q.type][Q.source],fe.removeSource!==void 0?fe.removeSource(Q,ce):ce()}loadWorkerSource($,Q,ce){try{this.self.importScripts(Q.url),ce()}catch(fe){ce(fe.toString())}}syncRTLPluginState($,Q,ce){try{a.plugin.setState(Q);const fe=a.plugin.getPluginURL();if(a.plugin.isLoaded()&&!a.plugin.isParsed()&&fe!=null){this.self.importScripts(fe);const Ie=a.plugin.isParsed();ce(Ie?void 0:new Error(`RTL Text Plugin failed to import scripts from ${fe}`),Ie)}}catch(fe){ce(fe.toString())}}getAvailableImages($){let Q=this.availableImages[$];return Q||(Q=[]),Q}getLayerIndex($){let Q=this.layerIndexes[$];return Q||(Q=this.layerIndexes[$]=new M),Q}getWorkerSource($,Q,ce){return this.workerSources[$]||(this.workerSources[$]={}),this.workerSources[$][Q]||(this.workerSources[$][Q]={}),this.workerSources[$][Q][ce]||(this.workerSources[$][Q][ce]=new this.workerSourceTypes[Q]({send:(fe,Ie,$e,je,Be,He)=>{this.actor.send(fe,Ie,$e,$,Be,He)},scheduler:this.actor.scheduler},this.getLayerIndex($),this.getAvailableImages($),this.isSpriteLoaded[$])),this.workerSources[$][Q][ce]}getDEMWorkerSource($,Q){return this.demWorkerSources[$]||(this.demWorkerSources[$]={}),this.demWorkerSources[$][Q]||(this.demWorkerSources[$][Q]=new k),this.demWorkerSources[$][Q]}enforceCacheSizeLimit($,Q){a.enforceCacheSizeLimit(Q)}getWorkerPerformanceMetrics($,Q,ce){ce(void 0,void 0)}}return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope&&(self.worker=new xe(self)),xe}),f(["./shared"],function(a){function w(g,c){if(Array.isArray(g)){if(!Array.isArray(c)||g.length!==c.length)return!1;for(let p=0;p"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var x,S,A=new Blob([""],{type:"text/javascript"}),P=URL.createObjectURL(A);try{S=new Worker(P),x=!0}catch{x=!1}return S&&S.terminate(),URL.revokeObjectURL(P),x}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var x=document.createElement("canvas");x.width=x.height=1;var S=x.getContext("2d");if(!S)return!1;var A=S.getImageData(0,0,1,1);return A&&A.width===x.width}()?(k[p=c&&c.failIfMajorPerformanceCaveat]===void 0&&(k[p]=function(x){var S,A=function(P){var z=document.createElement("canvas"),O=Object.create(M.webGLContextAttributes);return O.failIfMajorPerformanceCaveat=P,z.getContext("webgl",O)||z.getContext("experimental-webgl",O)}(x);if(!A)return!1;try{S=A.createShader(A.VERTEX_SHADER)}catch{return!1}return!(!S||A.isContextLost())&&(A.shaderSource(S,"void main() {}"),A.compileShader(S),A.getShaderParameter(S,A.COMPILE_STATUS)===!0)}(p)),k[p]?document.documentMode?"insufficient ECMAScript 6 support":void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var p}(g)}var k={};function L(g,c,p){const x=a.window.document.createElement(g);return c!==void 0&&(x.className=c),p&&p.appendChild(x),x}function D(g,c,p){const x=a.window.document.createElementNS("http://www.w3.org/2000/svg",g);for(const S of Object.keys(c))x.setAttributeNS(null,S,c[S]);return p&&p.appendChild(x),x}M.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};const U=a.window.document&&a.window.document.documentElement.style,q=U&&U.userSelect!==void 0?"userSelect":"WebkitUserSelect";let Y;function X(){U&&q&&(Y=U[q],U[q]="none")}function oe(){U&&q&&(U[q]=Y)}function W(g){g.preventDefault(),g.stopPropagation(),a.window.removeEventListener("click",W,!0)}function K(){a.window.addEventListener("click",W,!0),a.window.setTimeout(()=>{a.window.removeEventListener("click",W,!0)},0)}function ie(g,c){const p=g.getBoundingClientRect();return se(g,p,c)}function Te(g,c){const p=g.getBoundingClientRect(),x=[];for(let S=0;S=0?0:g.button}function se(g,c,p){const x=g.offsetWidth===c.width?1:g.offsetWidth/c.width;return new a.pointGeometry((p.clientX-c.left)*x,(p.clientY-c.top)*x)}function _e(g,c){var p=c[0],x=c[1],S=c[2],A=c[3],P=p*A-S*x;return P?(g[0]=A*(P=1/P),g[1]=-x*P,g[2]=-S*P,g[3]=p*P,g):null}function ee(g){const{userImage:c}=g;return!!(c&&c.render&&c.render())&&(g.data.replace(new Uint8Array(c.data.buffer)),!0)}class ue extends a.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new a.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(c){if(this.loaded!==c&&(this.loaded=c,c)){for(const{ids:p,callback:x}of this.requestors)this._notify(p,x);this.requestors=[]}}hasImage(c){return!!this.getImage(c)}getImage(c){return this.images[c]}addImage(c,p){this._validate(c,p)&&(this.images[c]=p)}_validate(c,p){let x=!0;return this._validateStretch(p.stretchX,p.data&&p.data.width)||(this.fire(new a.ErrorEvent(new Error(`Image "${c}" has invalid "stretchX" value`))),x=!1),this._validateStretch(p.stretchY,p.data&&p.data.height)||(this.fire(new a.ErrorEvent(new Error(`Image "${c}" has invalid "stretchY" value`))),x=!1),this._validateContent(p.content,p)||(this.fire(new a.ErrorEvent(new Error(`Image "${c}" has invalid "content" value`))),x=!1),x}_validateStretch(c,p){if(!c)return!0;let x=0;for(const S of c){if(S[0]{this.ready=!0})}broadcast(c,p,x){a.asyncAll(this.actors,(S,A)=>{S.send(c,p,A)},x=x||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(c=>{c.remove()}),this.actors=[],this.workerPool.release(this.id)}}function At(g,c,p){return c*(a.EXTENT/(g.tileSize*Math.pow(2,p-g.tileID.overscaledZ)))}ot.Actor=a.Actor;class xt{constructor(c,p,x,S){this.screenBounds=c,this.cameraPoint=p,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=x,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,S)}static createFromScreenPoints(c,p){let x,S;if(c instanceof a.pointGeometry||typeof c[0]=="number"){const A=a.pointGeometry.convert(c);x=[a.pointGeometry.convert(c)],S=p.isPointAboveHorizon(A)}else{const A=a.pointGeometry.convert(c[0]),P=a.pointGeometry.convert(c[1]);x=[A,P],S=a.polygonizeBounds(A,P).every(z=>p.isPointAboveHorizon(z))}return new xt(x,p.getCameraPoint(),S,p)}isPointQuery(){return this.screenBounds.length===1}bufferedScreenGeometry(c){return a.polygonizeBounds(this.screenBounds[0],this.screenBounds.length===1?this.screenBounds[0]:this.screenBounds[1],c)}bufferedCameraGeometry(c){const p=this.screenBounds[0],x=this.screenBounds.length===1?this.screenBounds[0].add(new a.pointGeometry(1,1)):this.screenBounds[1],S=a.polygonizeBounds(p,x,0,!1);return this.cameraPoint.y>x.y&&(this.cameraPoint.x>p.x&&this.cameraPoint.x=x.x?S[2]=this.cameraPoint:this.cameraPoint.x<=p.x&&(S[3]=this.cameraPoint)),a.bufferConvexPolygon(S,c)}bufferedCameraGeometryGlobe(c){const p=this.screenBounds[0],x=this.screenBounds.length===1?this.screenBounds[0].add(new a.pointGeometry(1,1)):this.screenBounds[1],S=a.polygonizeBounds(p,x,c),A=this.cameraPoint.clone();switch(3*((A.y>p.y)+(A.y>x.y))+((A.x>p.x)+(A.x>x.x))){case 0:S[0]=A,S[4]=A.clone();break;case 1:S.splice(1,0,A);break;case 2:S[1]=A;break;case 3:S.splice(4,0,A);break;case 5:S.splice(2,0,A);break;case 6:S[3]=A;break;case 7:S.splice(3,0,A);break;case 8:S[2]=A}return S}containsTile(c,p,x,S=0){const A=c.queryPadding/p._pixelsPerMercatorPixel+1,P=x?this._bufferedCameraMercator(A,p):this._bufferedScreenMercator(A,p);let z=c.tileID.wrap+(P.unwrapped?S:0);const O=P.polygon.map(ge=>a.getTilePoint(c.tileTransform,ge,z));if(!a.polygonIntersectsBox(O,0,0,a.EXTENT,a.EXTENT))return;z=c.tileID.wrap+(this.screenGeometryMercator.unwrapped?S:0);const j=this.screenGeometryMercator.polygon.map(ge=>a.getTileVec3(c.tileTransform,ge,z)),Z=j.map(ge=>new a.pointGeometry(ge[0],ge[1])),re=p.getFreeCameraOptions().position||new a.MercatorCoordinate(0,0,0),le=a.getTileVec3(c.tileTransform,re,z),ye=j.map(ge=>{const de=a.sub(ge,ge,le);return a.normalize(de,de),new a.Ray(le,de)}),pe=At(c,1,p.zoom)*p._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:Z,tilespaceRays:ye,bufferedTilespaceGeometry:O,bufferedTilespaceBounds:(me=a.getBounds(O),me.min.x=a.clamp(me.min.x,0,a.EXTENT),me.min.y=a.clamp(me.min.y,0,a.EXTENT),me.max.x=a.clamp(me.max.x,0,a.EXTENT),me.max.y=a.clamp(me.max.y,0,a.EXTENT),me),tile:c,tileID:c.tileID,pixelToTileUnitsFactor:pe};var me}_bufferedScreenMercator(c,p){const x=mi(c);if(this._screenRaycastCache[x])return this._screenRaycastCache[x];{let S;return S=p.projection.name==="globe"?this._projectAndResample(this.bufferedScreenGeometry(c),p):{polygon:this.bufferedScreenGeometry(c).map(A=>p.pointCoordinate3D(A)),unwrapped:!0},this._screenRaycastCache[x]=S,S}}_bufferedCameraMercator(c,p){const x=mi(c);if(this._cameraRaycastCache[x])return this._cameraRaycastCache[x];{let S;return S=p.projection.name==="globe"?this._projectAndResample(this.bufferedCameraGeometryGlobe(c),p):{polygon:this.bufferedCameraGeometry(c).map(A=>p.pointCoordinate3D(A)),unwrapped:!0},this._cameraRaycastCache[x]=S,S}}_projectAndResample(c,p){const x=function(A,P){const z=a.multiply([],P.pixelMatrix,P.globeMatrix),O=[0,-a.GLOBE_RADIUS,0,1],j=[0,a.GLOBE_RADIUS,0,1],Z=[0,0,0,1];a.transformMat4$1(O,O,z),a.transformMat4$1(j,j,z),a.transformMat4$1(Z,Z,z);const re=new a.pointGeometry(O[0]/O[3],O[1]/O[3]),le=new a.pointGeometry(j[0]/j[3],j[1]/j[3]),ye=a.polygonContainsPoint(A,re)&&O[3]1?Ct(A.slice(0,ge),P):[],be=genew a.pointGeometry(It(Oe.x),Oe.y)),be=be.map(Oe=>new a.pointGeometry(It(Oe.x),Oe.y));const Ne=[...Ee];Ne.length===0&&Ne.push(be[be.length-1]);const Fe=a.number(Ne[Ne.length-1].y,(be.length===0?Ee[0]:be[0]).y,de);let Pe;return Pe=ye?[new a.pointGeometry(0,Fe),new a.pointGeometry(0,0),new a.pointGeometry(1,0),new a.pointGeometry(1,Fe)]:[new a.pointGeometry(1,Fe),new a.pointGeometry(1,1),new a.pointGeometry(0,1),new a.pointGeometry(0,Fe)],Ne.push(...Pe),be.length===0?Ne.push(Ee[0]):Ne.push(...be),{polygon:Ne.map(Oe=>new a.MercatorCoordinate(Oe.x,Oe.y)),unwrapped:!1}}(c,p);if(x)return x;const S=function(A,P){let z=!1,O=-1/0,j=0;for(let re=0;reO&&(O=A[re].x,j=re);for(let re=0;re.5&&(ye.x{re.x-=1}),{polygon:A,unwrapped:z}}(Ct(c,p).map(A=>new a.pointGeometry(It(A.x),A.y)),p);return{polygon:S.polygon.map(A=>new a.MercatorCoordinate(A.x,A.y)),unwrapped:S.unwrapped}}}function Ct(g,c){return a.resample(g,p=>{const x=c.pointCoordinate3D(p);p.x=x.x,p.y=x.y},1/256)}function It(g){return g<0?1+g%1:g%1}function mi(g){return 100*g|0}function _t(g,c,p,x,S){const A=function(P,z){if(P)return S(P);if(z){const O=a.pick(a.extend(z,g),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);z.vector_layers&&(O.vectorLayers=z.vector_layers,O.vectorLayerIds=O.vectorLayers.map(j=>j.id)),z.language_options&&(O.languageOptions=z.language_options),z.language&&z.language[z.id]&&(O.language=z.language[z.id]),z.worldview_options&&(O.worldviewOptions=z.worldview_options),z.worldview?O.worldview=z.worldview[z.id]:z.worldview_default&&(O.worldview=z.worldview_default),O.tiles=c.canonicalizeTileset(O,g.url),S(null,O)}};return g.url?a.getJSON(c.transformRequest(c.normalizeSourceURL(g.url,null,p,x),a.ResourceType.Source),A):a.exported.frame(()=>A(null,g))}class Ei{constructor(c,p,x){this.bounds=a.LngLatBounds.convert(this.validateBounds(c)),this.minzoom=p||0,this.maxzoom=x||24}validateBounds(c){return Array.isArray(c)&&c.length===4?[Math.max(-180,c[0]),Math.max(-90,c[1]),Math.min(180,c[2]),Math.min(90,c[3])]:[-180,-90,180,90]}contains(c){const p=Math.pow(2,c.z),x=Math.floor(a.mercatorXfromLng(this.bounds.getWest())*p),S=Math.floor(a.mercatorYfromLat(this.bounds.getNorth())*p),A=Math.ceil(a.mercatorXfromLng(this.bounds.getEast())*p),P=Math.ceil(a.mercatorYfromLat(this.bounds.getSouth())*p);return c.x>=x&&c.x=S&&c.y{this._tileJSONRequest=null,this._loaded=!0,c?this.fire(new a.ErrorEvent(c)):p&&(a.extend(this,p),p.bounds&&(this.tileBounds=new Ei(p.bounds,this.minzoom,this.maxzoom)),a.postTurnstileEvent(p.tiles),this.fire(new a.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new a.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}onAdd(c){this.map=c,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return a.extend({},this._options)}hasTile(c){return!this.tileBounds||this.tileBounds.contains(c.canonical)}loadTile(c,p){const x=a.exported.devicePixelRatio>=2,S=this.map._requestManager.normalizeTileURL(c.tileID.canonical.url(this.tiles,this.scheme),x,this.tileSize);c.request=a.getImage(this.map._requestManager.transformRequest(S,a.ResourceType.Tile),(A,P,z,O)=>(delete c.request,c.aborted?(c.state="unloaded",p(null)):A?(c.state="errored",p(A)):P?(this.map._refreshExpiredTiles&&c.setExpiryData({cacheControl:z,expires:O}),c.setTexture(P,this.map.painter),c.state="loaded",a.cacheEntryPossiblyAdded(this.dispatcher),void p(null)):p(null)))}static loadTileData(c,p,x){c.setTexture(p,x)}static unloadTileData(c,p){c.texture&&p.saveTileTexture(c.texture)}abortTile(c,p){c.request&&(c.request.cancel(),delete c.request),p()}unloadTile(c,p){c.texture&&this.map.painter.saveTileTexture(c.texture),p()}hasTransition(){return!1}}let Ie;function $e(g,c,p,x,S,A,P,z){const O=[g,p,S,c,x,A,1,1,1],j=[P,z,1],Z=a.adjoint([],O),[re,le,ye]=a.transformMat3(j,j,a.transpose(Z,Z));return a.multiply$1(O,[re,0,0,0,le,0,0,0,ye],O)}class je extends a.Evented{constructor(c,p,x,S){super(),this.id=c,this.dispatcher=x,this.coordinates=p.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(S),this.options=p}load(c,p){this._loaded=p||!1,this.fire(new a.Event("dataloading",{dataType:"source"})),this.url=this.options.url,a.getImage(this.map._requestManager.transformRequest(this.url,a.ResourceType.Image),(x,S)=>{if(this._loaded=!0,x)this.fire(new a.ErrorEvent(x));else if(S){const{HTMLImageElement:A}=a.window;this.image=S instanceof A?a.exported.getImageData(S):S,this.width=this.image.width,this.height=this.image.height,c&&(this.coordinates=c),this._finishLoading()}})}loaded(){return this._loaded}updateImage(c){return this.image&&c.url?(this.options.url=c.url,this.load(c.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new a.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(c){this.map=c,this.load()}onRemove(){this.texture&&this.texture.destroy()}setCoordinates(c){this.coordinates=c,this._boundsArray=void 0;const p=c.map(a.MercatorCoordinate.fromLngLat);return this.tileID=function(x){let S=1/0,A=1/0,P=-1/0,z=-1/0;for(const re of x)S=Math.min(S,re.x),A=Math.min(A,re.y),P=Math.max(P,re.x),z=Math.max(z,re.y);const O=Math.max(P-S,z-A),j=Math.max(0,Math.floor(-Math.log(O)/Math.LN2)),Z=Math.pow(2,j);return new a.CanonicalTileID(j,Math.floor((S+P)/2*Z),Math.floor((A+z)/2*Z))}(p),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new a.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0}_prepareData(c){for(const O in this.tiles){const j=this.tiles[O];j.state!=="loaded"&&(j.state="loaded",j.texture=this.texture)}if(this._boundsArray)return;const p=a.tileTransform(this.tileID,this.map.transform.projection),[x,S,A,P]=this.coordinates.map(O=>{const j=p.projection.project(O[0],O[1]);return a.getTilePoint(p,j)._round()});this.perspectiveTransform=function(O,j,Z,re,le,ye,pe,me,ge,de){const Ee=$e(0,0,O,0,0,j,O,j),be=$e(Z,re,le,ye,pe,me,ge,de);return a.multiply$1(be,a.adjoint(Ee,Ee),be),[be[6]/be[8]*O/a.EXTENT,be[7]/be[8]*j/a.EXTENT]}(this.width,this.height,x.x,x.y,S.x,S.y,P.x,P.y,A.x,A.y);const z=this._boundsArray=new a.StructArrayLayout4i8;z.emplaceBack(x.x,x.y,0,0),z.emplaceBack(S.x,S.y,a.EXTENT,0),z.emplaceBack(P.x,P.y,0,a.EXTENT),z.emplaceBack(A.x,A.y,a.EXTENT,a.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=c.createVertexBuffer(z,a.boundsAttributes.members),this.boundsSegments=a.SegmentVector.simpleSegment(0,0,4,2)}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const c=this.map.painter.context,p=c.gl;this.texture?this.texture.update(this.image):(this.texture=new a.Texture(c,this.image,p.RGBA),this.texture.bind(p.LINEAR,p.CLAMP_TO_EDGE)),this._prepareData(c)}loadTile(c,p){this.tileID&&this.tileID.equals(c.tileID.canonical)?(this.tiles[String(c.tileID.wrap)]=c,c.buckets={},p(null)):(c.state="errored",p(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const Be={vector:class extends a.Evented{constructor(g,c,p,x){if(super(),this.id=g,this.dispatcher=p,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,a.extend(this,a.pick(c,["url","scheme","tileSize","promoteId"])),this._options=a.extend({type:"vector"},c),this._collectResourceTiming=c.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(x),this._tileWorkers={},this._deduped=new a.DedupedRequest}load(g){this._loaded=!1,this.fire(new a.Event("dataloading",{dataType:"source"}));const c=this.language||this.map._language,p=this.worldview||this.map._worldview;this._tileJSONRequest=_t(this._options,this.map._requestManager,c,p,(x,S)=>{this._tileJSONRequest=null,this._loaded=!0,x?(c&&console.warn(`Ensure that your requested language string is a valid BCP-47 code. Found: ${c}`),p&&p.length!==2&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${p}`),this.fire(new a.ErrorEvent(x))):S&&(a.extend(this,S),S.bounds&&(this.tileBounds=new Ei(S.bounds,this.minzoom,this.maxzoom)),a.postTurnstileEvent(S.tiles,this.map._requestManager._customAccessToken),this.fire(new a.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new a.Event("data",{dataType:"source",sourceDataType:"content"}))),g&&g(x)})}loaded(){return this._loaded}hasTile(g){return!this.tileBounds||this.tileBounds.contains(g.canonical)}onAdd(g){this.map=g,this.load()}setSourceProperty(g){this._tileJSONRequest&&this._tileJSONRequest.cancel(),g(),this.load(()=>{const c=this.map.style._getSourceCaches(this.id);for(const p of c)p.clearTiles()})}setTiles(g){return this.setSourceProperty(()=>{this._options.tiles=g}),this}setUrl(g){return this.setSourceProperty(()=>{this.url=g,this._options.url=g}),this}_setLanguage(g){return g===this.language||this.setSourceProperty(()=>{this.language=g}),this}_setWorldview(g){return g===this.worldview?this:this.worldviewOptions&&g&&!this.worldviewOptions[g]?(console.warn(`Vector tile source "${this.id}" does not support worldview "${g}".`),this):(this.setSourceProperty(()=>{this.worldview=g}),this)}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return a.extend({},this._options)}loadTile(g,c){const p=this.map._requestManager.normalizeTileURL(g.tileID.canonical.url(this.tiles,this.scheme)),x={request:this.map._requestManager.transformRequest(p,a.ResourceType.Tile),data:void 0,uid:g.uid,tileID:g.tileID,tileZoom:g.tileZoom,zoom:g.tileID.overscaledZ,tileSize:this.tileSize*g.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:a.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:g.isSymbolTile};if(x.request.collectResourceTiming=this._collectResourceTiming,g.actor&&g.state!=="expired")g.state==="loading"?g.reloadCallback=c:g.request=g.actor.send("reloadTile",x,S.bind(this));else if(g.actor=this._tileWorkers[p]=this._tileWorkers[p]||this.dispatcher.getActor(),this.dispatcher.ready)g.request=g.actor.send("loadTile",x,S.bind(this),void 0,!0);else{const A=a.loadVectorTile.call({deduped:this._deduped},x,(P,z)=>{P||!z?S.call(this,P):(x.data={cacheControl:z.cacheControl,expires:z.expires,rawData:z.rawData.slice(0)},g.actor&&g.actor.send("loadTile",x,S.bind(this),void 0,!0))},!0);g.request={cancel:A}}function S(A,P){return delete g.request,g.aborted?c(null):A&&A.status!==404?c(A):(P&&P.resourceTiming&&(g.resourceTiming=P.resourceTiming),this.map._refreshExpiredTiles&&P&&g.setExpiryData(P),g.loadVectorData(P,this.map.painter),a.cacheEntryPossiblyAdded(this.dispatcher),c(null),void(g.reloadCallback&&(this.loadTile(g,g.reloadCallback),g.reloadCallback=null)))}}abortTile(g){g.request&&(g.request.cancel(),delete g.request),g.actor&&g.actor.send("abortTile",{uid:g.uid,type:this.type,source:this.id})}unloadTile(g){g.unloadVectorData(),g.actor&&g.actor.send("removeTile",{uid:g.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}},raster:fe,"raster-dem":class extends fe{constructor(g,c,p,x){super(g,c,p,x),this.type="raster-dem",this.maxzoom=22,this._options=a.extend({type:"raster-dem"},c),this.encoding=c.encoding||"mapbox"}loadTile(g,c){const p=this.map._requestManager.normalizeTileURL(g.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function x(S,A){S&&(g.state="errored",c(S)),A&&(g.dem=A,g.dem.onDeserialize(),g.needsHillshadePrepare=!0,g.needsDEMTextureUpload=!0,g.state="loaded",c(null))}g.request=a.getImage(this.map._requestManager.transformRequest(p,a.ResourceType.Tile),function(S,A,P,z){if(delete g.request,g.aborted)g.state="unloaded",c(null);else if(S)g.state="errored",c(S);else if(A){this.map._refreshExpiredTiles&&g.setExpiryData({cacheControl:P,expires:z});const O=a.window.ImageBitmap&&A instanceof a.window.ImageBitmap&&(Ie==null&&(Ie=a.window.OffscreenCanvas&&new a.window.OffscreenCanvas(1,1).getContext("2d")&&typeof a.window.createImageBitmap=="function"),Ie),j=1-(A.width-a.prevPowerOfTwo(A.width))/2;j<1||g.neighboringTiles||(g.neighboringTiles=this._getNeighboringTiles(g.tileID));const Z=O?A:a.exported.getImageData(A,j),re={uid:g.uid,coord:g.tileID,source:this.id,rawImageData:Z,encoding:this.encoding,padding:j};g.actor&&g.state!=="expired"||(g.actor=this.dispatcher.getActor(),g.actor.send("loadDEMTile",re,x.bind(this),void 0,!0))}}.bind(this))}_getNeighboringTiles(g){const c=g.canonical,p=Math.pow(2,c.z),x=(c.x-1+p)%p,S=c.x===0?g.wrap-1:g.wrap,A=(c.x+1+p)%p,P=c.x+1===p?g.wrap+1:g.wrap,z={};return z[new a.OverscaledTileID(g.overscaledZ,S,c.z,x,c.y).key]={backfilled:!1},z[new a.OverscaledTileID(g.overscaledZ,P,c.z,A,c.y).key]={backfilled:!1},c.y>0&&(z[new a.OverscaledTileID(g.overscaledZ,S,c.z,x,c.y-1).key]={backfilled:!1},z[new a.OverscaledTileID(g.overscaledZ,g.wrap,c.z,c.x,c.y-1).key]={backfilled:!1},z[new a.OverscaledTileID(g.overscaledZ,P,c.z,A,c.y-1).key]={backfilled:!1}),c.y+1{if(this._loaded=!0,this._pendingLoad=null,p)this.fire(new a.ErrorEvent(p));else{const S={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&x&&x.resourceTiming&&x.resourceTiming[this.id]&&(S.resourceTiming=x.resourceTiming[this.id]),this.fire(new a.Event("data",S)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(g,c){const p=g.actor?"reloadTile":"loadTile";g.actor=this.actor,g.request=this.actor.send(p,{type:this.type,uid:g.uid,tileID:g.tileID,tileZoom:g.tileZoom,zoom:g.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:a.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(x,S)=>(delete g.request,g.unloadVectorData(),g.aborted?c(null):x?c(x):(g.loadVectorData(S,this.map.painter,p==="reloadTile"),c(null))),void 0,p==="loadTile")}abortTile(g){g.request&&(g.request.cancel(),delete g.request),g.aborted=!0}unloadTile(g){g.unloadVectorData(),this.actor.send("removeTile",{uid:g.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return a.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends je{constructor(g,c,p,x){super(g,c,p,x),this.roundZoom=!0,this.type="video",this.options=c}load(){this._loaded=!1;const g=this.options;this.urls=[];for(const c of g.urls)this.urls.push(this.map._requestManager.transformRequest(c,a.ResourceType.Source).url);a.getVideo(this.urls,(c,p)=>{this._loaded=!0,c?this.fire(new a.ErrorEvent(c)):p&&(this.video=p,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(g){if(this.video){const c=this.video.seekable;gc.end(0)?this.fire(new a.ErrorEvent(new a.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${c.start(0)} and ${c.end(0)}-second mark.`))):this.video.currentTime=g}}getVideo(){return this.video}onAdd(g){this.map||(this.map=g,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const g=this.map.painter.context,c=g.gl;this.texture?this.video.paused||(this.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE),c.texSubImage2D(c.TEXTURE_2D,0,0,0,c.RGBA,c.UNSIGNED_BYTE,this.video)):(this.texture=new a.Texture(g,this.video,c.RGBA),this.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(g)}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:je,canvas:class extends je{constructor(g,c,p,x){super(g,c,p,x),c.coordinates?Array.isArray(c.coordinates)&&c.coordinates.length===4&&!c.coordinates.some(S=>!Array.isArray(S)||S.length!==2||S.some(A=>typeof A!="number"))||this.fire(new a.ErrorEvent(new a.ValidationError(`sources.${g}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new a.ErrorEvent(new a.ValidationError(`sources.${g}`,null,'missing required property "coordinates"'))),c.animate&&typeof c.animate!="boolean"&&this.fire(new a.ErrorEvent(new a.ValidationError(`sources.${g}`,null,'optional "animate" property must be a boolean value'))),c.canvas?typeof c.canvas=="string"||c.canvas instanceof a.window.HTMLCanvasElement||this.fire(new a.ErrorEvent(new a.ValidationError(`sources.${g}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new a.ErrorEvent(new a.ValidationError(`sources.${g}`,null,'missing required property "canvas"'))),this.options=c,this.animate=c.animate===void 0||c.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof a.window.HTMLCanvasElement?this.options.canvas:a.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new a.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(g){this.map=g,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let g=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,g=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,g=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const c=this.map.painter.context;this.texture?(g||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new a.Texture(c,this.canvas,c.gl.RGBA,{premultiply:!0}),this._prepareData(c)}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const g of[this.canvas.width,this.canvas.height])if(isNaN(g)||g<=0)return!0;return!1}},custom:class extends a.Evented{constructor(g,c,p,x){super(),this.id=g,this.type="custom",this._dataType="raster",this._dispatcher=p,this._implementation=c,this.setEventedParent(x),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new a.ErrorEvent(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new a.ErrorEvent(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new Ei(this._implementation.bounds,this.minzoom,this.maxzoom)),c.update=this._update.bind(this),c.coveringTiles=this._coveringTiles.bind(this),a.extend(this,a.pick(c,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]))}serialize(){return a.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new a.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new a.Event("data",{dataType:"source",sourceDataType:"content"}))}loaded(){return this._loaded}onAdd(g){this._map=g,this._loaded=!1,this.fire(new a.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(g),this.load()}onRemove(g){this._implementation.onRemove&&this._implementation.onRemove(g)}hasTile(g){if(this._implementation.hasTile){const{x:c,y:p,z:x}=g.canonical;return this._implementation.hasTile({x:c,y:p,z:x})}return!this.tileBounds||this.tileBounds.contains(g.canonical)}loadTile(g,c){const{x:p,y:x,z:S}=g.tileID.canonical,A=new a.window.AbortController,P=this._implementation.loadTile({x:p,y:x,z:S},{signal:A.signal});if(!P)return this.loadTileData(g,{width:this.tileSize,height:this.tileSize,data:null}),g.state="loaded",c(null);P.cancel=()=>A.abort(),g.request=P.then(function(z){return delete g.request,g.aborted?(g.state="unloaded",c(null)):z?function(O){return O instanceof a.window.ImageData||O instanceof a.window.ImageBitmap||O instanceof a.window.HTMLCanvasElement}(z)?(this.loadTileData(g,z),g.state="loaded",void c(null)):(g.state="errored",c(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`))):(this.loadTileData(g,{width:this.tileSize,height:this.tileSize,data:null}),g.state="loaded",c(null))}.bind(this)).catch(z=>{z.code!==20&&(g.state="errored",c(z))})}loadTileData(g,c){fe.loadTileData(g,c,this._map.painter)}unloadTileData(g){fe.unloadTileData(g,this._map.painter)}prepareTile(g){if(!this._implementation.prepareTile)return null;const{x:c,y:p,z:x}=g.tileID.canonical,S=this._implementation.prepareTile({x:c,y:p,z:x});return S?(this.loadTileData(g,S),g.state="loaded",S):null}unloadTile(g,c){if(this.unloadTileData(g),this._implementation.unloadTile){const{x:p,y:x,z:S}=g.tileID.canonical;this._implementation.unloadTile({x:p,y:x,z:S})}c()}abortTile(g,c){g.request&&g.request.cancel&&(g.request.cancel(),delete g.request),c()}hasTransition(){return!1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map(g=>({x:g.canonical.x,y:g.canonical.y,z:g.canonical.z}))}_update(){this.fire(new a.Event("data",{dataType:"source",sourceDataType:"content"}))}}},He=function(g,c,p,x){const S=new Be[c.type](g,c,p,x);if(S.id!==g)throw new Error(`Expected Source id to be ${g} instead of ${S.id}`);return a.bindAll(["load","abort","unload","serialize","prepare"],S),S};function st(g,c){const p=a.identity([]);return a.scale(p,p,[.5*g.width,.5*-g.height,1]),a.translate(p,p,[1,-1,0]),a.multiply(p,p,g.calculateProjMatrix(c.toUnwrapped())),Float32Array.from(p)}function Vt(g,c,p,x,S,A,P,z=!1){const O=g.tilesIn(x,P,z);O.sort(pi);const j=[];for(const re of O)j.push({wrappedTileID:re.tile.tileID.wrapped().key,queryResults:re.tile.queryRenderedFeatures(c,p,g._state,re,S,A,st(g.transform,re.tile.tileID),z)});const Z=function(re){const le={},ye={};for(const pe of re){const me=pe.queryResults,ge=pe.wrappedTileID,de=ye[ge]=ye[ge]||{};for(const Ee in me){const be=me[Ee],Ne=de[Ee]=de[Ee]||{},Fe=le[Ee]=le[Ee]||[];for(const Pe of be)Ne[Pe.featureIndex]||(Ne[Pe.featureIndex]=!0,Fe.push(Pe))}}return le}(j);for(const re in Z)Z[re].forEach(le=>{const ye=le.feature,pe=ye.layer;pe&&pe.type!=="background"&&pe.type!=="sky"&&(ye.source=pe.source,pe["source-layer"]&&(ye.sourceLayer=pe["source-layer"]),ye.state=ye.id!==void 0?g.getFeatureState(pe["source-layer"],ye.id):{})});return Z}function ut(g,c){const p=g.getRenderableIds().map(A=>g.getTileByID(A)),x=[],S={};for(let A=0;A{p.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[ci]}numActive(){return Object.keys(this.active).length}}let Ri;function tr(){return Ri||(Ri=new Ci),Ri}function Le(g,c){const p={};for(const x in g)x!=="ref"&&(p[x]=g[x]);return a.refProperties.forEach(x=>{x in c&&(p[x]=c[x])}),p}function Gt(g){g=g.slice();const c=Object.create(null);for(let p=0;p0?(S-P)/z:0;return this.points[A].mult(1-O).add(this.points[p].mult(O))}}class So{constructor(c,p,x){const S=this.boxCells=[],A=this.circleCells=[];this.xCellCount=Math.ceil(c/x),this.yCellCount=Math.ceil(p/x);for(let P=0;Pthis.width||S<0||p>this.height)return!A&&[];const z=[];if(c<=0&&p<=0&&this.width<=x&&this.height<=S){if(A)return!0;for(let O=0;O0:z}_queryCircle(c,p,x,S,A){const P=c-x,z=c+x,O=p-x,j=p+x;if(z<0||P>this.width||j<0||O>this.height)return!S&&[];const Z=[];return this._forEachCell(P,O,z,j,this._queryCellCircle,Z,{hitTest:S,circle:{x:c,y:p,radius:x},seenUids:{box:{},circle:{}}},A),S?Z.length>0:Z}query(c,p,x,S,A){return this._query(c,p,x,S,!1,A)}hitTest(c,p,x,S,A){return this._query(c,p,x,S,!0,A)}hitTestCircle(c,p,x,S){return this._queryCircle(c,p,x,!0,S)}_queryCell(c,p,x,S,A,P,z,O){const j=z.seenUids,Z=this.boxCells[A];if(Z!==null){const le=this.bboxes;for(const ye of Z)if(!j.box[ye]){j.box[ye]=!0;const pe=4*ye;if(c<=le[pe+2]&&p<=le[pe+3]&&x>=le[pe+0]&&S>=le[pe+1]&&(!O||O(this.boxKeys[ye]))){if(z.hitTest)return P.push(!0),!0;P.push({key:this.boxKeys[ye],x1:le[pe],y1:le[pe+1],x2:le[pe+2],y2:le[pe+3]})}}}const re=this.circleCells[A];if(re!==null){const le=this.circles;for(const ye of re)if(!j.circle[ye]){j.circle[ye]=!0;const pe=3*ye;if(this._circleAndRectCollide(le[pe],le[pe+1],le[pe+2],c,p,x,S)&&(!O||O(this.circleKeys[ye]))){if(z.hitTest)return P.push(!0),!0;{const me=le[pe],ge=le[pe+1],de=le[pe+2];P.push({key:this.circleKeys[ye],x1:me-de,y1:ge-de,x2:me+de,y2:ge+de})}}}}}_queryCellCircle(c,p,x,S,A,P,z,O){const j=z.circle,Z=z.seenUids,re=this.boxCells[A];if(re!==null){const ye=this.bboxes;for(const pe of re)if(!Z.box[pe]){Z.box[pe]=!0;const me=4*pe;if(this._circleAndRectCollide(j.x,j.y,j.radius,ye[me+0],ye[me+1],ye[me+2],ye[me+3])&&(!O||O(this.boxKeys[pe])))return P.push(!0),!0}}const le=this.circleCells[A];if(le!==null){const ye=this.circles;for(const pe of le)if(!Z.circle[pe]){Z.circle[pe]=!0;const me=3*pe;if(this._circlesCollide(ye[me],ye[me+1],ye[me+2],j.x,j.y,j.radius)&&(!O||O(this.circleKeys[pe])))return P.push(!0),!0}}}_forEachCell(c,p,x,S,A,P,z,O){const j=this._convertToXCellCoord(c),Z=this._convertToYCellCoord(p),re=this._convertToXCellCoord(x),le=this._convertToYCellCoord(S);for(let ye=j;ye<=re;ye++)for(let pe=Z;pe<=le;pe++)if(A.call(this,c,p,x,S,this.xCellCount*pe+ye,P,z,O))return}_convertToXCellCoord(c){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(c*this.xScale)))}_convertToYCellCoord(c){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(c*this.yScale)))}_circlesCollide(c,p,x,S,A,P){const z=S-c,O=A-p,j=x+P;return j*j>z*z+O*O}_circleAndRectCollide(c,p,x,S,A,P,z){const O=(P-S)/2,j=Math.abs(c-(S+O));if(j>O+x)return!1;const Z=(z-A)/2,re=Math.abs(p-(A+Z));if(re>Z+x)return!1;if(j<=O||re<=Z)return!0;const le=j-O,ye=re-Z;return le*le+ye*ye<=x*x}}const ri=Math.tan(85*Math.PI/180);function qi(g,c,p,x,S,A,P){const z=a.create();if(p)if(A.name==="globe"){const O=a.calculateGlobeLabelMatrix(S,c);a.multiply(z,z,O)}else{const O=_e([],P);z[0]=O[0],z[1]=O[1],z[4]=O[2],z[5]=O[3],x||a.rotateZ(z,z,S.angle)}else a.multiply(z,S.labelPlaneMatrix,g);return z}function ji(g,c,p,x,S,A,P){const z=qi(g,c,p,x,S,A,P);return A.name==="globe"&&p||(z[2]=z[6]=z[10]=z[14]=0),z}function kn(g,c,p,x,S,A,P){if(p){if(A.name==="globe"){const z=qi(g,c,p,x,S,A,P);return a.invert(z,z),a.multiply(z,g,z),z}{const z=a.clone(g),O=a.identity([]);return O[0]=P[0],O[1]=P[1],O[4]=P[2],O[5]=P[3],a.multiply(z,z,O),x||a.rotateZ(z,z,-S.angle),z}}return S.glCoordMatrix}function sn(g,c,p=0){const x=[g.x,g.y,p,1];p?a.transformMat4$1(x,x,c):G(x,x,c);const S=x[3];return{point:[x[0]/S,x[1]/S,x[2]/S],signedDistanceFromCamera:S}}function Vi(g,c){const p=[g[0],g[1],g[2],1];a.transformMat4$1(p,p,c);const x=p[3];return{point:[p[0]/x,p[1]/x,p[2]/x],signedDistanceFromCamera:x}}function Zo(g,c){return Math.min(.5+g/c*.5,1.5)}function pa(g,c){const p=g[0]/g[3],x=g[1]/g[3];return p>=-c[0]&&p<=c[0]&&x>=-c[1]&&x<=c[1]}function ma(g,c,p,x,S,A,P,z,O,j){const Z=p.transform,re=x?g.textSizeData:g.iconSizeData,le=a.evaluateSizeForZoom(re,p.transform.zoom),ye=Z.projection.name==="globe",pe=[256/p.width*2+1,256/p.height*2+1],me=x?g.text.dynamicLayoutVertexArray:g.icon.dynamicLayoutVertexArray;me.clear();let ge=null;ye&&(ge=x?g.text.globeExtVertexArray:g.icon.globeExtVertexArray);const de=g.lineVertexArray,Ee=x?g.text.placedSymbolArray:g.icon.placedSymbolArray,be=p.transform.width/p.transform.height;let Ne=!1;for(let Fe=0;FeMath.abs(p.x-c.x)*x?{useVertical:!0}:g.writingMode===a.WritingMode.vertical?c.yri}(c,p,x)?g.flipState===1?{needsFlipping:!0}:null:c.x>p.x?{needsFlipping:!0}:null}function Js(g,c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me,ge,de,Ee){const be=c/24,Ne=g.lineOffsetX*be,Fe=g.lineOffsetY*be;let Pe;if(g.numGlyphs>1){const Oe=g.glyphStartIndex+g.numGlyphs,ze=g.lineStartIndex,Ge=g.lineStartIndex+g.lineLength,et=Pn(be,z,Ne,Fe,p,re,le,g,O,A,ye,me,!1,ge,de,Ee);if(!et)return{notEnoughRoom:!0};const zt=Vi(et.first.point,P).point,Ye=Vi(et.last.point,P).point,bt=new a.pointGeometry(zt[0],zt[1]),Mt=new a.pointGeometry(Ye[0],Ye[1]);if(x&&!p){const Wt=kr(g,bt,Mt,pe);if(g.flipState=Wt&&Wt.needsFlipping?1:2,Wt)return Wt}Pe=[et.first];for(let Wt=g.glyphStartIndex+1;Wt0?zt.point:Oa(le,et,ze,1,S,void 0,ge,de.canonical),bt=kr(g,new a.pointGeometry(ze[0],ze[1]),new a.pointGeometry(Ye[0],Ye[1]),pe);if(g.flipState=bt&&bt.needsFlipping?1:2,bt)return bt}const Oe=yo(be*z.getoffsetX(g.glyphStartIndex),Ne,Fe,p,re,le,g.segment,g.lineStartIndex,g.lineStartIndex+g.lineLength,O,A,ye,me,!1,!1,ge,de,Ee);if(!Oe)return{notEnoughRoom:!0};Pe=[Oe]}if(Z)for(const Oe of Pe)a.updateGlobeVertexNormal(Z,j.length+0,Oe.up[0],Oe.up[1],Oe.up[2]),a.updateGlobeVertexNormal(Z,j.length+1,Oe.up[0],Oe.up[1],Oe.up[2]),a.updateGlobeVertexNormal(Z,j.length+2,Oe.up[0],Oe.up[1],Oe.up[2]),a.updateGlobeVertexNormal(Z,j.length+3,Oe.up[0],Oe.up[1],Oe.up[2]),a.addDynamicAttributes(j,Oe.point[0],Oe.point[1],Oe.point[2],Oe.angle);else for(const Oe of Pe)a.addDynamicAttributes(j,Oe.point[0],Oe.point[1],Oe.point[2],Oe.angle);return{}}function Xo(g,c,p,x,S){const A=x.projectTilePoint(g.x,g.y,c);if(!S)return sn(A,p,A.z);const P=S(g);return sn(new a.pointGeometry(A.x+P[0],A.y+P[1]),p,A.z+P[2])}function Oa(g,c,p,x,S,A,P,z){const O=Xo(g.add(g.sub(c)._unit()),z,S,P,A).point,j=a.sub([],p,O);return a.scaleAndAdd([],p,j,x/a.length(j))}function yo(g,c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me,ge,de){const Ee=x?g-c:g+c;let be=Ee>0?1:-1,Ne=0;x&&(be*=-1,Ne=Math.PI),be<0&&(Ne+=Math.PI);let Fe=be>0?z+P:z+P+1,Pe=S,Oe=S,ze=0,Ge=0;const et=Math.abs(Ee),zt=[],Ye=[];let bt=A;const Mt=()=>{const wi=Fe-be;return ze===0?A:new a.pointGeometry(j.getx(wi),j.gety(wi))},Wt=()=>Oa(Mt(),bt,Oe,et-ze+1,Z,le,me,ge.canonical);for(;ze+Ge<=et;){if(Fe+=be,Fe=O)return null;if(Oe=Pe,zt.push(Pe),ye&&Ye.push(bt||Mt()),Pe=re[Fe],Pe===void 0){bt=new a.pointGeometry(j.getx(Fe),j.gety(Fe));const wi=Xo(bt,ge.canonical,Z,me,le);Pe=wi.signedDistanceFromCamera>0?re[Fe]=wi.point:Wt()}else bt=null;ze+=Ge,Ge=a.distance(Oe,Pe)}bt=bt||new a.pointGeometry(j.getx(Fe),j.gety(Fe));const ct=Mt();pe&&le&&(re[Fe]=Pe=re[Fe]===void 0?Pe:Wt(),Ge=a.distance(Oe,Pe));const $t=(et-ze)/Ge,Tt=bt.sub(ct).mult($t)._add(ct),ti=a.sub([],Pe,Oe),Kt=a.scaleAndAdd([],Oe,ti,$t);let bi=[0,0,1],Di=ti[0],$i=ti[1];if(de&&(bi=me.upVector(ge.canonical,Tt.x,Tt.y),bi[0]!==0||bi[1]!==0||bi[2]!==1)){const wi=[1,0,0],Xi=[0,1,0];wi[0]=bi[2],wi[1]=0,wi[2]=-bi[0],a.cross(Xi,bi,wi),a.normalize(wi,wi),a.normalize(Xi,Xi),Di=a.dot(ti,wi),$i=a.dot(ti,Xi)}if(p){const wi=a.cross([],bi,ti);a.normalize(wi,wi),a.scaleAndAdd(Kt,Kt,wi,p*be)}const nr=Ne+Math.atan2($i,Di);return zt.push(Kt),ye&&Ye.push(Tt),{point:Kt,angle:nr,path:zt,tilePath:Ye,up:bi}}const Na=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function B(g,c){for(let p=0;p0,c.getProjection()),me=P*pe.perspectiveRatio,ge=(x.x1*p+S.x-x.padding)*me+pe.point.x,de=(x.y1*p+S.y-x.padding)*me+pe.point.y,Ee=(x.x2*p+S.x+x.padding)*me+pe.point.x,be=(x.y2*p+S.y+x.padding)*me+pe.point.y,Ne=pe.perspectiveRatio<=.55||pe.occluded;return!this.isInsideGrid(ge,de,Ee,be)||!A&&this.grid.hitTest(ge,de,Ee,be,O)||Ne?{box:[],offscreen:!1,occluded:pe.occluded}:{box:[ge,de,Ee,be],offscreen:this.isOffscreen(ge,de,Ee,be),occluded:!1}}placeCollisionCircles(c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me){const ge=[],de=this.transform.elevation,Ee=de?de.getAtTileOffsetFunc(me,this.transform.center.lat,this.transform.worldSize,c.getProjection()):ct=>[0,0,0],be=new a.pointGeometry(x.tileAnchorX,x.tileAnchorY),Ne=c.getProjection().projectTilePoint(x.tileAnchorX,x.tileAnchorY,me.canonical),Fe=Ee(be),Pe=[Ne.x+Fe[0],Ne.y+Fe[1],Ne.z+Fe[2]],Oe=c.projection.name==="globe",ze=this.projectAndGetPerspectiveRatio(z,[Pe[0],Pe[1],Pe[2]],me,Oe||!!de||this.transform.pitch>0,c.getProjection()),{perspectiveRatio:Ge}=ze,et=(re?P/Ge:P*Ge)/a.ONE_EM,zt=sn(new a.pointGeometry(Pe[0],Pe[1]),O,Pe[2]).point,Ye=ze.signedDistanceFromCamera>0?Pn(et,A,x.lineOffsetX*et,x.lineOffsetY*et,!1,zt,be,x,S,O,{},de&&!re?Ee:null,re&&!!de,c.getProjection(),me,re):null;let bt=!1,Mt=!1,Wt=!0;if(Ye&&!ze.occluded){const ct=.5*ye*Ge+pe,$t=new a.pointGeometry(-100,-100),Tt=new a.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),ti=new nn,Kt=Ye.first,bi=Ye.last;let Di=[];for(let wi=Kt.path.length-1;wi>=1;wi--)Di.push(Kt.path[wi]);for(let wi=1;wi{const Lr=Ee(hrVi(Xi,j));Di=wi.some(Xi=>Xi.signedDistanceFromCamera<=0)?[]:wi.map(Xi=>Xi.point)}let nr=[];if(Di.length>0){const wi=Di.map(vr=>new a.pointGeometry(vr[0],vr[1]));let Xi=1/0,hr=-1/0,Lr=1/0,qr=-1/0;for(let vr=0;vr=$t.x&&hr<=Tt.x&&Lr>=$t.y&&qr<=Tt.y?[wi]:hr<$t.x||Xi>Tt.x||qr<$t.y||Lr>Tt.y?[]:a.clipLine([wi],$t.x,$t.y,Tt.x,Tt.y)}for(const wi of nr){ti.reset(wi,.25*ct);let Xi=0;Xi=ti.length<=.5*ct?1:Math.ceil(ti.paddedLength/$i)+1;for(let hr=0;hr0){a.transformMat4$1(P,P,c);const O=A.name==="globe";this.fogState&&x&&!O&&(z=function(j,Z,re,le,ye,pe){const me=pe.calculateFogTileMatrix(ye),ge=[Z,re,le];return a.transformMat4(ge,ge,me),Rt(j,ge,pe.pitch,pe._fov)}(this.fogState,p[0],p[1],p[2],x.toUnwrapped(),this.transform)>.9)}else G(P,P,c);return{point:new a.pointGeometry((P[0]/P[3]+1)/2*this.transform.width+ae,(-P[1]/P[3]+1)/2*this.transform.height+ae),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(A)/P[3]*.5,1.5),signedDistanceFromCamera:P[3],occluded:S&&P[2]>P[3]||z}}isOffscreen(c,p,x,S){return x=this.screenRightBoundary||Sthis.screenBottomBoundary}isInsideGrid(c,p,x,S){return x>=0&&c=0&&px.collisionGroupID===p}}return this.collisionGroups[c]}}function xi(g,c,p,x,S){const{horizontalAlign:A,verticalAlign:P}=a.getAnchorAlignment(g),z=-(A-.5)*c,O=-(P-.5)*p,j=a.evaluateVariableOffset(g,x);return new a.pointGeometry(z+j[0]*S,O+j[1]*S)}function Ui(g,c,p,x,S){const A=new a.pointGeometry(g,c);return p&&A._rotate(x?S:-S),A}class Vr{constructor(c,p,x,S,A){this.transform=c.clone(),this.projection=c.projection.name,this.collisionIndex=new Ve(this.transform,A),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=p,this.retainedQueryData={},this.collisionGroups=new _i(x),this.collisionCircleArrays={},this.prevPlacement=S,S&&(S.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(c,p,x,S){const A=x.getBucket(p),P=x.latestFeatureIndex;if(!A||!P||p.id!==A.layerIds[0])return;const z=A.layers[0].layout,O=x.collisionBoxArray,j=Math.pow(2,this.transform.zoom-x.tileID.overscaledZ),Z=x.tileSize/a.EXTENT,re=x.tileID.toUnwrapped();this.transform.setProjection(A.projection);const le=(ye=x.tileID,pe=A.getProjection(),me=this.transform,pe.name===this.projection?me.calculateProjMatrix(ye.toUnwrapped()):Je(me,pe,ye));var ye,pe,me;const ge=z.get("text-pitch-alignment")==="map",de=z.get("text-rotation-alignment")==="map";p.compileFilter();const Ee=p.dynamicFilter(),be=p.dynamicFilterNeedsFeature(),Ne=this.transform.calculatePixelsToTileUnitsMatrix(x),Fe=ji(le,x.tileID.canonical,ge,de,this.transform,A.getProjection(),Ne);let Pe=null;if(ge){const Ge=kn(le,x.tileID.canonical,ge,de,this.transform,A.getProjection(),Ne);Pe=a.multiply([],this.transform.labelPlaneMatrix,Ge)}let Oe=null;Ee&&x.latestFeatureIndex&&(Oe={unwrappedTileID:re,dynamicFilter:Ee,dynamicFilterNeedsFeature:be,featureIndex:x.latestFeatureIndex}),this.retainedQueryData[A.bucketInstanceId]=new ni(A.bucketInstanceId,P,A.sourceLayerIndex,A.index,x.tileID);const ze={bucket:A,layout:z,posMatrix:le,textLabelPlaneMatrix:Fe,labelToScreenMatrix:Pe,clippingData:Oe,scale:j,textPixelRatio:Z,holdingForFade:x.holdingForFade(),collisionBoxArray:O,partiallyEvaluatedTextSize:a.evaluateSizeForZoom(A.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:a.evaluateSizeForZoom(A.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(A.sourceID)};if(S)for(const Ge of A.sortKeyRanges){const{sortKey:et,symbolInstanceStart:zt,symbolInstanceEnd:Ye}=Ge;c.push({sortKey:et,symbolInstanceStart:zt,symbolInstanceEnd:Ye,parameters:ze})}else c.push({symbolInstanceStart:0,symbolInstanceEnd:A.symbolInstances.length,parameters:ze})}attemptAnchorPlacement(c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me,ge,de,Ee){const be=[le.textOffset0,le.textOffset1],Ne=xi(c,x,S,be,A),Fe=this.collisionIndex.placeCollisionBox(pe,A,p,Ui(Ne.x,Ne.y,P,z,this.transform.angle),re,O,j,Z.predicate);if((!ge||this.collisionIndex.placeCollisionBox(pe,pe.getSymbolInstanceIconSize(Ee,this.transform.zoom,ye),ge,Ui(Ne.x,Ne.y,P,z,this.transform.angle),re,O,j,Z.predicate).box.length!==0)&&Fe.box.length>0){let Pe;return this.prevPlacement&&this.prevPlacement.variableOffsets[le.crossTileID]&&this.prevPlacement.placements[le.crossTileID]&&this.prevPlacement.placements[le.crossTileID].text&&(Pe=this.prevPlacement.variableOffsets[le.crossTileID].anchor),this.variableOffsets[le.crossTileID]={textOffset:be,width:x,height:S,anchor:c,textScale:A,prevAnchor:Pe},this.markUsedJustification(pe,c,le,me),pe.allowVerticalPlacement&&(this.markUsedOrientation(pe,me,le),this.placedOrientations[le.crossTileID]=me),{shift:Ne,placedGlyphBoxes:Fe}}}placeLayerBucketPart(c,p,x,S){const{bucket:A,layout:P,posMatrix:z,textLabelPlaneMatrix:O,labelToScreenMatrix:j,clippingData:Z,textPixelRatio:re,holdingForFade:le,collisionBoxArray:ye,partiallyEvaluatedTextSize:pe,partiallyEvaluatedIconSize:me,collisionGroup:ge}=c.parameters,de=P.get("text-optional"),Ee=P.get("icon-optional"),be=P.get("text-allow-overlap"),Ne=P.get("icon-allow-overlap"),Fe=P.get("text-rotation-alignment")==="map",Pe=P.get("text-pitch-alignment")==="map",Oe=P.get("icon-text-fit")!=="none",ze=P.get("symbol-z-order")==="viewport-y";this.transform.setProjection(A.projection);let Ge=be&&(Ne||!A.hasIconData()||Ee),et=Ne&&(be||!A.hasTextData()||de);!A.collisionArrays&&ye&&A.deserializeCollisionBoxes(ye),x&&S&&A.updateCollisionDebugBuffers(this.transform.zoom,ye);const zt=(Ye,bt,Mt)=>{if(Z){const Rr={zoom:this.transform.zoom,pitch:this.transform.pitch};let Or=null;if(Z.dynamicFilterNeedsFeature){const rr=this.retainedQueryData[A.bucketInstanceId];Or=Z.featureIndex.loadFeature({featureIndex:Ye.featureIndex,bucketIndex:rr.bucketIndex,sourceLayerIndex:rr.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,Z.dynamicFilter)(Rr,Or,this.retainedQueryData[A.bucketInstanceId].tileID.canonical,new a.pointGeometry(Ye.tileAnchorX,Ye.tileAnchorY),this.transform.calculateDistanceTileData(Z.unwrappedTileID)))return this.placements[Ye.crossTileID]=new Xt(!1,!1,!1,!0),void(p[Ye.crossTileID]=!0)}if(p[Ye.crossTileID])return;if(le)return void(this.placements[Ye.crossTileID]=new Xt(!1,!1,!1));let Wt=!1,ct=!1,$t=!0,Tt=!1,ti=!1,Kt=null,bi={box:null,offscreen:null,occluded:null},Di={box:null,offscreen:null,occluded:null},$i=null,nr=null,wi=null,Xi=0,hr=0,Lr=0;Mt.textFeatureIndex?Xi=Mt.textFeatureIndex:Ye.useRuntimeCollisionCircles&&(Xi=Ye.featureIndex),Mt.verticalTextFeatureIndex&&(hr=Mt.verticalTextFeatureIndex);const qr=Rr=>{Rr.tileID=this.retainedQueryData[A.bucketInstanceId].tileID,(this.transform.elevation||Rr.elevation)&&(Rr.elevation=this.transform.elevation?this.transform.elevation.getAtTileOffset(this.retainedQueryData[A.bucketInstanceId].tileID,Rr.tileAnchorX,Rr.tileAnchorY):0)},vr=Mt.textBox;if(vr){qr(vr);const Rr=rr=>{let tn=a.WritingMode.horizontal;if(A.allowVerticalPlacement&&!rr&&this.prevPlacement){const Tn=this.prevPlacement.placedOrientations[Ye.crossTileID];Tn&&(this.placedOrientations[Ye.crossTileID]=Tn,tn=Tn,this.markUsedOrientation(A,tn,Ye))}return tn},Or=(rr,tn)=>{if(A.allowVerticalPlacement&&Ye.numVerticalGlyphVertices>0&&Mt.verticalTextBox){for(const Tn of A.writingModes)if(Tn===a.WritingMode.vertical?(bi=tn(),Di=bi):bi=rr(),bi&&bi.box&&bi.box.length)break}else bi=rr()};if(P.get("text-variable-anchor")){let rr=P.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[Ye.crossTileID]){const Mr=this.prevPlacement.variableOffsets[Ye.crossTileID];rr.indexOf(Mr.anchor)>0&&(rr=rr.filter(Sn=>Sn!==Mr.anchor),rr.unshift(Mr.anchor))}const tn=(Mr,Sn,Ta)=>{const Rn=A.getSymbolInstanceTextSize(pe,Ye,this.transform.zoom,bt),Sa=(Mr.x2-Mr.x1)*Rn+2*Mr.padding,Ma=(Mr.y2-Mr.y1)*Rn+2*Mr.padding,Aa=Oe&&!Ne?Sn:null;Aa&&qr(Aa);let zn={box:[],offscreen:!1,occluded:!1};const Ca=be?2*rr.length:rr.length;for(let ra=0;ra=rr.length,Ye,bt,A,Ta,Aa,pe,me);if(Vs&&(zn=Vs.placedGlyphBoxes,zn&&zn.box&&zn.box.length)){Wt=!0,Kt=Vs.shift;break}}return zn};Or(()=>tn(vr,Mt.iconBox,a.WritingMode.horizontal),()=>{const Mr=Mt.verticalTextBox;return Mr&&qr(Mr),A.allowVerticalPlacement&&!(bi&&bi.box&&bi.box.length)&&Ye.numVerticalGlyphVertices>0&&Mr?tn(Mr,Mt.verticalIconBox,a.WritingMode.vertical):{box:null,offscreen:null,occluded:null}}),bi&&(Wt=bi.box,$t=bi.offscreen,Tt=bi.occluded);const Tn=Rr(bi&&bi.box);if(!Wt&&this.prevPlacement){const Mr=this.prevPlacement.variableOffsets[Ye.crossTileID];Mr&&(this.variableOffsets[Ye.crossTileID]=Mr,this.markUsedJustification(A,Mr.anchor,Ye,Tn))}}else{const rr=(tn,Tn)=>{const Mr=A.getSymbolInstanceTextSize(pe,Ye,this.transform.zoom,bt),Sn=this.collisionIndex.placeCollisionBox(A,Mr,tn,new a.pointGeometry(0,0),be,re,z,ge.predicate);return Sn&&Sn.box&&Sn.box.length&&(this.markUsedOrientation(A,Tn,Ye),this.placedOrientations[Ye.crossTileID]=Tn),Sn};Or(()=>rr(vr,a.WritingMode.horizontal),()=>{const tn=Mt.verticalTextBox;return A.allowVerticalPlacement&&Ye.numVerticalGlyphVertices>0&&tn?(qr(tn),rr(tn,a.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}}),Rr(bi&&bi.box&&bi.box.length)}}if($i=bi,Wt=$i&&$i.box&&$i.box.length>0,$t=$i&&$i.offscreen,Tt=$i&&$i.occluded,Ye.useRuntimeCollisionCircles){const Rr=A.text.placedSymbolArray.get(Ye.centerJustifiedTextSymbolIndex>=0?Ye.centerJustifiedTextSymbolIndex:Ye.verticalPlacedTextSymbolIndex),Or=a.evaluateSizeForFeature(A.textSizeData,pe,Rr),rr=P.get("text-padding");nr=this.collisionIndex.placeCollisionCircles(A,be,Rr,A.lineVertexArray,A.glyphOffsetArray,Or,z,O,j,x,Pe,ge.predicate,Ye.collisionCircleDiameter*Or/a.ONE_EM,rr,this.retainedQueryData[A.bucketInstanceId].tileID),Wt=be||nr.circles.length>0&&!nr.collisionDetected,$t=$t&&nr.offscreen,Tt=nr.occluded}if(Mt.iconFeatureIndex&&(Lr=Mt.iconFeatureIndex),Mt.iconBox){const Rr=Or=>{qr(Or);const rr=Oe&&Kt?Ui(Kt.x,Kt.y,Fe,Pe,this.transform.angle):new a.pointGeometry(0,0),tn=A.getSymbolInstanceIconSize(me,this.transform.zoom,bt);return this.collisionIndex.placeCollisionBox(A,tn,Or,rr,Ne,re,z,ge.predicate)};Di&&Di.box&&Di.box.length&&Mt.verticalIconBox?(wi=Rr(Mt.verticalIconBox),ct=wi.box.length>0):(wi=Rr(Mt.iconBox),ct=wi.box.length>0),$t=$t&&wi.offscreen,ti=wi.occluded}const mn=de||Ye.numHorizontalGlyphVertices===0&&Ye.numVerticalGlyphVertices===0,go=Ee||Ye.numIconVertices===0;if(mn||go?go?mn||(ct=ct&&Wt):Wt=ct&&Wt:ct=Wt=ct&&Wt,Wt&&$i&&$i.box&&this.collisionIndex.insertCollisionBox($i.box,P.get("text-ignore-placement"),A.bucketInstanceId,Di&&Di.box&&hr?hr:Xi,ge.ID),ct&&wi&&this.collisionIndex.insertCollisionBox(wi.box,P.get("icon-ignore-placement"),A.bucketInstanceId,Lr,ge.ID),nr&&(Wt&&this.collisionIndex.insertCollisionCircles(nr.circles,P.get("text-ignore-placement"),A.bucketInstanceId,Xi,ge.ID),x)){const Rr=A.bucketInstanceId;let Or=this.collisionCircleArrays[Rr];Or===void 0&&(Or=this.collisionCircleArrays[Rr]=new tt);for(let rr=0;rr=0;--bt){const Mt=Ye[bt];zt(A.symbolInstances.get(Mt),Mt,A.collisionArrays[Mt])}}else for(let Ye=c.symbolInstanceStart;Ye=0&&(c.text.placedSymbolArray.get(z).crossTileID=A>=0&&z!==A?0:x.crossTileID)}markUsedOrientation(c,p,x){const S=p===a.WritingMode.horizontal||p===a.WritingMode.horizontalOnly?p:0,A=p===a.WritingMode.vertical?p:0,P=[x.leftJustifiedTextSymbolIndex,x.centerJustifiedTextSymbolIndex,x.rightJustifiedTextSymbolIndex];for(const z of P)c.text.placedSymbolArray.get(z).placedOrientation=S;x.verticalPlacedTextSymbolIndex&&(c.text.placedSymbolArray.get(x.verticalPlacedTextSymbolIndex).placedOrientation=A)}commit(c){this.commitTime=c,this.zoomAtLastRecencyCheck=this.transform.zoom;const p=this.prevPlacement;let x=!1;this.prevZoomAdjustment=p?p.zoomAdjustment(this.transform.zoom):0;const S=p?p.symbolFadeChange(c):1,A=p?p.opacities:{},P=p?p.variableOffsets:{},z=p?p.placedOrientations:{};for(const O in this.placements){const j=this.placements[O],Z=A[O];Z?(this.opacities[O]=new Lt(Z,S,j.text,j.icon,null,j.clipped),x=x||j.text!==Z.text.placed||j.icon!==Z.icon.placed):(this.opacities[O]=new Lt(null,S,j.text,j.icon,j.skipFade,j.clipped),x=x||j.text||j.icon)}for(const O in A){const j=A[O];if(!this.opacities[O]){const Z=new Lt(j,S,!1,!1);Z.isHidden()||(this.opacities[O]=Z,x=x||j.text.placed||j.icon.placed)}}for(const O in P)this.variableOffsets[O]||!this.opacities[O]||this.opacities[O].isHidden()||(this.variableOffsets[O]=P[O]);for(const O in z)this.placedOrientations[O]||!this.opacities[O]||this.opacities[O].isHidden()||(this.placedOrientations[O]=z[O]);x?this.lastPlacementChangeTime=c:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=p?p.lastPlacementChangeTime:c)}updateLayerOpacities(c,p){const x={};for(const S of p){const A=S.getBucket(c);A&&S.latestFeatureIndex&&c.id===A.layerIds[0]&&this.updateBucketOpacities(A,x,S.collisionBoxArray)}}updateBucketOpacities(c,p,x){c.hasTextData()&&c.text.opacityVertexArray.clear(),c.hasIconData()&&c.icon.opacityVertexArray.clear(),c.hasIconCollisionBoxData()&&c.iconCollisionBox.collisionVertexArray.clear(),c.hasTextCollisionBoxData()&&c.textCollisionBox.collisionVertexArray.clear();const S=c.layers[0].layout,A=!!c.layers[0].dynamicFilter(),P=new Lt(null,0,!1,!1,!0),z=S.get("text-allow-overlap"),O=S.get("icon-allow-overlap"),j=S.get("text-variable-anchor"),Z=S.get("text-rotation-alignment")==="map",re=S.get("text-pitch-alignment")==="map",le=S.get("icon-text-fit")!=="none",ye=new Lt(null,0,z&&(O||!c.hasIconData()||S.get("icon-optional")),O&&(z||!c.hasTextData()||S.get("text-optional")),!0);!c.collisionArrays&&x&&(c.hasIconCollisionBoxData()||c.hasTextCollisionBoxData())&&c.deserializeCollisionBoxes(x);const pe=(ge,de,Ee)=>{for(let be=0;be0||be>0,Oe=de.numIconVertices>0,ze=this.placedOrientations[de.crossTileID],Ge=ze===a.WritingMode.vertical,et=ze===a.WritingMode.horizontal||ze===a.WritingMode.horizontalOnly;if(!Pe&&!Oe||Fe.isHidden()||me++,Pe){const zt=ar(Fe.text);pe(c.text,Ee,Ge?Hr:zt),pe(c.text,be,et?Hr:zt);const Ye=Fe.text.isHidden();[de.rightJustifiedTextSymbolIndex,de.centerJustifiedTextSymbolIndex,de.leftJustifiedTextSymbolIndex].forEach(Wt=>{Wt>=0&&(c.text.placedSymbolArray.get(Wt).hidden=Ye||Ge?1:0)}),de.verticalPlacedTextSymbolIndex>=0&&(c.text.placedSymbolArray.get(de.verticalPlacedTextSymbolIndex).hidden=Ye||et?1:0);const bt=this.variableOffsets[de.crossTileID];bt&&this.markUsedJustification(c,bt.anchor,de,ze);const Mt=this.placedOrientations[de.crossTileID];Mt&&(this.markUsedJustification(c,"left",de,Mt),this.markUsedOrientation(c,Mt,de))}if(Oe){const zt=ar(Fe.icon);de.placedIconSymbolIndex>=0&&(pe(c.icon,de.numIconVertices,Ge?Hr:zt),c.icon.placedSymbolArray.get(de.placedIconSymbolIndex).hidden=Fe.icon.isHidden()),de.verticalPlacedIconSymbolIndex>=0&&(pe(c.icon,de.numVerticalIconVertices,et?Hr:zt),c.icon.placedSymbolArray.get(de.verticalPlacedIconSymbolIndex).hidden=Fe.icon.isHidden())}if(c.hasIconCollisionBoxData()||c.hasTextCollisionBoxData()){const zt=c.collisionArrays[ge];if(zt){let Ye=new a.pointGeometry(0,0),bt=!0;if(zt.textBox||zt.verticalTextBox){if(j){const Wt=this.variableOffsets[Ne];Wt?(Ye=xi(Wt.anchor,Wt.width,Wt.height,Wt.textOffset,Wt.textScale),Z&&Ye._rotate(re?this.transform.angle:-this.transform.angle)):bt=!1}A&&(bt=!Fe.clipped),zt.textBox&&vt(c.textCollisionBox.collisionVertexArray,Fe.text.placed,!bt||Ge,Ye.x,Ye.y),zt.verticalTextBox&&vt(c.textCollisionBox.collisionVertexArray,Fe.text.placed,!bt||et,Ye.x,Ye.y)}const Mt=bt&&Boolean(!et&&zt.verticalIconBox);zt.iconBox&&vt(c.iconCollisionBox.collisionVertexArray,Fe.icon.placed,Mt,le?Ye.x:0,le?Ye.y:0),zt.verticalIconBox&&vt(c.iconCollisionBox.collisionVertexArray,Fe.icon.placed,!Mt,le?Ye.x:0,le?Ye.y:0)}}}if(c.fullyClipped=me===0,c.sortFeatures(this.transform.angle),this.retainedQueryData[c.bucketInstanceId]&&(this.retainedQueryData[c.bucketInstanceId].featureSortOrder=c.featureSortOrder),c.hasTextData()&&c.text.opacityVertexBuffer&&c.text.opacityVertexBuffer.updateData(c.text.opacityVertexArray),c.hasIconData()&&c.icon.opacityVertexBuffer&&c.icon.opacityVertexBuffer.updateData(c.icon.opacityVertexArray),c.hasIconCollisionBoxData()&&c.iconCollisionBox.collisionVertexBuffer&&c.iconCollisionBox.collisionVertexBuffer.updateData(c.iconCollisionBox.collisionVertexArray),c.hasTextCollisionBoxData()&&c.textCollisionBox.collisionVertexBuffer&&c.textCollisionBox.collisionVertexBuffer.updateData(c.textCollisionBox.collisionVertexArray),c.bucketInstanceId in this.collisionCircleArrays){const ge=this.collisionCircleArrays[c.bucketInstanceId];c.placementInvProjMatrix=ge.invProjMatrix,c.placementViewportMatrix=ge.viewportMatrix,c.collisionCircleArray=ge.circles,delete this.collisionCircleArrays[c.bucketInstanceId]}}symbolFadeChange(c){return this.fadeDuration===0?1:(c-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(c){return Math.max(0,(this.transform.zoom-c)/1.5)}hasTransitions(c){return this.stale||c-this.lastPlacementChangeTimec}setStale(){this.stale=!0}}function vt(g,c,p,x,S){g.emplaceBack(c?1:0,p?1:0,x||0,S||0),g.emplaceBack(c?1:0,p?1:0,x||0,S||0),g.emplaceBack(c?1:0,p?1:0,x||0,S||0),g.emplaceBack(c?1:0,p?1:0,x||0,S||0)}const vi=Math.pow(2,25),pr=Math.pow(2,24),yr=Math.pow(2,17),Dr=Math.pow(2,16),Pi=Math.pow(2,9),Mo=Math.pow(2,8),so=Math.pow(2,1);function ar(g){if(g.opacity===0&&!g.placed)return 0;if(g.opacity===1&&g.placed)return 4294967295;const c=g.placed?1:0,p=Math.floor(127*g.opacity);return p*vi+c*pr+p*yr+c*Dr+p*Pi+c*Mo+p*so+c}const Hr=0;class ln{constructor(c){this._sortAcrossTiles=c.layout.get("symbol-z-order")!=="viewport-y"&&c.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(c,p,x,S,A){const P=this._bucketParts;for(;this._currentTileIndexz.sortKey-O.sortKey));this._currentPartIndex{const P=a.exported.now()-S;return!this._forceFullPlacement&&P>2};for(;this._currentPlacementIndex>=0;){const P=p[c[this._currentPlacementIndex]],z=this.placement.collisionIndex.transform.zoom;if(P.type==="symbol"&&(!P.minzoom||P.minzoom<=z)&&(!P.maxzoom||P.maxzoom>z)){if(this._inProgressLayer||(this._inProgressLayer=new ln(P)),this._inProgressLayer.continuePlacement(x[P.source],this.placement,this._showCollisionBoxes,P,A))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(c){return this.placement.commit(c),this.placement}}const Ua=512/a.EXTENT/2;class Dn{constructor(c,p,x){this.tileID=c,this.indexedSymbolInstances={},this.bucketInstanceId=x;for(let S=0;Sc.overscaledZ)for(const z in P){const O=P[z];O.tileID.isChildOf(c)&&O.findMatches(p.symbolInstances,c,S)}else{const z=P[c.scaledTo(Number(A)).key];z&&z.findMatches(p.symbolInstances,c,S)}}for(let A=0;A{p[x]=!0});for(const x in this.layerIndexes)p[x]||delete this.layerIndexes[x]}}const ga=(g,c)=>a.emitValidationErrors(g,c&&c.filter(p=>p.identifier!=="source.canvas")),_a=a.pick(ht,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),il=a.pick(ht,["setCenter","setZoom","setBearing","setPitch"]),xs={version:8,layers:[],sources:{}},zl={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class on extends a.Evented{constructor(c,p={}){super(),this.map=c,this.dispatcher=new ot(tr(),this),this.imageManager=new ue,this.imageManager.setEventedParent(this),this.glyphManager=new a.GlyphManager(c._requestManager,p.localFontFamily?a.LocalGlyphMode.all:p.localIdeographFontFamily?a.LocalGlyphMode.ideographs:a.LocalGlyphMode.none,p.localFontFamily||p.localIdeographFontFamily),this.lineAtlas=new a.LineAtlas(256,512),this.crossTileSymbolIndex=new Va,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this.zoomHistory=new a.ZoomHistory,this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",a.getReferrer());const x=this;this._rtlTextPluginCallback=on.registerForPluginStateChange(S=>{x.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:S.pluginStatus,pluginURL:S.pluginURL},(A,P)=>{if(a.triggerPluginCompletionEvent(A),P&&P.every(z=>z))for(const z in x._sourceCaches){const O=x._sourceCaches[z],j=O.getSource().type;j!=="vector"&&j!=="geojson"||O.reload()}})}),this.on("data",S=>{if(S.dataType!=="source"||S.sourceDataType!=="metadata")return;const A=this.getSource(S.sourceId);if(A&&A.vectorLayerIds)for(const P in this._layers){const z=this._layers[P];z.source===A.id&&this._validateLayer(z)}})}loadURL(c,p={}){this.fire(new a.Event("dataloading",{dataType:"style"}));const x=typeof p.validate=="boolean"?p.validate:!a.isMapboxURL(c);c=this.map._requestManager.normalizeStyleURL(c,p.accessToken);const S=this.map._requestManager.transformRequest(c,a.ResourceType.Style);this._request=a.getJSON(S,(A,P)=>{this._request=null,A?this.fire(new a.ErrorEvent(A)):P&&this._load(P,x)})}loadJSON(c,p={}){this.fire(new a.Event("dataloading",{dataType:"style"})),this._request=a.exported.frame(()=>{this._request=null,this._load(c,p.validate!==!1)})}loadEmpty(){this.fire(new a.Event("dataloading",{dataType:"style"})),this._load(xs,!1)}_updateLayerCount(c,p){const x=p?1:-1;c.is3D()&&(this._num3DLayers+=x),c.type==="circle"&&(this._numCircleLayers+=x),c.type==="symbol"&&(this._numSymbolLayers+=x)}_load(c,p){if(p&&ga(this,a.validateStyle(c)))return;this._loaded=!0,this.stylesheet=a.clone$1(c),this._updateMapProjection();for(const S in c.sources)this.addSource(S,c.sources[S],{validate:!1});this._changed=!1,c.sprite?this._loadSprite(c.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(c.glyphs);const x=Gt(this.stylesheet.layers);this._order=x.map(S=>S.id),this._layers={},this._serializedLayers={};for(let S of x)S=a.createStyleLayer(S),S.setEventedParent(this,{layer:{id:S.id}}),this._layers[S.id]=S,this._serializedLayers[S.id]=S.serialize(),this._updateLayerCount(S,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new Qe(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new a.Event("data",{dataType:"style"})),this.fire(new a.Event("style.load"))}terrainSetForDrapingOnly(){return!!this.terrain&&this.terrain.drapeRenderMode===0}setProjection(c){c?this.stylesheet.projection=c:delete this.stylesheet.projection,this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null))}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection)}_loadSprite(c){this._spriteRequest=function(p,x,S){let A,P,z;const O=a.exported.devicePixelRatio>1?"@2x":"";let j=a.getJSON(x.transformRequest(x.normalizeSpriteURL(p,O,".json"),a.ResourceType.SpriteJSON),(le,ye)=>{j=null,z||(z=le,A=ye,re())}),Z=a.getImage(x.transformRequest(x.normalizeSpriteURL(p,O,".png"),a.ResourceType.SpriteImage),(le,ye)=>{Z=null,z||(z=le,P=ye,re())});function re(){if(z)S(z);else if(A&&P){const le=a.exported.getImageData(P),ye={};for(const pe in A){const{width:me,height:ge,x:de,y:Ee,sdf:be,pixelRatio:Ne,stretchX:Fe,stretchY:Pe,content:Oe}=A[pe],ze=new a.RGBAImage({width:me,height:ge});a.RGBAImage.copy(le,ze,{x:de,y:Ee},{x:0,y:0},{width:me,height:ge}),ye[pe]={data:ze,pixelRatio:Ne,sdf:be,stretchX:Fe,stretchY:Pe,content:Oe}}S(null,ye)}}return{cancel(){j&&(j.cancel(),j=null),Z&&(Z.cancel(),Z=null)}}}(c,this.map._requestManager,(p,x)=>{if(this._spriteRequest=null,p)this.fire(new a.ErrorEvent(p));else if(x)for(const S in x)this.imageManager.addImage(S,x[S]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new a.Event("data",{dataType:"style"}))})}_validateLayer(c){const p=this.getSource(c.source);if(!p)return;const x=c.sourceLayer;x&&(p.type==="geojson"||p.vectorLayerIds&&p.vectorLayerIds.indexOf(x)===-1)&&this.fire(new a.ErrorEvent(new Error(`Source layer "${x}" does not exist on source "${p.id}" as specified by style layer "${c.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const c in this._sourceCaches)if(!this._sourceCaches[c].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(c){const p=[];for(const x of c){const S=this._layers[x];S.type!=="custom"&&p.push(S.serialize())}return p}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const c in this._sourceCaches)if(this._sourceCaches[c].hasTransition())return!0;for(const c in this._layers)if(this._layers[c].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(c){return!!this.terrain&&zl[c.type]}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}update(c){if(!this._loaded)return;const p=this._changed;if(this._changed){const S=Object.keys(this._updatedLayers),A=Object.keys(this._removedLayers);(S.length||A.length)&&this._updateWorkerLayers(S,A);for(const P in this._updatedSources){const z=this._updatedSources[P];z==="reload"?this._reloadSource(P):z==="clear"&&this._clearSource(P)}this._updateTilesForChangedImages();for(const P in this._updatedPaintProps)this._layers[P].updateTransitions(c);this.light.updateTransitions(c),this.fog&&this.fog.updateTransitions(c),this._resetUpdates()}const x={};for(const S in this._sourceCaches){const A=this._sourceCaches[S];x[S]=A.used,A.used=!1}for(const S of this._order){const A=this._layers[S];if(A.recalculate(c,this._availableImages),!A.isHidden(c.zoom)){const z=this._getLayerSourceCache(A);z&&(z.used=!0)}const P=this.map.painter;if(P){const z=A.getProgramIds();if(!z)continue;const O=A.getProgramConfiguration(c.zoom);for(const j of z)P.useProgram(j,O)}}for(const S in x){const A=this._sourceCaches[S];x[S]!==A.used&&A.getSource().fire(new a.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:A.getSource().id}))}this.light.recalculate(c),this.terrain&&this.terrain.recalculate(c),this.fog&&this.fog.recalculate(c),this.z=c.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),p&&this.fire(new a.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const c=Object.keys(this._changedImages);if(c.length){for(const p in this._sourceCaches)this._sourceCaches[p].reloadTilesForDependencies(["icons","patterns"],c);this._changedImages={}}}_updateWorkerLayers(c,p){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(c),removedIds:p})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(c){if(this._checkLoaded(),ga(this,a.validateStyle(c)))return!1;(c=a.clone$1(c)).layers=Gt(c.layers);const p=function(S,A){if(!S)return[{command:ht.setStyle,args:[A]}];let P=[];try{if(!w(S.version,A.version))return[{command:ht.setStyle,args:[A]}];w(S.center,A.center)||P.push({command:ht.setCenter,args:[A.center]}),w(S.zoom,A.zoom)||P.push({command:ht.setZoom,args:[A.zoom]}),w(S.bearing,A.bearing)||P.push({command:ht.setBearing,args:[A.bearing]}),w(S.pitch,A.pitch)||P.push({command:ht.setPitch,args:[A.pitch]}),w(S.sprite,A.sprite)||P.push({command:ht.setSprite,args:[A.sprite]}),w(S.glyphs,A.glyphs)||P.push({command:ht.setGlyphs,args:[A.glyphs]}),w(S.transition,A.transition)||P.push({command:ht.setTransition,args:[A.transition]}),w(S.light,A.light)||P.push({command:ht.setLight,args:[A.light]}),w(S.fog,A.fog)||P.push({command:ht.setFog,args:[A.fog]}),w(S.projection,A.projection)||P.push({command:ht.setProjection,args:[A.projection]});const z={},O=[];(function(re,le,ye,pe){let me;for(me in le=le||{},re=re||{})re.hasOwnProperty(me)&&(le.hasOwnProperty(me)||Wi(me,ye,pe));for(me in le)le.hasOwnProperty(me)&&(re.hasOwnProperty(me)?w(re[me],le[me])||(re[me].type==="geojson"&&le[me].type==="geojson"&&fr(re,le,me)?ye.push({command:ht.setGeoJSONSourceData,args:[me,le[me].data]}):Ni(me,le,ye,pe)):qe(me,le,ye))})(S.sources,A.sources,O,z);const j=[];S.layers&&S.layers.forEach(re=>{re.source&&z[re.source]?P.push({command:ht.removeLayer,args:[re.id]}):j.push(re)});let Z=S.terrain;Z&&z[Z.source]&&(P.push({command:ht.setTerrain,args:[void 0]}),Z=void 0),P=P.concat(O),w(Z,A.terrain)||P.push({command:ht.setTerrain,args:[A.terrain]}),function(re,le,ye){le=le||[];const pe=(re=re||[]).map(un),me=le.map(un),ge=re.reduce(fa,{}),de=le.reduce(fa,{}),Ee=pe.slice(),be=Object.create(null);let Ne,Fe,Pe,Oe,ze,Ge,et;for(Ne=0,Fe=0;Ne!(S.command in il));if(p.length===0)return!1;const x=p.filter(S=>!(S.command in _a));if(x.length>0)throw new Error(`Unimplemented: ${x.map(S=>S.command).join(", ")}.`);return p.forEach(S=>{S.command!=="setTransition"&&S.command!=="setProjection"&&this[S.command].apply(this,S.args)}),this.stylesheet=c,this._updateMapProjection(),!0}addImage(c,p){return this.getImage(c)?this.fire(new a.ErrorEvent(new Error("An image with this name already exists."))):(this.imageManager.addImage(c,p),this._afterImageUpdated(c),this)}updateImage(c,p){this.imageManager.updateImage(c,p)}getImage(c){return this.imageManager.getImage(c)}removeImage(c){return this.getImage(c)?(this.imageManager.removeImage(c),this._afterImageUpdated(c),this):this.fire(new a.ErrorEvent(new Error("No image with this name exists.")))}_afterImageUpdated(c){this._availableImages=this.imageManager.listImages(),this._changedImages[c]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new a.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(c,p,x={}){if(this._checkLoaded(),this.getSource(c)!==void 0)throw new Error("There is already a source with this ID");if(!p.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(p).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(p.type)>=0&&this._validate(a.validateSource,`sources.${c}`,p,null,x))return;this.map&&this.map._collectResourceTiming&&(p.collectResourceTiming=!0);const S=He(c,p,this.dispatcher,this);S.setEventedParent(this,()=>({isSourceLoaded:this._isSourceCacheLoaded(c),source:S.serialize(),sourceId:c}));const A=P=>{const z=(P?"symbol:":"other:")+c,O=this._sourceCaches[z]=new a.SourceCache(z,S,P);(P?this._symbolSourceCaches:this._otherSourceCaches)[c]=O,O.style=this,O.onAdd(this.map)};A(!1),p.type!=="vector"&&p.type!=="geojson"||A(!0),S.onAdd&&S.onAdd(this.map),this._changed=!0}removeSource(c){this._checkLoaded();const p=this.getSource(c);if(!p)throw new Error("There is no source with this ID");for(const S in this._layers)if(this._layers[S].source===c)return this.fire(new a.ErrorEvent(new Error(`Source "${c}" cannot be removed while layer "${S}" is using it.`)));if(this.terrain&&this.terrain.get().source===c)return this.fire(new a.ErrorEvent(new Error(`Source "${c}" cannot be removed while terrain is using it.`)));const x=this._getSourceCaches(c);for(const S of x)delete this._sourceCaches[S.id],delete this._updatedSources[S.id],S.fire(new a.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:S.getSource().id})),S.setEventedParent(null),S.clearTiles();return delete this._otherSourceCaches[c],delete this._symbolSourceCaches[c],p.setEventedParent(null),p.onRemove&&p.onRemove(this.map),this._changed=!0,this}setGeoJSONSourceData(c,p){this._checkLoaded(),this.getSource(c).setData(p),this._changed=!0}getSource(c){const p=this._getSourceCache(c);return p&&p.getSource()}addLayer(c,p,x={}){this._checkLoaded();const S=c.id;if(this.getLayer(S))return void this.fire(new a.ErrorEvent(new Error(`Layer with id "${S}" already exists on this map`)));let A;if(c.type==="custom"){if(ga(this,a.validateCustomStyleLayer(c)))return;A=a.createStyleLayer(c)}else{if(typeof c.source=="object"&&(this.addSource(S,c.source),c=a.clone$1(c),c=a.extend(c,{source:S})),this._validate(a.validateLayer,`layers.${S}`,c,{arrayIndex:-1},x))return;A=a.createStyleLayer(c),this._validateLayer(A),A.setEventedParent(this,{layer:{id:S}}),this._serializedLayers[A.id]=A.serialize(),this._updateLayerCount(A,!0)}const P=p?this._order.indexOf(p):this._order.length;if(p&&P===-1)return void this.fire(new a.ErrorEvent(new Error(`Layer with id "${p}" does not exist on this map.`)));this._order.splice(P,0,S),this._layerOrderChanged=!0,this._layers[S]=A;const z=this._getLayerSourceCache(A);if(this._removedLayers[S]&&A.source&&z&&A.type!=="custom"){const O=this._removedLayers[S];delete this._removedLayers[S],O.type!==A.type?this._updatedSources[A.source]="clear":(this._updatedSources[A.source]="reload",z.pause())}this._updateLayer(A),A.onAdd&&A.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(c,p){if(this._checkLoaded(),this._changed=!0,!this._layers[c])return void this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style and cannot be moved.`)));if(c===p)return;const x=this._order.indexOf(c);this._order.splice(x,1);const S=p?this._order.indexOf(p):this._order.length;p&&S===-1?this.fire(new a.ErrorEvent(new Error(`Layer with id "${p}" does not exist on this map.`))):(this._order.splice(S,0,c),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(c){this._checkLoaded();const p=this._layers[c];if(!p)return void this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style and cannot be removed.`)));p.setEventedParent(null),this._updateLayerCount(p,!1);const x=this._order.indexOf(c);this._order.splice(x,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[c]=p,delete this._layers[c],delete this._serializedLayers[c],delete this._updatedLayers[c],delete this._updatedPaintProps[c],p.onRemove&&p.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(c){return this._layers[c]}hasLayer(c){return c in this._layers}hasLayerType(c){for(const p in this._layers)if(this._layers[p].type===c)return!0;return!1}setLayerZoomRange(c,p,x){this._checkLoaded();const S=this.getLayer(c);S?S.minzoom===p&&S.maxzoom===x||(p!=null&&(S.minzoom=p),x!=null&&(S.maxzoom=x),this._updateLayer(S)):this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(c,p,x={}){this._checkLoaded();const S=this.getLayer(c);if(S){if(!w(S.filter,p))return p==null?(S.filter=void 0,void this._updateLayer(S)):void(this._validate(a.validateFilter,`layers.${S.id}.filter`,p,{layerType:S.type},x)||(S.filter=a.clone$1(p),this._updateLayer(S)))}else this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style and cannot be filtered.`)))}getFilter(c){const p=this.getLayer(c);return p&&a.clone$1(p.filter)}setLayoutProperty(c,p,x,S={}){this._checkLoaded();const A=this.getLayer(c);A?w(A.getLayoutProperty(p),x)||(A.setLayoutProperty(p,x,S),this._updateLayer(A)):this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(c,p){const x=this.getLayer(c);if(x)return x.getLayoutProperty(p);this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style.`)))}setPaintProperty(c,p,x,S={}){this._checkLoaded();const A=this.getLayer(c);A?w(A.getPaintProperty(p),x)||(A.setPaintProperty(p,x,S)&&this._updateLayer(A),this._changed=!0,this._updatedPaintProps[c]=!0):this.fire(new a.ErrorEvent(new Error(`The layer '${c}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(c,p){const x=this.getLayer(c);return x&&x.getPaintProperty(p)}setFeatureState(c,p){this._checkLoaded();const x=c.source,S=c.sourceLayer,A=this.getSource(x);if(!A)return void this.fire(new a.ErrorEvent(new Error(`The source '${x}' does not exist in the map's style.`)));const P=A.type;if(P==="geojson"&&S)return void this.fire(new a.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if(P==="vector"&&!S)return void this.fire(new a.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));c.id===void 0&&this.fire(new a.ErrorEvent(new Error("The feature id parameter must be provided.")));const z=this._getSourceCaches(x);for(const O of z)O.setFeatureState(S,c.id,p)}removeFeatureState(c,p){this._checkLoaded();const x=c.source,S=this.getSource(x);if(!S)return void this.fire(new a.ErrorEvent(new Error(`The source '${x}' does not exist in the map's style.`)));const A=S.type,P=A==="vector"?c.sourceLayer:void 0;if(A==="vector"&&!P)return void this.fire(new a.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));if(p&&typeof c.id!="string"&&typeof c.id!="number")return void this.fire(new a.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));const z=this._getSourceCaches(x);for(const O of z)O.removeFeatureState(P,c.id,p)}getFeatureState(c){this._checkLoaded();const p=c.source,x=c.sourceLayer,S=this.getSource(p);if(S){if(S.type!=="vector"||x)return c.id===void 0&&this.fire(new a.ErrorEvent(new Error("The feature id parameter must be provided."))),this._getSourceCaches(p)[0].getFeatureState(x,c.id);this.fire(new a.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new a.ErrorEvent(new Error(`The source '${p}' does not exist in the map's style.`)))}getTransition(){return a.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const c={};for(const p in this._sourceCaches){const x=this._sourceCaches[p].getSource();c[x.id]||(c[x.id]=x.serialize())}return a.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.stylesheet.terrain,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:c,layers:this._serializeLayers(this._order)},p=>p!==void 0)}_updateLayer(c){this._updatedLayers[c.id]=!0;const p=this._getLayerSourceCache(c);c.source&&!this._updatedSources[c.source]&&p&&p.getSource().type!=="raster"&&(this._updatedSources[c.source]="reload",p.pause()),this._changed=!0,c.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(c){const p=P=>this._layers[P].type==="fill-extrusion",x={},S=[];for(let P=this._order.length-1;P>=0;P--){const z=this._order[P];if(p(z)){x[z]=P;for(const O of c){const j=O[z];if(j)for(const Z of j)S.push(Z)}}}S.sort((P,z)=>z.intersectionZ-P.intersectionZ);const A=[];for(let P=this._order.length-1;P>=0;P--){const z=this._order[P];if(p(z))for(let O=S.length-1;O>=0;O--){const j=S[O].feature;if(x[j.layer.id]{const j=this.getLayer(O);return j&&j.is3D()}):this.has3DLayers(),z=xt.createFromScreenPoints(c,x);for(const O in this._sourceCaches){const j=this._sourceCaches[O].getSource().id;p.layers&&!S[j]||A.push(Vt(this._sourceCaches[O],this._layers,this._serializedLayers,z,p,x,P,!!this.map._showQueryGeometry))}return this.placement&&A.push(function(O,j,Z,re,le,ye,pe){const me={},ge=ye.queryRenderedSymbols(re),de=[];for(const Ee of Object.keys(ge).map(Number))de.push(pe[Ee]);de.sort(pi);for(const Ee of de){const be=Ee.featureIndex.lookupSymbolFeatures(ge[Ee.bucketInstanceId],j,Ee.bucketIndex,Ee.sourceLayerIndex,le.filter,le.layers,le.availableImages,O);for(const Ne in be){const Fe=me[Ne]=me[Ne]||[],Pe=be[Ne];Pe.sort((Oe,ze)=>{const Ge=Ee.featureSortOrder;if(Ge){const et=Ge.indexOf(Oe.featureIndex);return Ge.indexOf(ze.featureIndex)-et}return ze.featureIndex-Oe.featureIndex});for(const Oe of Pe)Fe.push(Oe)}}for(const Ee in me)me[Ee].forEach(be=>{const Ne=be.feature,Fe=Z(O[Ee]).getFeatureState(Ne.layer["source-layer"],Ne.id);Ne.source=Ne.layer.source,Ne.layer["source-layer"]&&(Ne.sourceLayer=Ne.layer["source-layer"]),Ne.state=Fe});return me}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),z.screenGeometry,p,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(A)}querySourceFeatures(c,p){p&&p.filter&&this._validate(a.validateFilter,"querySourceFeatures.filter",p.filter,null,p);const x=this._getSourceCaches(c);let S=[];for(const A of x)S=S.concat(ut(A,p));return S}addSourceType(c,p,x){return on.getSourceType(c)?x(new Error(`A source type called "${c}" already exists.`)):(on.setSourceType(c,p),p.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:c,url:p.workerSourceURL},x):x(null,null))}getLight(){return this.light.getLight()}setLight(c,p={}){this._checkLoaded();const x=this.light.getLight();let S=!1;for(const P in c)if(!w(c[P],x[P])){S=!0;break}if(!S)return;const A=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(c,p),this.light.updateTransitions(A)}getTerrain(){return this.terrain&&this.terrain.drapeRenderMode===1?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0)}setTerrain(c,p=1){if(this._checkLoaded(),!c)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);if(p===1){if(typeof c.source=="object"){const x="terrain-dem-src";this.addSource(x,c.source),c=a.clone$1(c),c=a.extend(c,{source:x})}if(this._validate(a.validateTerrain,"terrain",c))return}if(!this.terrain||this.terrain&&p!==this.terrain.drapeRenderMode)this._createTerrain(c,p);else{const x=this.terrain,S=x.get();for(const A of Object.keys(a.spec.terrain))!c.hasOwnProperty(A)&&a.spec.terrain[A].default&&(c[A]=a.spec.terrain[A].default);for(const A in c)if(!w(c[A],S[A])){x.set(c),this.stylesheet.terrain=c;const P=this._setTransitionParameters({duration:0});x.updateTransitions(P);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(c){const p=this.fog=new gt(c,this.map.transform);this.stylesheet.fog=c;const x=this._setTransitionParameters({duration:0});p.updateTransitions(x)}_updateMarkersOpacity(){this.map._markers.length!==0&&this.map._requestDomTask(()=>{for(const c of this.map._markers)c._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(c){if(this._checkLoaded(),!c)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const p=this.fog,x=p.get();Object.keys(c).length===0&&p.set(c);for(const S in c)if(!w(c[S],x[S])){p.set(c),this.stylesheet.fog=c;const A=this._setTransitionParameters({duration:0});p.updateTransitions(A);break}}else this._createFog(c);this._markersNeedUpdate=!0}_setTransitionParameters(c){return{now:a.exported.now(),transition:a.extend(c,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const c=this._order.filter(x=>this.isLayerDraped(this._layers[x])),p=this._order.filter(x=>!this.isLayerDraped(this._layers[x]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...c),this._drapedFirstOrder.push(...p)}_createTerrain(c,p){const x=this.terrain=new Qt(c,p);this.stylesheet.terrain=c,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();const S=this._setTransitionParameters({duration:0});x.updateTransitions(S)}_force3DLayerUpdate(){for(const c in this._layers){const p=this._layers[c];p.type==="fill-extrusion"&&this._updateLayer(p)}}_forceSymbolLayerUpdate(){for(const c in this._layers){const p=this._layers[c];p.type==="symbol"&&this._updateLayer(p)}}_validate(c,p,x,S,A={}){return(!A||A.validate!==!1)&&ga(this,c.call(a.validateStyle,a.extend({key:p,style:this.serialize(),value:x,styleSpec:a.spec},S)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),a.evented.off("pluginStateChange",this._rtlTextPluginCallback);for(const c in this._layers)this._layers[c].setEventedParent(null);for(const c in this._sourceCaches)this._sourceCaches[c].clearTiles(),this._sourceCaches[c].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(c){const p=this._getSourceCaches(c);for(const x of p)x.clearTiles()}_reloadSource(c){const p=this._getSourceCaches(c);for(const x of p)x.resume(),x.reload()}_updateSources(c){for(const p in this._sourceCaches)this._sourceCaches[p].update(c)}_generateCollisionBoxes(){for(const c in this._sourceCaches){const p=this._sourceCaches[c];p.resume(),p.reload()}}_updatePlacement(c,p,x,S,A=!1){let P=!1,z=!1;const O={};for(const j of this._order){const Z=this._layers[j];if(Z.type!=="symbol")continue;if(!O[Z.source]){const le=this._getLayerSourceCache(Z);if(!le)continue;O[Z.source]=le.getRenderableIds(!0).map(ye=>le.getTileByID(ye)).sort((ye,pe)=>pe.tileID.overscaledZ-ye.tileID.overscaledZ||(ye.tileID.isLessThan(pe.tileID)?-1:1))}const re=this.crossTileSymbolIndex.addLayer(Z,O[Z.source],c.center.lng,c.projection);P=P||re}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),A=A||this._layerOrderChanged||x===0,this._layerOrderChanged&&this.fire(new a.Event("neworder")),(A||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(a.exported.now(),c.zoom))&&(this.pauseablePlacement=new Qn(c,this._order,A,p,x,S,this.placement,this.fog&&c.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,O),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(a.exported.now()),z=!0),P&&this.pauseablePlacement.placement.setStale()),z||P)for(const j of this._order){const Z=this._layers[j];Z.type==="symbol"&&this.placement.updateLayerOpacities(Z,O[Z.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(a.exported.now())}_releaseSymbolFadeTiles(){for(const c in this._sourceCaches)this._sourceCaches[c].releaseSymbolFadeTiles()}getImages(c,p,x){this.imageManager.getImages(p.icons,x),this._updateTilesForChangedImages();const S=A=>{A&&A.setDependencies(p.tileID.key,p.type,p.icons)};S(this._otherSourceCaches[p.source]),S(this._symbolSourceCaches[p.source])}getGlyphs(c,p,x){this.glyphManager.getGlyphs(p.stacks,x)}getResource(c,p,x){return a.makeRequest(p,x)}_getSourceCache(c){return this._otherSourceCaches[c]}_getLayerSourceCache(c){return c.type==="symbol"?this._symbolSourceCaches[c.source]:this._otherSourceCaches[c.source]}_getSourceCaches(c){const p=[];return this._otherSourceCaches[c]&&p.push(this._otherSourceCaches[c]),this._symbolSourceCaches[c]&&p.push(this._symbolSourceCaches[c]),p}_isSourceCacheLoaded(c){const p=this._getSourceCaches(c);return p.length===0?(this.fire(new a.ErrorEvent(new Error(`There is no source with ID '${c}'`))),!1):p.every(x=>x.loaded())}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}on.getSourceType=function(g){return Be[g]},on.setSourceType=function(g,c){Be[g]=c},on.registerForPluginStateChange=a.registerForPluginStateChange;var $a=` +#define EPSILON 0.0000001 +#define PI 3.141592653589793 +#define EXTENT 8192.0 +#define HALF_PI PI/2.0 +#define QUARTER_PI PI/4.0 +#define RAD_TO_DEG 180.0/PI +#define DEG_TO_RAD PI/180.0 +#define GLOBE_RADIUS EXTENT/PI/2.0`,vs="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",bs=` +#define ELEVATION_SCALE 7.0 +#define ELEVATION_OFFSET 450.0 +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix( +mix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;} +#else +vec3 elevationVector(vec2 pos) { return vec3(0,0,1); } +#endif +#ifdef TERRAIN +#ifdef TERRAIN_DEM_FLOAT_FORMAT +uniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev; +#else +uniform sampler2D u_dem;uniform sampler2D u_dem_prev; +#endif +uniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos)); +#ifdef TERRAIN_DEM_NEAREST_FILTER +return u_exaggeration*tl; +#endif +float tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +}float prevElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +} +#ifdef TERRAIN_VERTEX_MORPHING +float elevation(vec2 apos) {float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);} +#else +float elevation(vec2 apos) {return currentElevation(apos);} +#endif +highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4( +unpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy)) +);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +float tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a; +#else +vec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack); +#endif +return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;vec4 bounds=vec4(d,vec2(1.0)-d);h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);} +#else +float elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; } +#endif`,ya=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);} +#endif`,Jn=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);} +#endif`;let Ho={},lo={};const eo=[];Ao($a,eo),Ao(bs,eo),Ao(ya,eo),Ao(Jn,eo),Ho=ur("",bs),lo=ur(Jn,ya);const co=ur(` +highp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}`,` +float wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;} +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) { +#ifndef PROJECTED_POS_ON_VIEWPORT +float tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz; +#else +return vec3(0.0); +#endif +}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);} +#endif +vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4( +unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 +);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.`),ja=$a,Ga=` +#ifdef GL_ES +precision mediump float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`;var qa={background:ur(`uniform vec4 u_color;uniform float u_opacity;void main() {vec4 out_color=u_color; +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),backgroundPattern:ur(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_mix); +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),circle:ur(`varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep( +antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width) +);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t); +#ifdef FOG +out_color=fog_apply_premultiplied(out_color,v_fog_pos); +#endif +gl_FragColor=out_color*(v_visibility*opacity_t); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`#define NUM_VISIBILITY_RINGS 2 +#define INV_SQRT2 0.70710678 +#define ELEVATION_BIAS 0.0001 +#define NUM_SAMPLES_PER_RING 16 +uniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +vec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) { +#if defined(TERRAIN) +return elevation(pos)+ELEVATION_BIAS; +#else +return 0.0; +#endif +}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale); +#ifdef PITCH_WITH_MAP +#ifdef PROJECTION_GLOBE_VIEW +return u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) ); +#else +return u_matrix*( world_center+vec4(sample_offset,0,0) ); +#endif +#else +return projected_center+vec4(sample_offset,0,0); +#endif +}float get_sample_step() { +#ifdef PITCH_WITH_MAP +return 2.0*PI/float(NUM_SAMPLES_PER_RING); +#else +return PI/float(NUM_SAMPLES_PER_RING); +#endif +}void main(void) { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5); +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);vec4 world_center=vec4(pos,1); +#else +mat3 surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);vec4 world_center=vec4(circle_center,height,1); +#endif +vec4 projected_center=u_matrix*world_center;float view_scale=0.0; +#ifdef PITCH_WITH_MAP +#ifdef SCALE_WITH_MAP +view_scale=1.0; +#else +view_scale=projected_center.w/u_camera_to_center_distance; +#endif +#else +#ifdef SCALE_WITH_MAP +view_scale=u_camera_to_center_distance; +#else +view_scale=projected_center.w; +#endif +#endif +gl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0; +#ifdef TERRAIN +float step=get_sample_step(); +#ifdef PITCH_WITH_MAP +float cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);vec4 occlusion_world_center=vec4(circle_center,cantilevered_height,1);vec4 occlusion_projected_center=u_matrix*occlusion_world_center; +#else +vec4 occlusion_world_center=world_center;vec4 occlusion_projected_center=projected_center; +#endif +for(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING); +#else +visibility=1.0; +#endif +#ifdef PROJECTION_GLOBE_VIEW +visibility=1.0; +#endif +v_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur); +#ifdef FOG +v_fog_pos=fog_position(world_center.xyz); +#endif +}`),clippingMask:ur("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ur(`uniform highp float u_intensity;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#define GAUSS_COEF 0.3989422804014327 +void main() { +#pragma mapbox: initialize highp float weight +float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); +#ifdef FOG +if (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);} +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#pragma mapbox: define mediump float radius +const highp float ZERO=1.0/255.0/16.0; +#define GAUSS_COEF 0.3989422804014327 +void main(void) { +#pragma mapbox: initialize highp float weight +#pragma mapbox: initialize mediump float radius +vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5); +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#else +vec3 pos=vec3(tilePos+extrude,elevation(tilePos)); +#endif +gl_Position=u_matrix*vec4(pos,1); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),heatmapTexture:ur(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(0.0); +#endif +}`,"attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ur("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}",`attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:ur("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}",`attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2( +mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),debug:ur("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}",`attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3; +#endif +varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0; +#ifdef PROJECTION_GLOBE_VIEW +gl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1); +#else +gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1); +#endif +}`),fill:ur(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +vec4 out_color=color; +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutline:ur(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color; +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutlinePattern:ur(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=mix(color1,color2,u_fade); +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillPattern:ur(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade); +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillExtrusion:ur(`uniform lowp vec3 u_lightpos;varying vec4 v_color; +#ifdef RENDER_SHADOWS +varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;varying highp vec3 v_normal; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +void main() {vec4 color=v_color; +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade; +#endif +#ifdef RENDER_SHADOWS +color.xyz=shadowed_color_normal(color.xyz,normalize(v_normal),v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec4 v_color; +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying highp vec3 v_normal;varying float v_depth; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=0.0; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 pos=vec3(pos_nx.xy,h); +#else +h=t > 0.0 ? height : base;vec3 pos=vec3(pos_nx.xy,h); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden); +#ifdef RENDER_SHADOWS +v_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_normal=normal;v_depth=gl_Position.w; +#endif +float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));} +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);directional*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +v_color.rgb+=clamp(color.rgb*directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity; +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),fillExtrusionPattern:ur(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);out_color=out_color*v_lighting; +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=z; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 p=vec3(pos_nx.xy,h); +#else +vec3 p=vec3(pos_nx.xy,z); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0 +? pos_nx.xy +: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));} +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);directional*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity; +#ifdef FOG +v_fog_pos=fog_position(p); +#endif +}`),hillshadePrepare:ur(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +return texture2D(u_image,coord).a/4.0; +#else +vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0; +#endif +}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos);float f=getElevation(v_pos+vec2(epsilon.x,0));float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float h=getElevation(v_pos+vec2(0,epsilon.y));float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2( +(c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c) +)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4( +deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:ur(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef FOG +gl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos)); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),line:ur(`uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform sampler2D u_dash_image;uniform float u_mix;uniform vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform sampler2D u_gradient_image; +#endif +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash_from +#pragma mapbox: define lowp vec4 dash_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash_from +#pragma mapbox: initialize lowp vec4 dash_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0); +#ifdef RENDER_LINE_DASH +float sdfdist_a=texture2D(u_dash_image,v_tex_a).a;float sdfdist_b=texture2D(u_dash_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfwidth=min(dash_from.z*u_scale.y,dash_to.z*u_scale.z);float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/sdfwidth;alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist); +#endif +#ifdef RENDER_LINE_GRADIENT +highp vec4 out_color=texture2D(u_gradient_image,v_uv.xy); +#else +vec4 out_color=color; +#endif +#ifdef RENDER_LINE_TRIM_OFFSET +highp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);}} +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +#ifdef RENDER_LINE_ALPHA_DISCARD +if (alpha < u_alpha_discard_threshold) {discard;} +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define EXTRUDE_SCALE 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data; +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +attribute highp vec4 a_packed; +#endif +#ifdef RENDER_LINE_DASH +attribute float a_linesofar; +#endif +uniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform vec2 u_texsize;uniform mediump vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform float u_image_height; +#endif +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash_from +#pragma mapbox: define lowp vec4 dash_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash_from +#pragma mapbox: initialize lowp vec4 dash_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +float a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3]; +#ifdef RENDER_LINE_GRADIENT +highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end); +#else +v_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end); +#endif +#endif +#ifdef RENDER_LINE_DASH +float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;float scaleA=dash_from.z==0.0 ? 0.0 : tileZoomRatio/(dash_from.z*fromScale);float scaleB=dash_to.z==0.0 ? 0.0 : tileZoomRatio/(dash_to.z*toScale);float heightA=dash_from.y;float heightB=dash_to.y;v_tex_a=vec2(a_linesofar*scaleA/floorwidth,(-normal.y*heightA+dash_from.x+0.5)/u_texsize.y);v_tex_b=vec2(a_linesofar*scaleB/floorwidth,(-normal.y*heightB+dash_to.x+0.5)/u_texsize.y); +#endif +v_width2=vec2(outset,inset); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),linePattern:ur(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade); +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth; +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),raster:ur(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3( +dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb); +#ifdef FOG +out_color=fog_dither(fog_apply(out_color,v_fog_pos)); +#endif +gl_FragColor=vec4(out_color*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),symbolIcon:ur(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor); +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;float globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +vec3 world_pos=vec3(tile_anchor,0)+h;float globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) { +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);vec4 offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +vec4 offsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);} +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);vec4 projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0); +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}`),symbolSDF:ur(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor); +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;float globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +vec3 world_pos=vec3(tile_anchor,0)+h;float globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) { +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);vec4 offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +vec4 offsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);} +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);vec4 projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset); +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}`),symbolTextAndIcon:ur(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor); +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;float globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +vec3 world_pos=vec3(tile_anchor,0)+h;float globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);} +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);vec4 projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale); +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}`),terrainRaster:ur(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +void main() {vec4 color=texture2D(u_image0,v_pos0); +#ifdef RENDER_SHADOWS +color.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +color=fog_dither(fog_apply_from_vert(color,v_fog_opacity)); +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +const float skirtOffset=24575.0;const float wireframeOffset=0.00015;void main() {v_pos0=a_texture_pos/8192.0;float skirt=float(a_pos.x >=skirtOffset);float elevation=elevation(a_texture_pos)-skirt*u_skirt_height; +#ifdef TERRAIN_WIREFRAME +elevation+=u_skirt_height*u_skirt_height*wireframeOffset; +#endif +vec2 decodedPos=a_pos-vec2(skirt*skirtOffset,0.0);gl_Position=u_matrix*vec4(decodedPos,elevation,1.0); +#ifdef FOG +v_fog_opacity=fog(fog_position(vec3(decodedPos,elevation))); +#endif +#ifdef RENDER_SHADOWS +vec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w; +#endif +}`),terrainDepth:ur(`#ifdef GL_ES +precision highp float; +#endif +varying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying float v_depth;void main() {float elevation=elevation(a_texture_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ur(` +varying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep( +cos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb; +#ifdef FOG +sky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color); +#endif +sky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,vs),skyboxGradient:ur(`varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5)); +#ifdef FOG +color.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a; +#endif +color*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,vs),skyboxCapture:ur(` +varying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m; +#ifdef GL_ES +precision highp float; +#endif +#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6) +#define BETA_M vec3(21e-6,21e-6,21e-6) +#define MIE_G 0.76 +#define DENSITY_HEIGHT_SCALE_R 8000.0 +#define DENSITY_HEIGHT_SCALE_M 1200.0 +#define PLANET_RADIUS 6360e3 +#define ATMOSPHERE_RADIUS 6420e3 +#define SAMPLE_STEPS 10 +#define DENSITY_STEPS 4 +float ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}`,"attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:ur(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifndef FOG +uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport; +#endif +void main() { +#ifdef CUSTOM_ANTIALIASING +vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);vec4 color=vec4(raster.rgb*antialias,raster.a*antialias); +#else +vec4 color=texture2D(u_image0,v_pos0); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix; +#ifdef GLOBE_POLES +attribute vec3 a_globe_pos;attribute vec2 a_uv; +#else +attribute vec2 a_pos; +#endif +varying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() { +#ifdef GLOBE_POLES +vec3 globe_pos=a_globe_pos;vec2 uv=a_uv; +#else +float tiles=u_grid_matrix[0][2];float idy=u_grid_matrix[1][2];float S=u_grid_matrix[2][2];vec3 latLng=u_grid_matrix*vec3(a_pos,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=a_pos[0]*S;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY); +#endif +v_pos0=uv;vec2 tile_pos=uv*EXTENT; +#ifdef GLOBE_POLES +vec3 up_vector=normalize(globe_pos)*u_tile_up_scale; +#else +vec3 up_vector=elevationVector(tile_pos); +#endif +float height=elevation(tile_pos); +#ifdef TERRAIN_WIREFRAME +height+=wireframeOffset; +#endif +globe_pos+=up_vector*height; +#ifdef GLOBE_POLES +vec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0); +#else +vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); +#endif +gl_Position=u_proj_matrix*interpolated_pos; +#ifdef FOG +v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); +#endif +}`),globeAtmosphere:ur(`uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir); +#ifdef PROJECTION_GLOBE_VIEW +float globe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;} +#endif +highp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ? +0.0 : max(acos(dot(dir,horizon_dir)),0.0); +#ifdef PROJECTION_GLOBE_VIEW +highp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));float horizon_angle=globe_pos_dot_dir < 0.0 ? +PI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t); +#else +float horizon_angle=horizon_angle_mercator; +#endif +horizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x: +(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y: +uv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}`,`attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix( +mix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}`)};function Ao(g,c){const p=g.replace(/\s*\/\/[^\n]*\n/g,` +`).split(` +`);for(let x of p)if(x=x.trim(),x[0]==="#"&&x.includes("if")&&!x.includes("endif")){x=x.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();const S=x.split(" ");for(const A of S)c.includes(A)||c.push(A)}}function ur(g,c){const p=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,x=c.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),S={},A=[...eo];return Ao(g,A),Ao(c,A),{fragmentSource:g=g.replace(p,(P,z,O,j,Z)=>(S[Z]=!0,z==="define"?` +#ifndef HAS_UNIFORM_u_${Z} +varying ${O} ${j} ${Z}; +#else +uniform ${O} ${j} u_${Z}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${Z} + ${O} ${j} ${Z} = u_${Z}; +#endif +`)),vertexSource:c=c.replace(p,(P,z,O,j,Z)=>{const re=j==="float"?"vec2":"vec4",le=Z.match(/color/)?"color":re;return S[Z]?z==="define"?` +#ifndef HAS_UNIFORM_u_${Z} +uniform lowp float u_${Z}_t; +attribute ${O} ${re} a_${Z}; +varying ${O} ${j} ${Z}; +#else +uniform ${O} ${j} u_${Z}; +#endif +`:le==="vec4"?` +#ifndef HAS_UNIFORM_u_${Z} + ${Z} = a_${Z}; +#else + ${O} ${j} ${Z} = u_${Z}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${Z} + ${Z} = unpack_mix_${le}(a_${Z}, u_${Z}_t); +#else + ${O} ${j} ${Z} = u_${Z}; +#endif +`:z==="define"?` +#ifndef HAS_UNIFORM_u_${Z} +uniform lowp float u_${Z}_t; +attribute ${O} ${re} a_${Z}; +#else +uniform ${O} ${j} u_${Z}; +#endif +`:le==="vec4"?` +#ifndef HAS_UNIFORM_u_${Z} + ${O} ${j} ${Z} = a_${Z}; +#else + ${O} ${j} ${Z} = u_${Z}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${Z} + ${O} ${j} ${Z} = unpack_mix_${le}(a_${Z}, u_${Z}_t); +#else + ${O} ${j} ${Z} = u_${Z}; +#endif +`}),staticAttributes:x,usedDefines:A}}class xa{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(c,p,x,S,A,P,z){this.context=c;let O=this.boundPaintVertexBuffers.length!==S.length;for(let Z=0;!O&&Z{const be=de.paint.get("hillshade-shadow-color"),Ne=de.paint.get("hillshade-highlight-color"),Fe=de.paint.get("hillshade-accent-color");let Pe=de.paint.get("hillshade-illumination-direction")*(Math.PI/180);de.paint.get("hillshade-illumination-anchor")==="viewport"&&(Pe-=me.transform.angle);const Oe=!me.options.moving;return{u_matrix:Ee||me.transform.calculateProjMatrix(ge.tileID.toUnwrapped(),Oe),u_image:0,u_latrange:va(0,ge.tileID),u_light:[de.paint.get("hillshade-exaggeration"),Pe],u_shadow:be,u_highlight:Ne,u_accent:Fe}})(g,p,x,g.terrain?c.projMatrix:null);g.prepareDrawProgram(z,Z,c.toUnwrapped());const{tileBoundsBuffer:le,tileBoundsIndexBuffer:ye,tileBoundsSegments:pe}=g.getTileBoundsBuffers(p);Z.draw(z,O.TRIANGLES,S,A,P,a.CullFaceMode.disabled,re,x.id,le,ye,pe)}function Qi(g,c,p){if(!c.needsDEMTextureUpload)return;const x=g.context,S=x.gl;x.pixelStoreUnpackPremultiplyAlpha.set(!1),c.demTexture=c.demTexture||g.getTileTexture(p.stride);const A=p.getPixels();c.demTexture?c.demTexture.update(A,{premultiply:!1}):c.demTexture=new a.Texture(x,A,S.RGBA,{premultiply:!1}),c.needsDEMTextureUpload=!1}function On(g,c,p,x,S,A){const P=g.context,z=P.gl;if(!c.dem)return;const O=c.dem;if(P.activeTexture.set(z.TEXTURE1),Qi(g,c,O),!c.demTexture)return;c.demTexture.bind(z.NEAREST,z.CLAMP_TO_EDGE);const j=O.dim;P.activeTexture.set(z.TEXTURE0);let Z=c.fbo;if(!Z){const pe=new a.Texture(P,{width:j,height:j,data:null},z.RGBA);pe.bind(z.LINEAR,z.CLAMP_TO_EDGE),Z=c.fbo=P.createFramebuffer(j,j,!0),Z.colorAttachment.set(pe.texture)}P.bindFramebuffer.set(Z.framebuffer),P.viewport.set([0,0,j,j]);const{tileBoundsBuffer:re,tileBoundsIndexBuffer:le,tileBoundsSegments:ye}=g.getMercatorTileBoundsBuffers();g.useProgram("hillshadePrepare").draw(P,z.TRIANGLES,x,S,A,a.CullFaceMode.disabled,((pe,me)=>{const ge=me.stride,de=a.create();return a.ortho(de,0,a.EXTENT,-a.EXTENT,0,0,1),a.translate(de,de,[0,-a.EXTENT,0]),{u_matrix:de,u_image:1,u_dimension:[ge,ge],u_zoom:pe.overscaledZ,u_unpack:me.unpackVector}})(c.tileID,O),p.id,re,le,ye),c.needsHillshadePrepare=!1}const xo=g=>({u_matrix:new a.UniformMatrix4f(g),u_image0:new a.Uniform1i(g),u_skirt_height:new a.Uniform1f(g)}),to=(g,c)=>({u_matrix:g,u_image0:0,u_skirt_height:c}),ws=(g,c,p,x,S,A,P,z,O,j,Z,re,le,ye)=>({u_proj_matrix:Float32Array.from(g),u_globe_matrix:c,u_normalize_matrix:Float32Array.from(x),u_merc_matrix:p,u_zoom_transition:S,u_merc_center:A,u_image0:0,u_frustum_tl:P,u_frustum_tr:z,u_frustum_br:O,u_frustum_bl:j,u_globe_pos:Z,u_globe_radius:re,u_viewport:le,u_grid_matrix:ye?Float32Array.from(ye):new Float32Array(9)});function Wo(g,c){return g!=null&&c!=null&&!(!g.hasData()||!c.hasData())&&g.demTexture!=null&&c.demTexture!=null&&g.tileID.key!==c.tileID.key}const Nn=new class{constructor(){this.operations={}}newMorphing(g,c,p,x,S){if(g in this.operations){const A=this.operations[g];A.to.tileID.key!==p.tileID.key&&(A.queued=p)}else this.operations[g]={startTime:x,phase:0,duration:S,from:c,to:p,queued:null}}getMorphValuesForProxy(g){if(!(g in this.operations))return null;const c=this.operations[g];return{from:c.from,to:c.to,phase:c.phase}}update(g){for(const c in this.operations){const p=this.operations[c];for(p.phase=(g-p.startTime)/p.duration;p.phase>=1||!this._validOp(p);)if(!this._nextOp(p,g)){delete this.operations[c];break}}}_nextOp(g,c){return!!g.queued&&(g.from=g.to,g.to=g.queued,g.queued=null,g.phase=0,g.startTime=c,!0)}_validOp(g){return g.from.hasData()&&g.to.hasData()}},Yo={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function rl(g,c){const p=1<({u_matrix:g});function Za(g,c,p,x,S){if(S>0){const A=a.exported.now(),P=(A-g.timeAdded)/S,z=c?(A-c.timeAdded)/S:-1,O=p.getSource(),j=x.coveringZoomLevel({tileSize:O.tileSize,roundZoom:O.roundZoom}),Z=!c||Math.abs(c.tileID.overscaledZ-j)>Math.abs(g.tileID.overscaledZ-j),re=Z&&g.refreshedUponExpiration?1:a.clamp(Z?P:1-z,0,1);return g.refreshedUponExpiration&&P>=1&&(g.refreshedUponExpiration=!1),c?{opacity:1,mix:1-re}:{opacity:re,mix:0}}return{opacity:1,mix:0}}class Xa extends a.SourceCache{constructor(c){const p={type:"raster-dem",maxzoom:c.transform.maxZoom},x=new ot(tr(),null),S=He("mock-dem",p,x,c.style);super("mock-dem",S,!1),S.setEventedParent(this),this._sourceLoaded=!0}_loadTile(c,p){c.state="loaded",p(null)}}class Ha extends a.SourceCache{constructor(c){const p=He("proxy",{type:"geojson",maxzoom:c.transform.maxZoom},new ot(tr(),null),c.style);super("proxy",p,!1),p.setEventedParent(this),this.map=this.getSource().map=c,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(c,p,x){if(c.freezeTileCoverage)return;this.transform=c;const S=c.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((A,P)=>{if(A[P.key]="",!this._tiles[P.key]){const z=new a.Tile(P,this._source.tileSize*P.overscaleFactor(),c.tileZoom);z.state="loaded",this._tiles[P.key]=z}return A},{});for(const A in this._tiles)A in S||(this.freeFBO(A),this._tiles[A].unloadVectorData(),delete this._tiles[A])}freeFBO(c){const p=this.proxyCachedFBO[c];if(p!==void 0){const x=Object.values(p);this.renderCachePool.push(...x),delete this.proxyCachedFBO[c]}}deallocRenderCache(){this.renderCache.forEach(c=>c.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class Co extends a.OverscaledTileID{constructor(c,p,x){super(c.overscaledZ,c.wrap,c.canonical.z,c.canonical.x,c.canonical.y),this.proxyTileKey=p,this.projMatrix=x}}class Io extends a.Elevation{constructor(c,p){super(),this.painter=c,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[x,S,A]=function(O){const j=new a.StructArrayLayout4i8,Z=new a.StructArrayLayout3ui6,re=131;j.reserve(17161),Z.reserve(33800);const le=a.EXTENT/128,ye=a.EXTENT+le/2,pe=ye+le;for(let ge=-le;geye||ge<0||ge>ye?24575:0,be=a.clamp(Math.round(de),0,a.EXTENT),Ne=a.clamp(Math.round(ge),0,a.EXTENT);j.emplaceBack(be+Ee,Ne,be,Ne)}const me=(ge,de)=>{const Ee=de*re+ge;Z.emplaceBack(Ee+1,Ee,Ee+re),Z.emplaceBack(Ee+re,Ee+re+1,Ee+1)};for(let ge=1;ge<129;ge++)for(let de=1;de<129;de++)me(de,ge);return[0,129].forEach(ge=>{for(let de=0;de<130;de++)me(de,ge),me(ge,de)}),[j,Z,32768]}(),P=c.context;this.gridBuffer=P.createVertexBuffer(x,a.boundsAttributes.members),this.gridIndexBuffer=P.createIndexBuffer(S),this.gridSegments=a.SegmentVector.simpleSegment(0,0,x.length,S.length),this.gridNoSkirtSegments=a.SegmentVector.simpleSegment(0,0,x.length,A),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new Ha(p.map),this.orthoMatrix=a.create(),a.ortho(this.orthoMatrix,0,a.EXTENT,0,a.EXTENT,0,1);const z=P.gl;this._overlapStencilMode=new a.StencilMode({func:z.GEQUAL,mask:255},0,255,z.KEEP,z.KEEP,z.REPLACE),this._previousZoom=c.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=p,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new Xa(p.map)}set style(c){c.on("data",this._onStyleDataEvent.bind(this)),c.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=c,this._checkRenderCacheEfficiency()}update(c,p,x){if(c&&c.terrain){this._style!==c&&(this.style=c),this.enabled=!0;const S=c.terrain.properties;this.sourceCache=c.terrain.drapeRenderMode===0?this._mockSourceCache:c._getSourceCache(S.get("source")),this._exaggeration=S.get("exaggeration");const A=()=>{this.sourceCache.used&&a.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. +This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const P=this.getScaledDemTileSize();this.sourceCache.update(p,P,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,A(),this._initializing=!0),A(),p.updateElevation(!x),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(p),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(c){this._findCoveringTileCache[c]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const c=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||c.efficiency!==100&&a.warnOnce(`Terrain render cache efficiency is not optimal (${c.efficiency}%) and performance + may be affected negatively, consider placing all background, fill and line layers before layer + with id '${c.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(c){c.coord&&c.dataType==="source"?this._clearRenderCacheForTile(c.sourceCacheId,c.coord):c.dataType==="style"&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const c in this._style._sourceCaches)this._style._sourceCaches[c].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(c=>c.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0)}_source(){return this.enabled?this.sourceCache:null}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const c=2*this.proxySourceCache.getSource().tileSize;return[c,c]}set useVertexMorphing(c){this._useVertexMorphing=c}updateTileBinding(c){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const p=this.proxySourceCache,x=this.painter.transform;this._initializing&&(this._initializing=x._centerAltitude===0&&this.getAtPointOrZero(a.MercatorCoordinate.fromLngLat(x.center),-1)===-1,this._emptyDEMTextureDirty=!this._initializing);const S=this.proxyCoords=p.getIds().map(O=>{const j=p.getTileByID(O).tileID;return j.projMatrix=x.calculateProjMatrix(j.toUnwrapped()),j});(function(O,j){const Z=j.transform.pointCoordinate(j.transform.getCameraPoint()),re=new a.pointGeometry(Z.x,Z.y);O.sort((le,ye)=>{if(ye.overscaledZ-le.overscaledZ)return ye.overscaledZ-le.overscaledZ;const pe=new a.pointGeometry(le.canonical.x+(1<{this.proxyToSource[O.key]={}}),this.terrainTileForTile={};const P=this._style._sourceCaches;for(const O in P){const j=P[O];if(!j.used||(j!==this.sourceCache&&this.resetTileLookupCache(j.id),this._setupProxiedCoordsForOrtho(j,c[O],A),j.usedForTerrain))continue;const Z=c[O];j.getSource().reparseOverscaled&&this._assignTerrainTiles(Z)}this.proxiedCoords[p.id]=S.map(O=>new Co(O,O.key,this.orthoMatrix)),this._assignTerrainTiles(S),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(A),this.renderingToTexture=!1,this._updateTimestamp=a.exported.now();const z={};this._visibleDemTiles=[];for(const O of this.proxyCoords){const j=this.terrainTileForTile[O.key];if(!j)continue;const Z=j.tileID.key;Z in z||(this._visibleDemTiles.push(j),z[Z]=Z)}}_assignTerrainTiles(c){this._initializing||c.forEach(p=>{if(this.terrainTileForTile[p.key])return;const x=this._findTileCoveringTileID(p,this.sourceCache);x&&(this.terrainTileForTile[p.key]=x)})}_prepareDEMTextures(){const c=this.painter.context,p=c.gl;for(const x in this.terrainTileForTile){const S=this.terrainTileForTile[x],A=S.dem;!A||S.demTexture&&!S.needsDEMTextureUpload||(c.activeTexture.set(p.TEXTURE1),Qi(this.painter,S,A))}}_prepareDemTileUniforms(c,p,x,S){if(!p||p.demTexture==null)return!1;const A=c.tileID.canonical,P=Math.pow(2,p.tileID.canonical.z-A.z),z=S||"";return x[`u_dem_tl${z}`]=[A.x*P%1,A.y*P%1],x[`u_dem_scale${z}`]=P,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const c=this.painter.context,p=c.gl;if(!this._emptyDepthBufferTexture){const x=new a.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new a.Texture(c,x,p.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let c=0;const p=this._visibleDemTiles.reduce((x,S)=>{if(!S.dem)return x;const A=S.dem.tree.minimums[0];return A>0&&c++,x+A},0);return c?p/c:0}_updateEmptyDEMTexture(){const c=this.painter.context,p=c.gl;c.activeTexture.set(p.TEXTURE2);const x=this._getLoadedAreaMinimum(),S=new a.RGBAImage({width:1,height:1},new Uint8Array(a.DEMData.pack(x,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let A=this._emptyDEMTexture;return A?A.update(S,{premultiply:!1}):A=this._emptyDEMTexture=new a.Texture(c,S,p.RGBA,{premultiply:!1}),A}setupElevationDraw(c,p,x){const S=this.painter.context,A=S.gl,P=(z=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:a.DEMData.getUnpackVector(z),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0,u_tile_tl_up:[0,0,1],u_tile_tr_up:[0,0,1],u_tile_br_up:[0,0,1],u_tile_bl_up:[0,0,1],u_tile_up_scale:1});var z;P.u_dem_size=this.sourceCache.getSource().tileSize,P.u_exaggeration=this.exaggeration();const O=this.painter.transform,j=O.projection,Z=c.tileID.canonical;P.u_tile_tl_up=j.upVector(Z,0,0),P.u_tile_tr_up=j.upVector(Z,a.EXTENT,0),P.u_tile_br_up=j.upVector(Z,a.EXTENT,a.EXTENT),P.u_tile_bl_up=j.upVector(Z,0,a.EXTENT),P.u_tile_up_scale=x&&x.useDenormalizedUpVectorScale?a.GLOBE_METERS_TO_ECEF:j.upVectorScale(Z,O.center.lat,O.worldSize).metersToTile;let re=null,le=null,ye=1;if(x&&x.morphing&&this._useVertexMorphing){const pe=x.morphing.srcDemTile,me=x.morphing.dstDemTile;ye=x.morphing.phase,pe&&me&&(this._prepareDemTileUniforms(c,pe,P,"_prev")&&(le=pe),this._prepareDemTileUniforms(c,me,P)&&(re=me))}if(le&&re?(S.activeTexture.set(A.TEXTURE2),re.demTexture.bind(A.NEAREST,A.CLAMP_TO_EDGE,A.NEAREST),S.activeTexture.set(A.TEXTURE4),le.demTexture.bind(A.NEAREST,A.CLAMP_TO_EDGE,A.NEAREST),P.u_dem_lerp=ye):(re=this.terrainTileForTile[c.tileID.key],S.activeTexture.set(A.TEXTURE2),(this._prepareDemTileUniforms(c,re,P)?re.demTexture:this.emptyDEMTexture).bind(A.NEAREST,A.CLAMP_TO_EDGE)),S.activeTexture.set(A.TEXTURE3),x&&x.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(A.NEAREST,A.CLAMP_TO_EDGE),this._depthFBO&&(P.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(A.NEAREST,A.CLAMP_TO_EDGE),P.u_depth_size_inv=[1,1]),x&&x.useMeterToDem&&re){const pe=(1<{if(de===Wt)return;const $t=[Yo[Wt],"PROJECTION_GLOBE_VIEW"];Ne&&$t.push("CUSTOM_ANTIALIASING"),ct&&$t.push(Yo[Ee]),ge=j.useProgram("globeRaster",null,$t),de=Wt},Pe=j.colorModeForRenderPass(),Oe=new a.DepthMode(me.LEQUAL,a.DepthMode.ReadWrite,j.depthRangeFor3D);Nn.update(ye);const ze=a.calculateGlobeMercatorMatrix(be),Ge=[a.mercatorXfromLng(be.center.lng),a.mercatorYfromLat(be.center.lat)],et=Ee?[!1,!0]:[!1],zt=j.globeSharedBuffers,Ye=[be.width*a.exported.devicePixelRatio,be.height*a.exported.devicePixelRatio],bt=Float32Array.from(be.globeMatrix),Mt={useDenormalizedUpVectorScale:!0};if(et.forEach(Wt=>{de=-1;const ct=Wt?me.LINES:me.TRIANGLES;for(const $t of le){const Tt=re.getTile($t),ti=a.StencilMode.disabled,Kt=Z.prevTerrainTileForTile[$t.key],bi=Z.terrainTileForTile[$t.key];Wo(Kt,bi)&&Nn.newMorphing($t.key,Kt,bi,ye,250),pe.activeTexture.set(me.TEXTURE0),Tt.texture.bind(me.LINEAR,me.CLAMP_TO_EDGE);const Di=Nn.getMorphValuesForProxy($t.key),$i=Di?1:0;Di&&a.extend$1(Mt,{morphing:{srcDemTile:Di.from,dstDemTile:Di.to,phase:a.easeCubicInOut(Di.phase)}});const nr=a.tileCornersToBounds($t.canonical),wi=a.getLatitudinalLod(nr.getCenter().lat),Xi=a.getGridMatrix($t.canonical,nr,wi),hr=a.globeNormalizeECEF(a.globeTileBounds($t.canonical)),Lr=ws(be.projMatrix,bt,ze,hr,a.globeToMercatorTransition(be.zoom),Ge,be.frustumCorners.TL,be.frustumCorners.TR,be.frustumCorners.BR,be.frustumCorners.BL,be.globeCenterInViewSpace,be.globeRadius,Ye,Xi);if(Fe($i,Wt),Z.setupElevationDraw(Tt,ge,Mt),j.prepareDrawProgram(pe,ge,$t.toUnwrapped()),zt){const[qr,vr,mn]=Wt?zt.getWirefameBuffers(j.context,wi):zt.getGridBuffers(wi);ge.draw(pe,ct,Oe,ti,Pe,a.CullFaceMode.backCCW,Lr,"globe_raster",qr,vr,mn)}}}),zt){const Wt=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];Ne&&Wt.push("CUSTOM_ANTIALIASING"),ge=j.useProgram("globeRaster",null,Wt);for(const ct of le){const{x:$t,y:Tt,z:ti}=ct.canonical,Kt=Tt===0,bi=Tt===(1<vr.draw(pe,me.TRIANGLES,Oe,a.StencilMode.disabled,Pe,a.CullFaceMode.disabled,ws(be.projMatrix,hr,hr,Lr,0,Ge,be.frustumCorners.TL,be.frustumCorners.TR,be.frustumCorners.BR,be.frustumCorners.BL,be.globeCenterInViewSpace,be.globeRadius,Ye),"globe_pole_raster",mn,nr,wi);Z.setupElevationDraw(Xi,ge,Mt),j.prepareDrawProgram(pe,ge,ct.toUnwrapped()),Kt&&qr(ge,Di),bi&&(hr=a.scale(a.create(),hr,[1,-1,1]),qr(ge,$i))}}}})(S,A,P,z,O);else{const j=S.context,Z=j.gl;let re,le;const ye=S.options.showTerrainWireframe?2:0,pe=(be,Ne)=>{if(le===be)return;const Fe=[Yo[be]];Ne&&Fe.push(Yo[ye]),re=S.useProgram("terrainRaster",null,Fe),le=be},me=S.colorModeForRenderPass(),ge=new a.DepthMode(Z.LEQUAL,a.DepthMode.ReadWrite,S.depthRangeFor3D);Nn.update(O);const de=S.transform,Ee=6*Math.pow(1.5,22-de.zoom)*A.exaggeration();(ye?[!1,!0]:[!1]).forEach(be=>{le=-1;const Ne=be?Z.LINES:Z.TRIANGLES,[Fe,Pe]=be?A.getWirefameBuffer():[A.gridIndexBuffer,A.gridSegments];for(const Oe of z){const ze=P.getTile(Oe),Ge=a.StencilMode.disabled,et=A.prevTerrainTileForTile[Oe.key],zt=A.terrainTileForTile[Oe.key];Wo(et,zt)&&Nn.newMorphing(Oe.key,et,zt,O,250),j.activeTexture.set(Z.TEXTURE0),ze.texture.bind(Z.LINEAR,Z.CLAMP_TO_EDGE,Z.LINEAR_MIPMAP_NEAREST);const Ye=Nn.getMorphValuesForProxy(Oe.key),bt=Ye?1:0;let Mt;Ye&&(Mt={morphing:{srcDemTile:Ye.from,dstDemTile:Ye.to,phase:a.easeCubicInOut(Ye.phase)}});const Wt=to(Oe.projMatrix,rl(Oe.canonical,de.renderWorldCopies)?Ee/10:Ee);pe(bt,be),A.setupElevationDraw(ze,re,Mt),S.prepareDrawProgram(j,re,Oe.toUnwrapped()),re.draw(j,Ne,ge,Ge,me,a.CullFaceMode.backCCW,Wt,"terrain_raster",A.gridBuffer,Fe,Pe)}})}}(p,this,this.proxySourceCache,c,this._updateTimestamp),this.renderingToTexture=!0,p.gpuTimingDeferredRenderEnd(),c.splice(0,c.length))}renderBatch(c){if(this._drapedRenderBatches.length===0)return c+1;this.renderingToTexture=!0;const p=this.painter,x=this.painter.context,S=this.proxySourceCache,A=this.proxiedCoords[S.id],P=this._drapedRenderBatches.shift(),z=[],O=p.style.order;let j=0;for(const Z of A){const re=S.getTileByID(Z.proxyTileKey),le=S.proxyCachedFBO[Z.key]?S.proxyCachedFBO[Z.key][c]:void 0,ye=le!==void 0?S.renderCache[le]:this.pool[j++],pe=le!==void 0;if(re.texture=ye.tex,pe&&!ye.dirty){z.push(re.tileID);continue}let me;x.bindFramebuffer.set(ye.fb.framebuffer),this.renderedToTile=!1,ye.dirty&&(x.clear({color:a.Color.transparent,stencil:0}),ye.dirty=!1);for(let ge=P.start;ge<=P.end;++ge){const de=p.style._layers[O[ge]];if(de.isHidden(p.transform.zoom))continue;const Ee=p.style._getLayerSourceCache(de),be=Ee?this.proxyToSource[Z.key][Ee.id]:[Z];if(!be)continue;const Ne=be;x.viewport.set([0,0,ye.fb.width,ye.fb.height]),me!==(Ee?Ee.id:null)&&(this._setupStencil(ye,be,de,Ee),me=Ee?Ee.id:null),p.renderLayer(p,Ee,de,Ne)}this.renderedToTile?(ye.dirty=!0,z.push(re.tileID)):pe||--j,j===5&&(j=0,this.renderToBackBuffer(z))}return this.renderToBackBuffer(z),this.renderingToTexture=!1,x.bindFramebuffer.set(null),x.viewport.set([0,0,p.width,p.height]),P.end+1}postRender(){}renderCacheEfficiency(c){const p=c.order.length;if(p===0)return{efficiency:100};let x,S=0,A=0,P=!1;for(let z=0;zp.dem).forEach(p=>{c=Math.min(c,p.dem.tree.minimums[0])}),c===0?c:(c-30)*this._exaggeration}raycast(c,p,x){if(!this._visibleDemTiles)return null;const S=this._visibleDemTiles.filter(A=>A.dem).map(A=>{const P=A.tileID,z=1<(A.t!==null?A.t:Number.MAX_VALUE)-(P.t!==null?P.t:Number.MAX_VALUE));for(const A of S){if(A.t==null)return null;const P=A.tile.dem.tree.raycast(A.minx,A.miny,A.maxx,A.maxy,c,p,x);if(P!=null)return P}return null}_createFBO(){const c=this.painter.context,p=c.gl,x=this.drapeBufferSize;c.activeTexture.set(p.TEXTURE0);const S=new a.Texture(c,{width:x[0],height:x[1],data:null},p.RGBA);S.bind(p.LINEAR,p.CLAMP_TO_EDGE);const A=c.createFramebuffer(x[0],x[1],!1);return A.colorAttachment.set(S.texture),A.depthAttachment=new $(c,A.framebuffer),this._sharedDepthStencil===void 0?(this._sharedDepthStencil=c.createRenderbuffer(c.gl.DEPTH_STENCIL,x[0],x[1]),this._stencilRef=0,A.depthAttachment.set(this._sharedDepthStencil),c.clear({stencil:0})):A.depthAttachment.set(this._sharedDepthStencil),c.extTextureFilterAnisotropic&&!c.extTextureFilterAnisotropicForceOff&&p.texParameterf(p.TEXTURE_2D,c.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,c.extTextureFilterAnisotropicMax),{fb:A,tex:S,dirty:!1}}_initFBOPool(){for(;this.pool.length{const p=this._style._layers[c],x=p.isHidden(this.painter.transform.zoom),S=p.getCrossfadeParameters(),A=!!S&&S.t!==1,P=p.hasTransition();return p.type!=="custom"&&!x&&(A||P)})}_clearRasterFadeFromRenderCache(){let c=!1;for(const p in this._style._sourceCaches)if(this._style._sourceCaches[p]._source instanceof fe){c=!0;break}if(c)for(let p=0;pp.renderCachePool.length){const P=Object.values(p.proxyCachedFBO);p.proxyCachedFBO={};for(let z=0;z=0;P--){const z=x[P];if(p.getTileByID(z.key),p.proxyCachedFBO[z.key]!==void 0){const O=c[z.key],j=this.proxyToSource[z.key];let Z=0;for(const re in j){const le=j[re],ye=O[re];if(!ye||ye.length!==le.length||le.some((pe,me)=>pe!==ye[me]||S[re]&&S[re].hasOwnProperty(pe.key))){Z=-1;break}++Z}for(const re in p.proxyCachedFBO[z.key])p.renderCache[p.proxyCachedFBO[z.key][re]].dirty=Z<0||Z!==Object.values(O).length}}const A=[...this._drapedRenderBatches];A.sort((P,z)=>z.end-z.start-(P.end-P.start));for(const P of A)for(const z of x){if(p.proxyCachedFBO[z.key])continue;let O=p.renderCachePool.pop();O===void 0&&p.renderCache.length<50&&(O=p.renderCache.length,p.renderCache.push(this._createFBO())),O!==void 0&&(p.proxyCachedFBO[z.key]={},p.proxyCachedFBO[z.key][P.start]=O,p.renderCache[O].dirty=!0)}this._tilesDirty={}}_setupStencil(c,p,x,S){if(!S||!this._sourceTilesOverlap[S.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const A=this.painter.context,P=A.gl;if(p.length<=1)return void(this._overlapStencilType=!1);let z;if(x.isTileClipped())z=p.length,this._overlapStencilMode.test={func:P.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(p[0].overscaledZ>p[p.length-1].overscaledZ))return void(this._overlapStencilType=!1);z=1,this._overlapStencilMode.test={func:P.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+z>255&&(A.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=z,this._overlapStencilMode.ref=this._stencilRef,x.isTileClipped()&&this._renderTileClippingMasks(p,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return this._overlapStencilType==="Clip"||this._overlapStencilType==="Mask"}stencilModeForRTTOverlap(c){return this.renderingToTexture&&this._overlapStencilType?(this._overlapStencilType==="Clip"&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[c.key]),this._overlapStencilMode):a.StencilMode.disabled}_renderTileClippingMasks(c,p){const x=this.painter,S=this.painter.context,A=S.gl;x._tileClippingMaskIDs={},S.setColorMode(a.ColorMode.disabled),S.setDepthMode(a.DepthMode.disabled);const P=x.useProgram("clippingMask");for(const z of c){const O=x._tileClippingMaskIDs[z.key]=--p;P.draw(S,A.TRIANGLES,a.DepthMode.disabled,new a.StencilMode({func:A.ALWAYS,mask:0},O,255,A.KEEP,A.KEEP,A.REPLACE),a.ColorMode.disabled,a.CullFaceMode.disabled,Es(z.projMatrix),"$clipping",x.tileExtentBuffer,x.quadTriangleIndexBuffer,x.tileExtentSegments)}}pointCoordinate(c){const p=this.painter.transform;if(c.x<0||c.x>p.width||c.y<0||c.y>p.height)return null;const x=[c.x,c.y,1,1];a.transformMat4$1(x,x,p.pixelMatrixInverse),a.scale$1(x,x,1/x[3]),x[0]/=p.worldSize,x[1]/=p.worldSize;const S=p._camera.position,A=a.mercatorZfromAltitude(1,p.center.lat),P=[S[0],S[1],S[2]/A,0],z=a.subtract([],x.slice(0,3),P);a.normalize(z,z);const O=this.raycast(P,z,this._exaggeration);return O!==null&&O?(a.scaleAndAdd(P,P,z,O),P[3]=P[2],P[2]*=A,P):null}drawDepth(){const c=this.painter,p=c.context,x=this.proxySourceCache,S=Math.ceil(c.width),A=Math.ceil(c.height);if(!this._depthFBO||this._depthFBO.width===S&&this._depthFBO.height===A||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){const P=p.gl,z=p.createFramebuffer(S,A,!0);p.activeTexture.set(P.TEXTURE0);const O=new a.Texture(p,{width:S,height:A,data:null},P.RGBA);O.bind(P.NEAREST,P.CLAMP_TO_EDGE),z.colorAttachment.set(O.texture);const j=p.createRenderbuffer(p.gl.DEPTH_COMPONENT16,S,A);z.depthAttachment.set(j),this._depthFBO=z,this._depthTexture=O}p.bindFramebuffer.set(this._depthFBO.framebuffer),p.viewport.set([0,0,S,A]),function(P,z,O,j){if(P.transform.projection.name==="globe")return;const Z=P.context,re=Z.gl;Z.clear({depth:1});const le=P.useProgram("terrainDepth"),ye=new a.DepthMode(re.LESS,a.DepthMode.ReadWrite,P.depthRangeFor3D);for(const pe of j){const me=O.getTile(pe),ge=to(pe.projMatrix,0);z.setupElevationDraw(me,le),le.draw(Z,re.TRIANGLES,ye,a.StencilMode.disabled,a.ColorMode.unblended,a.CullFaceMode.backCCW,ge,"terrain_depth",z.gridBuffer,z.gridIndexBuffer,z.gridNoSkirtSegments)}}(c,this,x,this.proxyCoords)}_setupProxiedCoordsForOrtho(c,p,x){if(c.getSource()instanceof je)return this._setupProxiedCoordsForImageSource(c,p,x);this._findCoveringTileCache[c.id]=this._findCoveringTileCache[c.id]||{};const S=this.proxiedCoords[c.id]=[],A=this.proxyCoords;for(let z=0;z(Z.min.x=Math.min(Z.min.x,re.x-z.x),Z.min.y=Math.min(Z.min.y,re.y-z.y),Z.max.x=Math.max(Z.max.x,re.x-z.x),Z.max.y=Math.max(Z.max.y,re.y-z.y),Z),{min:new a.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE),max:new a.pointGeometry(-Number.MAX_VALUE,-Number.MAX_VALUE)}),j=(Z,re)=>{const le=Z.wrap+Z.canonical.x/(1<me+O.max.x||ye+pege+O.max.y};for(let Z=0;ZP.key===p.tileID.key);if(A)return A}if(p.tileID.key!==c.key){const A=c.canonical.z-p.tileID.canonical.z;let P,z,O;S=a.create();const j=p.tileID.wrap-c.wrap<0?(P=a.EXTENT>>A,z=P*((p.tileID.canonical.x<=re){const le=c.canonical.z-re;p.getSource().reparseOverscaled?(z=Math.max(c.canonical.z+2,p.transform.tileZoom),P=new a.OverscaledTileID(z,c.wrap,re,c.canonical.x>>le,c.canonical.y>>le)):le!==0&&(z=re,P=new a.OverscaledTileID(z,c.wrap,re,c.canonical.x>>le,c.canonical.y>>le))}P.key!==c.key&&(j.push(P.key),x=p.getTile(P))}const Z=re=>{j.forEach(le=>{S[le]=re}),j.length=0};for(z-=1;z>=O&&(!x||!x.hasData());z--){x&&Z(x.tileID.key);const re=P.calculateScaledKey(z);if(x=p.getTileByID(re),x&&x.hasData())break;const le=S[re];if(le===null)break;le===void 0?j.push(re):x=p.getTileByID(le)}return Z(x?x.tileID.key:null),x&&x.hasData()?x:null}findDEMTileFor(c){return this.enabled?this._findTileCoveringTileID(c,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(c,p){let x=this._tilesDirty[c];x||(x=this._tilesDirty[c]={}),x[p.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){const c=function(p){let x=0;const S=new a.StructArrayLayout2ui4,A=131;for(let P=1;P<129;P++){for(let z=1;z<129;z++)x=P*A+z,S.emplaceBack(x,x+1),S.emplaceBack(x,x+A),S.emplaceBack(x+1,x+A),P===128&&S.emplaceBack(x+A,x+A+1);S.emplaceBack(x+1,x+1+A)}return S}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(c),this.wireframeSegments=a.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,c.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}class Ts{static cacheKey(c,p,x,S){let A=`${p}${S?S.cacheKey:""}`;for(const P of x)c.usedDefines.includes(P)&&(A+=`/${P}`);return A}constructor(c,p,x,S,A,P){const z=c.gl;this.program=z.createProgram();const O=function(ge){const de=[];for(let Ee=0;Ee`#define ${ge}`));const le=re.concat(c.extStandardDerivatives?`#extension GL_OES_standard_derivatives : enable +`.concat(Ga):Ga,Ga,ja,co.fragmentSource,lo.fragmentSource,x.fragmentSource).join(` +`),ye=re.concat(` +#ifdef GL_ES +precision highp float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`,ja,co.vertexSource,lo.vertexSource,Ho.vertexSource,x.vertexSource).join(` +`),pe=z.createShader(z.FRAGMENT_SHADER);if(z.isContextLost())return void(this.failedToCreate=!0);z.shaderSource(pe,le),z.compileShader(pe),z.attachShader(this.program,pe);const me=z.createShader(z.VERTEX_SHADER);if(z.isContextLost())this.failedToCreate=!0;else{z.shaderSource(me,ye),z.compileShader(me),z.attachShader(this.program,me),this.attributes={},this.numAttributes=Z.length;for(let ge=0;ge({u_dem:new a.Uniform1i(ge),u_dem_prev:new a.Uniform1i(ge),u_dem_unpack:new a.Uniform4f(ge),u_dem_tl:new a.Uniform2f(ge),u_dem_scale:new a.Uniform1f(ge),u_dem_tl_prev:new a.Uniform2f(ge),u_dem_scale_prev:new a.Uniform1f(ge),u_dem_size:new a.Uniform1f(ge),u_dem_lerp:new a.Uniform1f(ge),u_exaggeration:new a.Uniform1f(ge),u_depth:new a.Uniform1i(ge),u_depth_size_inv:new a.Uniform2f(ge),u_meter_to_dem:new a.Uniform1f(ge),u_label_plane_matrix_inv:new a.UniformMatrix4f(ge),u_tile_tl_up:new a.Uniform3f(ge),u_tile_tr_up:new a.Uniform3f(ge),u_tile_br_up:new a.Uniform3f(ge),u_tile_bl_up:new a.Uniform3f(ge),u_tile_up_scale:new a.Uniform1f(ge)}))(c)),P.indexOf("FOG")!==-1&&(this.fogUniforms=(ge=>({u_fog_matrix:new a.UniformMatrix4f(ge),u_fog_range:new a.Uniform2f(ge),u_fog_color:new a.Uniform4f(ge),u_fog_horizon_blend:new a.Uniform1f(ge),u_fog_temporal_offset:new a.Uniform1f(ge),u_frustum_tl:new a.Uniform3f(ge),u_frustum_tr:new a.Uniform3f(ge),u_frustum_br:new a.Uniform3f(ge),u_frustum_bl:new a.Uniform3f(ge),u_globe_pos:new a.Uniform3f(ge),u_globe_radius:new a.Uniform1f(ge),u_globe_transition:new a.Uniform1f(ge),u_is_globe:new a.Uniform1i(ge),u_viewport:new a.Uniform2f(ge)}))(c))}}setTerrainUniformValues(c,p){if(!this.terrainUniforms)return;const x=this.terrainUniforms;if(!this.failedToCreate){c.program.set(this.program);for(const S in p)x[S].set(this.program,S,p[S])}}setFogUniformValues(c,p){if(!this.fogUniforms)return;const x=this.fogUniforms;if(!this.failedToCreate){c.program.set(this.program);for(const S in p)x[S].set(this.program,S,p[S])}}draw(c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me){const ge=c.gl;if(this.failedToCreate)return;c.program.set(this.program),c.setDepthMode(x),c.setStencilMode(S),c.setColorMode(A),c.setCullFace(P);for(const Ee of Object.keys(this.fixedUniforms))this.fixedUniforms[Ee].set(this.program,Ee,z[Ee]);pe&&pe.setUniforms(this.program,c,this.binderUniforms,le,{zoom:ye});const de={[ge.LINES]:2,[ge.TRIANGLES]:3,[ge.LINE_STRIP]:1}[p];for(const Ee of re.get()){const be=Ee.vaos||(Ee.vaos={});(be[O]||(be[O]=new xa)).bind(c,this,j,pe?pe.getPaintVertexBuffers():[],Z,Ee.vertexOffset,me||[]),ge.drawElements(p,Ee.primitiveLength*de,ge.UNSIGNED_SHORT,Ee.primitiveOffset*de*2)}}}function ho(g,c,p){const x=1/At(p,1,c.transform.tileZoom),S=Math.pow(2,p.tileID.overscaledZ),A=p.tileSize*Math.pow(2,c.transform.tileZoom)/S,P=A*(p.tileID.canonical.x+p.tileID.wrap*S),z=A*p.tileID.canonical.y;return{u_image:0,u_texsize:p.imageAtlasTexture.size,u_scale:[x,g.fromScale,g.toScale],u_fade:g.t,u_pixel_coord_upper:[P>>16,z>>16],u_pixel_coord_lower:[65535&P,65535&z]}}const ba=a.create(),Un=(g,c,p,x,S,A,P,z,O,j,Z)=>{const re=c.style.light,le=re.properties.get("position"),ye=[le.x,le.y,le.z],pe=a.create$1();re.properties.get("anchor")==="viewport"&&(a.fromRotation(pe,-c.transform.angle),a.transformMat3(ye,ye,pe));const me=re.properties.get("color"),ge=c.transform,de={u_matrix:g,u_lightpos:ye,u_lightintensity:re.properties.get("intensity"),u_lightcolor:[me.r,me.g,me.b],u_vertical_gradient:+p,u_opacity:x,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:ba,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:S,u_edge_radius:A};return ge.projection.name==="globe"&&(de.u_tile_id=[P.canonical.x,P.canonical.y,1<{const ye=Un(g,c,p,x,S,A,P,j,Z,re,le),pe={u_height_factor:-Math.pow(2,P.overscaledZ)/O.tileSize/8};return a.extend(ye,ho(z,c,O),pe)},wa=g=>({u_matrix:g}),ko=(g,c,p,x)=>a.extend(wa(g),ho(p,c,x)),Vn=(g,c)=>({u_matrix:g,u_world:c}),Wa=(g,c,p,x,S)=>a.extend(ko(g,c,p,x),{u_world:S}),Ms=a.create(),Ya=(g,c,p,x,S,A)=>{const P=g.transform,z=P.projection.name==="globe";let O;if(A.paint.get("circle-pitch-alignment")==="map")if(z){const Z=a.globePixelsToTileUnits(P.zoom,c.canonical)*P._pixelsPerMercatorPixel;O=Float32Array.from([Z,0,0,Z])}else O=P.calculatePixelsToTileUnitsMatrix(p);else O=new Float32Array([P.pixelsToGLUnits[0],0,0,P.pixelsToGLUnits[1]]);const j={u_camera_to_center_distance:P.cameraToCenterDistance,u_matrix:g.translatePosMatrix(c.projMatrix,p,A.paint.get("circle-translate"),A.paint.get("circle-translate-anchor")),u_device_pixel_ratio:a.exported.devicePixelRatio,u_extrude_scale:O,u_inv_rot_matrix:Ms,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(z){j.u_inv_rot_matrix=x,j.u_merc_center=S,j.u_tile_id=[c.canonical.x,c.canonical.y,1<{const c=[];return g.paint.get("circle-pitch-alignment")==="map"&&c.push("PITCH_WITH_MAP"),g.paint.get("circle-pitch-scale")==="map"&&c.push("SCALE_WITH_MAP"),c},Ka=(g,c,p,x)=>{const S=a.EXTENT/p.tileSize;return{u_matrix:g,u_camera_to_center_distance:c.getCameraToCenterDistance(x),u_extrude_scale:[c.pixelsToGLUnits[0]/S,c.pixelsToGLUnits[1]/S]}},nl=(g,c,p=1)=>({u_matrix:g,u_color:c,u_overlay:0,u_overlay_scale:p}),We=a.create(),ft=(g,c,p,x,S,A,P)=>{const z=g.transform,O=z.projection.name==="globe",j=O?a.globePixelsToTileUnits(z.zoom,c.canonical)*z._pixelsPerMercatorPixel:At(p,1,A),Z={u_matrix:c.projMatrix,u_extrude_scale:j,u_intensity:P,u_inv_rot_matrix:We,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(O){Z.u_inv_rot_matrix=x,Z.u_merc_center=S,Z.u_tile_id=[c.canonical.x,c.canonical.y,1<{const O=g.transform,j=O.calculatePixelsToTileUnitsMatrix(c),Z={u_matrix:lr(g,c,p,S),u_pixels_to_tile_units:j,u_device_pixel_ratio:P,u_units_to_pixels:[1/O.pixelsToGLUnits[0],1/O.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:A,u_texsize:[0,0],u_scale:[0,0,0],u_mix:0,u_alpha_discard_threshold:0,u_trim_offset:z};if(Br(p)){const re=Er(c,g.transform);Z.u_texsize=c.lineAtlasTexture.size,Z.u_scale=[re,x.fromScale,x.toScale],Z.u_mix=x.t}return Z},Fi=(g,c,p,x,S,A)=>{const P=g.transform,z=Er(c,P);return{u_matrix:lr(g,c,p,S),u_texsize:c.imageAtlasTexture.size,u_pixels_to_tile_units:P.calculatePixelsToTileUnitsMatrix(c),u_device_pixel_ratio:A,u_image:0,u_scale:[z,x.fromScale,x.toScale],u_fade:x.t,u_units_to_pixels:[1/P.pixelsToGLUnits[0],1/P.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Er(g,c){return 1/At(g,1,c.tileZoom)}function lr(g,c,p,x){return g.translatePosMatrix(x||c.tileID.projMatrix,c,p.paint.get("line-translate"),p.paint.get("line-translate-anchor"))}function Br(g){const c=g.paint.get("line-dasharray").value;return c.value||c.kind!=="constant"}const Qr=(g,c,p,x,S,A)=>{return{u_matrix:g,u_tl_parent:c,u_scale_parent:p,u_fade_t:x.mix,u_opacity:x.opacity*S.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:S.paint.get("raster-brightness-min"),u_brightness_high:S.paint.get("raster-brightness-max"),u_saturation_factor:(z=S.paint.get("raster-saturation"),z>0?1-1/(1.001-z):-z),u_contrast_factor:(P=S.paint.get("raster-contrast"),P>0?1/(1-P):1+P),u_spin_weights:vn(S.paint.get("raster-hue-rotate")),u_perspective_transform:A};var P,z};function vn(g){g*=Math.PI/180;const c=Math.sin(g),p=Math.cos(g);return[(2*p+1)/3,(-Math.sqrt(3)*c-p+1)/3,(Math.sqrt(3)*c-p+1)/3]}const Jr=a.create(),Wr=(g,c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me)=>{const ge=S.transform,de={u_is_size_zoom_constant:+(g==="constant"||g==="source"),u_is_size_feature_constant:+(g==="constant"||g==="camera"),u_size_t:c?c.uSizeT:0,u_size:c?c.uSize:0,u_camera_to_center_distance:ge.cameraToCenterDistance,u_rotate_symbol:+p,u_aspect_ratio:ge.width/ge.height,u_fade_change:S.options.fadeDuration?S.symbolFadeChange:1,u_matrix:A,u_label_plane_matrix:P,u_coord_matrix:z,u_is_text:+O,u_pitch_with_map:+x,u_texsize:j,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:Jr,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:Jr,u_up_vector:[0,-1,0]};return me.name==="globe"&&(de.u_tile_id=[Z.canonical.x,Z.canonical.y,1<a.extend(Wr(g,c,p,x,S,A,P,z,O,j,re,le,ye,pe,me,ge),{u_gamma_scale:x?S.transform.cameraToCenterDistance*Math.cos(S.terrain?0:S.transform._pitch):1,u_device_pixel_ratio:a.exported.devicePixelRatio,u_is_halo:+Z}),bn=(g,c,p,x,S,A,P,z,O,j,Z,re,le,ye,pe,me)=>a.extend($n(g,c,p,x,S,A,P,z,!0,O,!0,Z,re,le,ye,pe,me),{u_texsize_icon:j,u_texture_icon:1}),fn=(g,c,p)=>({u_matrix:g,u_opacity:c,u_color:p}),fo=(g,c,p,x,S,A)=>a.extend(function(P,z,O,j){const Z=O.imageManager.getPattern(P.from.toString()),re=O.imageManager.getPattern(P.to.toString()),{width:le,height:ye}=O.imageManager.getPixelSize(),pe=Math.pow(2,j.tileID.overscaledZ),me=j.tileSize*Math.pow(2,O.transform.tileZoom)/pe,ge=me*(j.tileID.canonical.x+j.tileID.wrap*pe),de=me*j.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Z.tl,u_pattern_br_a:Z.br,u_pattern_tl_b:re.tl,u_pattern_br_b:re.br,u_texsize:[le,ye],u_mix:z.t,u_pattern_size_a:Z.displaySize,u_pattern_size_b:re.displaySize,u_scale_a:z.fromScale,u_scale_b:z.toScale,u_tile_units_to_pixels:1/At(j,1,O.transform.tileZoom),u_pixel_coord_upper:[ge>>16,de>>16],u_pixel_coord_lower:[65535&ge,65535&de]}}(x,A,p,S),{u_matrix:g,u_opacity:c}),Qo={fillExtrusion:g=>({u_matrix:new a.UniformMatrix4f(g),u_lightpos:new a.Uniform3f(g),u_lightintensity:new a.Uniform1f(g),u_lightcolor:new a.Uniform3f(g),u_vertical_gradient:new a.Uniform1f(g),u_opacity:new a.Uniform1f(g),u_edge_radius:new a.Uniform1f(g),u_ao:new a.Uniform2f(g),u_tile_id:new a.Uniform3f(g),u_zoom_transition:new a.Uniform1f(g),u_inv_rot_matrix:new a.UniformMatrix4f(g),u_merc_center:new a.Uniform2f(g),u_up_dir:new a.Uniform3f(g),u_height_lift:new a.Uniform1f(g)}),fillExtrusionPattern:g=>({u_matrix:new a.UniformMatrix4f(g),u_lightpos:new a.Uniform3f(g),u_lightintensity:new a.Uniform1f(g),u_lightcolor:new a.Uniform3f(g),u_vertical_gradient:new a.Uniform1f(g),u_height_factor:new a.Uniform1f(g),u_edge_radius:new a.Uniform1f(g),u_ao:new a.Uniform2f(g),u_tile_id:new a.Uniform3f(g),u_zoom_transition:new a.Uniform1f(g),u_inv_rot_matrix:new a.UniformMatrix4f(g),u_merc_center:new a.Uniform2f(g),u_up_dir:new a.Uniform3f(g),u_height_lift:new a.Uniform1f(g),u_image:new a.Uniform1i(g),u_texsize:new a.Uniform2f(g),u_pixel_coord_upper:new a.Uniform2f(g),u_pixel_coord_lower:new a.Uniform2f(g),u_scale:new a.Uniform3f(g),u_fade:new a.Uniform1f(g),u_opacity:new a.Uniform1f(g)}),fill:g=>({u_matrix:new a.UniformMatrix4f(g)}),fillPattern:g=>({u_matrix:new a.UniformMatrix4f(g),u_image:new a.Uniform1i(g),u_texsize:new a.Uniform2f(g),u_pixel_coord_upper:new a.Uniform2f(g),u_pixel_coord_lower:new a.Uniform2f(g),u_scale:new a.Uniform3f(g),u_fade:new a.Uniform1f(g)}),fillOutline:g=>({u_matrix:new a.UniformMatrix4f(g),u_world:new a.Uniform2f(g)}),fillOutlinePattern:g=>({u_matrix:new a.UniformMatrix4f(g),u_world:new a.Uniform2f(g),u_image:new a.Uniform1i(g),u_texsize:new a.Uniform2f(g),u_pixel_coord_upper:new a.Uniform2f(g),u_pixel_coord_lower:new a.Uniform2f(g),u_scale:new a.Uniform3f(g),u_fade:new a.Uniform1f(g)}),circle:g=>({u_camera_to_center_distance:new a.Uniform1f(g),u_extrude_scale:new a.UniformMatrix2f(g),u_device_pixel_ratio:new a.Uniform1f(g),u_matrix:new a.UniformMatrix4f(g),u_inv_rot_matrix:new a.UniformMatrix4f(g),u_merc_center:new a.Uniform2f(g),u_tile_id:new a.Uniform3f(g),u_zoom_transition:new a.Uniform1f(g),u_up_dir:new a.Uniform3f(g)}),collisionBox:g=>({u_matrix:new a.UniformMatrix4f(g),u_camera_to_center_distance:new a.Uniform1f(g),u_extrude_scale:new a.Uniform2f(g)}),collisionCircle:g=>({u_matrix:new a.UniformMatrix4f(g),u_inv_matrix:new a.UniformMatrix4f(g),u_camera_to_center_distance:new a.Uniform1f(g),u_viewport_size:new a.Uniform2f(g)}),debug:g=>({u_color:new a.UniformColor(g),u_matrix:new a.UniformMatrix4f(g),u_overlay:new a.Uniform1i(g),u_overlay_scale:new a.Uniform1f(g)}),clippingMask:g=>({u_matrix:new a.UniformMatrix4f(g)}),heatmap:g=>({u_extrude_scale:new a.Uniform1f(g),u_intensity:new a.Uniform1f(g),u_matrix:new a.UniformMatrix4f(g),u_inv_rot_matrix:new a.UniformMatrix4f(g),u_merc_center:new a.Uniform2f(g),u_tile_id:new a.Uniform3f(g),u_zoom_transition:new a.Uniform1f(g),u_up_dir:new a.Uniform3f(g)}),heatmapTexture:g=>({u_image:new a.Uniform1i(g),u_color_ramp:new a.Uniform1i(g),u_opacity:new a.Uniform1f(g)}),hillshade:g=>({u_matrix:new a.UniformMatrix4f(g),u_image:new a.Uniform1i(g),u_latrange:new a.Uniform2f(g),u_light:new a.Uniform2f(g),u_shadow:new a.UniformColor(g),u_highlight:new a.UniformColor(g),u_accent:new a.UniformColor(g)}),hillshadePrepare:g=>({u_matrix:new a.UniformMatrix4f(g),u_image:new a.Uniform1i(g),u_dimension:new a.Uniform2f(g),u_zoom:new a.Uniform1f(g),u_unpack:new a.Uniform4f(g)}),line:g=>({u_matrix:new a.UniformMatrix4f(g),u_pixels_to_tile_units:new a.UniformMatrix2f(g),u_device_pixel_ratio:new a.Uniform1f(g),u_units_to_pixels:new a.Uniform2f(g),u_dash_image:new a.Uniform1i(g),u_gradient_image:new a.Uniform1i(g),u_image_height:new a.Uniform1f(g),u_texsize:new a.Uniform2f(g),u_scale:new a.Uniform3f(g),u_mix:new a.Uniform1f(g),u_alpha_discard_threshold:new a.Uniform1f(g),u_trim_offset:new a.Uniform2f(g)}),linePattern:g=>({u_matrix:new a.UniformMatrix4f(g),u_texsize:new a.Uniform2f(g),u_pixels_to_tile_units:new a.UniformMatrix2f(g),u_device_pixel_ratio:new a.Uniform1f(g),u_image:new a.Uniform1i(g),u_units_to_pixels:new a.Uniform2f(g),u_scale:new a.Uniform3f(g),u_fade:new a.Uniform1f(g),u_alpha_discard_threshold:new a.Uniform1f(g)}),raster:g=>({u_matrix:new a.UniformMatrix4f(g),u_tl_parent:new a.Uniform2f(g),u_scale_parent:new a.Uniform1f(g),u_fade_t:new a.Uniform1f(g),u_opacity:new a.Uniform1f(g),u_image0:new a.Uniform1i(g),u_image1:new a.Uniform1i(g),u_brightness_low:new a.Uniform1f(g),u_brightness_high:new a.Uniform1f(g),u_saturation_factor:new a.Uniform1f(g),u_contrast_factor:new a.Uniform1f(g),u_spin_weights:new a.Uniform3f(g),u_perspective_transform:new a.Uniform2f(g)}),symbolIcon:g=>({u_is_size_zoom_constant:new a.Uniform1i(g),u_is_size_feature_constant:new a.Uniform1i(g),u_size_t:new a.Uniform1f(g),u_size:new a.Uniform1f(g),u_camera_to_center_distance:new a.Uniform1f(g),u_rotate_symbol:new a.Uniform1i(g),u_aspect_ratio:new a.Uniform1f(g),u_fade_change:new a.Uniform1f(g),u_matrix:new a.UniformMatrix4f(g),u_label_plane_matrix:new a.UniformMatrix4f(g),u_coord_matrix:new a.UniformMatrix4f(g),u_is_text:new a.Uniform1i(g),u_pitch_with_map:new a.Uniform1i(g),u_texsize:new a.Uniform2f(g),u_tile_id:new a.Uniform3f(g),u_zoom_transition:new a.Uniform1f(g),u_inv_rot_matrix:new a.UniformMatrix4f(g),u_merc_center:new a.Uniform2f(g),u_camera_forward:new a.Uniform3f(g),u_tile_matrix:new a.UniformMatrix4f(g),u_up_vector:new a.Uniform3f(g),u_ecef_origin:new a.Uniform3f(g),u_texture:new a.Uniform1i(g)}),symbolSDF:g=>({u_is_size_zoom_constant:new a.Uniform1i(g),u_is_size_feature_constant:new a.Uniform1i(g),u_size_t:new a.Uniform1f(g),u_size:new a.Uniform1f(g),u_camera_to_center_distance:new a.Uniform1f(g),u_rotate_symbol:new a.Uniform1i(g),u_aspect_ratio:new a.Uniform1f(g),u_fade_change:new a.Uniform1f(g),u_matrix:new a.UniformMatrix4f(g),u_label_plane_matrix:new a.UniformMatrix4f(g),u_coord_matrix:new a.UniformMatrix4f(g),u_is_text:new a.Uniform1i(g),u_pitch_with_map:new a.Uniform1i(g),u_texsize:new a.Uniform2f(g),u_texture:new a.Uniform1i(g),u_gamma_scale:new a.Uniform1f(g),u_device_pixel_ratio:new a.Uniform1f(g),u_tile_id:new a.Uniform3f(g),u_zoom_transition:new a.Uniform1f(g),u_inv_rot_matrix:new a.UniformMatrix4f(g),u_merc_center:new a.Uniform2f(g),u_camera_forward:new a.Uniform3f(g),u_tile_matrix:new a.UniformMatrix4f(g),u_up_vector:new a.Uniform3f(g),u_ecef_origin:new a.Uniform3f(g),u_is_halo:new a.Uniform1i(g)}),symbolTextAndIcon:g=>({u_is_size_zoom_constant:new a.Uniform1i(g),u_is_size_feature_constant:new a.Uniform1i(g),u_size_t:new a.Uniform1f(g),u_size:new a.Uniform1f(g),u_camera_to_center_distance:new a.Uniform1f(g),u_rotate_symbol:new a.Uniform1i(g),u_aspect_ratio:new a.Uniform1f(g),u_fade_change:new a.Uniform1f(g),u_matrix:new a.UniformMatrix4f(g),u_label_plane_matrix:new a.UniformMatrix4f(g),u_coord_matrix:new a.UniformMatrix4f(g),u_is_text:new a.Uniform1i(g),u_pitch_with_map:new a.Uniform1i(g),u_texsize:new a.Uniform2f(g),u_texsize_icon:new a.Uniform2f(g),u_texture:new a.Uniform1i(g),u_texture_icon:new a.Uniform1i(g),u_gamma_scale:new a.Uniform1f(g),u_device_pixel_ratio:new a.Uniform1f(g),u_is_halo:new a.Uniform1i(g)}),background:g=>({u_matrix:new a.UniformMatrix4f(g),u_opacity:new a.Uniform1f(g),u_color:new a.UniformColor(g)}),backgroundPattern:g=>({u_matrix:new a.UniformMatrix4f(g),u_opacity:new a.Uniform1f(g),u_image:new a.Uniform1i(g),u_pattern_tl_a:new a.Uniform2f(g),u_pattern_br_a:new a.Uniform2f(g),u_pattern_tl_b:new a.Uniform2f(g),u_pattern_br_b:new a.Uniform2f(g),u_texsize:new a.Uniform2f(g),u_mix:new a.Uniform1f(g),u_pattern_size_a:new a.Uniform2f(g),u_pattern_size_b:new a.Uniform2f(g),u_scale_a:new a.Uniform1f(g),u_scale_b:new a.Uniform1f(g),u_pixel_coord_upper:new a.Uniform2f(g),u_pixel_coord_lower:new a.Uniform2f(g),u_tile_units_to_pixels:new a.Uniform1f(g)}),terrainRaster:xo,terrainDepth:xo,skybox:g=>({u_matrix:new a.UniformMatrix4f(g),u_sun_direction:new a.Uniform3f(g),u_cubemap:new a.Uniform1i(g),u_opacity:new a.Uniform1f(g),u_temporal_offset:new a.Uniform1f(g)}),skyboxGradient:g=>({u_matrix:new a.UniformMatrix4f(g),u_color_ramp:new a.Uniform1i(g),u_center_direction:new a.Uniform3f(g),u_radius:new a.Uniform1f(g),u_opacity:new a.Uniform1f(g),u_temporal_offset:new a.Uniform1f(g)}),skyboxCapture:g=>({u_matrix_3f:new a.UniformMatrix3f(g),u_sun_direction:new a.Uniform3f(g),u_sun_intensity:new a.Uniform1f(g),u_color_tint_r:new a.Uniform4f(g),u_color_tint_m:new a.Uniform4f(g),u_luminance:new a.Uniform1f(g)}),globeRaster:g=>({u_proj_matrix:new a.UniformMatrix4f(g),u_globe_matrix:new a.UniformMatrix4f(g),u_normalize_matrix:new a.UniformMatrix4f(g),u_merc_matrix:new a.UniformMatrix4f(g),u_zoom_transition:new a.Uniform1f(g),u_merc_center:new a.Uniform2f(g),u_image0:new a.Uniform1i(g),u_grid_matrix:new a.UniformMatrix3f(g),u_frustum_tl:new a.Uniform3f(g),u_frustum_tr:new a.Uniform3f(g),u_frustum_br:new a.Uniform3f(g),u_frustum_bl:new a.Uniform3f(g),u_globe_pos:new a.Uniform3f(g),u_globe_radius:new a.Uniform1f(g),u_viewport:new a.Uniform2f(g)}),globeAtmosphere:g=>({u_frustum_tl:new a.Uniform3f(g),u_frustum_tr:new a.Uniform3f(g),u_frustum_br:new a.Uniform3f(g),u_frustum_bl:new a.Uniform3f(g),u_horizon:new a.Uniform1f(g),u_transition:new a.Uniform1f(g),u_fadeout_range:new a.Uniform1f(g),u_color:new a.Uniform4f(g),u_high_color:new a.Uniform4f(g),u_space_color:new a.Uniform4f(g),u_star_intensity:new a.Uniform1f(g),u_star_density:new a.Uniform1f(g),u_star_size:new a.Uniform1f(g),u_temporal_offset:new a.Uniform1f(g),u_horizon_angle:new a.Uniform1f(g),u_rotation_matrix:new a.UniformMatrix4f(g)})};let Po;function Do(g,c,p,x,S,A,P){const z=g.context,O=z.gl,j=g.transform,Z=g.useProgram("collisionBox"),re=[];let le=0,ye=0;for(let Ne=0;Ne0){const Ye=a.create(),bt=Ge;a.mul(Ye,Oe.placementInvProjMatrix,j.glCoordMatrix),a.mul(Ye,Ye,Oe.placementViewportMatrix),re.push({circleArray:zt,circleOffset:ye,transform:bt,invTransform:Ye,projection:Oe.getProjection()}),le+=zt.length/4,ye=le}et&&(g.terrain&&g.terrain.setupElevationDraw(Pe,Z),Z.draw(z,O.LINES,a.DepthMode.disabled,a.StencilMode.disabled,g.colorModeForRenderPass(),a.CullFaceMode.disabled,Ka(Ge,j,Pe,Oe.getProjection()),p.id,et.layoutVertexBuffer,et.indexBuffer,et.segments,null,j.zoom,null,[et.collisionVertexBuffer,et.collisionVertexBufferExt]))}if(!P||!re.length)return;const pe=g.useProgram("collisionCircle"),me=new a.StructArrayLayout2f1f2i16;me.resize(4*le),me._trim();let ge=0;for(const Ne of re)for(let Fe=0;Fe=0&&(pe[be.associatedIconIndex]={shiftedAnchor:Tt,angle:ti})}else B(be.numGlyphs,le)}if(Z){ye.clear();const Ee=g.icon.placedSymbolArray;for(let be=0;be[0,0,0],ra=ji(vr,bt.tileID.canonical,ge,me,pe,Mt.getProjection(),mn);ma(Mt,vr,g,S,ra,Rr,ge,j,Ca,Ye)}const tn=de||S&&Oe||rr,Tn=g.translatePosMatrix(vr,bt,A,P),Mr=tn?Jo:go,Sn=g.translatePosMatrix(Rr,bt,A,P,!0),Ta=Mt.getProjection().createInversionMatrix(pe,Ye.canonical),Rn=[];g.terrain&&ge&&Rn.push("PITCH_WITH_MAP_TERRAIN"),hr&&Rn.push("PROJECTION_GLOBE_VIEW"),tn&&Rn.push("PROJECTED_POS_ON_VIEWPORT");const Sa=$t&&p.paint.get(S?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let Ma;Ma=$t?Mt.iconsInText?bn(Tt.kind,Kt,Ee,ge,g,Tn,Mr,Sn,bi,wi,Ye,qr,Pe,Ta,Lr,Mt.getProjection()):$n(Tt.kind,Kt,Ee,ge,g,Tn,Mr,Sn,S,bi,!0,Ye,qr,Pe,Ta,Lr,Mt.getProjection()):Wr(Tt.kind,Kt,Ee,ge,g,Tn,Mr,Sn,S,bi,Ye,qr,Pe,Ta,Lr,Mt.getProjection());const Aa={program:g.useProgram(ol($t,S,Mt),ct,Rn),buffers:Wt,uniformValues:Ma,atlasTexture:Di,atlasTextureIcon:Xi,atlasInterpolation:$i,atlasInterpolationIcon:nr,isSDF:$t,hasHalo:Sa,tile:bt,labelPlaneMatrixInv:Oo};if(be&&Mt.canOverlap){Ne=!0;const zn=Wt.segments.get();for(const Ca of zn)Ge.push({segments:new a.SegmentVector([Ca]),sortKey:Ca.sortKey,state:Aa})}else Ge.push({segments:Wt.segments,sortKey:0,state:Aa})}Ne&&Ge.sort((Ye,bt)=>Ye.sortKey-bt.sortKey);for(const Ye of Ge){const bt=Ye.state;if(g.terrain&&g.terrain.setupElevationDraw(bt.tile,bt.program,{useDepthForOcclusion:!ze,labelPlaneMatrixInv:bt.labelPlaneMatrixInv}),le.activeTexture.set(ye.TEXTURE0),bt.atlasTexture.bind(bt.atlasInterpolation,ye.CLAMP_TO_EDGE),bt.atlasTextureIcon&&(le.activeTexture.set(ye.TEXTURE1),bt.atlasTextureIcon&&bt.atlasTextureIcon.bind(bt.atlasInterpolationIcon,ye.CLAMP_TO_EDGE)),bt.isSDF){const Mt=bt.uniformValues;bt.hasHalo&&(Mt.u_is_halo=1,gr(bt.buffers,Ye.segments,p,g,bt.program,Fe,Z,re,Mt)),Mt.u_is_halo=0}gr(bt.buffers,Ye.segments,p,g,bt.program,Fe,Z,re,bt.uniformValues)}}function gr(g,c,p,x,S,A,P,z,O){const j=x.context,Z=[g.dynamicLayoutVertexBuffer,g.opacityVertexBuffer,g.globeExtVertexBuffer];S.draw(j,j.gl.TRIANGLES,A,P,z,a.CullFaceMode.disabled,O,p.id,g.layoutVertexBuffer,g.indexBuffer,c,p.paint,x.transform.zoom,g.programConfigurations.get(p.id),Z)}function Bo(g,c,p,x,S,A,P){const z=g.context.gl,O=p.paint.get("fill-pattern"),j=O&&O.constantOr(1),Z=p.getCrossfadeParameters();let re,le,ye,pe,me;P?(le=j&&!p.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",re=z.LINES):(le=j?"fillPattern":"fill",re=z.TRIANGLES);for(const ge of x){const de=c.getTile(ge);if(j&&!de.patternsLoaded())continue;const Ee=de.getBucket(p);if(!Ee)continue;g.prepareDrawTile();const be=Ee.programConfigurations.get(p.id),Ne=g.useProgram(le,be);j&&(g.context.activeTexture.set(z.TEXTURE0),de.imageAtlasTexture.bind(z.LINEAR,z.CLAMP_TO_EDGE),be.updatePaintBuffers(Z));const Fe=O.constantOr(null);if(Fe&&de.imageAtlas){const Oe=de.imageAtlas,ze=Oe.patternPositions[Fe.to.toString()],Ge=Oe.patternPositions[Fe.from.toString()];ze&&Ge&&be.setConstantPatternPositions(ze,Ge)}const Pe=g.translatePosMatrix(ge.projMatrix,de,p.paint.get("fill-translate"),p.paint.get("fill-translate-anchor"));if(P){pe=Ee.indexBuffer2,me=Ee.segments2;const Oe=g.terrain&&g.terrain.renderingToTexture?g.terrain.drapeBufferSize:[z.drawingBufferWidth,z.drawingBufferHeight];ye=le==="fillOutlinePattern"&&j?Wa(Pe,g,Z,de,Oe):Vn(Pe,Oe)}else pe=Ee.indexBuffer,me=Ee.segments,ye=j?ko(Pe,g,Z,de):wa(Pe);g.prepareDrawProgram(g.context,Ne,ge.toUnwrapped()),Ne.draw(g.context,re,S,g.stencilModeForClipping(ge),A,a.CullFaceMode.disabled,ye,p.id,Ee.layoutVertexBuffer,pe,me,p.paint,g.transform.zoom,be)}}function hn(g,c,p,x,S,A,P){const z=g.context,O=z.gl,j=g.transform,Z=p.paint.get("fill-extrusion-pattern"),re=Z.constantOr(1),le=p.getCrossfadeParameters(),ye=p.paint.get("fill-extrusion-opacity"),pe=[p.paint.get("fill-extrusion-ambient-occlusion-intensity"),p.paint.get("fill-extrusion-ambient-occlusion-radius")],me=p.layout.get("fill-extrusion-edge-radius"),ge=j.projection.name==="globe"?a.fillExtrusionHeightLift():0,de=j.projection.name==="globe",Ee=de?a.globeToMercatorTransition(j.zoom):0,be=[a.mercatorXfromLng(j.center.lng),a.mercatorYfromLat(j.center.lat)],Ne=[];de&&(Ne.push("PROJECTION_GLOBE_VIEW"),g.style.terrainSetForDrapingOnly()&&Ne.push("TERRAIN")),pe[0]>0&&Ne.push("FAUX_AO");for(const Fe of x){const Pe=c.getTile(Fe),Oe=Pe.getBucket(p);if(!Oe||Oe.projection.name!==j.projection.name)continue;const ze=Oe.programConfigurations.get(p.id),Ge=g.useProgram(re?"fillExtrusionPattern":"fillExtrusion",ze,Ne);if(g.terrain){const ct=g.terrain;if(g.style.terrainSetForDrapingOnly())ct.setupElevationDraw(Pe,Ge,{useMeterToDem:!0});else{if(!Oe.enableTerrain)continue;if(ct.setupElevationDraw(Pe,Ge,{useMeterToDem:!0}),Lo(z,c,Fe,Oe,p,ct),!Oe.centroidVertexBuffer){const $t=Ge.attributes.a_centroid_pos;$t!==void 0&&O.vertexAttrib2f($t,0,0)}}}re&&(g.context.activeTexture.set(O.TEXTURE0),Pe.imageAtlasTexture.bind(O.LINEAR,O.CLAMP_TO_EDGE),ze.updatePaintBuffers(le));const et=Z.constantOr(null);if(et&&Pe.imageAtlas){const ct=Pe.imageAtlas,$t=ct.patternPositions[et.to.toString()],Tt=ct.patternPositions[et.from.toString()];$t&&Tt&&ze.setConstantPatternPositions($t,Tt)}const zt=g.translatePosMatrix(Fe.projMatrix,Pe,p.paint.get("fill-extrusion-translate"),p.paint.get("fill-extrusion-translate-anchor")),Ye=j.projection.createInversionMatrix(j,Fe.canonical),bt=p.paint.get("fill-extrusion-vertical-gradient"),Mt=re?Ss(zt,g,bt,ye,pe,me,Fe,le,Pe,ge,Ee,be,Ye):Un(zt,g,bt,ye,pe,me,Fe,ge,Ee,be,Ye);g.prepareDrawProgram(z,Ge,Fe.toUnwrapped());const Wt=[];g.terrain&&Wt.push(Oe.centroidVertexBuffer),de&&Wt.push(Oe.layoutVertexExtBuffer),Ge.draw(z,z.gl.TRIANGLES,S,A,P,a.CullFaceMode.backCCW,Mt,p.id,Oe.layoutVertexBuffer,Oe.indexBuffer,Oe.segments,p.paint,g.transform.zoom,ze,Wt)}}function Lo(g,c,p,x,S,A){const P=[de=>{let Ee=de.canonical.x-1,be=de.wrap;return Ee<0&&(Ee=(1<{let Ee=de.canonical.x+1,be=de.wrap;return Ee===1<new a.OverscaledTileID(de.overscaledZ,de.wrap,de.canonical.z,de.canonical.x,(de.canonical.y===0?1<new a.OverscaledTileID(de.overscaledZ,de.wrap,de.canonical.z,de.canonical.x,de.canonical.y===(1<{const Ee=c.getSource().minzoom,be=Fe=>{const Pe=c.getTileByID(Fe);if(Pe&&Pe.hasData())return Pe.getBucket(S)},Ne=[0,-1,1];for(const Fe of Ne){if(de.overscaledZ+Fe(O[0]=Math.min(de.min.y,Ee.min.y),O[1]=Math.max(de.max.y,Ee.max.y),O[2]=a.EXTENT-Ee.min.x>de.max.x?Ee.min.x-a.EXTENT:de.max.x,O),Z=(de,Ee)=>(O[0]=Math.min(de.min.x,Ee.min.x),O[1]=Math.max(de.max.x,Ee.max.x),O[2]=a.EXTENT-Ee.min.y>de.max.y?Ee.min.y-a.EXTENT:de.max.y,O),re=[(de,Ee)=>j(de,Ee),(de,Ee)=>j(Ee,de),(de,Ee)=>Z(de,Ee),(de,Ee)=>Z(Ee,de)],le=new a.pointGeometry(0,0);let ye,pe,me;const ge=(de,Ee,be,Ne,Fe)=>{const Pe=[[Ne?be:de,Ne?de:be,0],[Ne?be:Ee,Ne?Ee:be,0]],Oe=Fe<0?a.EXTENT+Fe:Fe,ze=[Ne?Oe:(de+Ee)/2,Ne?(de+Ee)/2:Oe,0];return be===0&&Fe<0||be!==0&&Fe>0?A.getForTilePoints(me,[ze],!0,pe):Pe.push(ze),A.getForTilePoints(p,Pe,!0,ye),Math.max(Pe[0][2],Pe[1][2],ze[2])/A.exaggeration()};for(let de=0;de<4;de++){const Ee=(de<2?1:5)-de,be=x.borders[de];if(be.length===0)continue;const Ne=me=P[de](p),Fe=z(Ne);if(!(Fe&&Fe instanceof a.FillExtrusionBucket&&Fe.enableTerrain)||x.borderDoneWithNeighborZ[de]===Fe.canonical.z&&Fe.borderDoneWithNeighborZ[Ee]===x.canonical.z||(pe=A.findDEMTileFor(Ne),!pe||!pe.dem))continue;if(!ye){const Ge=A.findDEMTileFor(p);if(!Ge||!Ge.dem)return;ye=Ge}const Pe=Fe.borders[Ee];let Oe=0;const ze=Fe.borderDoneWithNeighborZ[Ee]!==x.canonical.z;if(x.canonical.z===Fe.canonical.z){for(let Ge=0;Gezt[0]+3));)ze&&Fe.encodeCentroid(void 0,Ye,!1),Oe++;if(Ye&&Oezt[1]-3)&&(Mt++,++Oe!==Pe.length);)Ye=Fe.featuresOnBorder[Pe[Oe]];if(Ye=Fe.featuresOnBorder[Pe[bt]],et.intersectsCount()>1||Ye.intersectsCount()>1||Mt!==1){Mt!==1&&(Oe=bt),x.encodeCentroid(void 0,et,!1),ze&&Fe.encodeCentroid(void 0,Ye,!1);continue}const Wt=re[de](et,Ye),ct=de%2?a.EXTENT-1:0;le.x=ge(Wt[0],Math.min(a.EXTENT-1,Wt[1]),ct,de<2,Wt[2]),le.y=0,x.encodeCentroid(le,et,!1),ze&&Fe.encodeCentroid(le,Ye,!1)}else x.encodeCentroid(void 0,et,!1)}x.borderDoneWithNeighborZ[de]=Fe.canonical.z,x.needsCentroidUpdate=!0,ze&&(Fe.borderDoneWithNeighborZ[Ee]=x.canonical.z,Fe.needsCentroidUpdate=!0)}else{for(const Ge of be)x.encodeCentroid(void 0,x.featuresOnBorder[Ge],!1);if(ze){for(const Ge of Pe)Fe.encodeCentroid(void 0,Fe.featuresOnBorder[Ge],!1);Fe.borderDoneWithNeighborZ[Ee]=x.canonical.z,Fe.needsCentroidUpdate=!0}x.borderDoneWithNeighborZ[de]=Fe.canonical.z,x.needsCentroidUpdate=!0}}(x.needsCentroidUpdate||!x.centroidVertexBuffer&&x.centroidVertexArray.length!==0)&&x.uploadCentroid(g)}const Bn=new a.Color(1,0,0,1),wn=new a.Color(0,1,0,1),Ln=new a.Color(0,0,1,1),ea=new a.Color(1,0,1,1),ta=new a.Color(0,1,1,1);function sr(g,c,p){const x=g.context,S=g.transform,A=x.gl,P=S.projection.name==="globe",z=P?["PROJECTION_GLOBE_VIEW"]:null;let O=p.projMatrix;if(P&&a.globeToMercatorTransition(S.zoom)>0){const et=a.transitionTileAABBinECEF(p.canonical,S),zt=a.globeDenormalizeECEF(et);O=a.multiply(new Float32Array(16),S.globeMatrix,zt),a.multiply(O,S.projMatrix,O)}const j=g.useProgram("debug",null,z),Z=c.getTileByID(p.key);g.terrain&&g.terrain.setupElevationDraw(Z,j);const re=a.DepthMode.disabled,le=a.StencilMode.disabled,ye=g.colorModeForRenderPass(),pe="$debug";x.activeTexture.set(A.TEXTURE0),g.emptyTexture.bind(A.LINEAR,A.CLAMP_TO_EDGE),P?Z._makeGlobeTileDebugBuffers(g.context,S):Z._makeDebugTileBoundsBuffers(g.context,S.projection);const me=Z._tileDebugBuffer||g.debugBuffer,ge=Z._tileDebugIndexBuffer||g.debugIndexBuffer,de=Z._tileDebugSegments||g.debugSegments;j.draw(x,A.LINE_STRIP,re,le,ye,a.CullFaceMode.disabled,nl(O,a.Color.red),pe,me,ge,de,null,null,null,[Z._globeTileDebugBorderBuffer]);const Ee=Z.latestRawTileData,be=Math.floor((Ee&&Ee.byteLength||0)/1024),Ne=c.getTile(p).tileSize,Fe=512/Math.min(Ne,512)*(p.overscaledZ/S.zoom)*.5;let Pe=p.canonical.toString();p.overscaledZ!==p.canonical.z&&(Pe+=` => ${p.overscaledZ}`),Pe+=` ${be}kb`,function(et,zt){et.initDebugOverlayCanvas();const Ye=et.debugOverlayCanvas,bt=et.context.gl,Mt=et.debugOverlayCanvas.getContext("2d");Mt.clearRect(0,0,Ye.width,Ye.height),Mt.shadowColor="white",Mt.shadowBlur=2,Mt.lineWidth=1.5,Mt.strokeStyle="white",Mt.textBaseline="top",Mt.font="bold 36px Open Sans, sans-serif",Mt.fillText(zt,5,5),Mt.strokeText(zt,5,5),et.debugOverlayTexture.update(Ye),et.debugOverlayTexture.bind(bt.LINEAR,bt.CLAMP_TO_EDGE)}(g,Pe);const Oe=Z._tileDebugTextBuffer||g.debugBuffer,ze=Z._tileDebugTextIndexBuffer||g.quadTriangleIndexBuffer,Ge=Z._tileDebugTextSegments||g.debugSegments;j.draw(x,A.TRIANGLES,re,le,a.ColorMode.alphaBlended,a.CullFaceMode.disabled,nl(O,a.Color.transparent,Fe),pe,Oe,ze,Ge,null,null,null,[Z._globeTileDebugTextBuffer])}function jn(g,c,p,x){vo(g,0,c+p/2,g.transform.width,p,x)}function Cs(g,c,p,x){vo(g,c-p/2,0,p,g.transform.height,x)}function vo(g,c,p,x,S,A){const P=g.context,z=P.gl;z.enable(z.SCISSOR_TEST),z.scissor(c*a.exported.devicePixelRatio,p*a.exported.devicePixelRatio,x*a.exported.devicePixelRatio,S*a.exported.devicePixelRatio),P.clear({color:A}),z.disable(z.SCISSOR_TEST)}const Ro=a.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:Ja}=Ro;function Hn(g,c,p,x){g.emplaceBack(c,p,x)}class es{constructor(c){this.vertexArray=new a.StructArrayLayout3f12,this.indices=new a.StructArrayLayout3ui6,Hn(this.vertexArray,-1,-1,1),Hn(this.vertexArray,1,-1,1),Hn(this.vertexArray,-1,1,1),Hn(this.vertexArray,1,1,1),Hn(this.vertexArray,-1,-1,-1),Hn(this.vertexArray,1,-1,-1),Hn(this.vertexArray,-1,1,-1),Hn(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=c.createVertexBuffer(this.vertexArray,Ja),this.indexBuffer=c.createIndexBuffer(this.indices),this.segment=a.SegmentVector.simpleSegment(0,0,36,12)}}function po(g,c,p,x,S,A){const P=g.gl,z=c.paint.get("sky-atmosphere-color"),O=c.paint.get("sky-atmosphere-halo-color"),j=c.paint.get("sky-atmosphere-sun-intensity"),Z=((re,le,ye,pe,me)=>({u_matrix_3f:re,u_sun_direction:le,u_sun_intensity:ye,u_color_tint_r:[pe.r,pe.g,pe.b,pe.a],u_color_tint_m:[me.r,me.g,me.b,me.a],u_luminance:5e-5}))(a.fromMat4(a.create$1(),x),S,j,z,O);P.framebufferTexture2D(P.FRAMEBUFFER,P.COLOR_ATTACHMENT0,P.TEXTURE_CUBE_MAP_POSITIVE_X+A,c.skyboxTexture,0),p.draw(g,P.TRIANGLES,a.DepthMode.disabled,a.StencilMode.disabled,a.ColorMode.unblended,a.CullFaceMode.frontCW,Z,"skyboxCapture",c.skyboxGeometry.vertexBuffer,c.skyboxGeometry.indexBuffer,c.skyboxGeometry.segment)}const ia=a.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class al{constructor(c){const p=new a.StructArrayLayout5f20;p.emplaceBack(-1,1,1,0,0),p.emplaceBack(1,1,1,1,0),p.emplaceBack(1,-1,1,1,1),p.emplaceBack(-1,-1,1,0,1);const x=new a.StructArrayLayout3ui6;x.emplaceBack(0,1,2),x.emplaceBack(2,3,0),this.vertexBuffer=c.createVertexBuffer(p,ia.members),this.indexBuffer=c.createIndexBuffer(x),this.segments=a.SegmentVector.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}}const ts={symbol:function(g,c,p,x,S){if(g.renderPass!=="translucent")return;const A=a.StencilMode.disabled,P=g.colorModeForRenderPass();p.layout.get("text-variable-anchor")&&function(z,O,j,Z,re,le,ye){const pe=O.transform,me=re==="map",ge=le==="map";for(const de of z){const Ee=Z.getTile(de),be=Ee.getBucket(j);if(!be||!be.text||!be.text.segments.get().length)continue;const Ne=a.evaluateSizeForZoom(be.textSizeData,pe.zoom),Fe=Ke(de,be.getProjection(),pe),Pe=pe.calculatePixelsToTileUnitsMatrix(Ee),Oe=qi(Fe,Ee.tileID.canonical,ge,me,pe,be.getProjection(),Pe),ze=j.layout.get("icon-text-fit")!=="none"&&be.hasIconData();if(Ne){const Ge=Math.pow(2,pe.zoom-Ee.tileID.overscaledZ);As(be,me,ge,ye,a.symbolSize,pe,Oe,de,Ge,Ne,ze)}}}(x,g,p,c,p.layout.get("text-rotation-alignment"),p.layout.get("text-pitch-alignment"),S),p.paint.get("icon-opacity").constantOr(1)!==0&&xr(g,c,p,x,!1,p.paint.get("icon-translate"),p.paint.get("icon-translate-anchor"),p.layout.get("icon-rotation-alignment"),p.layout.get("icon-pitch-alignment"),p.layout.get("icon-keep-upright"),A,P),p.paint.get("text-opacity").constantOr(1)!==0&&xr(g,c,p,x,!0,p.paint.get("text-translate"),p.paint.get("text-translate-anchor"),p.layout.get("text-rotation-alignment"),p.layout.get("text-pitch-alignment"),p.layout.get("text-keep-upright"),A,P),c.map.showCollisionBoxes&&(Do(g,c,p,x,p.paint.get("text-translate"),p.paint.get("text-translate-anchor"),!0),Do(g,c,p,x,p.paint.get("icon-translate"),p.paint.get("icon-translate-anchor"),!1))},circle:function(g,c,p,x){if(g.renderPass!=="translucent")return;const S=p.paint.get("circle-opacity"),A=p.paint.get("circle-stroke-width"),P=p.paint.get("circle-stroke-opacity"),z=p.layout.get("circle-sort-key").constantOr(1)!==void 0;if(S.constantOr(1)===0&&(A.constantOr(1)===0||P.constantOr(1)===0))return;const O=g.context,j=O.gl,Z=g.transform,re=g.depthModeForSublayer(0,a.DepthMode.ReadOnly),le=a.StencilMode.disabled,ye=g.colorModeForRenderPass(),pe=Z.projection.name==="globe",me=[a.mercatorXfromLng(Z.center.lng),a.mercatorYfromLat(Z.center.lat)],ge=[];for(let Ee=0;EeEe.sortKey-be.sortKey);const de={useDepthForOcclusion:!pe};for(const Ee of ge){const{programConfiguration:be,program:Ne,layoutVertexBuffer:Fe,globeExtVertexBuffer:Pe,indexBuffer:Oe,uniformValues:ze,tile:Ge}=Ee.state,et=Ee.segments;g.terrain&&g.terrain.setupElevationDraw(Ge,Ne,de),g.prepareDrawProgram(O,Ne,Ge.tileID.toUnwrapped()),Ne.draw(O,j.TRIANGLES,re,le,ye,a.CullFaceMode.disabled,ze,p.id,Fe,Oe,et,p.paint,Z.zoom,be,[Pe])}},heatmap:function(g,c,p,x){if(p.paint.get("heatmap-opacity")!==0)if(g.renderPass==="offscreen"){const S=g.context,A=S.gl,P=a.StencilMode.disabled,z=new a.ColorMode([A.ONE,A.ONE],a.Color.transparent,[!0,!0,!0,!0]);(function(ye,pe,me,ge){const de=ye.gl,Ee=pe.width*ge,be=pe.height*ge;ye.activeTexture.set(de.TEXTURE1),ye.viewport.set([0,0,Ee,be]);let Ne=me.heatmapFbo;if(!Ne||Ne&&(Ne.width!==Ee||Ne.height!==be)){Ne&&Ne.destroy();const Fe=de.createTexture();de.bindTexture(de.TEXTURE_2D,Fe),de.texParameteri(de.TEXTURE_2D,de.TEXTURE_WRAP_S,de.CLAMP_TO_EDGE),de.texParameteri(de.TEXTURE_2D,de.TEXTURE_WRAP_T,de.CLAMP_TO_EDGE),de.texParameteri(de.TEXTURE_2D,de.TEXTURE_MIN_FILTER,de.LINEAR),de.texParameteri(de.TEXTURE_2D,de.TEXTURE_MAG_FILTER,de.LINEAR),Ne=me.heatmapFbo=ye.createFramebuffer(Ee,be,!1),function(Pe,Oe,ze,Ge,et,zt){const Ye=Pe.gl;Ye.texImage2D(Ye.TEXTURE_2D,0,Ye.RGBA,et,zt,0,Ye.RGBA,Pe.extRenderToTextureHalfFloat?Pe.extTextureHalfFloat.HALF_FLOAT_OES:Ye.UNSIGNED_BYTE,null),Ge.colorAttachment.set(ze)}(ye,0,Fe,Ne,Ee,be)}else de.bindTexture(de.TEXTURE_2D,Ne.colorAttachment.get()),ye.bindFramebuffer.set(Ne.framebuffer)})(S,g,p,g.transform.projection.name==="globe"?.5:.25),S.clear({color:a.Color.transparent});const O=g.transform,j=O.projection.name==="globe",Z=j?["PROJECTION_GLOBE_VIEW"]:null,re=j?a.CullFaceMode.frontCCW:a.CullFaceMode.disabled,le=[a.mercatorXfromLng(O.center.lng),a.mercatorYfromLat(O.center.lat)];for(let ye=0;ye({u_image:0,u_color_ramp:1,u_opacity:re.paint.get("heatmap-opacity")}))(0,A),A.id,S.viewportBuffer,S.quadTriangleIndexBuffer,S.viewportSegments,A.paint,S.transform.zoom)}(g,p))},line:function(g,c,p,x){if(g.renderPass!=="translucent")return;const S=p.paint.get("line-opacity"),A=p.paint.get("line-width");if(S.constantOr(1)===0||A.constantOr(1)===0)return;const P=g.depthModeForSublayer(0,a.DepthMode.ReadOnly),z=g.colorModeForRenderPass(),O=g.terrain&&g.terrain.renderingToTexture?1:a.exported.devicePixelRatio,j=p.paint.get("line-dasharray"),Z=j.constantOr(1),re=p.layout.get("line-cap"),le=p.paint.get("line-pattern"),ye=le.constantOr(1),pe=p.paint.get("line-gradient"),me=p.getCrossfadeParameters(),ge=ye?"linePattern":"line",de=g.context,Ee=de.gl,be=(Fe=>{const Pe=[];Br(Fe)&&Pe.push("RENDER_LINE_DASH"),Fe.paint.get("line-gradient")&&Pe.push("RENDER_LINE_GRADIENT");const Oe=Fe.paint.get("line-trim-offset");Oe[0]===0&&Oe[1]===0||Pe.push("RENDER_LINE_TRIM_OFFSET");const ze=Fe.paint.get("line-pattern").constantOr(1),Ge=Fe.paint.get("line-opacity").constantOr(1)!==1;return!ze&&Ge&&Pe.push("RENDER_LINE_ALPHA_DISCARD"),Pe})(p);let Ne=be.includes("RENDER_LINE_ALPHA_DISCARD");g.terrain&&g.terrain.clipOrMaskOverlapStencilType()&&(Ne=!1);for(const Fe of x){const Pe=c.getTile(Fe);if(ye&&!Pe.patternsLoaded())continue;const Oe=Pe.getBucket(p);if(!Oe)continue;g.prepareDrawTile();const ze=Oe.programConfigurations.get(p.id),Ge=g.useProgram(ge,ze,be),et=le.constantOr(null);if(et&&Pe.imageAtlas){const Tt=Pe.imageAtlas,ti=Tt.patternPositions[et.to.toString()],Kt=Tt.patternPositions[et.from.toString()];ti&&Kt&&ze.setConstantPatternPositions(ti,Kt)}const zt=j.constantOr(null),Ye=re.constantOr(null);if(!ye&&zt&&Ye&&Pe.lineAtlas){const Tt=Pe.lineAtlas,ti=Tt.getDash(zt.to,Ye),Kt=Tt.getDash(zt.from,Ye);ti&&Kt&&ze.setConstantPatternPositions(ti,Kt)}let[bt,Mt]=p.paint.get("line-trim-offset");(Ye==="round"||Ye==="square")&&bt!==Mt&&(bt===0&&(bt-=1),Mt===1&&(Mt+=1));const Wt=g.terrain?Fe.projMatrix:null,ct=ye?Fi(g,Pe,p,me,Wt,O):oi(g,Pe,p,me,Wt,Oe.lineClipsArray.length,O,[bt,Mt]);if(pe){const Tt=Oe.gradients[p.id];let ti=Tt.texture;if(p.gradientVersion!==Tt.version){let Kt=256;if(p.stepInterpolant){const bi=c.getSource().maxzoom,Di=Fe.canonical.z===bi?Math.ceil(1<{Ge.draw(de,Ee.TRIANGLES,P,Tt,z,a.CullFaceMode.disabled,ct,p.id,Oe.layoutVertexBuffer,Oe.indexBuffer,Oe.segments,p.paint,g.transform.zoom,ze,[Oe.layoutVertexBuffer2])};if(Ne){const Tt=g.stencilModeForClipping(Fe).ref;Tt===0&&g.terrain&&de.clear({stencil:0});const ti={func:Ee.EQUAL,mask:255};ct.u_alpha_discard_threshold=.8,$t(new a.StencilMode(ti,Tt,255,Ee.KEEP,Ee.KEEP,Ee.INVERT)),ct.u_alpha_discard_threshold=0,$t(new a.StencilMode(ti,Tt,255,Ee.KEEP,Ee.KEEP,Ee.KEEP))}else $t(g.stencilModeForClipping(Fe))}Ne&&(g.resetStencilClippingMasks(),g.terrain&&de.clear({stencil:0}))},fill:function(g,c,p,x){const S=p.paint.get("fill-color"),A=p.paint.get("fill-opacity");if(A.constantOr(1)===0)return;const P=g.colorModeForRenderPass(),z=p.paint.get("fill-pattern"),O=g.opaquePassEnabledForLayer()&&!z.constantOr(1)&&S.constantOr(a.Color.transparent).a===1&&A.constantOr(0)===1?"opaque":"translucent";if(g.renderPass===O){const j=g.depthModeForSublayer(1,g.renderPass==="opaque"?a.DepthMode.ReadWrite:a.DepthMode.ReadOnly);Bo(g,c,p,x,j,P,!1)}if(g.renderPass==="translucent"&&p.paint.get("fill-antialias")){const j=g.depthModeForSublayer(p.getPaintProperty("fill-outline-color")?2:0,a.DepthMode.ReadOnly);Bo(g,c,p,x,j,P,!0)}},"fill-extrusion":function(g,c,p,x){const S=p.paint.get("fill-extrusion-opacity");if(S!==0&&g.renderPass==="translucent"){const A=new a.DepthMode(g.context.gl.LEQUAL,a.DepthMode.ReadWrite,g.depthRangeFor3D);if(S!==1||p.paint.get("fill-extrusion-pattern").constantOr(1))hn(g,c,p,x,A,a.StencilMode.disabled,a.ColorMode.disabled),hn(g,c,p,x,A,g.stencilModeFor3D(),g.colorModeForRenderPass()),g.resetStencilClippingMasks();else{const P=g.colorModeForRenderPass();hn(g,c,p,x,A,a.StencilMode.disabled,P)}}},hillshade:function(g,c,p,x){if(g.renderPass!=="offscreen"&&g.renderPass!=="translucent")return;const S=g.context,A=g.depthModeForSublayer(0,a.DepthMode.ReadOnly),P=g.colorModeForRenderPass(),z=g.terrain&&g.terrain.renderingToTexture,[O,j]=g.renderPass!=="translucent"||z?[{},x]:g.stencilConfigForOverlap(x);for(const Z of j){const re=c.getTile(Z);if(re.needsHillshadePrepare&&g.renderPass==="offscreen")On(g,re,p,A,a.StencilMode.disabled,P);else if(g.renderPass==="translucent"){const le=z&&g.terrain?g.terrain.stencilModeForRTTOverlap(Z):O[Z.overscaledZ];uo(g,Z,re,p,A,le,P)}}S.viewport.set([0,0,g.width,g.height]),g.resetStencilClippingMasks()},raster:function(g,c,p,x,S,A){if(g.renderPass!=="translucent"||p.paint.get("raster-opacity")===0||!x.length)return;const P=g.context,z=P.gl,O=c.getSource(),j=g.useProgram("raster"),Z=g.colorModeForRenderPass(),re=g.terrain&&g.terrain.renderingToTexture,[le,ye]=O instanceof je||re?[{},x]:g.stencilConfigForOverlap(x),pe=ye[ye.length-1].overscaledZ,me=!g.options.moving;for(const ge of ye){const de=re?a.DepthMode.disabled:g.depthModeForSublayer(ge.overscaledZ-pe,p.paint.get("raster-opacity")===1?a.DepthMode.ReadWrite:a.DepthMode.ReadOnly,z.LESS),Ee=ge.toUnwrapped(),be=c.getTile(ge);if(re&&(!be||!be.hasData()))continue;const Ne=re?ge.projMatrix:g.transform.calculateProjMatrix(Ee,me),Fe=g.terrain&&re?g.terrain.stencilModeForRTTOverlap(ge):le[ge.overscaledZ],Pe=A?0:p.paint.get("raster-fade-duration");be.registerFadeDuration(Pe);const Oe=c.findLoadedParent(ge,0),ze=Za(be,Oe,c,g.transform,Pe);let Ge,et;g.terrain&&g.terrain.prepareDrawTile();const zt=p.paint.get("raster-resampling")==="nearest"?z.NEAREST:z.LINEAR;P.activeTexture.set(z.TEXTURE0),be.texture.bind(zt,z.CLAMP_TO_EDGE),P.activeTexture.set(z.TEXTURE1),Oe?(Oe.texture.bind(zt,z.CLAMP_TO_EDGE),Ge=Math.pow(2,Oe.tileID.overscaledZ-be.tileID.overscaledZ),et=[be.tileID.canonical.x*Ge%1,be.tileID.canonical.y*Ge%1]):be.texture.bind(zt,z.CLAMP_TO_EDGE);const Ye=Qr(Ne,et||[0,0],Ge||1,ze,p,O instanceof je?O.perspectiveTransform:[0,0]);if(g.prepareDrawProgram(P,j,Ee),O instanceof je)O.boundsBuffer&&O.boundsSegments&&j.draw(P,z.TRIANGLES,de,a.StencilMode.disabled,Z,a.CullFaceMode.disabled,Ye,p.id,O.boundsBuffer,g.quadTriangleIndexBuffer,O.boundsSegments);else{const{tileBoundsBuffer:bt,tileBoundsIndexBuffer:Mt,tileBoundsSegments:Wt}=g.getTileBoundsBuffers(be);j.draw(P,z.TRIANGLES,de,Fe,Z,a.CullFaceMode.disabled,Ye,p.id,bt,Mt,Wt)}}g.resetStencilClippingMasks()},background:function(g,c,p,x){const S=p.paint.get("background-color"),A=p.paint.get("background-opacity");if(A===0)return;const P=g.context,z=P.gl,O=g.transform,j=O.tileSize,Z=p.paint.get("background-pattern");if(g.isPatternMissing(Z))return;const re=!Z&&S.a===1&&A===1&&g.opaquePassEnabledForLayer()?"opaque":"translucent";if(g.renderPass!==re)return;const le=a.StencilMode.disabled,ye=g.depthModeForSublayer(0,re==="opaque"?a.DepthMode.ReadWrite:a.DepthMode.ReadOnly),pe=g.colorModeForRenderPass(),me=g.useProgram(Z?"backgroundPattern":"background");let ge,de=x;de||(ge=g.getBackgroundTiles(),de=Object.values(ge).map(be=>be.tileID)),Z&&(P.activeTexture.set(z.TEXTURE0),g.imageManager.bind(g.context));const Ee=p.getCrossfadeParameters();for(const be of de){const Ne=be.toUnwrapped(),Fe=x?be.projMatrix:g.transform.calculateProjMatrix(Ne);g.prepareDrawTile();const Pe=c?c.getTile(be):ge?ge[be.key]:new a.Tile(be,j,O.zoom,g),Oe=Z?fo(Fe,A,g,Z,{tileID:be,tileSize:j},Ee):fn(Fe,A,S);g.prepareDrawProgram(P,me,Ne);const{tileBoundsBuffer:ze,tileBoundsIndexBuffer:Ge,tileBoundsSegments:et}=g.getTileBoundsBuffers(Pe);me.draw(P,z.TRIANGLES,ye,le,pe,a.CullFaceMode.disabled,Oe,p.id,ze,Ge,et)}},sky:function(g,c,p){const x=g.transform,S=x.projection.name==="mercator"||x.projection.name==="globe"?1:a.smoothstep(7,8,x.zoom),A=p.paint.get("sky-opacity")*S;if(A===0)return;const P=g.context,z=p.paint.get("sky-type"),O=new a.DepthMode(P.gl.LEQUAL,a.DepthMode.ReadOnly,[0,1]),j=g.frameCounter/1e3%1;z==="atmosphere"?g.renderPass==="offscreen"?p.needsSkyboxCapture(g)&&(function(Z,re,le,ye){const pe=Z.context,me=pe.gl;let ge=re.skyboxFbo;if(!ge){ge=re.skyboxFbo=pe.createFramebuffer(32,32,!1),re.skyboxGeometry=new es(pe),re.skyboxTexture=pe.gl.createTexture(),me.bindTexture(me.TEXTURE_CUBE_MAP,re.skyboxTexture),me.texParameteri(me.TEXTURE_CUBE_MAP,me.TEXTURE_WRAP_S,me.CLAMP_TO_EDGE),me.texParameteri(me.TEXTURE_CUBE_MAP,me.TEXTURE_WRAP_T,me.CLAMP_TO_EDGE),me.texParameteri(me.TEXTURE_CUBE_MAP,me.TEXTURE_MIN_FILTER,me.LINEAR),me.texParameteri(me.TEXTURE_CUBE_MAP,me.TEXTURE_MAG_FILTER,me.LINEAR);for(let Ne=0;Ne<6;++Ne)me.texImage2D(me.TEXTURE_CUBE_MAP_POSITIVE_X+Ne,0,me.RGBA,32,32,0,me.RGBA,me.UNSIGNED_BYTE,null)}pe.bindFramebuffer.set(ge.framebuffer),pe.viewport.set([0,0,32,32]);const de=re.getCenter(Z,!0),Ee=Z.useProgram("skyboxCapture"),be=new Float64Array(16);a.identity(be),a.rotateY(be,be,.5*-Math.PI),po(pe,re,Ee,be,de,0),a.identity(be),a.rotateY(be,be,.5*Math.PI),po(pe,re,Ee,be,de,1),a.identity(be),a.rotateX(be,be,.5*-Math.PI),po(pe,re,Ee,be,de,2),a.identity(be),a.rotateX(be,be,.5*Math.PI),po(pe,re,Ee,be,de,3),a.identity(be),po(pe,re,Ee,be,de,4),a.identity(be),a.rotateY(be,be,Math.PI),po(pe,re,Ee,be,de,5),pe.viewport.set([0,0,Z.width,Z.height])}(g,p),p.markSkyboxValid(g)):g.renderPass==="sky"&&function(Z,re,le,ye,pe){const me=Z.context,ge=me.gl,de=Z.transform,Ee=Z.useProgram("skybox");me.activeTexture.set(ge.TEXTURE0),ge.bindTexture(ge.TEXTURE_CUBE_MAP,re.skyboxTexture);const be=((Ne,Fe,Pe,Oe,ze)=>({u_matrix:Ne,u_sun_direction:Fe,u_cubemap:0,u_opacity:Oe,u_temporal_offset:ze}))(de.skyboxMatrix,re.getCenter(Z,!1),0,ye,pe);Z.prepareDrawProgram(me,Ee),Ee.draw(me,ge.TRIANGLES,le,a.StencilMode.disabled,Z.colorModeForRenderPass(),a.CullFaceMode.backCW,be,"skybox",re.skyboxGeometry.vertexBuffer,re.skyboxGeometry.indexBuffer,re.skyboxGeometry.segment)}(g,p,O,A,j):z==="gradient"&&g.renderPass==="sky"&&function(Z,re,le,ye,pe){const me=Z.context,ge=me.gl,de=Z.transform,Ee=Z.useProgram("skyboxGradient");re.skyboxGeometry||(re.skyboxGeometry=new es(me)),me.activeTexture.set(ge.TEXTURE0);let be=re.colorRampTexture;be||(be=re.colorRampTexture=new a.Texture(me,re.colorRamp,ge.RGBA)),be.bind(ge.LINEAR,ge.CLAMP_TO_EDGE);const Ne=((Fe,Pe,Oe,ze,Ge)=>({u_matrix:Fe,u_color_ramp:0,u_center_direction:Pe,u_radius:a.degToRad(Oe),u_opacity:ze,u_temporal_offset:Ge}))(de.skyboxMatrix,re.getCenter(Z,!1),re.paint.get("sky-gradient-radius"),ye,pe);Z.prepareDrawProgram(me,Ee),Ee.draw(me,ge.TRIANGLES,le,a.StencilMode.disabled,Z.colorModeForRenderPass(),a.CullFaceMode.backCW,Ne,"skyboxGradient",re.skyboxGeometry.vertexBuffer,re.skyboxGeometry.indexBuffer,re.skyboxGeometry.segment)}(g,p,O,A,j)},debug:function(g,c,p){for(let x=0;xS)return void(this.transform.fogCullDistSq=null);const A=x+.78*(S-x);this.transform.fogCullDistSq=A*A}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(c,p){if(this.width=c*a.exported.devicePixelRatio,this.height=p*a.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const x of this.style.order)this.style._layers[x].resize()}setup(){const c=this.context,p=new a.StructArrayLayout2i4;p.emplaceBack(0,0),p.emplaceBack(a.EXTENT,0),p.emplaceBack(0,a.EXTENT),p.emplaceBack(a.EXTENT,a.EXTENT),this.tileExtentBuffer=c.createVertexBuffer(p,a.posAttributes.members),this.tileExtentSegments=a.SegmentVector.simpleSegment(0,0,4,2);const x=new a.StructArrayLayout2i4;x.emplaceBack(0,0),x.emplaceBack(a.EXTENT,0),x.emplaceBack(0,a.EXTENT),x.emplaceBack(a.EXTENT,a.EXTENT),this.debugBuffer=c.createVertexBuffer(x,a.posAttributes.members),this.debugSegments=a.SegmentVector.simpleSegment(0,0,4,5);const S=new a.StructArrayLayout2i4;S.emplaceBack(-1,-1),S.emplaceBack(1,-1),S.emplaceBack(-1,1),S.emplaceBack(1,1),this.viewportBuffer=c.createVertexBuffer(S,a.posAttributes.members),this.viewportSegments=a.SegmentVector.simpleSegment(0,0,4,2);const A=new a.StructArrayLayout4i8;A.emplaceBack(0,0,0,0),A.emplaceBack(a.EXTENT,0,a.EXTENT,0),A.emplaceBack(0,a.EXTENT,0,a.EXTENT),A.emplaceBack(a.EXTENT,a.EXTENT,a.EXTENT,a.EXTENT),this.mercatorBoundsBuffer=c.createVertexBuffer(A,a.boundsAttributes.members),this.mercatorBoundsSegments=a.SegmentVector.simpleSegment(0,0,4,2);const P=new a.StructArrayLayout3ui6;P.emplaceBack(0,1,2),P.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=c.createIndexBuffer(P);const z=new a.StructArrayLayout1ui2;for(const j of[0,1,3,2,0])z.emplaceBack(j);this.debugIndexBuffer=c.createIndexBuffer(z),this.emptyTexture=new a.Texture(c,new a.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),c.gl.RGBA),this.identityMat=a.create();const O=this.context.gl;this.stencilClearMode=new a.StencilMode({func:O.ALWAYS,mask:0},0,255,O.ZERO,O.ZERO,O.ZERO),this.loadTimeStamps.push(a.window.performance.now()),this.atmosphereBuffer=new al(this.context)}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(c){return c._makeTileBoundsBuffers(this.context,this.transform.projection),c._tileBoundsBuffer?{tileBoundsBuffer:c._tileBoundsBuffer,tileBoundsIndexBuffer:c._tileBoundsIndexBuffer,tileBoundsSegments:c._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const c=this.context,p=c.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(c,p.TRIANGLES,a.DepthMode.disabled,this.stencilClearMode,a.ColorMode.disabled,a.CullFaceMode.disabled,Es(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(c,p,x){if(!p||this.currentStencilSource===p.id||!c.isTileClipped()||!x||x.length===0)return;if(this._tileClippingMaskIDs&&!this.terrain){let z=!1;for(const O of x)if(this._tileClippingMaskIDs[O.key]===void 0){z=!0;break}if(!z)return}this.currentStencilSource=p.id;const S=this.context,A=S.gl;this.nextStencilID+x.length>256&&this.clearStencil(),S.setColorMode(a.ColorMode.disabled),S.setDepthMode(a.DepthMode.disabled);const P=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const z of x){const O=p.getTile(z),j=this._tileClippingMaskIDs[z.key]=this.nextStencilID++,{tileBoundsBuffer:Z,tileBoundsIndexBuffer:re,tileBoundsSegments:le}=this.getTileBoundsBuffers(O);P.draw(S,A.TRIANGLES,a.DepthMode.disabled,new a.StencilMode({func:A.ALWAYS,mask:0},j,255,A.KEEP,A.KEEP,A.REPLACE),a.ColorMode.disabled,a.CullFaceMode.disabled,Es(z.projMatrix),"$clipping",Z,re,le)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const c=this.nextStencilID++,p=this.context.gl;return new a.StencilMode({func:p.NOTEQUAL,mask:255},c,255,p.KEEP,p.KEEP,p.REPLACE)}stencilModeForClipping(c){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(c);const p=this.context.gl;return new a.StencilMode({func:p.EQUAL,mask:255},this._tileClippingMaskIDs[c.key],0,p.KEEP,p.KEEP,p.REPLACE)}stencilConfigForOverlap(c){const p=this.context.gl,x=c.sort((P,z)=>z.overscaledZ-P.overscaledZ),S=x[x.length-1].overscaledZ,A=x[0].overscaledZ-S+1;if(A>1){this.currentStencilSource=void 0,this.nextStencilID+A>256&&this.clearStencil();const P={};for(let z=0;z=0;this.currentLayer--){const O=this.style._layers[x[this.currentLayer]],j=c._getLayerSourceCache(O);if(O.isSky())continue;const Z=j?P[j.id]:void 0;this._renderTileClippingMasks(O,j,Z),this.renderLayer(this,j,O,Z)}if(this.style.fog&&this.transform.projection.supportsFog&&function(O,j){const Z=O.context,re=Z.gl,le=O.transform,ye=new a.DepthMode(re.LEQUAL,a.DepthMode.ReadOnly,[0,1]),pe=O.useProgram("globeAtmosphere",null,le.projection.name==="globe"?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),me=a.globeToMercatorTransition(le.zoom),ge=j.properties.get("color").toArray01(),de=j.properties.get("high-color").toArray01(),Ee=j.properties.get("space-color").toArray01PremultipliedAlpha(),be=a.identity$1([]);a.rotateY$1(be,be,-a.degToRad(le._center.lng)),a.rotateX$1(be,be,a.degToRad(le._center.lat)),a.rotateZ$1(be,be,le.angle),a.rotateX$1(be,be,-le._pitch);const Ne=a.fromQuat(new Float32Array(16),be),Fe=a.mapValue(j.properties.get("star-intensity"),0,1,0,.25),Pe=5e-4,Oe=a.mapValue(j.properties.get("horizon-blend"),0,1,Pe,.25),ze=a.globeUseCustomAntiAliasing(O,Z,le)&&Oe===Pe?le.worldSize/(2*Math.PI*1.025)-1:le.globeRadius,Ge=O.frameCounter/1e3%1,et=a.length(le.globeCenterInViewSpace),zt=Math.sqrt(Math.pow(et,2)-Math.pow(ze,2)),Ye=Math.acos(zt/et),bt=((Wt,ct,$t,Tt,ti,Kt,bi,Di,$i,nr,wi,Xi,hr,Lr)=>({u_frustum_tl:Wt,u_frustum_tr:ct,u_frustum_br:$t,u_frustum_bl:Tt,u_horizon:ti,u_transition:Kt,u_fadeout_range:bi,u_color:Di,u_high_color:$i,u_space_color:nr,u_star_intensity:wi,u_star_size:5*a.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:Xi,u_horizon_angle:hr,u_rotation_matrix:Lr}))(le.frustumCorners.TL,le.frustumCorners.TR,le.frustumCorners.BR,le.frustumCorners.BL,le.frustumCorners.horizon,me,Oe,ge,de,Ee,Fe,Ge,Ye,Ne);O.prepareDrawProgram(Z,pe);const Mt=O.atmosphereBuffer;Mt&&pe.draw(Z,re.TRIANGLES,ye,a.StencilMode.disabled,a.ColorMode.alphaBlended,a.CullFaceMode.backCW,bt,"skybox",Mt.vertexBuffer,Mt.indexBuffer,Mt.segments)}(this,this.style.fog),this.renderPass="sky",(a.globeToMercatorTransition(this.transform.zoom)>0||this.transform.projection.name!=="globe")&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const Z=c._getLayerSourceCache(j);Z&&!j.isHidden(this.transform.zoom)&&(!O||O.getSource().maxzoom0?p.pop():null}isPatternMissing(c){if(!c)return!1;if(!c.from||!c.to)return!0;const p=this.imageManager.getPattern(c.from.toString()),x=this.imageManager.getPattern(c.to.toString());return!p||!x}currentGlobalDefines(){const c=this.terrain&&this.terrain.renderingToTexture,p=this.style&&this.style.fog,x=[];return this.terrain&&!this.terrain.renderingToTexture&&x.push("TERRAIN"),p&&!c&&p.getOpacity(this.transform.pitch)!==0&&x.push("FOG"),c&&x.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&x.push("OVERDRAW_INSPECTOR"),x}useProgram(c,p,x){this.cache=this.cache||{};const S=x||[],A=this.currentGlobalDefines().concat(S),P=Ts.cacheKey(qa[c],c,A,p);return this.cache[P]||(this.cache[P]=new Ts(this.context,c,qa[c],p,Qo[c],A)),this.cache[P]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const c=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(c.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=a.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new a.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}prepareDrawProgram(c,p,x){if(this.terrain&&this.terrain.renderingToTexture)return;const S=this.style.fog;if(S){const A=S.getOpacity(this.transform.pitch),P=((z,O,j,Z,re,le,ye,pe,me,ge,de)=>{const Ee=z.transform,be=O.properties.get("color").toArray01();be[3]=Z;const Ne=z.frameCounter/1e3%1;return{u_fog_matrix:j?Ee.calculateFogTileMatrix(j):z.identityMat,u_fog_range:O.getFovAdjustedRange(Ee._fov),u_fog_color:be,u_fog_horizon_blend:O.properties.get("horizon-blend"),u_fog_temporal_offset:Ne,u_frustum_tl:re,u_frustum_tr:le,u_frustum_br:ye,u_frustum_bl:pe,u_globe_pos:me,u_globe_radius:ge,u_viewport:de,u_globe_transition:a.globeToMercatorTransition(Ee.zoom),u_is_globe:+(Ee.projection.name==="globe")}})(this,S,x,A,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*a.exported.devicePixelRatio,this.transform.height*a.exported.devicePixelRatio]);p.setFogUniformValues(c,P)}}setTileLoadedFlag(c){this.tileLoaded=c}saveCanvasCopy(){this.frameCopies.push(this.canvasCopy()),this.tileLoaded=!1}canvasCopy(){const c=this.context.gl,p=c.createTexture();return c.bindTexture(c.TEXTURE_2D,p),c.copyTexImage2D(c.TEXTURE_2D,0,c.RGBA,0,0,c.drawingBufferWidth,c.drawingBufferHeight,0),p}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const c=this.style&&this.style.fog;return!!c&&c.getOpacity(this.transform.pitch)!==0}getBackgroundTiles(){const c=this._backgroundTiles,p=this._backgroundTiles={},x=this.transform.coveringTiles({tileSize:512});for(const S of x)p[S.key]=c[S.key]||new a.Tile(S,512,this.transform.tileZoom,this);return p}clearBackgroundTiles(){this._backgroundTiles={}}}class Is{constructor(c=0,p=0,x=0,S=0){if(isNaN(c)||c<0||isNaN(p)||p<0||isNaN(x)||x<0||isNaN(S)||S<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=c,this.bottom=p,this.left=x,this.right=S}interpolate(c,p,x){return p.top!=null&&c.top!=null&&(this.top=a.number(c.top,p.top,x)),p.bottom!=null&&c.bottom!=null&&(this.bottom=a.number(c.bottom,p.bottom,x)),p.left!=null&&c.left!=null&&(this.left=a.number(c.left,p.left,x)),p.right!=null&&c.right!=null&&(this.right=a.number(c.right,p.right,x)),this}getCenter(c,p){const x=a.clamp((this.left+c-this.right)/2,0,c),S=a.clamp((this.top+p-this.bottom)/2,0,p);return new a.pointGeometry(x,S)}equals(c){return this.top===c.top&&this.bottom===c.bottom&&this.left===c.left&&this.right===c.right}clone(){return new Is(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Ol(g,c){const p=a.getColumn(g,3);a.fromQuat(g,c),a.setColumn(g,3,p)}function is(g,c){const p=a.identity$1([]);return a.rotateZ$1(p,p,-c),a.rotateX$1(p,p,-g),p}function rs(g,c){const p=[g[0],g[1],0],x=[c[0],c[1],0];if(a.length(p)>=1e-15){const P=a.normalize([],p);a.scale$2(x,P,a.dot(x,P)),c[0]=x[0],c[1]=x[1]}const S=a.cross([],c,g);if(a.len(S)<1e-15)return null;const A=Math.atan2(-S[1],S[0]);return is(Math.atan2(Math.sqrt(g[0]*g[0]+g[1]*g[1]),-g[2]),A)}class si{constructor(c,p){this.position=c,this.orientation=p}get position(){return this._position}set position(c){if(c){const p=c instanceof a.MercatorCoordinate?c:new a.MercatorCoordinate(c[0],c[1],c[2]);this._renderWorldCopies&&(p.x=a.wrap(p.x,0,1)),this._position=p}else this._position=null}lookAtPoint(c,p){if(this.orientation=null,!this.position)return;const x=this._elevation?this._elevation.getAtPointOrZero(a.MercatorCoordinate.fromLngLat(c)):0,S=this.position,A=a.MercatorCoordinate.fromLngLat(c,x),P=[A.x-S.x,A.y-S.y,A.z-S.z];p||(p=[0,0,1]),p[2]=Math.abs(p[2]),this.orientation=rs(P,p)}setPitchBearing(c,p){this.orientation=is(a.degToRad(c),a.degToRad(-p))}}class Wn{constructor(c,p){this._transform=a.identity([]),this.orientation=p,this.position=c}get mercatorPosition(){const c=this.position;return new a.MercatorCoordinate(c[0],c[1],c[2])}get position(){const c=a.getColumn(this._transform,3);return[c[0],c[1],c[2]]}set position(c){var p;c&&a.setColumn(this._transform,3,[(p=c)[0],p[1],p[2],1])}get orientation(){return this._orientation}set orientation(c){this._orientation=c||a.identity$1([]),c&&Ol(this._transform,this._orientation)}getPitchBearing(){const c=this.forward(),p=this.right();return{bearing:Math.atan2(-p[1],p[0]),pitch:Math.atan2(Math.sqrt(c[0]*c[0]+c[1]*c[1]),-c[2])}}setPitchBearing(c,p){this._orientation=is(c,p),Ol(this._transform,this._orientation)}forward(){const c=a.getColumn(this._transform,2);return[-c[0],-c[1],-c[2]]}up(){const c=a.getColumn(this._transform,1);return[-c[0],-c[1],-c[2]]}right(){const c=a.getColumn(this._transform,0);return[c[0],c[1],c[2]]}getCameraToWorld(c,p){const x=new Float64Array(16);return a.invert(x,this.getWorldToCamera(c,p)),x}getWorldToCameraPosition(c,p,x){const S=this.position;a.scale$2(S,S,-c);const A=new Float64Array(16);return a.fromScaling(A,[x,x,x]),a.translate(A,A,S),A[10]*=p,A}getWorldToCamera(c,p){const x=new Float64Array(16),S=new Float64Array(4),A=this.position;return a.conjugate(S,this._orientation),a.scale$2(A,A,-c),a.fromQuat(x,S),a.translate(x,x,A),x[1]*=-1,x[5]*=-1,x[9]*=-1,x[13]*=-1,x[8]*=p,x[9]*=p,x[10]*=p,x[11]*=p,x}getCameraToClipPerspective(c,p,x,S){const A=new Float64Array(16);return a.perspective(A,c,p,x,S),A}getDistanceToElevation(c){const p=c===0?0:a.mercatorZfromAltitude(c,this.position[1]),x=this.forward();return(p-this.position[2])/x[2]}clone(){return new Wn([...this.position],[...this.orientation])}}function Nl(g,c){const p=ks(g.projection,g.zoom,g.width,g.height),x=function(A,P,z,O,j){const Z=new a.LngLat(z.lng-180*mo,z.lat),re=new a.LngLat(z.lng+180*mo,z.lat),le=A.project(Z.lng,Z.lat),ye=A.project(re.lng,re.lat),pe=-Math.atan2(ye.y-le.y,ye.x-le.x),me=a.MercatorCoordinate.fromLngLat(z);me.y=a.clamp(me.y,-.999975,.999975);const ge=me.toLngLat(),de=A.project(ge.lng,ge.lat),Ee=a.MercatorCoordinate.fromLngLat(ge);Ee.x+=mo;const be=Ee.toLngLat(),Ne=A.project(be.lng,be.lat),Fe=Ps(Ne.x-de.x,Ne.y-de.y,pe),Pe=a.MercatorCoordinate.fromLngLat(ge);Pe.y+=mo;const Oe=Pe.toLngLat(),ze=A.project(Oe.lng,Oe.lat),Ge=Ps(ze.x-de.x,ze.y-de.y,pe),et=Math.abs(Fe.x)/Math.abs(Ge.y),zt=a.identity([]);a.rotateZ(zt,zt,-pe*(1-(j?0:O)));const Ye=a.identity([]);return a.scale(Ye,Ye,[1,1-(1-et)*O,1]),Ye[4]=-Ge.x/Ge.y*O,a.rotateZ(Ye,Ye,pe),a.multiply(Ye,zt,Ye),Ye}(g.projection,0,g.center,p,c),S=Ul(g);return a.scale(x,x,[S,S,1]),x}function Ul(g){const c=g.projection,p=ks(g.projection,g.zoom,g.width,g.height),x=Vl(c,g.center),S=Vl(c,a.LngLat.convert(c.center));return Math.pow(2,x*p+(1-p)*S)}function ks(g,c,p,x,S=1/0){const A=g.range;if(!A)return 0;const P=Math.min(S,Math.max(p,x)),z=Math.log(P/1024)/Math.LN2;return a.smoothstep(A[0]+z,A[1]+z,c)}const mo=1/4e4;function Vl(g,c){const p=a.clamp(c.lat,-a.MAX_MERCATOR_LATITUDE,a.MAX_MERCATOR_LATITUDE),x=new a.LngLat(c.lng-180*mo,p),S=new a.LngLat(c.lng+180*mo,p),A=g.project(x.lng,p),P=g.project(S.lng,p),z=a.MercatorCoordinate.fromLngLat(x),O=a.MercatorCoordinate.fromLngLat(S),j=P.x-A.x,Z=P.y-A.y,re=O.x-z.x,le=O.y-z.y,ye=Math.sqrt((re*re+le*le)/(j*j+Z*Z));return Math.log(ye)/Math.LN2}function Ps(g,c,p){const x=Math.cos(p),S=Math.sin(p);return{x:g*x-c*S,y:g*S+c*x}}class Ds{constructor(c,p,x,S,A,P,z){this.tileSize=512,this._renderWorldCopies=A===void 0||A,this._minZoom=c||0,this._maxZoom=p||22,this._minPitch=x??0,this._maxPitch=S??60,this.setProjection(P),this.setMaxBounds(z),this.width=0,this.height=0,this._center=new a.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new Is,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Wn,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1}clone(){const c=new Ds(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return c._elevation=this._elevation,c._centerAltitude=this._centerAltitude,c._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,c.tileSize=this.tileSize,c.width=this.width,c.height=this.height,c.cameraElevationReference=this.cameraElevationReference,c._center=this._center,c._setZoom(this.zoom),c._seaLevelZoom=this._seaLevelZoom,c.angle=this.angle,c._fov=this._fov,c._pitch=this._pitch,c._nearZ=this._nearZ,c._farZ=this._farZ,c._averageElevation=this._averageElevation,c._unmodified=this._unmodified,c._edgeInsets=this._edgeInsets.clone(),c._camera=this._camera.clone(),c._calcMatrices(),c.freezeTileCoverage=this.freezeTileCoverage,c.frustumCorners=this.frustumCorners,c}get elevation(){return this._elevation}set elevation(c){this._elevation!==c&&(this._elevation=c,this._updateCameraOnTerrain(),this._calcMatrices())}updateElevation(c){const p=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(this._seaLevelZoom==null||p)&&this._updateCameraOnTerrain(),(c||p)&&this._constrainCameraAltitude(),this._calcMatrices()}getProjection(){return a.pick(this.projection,["name","center","parallels"])}setProjection(c){this.projectionOptions=c||{name:"mercator"};const p=this.projection?this.getProjection():void 0;this.projection=a.getProjection(this.projectionOptions);const x=!w(p,this.getProjection());return x&&this._calcMatrices(),this.mercatorFromTransition=!1,x}setMercatorFromTransition(){const c=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=a.getProjection({name:"mercator"});const p=c!==this.projection.name;return p&&this._calcMatrices(),p}get minZoom(){return this._minZoom}set minZoom(c){this._minZoom!==c&&(this._minZoom=c,this.zoom=Math.max(this.zoom,c))}get maxZoom(){return this._maxZoom}set maxZoom(c){this._maxZoom!==c&&(this._maxZoom=c,this.zoom=Math.min(this.zoom,c))}get minPitch(){return this._minPitch}set minPitch(c){this._minPitch!==c&&(this._minPitch=c,this.pitch=Math.max(this.pitch,c))}get maxPitch(){return this._maxPitch}set maxPitch(c){this._maxPitch!==c&&(this._maxPitch=c,this.pitch=Math.min(this.pitch,c))}get renderWorldCopies(){return this._renderWorldCopies&&this.projection.supportsWorldCopies===!0}set renderWorldCopies(c){c===void 0?c=!0:c===null&&(c=!1),this._renderWorldCopies=c}get worldSize(){return this.tileSize*this.scale}get cameraWorldSize(){const c=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(c))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return a.mercatorZfromAltitude(this.center.lat,this.cameraWorldSize)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new a.pointGeometry(this.width,this.height)}get bearing(){return a.wrap(this.rotation,-180,180)}set bearing(c){this.rotation=c}get rotation(){return-this.angle/Math.PI*180}set rotation(c){const p=-c*Math.PI/180;var x;this.angle!==p&&(this._unmodified=!1,this.angle=p,this._calcMatrices(),this.rotationMatrix=(x=new a.ARRAY_TYPE(4),a.ARRAY_TYPE!=Float32Array&&(x[1]=0,x[2]=0),x[0]=1,x[3]=1,x),function(S,A,P){var z=A[0],O=A[1],j=A[2],Z=A[3],re=Math.sin(P),le=Math.cos(P);S[0]=z*le+j*re,S[1]=O*le+Z*re,S[2]=z*-re+j*le,S[3]=O*-re+Z*le}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(c){const p=a.clamp(c,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==p&&(this._unmodified=!1,this._pitch=p,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(c){c=Math.max(.01,Math.min(60,c)),this._fov!==c&&(this._unmodified=!1,this._fov=c/180*Math.PI,this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(c){this._averageElevation=c,this._calcFogMatrices(),this._distanceTileDataCache={}}get zoom(){return this._zoom}set zoom(c){const p=Math.min(Math.max(c,this.minZoom),this.maxZoom);this._zoom!==p&&(this._unmodified=!1,this._setZoom(p),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices())}_setZoom(c){this._zoom=c,this.scale=this.zoomScale(c),this.tileZoom=Math.floor(c),this.zoomFraction=c-this.tileZoom}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const c=this._elevation;this._centerAltitude=c.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=c.exaggeration(),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){this._centerAltitudeValidForExaggeration!==void 0&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize))}sampleAverageElevation(){if(!this._elevation)return 0;const c=this._elevation,p=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],x=this.horizonLineFromTop();let S=0,A=0;for(let P=0;Pc.maxzoom&&(p=c.maxzoom);const P=this.locationCoordinate(this.center),z=this.center.lat,O=1<{const Tt=new a.MercatorCoordinate(ct.x+25e-6,ct.y,ct.z),ti=new a.MercatorCoordinate(ct.x,ct.y+25e-6,ct.z),Kt=ct.toLngLat(),bi=Tt.toLngLat(),Di=ti.toLngLat(),$i=this.locationCoordinate(Kt),nr=this.locationCoordinate(bi),wi=this.locationCoordinate(Di),Xi=Math.hypot(nr.x-$i.x,nr.y-$i.y),hr=Math.hypot(wi.x-$i.x,wi.y-$i.y);return Math.sqrt(Xi*hr)*Fe/25e-6},Oe=ct=>{const $t=be,Tt=Ne;return{aabb:a.tileAABB(this,O,0,0,0,ct,Tt,$t,this.projection),zoom:0,x:0,y:0,minZ:Tt,maxZ:$t,wrap:ct,fullyVisible:!1}},ze=[];let Ge=[];const et=p,zt=c.reparseOverscaled?x:p,Ye=ct=>ct*ct,bt=Ye((me-this._centerAltitude)*pe),Mt=ct=>{if(!this._elevation||!ct.tileID||!A)return;const $t=this._elevation.getMinMaxForTile(ct.tileID),Tt=ct.aabb;$t?(Tt.min[2]=$t.min,Tt.max[2]=$t.max,Tt.center[2]=(Tt.min[2]+Tt.max[2])/2):(ct.shouldSplit=Wt(ct),ct.shouldSplit||(Tt.min[2]=Tt.max[2]=Tt.center[2]=this._centerAltitude))},Wt=ct=>{if(ct.zoom=.9)return!0}else if(S&&(ti=Ye(ct.aabb.distanceZ(ge)*pe)),this.projection.isReprojectedInTileSpace&&x<=5){const Di=Math.pow(2,ct.zoom),$i=Pe(new a.MercatorCoordinate((ct.x+.5)/Di,(ct.y+.5)/Di));Kt=$i>.85?1:$i}const bi=$t*$t+Tt*Tt+ti;return bi{if($i*Ye(.707)0;){const ct=ze.pop(),$t=ct.x,Tt=ct.y;let ti=ct.fullyVisible;if(!ti){const Kt=ct.aabb.intersects(le);if(Kt===0)continue;ti=Kt===2}if(ct.zoom!==et&&Wt(ct))for(let Kt=0;Kt<4;Kt++){const bi=($t<<1)+Kt%2,Di=(Tt<<1)+(Kt>>1),$i={aabb:A?ct.aabb.quadrant(Kt):a.tileAABB(this,O,ct.zoom+1,bi,Di,ct.wrap,ct.minZ,ct.maxZ,this.projection),zoom:ct.zoom+1,x:bi,y:Di,wrap:ct.wrap,fullyVisible:ti,tileID:void 0,shouldSplit:void 0,minZ:ct.minZ,maxZ:ct.maxZ};S&&!Z&&($i.tileID=new a.OverscaledTileID(ct.zoom+1===et?zt:ct.zoom+1,ct.wrap,ct.zoom+1,bi,Di),Mt($i)),ze.push($i)}else{const Kt=ct.zoom===et?zt:ct.zoom;if(c.minzoom&&c.minzoom>Kt)continue;const bi=j[0]-(.5+$t+(ct.wrap<{const ti=[0,0,0,1],Kt=[a.EXTENT,a.EXTENT,0,1],bi=this.calculateFogTileMatrix(Tt.tileID.toUnwrapped());a.transformMat4$1(ti,ti,bi),a.transformMat4$1(Kt,Kt,bi);const Di=a.getAABBPointSquareDist(ti,Kt);if(Di===0)return!0;let $i=!1;const nr=this._elevation;if(nr&&Di>ct&&$t!==0){const wi=this.calculateProjMatrix(Tt.tileID.toUnwrapped());let Xi;c.isTerrainDEM||(Xi=nr.getMinMaxForTile(Tt.tileID)),Xi||(Xi={min:Ne,max:be});const hr=a.furthestTileCorner(this.rotation),Lr=[hr[0]*a.EXTENT,hr[1]*a.EXTENT,Xi.max];a.transformMat4(Lr,Lr,wi),$i=(1-Lr[1])*this.height*.5<$t}return Dict.distanceSq-$t.distanceSq).map(ct=>ct.tileID)}resize(c,p){this.width=c,this.height=p,this.pixelsToGLUnits=[2/c,-2/p],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(c){return Math.pow(2,c)}scaleZoom(c){return Math.log(c)/Math.LN2}project(c){const p=a.clamp(c.lat,-a.MAX_MERCATOR_LATITUDE,a.MAX_MERCATOR_LATITUDE),x=this.projection.project(c.lng,p);return new a.pointGeometry(x.x*this.worldSize,x.y*this.worldSize)}unproject(c){return this.projection.unproject(c.x/this.worldSize,c.y/this.worldSize)}get point(){return this.project(this.center)}setLocationAtPoint(c,p){let x,S;const A=this.centerPoint;if(this.projection.name==="globe"){const z=this.worldSize;x=(p.x-A.x)/z,S=(p.y-A.y)/z}else{const z=this.pointCoordinate(p),O=this.pointCoordinate(A);x=z.x-O.x,S=z.y-O.y}const P=this.locationCoordinate(c);this.setLocation(new a.MercatorCoordinate(P.x-x,P.y-S))}setLocation(c){this.center=this.coordinateLocation(c),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(c){return this.projection.locationPoint(this,c)}locationPoint3D(c){return this.projection.locationPoint(this,c,!0)}pointLocation(c){return this.coordinateLocation(this.pointCoordinate(c))}pointLocation3D(c){return this.coordinateLocation(this.pointCoordinate3D(c))}locationCoordinate(c,p){const x=p?a.mercatorZfromAltitude(p,c.lat):void 0,S=this.projection.project(c.lng,c.lat);return new a.MercatorCoordinate(S.x,S.y,x)}coordinateLocation(c){return this.projection.unproject(c.x,c.y)}pointRayIntersection(c,p){const x=p??this._centerAltitude,S=[c.x,c.y,0,1],A=[c.x,c.y,1,1];a.transformMat4$1(S,S,this.pixelMatrixInverse),a.transformMat4$1(A,A,this.pixelMatrixInverse);const P=A[3];a.scale$1(S,S,1/S[3]),a.scale$1(A,A,1/P);const z=S[2],O=A[2];return{p0:S,p1:A,t:z===O?0:(x-z)/(O-z)}}screenPointToMercatorRay(c){const p=[c.x,c.y,0,1],x=[c.x,c.y,1,1];return a.transformMat4$1(p,p,this.pixelMatrixInverse),a.transformMat4$1(x,x,this.pixelMatrixInverse),a.scale$1(p,p,1/p[3]),a.scale$1(x,x,1/x[3]),p[2]=a.mercatorZfromAltitude(p[2],this._center.lat)*this.worldSize,x[2]=a.mercatorZfromAltitude(x[2],this._center.lat)*this.worldSize,a.scale$1(p,p,1/this.worldSize),a.scale$1(x,x,1/this.worldSize),new a.Ray([p[0],p[1],p[2]],a.normalize([],a.sub([],x,p)))}rayIntersectionCoordinate(c){const{p0:p,p1:x,t:S}=c,A=a.mercatorZfromAltitude(p[2],this._center.lat),P=a.mercatorZfromAltitude(x[2],this._center.lat);return new a.MercatorCoordinate(a.number(p[0],x[0],S)/this.worldSize,a.number(p[1],x[1],S)/this.worldSize,a.number(A,P,S))}pointCoordinate(c,p=this._centerAltitude){return this.projection.pointCoordinate(this,c.x,c.y,p)}pointCoordinate3D(c){if(!this.elevation)return this.pointCoordinate(c);let p=this.projection.pointCoordinate3D(this,c.x,c.y);if(p)return new a.MercatorCoordinate(p[0],p[1],p[2]);let x=0,S=this.horizonLineFromTop();if(c.y>S)return this.pointCoordinate(c);const A=.02*S,P=c.clone();for(let z=0;z<10&&S-x>A;z++){P.y=a.number(x,S,.66);const O=this.projection.pointCoordinate3D(this,P.x,P.y);O?(S=P.y,p=O):x=P.y}return p?new a.MercatorCoordinate(p[0],p[1],p[2]):this.pointCoordinate(c)}isPointAboveHorizon(c){return this.projection.isPointAboveHorizon(this,c)}_coordinatePoint(c,p){const x=p&&this.elevation?this.elevation.getAtPointOrZero(c,this._centerAltitude):this._centerAltitude,S=[c.x*this.worldSize,c.y*this.worldSize,x+c.toAltitude(),1];return a.transformMat4$1(S,S,this.pixelMatrix),S[3]>0?new a.pointGeometry(S[0]/S[3],S[1]/S[3]):new a.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE)}_getBounds(c,p){const x=new a.pointGeometry(this._edgeInsets.left,this._edgeInsets.top),S=new a.pointGeometry(this.width-this._edgeInsets.right,this._edgeInsets.top),A=new a.pointGeometry(this.width-this._edgeInsets.right,this.height-this._edgeInsets.bottom),P=new a.pointGeometry(this._edgeInsets.left,this.height-this._edgeInsets.bottom);let z=this.pointCoordinate(x,c),O=this.pointCoordinate(S,c);const j=this.pointCoordinate(A,p),Z=this.pointCoordinate(P,p),re=(le,ye)=>(ye.y-le.y)/(ye.x-le.x);return z.y>1&&O.y>=0?z=new a.MercatorCoordinate((1-Z.y)/re(Z,z)+Z.x,1):z.y<0&&O.y<=1&&(z=new a.MercatorCoordinate(-Z.y/re(Z,z)+Z.x,0)),O.y>1&&z.y>=0?O=new a.MercatorCoordinate((1-j.y)/re(j,O)+j.x,1):O.y<0&&z.y<=1&&(O=new a.MercatorCoordinate(-j.y/re(j,O)+j.x,0)),new a.LngLatBounds().extend(this.coordinateLocation(z)).extend(this.coordinateLocation(O)).extend(this.coordinateLocation(Z)).extend(this.coordinateLocation(j))}_getBounds3D(){const c=this.elevation;if(!c.visibleDemTiles.length)return this._getBounds(0,0);const p=c.visibleDemTiles.reduce((x,S)=>{if(S.dem){const A=S.dem.tree;x.min=Math.min(x.min,A.minimums[0]),x.max=Math.max(x.max,A.maximums[0])}return x},{min:Number.MAX_VALUE,max:0});return this._getBounds(p.min*c.exaggeration(),p.max*c.exaggeration())}getBounds(){return this._terrainEnabled()?this._getBounds3D():this._getBounds(0,0)}horizonLineFromTop(c=!0){const p=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,x=this.height/2-p*(1-this._horizonShift);return c?Math.max(0,x):x}getMaxBounds(){return this.maxBounds}setMaxBounds(c){this.maxBounds=c,this.minLat=-a.MAX_MERCATOR_LATITUDE,this.maxLat=a.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,c&&(this.minLat=c.getSouth(),this.maxLat=c.getNorth(),this.minLng=c.getWest(),this.maxLng=c.getEast(),this.maxLngre&&(z=re-j),re-Zye&&(P=ye-O),ye-le.5?Ee-1:Ee,be>.5?be-1:be,0]),this.alignedProjMatrix=Ne,P=a.create(),a.scale(P,P,[this.width/2,-this.height/2,1]),a.translate(P,P,[1,-1,0]),this.labelPlaneMatrix=P,P=a.create(),a.scale(P,P,[1,-1,1]),a.translate(P,P,[-1,-1,0]),a.scale(P,P,[2/this.width,2/this.height,1]),this.glCoordMatrix=P,this.pixelMatrix=a.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},P=a.invert(new Float64Array(16),this.pixelMatrix),!P)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=P,this.projection.name==="globe"||this.mercatorFromTransition){this.globeMatrix=a.calculateGlobeMatrix(this);const Fe=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=a.transformMat4(Fe,Fe,S),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=P;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const c=this.cameraWorldSize,p=this.cameraPixelsPerMeter,x=this._camera.position,S=1/this.height/this._pixelsPerMercatorPixel,A=[c,c,p];a.scale$2(A,A,S),a.scale$2(x,x,-1),a.multiply$2(x,x,A);const P=a.create();a.translate(P,P,x),a.scale(P,P,A),this.mercatorFogMatrix=P,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(c,p,S)}_computeCameraPosition(c){const p=(c=c||this.pixelsPerMeter)/this.pixelsPerMeter,x=this._camera.forward(),S=this.point,A=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*p-c/this.worldSize*this._centerAltitude;return[S.x/this.worldSize-x[0]*A,S.y/this.worldSize-x[1]*A,c/this.worldSize*this._centerAltitude-x[2]*A]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(c){const p=this._maxCameraBoundsDistance()*Math.cos(this._pitch),x=c[2];let S=1;x>0&&(S=Math.min((p-this._camera.position[2])/x,1)),this._camera.position=a.scaleAndAdd([],this._camera.position,c,S),this._updateStateFromCamera(),this.projection.wrap&&(this.center=this.center.wrap())}_updateStateFromCamera(){const c=this._camera.position,p=this._camera.forward(),{pitch:x,bearing:S}=this._camera.getPitchBearing(),A=a.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,P=this._mercatorZfromZoom(this._maxZoom)*Math.cos(a.degToRad(this._maxPitch)),z=Math.max((c[2]-A)/Math.cos(x),P),O=this._zoomFromMercatorZ(z);a.scaleAndAdd(c,c,p,z),this._pitch=a.clamp(x,a.degToRad(this.minPitch),a.degToRad(this.maxPitch)),this.angle=a.wrap(S,-Math.PI,Math.PI),this._setZoom(a.clamp(O,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new a.MercatorCoordinate(c[0],c[1],c[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(c){return Math.pow(2,c)*this.tileSize}_mercatorZfromZoom(c){return this.cameraToCenterDistance/this._worldSizeFromZoom(c)}_minimumHeightOverTerrain(){const c=Math.min((this._seaLevelZoom!=null?this._seaLevelZoom:this._zoom)+2,this._maxZoom);return this._mercatorZfromZoom(c)}_zoomFromMercatorZ(c){return this.scaleZoom(this.cameraToCenterDistance/(c*this.tileSize))}_terrainEnabled(){return!(!this._elevation||!this.projection.supportsTerrain&&(a.warnOnce("Terrain is not yet supported with alternate projections. Use mercator or globe to enable terrain."),1))}anyCornerOffEdge(c,p){const x=Math.min(c.x,p.x),S=Math.max(c.x,p.x),A=Math.min(c.y,p.y),P=Math.max(c.y,p.y);if(Aj||le.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+a.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new a.pointGeometry(0,0),new a.pointGeometry(this.width,this.height))}zoomDeltaToMovement(c,p){const x=a.length(a.sub([],this._camera.position,c)),S=this._zoomFromMercatorZ(x)+p;return x-this._mercatorZfromZoom(S)}getCameraPoint(){if(this.projection.name==="globe"){const c=function(p,x){const S=[p[0],p[1],p[2],1];a.transformMat4$1(S,S,x);const A=Math.max(S[3],1e-6);return[S[0]/A,S[1]/A,S[2]/A,A]}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new a.pointGeometry(c[0],c[1])}{const c=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new a.pointGeometry(0,c))}}getCameraToCenterDistance(c){const p=ks(c,this.zoom,this.width,this.height,1024),x=c.pixelSpaceConversion(this.center.lat,this.worldSize,p);return .5/Math.tan(.5*this._fov)*this.height*x}}function Bs(g,c){let p=!1,x=null;const S=()=>{x=null,p&&(g(),x=setTimeout(S,c),p=!1)};return()=>(p=!0,x||S(),x)}class Dc{constructor(c){this._hashName=c&&encodeURIComponent(c),a.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=Bs(this._updateHashUnthrottled.bind(this),300)}addTo(c){return this._map=c,a.window.addEventListener("hashchange",this._onHashChange,!1),c.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),a.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const c=this._map;if(!c)return"";const p=$l(c);if(this._hashName){const x=this._hashName;let S=!1;const A=a.window.location.hash.slice(1).split("&").map(P=>{const z=P.split("=")[0];return z===x?(S=!0,`${z}=${p}`):P}).filter(P=>P);return S||A.push(`${x}=${p}`),`#${A.join("&")}`}return`#${p}`}_getCurrentHash(){const c=a.window.location.hash.replace("#","");if(this._hashName){let p;return c.split("&").map(x=>x.split("=")).forEach(x=>{x[0]===this._hashName&&(p=x)}),(p&&p[1]||"").split("/")}return c.split("/")}_onHashChange(){const c=this._map;if(!c)return!1;const p=this._getCurrentHash();if(p.length>=3&&!p.some(x=>isNaN(x))){const x=c.dragRotate.isEnabled()&&c.touchZoomRotate.isEnabled()?+(p[3]||0):c.getBearing();return c.jumpTo({center:[+p[2],+p[1]],zoom:+p[0],bearing:x,pitch:+(p[4]||0)}),!0}return!1}_updateHashUnthrottled(){const c=a.window.location.href.replace(/(#.+)?$/,this.getHashString());a.window.history.replaceState(a.window.history.state,null,c)}}function $l(g,c){const p=g.getCenter(),x=Math.round(100*g.getZoom())/100,S=Math.ceil((x*Math.LN2+Math.log(512/360/.5))/Math.LN10),A=Math.pow(10,S),P=Math.round(p.lng*A)/A,z=Math.round(p.lat*A)/A,O=g.getBearing(),j=g.getPitch();let Z=c?`/${P}/${z}/${x}`:`${x}/${z}/${P}`;return(O||j)&&(Z+="/"+Math.round(10*O)/10),j&&(Z+=`/${Math.round(j)}`),Z}const zo={linearity:.3,easing:a.bezier(0,0,.3,1)},$u=a.extend({deceleration:2500,maxSpeed:1400},zo),ju=a.extend({deceleration:20,maxSpeed:1400},zo),Bc=a.extend({deceleration:1e3,maxSpeed:360},zo),sl=a.extend({deceleration:1e3,maxSpeed:90},zo);class jl{constructor(c){this._map=c,this.clear()}clear(){this._inertiaBuffer=[]}record(c){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:a.exported.now(),settings:c})}_drainInertiaBuffer(){const c=this._inertiaBuffer,p=a.exported.now();for(;c.length>0&&p-c[0].time>160;)c.shift()}_onMoveEnd(c){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const p={zoom:0,bearing:0,pitch:0,pan:new a.pointGeometry(0,0),pinchAround:void 0,around:void 0};for(const{settings:A}of this._inertiaBuffer)p.zoom+=A.zoomDelta||0,p.bearing+=A.bearingDelta||0,p.pitch+=A.pitchDelta||0,A.panDelta&&p.pan._add(A.panDelta),A.around&&(p.around=A.around),A.pinchAround&&(p.pinchAround=A.pinchAround);const x=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,S={};if(p.pan.mag()){const A=Rs(p.pan.mag(),x,a.extend({},$u,c||{}));S.offset=p.pan.mult(A.amount/p.pan.mag()),S.center=this._map.transform.center,Ls(S,A)}if(p.zoom){const A=Rs(p.zoom,x,ju);S.zoom=this._map.transform.zoom+A.amount,Ls(S,A)}if(p.bearing){const A=Rs(p.bearing,x,Bc);S.bearing=this._map.transform.bearing+a.clamp(A.amount,-179,179),Ls(S,A)}if(p.pitch){const A=Rs(p.pitch,x,sl);S.pitch=this._map.transform.pitch+A.amount,Ls(S,A)}if(S.zoom||S.bearing){const A=p.pinchAround===void 0?p.around:p.pinchAround;S.around=A?this._map.unproject(A):this._map.getCenter()}return this.clear(),S.noMoveStart=!0,S}}function Ls(g,c){(!g.duration||g.durationp.unproject(O)),z=A.reduce((O,j,Z,re)=>O.add(j.div(re.length)),new a.pointGeometry(0,0));super(c,{points:A,point:z,lngLats:P,lngLat:p.unproject(z),originalEvent:x}),this._defaultPrevented=!1}}class Lc extends a.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(c,p,x){super(c,{originalEvent:x}),this._defaultPrevented=!1}}class Rc{constructor(c,p){this._map=c,this._clickTolerance=p.clickTolerance}reset(){this._mousedownPos=void 0}wheel(c){return this._firePreventable(new Lc(c.type,this._map,c))}mousedown(c,p){return this._mousedownPos=p,this._firePreventable(new En(c.type,this._map,c))}mouseup(c){this._map.fire(new En(c.type,this._map,c))}preclick(c){const p=a.extend({},c);p.type="preclick",this._map.fire(new En(p.type,this._map,p))}click(c,p){this._mousedownPos&&this._mousedownPos.dist(p)>=this._clickTolerance||(this.preclick(c),this._map.fire(new En(c.type,this._map,c)))}dblclick(c){return this._firePreventable(new En(c.type,this._map,c))}mouseover(c){this._map.fire(new En(c.type,this._map,c))}mouseout(c){this._map.fire(new En(c.type,this._map,c))}touchstart(c){return this._firePreventable(new ns(c.type,this._map,c))}touchmove(c){this._map.fire(new ns(c.type,this._map,c))}touchend(c){this._map.fire(new ns(c.type,this._map,c))}touchcancel(c){this._map.fire(new ns(c.type,this._map,c))}_firePreventable(c){if(this._map.fire(c),c.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class zc{constructor(c){this._map=c}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(c){this._map.fire(new En(c.type,this._map,c))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new En("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(c){this._delayContextMenu?this._contextMenuEvent=c:this._map.fire(new En(c.type,this._map,c)),this._map.listens("contextmenu")&&c.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Fc{constructor(c,p){this._map=c,this._el=c.getCanvasContainer(),this._container=c.getContainer(),this._clickTolerance=p.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(c,p){this.isEnabled()&&c.shiftKey&&c.button===0&&(X(),this._startPos=this._lastPos=p,this._active=!0)}mousemoveWindow(c,p){if(!this._active)return;const x=p;if(this._lastPos.equals(x)||!this._box&&x.dist(this._startPos){this._box&&(this._box.style.transform=`translate(${A}px,${z}px)`,this._box.style.width=P-A+"px",this._box.style.height=O-z+"px")})}mouseupWindow(c,p){if(!this._active||c.button!==0)return;const x=this._startPos,S=p;if(this.reset(),K(),x.x!==S.x||x.y!==S.y)return this._map.fire(new a.Event("boxzoomend",{originalEvent:c})),{cameraAnimation:A=>A.fitScreenCoordinates(x,S,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",c)}keydown(c){this._active&&c.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",c))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),oe(),delete this._startPos,delete this._lastPos}_fireEvent(c,p){return this._map.fire(new a.Event(c,{originalEvent:p}))}}function ll(g,c){const p={};for(let x=0;xthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===0&&(this.startTime=c.timeStamp),x.length===this.numTouches&&(this.centroid=function(S){const A=new a.pointGeometry(0,0);for(const P of S)A._add(P);return A.div(S.length)}(p),this.touches=ll(x,p)))}touchmove(c,p,x){if(this.aborted||!this.centroid)return;const S=ll(x,p);for(const A in this.touches){const P=this.touches[A],z=S[A];(!z||z.dist(P)>30)&&(this.aborted=!0)}}touchend(c,p,x){if((!this.centroid||c.timeStamp-this.startTime>500)&&(this.aborted=!0),x.length===0){const S=!this.aborted&&this.centroid;if(this.reset(),S)return S}}}class cl{constructor(c){this.singleTap=new os(c),this.numTaps=c.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(c,p,x){this.singleTap.touchstart(c,p,x)}touchmove(c,p,x){this.singleTap.touchmove(c,p,x)}touchend(c,p,x){const S=this.singleTap.touchend(c,p,x);if(S){const A=c.timeStamp-this.lastTime<500,P=!this.lastTap||this.lastTap.dist(S)<30;if(A&&P||this.reset(),this.count++,this.lastTime=c.timeStamp,this.lastTap=S,this.count===this.numTaps)return this.reset(),S}}}class Oc{constructor(){this._zoomIn=new cl({numTouches:1,numTaps:2}),this._zoomOut=new cl({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(c,p,x){this._zoomIn.touchstart(c,p,x),this._zoomOut.touchstart(c,p,x)}touchmove(c,p,x){this._zoomIn.touchmove(c,p,x),this._zoomOut.touchmove(c,p,x)}touchend(c,p,x){const S=this._zoomIn.touchend(c,p,x),A=this._zoomOut.touchend(c,p,x);return S?(this._active=!0,c.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:P=>P.easeTo({duration:300,zoom:P.getZoom()+1,around:P.unproject(S)},{originalEvent:c})}):A?(this._active=!0,c.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:P=>P.easeTo({duration:300,zoom:P.getZoom()-1,around:P.unproject(A)},{originalEvent:c})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const Nc={0:1,2:2};class ul{constructor(c){this.reset(),this._clickTolerance=c.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(c,p){return!1}_move(c,p){return{}}mousedown(c,p){if(this._lastPoint)return;const x=ve(c);this._correctButton(c,x)&&(this._lastPoint=p,this._eventButton=x)}mousemoveWindow(c,p){const x=this._lastPoint;if(x){if(c.preventDefault(),this._eventButton!=null&&function(S,A){const P=Nc[A];return S.buttons===void 0||(S.buttons&P)!==P}(c,this._eventButton))this.reset();else if(this._moved||!(p.dist(x)0&&(this._active=!0);const S=ll(x,p),A=new a.pointGeometry(0,0),P=new a.pointGeometry(0,0);let z=0;for(const j in S){const Z=S[j],re=this._touches[j];re&&(A._add(Z),P._add(Z.sub(re)),z++,S[j]=Z)}if(this._touches=S,z{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null")},500)}}class hl{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(c){}_move(c,p,x){return{}}touchstart(c,p,x){this._firstTwoTouches||x.length<2||(this._firstTwoTouches=[x[0].identifier,x[1].identifier],this._start([p[0],p[1]]))}touchmove(c,p,x){const S=this._firstTwoTouches;if(!S)return;c.preventDefault();const[A,P]=S,z=dl(x,p,A),O=dl(x,p,P);if(!z||!O)return;const j=this._aroundCenter?null:z.add(O).div(2);return this._move([z,O],j,c)}touchend(c,p,x){if(!this._firstTwoTouches)return;const[S,A]=this._firstTwoTouches,P=dl(x,p,S),z=dl(x,p,A);P&&z||(this._active&&K(),this.reset())}touchcancel(){this.reset()}enable(c){this._enabled=!0,this._aroundCenter=!!c&&c.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function dl(g,c,p){for(let x=0;xMath.abs(g.x)}class fl extends hl{constructor(c){super(),this._map=c}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(c){this._lastPoints=c,io(c[0].sub(c[1]))&&(this._valid=!1)}_move(c,p,x){const S=this._lastPoints;if(!S)return;const A=c[0].sub(S[0]),P=c[1].sub(S[1]);return this._map._cooperativeGestures&&x.touches.length<3||(this._valid=this.gestureBeginsVertically(A,P,x.timeStamp),!this._valid)?void 0:(this._lastPoints=c,this._active=!0,{pitchDelta:(A.y+P.y)/2*-.5})}gestureBeginsVertically(c,p,x){if(this._valid!==void 0)return this._valid;const S=c.mag()>=2,A=p.mag()>=2;if(!S&&!A)return;if(!S||!A)return this._firstMove==null&&(this._firstMove=x),x-this._firstMove<100&&void 0;const P=c.y>0==p.y>0;return io(c)&&io(p)&&P}}const hi={panStep:100,bearingStep:15,pitchStep:10};class $c{constructor(){const c=hi;this._panStep=c.panStep,this._bearingStep=c.bearingStep,this._pitchStep=c.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(c){if(c.altKey||c.ctrlKey||c.metaKey)return;let p=0,x=0,S=0,A=0,P=0;switch(c.keyCode){case 61:case 107:case 171:case 187:p=1;break;case 189:case 109:case 173:p=-1;break;case 37:c.shiftKey?x=-1:(c.preventDefault(),A=-1);break;case 39:c.shiftKey?x=1:(c.preventDefault(),A=1);break;case 38:c.shiftKey?S=1:(c.preventDefault(),P=-1);break;case 40:c.shiftKey?S=-1:(c.preventDefault(),P=1);break;default:return}return this._rotationDisabled&&(x=0,S=0),{cameraAnimation:z=>{const O=z.getZoom();z.easeTo({duration:300,easeId:"keyboardHandler",easing:jc,zoom:p?Math.round(O)+p*(c.shiftKey?2:1):O,bearing:z.getBearing()+x*this._bearingStep,pitch:z.getPitch()+S*this._pitchStep,offset:[-A*this._panStep,-P*this._panStep],center:z.getCenter()},{originalEvent:c})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function jc(g){return g*(2-g)}const ss=4.000244140625;class zs{constructor(c,p){this._map=c,this._el=c.getCanvasContainer(),this._handler=p,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,a.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this)}setZoomRate(c){this._defaultZoomRate=c}setWheelZoomRate(c){this._wheelZoomRate=c}isEnabled(){return!!this._enabled}isActive(){return this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(c){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!c&&c.around==="center",this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(c){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(c.ctrlKey||c.metaKey||this.isZooming()||a.isFullscreen()))return void this._showBlockerAlert();this._alertContainer.style.visibility!=="hidden"&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let p=c.deltaMode===a.window.WheelEvent.DOM_DELTA_LINE?40*c.deltaY:c.deltaY;const x=a.exported.now(),S=x-(this._lastWheelEventTime||0);this._lastWheelEventTime=x,p!==0&&p%ss==0?this._type="wheel":p!==0&&Math.abs(p)<4?this._type="trackpad":S>400?(this._type=null,this._lastValue=p,this._timeout=setTimeout(this._onTimeout,40,c)):this._type||(this._type=Math.abs(S*p)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,p+=this._lastValue)),c.shiftKey&&p&&(p/=4),this._type&&(this._lastWheelEvent=c,this._delta-=p,this._active||this._start(c)),c.preventDefault()}_onTimeout(c){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(c)}_start(c){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const p=ie(this._el,c);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:p,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const c=this._map.transform,p=()=>c._terrainEnabled()&&this._aroundCoord?c.computeZoomRelativeTo(this._aroundCoord):c.zoom;if(this._delta!==0){const O=this._type==="wheel"&&Math.abs(this._delta)>ss?this._wheelZoomRate:this._defaultZoomRate;let j=2/(1+Math.exp(-Math.abs(this._delta*O)));this._delta<0&&j!==0&&(j=1/j);const Z=p(),re=Math.pow(2,Z),le=typeof this._targetZoom=="number"?c.zoomScale(this._targetZoom):re;this._targetZoom=Math.min(c.maxZoom,Math.max(c.minZoom,c.scaleZoom(le*j))),this._type==="wheel"&&(this._startZoom=Z,this._easing=this._smoothOutEasing(200)),this._delta=0}const x=typeof this._targetZoom=="number"?this._targetZoom:p(),S=this._startZoom,A=this._easing;let P,z=!1;if(this._type==="wheel"&&S&&A){const O=Math.min((a.exported.now()-this._lastWheelEventTime)/200,1),j=A(O);P=a.number(S,x,j),O<1?this._frameId||(this._frameId=!0):z=!0}else P=x,z=!0;return this._active=!0,z&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!z,zoomDelta:P-p(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(c){let p=a.ease;if(this._prevEase){const x=this._prevEase,S=(a.exported.now()-x.start)/x.duration,A=x.easing(S+.01)-x.easing(S),P=.27/Math.sqrt(A*A+1e-4)*.01,z=Math.sqrt(.0729-P*P);p=a.bezier(P,z,.25,1)}return this._prevEase={start:a.exported.now(),duration:c,easing:p},p}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=L("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(a.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null")},200)}}class Gc{constructor(c,p){this._clickZoom=c,this._tapZoom=p}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class qc{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(c,p){return c.preventDefault(),{cameraAnimation:x=>{x.easeTo({duration:300,zoom:x.getZoom()+(c.shiftKey?-1:1),around:x.unproject(p)},{originalEvent:c})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Zc{constructor(){this._tap=new cl({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(c,p,x){this._swipePoint||(this._tapTime&&c.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?x.length>0&&(this._swipePoint=p[0],this._swipeTouch=x[0].identifier):this._tap.touchstart(c,p,x))}touchmove(c,p,x){if(this._tapTime){if(this._swipePoint){if(x[0].identifier!==this._swipeTouch)return;const S=p[0],A=S.y-this._swipePoint.y;return this._swipePoint=S,c.preventDefault(),this._active=!0,{zoomDelta:A/128}}}else this._tap.touchmove(c,p,x)}touchend(c,p,x){this._tapTime?this._swipePoint&&x.length===0&&this.reset():this._tap.touchend(c,p,x)&&(this._tapTime=c.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Xc{constructor(c,p,x){this._el=c,this._mousePan=p,this._touchPan=x}enable(c){this._inertiaOptions=c||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Hc{constructor(c,p,x){this._pitchWithRotate=c.pitchWithRotate,this._mouseRotate=p,this._mousePitch=x}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Wc{constructor(c,p,x,S){this._el=c,this._touchZoom=p,this._touchRotate=x,this._tapDragZoom=S,this._rotationDisabled=!1,this._enabled=!0}enable(c){this._touchZoom.enable(c),this._rotationDisabled||this._touchRotate.enable(c),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}const Fs=g=>g.zoom||g.drag||g.pitch||g.rotate;class pl extends a.Event{}class Zl{constructor(){this.constants=[1,1,.01],this.radius=0}setup(c,p){const x=a.sub([],p,c);this.radius=a.length(x[2]<0?a.div([],x,this.constants):[x[0],x[1],0])}projectRay(c){a.div(c,c,this.constants),a.normalize(c,c),a.mul$1(c,c,this.constants);const p=a.scale$2([],c,this.radius);if(p[2]>0){const x=a.scale$2([],[0,0,1],a.dot(p,[0,0,1])),S=a.scale$2([],a.normalize([],[p[0],p[1],0]),this.radius),A=a.add([],p,a.scale$2([],a.sub([],a.add([],S,x),p),2));p[0]=A[0],p[1]=A[1]}return p}}function Ea(g){return g.panDelta&&g.panDelta.mag()||g.zoomDelta||g.bearingDelta||g.pitchDelta}class Yc{constructor(c,p){this._map=c,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new jl(c),this._bearingSnap=p.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new Zl,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(p),a.bindAll(["handleEvent","handleWindowEvent"],this);const x=this._el;this._listeners=[[x,"touchstart",{passive:!0}],[x,"touchmove",{passive:!1}],[x,"touchend",void 0],[x,"touchcancel",void 0],[x,"mousedown",void 0],[x,"mousemove",void 0],[x,"mouseup",void 0],[a.window.document,"mousemove",{capture:!0}],[a.window.document,"mouseup",void 0],[x,"mouseover",void 0],[x,"mouseout",void 0],[x,"dblclick",void 0],[x,"click",void 0],[x,"keydown",{capture:!1}],[x,"keyup",void 0],[x,"wheel",{passive:!1}],[x,"contextmenu",void 0],[a.window,"blur",void 0]];for(const[S,A,P]of this._listeners)S.addEventListener(A,S===a.window.document?this.handleWindowEvent:this.handleEvent,P)}destroy(){for(const[c,p,x]of this._listeners)c.removeEventListener(p,c===a.window.document?this.handleWindowEvent:this.handleEvent,x)}_addDefaultHandlers(c){const p=this._map,x=p.getCanvasContainer();this._add("mapEvent",new Rc(p,c));const S=p.boxZoom=new Fc(p,c);this._add("boxZoom",S);const A=new Oc,P=new qc;p.doubleClickZoom=new Gc(P,A),this._add("tapZoom",A),this._add("clickZoom",P);const z=new Zc;this._add("tapDragZoom",z);const O=p.touchPitch=new fl(p);this._add("touchPitch",O);const j=new Gl(c),Z=new pn(c);p.dragRotate=new Hc(c,j,Z),this._add("mouseRotate",j,["mousePitch"]),this._add("mousePitch",Z,["mouseRotate"]);const re=new Uc(c),le=new Gu(p,c);p.dragPan=new Xc(x,re,le),this._add("mousePan",re),this._add("touchPan",le,["touchZoom","touchRotate"]);const ye=new as,pe=new Fo;p.touchZoomRotate=new Wc(x,pe,ye,z),this._add("touchRotate",ye,["touchPan","touchZoom"]),this._add("touchZoom",pe,["touchPan","touchRotate"]),this._add("blockableMapEvent",new zc(p));const me=p.scrollZoom=new zs(p,this);this._add("scrollZoom",me,["mousePan"]);const ge=p.keyboard=new $c;this._add("keyboard",ge);for(const de of["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])c.interactive&&c[de]&&p[de].enable(c[de])}_add(c,p,x){this._handlers.push({handlerName:c,handler:p,allowed:x}),this._handlersById[c]=p}stop(c){if(!this._updatingCamera){for(const{handler:p}of this._handlers)p.reset();this._inertia.clear(),this._fireEvents({},{},c),this._changes=[]}}isActive(){for(const{handler:c}of this._handlers)if(c.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Fs(this._eventsInProgress)||this.isZooming()}_blockedByActive(c,p,x){for(const S in c)if(S!==x&&(!p||p.indexOf(S)<0))return!0;return!1}handleWindowEvent(c){this.handleEvent(c,`${c.type}Window`)}_getMapTouches(c){const p=[];for(const x of c)this._el.contains(x.target)&&p.push(x);return p}handleEvent(c,p){this._updatingCamera=!0;const x=c.type==="renderFrame",S=x?void 0:c,A={needsRenderFrame:!1},P={},z={},O=c.touches?this._getMapTouches(c.touches):void 0,j=O?Te(this._el,O):x?void 0:ie(this._el,c);for(const{handlerName:le,handler:ye,allowed:pe}of this._handlers){if(!ye.isEnabled())continue;let me;this._blockedByActive(z,pe,le)?ye.reset():ye[p||c.type]&&(me=ye[p||c.type](c,j,O),this.mergeHandlerResult(A,P,me,le,S),me&&me.needsRenderFrame&&this._triggerRenderFrame()),(me||ye.isActive())&&(z[le]=ye)}const Z={};for(const le in this._previousActiveHandlers)z[le]||(Z[le]=S);this._previousActiveHandlers=z,(Object.keys(Z).length||Ea(A))&&(this._changes.push([A,P,Z]),this._triggerRenderFrame()),(Object.keys(z).length||Ea(A))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:re}=A;re&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],re(this._map))}mergeHandlerResult(c,p,x,S,A){if(!x)return;a.extend(c,x);const P={handlerName:S,originalEvent:x.originalEvent||A};x.zoomDelta!==void 0&&(p.zoom=P),x.panDelta!==void 0&&(p.drag=P),x.pitchDelta!==void 0&&(p.pitch=P),x.bearingDelta!==void 0&&(p.rotate=P)}_applyChanges(){const c={},p={},x={};for(const[S,A,P]of this._changes)S.panDelta&&(c.panDelta=(c.panDelta||new a.pointGeometry(0,0))._add(S.panDelta)),S.zoomDelta&&(c.zoomDelta=(c.zoomDelta||0)+S.zoomDelta),S.bearingDelta&&(c.bearingDelta=(c.bearingDelta||0)+S.bearingDelta),S.pitchDelta&&(c.pitchDelta=(c.pitchDelta||0)+S.pitchDelta),S.around!==void 0&&(c.around=S.around),S.aroundCoord!==void 0&&(c.aroundCoord=S.aroundCoord),S.pinchAround!==void 0&&(c.pinchAround=S.pinchAround),S.noInertia&&(c.noInertia=S.noInertia),a.extend(p,A),a.extend(x,P);this._updateMapTransform(c,p,x),this._changes=[]}_updateMapTransform(c,p,x){const S=this._map,A=S.transform,P=Ee=>[Ee.x,Ee.y,Ee.z];if((Ee=>{const be=this._eventsInProgress.drag;return be&&!this._handlersById[be.handlerName].isActive()})()&&!Ea(c)){const Ee=A.zoom;A.cameraElevationReference="sea",A.recenterOnTerrain(),A.cameraElevationReference="ground",Ee!==A.zoom&&this._map._update(!0)}if(!Ea(c))return void this._fireEvents(p,x,!0);let{panDelta:z,zoomDelta:O,bearingDelta:j,pitchDelta:Z,around:re,aroundCoord:le,pinchAround:ye}=c;ye!==void 0&&(re=ye),(Ee=>p.drag&&!this._eventsInProgress.drag)()&&re&&(this._dragOrigin=P(A.pointCoordinate3D(re)),this._trackingEllipsoid.setup(A._camera.position,this._dragOrigin)),A.cameraElevationReference="sea",S._stop(!0),re=re||S.transform.centerPoint,j&&(A.bearing+=j),Z&&(A.pitch+=Z),A._updateCameraState();const pe=[0,0,0];if(z)if(A.projection.name==="mercator"){const Ee=this._trackingEllipsoid.projectRay(A.screenPointToMercatorRay(re).dir),be=this._trackingEllipsoid.projectRay(A.screenPointToMercatorRay(re.sub(z)).dir);pe[0]=be[0]-Ee[0],pe[1]=be[1]-Ee[1]}else{const Ee=A.pointCoordinate(re);if(A.projection.name==="globe"){z=z.rotate(-A.angle);const be=A._pixelsPerMercatorPixel/A.worldSize;pe[0]=-z.x*a.mercatorScale(a.latFromMercatorY(Ee.y))*be,pe[1]=-z.y*a.mercatorScale(A.center.lat)*be}else{const be=A.pointCoordinate(re.sub(z));Ee&&be&&(pe[0]=be.x-Ee.x,pe[1]=be.y-Ee.y)}}const me=A.zoom,ge=[0,0,0];if(O){const Ee=P(le||A.pointCoordinate3D(re)),be={dir:a.normalize([],a.sub([],Ee,A._camera.position))};if(be.dir[2]<0){const Ne=A.zoomDeltaToMovement(Ee,O);a.scale$2(ge,be.dir,Ne)}}const de=a.add(pe,pe,ge);A._translateCameraConstrained(de),O&&Math.abs(A.zoom-me)>1e-4&&A.recenterOnTerrain(),A.cameraElevationReference="ground",this._map._update(),c.noInertia||this._inertia.record(c),this._fireEvents(p,x,!0)}_fireEvents(c,p,x){const S=Fs(this._eventsInProgress),A=Fs(c),P={};for(const Z in c){const{originalEvent:re}=c[Z];this._eventsInProgress[Z]||(P[`${Z}start`]=re),this._eventsInProgress[Z]=c[Z]}!S&&A&&this._fireEvent("movestart",A.originalEvent);for(const Z in P)this._fireEvent(Z,P[Z]);A&&this._fireEvent("move",A.originalEvent);for(const Z in c){const{originalEvent:re}=c[Z];this._fireEvent(Z,re)}const z={};let O;for(const Z in this._eventsInProgress){const{handlerName:re,originalEvent:le}=this._eventsInProgress[Z];this._handlersById[re].isActive()||(delete this._eventsInProgress[Z],O=p[re]||le,z[`${Z}end`]=O)}for(const Z in z)this._fireEvent(Z,z[Z]);const j=Fs(this._eventsInProgress);if(x&&(S||A)&&!j){this._updatingCamera=!0;const Z=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),re=le=>le!==0&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new pl("renderFrame",{timeStamp:c})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}const Xl="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class Kc extends a.Evented{constructor(c,p){super(),this._moving=!1,this._zooming=!1,this.transform=c,this._bearingSnap=p.bearingSnap,a.bindAll(["_renderFrameCallback"],this)}getCenter(){return new a.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(c,p){return this.jumpTo({center:c},p)}panBy(c,p,x){return c=a.pointGeometry.convert(c).mult(-1),this.panTo(this.transform.center,a.extend({offset:c},p),x)}panTo(c,p,x){return this.easeTo(a.extend({center:c},p),x)}getZoom(){return this.transform.zoom}setZoom(c,p){return this.jumpTo({zoom:c},p),this}zoomTo(c,p,x){return this.easeTo(a.extend({zoom:c},p),x)}zoomIn(c,p){return this.zoomTo(this.getZoom()+1,c,p),this}zoomOut(c,p){return this.zoomTo(this.getZoom()-1,c,p),this}getBearing(){return this.transform.bearing}setBearing(c,p){return this.jumpTo({bearing:c},p),this}getPadding(){return this.transform.padding}setPadding(c,p){return this.jumpTo({padding:c},p),this}rotateTo(c,p,x){return this.easeTo(a.extend({bearing:c},p),x)}resetNorth(c,p){return this.rotateTo(0,a.extend({duration:1e3},c),p),this}resetNorthPitch(c,p){return this.easeTo(a.extend({bearing:0,pitch:0,duration:1e3},c),p),this}snapToNorth(c,p){return Math.abs(this.getBearing())et=>{if(be&&(Ge.zoom=a.number(S,O,et)),Ne&&(Ge.bearing=a.number(A,j,et)),Fe&&(Ge.pitch=a.number(P,Z,et)),Pe&&(Ge.interpolatePadding(z,re,et),ye=Ge.centerPoint.add(le)),de)Ge.setLocationAtPoint(de,Ee);else{const zt=Ge.zoomScale(Ge.zoom-S),Ye=O>S?Math.min(2,ge):Math.max(.5,ge),bt=Math.pow(Ye,1-et),Mt=Ge.unproject(pe.add(me.mult(et*bt)).mult(zt));Ge.setLocationAtPoint(Ge.renderWorldCopies?Mt.wrap():Mt,ye)}return c.preloadOnly||this._fireMoveEvents(p),Ge};if(c.preloadOnly){const Ge=this._emulate(Oe,c.duration,x);return this._preloadTiles(Ge),this}const ze={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=be,this._rotating=Ne,this._pitching=Fe,this._padding=Pe,this._easeId=c.easeId,this._prepareEase(p,c.noMoveStart,ze),this._ease(Oe(x),Ge=>{x.recenterOnTerrain(),this._afterEase(p,Ge)},c),this}_prepareEase(c,p,x={}){this._moving=!0,this.transform.cameraElevationReference="sea",p||x.moving||this.fire(new a.Event("movestart",c)),this._zooming&&!x.zooming&&this.fire(new a.Event("zoomstart",c)),this._rotating&&!x.rotating&&this.fire(new a.Event("rotatestart",c)),this._pitching&&!x.pitching&&this.fire(new a.Event("pitchstart",c))}_fireMoveEvents(c){this.fire(new a.Event("move",c)),this._zooming&&this.fire(new a.Event("zoom",c)),this._rotating&&this.fire(new a.Event("rotate",c)),this._pitching&&this.fire(new a.Event("pitch",c))}_afterEase(c,p){if(this._easeId&&p&&this._easeId===p)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const x=this._zooming,S=this._rotating,A=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,x&&this.fire(new a.Event("zoomend",c)),S&&this.fire(new a.Event("rotateend",c)),A&&this.fire(new a.Event("pitchend",c)),this.fire(new a.Event("moveend",c))}flyTo(c,p){if(!c.essential&&a.exported.prefersReducedMotion){const ti=a.pick(c,["center","zoom","bearing","pitch","around"]);return this.jumpTo(ti,p)}this.stop(),c=a.extend({offset:[0,0],speed:1.2,curve:1.42,easing:a.ease},c);const x=this.transform,S=this.getZoom(),A=this.getBearing(),P=this.getPitch(),z=this.getPadding(),O="zoom"in c?a.clamp(+c.zoom,x.minZoom,x.maxZoom):S,j="bearing"in c?this._normalizeBearing(c.bearing,A):A,Z="pitch"in c?+c.pitch:P,re="padding"in c?c.padding:x.padding,le=x.zoomScale(O-S),ye=a.pointGeometry.convert(c.offset);let pe=x.centerPoint.add(ye);const me=x.pointLocation(pe),ge=a.LngLat.convert(c.center||me);this._normalizeCenter(ge);const de=x.project(me),Ee=x.project(ge).sub(de);let be=c.curve;const Ne=Math.max(x.width,x.height),Fe=Ne/le,Pe=Ee.mag();if("minZoom"in c){const ti=a.clamp(Math.min(c.minZoom,S,O),x.minZoom,x.maxZoom),Kt=Ne/x.zoomScale(ti-S);be=Math.sqrt(Kt/Pe*2)}const Oe=be*be;function ze(ti){const Kt=(Fe*Fe-Ne*Ne+(ti?-1:1)*Oe*Oe*Pe*Pe)/(2*(ti?Fe:Ne)*Oe*Pe);return Math.log(Math.sqrt(Kt*Kt+1)-Kt)}function Ge(ti){return(Math.exp(ti)-Math.exp(-ti))/2}function et(ti){return(Math.exp(ti)+Math.exp(-ti))/2}const zt=ze(0);let Ye=function(ti){return et(zt)/et(zt+be*ti)},bt=function(ti){return Ne*((et(zt)*(Ge(Kt=zt+be*ti)/et(Kt))-Ge(zt))/Oe)/Pe;var Kt},Mt=(ze(1)-zt)/be;if(Math.abs(Pe)<1e-6||!isFinite(Mt)){if(Math.abs(Ne-Fe)<1e-6)return this.easeTo(c,p);const ti=Fec.maxDuration&&(c.duration=0);const Wt=A!==j,ct=Z!==P,$t=!x.isPaddingEqual(re),Tt=ti=>Kt=>{const bi=Kt*Mt,Di=1/Ye(bi);ti.zoom=Kt===1?O:S+ti.scaleZoom(Di),Wt&&(ti.bearing=a.number(A,j,Kt)),ct&&(ti.pitch=a.number(P,Z,Kt)),$t&&(ti.interpolatePadding(z,re,Kt),pe=ti.centerPoint.add(ye));const $i=Kt===1?ge:ti.unproject(de.add(Ee.mult(bt(bi))).mult(Di));return ti.setLocationAtPoint(ti.renderWorldCopies?$i.wrap():$i,pe),ti._updateCameraOnTerrain(),c.preloadOnly||this._fireMoveEvents(p),ti};if(c.preloadOnly){const ti=this._emulate(Tt,c.duration,x);return this._preloadTiles(ti),this}return this._zooming=!0,this._rotating=Wt,this._pitching=ct,this._padding=$t,this._prepareEase(p,!1),this._ease(Tt(x),()=>this._afterEase(p),c),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(c,p){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const x=this._onEaseEnd;this._onEaseEnd=void 0,x.call(this,p)}if(!c){const x=this.handlers;x&&x.stop(!1)}return this}_ease(c,p,x){x.animate===!1||x.duration===0?(c(1),p()):(this._easeStart=a.exported.now(),this._easeOptions=x,this._onEaseFrame=c,this._onEaseEnd=p,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const c=Math.min((a.exported.now()-this._easeStart)/this._easeOptions.duration,1),p=this._onEaseFrame;p&&p(this._easeOptions.easing(c)),c<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(c,p){c=a.wrap(c,-180,180);const x=Math.abs(c-p);return Math.abs(c-360-p)180?-360:x<-180?360:0}_emulate(c,p,x){const S=Math.ceil(15*p/1e3),A=[],P=c(x.clone());for(let z=0;z<=S;z++){const O=P(z/S);A.push(O.clone())}return A}}class Hl{constructor(c={}){this.options=c,a.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(c){const p=this.options&&this.options.compact;return this._map=c,this._container=L("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=L("button","mapboxgl-ctrl-attrib-button",this._container),L("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=L("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),p&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),p===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0}_setElementTitle(c,p){const x=this._map._getUIString(`AttributionControl.${p}`);c.setAttribute("aria-label",x),c.removeAttribute("title"),c.firstElementChild&&c.firstElementChild.setAttribute("title",x)}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"))}_updateEditLink(){let c=this._editLink;c||(c=this._editLink=this._container.querySelector(".mapbox-improve-map"));const p=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||a.config.ACCESS_TOKEN}];if(c){const x=p.reduce((S,A,P)=>(A.value&&(S+=`${A.key}=${A.value}${PS.length-A.length),c=c.filter((S,A)=>{for(let P=A+1;P=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?c=[...this.options.customAttribution,...c]:c.unshift(this.options.customAttribution));const x=c.join(" | ");x!==this._attribHTML&&(this._attribHTML=x,c.length?(this._innerContainer.innerHTML=x,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")}}class Wl{constructor(){a.bindAll(["_updateLogo","_updateCompact"],this)}onAdd(c){this._map=c,this._container=L("div","mapboxgl-ctrl");const p=L("a","mapboxgl-ctrl-logo");return p.target="_blank",p.rel="noopener nofollow",p.href="https://www.mapbox.com/",p.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),p.setAttribute("rel","noopener nofollow"),this._container.appendChild(p),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)}getDefaultPosition(){return"bottom-left"}_updateLogo(c){c&&c.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const c=this._map.style._sourceCaches;if(Object.entries(c).length===0)return!0;for(const p in c){const x=c[p].getSource();if(x.hasOwnProperty("mapbox_logo")&&!x.mapbox_logo)return!1}return!0}_updateCompact(){const c=this._container.children;if(c.length){const p=c[0];this._map.getCanvasContainer().offsetWidth<250?p.classList.add("mapboxgl-compact"):p.classList.remove("mapboxgl-compact")}}}class Yl{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(c){const p=++this._id;return this._queue.push({callback:c,id:p,cancelled:!1}),p}remove(c){const p=this._currentlyRunning,x=p?this._queue.concat(p):this._queue;for(const S of x)if(S.id===c)return void(S.cancelled=!0)}run(c=0){const p=this._currentlyRunning=this._queue;this._queue=[];for(const x of p)if(!x.cancelled&&(x.callback(c),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function Kl(g,c,p){if(g=new a.LngLat(g.lng,g.lat),c){const x=new a.LngLat(g.lng-360,g.lat),S=new a.LngLat(g.lng+360,g.lat),A=360*Math.ceil(Math.abs(g.lng-p.center.lng)/360),P=p.locationPoint(g).distSqr(c),z=c.x<0||c.y<0||c.x>p.width||c.y>p.height;p.locationPoint(x).distSqr(c)180;){const x=p.locationPoint(g);if(x.x>=0&&x.y>=0&&x.x<=p.width&&x.y<=p.height)break;g.lng>p.center.lng?g.lng-=360:g.lng+=360}return g}const Os={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};class ml extends a.Evented{constructor(c,p){if(super(),(c instanceof a.window.HTMLElement||p)&&(c=a.extend({element:c},p)),a.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=c&&c.anchor||"center",this._color=c&&c.color||"#3FB1CE",this._scale=c&&c.scale||1,this._draggable=c&&c.draggable||!1,this._clickTolerance=c&&c.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=c&&c.rotation||0,this._rotationAlignment=c&&c.rotationAlignment||"auto",this._pitchAlignment=c&&c.pitchAlignment&&c.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),c&&c.element)this._element=c.element,this._offset=a.pointGeometry.convert(c&&c.offset||[0,0]);else{this._defaultMarker=!0,this._element=L("div");const S=41,A=27,P=D("svg",{display:"block",height:S*this._scale+"px",width:A*this._scale+"px",viewBox:`0 0 ${A} ${S}`},this._element),z=D("radialGradient",{id:"shadowGradient"},D("defs",{},P));D("stop",{offset:"10%","stop-opacity":.4},z),D("stop",{offset:"100%","stop-opacity":.05},z),D("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},P),D("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},P),D("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},P),D("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},P),this._offset=a.pointGeometry.convert(c&&c.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",S=>{S.preventDefault()}),this._element.addEventListener("mousedown",S=>{S.preventDefault()});const x=this._element.classList;for(const S in Os)x.remove(`mapboxgl-marker-anchor-${S}`);x.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(c){return c===this._map||(this.remove(),this._map=c,c.getCanvasContainer().appendChild(this._element),c.on("move",this._updateMoving),c.on("moveend",this._update),c.on("remove",this._clearFadeTimer),c._addMarker(this),this.setDraggable(this._draggable),this._update(),c.on("click",this._onMapClick)),this}remove(){const c=this._map;return c&&(c.off("click",this._onMapClick),c.off("move",this._updateMoving),c.off("moveend",this._update),c.off("mousedown",this._addDragHandler),c.off("touchstart",this._addDragHandler),c.off("mouseup",this._onUp),c.off("touchend",this._onUp),c.off("mousemove",this._onMove),c.off("touchmove",this._onMove),c.off("remove",this._clearFadeTimer),c._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(c){return this._lngLat=a.LngLat.convert(c),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(c){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),c){if(!("offset"in c.options)){const S=Math.sqrt(Math.pow(13.5,2)/2);c.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[S,-1*(38.1-13.5+S)],"bottom-right":[-S,-1*(38.1-13.5+S)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=c,c._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false")}return this}_onKeyPress(c){const p=c.code,x=c.charCode||c.keyCode;p!=="Space"&&p!=="Enter"&&x!==32&&x!==13||this.togglePopup()}_onMapClick(c){const p=c.originalEvent.target,x=this._element;this._popup&&(p===x||x.contains(p))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const c=this._popup;return c?(c.isOpen()?(c.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(c.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const c=this._map;if(!c)return!1;const p=c.unproject(this._pos),x=c.getFreeCameraOptions();if(!x.position)return!1;const S=x.position.toLngLat();return S.distanceTo(p)<.9*S.distanceTo(this._lngLat)}_evaluateOpacity(){const c=this._map;if(!c)return;const p=this._pos;if(!p||p.x<0||p.x>c.transform.width||p.y<0||p.y>c.transform.height)return void this._clearFadeTimer();const x=c.unproject(p);let S;c._showingGlobe()&&a.isLngLatBehindGlobe(c.transform,this._lngLat)?S=0:(S=1-c._queryFogOpacity(x),c.transform._terrainEnabled()&&c.getTerrain()&&this._behindTerrain()&&(S*=.2)),this._element.style.opacity=`${S}`,this._element.style.pointerEvents=S>0?"auto":"none",this._popup&&this._popup._setOpacity(S),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_updateDOM(){const c=this._pos;if(!c||!this._map)return;const p=this._offset.mult(this._scale);this._element.style.transform=` + translate(${c.x}px,${c.y}px) + ${Os[this._anchor]} + ${this._calculateXYTransform()} ${this._calculateZTransform()} + translate(${p.x}px,${p.y}px) + `}_calculateXYTransform(){const c=this._pos,p=this._map,x=this.getPitchAlignment();if(!p||!c||x!=="map")return"";if(!p._showingGlobe()){const O=p.getPitch();return O?`rotateX(${O}deg)`:""}const S=a.radToDeg(a.globeTiltAtLngLat(p.transform,this._lngLat)),A=c.sub(a.globeCenterToScreenPoint(p.transform)),P=Math.abs(A.x)+Math.abs(A.y);if(P===0)return"";const z=S/P;return`rotateX(${-A.y*z}deg) rotateY(${A.x*z}deg)`}_calculateZTransform(){const c=this._pos,p=this._map;if(!p||!c)return"";let x=0;const S=this.getRotationAlignment();if(S==="map")if(p._showingGlobe()){const A=p.project(new a.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),P=p.project(new a.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(A);x=a.radToDeg(Math.atan2(P.y,P.x))-90}else x=-p.getBearing();else if(S==="horizon"){const A=a.smoothstep(4,6,p.getZoom()),P=a.globeCenterToScreenPoint(p.transform);P.y+=A*p.transform.height;const z=c.sub(P),O=a.radToDeg(Math.atan2(z.y,z.x));x=(O>90?O-270:O+90)*(1-A)}return x+=this._rotation,x?`rotateZ(${x}deg)`:""}_update(c){a.window.cancelAnimationFrame(this._updateFrameId);const p=this._map;p&&(p.transform.renderWorldCopies&&(this._lngLat=Kl(this._lngLat,this._pos,p.transform)),this._pos=p.project(this._lngLat),c===!0?this._updateFrameId=a.window.requestAnimationFrame(()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),p._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(p._showingGlobe()||p.getTerrain()||p.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}getOffset(){return this._offset}setOffset(c){return this._offset=a.pointGeometry.convert(c),this._update(),this}_onMove(c){const p=this._map;if(p){if(!this._isDragging){const x=this._clickTolerance||p._clickTolerance;this._isDragging=c.point.dist(this._pointerdownPos)>=x}this._isDragging&&(this._pos=c.point.sub(this._positionDelta),this._lngLat=p.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new a.Event("dragstart"))),this.fire(new a.Event("drag")))}}_onUp(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1;const c=this._map;c&&(c.off("mousemove",this._onMove),c.off("touchmove",this._onMove)),this._state==="active"&&this.fire(new a.Event("dragend")),this._state="inactive"}_addDragHandler(c){const p=this._map;p&&this._element.contains(c.originalEvent.target)&&(c.preventDefault(),this._positionDelta=c.point.sub(this._pos),this._pointerdownPos=c.point,this._state="pending",p.on("mousemove",this._onMove),p.on("touchmove",this._onMove),p.once("mouseup",this._onUp),p.once("touchend",this._onUp))}setDraggable(c){this._draggable=!!c;const p=this._map;return p&&(c?(p.on("mousedown",this._addDragHandler),p.on("touchstart",this._addDragHandler)):(p.off("mousedown",this._addDragHandler),p.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(c){return this._rotation=c||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(c){return this._rotationAlignment=c||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment==="auto"||this._rotationAlignment==="horizon"&&this._map&&!this._map._showingGlobe()?"viewport":this._rotationAlignment}setPitchAlignment(c){return this._pitchAlignment=c||"auto",this._update(),this}getPitchAlignment(){return this._pitchAlignment==="auto"?this.getRotationAlignment():this._pitchAlignment}}class Qc{constructor(c){this.jumpTo(c)}getValue(c){if(c<=this._startTime)return this._start;if(c>=this._endTime)return this._end;const p=a.easeCubicInOut((c-this._startTime)/(this._endTime-this._startTime));return this._start*(1-p)+this._end*p}isEasing(c){return c>=this._startTime&&c<=this._endTime}jumpTo(c){this._startTime=-1/0,this._endTime=-1/0,this._start=c,this._end=c}easeTo(c,p,x){this._start=this.getValue(p),this._end=c,this._startTime=p,this._endTime=p+x}}const Jc={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use \u2318 + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},eu={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0};function Ns(g){g.parentNode&&g.parentNode.removeChild(g)}const tu={showCompass:!0,showZoom:!0,visualizePitch:!1};class Ql{constructor(c,p,x=!1){this._clickTolerance=10,this.element=p,this.mouseRotate=new Gl({clickTolerance:c.dragRotate._mouseRotate._clickTolerance}),this.map=c,x&&(this.mousePitch=new pn({clickTolerance:c.dragRotate._mousePitch._clickTolerance})),a.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),p.addEventListener("mousedown",this.mousedown),p.addEventListener("touchstart",this.touchstart,{passive:!1}),p.addEventListener("touchmove",this.touchmove),p.addEventListener("touchend",this.touchend),p.addEventListener("touchcancel",this.reset)}down(c,p){this.mouseRotate.mousedown(c,p),this.mousePitch&&this.mousePitch.mousedown(c,p),X()}move(c,p){const x=this.map,S=this.mouseRotate.mousemoveWindow(c,p),A=S&&S.bearingDelta;if(A&&x.setBearing(x.getBearing()+A),this.mousePitch){const P=this.mousePitch.mousemoveWindow(c,p),z=P&&P.pitchDelta;z&&x.setPitch(x.getPitch()+z)}}off(){const c=this.element;c.removeEventListener("mousedown",this.mousedown),c.removeEventListener("touchstart",this.touchstart,{passive:!1}),c.removeEventListener("touchmove",this.touchmove),c.removeEventListener("touchend",this.touchend),c.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){oe(),a.window.removeEventListener("mousemove",this.mousemove),a.window.removeEventListener("mouseup",this.mouseup)}mousedown(c){this.down(a.extend({},c,{ctrlKey:!0,preventDefault:()=>c.preventDefault()}),ie(this.element,c)),a.window.addEventListener("mousemove",this.mousemove),a.window.addEventListener("mouseup",this.mouseup)}mousemove(c){this.move(c,ie(this.element,c))}mouseup(c){this.mouseRotate.mouseupWindow(c),this.mousePitch&&this.mousePitch.mouseupWindow(c),this.offTemp()}touchstart(c){c.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=Te(this.element,c.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>c.preventDefault()},this._startPos))}touchmove(c){c.targetTouches.length!==1?this.reset():(this._lastPos=Te(this.element,c.targetTouches)[0],this.move({preventDefault:()=>c.preventDefault()},this._lastPos))}touchend(c){c.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this._container.style.width=g*S+"px",this._container.innerHTML=`${x} ${A}`})}function gl(g){const c=Math.pow(10,`${Math.floor(g)}`.length-1);let p=g/c;return p=p>=10?10:p>=5?5:p>=3?3:p>=2?2:p>=1?1:function(x){const S=Math.pow(10,Math.ceil(-Math.log(x)/Math.LN10));return Math.round(x*S)/S}(p),c*p}const qu={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},Zu=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function _l(g=new a.pointGeometry(0,0),c="bottom"){if(typeof g=="number"){const p=Math.round(Math.sqrt(.5*Math.pow(g,2)));switch(c){case"top":return new a.pointGeometry(0,g);case"top-left":return new a.pointGeometry(p,p);case"top-right":return new a.pointGeometry(-p,p);case"bottom":return new a.pointGeometry(0,-g);case"bottom-left":return new a.pointGeometry(p,-p);case"bottom-right":return new a.pointGeometry(-p,-p);case"left":return new a.pointGeometry(g,0);case"right":return new a.pointGeometry(-g,0)}return new a.pointGeometry(0,0)}return g instanceof a.pointGeometry||Array.isArray(g)?a.pointGeometry.convert(g):a.pointGeometry.convert(g[c]||[0,0])}const Us={version:a.version,supported:E,setRTLTextPlugin:a.setRTLTextPlugin,getRTLTextPluginStatus:a.getRTLTextPluginStatus,Map:class extends Kc{constructor(g){if((g=a.extend({},eu,g)).minZoom!=null&&g.maxZoom!=null&&g.minZoom>g.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(g.minPitch!=null&&g.maxPitch!=null&&g.minPitch>g.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(g.minPitch!=null&&g.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(g.maxPitch!=null&&g.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(g.antialias&&a.isSafariWithAntialiasingBug(a.window)&&(g.antialias=!1,a.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new Ds(g.minZoom,g.maxZoom,g.minPitch,g.maxPitch,g.renderWorldCopies),g),this._interactive=g.interactive,this._minTileCacheSize=g.minTileCacheSize,this._maxTileCacheSize=g.maxTileCacheSize,this._failIfMajorPerformanceCaveat=g.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=g.preserveDrawingBuffer,this._antialias=g.antialias,this._trackResize=g.trackResize,this._bearingSnap=g.bearingSnap,this._refreshExpiredTiles=g.refreshExpiredTiles,this._fadeDuration=g.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=g.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=g.collectResourceTiming,this._optimizeForTerrain=g.optimizeForTerrain,this._language=g.language==="auto"?a.window.navigator.language:g.language,this._worldview=g.worldview,this._renderTaskQueue=new Yl,this._domRenderTaskQueue=new Yl,this._controls=[],this._markers=[],this._mapId=a.uniqueId(),this._locale=a.extend({},Jc,g.locale),this._clickTolerance=g.clickTolerance,this._cooperativeGestures=g.cooperativeGestures,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new Qc(0),this._useExplicitProjection=!1,this._requestManager=new a.RequestManager(g.transformRequest,g.accessToken,g.testMode),this._silenceAuthErrors=!!g.testMode,typeof g.container=="string"){if(this._container=a.window.document.getElementById(g.container),!this._container)throw new Error(`Container '${g.container}' not found.`)}else{if(!(g.container instanceof a.window.HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=g.container}if(this._container.childNodes.length>0&&a.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),g.maxBounds&&this.setMaxBounds(g.maxBounds),a.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),a.window!==void 0&&(a.window.addEventListener("online",this._onWindowOnline,!1),a.window.addEventListener("resize",this._onWindowResize,!1),a.window.addEventListener("orientationchange",this._onWindowResize,!1),a.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1)),this.handlers=new Yc(this,g),this._localFontFamily=g.localFontFamily,this._localIdeographFontFamily=g.localIdeographFontFamily,g.style&&this.setStyle(g.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),g.projection&&this.setProjection(g.projection),this._hash=g.hash&&new Dc(typeof g.hash=="string"&&g.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:g.center,zoom:g.zoom,bearing:g.bearing,pitch:g.pitch}),g.bounds&&(this.resize(),this.fitBounds(g.bounds,a.extend({},g.fitBoundsOptions,{duration:0})))),this.resize(),g.attributionControl&&this.addControl(new Hl({customAttribution:g.customAttribution})),this._logoControl=new Wl,this.addControl(this._logoControl,g.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",c=>{this._update(c.dataType==="style"),this.fire(new a.Event(`${c.dataType}data`,c))}),this.on("dataloading",c=>{this.fire(new a.Event(`${c.dataType}dataloading`,c))})}_getMapId(){return this._mapId}addControl(g,c){if(c===void 0&&(c=g.getDefaultPosition?g.getDefaultPosition():"top-right"),!g||!g.onAdd)return this.fire(new a.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const p=g.onAdd(this);this._controls.push(g);const x=this._controlPositions[c];return c.indexOf("bottom")!==-1?x.insertBefore(p,x.firstChild):x.appendChild(p),this}removeControl(g){if(!g||!g.onRemove)return this.fire(new a.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const c=this._controls.indexOf(g);return c>-1&&this._controls.splice(c,1),g.onRemove(this),this}hasControl(g){return this._controls.indexOf(g)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(g){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const c=!this._moving;return c&&this.fire(new a.Event("movestart",g)).fire(new a.Event("move",g)),this.fire(new a.Event("resize",g)),c&&this.fire(new a.Event("moveend",g)),this}getBounds(){return this.transform.projection.name==="globe"&&a.warnOnce('Globe projection does not support getBounds API, this API may behave unexpectedly."'),this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(g){return this.transform.setMaxBounds(a.LngLatBounds.convert(g)),this._update()}setMinZoom(g){if((g=g??-2)>=-2&&g<=this.transform.maxZoom)return this.transform.minZoom=g,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=g,this._update(),this.getZoom()>g?this.setZoom(g):this.fire(new a.Event("zoomstart")).fire(new a.Event("zoom")).fire(new a.Event("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(g){if((g=g??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(g>=0&&g<=this.transform.maxPitch)return this.transform.minPitch=g,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(g>=this.transform.minPitch)return this.transform.maxPitch=g,this._update(),this.getPitch()>g?this.setPitch(g):this.fire(new a.Event("pitchstart")).fire(new a.Event("pitch")).fire(new a.Event("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(g){return this.transform.renderWorldCopies=g,this._update()}getLanguage(){return this._language}setLanguage(g){if(this._language=g==="auto"?a.window.navigator.language:g,this.style)for(const c in this.style._sourceCaches){const p=this.style._sourceCaches[c]._source;p._setLanguage&&p._setLanguage(this._language)}for(const c of this._controls)c._setLanguage&&c._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(g){if(this._worldview=g,this.style)for(const c in this.style._sourceCaches){const p=this.style._sourceCaches[c]._source;p._setWorldview&&p._setWorldview(g)}return this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return this.transform.projection.name==="globe"}setProjection(g){return this._lazyInitEmptyStyle(),g?typeof g=="string"&&(g={name:g}):g=null,this._useExplicitProjection=!!g,this._prioritizeAndUpdateProjection(g,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if(this.getProjection().name!=="globe")return;const g=this.transform,c=g.projection.name;let p;c==="globe"&&g.zoom>=a.GLOBE_ZOOM_THRESHOLD_MAX?(g.setMercatorFromTransition(),p=!0):c==="mercator"&&g.zoom=a.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(g),this.style.applyProjectionUpdate(),c){this.painter.clearBackgroundTiles();for(const p in this.style._sourceCaches)this.style._sourceCaches[p].clearTiles();this._update(!0)}return this}project(g){return this.transform.locationPoint3D(a.LngLat.convert(g))}unproject(g){return this.transform.pointLocation3D(a.pointGeometry.convert(g))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_createDelegatedListener(g,c,p){if(g==="mouseenter"||g==="mouseover"){let x=!1;const S=P=>{const z=c.filter(j=>this.getLayer(j)),O=z.length?this.queryRenderedFeatures(P.point,{layers:z}):[];O.length?x||(x=!0,p.call(this,new En(g,this,P.originalEvent,{features:O}))):x=!1},A=()=>{x=!1};return{layers:new Set(c),listener:p,delegates:{mousemove:S,mouseout:A}}}if(g==="mouseleave"||g==="mouseout"){let x=!1;const S=P=>{const z=c.filter(O=>this.getLayer(O));(z.length?this.queryRenderedFeatures(P.point,{layers:z}):[]).length?x=!0:x&&(x=!1,p.call(this,new En(g,this,P.originalEvent)))},A=P=>{x&&(x=!1,p.call(this,new En(g,this,P.originalEvent)))};return{layers:new Set(c),listener:p,delegates:{mousemove:S,mouseout:A}}}{const x=S=>{const A=c.filter(z=>this.getLayer(z)),P=A.length?this.queryRenderedFeatures(S.point,{layers:A}):[];P.length&&(S.features=P,p.call(this,S),delete S.features)};return{layers:new Set(c),listener:p,delegates:{[g]:x}}}}on(g,c,p){if(p===void 0)return super.on(g,c);Array.isArray(c)||(c=[c]);const x=this._createDelegatedListener(g,c,p);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[g]=this._delegatedListeners[g]||[],this._delegatedListeners[g].push(x);for(const S in x.delegates)this.on(S,x.delegates[S]);return this}once(g,c,p){if(p===void 0)return super.once(g,c);Array.isArray(c)||(c=[c]);const x=this._createDelegatedListener(g,c,p);for(const S in x.delegates)this.once(S,x.delegates[S]);return this}off(g,c,p){if(p===void 0)return super.off(g,c);c=new Set(Array.isArray(c)?c:[c]);const x=(A,P)=>{if(A.size!==P.size)return!1;for(const z of A)if(!P.has(z))return!1;return!0},S=this._delegatedListeners?this._delegatedListeners[g]:void 0;return S&&(A=>{for(let P=0;P{S?this.fire(new a.ErrorEvent(S)):A&&this._updateDiff(A,c)})}else typeof g=="object"&&this._updateDiff(g,c)}_updateDiff(g,c){try{this.style.setState(g)&&this._update(!0)}catch(p){a.warnOnce(`Unable to perform style diff: ${p.message||p.error||p}. Rebuilding the style from scratch.`),this._updateStyle(g,c)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(a.warnOnce("There is no style added to the map."),!1)}addSource(g,c){return this._lazyInitEmptyStyle(),this.style.addSource(g,c),this._update(!0)}isSourceLoaded(g){return!!this.style&&this.style._isSourceCacheLoaded(g)}areTilesLoaded(){const g=this.style&&this.style._sourceCaches;for(const c in g){const p=g[c]._tiles;for(const x in p){const S=p[x];if(S.state!=="loaded"&&S.state!=="errored")return!1}}return!0}addSourceType(g,c,p){this._lazyInitEmptyStyle(),this.style.addSourceType(g,c,p)}removeSource(g){return this.style.removeSource(g),this._updateTerrain(),this._update(!0)}getSource(g){return this.style.getSource(g)}addImage(g,c,{pixelRatio:p=1,sdf:x=!1,stretchX:S,stretchY:A,content:P}={}){if(this._lazyInitEmptyStyle(),c instanceof a.window.HTMLImageElement||a.window.ImageBitmap&&c instanceof a.window.ImageBitmap){const{width:z,height:O,data:j}=a.exported.getImageData(c);this.style.addImage(g,{data:new a.RGBAImage({width:z,height:O},j),pixelRatio:p,stretchX:S,stretchY:A,content:P,sdf:x,version:0})}else if(c.width===void 0||c.height===void 0)this.fire(new a.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else{const{width:z,height:O}=c,j=c;this.style.addImage(g,{data:new a.RGBAImage({width:z,height:O},new Uint8Array(j.data)),pixelRatio:p,stretchX:S,stretchY:A,content:P,sdf:x,version:0,userImage:j}),j.onAdd&&j.onAdd(this,g)}}updateImage(g,c){const p=this.style.getImage(g);if(!p)return void this.fire(new a.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const x=c instanceof a.window.HTMLImageElement||a.window.ImageBitmap&&c instanceof a.window.ImageBitmap?a.exported.getImageData(c):c,{width:S,height:A}=x;S!==void 0&&A!==void 0?S===p.data.width&&A===p.data.height?(p.data.replace(x.data,!(c instanceof a.window.HTMLImageElement||a.window.ImageBitmap&&c instanceof a.window.ImageBitmap)),this.style.updateImage(g,p)):this.fire(new a.ErrorEvent(new Error(`The width and height of the updated image (${S}, ${A}) + must be that same as the previous version of the image + (${p.data.width}, ${p.data.height})`))):this.fire(new a.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")))}hasImage(g){return g?!!this.style.getImage(g):(this.fire(new a.ErrorEvent(new Error("Missing required image id"))),!1)}removeImage(g){this.style.removeImage(g)}loadImage(g,c){a.getImage(this._requestManager.transformRequest(g,a.ResourceType.Image),(p,x)=>{c(p,x instanceof a.window.HTMLImageElement?a.exported.getImageData(x):x)})}listImages(){return this.style.listImages()}addLayer(g,c){return this._lazyInitEmptyStyle(),this.style.addLayer(g,c),this._update(!0)}moveLayer(g,c){return this.style.moveLayer(g,c),this._update(!0)}removeLayer(g){return this.style.removeLayer(g),this._update(!0)}getLayer(g){return this.style.getLayer(g)}setLayerZoomRange(g,c,p){return this.style.setLayerZoomRange(g,c,p),this._update(!0)}setFilter(g,c,p={}){return this.style.setFilter(g,c,p),this._update(!0)}getFilter(g){return this.style.getFilter(g)}setPaintProperty(g,c,p,x={}){return this.style.setPaintProperty(g,c,p,x),this._update(!0)}getPaintProperty(g,c){return this.style.getPaintProperty(g,c)}setLayoutProperty(g,c,p,x={}){return this.style.setLayoutProperty(g,c,p,x),this._update(!0)}getLayoutProperty(g,c){return this.style.getLayoutProperty(g,c)}setLight(g,c={}){return this._lazyInitEmptyStyle(),this.style.setLight(g,c),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(g){return this._lazyInitEmptyStyle(),!g&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(g),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(g){return this._lazyInitEmptyStyle(),this.style.setFog(g),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(g){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(a.LngLat.convert(g),this.transform):0}setFeatureState(g,c){return this.style.setFeatureState(g,c),this._update()}removeFeatureState(g,c){return this.style.removeFeatureState(g,c),this._update()}getFeatureState(g){return this.style.getFeatureState(g)}_updateContainerDimensions(){if(!this._container)return;const g=this._container.getBoundingClientRect().width||400,c=this._container.getBoundingClientRect().height||300;let p,x,S,A=this._container;for(;A&&(!x||!S);){const P=a.window.getComputedStyle(A).transform;P&&P!=="none"&&(p=P.match(/matrix.*\((.+)\)/)[1].split(", "),p[0]&&p[0]!=="0"&&p[0]!=="1"&&(x=p[0]),p[3]&&p[3]!=="0"&&p[3]!=="1"&&(S=p[3])),A=A.parentElement}this._containerWidth=x?Math.abs(g/x):g,this._containerHeight=S?Math.abs(c/S):c}_detectMissingCSS(){a.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&a.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")}_setupContainer(){const g=this._container;g.classList.add("mapboxgl-map"),(this._missingCSSCanary=L("div","mapboxgl-canary",g)).style.visibility="hidden",this._detectMissingCSS();const c=this._canvasContainer=L("div","mapboxgl-canvas-container",g);this._interactive&&c.classList.add("mapboxgl-interactive"),this._canvas=L("canvas","mapboxgl-canvas",c),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const p=this._controlContainer=L("div","mapboxgl-control-container",g),x=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(S=>{x[S]=L("div",`mapboxgl-ctrl-${S}`,p)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(g,c){const p=a.exported.devicePixelRatio||1;this._canvas.width=p*Math.ceil(g),this._canvas.height=p*Math.ceil(c),this._canvas.style.width=`${g}px`,this._canvas.style.height=`${c}px`}_addMarker(g){this._markers.push(g)}_removeMarker(g){const c=this._markers.indexOf(g);c!==-1&&this._markers.splice(c,1)}_setupPainter(){const g=a.extend({},E.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),c=this._canvas.getContext("webgl",g)||this._canvas.getContext("experimental-webgl",g);c?(a.storeAuthState(c,!0),this.painter=new Fl(c,this.transform),this.on("data",p=>{p.dataType==="source"&&this.painter.setTileLoadedFlag(!0)}),a.exported$1.testSupport(c)):this.fire(new a.ErrorEvent(new Error("Failed to initialize WebGL")))}_contextLost(g){g.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new a.Event("webglcontextlost",{originalEvent:g}))}_contextRestored(g){this._setupPainter(),this.resize(),this._update(),this.fire(new a.Event("webglcontextrestored",{originalEvent:g}))}_onMapScroll(g){if(g.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(g){return this.style?(this._styleDirty=this._styleDirty||g,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(g){return this._update(),this._renderTaskQueue.add(g)}_cancelRenderFrame(g){this._renderTaskQueue.remove(g)}_requestDomTask(g){!this.loaded()||this.loaded()&&!this.isMoving()?g():this._domRenderTaskQueue.add(g)}_render(g){let c;const p=this.painter.context.extTimerQuery,x=a.exported.now();if(this.listens("gpu-timing-frame")&&(c=p.createQueryEXT(),p.beginQueryEXT(p.TIME_ELAPSED_EXT,c)),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(g),this._domRenderTaskQueue.run(g),this._removed)return;this._updateProjectionTransition();let S=!1;const A=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const O=this.transform.zoom,j=this.transform.pitch,Z=a.exported.now();this.style.zoomHistory.update(O,Z);const re=new a.EvaluationParameters(O,{now:Z,fadeDuration:A,pitch:j,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),le=re.crossFadingFactor();le===1&&le===this._crossFadingFactor||(S=!0,this._crossFadingFactor=le),this.style.update(re)}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let P=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),P=this._updateAverageElevation(x),this.style._updateSources(this.transform),this._forceMarkerUpdate()):P=this._updateAverageElevation(x),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,A,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:A,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new a.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new a.Event("load"))),this.style&&(this.style.hasTransitions()||S)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),c){const O=a.exported.now()-x;p.endQueryEXT(p.TIME_ELAPSED_EXT,c),setTimeout(()=>{const j=p.getQueryObjectEXT(c,p.QUERY_RESULT_EXT)/1e6;p.deleteQueryEXT(c),this.fire(new a.Event("gpu-timing-frame",{cpuTime:O,gpuTime:j})),a.window.performance.mark("frame-gpu",{startTime:x,detail:{gpuTime:j}})},50)}if(this.listens("gpu-timing-layer")){const O=this.painter.collectGpuTimers();setTimeout(()=>{const j=this.painter.queryGpuTimers(O);this.fire(new a.Event("gpu-timing-layer",{layerTimes:j}))},50)}if(this.listens("gpu-timing-deferred-render")){const O=this.painter.collectDeferredRenderGpuQueries();setTimeout(()=>{const j=this.painter.queryGpuTimeDeferredRender(O);this.fire(new a.Event("gpu-timing-deferred-render",{gpuTime:j}))},50)}const z=this._sourcesDirty||this._styleDirty||this._placementDirty||P;if(z||this._repaint)this.triggerRepaint();else{const O=!this.isMoving()&&this.loaded();if(O&&(P=this._updateAverageElevation(x,!0)),P)this.triggerRepaint();else if(this._triggerFrame(!1),O&&(this.fire(new a.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const j=this._calculateSpeedIndex();this.fire(new a.Event("speedindexcompleted",{speedIndex:j})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||z||(this._fullyLoaded=!0,this._authenticate())}_forceMarkerUpdate(){for(const g of this._markers)g._update()}_updateAverageElevation(g,c=!1){const p=x=>(this.transform.averageElevation=x,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return this.transform.averageElevation!==0&&p(0);if((c||g-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(g)){const x=this.transform.averageElevation;let S=this.transform.sampleAverageElevation(),A=!1;this.transform.elevation&&(A=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(S)?S=0:this._averageElevationLastSampledAt=g;const P=Math.abs(x-S);if(P>1){if(this._isInitialLoad||A)return this._averageElevation.jumpTo(S),p(S);this._averageElevation.easeTo(S,g,300)}else if(P>1e-4)return this._averageElevation.jumpTo(S),p(S)}return!!this._averageElevation.isEasing(g)&&p(this._averageElevation.getValue(g))}_authenticate(){a.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,g=>{if(g&&(g.message===a.AUTH_ERR_MSG||g.status===401)){const c=this.painter.context.gl;a.storeAuthState(c,!1),this._logoControl instanceof Wl&&this._logoControl._updateLogo(),c&&c.clear(c.DEPTH_BUFFER_BIT|c.COLOR_BUFFER_BIT|c.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new a.ErrorEvent(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")))}}),a.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){this.painter.updateTerrain(this.style,this.isMoving()||this.isRotating()||this.isZooming())}_calculateSpeedIndex(){const g=this.painter.canvasCopy(),c=this.painter.getCanvasCopiesAndTimestamps();c.timeStamps.push(performance.now());const p=this.painter.context.gl,x=p.createFramebuffer();function S(A){p.framebufferTexture2D(p.FRAMEBUFFER,p.COLOR_ATTACHMENT0,p.TEXTURE_2D,A,0);const P=new Uint8Array(p.drawingBufferWidth*p.drawingBufferHeight*4);return p.readPixels(0,0,p.drawingBufferWidth,p.drawingBufferHeight,p.RGBA,p.UNSIGNED_BYTE,P),P}return p.bindFramebuffer(p.FRAMEBUFFER,x),this._canvasPixelComparison(S(g),c.canvasCopies.map(S),c.timeStamps)}_canvasPixelComparison(g,c,p){let x=p[1]-p[0];const S=g.length/4;for(let A=0;A{const p=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,p&&this._render(c)}))}_preloadTiles(g){const c=this.style?Object.values(this.style._sourceCaches):[];return a.asyncAll(c,(p,x)=>p._preloadTiles(g,x),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(g){this._trackResize&&this.resize({originalEvent:g})._update()}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(g){this._showTileBoundaries!==g&&(this._showTileBoundaries=g,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(g){this._showTerrainWireframe!==g&&(this._showTerrainWireframe=g,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(g){this._speedIndexTiming!==g&&(this._speedIndexTiming=g,this._update())}get showPadding(){return!!this._showPadding}set showPadding(g){this._showPadding!==g&&(this._showPadding=g,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(g){this._showCollisionBoxes!==g&&(this._showCollisionBoxes=g,g?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(g){this._showOverdrawInspector!==g&&(this._showOverdrawInspector=g,this._update())}get repaint(){return!!this._repaint}set repaint(g){this._repaint!==g&&(this._repaint=g,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(g){this._vertices=g,this._update()}_setCacheLimits(g,c){a.setCacheLimits(g,c)}get version(){return a.version}},NavigationControl:class{constructor(g){this.options=a.extend({},tu,g),this._container=L("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",c=>c.preventDefault()),this.options.showZoom&&(a.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",c=>{this._map&&this._map.zoomIn({},{originalEvent:c})}),L("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",c=>{this._map&&this._map.zoomOut({},{originalEvent:c})}),L("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(a.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",c=>{const p=this._map;p&&(this.options.visualizePitch?p.resetNorthPitch({},{originalEvent:c}):p.resetNorth({},{originalEvent:c}))}),this._compassIcon=L("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}_updateZoomButtons(){const g=this._map;if(!g)return;const c=g.getZoom(),p=c===g.getMaxZoom(),x=c===g.getMinZoom();this._zoomInButton.disabled=p,this._zoomOutButton.disabled=x,this._zoomInButton.setAttribute("aria-disabled",p.toString()),this._zoomOutButton.setAttribute("aria-disabled",x.toString())}_rotateCompassArrow(){const g=this._map;if(!g)return;const c=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(g.transform.pitch*(Math.PI/180)),.5)}) rotateX(${g.transform.pitch}deg) rotateZ(${g.transform.angle*(180/Math.PI)}deg)`:`rotate(${g.transform.angle*(180/Math.PI)}deg)`;g._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=c)})}onAdd(g){return this._map=g,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),g.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&g.on("pitch",this._rotateCompassArrow),g.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ql(g,this._compass,this.options.visualizePitch)),this._container}onRemove(){const g=this._map;g&&(this._container.remove(),this.options.showZoom&&g.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&g.off("pitch",this._rotateCompassArrow),g.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(g,c){const p=L("button",g,this._container);return p.type="button",p.addEventListener("click",c),p}_setButtonTitle(g,c){if(!this._map)return;const p=this._map._getUIString(`NavigationControl.${c}`);g.setAttribute("aria-label",p),g.firstElementChild&&g.firstElementChild.setAttribute("title",p)}},GeolocateControl:class extends a.Evented{constructor(g){super(),this.options=a.extend({geolocation:a.window.navigator.geolocation},iu,g),a.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=Bs(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(g){return this._map=g,this._container=L("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(g){this._supportsGeolocation!==void 0?g(this._supportsGeolocation):a.window.navigator.permissions!==void 0?a.window.navigator.permissions.query({name:"geolocation"}).then(c=>{this._supportsGeolocation=c.state!=="denied",g(this._supportsGeolocation)}):(this._supportsGeolocation=!!this.options.geolocation,g(this._supportsGeolocation))}_isOutOfMapMaxBounds(g){const c=this._map.getMaxBounds(),p=g.coords;return!!c&&(p.longitudec.getEast()||p.latitudec.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}}_onSuccess(g){if(this._map){if(this._isOutOfMapMaxBounds(g))return this._setErrorState(),this.fire(new a.Event("outofmaxbounds",g)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=g,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(g),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(g),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new a.Event("geolocate",g)),this._finish()}}_updateCamera(g){const c=new a.LngLat(g.coords.longitude,g.coords.latitude),p=g.coords.accuracy,x=this._map.getBearing(),S=a.extend({bearing:x},this.options.fitBoundsOptions);this._map.fitBounds(c.toBounds(p),S,{geolocateSource:!0})}_updateMarker(g){if(g){const c=new a.LngLat(g.coords.longitude,g.coords.latitude);this._accuracyCircleMarker.setLngLat(c).addTo(this._map),this._userLocationDotMarker.setLngLat(c).addTo(this._map),this._accuracy=g.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const g=this._map.transform,c=a.mercatorZfromAltitude(1,g._center.lat)*g.worldSize,p=Math.ceil(2*this._accuracy*c);this._circleElement.style.width=`${p}px`,this._circleElement.style.height=`${p}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&typeof this._heading=="number"?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(g){if(this._map){if(this.options.trackUserLocation)if(g.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const c=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",c),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",c),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(g.code===3&&this._noTimeout)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new a.Event("error",g)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(g){if(this._container.addEventListener("contextmenu",c=>c.preventDefault()),this._geolocateButton=L("button","mapboxgl-ctrl-geolocate",this._container),L("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",g===!1){a.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const c=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",c),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",c)}else{const c=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",c),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",c)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=L("div","mapboxgl-user-location"),this._dotElement.appendChild(L("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(L("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new ml({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=L("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new ml({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",c=>{c.geolocateSource||this._watchState!=="ACTIVE_LOCK"||c.originalEvent&&c.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new a.Event("trackuserlocationend")))})}_onDeviceOrientation(g){this._userLocationDotMarker&&(g.webkitCompassHeading?this._heading=g.webkitCompassHeading:g.absolute===!0&&(this._heading=-1*g.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return a.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new a.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new a.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new a.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let g;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(g={maximumAge:6e5,timeout:0},this._noTimeout=!0):(g=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,g),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){const g=()=>{a.window.addEventListener("ondeviceorientationabsolute"in a.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation)};a.window.DeviceMotionEvent!==void 0&&typeof a.window.DeviceMotionEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(c=>{c==="granted"&&g()}).catch(console.error):g()}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),a.window.removeEventListener("deviceorientation",this._onDeviceOrientation),a.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:Hl,ScaleControl:class{constructor(g){this.options=a.extend({},Jl,g),function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"narrow",unit:"meter"}),!0}catch{return!1}}()||(this._setScale=ec.bind(this)),a.bindAll(["_update","_setScale","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_update(){const g=this.options.maxWidth||100,c=this._map,p=c._containerHeight/2,x=c._containerWidth/2-g/2,S=c.unproject([x,p]),A=c.unproject([x+g,p]),P=S.distanceTo(A);if(this.options.unit==="imperial"){const z=3.2808*P;z>5280?this._setScale(g,z/5280,"mile"):this._setScale(g,z,"foot")}else this.options.unit==="nautical"?this._setScale(g,P/1852,"nautical-mile"):P>=1e3?this._setScale(g,P/1e3,"kilometer"):this._setScale(g,P,"meter")}_setScale(g,c,p){const x=gl(c),S=x/c;this._map._requestDomTask(()=>{this._container.style.width=g*S+"px",this._container.innerHTML=p!=="nautical-mile"?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"narrow",unit:p}).format(x):`${x} nm`})}onAdd(g){return this._map=g,this._language=g.getLanguage(),this._container=L("div","mapboxgl-ctrl mapboxgl-ctrl-scale",g.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0}_setLanguage(g){this._language=g,this._update()}setUnit(g){this.options.unit=g,this._update()}},FullscreenControl:class{constructor(g){this._fullscreen=!1,g&&g.container&&(g.container instanceof a.window.HTMLElement?this._container=g.container:a.warnOnce("Full screen control 'container' must be a DOM element.")),a.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in a.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in a.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(g){return this._map=g,this._container||(this._container=this._map.getContainer()),this._controlContainer=L("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",a.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,a.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!a.window.document.fullscreenEnabled&&!a.window.document.webkitFullscreenEnabled)}_setupUI(){const g=this._fullscreenButton=L("button","mapboxgl-ctrl-fullscreen",this._controlContainer);L("span","mapboxgl-ctrl-icon",g).setAttribute("aria-hidden","true"),g.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),a.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const g=this._getTitle();this._fullscreenButton.setAttribute("aria-label",g),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",g)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(a.window.document.fullscreenElement||a.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?a.window.document.exitFullscreen?a.window.document.exitFullscreen():a.window.document.webkitCancelFullScreen&&a.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends a.Evented{constructor(g){super(),this.options=a.extend(Object.create(qu),g),a.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(g&&g.className?g.className.trim().split(/\s+/):[])}addTo(g){return this._map&&this.remove(),this._map=g,this.options.closeOnClick&&g.on("preclick",this._onClose),this.options.closeOnMove&&g.on("move",this._onClose),g.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(g.on("mousemove",this._onMouseEvent),g.on("mouseup",this._onMouseEvent),g._canvasContainer.classList.add("mapboxgl-track-pointer")):g.on("move",this._update),this.fire(new a.Event("open")),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const g=this._map;return g&&(g.off("move",this._update),g.off("move",this._onClose),g.off("preclick",this._onClose),g.off("click",this._onClose),g.off("remove",this.remove),g.off("mousemove",this._onMouseEvent),g.off("mouseup",this._onMouseEvent),g.off("drag",this._onMouseEvent),this._map=void 0),this.fire(new a.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(g){this._lngLat=a.LngLat.convert(g),this._pos=null,this._trackPointer=!1,this._update();const c=this._map;return c&&(c.on("move",this._update),c.off("mousemove",this._onMouseEvent),c._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const g=this._map;return g&&(g.off("move",this._update),g.on("mousemove",this._onMouseEvent),g.on("drag",this._onMouseEvent),g._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(g){return this.setDOMContent(a.window.document.createTextNode(g))}setHTML(g){const c=a.window.document.createDocumentFragment(),p=a.window.document.createElement("body");let x;for(p.innerHTML=g;x=p.firstChild,x;)c.appendChild(x);return this.setDOMContent(c)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(g){return this.options.maxWidth=g,this._update(),this}setDOMContent(g){let c=this._content;if(c)for(;c.hasChildNodes();)c.firstChild&&c.removeChild(c.firstChild);else c=this._content=L("div","mapboxgl-popup-content",this._container||void 0);if(c.appendChild(g),this.options.closeButton){const p=this._closeButton=L("button","mapboxgl-popup-close-button",c);p.type="button",p.setAttribute("aria-label","Close popup"),p.setAttribute("aria-hidden","true"),p.innerHTML="×",p.addEventListener("click",this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(g){return this._classList.add(g),this._updateClassList(),this}removeClassName(g){return this._classList.delete(g),this._updateClassList(),this}setOffset(g){return this.options.offset=g,this._update(),this}toggleClassName(g){let c;return this._classList.delete(g)?c=!1:(this._classList.add(g),c=!0),this._updateClassList(),c}_onMouseEvent(g){this._update(g.point)}_getAnchor(g){if(this.options.anchor)return this.options.anchor;const c=this._map,p=this._container,x=this._pos;if(!c||!p||!x)return"bottom";const S=p.offsetWidth,A=p.offsetHeight,P=x.xc.transform.width-S/2;if(x.y+gc.transform.height-A){if(P)return"bottom-left";if(z)return"bottom-right"}return P?"left":z?"right":"bottom"}_updateClassList(){const g=this._container;if(!g)return;const c=[...this._classList];c.push("mapboxgl-popup"),this._anchor&&c.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&c.push("mapboxgl-popup-track-pointer"),g.className=c.join(" ")}_update(g){const c=this._map,p=this._content;if(!c||!this._lngLat&&!this._trackPointer||!p)return;let x=this._container;if(x||(x=this._container=L("div","mapboxgl-popup",c.getContainer()),this._tip=L("div","mapboxgl-popup-tip",x),x.appendChild(p)),this.options.maxWidth&&x.style.maxWidth!==this.options.maxWidth&&(x.style.maxWidth=this.options.maxWidth),c.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Kl(this._lngLat,this._pos,c.transform)),!this._trackPointer||g){const S=this._pos=this._trackPointer&&g?g:c.project(this._lngLat),A=_l(this.options.offset),P=this._anchor=this._getAnchor(A.y),z=_l(this.options.offset,P),O=S.add(z).round();c._requestDomTask(()=>{this._container&&P&&(this._container.style.transform=`${Os[P]} translate(${O.x}px,${O.y}px)`)})}if(!this._marker&&c._showingGlobe()){const S=a.isLngLatBehindGlobe(c.transform,this._lngLat)?0:1;this._setOpacity(S)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const g=this._container.querySelector(Zu);g&&g.focus()}_onClose(){this.remove()}_setOpacity(g){this._container&&(this._container.style.opacity=`${g}`),this._content&&(this._content.style.pointerEvents=g?"auto":"none")}},Marker:ml,Style:on,LngLat:a.LngLat,LngLatBounds:a.LngLatBounds,Point:a.pointGeometry,MercatorCoordinate:a.MercatorCoordinate,FreeCameraOptions:si,Evented:a.Evented,config:a.config,prewarm:function(){tr().acquire(ci)},clearPrewarmedResources:function(){const g=Ri;g&&(g.isPreloaded()&&g.numActive()===1?(g.release(ci),Ri=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return a.config.ACCESS_TOKEN},set accessToken(g){a.config.ACCESS_TOKEN=g},get baseApiUrl(){return a.config.API_URL},set baseApiUrl(g){a.config.API_URL=g},get workerCount(){return Ci.workerCount},set workerCount(g){Ci.workerCount=g},get maxParallelImageRequests(){return a.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(g){a.config.MAX_PARALLEL_IMAGE_REQUESTS=g},clearStorage(g){a.clearTileCache(g)},workerUrl:"",workerClass:null,setNow:a.exported.setNow,restoreNow:a.exported.restoreNow};return Us});var _=u;return _})})(mapboxGl);var mapboxgl=mapboxGl.exports,d2r=Math.PI/180,r2d=180/Math.PI;function tileToBBOX(e){var r=tile2lon(e[0]+1,e[2]),n=tile2lon(e[0],e[2]),o=tile2lat(e[1]+1,e[2]),u=tile2lat(e[1],e[2]);return[n,o,r,u]}function tileToGeoJSON(e){var r=tileToBBOX(e),n={type:"Polygon",coordinates:[[[r[0],r[3]],[r[0],r[1]],[r[2],r[1]],[r[2],r[3]],[r[0],r[3]]]]};return n}function tile2lon(e,r){return e/Math.pow(2,r)*360-180}function tile2lat(e,r){var n=Math.PI-2*Math.PI*e/Math.pow(2,r);return r2d*Math.atan(.5*(Math.exp(n)-Math.exp(-n)))}function pointToTile(e,r,n){var o=pointToTileFraction(e,r,n);return o[0]=Math.floor(o[0]),o[1]=Math.floor(o[1]),o}function getChildren(e){return[[e[0]*2,e[1]*2,e[2]+1],[e[0]*2+1,e[1]*2,e[2]+1],[e[0]*2+1,e[1]*2+1,e[2]+1],[e[0]*2,e[1]*2+1,e[2]+1]]}function getParent(e){return[e[0]>>1,e[1]>>1,e[2]-1]}function getSiblings(e){return getChildren(getParent(e))}function hasSiblings(e,r){for(var n=getSiblings(e),o=0;o0;n--){var o=0,u=1<0;u--){var f=1<>>32-u,_=o[1]>>>32-u;return[f,_,u]}function getBboxZoom(e){for(var r=28,n=0;n=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function distance(e,r,n){n===void 0&&(n={});var o=getCoord(e),u=getCoord(r),f=degreesToRadians(u[1]-o[1]),_=degreesToRadians(u[0]-o[0]),a=degreesToRadians(o[1]),w=degreesToRadians(u[1]),E=Math.pow(Math.sin(f/2),2)+Math.pow(Math.sin(_/2),2)*Math.cos(a)*Math.cos(w);return radiansToLength(2*Math.atan2(Math.sqrt(E),Math.sqrt(1-E)),n.units)}function bboxPolygon(e,r){r===void 0&&(r={});var n=Number(e[0]),o=Number(e[1]),u=Number(e[2]),f=Number(e[3]);if(e.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var _=[n,o],a=[n,f],w=[u,f],E=[u,o];return polygon([[_,E,w,a,_]],r.properties,{bbox:e,id:r.id})}function destination(e,r,n,o){o===void 0&&(o={});var u=getCoord(e),f=degreesToRadians(u[0]),_=degreesToRadians(u[1]),a=degreesToRadians(n),w=lengthToRadians(r,o.units),E=Math.asin(Math.sin(_)*Math.cos(w)+Math.cos(_)*Math.sin(w)*Math.cos(a)),M=f+Math.atan2(Math.sin(a)*Math.sin(w)*Math.cos(_),Math.cos(w)-Math.sin(_)*Math.sin(E)),k=radiansToDegrees(M),L=radiansToDegrees(E);return point([k,L],o.properties)}function bearing(e,r,n){if(n===void 0&&(n={}),n.final===!0)return calculateFinalBearing(e,r);var o=getCoord(e),u=getCoord(r),f=degreesToRadians(o[0]),_=degreesToRadians(u[0]),a=degreesToRadians(o[1]),w=degreesToRadians(u[1]),E=Math.sin(_-f)*Math.cos(w),M=Math.cos(a)*Math.sin(w)-Math.sin(a)*Math.cos(w)*Math.cos(_-f);return radiansToDegrees(Math.atan2(E,M))}function calculateFinalBearing(e,r){var n=bearing(r,e);return n=(n+180)%360,n}function midpoint(e,r){var n=distance(e,r),o=bearing(e,r),u=destination(e,n/2,o);return u}var RADIUS=6378137;function area(e){return geomReduce(e,function(r,n){return r+calculateArea(n)},0)}function calculateArea(e){var r=0,n;switch(e.type){case"Polygon":return polygonArea(e.coordinates);case"MultiPolygon":for(n=0;n0){r+=Math.abs(ringArea(e[0]));for(var n=1;n2){for(a=0;a=this.width||r>=this.height?0:this.getBit(r*this.width+e)},setBitXY(e,r){this.setBit(r*this.width+e)},clearBitXY(e,r){this.clearBit(r*this.width+e)},toggleBitXY(e,r){this.toggleBit(r*this.width+e)}};function getSlot(e){return e>>3}function getShift(e){return 7-(e&7)}function setBitMethods(e){for(const r in bitMethods)e.prototype[r]=bitMethods[r]}function checkProcessable(e,r={}){let{bitDepth:n,alpha:o,colorModel:u,components:f,channels:_}=r;if(typeof e!="string"||e.length===0)throw new TypeError("processName must be a string");if(n&&(Array.isArray(n)||(n=[n]),!n.includes(this.bitDepth)))throw new TypeError(`The process: ${e} can only be applied if bit depth is in: ${n}`);if(o&&(Array.isArray(o)||(o=[o]),!o.includes(this.alpha)))throw new TypeError(`The process: ${e} can only be applied if alpha is in: ${o}`);if(u&&(Array.isArray(u)||(u=[u]),!u.includes(this.colorModel)))throw new TypeError(`The process: ${e} can only be applied if color model is in: ${u}`);if(f&&(Array.isArray(f)||(f=[f]),!f.includes(this.components))){let a=`The process: ${e} can only be applied if the number of components is in: ${f}`;throw f.length===1&&f[0]===1?new TypeError(`${a}.\rYou should transform your image using "image.grey()" before applying the algorithm.`):new TypeError(a)}if(_&&(Array.isArray(_)||(_=[_]),!_.includes(this.channels)))throw new TypeError(`The process: ${e} can only be applied if the number of channels is in: ${_}`)}function createBlob(e,r){e=e||[],r=r||{},typeof r=="string"&&(r={type:r});try{return new Blob(e,r)}catch(f){if(f.name!=="TypeError")throw f;for(var n=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,o=new n,u=0;u>1)+7),E=new Uint8Array(w>>3<<3);for(;f<_;){let M=o.charCodeAt(f++);if(M>=55296&&M<=56319){if(f<_){const k=o.charCodeAt(f);(k&64512)===56320&&(++f,M=((M&1023)<<10)+(k&1023)+65536)}if(M>=55296&&M<=56319)continue}if(a+4>E.length){w+=8,w*=1+f/o.length*2,w=w>>3<<3;const k=new Uint8Array(w);k.set(E),E=k}if((M&4294967168)===0){E[a++]=M;continue}else if((M&4294965248)===0)E[a++]=M>>6&31|192;else if((M&4294901760)===0)E[a++]=M>>12&15|224,E[a++]=M>>6&63|128;else if((M&4292870144)===0)E[a++]=M>>18&7|240,E[a++]=M>>12&63|128,E[a++]=M>>6&63|128;else continue;E[a++]=M&63|128}return E.slice(0,a)};function n(o="utf-8",u={fatal:!1}){if(o!=="utf-8")throw new RangeError(`Failed to construct 'TextDecoder': The encoding label provided ('${o}') is invalid.`);if(u.fatal)throw new Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}Object.defineProperty(n.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(n.prototype,"fatal",{value:!1}),Object.defineProperty(n.prototype,"ignoreBOM",{value:!1}),n.prototype.decode=function(o,u={stream:!1}){if(u.stream)throw new Error("Failed to decode: the 'stream' option is unsupported.");const f=new Uint8Array(o);let _=0;const a=f.length,w=[];for(;_65535&&(D-=65536,w.push(D>>>10&1023|55296),D=56320|D&1023),w.push(D)}}return String.fromCharCode.apply(null,w)},e.TextEncoder=r,e.TextDecoder=n})(typeof window<"u"?window:typeof self<"u"?self:globalThis);function decode$5(e,r="utf8"){return new TextDecoder(r).decode(e)}const encoder$1=new TextEncoder;function encode$3(e){return encoder$1.encode(e)}const defaultByteLength$1=1024*8;class IOBuffer$4{constructor(r=defaultByteLength$1,n={}){let o=!1;typeof r=="number"?r=new ArrayBuffer(r):(o=!0,this.lastWrittenByte=r.byteLength);const u=n.offset?n.offset>>>0:0,f=r.byteLength-u;let _=u;(ArrayBuffer.isView(r)||r instanceof IOBuffer$4)&&(r.byteLength!==r.buffer.byteLength&&(_=r.byteOffset+u),r=r.buffer),o?this.lastWrittenByte=f:this.lastWrittenByte=0,this.buffer=r,this.length=f,this.byteLength=f,this.byteOffset=_,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,_,f),this._mark=0,this._marks=[]}available(r=1){return this.offset+r<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(r=1){return this.offset+=r,this}back(r=1){return this.offset-=r,this}seek(r){return this.offset=r,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const r=this._marks.pop();if(r===void 0)throw new Error("Mark stack empty");return this.seek(r),this}rewind(){return this.offset=0,this}ensureAvailable(r=1){if(!this.available(r)){const o=(this.offset+r)*2,u=new Uint8Array(o);u.set(new Uint8Array(this.buffer)),this.buffer=u.buffer,this.length=this.byteLength=o,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(r=1){const n=new Uint8Array(r);for(let o=0;othis.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}var IOBuffer$5=Object.freeze(Object.defineProperty({__proto__:null,IOBuffer:IOBuffer$4},Symbol.toStringTag,{value:"Module"})),require$$0$4=getAugmentedNamespace(IOBuffer$5),constants$7={BITMAPV5HEADER:{LogicalColorSpace:{LCS_CALIBRATED_RGB:0,LCS_sRGB:1934772034,LCS_WINDOWS_COLOR_SPACE:1466527264},Compression:{BI_RGB:0,BI_RLE8:1,BI_RLE4:2,BI_BITFIELDS:3,BI_JPEG:4,BI_PNG:5,BI_CMYK:11,BI_CMYKRLE8:12,BI_CMYKRLE4:13},GamutMappingIntent:{LCS_GM_ABS_COLORIMETRIC:8,LCS_GM_BUSINESS:1,LCS_GM_GRAPHICS:2,LCS_GM_IMAGES:4}}};const{IOBuffer:IOBuffer$3}=require$$0$4,constants$6=constants$7,tableLeft=[];for(let e=0;e<=8;e++)tableLeft.push(255<=0;D--){const U=D===0;r.reset(),r.skip(D*n);for(let q=0;q>L)),Y&&(M+=f||0,r.skip(u),k=M%8,L=8-k)}}n>o&&(r.reset(),r.skip(a-1),r.writeUint8(0))}writeColorTable(){this.encoded.writeUint32(0).writeUint32(16777215)}writeBitmapFileHeader(r){this.encoded.writeChars("BM").writeInt32(this.encoded.lastWrittenByte).writeUint16(0).writeUint16(0).writeUint32(r)}writeBitmapV5Header(){const n=Math.floor((this.bitDepth*this.width+31)/32)*4*this.height;this.encoded.writeUint32(124).writeInt32(this.width).writeInt32(this.height).writeUint16(1).writeUint16(this.bitDepth).writeUint32(constants$6.BITMAPV5HEADER.Compression.BI_RGB).writeUint32(n).writeInt32(0).writeInt32(0).writeUint32(Math.pow(2,this.bitDepth)).writeUint32(Math.pow(2,this.bitDepth)).writeUint32(4278190080).writeUint32(16711680).writeUint32(65280).writeUint32(255).writeUint32(constants$6.BITMAPV5HEADER.LogicalColorSpace.LCS_sRGB).skip(36).skip(12).writeUint32(constants$6.BITMAPV5HEADER.GamutMappingIntent.LCS_GM_IMAGES).skip(12)}}var BMPEncoder_1=BMPEncoder;const Encoder=BMPEncoder_1;var encode$2=function(r){return new Encoder(r).encode()};/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(e){let r=e.length;for(;--r>=0;)e[r]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(e,r,n,o,u){this.static_tree=e,this.extra_bits=r,this.extra_base=n,this.elems=o,this.max_length=u,this.has_stree=e&&e.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(e,r){this.dyn_tree=e,this.max_code=0,this.stat_desc=r}const d_code=e=>e<256?_dist_code[e]:_dist_code[256+(e>>>7)],put_short=(e,r)=>{e.pending_buf[e.pending++]=r&255,e.pending_buf[e.pending++]=r>>>8&255},send_bits=(e,r,n)=>{e.bi_valid>Buf_size-n?(e.bi_buf|=r<>Buf_size-e.bi_valid,e.bi_valid+=n-Buf_size):(e.bi_buf|=r<{send_bits(e,n[r*2],n[r*2+1])},bi_reverse=(e,r)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--r>0);return n>>>1},bi_flush=e=>{e.bi_valid===16?(put_short(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},gen_bitlen=(e,r)=>{const n=r.dyn_tree,o=r.max_code,u=r.stat_desc.static_tree,f=r.stat_desc.has_stree,_=r.stat_desc.extra_bits,a=r.stat_desc.extra_base,w=r.stat_desc.max_length;let E,M,k,L,D,U,q=0;for(L=0;L<=MAX_BITS$1;L++)e.bl_count[L]=0;for(n[e.heap[e.heap_max]*2+1]=0,E=e.heap_max+1;Ew&&(L=w,q++),n[M*2+1]=L,!(M>o)&&(e.bl_count[L]++,D=0,M>=a&&(D=_[M-a]),U=n[M*2],e.opt_len+=U*(L+D),f&&(e.static_len+=U*(u[M*2+1]+D)));if(q!==0){do{for(L=w-1;e.bl_count[L]===0;)L--;e.bl_count[L]--,e.bl_count[L+1]+=2,e.bl_count[w]--,q-=2}while(q>0);for(L=w;L!==0;L--)for(M=e.bl_count[L];M!==0;)k=e.heap[--E],!(k>o)&&(n[k*2+1]!==L&&(e.opt_len+=(L-n[k*2+1])*n[k*2],n[k*2+1]=L),M--)}},gen_codes=(e,r,n)=>{const o=new Array(MAX_BITS$1+1);let u=0,f,_;for(f=1;f<=MAX_BITS$1;f++)o[f]=u=u+n[f-1]<<1;for(_=0;_<=r;_++){let a=e[_*2+1];a!==0&&(e[_*2]=bi_reverse(o[a]++,a))}},tr_static_init=()=>{let e,r,n,o,u;const f=new Array(MAX_BITS$1+1);for(n=0,o=0;o>=7;o{let r;for(r=0;r{e.bi_valid>8?put_short(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},copy_block=(e,r,n,o)=>{bi_windup(e),o&&(put_short(e,n),put_short(e,~n)),e.pending_buf.set(e.window.subarray(r,r+n),e.pending),e.pending+=n},smaller=(e,r,n,o)=>{const u=r*2,f=n*2;return e[u]{const o=e.heap[n];let u=n<<1;for(;u<=e.heap_len&&(u{let o,u,f=0,_,a;if(e.last_lit!==0)do o=e.pending_buf[e.d_buf+f*2]<<8|e.pending_buf[e.d_buf+f*2+1],u=e.pending_buf[e.l_buf+f],f++,o===0?send_code(e,u,r):(_=_length_code[u],send_code(e,_+LITERALS$1+1,r),a=extra_lbits[_],a!==0&&(u-=base_length[_],send_bits(e,u,a)),o--,_=d_code(o),send_code(e,_,n),a=extra_dbits[_],a!==0&&(o-=base_dist[_],send_bits(e,o,a)));while(f{const n=r.dyn_tree,o=r.stat_desc.static_tree,u=r.stat_desc.has_stree,f=r.stat_desc.elems;let _,a,w=-1,E;for(e.heap_len=0,e.heap_max=HEAP_SIZE$1,_=0;_>1;_>=1;_--)pqdownheap(e,n,_);E=f;do _=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pqdownheap(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=_,e.heap[--e.heap_max]=a,n[E*2]=n[_*2]+n[a*2],e.depth[E]=(e.depth[_]>=e.depth[a]?e.depth[_]:e.depth[a])+1,n[_*2+1]=n[a*2+1]=E,e.heap[1]=E++,pqdownheap(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],gen_bitlen(e,r),gen_codes(n,w,e.bl_count)},scan_tree=(e,r,n)=>{let o,u=-1,f,_=r[0*2+1],a=0,w=7,E=4;for(_===0&&(w=138,E=3),r[(n+1)*2+1]=65535,o=0;o<=n;o++)f=_,_=r[(o+1)*2+1],!(++a{let o,u=-1,f,_=r[0*2+1],a=0,w=7,E=4;for(_===0&&(w=138,E=3),o=0;o<=n;o++)if(f=_,_=r[(o+1)*2+1],!(++a{let r;for(scan_tree(e,e.dyn_ltree,e.l_desc.max_code),scan_tree(e,e.dyn_dtree,e.d_desc.max_code),build_tree(e,e.bl_desc),r=BL_CODES$1-1;r>=3&&e.bl_tree[bl_order[r]*2+1]===0;r--);return e.opt_len+=3*(r+1)+5+5+4,r},send_all_trees=(e,r,n,o)=>{let u;for(send_bits(e,r-257,5),send_bits(e,n-1,5),send_bits(e,o-4,4),u=0;u{let r=4093624447,n;for(n=0;n<=31;n++,r>>>=1)if(r&1&&e.dyn_ltree[n*2]!==0)return Z_BINARY;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Z_TEXT;for(n=32;n{static_init_done||(tr_static_init(),static_init_done=!0),e.l_desc=new TreeDesc(e.dyn_ltree,static_l_desc),e.d_desc=new TreeDesc(e.dyn_dtree,static_d_desc),e.bl_desc=new TreeDesc(e.bl_tree,static_bl_desc),e.bi_buf=0,e.bi_valid=0,init_block(e)},_tr_stored_block$1=(e,r,n,o)=>{send_bits(e,(STORED_BLOCK<<1)+(o?1:0),3),copy_block(e,r,n,!0)},_tr_align$1=e=>{send_bits(e,STATIC_TREES<<1,3),send_code(e,END_BLOCK,static_ltree),bi_flush(e)},_tr_flush_block$1=(e,r,n,o)=>{let u,f,_=0;e.level>0?(e.strm.data_type===Z_UNKNOWN$1&&(e.strm.data_type=detect_data_type(e)),build_tree(e,e.l_desc),build_tree(e,e.d_desc),_=build_bl_tree(e),u=e.opt_len+3+7>>>3,f=e.static_len+3+7>>>3,f<=u&&(u=f)):u=f=n+5,n+4<=u&&r!==-1?_tr_stored_block$1(e,r,n,o):e.strategy===Z_FIXED$1||f===u?(send_bits(e,(STATIC_TREES<<1)+(o?1:0),3),compress_block(e,static_ltree,static_dtree)):(send_bits(e,(DYN_TREES<<1)+(o?1:0),3),send_all_trees(e,e.l_desc.max_code+1,e.d_desc.max_code+1,_+1),compress_block(e,e.dyn_ltree,e.dyn_dtree)),init_block(e),o&&bi_windup(e)},_tr_tally$1=(e,r,n)=>(e.pending_buf[e.d_buf+e.last_lit*2]=r>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=r&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,r===0?e.dyn_ltree[n*2]++:(e.matches++,r--,e.dyn_ltree[(_length_code[n]+LITERALS$1+1)*2]++,e.dyn_dtree[d_code(r)*2]++),e.last_lit===e.lit_bufsize-1);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(e,r,n,o)=>{let u=e&65535|0,f=e>>>16&65535|0,_=0;for(;n!==0;){_=n>2e3?2e3:n,n-=_;do u=u+r[o++]|0,f=f+u|0;while(--_);u%=65521,f%=65521}return u|f<<16|0};var adler32_1=adler32;const makeTable=()=>{let e,r=[];for(var n=0;n<256;n++){e=n;for(var o=0;o<8;o++)e=e&1?3988292384^e>>>1:e>>>1;r[n]=e}return r},crcTable$1=new Uint32Array(makeTable()),crc32=(e,r,n,o)=>{const u=crcTable$1,f=o+n;e^=-1;for(let _=o;_>>8^u[(e^r[_])&255];return e^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2$1={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2$1,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(e,r)=>(e.msg=messages[r],r),rank=e=>(e<<1)-(e>4?9:0),zero=e=>{let r=e.length;for(;--r>=0;)e[r]=0};let HASH_ZLIB=(e,r,n)=>(r<{const r=e.state;let n=r.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(r.pending_buf.subarray(r.pending_out,r.pending_out+n),e.next_out),e.next_out+=n,r.pending_out+=n,e.total_out+=n,e.avail_out-=n,r.pending-=n,r.pending===0&&(r.pending_out=0))},flush_block_only=(e,r)=>{_tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,r),e.block_start=e.strstart,flush_pending(e.strm)},put_byte=(e,r)=>{e.pending_buf[e.pending++]=r},putShortMSB=(e,r)=>{e.pending_buf[e.pending++]=r>>>8&255,e.pending_buf[e.pending++]=r&255},read_buf=(e,r,n,o)=>{let u=e.avail_in;return u>o&&(u=o),u===0?0:(e.avail_in-=u,r.set(e.input.subarray(e.next_in,e.next_in+u),n),e.state.wrap===1?e.adler=adler32_1(e.adler,r,u,n):e.state.wrap===2&&(e.adler=crc32_1(e.adler,r,u,n)),e.next_in+=u,e.total_in+=u,u)},longest_match=(e,r)=>{let n=e.max_chain_length,o=e.strstart,u,f,_=e.prev_length,a=e.nice_match;const w=e.strstart>e.w_size-MIN_LOOKAHEAD?e.strstart-(e.w_size-MIN_LOOKAHEAD):0,E=e.window,M=e.w_mask,k=e.prev,L=e.strstart+MAX_MATCH;let D=E[o+_-1],U=E[o+_];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(u=r,!(E[u+_]!==U||E[u+_-1]!==D||E[u]!==E[o]||E[++u]!==E[o+1])){o+=2,u++;do;while(E[++o]===E[++u]&&E[++o]===E[++u]&&E[++o]===E[++u]&&E[++o]===E[++u]&&E[++o]===E[++u]&&E[++o]===E[++u]&&E[++o]===E[++u]&&E[++o]===E[++u]&&o_){if(e.match_start=r,_=f,f>=a)break;D=E[o+_-1],U=E[o+_]}}while((r=k[r&M])>w&&--n!==0);return _<=e.lookahead?_:e.lookahead},fill_window=e=>{const r=e.w_size;let n,o,u,f,_;do{if(f=e.window_size-e.lookahead-e.strstart,e.strstart>=r+(r-MIN_LOOKAHEAD)){e.window.set(e.window.subarray(r,r+r),0),e.match_start-=r,e.strstart-=r,e.block_start-=r,o=e.hash_size,n=o;do u=e.head[--n],e.head[n]=u>=r?u-r:0;while(--o);o=r,n=o;do u=e.prev[--n],e.prev[n]=u>=r?u-r:0;while(--o);f+=r}if(e.strm.avail_in===0)break;if(o=read_buf(e.strm,e.window,e.strstart+e.lookahead,f),e.lookahead+=o,e.lookahead+e.insert>=MIN_MATCH)for(_=e.strstart-e.insert,e.ins_h=e.window[_],e.ins_h=HASH(e,e.ins_h,e.window[_+1]);e.insert&&(e.ins_h=HASH(e,e.ins_h,e.window[_+MIN_MATCH-1]),e.prev[_&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=_,_++,e.insert--,!(e.lookahead+e.insert{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(fill_window(e),e.lookahead===0&&r===Z_NO_FLUSH$2)return BS_NEED_MORE;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const o=e.block_start+n;if((e.strstart===0||e.strstart>=o)&&(e.lookahead=e.strstart-o,e.strstart=o,flush_block_only(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-MIN_LOOKAHEAD&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,r===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):(e.strstart>e.block_start&&(flush_block_only(e,!1),e.strm.avail_out===0),BS_NEED_MORE)},deflate_fast=(e,r)=>{let n,o;for(;;){if(e.lookahead=MIN_MATCH&&(e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n)),e.match_length>=MIN_MATCH)if(o=_tr_tally(e,e.strstart-e.match_start,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=MIN_MATCH){e.match_length--;do e.strstart++,e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+1]);else o=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(o&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=e.strstart{let n,o,u;for(;;){if(e.lookahead=MIN_MATCH&&(e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=MIN_MATCH-1,n!==0&&e.prev_length4096)&&(e.match_length=MIN_MATCH-1)),e.prev_length>=MIN_MATCH&&e.match_length<=e.prev_length){u=e.strstart+e.lookahead-MIN_MATCH,o=_tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-MIN_MATCH),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=u&&(e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=MIN_MATCH-1,e.strstart++,o&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}else if(e.match_available){if(o=_tr_tally(e,0,e.window[e.strstart-1]),o&&flush_block_only(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return BS_NEED_MORE}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(o=_tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart{let n,o,u,f;const _=e.window;for(;;){if(e.lookahead<=MAX_MATCH){if(fill_window(e),e.lookahead<=MAX_MATCH&&r===Z_NO_FLUSH$2)return BS_NEED_MORE;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=MIN_MATCH&&e.strstart>0&&(u=e.strstart-1,o=_[u],o===_[++u]&&o===_[++u]&&o===_[++u])){f=e.strstart+MAX_MATCH;do;while(o===_[++u]&&o===_[++u]&&o===_[++u]&&o===_[++u]&&o===_[++u]&&o===_[++u]&&o===_[++u]&&o===_[++u]&&ue.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=MIN_MATCH?(n=_tr_tally(e,1,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,r===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(e,r)=>{let n;for(;;){if(e.lookahead===0&&(fill_window(e),e.lookahead===0)){if(r===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(e.match_length=0,n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,r===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(e,r,n,o,u){this.good_length=e,this.max_lazy=r,this.nice_length=n,this.max_chain=o,this.func=u}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=e=>{e.window_size=2*e.w_size,zero(e.head),e.max_lazy_match=configuration_table[e.level].max_lazy,e.good_match=configuration_table[e.level].good_length,e.nice_match=configuration_table[e.level].nice_length,e.max_chain_length=configuration_table[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=MIN_MATCH-1,e.match_available=0,e.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateResetKeep=e=>{if(!e||!e.state)return err(e,Z_STREAM_ERROR$2);e.total_in=e.total_out=0,e.data_type=Z_UNKNOWN;const r=e.state;return r.pending=0,r.pending_out=0,r.wrap<0&&(r.wrap=-r.wrap),r.status=r.wrap?INIT_STATE:BUSY_STATE,e.adler=r.wrap===2?0:1,r.last_flush=Z_NO_FLUSH$2,_tr_init(r),Z_OK$3},deflateReset=e=>{const r=deflateResetKeep(e);return r===Z_OK$3&&lm_init(e.state),r},deflateSetHeader=(e,r)=>!e||!e.state||e.state.wrap!==2?Z_STREAM_ERROR$2:(e.state.gzhead=r,Z_OK$3),deflateInit2=(e,r,n,o,u,f)=>{if(!e)return Z_STREAM_ERROR$2;let _=1;if(r===Z_DEFAULT_COMPRESSION$1&&(r=6),o<0?(_=0,o=-o):o>15&&(_=2,o-=16),u<1||u>MAX_MEM_LEVEL||n!==Z_DEFLATED$2||o<8||o>15||r<0||r>9||f<0||f>Z_FIXED)return err(e,Z_STREAM_ERROR$2);o===8&&(o=9);const a=new DeflateState;return e.state=a,a.strm=e,a.wrap=_,a.gzhead=null,a.w_bits=o,a.w_size=1<deflateInit2(e,r,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(e,r)=>{let n,o;if(!e||!e.state||r>Z_BLOCK$1||r<0)return e?err(e,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const u=e.state;if(!e.output||!e.input&&e.avail_in!==0||u.status===FINISH_STATE&&r!==Z_FINISH$3)return err(e,e.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);u.strm=e;const f=u.last_flush;if(u.last_flush=r,u.status===INIT_STATE)if(u.wrap===2)e.adler=0,put_byte(u,31),put_byte(u,139),put_byte(u,8),u.gzhead?(put_byte(u,(u.gzhead.text?1:0)+(u.gzhead.hcrc?2:0)+(u.gzhead.extra?4:0)+(u.gzhead.name?8:0)+(u.gzhead.comment?16:0)),put_byte(u,u.gzhead.time&255),put_byte(u,u.gzhead.time>>8&255),put_byte(u,u.gzhead.time>>16&255),put_byte(u,u.gzhead.time>>24&255),put_byte(u,u.level===9?2:u.strategy>=Z_HUFFMAN_ONLY||u.level<2?4:0),put_byte(u,u.gzhead.os&255),u.gzhead.extra&&u.gzhead.extra.length&&(put_byte(u,u.gzhead.extra.length&255),put_byte(u,u.gzhead.extra.length>>8&255)),u.gzhead.hcrc&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending,0)),u.gzindex=0,u.status=EXTRA_STATE):(put_byte(u,0),put_byte(u,0),put_byte(u,0),put_byte(u,0),put_byte(u,0),put_byte(u,u.level===9?2:u.strategy>=Z_HUFFMAN_ONLY||u.level<2?4:0),put_byte(u,OS_CODE),u.status=BUSY_STATE);else{let _=Z_DEFLATED$2+(u.w_bits-8<<4)<<8,a=-1;u.strategy>=Z_HUFFMAN_ONLY||u.level<2?a=0:u.level<6?a=1:u.level===6?a=2:a=3,_|=a<<6,u.strstart!==0&&(_|=PRESET_DICT),_+=31-_%31,u.status=BUSY_STATE,putShortMSB(u,_),u.strstart!==0&&(putShortMSB(u,e.adler>>>16),putShortMSB(u,e.adler&65535)),e.adler=1}if(u.status===EXTRA_STATE)if(u.gzhead.extra){for(n=u.pending;u.gzindex<(u.gzhead.extra.length&65535)&&!(u.pending===u.pending_buf_size&&(u.gzhead.hcrc&&u.pending>n&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending-n,n)),flush_pending(e),n=u.pending,u.pending===u.pending_buf_size));)put_byte(u,u.gzhead.extra[u.gzindex]&255),u.gzindex++;u.gzhead.hcrc&&u.pending>n&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending-n,n)),u.gzindex===u.gzhead.extra.length&&(u.gzindex=0,u.status=NAME_STATE)}else u.status=NAME_STATE;if(u.status===NAME_STATE)if(u.gzhead.name){n=u.pending;do{if(u.pending===u.pending_buf_size&&(u.gzhead.hcrc&&u.pending>n&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending-n,n)),flush_pending(e),n=u.pending,u.pending===u.pending_buf_size)){o=1;break}u.gzindexn&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending-n,n)),o===0&&(u.gzindex=0,u.status=COMMENT_STATE)}else u.status=COMMENT_STATE;if(u.status===COMMENT_STATE)if(u.gzhead.comment){n=u.pending;do{if(u.pending===u.pending_buf_size&&(u.gzhead.hcrc&&u.pending>n&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending-n,n)),flush_pending(e),n=u.pending,u.pending===u.pending_buf_size)){o=1;break}u.gzindexn&&(e.adler=crc32_1(e.adler,u.pending_buf,u.pending-n,n)),o===0&&(u.status=HCRC_STATE)}else u.status=HCRC_STATE;if(u.status===HCRC_STATE&&(u.gzhead.hcrc?(u.pending+2>u.pending_buf_size&&flush_pending(e),u.pending+2<=u.pending_buf_size&&(put_byte(u,e.adler&255),put_byte(u,e.adler>>8&255),e.adler=0,u.status=BUSY_STATE)):u.status=BUSY_STATE),u.pending!==0){if(flush_pending(e),e.avail_out===0)return u.last_flush=-1,Z_OK$3}else if(e.avail_in===0&&rank(r)<=rank(f)&&r!==Z_FINISH$3)return err(e,Z_BUF_ERROR$1);if(u.status===FINISH_STATE&&e.avail_in!==0)return err(e,Z_BUF_ERROR$1);if(e.avail_in!==0||u.lookahead!==0||r!==Z_NO_FLUSH$2&&u.status!==FINISH_STATE){let _=u.strategy===Z_HUFFMAN_ONLY?deflate_huff(u,r):u.strategy===Z_RLE?deflate_rle(u,r):configuration_table[u.level].func(u,r);if((_===BS_FINISH_STARTED||_===BS_FINISH_DONE)&&(u.status=FINISH_STATE),_===BS_NEED_MORE||_===BS_FINISH_STARTED)return e.avail_out===0&&(u.last_flush=-1),Z_OK$3;if(_===BS_BLOCK_DONE&&(r===Z_PARTIAL_FLUSH?_tr_align(u):r!==Z_BLOCK$1&&(_tr_stored_block(u,0,0,!1),r===Z_FULL_FLUSH$1&&(zero(u.head),u.lookahead===0&&(u.strstart=0,u.block_start=0,u.insert=0))),flush_pending(e),e.avail_out===0))return u.last_flush=-1,Z_OK$3}return r!==Z_FINISH$3?Z_OK$3:u.wrap<=0?Z_STREAM_END$3:(u.wrap===2?(put_byte(u,e.adler&255),put_byte(u,e.adler>>8&255),put_byte(u,e.adler>>16&255),put_byte(u,e.adler>>24&255),put_byte(u,e.total_in&255),put_byte(u,e.total_in>>8&255),put_byte(u,e.total_in>>16&255),put_byte(u,e.total_in>>24&255)):(putShortMSB(u,e.adler>>>16),putShortMSB(u,e.adler&65535)),flush_pending(e),u.wrap>0&&(u.wrap=-u.wrap),u.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=e=>{if(!e||!e.state)return Z_STREAM_ERROR$2;const r=e.state.status;return r!==INIT_STATE&&r!==EXTRA_STATE&&r!==NAME_STATE&&r!==COMMENT_STATE&&r!==HCRC_STATE&&r!==BUSY_STATE&&r!==FINISH_STATE?err(e,Z_STREAM_ERROR$2):(e.state=null,r===BUSY_STATE?err(e,Z_DATA_ERROR$2):Z_OK$3)},deflateSetDictionary=(e,r)=>{let n=r.length;if(!e||!e.state)return Z_STREAM_ERROR$2;const o=e.state,u=o.wrap;if(u===2||u===1&&o.status!==INIT_STATE||o.lookahead)return Z_STREAM_ERROR$2;if(u===1&&(e.adler=adler32_1(e.adler,r,n,0)),o.wrap=0,n>=o.w_size){u===0&&(zero(o.head),o.strstart=0,o.block_start=0,o.insert=0);let w=new Uint8Array(o.w_size);w.set(r.subarray(n-o.w_size,n),0),r=w,n=o.w_size}const f=e.avail_in,_=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=r,fill_window(o);o.lookahead>=MIN_MATCH;){let w=o.strstart,E=o.lookahead-(MIN_MATCH-1);do o.ins_h=HASH(o,o.ins_h,o.window[w+MIN_MATCH-1]),o.prev[w&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=w,w++;while(--E);o.strstart=w,o.lookahead=MIN_MATCH-1,fill_window(o)}return o.strstart+=o.lookahead,o.block_start=o.strstart,o.insert=o.lookahead,o.lookahead=0,o.match_length=o.prev_length=MIN_MATCH-1,o.match_available=0,e.next_in=_,e.input=a,e.avail_in=f,o.wrap=u,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(!!n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const o in n)_has(n,o)&&(e[o]=n[o])}}return e},flattenChunks=e=>{let r=0;for(let o=0,u=e.length;o=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let r,n,o,u,f,_=e.length,a=0;for(u=0;u<_;u++)n=e.charCodeAt(u),(n&64512)===55296&&u+1<_&&(o=e.charCodeAt(u+1),(o&64512)===56320&&(n=65536+(n-55296<<10)+(o-56320),u++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(r=new Uint8Array(a),f=0,u=0;f>>6,r[f++]=128|n&63):n<65536?(r[f++]=224|n>>>12,r[f++]=128|n>>>6&63,r[f++]=128|n&63):(r[f++]=240|n>>>18,r[f++]=128|n>>>12&63,r[f++]=128|n>>>6&63,r[f++]=128|n&63);return r};const buf2binstring=(e,r)=>{if(r<65534&&e.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let o=0;o{const n=r||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,r));let o,u;const f=new Array(n*2);for(u=0,o=0;o4){f[u++]=65533,o+=a-1;continue}for(_&=a===2?31:a===3?15:7;a>1&&o1){f[u++]=65533;continue}_<65536?f[u++]=_:(_-=65536,f[u++]=55296|_>>10&1023,f[u++]=56320|_&1023)}return buf2binstring(f,u)},utf8border=(e,r)=>{r=r||e.length,r>e.length&&(r=e.length);let n=r-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?r:n+_utf8len[e[n]]>r?n:r},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2$1;function Deflate$1(e){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},e||{});let r=this.options;r.raw&&r.windowBits>0?r.windowBits=-r.windowBits:r.gzip&&r.windowBits>0&&r.windowBits<16&&(r.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let n=deflate_1$2.deflateInit2(this.strm,r.level,r.method,r.windowBits,r.memLevel,r.strategy);if(n!==Z_OK$2)throw new Error(messages[n]);if(r.header&&deflate_1$2.deflateSetHeader(this.strm,r.header),r.dictionary){let o;if(typeof r.dictionary=="string"?o=strings.string2buf(r.dictionary):toString$1$1.call(r.dictionary)==="[object ArrayBuffer]"?o=new Uint8Array(r.dictionary):o=r.dictionary,n=deflate_1$2.deflateSetDictionary(this.strm,o),n!==Z_OK$2)throw new Error(messages[n]);this._dict_set=!0}}Deflate$1.prototype.push=function(e,r){const n=this.strm,o=this.options.chunkSize;let u,f;if(this.ended)return!1;for(r===~~r?f=r:f=r===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof e=="string"?n.input=strings.string2buf(e):toString$1$1.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),(f===Z_SYNC_FLUSH||f===Z_FULL_FLUSH)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(u=deflate_1$2.deflate(n,f),u===Z_STREAM_END$2)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),u=deflate_1$2.deflateEnd(this.strm),this.onEnd(u),this.ended=!0,u===Z_OK$2;if(n.avail_out===0){this.onData(n.output);continue}if(f>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Deflate$1.prototype.onData=function(e){this.chunks.push(e)};Deflate$1.prototype.onEnd=function(e){e===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function deflate$1(e,r){const n=new Deflate$1(r);if(n.push(e,!0),n.err)throw n.msg||messages[n.err];return n.result}function deflateRaw$1(e,r){return r=r||{},r.raw=!0,deflate$1(e,r)}function gzip$1(e,r){return r=r||{},r.gzip=!0,deflate$1(e,r)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,constants$1$1=constants$2$1,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,constants:constants$1$1};const BAD$1=30,TYPE$1=12;var inffast=function(r,n){let o,u,f,_,a,w,E,M,k,L,D,U,q,Y,X,oe,W,K,ie,Te,ve,se,_e,ee;const ue=r.state;o=r.next_in,_e=r.input,u=o+(r.avail_in-5),f=r.next_out,ee=r.output,_=f-(n-r.avail_out),a=f+(r.avail_out-257),w=ue.dmax,E=ue.wsize,M=ue.whave,k=ue.wnext,L=ue.window,D=ue.hold,U=ue.bits,q=ue.lencode,Y=ue.distcode,X=(1<>>24,D>>>=K,U-=K,K=W>>>16&255,K===0)ee[f++]=W&65535;else if(K&16){ie=W&65535,K&=15,K&&(U>>=K,U-=K),U<15&&(D+=_e[o++]<>>24,D>>>=K,U-=K,K=W>>>16&255,K&16){if(Te=W&65535,K&=15,Uw){r.msg="invalid distance too far back",ue.mode=BAD$1;break e}if(D>>>=K,U-=K,K=f-_,Te>K){if(K=Te-K,K>M&&ue.sane){r.msg="invalid distance too far back",ue.mode=BAD$1;break e}if(ve=0,se=L,k===0){if(ve+=E-K,K2;)ee[f++]=se[ve++],ee[f++]=se[ve++],ee[f++]=se[ve++],ie-=3;ie&&(ee[f++]=se[ve++],ie>1&&(ee[f++]=se[ve++]))}else{ve=f-Te;do ee[f++]=ee[ve++],ee[f++]=ee[ve++],ee[f++]=ee[ve++],ie-=3;while(ie>2);ie&&(ee[f++]=ee[ve++],ie>1&&(ee[f++]=ee[ve++]))}}else if((K&64)===0){W=Y[(W&65535)+(D&(1<>3,o-=ie,U-=ie<<3,D&=(1<{const w=a.bits;let E=0,M=0,k=0,L=0,D=0,U=0,q=0,Y=0,X=0,oe=0,W,K,ie,Te,ve,se=null,_e=0,ee;const ue=new Uint16Array(MAXBITS+1),Me=new Uint16Array(MAXBITS+1);let ke=null,Qe=0,at,Ft,Qt;for(E=0;E<=MAXBITS;E++)ue[E]=0;for(M=0;M=1&&ue[L]===0;L--);if(D>L&&(D=L),L===0)return u[f++]=1<<24|64<<16|0,u[f++]=1<<24|64<<16|0,a.bits=1,0;for(k=1;k0&&(e===CODES$1||L!==1))return-1;for(Me[1]=0,E=1;EENOUGH_LENS$1||e===DISTS$1&&X>ENOUGH_DISTS$1)return 1;for(;;){at=E-q,_[M]ee?(Ft=ke[Qe+_[M]],Qt=se[_e+_[M]]):(Ft=32+64,Qt=0),W=1<>q)+K]=at<<24|Ft<<16|Qt|0;while(K!==0);for(W=1<>=1;if(W!==0?(oe&=W-1,oe+=W):oe=0,M++,--ue[E]===0){if(E===L)break;E=r[n+_[M]]}if(E>D&&(oe&Te)!==ie){for(q===0&&(q=D),ve+=k,U=E-q,Y=1<ENOUGH_LENS$1||e===DISTS$1&&X>ENOUGH_DISTS$1)return 1;ie=oe&Te,u[ie]=D<<24|U<<16|ve-f|0}}return oe!==0&&(u[ve+oe]=E-q<<24|64<<16|0),a.bits=D,0};var inftrees=inflate_table;const CODES=0,LENS=1,DISTS=2,{Z_FINISH:Z_FINISH$1,Z_BLOCK,Z_TREES,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR:Z_MEM_ERROR$1,Z_BUF_ERROR,Z_DEFLATED}=constants$2$1,HEAD=1,FLAGS=2,TIME=3,OS=4,EXLEN=5,EXTRA=6,NAME=7,COMMENT=8,HCRC=9,DICTID=10,DICT=11,TYPE=12,TYPEDO=13,STORED=14,COPY_=15,COPY=16,TABLE=17,LENLENS=18,CODELENS=19,LEN_=20,LEN=21,LENEXT=22,DIST=23,DISTEXT=24,MATCH=25,LIT=26,CHECK=27,LENGTH=28,DONE=29,BAD=30,MEM=31,SYNC=32,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,zswap32=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateResetKeep=e=>{if(!e||!e.state)return Z_STREAM_ERROR$1;const r=e.state;return e.total_in=e.total_out=r.total=0,e.msg="",r.wrap&&(e.adler=r.wrap&1),r.mode=HEAD,r.last=0,r.havedict=0,r.dmax=32768,r.head=null,r.hold=0,r.bits=0,r.lencode=r.lendyn=new Int32Array(ENOUGH_LENS),r.distcode=r.distdyn=new Int32Array(ENOUGH_DISTS),r.sane=1,r.back=-1,Z_OK$1},inflateReset=e=>{if(!e||!e.state)return Z_STREAM_ERROR$1;const r=e.state;return r.wsize=0,r.whave=0,r.wnext=0,inflateResetKeep(e)},inflateReset2=(e,r)=>{let n;if(!e||!e.state)return Z_STREAM_ERROR$1;const o=e.state;return r<0?(n=0,r=-r):(n=(r>>4)+1,r<48&&(r&=15)),r&&(r<8||r>15)?Z_STREAM_ERROR$1:(o.window!==null&&o.wbits!==r&&(o.window=null),o.wrap=n,o.wbits=r,inflateReset(e))},inflateInit2=(e,r)=>{if(!e)return Z_STREAM_ERROR$1;const n=new InflateState;e.state=n,n.window=null;const o=inflateReset2(e,r);return o!==Z_OK$1&&(e.state=null),o},inflateInit=e=>inflateInit2(e,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=e=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let r=0;for(;r<144;)e.lens[r++]=8;for(;r<256;)e.lens[r++]=9;for(;r<280;)e.lens[r++]=7;for(;r<288;)e.lens[r++]=8;for(inftrees(LENS,e.lens,0,288,lenfix,0,e.work,{bits:9}),r=0;r<32;)e.lens[r++]=5;inftrees(DISTS,e.lens,0,32,distfix,0,e.work,{bits:5}),virgin=!1}e.lencode=lenfix,e.lenbits=9,e.distcode=distfix,e.distbits=5},updatewindow=(e,r,n,o)=>{let u;const f=e.state;return f.window===null&&(f.wsize=1<=f.wsize?(f.window.set(r.subarray(n-f.wsize,n),0),f.wnext=0,f.whave=f.wsize):(u=f.wsize-f.wnext,u>o&&(u=o),f.window.set(r.subarray(n-o,n-o+u),f.wnext),o-=u,o?(f.window.set(r.subarray(n-o,n),0),f.wnext=o,f.whave=f.wsize):(f.wnext+=u,f.wnext===f.wsize&&(f.wnext=0),f.whave{let n,o,u,f,_,a,w,E,M,k,L,D,U,q,Y=0,X,oe,W,K,ie,Te,ve,se;const _e=new Uint8Array(4);let ee,ue;const Me=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Z_STREAM_ERROR$1;n=e.state,n.mode===TYPE&&(n.mode=TYPEDO),_=e.next_out,u=e.output,w=e.avail_out,f=e.next_in,o=e.input,a=e.avail_in,E=n.hold,M=n.bits,k=a,L=w,se=Z_OK$1;e:for(;;)switch(n.mode){case HEAD:if(n.wrap===0){n.mode=TYPEDO;break}for(;M<16;){if(a===0)break e;a--,E+=o[f++]<>>8&255,n.check=crc32_1(n.check,_e,2,0),E=0,M=0,n.mode=FLAGS;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((E&255)<<8)+(E>>8))%31){e.msg="incorrect header check",n.mode=BAD;break}if((E&15)!==Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(E>>>=4,M-=4,ve=(E&15)+8,n.wbits===0)n.wbits=ve;else if(ve>n.wbits){e.msg="invalid window size",n.mode=BAD;break}n.dmax=1<>8&1),n.flags&512&&(_e[0]=E&255,_e[1]=E>>>8&255,n.check=crc32_1(n.check,_e,2,0)),E=0,M=0,n.mode=TIME;case TIME:for(;M<32;){if(a===0)break e;a--,E+=o[f++]<>>8&255,_e[2]=E>>>16&255,_e[3]=E>>>24&255,n.check=crc32_1(n.check,_e,4,0)),E=0,M=0,n.mode=OS;case OS:for(;M<16;){if(a===0)break e;a--,E+=o[f++]<>8),n.flags&512&&(_e[0]=E&255,_e[1]=E>>>8&255,n.check=crc32_1(n.check,_e,2,0)),E=0,M=0,n.mode=EXLEN;case EXLEN:if(n.flags&1024){for(;M<16;){if(a===0)break e;a--,E+=o[f++]<>>8&255,n.check=crc32_1(n.check,_e,2,0)),E=0,M=0}else n.head&&(n.head.extra=null);n.mode=EXTRA;case EXTRA:if(n.flags&1024&&(D=n.length,D>a&&(D=a),D&&(n.head&&(ve=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(o.subarray(f,f+D),ve)),n.flags&512&&(n.check=crc32_1(n.check,o,D,f)),a-=D,f+=D,n.length-=D),n.length))break e;n.length=0,n.mode=NAME;case NAME:if(n.flags&2048){if(a===0)break e;D=0;do ve=o[f+D++],n.head&&ve&&n.length<65536&&(n.head.name+=String.fromCharCode(ve));while(ve&&D>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=TYPE;break;case DICTID:for(;M<32;){if(a===0)break e;a--,E+=o[f++]<>>=M&7,M-=M&7,n.mode=CHECK;break}for(;M<3;){if(a===0)break e;a--,E+=o[f++]<>>=1,M-=1,E&3){case 0:n.mode=STORED;break;case 1:if(fixedtables(n),n.mode=LEN_,r===Z_TREES){E>>>=2,M-=2;break e}break;case 2:n.mode=TABLE;break;case 3:e.msg="invalid block type",n.mode=BAD}E>>>=2,M-=2;break;case STORED:for(E>>>=M&7,M-=M&7;M<32;){if(a===0)break e;a--,E+=o[f++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=BAD;break}if(n.length=E&65535,E=0,M=0,n.mode=COPY_,r===Z_TREES)break e;case COPY_:n.mode=COPY;case COPY:if(D=n.length,D){if(D>a&&(D=a),D>w&&(D=w),D===0)break e;u.set(o.subarray(f,f+D),_),a-=D,f+=D,w-=D,_+=D,n.length-=D;break}n.mode=TYPE;break;case TABLE:for(;M<14;){if(a===0)break e;a--,E+=o[f++]<>>=5,M-=5,n.ndist=(E&31)+1,E>>>=5,M-=5,n.ncode=(E&15)+4,E>>>=4,M-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=BAD;break}n.have=0,n.mode=LENLENS;case LENLENS:for(;n.have>>=3,M-=3}for(;n.have<19;)n.lens[Me[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,ee={bits:n.lenbits},se=inftrees(CODES,n.lens,0,19,n.lencode,0,n.work,ee),n.lenbits=ee.bits,se){e.msg="invalid code lengths set",n.mode=BAD;break}n.have=0,n.mode=CODELENS;case CODELENS:for(;n.have>>24,oe=Y>>>16&255,W=Y&65535,!(X<=M);){if(a===0)break e;a--,E+=o[f++]<>>=X,M-=X,n.lens[n.have++]=W;else{if(W===16){for(ue=X+2;M>>=X,M-=X,n.have===0){e.msg="invalid bit length repeat",n.mode=BAD;break}ve=n.lens[n.have-1],D=3+(E&3),E>>>=2,M-=2}else if(W===17){for(ue=X+3;M>>=X,M-=X,ve=0,D=3+(E&7),E>>>=3,M-=3}else{for(ue=X+7;M>>=X,M-=X,ve=0,D=11+(E&127),E>>>=7,M-=7}if(n.have+D>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=BAD;break}for(;D--;)n.lens[n.have++]=ve}}if(n.mode===BAD)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=BAD;break}if(n.lenbits=9,ee={bits:n.lenbits},se=inftrees(LENS,n.lens,0,n.nlen,n.lencode,0,n.work,ee),n.lenbits=ee.bits,se){e.msg="invalid literal/lengths set",n.mode=BAD;break}if(n.distbits=6,n.distcode=n.distdyn,ee={bits:n.distbits},se=inftrees(DISTS,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,ee),n.distbits=ee.bits,se){e.msg="invalid distances set",n.mode=BAD;break}if(n.mode=LEN_,r===Z_TREES)break e;case LEN_:n.mode=LEN;case LEN:if(a>=6&&w>=258){e.next_out=_,e.avail_out=w,e.next_in=f,e.avail_in=a,n.hold=E,n.bits=M,inffast(e,L),_=e.next_out,u=e.output,w=e.avail_out,f=e.next_in,o=e.input,a=e.avail_in,E=n.hold,M=n.bits,n.mode===TYPE&&(n.back=-1);break}for(n.back=0;Y=n.lencode[E&(1<>>24,oe=Y>>>16&255,W=Y&65535,!(X<=M);){if(a===0)break e;a--,E+=o[f++]<>K)],X=Y>>>24,oe=Y>>>16&255,W=Y&65535,!(K+X<=M);){if(a===0)break e;a--,E+=o[f++]<>>=K,M-=K,n.back+=K}if(E>>>=X,M-=X,n.back+=X,n.length=W,oe===0){n.mode=LIT;break}if(oe&32){n.back=-1,n.mode=TYPE;break}if(oe&64){e.msg="invalid literal/length code",n.mode=BAD;break}n.extra=oe&15,n.mode=LENEXT;case LENEXT:if(n.extra){for(ue=n.extra;M>>=n.extra,M-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=DIST;case DIST:for(;Y=n.distcode[E&(1<>>24,oe=Y>>>16&255,W=Y&65535,!(X<=M);){if(a===0)break e;a--,E+=o[f++]<>K)],X=Y>>>24,oe=Y>>>16&255,W=Y&65535,!(K+X<=M);){if(a===0)break e;a--,E+=o[f++]<>>=K,M-=K,n.back+=K}if(E>>>=X,M-=X,n.back+=X,oe&64){e.msg="invalid distance code",n.mode=BAD;break}n.offset=W,n.extra=oe&15,n.mode=DISTEXT;case DISTEXT:if(n.extra){for(ue=n.extra;M>>=n.extra,M-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=BAD;break}n.mode=MATCH;case MATCH:if(w===0)break e;if(D=L-w,n.offset>D){if(D=n.offset-D,D>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break}D>n.wnext?(D-=n.wnext,U=n.wsize-D):U=n.wnext-D,D>n.length&&(D=n.length),q=n.window}else q=u,U=_-n.offset,D=n.length;D>w&&(D=w),w-=D,n.length-=D;do u[_++]=q[U++];while(--D);n.length===0&&(n.mode=LEN);break;case LIT:if(w===0)break e;u[_++]=n.length,w--,n.mode=LEN;break;case CHECK:if(n.wrap){for(;M<32;){if(a===0)break e;a--,E|=o[f++]<{if(!e||!e.state)return Z_STREAM_ERROR$1;let r=e.state;return r.window&&(r.window=null),e.state=null,Z_OK$1},inflateGetHeader=(e,r)=>{if(!e||!e.state)return Z_STREAM_ERROR$1;const n=e.state;return(n.wrap&2)===0?Z_STREAM_ERROR$1:(n.head=r,r.done=!1,Z_OK$1)},inflateSetDictionary=(e,r)=>{const n=r.length;let o,u,f;return!e||!e.state||(o=e.state,o.wrap!==0&&o.mode!==DICT)?Z_STREAM_ERROR$1:o.mode===DICT&&(u=1,u=adler32_1(u,r,n,0),u!==o.check)?Z_DATA_ERROR$1:(f=updatewindow(e,r,n,n),f?(o.mode=MEM,Z_MEM_ERROR$1):(o.havedict=1,Z_OK$1))};var inflateReset_1=inflateReset,inflateReset2_1=inflateReset2,inflateResetKeep_1=inflateResetKeep,inflateInit_1=inflateInit,inflateInit2_1=inflateInit2,inflate_2$1=inflate$2,inflateEnd_1=inflateEnd,inflateGetHeader_1=inflateGetHeader,inflateSetDictionary_1=inflateSetDictionary,inflateInfo="pako inflate (from Nodeca project)",inflate_1$2={inflateReset:inflateReset_1,inflateReset2:inflateReset2_1,inflateResetKeep:inflateResetKeep_1,inflateInit:inflateInit_1,inflateInit2:inflateInit2_1,inflate:inflate_2$1,inflateEnd:inflateEnd_1,inflateGetHeader:inflateGetHeader_1,inflateSetDictionary:inflateSetDictionary_1,inflateInfo};function GZheader(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var gzheader=GZheader;const toString$3=Object.prototype.toString,{Z_NO_FLUSH,Z_FINISH,Z_OK,Z_STREAM_END,Z_NEED_DICT,Z_STREAM_ERROR,Z_DATA_ERROR,Z_MEM_ERROR}=constants$2$1;function Inflate$1(e){this.options=common.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const r=this.options;r.raw&&r.windowBits>=0&&r.windowBits<16&&(r.windowBits=-r.windowBits,r.windowBits===0&&(r.windowBits=-15)),r.windowBits>=0&&r.windowBits<16&&!(e&&e.windowBits)&&(r.windowBits+=32),r.windowBits>15&&r.windowBits<48&&(r.windowBits&15)===0&&(r.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let n=inflate_1$2.inflateInit2(this.strm,r.windowBits);if(n!==Z_OK)throw new Error(messages[n]);if(this.header=new gzheader,inflate_1$2.inflateGetHeader(this.strm,this.header),r.dictionary&&(typeof r.dictionary=="string"?r.dictionary=strings.string2buf(r.dictionary):toString$3.call(r.dictionary)==="[object ArrayBuffer]"&&(r.dictionary=new Uint8Array(r.dictionary)),r.raw&&(n=inflate_1$2.inflateSetDictionary(this.strm,r.dictionary),n!==Z_OK)))throw new Error(messages[n])}Inflate$1.prototype.push=function(e,r){const n=this.strm,o=this.options.chunkSize,u=this.options.dictionary;let f,_,a;if(this.ended)return!1;for(r===~~r?_=r:_=r===!0?Z_FINISH:Z_NO_FLUSH,toString$3.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),f=inflate_1$2.inflate(n,_),f===Z_NEED_DICT&&u&&(f=inflate_1$2.inflateSetDictionary(n,u),f===Z_OK?f=inflate_1$2.inflate(n,_):f===Z_DATA_ERROR&&(f=Z_NEED_DICT));n.avail_in>0&&f===Z_STREAM_END&&n.state.wrap>0&&e[n.next_in]!==0;)inflate_1$2.inflateReset(n),f=inflate_1$2.inflate(n,_);switch(f){case Z_STREAM_ERROR:case Z_DATA_ERROR:case Z_NEED_DICT:case Z_MEM_ERROR:return this.onEnd(f),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||f===Z_STREAM_END))if(this.options.to==="string"){let w=strings.utf8border(n.output,n.next_out),E=n.next_out-w,M=strings.buf2string(n.output,w);n.next_out=E,n.avail_out=o-E,E&&n.output.set(n.output.subarray(w,w+E),0),this.onData(M)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(f===Z_OK&&a===0)){if(f===Z_STREAM_END)return f=inflate_1$2.inflateEnd(this.strm),this.onEnd(f),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};Inflate$1.prototype.onData=function(e){this.chunks.push(e)};Inflate$1.prototype.onEnd=function(e){e===Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function inflate$1(e,r){const n=new Inflate$1(r);if(n.push(e),n.err)throw n.msg||messages[n.err];return n.result}function inflateRaw$1(e,r){return r=r||{},r.raw=!0,inflate$1(e,r)}var Inflate_1$1=Inflate$1,inflate_2=inflate$1,inflateRaw_1$1=inflateRaw$1,ungzip$1=inflate$1,constants$5=constants$2$1,inflate_1$1={Inflate:Inflate_1$1,inflate:inflate_2,inflateRaw:inflateRaw_1$1,ungzip:ungzip$1,constants:constants$5};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1,{Inflate,inflate,inflateRaw,ungzip}=inflate_1$1;var deflate_1=deflate,Inflate_1=Inflate,inflate_1=inflate;const pngSignature=[137,80,78,71,13,10,26,10],crcTable=[];for(let e=0;e<256;e++){let r=e;for(let n=0;n<8;n++)r&1?r=3988292384^r>>>1:r=r>>>1;crcTable[e]=r}const initialCrc=4294967295;function updateCrc(e,r,n){let o=e;for(let u=0;u>>8;return o}function crc(e,r){return(updateCrc(initialCrc,e,r)^initialCrc)>>>0}var ColorType;(function(e){e[e.UNKNOWN=-1]="UNKNOWN",e[e.GREYSCALE=0]="GREYSCALE",e[e.TRUECOLOUR=2]="TRUECOLOUR",e[e.INDEXED_COLOUR=3]="INDEXED_COLOUR",e[e.GREYSCALE_ALPHA=4]="GREYSCALE_ALPHA",e[e.TRUECOLOUR_ALPHA=6]="TRUECOLOUR_ALPHA"})(ColorType||(ColorType={}));var CompressionMethod;(function(e){e[e.UNKNOWN=-1]="UNKNOWN",e[e.DEFLATE=0]="DEFLATE"})(CompressionMethod||(CompressionMethod={}));var FilterMethod;(function(e){e[e.UNKNOWN=-1]="UNKNOWN",e[e.ADAPTIVE=0]="ADAPTIVE"})(FilterMethod||(FilterMethod={}));var InterlaceMethod;(function(e){e[e.UNKNOWN=-1]="UNKNOWN",e[e.NO_INTERLACE=0]="NO_INTERLACE",e[e.ADAM7=1]="ADAM7"})(InterlaceMethod||(InterlaceMethod={}));const empty=new Uint8Array(0),NULL="\0",uint16=new Uint16Array([255]),uint8=new Uint8Array(uint16.buffer),osIsLittleEndian=uint8[0]===255;class PngDecoder extends IOBuffer$4{constructor(r,n={}){super(r);const{checkCrc:o=!1}=n;this._checkCrc=o,this._inflator=new Inflate_1,this._png={width:-1,height:-1,channels:-1,data:new Uint8Array(0),depth:1,text:{}},this._end=!1,this._hasPalette=!1,this._palette=[],this._compressionMethod=CompressionMethod.UNKNOWN,this._filterMethod=FilterMethod.UNKNOWN,this._interlaceMethod=InterlaceMethod.UNKNOWN,this._colorType=-1,this.setBigEndian()}decode(){for(this.decodeSignature();!this._end;)this.decodeChunk();return this.decodeImage(),this._png}decodeSignature(){for(let r=0;rthis._palette.length)throw new Error(`tRNS chunk contains more alpha values than there are palette colors (${r} vs ${this._palette.length})`);let n=0;for(;n>1)&255}else{for(;f>1)&255;for(;f>1)&255}}function unfilterPaeth(e,r,n,o,u){let f=0;if(n.length===0){for(;f>8&255}function checkBitDepth(e){if(e!==1&&e!==2&&e!==4&&e!==8&&e!==16)throw new Error(`invalid bit depth: ${e}`);return e}const defaultZlibOptions={level:3};class PngEncoder extends IOBuffer$4{constructor(r,n={}){super(),this._colorType=ColorType.UNKNOWN,this._zlibOptions=Object.assign({},defaultZlibOptions,n.zlib),this._png=this._checkData(r),this.setBigEndian()}encode(){return this.encodeSignature(),this.encodeIHDR(),this.encodeData(),this.encodeIEND(),this.toArray()}encodeSignature(){this.writeBytes(pngSignature)}encodeIHDR(){this.writeUint32(13),this.writeChars("IHDR"),this.writeUint32(this._png.width),this.writeUint32(this._png.height),this.writeByte(this._png.depth),this.writeByte(this._colorType),this.writeByte(CompressionMethod.DEFLATE),this.writeByte(FilterMethod.ADAPTIVE),this.writeByte(InterlaceMethod.NO_INTERLACE),this.writeCrc(17)}encodeIEND(){this.writeUint32(0),this.writeChars("IEND"),this.writeCrc(4)}encodeIDAT(r){this.writeUint32(r.length),this.writeChars("IDAT"),this.writeBytes(r),this.writeCrc(r.length+4)}encodeData(){const{width:r,height:n,channels:o,depth:u,data:f}=this._png,_=o*r,a=new IOBuffer$4().setBigEndian();let w=0;for(let k=0;k0)return e;throw new TypeError(`${r} must be a positive integer`)}function getColorType(e){const{channels:r=4,depth:n=8}=e;if(r!==4&&r!==3&&r!==2&&r!==1)throw new RangeError(`unsupported number of channels: ${r}`);if(n!==8&&n!==16)throw new RangeError(`unsupported bit depth: ${n}`);const o={channels:r,depth:n,colorType:ColorType.UNKNOWN};switch(r){case 4:o.colorType=ColorType.TRUECOLOUR_ALPHA;break;case 3:o.colorType=ColorType.TRUECOLOUR;break;case 1:o.colorType=ColorType.GREYSCALE;break;case 2:o.colorType=ColorType.GREYSCALE_ALPHA;break;default:throw new Error("unsupported number of channels")}return o}function writeDataBytes(e,r,n,o){for(let u=0;u255&&(di=255),f[ee[gi]]=di}for(var Ae=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],pt=0;pt<64;pt++){var jt=u((Ae[pt]*rt+50)/100);jt<1?jt=1:jt>255&&(jt=255),_[ee[pt]]=jt}for(var Nt=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],Ht=0,Ut=0;Ut<8;Ut++)for(var Pt=0;Pt<8;Pt++)a[Ht]=1/(f[ee[Ht]]*Nt[Ut]*Nt[Pt]*8),w[Ht]=1/(_[ee[Ht]]*Nt[Ut]*Nt[Pt]*8),Ht++}function Xe(rt,dt){for(var gi=0,di=0,Ae=new Array,pt=1;pt<=16;pt++){for(var jt=1;jt<=rt[pt];jt++)Ae[dt[di]]=[],Ae[dt[di]][0]=gi,Ae[dt[di]][1]=pt,di++,gi++;gi*=2}return Ae}function mt(){E=Xe(ue,Me),M=Xe(at,Ft),k=Xe(ke,Qe),L=Xe(Qt,Rt)}function gt(){for(var rt=1,dt=2,gi=1;gi<=15;gi++){for(var di=rt;di>0]=38470*rt,se[rt+512>>0]=7471*rt+32768,se[rt+768>>0]=-11059*rt,se[rt+1024>>0]=-21709*rt,se[rt+1280>>0]=32768*rt+8421375,se[rt+1536>>0]=-27439*rt,se[rt+1792>>0]=-5329*rt}function At(rt){for(var dt=rt[0],gi=rt[1]-1;gi>=0;)dt&1<>8&255),xt(rt&255)}function It(rt,dt){var gi,di,Ae,pt,jt,Nt,Ht,Ut,Pt=0,ei,Li=8,fi=64;for(ei=0;ei0?Wi+.5|0:Wi-.5|0;return q}function mi(){Ct(65504),Ct(16),xt(74),xt(70),xt(73),xt(70),xt(0),xt(1),xt(1),xt(0),Ct(1),Ct(1),xt(0),xt(0)}function _t(rt){if(!!rt){Ct(65505),rt[0]===69&&rt[1]===120&&rt[2]===105&&rt[3]===102?Ct(rt.length+2):(Ct(rt.length+5+2),xt(69),xt(120),xt(105),xt(102),xt(0));for(var dt=0;dt"u"||rt.constructor!==Array||rt.forEach(dt=>{if(typeof dt=="string"){Ct(65534);var gi=dt.length;Ct(gi+2);var di;for(di=0;di0&&Y[Ii]==0;Ii--);if(Ii==0)return At(pt),gi;for(var Hi=1,er;Hi<=Ii;){for(var Gi=Hi;Y[Hi]==0&&Hi<=Ii;++Hi);var Mi=Hi-Gi;if(Mi>=Ht){er=Mi>>4;for(var Pr=1;Pr<=er;++Pr)At(jt);Mi=Mi&15}Nt=32767+Y[Hi],At(Ae[(Mi<<4)+U[Nt]]),At(D[Nt]),Hi++}return Ii!=Ut&&At(pt),gi}function Ai(){for(var rt=String.fromCharCode,dt=0;dt<256;dt++)ve[dt]=rt(dt)}this.encode=function(rt,dt){new Date().getTime(),dt&&Ti(dt),X=new Array,oe=0,W=7,Ct(65496),mi(),yi(rt.comments),_t(rt.exifBuffer),zi(),Ei(rt.width,rt.height),Bi(),St();var gi=0,di=0,Ae=0;oe=0,W=7,this.encode.displayName="_encode_";for(var pt=rt.data,jt=rt.width,Nt=rt.height,Ht=jt*4,Ut,Pt=0,ei,Li,fi,Ii,Hi,er,Gi,Mi;Pt>3,er=(Mi&7)*4,Hi=Ii+Gi*Ht+er,Pt+Gi>=Nt&&(Hi-=Ht*(Pt+1+Gi-Nt)),Ut+er>=Ht&&(Hi-=Ut+er-Ht+4),ei=pt[Hi++],Li=pt[Hi++],fi=pt[Hi++],K[Mi]=(se[ei]+se[Li+256>>0]+se[fi+512>>0]>>16)-128,ie[Mi]=(se[ei+768>>0]+se[Li+1024>>0]+se[fi+1280>>0]>>16)-128,Te[Mi]=(se[ei+1280>>0]+se[Li+1536>>0]+se[fi+1792>>0]>>16)-128;gi=kt(K,a,gi,E,k),di=kt(ie,w,di,M,L),Ae=kt(Te,w,Ae,M,L),Ut+=32}Pt+=8}if(W>=0){var Pr=[];Pr[1]=W+1,Pr[0]=(1<100&&(rt=100),_e!=rt){var dt=0;rt<50?dt=Math.floor(5e3/rt):dt=Math.floor(200-rt*2),Jt(dt),_e=rt}}function Si(){var rt=new Date().getTime();o||(o=50),Ai(),mt(),gt(),ot(),Ti(o),new Date().getTime()-rt}Si()}e.exports=n;function n(o,u){typeof u>"u"&&(u=50);var f=new r(u),_=f.encode(o,u);return{data:_,width:o.width,height:o.height}}})(encoder);var decoder={exports:{}};(function(e){var r=function(){var u=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),f=4017,_=799,a=3406,w=2276,E=1567,M=3784,k=5793,L=2896;function D(){}function U(ie,Te){for(var ve=0,se=[],_e,ee,ue=16;ue>0&&!ie[ue-1];)ue--;se.push({children:[],index:0});var Me=se[0],ke;for(_e=0;_e0;){if(se.length===0)throw new Error("Could not recreate Huffman Table");Me=se.pop()}for(Me.index++,se.push(Me);se.length<=_e;)se.push(ke={children:[],index:0}),Me.children[Me.index]=ke.children,Me=ke;ve++}_e+10)return Jt--,Rt>>Jt&1;if(Rt=ie[Te++],Rt==255){var Nt=ie[Te++];if(Nt)throw new Error("unexpected marker: "+(Rt<<8|Nt).toString(16))}return Jt=7,Rt>>>7}function mt(Nt){for(var Ht=Nt,Ut;(Ut=Xe())!==null;){if(Ht=Ht[Ut],typeof Ht=="number")return Ht;if(typeof Ht!="object")throw new Error("invalid huffman sequence")}return null}function gt(Nt){for(var Ht=0;Nt>0;){var Ut=Xe();if(Ut===null)return;Ht=Ht<<1|Ut,Nt--}return Ht}function ot(Nt){var Ht=gt(Nt);return Ht>=1<>4;if(fi===0){if(Ii<15)break;ei+=16;continue}ei+=Ii;var Hi=u[ei];Ht[Hi]=ot(fi),ei++}}function xt(Nt,Ht){var Ut=mt(Nt.huffmanTableDC),Pt=Ut===0?0:ot(Ut)<0){It--;return}for(var Ut=ee,Pt=ue;Ut<=Pt;){var ei=mt(Nt.huffmanTableAC),Li=ei&15,fi=ei>>4;if(Li===0){if(fi<15){It=gt(fi)+(1<>4;if(Hi===0)ei<15?(It=gt(ei)+(1<=65488&&di<=65495)Te+=2;else break}return Te-Qt}function Y(ie,Te){var ve=[],se=Te.blocksPerLine,_e=Te.blocksPerColumn,ee=se<<3,ue=new Int32Array(64),Me=new Uint8Array(64);function ke(gt,ot,At){var xt=Te.quantizationTable,Ct,It,mi,_t,Ei,zi,Bi,yi,St,kt=At,Ai;for(Ai=0;Ai<64;Ai++)kt[Ai]=gt[Ai]*xt[Ai];for(Ai=0;Ai<8;++Ai){var Ti=8*Ai;if(kt[1+Ti]==0&&kt[2+Ti]==0&&kt[3+Ti]==0&&kt[4+Ti]==0&&kt[5+Ti]==0&&kt[6+Ti]==0&&kt[7+Ti]==0){St=k*kt[0+Ti]+512>>10,kt[0+Ti]=St,kt[1+Ti]=St,kt[2+Ti]=St,kt[3+Ti]=St,kt[4+Ti]=St,kt[5+Ti]=St,kt[6+Ti]=St,kt[7+Ti]=St;continue}Ct=k*kt[0+Ti]+128>>8,It=k*kt[4+Ti]+128>>8,mi=kt[2+Ti],_t=kt[6+Ti],Ei=L*(kt[1+Ti]-kt[7+Ti])+128>>8,yi=L*(kt[1+Ti]+kt[7+Ti])+128>>8,zi=kt[3+Ti]<<4,Bi=kt[5+Ti]<<4,St=Ct-It+1>>1,Ct=Ct+It+1>>1,It=St,St=mi*M+_t*E+128>>8,mi=mi*E-_t*M+128>>8,_t=St,St=Ei-Bi+1>>1,Ei=Ei+Bi+1>>1,Bi=St,St=yi+zi+1>>1,zi=yi-zi+1>>1,yi=St,St=Ct-_t+1>>1,Ct=Ct+_t+1>>1,_t=St,St=It-mi+1>>1,It=It+mi+1>>1,mi=St,St=Ei*w+yi*a+2048>>12,Ei=Ei*a-yi*w+2048>>12,yi=St,St=zi*_+Bi*f+2048>>12,zi=zi*f-Bi*_+2048>>12,Bi=St,kt[0+Ti]=Ct+yi,kt[7+Ti]=Ct-yi,kt[1+Ti]=It+Bi,kt[6+Ti]=It-Bi,kt[2+Ti]=mi+zi,kt[5+Ti]=mi-zi,kt[3+Ti]=_t+Ei,kt[4+Ti]=_t-Ei}for(Ai=0;Ai<8;++Ai){var Si=Ai;if(kt[8+Si]==0&&kt[16+Si]==0&&kt[24+Si]==0&&kt[32+Si]==0&&kt[40+Si]==0&&kt[48+Si]==0&&kt[56+Si]==0){St=k*At[Ai+0]+8192>>14,kt[0+Si]=St,kt[8+Si]=St,kt[16+Si]=St,kt[24+Si]=St,kt[32+Si]=St,kt[40+Si]=St,kt[48+Si]=St,kt[56+Si]=St;continue}Ct=k*kt[0+Si]+2048>>12,It=k*kt[32+Si]+2048>>12,mi=kt[16+Si],_t=kt[48+Si],Ei=L*(kt[8+Si]-kt[56+Si])+2048>>12,yi=L*(kt[8+Si]+kt[56+Si])+2048>>12,zi=kt[24+Si],Bi=kt[40+Si],St=Ct-It+1>>1,Ct=Ct+It+1>>1,It=St,St=mi*M+_t*E+2048>>12,mi=mi*E-_t*M+2048>>12,_t=St,St=Ei-Bi+1>>1,Ei=Ei+Bi+1>>1,Bi=St,St=yi+zi+1>>1,zi=yi-zi+1>>1,yi=St,St=Ct-_t+1>>1,Ct=Ct+_t+1>>1,_t=St,St=It-mi+1>>1,It=It+mi+1>>1,mi=St,St=Ei*w+yi*a+2048>>12,Ei=Ei*a-yi*w+2048>>12,yi=St,St=zi*_+Bi*f+2048>>12,zi=zi*f-Bi*_+2048>>12,Bi=St,kt[0+Si]=Ct+yi,kt[56+Si]=Ct-yi,kt[8+Si]=It+Bi,kt[48+Si]=It-Bi,kt[16+Si]=mi+zi,kt[40+Si]=mi-zi,kt[24+Si]=_t+Ei,kt[32+Si]=_t-Ei}for(Ai=0;Ai<64;++Ai){var rt=128+(kt[Ai]+8>>4);ot[Ai]=rt<0?0:rt>255?255:rt}}K(ee*_e*8);for(var Qe,at,Ft=0;Ft<_e;Ft++){var Qt=Ft<<3;for(Qe=0;Qe<8;Qe++)ve.push(new Uint8Array(ee));for(var Rt=0;Rt255?255:ie}D.prototype={load:function(Te){var ve=new XMLHttpRequest;ve.open("GET",Te,!0),ve.responseType="arraybuffer",ve.onload=function(){var se=new Uint8Array(ve.response||ve.mozResponseArrayBuffer);this.parse(se),this.onload&&this.onload()}.bind(this),ve.send(null)},parse:function(Te){var ve=this.opts.maxResolutionInMP*1e3*1e3,se=0;Te.length;function _e(){var fi=Te[se]<<8|Te[se+1];return se+=2,fi}function ee(){var fi=_e(),Ii=Te.subarray(se,se+fi-2);return se+=Ii.length,Ii}function ue(fi){var Ii=1,Hi=1,er,Gi;for(Gi in fi.components)fi.components.hasOwnProperty(Gi)&&(er=fi.components[Gi],Ii>4===0)for(ot=0;ot<64;ot++){var Ei=u[ot];_t[Ei]=Te[se++]}else if(mi>>4===1)for(ot=0;ot<64;ot++){var Ei=u[ot];_t[Ei]=_e()}else throw new Error("DQT: invalid table spec");Ft[mi&15]=_t}break;case 65472:case 65473:case 65474:_e(),Qe={},Qe.extended=Xe===65473,Qe.progressive=Xe===65474,Qe.precision=Te[se++],Qe.scanLines=_e(),Qe.samplesPerLine=_e(),Qe.components={},Qe.componentsOrder=[];var zi=Qe.scanLines*Qe.samplesPerLine;if(zi>ve){var Bi=Math.ceil((zi-ve)/1e6);throw new Error(`maxResolutionInMP limit exceeded by ${Bi}MP`)}var yi=Te[se++],St;for(gt=0;gt>4,Ai=Te[se+1]&15,Ti=Te[se+2];if(kt<=0||Ai<=0)throw new Error("Invalid sampling factor, expected values above 0");Qe.componentsOrder.push(St),Qe.components[St]={h:kt,v:Ai,quantizationIdx:Ti},se+=3}ue(Qe),Qt.push(Qe);break;case 65476:var Si=_e();for(gt=2;gt>4===0?Jt:Rt)[rt&15]=U(dt,di)}break;case 65501:_e(),at=_e();break;case 65500:_e(),_e();break;case 65498:_e();var Ae=Te[se++],pt=[],jt;for(gt=0;gt>4],jt.huffmanTableAC=Rt[Nt&15],pt.push(jt)}var Ht=Te[se++],Ut=Te[se++],Pt=Te[se++],ei=q(Te,se,Qe,pt,at,Ht,Ut,Pt>>4,Pt&15,this.opts);se+=ei;break;case 65535:Te[se]!==255&&se--;break;default:if(Te[se-3]==255&&Te[se-2]>=192&&Te[se-2]<=254){se-=3;break}else if(Xe===224||Xe==225){if(mt!==-1)throw new Error(`first unknown JPEG marker at offset ${mt.toString(16)}, second unknown JPEG marker ${Xe.toString(16)} at offset ${(se-1).toString(16)}`);mt=se-1;const fi=_e();if(Te[se+fi-2]===255){se+=fi-2;break}}throw new Error("unknown JPEG marker "+Xe.toString(16))}Xe=_e()}if(Qt.length!=1)throw new Error("only single frame JPEGs supported");for(var gt=0;gtW){var ve=Math.ceil((Te-W)/1024/1024);throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${ve}MB`)}oe=Te}return D.resetMaxMemoryUsage=function(ie){oe=0,W=ie},D.getBytesAllocated=function(){return oe},D.requestMemoryAllocation=K,D}();e.exports=n;function n(o,u={}){var f={colorTransform:void 0,useTArray:!1,formatAsRGBA:!0,tolerantDecoding:!0,maxResolutionInMP:100,maxMemoryUsageInMB:512},_={...f,...u},a=new Uint8Array(o),w=new r;w.opts=_,r.resetMaxMemoryUsage(_.maxMemoryUsageInMB*1024*1024),w.parse(a);var E=_.formatAsRGBA?4:3,M=w.width*w.height*E;try{r.requestMemoryAllocation(M);var k={width:w.width,height:w.height,exifBuffer:w.exifBuffer,data:_.useTArray?new Uint8Array(M):Buffer.alloc(M)};w.comments.length>0&&(k.comments=w.comments)}catch(L){throw L instanceof RangeError?new Error("Could not allocate enough memory for the image. Required: "+M):L instanceof ReferenceError&&L.message==="Buffer is not defined"?new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true"):L}return w.copyToImageData(k,_.formatAsRGBA),k}})(decoder);var encode$1=encoder.exports,decode$4=decoder.exports,jpegJs={encode:encode$1,decode:decode$4};let chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lookup=new Uint8Array(256);for(let e=0;e>2],o+=chars[(e[r]&3)<<4|e[r+1]>>4],o+=chars[(e[r+1]&15)<<2|e[r+2]>>6],o+=chars[e[r+2]&63];return n%3===2?o=`${o.substring(0,o.length-1)}=`:n%3===1&&(o=`${o.substring(0,o.length-2)}==`),o}function decode$3(e){let r=e.length*.75,n=e.length,o=0,u,f,_,a;e[e.length-1]==="="&&(r--,e[e.length-2]==="="&&r--);const w=new Uint8Array(r);for(let E=0;E>4,w[o++]=(f&15)<<4|_>>2,w[o++]=(_&3)<<6|a&63;return w}function toBase64URL(e,r){const n=encode(e);return`data:${r};base64,${n}`}const ImageData=self.ImageData,DOMImage=self.Image;function createCanvas(e,r){let n=self.document.createElement("canvas");return n.width=e,n.height=r,n}function fetchBinary(e,{withCredentials:r=!1}={}){return new Promise(function(n,o){let u=new self.XMLHttpRequest;u.open("GET",e,!0),u.responseType="arraybuffer",u.withCredentials=r,u.onload=function(f){this.status!==200?o(f):n(this.response)},u.onerror=o,u.send()})}function createWriteStream(){throw new Error("createWriteStream does not exist in the browser")}function writeFile(){throw new Error("writeFile does not exist in the browser")}function getType(e){return e.includes("/")||(e=`image/${e}`),e}function encodeJpeg(e,r={}){const n={width:e.width,height:e.height,data:e.getRGBAData()};return jpegJs.encode(n,r.quality).data}function encodePng(e,r){const n={width:e.width,height:e.height,channels:e.channels,depth:e.bitDepth,data:e.data};return(n.depth===1||n.depth===32)&&(n.depth=8,n.channels=4,n.data=e.getRGBAData()),encodePng$1(n,r)}const exportMethods={save(e,r={}){const{useCanvas:n=!1,encoder:o=void 0}=r;let{format:u}=r;if(!u){const f=/\.(?[a-zA-Z]+)$/.exec(e);f&&(u=f.groups.format.toLowerCase())}if(!u)throw new Error("file format not provided");return new Promise((f,_)=>{let a,w;switch(u.toLowerCase()){case"png":{n?a=this.getCanvas().pngStream():w=encodePng(this,o);break}case"jpg":case"jpeg":n?a=this.getCanvas().jpegStream():w=encodeJpeg(this,o);break;case"bmp":w=encode$2(this,o);break;default:throw new RangeError(`invalid output format: ${u}`)}if(a){let E=createWriteStream();E.on("finish",f),E.on("error",_),a.pipe(E)}else w&&writeFile()})},toDataURL(e="image/png",r={}){typeof e=="object"&&(r=e,e="image/png");const{useCanvas:n=!1,encoder:o=void 0}=r;e=getType(e);function u(f,_){const a=f(_,o);return toBase64URL(a,e)}return e==="image/bmp"?u(encode$2,this):e==="image/png"&&!n?u(encodePng,this):e==="image/jpeg"&&!n?u(encodeJpeg,this):this.getCanvas().toDataURL(e)},toBuffer(e={}){const{format:r="png",encoder:n=void 0}=e;switch(r.toLowerCase()){case"png":return encodePng(this,n);case"jpeg":case"jpg":return encodeJpeg(this,n);case"bmp":return encode$2(this,n);default:throw new RangeError(`invalid output format: ${r}`)}},toBase64(e="image/png",r={}){if(r.async)return this.toDataURL(e,r).then(function(n){return n.substring(n.indexOf(",")+1)});{const n=this.toDataURL(e,r);return n.substring(n.indexOf(",")+1)}},toBlob(e="image/png",r=.8){return canvasToBlob(this.getCanvas(),e,r)},getCanvas(){const e=new ImageData(this.getRGBAData({clamped:!0}),this.width,this.height);let r=createCanvas(this.width,this.height);return r.getContext("2d").putImageData(e,0,0),r}};function setExportMethods(e){for(const r in exportMethods)e.prototype[r]=exportMethods[r]}var hasOwn$1={exports:{}};const name="has-own",version="1.0.1",description="A safer .hasOwnProperty() - hasOwn(name, obj)",main="index.js",scripts={test:"make test"},author="Aaron Heckmann ",license="MIT",repository={type:"git",url:"git://github.com/aheckmann/has-own.git"},homepage="https://github.com/aheckmann/has-own/",devDependencies={mocha:"^6.2.2"};var require$$0$3={name,version,description,main,scripts,author,license,repository,homepage,devDependencies};(function(e,r){var n=Object.prototype.hasOwnProperty;e.exports=r=function(u,f){return n.call(f,u)},r.version=require$$0$3.version})(hasOwn$1,hasOwn$1.exports);var hasOwn=hasOwn$1.exports;let computedPropertyDescriptor$1={configurable:!0,enumerable:!1,get:void 0};function extendMethod(e,r,n={}){let{inPlace:o=!1,returnThis:u=!0,partialArgs:f=[]}=n;return o?Image.prototype[e]=function(..._){this.computed=null;let a=r.apply(this,[...f,..._]);return u?this:a}:Image.prototype[e]=function(..._){return r.apply(this,[...f,..._])},Image}function extendProperty(e,r,n={}){let{partialArgs:o=[]}=n;return computedPropertyDescriptor$1.get=function(){if(this.computed===null)this.computed={};else if(hasOwn(e,this.computed))return this.computed[e];let u=r.apply(this,o);return this.computed[e]=u,u},Object.defineProperty(Image.prototype,e,computedPropertyDescriptor$1),Image}const GREY$1="GREY",RGB$1="RGB",HSL="HSL",HSV="HSV",CMYK$1="CMYK";var ColorModel=Object.freeze(Object.defineProperty({__proto__:null,GREY:GREY$1,RGB:RGB$1,HSL,HSV,CMYK:CMYK$1},Symbol.toStringTag,{value:"Module"}));function getRGBAData(e={}){const{clamped:r}=e;this.checkProcessable("getRGBAData",{components:[1,3],bitDepth:[1,8,16,32]});const n=this.width*this.height*4;let o=r?new Uint8ClampedArray(n):new Uint8Array(n);return this.bitDepth===1?fillDataFromBinary(this,o):this.bitDepth===32?(this.checkProcessable("getRGBAData",{alpha:0}),this.components===1?fillDataFromGrey32(this,o):this.components===3&&(this.checkProcessable("getRGBAData",{colorModel:[RGB$1]}),fillDataFromRGB32(this,o))):this.components===1?fillDataFromGrey(this,o):this.components===3&&(this.checkProcessable("getRGBAData",{colorModel:[RGB$1]}),fillDataFromRGB(this,o)),this.alpha===1?(this.checkProcessable("getRGBAData",{bitDepth:[8,16]}),copyAlpha(this,o)):fillAlpha(this,o),o}function fillDataFromBinary(e,r){for(let n=0;n>>e.bitDepth-8,r[n*4+1]=e.data[n*e.channels]>>>e.bitDepth-8,r[n*4+2]=e.data[n*e.channels]>>>e.bitDepth-8}function fillDataFromRGB(e,r){for(let n=0;n>>e.bitDepth-8,r[n*4+1]=e.data[n*e.channels+1]>>>e.bitDepth-8,r[n*4+2]=e.data[n*e.channels+2]>>>e.bitDepth-8}function copyAlpha(e,r){for(let n=0;n>e.bitDepth-8}function fillAlpha(e,r){for(let n=0;n>>0:0;r.buffer&&(o=r.byteLength-u,r.byteLength!==r.buffer.byteLength?r=r.buffer.slice(r.byteOffset+u,r.byteOffset+r.byteLength):u?r=r.buffer.slice(u):r=r.buffer),this.buffer=r,this.length=o,this.byteLength=o,this.byteOffset=0,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer),this._increment=o||defaultByteLength,this._mark=0}available(r){return r===void 0&&(r=1),this.offset+r<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){this.littleEndian=!0}isBigEndian(){return!this.littleEndian}setBigEndian(){this.littleEndian=!1}skip(r){r===void 0&&(r=1),this.offset+=r}seek(r){this.offset=r}mark(){this._mark=this.offset}reset(){this.offset=this._mark}rewind(){this.offset=0}ensureAvailable(r){if(r===void 0&&(r=1),!this.available(r)){const n=this._increment+this._increment;this._increment=n;const o=this.length+n,u=new Uint8Array(o);u.set(new Uint8Array(this.buffer)),this.buffer=u.buffer,this.length=o,this._data=new DataView(this.buffer)}}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(r){r===void 0&&(r=1);for(var n=new Uint8Array(r),o=0;o12){this.skip(4);return}IFDValue.getByteLength(u,f)>4&&this.seek(this.readUint32());const a=IFDValue.readData(this,u,f);if(r.fields.set(o,a),o===34665||o===34853){let w=this.offset,E;o===34665?E="exif":o===34853&&(E="gps"),this._nextIFD=a,r[E]=this.decodeIFD({kind:E,ignoreImageData:!0}),this.offset=w}this.seek(n),this.skip(12)}decodeImageData(r){const n=r.orientation;switch(n&&n!==1&&unsupported$1("orientation",n),r.type){case 1:case 2:this.readStripData(r);break;default:unsupported$1("image type",r.type);break}}readStripData(r){const n=r.width,o=r.height,u=validateBitDepth(r.bitsPerSample),f=r.sampleFormat;let _=n*o;const a=getDataArray$1(_,1,u,f),w=r.compression,M=r.rowsPerStrip*n,k=r.stripOffsets,L=r.stripByteCounts;for(var D=0,U=0;UM?M:_;_-=Y,u===8?D=fill8bit$1(a,q,D,Y):u===16?D=fill16bit$1(a,q,D,Y,this.isLittleEndian()):u===32&&f===3?D=fillFloat32$1(a,q,D,Y,this.isLittleEndian()):unsupported$1("bitDepth",u)}r.data=a}getStripData(r,n,o){switch(r){case 1:return new DataView(this.buffer,n,o);case 2:case 32773:return unsupported$1("Compression",r);default:throw new Error("invalid compression: "+r)}}}var tiffDecoder=TIFFDecoder$2;function getDataArray$1(e,r,n,o){return n===8?new Uint8Array(e*r):n===16?new Uint16Array(e*r):n===32&&o===3?new Float32Array(e*r):unsupported$1("bit depth / sample format",n+" / "+o)}function fill8bit$1(e,r,n,o){for(var u=0;u[...e].map(r=>r.charCodeAt(0)),xpiZipFilename=toBytes("META-INF/mozilla.rsa"),oxmlContentTypes=toBytes("[Content_Types].xml"),oxmlRels=toBytes("_rels/.rels");function readUInt64LE(e,r=0){let n=e[r],o=1,u=0;for(;++u<8;)o*=256,n+=e[r+u]*o;return n}const fileType=e=>{if(!(e instanceof Uint8Array||e instanceof ArrayBuffer||Buffer.isBuffer(e)))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof e}\``);const r=e instanceof Uint8Array?e:new Uint8Array(e);if(!(r&&r.length>1))return null;const n=(u,f)=>{f=Object.assign({offset:0},f);for(let _=0;_n(toBytes(u),f);if(n([255,216,255]))return{ext:"jpg",mime:"image/jpeg"};if(n([137,80,78,71,13,10,26,10]))return{ext:"png",mime:"image/png"};if(n([71,73,70]))return{ext:"gif",mime:"image/gif"};if(n([87,69,66,80],{offset:8}))return{ext:"webp",mime:"image/webp"};if(n([70,76,73,70]))return{ext:"flif",mime:"image/flif"};if((n([73,73,42,0])||n([77,77,0,42]))&&n([67,82],{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(n([73,73,42,0])||n([77,77,0,42]))return{ext:"tif",mime:"image/tiff"};if(n([66,77]))return{ext:"bmp",mime:"image/bmp"};if(n([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(n([56,66,80,83]))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(n([80,75,3,4])){if(n([109,105,109,101,116,121,112,101,97,112,112,108,105,99,97,116,105,111,110,47,101,112,117,98,43,122,105,112],{offset:30}))return{ext:"epub",mime:"application/epub+zip"};if(n(xpiZipFilename,{offset:30}))return{ext:"xpi",mime:"application/x-xpinstall"};if(o("mimetypeapplication/vnd.oasis.opendocument.text",{offset:30}))return{ext:"odt",mime:"application/vnd.oasis.opendocument.text"};if(o("mimetypeapplication/vnd.oasis.opendocument.spreadsheet",{offset:30}))return{ext:"ods",mime:"application/vnd.oasis.opendocument.spreadsheet"};if(o("mimetypeapplication/vnd.oasis.opendocument.presentation",{offset:30}))return{ext:"odp",mime:"application/vnd.oasis.opendocument.presentation"};const u=(w,E=0)=>w.findIndex((M,k,L)=>k>=E&&L[k]===80&&L[k+1]===75&&L[k+2]===3&&L[k+3]===4);let f=0,_=!1,a=null;do{const w=f+30;if(_||(_=n(oxmlContentTypes,{offset:w})||n(oxmlRels,{offset:w})),a||(o("word/",{offset:w})?a={ext:"docx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}:o("ppt/",{offset:w})?a={ext:"pptx",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}:o("xl/",{offset:w})&&(a={ext:"xlsx",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})),_&&a)return a;f=u(r,w)}while(f>=0);if(a)return a}if(n([80,75])&&(r[2]===3||r[2]===5||r[2]===7)&&(r[3]===4||r[3]===6||r[3]===8))return{ext:"zip",mime:"application/zip"};if(n([117,115,116,97,114],{offset:257}))return{ext:"tar",mime:"application/x-tar"};if(n([82,97,114,33,26,7])&&(r[6]===0||r[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(n([31,139,8]))return{ext:"gz",mime:"application/gzip"};if(n([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(n([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(n([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(n([51,103,112,53])||n([0,0,0])&&n([102,116,121,112],{offset:4})&&(n([109,112,52,49],{offset:8})||n([109,112,52,50],{offset:8})||n([105,115,111,109],{offset:8})||n([105,115,111,50],{offset:8})||n([109,109,112,52],{offset:8})||n([77,52,86],{offset:8})||n([100,97,115,104],{offset:8})))return{ext:"mp4",mime:"video/mp4"};if(n([77,84,104,100]))return{ext:"mid",mime:"audio/midi"};if(n([26,69,223,163])){const u=r.subarray(4,4100),f=u.findIndex((_,a,w)=>w[a]===66&&w[a+1]===130);if(f!==-1){const _=f+3,a=w=>[...w].every((E,M)=>u[_+M]===E.charCodeAt(0));if(a("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(a("webm"))return{ext:"webm",mime:"video/webm"}}}if(n([0,0,0,20,102,116,121,112,113,116,32,32])||n([102,114,101,101],{offset:4})||n([102,116,121,112,113,116,32,32],{offset:4})||n([109,100,97,116],{offset:4})||n([109,111,111,118],{offset:4})||n([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(n([82,73,70,70])){if(n([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(n([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/vnd.wave"};if(n([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(n([48,38,178,117,142,102,207,17,166,217])){let u=30;do{const f=readUInt64LE(r,u+16);if(n([145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101],{offset:u})){if(n([64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43],{offset:u+24}))return{ext:"wma",mime:"audio/x-ms-wma"};if(n([192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43],{offset:u+24}))return{ext:"wmv",mime:"video/x-ms-asf"};break}u+=f}while(u+24<=r.length);return{ext:"asf",mime:"application/vnd.ms-asf"}}if(n([0,0,1,186])||n([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(n([102,116,121,112,51,103],{offset:4}))return{ext:"3gp",mime:"video/3gpp"};for(let u=0;u<2&&unew Promise((resolve,reject)=>{const stream=eval("require")("stream");readableStream.once("readable",()=>{const e=new stream.PassThrough,r=readableStream.read(module.exports.minimumBytes)||readableStream.read();try{e.fileType=fileType(r)}catch(n){reject(n)}readableStream.unshift(r),stream.pipeline?resolve(stream.pipeline(readableStream,e,()=>{})):resolve(readableStream.pipe(e))})})})(fileType$1);const fileType=fileType$1.exports,imageExts=new Set(["jpg","png","gif","webp","flif","cr2","tif","bmp","jxr","psd","ico","bpg","jp2","jpm","jpx","heic","cur","dcm"]),imageType=e=>{const r=fileType(e);return imageExts.has(r&&r.ext)?r:null};imageType$2.exports=imageType;imageType$2.exports.default=imageType;Object.defineProperty(imageType,"minimumBytes",{value:fileType.minimumBytes});var imageType$1=imageType$2.exports;function guessStripByteCounts(e){if(e.compression!==1)throw new Error("missing mandatory StripByteCounts field in compressed image");const r=e.rowsPerStrip*e.width*e.samplesPerPixel*(e.bitsPerSample/8);return new Array(e.stripOffsets.length).fill(r)}function applyHorizontalDifferencing8Bit(e,r,n){let o=0;for(;o4096)throw stringTable=[],new Error("LZW decoding error. Please open an issue at https://github.com/image-js/tiff/issues/new/choose (include a test image).");this.tableLength===bitJumps[this.currentBitLength]&&this.currentBitLength++}getNextCode(){this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8,this.nextBits>this.nextBits-this.currentBitLength&andTable[this.currentBitLength-9];return this.nextBits-=this.currentBitLength,this.bytePointer>this.stripArray.length?257:r}}function decompressLzw(e){return new LzwDecoder(e).decode()}const dateTimeRegex=/^(\d{4}):(\d{2}):(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;class TiffIfd extends IFD{constructor(){super("standard")}get size(){return this.width*this.height}get width(){return this.imageWidth}get height(){return this.imageLength}get components(){return this.samplesPerPixel}get date(){let r=new Date,n=dateTimeRegex.exec(this.dateTime);if(n===null)throw new Error(`invalid dateTime: ${this.dateTime}`);return r.setFullYear(Number(n[1]),Number(n[2])-1,Number(n[3])),r.setHours(Number(n[4]),Number(n[5]),Number(n[6])),r}get newSubfileType(){return this.get("NewSubfileType")}get imageWidth(){return this.get("ImageWidth")}get imageLength(){return this.get("ImageLength")}get bitsPerSample(){const r=this.get("BitsPerSample");return r&&typeof r!="number"?r[0]:r}get alpha(){const r=this.extraSamples;return r?r[0]!==0:!1}get associatedAlpha(){const r=this.extraSamples;return r?r[0]===1:!1}get extraSamples(){return alwaysArray(this.get("ExtraSamples"))}get compression(){return this.get("Compression")||1}get type(){return this.get("PhotometricInterpretation")}get fillOrder(){return this.get("FillOrder")||1}get documentName(){return this.get("DocumentName")}get imageDescription(){return this.get("ImageDescription")}get stripOffsets(){return alwaysArray(this.get("StripOffsets"))}get orientation(){return this.get("Orientation")}get samplesPerPixel(){return this.get("SamplesPerPixel")||1}get rowsPerStrip(){return this.get("RowsPerStrip")}get stripByteCounts(){return alwaysArray(this.get("StripByteCounts"))}get minSampleValue(){return this.get("MinSampleValue")||0}get maxSampleValue(){return this.get("MaxSampleValue")||Math.pow(2,this.bitsPerSample)-1}get xResolution(){return this.get("XResolution")}get yResolution(){return this.get("YResolution")}get planarConfiguration(){return this.get("PlanarConfiguration")||1}get resolutionUnit(){return this.get("ResolutionUnit")||2}get dateTime(){return this.get("DateTime")}get predictor(){return this.get("Predictor")||1}get sampleFormat(){return this.get("SampleFormat")||1}get sMinSampleValue(){return this.get("SMinSampleValue")||this.minSampleValue}get sMaxSampleValue(){return this.get("SMaxSampleValue")||this.maxSampleValue}get palette(){const r=2**this.bitsPerSample,n=this.get("ColorMap");if(!n)return;if(n.length!==3*r)throw new Error(`ColorMap size must be ${r}`);const o=[];for(let u=0;u0)return r;throw unsupported("ifdCount",r)}decode(r={}){r=Object.assign({},defaultOptions$c,r);const n=[];for(this.decodeHeader();this._nextIFD;)if(n.push(this.decodeIFD(r,!0)),r.onlyFirst)return[n[0]];return n}decodeHeader(){const r=this.readUint16();if(r===18761)this.setLittleEndian();else if(r===19789)this.setBigEndian();else throw new Error(`invalid byte order: 0x${r.toString(16)}`);if(this.readUint16()!==42)throw new Error("not a TIFF file");this._nextIFD=this.readUint32()}decodeIFD(r,n){this.seek(this._nextIFD);let o;if(n)o=new TiffIfd;else{if(!r.kind)throw new Error("kind is missing");o=new IFD(r.kind)}const u=this.readUint16();for(let f=0;f12){this.skip(4);return}getByteLength(u,f)>4&&this.seek(this.readUint32());const a=readData(this,u,f);if(r.fields.set(o,a),o===34665||o===34853){let w=this.offset,E="exif";o===34665?E="exif":o===34853&&(E="gps"),this._nextIFD=a,r[E]=this.decodeIFD({kind:E,ignoreImageData:!0},!1),this.offset=w}this.seek(n),this.skip(12)}decodeImageData(r){const n=r.orientation;if(n&&n!==1)throw unsupported("orientation",n);switch(r.type){case 0:case 1:case 2:case 3:this.readStripData(r);break;default:throw unsupported("image type",r.type)}if(this.applyPredictor(r),this.convertAlpha(r),r.type===0){const o=r.bitsPerSample,u=Math.pow(2,o)-1;for(let f=0;fE?E:L;L-=Y;let X=q;switch(r.compression){case 1:break;case 5:{X=decompressLzw(q);break}case 8:{X=decompressZlib(q);break}case 2:throw unsupported("Compression","CCITT Group 3");case 32773:throw unsupported("Compression","PackBits");default:throw unsupported("Compression",r.compression)}D=this.fillUncompressed(u,f,a,X,D,Y)}r.data=a}fillUncompressed(r,n,o,u,f,_){if(r===8)return fill8bit(o,u,f,_);if(r===16)return fill16bit(o,u,f,_,this.isLittleEndian());if(r===32&&n===3)return fillFloat32(o,u,f,_,this.isLittleEndian());throw unsupported("bitDepth",r)}applyPredictor(r){const n=r.bitsPerSample;switch(r.predictor){case 1:break;case 2:{if(n===8)applyHorizontalDifferencing8Bit(r.data,r.width,r.components);else if(n===16)applyHorizontalDifferencing16Bit(r.data,r.width,r.components);else throw new Error(`Horizontal differencing is only supported for images with a bit depth of ${n}`);break}default:throw new Error(`invalid predictor: ${r.predictor}`)}}convertAlpha(r){if(r.alpha&&r.associatedAlpha){const{data:n,components:o,maxSampleValue:u}=r;for(let f=0;fa&&(a=D.position[0]),D.position[0]E&&(E=D.position[1]),D.position[1]_+a);if(r===0)throw new Error("unreachable");let n=0,o=0,u=r/2,f;for(;;){if(e[n]>0){if(f!==void 0)return(f+n)/2;if(o+=e[n],o>u)return n;o===u&&(f=n)}n++}}function mean$2(e){let r=0,n=0;for(let o=0;onew Stack(n))}static extendMethod(r,n,o={}){let{inPlace:u=!1,returnThis:f=!0,partialArgs:_=[]}=o;return u?Stack.prototype[r]=function(...a){this.computed=null;let w=n.apply(this,[..._,...a]);return f?this:w}:Stack.prototype[r]=function(...a){return n.apply(this,[..._,...a])},Stack}static extendProperty(r,n,o={}){let{partialArgs:u=[]}=o;return computedPropertyDescriptor.get=function(){if(this.computed===null)this.computed={};else if(hasOwn(r,this.computed))return this.computed[r];let f=n.apply(this,u);return this.computed[r]=f,f},Object.defineProperty(Stack.prototype,r,computedPropertyDescriptor),Stack}checkProcessable(r,n={}){if(typeof r!="string")throw new TypeError("checkProcessable requires as first parameter the processName (a string)");if(this.size===0)throw new TypeError(`The process: ${r} can not be applied on an empty stack`);this[0].checkProcessable(r,n);for(let o=1;o{const f=new Uint8Array(u);return loadBinary(f,n?e:void 0,r&&r.ignorePalette)})}function loadPNG(e){const r=decodePng(e);let n=r.channels,o,u=0;return n===2||n===4?(o=n-1,u=1):o=n,r.palette?loadPNGFromPalette(r):new Image(r.width,r.height,r.data,{components:o,alpha:u,bitDepth:r.depth})}function loadPNGFromPalette(e){const r=e.width*e.height,n=e.palette[0].length,o=new Uint8Array(r*n),u=8/e.depth,f=e.depth<8?u:1,_=parseInt("1".repeat(e.depth),2),a=n===4;let w=0;for(let E=0;E>>e.depth*(u-1-E%u)&_);const L=e.palette[k];o[w++]=L[0],o[w++]=L[1],o[w++]=L[2],a&&(o[w++]=L[3])}return new Image(e.width,e.height,o,{components:3,alpha:a,bitDepth:8})}function loadJPEG(e){const r=decode(e);let n;r.exif&&(n=getMetadata(r.exif));const o=jpegJs.decode(e,{useTArray:!0,maxMemoryUsageInMB:1024});let u=new Image(o.width,o.height,o.data,{meta:n});if(n&&n.tiff.tags.Orientation){const f=n.tiff.tags.Orientation;f>2&&(u=u.rotate({3:180,4:180,5:90,6:90,7:270,8:270}[f])),[2,4,5,7].includes(f)&&(u=u.flipX())}return u}function loadTIFF(e,r){let n=decodeTIFF(e);return n.length===1?getImageFromIFD(n[0],r):new Stack(n.map(function(o){return getImageFromIFD(o,r)}))}function getMetadata(e){const r={tiff:{fields:e.fields,tags:e.map}};return e.exif&&(r.exif=e.exif),e.gps&&(r.gps=e.gps),r}function getImageFromIFD(e,r){if(!r&&e.type===3){const n=new Uint16Array(3*e.width*e.height),o=e.palette;let u=0;for(let f=0;fu[_]&&n(u,f,_),u[M];for(a=o(f,_),u[a]>u[_]&&n(u,a,_),u[f]>u[_]&&n(u,f,_),u[a]>u[f]&&n(u,a,f),n(u,a,f+1),w=f+1,E=_;;){do w++;while(u[f]>u[w]);do E--;while(u[E]>u[f]);if(E=M&&(_=E-1)}}var n=function(f,_,a){var w;return w=[f[a],f[_]],f[_]=w[0],f[a]=w[1],w},o=function(f,_){return~~((f+_)/2)};e.exports?e.exports=r:window.median=r})()})(medianQuickselect_min);var quickSelectMedian=medianQuickselect_min.exports;function validateArrayOfChannels(e,r={}){let{channels:n,allowAlpha:o,defaultAlpha:u}=r;return typeof o!="boolean"&&(o=!0),typeof n>"u"?allChannels(e,u):validateChannels(e,n,o)}function allChannels(e,r){let n=r?e.channels:e.components,o=new Array(n);for(let u=0;u=0 and <${e.channels}`);if(typeof r=="string"){switch(e.colorModel){case GREY$1:break;case RGB$1:if("rgb".includes(r))switch(r){case"r":r=0;break;case"g":r=1;break;case"b":r=2;break}break;case HSL:if("hsl".includes(r))switch(r){case"h":r=0;break;case"s":r=1;break;case"l":r=2;break}break;case HSV:if("hsv".includes(r))switch(r){case"h":r=0;break;case"s":r=1;break;case"v":r=2;break}break;case CMYK$1:if("cmyk".includes(r))switch(r){case"c":r=0;break;case"m":r=1;break;case"y":r=2;break;case"k":r=3;break}break;default:throw new Error(`Unexpected color model: ${e.colorModel}`)}if(r==="a"){if(!e.alpha)throw new Error("validateChannel : the image does not contain alpha channel");r=e.components}if(typeof r=="string")throw new Error(`validateChannel : undefined channel: ${r}`)}if(r>=e.channels)throw new RangeError(`validateChannel : the channel has to be >=0 and <${e.channels}`);if(!n&&r>=e.components)throw new RangeError("validateChannel : alpha channel may not be selected");return r}function medianFilter(e={}){let{radius:r=1,border:n="copy",channels:o}=e;if(this.checkProcessable("medianFilter",{bitDepth:[8,16]}),r<1)throw new Error("radius must be greater than 0");o=validateArrayOfChannels(this,o);let u=r,f=r,_=Image.createFrom(this),a=(u*2+1)*(f*2+1),w=new Array(a);for(let E=0;E>2,Te=0;Te>1;k<=M;)M-=k,k>>=1;M+=k,u[E]=M}},_makeCosSinTable:function(){var E=o>>1,M=o>>2,k=o>>3,L=E+M,D=Math.sin(Math.PI/o),U=2*D*D,q=Math.sqrt(U*(2-U)),Y=f[M]=1,X=f[0]=0;D=2*U;for(var oe=1;oe=0;w--)_.re[w]=e[w*2*n+a],_.im[w]=e[(w*2+1)*n+a];FFT.bt(_.re,_.im);for(var w=u-1;w>=0;w--)o[w*2*n+a]=_.re[w],o[(w*2+1)*n+a]=_.im[w]}var E=new Array(u*f);FFT.init(f);for(var M={re:new Array(f),im:new Array(f)},k=f*u,w=0;w=0;a--)E[L+a]=M.re[a]/k}return E},fft2DArray:function(e,r,n,o){Object.assign({},{inplace:!0});var u=n/2+1,f=r*2,_=new Array(f*u);FFT.init(n);for(var a={re:new Array(n),im:new Array(n)},w={re:new Array(n),im:new Array(n)},E={re:new Array(n),im:new Array(n)},M,k,L,D,U,q=0;q=0;Y--)_[k+Y]=w.re[Y],_[L+Y]=w.im[Y],_[D+Y]=E.re[Y],_[U+Y]=E.im[Y]}w=null,E=null;var X=new Array(f*u);FFT.init(r);for(var oe={re:new Array(r),im:new Array(r)},W=u-1;W>=0;W--){for(var q=r-1;q>=0;q--)oe.re[q]=_[q*2*u+W],oe.im[q]=_[(q*2+1)*u+W],isNaN(oe.re[q])&&(oe.re[q]=0),isNaN(oe.im[q])&&(oe.im[q]=0);FFT.fft1d(oe.re,oe.im);for(var q=r-1;q>=0;q--)X[q*2*u+W]=oe.re[q],X[(q*2+1)*u+W]=oe.im[q]}return X},reconstructTwoRealFFT:function(e,r,n){var o=e.re.length;r.re[0]=e.re[0],r.im[0]=0,n.re[0]=e.im[0],n.im[0]=0;for(var u,f,_,a,w,E=o/2;E>0;E--)w=o-E,u=.5*(e.re[E]-e.re[w]),f=.5*(e.re[E]+e.re[w]),_=.5*(e.im[E]-e.im[w]),a=.5*(e.im[E]+e.im[w]),r.re[E]=f,r.im[E]=_,r.re[w]=f,r.im[w]=-_,n.re[E]=a,n.im[E]=-u,n.re[w]=a,n.im[w]=u},convolute2DI:function(e,r,n,o){for(var u,f,_=0;_>++a!=0;);a=1<>++w!=0;);w=1<1&&arguments[1]!==void 0?arguments[1]:{};if(!isAnyArray(e))throw new TypeError("input must be an array");if(e.length===0)throw new TypeError("input must not be empty");var n=r.fromIndex,o=n===void 0?0:n,u=r.toIndex,f=u===void 0?e.length:u;if(o<0||o>=e.length||!Number.isInteger(o))throw new Error("fromIndex must be a positive integer smaller than length");if(f<=o||f>e.length||!Number.isInteger(f))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var _=e[o],a=o+1;a_&&(_=e[a]);return _}function min$1(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!isAnyArray(e))throw new TypeError("input must be an array");if(e.length===0)throw new TypeError("input must not be empty");var n=r.fromIndex,o=n===void 0?0:n,u=r.toIndex,f=u===void 0?e.length:u;if(o<0||o>=e.length||!Number.isInteger(o))throw new Error("fromIndex must be a positive integer smaller than length");if(f<=o||f>e.length||!Number.isInteger(f))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var _=e[o],a=o+1;a1&&arguments[1]!==void 0?arguments[1]:{};if(isAnyArray(e)){if(e.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var n;if(r.output!==void 0){if(!isAnyArray(r.output))throw new TypeError("output option must be an array if specified");n=r.output}else n=new Array(e.length);var o=min$1(e),u=max$1(e);if(o===u)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var f=r.min,_=f===void 0?r.autoMinMax?o:0:f,a=r.max,w=a===void 0?r.autoMinMax?u:1:a;if(_>=w)throw new RangeError("min option must be smaller than max option");for(var E=(w-_)/(u-o),M=0;M>o);return this},e.prototype.signPropagatingRightShiftM=function(o){if(o=r.checkMatrix(o),this.rows!==o.rows||this.columns!==o.columns)throw new RangeError("Matrices dimensions must be equal");for(let u=0;u>o.get(u,f));return this},e.signPropagatingRightShift=function(o,u){return new r(o).signPropagatingRightShift(u)},e.prototype.rightShift=function(o){return typeof o=="number"?this.rightShiftS(o):this.rightShiftM(o)},e.prototype.rightShiftS=function(o){for(let u=0;u>>o);return this},e.prototype.rightShiftM=function(o){if(o=r.checkMatrix(o),this.rows!==o.rows||this.columns!==o.columns)throw new RangeError("Matrices dimensions must be equal");for(let u=0;u>>o.get(u,f));return this},e.rightShift=function(o,u){return new r(o).rightShift(u)},e.prototype.zeroFillRightShift=e.prototype.rightShift,e.prototype.zeroFillRightShiftS=e.prototype.rightShiftS,e.prototype.zeroFillRightShiftM=e.prototype.rightShiftM,e.zeroFillRightShift=e.rightShift,e.prototype.not=function(){for(let o=0;oo)throw new RangeError("Row index out of range")}function checkColumnIndex(e,r,n){let o=n?e.columns:e.columns-1;if(r<0||r>o)throw new RangeError("Column index out of range")}function checkRowVector(e,r){if(r.to1DArray&&(r=r.to1DArray()),r.length!==e.columns)throw new RangeError("vector size must be the same as the number of columns");return r}function checkColumnVector(e,r){if(r.to1DArray&&(r=r.to1DArray()),r.length!==e.rows)throw new RangeError("vector size must be the same as the number of rows");return r}function checkRowIndices(e,r){if(!isAnyArray(r))throw new TypeError("row indices must be an array");for(let n=0;n=e.rows)throw new RangeError("row indices are out of range")}function checkColumnIndices(e,r){if(!isAnyArray(r))throw new TypeError("column indices must be an array");for(let n=0;n=e.columns)throw new RangeError("column indices are out of range")}function checkRange(e,r,n,o,u){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(checkNumber("startRow",r),checkNumber("endRow",n),checkNumber("startColumn",o),checkNumber("endColumn",u),r>n||o>u||r<0||r>=e.rows||n<0||n>=e.rows||o<0||o>=e.columns||u<0||u>=e.columns)throw new RangeError("Submatrix indices are out of range")}function newArray$1(e,r=0){let n=[];for(let o=0;o=f)throw new RangeError("min must be smaller than max");let a=f-u,w=new Matrix$2(r,n);for(let E=0;Eo?(f=!0,o=n):(u=!1,f=!0);r++}return u}isReducedEchelonForm(){let r=0,n=0,o=-1,u=!0,f=!1;for(;ro?(f=!0,o=n):(u=!1,f=!0);for(let _=n+1;_r.get(u,o)&&(u=f);if(r.get(u,o)===0)o++;else{r.swapRows(n,u);let f=r.get(n,o);for(let _=o;_=0;)if(r.maxRow(u)===0)u--;else{let f=0,_=!1;for(;fn[o]&&(n[o]=this.get(o,u));return n}case"column":{const n=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let o=0;on[u]&&(n[u]=this.get(o,u));return n}case void 0:{let n=this.get(0,0);for(let o=0;on&&(n=this.get(o,u));return n}default:throw new Error(`invalid option: ${r}`)}}maxIndex(){checkNonEmpty(this);let r=this.get(0,0),n=[0,0];for(let o=0;or&&(r=this.get(o,u),n[0]=o,n[1]=u);return n}min(r){if(this.isEmpty())return NaN;switch(r){case"row":{const n=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let o=0;on&&(n=this.get(r,o));return n}maxRowIndex(r){checkRowIndex(this,r),checkNonEmpty(this);let n=this.get(r,0),o=[r,0];for(let u=1;un&&(n=this.get(r,u),o[1]=u);return o}minRow(r){if(checkRowIndex(this,r),this.isEmpty())return NaN;let n=this.get(r,0);for(let o=1;on&&(n=this.get(o,r));return n}maxColumnIndex(r){checkColumnIndex(this,r),checkNonEmpty(this);let n=this.get(0,r),o=[0,r];for(let u=1;un&&(n=this.get(u,r),o[0]=u);return o}minColumn(r){if(checkColumnIndex(this,r),this.isEmpty())return NaN;let n=this.get(0,r);for(let o=1;o=o)throw new RangeError("min must be smaller than max");let u=new Matrix$2(this.rows,this.columns);for(let f=0;f0&&rescale(_,{min:n,max:o,output:_}),u.setRow(f,_)}return u}scaleColumns(r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{min:n=0,max:o=1}=r;if(!Number.isFinite(n))throw new TypeError("min must be a number");if(!Number.isFinite(o))throw new TypeError("max must be a number");if(n>=o)throw new RangeError("min must be smaller than max");let u=new Matrix$2(this.rows,this.columns);for(let f=0;fo||n<0||n>=this.columns||o<0||o>=this.columns)throw new RangeError("Argument out of range");let u=new Matrix$2(r.length,o-n+1);for(let f=0;f=this.rows)throw new RangeError(`Row index out of range: ${r[f]}`);u.set(f,_-n,this.get(r[f],_))}return u}subMatrixColumn(r,n,o){if(n===void 0&&(n=0),o===void 0&&(o=this.rows-1),n>o||n<0||n>=this.rows||o<0||o>=this.rows)throw new RangeError("Argument out of range");let u=new Matrix$2(o-n+1,r.length);for(let f=0;f=this.columns)throw new RangeError(`Column index out of range: ${r[f]}`);u.set(_-n,f,this.get(_,r[f]))}return u}setSubMatrix(r,n,o){if(r=Matrix$2.checkMatrix(r),r.isEmpty())return this;let u=n+r.rows-1,f=o+r.columns-1;checkRange(this,n,u,o,f);for(let _=0;_typeof r=="number")}AbstractMatrix.random=AbstractMatrix.rand;AbstractMatrix.randomInt=AbstractMatrix.randInt;AbstractMatrix.diagonal=AbstractMatrix.diag;AbstractMatrix.prototype.diagonal=AbstractMatrix.prototype.diag;AbstractMatrix.identity=AbstractMatrix.eye;AbstractMatrix.prototype.negate=AbstractMatrix.prototype.neg;AbstractMatrix.prototype.tensorProduct=AbstractMatrix.prototype.kroneckerProduct;class Matrix$2 extends AbstractMatrix{constructor(r,n){if(super(),Matrix$2.isMatrix(r))return r.clone();if(Number.isInteger(r)&&r>=0)if(this.data=[],Number.isInteger(n)&&n>=0)for(let o=0;o"u"&&(n=r,r=this.columns),checkColumnIndex(this,r,!0),n=checkColumnVector(this,n);for(let o=0;oMath.abs(U[M])&&(M=a);if(M!==w){for(E=0;E=0;E--){for(w=0;w_?u.set(f,_,r.get(f,_)):f===_?u.set(f,_,1):u.set(f,_,0);return u}get upperTriangularMatrix(){let r=this.LU,n=r.rows,o=r.columns,u=new Matrix$2(n,o);for(let f=0;fMath.abs(r)?(n=r/e,Math.abs(e)*Math.sqrt(1+n*n)):r!==0?(n=e/r,Math.abs(r)*Math.sqrt(1+n*n)):0}class QrDecomposition{constructor(r){r=WrapperMatrix2D.checkMatrix(r);let n=r.clone(),o=r.rows,u=r.columns,f=new Float64Array(u),_,a,w,E;for(w=0;w=0;E--){for(w=0;w=0;a--){for(f=0;f=0;ee--)if(U[ee]!==0){for(let ue=ee+1;ue=0;ee--){if(ee0;){let ee,ue;for(ee=ve-2;ee>=-1&&ee!==-1;ee--){const Me=Number.MIN_VALUE+_e*Math.abs(U[ee]+Math.abs(U[ee+1]));if(Math.abs(X[ee])<=Me||Number.isNaN(X[ee])){X[ee]=0;break}}if(ee===ve-2)ue=4;else{let Me;for(Me=ve-1;Me>=ee&&Me!==ee;Me--){let ke=(Me!==ve?Math.abs(X[Me]):0)+(Me!==ee+1?Math.abs(X[Me-1]):0);if(Math.abs(U[Me])<=_e*ke){U[Me]=0;break}}Me===ee?ue=3:Me===ve-1?ue=1:(ue=2,ee=Me)}switch(ee++,ue){case 1:{let Me=X[ve-2];X[ve-2]=0;for(let ke=ve-2;ke>=ee;ke--){let Qe=hypotenuse$1(U[ke],Me),at=U[ke]/Qe,Ft=Me/Qe;if(U[ke]=Qe,ke!==ee&&(Me=-Ft*X[ke-1],X[ke-1]=at*X[ke-1]),E)for(let Qt=0;Qt=U[ee+1]);){let Me=U[ee];if(U[ee]=U[ee+1],U[ee+1]=Me,E&&een&&f.set(M,k,r.get(M,k)/this.s[k]);let _=this.U,a=_.rows,w=_.columns,E=new Matrix$2(o,a);for(let M=0;Mr&&n++;return n}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return Matrix$2.diag(this.s)}}function inverse(e,r=!1){return e=WrapperMatrix2D.checkMatrix(e),r?new SingularValueDecomposition(e).inverse():solve(e,Matrix$2.eye(e.rows))}function solve(e,r,n=!1){return e=WrapperMatrix2D.checkMatrix(e),r=WrapperMatrix2D.checkMatrix(r),n?new SingularValueDecomposition(e).solve(r):e.isSquare()?new LuDecomposition(e).solve(r):new QrDecomposition(e).solve(r)}function determinant(e){if(e=Matrix$2.checkMatrix(e),e.isSquare()){if(e.columns===0)return 1;let r,n,o,u;if(e.columns===2)return r=e.get(0,0),n=e.get(0,1),o=e.get(1,0),u=e.get(1,1),r*u-n*o;if(e.columns===3){let f,_,a;return f=new MatrixSelectionView(e,[1,2],[1,2]),_=new MatrixSelectionView(e,[1,2],[0,2]),a=new MatrixSelectionView(e,[1,2],[0,1]),r=e.get(0,0),n=e.get(0,1),o=e.get(0,2),r*determinant(f)-n*determinant(_)+o*determinant(a)}else return new LuDecomposition(e).determinant}else throw Error("determinant can only be calculated for a square matrix")}function xrange(e,r){let n=[];for(let o=0;ou)return new Array(r.rows+1).fill(0);{let f=r.addRow(n,[0]);for(let _=0;_r?f[_]=1/f[_]:f[_]=0;return u.mmul(Matrix$2.diag(f).mmul(o.transpose()))}function covariance(e,r=e,n={}){e=new Matrix$2(e);let o=!1;if(typeof r=="object"&&!Matrix$2.isMatrix(r)&&!isAnyArray(r)?(n=r,r=e,o=!0):r=new Matrix$2(r),e.rows!==r.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:u=!0}=n;u&&(e=e.center("column"),o||(r=r.center("column")));const f=e.transpose().mmul(r);for(let _=0;_0?u.set(f,f+1,n[f]):n[f]<0&&u.set(f,f-1,n[f])}return u}}function tred2(e,r,n,o){let u,f,_,a,w,E,M,k;for(w=0;w0;a--){for(k=0,_=0,E=0;E0&&(f=-f),r[a]=k*f,_=_-u*f,n[a-1]=u-f,w=0;wE)do{for(u=n[E],k=(n[E+1]-u)/(2*r[E]),L=hypotenuse$1(k,1),k<0&&(L=-L),n[E]=r[E]/(k+L),n[E+1]=r[E]*(k+L),D=n[E+1],f=u-n[E],_=E+2;_=E;_--)for(Y=q,q=U,W=oe,u=U*r[_],f=U*k,L=hypotenuse$1(k,r[_]),r[_+1]=oe*L,oe=r[_]/L,U=k/L,k=U*n[_]-oe*u,n[_+1]=f+oe*(U*u+oe*n[_]),w=0;wTe*ie);n[E]=n[E]+K,r[E]=0}for(_=0;_=k;E--)n[E]=r.get(E,k-1)/L,w+=n[E]*n[E];for(a=Math.sqrt(w),n[k]>0&&(a=-a),w=w-n[k]*a,n[k]=n[k]-a,M=k;M=k;E--)_+=n[E]*r.get(E,M);for(_=_/w,E=k;E<=f;E++)r.set(E,M,r.get(E,M)-_*n[E])}for(E=0;E<=f;E++){for(_=0,M=f;M>=k;M--)_+=n[M]*r.get(E,M);for(_=_/w,M=k;M<=f;M++)r.set(E,M,r.get(E,M)-_*n[M])}n[k]=L*n[k],r.set(k,k-1,L*a)}}for(E=0;E=u+1;k--)if(r.get(k,k-1)!==0){for(E=k+1;E<=f;E++)n[E]=r.get(E,k-1);for(M=k;M<=f;M++){for(a=0,E=k;E<=f;E++)a+=n[E]*o.get(E,M);for(a=a/n[k]/r.get(k,k-1),E=k;E<=f;E++)o.set(E,M,o.get(E,M)+a*n[E])}}}function hqr2(e,r,n,o,u){let f=e-1,_=0,a=e-1,w=Number.EPSILON,E=0,M=0,k=0,L=0,D=0,U=0,q=0,Y=0,X,oe,W,K,ie,Te,ve,se,_e,ee,ue,Me,ke,Qe,at;for(X=0;Xa)&&(n[X]=u.get(X,X),r[X]=0),oe=Math.max(X-1,0);oe=_;){for(K=f;K>_&&(U=Math.abs(u.get(K-1,K-1))+Math.abs(u.get(K,K)),U===0&&(U=M),!(Math.abs(u.get(K,K-1))=0){for(q=k>=0?k+q:k-q,n[f-1]=se+q,n[f]=n[f-1],q!==0&&(n[f]=se-ve/q),r[f-1]=0,r[f]=0,se=u.get(f,f-1),U=Math.abs(se)+Math.abs(q),k=se/U,L=q/U,D=Math.sqrt(k*k+L*L),k=k/D,L=L/D,oe=f-1;oe0)){for(U=Math.sqrt(U),_e=K&&(q=u.get(ie,ie),D=se-q,U=_e-q,k=(D*U-ve)/u.get(ie+1,ie)+u.get(ie,ie+1),L=u.get(ie+1,ie+1)-q-D-U,D=u.get(ie+2,ie+1),U=Math.abs(k)+Math.abs(L)+Math.abs(D),k=k/U,L=L/U,D=D/U,!(ie===K||Math.abs(u.get(ie,ie-1))*(Math.abs(L)+Math.abs(D))ie+2&&u.set(X,X-3,0);for(W=ie;W<=f-1&&(Qe=W!==f-1,W!==ie&&(k=u.get(W,W-1),L=u.get(W+1,W-1),D=Qe?u.get(W+2,W-1):0,se=Math.abs(k)+Math.abs(L)+Math.abs(D),se!==0&&(k=k/se,L=L/se,D=D/se)),se!==0);W++)if(U=Math.sqrt(k*k+L*L+D*D),k<0&&(U=-U),U!==0){for(W!==ie?u.set(W,W-1,-U*se):K!==ie&&u.set(W,W-1,-u.get(W,W-1)),k=k+U,se=k/U,_e=L/U,q=D/U,L=L/k,D=D/k,oe=W;oe=0;f--)if(k=n[f],L=r[f],L===0)for(K=f,u.set(f,f,1),X=f-1;X>=0;X--){for(ve=u.get(X,X)-k,D=0,oe=K;oe<=f;oe++)D=D+u.get(X,oe)*u.get(oe,f);if(r[X]<0)q=ve,U=D;else if(K=X,r[X]===0?u.set(X,f,ve!==0?-D/ve:-D/(w*M)):(se=u.get(X,X+1),_e=u.get(X+1,X),L=(n[X]-k)*(n[X]-k)+r[X]*r[X],Te=(se*U-q*D)/L,u.set(X,f,Te),u.set(X+1,f,Math.abs(se)>Math.abs(q)?(-D-ve*Te)/se:(-U-_e*Te)/q)),Te=Math.abs(u.get(X,f)),w*Te*Te>1)for(oe=X;oe<=f;oe++)u.set(oe,f,u.get(oe,f)/Te)}else if(L<0)for(K=f-1,Math.abs(u.get(f,f-1))>Math.abs(u.get(f-1,f))?(u.set(f-1,f-1,L/u.get(f,f-1)),u.set(f-1,f,-(u.get(f,f)-k)/u.get(f,f-1))):(at=cdiv(0,-u.get(f-1,f),u.get(f-1,f-1)-k,L),u.set(f-1,f-1,at[0]),u.set(f-1,f,at[1])),u.set(f,f-1,0),u.set(f,f,1),X=f-2;X>=0;X--){for(ee=0,ue=0,oe=K;oe<=f;oe++)ee=ee+u.get(X,oe)*u.get(oe,f-1),ue=ue+u.get(X,oe)*u.get(oe,f);if(ve=u.get(X,X)-k,r[X]<0)q=ve,D=ee,U=ue;else if(K=X,r[X]===0?(at=cdiv(-ee,-ue,ve,L),u.set(X,f-1,at[0]),u.set(X,f,at[1])):(se=u.get(X,X+1),_e=u.get(X+1,X),Me=(n[X]-k)*(n[X]-k)+r[X]*r[X]-L*L,ke=(n[X]-k)*2*L,Me===0&&ke===0&&(Me=w*M*(Math.abs(ve)+Math.abs(L)+Math.abs(se)+Math.abs(_e)+Math.abs(q))),at=cdiv(se*D-q*ee+L*ue,se*U-q*ue-L*ee,Me,ke),u.set(X,f-1,at[0]),u.set(X,f,at[1]),Math.abs(se)>Math.abs(q)+Math.abs(L)?(u.set(X+1,f-1,(-ee-ve*u.get(X,f-1)+L*u.get(X,f))/se),u.set(X+1,f,(-ue-ve*u.get(X,f)-L*u.get(X,f-1))/se)):(at=cdiv(-D-_e*u.get(X,f-1),-U-_e*u.get(X,f),q,L),u.set(X+1,f-1,at[0]),u.set(X+1,f,at[1]))),Te=Math.max(Math.abs(u.get(X,f-1)),Math.abs(u.get(X,f))),w*Te*Te>1)for(oe=X;oe<=f;oe++)u.set(oe,f-1,u.get(oe,f-1)/Te),u.set(oe,f,u.get(oe,f)/Te)}for(X=0;Xa)for(oe=X;oe=_;oe--)for(X=_;X<=a;X++){for(q=0,W=_;W<=Math.min(oe,a);W++)q=q+o.get(X,W)*u.get(W,oe);o.set(X,oe,q)}}}function cdiv(e,r,n,o){let u,f;return Math.abs(n)>Math.abs(o)?(u=o/n,f=n+u*o,[(e+u*r)/f,(r-u*e)/f]):(u=n/o,f=o+u*n,[(u*e+r)/f,(u*r-e)/f])}class CholeskyDecomposition{constructor(r){if(r=WrapperMatrix2D.checkMatrix(r),!r.isSymmetric())throw new Error("Matrix is not symmetric");let n=r,o=n.rows,u=new Matrix$2(o,o),f=!0,_,a,w;for(a=0;a0,u.set(a,a,Math.sqrt(Math.max(E,0))),w=a+1;w=0;w--)for(a=0;a_;D++)k=r.transpose().mmul(a).div(a.transpose().mmul(a).get(0,0)),k=k.div(k.norm()),E=r.mmul(k).div(k.transpose().mmul(k).get(0,0)),D>0&&(w=E.clone().sub(L).pow(2).sum()),L=E.clone(),o?(M=o.transpose().mmul(E).div(E.transpose().mmul(E).get(0,0)),M=M.div(M.norm()),a=o.mmul(M).div(M.transpose().mmul(M).get(0,0))):a=E;if(o){let D=r.transpose().mmul(E).div(E.transpose().mmul(E).get(0,0));D=D.div(D.norm());let U=r.clone().sub(E.clone().mmul(D.transpose())),q=a.transpose().mmul(E).div(E.transpose().mmul(E).get(0,0)),Y=o.clone().sub(E.clone().mulS(q.get(0,0)).mmul(M.transpose()));this.t=E,this.p=D.transpose(),this.w=k.transpose(),this.q=M,this.u=a,this.s=E.transpose().mmul(E),this.xResidual=U,this.yResidual=Y,this.betas=q}else this.w=k.transpose(),this.s=E.transpose().mmul(E).sqrt(),u?this.t=E.clone().div(this.s.get(0,0)):this.t=E,this.xResidual=r.sub(E.mmul(k.transpose()))}}var src$1=Object.freeze(Object.defineProperty({__proto__:null,AbstractMatrix,default:Matrix$2,Matrix:Matrix$2,wrap,WrapperMatrix1D,WrapperMatrix2D,solve,inverse,determinant,linearDependencies,pseudoInverse,covariance,correlation,SingularValueDecomposition,SVD:SingularValueDecomposition,EigenvalueDecomposition,EVD:EigenvalueDecomposition,CholeskyDecomposition,CHO:CholeskyDecomposition,LuDecomposition,LU:LuDecomposition,QrDecomposition,QR:QrDecomposition,Nipals:nipals,NIPALS:nipals,MatrixColumnView,MatrixColumnSelectionView,MatrixFlipColumnView,MatrixFlipRowView,MatrixRowView,MatrixRowSelectionView,MatrixSelectionView,MatrixSubView,MatrixTransposeView:MatrixTransposeView$1},Symbol.toStringTag,{value:"Module"}));function getSeparatedKernel(e){const r=new SingularValueDecomposition(e,{autoTranspose:!0});if(r.rank!==1)return null;const n=Math.sqrt(r.s[0]),o=r.U.to2DArray().map(f=>f[0]*n),u=r.V.to2DArray().map(f=>f[0]*n);return[o,u]}function convolution(e,r={}){let{channels:n,bitDepth:o,normalize:u=!1,divisor:f=1,border:_="copy",algorithm:a="auto"}=r,w={};o&&(w.bitDepth=o);let E=Image.createFrom(this,w);if(n=validateArrayOfChannels(this,n),a!=="separable")({kernel:e}=validateKernel(e));else if(!Array.isArray(e)||e.length!==2)throw new RangeError("separable convolution requires two arrays of numbers to represent the kernel");if(a==="auto"){let K=getSeparatedKernel(e);K!==null?(a="separable",e=K):(e.length>9||e[0].length>9)&&this.width<=4096&&this.height<=4096?a="fft":a="direct"}let M,k;a==="separable"?(M=Math.floor(e[0].length/2),k=Math.floor(e[1].length/2)):(M=Math.floor(e.length/2),k=Math.floor(e[0].length/2));let L=E.isClamped,D=new Array(this.height*this.width),U,q,Y,X,oe,W;for(X=0;Xn.includes(_))),Array.isArray(u)&&u.length===this.channels&&(u=u.filter((f,_)=>n.includes(_)))),r){case"range":o<0&&(o=0),u>this.maxValue&&(u=this.maxValue),Array.isArray(o)||(o=newArray_1(n.length,o)),Array.isArray(u)||(u=newArray_1(n.length,u)),processImage(this,o,u,n);break;default:throw new Error(`level: algorithm not implement: ${r}`)}return this}function processImage(e,r,n,o){let u=1e-5,f=new Array(o.length);for(let _=0;_>0))}}else for(let o=0;o>0)}return this}function subtract(e,r={}){let{channels:n}=r;if(this.checkProcessable("subtract",{bitDepth:[8,16]}),n=validateArrayOfChannels(this,{channels:n}),e=checkNumberArray(e),isNaN(e)){if(this.data.length!==e.length)throw new Error("subtract: the data size is different");for(let o=0;o>0))}}else for(let o=0;o>0)}return this}function subtractImage(e,r={}){let{channels:n,absolute:o=!1}=r;if(this.checkProcessable("subtractImage",{bitDepth:[8,16]}),this.width!==e.width||this.height!==e.height)throw new Error("subtractImage: both images must have the same size");if(this.alpha!==e.alpha||this.bitDepth!==e.bitDepth)throw new Error("subtractImage: both images must have the same alpha and bitDepth");if(this.channels!==e.channels)throw new Error("subtractImage: both images must have the same number of channels");let u=this.clone();n=validateArrayOfChannels(this,{channels:n});for(let f=0;f>0))}}else for(let o=0;o>0)}return this}function divide(e,r={}){let{channels:n}=r;if(this.checkProcessable("divide",{bitDepth:[8,16]}),n=validateArrayOfChannels(this,{channels:n}),e=checkNumberArray(e),isNaN(e)){if(this.data.length!==e.length)throw new Error("divide: the: the data size is different");for(let o=0;o>0))}}else for(let o=0;o>0)}return this}class BaseRegression{constructor(){if(new.target===BaseRegression)throw new Error("BaseRegression must be subclassed")}predict(r){if(typeof r=="number")return this._predict(r);if(isAnyArray(r)){const n=[];for(let o=0;o=e.width||D>=e.height)continue;const U=e.getValueXY(L,D,0);U>E&&(E=U)}r.setValueXY(w,a,0,E)}return r}function dilateOnceGreyOnlyOnes(e,r,n,o){const u=(n-1)/2,f=(o-1)/2,_=[];for(let a=0;aE&&(E=k)}_[w]=E}for(let w=0;wE&&(E=_[M]);r.setValueXY(w,a,0,E)}}return r}function dilateOnceBinary(e,r,n){const o=n.length,u=n[0].length;let f=(o-1)/2,_=(u-1)/2;for(let a=0;a=e.width||D>=e.height)continue;if(e.getBitXY(L,D)===1){E=1;break e}}E===1&&r.setBitXY(w,a)}return r}function dilateOnceBinaryOnlyOnes(e,r,n,o){const u=(n-1)/2,f=(o-1)/2,_=[];for(let a=0;a=e.width||D>=e.height)continue;const U=e.getValueXY(L,D,0);U=e.width||D>=e.height)continue;if(e.getBitXY(L,D)===0){E=0;break e}}E===1&&r.setBitXY(w,a)}return r}function erodeOnceBinaryOnlyOnes(e,r,n,o){const u=(n-1)/2,f=(o-1)/2,_=[];for(let a=0;a=0?ue=Math.sqrt(ue):ue=Math.sqrt(-ue);let Me=new Matrix$2([[ue,0,M],[0,ue,k],[0,0,1]]),ke=Me.transpose(),Qe=inverse(ke),at=inverse(Me),Ft=Matrix$2.rowVector(W),Qt=Matrix$2.rowVector(K),Rt=Math.sqrt(dotVect(Ft.mmul(Qe).mmul(at).to1DArray(),W)/dotVect(Qt.mmul(Qe).mmul(at).to1DArray(),K));return Rt===0||L===0?(w=Math.ceil(_),E=Math.ceil(a)):Rtthis.width-1||n>this.height-1)throw new RangeError(`crop: origin (x:${r}, y:${n}) out of range (${this.width-1}; ${this.height-1})`);if(o<=0||u<=0)throw new RangeError(`crop: width and height (width:${o}; height:${u}) must be positive numbers`);if(r<0||n<0)throw new RangeError(`crop: x and y (x:${r}, y:${n}) must be positive numbers`);if(o>this.width-r||u>this.height-n)throw new RangeError(`crop: (x: ${r}, y:${n}, width:${o}, height:${u}) size is out of range`);let f=this;if(this.bitDepth===1){const _=new Image(o,u,{kind:"BINARY",parent:this});f=cropBinary(this,_,r,n,o,u)}else{const _=Image.createFrom(this,{width:o,height:u,position:[r,n]});f=cropDefault(this,_,r,n,o,u)}return f}function cropDefault(e,r,n,o,u,f){let _=u*e.channels,a=o+f,w=0,E=n*e.channels;for(let M=o;M=r)return o;return-1}function findTop(e,r,n,o){for(let u=0;u=r)return u;return-1}function findBottom(e,r,n,o){for(let u=e.height-1;u>=0;u--)for(let f=o;f=r)return u;return-1}function findRight(e,r,n,o,u,f){for(let _=e.width-1;_>=o;_--)for(let a=u;a<=f;a++)if(e.getValueXY(_,a,n)>=r)return _;return-1}function getFactor(e){if(typeof e=="string"){const r=e[e.length-1];e=parseFloat(e),r==="%"&&(e/=100)}return e}function getThreshold$1(e,r){if(!r)throw Error("getThreshold : the maxValue should be specified");if(typeof e=="string"){if(e[e.length-1]!=="%")throw Error("getThreshold : if the value is a string it must finish by %");return parseFloat(e)/100*r}else{if(typeof e=="number")return e<1?e*r:e;throw Error("getThreshold : the value is not valid")}}function factorDimensions(e,r,n){e=getFactor(e);let o=Math.round(e*r),u=Math.round(e*n);return o<=0&&(o=1),u<=0&&(u=1),{width:o,height:u}}function checkRow(e,r){if(r<0||r>=e.height)throw new RangeError(`row must be included between 0 and ${e.height-1}. Current value: ${r}`)}function checkColumn(e,r){if(r<0||r>=e.width)throw new RangeError(`column must be included between 0 and ${e.width-1}. Current value: ${r}`)}function checkChannel(e,r){if(r<0||r>=e.channels)throw new RangeError(`channel must be included between 0 and ${e.channels-1}. Current value: ${r}`)}const validInterpolations={nearestneighbor:"nearestNeighbor",nearestneighbour:"nearestNeighbor",bilinear:"bilinear"};function checkInterpolation(e){if(typeof e!="string")throw new TypeError("interpolation must be a string");if(e=e.toLowerCase(),!validInterpolations[e])throw new RangeError(`invalid interpolation algorithm: ${e}`);return validInterpolations[e]}function nearestNeighbor(e,r,n){const o=this.width/r,u=this.height/n;if(this.bitDepth>1)for(let f=0;fr?D/(2-w-E):D/(w+E),w){case f:M=(_-a)/D+(_>15},luma601(e,r,n){return e*9798+r*19235+n*3735>>15},maximum(e,r,n){return Math.max(e,r,n)},minimum(e,r,n){return Math.min(e,r,n)},average(e,r,n){return(e+r+n)/3>>0},minmax(e,r,n){return(Math.max(e,r,n)+Math.min(e,r,n))/2},red(e){return e},green(e,r){return r},blue(e,r,n){return n},cyan(e,r,n,o){let u=methods$1.black(e,r,n,o);return(o.maxValue-e-u)/(1-u/o.maxValue)>>0},magenta(e,r,n,o){let u=methods$1.black(e,r,n,o);return(o.maxValue-r-u)/(1-u/o.maxValue)>>0},yellow(e,r,n,o){let u=methods$1.black(e,r,n,o);return(o.maxValue-n-u)/(1-u/o.maxValue)>>0},black(e,r,n,o){return Math.min(o.maxValue-e,o.maxValue-r,o.maxValue-n)},hue(e,r,n,o){let u=methods$1.min(e,r,n),f=methods$1.max(e,r,n);if(f===u)return 0;let _=0,a=f-u;switch(f){case e:_=(r-n)/a+(r>0},saturation(e,r,n,o){let u=methods$1.min(e,r,n),f=methods$1.max(e,r,n),_=f-u;return f===0?0:_/f*o.maxValue},lightness(e,r,n){let o=methods$1.min(e,r,n);return(methods$1.max(e,r,n)+o)/2}};Object.defineProperty(methods$1,"luminosity",{enumerable:!1,value:methods$1.lightness});Object.defineProperty(methods$1,"luminance",{enumerable:!1,value:methods$1.lightness});Object.defineProperty(methods$1,"min",{enumerable:!1,value:methods$1.minimum});Object.defineProperty(methods$1,"max",{enumerable:!1,value:methods$1.maximum});Object.defineProperty(methods$1,"brightness",{enumerable:!1,value:methods$1.maximum});Object.keys(methods$1).forEach(e=>{});function grey(e={}){let{algorithm:r="luma709",keepAlpha:n=!1,mergeAlpha:o=!0}=e;if(typeof r!="string"&&typeof r!="function")throw new TypeError("algorithm must be a string or a function");this.checkProcessable("grey",{bitDepth:[8,16],alpha:[0,1]}),this.components===1&&(r="red"),n&=this.alpha,o&=this.alpha,n&&(o=!1);let u=getOutputImage(this,e,{components:1,alpha:n,colorModel:GREY$1}),f;if(typeof r=="function")f=r;else if(f=methods$1[r.toLowerCase()],!f)throw new Error(`unsupported grey algorithm: ${r}`);let _=0;for(let a=0;a=r;M--)if(e[M]!==0){n=M;break}let o=1/(n-r),u=new Array(e.length),f=0,_=0;for(let M=r;M0;M--)f+=M*e[M],_+=e[M],a[M-1]=f/_;let w=-1,E=Number.MAX_VALUE;for(let M=0;M.999999||(k+=e[D]*(-L*Math.log(L)-(1-L)*Math.log(1-L)));for(let D=M+1;D.999999||(k+=e[D]*(-L*Math.log(L)-(1-L)*Math.log(1-L)));k1e4)throw new Error("Intermodes Threshold not found after 10000 iterations")}let o=0;for(let u=1;u2))return!1;return n===2&&(r=!0),r}function isodata(e){let r,n,o,u,f=0;for(let _=1;_0){f=_+1;break}for(;;){r=0,o=0;for(let _=0;_0&&n>0&&(r/=o,u/=n,f===Math.round((r+u)/2)))break;if(f++,f>e.length-2)throw new Error("Threshold not found")}return f}function li(e,r){let n,o,u,f,_,a,w,E,M,k,L,D;L=.5,k=0;for(let U=0;UL);return n}function maxEntropy(e,r){let n=new Array(e.length);for(let L=0;L=Number.EPSILON){f=L;break}let _=e.length-1;for(let L=e.length-1;L>=f;L--)if(Math.abs(u[L])>=Number.EPSILON){_=L;break}let a=-1,w,E=Number.MIN_VALUE,M,k;for(let L=f;L<=_;L++){M=0;for(let D=0;D<=L;D++)e[D]!==0&&(M-=n[D]/o[L]*Math.log(n[D]/o[L]));k=0;for(let D=L+1;D0&&(o=f);for(;!bimodalTest(u);)if(u=smoothed(u),r++,r>1e4)return n;return n=minimumBetweenPeeks(u,o),n}function smoothed(e){let r=new Array(e.length);for(let n=1;ne[o]&&e[o+1]>=e[o]){n=o;break}return n}function bimodalTest(e){let r=e.length,n=!1,o=0;for(let u=1;u2))return!1;return o===2&&(n=!0),n}function moments(e,r){let n=1,o=0,u=0,f=0,_=0,a,w,E,M,k,L,D=-1,U=e.length,q=new Array(U);for(let Y=0;Ya){D=Y;break}return D}function otsu(e,r){let n=0,o=0,u=0,f=0,_=0;for(let a=0;a=u&&(f=a,u=M)}return f}function percentile(e){let r=-1,n=.5,o=new Array(e.length),u=partialSum(e,e.length-1),f=1;for(let _=0;_=Number.EPSILON){o=ie;break}u=e.length-1;for(let ie=e.length-1;ie>=o;ie--)if(Math.abs(a[ie])>=Number.EPSILON){u=ie;break}for(let ie=o;ie<=u;ie++){let Te=0,ve=0,se=0;for(let at=0;at<=ie;at++)e[at]!==0&&(Te-=f[at]/_[ie]*Math.log(f[at]/_[ie])),ve+=Math.sqrt(f[at]/_[ie]),se+=f[at]*f[at]/(_[ie]*_[ie]);let _e=0,ee=0,ue=0;for(let at=ie+1;at0?Math.log(ve*ee):0),Qe=X*(se*ue>0?Math.log(se*ue):0);Me>k&&(k=Me,w=ie),ke>L&&(L=ke,E=ie),Qe>D&&(D=Qe,M=ie)}let oe=[w,E,M];oe.sort((ie,Te)=>ie-Te);let W;Math.abs(oe[0]-oe[1])<=5?Math.abs(oe[1]-oe[2])<=5?W=[1,2,1]:W=[0,1,3]:Math.abs(oe[1]-oe[2])<=5?W=[3,1,0]:W=[1,2,1];let K=_[oe[2]]-_[oe[0]];return n=Math.round(oe[0]*(_[oe[0]]+.25*K*W[0])+.25*oe[1]*K*W[1]+oe[2]*(a[oe[2]]+.25*K*W[2])),n}function shanbhag(e,r){let n=new Array(e.length);for(let D=0;D=Number.EPSILON){f=D;break}let _=e.length-1;for(let D=e.length-1;D>=f;D--)if(Math.abs(u[D])>=Number.EPSILON){_=D;break}let a=-1,w=Number.MAX_VALUE,E,M,k,L;for(let D=f;D<=_;D++){k=0,E=.5/o[D];for(let U=1;U<=D;U++)k-=n[U]*Math.log(1-E*o[U-1]);k*=E,L=0,E=.5/u[D];for(let U=D+1;U0){r=k;break}r>0&&r--;for(let k=e.length-1;k>0;k--)if(e[k]>0){u=k;break}un&&(o=k,n=e[k]);let f=!1;if(o-rM&&(E=k,M=L)}if(E--,f){let k=0,L=e.length-1;for(;k=0;E--)f[E]=f[E+1]+n[E+1]*n[E+1];let _=-1,a=Number.MIN_VALUE,w;for(let E=0;E0?Math.log(u[E]*f[E]):0)+2*(o[E]*(1-o[E])>0?Math.log(o[E]*(1-o[E])):0),w>a&&(a=w,_=E);return _}const methods={huang,intermodes,isodata,li,maxentropy:maxEntropy,mean:mean$1,minerror:minError,minimum,moments,otsu,percentile,renyientropy:renyiEntropy,shanbhag,triangle:triangle$1,yen},names={};Object.keys(methods).forEach(e=>{names[e]=e});function getThreshold(e={}){let{algorithm:r=names.otsu}=e;this.checkProcessable("getThreshold",{components:1,bitDepth:[8,16]});let n=methods[r.toLowerCase()];if(n){let o=this.getHistogram();return n(o,this.size)}else throw new Error(`unknown thresholding algorithm: ${r}`)}const THRESHOLD="threshold";function mask(e={}){let{algorithm:r=THRESHOLD,threshold:n=.5,useAlpha:o=!0,invert:u=!1}=e;this.checkProcessable("mask",{components:1,bitDepth:[8,16]}),r===THRESHOLD?n=getThreshold$1(n,this.maxValue):n=getThreshold.call(this,e);let f=new Image(this.width,this.height,{kind:"BINARY",parent:this}),_=0;if(this.alpha&&o)for(let a=0;a=n)&&f.setBit(_),_++}else for(let a=0;a=n)&&f.setBit(_),_++;return f}function copyImage(e,r,n,o){let u=e.width,f=e.height,_=r.width,a=e.channels;for(let w=0;w>8;break;case 16:if(this.bitDepth===1)for(let n=0;n=e.width||L<0||L>=e.height?e.alpha===1&&M===e.channels-1?r.setValueXY(w,E,M,0):r.setValueXY(w,E,M,e.maxValue):r.setValueXY(w,E,M,e.getValueXY(k,L,M))}return r}function rotateBinaryNearestNeighbor(e,r,n,o,u,f,_,a){for(let w=0;w=e.width||k<0||k>=e.height||e.getBitXY(M,k))&&r.setBitXY(w,E)}return r}function rotateBilinear(e,r,n,o,u,f,_,a){let w=e.width*e.channels;for(let E=0;E=e.width||L<0||L>=e.height)e.alpha===1&&X===e.channels-1?r.setValueXY(M,E,X,0):r.setValueXY(M,E,X,e.maxValue);else{let oe=(U*e.width+D)*e.channels+X,W=e.data[oe],K=e.data[oe+e.channels],ie=e.data[oe+w],Te=e.data[oe+w+e.channels],ve=W+q*(K-W)+Y*(ie-W)+q*Y*(W-K-ie+Te)|0;r.setValueXY(M,E,X,ve)}}return r}function rotateBinaryBilinear(e,r,n,o,u,f,_,a){let w=e.width;for(let E=0;E=e.width||L<0||L>=e.height)r.setBitXY(M,E);else{let X=U*e.width+D,oe=e.getBit(X),W=e.getBit(X+1),K=e.getBit(X+w),ie=e.getBit(X+1+w);(oe|q&W-oe|Y&K-oe|q&Y&oe-W-K+ie)>0&&r.setBitXY(M,E)}}return r}function rotate$1(e,r){if(this.checkProcessable("rotate",{bitDepth:[1,8,16]}),typeof e!="number")throw new TypeError("angle must be a number");switch(e<0&&(e=Math.ceil(-e/360)*360+e),e%360){case 0:return this.clone();case 90:return rotateRight.call(this);case 180:return rotate180.call(this);case 270:return rotateLeft.call(this);default:return rotateFree.call(this,e,r)}}function rotateLeft(){if(this.bitDepth===1){const e=new Image(this.height,this.width,{kind:"BINARY",parent:this}),r=e.height-1;for(let n=0;n"u"&&(o=!0);let w=Math.max(a[0],-n[0]),E=Math.min(this.width-a[0],this.width-n[0]),M=Math.max(a[1],-n[1]),k=Math.min(this.height-a[1],this.height-n[1]),L=newArray_1(u.length,0);for(let D=0;DD+U)/L.length:L}function getPixelsGrid(e={}){let{sampling:r=[10,10],painted:n=!1,mask:o}=e;this.checkProcessable("getPixelsGrid",{bitDepth:[8,16],channels:1}),Array.isArray(r)||(r=[r,r]);const u=r[0],f=r[1],_=[],a=[],w=this.width/u,E=this.height/f;let M=Math.floor(w/2);for(let L=0;Ln&&(n=this[u][f],o=[u,f]);return{position:o,value:n}};Matrix.prototype.localSearch=function(e,r,n){let o=[];for(let u=Math.max(0,e-1);u1)throw new RangeError("You need to define the channel for an image that contains more than one channel");r=0}let n=new Matrix$2(this.height,this.width);for(let o=0;o1)throw new RangeError("You need to define the channel for an image that contains more than one channel");n=0}if(this.width!==e.columns||this.height!==e.rows)throw new RangeError("The size of the matrix must be equal to the size of the image");for(let o=0;o=n?o=getFurthestParent(this,r):o=getFurthestParent(e,n),r===0||n===0)return o;let u=this,f=e;for(;r!==n;)if(r>n){if(u=u.parent,u===null)return o;r=r-1}else{if(f=f.parent,f===null)return o;n=n-1}for(;u!==f&&u!==null&&f!==null;)if(u=u.parent,f=f.parent,u===null||f===null)return o;return u!==f?o:u}function getDepth$1(e){let r=0,n=e;for(;n.parent!=null;)n=n.parent,r++;return r}function getFurthestParent(e,r){let n=e;for(;r>0;)n=n.parent,r=r-1;return n}const defaultOptions$1={lowThreshold:10,highThreshold:30,gaussianBlur:1.1},Gx=[[-1,0,1],[-2,0,2],[-1,0,1]],Gy=[[-1,-2,-1],[0,0,0],[1,2,1]],convOptions={bitDepth:32,mode:"periodic"};function cannyEdgeDetector(e,r){e.checkProcessable("Canny edge detector",{bitDepth:8,channels:1,components:1}),r=Object.assign({},defaultOptions$1,r);const n=e.width,o=e.height,u=e.maxValue,f={sigma:r.gaussianBlur,radius:3},_=e.gaussianFilter(f),a=_.convolution(Gy,convOptions),w=_.convolution(Gx,convOptions),E=w.hypotenuse(a),M=e.constructor,k=new M(n,o,{kind:"GREY",bitDepth:32}),L=new M(n,o,{kind:"GREY",bitDepth:32}),D=new M(n,o,{kind:"GREY"});for(var U=1;Ur.highThreshold&&(oe++,D.data[U]=u),X>r.lowThreshold&&oe++,L.data[U]=oe}var W=[];for(U=1;U0;){var Te=[];for(U=0;U1){let o=Image.createFrom(this,{width:e.width,height:e.height,alpha:1,position:n,parent:this});for(let u=0;u0&&f;)f=f.next;return f?f.data:void 0},slice:function(u,f){if(u||(u=0),f||(f=this.length),f<0&&(f=this.length+f),u<0&&(u=this.length+u),f===u)return[];if(f0&&E;)E=E.next;for(;w<_&&E;)a[w++]=E.data,E=E.next;return a},drop:function(){o.call(this)},forEach:function(u,f){for(var _=this._head,a=0,w=this.length;a0;){const a=_.shift();u.setBitXY(a.x,a.y);for(let w=a.x+1;w=0&&!this.getBitXY(w,a.y-1)&&_.push(new Node(w,a.y-1));for(let w=a.x-1;w>=0&&(!u.getBitXY(w,a.y)&&!this.getBitXY(w,a.y));w++)u.setBitXY(w,a.y),a.y+1=0&&!this.getBitXY(w,a.y-1)&&_.push(new Node(w,a.y-1))}return u}function Node(e,r){this.x=e,this.y=r}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r=0&&f<1?o=[u,_,0]:f>=1&&f<2?o=[_,u,0]:f>=2&&f<3?o=[0,u,_]:e>=3&&f<4?o=[0,_,u]:e>=4&&f<5?o=[_,0,u]:e>=5&&f<=6?o=[u,0,_]:o=[0,0,0],{r:Math.round(255*(o[0]+a)),g:Math.round(255*(o[1]+a)),b:Math.round(255*(o[2]+a))}}function hsl2hsv(e,r,n){return r*=(n<50?n:100-n)/100,{h:e,s:2*r/(n+r)*100,v:n+r}}function hsl2rgb$1(e,r,n){var o=hsl2hsv(e,r,n);return hsv2rgb(o.h,o.s,o.v)}var colors={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,132,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,255,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,203],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[119,128,144],slategrey:[119,128,144],snow:[255,255,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,5]};function parse(e){return named(e)||hex3(e)||hex6(e)||rgb(e)||rgba$1(e)||hsl(e)||hsla(e)}function named(e){var r=colors[e.toLowerCase()];if(!!r)return{r:r[0],g:r[1],b:r[2],a:100}}function rgb(e){var r=e.match(/rgb\(([^)]+)\)/);if(r){var n=r[1].split(/ *, */).map(Number);return{r:n[0],g:n[1],b:n[2],a:100}}}function rgba$1(e){var r=e.match(/rgba\(([^)]+)\)/);if(r){var n=r[1].split(/ *, */).map(Number);return{r:n[0],g:n[1],b:n[2],a:n[3]*100}}}function hex6(e){if(e[0]==="#"&&e.length===7)return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:100}}function hex3(e){if(e[0]==="#"&&e.length===4)return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:100}}function hsl(e){var r=e.match(/hsl\(([^)]+)\)/);if(r){var n=r[1].split(/ *, */),o=parseInt(n[0],10),u=parseInt(n[1],10),f=parseInt(n[2],10),_=hsl2rgb$1(o,u,f);return _extends({},_,{a:100})}}function hsla(e){var r=e.match(/hsla\(([^)]+)\)/);if(r){var n=r[1].split(/ *, */),o=parseInt(n[0],10),u=parseInt(n[1],10),f=parseInt(n[2],10),_=parseInt(parseFloat(n[3])*100,10),a=hsl2rgb$1(o,u,f);return _extends({},a,{a:_})}}function css2array(e){let r=parse(e);return[r.r,r.g,r.b,Math.round(r.a*255/100)]}function hue2rgb(e,r,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(r-e)*6*n:n<1/2?r:n<2/3?e+(r-e)*(2/3-n)*6:e}function hsl2rgb(e,r,n){let o,u,f,_,a,w;return r/=100,n/=100,r===0?_=a=w=n*255:(n<=.5?u=n*(r+1):u=n+r-n*r,o=n*2-u,f=e/360,_=hue2rgb(o,u,f+1/3),a=hue2rgb(o,u,f),w=hue2rgb(o,u,f-1/3)),{r:_,g:a,b:w}}function getDistinctColors(e){let r=new Array(e),n=0;for(let o=0;o<360;o+=360/e){n++;let u=hsl2rgb(o,100,30+n%4*15);r[n-1]=[Math.round(u.r*255),Math.round(u.g*255),Math.round(u.b*255)]}return r}function getRandomColor(){return[Math.floor(Math.random()*256),Math.floor(Math.random()*256),Math.floor(Math.random()*256)]}function getColors(e){let{color:r,colors:n,randomColors:o,numberColors:u=50}=e;if(r&&!Array.isArray(r)&&(r=css2array(r)),r)return[r];if(n)return n=n.map(function(f){return Array.isArray(f)?f:css2array(f)}),n;if(o){n=new Array(u);for(let f=0;f0){let E=this.getCanvas().getContext("2d");E.fillStyle=f,E.font=_;for(let M=0;M>0,this.halfWidth=this.width/2>>0}getPoints(){let r=this.matrix,n=[];for(let o=0;o=0&&E+L>=0&&w+k=0&&X>=0&&Y=0&&u<=o}}function paintPolygons(e,r={}){let n=Object.assign({},r);this.checkProcessable("paintPolygons",{bitDepth:[8,16]});let o=getColors(Object.assign({},r,{numberColors:e.length}));for(let u=0;u1)throw new RangeError("You need to define the channel for an image that contains more than one channel");n=0}return getChannelHistogram.call(this,n,{useAlpha:o,maxSlots:r})}function getHistograms(e={}){const{maxSlots:r=256,useAlpha:n=!0}=e;this.checkProcessable("getHistograms",{bitDepth:[8,16]});let o=new Array(n?this.components:this.channels);for(let u=0;uu&&(f=this.bitDepth-u);let _=this.data,a=newArray_1(Math.pow(2,Math.min(this.bitDepth,u)),0);if(n&&this.alpha){let w=this.channels-e-1;for(let E=e;E<_.length;E+=this.channels)a[_[E]>>f]+=_[E+w]/this.maxValue}else for(let w=e;w<_.length;w+=this.channels)a[_[w]>>f]++;return a}function getColorHistogram(e={}){let{useAlpha:r=!0,nbSlots:n=512}=e;this.checkProcessable("getColorHistogram",{bitDepth:[8,16],components:[3]});let o=Math.log(n)/Math.log(8);if(o!==Math.floor(o))throw new RangeError("nbSlots must be a power of 8. Usually 8, 64, 512 or 4096");let u=this.bitDepth-o,f=this.data,_=newArray_1(Math.pow(8,o),0),a=Math.pow(2,o*2),w=Math.pow(2,o);for(let E=0;E>u)*a+(f[E+1]>>u)*w+(f[E+2]>>u);r&&this.alpha?_[M]+=f[E+this.channels-1]/this.maxValue:_[M]++}return _}function min(){this.checkProcessable("min",{bitDepth:[8,16,32]});let e=newArray_1(this.channels,1/0);for(let r=0;re[n]&&(e[n]=this.data[r+n]);return e}function sum(){this.checkProcessable("sum",{bitDepth:[8,16]});let e=newArray_1(this.channels,0);for(let r=0;rY&&U++:_.data[D+w[X]+(L+E[X])*_.width]0)for(let L=0;L>1,k[L][1]=k[L][1]+k[D][1]>>1,k.splice(D,1),D--);return k}function mean(){let e=this.getHistograms({maxSlots:this.maxValue+1}),r=new Array(e.length);for(let n=0;n=2&&cw(u[f-2],u[f-1],w)<=0;)f--;u[f++]=w}const _=f+1;for(let a=o-2;a>=0;a--){const w=e[a];for(;f>=_&&cw(u[f-2],u[f-1],w)<=0;)f--;u[f++]=w}return u.slice(0,f-1)}function cw(e,r,n){return(r[1]-e[1])*(n[0]-e[0])-(r[0]-e[0])*(n[1]-e[1])}function byXThenY(e,r){return e[0]===r[0]?e[1]-r[1]:e[0]-r[0]}function monotoneChainConvexHull(){return monotoneChainConvexHull$1(this.extendedPoints,{sorted:!1})}function round(e){for(let r=0;ro&&(o=e[f][0]),e[f][1]u&&(u=e[f][1]);return[[r,n],[o,u]]}function moveToZeroZero(e,r){r===void 0&&(r=new Array(e.length).fill(0).map(()=>[]));let n=minMax(e),o=n[0][0],u=n[0][1];for(let f=0;fU&&(U=Te));let ve=(-(M-w)*ie+M*E-k*w)/(M-w);Math.abs(ve)>Math.abs(q)&&(q=ve)}let Y=[w+D*(M-w),E],X=[w+U*(M-w),E],oe=Math.abs(q*(D-U)*(M-w));oe":[["googol"],1e100,"prefix"],"":[["Ki","Kibi","kibi"],Math.pow(2,10),"prefix"],"":[["Mi","Mebi","mebi"],Math.pow(2,20),"prefix"],"":[["Gi","Gibi","gibi"],Math.pow(2,30),"prefix"],"":[["Ti","Tebi","tebi"],Math.pow(2,40),"prefix"],"":[["Pi","Pebi","pebi"],Math.pow(2,50),"prefix"],"":[["Ei","Exi","exi"],Math.pow(2,60),"prefix"],"":[["Zi","Zebi","zebi"],Math.pow(2,70),"prefix"],"":[["Yi","Yebi","yebi"],Math.pow(2,80),"prefix"],"":[["Y","Yotta","yotta"],1e24,"prefix"],"":[["Z","Zetta","zetta"],1e21,"prefix"],"":[["E","Exa","exa"],1e18,"prefix"],"":[["P","Peta","peta"],1e15,"prefix"],"":[["T","Tera","tera"],1e12,"prefix"],"":[["G","Giga","giga"],1e9,"prefix"],"":[["M","Mega","mega"],1e6,"prefix"],"":[["k","kilo"],1e3,"prefix"],"":[["h","Hecto","hecto"],100,"prefix"],"":[["da","Deca","deca","deka"],10,"prefix"],"":[["d","Deci","deci"],.1,"prefix"],"":[["c","Centi","centi"],.01,"prefix"],"":[["m","Milli","milli"],.001,"prefix"],"":[["u","\u03BC","\xB5","Micro","mc","micro"],1e-6,"prefix"],"":[["n","Nano","nano"],1e-9,"prefix"],"":[["p","Pico","pico"],1e-12,"prefix"],"":[["f","Femto","femto"],1e-15,"prefix"],"":[["a","Atto","atto"],1e-18,"prefix"],"":[["z","Zepto","zepto"],1e-21,"prefix"],"":[["y","Yocto","yocto"],1e-24,"prefix"],"<1>":[["1","<1>"],1,""],"":[["m","meter","meters","metre","metres"],1,"length",[""]],"":[["in","inch","inches",'"'],.0254,"length",[""]],"":[["ft","foot","feet","'"],.3048,"length",[""]],"":[["yd","yard","yards"],.9144,"length",[""]],"":[["mi","mile","miles"],1609.344,"length",[""]],"":[["nmi","naut-mile"],1852,"length",[""]],"":[["league","leagues"],4828,"length",[""]],"":[["furlong","furlongs"],201.2,"length",[""]],"":[["rd","rod","rods"],5.029,"length",[""]],"":[["mil","mils"],254e-7,"length",[""]],"":[["ang","angstrom","angstroms"],1e-10,"length",[""]],"":[["fathom","fathoms"],1.829,"length",[""]],"":[["pica","picas"],.00423333333,"length",[""]],"":[["pt","point","points"],.000352777778,"length",[""]],"":[["z","red-shift","redshift"],1302773e20,"length",[""]],"":[["AU","astronomical-unit"],1495979e5,"length",[""]],"":[["ls","light-second"],299792500,"length",[""]],"":[["lmin","light-minute"],1798755e4,"length",[""]],"":[["ly","light-year"],9460528e9,"length",[""]],"":[["pc","parsec","parsecs"],3085678e10,"length",[""]],"":[["DM","datamile"],1828.8,"length",[""]],"":[["kg","kilogram","kilograms"],1,"mass",[""]],"":[["u","AMU","amu"],1660538921e-36,"mass",[""]],"":[["Da","Dalton","Daltons","dalton","daltons"],1660538921e-36,"mass",[""]],"":[["slug","slugs"],14.5939029,"mass",[""]],"":[["tn","ton","short-ton"],907.18474,"mass",[""]],"":[["tonne","metric-ton"],1e3,"mass",[""]],"":[["ct","carat","carats"],2e-4,"mass",[""]],"":[["lbs","lb","pound","pounds","#"],.45359237,"mass",[""]],"":[["oz","ounce","ounces"],.0283495231,"mass",[""]],"":[["g","gram","grams","gramme","grammes"],.001,"mass",[""]],"":[["grain","grains","gr"],6479891e-11,"mass",[""]],"":[["dram","drams","dr"],.0017718452,"mass",[""]],"":[["stone","stones","st"],6.35029318,"mass",[""]],"":[["hectare"],1e4,"area",["",""]],"":[["acre","acres"],4046.85642,"area",["",""]],"":[["sqft"],1,"area",["",""]],"":[["l","L","liter","liters","litre","litres"],.001,"volume",["","",""]],"":[["gal","gallon","gallons"],.0037854118,"volume",["","",""]],"":[["galimp","gallon-imp","gallons-imp"],.00454609,"volume",["","",""]],"":[["qt","quart","quarts"],.00094635295,"volume",["","",""]],"":[["pt","pint","pints"],.000473176475,"volume",["","",""]],"":[["ptimp","pint-imp","pints-imp"],.00056826125,"volume",["","",""]],"":[["cu","cup","cups"],.000236588238,"volume",["","",""]],"":[["floz","fluid-ounce","fluid-ounces"],295735297e-13,"volume",["","",""]],"":[["flozimp","floz-imp","fluid-ounce-imp","fluid-ounces-imp"],284130625e-13,"volume",["","",""]],"":[["tb","tbsp","tbs","tablespoon","tablespoons"],147867648e-13,"volume",["","",""]],"":[["tsp","teaspoon","teaspoons"],492892161e-14,"volume",["","",""]],"":[["bu","bsh","bushel","bushels"],.035239072,"volume",["","",""]],"":[["bbl","oilbarrel","oilbarrels","oil-barrel","oil-barrels"],.158987294928,"volume",["","",""]],"":[["bl","bl-us","beerbarrel","beerbarrels","beer-barrel","beer-barrels"],.1173477658,"volume",["","",""]],"":[["blimp","bl-imp","beerbarrel-imp","beerbarrels-imp","beer-barrel-imp","beer-barrels-imp"],.16365924,"volume",["","",""]],"":[["kph"],.277777778,"speed",[""],[""]],"":[["mph"],.44704,"speed",[""],[""]],"":[["kt","kn","kts","knot","knots"],.514444444,"speed",[""],[""]],"":[["fps"],.3048,"speed",[""],[""]],"":[["gee"],9.80665,"acceleration",[""],["",""]],"":[["Gal"],.01,"acceleration",[""],["",""]],"":[["degK","kelvin"],1,"temperature",[""]],"":[["degC","celsius","celsius","centigrade"],1,"temperature",[""]],"":[["degF","fahrenheit"],5/9,"temperature",[""]],"":[["degR","rankine"],5/9,"temperature",[""]],"":[["tempK","temp-K"],1,"temperature",[""]],"":[["tempC","temp-C"],1,"temperature",[""]],"":[["tempF","temp-F"],5/9,"temperature",[""]],"":[["tempR","temp-R"],5/9,"temperature",[""]],"":[["s","sec","secs","second","seconds"],1,"time",[""]],"":[["min","mins","minute","minutes"],60,"time",[""]],"":[["h","hr","hrs","hour","hours"],3600,"time",[""]],"":[["d","day","days"],3600*24,"time",[""]],"":[["wk","week","weeks"],7*3600*24,"time",[""]],"":[["fortnight","fortnights"],1209600,"time",[""]],"":[["y","yr","year","years","annum"],31556926,"time",[""]],"":[["decade","decades"],315569260,"time",[""]],"":[["century","centuries"],3155692600,"time",[""]],"":[["Pa","pascal","Pascal"],1,"pressure",[""],["","",""]],"":[["bar","bars"],1e5,"pressure",[""],["","",""]],"":[["mmHg"],133.322368,"pressure",[""],["","",""]],"":[["inHg"],3386.3881472,"pressure",[""],["","",""]],"":[["torr"],133.322368,"pressure",[""],["","",""]],"":[["atm","ATM","atmosphere","atmospheres"],101325,"pressure",[""],["","",""]],"":[["psi"],6894.76,"pressure",[""],["","",""]],"":[["cmH2O","cmh2o"],98.0638,"pressure",[""],["","",""]],"":[["inH2O","inh2o"],249.082052,"pressure",[""],["","",""]],"":[["P","poise"],.1,"viscosity",[""],["",""]],"":[["St","stokes"],1e-4,"viscosity",["",""],[""]],"":[["mol","mole"],1,"substance",[""]],"":[["M","molar"],1e3,"concentration",[""],["","",""]],"":[["wt%","wtpercent"],10,"concentration",[""],["","",""]],"":[["kat","katal","Katal"],1,"activity",[""],[""]],"":[["U","enzUnit","unit"],16667e-19,"activity",[""],[""]],"":[["F","farad","Farad"],1,"capacitance",["","","","","",""],["","",""]],"":[["C","coulomb","Coulomb"],1,"charge",["",""]],"":[["Ah"],3600,"charge",["",""]],"":[["A","Ampere","ampere","amp","amps"],1,"current",[""]],"":[["S","Siemens","siemens"],1,"conductance",["","","","",""],["","",""]],"":[["H","Henry","henry"],1,"inductance",["","",""],["","","",""]],"":[["V","Volt","volt","volts"],1,"potential",["","",""],["","","",""]],"":[["Ohm","ohm","\u03A9","\u2126"],1,"resistance",["","",""],["","","","",""]],"":[["Wb","weber","webers"],1,"magnetism",["","",""],["","",""]],"":[["T","tesla","teslas"],1,"magnetism",[""],["","",""]],"":[["G","gauss"],1e-4,"magnetism",[""],["","",""]],"":[["Mx","maxwell","maxwells"],1e-8,"magnetism",["","",""],["","",""]],"":[["Oe","oersted","oersteds"],250/Math.PI,"magnetism",[""],[""]],"":[["J","joule","Joule","joules"],1,"energy",["","",""],["",""]],"":[["erg","ergs"],1e-7,"energy",["","",""],["",""]],"":[["BTU","btu","BTUs"],1055.056,"energy",["","",""],["",""]],"":[["cal","calorie","calories"],4.184,"energy",["","",""],["",""]],"":[["Cal","Calorie","Calories"],4184,"energy",["","",""],["",""]],"":[["th","therm","therms","Therm","therm-US"],105480400,"energy",["","",""],["",""]],"":[["Wh"],3600,"energy",["","",""],["",""]],"":[["N","Newton","newton"],1,"force",["",""],["",""]],"":[["dyn","dyne"],1e-5,"force",["",""],["",""]],"":[["lbf","pound-force"],4.448222,"force",["",""],["",""]],"":[["Hz","hertz","Hertz"],1,"frequency",["<1>"],[""]],"":[["rad","radian","radians"],1,"angle",[""]],"":[["deg","degree","degrees"],Math.PI/180,"angle",[""]],"":[["gon","grad","gradian","grads"],Math.PI/200,"angle",[""]],"":[["sr","steradian","steradians"],1,"solid_angle",[""]],"":[["rotation"],2*Math.PI,"angle",[""]],"":[["rpm"],2*Math.PI/60,"angular_velocity",[""],[""]],"":[["B","byte","bytes"],1,"information",[""]],"":[["b","bit","bits"],.125,"information",[""]],"":[["Bps"],1,"information_rate",[""],[""]],"":[["bps"],.125,"information_rate",[""],[""]],"":[["USD","dollar"],1,"currency",[""]],"":[["cents"],.01,"currency",[""]],"":[["cd","candela"],1,"luminosity",[""]],"":[["lm","lumen"],1,"luminous_power",["",""]],"":[["lux"],1,"illuminance",["",""],["",""]],"":[["W","watt","watts"],1,"power",["","",""],["","",""]],"":[["VA","volt-ampere"],1,"power",["","",""],["","",""]],"":[["var","Var","VAr","VAR","volt-ampere-reactive"],1,"power",["","",""],["","",""]],"":[["hp","horsepower"],745.699872,"power",["","",""],["","",""]],"":[["Gy","gray","grays"],1,"radiation",["",""],["",""]],"":[["R","roentgen"],.00933,"radiation",["",""],["",""]],"":[["Sv","sievert","sieverts"],1,"radiation",["",""],["",""]],"":[["Bq","becquerel","becquerels"],1,"radiation",["<1>"],[""]],"":[["Ci","curie","curies"],37e9,"radiation",["<1>"],[""]],"":[["cpm"],1/60,"rate",[""],[""]],"":[["dpm"],1/60,"rate",[""],[""]],"":[["bpm"],1/60,"rate",[""],[""]],"":[["dot","dots"],1,"resolution",[""]],"":[["pixel","px"],1,"resolution",[""]],"":[["ppi"],1,"resolution",[""],[""]],"":[["dpi"],1,"typography",[""],[""]],"":[["cells","cell"],1,"counting",[""]],"":[["each"],1,"counting",[""]],"":[["count"],1,"counting",[""]],"":[["bp","base-pair"],1,"counting",[""]],"":[["nt","nucleotide"],1,"counting",[""]],"":[["molecule","molecules"],1,"counting",["<1>"]],"":[["doz","dz","dozen"],12,"prefix_only",[""]],"":[["%","percent"],.01,"prefix_only",["<1>"]],"":[["ppm"],1e-6,"prefix_only",["<1>"]],"":[["ppt"],1e-9,"prefix_only",["<1>"]],"":[["gr","gross"],144,"prefix_only",["",""]],"":[["dB","decibel","decibels"],1,"logarithmic",[""]]},Y=["","","","","","","","","","","","","",""],X="<1>",oe=[X];function W(xe,te){var $=te[1],Q=te[3]||[],ce=te[4]||[];if(!u($))throw new D(xe+": Invalid unit definition. 'scalar' must be a number");Q.forEach(function(fe){if(q[fe]===void 0)throw new D(xe+": Invalid unit definition. Unit "+fe+" in 'numerator' is not recognized")}),ce.forEach(function(fe){if(q[fe]===void 0)throw new D(xe+": Invalid unit definition. Unit "+fe+" in 'denominator' is not recognized")})}var K={},ie={},Te={},ve={},se={};for(var _e in q)if(q.hasOwnProperty(_e)){var ee=q[_e];if(ee[2]==="prefix"){K[_e]=ee[1];for(var ue=0;ue"u")for(te=0;tefe.toLowerCase()?1:0})}function Qe(xe){if(!ve[xe])throw new D("Unit not recognized");return q[ve[xe]][0]}var at=["length","time","temperature","mass","current","substance","luminosity","currency","information","angle"];function Ft(){if(this.signature)return this.signature;for(var xe=Qt.call(this),te=0;te=0&&(xe[Q]=xe[Q]+1));for(var fe=0;fe=0&&(xe[Q]=xe[Q]-1));return xe}var Rt="[+-]",Jt="\\d+",Xe=Rt+"?"+Jt,mt="\\."+Jt,gt="(?:"+Jt+"(?:"+mt+")?)|(?:"+mt+")",ot="[Ee]"+Xe,At="(?:"+gt+")(?:"+ot+")?",xt=Rt+"?\\s*"+At,Ct="("+xt+")?\\s*([^/]*)(?:/(.+))?",It=new RegExp("^"+Ct+"$"),mi="\\^|\\*{2}",_t="[01234]",Ei=new RegExp("([^ \\*\\d]+?)(?:"+mi+")?(-?"+_t+"(?![a-zA-Z]))"),zi=new RegExp("([^ \\*\\d]+?)(?:"+mi+")?("+_t+"(?![a-zA-Z]))");function Bi(xe){n(xe)||(xe=xe.toString()),xe=xe.trim();var te=It.exec(xe);if(!te)throw new D(xe+": Quantity not recognized");var $=te[1];$?($=$.replace(/\s/g,""),this.scalar=parseFloat($)):this.scalar=1;for(var Q=te[2],ce=te[3],fe,Ie,$e;te=Ei.exec(Q);){if(fe=parseFloat(te[2]),isNaN(fe))throw new D("Unit exponent is not a number");if(fe===0&&!Ti.test(te[1]))throw new D("Unit not recognized");Ie=te[1]+" ",$e="";for(var je=0;je=0?Q=Q.replace(te[0],$e):(ce=ce?ce+$e:$e,Q=Q.replace(te[0],""))}for(;te=zi.exec(ce);){if(fe=parseFloat(te[2]),isNaN(fe))throw new D("Unit exponent is not a number");if(fe===0&&!Ti.test(te[1]))throw new D("Unit not recognized");Ie=te[1]+" ",$e="";for(var Be=0;Be=0)throw new D("Cannot divide with temperatures");if(this.numerator.join("*").indexOf("temp")>=0){if(this.numerator.length>1)throw new D("Cannot multiply by temperatures");if(!a(this.denominator,oe))throw new D("Cannot divide with temperatures")}if(this.initValue=xe,Nt.call(this),this.isTemperature()&&this.baseScalar<0)throw new D("Temperatures must not be less than absolute zero")}Ae.prototype={constructor:Ae};function pt(xe,te){if(te){if(!(u(xe)&&n(te)))throw new D("Only number accepted as initialization value when units are explicitly provided")}else if(!(n(xe)||u(xe)||di(xe)||jt(xe)))throw new D("Only string, number or quantity accepted as single initialization value")}function jt(xe){return xe&&typeof xe=="object"&&xe.hasOwnProperty("scalar")}function Nt(){if(this.baseScalar)return this.baseScalar;if(this.isBase())this.baseScalar=this.scalar,this.signature=Ft.call(this);else{var xe=this.toBase();this.baseScalar=xe.scalar,this.signature=xe.signature}}var Ht={"-312078":"elastance","-312058":"resistance","-312038":"inductance","-152058":"potential","-152040":"magnetism","-152038":"magnetism","-7997":"specific_volume","-79":"snap","-59":"jolt","-39":"acceleration","-38":"radiation","-20":"frequency","-19":"speed","-18":"viscosity","-17":"volumetric_flow","-1":"wavenumber",0:"unitless",1:"length",2:"area",3:"volume",20:"time",400:"temperature",7941:"yank",7942:"power",7959:"pressure",7961:"force",7962:"energy",7979:"viscosity",7981:"momentum",7982:"angular_momentum",7997:"density",7998:"area_density",8e3:"mass",152020:"radiation_exposure",159999:"magnetism",16e4:"current",160020:"charge",312058:"conductance",312078:"capacitance",3199980:"activity",3199997:"molar_concentration",32e5:"substance",63999998:"illuminance",64e6:"luminous_power",128e7:"currency","25599999980":"information_rate","25600000000":"information","511999999980":"angular_velocity","512000000000":"angle"};function Ut(){return _(Object.keys(Ht).map(function(xe){return Ht[xe]}))}Ae.prototype.kind=function(){return Ht[this.signature.toString()]},w(Ae.prototype,{isDegrees:function(){return(this.signature===null||this.signature===400)&&this.numerator.length===1&&a(this.denominator,oe)&&(this.numerator[0].match(//)||this.numerator[0].match(/<(kelvin|celsius|rankine|fahrenheit)>/))},isTemperature:function(){return this.isDegrees()&&this.numerator[0].match(//)}});function Pt(xe,te){var $=xe.units(),Q=te.to($),ce=Ae(fi($));return Ae({scalar:xe.scalar-Q.scalar,numerator:ce.numerator,denominator:ce.denominator})}function ei(xe,te){var $=te.to(fi(xe.units()));return Ae({scalar:xe.scalar-$.scalar,numerator:xe.numerator,denominator:xe.denominator})}function Li(xe,te){var $=te.to(fi(xe.units()));return Ae({scalar:xe.scalar+$.scalar,numerator:xe.numerator,denominator:xe.denominator})}function fi(xe){if(xe==="tempK")return"degK";if(xe==="tempC")return"degC";if(xe==="tempF")return"degF";if(xe==="tempR")return"degR";throw new D("Unknown type for temp conversion from: "+xe)}function Ii(xe,te){var $=Hi(xe),Q=te.units(),ce;if(Q==="degK")ce=$.scalar;else if(Q==="degC")ce=$.scalar;else if(Q==="degF")ce=$.scalar*9/5;else if(Q==="degR")ce=$.scalar*9/5;else throw new D("Unknown type for degree conversion to: "+Q);return Ae({scalar:ce,numerator:te.numerator,denominator:te.denominator})}function Hi(xe){var te=xe.units(),$;if(te.match(/(deg)[CFRK]/))$=xe.baseScalar;else if(te==="tempK")$=xe.scalar;else if(te==="tempC")$=xe.scalar;else if(te==="tempF")$=xe.scalar*5/9;else if(te==="tempR")$=xe.scalar*5/9;else throw new D("Unknown type for temp conversion from: "+te);return Ae({scalar:$,numerator:[""],denominator:oe})}function er(xe,te){var $=te.units(),Q;if($==="tempK")Q=xe.baseScalar;else if($==="tempC")Q=xe.baseScalar-273.15;else if($==="tempF")Q=xe.baseScalar*9/5-459.67;else if($==="tempR")Q=xe.baseScalar*9/5;else throw new D("Unknown type for temp conversion to: "+$);return Ae({scalar:Q,numerator:te.numerator,denominator:te.denominator})}function Gi(xe){var te=xe.units(),$;if(te.match(/(deg)[CFRK]/))$=xe.baseScalar;else if(te==="tempK")$=xe.scalar;else if(te==="tempC")$=xe.scalar+273.15;else if(te==="tempF")$=(xe.scalar+459.67)*5/9;else if(te==="tempR")$=xe.scalar*5/9;else throw new D("Unknown type for temp conversion from: "+te);return Ae({scalar:$,numerator:[""],denominator:oe})}w(Ae.prototype,{to:function(xe){var te,$;if(xe==null)return this;if(!n(xe))return this.to(xe.units());if(te=this._conversionCache[xe],te)return te;if($=Ae(xe),$.units()===this.units())return this;if(!this.isCompatible($))this.isInverse($)?$=this.inverse().to(xe):U(this.units(),$.units());else if($.isTemperature())$=er(this,$);else if($.isDegrees())$=Ii(this,$);else{var Q=M(this.baseScalar,$.baseScalar);$=Ae({scalar:Q,numerator:$.numerator,denominator:$.denominator})}return this._conversionCache[xe]=$,$},toBase:function(){if(this.isBase())return this;if(this.isTemperature())return Gi(this);var xe=Pr[this.units()];return xe||(xe=xn(this.numerator,this.denominator),Pr[this.units()]=xe),xe.mul(this.scalar)},toFloat:function(){if(this.isUnitless())return this.scalar;throw new D("Can't convert to Float unless unitless. Use Unit#scalar")},toPrec:function(xe){if(n(xe)&&(xe=Ae(xe)),u(xe)&&(xe=Ae(xe+" "+this.units())),this.isUnitless()?xe.isUnitless()||U(this.units(),xe.units()):xe=xe.to(this.units()),xe.scalar===0)throw new D("Divide by zero");var te=E(Math.round(this.scalar/xe.scalar),xe.scalar);return Ae(te+this.units())}});function Mi(xe,te){var $=Ae(xe),Q=Ae(te);if($.eq(Q))return f;var ce;return $.isTemperature()?ce=function(fe){return $.mul(fe).to(Q).scalar}:ce=function(fe){return fe*$.baseScalar/Q.baseScalar},function(Ie){var $e,je,Be;if(Array.isArray(Ie)){for(je=Ie.length,Be=[],$e=0;$e0)for(Vt=0;Vtxe.baseScalar)return 1},same:function(xe){return this.scalar===xe.scalar&&this.units()===xe.units()}}),w(Ae.prototype,{isUnitless:function(){return[this.numerator,this.denominator].every(function(xe){return a(xe,oe)})},isCompatible:function(xe){return n(xe)?this.isCompatible(Ae(xe)):di(xe)&&xe.signature!==void 0?this.signature===xe.signature:!1},isInverse:function(xe){return this.inverse().isCompatible(xe)},isBase:function(){return this._isBase!==void 0?this._isBase:this.isDegrees()&&this.numerator[0].match(/<(kelvin|temp-K)>/)?(this._isBase=!0,this._isBase):(this.numerator.concat(this.denominator).forEach(function(xe){xe!==X&&Y.indexOf(xe)===-1&&(this._isBase=!1)},this),this._isBase===!1?this._isBase:(this._isBase=!0,this._isBase))}});function Zr(){}Zr.prototype.get=function(xe){return arguments.length>1&&(xe=Array.apply(null,arguments)),xe.reduce(function(te,$,Q){if(te){var ce=te[$];return Q===xe.length-1?ce?ce.data:void 0:ce}},this)},Zr.prototype.set=function(xe,te){return arguments.length>2&&(xe=Array.prototype.slice.call(arguments,0,-1),te=arguments[arguments.length-1]),xe.reduce(function($,Q,ce){var fe=$[Q];return fe===void 0&&(fe=$[Q]={}),ce===xe.length-1?(fe.data=te,te):fe},this)};function Kr(xe,te){return(xe+" "+te).trim()}Ae.formatter=Kr,w(Ae.prototype,{units:function(){if(this._units!==void 0)return this._units;var xe=a(this.numerator,oe),te=a(this.denominator,oe);if(xe&&te)return this._units="",this._units;var $=Xr(this.numerator),Q=Xr(this.denominator);return this._units=$+(te?"":"/"+Q),this._units},toString:function(xe,te){var $;if(u(xe))$=this.units(),te=xe;else if(n(xe))$=xe;else if(di(xe))return this.toPrec(xe).toString(te);var Q=this.to($),ce=te!==void 0?k(Q.scalar,te):Q.scalar;return Q=(ce+" "+Q.units()).trim(),Q},format:function(xe,te){arguments.length===1&&typeof xe=="function"&&(te=xe,xe=void 0),te=te||Ae.formatter;var $=this.to(xe);return te.call(this,$.scalar,$.units())}});var Ki=new Zr;function Xr(xe){var te=Ki.get(xe);if(te)return te;var $=a(xe,oe);return $?te="1":te=wr(Fr(xe)).join("*"),Ki.set(xe,te),te}function Fr(xe){for(var te=[],$,Q,ce=0;ce1?$[1]:"")})}return Ae.version="1.7.6",Ae})})(quantities);var Qty=quantities.exports;function deepValue(e,r=""){let n=r.split(".");for(let o of n){if(e[o]===void 0)return;e=e[o]}return e}var orientation={exports:{}},twoProduct_1=twoProduct$1,SPLITTER=+(Math.pow(2,27)+1);function twoProduct$1(e,r,n){var o=e*r,u=SPLITTER*e,f=u-e,_=u-f,a=e-_,w=SPLITTER*r,E=w-r,M=w-E,k=r-M,L=o-_*M,D=L-a*M,U=D-_*k,q=a*k-U;return n?(n[0]=q,n[1]=o,n):[q,o]}var robustSum=linearExpansionSum;function scalarScalar$1(e,r){var n=e+r,o=n-e,u=n-o,f=r-o,_=e-u,a=_+f;return a?[a,n]:[n]}function linearExpansionSum(e,r){var n=e.length|0,o=r.length|0;if(n===1&&o===1)return scalarScalar$1(e[0],r[0]);var u=n+o,f=new Array(u),_=0,a=0,w=0,E=Math.abs,M=e[a],k=E(M),L=r[w],D=E(L),U,q;k=o?(U=M,a+=1,a=o?(U=M,a+=1,a0){if(se<=0)return _e;ee=ve+se}else if(ve<0){if(se>=0)return _e;ee=-(ve+se)}else return _e;var ue=a*ee;return _e>=ue||_e<=-ue?_e:D(K,ie,Te)},function(K,ie,Te,ve){var se=K[0]-ve[0],_e=ie[0]-ve[0],ee=Te[0]-ve[0],ue=K[1]-ve[1],Me=ie[1]-ve[1],ke=Te[1]-ve[1],Qe=K[2]-ve[2],at=ie[2]-ve[2],Ft=Te[2]-ve[2],Qt=_e*ke,Rt=ee*Me,Jt=ee*ue,Xe=se*ke,mt=se*Me,gt=_e*ue,ot=Qe*(Qt-Rt)+at*(Jt-Xe)+Ft*(mt-gt),At=(Math.abs(Qt)+Math.abs(Rt))*Math.abs(Qe)+(Math.abs(Jt)+Math.abs(Xe))*Math.abs(at)+(Math.abs(mt)+Math.abs(gt))*Math.abs(Ft),xt=w*At;return ot>xt||-ot>xt?ot:U(K,ie,Te,ve)}];function Y(W){var K=q[W.length];return K||(K=q[W.length]=L(W.length)),K.apply(void 0,W)}function X(W,K,ie,Te,ve,se,_e){return function(ue,Me,ke,Qe,at){switch(arguments.length){case 0:case 1:return 0;case 2:return Te(ue,Me);case 3:return ve(ue,Me,ke);case 4:return se(ue,Me,ke,Qe);case 5:return _e(ue,Me,ke,Qe,at)}for(var Ft=new Array(arguments.length),Qt=0;Qt0;){var oe=(w+u-1)%u,W=e[oe];if(W[1]!==o)break;var K=W[0];Y=Math.min(Y,K),X=Math.max(X,K),w=oe}if(w===0)return Y<=n&&n<=X?0:1;_=w+1}for(var ie=e[(w+u-1)%u][1];a+1<_;){var W=e[a+1];if(W[1]!==o)break;var K=W[0];Y=Math.min(Y,K),X=Math.max(X,K),a+=1}if(Y<=n&&n<=X)return 0;var Te=e[(a+1)%u][1];nk&&(k=U,L=[],L.push([n[D][0],n[E][1]],[n[D][0],n[D][1]]))}kw&&(w=k,_=Math.sqrt(k),a=[r[E],r[M]])}return{min:o,minLine:f,max:_,maxLine:a,aspectRatio:o/_}}function getAngle(e,r){let n=difference(r,e),o=normalize(n),u=Math.acos(o[0]);return o[1]<0?-u:u}class Roi{constructor(r,n){this.map=r,this.id=n,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY,this.minY=Number.POSITIVE_INFINITY,this.maxY=Number.NEGATIVE_INFINITY,this.meanX=0,this.meanY=0,this.surface=0,this.computed={}}getMask(r={}){const{scale:n=1,kind:o=""}=r;let u;switch(o){case"contour":u=this.contourMask;break;case"box":u=this.boxMask;break;case"filled":u=this.filledMask;break;case"center":u=this.centerMask;break;case"mbr":u=this.mbrFilledMask;break;case"hull":u=this.convexHullFilledMask;break;case"hullContour":u=this.convexHullMask;break;case"mbrContour":u=this.mbrMask;break;case"feret":u=this.feretMask;break;default:u=this.mask}return n<1&&(u=u.resize({factor:n}),u.parent=this.mask.parent,u.position[0]+=this.minX,u.position[1]+=this.minY),u}get mean(){throw new Error("Roi mean not implemented yet")}get center(){return this.computed.center||(this.computed.center=[this.width/2>>0,this.height/2>>0]),this.computed.center}get ratio(){return this.width/this.height}get width(){return this.maxX-this.minX+1}get height(){return this.maxY-this.minY+1}_computExternalIDs(){let r=this.borderIDs,n=this.borderLengths;this.computed.externalIDs=[],this.computed.externalLengths=[];let o=this.internalIDs;for(let u=0;u0&&n0&&o0&&o0&&u0){const n=minMax(r),o=new Image(n[1][0]-n[0][0]+1,n[1][1]-n[0][1]+1,{kind:BINARY,position:[this.minX+n[0][0],this.minY+n[0][1]],parent:this.map.parent});r=moveToZeroZero(r),o.paintPolyline(r,{closed:!0}),this.computed.mbrMask=o}else this.computed.mbrMask=new Image(1,1,{kind:BINARY,position:[this.minX,this.minY],parent:this.map.parent})}return this.computed.mbrMask}get mbrFilledMask(){if(!this.computed.mbrFilledMask){const r=new Image(this.width,this.height,{kind:BINARY,position:[this.minX,this.minY],parent:this.map.parent}),n=this.mask.minimalBoundingRectangle();for(let o=0;o=r&&(r=_,n=[o[u],o[f]])}this.computed.maxLengthPoints=n}return this.computed.maxLengthPoints}get maxLength(){if(!this.computed.maxLength){let r=Math.sqrt(Math.pow(this.maxLengthPoints[0][0]-this.maxLengthPoints[1][0],2)+Math.pow(this.maxLengthPoints[0][1]-this.maxLengthPoints[1][1],2));this.computed.maxLength=r}return this.computed.maxLength}get roundness(){return 4*this.surface/(Math.PI*this.feretDiameters.max**2)}get sphericity(){return 2*Math.sqrt(this.surface*Math.PI)/this.perimeter}get solidity(){return this.surface/this.convexHull.surface}get angle(){if(!this.computed.angle){let r=this.maxLengthPoints,n=-Math.atan2(r[0][1]-r[1][1],r[0][0]-r[1][0])*180/Math.PI;this.computed.angle=n}return this.computed.angle}toJSON(){return{id:this.id,minX:this.minX,maxX:this.maxX,minY:this.minY,maxY:this.maxY,meanX:this.meanX,meanY:this.meanY,height:this.height,width:this.width,surface:this.surface,mbrWidth:this.mbr.width,mbrHeight:this.mbr.height,mbrSurface:this.mbr.surface,eqpc:this.eqpc,ped:this.ped,feretDiameterMin:this.feretDiameters.min,feretDiameterMax:this.feretDiameters.max,aspectRatio:this.feretDiameters.aspectRatio,fillRatio:this.fillRatio,sphericity:this.sphericity,roundness:this.roundness,solidity:this.solidity,perimeter:this.perimeter}}}function getBorders(e){let r=e.map,n=r.data,o=new Set,u=new Map,f=new Set,_=[1,0,-1,0],a=[0,1,0,-1];for(let M=e.minX;M<=e.maxX;M++)for(let k=e.minY;k<=e.maxY;k++){let L=M+k*r.width;if(n[L]===e.id)for(let D=0;D<4;D++){let U=M+_[D],q=k+a[D];if(U>=0&&q>=0&&U0&&o[_]===e.id&&o[_-1]!==e.id){let a=o[_-1];r.add(a)}if(n.width-f-e.minX>1&&o[_]===e.id&&o[_+1]!==e.id){let a=o[_+1];r.add(a)}}for(let u of[0,e.width-1])for(let f=0;f0&&o[_]===e.id&&o[_-n.width]!==e.id){let a=o[_-n.width];r.add(a)}if(n.height-f-e.minY>1&&o[_]===e.id&&o[_+n.width]!==e.id){let a=o[_+n.width];r.add(a)}}return Array.from(r)}function getBox(e){let r=0,n=e.map,o=n.data,u=[0];e.height>1&&(u[1]=e.height-1);for(let _ of u)for(let a=1;a1&&(f[1]=e.width-1);for(let _ of f)for(let a=0;a2)for(let f=0;f0?this.roiMap.positive++:this.roiMap.negative++);let o={};for(let a in n)o[a]=new Roi(this.roiMap,a*1);let u=this.roiMap.width,f=this.roiMap.height;for(let a=0;ak.maxX&&(k.maxX=w),ak.maxY&&(k.maxY=a),k.meanX+=w,k.meanY+=a,k.surface++}}let _=[];for(let a in n)o[a].meanX/=o[a].surface,o[a].meanY/=o[a].surface,_.push(o[a]);return _}}function commonBorderLength(e){let r=e.data,n=[1,0,-1,0],o=[0,1,0,-1],u=e.minMax,f=-u.min,_=u.max+f,a=[];for(let E=0;E<=_;E++)a.push(Object.create(null));for(let E=0;E=0&&X>=0&&Y0&&(w[E-f]=a[E]);return w}function mergeRoi(e={}){const{algorithm:r="commonBorderLength",minCommonBorderLength:n=5,maxCommonBorderLength:o=100,minCommonBorderRatio:u=.3,maxCommonBorderRatio:f=1}=e;let _=function(Y,X,oe){return Y[oe]>=n&&Y[oe]<=o};typeof r=="function"&&(_=r),r.toLowerCase()==="commonborderratio"&&(_=function(Y,X,oe){let W=Math.min(Y[oe]/Y[X],1);return W>=u&&W<=f});const a=this,w=a.commonBorderLength;let E={},M={};for(let Y of Object.keys(w)){let X=w[Y],oe=Object.keys(X);for(let W of oe)if(W!==Y&&_(X,Y,W)){let K=W;M[W]&&(K=M[W]);let ie=Y;if(M[Y]&&(ie=M[Y]),Number(K)!==ie){let Te=Math.min(K,ie),ve=Math.max(K,ie);if(E[Te]||(E[Te]={}),E[Te][ve]=!0,M[ve]=Te,E[ve]){for(let se of Object.keys(E[ve]))E[Te][se]=!0,M[se]=Te;delete E[ve]}}}}let k=a.minMax,L=-k.min,D=k.max+L,U=new Array(D+1).fill(0);for(let Y of Object.keys(M))U[Number(Y)+L]=M[Y];let q=a.data;for(let Y=0;Yn&&(n=this.data[o]);return{min:r,max:n}}get commonBorderLength(){return commonBorderLength(this)}mergeRoi(r={}){return mergeRoi.call(this,r)}mergeRois(r){const n=r[0],o=r.slice(1);for(let u=0;u0?(u.positivePixel++,f[k]||(f[k]=!0)):k<0?(u.negativePixel++,_[k]||(_[k]=!0)):u.zeroPixel++}a.push(E),u.medianChange=a.sort((M,k)=>M-k)[Math.floor(a.length/2)],u.positiveRoiIDs=Object.keys(f),u.negativeRoiIDs=Object.keys(_),u.positiveRoi=u.positiveRoiIDs.length,u.negativeRoi=u.negativeRoiIDs.length}return r}colsInfo(){let r=new Array(this.width),n=0;for(let o=0;o0?(u.positivePixel++,f[k]||(f[k]=!0)):k<0?(u.negativePixel++,_[k]||(_[k]=!0)):u.zeroPixel++}a.push(E),u.medianChange=a.sort((M,k)=>M-k)[Math.floor(a.length/2)],u.positiveRoiIDs=Object.keys(f),u.negativeRoiIDs=Object.keys(_),u.positiveRoi=u.positiveRoiIDs.length,u.negativeRoi=u.negativeRoiIDs.length}return r}}function fromMask(e,r={}){const{allowCorners:n=!1}=r,o=65535;let u=new Int16Array(e.size),f=0,_=0,a=new Uint16Array(o+1),w=new Uint16Array(o+1);for(let M=0;M32767||_<-32768)throw new Error("Too many regions of interest");for(a[0]=M,w[0]=k;L<=D;){let Y=a[L&o],X=w[L&o];if(u[X*e.width+Y]=q,Y>0&&u[X*e.width+Y-1]===0&&e.getBitXY(Y-1,X)===U&&(D++,a[D&o]=Y-1,w[D&o]=X,u[X*e.width+Y-1]=-32768),X>0&&u[(X-1)*e.width+Y]===0&&e.getBitXY(Y,X-1)===U&&(D++,a[D&o]=Y,w[D&o]=X-1,u[(X-1)*e.width+Y]=-32768),Y0&&X>0&&u[(X-1)*e.width+Y-1]===0&&e.getBitXY(Y-1,X-1)===U&&(D++,a[D&o]=Y-1,w[D&o]=X-1,u[(X-1)*e.width+Y-1]=-32768),Y0&&u[(X-1)*e.width+Y+1]===0&&e.getBitXY(Y+1,X-1)===U&&(D++,a[D&o]=Y+1,w[D&o]=X-1,u[(X-1)*e.width+Y+1]=-32768),Y>0&&Xo)throw new Error("analyseMask can not finish, the array to manage internal data is not big enough.You could improve mask by changing MAX_ARRAY")}}return new RoiMap(e,u)}class DisjointSet{constructor(){this.nodes=new Map}add(r){var n=this.nodes.get(r);return n||(n=new DisjointSetNode(r),this.nodes.set(r,n)),n}union(r,n){const o=this.find(r),u=this.find(n);o!==u&&(o.ranku.rank?u.parent=o:(u.parent=o,o.rank++))}find(r){for(var n=r;n.parent!==null;)n=n.parent;for(var o=r;o.parent!==null;){var u=o;o=o.parent,u.parent=n}return n}connected(r,n){return this.find(r)===this.find(n)}}var DisjointSet_1=DisjointSet;function DisjointSetNode(e){this.value=e,this.parent=null,this.rank=0}var DisjointSet$1=DisjointSet_1;const direction4X=[-1,0],direction4Y=[0,-1],neighbours4=[null,null],direction8X=[-1,-1,0,1],direction8Y=[0,-1,-1,-1],neighbours8=[null,null,null,null];function fromMaskConnectedComponentLabelingAlgorithm(e,r={}){const{allowCorners:n=!1}=r;let o=4;n&&(o=8);let u,f,_;if(o===8)u=direction8X,f=direction8Y,_=neighbours8;else if(o===4)u=direction4X,f=direction4Y,_=neighbours4;else throw new RangeError(`unsupported neighbours count: ${o}`);const a=e.size,w=e.width,E=e.height,M=new Array(a),k=new Uint32Array(a),L=new DisjointSet$1;let D=1;for(let U=0;U=0&&K>=0&&WMe||u.data[_e*u.width+ee+1]>Me||u.data[(_e-1)*u.width+ee]>Me||u.data[(_e+1)*u.width+ee]>Me||r&&(u.data[(_e-1)*u.width+ee-1]>Me||u.data[(_e-1)*u.width+ee+1]>Me||u.data[(_e+1)*u.width+ee-1]>Me||u.data[(_e+1)*u.width+ee+1]>Me))continue;E[ue]=se?++a:--w,Te(ee,_e)||(se?--a:++w)}}}function Te(se,_e){let ee=Y;W=0,K=1,X[0]=se,oe[0]=_e;let ue=!0;for(;W0)return!1;n||(E[at]=ue,D[Y&L]=Qe,U[Y&L]=ke,Y++)}break;case _:k[at]<=0&&(E[at]=ue,D[Y&L]=Qe,U[Y&L]=ke,Y++);break;default:throw new Error("unreachable")}}return!0}}function fromPoints(e,r={}){let n=new Shape(r),o=new Int16Array(this.size),u=0,f=n.getPoints();for(let _=0;_=0&&w+k>=0&&a+M>>1,w(_[k],a)>=0?M=k+1:E=k;return M},o.exports=function(){function _(a){var w;this.options=a,this.comparator=this.options.comparator,this.data=((w=this.options.initialValues)!=null?w.slice(0):void 0)||[],this.data.sort(this.comparator).reverse()}return _.prototype.queue=function(a){var w;w=f(this.data,a,this.comparator),this.data.splice(w,0,a)},_.prototype.dequeue=function(){return this.data.pop()},_.prototype.peek=function(){return this.data[this.data.length-1]},_.prototype.clear=function(){this.data.length=0},_}()},{}],4:[function(n,o,u){o.exports=function(){function f(_){var a,w,E,M,k,L,D,U;for(this.comparator=_?.comparator||function(q,Y){return q-Y},this.pageSize=_?.pageSize||512,this.length=0,D=0;1<k;0<=k?++w:--w)a.push(null);if(this._memory=[],this._mask=this.pageSize-1,_.initialValues)for(L=_.initialValues,E=0,M=L.length;E0&&(this._write(1,a),this._bubbleDown(1,a)),_},f.prototype.peek=function(){return this._read(1)},f.prototype.clear=function(){this.length=0,this._memory.length=0},f.prototype._write=function(_,a){var w;for(w=_>>this._shift;w>=this._memory.length;)this._memory.push(this._emptyMemoryPageTemplate.slice(0));return this._memory[w][_&this._mask]=a},f.prototype._read=function(_){return this._memory[_>>this._shift][_&this._mask]},f.prototype._bubbleUp=function(_,a){var w,E,M,k;for(w=this.comparator;_>1&&(E=_&this._mask,_3?M=_&~this._mask|E>>1:E<2?(M=_-this.pageSize>>this._shift,M+=M&~(this._mask>>1),M|=this.pageSize>>1):M=_-2,k=this._read(M),!(w(k,a)<0));)this._write(M,a),this._write(_,k),_=M},f.prototype._bubbleDown=function(_,a){var w,E,M,k,L;for(L=this.comparator;_this._mask&&!(_&this._mask-1)?w=E=_+2:_&this.pageSize>>1?(w=(_&~this._mask)>>1,w|=_&this._mask>>1,w=w+1<0)for(_=a=1,w=this.data.length;1<=w?aw;_=1<=w?++a:--a)this._bubbleUp(_)},f.prototype.queue=function(_){this.data.push(_),this._bubbleUp(this.data.length-1)},f.prototype.dequeue=function(){var _,a;return a=this.data[0],_=this.data.pop(),this.data.length>0&&(this.data[0]=_,this._bubbleDown(0)),a},f.prototype.peek=function(){return this.data[0]},f.prototype.clear=function(){this.length=0,this.data.length=0},f.prototype._bubbleUp=function(_){for(var a,w;_>0&&(a=_-1>>>1,this.comparator(this.data[_],this.data[a])<0);)w=this.data[a],this.data[a]=this.data[_],this.data[_]=w,_=a},f.prototype._bubbleDown=function(_){var a,w,E,M,k;for(a=this.data.length-1;w=(_<<1)+1,M=w+1,E=_,w<=a&&this.comparator(this.data[w],this.data[E])<0&&(E=w),M<=a&&this.comparator(this.data[M],this.data[E])<0&&(E=M),E!==_;)k=this.data[E],this.data[E]=this.data[_],this.data[_]=k,_=E},f}()},{}]},{},[1])(1)})})(priorityQueue);var PriorityQueue=priorityQueue.exports;const dxs=[1,0,-1,0,1,1,-1,-1],dys=[0,1,0,-1,1,-1,1,-1];function fromWaterShed(e={}){let{points:r,mask:n,image:o,fillMaxValue:u=this.maxValue,invert:f=!1}=e,_=o||this;_.checkProcessable("fromWaterShed",{bitDepth:[8,16],components:1}),f=!f,r||(r=_.getLocalMaxima({invert:f,mask:n}));let a=f?0:1,w=new Int16Array(_.size),E=_.width,M=_.height,k=new PriorityQueue({comparator:(L,D)=>L[2]-D[2],strategy:PriorityQueue.BinaryHeapStrategy});for(let L=0;L=u)&&k.queue([r[L][0],r[L][1],U])}for(;k.length>0;){let L=k.dequeue(),D=L[0]+L[1]*E;for(let U=0;U<4;U++){let q=L[0]+dxs[U],Y=L[1]+dys[U];if(q>=0&&Y>=0&&q=u)&&w[X]===0&&(w[X]=w[D],k.queue([L[0]+dxs[U],L[1]+dys[U],oe]))}}}}return new RoiMap(_,w)}class RoiManager{constructor(r,n={}){this._image=r,this._options=n,this._options.label||(this._options.label="default"),this._layers={},this._painted=null}fromMaxima(r={}){let n=Object.assign({},this._options,r),o=fromMaxima.call(this._image,r);this._layers[n.label]=new RoiLayer(o,n)}fromPoints(r,n={}){let o=Object.assign({},this._options,n),u=fromPoints.call(this._image,r,n);return this._layers[o.label]=new RoiLayer(u,o),this}putMap(r,n={}){let o=new RoiMap(this._image,r),u=Object.assign({},this._options,n);return this._layers[u.label]=new RoiLayer(o,u),this}fromWaterShed(r={}){let n=Object.assign({},this._options,r),o=fromWaterShed.call(this._image,r);this._layers[n.label]=new RoiLayer(o,n)}fromMask(r,n={}){let o=Object.assign({},this._options,n),u=fromMask.call(this._image,r,n);return this._layers[o.label]=new RoiLayer(u,o),this}fromMaskConnectedComponentLabelingAlgorithm(r,n={}){let o=Object.assign({},this._options,n),u=fromMaskConnectedComponentLabelingAlgorithm.call(this._image,r,n);return this._layers[o.label]=new RoiLayer(u,o),this}getMap(r={}){let n=Object.assign({},this._options,r);return this._assertLayerWithLabel(n.label),this._layers[n.label].roiMap}rowsInfo(r={}){return this.getMap(r).rowsInfo()}colsInfo(r={}){return this.getMap(r).rowsInfo()}getRoiIds(r={}){let n=this.getRois(r);if(n){let o=new Array(n.length);for(let u=0;u0&&o)&&q.surface>=f&&q.surface<=_&&q.width>=a&&q.width<=w&&q.height>=E&&q.height<=M&&q.ratio>=k&&q.ratio<=L&&U.push(q);return U}getRoi(r,n={}){const{label:o=this._options.label}=n;if(!this._layers[o])throw new Error(`this Roi layer (${o}) does not exist`);const u=this._layers[o].roi.find(f=>f.id===r);if(!u)throw new Error(`found no Roi with id ${r}`);return u}getMasks(r={}){let n=this.getRois(r),o=new Array(n.length);for(let u=0;uf[o])}getData(r={}){let n=Object.assign({},this._options,r);return this._assertLayerWithLabel(n.label),this._layers[n.label].roiMap.data}paint(r={}){let{labelProperty:n,analysisProperty:o}=r;this._painted||(this._painted=this._image.rgba8());let u=this.getMasks(r);if(n){const f=this.getRois(r);r.labels=f.map(E=>deepValue(E,n));const _=Math.max(...r.labels);let a=!1,w=!1;if(n.includes("surface")?a=!0:/(?:perimeter|min|max|external|width|height|length)/.test(n)&&(w=!0),isFinite(_)){let E="";if(r.unit!=="pixel"&&r.pixelSize&&(w||a)){E=a?`${r.unit}^2`:r.unit;let M=a?"m^2":"m",k=a?r.pixelSize**2:r.pixelSize;const L=Qty.swiftConverter(M,E);r.labels=r.labels.map(D=>L(k*D))}_>50?r.labels=r.labels.map(M=>Math.round(M)+E):_>10?r.labels=r.labels.map(M=>M.toFixed(1)+E):r.labels=r.labels.map(M=>M.toFixed(2)+E)}r.labelsPosition=f.map(E=>[E.meanX,E.meanY])}if(this._painted.paintMasks(u,r),o){let f=this.getAnalysisMasks(r);this._painted.paintMasks(f,{color:r.analysisColor,alpha:r.analysisAlpha})}return this._painted}getMask(r={}){let n=new Image(this._image.width,this._image.height,{kind:"BINARY"}),o=this.getMasks(r);for(let u=0;u!Number.isInteger(u)))throw new Error("Roi ids must be an array of integers");if(r.length<2)throw new Error("Roi ids must have at least two elements");if(new Set(r).size!==r.length)throw new Error("Roi ids must be all different");r.forEach(u=>this.getRoi(u));const o=this.getMap(n);return o.mergeRois(r),this.putMap(o.data,n),this}findCorrespondingRoi(r,n={}){let o=this.getRois(n),u=[];for(let f=0;f0||k<0)&&(f.id.includes(k)?f.surface[f.id.indexOf(k)]+=1:(f.id.push(k),f.surface.push(1)))}for(let _=0;_0?this._numWorkers=Math.min(r.maxWorkers,CORES):this._numWorkers=CORES,this._workers=new Map,this._timeout=r.timeout||0,this._terminateOnError=!!r.terminateOnError;var n=r.deps;typeof n=="string"&&(n=[n]),Array.isArray(n)||(n=void 0),this._id=0,this._terminated=!1,this._working=0,this._waiting=[],this._init(n)}WorkerManager.prototype._init=function(e){for(var r=workerTemplate.newWorkerURL(this._workerCode,e),n=0;n>>0,1):e.set(r,[]))},emit:function(r,n){var o=e.get(r);o&&o.slice().map(function(u){u(n)}),(o=e.get("*"))&&o.slice().map(function(u){u(r,n)})}}}var emitter=mitt(),immutable=extend$2,hasOwnProperty=Object.prototype.hasOwnProperty;function extend$2(){for(var e={},r=0;r-1};Suggestions$1.prototype.value=function(e){if(this.selected=e,this.el.value=this.getItemValue(e),document.createEvent){var r=document.createEvent("HTMLEvents");r.initEvent("change",!0,!1),this.el.dispatchEvent(r)}else this.el.fireEvent("onchange")};Suggestions$1.prototype.getCandidates=function(e){var r={pre:"",post:"",extract:function(o){return this.getItemValue(o)}.bind(this)},n;this.options.filter?(n=fuzzy.filter(this.query,this.data,r),n=n.map(function(o){return{original:o.original,string:this.render(o.original,o.string)}}.bind(this))):n=this.data.map(function(o){var u=this.render(o);return{original:o,string:u}}.bind(this)),e(n)};Suggestions$1.prototype.getItemValue=function(e){return e};Suggestions$1.prototype.render=function(e,r){if(r)return r;for(var n=e.original?this.getItemValue(e.original):this.getItemValue(e),o=this.normalize(n),u=o.lastIndexOf(this.query);u>-1;){var f=u+this.query.length;n=n.slice(0,u)+""+n.slice(u,f)+""+n.slice(f),u=o.slice(0,u).lastIndexOf(this.query)}return n};Suggestions$1.prototype.renderError=function(e){this.list.drawError(e)};var suggestions$1=Suggestions$1,Suggestions=suggestions$1,suggestions=Suggestions;typeof window<"u"&&(window.Suggestions=Suggestions);var FUNC_ERROR_TEXT="Expected a function",NAN=0/0,symbolTag="[object Symbol]",reTrim=/^\s+|\s+$/g,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt,freeGlobal=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),objectProto=Object.prototype,objectToString=objectProto.toString,nativeMax=Math.max,nativeMin=Math.min,now=function(){return root.Date.now()};function debounce$1(e,r,n){var o,u,f,_,a,w,E=0,M=!1,k=!1,L=!0;if(typeof e!="function")throw new TypeError(FUNC_ERROR_TEXT);r=toNumber(r)||0,isObject(n)&&(M=!!n.leading,k="maxWait"in n,f=k?nativeMax(toNumber(n.maxWait)||0,r):f,L="trailing"in n?!!n.trailing:L);function D(Te){var ve=o,se=u;return o=u=void 0,E=Te,_=e.apply(se,ve),_}function U(Te){return E=Te,a=setTimeout(X,r),M?D(Te):_}function q(Te){var ve=Te-w,se=Te-E,_e=r-ve;return k?nativeMin(_e,f-se):_e}function Y(Te){var ve=Te-w,se=Te-E;return w===void 0||ve>=r||ve<0||k&&se>=f}function X(){var Te=now();if(Y(Te))return oe(Te);a=setTimeout(X,q(Te))}function oe(Te){return a=void 0,L&&o?D(Te):(o=u=void 0,_)}function W(){a!==void 0&&clearTimeout(a),E=0,o=w=u=a=void 0}function K(){return a===void 0?_:oe(now())}function ie(){var Te=now(),ve=Y(Te);if(o=arguments,u=this,w=Te,ve){if(a===void 0)return U(w);if(k)return a=setTimeout(X,r),D(w)}return a===void 0&&(a=setTimeout(X,r)),_}return ie.cancel=W,ie.flush=K,ie}function isObject(e){var r=typeof e;return!!e&&(r=="object"||r=="function")}function isObjectLike(e){return!!e&&typeof e=="object"}function isSymbol(e){return typeof e=="symbol"||isObjectLike(e)&&objectToString.call(e)==symbolTag}function toNumber(e){if(typeof e=="number")return e;if(isSymbol(e))return NAN;if(isObject(e)){var r=typeof e.valueOf=="function"?e.valueOf():e;e=isObject(r)?r+"":r}if(typeof e!="string")return e===0?e:+e;e=e.replace(reTrim,"");var n=reIsBinary.test(e);return n||reIsOctal.test(e)?freeParseInt(e.slice(2),n?2:8):reIsBadHex.test(e)?NAN:+e}var lodash_debounce=debounce$1,events$1={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function e(r,n,o){return Function.prototype.apply.call(r,n,o)},ReflectOwnKeys;R&&typeof R.ownKeys=="function"?ReflectOwnKeys=R.ownKeys:Object.getOwnPropertySymbols?ReflectOwnKeys=function(r){return Object.getOwnPropertyNames(r).concat(Object.getOwnPropertySymbols(r))}:ReflectOwnKeys=function(r){return Object.getOwnPropertyNames(r)};function ProcessEmitWarning(e){console&&console.warn&&console.warn(e)}var NumberIsNaN=Number.isNaN||function e(r){return r!==r};function EventEmitter$2(){EventEmitter$2.init.call(this)}events$1.exports=EventEmitter$2;events$1.exports.once=once;EventEmitter$2.EventEmitter=EventEmitter$2;EventEmitter$2.prototype._events=void 0;EventEmitter$2.prototype._eventsCount=0;EventEmitter$2.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(EventEmitter$2,"defaultMaxListeners",{enumerable:!0,get:function(){return defaultMaxListeners},set:function(e){if(typeof e!="number"||e<0||NumberIsNaN(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");defaultMaxListeners=e}});EventEmitter$2.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};EventEmitter$2.prototype.setMaxListeners=function e(r){if(typeof r!="number"||r<0||NumberIsNaN(r))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+r+".");return this._maxListeners=r,this};function _getMaxListeners(e){return e._maxListeners===void 0?EventEmitter$2.defaultMaxListeners:e._maxListeners}EventEmitter$2.prototype.getMaxListeners=function e(){return _getMaxListeners(this)};EventEmitter$2.prototype.emit=function e(r){for(var n=[],o=1;o0&&(_=n[0]),_ instanceof Error)throw _;var a=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw a.context=_,a}var w=f[r];if(w===void 0)return!1;if(typeof w=="function")ReflectApply(w,this,n);else for(var E=w.length,M=arrayClone(w,E),o=0;o0&&_.length>u&&!_.warned){_.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(r)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=r,a.count=_.length,ProcessEmitWarning(a)}return e}EventEmitter$2.prototype.addListener=function e(r,n){return _addListener(this,r,n,!1)};EventEmitter$2.prototype.on=EventEmitter$2.prototype.addListener;EventEmitter$2.prototype.prependListener=function e(r,n){return _addListener(this,r,n,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(e,r,n){var o={fired:!1,wrapFn:void 0,target:e,type:r,listener:n},u=onceWrapper.bind(o);return u.listener=n,o.wrapFn=u,u}EventEmitter$2.prototype.once=function e(r,n){return checkListener(n),this.on(r,_onceWrap(this,r,n)),this};EventEmitter$2.prototype.prependOnceListener=function e(r,n){return checkListener(n),this.prependListener(r,_onceWrap(this,r,n)),this};EventEmitter$2.prototype.removeListener=function e(r,n){var o,u,f,_,a;if(checkListener(n),u=this._events,u===void 0)return this;if(o=u[r],o===void 0)return this;if(o===n||o.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete u[r],u.removeListener&&this.emit("removeListener",r,o.listener||n));else if(typeof o!="function"){for(f=-1,_=o.length-1;_>=0;_--)if(o[_]===n||o[_].listener===n){a=o[_].listener,f=_;break}if(f<0)return this;f===0?o.shift():spliceOne(o,f),o.length===1&&(u[r]=o[0]),u.removeListener!==void 0&&this.emit("removeListener",r,a||n)}return this};EventEmitter$2.prototype.off=EventEmitter$2.prototype.removeListener;EventEmitter$2.prototype.removeAllListeners=function e(r){var n,o,u;if(o=this._events,o===void 0)return this;if(o.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):o[r]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete o[r]),this;if(arguments.length===0){var f=Object.keys(o),_;for(u=0;u=0;u--)this.removeListener(r,n[u]);return this};function _listeners(e,r,n){var o=e._events;if(o===void 0)return[];var u=o[r];return u===void 0?[]:typeof u=="function"?n?[u.listener||u]:[u]:n?unwrapListeners(u):arrayClone(u,u.length)}EventEmitter$2.prototype.listeners=function e(r){return _listeners(this,r,!0)};EventEmitter$2.prototype.rawListeners=function e(r){return _listeners(this,r,!1)};EventEmitter$2.listenerCount=function(e,r){return typeof e.listenerCount=="function"?e.listenerCount(r):listenerCount.call(e,r)};EventEmitter$2.prototype.listenerCount=listenerCount;function listenerCount(e){var r=this._events;if(r!==void 0){var n=r[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}EventEmitter$2.prototype.eventNames=function e(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(e,r){for(var n=new Array(r),o=0;o]*)>(.*)/);if(!r)return null;var n=r[1],o=r[2].split(";"),u=null,f=o.reduce(function(_,a){var w=parseParam(a);return w?w.key==="rel"?(u||(u=w.value),_):(_[w.key]=w.value,_):_},{});return u?{url:n,rel:u,params:f}:null}function parseLinkHeader$1(e){return e?e.split(/,\s*=400){var _=new MapiError({request:e,body:r.response,statusCode:r.status});o(_);return}n(r)};var f=e.body;typeof f=="string"?r.send(f):f?r.send(JSON.stringify(f)):u?r.send(u):r.send(),requestsUnderway[e.id]=r}).then(function(n){return createResponse(e,n)})}function createRequestXhr(e,r){var n=e.url(r),o=new window.XMLHttpRequest;return o.open(e.method,n),Object.keys(e.headers).forEach(function(u){o.setRequestHeader(u,e.headers[u])}),o}function browserSend(e){return Promise.resolve().then(function(){var r=createRequestXhr(e,e.client.accessToken);return sendRequestXhr(e,r)})}var browserLayer={browserAbort,sendRequestXhr,browserSend,createRequestXhr},base64$1={exports:{}};/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */(function(e,r){(function(n){var o=r,u=e&&e.exports==o&&e,f=typeof commonjsGlobal=="object"&&commonjsGlobal;(f.global===f||f.window===f)&&(n=f);var _=function(U){this.message=U};_.prototype=new Error,_.prototype.name="InvalidCharacterError";var a=function(U){throw new _(U)},w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=/[\t\n\f\r ]/g,M=function(U){U=String(U).replace(E,"");var q=U.length;q%4==0&&(U=U.replace(/==?$/,""),q=U.length),(q%4==1||/[^+a-zA-Z0-9/]/.test(U))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var Y=0,X,oe,W="",K=-1;++K>(-2*Y&6)));return W},k=function(U){U=String(U),/[^\0-\xFF]/.test(U)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var q=U.length%3,Y="",X=-1,oe,W,K,ie,Te=U.length-q;++X>18&63)+w.charAt(ie>>12&63)+w.charAt(ie>>6&63)+w.charAt(ie&63);return q==2?(oe=U.charCodeAt(X)<<8,W=U.charCodeAt(++X),ie=oe+W,Y+=w.charAt(ie>>10)+w.charAt(ie>>4&63)+w.charAt(ie<<2&63)+"="):q==1&&(ie=U.charCodeAt(X),Y+=w.charAt(ie>>2)+w.charAt(ie<<4&63)+"=="),Y},L={encode:k,decode:M,version:"0.1.0"};if(o&&!o.nodeType)if(u)u.exports=L;else for(var D in L)L.hasOwnProperty(D)&&(o[D]=L[D]);else n.base64=L})(commonjsGlobal)})(base64$1,base64$1.exports);var base64=base64$1.exports,tokenCache={};function parseToken$2(e){if(tokenCache[e])return tokenCache[e];var r=e.split("."),n=r[0],o=r[1];if(!o)throw new Error("Invalid token");var u=parsePaylod(o),f={usage:n,user:u.u};return has(u,"a")&&(f.authorization=u.a),has(u,"exp")&&(f.expires=u.exp*1e3),has(u,"iat")&&(f.created=u.iat*1e3),has(u,"scopes")&&(f.scopes=u.scopes),has(u,"client")&&(f.client=u.client),has(u,"ll")&&(f.lastLogin=u.ll),has(u,"iu")&&(f.impersonator=u.iu),tokenCache[e]=f,f}function parsePaylod(e){try{return JSON.parse(base64.decode(e))}catch{throw new Error("Invalid token")}}function has(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var parseMapboxToken=parseToken$2,eventemitter3={exports:{}};(function(e){var r=Object.prototype.hasOwnProperty,n="~";function o(){}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(n=!1));function u(w,E,M){this.fn=w,this.context=E,this.once=M||!1}function f(w,E,M,k,L){if(typeof M!="function")throw new TypeError("The listener must be a function");var D=new u(M,k||w,L),U=n?n+E:E;return w._events[U]?w._events[U].fn?w._events[U]=[w._events[U],D]:w._events[U].push(D):(w._events[U]=D,w._eventsCount++),w}function _(w,E){--w._eventsCount===0?w._events=new o:delete w._events[E]}function a(){this._events=new o,this._eventsCount=0}a.prototype.eventNames=function(){var E=[],M,k;if(this._eventsCount===0)return E;for(k in M=this._events)r.call(M,k)&&E.push(n?k.slice(1):k);return Object.getOwnPropertySymbols?E.concat(Object.getOwnPropertySymbols(M)):E},a.prototype.listeners=function(E){var M=n?n+E:E,k=this._events[M];if(!k)return[];if(k.fn)return[k.fn];for(var L=0,D=k.length,U=new Array(D);Lf.length?_:f})}};v$2.equal=function e(r){return function(o){if(o!==r)return JSON.stringify(r)}};v$2.oneOf=function e(){var r=Array.isArray(arguments[0])?arguments[0]:Array.prototype.slice.call(arguments),n=r.map(function(o){return v$2.equal(o)});return v$2.oneOfType.apply(this,n)};v$2.range=function e(r){var n=r[0],o=r[1];return function(f){var _=validate(v$2.number,f);if(_||fo)return"number between "+n+" & "+o+" (inclusive)"}};v$2.any=function e(){};v$2.boolean=function e(r){if(typeof r!="boolean")return"boolean"};v$2.number=function e(r){if(typeof r!="number")return"number"};v$2.plainArray=function e(r){if(!Array.isArray(r))return"array"};v$2.plainObject=function e(r){if(!isPlainObject(r))return"object"};v$2.string=function e(r){if(typeof r!="string")return"string"};v$2.func=function e(r){if(typeof r!="function")return"function"};function validate(e,r){if(!(r==null&&!e.hasOwnProperty("__required"))){var n=e(r);if(n)return Array.isArray(n)?n:[n]}}function processMessage(e,r){var n=e.length,o=e[n-1],u=e.slice(0,n-1);return u.length===0&&(u=[DEFAULT_ERROR_PATH]),r=xtend$2(r,{path:u}),typeof o=="function"?o(r):formatErrorMessage(r,prettifyResult(o))}function orList(e){return e.length<2?e[0]:e.length===2?e.join(" or "):e.slice(0,-1).join(", ")+", or "+e.slice(-1)}function prettifyResult(e){return"must be "+addArticle(e)+"."}function addArticle(e){return/^an? /.test(e)?e:/^[aeiou]/i.test(e)?"an "+e:/^[a-z]/i.test(e)?"a "+e:e}function formatErrorMessage(e,r){var n=isArrayCulprit(e.path),o=e.path.join(".")+" "+r,u=n?"Item at position ":"";return u+o}function isArrayCulprit(e){return typeof e[e.length-1]=="number"||typeof e[0]=="number"}function objectEntries(e){return Object.keys(e||{}).map(function(r){return{key:r,value:e[r]}})}v$2.validate=validate;v$2.processMessage=processMessage;var lib$1=v$2,xtend$1=immutable,v$1=lib$1;function file(e){if(typeof window<"u")return e instanceof commonjsGlobal.Blob||e instanceof commonjsGlobal.ArrayBuffer?void 0:"Blob or ArrayBuffer";if(!(typeof e=="string"||e.pipe!==void 0))return"Filename or Readable stream"}function assertShape(e,r){return v$1.assert(v$1.strictShape(e),r)}function date(e){var r="date";if(typeof e=="boolean")return r;try{var n=new Date(e);if(n.getTime&&isNaN(n.getTime()))return r}catch{return r}}function coordinates(e){return v$1.tuple(v$1.number,v$1.number)(e)}var validator=xtend$1(v$1,{file,date,coordinates,assertShape});function pick$1(e,r){var n=function(o,u){return r.indexOf(o)!==-1&&u!==void 0};return typeof r=="function"&&(n=r),Object.keys(e).filter(function(o){return n(o,e[o])}).reduce(function(o,u){return o[u]=e[u],o},{})}var pick_1=pick$1;function objectMap$1(e,r){return Object.keys(e).reduce(function(n,o){return n[o]=r(o,e[o]),n},{})}var objectMap_1=objectMap$1,objectMap=objectMap_1;function stringifyBoolean(e){return objectMap(e,function(r,n){return typeof n=="boolean"?JSON.stringify(n):n})}var stringifyBooleans$1=stringifyBoolean,MapiClient=mapiClient,createClient=browserClient;function createServiceFactory$1(e){return function(r){var n;MapiClient.prototype.isPrototypeOf(r)?n=r:n=createClient(r);var o=Object.create(e);return o.client=n,o}}var createServiceFactory_1=createServiceFactory$1,xtend=immutable,v=validator,pick=pick_1,stringifyBooleans=stringifyBooleans$1,createServiceFactory=createServiceFactory_1,Geocoding={},featureTypes=["country","region","postcode","district","place","locality","neighborhood","address","poi","poi.landmark"];Geocoding.forwardGeocode=function(e){v.assertShape({query:v.required(v.string),mode:v.oneOf("mapbox.places","mapbox.places-permanent"),countries:v.arrayOf(v.string),proximity:v.oneOf(v.coordinates,"ip"),types:v.arrayOf(v.oneOf(featureTypes)),autocomplete:v.boolean,bbox:v.arrayOf(v.number),limit:v.number,language:v.arrayOf(v.string),routing:v.boolean,fuzzyMatch:v.boolean,worldview:v.string})(e),e.mode=e.mode||"mapbox.places";var r=stringifyBooleans(xtend({country:e.countries},pick(e,["proximity","types","autocomplete","bbox","limit","language","routing","fuzzyMatch","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:pick(e,["mode","query"]),query:r})};Geocoding.reverseGeocode=function(e){v.assertShape({query:v.required(v.coordinates),mode:v.oneOf("mapbox.places","mapbox.places-permanent"),countries:v.arrayOf(v.string),types:v.arrayOf(v.oneOf(featureTypes)),bbox:v.arrayOf(v.number),limit:v.number,language:v.arrayOf(v.string),reverseMode:v.oneOf("distance","score"),routing:v.boolean,worldview:v.string})(e),e.mode=e.mode||"mapbox.places";var r=stringifyBooleans(xtend({country:e.countries},pick(e,["country","types","bbox","limit","language","reverseMode","routing","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:pick(e,["mode","query"]),query:r})};var geocoding=createServiceFactory(Geocoding);let urlAlphabet="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",random=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,r,n)=>{let o=(2<{let _="";for(;;){let a=n(u),w=u;for(;w--;)if(_+=e[a[w]&o]||"",_.length===f)return _}}},customAlphabet=(e,r=21)=>customRandom(e,r,random),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((r,n)=>(n&=63,n<36?r+=n.toString(36):n<62?r+=(n-26).toString(36).toUpperCase():n>62?r+="-":r+="_",r),"");var index_browser=Object.freeze(Object.defineProperty({__proto__:null,nanoid:nanoid$1,customAlphabet,customRandom,urlAlphabet,random},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(index_browser),nanoid=require$$0.nanoid;function MapboxEventManager$1(e){this.origin=e.origin||"https://api.mapbox.com",this.endpoint="events/v2",this.access_token=e.accessToken,this.version="0.2.0",this.sessionID=this.generateSessionID(),this.userAgent=this.getUserAgent(),this.options=e,this.send=this.send.bind(this),this.countries=e.countries?e.countries.split(","):null,this.types=e.types?e.types.split(","):null,this.bbox=e.bbox?e.bbox:null,this.language=e.language?e.language.split(","):null,this.limit=e.limit?+e.limit:null,this.locale=navigator.language||null,this.enableEventLogging=this.shouldEnableLogging(e),this.eventQueue=new Array,this.flushInterval=e.flushInterval||1e3,this.maxQueueSize=e.maxQueueSize||100,this.timer=this.flushInterval?setTimeout(this.flush.bind(this),this.flushInterval):null,this.lastSentInput="",this.lastSentIndex=0}MapboxEventManager$1.prototype={select:function(e,r){var n=this.getSelectedIndex(e,r),o=this.getEventPayload("search.select",r);if(o.resultIndex=n,o.resultPlaceName=e.place_name,o.resultId=e.id,!(n===this.lastSentIndex&&o.queryString===this.lastSentInput||n==-1)&&(this.lastSentIndex=n,this.lastSentInput=o.queryString,!!o.queryString))return this.push(o)},start:function(e){var r=this.getEventPayload("search.start",e);if(!!r.queryString)return this.push(r)},keyevent:function(e,r){if(!!e.key&&!(e.metaKey||[9,27,37,39,13,38,40].indexOf(e.keyCode)!==-1)){var n=this.getEventPayload("search.keystroke",r);if(n.lastAction=e.key,!!n.queryString)return this.push(n)}},send:function(e,r){if(!this.enableEventLogging)return r?r():void 0;var n=this.getRequestOptions(e);this.request(n,function(o){if(o)return this.handleError(o,r);if(r)return r()}.bind(this))},getRequestOptions:function(e){Array.isArray(e)||(e=[e]);var r={method:"POST",host:this.origin,path:this.endpoint+"?access_token="+this.access_token,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};return r},getEventPayload:function(e,r){var n;r.options.proximity?typeof r.options.proximity=="object"?n=[r.options.proximity.longitude,r.options.proximity.latitude]:r.options.proximity==="ip"?n=[999,999]:n=r.options.proximity:n=null;var o=r._map?r._map.getZoom():void 0,u={event:e,created:+new Date,sessionIdentifier:this.sessionID,country:this.countries,userAgent:this.userAgent,language:this.language,bbox:this.bbox,types:this.types,endpoint:"mapbox.places",autocomplete:r.options.autocomplete,fuzzyMatch:r.options.fuzzyMatch,proximity:n,limit:r.options.limit,routing:r.options.routing,worldview:r.options.worldview,mapZoom:o,keyboardLocale:this.locale};return e==="search.select"?u.queryString=r.inputString:e!="search.select"&&r._inputEl?u.queryString=r._inputEl.value:u.queryString=r.inputString,u},request:function(e,r){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(this.readyState==4)return this.status==204?r(null):r(this.statusText)},n.open(e.method,e.host+"/"+e.path,!0);for(var o in e.headers){var u=e.headers[o];n.setRequestHeader(o,u)}n.send(e.body)},handleError:function(e,r){if(r)return r(e)},generateSessionID:function(){return nanoid()},getUserAgent:function(){return"mapbox-gl-geocoder."+this.version+"."+navigator.userAgent},getSelectedIndex:function(e,r){if(!!r._typeahead){var n=r._typeahead.data,o=e.id,u=n.map(function(_){return _.id}),f=u.indexOf(o);return f}},shouldEnableLogging:function(e){return!(e.enableEventLogging===!1||e.origin&&e.origin!=="https://api.mapbox.com"||e.localGeocoder||e.filter)},flush:function(){this.eventQueue.length>0&&(this.send(this.eventQueue),this.eventQueue=new Array),this.timer&&clearTimeout(this.timer),this.flushInterval&&(this.timer=setTimeout(this.flush.bind(this),this.flushInterval))},push:function(e,r){this.eventQueue.push(e),(this.eventQueue.length>=this.maxQueueSize||r)&&this.flush()},remove:function(){this.flush()}};var events=MapboxEventManager$1,placeholder={de:"Suche",it:"Ricerca",en:"Search",nl:"Zoeken",fr:"Chercher",ca:"Cerca",he:"\u05DC\u05D7\u05E4\u05E9",ja:"\u30B5\u30FC\u30C1",lv:"Mekl\u0113t",pt:"Procurar",sr:"\u041F\u0440\u0435\u0442\u0440\u0430\u0433\u0430",zh:"\u641C\u7D22",cs:"Vyhled\xE1v\xE1n\xED",hu:"Keres\xE9s",ka:"\u10EB\u10D8\u10D4\u10D1\u10D0",nb:"S\xF8ke",sk:"Vyh\u013Ead\xE1vanie",th:"\u0E04\u0E49\u0E19\u0E2B\u0E32",fi:"Hae",is:"Leita",ko:"\uC218\uC0C9",pl:"Szukaj",sl:"Iskanje",fa:"\u062C\u0633\u062A\u062C\u0648",ru:"\u041F\u043E\u0438\u0441\u043A"},localization$1={placeholder},subtag$1={exports:{}};(function(e){(function(r,n,o){e.exports?e.exports=o():r[n]=o()})(commonjsGlobal,"subtag",function(){var r="",n=/^([a-zA-Z]{2,3})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?/;function o(w){return w.match(n)||[]}function u(w){return o(w).filter(function(E,M){return E&&M})}function f(w){return w=o(w),{language:w[1]||r,extlang:w[2]||r,script:w[3]||r,region:w[4]||r}}function _(w,E,M){Object.defineProperty(w,E,{value:M,enumerable:!0})}function a(w,E,M){function k(L){return o(L)[w]||r}_(k,"pattern",E),_(f,M,k)}return a(1,/^[a-zA-Z]{2,3}$/,"language"),a(2,/^[a-zA-Z]{3}$/,"extlang"),a(3,/^[a-zA-Z]{4}$/,"script"),a(4,/^[a-zA-Z]{2}$|^[0-9]{3}$/,"region"),_(f,"split",u),f})})(subtag$1);function Geolocation$1(){}Geolocation$1.prototype={isSupport:function(){return Boolean(window.navigator.geolocation)},getCurrentPosition:function(){const e={enableHighAccuracy:!0};return new Promise(function(r,n){window.navigator.geolocation.getCurrentPosition(r,n,e)})}};var geolocation=Geolocation$1;function transformFeatureToGeolocationText(e,r){const n=getAddressInfo(e),o=["address","street","place","country"];var u;if(typeof r=="function")return r(n);const f=o.indexOf(r);return f===-1?u=o:u=o.slice(f),u.reduce(function(_,a){return n[a]?(_!==""&&(_=_+", "),_+n[a]):_},"")}function getAddressInfo(e){const r=e.address||"",n=e.text||"",o=e.place_name||"",f={address:o.split(",")[0],houseNumber:r,street:n,placeName:o};return e.context.forEach(function(_){const a=_.id.split(".")[0];f[a]=_.text}),f}const REVERSE_GEOCODE_COORD_RGX=/^[ ]*(-?\d{1,3}(\.\d{0,256})?)[, ]+(-?\d{1,3}(\.\d{0,256})?)[ ]*$/;var utils$1={transformFeatureToGeolocationText,getAddressInfo,REVERSE_GEOCODE_COORD_RGX},Typeahead=suggestions,debounce=lodash_debounce,extend=immutable,EventEmitter=events$1.exports.EventEmitter,exceptions=exceptions$1,MapboxClient=mapboxSdk,mbxGeocoder=geocoding,MapboxEventManager=events,localization=localization$1,subtag=subtag$1.exports,Geolocation=geolocation,utils=utils$1;const GEOCODE_REQUEST_TYPE={FORWARD:0,LOCAL:1,REVERSE:2};function getFooterNode(){var e=document.createElement("div");return e.className="mapboxgl-ctrl-geocoder--powered-by",e.innerHTML='Powered by Mapbox',e}function MapboxGeocoder(e){this._eventEmitter=new EventEmitter,this.options=extend({},this.options,e),this.inputString="",this.fresh=!0,this.lastSelected=null,this.geolocation=new Geolocation}MapboxGeocoder.prototype={options:{zoom:16,flyTo:!0,trackProximity:!0,minLength:2,reverseGeocode:!1,flipCoordinates:!1,limit:5,origin:"https://api.mapbox.com",enableEventLogging:!0,marker:!0,mapboxgl:null,collapsed:!1,clearAndBlurOnEsc:!1,clearOnBlur:!1,enableGeolocation:!1,addressAccuracy:"street",getItemValue:function(e){return e.place_name},render:function(e){var r=e.place_name.split(",");return'
'+r[0]+'
'+r.splice(1,r.length).join(",")+"
"}},addTo:function(e){function r(n,o){if(!document.body.contains(o))throw new Error("Element provided to #addTo() exists, but is not in the DOM");const u=n.onAdd();o.appendChild(u)}if(e._controlContainer)e.addControl(this);else if(e instanceof HTMLElement)r(this,e);else if(typeof e=="string"){const n=document.querySelectorAll(e);if(n.length===0)throw new Error("Element ",e,"not found.");if(n.length>1)throw new Error("Geocoder can only be added to a single html element");r(this,n[0])}else throw new Error("Error: addTo must be a mapbox-gl-js map, an html element, or a CSS selector query for a single html element")},onAdd:function(e){if(e&&typeof e!="string"&&(this._map=e),this.setLanguage(),this.options.localGeocoderOnly||(this.geocoderService=mbxGeocoder(MapboxClient({accessToken:this.options.accessToken,origin:this.options.origin}))),this.options.localGeocoderOnly&&!this.options.localGeocoder)throw new Error("A localGeocoder function must be specified to use localGeocoderOnly mode");this.eventManager=new MapboxEventManager(this.options),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onPaste=this._onPaste.bind(this),this._onBlur=this._onBlur.bind(this),this._showButton=this._showButton.bind(this),this._hideButton=this._hideButton.bind(this),this._onQueryResult=this._onQueryResult.bind(this),this.clear=this.clear.bind(this),this._updateProximity=this._updateProximity.bind(this),this._collapse=this._collapse.bind(this),this._unCollapse=this._unCollapse.bind(this),this._clear=this._clear.bind(this),this._clearOnBlur=this._clearOnBlur.bind(this),this._geolocateUser=this._geolocateUser.bind(this);var r=this.container=document.createElement("div");r.className="mapboxgl-ctrl-geocoder mapboxgl-ctrl";var n=this.createIcon("search",'');this._inputEl=document.createElement("input"),this._inputEl.type="text",this._inputEl.className="mapboxgl-ctrl-geocoder--input",this.setPlaceholder(),this.options.collapsed&&(this._collapse(),this.container.addEventListener("mouseenter",this._unCollapse),this.container.addEventListener("mouseleave",this._collapse),this._inputEl.addEventListener("focus",this._unCollapse)),(this.options.collapsed||this.options.clearOnBlur)&&this._inputEl.addEventListener("blur",this._onBlur),this._inputEl.addEventListener("keydown",debounce(this._onKeyDown,200)),this._inputEl.addEventListener("paste",this._onPaste),this._inputEl.addEventListener("change",this._onChange),this.container.addEventListener("mouseenter",this._showButton),this.container.addEventListener("mouseleave",this._hideButton),this._inputEl.addEventListener("keyup",function(E){this.eventManager.keyevent(E,this)}.bind(this));var o=document.createElement("div");o.classList.add("mapboxgl-ctrl-geocoder--pin-right"),this._clearEl=document.createElement("button"),this._clearEl.setAttribute("aria-label","Clear"),this._clearEl.addEventListener("click",this.clear),this._clearEl.className="mapboxgl-ctrl-geocoder--button";var u=this.createIcon("close",'');if(this._clearEl.appendChild(u),this._loadingEl=this.createIcon("loading",''),o.appendChild(this._clearEl),o.appendChild(this._loadingEl),r.appendChild(n),r.appendChild(this._inputEl),r.appendChild(o),this.options.enableGeolocation&&this.geolocation.isSupport()){this._geolocateEl=document.createElement("button"),this._geolocateEl.setAttribute("aria-label","Geolocate"),this._geolocateEl.addEventListener("click",this._geolocateUser),this._geolocateEl.className="mapboxgl-ctrl-geocoder--button";var f=this.createIcon("geolocate",'');this._geolocateEl.appendChild(f),o.appendChild(this._geolocateEl),this._showGeolocateButton()}var _=this._typeahead=new Typeahead(this._inputEl,[],{filter:!1,minLength:this.options.minLength,limit:this.options.limit});this.setRenderFunction(this.options.render),_.getItemValue=this.options.getItemValue;var a=_.list.draw,w=this._footerNode=getFooterNode();return _.list.draw=function(){a.call(this),w.addEventListener("mousedown",function(){this.selectingListItem=!0}.bind(this)),w.addEventListener("mouseup",function(){this.selectingListItem=!1}.bind(this)),this.element.appendChild(w)},this.mapMarker=null,this._handleMarker=this._handleMarker.bind(this),this._map&&(this.options.trackProximity&&(this._updateProximity(),this._map.on("moveend",this._updateProximity)),this._mapboxgl=this.options.mapboxgl,!this._mapboxgl&&this.options.marker&&(console.error("No mapboxgl detected in options. Map markers are disabled. Please set options.mapboxgl."),this.options.marker=!1)),r},_geolocateUser:function(){this._hideGeolocateButton(),this._showLoadingIcon(),this.geolocation.getCurrentPosition().then(function(e){this._hideLoadingIcon();const r={geometry:{type:"Point",coordinates:[e.coords.longitude,e.coords.latitude]}};this._handleMarker(r),this._fly(r),this._typeahead.clear(),this._typeahead.selected=!0,this.lastSelected=JSON.stringify(r),this._showClearButton(),this.fresh=!1;const n={limit:1,language:[this.options.language],query:r.geometry.coordinates,types:["address"]};if(this.options.localGeocoderOnly){const o=r.geometry.coordinates[0]+","+r.geometry.coordinates[1];this._setInputValue(o),this._eventEmitter.emit("result",{result:r})}else this.geocoderService.reverseGeocode(n).send().then(function(o){const u=o.body.features[0];if(u){const f=utils.transformFeatureToGeolocationText(u,this.options.addressAccuracy);this._setInputValue(f),u.user_coordinates=r.geometry.coordinates,this._eventEmitter.emit("result",{result:u})}else this._eventEmitter.emit("result",{result:{user_coordinates:r.geometry.coordinates}})}.bind(this))}.bind(this)).catch(function(e){e.code===1?this._renderUserDeniedGeolocationError():this._renderLocationError(),this._hideLoadingIcon(),this._showGeolocateButton(),this._hideAttribution()}.bind(this))},createIcon:function(e,r){var n=document.createElementNS("http://www.w3.org/2000/svg","svg");return n.setAttribute("class","mapboxgl-ctrl-geocoder--icon mapboxgl-ctrl-geocoder--icon-"+e),n.setAttribute("viewBox","0 0 18 18"),n.setAttribute("xml:space","preserve"),n.setAttribute("width",18),n.setAttribute("height",18),n.innerHTML=r,n},onRemove:function(){return this.container.parentNode.removeChild(this.container),this.options.trackProximity&&this._map&&this._map.off("moveend",this._updateProximity),this._removeMarker(),this._map=null,this},_setInputValue:function(e){this._inputEl.value=e,setTimeout(function(){this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0)}.bind(this),1)},_onPaste:function(e){var r=(e.clipboardData||window.clipboardData).getData("text");r.length>=this.options.minLength&&this._geocode(r)},_onKeyDown:function(e){var r=27,n=9;if(e.keyCode===r&&this.options.clearAndBlurOnEsc)return this._clear(e),this._inputEl.blur();var o=e.target&&e.target.shadowRoot?e.target.shadowRoot.activeElement:e.target,u=o?o.value:"";if(!u)return this.fresh=!0,e.keyCode!==n&&this.clear(e),this._showGeolocateButton(),this._hideClearButton();this._hideGeolocateButton(),!(e.metaKey||[n,r,37,39,13,38,40].indexOf(e.keyCode)!==-1)&&o.value.length>=this.options.minLength&&this._geocode(o.value)},_showButton:function(){this._typeahead.selected&&this._showClearButton()},_hideButton:function(){this._typeahead.selected&&this._hideClearButton()},_showClearButton:function(){this._clearEl.style.display="block"},_hideClearButton:function(){this._clearEl.style.display="none"},_showGeolocateButton:function(){this._geolocateEl&&this.geolocation.isSupport()&&(this._geolocateEl.style.display="block")},_hideGeolocateButton:function(){this._geolocateEl&&(this._geolocateEl.style.display="none")},_showLoadingIcon:function(){this._loadingEl.style.display="block"},_hideLoadingIcon:function(){this._loadingEl.style.display="none"},_showAttribution:function(){this._footerNode.style.display="block"},_hideAttribution:function(){this._footerNode.style.display="none"},_onBlur:function(e){this.options.clearOnBlur&&this._clearOnBlur(e),this.options.collapsed&&this._collapse()},_onChange:function(){var e=this._typeahead.selected;e&&JSON.stringify(e)!==this.lastSelected&&(this._hideClearButton(),this.options.flyTo&&this._fly(e),this.options.marker&&this._mapboxgl&&this._handleMarker(e),this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0),this.lastSelected=JSON.stringify(e),this._eventEmitter.emit("result",{result:e}),this.eventManager.select(e,this))},_fly:function(e){var r;if(e.properties&&exceptions[e.properties.short_code])r=extend({},this.options.flyTo),this._map&&this._map.fitBounds(exceptions[e.properties.short_code].bbox,r);else if(e.bbox){var n=e.bbox;r=extend({},this.options.flyTo),this._map&&this._map.fitBounds([[n[0],n[1]],[n[2],n[3]]],r)}else{var o={zoom:this.options.zoom};r=extend({},o,this.options.flyTo),e.center?r.center=e.center:e.geometry&&e.geometry.type&&e.geometry.type==="Point"&&e.geometry.coordinates&&(r.center=e.geometry.coordinates),this._map&&this._map.flyTo(r)}},_requestType:function(e,r){var n;return e.localGeocoderOnly?n=GEOCODE_REQUEST_TYPE.LOCAL:e.reverseGeocode&&utils.REVERSE_GEOCODE_COORD_RGX.test(r)?n=GEOCODE_REQUEST_TYPE.REVERSE:n=GEOCODE_REQUEST_TYPE.FORWARD,n},_setupConfig:function(e,r){const n=["bbox","limit","proximity","countries","types","language","reverseMode","mode","autocomplete","fuzzyMatch","routing","worldview"],o=/[\s,]+/;var u=this,f=n.reduce(function(a,w){if(u.options[w]===void 0||u.options[w]===null)return a;["countries","types","language"].indexOf(w)>-1?a[w]=u.options[w].split(o):a[w]=u.options[w];const E=typeof u.options[w].longitude=="number"&&typeof u.options[w].latitude=="number";if(w==="proximity"&&E){const M=u.options[w].longitude,k=u.options[w].latitude;a[w]=[M,k]}return a},{});switch(e){case GEOCODE_REQUEST_TYPE.REVERSE:{var _=r.split(o).map(function(a){return parseFloat(a,10)});u.options.flipCoordinates||_.reverse(),f.types&&f.types[0],f=extend(f,{query:_,limit:1}),["proximity","autocomplete","fuzzyMatch","bbox"].forEach(function(a){a in f&&delete f[a]})}break;case GEOCODE_REQUEST_TYPE.FORWARD:{const a=r.trim();/^(-?\d{1,3}(\.\d{0,256})?)[, ]+(-?\d{1,3}(\.\d{0,256})?)?$/.test(a)&&(r=r.replace(/,/g," ")),f=extend(f,{query:r})}break}return f},_geocode:function(e){this.inputString=e,this._showLoadingIcon(),this._eventEmitter.emit("loading",{query:e});const r=this._requestType(this.options,e),n=this._setupConfig(r,e);var o;switch(r){case GEOCODE_REQUEST_TYPE.LOCAL:o=Promise.resolve();break;case GEOCODE_REQUEST_TYPE.FORWARD:o=this.geocoderService.forwardGeocode(n).send();break;case GEOCODE_REQUEST_TYPE.REVERSE:o=this.geocoderService.reverseGeocode(n).send();break}var u=this.options.localGeocoder?this.options.localGeocoder(e)||[]:[],f=[],_=null;return o.catch(function(a){_=a}.bind(this)).then(function(a){this._hideLoadingIcon();var w={};return a?a.statusCode=="200"&&(w=a.body,w.request=a.request,w.headers=a.headers):w={type:"FeatureCollection",features:[]},w.config=n,this.fresh&&(this.eventManager.start(this),this.fresh=!1),w.features=w.features?u.concat(w.features):u,this.options.externalGeocoder?(f=this.options.externalGeocoder(e,w.features)||Promise.resolve([]),f.then(function(E){return w.features=w.features?E.concat(w.features):E,w},function(){return w})):w}.bind(this)).then(function(a){if(_)throw _;this.options.filter&&a.features.length&&(a.features=a.features.filter(this.options.filter)),a.features.length?(this._showClearButton(),this._hideGeolocateButton(),this._showAttribution(),this._eventEmitter.emit("results",a),this._typeahead.update(a.features)):(this._hideClearButton(),this._hideAttribution(),this._typeahead.selected=null,this._renderNoResults(),this._eventEmitter.emit("results",a))}.bind(this)).catch(function(a){this._hideLoadingIcon(),this._hideAttribution(),u.length&&this.options.localGeocoder||f.length&&this.options.externalGeocoder?(this._showClearButton(),this._hideGeolocateButton(),this._typeahead.update(u)):(this._hideClearButton(),this._typeahead.selected=null,this._renderError()),this._eventEmitter.emit("results",{features:u}),this._eventEmitter.emit("error",{error:a})}.bind(this)),o},_clear:function(e){e&&e.preventDefault(),this._inputEl.value="",this._typeahead.selected=null,this._typeahead.clear(),this._onChange(),this._hideClearButton(),this._showGeolocateButton(),this._removeMarker(),this.lastSelected=null,this._eventEmitter.emit("clear"),this.fresh=!0},clear:function(e){this._clear(e),this._inputEl.focus()},_clearOnBlur:function(e){var r=this;e.relatedTarget&&r._clear(e)},_onQueryResult:function(e){var r=e.body;if(!!r.features.length){var n=r.features[0];this._typeahead.selected=n,this._inputEl.value=n.place_name,this._onChange()}},_updateProximity:function(){if(!(!this._map||!this.options.trackProximity))if(this._map.getZoom()>9){var e=this._map.getCenter().wrap();this.setProximity({longitude:e.lng,latitude:e.lat},!1)}else this.setProximity(null,!1)},_collapse:function(){!this._inputEl.value&&this._inputEl!==document.activeElement&&this.container.classList.add("mapboxgl-ctrl-geocoder--collapsed")},_unCollapse:function(){this.container.classList.remove("mapboxgl-ctrl-geocoder--collapsed")},query:function(e){return this._geocode(e).then(this._onQueryResult),this},_renderError:function(){var e="
There was an error reaching the server
";this._renderMessage(e)},_renderLocationError:function(){var e="
A location error has occurred
";this._renderMessage(e)},_renderNoResults:function(){var e="
No results found
";this._renderMessage(e)},_renderUserDeniedGeolocationError:function(){var e="
Geolocation permission denied
";this._renderMessage(e)},_renderMessage:function(e){this._typeahead.update([]),this._typeahead.selected=null,this._typeahead.clear(),this._typeahead.renderError(e)},_getPlaceholderText:function(){if(this.options.placeholder)return this.options.placeholder;if(this.options.language){var e=this.options.language.split(",")[0],r=subtag.language(e),n=localization.placeholder[r];if(n)return n}return"Search"},setInput:function(e){return this._inputEl.value=e,this._typeahead.selected=null,this._typeahead.clear(),e.length>=this.options.minLength&&this._geocode(e),this},setProximity:function(e,r=!0){return this.options.proximity=e,r&&(this.options.trackProximity=!1),this},getProximity:function(){return this.options.proximity},setRenderFunction:function(e){return e&&typeof e=="function"&&(this._typeahead.render=e),this},getRenderFunction:function(){return this._typeahead.render},setLanguage:function(e){var r=navigator.language||navigator.userLanguage||navigator.browserLanguage;return this.options.language=e||this.options.language||r,this},getLanguage:function(){return this.options.language},getZoom:function(){return this.options.zoom},setZoom:function(e){return this.options.zoom=e,this},getFlyTo:function(){return this.options.flyTo},setFlyTo:function(e){return this.options.flyTo=e,this},getPlaceholder:function(){return this.options.placeholder},setPlaceholder:function(e){return this.placeholder=e||this._getPlaceholderText(),this._inputEl.placeholder=this.placeholder,this._inputEl.setAttribute("aria-label",this.placeholder),this},getBbox:function(){return this.options.bbox},setBbox:function(e){return this.options.bbox=e,this},getCountries:function(){return this.options.countries},setCountries:function(e){return this.options.countries=e,this},getTypes:function(){return this.options.types},setTypes:function(e){return this.options.types=e,this},getMinLength:function(){return this.options.minLength},setMinLength:function(e){return this.options.minLength=e,this._typeahead&&(this._typeahead.options.minLength=e),this},getLimit:function(){return this.options.limit},setLimit:function(e){return this.options.limit=e,this._typeahead&&(this._typeahead.options.limit=e),this},getFilter:function(){return this.options.filter},setFilter:function(e){return this.options.filter=e,this},setOrigin:function(e){return this.options.origin=e,this.geocoderService=mbxGeocoder(MapboxClient({accessToken:this.options.accessToken,origin:this.options.origin})),this},getOrigin:function(){return this.options.origin},setAccessToken:function(e){return this.options.accessToken=e,this.geocoderService=mbxGeocoder(MapboxClient({accessToken:this.options.accessToken,origin:this.options.origin})),this},setAutocomplete:function(e){return this.options.autocomplete=e,this},getAutocomplete:function(){return this.options.autocomplete},setFuzzyMatch:function(e){return this.options.fuzzyMatch=e,this},getFuzzyMatch:function(){return this.options.fuzzyMatch},setRouting:function(e){return this.options.routing=e,this},getRouting:function(){return this.options.routing},setWorldview:function(e){return this.options.worldview=e,this},getWorldview:function(){return this.options.worldview},_handleMarker:function(e){if(!!this._map){this._removeMarker();var r={color:"#4668F2"},n=extend({},r,this.options.marker);return this.mapMarker=new this._mapboxgl.Marker(n),e.center?this.mapMarker.setLngLat(e.center).addTo(this._map):e.geometry&&e.geometry.type&&e.geometry.type==="Point"&&e.geometry.coordinates&&this.mapMarker.setLngLat(e.geometry.coordinates).addTo(this._map),this}},_removeMarker:function(){this.mapMarker&&(this.mapMarker.remove(),this.mapMarker=null)},on:function(e,r){return this._eventEmitter.on(e,r),this},off:function(e,r){return this._eventEmitter.removeListener(e,r),this.eventManager.remove(),this}};var lib=MapboxGeocoder,mapboxGlDraw$1={exports:{}};(function(e,r){(function(n,o){e.exports=o()})(commonjsGlobal,function(){var n=function(B,G){var ae={drag:[],click:[],mousemove:[],mousedown:[],mouseup:[],mouseout:[],keydown:[],keyup:[],touchstart:[],touchmove:[],touchend:[],tap:[]},Ve={on:function(Ze,Ke,qt){if(ae[Ze]===void 0)throw new Error("Invalid event type: "+Ze);ae[Ze].push({selector:Ke,fn:qt})},render:function(Ze){G.store.featureChanged(Ze)}},Je=function(Ze,Ke){for(var qt=ae[Ze],Lt=qt.length;Lt--;){var Xt=qt[Lt];if(Xt.selector(Ke)){Xt.fn.call(Ve,Ke)||G.store.render(),G.ui.updateMapClasses();break}}};return B.start.call(Ve),{render:B.render,stop:function(){B.stop&&B.stop()},trash:function(){B.trash&&(B.trash(),G.store.render())},combineFeatures:function(){B.combineFeatures&&B.combineFeatures()},uncombineFeatures:function(){B.uncombineFeatures&&B.uncombineFeatures()},drag:function(Ze){Je("drag",Ze)},click:function(Ze){Je("click",Ze)},mousemove:function(Ze){Je("mousemove",Ze)},mousedown:function(Ze){Je("mousedown",Ze)},mouseup:function(Ze){Je("mouseup",Ze)},mouseout:function(Ze){Je("mouseout",Ze)},keydown:function(Ze){Je("keydown",Ze)},keyup:function(Ze){Je("keyup",Ze)},touchstart:function(Ze){Je("touchstart",Ze)},touchmove:function(Ze){Je("touchmove",Ze)},touchend:function(Ze){Je("touchend",Ze)},tap:function(Ze){Je("tap",Ze)}}},o=6378137;function u(B){var G=0;if(B&&B.length>0){G+=Math.abs(f(B[0]));for(var ae=1;ae2){for(Ke=0;Ke=Math.pow(2,ae)?G(ae,Ve):qt};G.rack=function(ae,Ve,Je){var Ze=function(qt){var Lt=0;do{if(Lt++>10){if(!Je)throw new Error("too many ID collisions, use more bits");ae+=Je}var Xt=G(ae,Ve)}while(Object.hasOwnProperty.call(Ke,Xt));return Ke[Xt]=qt,Xt},Ke=Ze.hats={};return Ze.get=function(qt){return Ze.hats[qt]},Ze.set=function(qt,Lt){return Ze.hats[qt]=Lt,Ze},Ze.bits=ae||128,Ze.base=Ve||16,Ze}}),ei=function(B,G){this.ctx=B,this.properties=G.properties||{},this.coordinates=G.geometry.coordinates,this.id=G.id||Pt(),this.type=G.geometry.type};ei.prototype.changed=function(){this.ctx.store.featureChanged(this.id)},ei.prototype.incomingCoords=function(B){this.setCoordinates(B)},ei.prototype.setCoordinates=function(B){this.coordinates=B,this.changed()},ei.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.coordinates))},ei.prototype.setProperty=function(B,G){this.properties[B]=G},ei.prototype.toGeoJSON=function(){return JSON.parse(JSON.stringify({id:this.id,type:ue,properties:this.properties,geometry:{coordinates:this.getCoordinates(),type:this.type}}))},ei.prototype.internal=function(B){var G={id:this.id,meta:Bi,"meta:type":this.type,active:Ai,mode:B};if(this.ctx.options.userProperties)for(var ae in this.properties)G["user_"+ae]=this.properties[ae];return{type:ue,properties:G,geometry:{coordinates:this.getCoordinates(),type:this.type}}};var Li=function(B,G){ei.call(this,B,G)};(Li.prototype=Object.create(ei.prototype)).isValid=function(){return typeof this.coordinates[0]=="number"&&typeof this.coordinates[1]=="number"},Li.prototype.updateCoordinate=function(B,G,ae){this.coordinates=arguments.length===3?[G,ae]:[B,G],this.changed()},Li.prototype.getCoordinate=function(){return this.getCoordinates()};var fi=function(B,G){ei.call(this,B,G)};(fi.prototype=Object.create(ei.prototype)).isValid=function(){return this.coordinates.length>1},fi.prototype.addCoordinate=function(B,G,ae){this.changed();var Ve=parseInt(B,10);this.coordinates.splice(Ve,0,[G,ae])},fi.prototype.getCoordinate=function(B){var G=parseInt(B,10);return JSON.parse(JSON.stringify(this.coordinates[G]))},fi.prototype.removeCoordinate=function(B){this.changed(),this.coordinates.splice(parseInt(B,10),1)},fi.prototype.updateCoordinate=function(B,G,ae){var Ve=parseInt(B,10);this.coordinates[Ve]=[G,ae],this.changed()};var Ii=function(B,G){ei.call(this,B,G),this.coordinates=this.coordinates.map(function(ae){return ae.slice(0,-1)})};(Ii.prototype=Object.create(ei.prototype)).isValid=function(){return this.coordinates.length!==0&&this.coordinates.every(function(B){return B.length>2})},Ii.prototype.incomingCoords=function(B){this.coordinates=B.map(function(G){return G.slice(0,-1)}),this.changed()},Ii.prototype.setCoordinates=function(B){this.coordinates=B,this.changed()},Ii.prototype.addCoordinate=function(B,G,ae){this.changed();var Ve=B.split(".").map(function(Je){return parseInt(Je,10)});this.coordinates[Ve[0]].splice(Ve[1],0,[G,ae])},Ii.prototype.removeCoordinate=function(B){this.changed();var G=B.split(".").map(function(Ve){return parseInt(Ve,10)}),ae=this.coordinates[G[0]];ae&&(ae.splice(G[1],1),ae.length<3&&this.coordinates.splice(G[0],1))},Ii.prototype.getCoordinate=function(B){var G=B.split(".").map(function(Ve){return parseInt(Ve,10)}),ae=this.coordinates[G[0]];return JSON.parse(JSON.stringify(ae[G[1]]))},Ii.prototype.getCoordinates=function(){return this.coordinates.map(function(B){return B.concat([B[0]])})},Ii.prototype.updateCoordinate=function(B,G,ae){this.changed();var Ve=B.split("."),Je=parseInt(Ve[0],10),Ze=parseInt(Ve[1],10);this.coordinates[Je]===void 0&&(this.coordinates[Je]=[]),this.coordinates[Je][Ze]=[G,ae]};var Hi={MultiPoint:Li,MultiLineString:fi,MultiPolygon:Ii},er=function(B,G,ae,Ve,Je){var Ze=ae.split("."),Ke=parseInt(Ze[0],10),qt=Ze[1]?Ze.slice(1).join("."):null;return B[Ke][G](qt,Ve,Je)},Gi=function(B,G){if(ei.call(this,B,G),delete this.coordinates,this.model=Hi[G.geometry.type],this.model===void 0)throw new TypeError(G.geometry.type+" is not a valid type");this.features=this._coordinatesToFeatures(G.geometry.coordinates)};function Mi(B){this.map=B.map,this.drawConfig=JSON.parse(JSON.stringify(B.options||{})),this._ctx=B}(Gi.prototype=Object.create(ei.prototype))._coordinatesToFeatures=function(B){var G=this,ae=this.model.bind(this);return B.map(function(Ve){return new ae(G.ctx,{id:Pt(),type:ue,properties:{},geometry:{coordinates:Ve,type:G.type.replace("Multi","")}})})},Gi.prototype.isValid=function(){return this.features.every(function(B){return B.isValid()})},Gi.prototype.setCoordinates=function(B){this.features=this._coordinatesToFeatures(B),this.changed()},Gi.prototype.getCoordinate=function(B){return er(this.features,"getCoordinate",B)},Gi.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.features.map(function(B){return B.type===Me?B.getCoordinates():B.coordinates})))},Gi.prototype.updateCoordinate=function(B,G,ae){er(this.features,"updateCoordinate",B,G,ae),this.changed()},Gi.prototype.addCoordinate=function(B,G,ae){er(this.features,"addCoordinate",B,G,ae),this.changed()},Gi.prototype.removeCoordinate=function(B){er(this.features,"removeCoordinate",B),this.changed()},Gi.prototype.getFeatures=function(){return this.features},Mi.prototype.setSelected=function(B){return this._ctx.store.setSelected(B)},Mi.prototype.setSelectedCoordinates=function(B){var G=this;this._ctx.store.setSelectedCoordinates(B),B.reduce(function(ae,Ve){return ae[Ve.feature_id]===void 0&&(ae[Ve.feature_id]=!0,G._ctx.store.get(Ve.feature_id).changed()),ae},{})},Mi.prototype.getSelected=function(){return this._ctx.store.getSelected()},Mi.prototype.getSelectedIds=function(){return this._ctx.store.getSelectedIds()},Mi.prototype.isSelected=function(B){return this._ctx.store.isSelected(B)},Mi.prototype.getFeature=function(B){return this._ctx.store.get(B)},Mi.prototype.select=function(B){return this._ctx.store.select(B)},Mi.prototype.deselect=function(B){return this._ctx.store.deselect(B)},Mi.prototype.deleteFeature=function(B,G){return G===void 0&&(G={}),this._ctx.store.delete(B,G)},Mi.prototype.addFeature=function(B){return this._ctx.store.add(B)},Mi.prototype.clearSelectedFeatures=function(){return this._ctx.store.clearSelected()},Mi.prototype.clearSelectedCoordinates=function(){return this._ctx.store.clearSelectedCoordinates()},Mi.prototype.setActionableState=function(B){B===void 0&&(B={});var G={trash:B.trash||!1,combineFeatures:B.combineFeatures||!1,uncombineFeatures:B.uncombineFeatures||!1};return this._ctx.events.actionable(G)},Mi.prototype.changeMode=function(B,G,ae){return G===void 0&&(G={}),ae===void 0&&(ae={}),this._ctx.events.changeMode(B,G,ae)},Mi.prototype.updateUIClasses=function(B){return this._ctx.ui.queueMapClasses(B)},Mi.prototype.activateUIButton=function(B){return this._ctx.ui.setActiveButton(B)},Mi.prototype.featuresAt=function(B,G,ae){if(ae===void 0&&(ae="click"),ae!=="click"&&ae!=="touch")throw new Error("invalid buffer type");return di[ae](B,G,this._ctx)},Mi.prototype.newFeature=function(B){var G=B.geometry.type;return G===Qe?new Li(this._ctx,B):G===ke?new fi(this._ctx,B):G===Me?new Ii(this._ctx,B):new Gi(this._ctx,B)},Mi.prototype.isInstanceOf=function(B,G){if(B===Qe)return G instanceof Li;if(B===ke)return G instanceof fi;if(B===Me)return G instanceof Ii;if(B==="MultiFeature")return G instanceof Gi;throw new Error("Unknown feature class: "+B)},Mi.prototype.doRender=function(B){return this._ctx.store.featureChanged(B)},Mi.prototype.onSetup=function(){},Mi.prototype.onDrag=function(){},Mi.prototype.onClick=function(){},Mi.prototype.onMouseMove=function(){},Mi.prototype.onMouseDown=function(){},Mi.prototype.onMouseUp=function(){},Mi.prototype.onMouseOut=function(){},Mi.prototype.onKeyUp=function(){},Mi.prototype.onKeyDown=function(){},Mi.prototype.onTouchStart=function(){},Mi.prototype.onTouchMove=function(){},Mi.prototype.onTouchEnd=function(){},Mi.prototype.onTap=function(){},Mi.prototype.onStop=function(){},Mi.prototype.onTrash=function(){},Mi.prototype.onCombineFeature=function(){},Mi.prototype.onUncombineFeature=function(){},Mi.prototype.toDisplayFeatures=function(){throw new Error("You must overwrite toDisplayFeatures")};var Pr={drag:"onDrag",click:"onClick",mousemove:"onMouseMove",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseout:"onMouseOut",keyup:"onKeyUp",keydown:"onKeyDown",touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",tap:"onTap"},xn=Object.keys(Pr);function In(B){var G=Object.keys(B);return function(ae,Ve){Ve===void 0&&(Ve={});var Je={},Ze=G.reduce(function(Ke,qt){return Ke[qt]=B[qt],Ke},new Mi(ae));return{start:function(){var Ke=this;Je=Ze.onSetup(Ve),xn.forEach(function(qt){var Lt,Xt=Pr[qt],tt=function(){return!1};B[Xt]&&(tt=function(){return!0}),Ke.on(qt,tt,(Lt=Xt,function(ni){return Ze[Lt](Je,ni)}))})},stop:function(){Ze.onStop(Je)},trash:function(){Ze.onTrash(Je)},combineFeatures:function(){Ze.onCombineFeatures(Je)},uncombineFeatures:function(){Ze.onUncombineFeatures(Je)},render:function(Ke,qt){Ze.toDisplayFeatures(Je,Ke,qt)}}}}function Zr(B){return[].concat(B).filter(function(G){return G!==void 0})}function Kr(){var B=this;if(!(B.ctx.map&&B.ctx.map.getSource(W)!==void 0))return Lt();var G=B.ctx.events.currentModeName();B.ctx.ui.queueMapClasses({mode:G});var ae=[],Ve=[];B.isDirty?Ve=B.getAllIds():(ae=B.getChangedIds().filter(function(Xt){return B.get(Xt)!==void 0}),Ve=B.sources.hot.filter(function(Xt){return Xt.properties.id&&ae.indexOf(Xt.properties.id)===-1&&B.get(Xt.properties.id)!==void 0}).map(function(Xt){return Xt.properties.id})),B.sources.hot=[];var Je=B.sources.cold.length;B.sources.cold=B.isDirty?[]:B.sources.cold.filter(function(Xt){var tt=Xt.properties.id||Xt.properties.parent;return ae.indexOf(tt)===-1});var Ze=Je!==B.sources.cold.length||Ve.length>0;function Ke(Xt,tt){var ni=B.get(Xt).internal(G);B.ctx.events.currentModeRender(ni,function(_i){B.sources[tt].push(_i)})}if(ae.forEach(function(Xt){return Ke(Xt,"hot")}),Ve.forEach(function(Xt){return Ke(Xt,"cold")}),Ze&&B.ctx.map.getSource(K).setData({type:at,features:B.sources.cold}),B.ctx.map.getSource(W).setData({type:at,features:B.sources.hot}),B._emitSelectionChange&&(B.ctx.map.fire(At,{features:B.getSelected().map(function(Xt){return Xt.toGeoJSON()}),points:B.getSelectedCoordinates().map(function(Xt){return{type:ue,properties:{},geometry:{type:Qe,coordinates:Xt.coordinates}}})}),B._emitSelectionChange=!1),B._deletedFeaturesToEmit.length){var qt=B._deletedFeaturesToEmit.map(function(Xt){return Xt.toGeoJSON()});B._deletedFeaturesToEmit=[],B.ctx.map.fire(gt,{features:qt})}function Lt(){B.isDirty=!1,B.clearChangedIds()}Lt(),B.ctx.map.fire(It,{})}function Ki(B){var G,ae=this;this._features={},this._featureIds=new dt,this._selectedFeatureIds=new dt,this._selectedCoordinates=[],this._changedFeatureIds=new dt,this._deletedFeaturesToEmit=[],this._emitSelectionChange=!1,this._mapInitialConfig={},this.ctx=B,this.sources={hot:[],cold:[]},this.render=function(){G||(G=requestAnimationFrame(function(){G=null,Kr.call(ae)}))},this.isDirty=!1}function Xr(B,G){var ae=B._selectedCoordinates.filter(function(Ve){return B._selectedFeatureIds.has(Ve.feature_id)});B._selectedCoordinates.length===ae.length||G.silent||(B._emitSelectionChange=!0),B._selectedCoordinates=ae}Ki.prototype.createRenderBatch=function(){var B=this,G=this.render,ae=0;return this.render=function(){ae++},function(){B.render=G,ae>0&&B.render()}},Ki.prototype.setDirty=function(){return this.isDirty=!0,this},Ki.prototype.featureChanged=function(B){return this._changedFeatureIds.add(B),this},Ki.prototype.getChangedIds=function(){return this._changedFeatureIds.values()},Ki.prototype.clearChangedIds=function(){return this._changedFeatureIds.clear(),this},Ki.prototype.getAllIds=function(){return this._featureIds.values()},Ki.prototype.add=function(B){return this.featureChanged(B.id),this._features[B.id]=B,this._featureIds.add(B.id),this},Ki.prototype.delete=function(B,G){var ae=this;return G===void 0&&(G={}),Zr(B).forEach(function(Ve){ae._featureIds.has(Ve)&&(ae._featureIds.delete(Ve),ae._selectedFeatureIds.delete(Ve),G.silent||ae._deletedFeaturesToEmit.indexOf(ae._features[Ve])===-1&&ae._deletedFeaturesToEmit.push(ae._features[Ve]),delete ae._features[Ve],ae.isDirty=!0)}),Xr(this,G),this},Ki.prototype.get=function(B){return this._features[B]},Ki.prototype.getAll=function(){var B=this;return Object.keys(this._features).map(function(G){return B._features[G]})},Ki.prototype.select=function(B,G){var ae=this;return G===void 0&&(G={}),Zr(B).forEach(function(Ve){ae._selectedFeatureIds.has(Ve)||(ae._selectedFeatureIds.add(Ve),ae._changedFeatureIds.add(Ve),G.silent||(ae._emitSelectionChange=!0))}),this},Ki.prototype.deselect=function(B,G){var ae=this;return G===void 0&&(G={}),Zr(B).forEach(function(Ve){ae._selectedFeatureIds.has(Ve)&&(ae._selectedFeatureIds.delete(Ve),ae._changedFeatureIds.add(Ve),G.silent||(ae._emitSelectionChange=!0))}),Xr(this,G),this},Ki.prototype.clearSelected=function(B){return B===void 0&&(B={}),this.deselect(this._selectedFeatureIds.values(),{silent:B.silent}),this},Ki.prototype.setSelected=function(B,G){var ae=this;return G===void 0&&(G={}),B=Zr(B),this.deselect(this._selectedFeatureIds.values().filter(function(Ve){return B.indexOf(Ve)===-1}),{silent:G.silent}),this.select(B.filter(function(Ve){return!ae._selectedFeatureIds.has(Ve)}),{silent:G.silent}),this},Ki.prototype.setSelectedCoordinates=function(B){return this._selectedCoordinates=B,this._emitSelectionChange=!0,this},Ki.prototype.clearSelectedCoordinates=function(){return this._selectedCoordinates=[],this._emitSelectionChange=!0,this},Ki.prototype.getSelectedIds=function(){return this._selectedFeatureIds.values()},Ki.prototype.getSelected=function(){var B=this;return this._selectedFeatureIds.values().map(function(G){return B.get(G)})},Ki.prototype.getSelectedCoordinates=function(){var B=this;return this._selectedCoordinates.map(function(G){return{coordinates:B.get(G.feature_id).getCoordinate(G.coord_path)}})},Ki.prototype.isSelected=function(B){return this._selectedFeatureIds.has(B)},Ki.prototype.setFeatureProperty=function(B,G,ae){this.get(B).setProperty(G,ae),this.featureChanged(B)},Ki.prototype.storeMapConfig=function(){var B=this;Ti.forEach(function(G){B.ctx.map[G]&&(B._mapInitialConfig[G]=B.ctx.map[G].isEnabled())})},Ki.prototype.restoreMapConfig=function(){var B=this;Object.keys(this._mapInitialConfig).forEach(function(G){B._mapInitialConfig[G]?B.ctx.map[G].enable():B.ctx.map[G].disable()})},Ki.prototype.getInitialConfigValue=function(B){return this._mapInitialConfig[B]===void 0||this._mapInitialConfig[B]};var Fr=function(){for(var B=arguments,G={},ae=0;ae=48&&vt<=57)};function Ui(vt,vi,pr){pr===void 0&&(pr={}),_i.stop();var yr=qt[vt];if(yr===void 0)throw new Error(vt+" is not valid");ni=vt;var Dr=yr(Ke,vi);_i=n(Dr,Ke),pr.silent||Ke.map.fire(xt,{mode:vt}),Ke.store.setDirty(),Ke.store.render()}tt.keydown=function(vt){(vt.srcElement||vt.target).classList[0]==="mapboxgl-canvas"&&(vt.keyCode!==8&&vt.keyCode!==46||!Ke.options.controls.trash?xi(vt.keyCode)?_i.keydown(vt):vt.keyCode===49&&Ke.options.controls.point?Ui(Xe.DRAW_POINT):vt.keyCode===50&&Ke.options.controls.line_string?Ui(Xe.DRAW_LINE_STRING):vt.keyCode===51&&Ke.options.controls.polygon&&Ui(Xe.DRAW_POLYGON):(vt.preventDefault(),_i.trash()))},tt.keyup=function(vt){xi(vt.keyCode)&&_i.keyup(vt)},tt.zoomend=function(){Ke.store.changeZoom()},tt.data=function(vt){if(vt.dataType==="style"){var vi=Ke.setup,pr=Ke.map,yr=Ke.options,Dr=Ke.store;yr.styles.some(function(Pi){return pr.getLayer(Pi.id)})||(vi.addLayers(),Dr.setDirty(),Dr.render())}};var Vr={trash:!1,combineFeatures:!1,uncombineFeatures:!1};return{start:function(){ni=Ke.options.defaultMode,_i=n(qt[ni](Ke),Ke)},changeMode:Ui,actionable:function(vt){var vi=!1;Object.keys(vt).forEach(function(pr){if(Vr[pr]===void 0)throw new Error("Invalid action type");Vr[pr]!==vt[pr]&&(vi=!0),Vr[pr]=vt[pr]}),vi&&Ke.map.fire(Ct,{actions:Vr})},currentModeName:function(){return ni},currentModeRender:function(vt,vi){return _i.render(vt,vi)},fire:function(vt,vi){tt[vt]&&tt[vt](vi)},addEventListeners:function(){Ke.map.on("mousemove",tt.mousemove),Ke.map.on("mousedown",tt.mousedown),Ke.map.on("mouseup",tt.mouseup),Ke.map.on("data",tt.data),Ke.map.on("touchmove",tt.touchmove),Ke.map.on("touchstart",tt.touchstart),Ke.map.on("touchend",tt.touchend),Ke.container.addEventListener("mouseout",tt.mouseout),Ke.options.keybindings&&(Ke.container.addEventListener("keydown",tt.keydown),Ke.container.addEventListener("keyup",tt.keyup))},removeEventListeners:function(){Ke.map.off("mousemove",tt.mousemove),Ke.map.off("mousedown",tt.mousedown),Ke.map.off("mouseup",tt.mouseup),Ke.map.off("data",tt.data),Ke.map.off("touchmove",tt.touchmove),Ke.map.off("touchstart",tt.touchstart),Ke.map.off("touchend",tt.touchend),Ke.container.removeEventListener("mouseout",tt.mouseout),Ke.options.keybindings&&(Ke.container.removeEventListener("keydown",tt.keydown),Ke.container.removeEventListener("keyup",tt.keyup))},trash:function(vt){_i.trash(vt)},combineFeatures:function(){_i.combineFeatures()},uncombineFeatures:function(){_i.uncombineFeatures()},getMode:function(){return ni}}}(B),B.ui=function(Ke){var qt={},Lt=null,Xt={mode:null,feature:null,mouse:null},tt={mode:null,feature:null,mouse:null};function ni(vt){tt=Fr(tt,vt)}function _i(){var vt,vi;if(Ke.container){var pr=[],yr=[];xe.forEach(function(Dr){tt[Dr]!==Xt[Dr]&&(pr.push(Dr+"-"+Xt[Dr]),tt[Dr]!==null&&yr.push(Dr+"-"+tt[Dr]))}),pr.length>0&&(vt=Ke.container.classList).remove.apply(vt,pr),yr.length>0&&(vi=Ke.container.classList).add.apply(vi,yr),Xt=Fr(Xt,tt)}}function xi(vt,vi){vi===void 0&&(vi={});var pr=document.createElement("button");return pr.className=E+" "+vi.className,pr.setAttribute("title",vi.title),vi.container.appendChild(pr),pr.addEventListener("click",function(yr){if(yr.preventDefault(),yr.stopPropagation(),yr.target===Lt)return Ui(),void vi.onDeactivate();Vr(vt),vi.onActivate()},!0),pr}function Ui(){Lt&&(Lt.classList.remove(X),Lt=null)}function Vr(vt){Ui();var vi=qt[vt];vi&&vi&&vt!=="trash"&&(vi.classList.add(X),Lt=vi)}return{setActiveButton:Vr,queueMapClasses:ni,updateMapClasses:_i,clearMapClasses:function(){ni({mode:null,feature:null,mouse:null}),_i()},addButtons:function(){var vt=Ke.options.controls,vi=document.createElement("div");return vi.className=Y+" "+w,vt&&(vt[ee.LINE]&&(qt[ee.LINE]=xi(ee.LINE,{container:vi,className:M,title:"LineString tool "+(Ke.options.keybindings?"(l)":""),onActivate:function(){return Ke.events.changeMode(Xe.DRAW_LINE_STRING)},onDeactivate:function(){return Ke.events.trash()}})),vt[ee.POLYGON]&&(qt[ee.POLYGON]=xi(ee.POLYGON,{container:vi,className:k,title:"Polygon tool "+(Ke.options.keybindings?"(p)":""),onActivate:function(){return Ke.events.changeMode(Xe.DRAW_POLYGON)},onDeactivate:function(){return Ke.events.trash()}})),vt[ee.POINT]&&(qt[ee.POINT]=xi(ee.POINT,{container:vi,className:L,title:"Marker tool "+(Ke.options.keybindings?"(m)":""),onActivate:function(){return Ke.events.changeMode(Xe.DRAW_POINT)},onDeactivate:function(){return Ke.events.trash()}})),vt.trash&&(qt.trash=xi("trash",{container:vi,className:D,title:"Delete",onActivate:function(){Ke.events.trash()}})),vt.combine_features&&(qt.combine_features=xi("combineFeatures",{container:vi,className:U,title:"Combine",onActivate:function(){Ke.events.combineFeatures()}})),vt.uncombine_features&&(qt.uncombine_features=xi("uncombineFeatures",{container:vi,className:q,title:"Uncombine",onActivate:function(){Ke.events.uncombineFeatures()}}))),vi},removeButtons:function(){Object.keys(qt).forEach(function(vt){var vi=qt[vt];vi.parentNode&&vi.parentNode.removeChild(vi),delete qt[vt]})}}}(B),B.container=Je.getContainer(),B.store=new Ki(B),G=B.ui.addButtons(),B.options.boxSelect&&(Je.boxZoom.disable(),Je.dragPan.disable(),Je.dragPan.enable()),Je.loaded()?Ve.connect():(Je.on("load",Ve.connect),ae=setInterval(function(){Je.loaded()&&Ve.connect()},16)),B.events.start(),G},addLayers:function(){B.map.addSource(K,{data:{type:at,features:[]},type:"geojson"}),B.map.addSource(W,{data:{type:at,features:[]},type:"geojson"}),B.options.styles.forEach(function(Je){B.map.addLayer(Je)}),B.store.setDirty(!0),B.store.render()},removeLayers:function(){B.options.styles.forEach(function(Je){B.map.getLayer(Je.id)&&B.map.removeLayer(Je.id)}),B.map.getSource(K)&&B.map.removeSource(K),B.map.getSource(W)&&B.map.removeSource(W)}};return B.setup=Ve,Ve}function $(B){return function(G){var ae=G.featureTarget;return!!ae&&!!ae.properties&&ae.properties.meta===B}}function Q(B){return!!B.featureTarget&&!!B.featureTarget.properties&&B.featureTarget.properties.active===kt&&B.featureTarget.properties.meta===Bi}function ce(B){return!!B.featureTarget&&!!B.featureTarget.properties&&B.featureTarget.properties.active===Ai&&B.featureTarget.properties.meta===Bi}function fe(B){return B.featureTarget===void 0}function Ie(B){var G=B.featureTarget;return!!G&&!!G.properties&&G.properties.meta===St}function $e(B){return!!B.originalEvent&&B.originalEvent.shiftKey===!0}function je(B){return B.keyCode===27}function Be(B){return B.keyCode===13}var He=st;function st(B,G){this.x=B,this.y=G}function Vt(B,G){var ae=G.getBoundingClientRect();return new He(B.clientX-ae.left-(G.clientLeft||0),B.clientY-ae.top-(G.clientTop||0))}function ut(B,G,ae,Ve){return{type:ue,properties:{meta:St,parent:B,coord_path:ae,active:Ve?kt:Ai},geometry:{type:Qe,coordinates:G}}}function pi(B,G,ae){G===void 0&&(G={}),ae===void 0&&(ae=null);var Ve,Je=B.geometry,Ze=Je.type,Ke=Je.coordinates,qt=B.properties&&B.properties.id,Lt=[];function Xt(ni,_i){var xi="",Ui=null;ni.forEach(function(Vr,vt){var vi=_i!=null?_i+"."+vt:String(vt),pr=ut(qt,Vr,vi,tt(vi));if(G.midpoints&&Ui){var yr=function(Pi,Mo,so){var ar=Mo.geometry.coordinates,Hr=so.geometry.coordinates;if(ar[1]>85||ar[1]<-85||Hr[1]>85||Hr[1]<-85)return null;var ln={lng:(ar[0]+Hr[0])/2,lat:(ar[1]+Hr[1])/2};return{type:ue,properties:{meta:yi,parent:Pi,lng:ln.lng,lat:ln.lat,coord_path:so.properties.coord_path},geometry:{type:Qe,coordinates:[ln.lng,ln.lat]}}}(qt,Ui,pr);yr&&Lt.push(yr)}Ui=pr;var Dr=JSON.stringify(Vr);xi!==Dr&&Lt.push(pr),vt===0&&(xi=Dr)})}function tt(ni){return!!G.selectedPaths&&G.selectedPaths.indexOf(ni)!==-1}return Ze===Qe?Lt.push(ut(qt,Ke,ae,tt(ae))):Ze===Me?Ke.forEach(function(ni,_i){Xt(ni,ae!==null?ae+"."+_i:String(_i))}):Ze===ke?Xt(Ke,ae):Ze.indexOf(Ft)===0&&(Ve=Ze.replace(Ft,""),Ke.forEach(function(ni,_i){var xi={type:ue,properties:B.properties,geometry:{type:Ve,coordinates:ni}};Lt=Lt.concat(pi(xi,G,_i))})),Lt}st.prototype={clone:function(){return new st(this.x,this.y)},add:function(B){return this.clone()._add(B)},sub:function(B){return this.clone()._sub(B)},multByPoint:function(B){return this.clone()._multByPoint(B)},divByPoint:function(B){return this.clone()._divByPoint(B)},mult:function(B){return this.clone()._mult(B)},div:function(B){return this.clone()._div(B)},rotate:function(B){return this.clone()._rotate(B)},rotateAround:function(B,G){return this.clone()._rotateAround(B,G)},matMult:function(B){return this.clone()._matMult(B)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(B){return this.x===B.x&&this.y===B.y},dist:function(B){return Math.sqrt(this.distSqr(B))},distSqr:function(B){var G=B.x-this.x,ae=B.y-this.y;return G*G+ae*ae},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(B){return Math.atan2(this.y-B.y,this.x-B.x)},angleWith:function(B){return this.angleWithSep(B.x,B.y)},angleWithSep:function(B,G){return Math.atan2(this.x*G-this.y*B,this.x*B+this.y*G)},_matMult:function(B){var G=B[0]*this.x+B[1]*this.y,ae=B[2]*this.x+B[3]*this.y;return this.x=G,this.y=ae,this},_add:function(B){return this.x+=B.x,this.y+=B.y,this},_sub:function(B){return this.x-=B.x,this.y-=B.y,this},_mult:function(B){return this.x*=B,this.y*=B,this},_div:function(B){return this.x/=B,this.y/=B,this},_multByPoint:function(B){return this.x*=B.x,this.y*=B.y,this},_divByPoint:function(B){return this.x/=B.x,this.y/=B.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var B=this.y;return this.y=this.x,this.x=-B,this},_rotate:function(B){var G=Math.cos(B),ae=Math.sin(B),Ve=G*this.x-ae*this.y,Je=ae*this.x+G*this.y;return this.x=Ve,this.y=Je,this},_rotateAround:function(B,G){var ae=Math.cos(B),Ve=Math.sin(B),Je=G.x+ae*(this.x-G.x)-Ve*(this.y-G.y),Ze=G.y+Ve*(this.x-G.x)+ae*(this.y-G.y);return this.x=Je,this.y=Ze,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},st.convert=function(B){return B instanceof st?B:Array.isArray(B)?new st(B[0],B[1]):B};var ai=function(B){setTimeout(function(){B.map&&B.map.doubleClickZoom&&B._ctx&&B._ctx.store&&B._ctx.store.getInitialConfigValue&&B._ctx.store.getInitialConfigValue("doubleClickZoom")&&B.map.doubleClickZoom.enable()},0)},ci=function(B){setTimeout(function(){B.map&&B.map.doubleClickZoom&&B.map.doubleClickZoom.disable()},0)},Ci=function(B){if(!B||!B.type)return null;var G=Ri[B.type];if(!G)return null;if(G==="geometry")return{type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:B}]};if(G==="feature")return{type:"FeatureCollection",features:[B]};if(G==="featurecollection")return B},Ri={Point:"geometry",MultiPoint:"geometry",LineString:"geometry",MultiLineString:"geometry",Polygon:"geometry",MultiPolygon:"geometry",GeometryCollection:"geometry",Feature:"feature",FeatureCollection:"featurecollection"};function tr(B){switch(B&&B.type||null){case"FeatureCollection":return B.features=B.features.reduce(function(G,ae){return G.concat(tr(ae))},[]),B;case"Feature":return B.geometry?tr(B.geometry).map(function(G){var ae={type:"Feature",properties:JSON.parse(JSON.stringify(B.properties)),geometry:G};return B.id!==void 0&&(ae.id=B.id),ae}):[B];case"MultiPoint":return B.coordinates.map(function(G){return{type:"Point",coordinates:G}});case"MultiPolygon":return B.coordinates.map(function(G){return{type:"Polygon",coordinates:G}});case"MultiLineString":return B.coordinates.map(function(G){return{type:"LineString",coordinates:G}});case"GeometryCollection":return B.geometries.map(tr).reduce(function(G,ae){return G.concat(ae)},[]);case"Point":case"Polygon":case"LineString":return[B]}}var Le=function(B){if(!B)return[];var G=tr(Ci(B)),ae=[];return G.features.forEach(function(Ve){Ve.geometry&&(ae=ae.concat(function Je(Ze){return Array.isArray(Ze)&&Ze.length&&typeof Ze[0]=="number"?[Ze]:Ze.reduce(function(Ke,qt){return Array.isArray(qt)&&Array.isArray(qt[0])?Ke.concat(Je(qt)):(Ke.push(qt),Ke)},[])}(Ve.geometry.coordinates)))}),ae},Gt=Ut(function(B){var G=B.exports=function(tt){return new ae(tt)};function ae(tt){this.value=tt}function Ve(tt,ni,_i){var xi=[],Ui=[],Vr=!0;return function vt(vi){var pr=_i?Je(vi):vi,yr={},Dr=!0,Pi={node:pr,node_:vi,path:[].concat(xi),parent:Ui[Ui.length-1],parents:Ui,key:xi.slice(-1)[0],isRoot:xi.length===0,level:xi.length,circular:null,update:function(ar,Hr){Pi.isRoot||(Pi.parent.node[Pi.key]=ar),Pi.node=ar,Hr&&(Dr=!1)},delete:function(ar){delete Pi.parent.node[Pi.key],ar&&(Dr=!1)},remove:function(ar){qt(Pi.parent.node)?Pi.parent.node.splice(Pi.key,1):delete Pi.parent.node[Pi.key],ar&&(Dr=!1)},keys:null,before:function(ar){yr.before=ar},after:function(ar){yr.after=ar},pre:function(ar){yr.pre=ar},post:function(ar){yr.post=ar},stop:function(){Vr=!1},block:function(){Dr=!1}};if(!Vr)return Pi;function Mo(){if(typeof Pi.node=="object"&&Pi.node!==null){Pi.keys&&Pi.node_===Pi.node||(Pi.keys=Ze(Pi.node)),Pi.isLeaf=Pi.keys.length==0;for(var ar=0;ar=G&&this._bbox[3]>=ae},qe.prototype.intersect=function(B){return this._valid?(G=B instanceof qe?B.bbox():B,!(this._bbox[0]>G[2]||this._bbox[2]G[3])):null;var G},qe.prototype._fastContains=function(){if(!this._valid)return new Function("return null;");var B="return "+this._bbox[0]+"<= ll[0] &&"+this._bbox[1]+"<= ll[1] &&"+this._bbox[2]+">= ll[0] &&"+this._bbox[3]+">= ll[1]";return new Function("ll",B)},qe.prototype.polygon=function(){return this._valid?{type:"Polygon",coordinates:[[[this._bbox[0],this._bbox[1]],[this._bbox[2],this._bbox[1]],[this._bbox[2],this._bbox[3]],[this._bbox[0],this._bbox[3]],[this._bbox[0],this._bbox[1]]]]}:null};var Wi={features:["FeatureCollection"],coordinates:["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],geometry:["Feature"],geometries:["GeometryCollection"]},Ni=Object.keys(Wi),fr=function(B){return Gr(B).bbox()};function Gr(B){for(var G=ht(),ae=Le(B),Ve=0;Veae&&(ae=ni),_iJe&&(Je=_i),niqt&&(qt=Ui)});var Lt=G;return ae+Lt.lat>85&&(Lt.lat=85-ae),Je+Lt.lat>90&&(Lt.lat=90-Je),Ve+Lt.lat<-85&&(Lt.lat=-85-Ve),Ze+Lt.lat<-90&&(Lt.lat=-90-Ze),Ke+Lt.lng<=-270&&(Lt.lng+=360*Math.ceil(Math.abs(Lt.lng)/360)),qt+Lt.lng>=270&&(Lt.lng-=360*Math.ceil(Math.abs(Lt.lng)/360)),Lt}function fa(B,G){var ae=un(B.map(function(Ve){return Ve.toGeoJSON()}),G);B.forEach(function(Ve){var Je,Ze=Ve.getCoordinates(),Ke=function(Lt){var Xt={lng:Lt[0]+ae.lng,lat:Lt[1]+ae.lat};return[Xt.lng,Xt.lat]},qt=function(Lt){return Lt.map(function(Xt){return Ke(Xt)})};Ve.type===Qe?Je=Ke(Ze):Ve.type===ke||Ve.type===Qt?Je=Ze.map(Ke):Ve.type===Me||Ve.type===Rt?Je=Ze.map(qt):Ve.type===Jt&&(Je=Ze.map(function(Lt){return Lt.map(function(Xt){return qt(Xt)})})),Ve.incomingCoords(Je)})}var nn={onSetup:function(B){var G=this,ae={dragMoveLocation:null,boxSelectStartLocation:null,boxSelectElement:void 0,boxSelecting:!1,canBoxSelect:!1,dragMoving:!1,canDragMove:!1,initiallySelectedFeatureIds:B.featureIds||[]};return this.setSelected(ae.initiallySelectedFeatureIds.filter(function(Ve){return G.getFeature(Ve)!==void 0})),this.fireActionable(),this.setActionableState({combineFeatures:!0,uncombineFeatures:!0,trash:!0}),ae},fireUpdate:function(){this.map.fire(ot,{action:Ei,features:this.getSelected().map(function(B){return B.toGeoJSON()})})},fireActionable:function(){var B=this,G=this.getSelected(),ae=G.filter(function(qt){return B.isInstanceOf("MultiFeature",qt)}),Ve=!1;if(G.length>1){Ve=!0;var Je=G[0].type.replace("Multi","");G.forEach(function(qt){qt.type.replace("Multi","")!==Je&&(Ve=!1)})}var Ze=ae.length>0,Ke=G.length>0;this.setActionableState({combineFeatures:Ve,uncombineFeatures:Ze,trash:Ke})},getUniqueIds:function(B){return B.length?B.map(function(G){return G.properties.id}).filter(function(G){return G!==void 0}).reduce(function(G,ae){return G.add(ae),G},new dt).values():[]},stopExtendedInteractions:function(B){B.boxSelectElement&&(B.boxSelectElement.parentNode&&B.boxSelectElement.parentNode.removeChild(B.boxSelectElement),B.boxSelectElement=null),this.map.dragPan.enable(),B.boxSelecting=!1,B.canBoxSelect=!1,B.dragMoving=!1,B.canDragMove=!1},onStop:function(){ai(this)},onMouseMove:function(B){return this.stopExtendedInteractions(B),!0},onMouseOut:function(B){return!B.dragMoving||this.fireUpdate()}};nn.onTap=nn.onClick=function(B,G){return fe(G)?this.clickAnywhere(B,G):$(St)(G)?this.clickOnVertex(B,G):function(ae){return!!ae.featureTarget&&!!ae.featureTarget.properties&&ae.featureTarget.properties.meta===Bi}(G)?this.clickOnFeature(B,G):void 0},nn.clickAnywhere=function(B){var G=this,ae=this.getSelectedIds();ae.length&&(this.clearSelectedFeatures(),ae.forEach(function(Ve){return G.doRender(Ve)})),ai(this),this.stopExtendedInteractions(B)},nn.clickOnVertex=function(B,G){this.changeMode(Xe.DIRECT_SELECT,{featureId:G.featureTarget.properties.parent,coordPath:G.featureTarget.properties.coord_path,startPos:G.lngLat}),this.updateUIClasses({mouse:Te})},nn.startOnActiveFeature=function(B,G){this.stopExtendedInteractions(B),this.map.dragPan.disable(),this.doRender(G.featureTarget.properties.id),B.canDragMove=!0,B.dragMoveLocation=G.lngLat},nn.clickOnFeature=function(B,G){var ae=this;ci(this),this.stopExtendedInteractions(B);var Ve=$e(G),Je=this.getSelectedIds(),Ze=G.featureTarget.properties.id,Ke=this.isSelected(Ze);if(!Ve&&Ke&&this.getFeature(Ze).type!==Qe)return this.changeMode(Xe.DIRECT_SELECT,{featureId:Ze});Ke&&Ve?(this.deselect(Ze),this.updateUIClasses({mouse:se}),Je.length===1&&ai(this)):!Ke&&Ve?(this.select(Ze),this.updateUIClasses({mouse:Te})):Ke||Ve||(Je.forEach(function(qt){return ae.doRender(qt)}),this.setSelected(Ze),this.updateUIClasses({mouse:Te})),this.doRender(Ze)},nn.onMouseDown=function(B,G){return Q(G)?this.startOnActiveFeature(B,G):this.drawConfig.boxSelect&&function(ae){return!!ae.originalEvent&&!!ae.originalEvent.shiftKey&&ae.originalEvent.button===0}(G)?this.startBoxSelect(B,G):void 0},nn.startBoxSelect=function(B,G){this.stopExtendedInteractions(B),this.map.dragPan.disable(),B.boxSelectStartLocation=Vt(G.originalEvent,this.map.getContainer()),B.canBoxSelect=!0},nn.onTouchStart=function(B,G){if(Q(G))return this.startOnActiveFeature(B,G)},nn.onDrag=function(B,G){return B.canDragMove?this.dragMove(B,G):this.drawConfig.boxSelect&&B.canBoxSelect?this.whileBoxSelect(B,G):void 0},nn.whileBoxSelect=function(B,G){B.boxSelecting=!0,this.updateUIClasses({mouse:ie}),B.boxSelectElement||(B.boxSelectElement=document.createElement("div"),B.boxSelectElement.classList.add(oe),this.map.getContainer().appendChild(B.boxSelectElement));var ae=Vt(G.originalEvent,this.map.getContainer()),Ve=Math.min(B.boxSelectStartLocation.x,ae.x),Je=Math.max(B.boxSelectStartLocation.x,ae.x),Ze=Math.min(B.boxSelectStartLocation.y,ae.y),Ke=Math.max(B.boxSelectStartLocation.y,ae.y),qt="translate("+Ve+"px, "+Ze+"px)";B.boxSelectElement.style.transform=qt,B.boxSelectElement.style.WebkitTransform=qt,B.boxSelectElement.style.width=Je-Ve+"px",B.boxSelectElement.style.height=Ke-Ze+"px"},nn.dragMove=function(B,G){B.dragMoving=!0,G.originalEvent.stopPropagation();var ae={lng:G.lngLat.lng-B.dragMoveLocation.lng,lat:G.lngLat.lat-B.dragMoveLocation.lat};fa(this.getSelected(),ae),B.dragMoveLocation=G.lngLat},nn.onMouseUp=function(B,G){var ae=this;if(B.dragMoving)this.fireUpdate();else if(B.boxSelecting){var Ve=[B.boxSelectStartLocation,Vt(G.originalEvent,this.map.getContainer())],Je=this.featuresAt(null,Ve,"click"),Ze=this.getUniqueIds(Je).filter(function(Ke){return!ae.isSelected(Ke)});Ze.length&&(this.select(Ze),Ze.forEach(function(Ke){return ae.doRender(Ke)}),this.updateUIClasses({mouse:Te}))}this.stopExtendedInteractions(B)},nn.toDisplayFeatures=function(B,G,ae){G.properties.active=this.isSelected(G.properties.id)?kt:Ai,ae(G),this.fireActionable(),G.properties.active===kt&&G.geometry.type!==Qe&&pi(G).forEach(ae)},nn.onTrash=function(){this.deleteFeature(this.getSelectedIds()),this.fireActionable()},nn.onCombineFeatures=function(){var B=this.getSelected();if(!(B.length===0||B.length<2)){for(var G=[],ae=[],Ve=B[0].type.replace("Multi",""),Je=0;Je1){var Ke=this.newFeature({type:ue,properties:ae[0].properties,geometry:{type:"Multi"+Ve,coordinates:G}});this.addFeature(Ke),this.deleteFeature(this.getSelectedIds(),{silent:!0}),this.setSelected([Ke.id]),this.map.fire(mi,{createdFeatures:[Ke.toGeoJSON()],deletedFeatures:ae})}this.fireActionable()}},nn.onUncombineFeatures=function(){var B=this,G=this.getSelected();if(G.length!==0){for(var ae=[],Ve=[],Je=function(Ke){var qt=G[Ke];B.isInstanceOf("MultiFeature",qt)&&(qt.getFeatures().forEach(function(Lt){B.addFeature(Lt),Lt.properties=qt.properties,ae.push(Lt.toGeoJSON()),B.select([Lt.id])}),B.deleteFeature(qt.id,{silent:!0}),Ve.push(qt.toGeoJSON()))},Ze=0;Ze1&&this.map.fire(_t,{createdFeatures:ae,deletedFeatures:Ve}),this.fireActionable()}};var So=$(St),ri=$(yi),qi={fireUpdate:function(){this.map.fire(ot,{action:zi,features:this.getSelected().map(function(B){return B.toGeoJSON()})})},fireActionable:function(B){this.setActionableState({combineFeatures:!1,uncombineFeatures:!1,trash:B.selectedCoordPaths.length>0})},startDragging:function(B,G){this.map.dragPan.disable(),B.canDragMove=!0,B.dragMoveLocation=G.lngLat},stopDragging:function(B){this.map.dragPan.enable(),B.dragMoving=!1,B.canDragMove=!1,B.dragMoveLocation=null},onVertex:function(B,G){this.startDragging(B,G);var ae=G.featureTarget.properties,Ve=B.selectedCoordPaths.indexOf(ae.coord_path);$e(G)||Ve!==-1?$e(G)&&Ve===-1&&B.selectedCoordPaths.push(ae.coord_path):B.selectedCoordPaths=[ae.coord_path];var Je=this.pathsToCoordinates(B.featureId,B.selectedCoordPaths);this.setSelectedCoordinates(Je)},onMidpoint:function(B,G){this.startDragging(B,G);var ae=G.featureTarget.properties;B.feature.addCoordinate(ae.coord_path,ae.lng,ae.lat),this.fireUpdate(),B.selectedCoordPaths=[ae.coord_path]},pathsToCoordinates:function(B,G){return G.map(function(ae){return{feature_id:B,coord_path:ae}})},onFeature:function(B,G){B.selectedCoordPaths.length===0?this.startDragging(B,G):this.stopDragging(B)},dragFeature:function(B,G,ae){fa(this.getSelected(),ae),B.dragMoveLocation=G.lngLat},dragVertex:function(B,G,ae){for(var Ve=B.selectedCoordPaths.map(function(qt){return B.feature.getCoordinate(qt)}),Je=un(Ve.map(function(qt){return{type:ue,properties:{},geometry:{type:Qe,coordinates:qt}}}),ae),Ze=0;Ze0?this.dragVertex(B,G,ae):this.dragFeature(B,G,ae),B.dragMoveLocation=G.lngLat}},qi.onClick=function(B,G){return fe(G)?this.clickNoTarget(B,G):Q(G)?this.clickActiveFeature(B,G):ce(G)?this.clickInactive(B,G):void this.stopDragging(B)},qi.onTap=function(B,G){return fe(G)?this.clickNoTarget(B,G):Q(G)?this.clickActiveFeature(B,G):ce(G)?this.clickInactive(B,G):void 0},qi.onTouchEnd=qi.onMouseUp=function(B){B.dragMoving&&this.fireUpdate(),this.stopDragging(B)};var ji={};function kn(B,G){return!!B.lngLat&&B.lngLat.lng===G[0]&&B.lngLat.lat===G[1]}ji.onSetup=function(){var B=this.newFeature({type:ue,properties:{},geometry:{type:Qe,coordinates:[]}});return this.addFeature(B),this.clearSelectedFeatures(),this.updateUIClasses({mouse:ie}),this.activateUIButton(ee.POINT),this.setActionableState({trash:!0}),{point:B}},ji.stopDrawingAndRemove=function(B){this.deleteFeature([B.point.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT)},ji.onTap=ji.onClick=function(B,G){this.updateUIClasses({mouse:Te}),B.point.updateCoordinate("",G.lngLat.lng,G.lngLat.lat),this.map.fire(mt,{features:[B.point.toGeoJSON()]}),this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.point.id]})},ji.onStop=function(B){this.activateUIButton(),B.point.getCoordinate().length||this.deleteFeature([B.point.id],{silent:!0})},ji.toDisplayFeatures=function(B,G,ae){var Ve=G.properties.id===B.point.id;if(G.properties.active=Ve?kt:Ai,!Ve)return ae(G)},ji.onTrash=ji.stopDrawingAndRemove,ji.onKeyUp=function(B,G){if(je(G)||Be(G))return this.stopDrawingAndRemove(B,G)};var sn={onSetup:function(){var B=this.newFeature({type:ue,properties:{},geometry:{type:Me,coordinates:[[]]}});return this.addFeature(B),this.clearSelectedFeatures(),ci(this),this.updateUIClasses({mouse:ie}),this.activateUIButton(ee.POLYGON),this.setActionableState({trash:!0}),{polygon:B,currentVertexPosition:0}},clickAnywhere:function(B,G){if(B.currentVertexPosition>0&&kn(G,B.polygon.coordinates[0][B.currentVertexPosition-1]))return this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.polygon.id]});this.updateUIClasses({mouse:ie}),B.polygon.updateCoordinate("0."+B.currentVertexPosition,G.lngLat.lng,G.lngLat.lat),B.currentVertexPosition++,B.polygon.updateCoordinate("0."+B.currentVertexPosition,G.lngLat.lng,G.lngLat.lat)},clickOnVertex:function(B){return this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.polygon.id]})},onMouseMove:function(B,G){B.polygon.updateCoordinate("0."+B.currentVertexPosition,G.lngLat.lng,G.lngLat.lat),Ie(G)&&this.updateUIClasses({mouse:se})}};sn.onTap=sn.onClick=function(B,G){return Ie(G)?this.clickOnVertex(B,G):this.clickAnywhere(B,G)},sn.onKeyUp=function(B,G){je(G)?(this.deleteFeature([B.polygon.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT)):Be(G)&&this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.polygon.id]})},sn.onStop=function(B){this.updateUIClasses({mouse:_e}),ai(this),this.activateUIButton(),this.getFeature(B.polygon.id)!==void 0&&(B.polygon.removeCoordinate("0."+B.currentVertexPosition),B.polygon.isValid()?this.map.fire(mt,{features:[B.polygon.toGeoJSON()]}):(this.deleteFeature([B.polygon.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT,{},{silent:!0})))},sn.toDisplayFeatures=function(B,G,ae){var Ve=G.properties.id===B.polygon.id;if(G.properties.active=Ve?kt:Ai,!Ve)return ae(G);if(G.geometry.coordinates.length!==0){var Je=G.geometry.coordinates[0].length;if(!(Je<3)){if(G.properties.meta=Bi,ae(ut(B.polygon.id,G.geometry.coordinates[0][0],"0.0",!1)),Je>3){var Ze=G.geometry.coordinates[0].length-3;ae(ut(B.polygon.id,G.geometry.coordinates[0][Ze],"0."+Ze,!1))}if(Je<=4){var Ke=[[G.geometry.coordinates[0][0][0],G.geometry.coordinates[0][0][1]],[G.geometry.coordinates[0][1][0],G.geometry.coordinates[0][1][1]]];if(ae({type:ue,properties:G.properties,geometry:{coordinates:Ke,type:ke}}),Je===3)return}return ae(G)}}},sn.onTrash=function(B){this.deleteFeature([B.polygon.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT)};var Vi={onSetup:function(B){var G,ae,Ve=(B=B||{}).featureId,Je="forward";if(Ve){if(!(G=this.getFeature(Ve)))throw new Error("Could not find a feature with the provided featureId");var Ze=B.from;if(Ze&&Ze.type==="Feature"&&Ze.geometry&&Ze.geometry.type==="Point"&&(Ze=Ze.geometry),Ze&&Ze.type==="Point"&&Ze.coordinates&&Ze.coordinates.length===2&&(Ze=Ze.coordinates),!Ze||!Array.isArray(Ze))throw new Error("Please use the `from` property to indicate which point to continue the line from");var Ke=G.coordinates.length-1;if(G.coordinates[Ke][0]===Ze[0]&&G.coordinates[Ke][1]===Ze[1])ae=Ke+1,G.addCoordinate.apply(G,[ae].concat(G.coordinates[Ke]));else{if(G.coordinates[0][0]!==Ze[0]||G.coordinates[0][1]!==Ze[1])throw new Error("`from` should match the point at either the start or the end of the provided LineString");Je="backwards",ae=0,G.addCoordinate.apply(G,[ae].concat(G.coordinates[0]))}}else G=this.newFeature({type:ue,properties:{},geometry:{type:ke,coordinates:[]}}),ae=0,this.addFeature(G);return this.clearSelectedFeatures(),ci(this),this.updateUIClasses({mouse:ie}),this.activateUIButton(ee.LINE),this.setActionableState({trash:!0}),{line:G,currentVertexPosition:ae,direction:Je}},clickAnywhere:function(B,G){if(B.currentVertexPosition>0&&kn(G,B.line.coordinates[B.currentVertexPosition-1])||B.direction==="backwards"&&kn(G,B.line.coordinates[B.currentVertexPosition+1]))return this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.line.id]});this.updateUIClasses({mouse:ie}),B.line.updateCoordinate(B.currentVertexPosition,G.lngLat.lng,G.lngLat.lat),B.direction==="forward"?(B.currentVertexPosition++,B.line.updateCoordinate(B.currentVertexPosition,G.lngLat.lng,G.lngLat.lat)):B.line.addCoordinate(0,G.lngLat.lng,G.lngLat.lat)},clickOnVertex:function(B){return this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.line.id]})},onMouseMove:function(B,G){B.line.updateCoordinate(B.currentVertexPosition,G.lngLat.lng,G.lngLat.lat),Ie(G)&&this.updateUIClasses({mouse:se})}};Vi.onTap=Vi.onClick=function(B,G){if(Ie(G))return this.clickOnVertex(B,G);this.clickAnywhere(B,G)},Vi.onKeyUp=function(B,G){Be(G)?this.changeMode(Xe.SIMPLE_SELECT,{featureIds:[B.line.id]}):je(G)&&(this.deleteFeature([B.line.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT))},Vi.onStop=function(B){ai(this),this.activateUIButton(),this.getFeature(B.line.id)!==void 0&&(B.line.removeCoordinate(""+B.currentVertexPosition),B.line.isValid()?this.map.fire(mt,{features:[B.line.toGeoJSON()]}):(this.deleteFeature([B.line.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT,{},{silent:!0})))},Vi.onTrash=function(B){this.deleteFeature([B.line.id],{silent:!0}),this.changeMode(Xe.SIMPLE_SELECT)},Vi.toDisplayFeatures=function(B,G,ae){var Ve=G.properties.id===B.line.id;if(G.properties.active=Ve?kt:Ai,!Ve)return ae(G);G.geometry.coordinates.length<2||(G.properties.meta=Bi,ae(ut(B.line.id,G.geometry.coordinates[B.direction==="forward"?G.geometry.coordinates.length-2:1],""+(B.direction==="forward"?G.geometry.coordinates.length-2:1),!1)),ae(G))};var Zo={simple_select:nn,direct_select:qi,draw_point:ji,draw_polygon:sn,draw_line_string:Vi},pa={defaultMode:Xe.SIMPLE_SELECT,keybindings:!0,touchEnabled:!0,clickBuffer:2,touchBuffer:25,boxSelect:!0,displayControlsDefault:!0,styles:[{id:"gl-draw-polygon-fill-inactive",type:"fill",filter:["all",["==","active","false"],["==","$type","Polygon"],["!=","mode","static"]],paint:{"fill-color":"#3bb2d0","fill-outline-color":"#3bb2d0","fill-opacity":.1}},{id:"gl-draw-polygon-fill-active",type:"fill",filter:["all",["==","active","true"],["==","$type","Polygon"]],paint:{"fill-color":"#fbb03b","fill-outline-color":"#fbb03b","fill-opacity":.1}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","$type","Point"],["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#fbb03b"}},{id:"gl-draw-polygon-stroke-inactive",type:"line",filter:["all",["==","active","false"],["==","$type","Polygon"],["!=","mode","static"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3bb2d0","line-width":2}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","active","true"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fbb03b","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-line-inactive",type:"line",filter:["all",["==","active","false"],["==","$type","LineString"],["!=","mode","static"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3bb2d0","line-width":2}},{id:"gl-draw-line-active",type:"line",filter:["all",["==","$type","LineString"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fbb03b","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-and-line-vertex-stroke-inactive",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"],["!=","mode","static"]],paint:{"circle-radius":5,"circle-color":"#fff"}},{id:"gl-draw-polygon-and-line-vertex-inactive",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"],["!=","mode","static"]],paint:{"circle-radius":3,"circle-color":"#fbb03b"}},{id:"gl-draw-point-point-stroke-inactive",type:"circle",filter:["all",["==","active","false"],["==","$type","Point"],["==","meta","feature"],["!=","mode","static"]],paint:{"circle-radius":5,"circle-opacity":1,"circle-color":"#fff"}},{id:"gl-draw-point-inactive",type:"circle",filter:["all",["==","active","false"],["==","$type","Point"],["==","meta","feature"],["!=","mode","static"]],paint:{"circle-radius":3,"circle-color":"#3bb2d0"}},{id:"gl-draw-point-stroke-active",type:"circle",filter:["all",["==","$type","Point"],["==","active","true"],["!=","meta","midpoint"]],paint:{"circle-radius":7,"circle-color":"#fff"}},{id:"gl-draw-point-active",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["==","active","true"]],paint:{"circle-radius":5,"circle-color":"#fbb03b"}},{id:"gl-draw-polygon-fill-static",type:"fill",filter:["all",["==","mode","static"],["==","$type","Polygon"]],paint:{"fill-color":"#404040","fill-outline-color":"#404040","fill-opacity":.1}},{id:"gl-draw-polygon-stroke-static",type:"line",filter:["all",["==","mode","static"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#404040","line-width":2}},{id:"gl-draw-line-static",type:"line",filter:["all",["==","mode","static"],["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#404040","line-width":2}},{id:"gl-draw-point-static",type:"circle",filter:["all",["==","mode","static"],["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#404040"}}],modes:Zo,controls:{},userProperties:!1},ma={point:!0,line_string:!0,polygon:!0,trash:!0,combine_features:!0,uncombine_features:!0},Pn={point:!1,line_string:!1,polygon:!1,trash:!1,combine_features:!1,uncombine_features:!1};function kr(B,G){return B.map(function(ae){return ae.source?ae:Fr(ae,{id:ae.id+"."+G,source:G==="hot"?W:K})})}var Js=Ut(function(B,G){var ae="[object Arguments]",Ve="[object Map]",Je="[object Object]",Ze="[object Set]",Ke=/^\[object .+?Constructor\]$/,qt=/^(?:0|[1-9]\d*)$/,Lt={};Lt["[object Float32Array]"]=Lt["[object Float64Array]"]=Lt["[object Int8Array]"]=Lt["[object Int16Array]"]=Lt["[object Int32Array]"]=Lt["[object Uint8Array]"]=Lt["[object Uint8ClampedArray]"]=Lt["[object Uint16Array]"]=Lt["[object Uint32Array]"]=!0,Lt[ae]=Lt["[object Array]"]=Lt["[object ArrayBuffer]"]=Lt["[object Boolean]"]=Lt["[object DataView]"]=Lt["[object Date]"]=Lt["[object Error]"]=Lt["[object Function]"]=Lt[Ve]=Lt["[object Number]"]=Lt[Je]=Lt["[object RegExp]"]=Lt[Ze]=Lt["[object String]"]=Lt["[object WeakMap]"]=!1;var Xt=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,tt=typeof self=="object"&&self&&self.Object===Object&&self,ni=Xt||tt||Function("return this")(),_i=G&&!G.nodeType&&G,xi=_i&&B&&!B.nodeType&&B,Ui=xi&&xi.exports===_i,Vr=Ui&&Xt.process,vt=function(){try{return Vr&&Vr.binding&&Vr.binding("util")}catch{}}(),vi=vt&&vt.isTypedArray;function pr(We,ft){for(var oi=-1,Fi=We==null?0:We.length;++oiQr))return!1;var Jr=lr.get(We);if(Jr&&lr.get(ft))return Jr==ft;var Wr=-1,$n=!0,bn=2&oi?new xo:void 0;for(lr.set(We,ft),lr.set(ft,We);++Wr-1},Qi.prototype.set=function(We,ft){var oi=this.__data__,Fi=Wo(oi,We);return Fi<0?(++this.size,oi.push([We,ft])):oi[Fi][1]=ft,this},On.prototype.clear=function(){this.size=0,this.__data__={hash:new uo,map:new(Jn||Qi),string:new uo}},On.prototype.delete=function(We){var ft=Co(this,We).delete(We);return this.size-=ft?1:0,ft},On.prototype.get=function(We){return Co(this,We).get(We)},On.prototype.has=function(We){return Co(this,We).has(We)},On.prototype.set=function(We,ft){var oi=Co(this,We),Fi=oi.size;return oi.set(We,ft),this.size+=oi.size==Fi?0:1,this},xo.prototype.add=xo.prototype.push=function(We){return this.__data__.set(We,"__lodash_hash_undefined__"),this},xo.prototype.has=function(We){return this.__data__.has(We)},to.prototype.clear=function(){this.__data__=new Qi,this.size=0},to.prototype.delete=function(We){var ft=this.__data__,oi=ft.delete(We);return this.size=ft.size,oi},to.prototype.get=function(We){return this.__data__.get(We)},to.prototype.has=function(We){return this.__data__.has(We)},to.prototype.set=function(We,ft){var oi=this.__data__;if(oi instanceof Qi){var Fi=oi.__data__;if(!Jn||Fi.length<199)return Fi.push([We,ft]),this.size=++oi.size,this;oi=this.__data__=new On(Fi)}return oi.set(We,ft),this.size=oi.size,this};var Ts=$a?function(We){return We==null?[]:(We=Object(We),function(ft,oi){for(var Fi=-1,Er=ft==null?0:ft.length,lr=0,Br=[];++Fi-1&&We%1==0&&We-1&&We%1==0&&We<=9007199254740991}function Ya(We){var ft=typeof We;return We!=null&&(ft=="object"||ft=="function")}function Ko(We){return We!=null&&typeof We=="object"}var Ka=vi?function(We){return function(ft){return We(ft)}}(vi):function(We){return Ko(We)&&Ms(We.length)&&!!Lt[Nn(We)]};function nl(We){return(ft=We)!=null&&Ms(ft.length)&&!Wa(ft)?ws(We):Za(We);var ft}B.exports=function(We,ft){return rl(We,ft)}}),Xo={Polygon:Ii,LineString:fi,Point:Li,MultiPolygon:Gi,MultiLineString:Gi,MultiPoint:Gi};function Oa(B,G){return G.modes=Xe,G.getFeatureIdsAt=function(ae){return di.click({point:ae},null,B).map(function(Ve){return Ve.properties.id})},G.getSelectedIds=function(){return B.store.getSelectedIds()},G.getSelected=function(){return{type:at,features:B.store.getSelectedIds().map(function(ae){return B.store.get(ae)}).map(function(ae){return ae.toGeoJSON()})}},G.getSelectedPoints=function(){return{type:at,features:B.store.getSelectedCoordinates().map(function(ae){return{type:ue,properties:{},geometry:{type:Qe,coordinates:ae.coordinates}}})}},G.set=function(ae){if(ae.type===void 0||ae.type!==at||!Array.isArray(ae.features))throw new Error("Invalid FeatureCollection");var Ve=B.store.createRenderBatch(),Je=B.store.getAllIds().slice(),Ze=G.add(ae),Ke=new dt(Ze);return(Je=Je.filter(function(qt){return!Ke.has(qt)})).length&&G.delete(Je),Ve(),Ze},G.add=function(ae){var Ve=JSON.parse(JSON.stringify(Ci(ae))).features.map(function(Je){if(Je.id=Je.id||Pt(),Je.geometry===null)throw new Error("Invalid geometry: null");if(B.store.get(Je.id)===void 0||B.store.get(Je.id).type!==Je.geometry.type){var Ze=Xo[Je.geometry.type];if(Ze===void 0)throw new Error("Invalid geometry type: "+Je.geometry.type+".");var Ke=new Ze(B,Je);B.store.add(Ke)}else{var qt=B.store.get(Je.id);qt.properties=Je.properties,Js(qt.getCoordinates(),Je.geometry.coordinates)||qt.incomingCoords(Je.geometry.coordinates)}return Je.id});return B.store.render(),Ve},G.get=function(ae){var Ve=B.store.get(ae);if(Ve)return Ve.toGeoJSON()},G.getAll=function(){return{type:at,features:B.store.getAll().map(function(ae){return ae.toGeoJSON()})}},G.delete=function(ae){return B.store.delete(ae,{silent:!0}),G.getMode()!==Xe.DIRECT_SELECT||B.store.getSelectedIds().length?B.store.render():B.events.changeMode(Xe.SIMPLE_SELECT,void 0,{silent:!0}),G},G.deleteAll=function(){return B.store.delete(B.store.getAllIds(),{silent:!0}),G.getMode()===Xe.DIRECT_SELECT?B.events.changeMode(Xe.SIMPLE_SELECT,void 0,{silent:!0}):B.store.render(),G},G.changeMode=function(ae,Ve){return Ve===void 0&&(Ve={}),ae===Xe.SIMPLE_SELECT&&G.getMode()===Xe.SIMPLE_SELECT?(Je=Ve.featureIds||[],Ze=B.store.getSelectedIds(),Je.length===Ze.length&&JSON.stringify(Je.map(function(Ke){return Ke}).sort())===JSON.stringify(Ze.map(function(Ke){return Ke}).sort())||(B.store.setSelected(Ve.featureIds,{silent:!0}),B.store.render()),G):(ae===Xe.DIRECT_SELECT&&G.getMode()===Xe.DIRECT_SELECT&&Ve.featureId===B.store.getSelectedIds()[0]||B.events.changeMode(ae,Ve,{silent:!0}),G);var Je,Ze},G.getMode=function(){return B.events.getMode()},G.trash=function(){return B.events.trash({silent:!0}),G},G.combineFeatures=function(){return B.events.combineFeatures({silent:!0}),G},G.uncombineFeatures=function(){return B.events.uncombineFeatures({silent:!0}),G},G.setFeatureProperty=function(ae,Ve,Je){return B.store.setFeatureProperty(ae,Ve,Je),G},G}var yo=function(B,G){var ae={options:B=function(Je){Je===void 0&&(Je={});var Ze=Fr(Je);return Je.controls||(Ze.controls={}),Je.displayControlsDefault===!1?Ze.controls=Fr(Pn,Je.controls):Ze.controls=Fr(ma,Je.controls),(Ze=Fr(pa,Ze)).styles=kr(Ze.styles,"cold").concat(kr(Ze.styles,"hot")),Ze}(B)};G=Oa(ae,G),ae.api=G;var Ve=te(ae);return G.onAdd=Ve.onAdd,G.onRemove=Ve.onRemove,G.types=ee,G.options=B,G};function Na(B){yo(B,this)}return Na.modes=Zo,Na})})(mapboxGlDraw$1);var mapboxGlDraw="",mapboxMapViewer_vue_vue_type_style_index_0_lang="";let geocoder;const _sfc_main$3={name:"mapbox-map-viewer",setup(){return{tileInfoString:ref(""),dirHandle:ref(""),style_url:ref(""),access_token:ref(""),mapbox_raster_png_dem:ref(""),mapbox_api_url:ref(""),mapbox_rgb_image_url:ref(""),map:ref(""),threedview:ref(!1),layers:ref(["hillshading","bounding_box","undersea-features-lines","undersea-features-points","undersea-features-points-label","10m-bathymetry-81bsvj"]),layer_type:[{label:"Hillshade",value:"hillshading"},{label:"Bounding Box",value:"bounding_box"},{label:"Undersea Lines",value:"undersea-features-lines"},{label:"Undersea Points",value:"undersea-features-points"},{label:"Undersea Labels",value:"undersea-features-points-label"},{label:"Depth",value:"10m-bathymetry-81bsvj"},{label:"Satellite",value:"satellite"},{label:"3D",value:"3d"}]}},mounted(){},methods:{async changeLayers(e){for(const r of this.layer_type)e.includes(r.value)?r.value!=="3d"?this.map.setLayoutProperty(r.value,"visibility","visible"):this.map.setTerrain({source:"mapbox-3d",exaggeration:1.5}):r.value!=="3d"?this.map.setLayoutProperty(r.value,"visibility","none"):this.map.setTerrain(null)},loadMapSourcesLayers(e){e.addSource("mapbox_terrain_dem",{type:"raster-dem",url:"mapbox://mapbox.mapbox-terrain-dem-v1"}),e.addSource("satellite",{type:"raster",url:"mapbox://mapbox.satellite",tileSize:512}),e.addLayer({id:"satellite",source:"satellite",type:"raster",layout:{visibility:"none"}}),e.addLayer({id:"hillshading",source:"mapbox_terrain_dem",type:"hillshade"}),e.addSource("bounding_box_source",{type:"geojson",data:{type:"Feature",geometry:{type:"Polygon",coordinates:[[[0,0],[0,1],[1,1],[1,0],[0,0]]]}}}),e.addLayer({id:"bounding_box",type:"fill",source:"bounding_box_source",paint:{"fill-color":"#008888","fill-opacity":0}}),e.addSource("bathymetry",{type:"vector",url:"mapbox://mapbox-public.bathymetry"}),e.addLayer({id:"undersea-features-lines",type:"line",source:"bathymetry","source-layer":"undersea-features-lines",layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"#ff69b4","line-width":2}}),e.addLayer({id:"undersea-features-points",type:"circle",source:"bathymetry","source-layer":"undersea-features-points",paint:{"circle-radius":4,"circle-color":"#01fe01"}}),e.addLayer({id:"undersea-features-points-label",type:"symbol",source:"bathymetry","source-layer":"undersea-features-points",layout:{"text-field":"{name}","text-anchor":"top-left","text-size":12}}),e.addSource("10m-bathymetry-81bsvj",{type:"vector",url:"mapbox://mapbox.9tm8dx88"}),e.addSource("mapbox-3d",{type:"raster-dem",url:"mapbox://mapbox.mapbox-terrain-dem-v1",tileSize:512,maxzoom:15}),e.addLayer({id:"10m-bathymetry-81bsvj",type:"fill",source:"10m-bathymetry-81bsvj","source-layer":"10m-bathymetry-81bsvj",layout:{},paint:{"fill-outline-color":"hsla(337, 82%, 62%, 0)","fill-color":["interpolate",["cubic-bezier",0,.5,1,.5],["get","DEPTH"],200,"#78bced",9e3,"#15659f"]}},"land-structure-polygon")},async loadMapboxMap(){mapboxgl.accessToken=await idbKeyval.get("access_token"),this.access_token=mapboxgl.accessToken,this.mapbox_api_url=await idbKeyval.get("mapbox_api_url"),this.dirHandle=await idbKeyval.get("dirHandle"),this.style_url=await idbKeyval.get("style_url"),this.mapbox_raster_png_dem=await idbKeyval.get("mapbox_raster_png_dem");let e=this,r=new mapboxgl.Map({container:"map",trackResize:!0,style:e.style_url,center:[-121.7598,46.876],zoom:9,maxZoom:14,doubleClickZoom:!0,antialias:!0,boxZoom:!0,failIfMajorPerformanceCaveat:!0});this.map=r;const n=function(_){const a=_.match(/^[ ]*(?:Lat: )?(-?\d+\.?\d*)[, ]+(?:Lng: )?(-?\d+\.?\d*)[ ]*$/i);if(!a)return null;function w(L,D){return{center:[L,D],geometry:{type:"Point",coordinates:[L,D]},place_name:"Lat: "+D+" Lng: "+L,place_type:["coordinate"],properties:{},type:"Feature"}}const E=Number(a[1]),M=Number(a[2]),k=[];return(E<-90||E>90)&&k.push(w(E,M)),(M<-90||M>90)&&k.push(w(M,E)),k.length===0&&(k.push(w(E,M)),k.push(w(M,E))),k};geocoder=new lib({accessToken:this.access_token,mapboxgl,localGeocoder:n,zoom:10,placeholder:"Try: -40, 170 or Name",reverseGeocode:!0}),r.addControl(geocoder),r.addControl(new mapboxgl.FullscreenControl({})),r.addControl(new mapboxgl.NavigationControl);const o=100,u=25;function f(_){return _*(2-_)}r.on("style.load",()=>{const _=()=>{r.isStyleLoaded()?e.loadMapSourcesLayers(r):setTimeout(_,200)};_()}),r.on("load",function(){r.getCanvas().focus(),r.getCanvas().addEventListener("keydown",_=>{_.preventDefault(),_.which===87?r.panBy([0,-o],{easing:f}):_.which===83?r.panBy([0,o],{easing:f}):_.which===65?r.easeTo({bearing:r.getBearing()-u,easing:f}):_.which===68&&r.easeTo({bearing:r.getBearing()+u,easing:f})},!0)}),r.on("error",_=>{console.error(_)}),r.on("click",async function(_){let a=await idbKeyval.get("dirHandle");if(await fileUtils.verifyPermission(a,!0)===!1){console.error(`User did not grant permission to '${a.name}'`);return}let w=_.lngLat.lng,E=_.lngLat.lat,M=mapUtils.getTileInfo(w,E,r);idbKeyval.set("tile_info",M),e.tileInfoString="Slippy Tile Info String: "+M.x+","+M.y+","+M.z+" Area in KM: "+M.distance,await e.geoCodeReverse(M),r.getSource("bounding_box_source").setData(M.polygon_bb),r.setPaintProperty("bounding_box","fill-opacity",.45),e.mapbox_rgb_image_url=e.mapbox_api_url+e.mapbox_raster_png_dem+`/${M.z}/${M.x}/${M.y}@2x.pngraw?access_token=`+e.access_token;let k=await mapUtils.getMapboxTerrainRgb(a,M,e.mapbox_rgb_image_url),L=await k.toBuffer();await idbKeyval.set("rgb_image_buffer",L),await fileUtils.writeFileToDisk(a,M.rgbFileName,L);let D=mapUtils.createHeightMapImage(k,32,"GREY");if(await fileUtils.fileExists(a,M.thirtyTwoFileName)===!1){let q=await D.image.toBuffer();await fileUtils.writeFileToDisk(a,M.thirtyTwoFileName,q)}emitter.emit("updatePreviewImage",{dir_handle:a,tile_info:M,preview_image_info:D,map:r})}),r.on("mousemove",_=>{r.getCanvas().style.cursor="pointer";const a=r.queryRenderedFeatures(_.point);for(const w of a)if(Object.keys(w.type).length>0&&Object.keys(w.properties).length>0){let E=w.properties,M=w.layer;E.DEPTH&&E.DEPTH,w.type,M.id}})},resizeMap(){this.map.resize()},async geoCodeReverse(e){geocoding({accessToken:mapboxgl.accessToken}).reverseGeocode({query:[e.pointLng,e.pointLat]}).send().then(function(n){if(n&&n.body&&n.body.features){e.address=n.body.features[0].place_name;let o=n.body.features[0].context;for(let u of o){let f=u.id;switch(f.substring(0,f.indexOf("."))){case"neighborhood":e.neighborhood=u.text;break;case"postcode":e.postcode=u.text;break;case"locality":e.locality=u.text;break;case"place":e.place=u.text;break;case"district":e.district=u.text;break;case"region":e.region=u.text;break;case"country":e.country=u.text;break}}}})}}},_hoisted_1$3={id:"map"},_hoisted_2$3={class:"row no-wrap q-pa-md"},_hoisted_3$3={class:"column"},_hoisted_4$3=createBaseVNode("u",null,[createBaseVNode("b",null,"Enable Layers")],-1);function _sfc_render$3(e,r,n,o,u,f){return openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(QToolbar,{id:"mb-tbar",class:"bg-primary text-white q-pa-none q-ma-none"},{default:withCtx(()=>[createVNode(QBtn,{color:"info",label:"Map Settings"},{default:withCtx(()=>[createVNode(QMenu,null,{default:withCtx(()=>[createBaseVNode("div",_hoisted_2$3,[createBaseVNode("div",_hoisted_3$3,[_hoisted_4$3,createVNode(QOptionGroup,{dense:"",color:"green","checked-icon":"check","unchecked-icon":"clear",options:o.layer_type,type:"toggle",modelValue:o.layers,"onUpdate:modelValue":[r[0]||(r[0]=_=>o.layers=_),f.changeLayers]},null,8,["options","modelValue","onUpdate:modelValue"])])])]),_:1})]),_:1}),createTextVNode(" \xA0 \xA0 \xA0 "+toDisplayString(this.tileInfoString),1)]),_:1})])}var MapboxMapViewer=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]);const useRatioProps={ratio:[String,Number]};function useRatio(e,r){return computed(()=>{const n=Number(e.ratio||(r!==void 0?r.value:void 0));return isNaN(n)!==!0&&n>0?{paddingBottom:`${100/n}%`}:null})}const defaultRatio=16/9;var QImg=createComponent({name:"QImg",props:{...useRatioProps,src:String,srcset:String,sizes:String,alt:String,crossorigin:String,decoding:String,referrerpolicy:String,draggable:Boolean,loading:{type:String,default:"lazy"},fetchpriority:{type:String,default:"auto"},width:String,height:String,initialRatio:{type:[Number,String],default:defaultRatio},placeholderSrc:String,fit:{type:String,default:"cover"},position:{type:String,default:"50% 50%"},imgClass:String,imgStyle:Object,noSpinner:Boolean,noNativeMenu:Boolean,noTransition:Boolean,spinnerColor:String,spinnerSize:String},emits:["load","error"],setup(e,{slots:r,emit:n}){const o=ref(e.initialRatio),u=useRatio(e,o);let f;const _=[ref(null),ref(e.placeholderSrc!==void 0?{src:e.placeholderSrc}:null)],a=ref(0),w=ref(!1),E=ref(!1),M=computed(()=>`q-img q-img--${e.noNativeMenu===!0?"no-":""}menu`),k=computed(()=>({width:e.width,height:e.height})),L=computed(()=>`q-img__image ${e.imgClass!==void 0?e.imgClass+" ":""}q-img__image--with${e.noTransition===!0?"out":""}-transition`),D=computed(()=>({...e.imgStyle,objectFit:e.fit,objectPosition:e.position}));watch(()=>U(),q);function U(){return e.src||e.srcset||e.sizes?{src:e.src,srcset:e.srcset,sizes:e.sizes}:null}function q(ve){if(clearTimeout(f),E.value=!1,ve===null){w.value=!1,_[0].value=null,_[1].value=null;return}w.value=!0,_[a.value].value=ve}function Y({target:ve}){f!==null&&(clearTimeout(f),o.value=ve.naturalHeight===0?.5:ve.naturalWidth/ve.naturalHeight,X(ve,1))}function X(ve,se){f===null||se===1e3||(ve.complete===!0?oe(ve):f=setTimeout(()=>{X(ve,se+1)},50))}function oe(ve){f!==null&&(a.value=a.value===1?0:1,_[a.value].value=null,w.value=!1,E.value=!1,n("load",ve.currentSrc||ve.src))}function W(ve){clearTimeout(f),w.value=!1,E.value=!0,_[0].value=null,_[1].value=null,n("error",ve)}function K(ve,se){return h("div",{class:"q-img__container absolute-full",key:ve},se)}function ie(ve){const se=_[ve].value,_e={key:"img_"+ve,class:L.value,style:D.value,crossorigin:e.crossorigin,decoding:e.decoding,referrerpolicy:e.referrerpolicy,height:e.height,width:e.width,loading:e.loading,fetchpriority:e.fetchpriority,"aria-hidden":"true",draggable:e.draggable,...se};return a.value===ve?(_e.class+=" q-img__image--waiting",Object.assign(_e,{onLoad:Y,onError:W})):_e.class+=" q-img__image--loaded",K("img"+ve,h("img",_e))}function Te(){return w.value!==!0?h("div",{key:"content",class:"q-img__content absolute-full q-anchor--skip"},hSlot(r[E.value===!0?"error":"default"])):h("div",{key:"loading",class:"q-img__loading absolute-full flex flex-center"},r.loading!==void 0?r.loading():e.noSpinner===!0?void 0:[h(QSpinner,{color:e.spinnerColor,size:e.spinnerSize})])}return q(U()),onBeforeUnmount(()=>{clearTimeout(f),f=null}),()=>{const ve=[];return u.value!==null&&ve.push(h("div",{key:"filler",style:u.value})),E.value!==!0&&(_[0].value!==null&&ve.push(ie(0)),_[1].value!==null&&ve.push(ie(1))),ve.push(h(Transition,{name:"q-transition--fade"},Te)),h("div",{class:M.value,style:k.value,role:"img","aria-label":e.alt},ve)}}}),QField=createComponent({name:"QField",inheritAttrs:!1,props:useFieldProps,emits:useFieldEmits,setup(){return useField(useFieldState())}}),QItemLabel=createComponent({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:r}){const n=computed(()=>parseInt(e.lines,10)),o=computed(()=>"q-item__label"+(e.overline===!0?" q-item__label--overline text-overline":"")+(e.caption===!0?" q-item__label--caption text-caption":"")+(e.header===!0?" q-item__label--header":"")+(n.value===1?" ellipsis":"")),u=computed(()=>e.lines!==void 0&&n.value>1?{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":n.value}:null);return()=>h("div",{style:u.value,class:o.value},hSlot(r.default))}});const defaultSizes={xs:8,sm:10,md:14,lg:20,xl:24};var QChip=createComponent({name:"QChip",props:{...useDarkProps,...useSizeProps,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:["update:modelValue","update:selected","remove","click"],setup(e,{slots:r,emit:n}){const{proxy:{$q:o}}=getCurrentInstance(),u=useDark(e,o),f=useSize(e,defaultSizes),_=computed(()=>e.selected===!0||e.icon!==void 0),a=computed(()=>e.selected===!0?e.iconSelected||o.iconSet.chip.selected:e.icon),w=computed(()=>e.iconRemove||o.iconSet.chip.remove),E=computed(()=>e.disable===!1&&(e.clickable===!0||e.selected!==null)),M=computed(()=>{const Y=e.outline===!0&&e.color||e.textColor;return"q-chip row inline no-wrap items-center"+(e.outline===!1&&e.color!==void 0?` bg-${e.color}`:"")+(Y?` text-${Y} q-chip--colored`:"")+(e.disable===!0?" disabled":"")+(e.dense===!0?" q-chip--dense":"")+(e.outline===!0?" q-chip--outline":"")+(e.selected===!0?" q-chip--selected":"")+(E.value===!0?" q-chip--clickable cursor-pointer non-selectable q-hoverable":"")+(e.square===!0?" q-chip--square":"")+(u.value===!0?" q-chip--dark q-dark":"")}),k=computed(()=>{const Y=e.disable===!0?{tabindex:-1,"aria-disabled":"true"}:{tabindex:e.tabindex||0},X={...Y,role:"button","aria-hidden":"false","aria-label":e.removeAriaLabel||o.lang.label.remove};return{chip:Y,remove:X}});function L(Y){Y.keyCode===13&&D(Y)}function D(Y){e.disable||(n("update:selected",!e.selected),n("click",Y))}function U(Y){(Y.keyCode===void 0||Y.keyCode===13)&&(stopAndPrevent(Y),e.disable===!1&&(n("update:modelValue",!1),n("remove")))}function q(){const Y=[];E.value===!0&&Y.push(h("div",{class:"q-focus-helper"})),_.value===!0&&Y.push(h(QIcon,{class:"q-chip__icon q-chip__icon--left",name:a.value}));const X=e.label!==void 0?[h("div",{class:"ellipsis"},[e.label])]:void 0;return Y.push(h("div",{class:"q-chip__content col row no-wrap items-center q-anchor--skip"},hMergeSlotSafely(r.default,X))),e.iconRight&&Y.push(h(QIcon,{class:"q-chip__icon q-chip__icon--right",name:e.iconRight})),e.removable===!0&&Y.push(h(QIcon,{class:"q-chip__icon q-chip__icon--remove cursor-pointer",name:w.value,...k.value.remove,onClick:U,onKeyup:U})),Y}return()=>{if(e.modelValue===!1)return;const Y={class:M.value,style:f.value};return E.value===!0&&Object.assign(Y,k.value.chip,{onClick:D,onKeyup:L}),hDir("div",Y,q(),"ripple",e.ripple!==!1&&e.disable!==!0,()=>[[Ripple,e.ripple]])}}}),QItem=createComponent({name:"QItem",props:{...useDarkProps,...useRouterLinkProps,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:r,emit:n}){const{proxy:{$q:o}}=getCurrentInstance(),u=useDark(e,o),{hasLink:f,linkAttrs:_,linkClass:a,linkTag:w,navigateOnClick:E}=useRouterLink(),M=ref(null),k=ref(null),L=computed(()=>e.clickable===!0||f.value===!0||e.tag==="label"),D=computed(()=>e.disable!==!0&&L.value===!0),U=computed(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(u.value===!0?" q-item--dark":"")+(f.value===!0&&e.active===null?a.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(D.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),q=computed(()=>{if(e.insetLevel===void 0)return null;const W=o.lang.rtl===!0?"Right":"Left";return{["padding"+W]:16+e.insetLevel*56+"px"}});function Y(W){D.value===!0&&(k.value!==null&&(W.qKeyEvent!==!0&&document.activeElement===M.value?k.value.focus():document.activeElement===k.value&&M.value.focus()),E(W))}function X(W){if(D.value===!0&&isKeyCode(W,13)===!0){stopAndPrevent(W),W.qKeyEvent=!0;const K=new MouseEvent("click",W);K.qKeyEvent=!0,M.value.dispatchEvent(K)}n("keyup",W)}function oe(){const W=hUniqueSlot(r.default,[]);return D.value===!0&&W.unshift(h("div",{class:"q-focus-helper",tabindex:-1,ref:k})),W}return()=>{const W={ref:M,class:U.value,style:q.value,role:"listitem",onClick:Y,onKeyup:X};return D.value===!0?(W.tabindex=e.tabindex||"0",Object.assign(W,_.value)):L.value===!0&&(W["aria-disabled"]="true"),h(w.value,W,oe())}}}),QItemSection=createComponent({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:r}){const n=computed(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>h("div",{class:n.value},hSlot(r.default))}});const aggBucketSize=1e3,scrollToEdges=["start","center","end","start-force","center-force","end-force"],filterProto=Array.prototype.filter,setOverflowAnchor=window.getComputedStyle(document.body).overflowAnchor===void 0?noop:function(e,r){e!==null&&(cancelAnimationFrame(e._qOverflowAnimationFrame),e._qOverflowAnimationFrame=requestAnimationFrame(()=>{if(e===null)return;const n=e.children||[];filterProto.call(n,u=>u.dataset&&u.dataset.qVsAnchor!==void 0).forEach(u=>{delete u.dataset.qVsAnchor});const o=n[r];o&&o.dataset&&(o.dataset.qVsAnchor="")}))};function sumFn(e,r){return e+r}function getScrollDetails(e,r,n,o,u,f,_,a){const w=e===window?document.scrollingElement||document.documentElement:e,E=u===!0?"offsetWidth":"offsetHeight",M={scrollStart:0,scrollViewSize:-_-a,scrollMaxSize:0,offsetStart:-_,offsetEnd:-a};if(u===!0?(e===window?(M.scrollStart=window.pageXOffset||window.scrollX||document.body.scrollLeft||0,M.scrollViewSize+=document.documentElement.clientWidth):(M.scrollStart=w.scrollLeft,M.scrollViewSize+=w.clientWidth),M.scrollMaxSize=w.scrollWidth,f===!0&&(M.scrollStart=(rtlHasScrollBug===!0?M.scrollMaxSize-M.scrollViewSize:0)-M.scrollStart)):(e===window?(M.scrollStart=window.pageYOffset||window.scrollY||document.body.scrollTop||0,M.scrollViewSize+=document.documentElement.clientHeight):(M.scrollStart=w.scrollTop,M.scrollViewSize+=w.clientHeight),M.scrollMaxSize=w.scrollHeight),n!==null)for(let k=n.previousElementSibling;k!==null;k=k.previousElementSibling)k.classList.contains("q-virtual-scroll--skip")===!1&&(M.offsetStart+=k[E]);if(o!==null)for(let k=o.nextElementSibling;k!==null;k=k.nextElementSibling)k.classList.contains("q-virtual-scroll--skip")===!1&&(M.offsetEnd+=k[E]);if(r!==e){const k=w.getBoundingClientRect(),L=r.getBoundingClientRect();u===!0?(M.offsetStart+=L.left-k.left,M.offsetEnd-=L.width):(M.offsetStart+=L.top-k.top,M.offsetEnd-=L.height),e!==window&&(M.offsetStart+=M.scrollStart),M.offsetEnd+=M.scrollMaxSize-M.offsetStart}return M}function setScroll(e,r,n,o){r==="end"&&(r=(e===window?document.body:e)[n===!0?"scrollWidth":"scrollHeight"]),e===window?n===!0?(o===!0&&(r=(rtlHasScrollBug===!0?document.body.scrollWidth-document.documentElement.clientWidth:0)-r),window.scrollTo(r,window.pageYOffset||window.scrollY||document.body.scrollTop||0)):window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,r):n===!0?(o===!0&&(r=(rtlHasScrollBug===!0?e.scrollWidth-e.offsetWidth:0)-r),e.scrollLeft=r):e.scrollTop=r}function sumSize(e,r,n,o){if(n>=o)return 0;const u=r.length,f=Math.floor(n/aggBucketSize),_=Math.floor((o-1)/aggBucketSize)+1;let a=e.slice(f,_).reduce(sumFn,0);return n%aggBucketSize!==0&&(a-=r.slice(f*aggBucketSize,n).reduce(sumFn,0)),o%aggBucketSize!==0&&o!==u&&(a-=r.slice(o,_*aggBucketSize).reduce(sumFn,0)),a}const commonVirtScrollProps={virtualScrollSliceSize:{type:[Number,String],default:null},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]},useVirtualScrollProps={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...commonVirtScrollProps};function useVirtualScroll({virtualScrollLength:e,getVirtualScrollTarget:r,getVirtualScrollEl:n,virtualScrollItemSizeComputed:o}){const u=getCurrentInstance(),{props:f,emit:_,proxy:a}=u,{$q:w}=a;let E,M,k,L=[],D;const U=ref(0),q=ref(0),Y=ref({}),X=ref(null),oe=ref(null),W=ref(null),K=ref({from:0,to:0}),ie=computed(()=>f.tableColspan!==void 0?f.tableColspan:100);o===void 0&&(o=computed(()=>f.virtualScrollItemSize));const Te=computed(()=>o.value+";"+f.virtualScrollHorizontal),ve=computed(()=>Te.value+";"+f.virtualScrollSliceRatioBefore+";"+f.virtualScrollSliceRatioAfter);watch(ve,()=>{Ft()}),watch(Te,se);function se(){at(M,!0)}function _e(mt){at(mt===void 0?M:mt)}function ee(mt,gt){const ot=r();if(ot==null||ot.nodeType===8)return;const At=getScrollDetails(ot,n(),X.value,oe.value,f.virtualScrollHorizontal,w.lang.rtl,f.virtualScrollStickySizeStart,f.virtualScrollStickySizeEnd);k!==At.scrollViewSize&&Ft(At.scrollViewSize),Me(ot,At,Math.min(e.value-1,Math.max(0,parseInt(mt,10)||0)),0,scrollToEdges.indexOf(gt)>-1?gt:M>-1&&mt>M?"end":"start")}function ue(){const mt=r();if(mt==null||mt.nodeType===8)return;const gt=getScrollDetails(mt,n(),X.value,oe.value,f.virtualScrollHorizontal,w.lang.rtl,f.virtualScrollStickySizeStart,f.virtualScrollStickySizeEnd),ot=e.value-1,At=gt.scrollMaxSize-gt.offsetStart-gt.offsetEnd-q.value;if(E===gt.scrollStart)return;if(gt.scrollMaxSize<=0){Me(mt,gt,0,0);return}k!==gt.scrollViewSize&&Ft(gt.scrollViewSize),ke(K.value.from);const xt=Math.floor(gt.scrollMaxSize-Math.max(gt.scrollViewSize,gt.offsetEnd)-Math.min(D[ot],gt.scrollViewSize/2));if(xt>0&&Math.ceil(gt.scrollStart)>=xt){Me(mt,gt,ot,gt.scrollMaxSize-gt.offsetEnd-L.reduce(sumFn,0));return}let Ct=0,It=gt.scrollStart-gt.offsetStart,mi=It;if(It<=At&&It+gt.scrollViewSize>=U.value)It-=U.value,Ct=K.value.from,mi=It;else for(let _t=0;It>=L[_t]&&Ct0&&Ct-gt.scrollViewSize?(Ct++,mi=It):mi=D[Ct]+It;Me(mt,gt,Ct,mi)}function Me(mt,gt,ot,At,xt){const Ct=typeof xt=="string"&&xt.indexOf("-force")>-1,It=Ct===!0?xt.replace("-force",""):xt,mi=It!==void 0?It:"start";let _t=Math.max(0,ot-Y.value[mi]),Ei=_t+Y.value.total;Ei>e.value&&(Ei=e.value,_t=Math.max(0,Ei-Y.value.total)),E=gt.scrollStart;const zi=_t!==K.value.from||Ei!==K.value.to;if(zi===!1&&It===void 0){Rt(ot);return}const{activeElement:Bi}=document,yi=W.value;zi===!0&&yi!==null&&yi!==Bi&&yi.contains(Bi)===!0&&(yi.addEventListener("focusout",Qe),setTimeout(()=>{yi!==null&&yi.removeEventListener("focusout",Qe)})),setOverflowAnchor(yi,ot-_t);const St=It!==void 0?D.slice(_t,ot).reduce(sumFn,0):0;if(zi===!0){const kt=Ei>=K.value.from&&_t<=K.value.to?K.value.to:Ei;K.value={from:_t,to:kt},U.value=sumSize(L,D,0,_t),q.value=sumSize(L,D,Ei,e.value),requestAnimationFrame(()=>{K.value.to!==Ei&&E===gt.scrollStart&&(K.value={from:K.value.from,to:Ei},q.value=sumSize(L,D,Ei,e.value))})}requestAnimationFrame(()=>{if(E!==gt.scrollStart)return;zi===!0&&ke(_t);const kt=D.slice(_t,ot).reduce(sumFn,0),Ai=kt+gt.offsetStart+U.value,Ti=Ai+D[ot];let Si=Ai+At;if(It!==void 0){const rt=kt-St,dt=gt.scrollStart+rt;Si=Ct!==!0&&dt_t.classList&&_t.classList.contains("q-virtual-scroll--skip")===!1),At=ot.length,xt=f.virtualScrollHorizontal===!0?_t=>_t.getBoundingClientRect().width:_t=>_t.offsetHeight;let Ct=mt,It,mi;for(let _t=0;_t=At;Ct--)D[Ct]=ot;const xt=Math.floor((e.value-1)/aggBucketSize);L=[];for(let Ct=0;Ct<=xt;Ct++){let It=0;const mi=Math.min((Ct+1)*aggBucketSize,e.value);for(let _t=Ct*aggBucketSize;_t=0?(ke(K.value.from),nextTick(()=>{ee(mt)})):Jt()}function Ft(mt){if(mt===void 0&&typeof window<"u"){const It=r();It!=null&&It.nodeType!==8&&(mt=getScrollDetails(It,n(),X.value,oe.value,f.virtualScrollHorizontal,w.lang.rtl,f.virtualScrollStickySizeStart,f.virtualScrollStickySizeEnd).scrollViewSize)}k=mt;const gt=parseFloat(f.virtualScrollSliceRatioBefore)||0,ot=parseFloat(f.virtualScrollSliceRatioAfter)||0,At=1+gt+ot,xt=mt===void 0||mt<=0?1:Math.ceil(mt/o.value),Ct=Math.max(1,xt,Math.ceil((f.virtualScrollSliceSize>0?f.virtualScrollSliceSize:10)/At));Y.value={total:Math.ceil(Ct*At),start:Math.ceil(Ct*gt),center:Math.ceil(Ct*(.5+gt)),end:Math.ceil(Ct*(1+gt)),view:xt}}function Qt(mt,gt){const ot=f.virtualScrollHorizontal===!0?"width":"height",At={["--q-virtual-scroll-item-"+ot]:o.value+"px"};return[mt==="tbody"?h(mt,{class:"q-virtual-scroll__padding",key:"before",ref:X},[h("tr",[h("td",{style:{[ot]:`${U.value}px`,...At},colspan:ie.value})])]):h(mt,{class:"q-virtual-scroll__padding",key:"before",ref:X,style:{[ot]:`${U.value}px`,...At}}),h(mt,{class:"q-virtual-scroll__content",key:"content",ref:W,tabindex:-1},gt.flat()),mt==="tbody"?h(mt,{class:"q-virtual-scroll__padding",key:"after",ref:oe},[h("tr",[h("td",{style:{[ot]:`${q.value}px`,...At},colspan:ie.value})])]):h(mt,{class:"q-virtual-scroll__padding",key:"after",ref:oe,style:{[ot]:`${q.value}px`,...At}})]}function Rt(mt){M!==mt&&(f.onVirtualScroll!==void 0&&_("virtualScroll",{index:mt,from:K.value.from,to:K.value.to-1,direction:mt{Ft()});let Xe=!1;return onDeactivated(()=>{Xe=!0}),onActivated(()=>{if(Xe!==!0)return;const mt=r();E!==void 0&&mt!==void 0&&mt!==null&&mt.nodeType!==8?setScroll(mt,E,f.virtualScrollHorizontal,w.lang.rtl):ee(M)}),onBeforeUnmount(()=>{Jt.cancel()}),Object.assign(a,{scrollTo:ee,reset:se,refresh:_e}),{virtualScrollSliceRange:K,virtualScrollSliceSizeComputed:Y,setVirtualScrollSize:Ft,onVirtualScrollEvt:Jt,localResetVirtualScroll:at,padVirtualScroll:Qt,scrollTo:ee,reset:se,refresh:_e}}const validateNewValueMode=e=>["add","add-unique","toggle"].includes(e),reEscapeList=".*+?^${}()|[]\\",fieldPropsList=Object.keys(useFieldProps);var QSelect=createComponent({name:"QSelect",inheritAttrs:!1,props:{...useVirtualScrollProps,...useFormProps,...useFieldProps,modelValue:{required:!0},multiple:Boolean,displayValue:[String,Number],displayValueHtml:Boolean,dropdownIcon:String,options:{type:Array,default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],hideSelected:Boolean,hideDropdownIcon:Boolean,fillInput:Boolean,maxValues:[Number,String],optionsDense:Boolean,optionsDark:{type:Boolean,default:null},optionsSelectedClass:String,optionsHtml:Boolean,optionsCover:Boolean,menuShrink:Boolean,menuAnchor:String,menuSelf:String,menuOffset:Array,popupContentClass:String,popupContentStyle:[String,Array,Object],useInput:Boolean,useChips:Boolean,newValueMode:{type:String,validator:validateNewValueMode},mapOptions:Boolean,emitValue:Boolean,inputDebounce:{type:[Number,String],default:500},inputClass:[Array,String,Object],inputStyle:[Array,String,Object],tabindex:{type:[String,Number],default:0},autocomplete:String,transitionShow:String,transitionHide:String,transitionDuration:[String,Number],behavior:{type:String,validator:e=>["default","menu","dialog"].includes(e),default:"default"},virtualScrollItemSize:{type:[Number,String],default:void 0},onNewValue:Function,onFilter:Function},emits:[...useFieldEmits,"add","remove","inputValue","newValue","keyup","keypress","keydown","filterAbort"],setup(e,{slots:r,emit:n}){const{proxy:o}=getCurrentInstance(),{$q:u}=o,f=ref(!1),_=ref(!1),a=ref(-1),w=ref(""),E=ref(!1),M=ref(!1);let k,L,D,U,q,Y,X,oe,W;const K=ref(null),ie=ref(null),Te=ref(null),ve=ref(null),se=ref(null),_e=useFormInputNameAttr(e),ee=useKeyComposition(Xr),ue=computed(()=>Array.isArray(e.options)?e.options.length:0),Me=computed(()=>e.virtualScrollItemSize===void 0?e.optionsDense===!0?24:48:e.virtualScrollItemSize),{virtualScrollSliceRange:ke,virtualScrollSliceSizeComputed:Qe,localResetVirtualScroll:at,padVirtualScroll:Ft,onVirtualScrollEvt:Qt,scrollTo:Rt,setVirtualScrollSize:Jt}=useVirtualScroll({virtualScrollLength:ue,getVirtualScrollTarget:In,getVirtualScrollEl:xn,virtualScrollItemSizeComputed:Me}),Xe=useFieldState(),mt=computed(()=>{const Le=e.mapOptions===!0&&e.multiple!==!0,Gt=e.modelValue!==void 0&&(e.modelValue!==null||Le===!0)?e.multiple===!0&&Array.isArray(e.modelValue)?e.modelValue:[e.modelValue]:[];if(e.mapOptions===!0&&Array.isArray(e.options)===!0){const ht=e.mapOptions===!0&&L!==void 0?L:[],qe=Gt.map(Wi=>Li(Wi,ht));return e.modelValue===null&&Le===!0?qe.filter(Wi=>Wi!==null):qe}return Gt}),gt=computed(()=>{const Le={};return fieldPropsList.forEach(Gt=>{const ht=e[Gt];ht!==void 0&&(Le[Gt]=ht)}),Le}),ot=computed(()=>e.optionsDark===null?Xe.isDark.value:e.optionsDark),At=computed(()=>fieldValueIsFilled(mt.value)),xt=computed(()=>{let Le="q-field__input q-placeholder col";return e.hideSelected===!0||mt.value.length===0?[Le,e.inputClass]:(Le+=" q-field__input--padding",e.inputClass===void 0?Le:[Le,e.inputClass])}),Ct=computed(()=>(e.virtualScrollHorizontal===!0?"q-virtual-scroll--horizontal":"")+(e.popupContentClass?" "+e.popupContentClass:"")),It=computed(()=>ue.value===0),mi=computed(()=>mt.value.map(Le=>dt.value(Le)).join(", ")),_t=computed(()=>e.optionsHtml===!0?()=>!0:Le=>Le!=null&&Le.html===!0),Ei=computed(()=>e.displayValueHtml===!0||e.displayValue===void 0&&(e.optionsHtml===!0||mt.value.some(_t.value))),zi=computed(()=>Xe.focused.value===!0?e.tabindex:-1),Bi=computed(()=>({tabindex:e.tabindex,role:"combobox","aria-label":e.label,"aria-readonly":e.readonly===!0?"true":"false","aria-autocomplete":e.useInput===!0?"list":"none","aria-expanded":f.value===!0?"true":"false","aria-owns":`${Xe.targetUid.value}_lb`,"aria-controls":`${Xe.targetUid.value}_lb`})),yi=computed(()=>{const Le={id:`${Xe.targetUid.value}_lb`,role:"listbox","aria-multiselectable":e.multiple===!0?"true":"false"};return a.value>=0&&(Le["aria-activedescendant"]=`${Xe.targetUid.value}_${a.value}`),Le}),St=computed(()=>mt.value.map((Le,Gt)=>({index:Gt,opt:Le,html:_t.value(Le),selected:!0,removeAtIndex:Nt,toggleOption:Ut,tabindex:zi.value}))),kt=computed(()=>{if(ue.value===0)return[];const{from:Le,to:Gt}=ke.value;return e.options.slice(Le,Gt).map((ht,qe)=>{const Wi=gi.value(ht)===!0,Ni=Le+qe,fr={clickable:!0,active:!1,activeClass:Si.value,manualFocus:!0,focused:!1,disable:Wi,tabindex:-1,dense:e.optionsDense,dark:ot.value,role:"option",id:`${Xe.targetUid.value}_${Ni}`,onClick:()=>{Ut(ht)}};return Wi!==!0&&(Ii(ht)===!0&&(fr.active=!0),a.value===Ni&&(fr.focused=!0),fr["aria-selected"]=fr.active===!0?"true":"false",u.platform.is.desktop===!0&&(fr.onMousemove=()=>{f.value===!0&&Pt(Ni)})),{index:Ni,opt:ht,html:_t.value(ht),label:dt.value(ht),selected:fr.active,focused:fr.focused,toggleOption:Ut,setOptionIndex:Pt,itemProps:fr}})}),Ai=computed(()=>e.dropdownIcon!==void 0?e.dropdownIcon:u.iconSet.arrow.dropdown),Ti=computed(()=>e.optionsCover===!1&&e.outlined!==!0&&e.standout!==!0&&e.borderless!==!0&&e.rounded!==!0),Si=computed(()=>e.optionsSelectedClass!==void 0?e.optionsSelectedClass:e.color!==void 0?`text-${e.color}`:""),rt=computed(()=>fi(e.optionValue,"value")),dt=computed(()=>fi(e.optionLabel,"label")),gi=computed(()=>fi(e.optionDisable,"disable")),di=computed(()=>mt.value.map(Le=>rt.value(Le))),Ae=computed(()=>{const Le={onInput:Xr,onChange:ee,onKeydown:Pr,onKeyup:Gi,onKeypress:Mi,onFocus:Hi,onClick(Gt){D===!0&&stop(Gt)}};return Le.onCompositionstart=Le.onCompositionupdate=Le.onCompositionend=ee,Le});watch(mt,Le=>{L=Le,e.useInput===!0&&e.fillInput===!0&&e.multiple!==!0&&Xe.innerLoading.value!==!0&&(_.value!==!0&&f.value!==!0||At.value!==!0)&&(U!==!0&&ut(),(_.value===!0||f.value===!0)&&xe(""))},{immediate:!0}),watch(()=>e.fillInput,ut),watch(f,pi),watch(ue,ai);function pt(Le){return e.emitValue===!0?rt.value(Le):Le}function jt(Le){if(Le>-1&&Le=e.maxValues)return;const qe=e.modelValue.slice();n("add",{index:qe.length,value:ht}),qe.push(ht),n("update:modelValue",qe)}function Ut(Le,Gt){if(Xe.editable.value!==!0||Le===void 0||gi.value(Le)===!0)return;const ht=rt.value(Le);if(e.multiple!==!0){Gt!==!0&&(wr(e.fillInput===!0?dt.value(Le):"",!0,!0),Vt()),ie.value!==null&&ie.value.focus(),(mt.value.length===0||isDeepEqual(rt.value(mt.value[0]),ht)!==!0)&&n("update:modelValue",e.emitValue===!0?ht:Le);return}if((D!==!0||E.value===!0)&&Xe.focus(),Hi(),mt.value.length===0){const Ni=e.emitValue===!0?ht:Le;n("add",{index:0,value:Ni}),n("update:modelValue",e.multiple===!0?[Ni]:Ni);return}const qe=e.modelValue.slice(),Wi=di.value.findIndex(Ni=>isDeepEqual(Ni,ht));if(Wi>-1)n("remove",{index:Wi,value:qe.splice(Wi,1)[0]});else{if(e.maxValues!==void 0&&qe.length>=e.maxValues)return;const Ni=e.emitValue===!0?ht:Le;n("add",{index:qe.length,value:Ni}),qe.push(Ni)}n("update:modelValue",qe)}function Pt(Le){if(u.platform.is.desktop!==!0)return;const Gt=Le>-1&&Le=0?dt.value(e.options[ht]):Y))}}function Li(Le,Gt){const ht=qe=>isDeepEqual(rt.value(qe),Le);return e.options.find(ht)||Gt.find(ht)||Le}function fi(Le,Gt){const ht=Le!==void 0?Le:Gt;return typeof ht=="function"?ht:qe=>qe!==null&&typeof qe=="object"&&ht in qe?qe[ht]:qe}function Ii(Le){const Gt=rt.value(Le);return di.value.find(ht=>isDeepEqual(ht,Gt))!==void 0}function Hi(Le){e.useInput===!0&&ie.value!==null&&(Le===void 0||ie.value===Le.target&&Le.target.value===mi.value)&&ie.value.select()}function er(Le){isKeyCode(Le,27)===!0&&f.value===!0&&(stop(Le),Vt(),ut()),n("keyup",Le)}function Gi(Le){const{value:Gt}=Le.target;if(Le.keyCode!==void 0){er(Le);return}if(Le.target.value="",clearTimeout(k),ut(),typeof Gt=="string"&&Gt.length>0){const ht=Gt.toLocaleLowerCase(),qe=Ni=>{const fr=e.options.find(Gr=>Ni.value(Gr).toLocaleLowerCase()===ht);return fr===void 0?!1:(mt.value.indexOf(fr)===-1?Ut(fr):Vt(),!0)},Wi=Ni=>{qe(rt)!==!0&&(qe(dt)===!0||Ni===!0||xe(Gt,!0,()=>Wi(!0)))};Wi()}else Xe.clearValue(Le)}function Mi(Le){n("keypress",Le)}function Pr(Le){if(n("keydown",Le),shouldIgnoreKey(Le)===!0)return;const Gt=w.value.length>0&&(e.newValueMode!==void 0||e.onNewValue!==void 0),ht=Le.shiftKey!==!0&&e.multiple!==!0&&(a.value>-1||Gt===!0);if(Le.keyCode===27){prevent(Le);return}if(Le.keyCode===9&&ht===!1){He();return}if(Le.target===void 0||Le.target.id!==Xe.targetUid.value)return;if(Le.keyCode===40&&Xe.innerLoading.value!==!0&&f.value===!1){stopAndPrevent(Le),st();return}if(Le.keyCode===8&&e.hideSelected!==!0&&w.value.length===0){e.multiple===!0&&Array.isArray(e.modelValue)===!0?jt(e.modelValue.length-1):e.multiple!==!0&&e.modelValue!==null&&n("update:modelValue",null);return}(Le.keyCode===35||Le.keyCode===36)&&(typeof w.value!="string"||w.value.length===0)&&(stopAndPrevent(Le),a.value=-1,ei(Le.keyCode===36?1:-1,e.multiple)),(Le.keyCode===33||Le.keyCode===34)&&Qe.value!==void 0&&(stopAndPrevent(Le),a.value=Math.max(-1,Math.min(ue.value,a.value+(Le.keyCode===33?-1:1)*Qe.value.view)),ei(Le.keyCode===33?1:-1,e.multiple)),(Le.keyCode===38||Le.keyCode===40)&&(stopAndPrevent(Le),ei(Le.keyCode===38?-1:1,e.multiple));const qe=ue.value;if((oe===void 0||W0&&e.useInput!==!0&&Le.key!==void 0&&Le.key.length===1&&Le.altKey===Le.ctrlKey&&(Le.keyCode!==32||oe.length>0)){f.value!==!0&&st(Le);const Wi=Le.key.toLocaleLowerCase(),Ni=oe.length===1&&oe[0]===Wi;W=Date.now()+1500,Ni===!1&&(stopAndPrevent(Le),oe+=Wi);const fr=new RegExp("^"+oe.split("").map(un=>reEscapeList.indexOf(un)>-1?"\\"+un:un).join(".*"),"i");let Gr=a.value;if(Ni===!0||Gr<0||fr.test(dt.value(e.options[Gr]))!==!0)do Gr=normalizeToInterval(Gr+1,-1,qe-1);while(Gr!==a.value&&(gi.value(e.options[Gr])===!0||fr.test(dt.value(e.options[Gr]))!==!0));a.value!==Gr&&nextTick(()=>{Pt(Gr),Rt(Gr),Gr>=0&&e.useInput===!0&&e.fillInput===!0&&Fr(dt.value(e.options[Gr]))});return}if(!(Le.keyCode!==13&&(Le.keyCode!==32||e.useInput===!0||oe!=="")&&(Le.keyCode!==9||ht===!1))){if(Le.keyCode!==9&&stopAndPrevent(Le),a.value>-1&&a.value{if(fr){if(validateNewValueMode(fr)!==!0)return}else fr=e.newValueMode;if(Ni==null)return;wr("",e.multiple!==!0,!0),(fr==="toggle"?Ut:Ht)(Ni,fr==="add-unique"),e.multiple!==!0&&(ie.value!==null&&ie.value.focus(),Vt())};if(e.onNewValue!==void 0?n("newValue",w.value,Wi):Wi(w.value),e.multiple!==!0)return}f.value===!0?He():Xe.innerLoading.value!==!0&&st()}}function xn(){return D===!0?se.value:Te.value!==null&&Te.value.contentEl!==null?Te.value.contentEl:void 0}function In(){return xn()}function Zr(){return e.hideSelected===!0?[]:r["selected-item"]!==void 0?St.value.map(Le=>r["selected-item"](Le)).slice():r.selected!==void 0?[].concat(r.selected()):e.useChips===!0?St.value.map((Le,Gt)=>h(QChip,{key:"option-"+Gt,removable:Xe.editable.value===!0&&gi.value(Le.opt)!==!0,dense:!0,textColor:e.color,tabindex:zi.value,onRemove(){Le.removeAtIndex(Gt)}},()=>h("span",{class:"ellipsis",[Le.html===!0?"innerHTML":"textContent"]:dt.value(Le.opt)}))):[h("span",{[Ei.value===!0?"innerHTML":"textContent"]:e.displayValue!==void 0?e.displayValue:mi.value})]}function Kr(){if(It.value===!0)return r["no-option"]!==void 0?r["no-option"]({inputValue:w.value}):void 0;const Le=r.option!==void 0?r.option:ht=>h(QItem,{key:ht.index,...ht.itemProps},()=>h(QItemSection,()=>h(QItemLabel,()=>h("span",{[ht.html===!0?"innerHTML":"textContent"]:ht.label}))));let Gt=Ft("div",kt.value.map(Le));return r["before-options"]!==void 0&&(Gt=r["before-options"]().concat(Gt)),hMergeSlot(r["after-options"],Gt)}function Ki(Le,Gt){const ht=Gt===!0?{...Bi.value,...Xe.splitAttrs.attributes.value}:void 0,qe={ref:Gt===!0?ie:void 0,key:"i_t",class:xt.value,style:e.inputStyle,value:w.value!==void 0?w.value:"",type:"search",...ht,id:Gt===!0?Xe.targetUid.value:void 0,maxlength:e.maxlength,autocomplete:e.autocomplete,"data-autofocus":Le!==!0&&e.autofocus===!0||void 0,disabled:e.disable===!0,readonly:e.readonly===!0,...Ae.value};return Le!==!0&&D===!0&&(Array.isArray(qe.class)===!0?qe.class=[...qe.class,"no-pointer-events"]:qe.class+=" no-pointer-events"),h("input",qe)}function Xr(Le){clearTimeout(k),!(Le&&Le.target&&Le.target.qComposing===!0)&&(Fr(Le.target.value||""),U=!0,Y=w.value,Xe.focused.value!==!0&&(D!==!0||E.value===!0)&&Xe.focus(),e.onFilter!==void 0&&(k=setTimeout(()=>{xe(w.value)},e.inputDebounce)))}function Fr(Le){w.value!==Le&&(w.value=Le,n("inputValue",Le))}function wr(Le,Gt,ht){U=ht!==!0,e.useInput===!0&&(Fr(Le),(Gt===!0||ht!==!0)&&(Y=Le),Gt!==!0&&xe(Le))}function xe(Le,Gt,ht){if(e.onFilter===void 0||Gt!==!0&&Xe.focused.value!==!0)return;Xe.innerLoading.value===!0?n("filterAbort"):(Xe.innerLoading.value=!0,M.value=!0),Le!==""&&e.multiple!==!0&&mt.value.length>0&&U!==!0&&Le===dt.value(mt.value[0])&&(Le="");const qe=setTimeout(()=>{f.value===!0&&(f.value=!1)},10);clearTimeout(q),q=qe,n("filter",Le,(Wi,Ni)=>{(Gt===!0||Xe.focused.value===!0)&&q===qe&&(clearTimeout(q),typeof Wi=="function"&&Wi(),M.value=!1,nextTick(()=>{Xe.innerLoading.value=!1,Xe.editable.value===!0&&(Gt===!0?f.value===!0&&Vt():f.value===!0?pi(!0):f.value=!0),typeof Ni=="function"&&nextTick(()=>{Ni(o)}),typeof ht=="function"&&nextTick(()=>{ht(o)})}))},()=>{Xe.focused.value===!0&&q===qe&&(clearTimeout(q),Xe.innerLoading.value=!1,M.value=!1),f.value===!0&&(f.value=!1)})}function te(){return h(QMenu,{ref:Te,class:Ct.value,style:e.popupContentStyle,modelValue:f.value,fit:e.menuShrink!==!0,cover:e.optionsCover===!0&&It.value!==!0&&e.useInput!==!0,anchor:e.menuAnchor,self:e.menuSelf,offset:e.menuOffset,dark:ot.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,square:Ti.value,transitionShow:e.transitionShow,transitionHide:e.transitionHide,transitionDuration:e.transitionDuration,separateClosePopup:!0,...yi.value,onScrollPassive:Qt,onBeforeShow:Ci,onBeforeHide:$,onShow:Q},Kr)}function $(Le){Ri(Le),He()}function Q(){Jt()}function ce(Le){stop(Le),ie.value!==null&&ie.value.focus(),E.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function fe(Le){stop(Le),nextTick(()=>{E.value=!1})}function Ie(){const Le=[h(QField,{class:`col-auto ${Xe.fieldClass.value}`,...gt.value,for:Xe.targetUid.value,dark:ot.value,square:!0,loading:M.value,itemAligned:!1,filled:!0,stackLabel:w.value.length>0,...Xe.splitAttrs.listeners.value,onFocus:ce,onBlur:fe},{...r,rawControl:()=>Xe.getControl(!0),before:void 0,after:void 0})];return f.value===!0&&Le.push(h("div",{ref:se,class:Ct.value+" scroll",style:e.popupContentStyle,...yi.value,onClick:prevent,onScrollPassive:Qt},Kr())),h(QDialog,{ref:ve,modelValue:_.value,position:e.useInput===!0?"top":void 0,transitionShow:X,transitionHide:e.transitionHide,transitionDuration:e.transitionDuration,onBeforeShow:Ci,onBeforeHide:$e,onHide:je,onShow:Be},()=>h("div",{class:"q-select__dialog"+(ot.value===!0?" q-select__dialog--dark q-dark":"")+(E.value===!0?" q-select__dialog--focused":"")},Le))}function $e(Le){Ri(Le),ve.value!==null&&ve.value.__updateRefocusTarget(Xe.rootRef.value.querySelector(".q-field__native > [tabindex]:last-child")),Xe.focused.value=!1}function je(Le){Vt(),Xe.focused.value===!1&&n("blur",Le),ut()}function Be(){const Le=document.activeElement;(Le===null||Le.id!==Xe.targetUid.value)&&ie.value!==null&&ie.value!==Le&&ie.value.focus(),Jt()}function He(){_.value!==!0&&(a.value=-1,f.value===!0&&(f.value=!1),Xe.focused.value===!1&&(clearTimeout(q),q=void 0,Xe.innerLoading.value===!0&&(n("filterAbort"),Xe.innerLoading.value=!1,M.value=!1)))}function st(Le){Xe.editable.value===!0&&(D===!0?(Xe.onControlFocusin(Le),_.value=!0,nextTick(()=>{Xe.focus()})):Xe.focus(),e.onFilter!==void 0?xe(w.value):(It.value!==!0||r["no-option"]!==void 0)&&(f.value=!0))}function Vt(){_.value=!1,He()}function ut(){e.useInput===!0&&wr(e.multiple!==!0&&e.fillInput===!0&&mt.value.length>0&&dt.value(mt.value[0])||"",!0,!0)}function pi(Le){let Gt=-1;if(Le===!0){if(mt.value.length>0){const ht=rt.value(mt.value[0]);Gt=e.options.findIndex(qe=>isDeepEqual(rt.value(qe),ht))}at(Gt)}Pt(Gt)}function ai(Le,Gt){f.value===!0&&Xe.innerLoading.value===!1&&(at(-1,!0),nextTick(()=>{f.value===!0&&Xe.innerLoading.value===!1&&(Le>Gt?at():pi(!0))}))}function ci(){_.value===!1&&Te.value!==null&&Te.value.updatePosition()}function Ci(Le){Le!==void 0&&stop(Le),n("popupShow",Le),Xe.hasPopupOpen=!0,Xe.onControlFocusin(Le)}function Ri(Le){Le!==void 0&&stop(Le),n("popupHide",Le),Xe.hasPopupOpen=!1,Xe.onControlFocusout(Le)}function tr(){D=u.platform.is.mobile!==!0&&e.behavior!=="dialog"?!1:e.behavior!=="menu"&&(e.useInput===!0?r["no-option"]!==void 0||e.onFilter!==void 0||It.value===!1:!0),X=u.platform.is.ios===!0&&D===!0&&e.useInput===!0?"fade":e.transitionShow}return onBeforeUpdate(tr),onUpdated(ci),tr(),onBeforeUnmount(()=>{clearTimeout(k)}),Object.assign(o,{showPopup:st,hidePopup:Vt,removeAtIndex:jt,add:Ht,toggleOption:Ut,getOptionIndex:()=>a.value,setOptionIndex:Pt,moveOptionSelection:ei,filter:xe,updateMenuPosition:ci,updateInputValue:wr,isOptionSelected:Ii,getEmittingOptionValue:pt,isOptionDisabled:(...Le)=>gi.value.apply(null,Le)===!0,getOptionValue:(...Le)=>rt.value.apply(null,Le),getOptionLabel:(...Le)=>dt.value.apply(null,Le)}),Object.assign(Xe,{innerValue:mt,fieldClass:computed(()=>`q-select q-field--auto-height q-select--with${e.useInput!==!0?"out":""}-input q-select--with${e.useChips!==!0?"out":""}-chips q-select--${e.multiple===!0?"multiple":"single"}`),inputRef:K,targetRef:ie,hasValue:At,showPopup:st,floatingLabel:computed(()=>e.hideSelected!==!0&&At.value===!0||typeof w.value=="number"||w.value.length>0||fieldValueIsFilled(e.displayValue)),getControlChild:()=>{if(Xe.editable.value!==!1&&(_.value===!0||It.value!==!0||r["no-option"]!==void 0))return D===!0?Ie():te();Xe.hasPopupOpen===!0&&(Xe.hasPopupOpen=!1)},controlEvents:{onFocusin(Le){Xe.onControlFocusin(Le)},onFocusout(Le){Xe.onControlFocusout(Le,()=>{ut(),He()})},onClick(Le){if(prevent(Le),D!==!0&&f.value===!0){He(),ie.value!==null&&ie.value.focus();return}st(Le)}},getControl:Le=>{const Gt=Zr(),ht=Le===!0||_.value!==!0||D!==!0;if(e.useInput===!0)Gt.push(Ki(Le,ht));else if(Xe.editable.value===!0){const Wi=ht===!0?Bi.value:void 0;Gt.push(h("input",{ref:ht===!0?ie:void 0,key:"d_t",class:"q-select__focus-target",id:ht===!0?Xe.targetUid.value:void 0,readonly:!0,"data-autofocus":Le!==!0&&e.autofocus===!0||void 0,...Wi,onKeydown:Pr,onKeyup:er,onKeypress:Mi})),ht===!0&&typeof e.autocomplete=="string"&&e.autocomplete.length>0&&Gt.push(h("input",{class:"q-select__autocomplete-input",autocomplete:e.autocomplete,tabindex:-1,onKeyup:Gi}))}if(_e.value!==void 0&&e.disable!==!0&&di.value.length>0){const Wi=di.value.map(Ni=>h("option",{value:Ni,selected:!0}));Gt.push(h("select",{class:"hidden",name:_e.value,multiple:e.multiple},Wi))}const qe=e.useInput===!0||ht!==!0?void 0:Xe.splitAttrs.attributes.value;return h("div",{class:"q-field__native row items-center",...qe},Gt)},getInnerAppend:()=>e.loading!==!0&&M.value!==!0&&e.hideDropdownIcon!==!0?[h(QIcon,{class:"q-select__dropdown-icon"+(f.value===!0?" rotate-180":""),name:Ai.value})]:null}),useField(Xe)}});function getDepth(e){if(e===!1)return 0;if(e===!0||e===void 0)return 1;const r=parseInt(e,10);return isNaN(r)?0:r}var ClosePopup=createDirective({name:"close-popup",beforeMount(e,{value:r}){const n={depth:getDepth(r),handler(o){n.depth!==0&&setTimeout(()=>{const u=getPortalProxy(e);u!==void 0&&closePortals(u,o,n.depth)})},handlerKey(o){isKeyCode(o,13)===!0&&n.handler(o)}};e.__qclosepopup=n,e.addEventListener("click",n.handler),e.addEventListener("keyup",n.handlerKey)},updated(e,{value:r,oldValue:n}){r!==n&&(e.__qclosepopup.depth=getDepth(r))},beforeUnmount(e){const r=e.__qclosepopup;e.removeEventListener("click",r.handler),e.removeEventListener("keyup",r.handlerKey),delete e.__qclosepopup}});function useQuasar(){return inject(quasarKey)}const gdalWorker=new Worker("gdalWorker.js");let ZrangeSeaLevel=32767;const _sfc_main$2={name:"SideNav",setup(){const e=useQuasar();return{alert:ref(!1),isAlphaBrush:ref(!1),blurRadius:ref(0),access_token:ref(""),isDisabled:ref(!1),isDownload:ref(!0),isLandscape:ref(!0),isExportOptions:ref(!0),isBlurRadius:ref(!0),isSendToUnreal:ref(!0),unrealLandscape:ref({label:505,value:505}),landscapeSize:[{label:"8129x8129",value:8129},{label:"4033x4033",value:4033},{label:"2017x2017",value:2017},{label:"1009x1009",value:1009},{label:"512x512-Downloaded-Size",value:512},{label:"505x505",value:505}],url:ref("thirtytwo-9-82-180.png"),tile_info:ref(""),save_fileName:ref(""),dirHandle:ref(""),preview_image_info:ref(""),rgb_image:ref(""),img_min:ref(""),img_max:ref(""),map:null,data:null,bbinfoalert:ref(!1),exportType:ref({label:"Unreal Heightmap",value:"Unreal Heightmap"}),landscapeName:ref(""),alphaBrushName:ref(""),alphaBrushHeight:ref(505),alphaBrushWidth:ref(505),unrealMapPath:ref(""),qt:e,exportOptionsModel:ref(["zrange","combine_features"]),alertMsg:ref(""),exportOptions:[{label:"Zrange-sea level=0",value:"zrange"},{label:"Flip X",value:"flipx"},{label:"Flip y",value:"flipy"},{label:"Download Satellite",value:"satellite"},{label:"Download Geojson Features",value:"features"},{label:"Combine Unique Features",value:"combine_features"}],exportTyprOptions:[{label:"Unreal Heightmap",value:"Unreal Heightmap"},{label:"Unreal Terrain Magic Plugin",value:"Unreal Terrain Magic Plugin"},{label:"Unreal Terrain Magic Plugin -- Manual",value:"Unreal Terrain Magic Plugin -- Manual"},{label:"Unreal Stamp Brush Plugin",value:"Unreal Stamp Brush Plugin"},{label:"Unreal Landmass Effect Brush Plugin",value:"Unreal Landmass Effect Brush Plugin",cannotSelect:!1},{label:"None",value:"none"},{label:"Geojson Only",value:"geojson_only"}]}},async mounted(){emitter.on("updatePreviewImage",e=>{this.data=e,this.updatePreviewImage()})},methods:{showNotify(e,r,n,o,u){this.qt.notify({message:e,color:r,position:n,icon:o,textColor:u})},copyTileInfoString(){this.tile_info?navigator.permissions.query({name:"clipboard-write"}).then(e=>{if(e.state==="granted"||e.state==="prompt"){let r=this.tile_info.x+","+this.tile_info.y+","+this.tile_info.z;navigator.clipboard.writeText(r).then(()=>{this.showNotify("Tile info string copied "+r,"info","top","announcement","white")},()=>{})}}):(this.alertMsg="Please select a location on the map first.",this.alert=!0)},copyExtents(){this.tile_info?navigator.permissions.query({name:"clipboard-write"}).then(e=>{if(e.state==="granted"||e.state==="prompt"){let r=this.tile_info.bboxW+","+this.tile_info.bboxS+","+this.tile_info.bboxE+","+this.tile_info.bboxN;navigator.clipboard.writeText(r).then(()=>{this.showNotify("Bounding box coordinates copied "+r,"info","top","announcement","white")},()=>{})}}):(this.alertMsg="Please select a location on the map first.",this.alert=!0)},adjustedZscale(){let e=this.getUnrealZScale(this.preview_image_info.maxElevation);return this.exportOptionsModel.includes("zrange")?(this.tile_info.startZRange=ZrangeSeaLevel,this.tile_info.zscale=(ZrangeSeaLevel/e).toFixed(3)):(this.tile_info.startZRange=0,this.tile_info.zscale=e.toFixed(3)),this.tile_info.zscale},exportOptionsModelChange(e){this.exportOptionsModel=e,this.adjustedZscale()},exportType_Change(e){this.exportType.label==="Unreal Heightmap"||this.exportType.label==="None"||this.exportType.label==="Unreal Terrain Magic Plugin -- Manual"?(this.isDownload=!0,this.isSendToUnreal=!0,this.isAlphaBrush=!1,this.isLandscape=!0,this.isExportOptions=!0,this.isBlurRadius=!0):this.exportType.label==="Unreal Stamp Brush Plugin"||this.exportType.label==="Unreal Landmass Effect Brush Plugin"?(this.isDownload=!1,this.isSendToUnreal=!0,this.isAlphaBrush=!0,this.isLandscape=!1,this.isExportOptions=!1,this.isBlurRadius=!0):this.exportType.label==="Geojson Only"?(this.isDownload=!0,this.isSendToUnreal=!1,this.isAlphaBrush=!1,this.isLandscape=!1,this.isExportOptions=!1,this.isBlurRadius=!1):this.exportType.label==="Unreal Terrain Magic Plugin"&&(this.isDownload=!1,this.isSendToUnreal=!0,this.isAlphaBrush=!1,this.isLandscape=!1,this.isExportOptions=!1,this.isBlurRadius=!1)},showBBInfo(){this.tile_info?this.bbinfoalert=!0:(this.bbinfoalert=!1,this.alertMsg="Please select a location on the map first.",this.alert=!0)},updateStats(){this.preview_image_info.maxElevation!==""?(this.tile_info.MaxElevation=this.preview_image_info.maxElevation,this.tile_info.MinElevation=this.preview_image_info.minElevation,this.tile_info.minmax=this.tile_info.MinElevation.toFixed(3)+" / "+this.tile_info.MaxElevation.toFixed(3),this.tile_info.elevation_range=(this.tile_info.MaxElevation-this.tile_info.MinElevation).toFixed(3),this.tile_info.zscale=this.adjustedZscale()):this.tile_info.minmax=""},getUnrealZScale(e){return e*100*.001953125},async updatePreviewImage(){this.preview_image_info=await this.data.preview_image_info,this.tile_info=this.data.tile_info,this.map=this.data.map;let e=await this.preview_image_info.image.toBlob();const r=URL.createObjectURL(e);this.url=r,this.updateStats(this.tile_info)},async saveImage(e,r,n){let o=await idbKeyval.get("dirHandle"),u=new Blob([e],{type:"image/"+n});await fileUtils.writeFileToDisk(o,r,u)},async createWorker(e,r,n,o,u){let f=this;return new Promise(function(_){let a=new File([e],"temp."+o,{type:"image/"+o,lastModified:Date.now()}),w=new DataTransfer;w.items.add(a);let E=w.files,M={};M.files=E,M.translateOptions=n,gdalWorker.postMessage(M),gdalWorker.onmessage=async function(k){u==="createHeightmap"&&await f.saveImage(k.data,r,o),_(!0)}})},async sendToUnreal(){let e="http://localhost:30010/",r="remote/object/call",n={},o,u,f,_="Mapbox_BP",a,w,E,M,k,L;if(this.tile_info)if(n={objectPath:"/Script/UnrealEd.Default__EditorActorSubsystem",functionName:"GetAllLevelActors"},o=await mapUtils.unrealRemoteControl(n,e+r),o.error)o.error.message==="Failed to fetch"?this.alertMsg="Cannot connect to Unreal server. Please make sure your project is open and Mapbox_BP is in the scene. Also make sure you launched the Map using the Select Map button as this starts the Unreal Web Server":this.alertMsg=o.error.message,this.alert=!0;else{let D=await o.response.json();for(let U of D.ReturnValue)if(u=U.includes(_),u===!0){f=U;break}else f=null;if(f){if(this.exportType.label!=="Unreal Terrain Magic Plugin"?await this.createSixteenHeightMap():k="Automatic",this.exportType.label==="Unreal Terrain Magic Plugin -- Manual"&&(k="Manual"),this.isAlphaBrush===!0)this.exportType.label==="Unreal Stamp Brush Plugin"&&(a="/Game/Brushes/CustomBrushes/",E="/Game/Brushes/PEAKS/Peak_10_brush.Peak_10_brush",M="Textures/",L="HeightMap",w='"Unreal Stamp Brush Plugin"'),this.exportType.label==="Unreal Landmass Effect Brush Plugin"&&(a="/Game/Editor/Landscape/LandmassEffectBrush/CustomBrushes/",E="/Game/Editor/Landscape/LandmassEffectBrush/Effects/Variants/Map/HeightMapEffect.HeightMapEffect",M="Textures/",L='"Heightmap (Greyscale / White is High)"',w='"Unreal Landmass Effect Brush Plugin"'),n={objectPath:f,functionName:"MakeLandscapeStamp",parameters:{AlphaBrushName:this.tile_info.alphaBrushFileName,AlphaBrushPath:a,AlphaBrushTemplatePath:E,AlphaBrushTexturesPath:M,HeightmapProperty:L,StampTool:w}};else{this.unrealMapPath=await idbKeyval.get("mappath"),this.tile_info.landscapeName=this.landscapeName;let U=this.tile_info.x+","+this.tile_info.y+","+this.tile_info.z;n={objectPath:f,functionName:"GenerateMapboxLandscape",parameters:{LandscapeName:this.tile_info.landscapeName,LandscapeSize:this.tile_info.resolution.toString(),TileHeightmapFileName:this.tile_info.sixteenFileName,TileGeojsonFileName:this.tile_info.geoJsonFileName,TileInfoFileName:this.tile_info.tileInfoFileName,MapMiddleLngX:this.tile_info.center.lng,MapMiddleLatY:this.tile_info.center.lat,MapBtmRLng:this.tile_info.bottomRight.lng,MapBtmLLng:this.tile_info.bottomLeft.lng,MapTopLLat:this.tile_info.topLeft.lat,MapBtmLLat:this.tile_info.bottomLeft.lat,UseTerrainMagic:k,SlippyMapTileString:U.trim()}}}o=await mapUtils.unrealRemoteControl(n,e+r),o.error?(console.log(o.error),this.alertMsg=o.error.message,this.alert=!0):console.log(await o.response.json())}else this.alertMsg="Could not find Mapbox_BP in scene",this.alert=!0}else this.alertMsg="Please select a map location",this.alert=!0;this.qt.loading.hide()},async unrealTileFeatures(e){let r=mapUtils.getFeaturesFromBB(this.map,this.tile_info,e),n=JSON.stringify(r),o=JSON.stringify(this.tile_info);await fileUtils.writeFileToDisk(this.dirHandle,this.tile_info.geoJsonFileName,n),await fileUtils.writeFileToDisk(this.dirHandle,this.tile_info.tileInfoFileName,o)},async createSixteenHeightMap(){if(this.tile_info){let e,r;this.tile_info.resolution=this.unrealLandscape.value,mapboxgl.accessToken=await idbKeyval.get("access_token"),this.access_token=mapboxgl.accessToken,this.tile_info.geoJsonFileName="geojson-"+this.tile_info.mapboxTileName+".json",this.tile_info.tileInfoFileName="tile-info-"+this.tile_info.mapboxTileName+".json",this.tile_info.sixteenFileName="sixteen-"+this.tile_info.mapboxTileName+"-LandscapeSize-"+this.tile_info.resolution+".png";let n=await idbKeyval.get("mapbox_satellite_endpoint");if(this.tile_info.mapbox_satellite_image_url=n+`/${this.tile_info.z}/${this.tile_info.x}/${this.tile_info.y}@2x?access_token=`+this.access_token,this.tile_info.satelliteFileName="satellite-"+this.tile_info.mapboxTileName+"-LandscapeSize-"+this.tile_info.resolution+".jpg",this.qt.loading.show(),this.dirHandle=await idbKeyval.get("dirHandle"),await fileUtils.verifyPermission(this.dirHandle,!0)===!1){console.error(`User did not grant permission to '${this.dirHandle.name}'`);return}if(fileUtils.fileExists(this.dirHandle,this.tile_info.thirtytwoFile)){let u=await idbKeyval.get("rgb_image_buffer"),f=await mapUtils.loadImageFromArray(u),_=mapUtils.createHeightMapImage(f,16,"GREY"),a=_.image;if(this.exportOptionsModel.includes("flipy")&&(a=await a.flipY()),this.exportOptionsModel.includes("flipx")&&(a=await a.flipX()),this.blurRadius>=1&&(a=a.blurFilter({radius:this.blurRadius})),r=await a.toBuffer(),this.img_min=parseInt(_.minElevation).toString(),this.img_max=parseInt(_.maxElevation).toString(),this.tile_info.resampleSize=this.unrealLandscape.value.toString(),this.tile_info.resizeMethod="lanczos",this.tile_info.exportTypeLabel=this.exportType.label,this.tile_info.alphaBrushFileName="alphabrush-"+this.tile_info.mapboxTileName+"-height-"+this.alphaBrushHeight+"-width-"+this.alphaBrushWidth,this.exportOptionsModel.includes("features")){let w=!1;this.exportOptionsModel.includes("combine_features")&&(w=!0),await this.unrealTileFeatures(w)}switch(this.tile_info.exportTypeLabel){case"Unreal Terrain Magic Plugin -- Manual":if(e=["-ot","UInt16","-of","PNG","-scale",this.img_min,this.img_max,this.tile_info.startZRange.toString(),this.tile_info.maxPngValue.toString(),"-outsize",this.tile_info.resampleSize,this.tile_info.resampleSize,"-r",this.tile_info.resizeMethod.toString()],await this.createWorker(r,this.tile_info.sixteenFileName,e,"png","createHeightmap"),this.exportOptionsModel.includes("satellite")){e=["-of","JPEG","-outsize",this.tile_info.resampleSize,this.tile_info.resampleSize,"-r",this.tile_info.resizeMethod];let w=await mapUtils.downloadTerrainRgb(this.tile_info.mapbox_satellite_image_url);await this.createWorker(w,this.tile_info.satelliteFileName,e,"jpg","createHeightmap")}this.qt.loading.hide();break;case"Unreal Heightmap":if(e=["-ot","UInt16","-of","PNG","-scale",this.img_min,this.img_max,this.tile_info.startZRange.toString(),this.tile_info.maxPngValue.toString(),"-outsize",this.tile_info.resampleSize,this.tile_info.resampleSize,"-r",this.tile_info.resizeMethod.toString()],await this.createWorker(r,this.tile_info.sixteenFileName,e,"png","createHeightmap"),this.exportOptionsModel.includes("satellite")){e=["-of","JPEG","-outsize",this.tile_info.resampleSize,this.tile_info.resampleSize,"-r",this.tile_info.resizeMethod];let w=await mapUtils.downloadTerrainRgb(this.tile_info.mapbox_satellite_image_url);await this.createWorker(w,this.tile_info.satelliteFileName,e,"jpg","createHeightmap")}this.qt.loading.hide();break;case"Geojson Only":await this.unrealTileFeatures(!0),this.qt.loading.hide();break;case"Unreal Stamp Brush Plugin":this.alphaBrushName.length>0&&(this.tile_info.alphaBrushFileName=this.alphaBrushName),e=["-ot","UInt16","-of","PNG","-scale",this.img_min,this.img_max,this.tile_info.startZRange.toString(),this.tile_info.maxPngValue.toString(),"-outsize",this.alphaBrushHeight.toString(),this.alphaBrushWidth.toString(),"-r",this.tile_info.resizeMethod],await this.createWorker(r,this.tile_info.alphaBrushFileName+".png",e,"png","createHeightmap"),this.qt.loading.hide();break;case"Unreal Landmass Effect Brush Plugin":this.alphaBrushName.length>0&&(this.tile_info.alphaBrushFileName=this.alphaBrushName),e=["-ot","UInt16","-of","PNG","-scale",this.img_min,this.img_max,this.tile_info.startZRange.toString(),this.tile_info.maxPngValue.toString(),"-outsize",this.alphaBrushHeight.toString(),this.alphaBrushWidth.toString(),"-r",this.tile_info.resizeMethod],await this.createWorker(r,this.tile_info.alphaBrushFileName+".png",e,"png","createHeightmap"),this.qt.loading.hide();break;case"None":await fileUtils.writeFileToDisk(this.dirHandle,this.tile_info.sixteenFileName,a.toBuffer()),this.qt.loading.hide();break}}else this.alertMsg="Please select a location on the map first.",this.alert=!0}else this.alertMsg="Please select a location on the map first.",this.alert=!0}}},_hoisted_1$2=createBaseVNode("div",{id:"previewTitle",class:"text-h6 bg-primary text-white"},"Preview Image",-1),_hoisted_2$2={class:"row justify-start q-pa-none q-ma-none"},_hoisted_3$2={style:{width:"100%"}},_hoisted_4$2={class:"text-weight-bold q-pt-sm self-center full-width no-outline",tabindex:"0"},_hoisted_5$2={class:"text-weight-bold q-pt-sm self-center full-width no-outline",tabindex:"0"},_hoisted_6$2=createBaseVNode("b",null,[createBaseVNode("u",null,"Export Type:")],-1),_hoisted_7$1=createBaseVNode("b",null,[createBaseVNode("u",null,"Export Options:")],-1),_hoisted_8$1=createBaseVNode("div",{class:"text-h6"},[createBaseVNode("u",null,"Coordinates for Unreal LandscapeGen Plugin")],-1),_hoisted_9$1=createBaseVNode("div",{class:"text-h6"},"Zoom:",-1),_hoisted_10$1=createBaseVNode("div",{class:"text-h6"},"Mouse Point Lat/Lng:",-1),_hoisted_11$1=createBaseVNode("div",{class:"text-h6"},[createBaseVNode("u",null,"Bounding Box Corners Lat/Lng:")],-1),_hoisted_12$1=createBaseVNode("div",{class:"text-h6"},"Top Left:",-1),_hoisted_13=createBaseVNode("div",{class:"text-h6"},"Bottom Left:",-1),_hoisted_14=createBaseVNode("div",{class:"text-h6"},"Top Right:",-1),_hoisted_15=createBaseVNode("div",{class:"text-h6"},"Bottom Right:",-1),_hoisted_16=createBaseVNode("div",{class:"text-h6"},"Lng/Lat Max/Min:",-1),_hoisted_17=createBaseVNode("div",{class:"text-h6"},"Alert",-1);function _sfc_render$2(e,r,n,o,u,f){return openBlock(),createElementBlock(Fragment,null,[_hoisted_1$2,createVNode(QImg,{src:o.url,height:"150px"},null,8,["src"]),createBaseVNode("div",_hoisted_2$2,[createBaseVNode("div",_hoisted_3$2,[createVNode(QField,{dense:"",class:"text-weight-bolder q-pt-none q-mt-xs",label:"Min/Max Elevation","stack-label":""},{control:withCtx(()=>[createBaseVNode("div",_hoisted_4$2,toDisplayString(this.tile_info.minmax),1)]),_:1}),createVNode(QField,{class:"q-pt-none q-mt-xs",dense:"",label:"Unreal Z-Scale",hint:"Input into Unreal Landscape Z scale","stack-label":""},{control:withCtx(()=>[createBaseVNode("div",_hoisted_5$2,toDisplayString(this.tile_info.zscale),1)]),_:1}),createVNode(QItemLabel,{class:"q-pt-none q-mt-xs"},{default:withCtx(()=>[_hoisted_6$2]),_:1}),createVNode(QSelect,{class:"q-mt-none q-pt-none","bg-color":"blue-2",outlined:"",filled:"",dense:"",modelValue:o.exportType,"onUpdate:modelValue":[r[0]||(r[0]=_=>o.exportType=_),f.exportType_Change],options:o.exportTyprOptions,"option-disable":"cannotSelect"},null,8,["modelValue","options","option-disable","onUpdate:modelValue"]),withDirectives(createVNode(QItemLabel,{class:"q-pt-none q-mt-xs"},{default:withCtx(()=>[_hoisted_7$1]),_:1},512),[[vShow,o.isExportOptions]]),withDirectives(createVNode(QOptionGroup,{class:"q-mt-none q-pt-none",dense:"",inline:"",options:o.exportOptions,"onUpdate:modelValue":[f.exportOptionsModelChange,r[1]||(r[1]=_=>o.exportOptionsModel=_)],type:"checkbox",modelValue:o.exportOptionsModel},null,8,["options","onUpdate:modelValue","modelValue"]),[[vShow,o.isExportOptions]]),withDirectives(createVNode(QSelect,{dense:"",class:"q-pt-none q-mt-xs",label:"Landscape Size","transition-show":"scale","transition-hide":"scale",hint:"Unreal Recommended Sizes",outlined:"",modelValue:o.unrealLandscape,"onUpdate:modelValue":r[2]||(r[2]=_=>o.unrealLandscape=_),options:o.landscapeSize},null,8,["modelValue","options"]),[[vShow,o.isLandscape]]),withDirectives(createVNode(QField,{class:"q-pt-none q-mt-xs",label:"Brush Size"},{default:withCtx(()=>[createVNode(QInput,{class:"q-pt-none q-mt-xs",filled:"",modelValue:o.alphaBrushHeight,"onUpdate:modelValue":r[3]||(r[3]=_=>o.alphaBrushHeight=_),label:"Height"},null,8,["modelValue"]),createVNode(QInput,{class:"q-pt-none q-mt-xs",filled:"",modelValue:o.alphaBrushWidth,"onUpdate:modelValue":r[4]||(r[4]=_=>o.alphaBrushWidth=_),label:"Width"},null,8,["modelValue"]),createVNode(QInput,{ref:"alphaBrushNameRef",filled:"",modelValue:o.alphaBrushName,"onUpdate:modelValue":r[5]||(r[5]=_=>o.alphaBrushName=_),label:"Brush Name"},null,8,["modelValue"])]),_:1},512),[[vShow,o.isAlphaBrush]]),withDirectives(createVNode(QField,{class:"q-pt-none q-mt-xs",dense:"",label:"Landscape Name (Optional)",hint:"Enter Unique Landscape Name"},{default:withCtx(()=>[createVNode(QInput,{modelValue:o.landscapeName,"onUpdate:modelValue":r[6]||(r[6]=_=>o.landscapeName=_)},null,8,["modelValue"])]),_:1},512),[[vShow,o.isLandscape]]),withDirectives(createVNode(QField,{class:"q-pt-none q-mt-xs",label:"Blur Radius"},{default:withCtx(()=>[createVNode(QInput,{class:"q-pt-none q-mt-xs",filled:"",modelValue:o.blurRadius,"onUpdate:modelValue":r[7]||(r[7]=_=>o.blurRadius=_),label:"Blur Radius"},null,8,["modelValue"])]),_:1},512),[[vShow,o.isBlurRadius]])])]),withDirectives(createVNode(QBtn,{onClick:f.createSixteenHeightMap,ref:"btnDownload",dense:"",color:"primary","no-caps":"",label:"Download HeightMap"},null,8,["onClick"]),[[vShow,o.isDownload]]),withDirectives(createVNode(QBtn,{onClick:f.sendToUnreal,disabled:o.isDisabled,dense:"",color:"green",class:"q-ml-xs","no-caps":"",label:"Send To Unreal"},null,8,["onClick","disabled"]),[[vShow,o.isSendToUnreal]]),createVNode(QBtn,{onClick:f.copyExtents,disabled:o.isDisabled,dense:"",color:"purple",class:"q-ml-xs","no-caps":"",label:"Copy Bounds for Blender Osm"},null,8,["onClick","disabled"]),createVNode(QBtn,{onClick:f.copyTileInfoString,disabled:o.isDisabled,dense:"",color:"cyan",class:"q-ml-xs","no-caps":"",label:"Copy Slippy Tile Info String"},null,8,["onClick","disabled"]),createVNode(QBtn,{onClick:f.showBBInfo,dense:"",color:"orange","no-caps":"",label:"Show Bounding Box Info"},null,8,["onClick"]),createVNode(QDialog,{modelValue:o.bbinfoalert,"onUpdate:modelValue":r[8]||(r[8]=_=>o.bbinfoalert=_)},{default:withCtx(()=>[createVNode(QCard,null,{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>[_hoisted_8$1]),_:1}),createVNode(QCardSection,{class:"q-pt-none"},{default:withCtx(()=>[_hoisted_9$1,createTextVNode(" "+toDisplayString(o.tile_info.z)+" ",1),_hoisted_10$1,createTextVNode(" Lat: "+toDisplayString(o.tile_info.pointLat)+" Lng: "+toDisplayString(o.tile_info.pointLng)+" ",1),_hoisted_11$1,_hoisted_12$1,createTextVNode(" Lat: "+toDisplayString(o.tile_info.topLeft.lat)+" Lng: "+toDisplayString(o.tile_info.topLeft.lng)+" ",1),_hoisted_13,createTextVNode(" Lat: "+toDisplayString(o.tile_info.bottomLeft.lat)+" Lng: "+toDisplayString(o.tile_info.bottomLeft.lng)+" ",1),_hoisted_14,createTextVNode(" Lat: "+toDisplayString(o.tile_info.topRight.lat)+" Lng: "+toDisplayString(o.tile_info.topRight.lng)+" ",1),_hoisted_15,createTextVNode(" Lat: "+toDisplayString(o.tile_info.bottomRight.lat)+" Lng: "+toDisplayString(o.tile_info.bottomRight.lng)+" ",1),_hoisted_16,createTextVNode(" Lng/Lat-Min: "+toDisplayString(o.tile_info.bboxW)+" , "+toDisplayString(o.tile_info.bboxS)+" Lng/Lat-Max: "+toDisplayString(o.tile_info.bboxE)+" , "+toDisplayString(o.tile_info.bboxN),1)]),_:1}),createVNode(QCardActions,{align:"right"},{default:withCtx(()=>[withDirectives(createVNode(QBtn,{flat:"",label:"OK",color:"primary"},null,512),[[ClosePopup]])]),_:1})]),_:1})]),_:1},8,["modelValue"]),createVNode(QDialog,{modelValue:o.alert,"onUpdate:modelValue":r[9]||(r[9]=_=>o.alert=_)},{default:withCtx(()=>[createVNode(QCard,null,{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>[_hoisted_17]),_:1}),createVNode(QCardSection,{class:"q-pt-none"},{default:withCtx(()=>[createTextVNode(toDisplayString(o.alertMsg),1)]),_:1}),createVNode(QCardActions,{align:"right"},{default:withCtx(()=>[withDirectives(createVNode(QBtn,{flat:"",label:"OK",color:"primary"},null,512),[[ClosePopup]])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}var SideNav=_export_sfc(_sfc_main$2,[["render",_sfc_render$2]]);const _sfc_main$1={props:{},emits:["ok","hide"],methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()},onDialogHide(){this.$emit("hide")},onOKClick(){this.$emit("ok"),this.hide()},onCancelClick(){this.hide()}}},_hoisted_1$1=createBaseVNode("div",null,[createBaseVNode("b",null,"Help")],-1),_hoisted_2$1=createBaseVNode("br",null,null,-1),_hoisted_3$1=createBaseVNode("div",{class:"q-mt-sm"},[createBaseVNode("b",null,"Settings Page:")],-1),_hoisted_4$1=createBaseVNode("ol",null,[createBaseVNode("li",null,[createTextVNode(" You need to create a free Mapbox account and enter your mapbox access token. Goto "),createBaseVNode("a",{href:"https://www.mapbox.com",target:"_blank"},"Mapbox"),createTextVNode(" then goto your account page. There you can copy your access token. ")]),createBaseVNode("li",null," Select a download folder. This is a folder on your local pc where your heightmap files will be saved. ")],-1),_hoisted_5$1=createBaseVNode("div",{class:"q-mt-sm"},[createBaseVNode("b",null,"Map Page:")],-1),_hoisted_6$1=createBaseVNode("ul",null,[createBaseVNode("li",null,[createBaseVNode("u",null,"Map Settings"),createTextVNode(" -- Enable different layers for viewing. This does not affect downloaded data ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Search Bar"),createTextVNode(" -- Enter the name of a location or Longitude Latitude seperated by a comma. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Top Bar"),createTextVNode(" -- Area in KM show the area of the blue bounding box in Kilometers. Slippy Tile Info String is a standard format identification for downloading map tiles. Format is X,Y,Z Z = zoom level. ")])],-1),_hoisted_7=createBaseVNode("div",{class:""},[createBaseVNode("b",null,"Map Navigation:")],-1),_hoisted_8=createBaseVNode("ul",null,[createBaseVNode("li",null,[createBaseVNode("u",null,"Left Mouse Click"),createTextVNode(" -- Selects a location on the map indicated by a blue bounding box. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Left Mouse Hold"),createTextVNode(" -- Drag the mouse around to move the map. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Right Mouse Hold"),createTextVNode(" -- Tilt and Rotate the map. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Scroll Wheel"),createTextVNode(" -- Zoom in and out. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Arrow Keys"),createTextVNode(" -- Move around the map. ")])],-1),_hoisted_9=createBaseVNode("div",{class:"q-mb-md"},[createBaseVNode("b",null,"Left Side Bar:")],-1),_hoisted_10=createBaseVNode("div",{class:"q-ml-md"},[createBaseVNode("div",null,[createBaseVNode("u",null,"Export Type:"),createBaseVNode("ul",null,[createBaseVNode("li",null,[createBaseVNode("u",null,"Unreal Heightmap"),createTextVNode(" -- Generates a 16-bit png heightmap file. Can be used in other applications besides Unreal. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Unreal Terrain Magic Plugin"),createTextVNode(" -- Needs custom C++ adjustment to work. You need to install the paid plugin "),createBaseVNode("a",{href:"https://github.com/GDi4K/unreal-terrain-magic"},"Terrain Magic"),createTextVNode(". Terrain magic has it's own map to import heightmaps for Unreal. This just makes it a one click solution instead of copy and paste. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Unreal Terrain Magic Plugin -- Manual"),createTextVNode(" -- No modification to Terrain Magic Pluign needed. You need to install the paid plugin "),createBaseVNode("a",{href:"https://github.com/GDi4K/unreal-terrain-magic"},"Terrain Magic"),createTextVNode(". You need to click on Match Landscape Size to refersh the imported landscape after you click Send To Unreal. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Unreal Stamp Brush Plugin"),createTextVNode(" -- You need to install paid plugin "),createBaseVNode("a",{href:"https://www.unrealengine.com/marketplace/en-US/product/landscape-stamping-tool-100-custom-brushes?sessionInvalidated=true"},"Landscape Stamping Tool - 100+ Custom Brushes"),createTextVNode(". This automates the creation of new stamps from selected map location. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Unreal Landmass Effect Brush Plugin"),createTextVNode(" -- Open source plugin for creating non-destructive landmass stamps and other features. Download the source from here "),createBaseVNode("a",{href:"https://github.com/AWeinb/SimplerLandmassBlueprints"},"SimplerLandmassBlueprints"),createTextVNode(". From the Content folder copy the whole Editor folder to your Content directory. Each time you click Send To Unreal it will import the texture to a sub folder CustomBrushes > Textures. For now it only imports the texture you have to manually add the texture to the brush according to the github instructions. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"None"),createTextVNode(" -- Generate 16-bit png heightmap but do not do any other transformations to the image. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Geojson Only"),createTextVNode(" -- Do not download a heightmap png file. Just download a Geojson file. ")])])]),createBaseVNode("div",null,[createBaseVNode("u",null,"Export Options:"),createBaseVNode("ul",null,[createBaseVNode("li",null,[createBaseVNode("u",null,"Zrange-sea level="),createTextVNode(" -- By checking this the imported heightmap will keep the landscape height near 100 Unreal Units. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"FlipX/FlipY"),createTextVNode(" -- Flips the sides of the heightmap image in the X or Y direction. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Download Satellite"),createTextVNode(" -- Downloads a Satellite Image of the selected area. This can be used as on overlay in UE. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Download Geojson Features"),createTextVNode(" -- Downloads the features of the selected area in geojson format. Search Mapbox for geosjon. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Combine Unique Features"),createTextVNode(" -- Removes overlapping features when downloading geojson ")])])])],-1),_hoisted_11=createBaseVNode("div",null,[createBaseVNode("u",null,"Landscape:"),createBaseVNode("ul",null,[createBaseVNode("li",null,[createBaseVNode("u",null,"Landscape Size"),createTextVNode(" -- Resamples the size of the image to recommended Unreal Landscape sizes. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Landscape Name"),createTextVNode(" -- Name of the landscape to be imported. (Optional ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Blur Radius"),createTextVNode(" -- Adds a gaussian blur to the heightmap png. This can help smooth out your imported landscape if it has some sharp edges. The greater the number the greater the blur. 0 = no blur. ")])])],-1),_hoisted_12=createBaseVNode("div",null,[createBaseVNode("u",null,"Buttons:"),createBaseVNode("ul",null,[createBaseVNode("li",null,[createBaseVNode("u",null,"Download Heightmap"),createTextVNode(" -- Downloads the heightmap png to the folder location on the settings page. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Send To Unreal"),createTextVNode(" -- Automatically imports heightmap or stamp into your Unreal project. Required -- Mapbox_BP has to be installed in to your unreal project and configured. You can download the free plugin here "),createBaseVNode("a",{href:"https://github.com/delebash/UnrealMapboxBridgePlugin"},"Unreal Mapbox Bridge Plugin"),createTextVNode(". ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Copy Bounds for Blender OSM"),createTextVNode(" -- A plugin for blend that downloads real world map info into blender. It has it's own map but you can use this one as well since it has a search by name feature. Download "),createBaseVNode("a",{href:"https://github.com/vvoovv/blender-osm"},"Blender OSM"),createTextVNode(". ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Copy Slippy Tile Info String"),createTextVNode(" -- This format is used in many other GIS applications to download map tile information. This is just a convenience function. This is also the same string Terrain Magic expects. ")]),createBaseVNode("li",null,[createBaseVNode("u",null,"Show Bounding Box Info"),createTextVNode(" -- General info such as Long/Lat info for bounding box. ")])])],-1);function _sfc_render$1(e,r,n,o,u,f){return openBlock(),createBlock(QDialog,{class:"dialog-plugin",ref:"dialog",onHide:f.onDialogHide},{default:withCtx(()=>[createVNode(QCard,{style:{width:"900px","max-width":"80vw",height:"700px"}},{default:withCtx(()=>[createVNode(QCardSection,null,{default:withCtx(()=>[_hoisted_1$1,_hoisted_2$1,createVNode(QSeparator),_hoisted_3$1,_hoisted_4$1,_hoisted_5$1,_hoisted_6$1,_hoisted_7,_hoisted_8,_hoisted_9,_hoisted_10,_hoisted_11,_hoisted_12,createVNode(QCardActions,{class:"absolute-top",align:"right"},{default:withCtx(()=>[createVNode(QBtn,{color:"primary",label:"Close",onClick:f.onOKClick},null,8,["onClick"])]),_:1})]),_:1})]),_:1})]),_:1},8,["onHide"])}var Help=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]);const _sfc_main={setup(){const e=useQuasar();return{showDialog(){e.dialog({component:Help,componentProps:{text:""}}).onOk(()=>{}).onCancel(()=>{}).onDismiss(()=>{})},data_path:"",selectedTab:ref("map"),dirHandle:ref(""),dirName:ref(""),style_url:ref(""),access_token:ref(""),mapbox_api_url:ref(""),mapbox_raster_png_dem:ref(""),mapbox_satellite_endpoint:ref(""),isPwd:ref(!0),drawerLeft:ref(!1),createFolder:ref(!1)}},mounted:async function(){await this.loadUserData(),this.isRequiredSettings()===!0&&await this.loadMap()},methods:{resizeMap(){this.$refs.mapBoxViewer.resizeMap()},changeDrawer(){this.drawerLeft=!this.drawerLeft},async loadMap(){this.selectedTab="map",await this.$nextTick(()=>{this.$refs.mapBoxViewer.loadMapboxMap()})},isRequiredSettings(){return this.access_token&&this.style_url&&this.dirName?!0:(this.redirectToSettings(),!1)},redirectToSettings(){this.selectedTab="settings",Notify.create({color:"negative",textColor:"white",icon:"report_problem",message:"Please fill out the required fields!",position:"top"})},async openDirectory(){let e;try{e=await fileUtils.getDirHandle()}catch(r){if(r.name==="AbortError")return;console.error("An error occured trying to open the file.",r)}!e||(idbKeyval.set("dirHandle",e),this.dirName=e.name)},saveUserSettings(){idbKeyval.set("access_token",this.access_token),idbKeyval.set("style_url",this.style_url),idbKeyval.set("mapbox_api_url",this.mapbox_api_url),idbKeyval.set("mapbox_satellite_endpoint",this.mapbox_satellite_endpoint),idbKeyval.set("mapbox_raster_png_dem",this.mapbox_raster_png_dem),idbKeyval.set("create_folder",this.createFolder),this.isRequiredSettings()===!0&&this.loadMap()},async loadUserData(){mapboxgl.accessToken=await idbKeyval.get("access_token"),this.access_token=mapboxgl.accessToken||"",this.style_url=await idbKeyval.get("style_url")||"mapbox://styles/mapbox/streets-v11",this.mapbox_api_url=await idbKeyval.get("mapbox_api_url")||"https://api.mapbox.com/v4/",this.mapbox_satellite_endpoint=await idbKeyval.get("mapbox_satellite_endpoint")||"https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles",this.mapbox_raster_png_dem=await idbKeyval.get("mapbox_raster_png_dem")||"mapbox.mapbox-terrain-dem-v1";let e=await idbKeyval.get("dirHandle")||"";this.createFolder=await idbKeyval.get("create_folder")||"",this.dirHandle=e,this.dirName=e.name}},components:{MapboxMapViewer,SideNav,Help}},_hoisted_1={class:"row q-pa-xs full-height"},_hoisted_2=createBaseVNode("a",{href:"https://docs.mapbox.com/help/glossary/access-token/",target:"_blank"},"Mapbox access token docs",-1),_hoisted_3=createBaseVNode("a",{href:"https://docs.mapbox.com/help/glossary/style-url/",target:"_blank"},"Mapbox style url docs",-1),_hoisted_4={class:"q-pa-none row items-start"},_hoisted_5={class:"col q-pa-none"},_hoisted_6=createBaseVNode("br",null,null,-1);function _sfc_render(e,r,n,o,u,f){const _=resolveComponent("side-nav"),a=resolveComponent("mapbox-map-viewer");return openBlock(),createBlock(QLayout,{view:"lHr lpr lfr"},{default:withCtx(()=>[createVNode(QHeader,{dense:"",elevated:"",class:"bg-primary text-white","height-hint":"98"}),createVNode(QDrawer,{dense:"","show-if-above":"",modelValue:o.drawerLeft,"onUpdate:modelValue":r[0]||(r[0]=w=>o.drawerLeft=w),side:"left",onHide:f.resizeMap,class:"no-margin no-padding"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1,[createVNode(QCard,{class:"col q-pl-xs"},{default:withCtx(()=>[createVNode(_)]),_:1})])]),_:1},8,["modelValue","onHide"]),createVNode(QPageContainer,null,{default:withCtx(()=>[createVNode(QPage,{class:"row no-margin q-pa-sm"},{default:withCtx(()=>[createVNode(QCard,{class:"col"},{default:withCtx(()=>[createVNode(QTabs,{dense:"",modelValue:o.selectedTab,"onUpdate:modelValue":r[2]||(r[2]=w=>o.selectedTab=w),class:"text-grey","active-color":"primary","indicator-color":"primary",align:"justify","narrow-indicator":""},{default:withCtx(()=>[createVNode(QBtn,{dense:"",flat:"",onClick:f.changeDrawer,round:"",icon:"menu"},null,8,["onClick"]),createVNode(QTab,{dense:"",name:"map",label:"Map"}),createVNode(QTab,{dense:"",name:"settings",label:"Settings"}),createVNode(QBtn,{style:{background:"#FF0080",color:"white"},label:"Help",class:"q-mr-lg",onClick:o.showDialog},null,8,["onClick"]),createVNode(QBtn,{dense:"",flat:"",round:"",onClick:r[1]||(r[1]=w=>e.$q.dark.toggle()),icon:e.$q.dark.isActive?"nights_stay":"wb_sunny"},null,8,["icon"])]),_:1},8,["modelValue"]),createVNode(QSeparator),createVNode(QTabPanels,{class:"q-pa-none q-ma-none","keep-alive":"",modelValue:o.selectedTab,"onUpdate:modelValue":r[12]||(r[12]=w=>o.selectedTab=w),animated:""},{default:withCtx(()=>[createVNode(QTabPanel,{name:"map",class:"row q-pl-xs q-pt-xs q-pb-none q-ma-none",style:{width:"100%",height:"calc(100vh - 65px)"}},{default:withCtx(()=>[createVNode(a,{class:"col",ref:"mapBoxViewer"},null,512)]),_:1}),createVNode(QTabPanel,{lass:"row q-pl-xs q-pt-xs q-pb-none q-ma-none",name:"settings"},{default:withCtx(()=>[createTextVNode(" See: "),_hoisted_2,createVNode(QInput,{dense:"",modelValue:o.access_token,"onUpdate:modelValue":r[4]||(r[4]=w=>o.access_token=w),label:"Mapbox Access Token *",filled:"",type:o.isPwd?"password":"text","lazy-rules":"",hint:"You will need your own access token created from your Mapbox accounts page. The Mapbox free plan is a great choice.",rules:[w=>w&&w.length>0||"Please type something"]},{append:withCtx(()=>[createVNode(QIcon,{dense:"",name:o.isPwd?"visibility_off":"visibility",class:"cursor-pointer",onClick:r[3]||(r[3]=w=>o.isPwd=!o.isPwd)},null,8,["name"])]),_:1},8,["modelValue","type","rules"]),createTextVNode(" See: "),_hoisted_3,createVNode(QInput,{dense:"",class:"q-pb-lg",modelValue:o.style_url,"onUpdate:modelValue":r[5]||(r[5]=w=>o.style_url=w),label:"Enter your Mapbox style url *",filled:"","lazy-rules":"",hint:"You can use the default style or you can create your own custom style in Mapbox Studio.",rules:[w=>w&&w.length>0||"Please type something"],type:o.isPwd?"":"text"},null,8,["modelValue","rules","type"]),createVNode(QInput,{dense:"",class:"q-pb-lg",modelValue:o.mapbox_api_url,"onUpdate:modelValue":r[6]||(r[6]=w=>o.mapbox_api_url=w),label:"Mapbox base api url *",filled:"","lazy-rules":"",hint:"",rules:[w=>w&&w.length>0||"Please type something"],type:o.isPwd?"":"text"},null,8,["modelValue","rules","type"]),createVNode(QInput,{dense:"",class:"q-pb-lg",modelValue:o.mapbox_raster_png_dem,"onUpdate:modelValue":r[7]||(r[7]=w=>o.mapbox_raster_png_dem=w),label:"Mapbox Raster Dem Endpoint *",filled:"","lazy-rules":"",hint:"",rules:[w=>w&&w.length>0||"Please type something"],type:o.isPwd?"":"text"},null,8,["modelValue","rules","type"]),createVNode(QInput,{dense:"",class:"q-pb-lg",modelValue:o.mapbox_satellite_endpoint,"onUpdate:modelValue":r[8]||(r[8]=w=>o.mapbox_satellite_endpoint=w),label:"Mapbox Satellite Endpoint *",filled:"","lazy-rules":"",hint:"",rules:[w=>w&&w.length>0||"Please type something"],type:o.isPwd?"":"text"},null,8,["modelValue","rules","type"]),createBaseVNode("div",_hoisted_4,[createBaseVNode("div",_hoisted_5,[createVNode(QInput,{dense:"",class:"q-pb-none",modelValue:o.dirName,"onUpdate:modelValue":r[9]||(r[9]=w=>o.dirName=w),label:"Enter download directory path *",filled:"","lazy-rules":"",rules:[w=>w&&w.length>0||"Please type something"],type:o.isPwd?"":"text"},null,8,["modelValue","rules","type"])]),createVNode(QBtn,{class:"q-pb-none",dense:"",onClick:r[10]||(r[10]=w=>f.openDirectory()),color:"secondary",label:"Select download folder"})]),_hoisted_6,createVNode(QBtn,{class:"q-pt-none",dense:"",onClick:r[11]||(r[11]=w=>f.saveUserSettings()),color:"secondary",label:"Save settings"})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})}var MainLayout=_export_sfc(_sfc_main,[["render",_sfc_render]]);export{MainLayout as default}; diff --git a/dist/spa/assets/QPage.fbcc8738.js b/dist/spa/assets/QPage.fbcc8738.js new file mode 100644 index 0000000..7c6f311 --- /dev/null +++ b/dist/spa/assets/QPage.fbcc8738.js @@ -0,0 +1 @@ +import{c as g,d as r,e as t,f as s,h,J as p,g as d,k as f,$ as y}from"./index.d5b71521.js";var C=g({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(a,{slots:i}){const{proxy:{$q:o}}=d(),e=r(f,t);if(e===t)return console.error("QPage needs to be a deep child of QLayout"),t;if(r(y,t)===t)return console.error("QPage needs to be child of QPageContainer"),t;const c=s(()=>{const n=(e.header.space===!0?e.header.size:0)+(e.footer.space===!0?e.footer.size:0);if(typeof a.styleFn=="function"){const l=e.isContainer.value===!0?e.containerHeight.value:o.screen.height;return a.styleFn(n,l)}return{minHeight:e.isContainer.value===!0?e.containerHeight.value-n+"px":o.screen.height===0?n!==0?`calc(100vh - ${n}px)`:"100vh":o.screen.height-n+"px"}}),u=s(()=>`q-page${a.padding===!0?" q-layout-padding":""}`);return()=>h("main",{class:u.value,style:c.value},p(i.default))}});export{C as Q}; diff --git a/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff b/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff new file mode 100644 index 0000000..88fdf4d Binary files /dev/null and b/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff differ diff --git a/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.83be7b2f.woff2 b/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.83be7b2f.woff2 new file mode 100644 index 0000000..6bc97ed Binary files /dev/null and b/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.83be7b2f.woff2 differ diff --git a/dist/spa/assets/index.d16436ac.css b/dist/spa/assets/index.d16436ac.css new file mode 100644 index 0000000..7374358 --- /dev/null +++ b/dist/spa/assets/index.d16436ac.css @@ -0,0 +1,5 @@ +@charset "UTF-8";@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:url(/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:url(/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:url(/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:url(/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:900;src:url(/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff) format("woff")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.83be7b2f.woff2) format("woff2"),url(/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff) format("woff")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}/*! + * * Quasar Framework v2.10.1 + * * (c) 2015-present Razvan Stoenescu + * * Released under the MIT License. + * */*,*:before,*:after{box-sizing:inherit;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent}html,body,#q-app{width:100%;direction:ltr}body.platform-ios.within-iframe,body.platform-ios.within-iframe #q-app{width:100px;min-width:100%}html,body{margin:0;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;font-family:inherit;margin:0}optgroup{font-weight:700}button,input,select{overflow:visible;text-transform:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button:-moz-focusring,input:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.q-icon{line-height:1;width:1em;height:1em;flex-shrink:0;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;text-align:center;position:relative;box-sizing:content-box;fill:currentColor}.q-icon:before,.q-icon:after{width:100%;height:100%;display:flex!important;align-items:center;justify-content:center}.q-icon>svg,.q-icon>img{width:100%;height:100%}.q-icon,.material-icons,.material-icons-outlined,.material-icons-round,.material-icons-sharp,.material-symbols-outlined,.material-symbols-rounded,.material-symbols-sharp{-webkit-user-select:none;user-select:none;cursor:inherit;font-size:inherit;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.q-panel{height:100%;width:100%}.q-panel>div{height:100%;width:100%}.q-panel-parent{overflow:hidden;position:relative}.q-loading-bar{position:fixed;z-index:9998;transition:transform .5s cubic-bezier(0,0,.2,1),opacity .5s;background:#f44336}.q-loading-bar--top{left:0;right:0;top:0;width:100%}.q-loading-bar--bottom{left:0;right:0;bottom:0;width:100%}.q-loading-bar--right{top:0;bottom:0;right:0;height:100%}.q-loading-bar--left{top:0;bottom:0;left:0;height:100%}.q-avatar{position:relative;vertical-align:middle;display:inline-block;border-radius:50%;font-size:48px;height:1em;width:1em}.q-avatar__content{font-size:.5em;line-height:.5em}.q-avatar__content,.q-avatar img:not(.q-icon):not(.q-img__image){border-radius:inherit;height:inherit;width:inherit}.q-avatar--square{border-radius:0}.q-badge{background-color:var(--q-primary);color:#fff;padding:2px 6px;border-radius:4px;font-size:12px;line-height:12px;min-height:12px;font-weight:400;vertical-align:baseline}.q-badge--single-line{white-space:nowrap}.q-badge--multi-line{word-break:break-all;word-wrap:break-word}.q-badge--floating{position:absolute;top:-4px;right:-3px;cursor:inherit}.q-badge--transparent{opacity:.8}.q-badge--outline{background-color:transparent;border:1px solid currentColor}.q-badge--rounded{border-radius:1em}.q-banner{min-height:54px;padding:8px 16px;background:#fff}.q-banner--top-padding{padding-top:14px}.q-banner__avatar{min-width:1px!important}.q-banner__avatar>.q-avatar{font-size:46px}.q-banner__avatar>.q-icon{font-size:40px}.q-banner__avatar:not(:empty)+.q-banner__content{padding-left:16px}.q-banner__actions.col-auto{padding-left:16px}.q-banner__actions.col-all .q-btn-item{margin:4px 0 0 4px}.q-banner--dense{min-height:32px;padding:8px}.q-banner--dense.q-banner--top-padding{padding-top:12px}.q-banner--dense .q-banner__avatar>.q-avatar,.q-banner--dense .q-banner__avatar>.q-icon{font-size:28px}.q-banner--dense .q-banner__avatar:not(:empty)+.q-banner__content{padding-left:8px}.q-banner--dense .q-banner__actions.col-auto{padding-left:8px}.q-bar{background:rgba(0,0,0,.2)}.q-bar>.q-icon{margin-left:2px}.q-bar>div,.q-bar>div+.q-icon{margin-left:8px}.q-bar>.q-btn{margin-left:2px}.q-bar>.q-icon:first-child,.q-bar>.q-btn:first-child,.q-bar>div:first-child{margin-left:0}.q-bar--standard{padding:0 12px;height:32px;font-size:18px}.q-bar--standard>div{font-size:16px}.q-bar--standard .q-btn{font-size:11px}.q-bar--dense{padding:0 8px;height:24px;font-size:14px}.q-bar--dense .q-btn{font-size:8px}.q-bar--dark{background:rgba(255,255,255,.15)}.q-breadcrumbs__el{color:inherit}.q-breadcrumbs__el-icon{font-size:125%}.q-breadcrumbs__el-icon--with-label{margin-right:8px}[dir=rtl] .q-breadcrumbs__separator .q-icon{transform:scaleX(-1)}.q-btn{display:inline-flex;flex-direction:column;align-items:stretch;position:relative;outline:0;border:0;vertical-align:middle;font-size:14px;line-height:1.715em;text-decoration:none;color:inherit;background:transparent;font-weight:500;text-transform:uppercase;text-align:center;width:auto;height:auto;cursor:default;padding:4px 16px;min-height:2.572em}.q-btn .q-icon,.q-btn .q-spinner{font-size:1.715em}.q-btn.disabled{opacity:.7!important}.q-btn:before{content:"";display:block;position:absolute;inset:0;border-radius:inherit;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.q-btn--actionable{cursor:pointer}.q-btn--actionable.q-btn--standard:before{transition:box-shadow .3s cubic-bezier(.25,.8,.5,1)}.q-btn--actionable.q-btn--standard:active:before,.q-btn--actionable.q-btn--standard.q-btn--active:before{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.q-btn--no-uppercase{text-transform:none}.q-btn--rectangle{border-radius:3px}.q-btn--outline{background:transparent!important}.q-btn--outline:before{border:1px solid currentColor}.q-btn--push{border-radius:7px}.q-btn--push:before{border-bottom:3px solid rgba(0,0,0,.15)}.q-btn--push.q-btn--actionable{transition:transform .3s cubic-bezier(.25,.8,.5,1)}.q-btn--push.q-btn--actionable:before{transition:border-width .3s cubic-bezier(.25,.8,.5,1)}.q-btn--push.q-btn--actionable:active,.q-btn--push.q-btn--actionable.q-btn--active{transform:translateY(2px)}.q-btn--push.q-btn--actionable:active:before,.q-btn--push.q-btn--actionable.q-btn--active:before{border-bottom-width:0}.q-btn--rounded{border-radius:28px}.q-btn--round{border-radius:50%;padding:0;min-width:3em;min-height:3em}.q-btn--square{border-radius:0}.q-btn--flat:before,.q-btn--outline:before,.q-btn--unelevated:before{box-shadow:none}.q-btn--dense{padding:.285em;min-height:2em}.q-btn--dense.q-btn--round{padding:0;min-height:2.4em;min-width:2.4em}.q-btn--dense .on-left{margin-right:6px}.q-btn--dense .on-right{margin-left:6px}.q-btn--fab .q-icon,.q-btn--fab-mini .q-icon{font-size:24px}.q-btn--fab{padding:16px;min-height:56px;min-width:56px}.q-btn--fab .q-icon{margin:auto}.q-btn--fab-mini{padding:8px;min-height:40px;min-width:40px}.q-btn__content{transition:opacity .3s;z-index:0}.q-btn__content--hidden{opacity:0;pointer-events:none}.q-btn__progress{border-radius:inherit;z-index:0}.q-btn__progress-indicator{z-index:-1;transform:translate(-100%);background:rgba(255,255,255,.25)}.q-btn__progress--dark .q-btn__progress-indicator{background:rgba(0,0,0,.2)}.q-btn--flat .q-btn__progress-indicator,.q-btn--outline .q-btn__progress-indicator{opacity:.2;background:currentColor}.q-btn-dropdown--split .q-btn-dropdown__arrow-container{padding:0 4px}.q-btn-dropdown--split .q-btn-dropdown__arrow-container.q-btn--outline{border-left:1px solid currentColor}.q-btn-dropdown--split .q-btn-dropdown__arrow-container:not(.q-btn--outline){border-left:1px solid rgba(255,255,255,.3)}.q-btn-dropdown--simple *+.q-btn-dropdown__arrow{margin-left:8px}.q-btn-dropdown__arrow{transition:transform .28s}.q-btn-dropdown--current{flex-grow:1}.q-btn-group{border-radius:3px;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;vertical-align:middle}.q-btn-group>.q-btn-item{border-radius:inherit;align-self:stretch}.q-btn-group>.q-btn-item:before{box-shadow:none}.q-btn-group>.q-btn-item .q-badge--floating{right:0}.q-btn-group>.q-btn-group{box-shadow:none}.q-btn-group>.q-btn-group:first-child>.q-btn:first-child{border-top-left-radius:inherit;border-bottom-left-radius:inherit}.q-btn-group>.q-btn-group:last-child>.q-btn:last-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.q-btn-group>.q-btn-group:not(:first-child)>.q-btn:first-child:before{border-left:0}.q-btn-group>.q-btn-group:not(:last-child)>.q-btn:last-child:before{border-right:0}.q-btn-group>.q-btn-item:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.q-btn-group>.q-btn-item:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.q-btn-group>.q-btn-item.q-btn--standard:before{z-index:-1}.q-btn-group--push{border-radius:7px}.q-btn-group--push>.q-btn--push.q-btn--actionable{transform:none}.q-btn-group--push>.q-btn--push.q-btn--actionable .q-btn__content{transition:margin-top .3s cubic-bezier(.25,.8,.5,1),margin-bottom .3s cubic-bezier(.25,.8,.5,1)}.q-btn-group--push>.q-btn--push.q-btn--actionable:active .q-btn__content,.q-btn-group--push>.q-btn--push.q-btn--actionable.q-btn--active .q-btn__content{margin-top:2px;margin-bottom:-2px}.q-btn-group--rounded{border-radius:28px}.q-btn-group--square{border-radius:0}.q-btn-group--flat,.q-btn-group--outline,.q-btn-group--unelevated{box-shadow:none}.q-btn-group--outline>.q-separator{display:none}.q-btn-group--outline>.q-btn-item+.q-btn-item:before{border-left:0}.q-btn-group--outline>.q-btn-item:not(:last-child):before{border-right:0}.q-btn-group--stretch{align-self:stretch;border-radius:0}.q-btn-group--glossy>.q-btn-item{background-image:linear-gradient(to bottom,rgba(255,255,255,.3),rgba(255,255,255,0) 50%,rgba(0,0,0,.12) 51%,rgba(0,0,0,.04))!important}.q-btn-group--spread>.q-btn-group{display:flex!important}.q-btn-group--spread>.q-btn-item,.q-btn-group--spread>.q-btn-group>.q-btn-item:not(.q-btn-dropdown__arrow-container){width:auto;min-width:0;max-width:100%;flex:10000 1 0%}.q-btn-toggle{position:relative}.q-card{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;vertical-align:top;background:#fff;position:relative}.q-card>div:first-child,.q-card>img:first-child{border-top:0;border-top-left-radius:inherit;border-top-right-radius:inherit}.q-card>div:last-child,.q-card>img:last-child{border-bottom:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.q-card>div:not(:first-child),.q-card>img:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.q-card>div:not(:last-child),.q-card>img:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0}.q-card>div{border-left:0;border-right:0;box-shadow:none}.q-card--bordered{border:1px solid rgba(0,0,0,.12)}.q-card--dark{border-color:#ffffff47}.q-card__section{position:relative}.q-card__section--vert{padding:16px}.q-card__section--horiz>div:first-child,.q-card__section--horiz>img:first-child{border-top-left-radius:inherit;border-bottom-left-radius:inherit}.q-card__section--horiz>div:last-child,.q-card__section--horiz>img:last-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.q-card__section--horiz>div:not(:first-child),.q-card__section--horiz>img:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.q-card__section--horiz>div:not(:last-child),.q-card__section--horiz>img:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.q-card__section--horiz>div{border-top:0;border-bottom:0;box-shadow:none}.q-card__actions{padding:8px;align-items:center}.q-card__actions .q-btn{padding:0 8px}.q-card__actions--horiz>.q-btn-item+.q-btn-item,.q-card__actions--horiz>.q-btn-group+.q-btn-item,.q-card__actions--horiz>.q-btn-item+.q-btn-group{margin-left:8px}.q-card__actions--vert>.q-btn-item.q-btn--round{align-self:center}.q-card__actions--vert>.q-btn-item+.q-btn-item,.q-card__actions--vert>.q-btn-group+.q-btn-item,.q-card__actions--vert>.q-btn-item+.q-btn-group{margin-top:4px}.q-card__actions--vert>.q-btn-group>.q-btn-item{flex-grow:1}.q-card>img{display:block;width:100%;max-width:100%;border:0}.q-carousel{background-color:#fff;height:400px}.q-carousel__slide{min-height:100%;background-size:cover;background-position:50%}.q-carousel__slide,.q-carousel .q-carousel--padding{padding:16px}.q-carousel__slides-container{height:100%}.q-carousel__control{color:#fff}.q-carousel__arrow{pointer-events:none}.q-carousel__arrow .q-icon{font-size:28px}.q-carousel__arrow .q-btn{pointer-events:all}.q-carousel__prev-arrow--horizontal,.q-carousel__next-arrow--horizontal{top:16px;bottom:16px}.q-carousel__prev-arrow--horizontal{left:16px}.q-carousel__next-arrow--horizontal{right:16px}.q-carousel__prev-arrow--vertical,.q-carousel__next-arrow--vertical{left:16px;right:16px}.q-carousel__prev-arrow--vertical{top:16px}.q-carousel__next-arrow--vertical{bottom:16px}.q-carousel__navigation--top,.q-carousel__navigation--bottom{left:16px;right:16px;overflow-x:auto;overflow-y:hidden}.q-carousel__navigation--top{top:16px}.q-carousel__navigation--bottom{bottom:16px}.q-carousel__navigation--left,.q-carousel__navigation--right{top:16px;bottom:16px;overflow-x:hidden;overflow-y:auto}.q-carousel__navigation--left>.q-carousel__navigation-inner,.q-carousel__navigation--right>.q-carousel__navigation-inner{flex-direction:column}.q-carousel__navigation--left{left:16px}.q-carousel__navigation--right{right:16px}.q-carousel__navigation-inner{flex:1 1 auto}.q-carousel__navigation .q-btn{margin:6px 4px;padding:5px}.q-carousel__navigation-icon--inactive{opacity:.7}.q-carousel .q-carousel__thumbnail{margin:2px;height:50px;width:auto;display:inline-block;cursor:pointer;border:1px solid transparent;border-radius:4px;vertical-align:middle;opacity:.7;transition:opacity .3s}.q-carousel .q-carousel__thumbnail:hover,.q-carousel .q-carousel__thumbnail--active{opacity:1}.q-carousel .q-carousel__thumbnail--active{border-color:currentColor;cursor:default}.q-carousel--navigation-top.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-top .q-carousel--padding,.q-carousel--arrows-vertical.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-vertical .q-carousel--padding{padding-top:60px}.q-carousel--navigation-bottom.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-bottom .q-carousel--padding,.q-carousel--arrows-vertical.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-vertical .q-carousel--padding{padding-bottom:60px}.q-carousel--navigation-left.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-left .q-carousel--padding,.q-carousel--arrows-horizontal.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-horizontal .q-carousel--padding{padding-left:60px}.q-carousel--navigation-right.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-right .q-carousel--padding,.q-carousel--arrows-horizontal.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-horizontal .q-carousel--padding{padding-right:60px}.q-carousel.fullscreen{height:100%}.q-message-name,.q-message-stamp,.q-message-label{font-size:small}.q-message-label{margin:24px 0;text-align:center}.q-message-stamp{color:inherit;margin-top:4px;opacity:.6;display:none}.q-message-avatar{border-radius:50%;width:48px;height:48px;min-width:48px}.q-message{margin-bottom:8px}.q-message:first-child .q-message-label{margin-top:0}.q-message-avatar--received{margin-right:8px}.q-message-text--received{color:#81c784;border-radius:4px 4px 4px 0}.q-message-text--received:last-child:before{right:100%;border-right:0 solid transparent;border-left:8px solid transparent;border-bottom:8px solid currentColor}.q-message-text-content--received{color:#000}.q-message-name--sent{text-align:right}.q-message-avatar--sent{margin-left:8px}.q-message-container--sent{flex-direction:row-reverse}.q-message-text--sent{color:#e0e0e0;border-radius:4px 4px 0}.q-message-text--sent:last-child:before{left:100%;border-left:0 solid transparent;border-right:8px solid transparent;border-bottom:8px solid currentColor}.q-message-text-content--sent{color:#000}.q-message-text{background:currentColor;padding:8px;line-height:1.2;word-break:break-word;position:relative}.q-message-text+.q-message-text{margin-top:3px}.q-message-text:last-child{min-height:48px}.q-message-text:last-child .q-message-stamp{display:block}.q-message-text:last-child:before{content:"";position:absolute;bottom:0;width:0;height:0}.q-checkbox{vertical-align:middle}.q-checkbox__native{width:1px;height:1px}.q-checkbox__bg,.q-checkbox__icon-container{-webkit-user-select:none;user-select:none}.q-checkbox__bg{top:25%;left:25%;width:50%;height:50%;border:2px solid currentColor;border-radius:2px;transition:background .22s cubic-bezier(0,0,.2,1) 0ms;-webkit-print-color-adjust:exact}.q-checkbox__icon{color:currentColor;font-size:.5em}.q-checkbox__svg{color:#fff}.q-checkbox__truthy{stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.78334;stroke-dasharray:29.78334}.q-checkbox__indet{fill:currentColor;transform-origin:50% 50%;transform:rotate(-280deg) scale(0)}.q-checkbox__inner{font-size:40px;width:1em;min-width:1em;height:1em;outline:0;border-radius:50%;color:#0000008a}.q-checkbox__inner--truthy,.q-checkbox__inner--indet{color:var(--q-primary)}.q-checkbox__inner--truthy .q-checkbox__bg,.q-checkbox__inner--indet .q-checkbox__bg{background:currentColor}.q-checkbox__inner--truthy path{stroke-dashoffset:0;transition:stroke-dashoffset .18s cubic-bezier(.4,0,.6,1) 0ms}.q-checkbox__inner--indet .q-checkbox__indet{transform:rotate(0) scale(1);transition:transform .22s cubic-bezier(0,0,.2,1) 0ms}.q-checkbox.disabled{opacity:.75!important}.q-checkbox--dark .q-checkbox__inner{color:#ffffffb3}.q-checkbox--dark .q-checkbox__inner:before{opacity:.32!important}.q-checkbox--dark .q-checkbox__inner--truthy,.q-checkbox--dark .q-checkbox__inner--indet{color:var(--q-primary)}.q-checkbox--dense .q-checkbox__inner{width:.5em;min-width:.5em;height:.5em}.q-checkbox--dense .q-checkbox__bg{left:5%;top:5%;width:90%;height:90%}.q-checkbox--dense .q-checkbox__label{padding-left:.5em}.q-checkbox--dense.reverse .q-checkbox__label{padding-left:0;padding-right:.5em}body.desktop .q-checkbox:not(.disabled) .q-checkbox__inner:before{content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;opacity:.12;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1)}body.desktop .q-checkbox:not(.disabled):focus .q-checkbox__inner:before,body.desktop .q-checkbox:not(.disabled):hover .q-checkbox__inner:before{transform:scaleZ(1)}body.desktop .q-checkbox--dense:not(.disabled):focus .q-checkbox__inner:before,body.desktop .q-checkbox--dense:not(.disabled):hover .q-checkbox__inner:before{transform:scale3d(1.4,1.4,1)}.q-chip{vertical-align:middle;border-radius:16px;outline:0;position:relative;height:2em;max-width:100%;margin:4px;background:#e0e0e0;color:#000000de;font-size:14px;padding:.5em .9em}.q-chip--colored .q-chip__icon,.q-chip--dark .q-chip__icon{color:inherit}.q-chip--outline{background:transparent!important;border:1px solid currentColor}.q-chip .q-avatar{font-size:2em;margin-left:-.45em;margin-right:.2em;border-radius:16px}.q-chip--selected .q-avatar{display:none}.q-chip__icon{color:#0000008a;font-size:1.5em;margin:-.2em}.q-chip__icon--left{margin-right:.2em}.q-chip__icon--right{margin-left:.2em}.q-chip__icon--remove{margin-left:.1em;margin-right:-.5em;opacity:.6;outline:0}.q-chip__icon--remove:hover,.q-chip__icon--remove:focus{opacity:1}.q-chip__content{white-space:nowrap}.q-chip--dense{border-radius:12px;padding:0 .4em;height:1.5em}.q-chip--dense .q-avatar{font-size:1.5em;margin-left:-.27em;margin-right:.1em;border-radius:12px}.q-chip--dense .q-chip__icon{font-size:1.25em}.q-chip--dense .q-chip__icon--left{margin-right:.195em}.q-chip--dense .q-chip__icon--remove{margin-right:-.25em}.q-chip--square{border-radius:4px}.q-chip--square .q-avatar{border-radius:3px 0 0 3px}body.desktop .q-chip--clickable:focus{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}.q-circular-progress{display:inline-block;position:relative;vertical-align:middle;width:1em;height:1em;line-height:1}.q-circular-progress.q-focusable{border-radius:50%}.q-circular-progress__svg{width:100%;height:100%}.q-circular-progress__text{font-size:.25em}.q-circular-progress--indeterminate .q-circular-progress__svg{transform-origin:50% 50%;animation:q-spin 2s linear infinite}.q-circular-progress--indeterminate .q-circular-progress__circle{stroke-dasharray:1 400;stroke-dashoffset:0;animation:q-circular-progress-circle 1.5s ease-in-out infinite}@keyframes q-circular-progress-circle{0%{stroke-dasharray:1,400;stroke-dashoffset:0}50%{stroke-dasharray:400,400;stroke-dashoffset:-100}to{stroke-dasharray:400,400;stroke-dashoffset:-300}}.q-color-picker{overflow:hidden;background:#fff;max-width:350px;vertical-align:top;min-width:180px;border-radius:4px;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.q-color-picker .q-tab{padding:0!important}.q-color-picker--bordered{border:1px solid rgba(0,0,0,.12)}.q-color-picker__header-tabs{height:32px}.q-color-picker__header input{line-height:24px;border:0}.q-color-picker__header .q-tab{min-height:32px!important;height:32px!important}.q-color-picker__header .q-tab--inactive{background:linear-gradient(to top,rgba(0,0,0,.3) 0%,rgba(0,0,0,.15) 25%,rgba(0,0,0,.1))}.q-color-picker__error-icon{bottom:2px;right:2px;font-size:24px;opacity:0;transition:opacity .3s ease-in}.q-color-picker__header-content{position:relative;background:#fff}.q-color-picker__header-content--light{color:#000}.q-color-picker__header-content--dark{color:#fff}.q-color-picker__header-content--dark .q-tab--inactive:before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.2)}.q-color-picker__header-banner{height:36px}.q-color-picker__header-bg{background:#fff;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAH0lEQVQoU2NkYGAwZkAFZ5G5jPRRgOYEVDeB3EBjBQBOZwTVugIGyAAAAABJRU5ErkJggg==)!important}.q-color-picker__footer{height:36px}.q-color-picker__footer .q-tab{min-height:36px!important;height:36px!important}.q-color-picker__footer .q-tab--inactive{background:linear-gradient(to bottom,rgba(0,0,0,.3) 0%,rgba(0,0,0,.15) 25%,rgba(0,0,0,.1))}.q-color-picker__spectrum{width:100%;height:100%}.q-color-picker__spectrum-tab{padding:0!important}.q-color-picker__spectrum-white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.q-color-picker__spectrum-black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.q-color-picker__spectrum-circle{width:10px;height:10px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-5px,-5px)}.q-color-picker__hue .q-slider__track{background:linear-gradient(to right,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)!important;opacity:1}.q-color-picker__alpha .q-slider__track-container{padding-top:0}.q-color-picker__alpha .q-slider__track:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,0),#757575)}.q-color-picker__sliders{padding:0 16px}.q-color-picker__sliders .q-slider__thumb{color:#424242}.q-color-picker__sliders .q-slider__thumb path{stroke-width:2px;fill:transparent}.q-color-picker__sliders .q-slider--active path{stroke-width:3px}.q-color-picker__tune-tab .q-slider{margin-left:18px;margin-right:18px}.q-color-picker__tune-tab input{font-size:11px;border:1px solid #e0e0e0;border-radius:4px;width:3.5em}.q-color-picker__palette-tab{padding:0!important}.q-color-picker__palette-rows--editable .q-color-picker__cube{cursor:pointer}.q-color-picker__cube{padding-bottom:10%;width:10%!important}.q-color-picker input{color:inherit;background:transparent;outline:0;text-align:center}.q-color-picker .q-tabs{overflow:hidden}.q-color-picker .q-tab--active{box-shadow:0 0 14px 3px #0003}.q-color-picker .q-tab--active .q-focus-helper,.q-color-picker .q-tab__indicator{display:none}.q-color-picker .q-tab-panels{background:inherit}.q-color-picker--dark .q-color-picker__tune-tab input{border:1px solid rgba(255,255,255,.3)}.q-color-picker--dark .q-slider__thumb{color:#fafafa}.q-date{display:inline-flex;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;background:#fff;width:290px;min-width:290px;max-width:100%}.q-date--bordered{border:1px solid rgba(0,0,0,.12)}.q-date__header{border-top-left-radius:inherit;color:#fff;background-color:var(--q-primary);padding:16px}.q-date__actions{padding:0 16px 16px}.q-date__content,.q-date__main{outline:0}.q-date__content .q-btn{font-weight:400}.q-date__header-link{opacity:.64;outline:0;transition:opacity .3s ease-out}.q-date__header-link--active,.q-date__header-link:hover,.q-date__header-link:focus{opacity:1}.q-date__header-subtitle{font-size:14px;line-height:1.75;letter-spacing:.00938em}.q-date__header-title-label{font-size:24px;line-height:1.2;letter-spacing:.00735em}.q-date__view{height:100%;width:100%;min-height:290px;padding:16px}.q-date__navigation{height:12.5%}.q-date__navigation>div:first-child{width:8%;min-width:24px;justify-content:flex-end}.q-date__navigation>div:last-child{width:8%;min-width:24px;justify-content:flex-start}.q-date__calendar-weekdays{height:12.5%}.q-date__calendar-weekdays>div{opacity:.38;font-size:12px}.q-date__calendar-item{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:14.285%!important;height:12.5%!important;position:relative;padding:1px}.q-date__calendar-item:after{content:"";position:absolute;pointer-events:none;inset:1px 0;border-style:dashed;border-color:transparent;border-width:1px}.q-date__calendar-item>div,.q-date__calendar-item button{width:30px;height:30px;border-radius:50%}.q-date__calendar-item>div{line-height:30px;text-align:center}.q-date__calendar-item>button{line-height:22px}.q-date__calendar-item--out{opacity:.18}.q-date__calendar-item--fill{visibility:hidden}.q-date__range:before,.q-date__range-from:before,.q-date__range-to:before{content:"";background-color:currentColor;position:absolute;inset:1px 0;opacity:.3}.q-date__range:nth-child(7n-6):before,.q-date__range-from:nth-child(7n-6):before,.q-date__range-to:nth-child(7n-6):before{border-top-left-radius:0;border-bottom-left-radius:0}.q-date__range:nth-child(7n):before,.q-date__range-from:nth-child(7n):before,.q-date__range-to:nth-child(7n):before{border-top-right-radius:0;border-bottom-right-radius:0}.q-date__range-from:before{left:50%}.q-date__range-to:before{right:50%}.q-date__edit-range:after{border-color:currentColor transparent}.q-date__edit-range:nth-child(7n-6):after{border-top-left-radius:0;border-bottom-left-radius:0}.q-date__edit-range:nth-child(7n):after{border-top-right-radius:0;border-bottom-right-radius:0}.q-date__edit-range-from:after,.q-date__edit-range-from-to:after{left:4px;border-left-color:currentColor;border-top-color:currentColor;border-bottom-color:currentColor;border-top-left-radius:28px;border-bottom-left-radius:28px}.q-date__edit-range-to:after,.q-date__edit-range-from-to:after{right:4px;border-right-color:currentColor;border-top-color:currentColor;border-bottom-color:currentColor;border-top-right-radius:28px;border-bottom-right-radius:28px}.q-date__calendar-days-container{height:75%;min-height:192px}.q-date__calendar-days>div{height:16.66%!important}.q-date__event{position:absolute;bottom:2px;left:50%;height:5px;width:8px;border-radius:5px;background-color:var(--q-secondary);transform:translate3d(-50%,0,0)}.q-date__today{box-shadow:0 0 1px 0 currentColor}.q-date__years-content{padding:0 8px}.q-date__years-item,.q-date__months-item{flex:0 0 33.3333%}.q-date.disabled .q-date__header,.q-date.disabled .q-date__content,.q-date--readonly .q-date__header,.q-date--readonly .q-date__content{pointer-events:none}.q-date--readonly .q-date__navigation{display:none}.q-date--portrait{flex-direction:column}.q-date--portrait-standard .q-date__content{height:calc(100% - 86px)}.q-date--portrait-standard .q-date__header{border-top-right-radius:inherit;height:86px}.q-date--portrait-standard .q-date__header-title{align-items:center;height:30px}.q-date--portrait-minimal .q-date__content{height:100%}.q-date--landscape{flex-direction:row;align-items:stretch;min-width:420px}.q-date--landscape>div{display:flex;flex-direction:column}.q-date--landscape .q-date__content{height:100%}.q-date--landscape-standard{min-width:420px}.q-date--landscape-standard .q-date__header{border-bottom-left-radius:inherit;min-width:110px;width:110px}.q-date--landscape-standard .q-date__header-title{flex-direction:column}.q-date--landscape-standard .q-date__header-today{margin-top:12px;margin-left:-8px}.q-date--landscape-minimal{width:310px}.q-date--dark{border-color:#ffffff47}.q-dialog__title{font-size:1.25rem;font-weight:500;line-height:2rem;letter-spacing:.0125em}.q-dialog__progress{font-size:4rem}.q-dialog__inner{outline:0}.q-dialog__inner>div{pointer-events:all;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position;border-radius:4px;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.q-dialog__inner--square>div{border-radius:0!important}.q-dialog__inner>.q-card>.q-card__actions .q-btn--rectangle{min-width:64px}.q-dialog__inner--minimized{padding:24px}.q-dialog__inner--minimized>div{max-height:calc(100vh - 48px)}.q-dialog__inner--maximized>div{height:100%;width:100%;max-height:100vh;max-width:100vw;border-radius:0!important;top:0!important;left:0!important}.q-dialog__inner--top,.q-dialog__inner--bottom{padding-top:0!important;padding-bottom:0!important}.q-dialog__inner--right,.q-dialog__inner--left{padding-right:0!important;padding-left:0!important}.q-dialog__inner--left:not(.q-dialog__inner--animating)>div,.q-dialog__inner--top:not(.q-dialog__inner--animating)>div{border-top-left-radius:0}.q-dialog__inner--right:not(.q-dialog__inner--animating)>div,.q-dialog__inner--top:not(.q-dialog__inner--animating)>div{border-top-right-radius:0}.q-dialog__inner--left:not(.q-dialog__inner--animating)>div,.q-dialog__inner--bottom:not(.q-dialog__inner--animating)>div{border-bottom-left-radius:0}.q-dialog__inner--right:not(.q-dialog__inner--animating)>div,.q-dialog__inner--bottom:not(.q-dialog__inner--animating)>div{border-bottom-right-radius:0}.q-dialog__inner--fullwidth>div{width:100%!important;max-width:100%!important}.q-dialog__inner--fullheight>div{height:100%!important;max-height:100%!important}.q-dialog__backdrop{z-index:-1;pointer-events:all;outline:0;background:rgba(0,0,0,.4)}body.platform-ios .q-dialog__inner--minimized>div,body.platform-android:not(.native-mobile) .q-dialog__inner--minimized>div{max-height:calc(100vh - 108px)}body.q-ios-padding .q-dialog__inner{padding-top:20px!important;padding-top:env(safe-area-inset-top)!important;padding-bottom:env(safe-area-inset-bottom)!important}body.q-ios-padding .q-dialog__inner>div{max-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}@media (max-width: 599.98px){.q-dialog__inner--top,.q-dialog__inner--bottom{padding-left:0;padding-right:0}.q-dialog__inner--top>div,.q-dialog__inner--bottom>div{width:100%!important}}@media (min-width: 600px){.q-dialog__inner--minimized>div{max-width:560px}}.q-body--dialog{overflow:hidden}.q-bottom-sheet{padding-bottom:8px}.q-bottom-sheet__avatar{border-radius:50%}.q-bottom-sheet--list{width:400px}.q-bottom-sheet--list .q-icon,.q-bottom-sheet--list img{font-size:24px;width:24px;height:24px}.q-bottom-sheet--grid{width:700px}.q-bottom-sheet--grid .q-bottom-sheet__item{padding:8px;text-align:center;min-width:100px}.q-bottom-sheet--grid .q-icon,.q-bottom-sheet--grid img,.q-bottom-sheet--grid .q-bottom-sheet__empty-icon{font-size:48px;width:48px;height:48px;margin-bottom:8px}.q-bottom-sheet--grid .q-separator{margin:12px 0}.q-bottom-sheet__item{flex:0 0 33.3333%}@media (min-width: 600px){.q-bottom-sheet__item{flex:0 0 25%}}.q-dialog-plugin{width:400px}.q-dialog-plugin__form{max-height:50vh}.q-dialog-plugin .q-card__section+.q-card__section{padding-top:0}.q-dialog-plugin--progress{text-align:center}.q-editor{border:1px solid rgba(0,0,0,.12);border-radius:4px;background-color:#fff}.q-editor.disabled{border-style:dashed}.q-editor>div:first-child,.q-editor__toolbars-container,.q-editor__toolbars-container>div:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.q-editor__content{outline:0;padding:10px;min-height:10em;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:auto;max-width:100%}.q-editor__content pre{white-space:pre-wrap}.q-editor__content hr{border:0;outline:0;margin:1px;height:1px;background:rgba(0,0,0,.12)}.q-editor__content:empty:not(:focus):before{content:attr(placeholder);opacity:.7}.q-editor__toolbar{border-bottom:1px solid rgba(0,0,0,.12);min-height:32px}.q-editor__toolbars-container{max-width:100%}.q-editor .q-btn{margin:4px}.q-editor__toolbar-group{position:relative;margin:0 4px}.q-editor__toolbar-group+.q-editor__toolbar-group:before{content:"";position:absolute;left:-4px;top:4px;bottom:4px;width:1px;background:rgba(0,0,0,.12)}.q-editor__link-input{color:inherit;text-decoration:none;text-transform:none;border:none;border-radius:0;background:none;outline:0}.q-editor--flat,.q-editor--flat .q-editor__toolbar{border:0}.q-editor--dense .q-editor__toolbar-group{display:flex;align-items:center;flex-wrap:nowrap}.q-editor--dark{border-color:#ffffff47}.q-editor--dark .q-editor__content hr{background:rgba(255,255,255,.28)}.q-editor--dark .q-editor__toolbar{border-color:#ffffff47}.q-editor--dark .q-editor__toolbar-group+.q-editor__toolbar-group:before{background:rgba(255,255,255,.28)}.q-expansion-item__border{opacity:0}.q-expansion-item__toggle-icon{position:relative;transition:transform .3s}.q-expansion-item__toggle-icon--rotated{transform:rotate(180deg)}.q-expansion-item__toggle-focus{width:1em!important;height:1em!important;position:relative!important}.q-expansion-item__toggle-focus+.q-expansion-item__toggle-icon{margin-top:-1em}.q-expansion-item--standard.q-expansion-item--expanded>div>.q-expansion-item__border{opacity:1}.q-expansion-item--popup{transition:padding .5s}.q-expansion-item--popup>.q-expansion-item__container{border:1px solid rgba(0,0,0,.12)}.q-expansion-item--popup>.q-expansion-item__container>.q-separator{display:none}.q-expansion-item--popup.q-expansion-item--collapsed{padding:0 15px}.q-expansion-item--popup.q-expansion-item--expanded{padding:15px 0}.q-expansion-item--popup.q-expansion-item--expanded+.q-expansion-item--popup.q-expansion-item--expanded{padding-top:0}.q-expansion-item--popup.q-expansion-item--collapsed:not(:first-child)>.q-expansion-item__container{border-top-width:0}.q-expansion-item--popup.q-expansion-item--expanded+.q-expansion-item--popup.q-expansion-item--collapsed>.q-expansion-item__container{border-top-width:1px}.q-expansion-item__content>.q-card{box-shadow:none;border-radius:0}.q-expansion-item:first-child>div>.q-expansion-item__border--top{opacity:0}.q-expansion-item:last-child>div>.q-expansion-item__border--bottom{opacity:0}.q-expansion-item--expanded+.q-expansion-item--expanded>div>.q-expansion-item__border--top{opacity:0}.q-expansion-item--expanded .q-textarea--autogrow textarea{animation:q-expansion-done 0s}@keyframes q-expansion-done{0%{--q-exp-done: 1}}.z-fab{z-index:990}.q-fab{position:relative;vertical-align:middle}.q-fab>.q-btn{width:100%}.q-fab--form-rounded{border-radius:28px}.q-fab--form-square{border-radius:4px}.q-fab__icon,.q-fab__active-icon{transition:opacity .4s,transform .4s}.q-fab__icon{opacity:1;transform:rotate(0)}.q-fab__active-icon{opacity:0;transform:rotate(-180deg)}.q-fab__label--external{position:absolute;padding:0 8px;transition:opacity .18s cubic-bezier(.65,.815,.735,.395)}.q-fab__label--external-hidden{opacity:0;pointer-events:none}.q-fab__label--external-left{top:50%;left:-12px;transform:translate(-100%,-50%)}.q-fab__label--external-right{top:50%;right:-12px;transform:translate(100%,-50%)}.q-fab__label--external-bottom{bottom:-12px;left:50%;transform:translate(-50%,100%)}.q-fab__label--external-top{top:-12px;left:50%;transform:translate(-50%,-100%)}.q-fab__label--internal{padding:0;transition:font-size .12s cubic-bezier(.65,.815,.735,.395),max-height .12s cubic-bezier(.65,.815,.735,.395),opacity .07s cubic-bezier(.65,.815,.735,.395);max-height:30px}.q-fab__label--internal-hidden{font-size:0;opacity:0}.q-fab__label--internal-top{padding-bottom:.12em}.q-fab__label--internal-bottom{padding-top:.12em}.q-fab__label--internal-top.q-fab__label--internal-hidden,.q-fab__label--internal-bottom.q-fab__label--internal-hidden{max-height:0}.q-fab__label--internal-left{padding-left:.285em;padding-right:.571em}.q-fab__label--internal-right{padding-right:.285em;padding-left:.571em}.q-fab__icon-holder{min-width:24px;min-height:24px;position:relative}.q-fab__icon-holder--opened .q-fab__icon{transform:rotate(180deg);opacity:0}.q-fab__icon-holder--opened .q-fab__active-icon{transform:rotate(0);opacity:1}.q-fab__actions{position:absolute;opacity:0;transition:transform .18s ease-in,opacity .18s ease-in;pointer-events:none;align-items:center;justify-content:center;align-self:center;padding:3px}.q-fab__actions .q-btn{margin:5px}.q-fab__actions--right{transform-origin:0 50%;transform:scale(.4) translate(-62px);height:56px;left:100%;margin-left:9px}.q-fab__actions--left{transform-origin:100% 50%;transform:scale(.4) translate(62px);height:56px;right:100%;margin-right:9px;flex-direction:row-reverse}.q-fab__actions--up{transform-origin:50% 100%;transform:scale(.4) translateY(62px);width:56px;bottom:100%;margin-bottom:9px;flex-direction:column-reverse}.q-fab__actions--down{transform-origin:50% 0;transform:scale(.4) translateY(-62px);width:56px;top:100%;margin-top:9px;flex-direction:column}.q-fab__actions--up,.q-fab__actions--down{left:50%;margin-left:-28px}.q-fab__actions--opened{opacity:1;transform:scale(1) translate(0);pointer-events:all}.q-fab--align-left>.q-fab__actions--up,.q-fab--align-left>.q-fab__actions--down{align-items:flex-start;left:28px}.q-fab--align-right>.q-fab__actions--up,.q-fab--align-right>.q-fab__actions--down{align-items:flex-end;left:auto;right:0}.q-field{font-size:14px}.q-field ::-ms-clear,.q-field ::-ms-reveal{display:none}.q-field--with-bottom{padding-bottom:20px}.q-field__marginal{height:56px;color:#0000008a;font-size:24px}.q-field__marginal>*+*{margin-left:2px}.q-field__marginal .q-avatar{font-size:32px}.q-field__before,.q-field__prepend{padding-right:12px}.q-field__after,.q-field__append{padding-left:12px}.q-field__after:empty,.q-field__append:empty{display:none}.q-field__append+.q-field__append{padding-left:2px}.q-field__inner{text-align:left}.q-field__bottom{font-size:12px;min-height:20px;line-height:1;color:#0000008a;padding:8px 12px 0;backface-visibility:hidden}.q-field__bottom--animated{transform:translateY(100%);position:absolute;left:0;right:0;bottom:0}.q-field__messages{line-height:1}.q-field__messages>div{word-break:break-word;word-wrap:break-word;overflow-wrap:break-word}.q-field__messages>div+div{margin-top:4px}.q-field__counter{padding-left:8px;line-height:1}.q-field--item-aligned{padding:8px 16px}.q-field--item-aligned .q-field__before{min-width:56px}.q-field__control-container{height:inherit}.q-field__control{color:var(--q-primary);height:56px;max-width:100%;outline:none}.q-field__control:before,.q-field__control:after{content:"";position:absolute;inset:0;pointer-events:none}.q-field__control:before{border-radius:inherit}.q-field__shadow{top:8px;opacity:0;overflow:hidden;white-space:pre-wrap;transition:opacity .36s cubic-bezier(.4,0,.2,1)}.q-field__shadow+.q-field__native::placeholder{transition:opacity .36s cubic-bezier(.4,0,.2,1)}.q-field__shadow+.q-field__native:focus::placeholder{opacity:0}.q-field__native,.q-field__prefix,.q-field__suffix,.q-field__input{font-weight:400;line-height:28px;letter-spacing:.00937em;text-decoration:inherit;text-transform:inherit;border:none;border-radius:0;background:none;color:#000000de;outline:0;padding:6px 0}.q-field__native,.q-field__input{width:100%;min-width:0;outline:0!important;-webkit-user-select:auto;user-select:auto}.q-field__native:-webkit-autofill,.q-field__input:-webkit-autofill{-webkit-animation-name:q-autofill;-webkit-animation-fill-mode:both}.q-field__native:-webkit-autofill+.q-field__label,.q-field__input:-webkit-autofill+.q-field__label{transform:translateY(-40%) scale(.75)}.q-field__native[type=number]:invalid+.q-field__label,.q-field__input[type=number]:invalid+.q-field__label{transform:translateY(-40%) scale(.75)}.q-field__native:invalid,.q-field__input:invalid{box-shadow:none}.q-field__native[type=file]{line-height:1em}.q-field__input{padding:0;height:0;min-height:24px;line-height:24px}.q-field__prefix,.q-field__suffix{transition:opacity .36s cubic-bezier(.4,0,.2,1);white-space:nowrap}.q-field__prefix{padding-right:4px}.q-field__suffix{padding-left:4px}.q-field--readonly .q-placeholder,.q-field--disabled .q-placeholder{opacity:1!important}.q-field--readonly.q-field--labeled .q-field__native,.q-field--readonly.q-field--labeled .q-field__input{cursor:default}.q-field--readonly.q-field--float .q-field__native,.q-field--readonly.q-field--float .q-field__input{cursor:text}.q-field--disabled .q-field__inner{cursor:not-allowed}.q-field--disabled .q-field__control{pointer-events:none}.q-field--disabled .q-field__control>div{opacity:.6!important}.q-field--disabled .q-field__control>div,.q-field--disabled .q-field__control>div *{outline:0!important}.q-field__label{left:0;top:18px;max-width:100%;color:#0009;font-size:16px;line-height:20px;font-weight:400;letter-spacing:.00937em;text-decoration:inherit;text-transform:inherit;transform-origin:left top;transition:transform .36s cubic-bezier(.4,0,.2,1),max-width .324s cubic-bezier(.4,0,.2,1);backface-visibility:hidden}.q-field--float .q-field__label{max-width:133%;transform:translateY(-40%) scale(.75);transition:transform .36s cubic-bezier(.4,0,.2,1),max-width .396s cubic-bezier(.4,0,.2,1)}.q-field--highlighted .q-field__label{color:currentColor}.q-field--highlighted .q-field__shadow{opacity:.5}.q-field--filled .q-field__control{padding:0 12px;background:rgba(0,0,0,.05);border-radius:4px 4px 0 0}.q-field--filled .q-field__control:before{background:rgba(0,0,0,.05);border-bottom:1px solid rgba(0,0,0,.42);opacity:0;transition:opacity .36s cubic-bezier(.4,0,.2,1),background .36s cubic-bezier(.4,0,.2,1)}.q-field--filled .q-field__control:hover:before{opacity:1}.q-field--filled .q-field__control:after{height:2px;top:auto;transform-origin:center bottom;transform:scale3d(0,1,1);background:currentColor;transition:transform .36s cubic-bezier(.4,0,.2,1)}.q-field--filled.q-field--rounded .q-field__control{border-radius:28px 28px 0 0}.q-field--filled.q-field--highlighted .q-field__control:before{opacity:1;background:rgba(0,0,0,.12)}.q-field--filled.q-field--highlighted .q-field__control:after{transform:scaleZ(1)}.q-field--filled.q-field--dark .q-field__control,.q-field--filled.q-field--dark .q-field__control:before{background:rgba(255,255,255,.07)}.q-field--filled.q-field--dark.q-field--highlighted .q-field__control:before{background:rgba(255,255,255,.1)}.q-field--filled.q-field--readonly .q-field__control:before{opacity:1;background:transparent;border-bottom-style:dashed}.q-field--outlined .q-field__control{border-radius:4px;padding:0 12px}.q-field--outlined .q-field__control:before{border:1px solid rgba(0,0,0,.24);transition:border-color .36s cubic-bezier(.4,0,.2,1)}.q-field--outlined .q-field__control:hover:before{border-color:#000}.q-field--outlined .q-field__control:after{height:inherit;border-radius:inherit;border:2px solid transparent;transition:border-color .36s cubic-bezier(.4,0,.2,1)}.q-field--outlined .q-field__native:-webkit-autofill,.q-field--outlined .q-field__input:-webkit-autofill{margin-top:1px;margin-bottom:1px}.q-field--outlined.q-field--rounded .q-field__control{border-radius:28px}.q-field--outlined.q-field--highlighted .q-field__control:hover:before{border-color:transparent}.q-field--outlined.q-field--highlighted .q-field__control:after{border-color:currentColor;border-width:2px;transform:scaleZ(1)}.q-field--outlined.q-field--readonly .q-field__control:before{border-style:dashed}.q-field--standard .q-field__control:before{border-bottom:1px solid rgba(0,0,0,.24);transition:border-color .36s cubic-bezier(.4,0,.2,1)}.q-field--standard .q-field__control:hover:before{border-color:#000}.q-field--standard .q-field__control:after{height:2px;top:auto;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;transform-origin:center bottom;transform:scale3d(0,1,1);background:currentColor;transition:transform .36s cubic-bezier(.4,0,.2,1)}.q-field--standard.q-field--highlighted .q-field__control:after{transform:scaleZ(1)}.q-field--standard.q-field--readonly .q-field__control:before{border-bottom-style:dashed}.q-field--dark .q-field__control:before{border-color:#fff9}.q-field--dark .q-field__control:hover:before{border-color:#fff}.q-field--dark .q-field__native,.q-field--dark .q-field__prefix,.q-field--dark .q-field__suffix,.q-field--dark .q-field__input{color:#fff}.q-field--dark:not(.q-field--highlighted) .q-field__label,.q-field--dark .q-field__marginal,.q-field--dark .q-field__bottom{color:#ffffffb3}.q-field--standout .q-field__control{padding:0 12px;background:rgba(0,0,0,.05);border-radius:4px;transition:box-shadow .36s cubic-bezier(.4,0,.2,1),background-color .36s cubic-bezier(.4,0,.2,1)}.q-field--standout .q-field__control:before{background:rgba(0,0,0,.07);opacity:0;transition:opacity .36s cubic-bezier(.4,0,.2,1),background .36s cubic-bezier(.4,0,.2,1)}.q-field--standout .q-field__control:hover:before{opacity:1}.q-field--standout.q-field--rounded .q-field__control{border-radius:28px}.q-field--standout.q-field--highlighted .q-field__control{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;background:#000}.q-field--standout.q-field--highlighted .q-field__native,.q-field--standout.q-field--highlighted .q-field__prefix,.q-field--standout.q-field--highlighted .q-field__suffix,.q-field--standout.q-field--highlighted .q-field__prepend,.q-field--standout.q-field--highlighted .q-field__append,.q-field--standout.q-field--highlighted .q-field__input{color:#fff}.q-field--standout.q-field--readonly .q-field__control:before{opacity:1;background:transparent;border:1px dashed rgba(0,0,0,.24)}.q-field--standout.q-field--dark .q-field__control{background:rgba(255,255,255,.07)}.q-field--standout.q-field--dark .q-field__control:before{background:rgba(255,255,255,.07)}.q-field--standout.q-field--dark.q-field--highlighted .q-field__control{background:#fff}.q-field--standout.q-field--dark.q-field--highlighted .q-field__native,.q-field--standout.q-field--dark.q-field--highlighted .q-field__prefix,.q-field--standout.q-field--dark.q-field--highlighted .q-field__suffix,.q-field--standout.q-field--dark.q-field--highlighted .q-field__prepend,.q-field--standout.q-field--dark.q-field--highlighted .q-field__append,.q-field--standout.q-field--dark.q-field--highlighted .q-field__input{color:#000}.q-field--standout.q-field--dark.q-field--readonly .q-field__control:before{border-color:#ffffff3d}.q-field--labeled .q-field__native,.q-field--labeled .q-field__prefix,.q-field--labeled .q-field__suffix{line-height:24px;padding-top:24px;padding-bottom:8px}.q-field--labeled .q-field__shadow{top:0}.q-field--labeled:not(.q-field--float) .q-field__prefix,.q-field--labeled:not(.q-field--float) .q-field__suffix{opacity:0}.q-field--labeled:not(.q-field--float) .q-field__native::placeholder,.q-field--labeled:not(.q-field--float) .q-field__input::placeholder{color:transparent}.q-field--labeled.q-field--dense .q-field__native,.q-field--labeled.q-field--dense .q-field__prefix,.q-field--labeled.q-field--dense .q-field__suffix{padding-top:14px;padding-bottom:2px}.q-field--dense .q-field__shadow{top:0}.q-field--dense .q-field__control,.q-field--dense .q-field__marginal{height:40px}.q-field--dense .q-field__bottom{font-size:11px}.q-field--dense .q-field__label{font-size:14px;top:10px}.q-field--dense .q-field__before,.q-field--dense .q-field__prepend{padding-right:6px}.q-field--dense .q-field__after,.q-field--dense .q-field__append{padding-left:6px}.q-field--dense .q-field__append+.q-field__append{padding-left:2px}.q-field--dense .q-field__marginal .q-avatar{font-size:24px}.q-field--dense.q-field--float .q-field__label{transform:translateY(-30%) scale(.75)}.q-field--dense .q-field__native:-webkit-autofill+.q-field__label,.q-field--dense .q-field__input:-webkit-autofill+.q-field__label{transform:translateY(-30%) scale(.75)}.q-field--dense .q-field__native[type=number]:invalid+.q-field__label,.q-field--dense .q-field__input[type=number]:invalid+.q-field__label{transform:translateY(-30%) scale(.75)}.q-field--borderless .q-field__bottom,.q-field--borderless.q-field--dense .q-field__control,.q-field--standard .q-field__bottom,.q-field--standard.q-field--dense .q-field__control{padding-left:0;padding-right:0}.q-field--error .q-field__label{animation:q-field-label .36s}.q-field--error .q-field__bottom{color:var(--q-negative)}.q-field__focusable-action{opacity:.6;cursor:pointer;outline:0!important;border:0;color:inherit;background:transparent;padding:0}.q-field__focusable-action:hover,.q-field__focusable-action:focus{opacity:1}.q-field--auto-height .q-field__control{height:auto}.q-field--auto-height .q-field__control,.q-field--auto-height .q-field__native{min-height:56px}.q-field--auto-height .q-field__native{align-items:center}.q-field--auto-height .q-field__control-container{padding-top:0}.q-field--auto-height .q-field__native,.q-field--auto-height .q-field__prefix,.q-field--auto-height .q-field__suffix{line-height:18px}.q-field--auto-height.q-field--labeled .q-field__control-container{padding-top:24px}.q-field--auto-height.q-field--labeled .q-field__shadow{top:24px}.q-field--auto-height.q-field--labeled .q-field__native,.q-field--auto-height.q-field--labeled .q-field__prefix,.q-field--auto-height.q-field--labeled .q-field__suffix{padding-top:0}.q-field--auto-height.q-field--labeled .q-field__native{min-height:24px}.q-field--auto-height.q-field--dense .q-field__control,.q-field--auto-height.q-field--dense .q-field__native{min-height:40px}.q-field--auto-height.q-field--dense.q-field--labeled .q-field__control-container{padding-top:14px}.q-field--auto-height.q-field--dense.q-field--labeled .q-field__shadow{top:14px}.q-field--auto-height.q-field--dense.q-field--labeled .q-field__native{min-height:24px}.q-field--square .q-field__control{border-radius:0!important}.q-transition--field-message-enter-active,.q-transition--field-message-leave-active{transition:transform .6s cubic-bezier(.86,0,.07,1),opacity .6s cubic-bezier(.86,0,.07,1)}.q-transition--field-message-enter-from,.q-transition--field-message-leave-to{opacity:0;transform:translateY(-10px)}.q-transition--field-message-leave-from,.q-transition--field-message-leave-active{position:absolute}@keyframes q-field-label{40%{margin-left:2px}60%,80%{margin-left:-2px}70%,90%{margin-left:2px}}@keyframes q-autofill{to{background:transparent;color:inherit}}.q-file .q-field__native{word-break:break-all;overflow:hidden}.q-file .q-field__input{opacity:0!important}.q-file .q-field__input::-webkit-file-upload-button{cursor:pointer}.q-file__filler{visibility:hidden;width:100%;border:none;padding:0}.q-file__dnd{outline:1px dashed currentColor;outline-offset:-4px}.q-form{position:relative}.q-img{position:relative;width:100%;display:inline-block;vertical-align:middle;overflow:hidden}.q-img__loading .q-spinner{font-size:50px}.q-img__container{border-radius:inherit;font-size:0}.q-img__image{border-radius:inherit;width:100%;height:100%;opacity:0}.q-img__image--with-transition{transition:opacity .28s ease-in}.q-img__image--loaded{opacity:1}.q-img__content{border-radius:inherit;pointer-events:none}.q-img__content>div{pointer-events:all;position:absolute;padding:16px;color:#fff;background:rgba(0,0,0,.47)}.q-img--no-menu .q-img__image,.q-img--no-menu .q-img__placeholder{pointer-events:none}.q-inner-loading{background:rgba(255,255,255,.6)}.q-inner-loading--dark{background:rgba(0,0,0,.4)}.q-inner-loading__label{margin-top:8px}.q-textarea .q-field__control{min-height:56px;height:auto}.q-textarea .q-field__control-container{padding-top:2px;padding-bottom:2px}.q-textarea .q-field__shadow{top:2px;bottom:2px}.q-textarea .q-field__native,.q-textarea .q-field__prefix,.q-textarea .q-field__suffix{line-height:18px}.q-textarea .q-field__native{resize:vertical;padding-top:17px;min-height:52px}.q-textarea.q-field--labeled .q-field__control-container{padding-top:26px}.q-textarea.q-field--labeled .q-field__shadow{top:26px}.q-textarea.q-field--labeled .q-field__native,.q-textarea.q-field--labeled .q-field__prefix,.q-textarea.q-field--labeled .q-field__suffix{padding-top:0}.q-textarea.q-field--labeled .q-field__native{min-height:26px;padding-top:1px}.q-textarea--autogrow .q-field__native{resize:none}.q-textarea.q-field--dense .q-field__control,.q-textarea.q-field--dense .q-field__native{min-height:36px}.q-textarea.q-field--dense .q-field__native{padding-top:9px}.q-textarea.q-field--dense.q-field--labeled .q-field__control-container{padding-top:14px}.q-textarea.q-field--dense.q-field--labeled .q-field__shadow{top:14px}.q-textarea.q-field--dense.q-field--labeled .q-field__native{min-height:24px;padding-top:3px}.q-textarea.q-field--dense.q-field--labeled .q-field__prefix,.q-textarea.q-field--dense.q-field--labeled .q-field__suffix{padding-top:2px}body.mobile .q-textarea .q-field__native,.q-textarea.disabled .q-field__native{resize:none}.q-intersection{position:relative}.q-item{min-height:48px;padding:8px 16px;color:inherit;transition:color .3s,background-color .3s}.q-item__section--side{color:#757575;align-items:flex-start;padding-right:16px;width:auto;min-width:0;max-width:100%}.q-item__section--side>.q-icon{font-size:24px}.q-item__section--side>.q-avatar{font-size:40px}.q-item__section--avatar{color:inherit;min-width:56px}.q-item__section--thumbnail img{width:100px;height:56px}.q-item__section--nowrap{white-space:nowrap}.q-item>.q-item__section--thumbnail:first-child,.q-item>.q-focus-helper+.q-item__section--thumbnail{margin-left:-16px}.q-item>.q-item__section--thumbnail:last-of-type{margin-right:-16px}.q-item__label{line-height:1.2em!important;max-width:100%}.q-item__label--overline{color:#000000b3}.q-item__label--caption{color:#0000008a}.q-item__label--header{color:#757575;padding:16px;font-size:.875rem;line-height:1.25rem;letter-spacing:.01786em}.q-separator--spaced+.q-item__label--header,.q-list--padding .q-item__label--header{padding-top:8px}.q-item__label+.q-item__label{margin-top:4px}.q-item__section--main{width:auto;min-width:0;max-width:100%;flex:10000 1 0%}.q-item__section--main+.q-item__section--main{margin-left:8px}.q-item__section--main~.q-item__section--side{align-items:flex-end;padding-right:0;padding-left:16px}.q-item__section--main.q-item__section--thumbnail{margin-left:0;margin-right:-16px}.q-list--bordered{border:1px solid rgba(0,0,0,.12)}.q-list--separator>.q-item-type+.q-item-type,.q-list--separator>.q-virtual-scroll__content>.q-item-type+.q-item-type{border-top:1px solid rgba(0,0,0,.12)}.q-list--padding{padding:8px 0}.q-list--dense>.q-item,.q-item--dense{min-height:32px;padding:2px 16px}.q-list--dark.q-list--separator>.q-item-type+.q-item-type,.q-list--dark.q-list--separator>.q-virtual-scroll__content>.q-item-type+.q-item-type{border-top-color:#ffffff47}.q-list--dark,.q-item--dark{color:#fff;border-color:#ffffff47}.q-list--dark .q-item__section--side:not(.q-item__section--avatar),.q-item--dark .q-item__section--side:not(.q-item__section--avatar){color:#ffffffb3}.q-list--dark .q-item__label--header,.q-item--dark .q-item__label--header{color:#ffffffa3}.q-list--dark .q-item__label--overline,.q-list--dark .q-item__label--caption,.q-item--dark .q-item__label--overline,.q-item--dark .q-item__label--caption{color:#fffc}.q-item{position:relative}.q-item.q-router-link--active,.q-item--active{color:var(--q-primary)}.q-knob{font-size:48px}.q-knob--editable{cursor:pointer;outline:0}.q-knob--editable:before{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:none;transition:box-shadow .24s ease-in-out}.q-knob--editable:focus:before{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.q-layout{width:100%}.q-layout-container{position:relative;width:100%;height:100%}.q-layout-container .q-layout{min-height:100%}.q-layout-container>div{transform:translateZ(0)}.q-layout-container>div>div{min-height:0;max-height:100%}.q-layout__shadow{width:100%}.q-layout__shadow:after{content:"";position:absolute;inset:0;box-shadow:0 0 10px 2px #0003,0 0 10px #0000003d}.q-layout__section--marginal{background-color:var(--q-primary);color:#fff}.q-header--hidden{transform:translateY(-110%)}.q-header--bordered{border-bottom:1px solid rgba(0,0,0,.12)}.q-header .q-layout__shadow{bottom:-10px}.q-header .q-layout__shadow:after{bottom:10px}.q-footer--hidden{transform:translateY(110%)}.q-footer--bordered{border-top:1px solid rgba(0,0,0,.12)}.q-footer .q-layout__shadow{top:-10px}.q-footer .q-layout__shadow:after{top:10px}.q-header,.q-footer{z-index:2000}.q-drawer{position:absolute;top:0;bottom:0;background:#fff;z-index:1000}.q-drawer--on-top{z-index:3000}.q-drawer--left{left:0;transform:translate(-100%)}.q-drawer--left.q-drawer--bordered{border-right:1px solid rgba(0,0,0,.12)}.q-drawer--left .q-layout__shadow{left:10px;right:-10px}.q-drawer--left .q-layout__shadow:after{right:10px}.q-drawer--right{right:0;transform:translate(100%)}.q-drawer--right.q-drawer--bordered{border-left:1px solid rgba(0,0,0,.12)}.q-drawer--right .q-layout__shadow{left:-10px}.q-drawer--right .q-layout__shadow:after{left:10px}.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini{padding:0!important}.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item,.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section{text-align:center;justify-content:center;padding-left:0;padding-right:0;min-width:0}.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__label,.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section--main,.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section--side~.q-item__section--side{display:none}.q-drawer--mini .q-mini-drawer-hide,.q-drawer--mini .q-expansion-item__content{display:none}.q-drawer--mini-animate .q-drawer__content{overflow-x:hidden!important;white-space:nowrap}.q-drawer--standard .q-mini-drawer-only,.q-drawer--mobile .q-mini-drawer-only,.q-drawer--mobile .q-mini-drawer-hide{display:none}.q-drawer__backdrop{z-index:2999!important;will-change:background-color}.q-drawer__opener{z-index:2001;height:100%;width:15px;-webkit-user-select:none;user-select:none}.q-layout,.q-header,.q-footer,.q-page{position:relative}.q-page-sticky--shrink{pointer-events:none}.q-page-sticky--shrink>div{display:inline-block;pointer-events:auto}body.q-ios-padding .q-layout--standard .q-header>.q-toolbar:nth-child(1),body.q-ios-padding .q-layout--standard .q-header>.q-tabs:nth-child(1) .q-tabs-head,body.q-ios-padding .q-layout--standard .q-drawer--top-padding .q-drawer__content{padding-top:20px;min-height:70px;padding-top:env(safe-area-inset-top);min-height:calc(env(safe-area-inset-top) + 50px)}body.q-ios-padding .q-layout--standard .q-footer>.q-toolbar:last-child,body.q-ios-padding .q-layout--standard .q-footer>.q-tabs:last-child .q-tabs-head,body.q-ios-padding .q-layout--standard .q-drawer--top-padding .q-drawer__content{padding-bottom:env(safe-area-inset-bottom);min-height:calc(env(safe-area-inset-bottom) + 50px)}.q-body--layout-animate .q-drawer__backdrop{transition:background-color .12s!important}.q-body--layout-animate .q-drawer{transition:transform .12s,width .12s,top .12s,bottom .12s!important}.q-body--layout-animate .q-layout__section--marginal{transition:transform .12s,left .12s,right .12s!important}.q-body--layout-animate .q-page-container{transition:padding-top .12s,padding-right .12s,padding-bottom .12s,padding-left .12s!important}.q-body--layout-animate .q-page-sticky{transition:transform .12s,left .12s,right .12s,top .12s,bottom .12s!important}body:not(.q-body--layout-animate) .q-layout--prevent-focus{visibility:hidden}.q-body--drawer-toggle{overflow-x:hidden!important}@media (max-width: 599.98px){.q-layout-padding{padding:8px}}@media (min-width: 600px) and (max-width: 1439.98px){.q-layout-padding{padding:16px}}@media (min-width: 1440px){.q-layout-padding{padding:24px}}body.body--dark .q-header,body.body--dark .q-footer,body.body--dark .q-drawer{border-color:#ffffff47}body.platform-ios .q-layout--containerized{position:unset!important}.q-linear-progress{--q-linear-progress-speed: .3s;position:relative;width:100%;overflow:hidden;font-size:4px;height:1em;color:var(--q-primary);transform:scaleZ(1)}.q-linear-progress__model,.q-linear-progress__track{transform-origin:0 0}.q-linear-progress__model--with-transition,.q-linear-progress__track--with-transition{transition:transform var(--q-linear-progress-speed)}.q-linear-progress--reverse .q-linear-progress__model,.q-linear-progress--reverse .q-linear-progress__track{transform-origin:0 100%}.q-linear-progress__model--determinate{background:currentColor}.q-linear-progress__model--indeterminate,.q-linear-progress__model--query{transition:none}.q-linear-progress__model--indeterminate:before,.q-linear-progress__model--indeterminate:after,.q-linear-progress__model--query:before,.q-linear-progress__model--query:after{background:currentColor;content:"";position:absolute;inset:0;transform-origin:0 0}.q-linear-progress__model--indeterminate:before,.q-linear-progress__model--query:before{animation:q-linear-progress--indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.q-linear-progress__model--indeterminate:after,.q-linear-progress__model--query:after{transform:translate3d(-101%,0,0) scaleZ(1);animation:q-linear-progress--indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation-delay:1.15s}.q-linear-progress__track{opacity:.4}.q-linear-progress__track--light{background:rgba(0,0,0,.26)}.q-linear-progress__track--dark{background:rgba(255,255,255,.6)}.q-linear-progress__stripe{transition:width var(--q-linear-progress-speed);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,rgba(255,255,255,0) 25%,rgba(255,255,255,0) 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,rgba(255,255,255,0) 75%,rgba(255,255,255,0))!important;background-size:40px 40px!important}@keyframes q-linear-progress--indeterminate{0%{transform:translate3d(-35%,0,0) scale3d(.35,1,1)}60%{transform:translate3d(100%,0,0) scale3d(.9,1,1)}to{transform:translate3d(100%,0,0) scale3d(.9,1,1)}}@keyframes q-linear-progress--indeterminate-short{0%{transform:translate3d(-101%,0,0) scaleZ(1)}60%{transform:translate3d(107%,0,0) scale3d(.01,1,1)}to{transform:translate3d(107%,0,0) scale3d(.01,1,1)}}.q-menu{position:fixed!important;display:inline-block;max-width:95vw;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;background:#fff;border-radius:4px;overflow-y:auto;overflow-x:hidden;outline:0;max-height:65vh;z-index:6000}.q-menu--square{border-radius:0}.q-option-group--inline>div{display:inline-block}.q-pagination input{text-align:center;-moz-appearance:textfield}.q-pagination input::-webkit-outer-spin-button,.q-pagination input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.q-pagination__content{--q-pagination-gutter-parent: -2px;--q-pagination-gutter-child: 2px;margin-top:var(--q-pagination-gutter-parent);margin-left:var(--q-pagination-gutter-parent)}.q-pagination__content>.q-btn,.q-pagination__content>.q-input,.q-pagination__middle>.q-btn{margin-top:var(--q-pagination-gutter-child);margin-left:var(--q-pagination-gutter-child)}.q-parallax{position:relative;width:100%;overflow:hidden;border-radius:inherit}.q-parallax__media>img,.q-parallax__media>video{position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;will-change:transform;display:none}.q-popup-edit{padding:8px 16px}.q-popup-edit__buttons{margin-top:8px}.q-popup-edit__buttons .q-btn+.q-btn{margin-left:8px}.q-pull-to-refresh{position:relative}.q-pull-to-refresh__puller{border-radius:50%;width:40px;height:40px;color:var(--q-primary);background:#fff;box-shadow:0 0 4px #0000004d}.q-pull-to-refresh__puller--animating{transition:transform .3s,opacity .3s}.q-radio{vertical-align:middle}.q-radio__native{width:1px;height:1px}.q-radio__bg,.q-radio__icon-container{-webkit-user-select:none;user-select:none}.q-radio__bg{top:25%;left:25%;width:50%;height:50%;-webkit-print-color-adjust:exact}.q-radio__bg path{fill:currentColor}.q-radio__icon{color:currentColor;font-size:.5em}.q-radio__check{transform-origin:50% 50%;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1) 0ms}.q-radio__inner{font-size:40px;width:1em;min-width:1em;height:1em;outline:0;border-radius:50%;color:#0000008a}.q-radio__inner--truthy{color:var(--q-primary)}.q-radio__inner--truthy .q-radio__check{transform:scaleZ(1)}.q-radio.disabled{opacity:.75!important}.q-radio--dark .q-radio__inner{color:#ffffffb3}.q-radio--dark .q-radio__inner:before{opacity:.32!important}.q-radio--dark .q-radio__inner--truthy{color:var(--q-primary)}.q-radio--dense .q-radio__inner{width:.5em;min-width:.5em;height:.5em}.q-radio--dense .q-radio__bg{left:0;top:0;width:100%;height:100%}.q-radio--dense .q-radio__label{padding-left:.5em}.q-radio--dense.reverse .q-radio__label{padding-left:0;padding-right:.5em}body.desktop .q-radio:not(.disabled) .q-radio__inner:before{content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;opacity:.12;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1) 0ms}body.desktop .q-radio:not(.disabled):focus .q-radio__inner:before,body.desktop .q-radio:not(.disabled):hover .q-radio__inner:before{transform:scaleZ(1)}body.desktop .q-radio--dense:not(.disabled):focus .q-radio__inner:before,body.desktop .q-radio--dense:not(.disabled):hover .q-radio__inner:before{transform:scale3d(1.5,1.5,1)}.q-rating{color:#ffeb3b;vertical-align:middle}.q-rating__icon-container{height:1em;outline:0}.q-rating__icon-container+.q-rating__icon-container{margin-left:2px}.q-rating__icon{color:currentColor;text-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);position:relative;opacity:.4;transition:transform .2s ease-in,opacity .2s ease-in}.q-rating__icon--hovered{transform:scale(1.3)}.q-rating__icon--active{opacity:1}.q-rating__icon--exselected{opacity:.7}.q-rating--no-dimming .q-rating__icon{opacity:1}.q-rating--editable .q-rating__icon-container{cursor:pointer}.q-responsive{position:relative;max-width:100%;max-height:100%}.q-responsive__filler{width:inherit;max-width:inherit;height:inherit;max-height:inherit}.q-responsive__content{border-radius:inherit}.q-responsive__content>*{width:100%!important;height:100%!important;max-height:100%!important;max-width:100%!important}.q-scrollarea{position:relative;contain:strict}.q-scrollarea__bar,.q-scrollarea__thumb{opacity:.2;transition:opacity .3s;will-change:opacity;cursor:grab}.q-scrollarea__bar--v,.q-scrollarea__thumb--v{right:0;width:10px}.q-scrollarea__bar--h,.q-scrollarea__thumb--h{bottom:0;height:10px}.q-scrollarea__bar--invisible,.q-scrollarea__thumb--invisible{opacity:0!important;pointer-events:none}.q-scrollarea__thumb{background:#000;border-radius:3px}.q-scrollarea__thumb:hover{opacity:.3}.q-scrollarea__thumb:active{opacity:.5}.q-scrollarea__content{min-height:100%;min-width:100%}.q-scrollarea--dark .q-scrollarea__thumb{background:#fff}.q-select--without-input .q-field__control{cursor:pointer}.q-select--with-input .q-field__control{cursor:text}.q-select .q-field__input{min-width:50px!important;cursor:text}.q-select .q-field__input--padding{padding-left:4px}.q-select__focus-target,.q-select__autocomplete-input{position:absolute;outline:0!important;width:1px;height:1px;padding:0;border:0;opacity:0}.q-select__dropdown-icon{cursor:pointer;transition:transform .28s}.q-select.q-field--readonly .q-field__control,.q-select.q-field--readonly .q-select__dropdown-icon{cursor:default}.q-select__dialog{width:90vw!important;max-width:90vw!important;max-height:calc(100vh - 70px)!important;background:#fff;display:flex;flex-direction:column}.q-select__dialog>.scroll{position:relative;background:inherit}body.mobile:not(.native-mobile) .q-select__dialog{max-height:calc(100vh - 108px)!important}body.platform-android.native-mobile .q-dialog__inner--top .q-select__dialog{max-height:calc(100vh - 24px)!important}body.platform-android:not(.native-mobile) .q-dialog__inner--top .q-select__dialog{max-height:calc(100vh - 80px)!important}body.platform-ios.native-mobile .q-dialog__inner--top>div{border-radius:4px}body.platform-ios.native-mobile .q-dialog__inner--top .q-select__dialog--focused{max-height:47vh!important}body.platform-ios:not(.native-mobile) .q-dialog__inner--top .q-select__dialog--focused{max-height:50vh!important}.q-separator{border:0;background:rgba(0,0,0,.12);margin:0;transition:background .3s,opacity .3s;flex-shrink:0}.q-separator--dark{background:rgba(255,255,255,.28)}.q-separator--horizontal{display:block;height:1px}.q-separator--horizontal-inset{margin-left:16px;margin-right:16px}.q-separator--horizontal-item-inset{margin-left:72px;margin-right:0}.q-separator--horizontal-item-thumbnail-inset{margin-left:116px;margin-right:0}.q-separator--vertical{width:1px;height:auto;align-self:stretch}.q-separator--vertical-inset{margin-top:8px;margin-bottom:8px}.q-skeleton{--q-skeleton-speed: 1.5s;background:rgba(0,0,0,.12);border-radius:4px;box-sizing:border-box}.q-skeleton--anim{cursor:wait}.q-skeleton:before{content:"\a0"}.q-skeleton--type-text{transform:scaleY(.5)}.q-skeleton--type-circle,.q-skeleton--type-QAvatar{height:48px;width:48px;border-radius:50%}.q-skeleton--type-QBtn{width:90px;height:36px}.q-skeleton--type-QBadge{width:70px;height:16px}.q-skeleton--type-QChip{width:90px;height:28px;border-radius:16px}.q-skeleton--type-QToolbar{height:50px}.q-skeleton--type-QCheckbox,.q-skeleton--type-QRadio{width:40px;height:40px;border-radius:50%}.q-skeleton--type-QToggle{width:56px;height:40px;border-radius:7px}.q-skeleton--type-QSlider,.q-skeleton--type-QRange{height:40px}.q-skeleton--type-QInput{height:56px}.q-skeleton--bordered{border:1px solid rgba(0,0,0,.05)}.q-skeleton--square{border-radius:0}.q-skeleton--anim-fade{animation:q-skeleton--fade var(--q-skeleton-speed) linear .5s infinite}.q-skeleton--anim-pulse{animation:q-skeleton--pulse var(--q-skeleton-speed) ease-in-out .5s infinite}.q-skeleton--anim-pulse-x{animation:q-skeleton--pulse-x var(--q-skeleton-speed) ease-in-out .5s infinite}.q-skeleton--anim-pulse-y{animation:q-skeleton--pulse-y var(--q-skeleton-speed) ease-in-out .5s infinite}.q-skeleton--anim-wave,.q-skeleton--anim-blink,.q-skeleton--anim-pop{position:relative;overflow:hidden;z-index:1}.q-skeleton--anim-wave:after,.q-skeleton--anim-blink:after,.q-skeleton--anim-pop:after{content:"";position:absolute;inset:0;z-index:0}.q-skeleton--anim-blink:after{background:rgba(255,255,255,.7);animation:q-skeleton--fade var(--q-skeleton-speed) linear .5s infinite}.q-skeleton--anim-wave:after{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.5),rgba(255,255,255,0));animation:q-skeleton--wave var(--q-skeleton-speed) linear .5s infinite}.q-skeleton--dark{background:rgba(255,255,255,.05)}.q-skeleton--dark.q-skeleton--bordered{border:1px solid rgba(255,255,255,.25)}.q-skeleton--dark.q-skeleton--anim-wave:after{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.1),rgba(255,255,255,0))}.q-skeleton--dark.q-skeleton--anim-blink:after{background:rgba(255,255,255,.2)}@keyframes q-skeleton--fade{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes q-skeleton--pulse{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}@keyframes q-skeleton--pulse-x{0%{transform:scaleX(1)}50%{transform:scaleX(.75)}to{transform:scaleX(1)}}@keyframes q-skeleton--pulse-y{0%{transform:scaleY(1)}50%{transform:scaleY(.75)}to{transform:scaleY(1)}}@keyframes q-skeleton--wave{0%{transform:translate(-100%)}to{transform:translate(100%)}}.q-slide-item{position:relative;background:white}.q-slide-item__left,.q-slide-item__right,.q-slide-item__top,.q-slide-item__bottom{visibility:hidden;font-size:14px;color:#fff}.q-slide-item__left .q-icon,.q-slide-item__right .q-icon,.q-slide-item__top .q-icon,.q-slide-item__bottom .q-icon{font-size:1.714em}.q-slide-item__left{background:#4caf50;padding:8px 16px}.q-slide-item__left>div{transform-origin:left center}.q-slide-item__right{background:#ff9800;padding:8px 16px}.q-slide-item__right>div{transform-origin:right center}.q-slide-item__top{background:#2196f3;padding:16px 8px}.q-slide-item__top>div{transform-origin:top center}.q-slide-item__bottom{background:#9c27b0;padding:16px 8px}.q-slide-item__bottom>div{transform-origin:bottom center}.q-slide-item__content{background:inherit;transition:transform .2s ease-in;-webkit-user-select:none;user-select:none;cursor:pointer}.q-slider{position:relative}.q-slider--h{width:100%}.q-slider--v{height:200px}.q-slider--editable .q-slider__track-container{cursor:grab}.q-slider__track-container{outline:0}.q-slider__track-container--h{width:100%;padding:12px 0}.q-slider__track-container--h .q-slider__selection{will-change:width,left}.q-slider__track-container--v{height:100%;padding:0 12px}.q-slider__track-container--v .q-slider__selection{will-change:height,top}.q-slider__track{color:var(--q-primary);background:rgba(0,0,0,.1);border-radius:4px;width:inherit;height:inherit}.q-slider__inner{background:rgba(0,0,0,.1);border-radius:inherit;width:100%;height:100%}.q-slider__selection{background:currentColor;border-radius:inherit;width:100%;height:100%}.q-slider__markers{color:#0000004d;border-radius:inherit;width:100%;height:100%}.q-slider__markers:after{content:"";position:absolute;background:currentColor}.q-slider__markers--h{background-image:repeating-linear-gradient(to right,currentColor,currentColor 2px,rgba(255,255,255,0) 0,rgba(255,255,255,0))}.q-slider__markers--h:after{height:100%;width:2px;top:0;right:0}.q-slider__markers--v{background-image:repeating-linear-gradient(to bottom,currentColor,currentColor 2px,rgba(255,255,255,0) 0,rgba(255,255,255,0))}.q-slider__markers--v:after{width:100%;height:2px;left:0;bottom:0}.q-slider__marker-labels-container{position:relative;width:100%;height:100%;min-height:24px;min-width:24px}.q-slider__marker-labels{position:absolute}.q-slider__marker-labels--h-standard{top:0}.q-slider__marker-labels--h-switched{bottom:0}.q-slider__marker-labels--h-ltr{transform:translate(-50%)}.q-slider__marker-labels--h-rtl{transform:translate(50%)}.q-slider__marker-labels--v-standard{left:4px}.q-slider__marker-labels--v-switched{right:4px}.q-slider__marker-labels--v-ltr{transform:translateY(-50%)}.q-slider__marker-labels--v-rtl{transform:translateY(50%)}.q-slider__thumb{z-index:1;outline:0;color:var(--q-primary);transition:transform .18s ease-out,fill .18s ease-out,stroke .18s ease-out}.q-slider__thumb.q-slider--focus{opacity:1!important}.q-slider__thumb--h{top:50%;will-change:left}.q-slider__thumb--h-ltr{transform:scale(1) translate(-50%,-50%)}.q-slider__thumb--h-rtl{transform:scale(1) translate(50%,-50%)}.q-slider__thumb--v{left:50%;will-change:top}.q-slider__thumb--v-ltr{transform:scale(1) translate(-50%,-50%)}.q-slider__thumb--v-rtl{transform:scale(1) translate(-50%,50%)}.q-slider__thumb-shape{top:0;left:0;stroke-width:3.5;stroke:currentColor;transition:transform .28s}.q-slider__thumb-shape path{stroke:currentColor;fill:currentColor}.q-slider__focus-ring{border-radius:50%;opacity:0;transition:transform .26667s ease-out,opacity .26667s ease-out,background-color .26667s ease-out;transition-delay:.14s}.q-slider__pin{opacity:0;white-space:nowrap;transition:opacity .28s ease-out;transition-delay:.14s}.q-slider__pin:before{content:"";width:0;height:0;position:absolute}.q-slider__pin--h:before{border-left:6px solid transparent;border-right:6px solid transparent;left:50%;transform:translate(-50%)}.q-slider__pin--h-standard{bottom:100%}.q-slider__pin--h-standard:before{bottom:2px;border-top:6px solid currentColor}.q-slider__pin--h-switched{top:100%}.q-slider__pin--h-switched:before{top:2px;border-bottom:6px solid currentColor}.q-slider__pin--v{top:0}.q-slider__pin--v:before{top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent}.q-slider__pin--v-standard{left:100%}.q-slider__pin--v-standard:before{left:2px;border-right:6px solid currentColor}.q-slider__pin--v-switched{right:100%}.q-slider__pin--v-switched:before{right:2px;border-left:6px solid currentColor}.q-slider__label{z-index:1;white-space:nowrap;position:absolute}.q-slider__label--h{left:50%;transform:translate(-50%)}.q-slider__label--h-standard{bottom:7px}.q-slider__label--h-switched{top:7px}.q-slider__label--v{top:50%;transform:translateY(-50%)}.q-slider__label--v-standard{left:7px}.q-slider__label--v-switched{right:7px}.q-slider__text-container{min-height:25px;padding:2px 8px;border-radius:4px;background:currentColor;position:relative;text-align:center}.q-slider__text{color:#fff;font-size:12px}.q-slider--no-value .q-slider__thumb,.q-slider--no-value .q-slider__inner,.q-slider--no-value .q-slider__selection{opacity:0}.q-slider--focus .q-slider__focus-ring,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__focus-ring{background:currentColor;transform:scale3d(1.55,1.55,1);opacity:.25}.q-slider--focus .q-slider__thumb,.q-slider--focus .q-slider__inner,.q-slider--focus .q-slider__selection,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__thumb,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__inner,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__selection{opacity:1}.q-slider--inactive .q-slider__thumb--h{transition:left .28s,right .28s}.q-slider--inactive .q-slider__thumb--v{transition:top .28s,bottom .28s}.q-slider--inactive .q-slider__selection{transition:width .28s,left .28s,right .28s,height .28s,top .28s,bottom .28s}.q-slider--inactive .q-slider__text-container{transition:transform .28s}.q-slider--active{cursor:grabbing}.q-slider--active .q-slider__thumb-shape{transform:scale(1.5)}.q-slider--active .q-slider__focus-ring,.q-slider--active.q-slider--label .q-slider__thumb-shape{transform:scale(0)!important}body.desktop .q-slider.q-slider--enabled .q-slider__track-container:hover .q-slider__pin,.q-slider--label.q-slider--active .q-slider__pin,.q-slider--label .q-slider--focus .q-slider__pin,.q-slider--label.q-slider--label-always .q-slider__pin{opacity:1}.q-slider--dark .q-slider__track,.q-slider--dark .q-slider__inner{background:rgba(255,255,255,.1)}.q-slider--dark .q-slider__markers{color:#ffffff4d}.q-slider--dense .q-slider__track-container--h{padding:6px 0}.q-slider--dense .q-slider__track-container--v{padding:0 6px}.q-space{flex-grow:1!important}.q-spinner{vertical-align:middle}.q-spinner-mat{animation:q-spin 2s linear infinite;transform-origin:center center}.q-spinner-mat .path{stroke-dasharray:1,200;stroke-dashoffset:0;animation:q-mat-dash 1.5s ease-in-out infinite}@keyframes q-spin{0%{transform:rotate3d(0,0,1,0)}25%{transform:rotate3d(0,0,1,90deg)}50%{transform:rotate3d(0,0,1,180deg)}75%{transform:rotate3d(0,0,1,270deg)}to{transform:rotate3d(0,0,1,359deg)}}@keyframes q-mat-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.q-splitter__panel{position:relative;z-index:0}.q-splitter__panel>.q-splitter{width:100%;height:100%}.q-splitter__separator{background-color:#0000001f;-webkit-user-select:none;user-select:none;position:relative;z-index:1}.q-splitter__separator-area>*{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.q-splitter--dark .q-splitter__separator{background-color:#ffffff47}.q-splitter--vertical>.q-splitter__panel{height:100%}.q-splitter--vertical.q-splitter--active{cursor:col-resize}.q-splitter--vertical>.q-splitter__separator{width:1px}.q-splitter--vertical>.q-splitter__separator>div{left:-6px;right:-6px}.q-splitter--vertical.q-splitter--workable>.q-splitter__separator{cursor:col-resize}.q-splitter--horizontal>.q-splitter__panel{width:100%}.q-splitter--horizontal.q-splitter--active{cursor:row-resize}.q-splitter--horizontal>.q-splitter__separator{height:1px}.q-splitter--horizontal>.q-splitter__separator>div{top:-6px;bottom:-6px}.q-splitter--horizontal.q-splitter--workable>.q-splitter__separator{cursor:row-resize}.q-splitter__before,.q-splitter__after{overflow:auto}.q-stepper{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;background:#fff}.q-stepper__title{font-size:14px;line-height:18px;letter-spacing:.1px}.q-stepper__caption{font-size:12px;line-height:14px}.q-stepper__dot{contain:layout;margin-right:8px;font-size:14px;width:24px;min-width:24px;height:24px;border-radius:50%;background:currentColor}.q-stepper__dot span{color:#fff}.q-stepper__tab{padding:8px 24px;font-size:14px;color:#9e9e9e;flex-direction:row}.q-stepper--dark .q-stepper__dot span{color:#000}.q-stepper__tab--navigation{-webkit-user-select:none;user-select:none;cursor:pointer}.q-stepper__tab--active,.q-stepper__tab--done{color:var(--q-primary)}.q-stepper__tab--active .q-stepper__dot,.q-stepper__tab--active .q-stepper__label,.q-stepper__tab--done .q-stepper__dot,.q-stepper__tab--done .q-stepper__label{text-shadow:0 0 0 currentColor}.q-stepper__tab--disabled .q-stepper__dot{background:rgba(0,0,0,.22)}.q-stepper__tab--disabled .q-stepper__label{color:#00000052}.q-stepper__tab--error{color:var(--q-negative)}.q-stepper__tab--error-with-icon .q-stepper__dot{background:transparent!important}.q-stepper__tab--error-with-icon .q-stepper__dot span{color:currentColor;font-size:24px}.q-stepper__header{border-top-left-radius:inherit;border-top-right-radius:inherit}.q-stepper__header--border{border-bottom:1px solid rgba(0,0,0,.12)}.q-stepper__header--standard-labels .q-stepper__tab{min-height:72px;justify-content:center}.q-stepper__header--standard-labels .q-stepper__tab:first-child{justify-content:flex-start}.q-stepper__header--standard-labels .q-stepper__tab:last-child{justify-content:flex-end}.q-stepper__header--standard-labels .q-stepper__tab:only-child{justify-content:center}.q-stepper__header--standard-labels .q-stepper__dot:after{display:none}.q-stepper__header--alternative-labels .q-stepper__tab{min-height:104px;padding:24px 32px;flex-direction:column;justify-content:flex-start}.q-stepper__header--alternative-labels .q-stepper__dot{margin-right:0}.q-stepper__header--alternative-labels .q-stepper__label{margin-top:8px;text-align:center}.q-stepper__header--alternative-labels .q-stepper__label:before,.q-stepper__header--alternative-labels .q-stepper__label:after{display:none}.q-stepper__header--contracted,.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab{min-height:72px}.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab:first-child{align-items:flex-start}.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab:last-child{align-items:flex-end}.q-stepper__header--contracted .q-stepper__tab{padding:24px 0}.q-stepper__header--contracted .q-stepper__tab:first-child .q-stepper__dot{transform:translate(24px)}.q-stepper__header--contracted .q-stepper__tab:last-child .q-stepper__dot{transform:translate(-24px)}.q-stepper__header--contracted .q-stepper__tab:not(:last-child) .q-stepper__dot:after{display:block!important}.q-stepper__header--contracted .q-stepper__dot{margin:0}.q-stepper__header--contracted .q-stepper__label{display:none}.q-stepper__nav{padding-top:24px}.q-stepper--bordered{border:1px solid rgba(0,0,0,.12)}.q-stepper--horizontal .q-stepper__step-inner{padding:24px}.q-stepper--horizontal .q-stepper__tab:first-child{border-top-left-radius:inherit}.q-stepper--horizontal .q-stepper__tab:last-child{border-top-right-radius:inherit}.q-stepper--horizontal .q-stepper__tab:first-child .q-stepper__dot:before,.q-stepper--horizontal .q-stepper__tab:last-child .q-stepper__label:after,.q-stepper--horizontal .q-stepper__tab:last-child .q-stepper__dot:after{display:none}.q-stepper--horizontal .q-stepper__tab{overflow:hidden}.q-stepper--horizontal .q-stepper__line{contain:layout}.q-stepper--horizontal .q-stepper__line:before,.q-stepper--horizontal .q-stepper__line:after{position:absolute;top:50%;height:1px;width:100vw;background:rgba(0,0,0,.12)}.q-stepper--horizontal .q-stepper__label:after,.q-stepper--horizontal .q-stepper__dot:after{content:"";left:100%;margin-left:8px}.q-stepper--horizontal .q-stepper__dot:before{content:"";right:100%;margin-right:8px}.q-stepper--horizontal>.q-stepper__nav{padding:0 24px 24px}.q-stepper--vertical{padding:16px 0}.q-stepper--vertical .q-stepper__tab{padding:12px 24px}.q-stepper--vertical .q-stepper__title{line-height:18px}.q-stepper--vertical .q-stepper__step-inner{padding:0 24px 32px 60px}.q-stepper--vertical>.q-stepper__nav{padding:24px 24px 0}.q-stepper--vertical .q-stepper__step{overflow:hidden}.q-stepper--vertical .q-stepper__dot{margin-right:12px}.q-stepper--vertical .q-stepper__dot:before,.q-stepper--vertical .q-stepper__dot:after{content:"";position:absolute;left:50%;width:1px;height:99999px;background:rgba(0,0,0,.12)}.q-stepper--vertical .q-stepper__dot:before{bottom:100%;margin-bottom:8px}.q-stepper--vertical .q-stepper__dot:after{top:100%;margin-top:8px}.q-stepper--vertical .q-stepper__step:first-child .q-stepper__dot:before,.q-stepper--vertical .q-stepper__step:last-child .q-stepper__dot:after{display:none}.q-stepper--vertical .q-stepper__step:last-child .q-stepper__step-inner{padding-bottom:8px}.q-stepper--dark.q-stepper--bordered,.q-stepper--dark .q-stepper__header--border{border-color:#ffffff47}.q-stepper--dark.q-stepper--horizontal .q-stepper__line:before,.q-stepper--dark.q-stepper--horizontal .q-stepper__line:after{background:rgba(255,255,255,.28)}.q-stepper--dark.q-stepper--vertical .q-stepper__dot:before,.q-stepper--dark.q-stepper--vertical .q-stepper__dot:after{background:rgba(255,255,255,.28)}.q-stepper--dark .q-stepper__tab--disabled{color:#ffffff47}.q-stepper--dark .q-stepper__tab--disabled .q-stepper__dot{background:rgba(255,255,255,.28)}.q-stepper--dark .q-stepper__tab--disabled .q-stepper__label{color:#ffffff8a}.q-tab-panels{background:#fff}.q-tab-panel{padding:16px}.q-markup-table{overflow:auto;background:#fff}.q-table{width:100%;max-width:100%;border-collapse:separate;border-spacing:0}.q-table thead tr,.q-table tbody td{height:48px}.q-table th{font-weight:500;font-size:12px;-webkit-user-select:none;user-select:none}.q-table th.sortable{cursor:pointer}.q-table th.sortable:hover .q-table__sort-icon{opacity:.64}.q-table th.sorted .q-table__sort-icon{opacity:.86!important}.q-table th.sort-desc .q-table__sort-icon{transform:rotate(180deg)}.q-table th,.q-table td{padding:7px 16px;background-color:inherit}.q-table thead,.q-table td,.q-table th{border-style:solid;border-width:0}.q-table tbody td{font-size:13px}.q-table__card{color:#000;background-color:#fff;border-radius:4px;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.q-table__card .q-table__middle{flex:1 1 auto}.q-table__card .q-table__top,.q-table__card .q-table__bottom{flex:0 0 auto}.q-table__container{position:relative}.q-table__container>div:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.q-table__container>div:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.q-table__container>.q-inner-loading{border-radius:inherit!important}.q-table__top{padding:12px 16px}.q-table__top .q-table__control{flex-wrap:wrap}.q-table__title{font-size:20px;letter-spacing:.005em;font-weight:400}.q-table__separator{min-width:8px!important}.q-table__progress{height:0!important}.q-table__progress th{padding:0!important;border:0!important}.q-table__progress .q-linear-progress{position:absolute;bottom:0}.q-table__middle{max-width:100%}.q-table__bottom{min-height:50px;padding:4px 14px 4px 16px;font-size:12px}.q-table__bottom .q-table__control{min-height:24px}.q-table__bottom-nodata-icon{font-size:200%;margin-right:8px}.q-table__bottom-item{margin-right:16px}.q-table__control{display:flex;align-items:center}.q-table__sort-icon{transition:transform .3s cubic-bezier(.25,.8,.5,1);opacity:0;font-size:120%}.q-table__sort-icon--left,.q-table__sort-icon--center{margin-left:4px}.q-table__sort-icon--right{margin-right:4px}.q-table--col-auto-width{width:1px}.q-table--flat{box-shadow:none}.q-table--bordered{border:1px solid rgba(0,0,0,.12)}.q-table--square{border-radius:0}.q-table__linear-progress{height:2px}.q-table--no-wrap th,.q-table--no-wrap td{white-space:nowrap}.q-table--grid{box-shadow:none;border-radius:4px}.q-table--grid .q-table__top{padding-bottom:4px}.q-table--grid .q-table__middle{min-height:2px;margin-bottom:4px}.q-table--grid .q-table__middle thead,.q-table--grid .q-table__middle thead th{border:0!important}.q-table--grid .q-table__linear-progress{bottom:0}.q-table--grid .q-table__bottom{border-top:0}.q-table--grid .q-table__grid-content{flex:1 1 auto}.q-table--grid.fullscreen{background:inherit}.q-table__grid-item-card{vertical-align:top;padding:12px}.q-table__grid-item-card .q-separator{margin:12px 0}.q-table__grid-item-row+.q-table__grid-item-row{margin-top:8px}.q-table__grid-item-title{opacity:.54;font-weight:500;font-size:12px}.q-table__grid-item-value{font-size:13px}.q-table__grid-item{padding:4px;transition:transform .3s cubic-bezier(.25,.8,.5,1)}.q-table__grid-item--selected{transform:scale(.95)}.q-table--horizontal-separator thead th,.q-table--horizontal-separator tbody tr:not(:last-child)>td,.q-table--cell-separator thead th,.q-table--cell-separator tbody tr:not(:last-child)>td{border-bottom-width:1px}.q-table--vertical-separator td,.q-table--vertical-separator th,.q-table--cell-separator td,.q-table--cell-separator th{border-left-width:1px}.q-table--vertical-separator thead tr:last-child th,.q-table--vertical-separator.q-table--loading tr:nth-last-child(2) th,.q-table--cell-separator thead tr:last-child th,.q-table--cell-separator.q-table--loading tr:nth-last-child(2) th{border-bottom-width:1px}.q-table--vertical-separator td:first-child,.q-table--vertical-separator th:first-child,.q-table--cell-separator td:first-child,.q-table--cell-separator th:first-child{border-left:0}.q-table--vertical-separator .q-table__top,.q-table--cell-separator .q-table__top{border-bottom:1px solid rgba(0,0,0,.12)}.q-table--dense .q-table__top{padding:6px 16px}.q-table--dense .q-table__bottom{min-height:33px}.q-table--dense .q-table__sort-icon{font-size:110%}.q-table--dense .q-table th,.q-table--dense .q-table td{padding:4px 8px}.q-table--dense .q-table thead tr,.q-table--dense .q-table tbody tr,.q-table--dense .q-table tbody td{height:28px}.q-table--dense .q-table th:first-child,.q-table--dense .q-table td:first-child{padding-left:16px}.q-table--dense .q-table th:last-child,.q-table--dense .q-table td:last-child{padding-right:16px}.q-table--dense .q-table__bottom-item{margin-right:8px}.q-table--dense .q-table__select .q-field__control,.q-table--dense .q-table__select .q-field__native{min-height:24px;padding:0}.q-table--dense .q-table__select .q-field__marginal{height:24px}.q-table__bottom{border-top:1px solid rgba(0,0,0,.12)}.q-table thead,.q-table tr,.q-table th,.q-table td{border-color:#0000001f}.q-table tbody td{position:relative}.q-table tbody td:before,.q-table tbody td:after{position:absolute;inset:0;pointer-events:none}.q-table tbody td:before{background:rgba(0,0,0,.03)}.q-table tbody td:after{background:rgba(0,0,0,.06)}.q-table tbody tr.selected td:after{content:""}body.desktop .q-table>tbody>tr:not(.q-tr--no-hover):hover>td:not(.q-td--no-hover):before{content:""}.q-table__card--dark,.q-table--dark,.q-table--dark .q-table__bottom,.q-table--dark thead,.q-table--dark tr,.q-table--dark th,.q-table--dark td{border-color:#ffffff47}.q-table--dark tbody td:before{background:rgba(255,255,255,.07)}.q-table--dark tbody td:after{background:rgba(255,255,255,.1)}.q-table--dark.q-table--vertical-separator .q-table__top,.q-table--dark.q-table--cell-separator .q-table__top{border-color:#ffffff47}.q-tab{padding:0 16px;min-height:48px;transition:color .3s,background-color .3s;text-transform:uppercase;white-space:nowrap;color:inherit;text-decoration:none}.q-tab--full{min-height:72px}.q-tab--no-caps{text-transform:none}.q-tab__content{height:inherit;padding:4px 0;min-width:40px}.q-tab__content--inline .q-tab__icon+.q-tab__label{padding-left:8px}.q-tab__content .q-chip--floating{top:0;right:-16px}.q-tab__icon{width:24px;height:24px;font-size:24px}.q-tab__label{font-size:14px;line-height:1.715em;font-weight:500}.q-tab .q-badge{top:3px;right:-12px}.q-tab__alert,.q-tab__alert-icon{position:absolute}.q-tab__alert{top:7px;right:-9px;height:10px;width:10px;border-radius:50%;background:currentColor}.q-tab__alert-icon{top:2px;right:-12px;font-size:18px}.q-tab__indicator{opacity:0;height:2px;background:currentColor}.q-tab--active .q-tab__indicator{opacity:1;transform-origin:left}.q-tab--inactive{opacity:.85}.q-tabs{position:relative;transition:color .3s,background-color .3s}.q-tabs--scrollable.q-tabs__arrows--outside.q-tabs--horizontal{padding-left:36px;padding-right:36px}.q-tabs--scrollable.q-tabs__arrows--outside.q-tabs--vertical{padding-top:36px;padding-bottom:36px}.q-tabs--scrollable.q-tabs__arrows--outside .q-tabs__arrow--faded{opacity:.3;pointer-events:none}.q-tabs--scrollable.q-tabs__arrows--inside .q-tabs__arrow--faded,.q-tabs--not-scrollable .q-tabs__arrow{display:none}.q-tabs--not-scrollable .q-tabs__content{border-radius:inherit}.q-tabs__arrow{cursor:pointer;font-size:32px;min-width:36px;text-shadow:0 0 3px #fff,0 0 1px #fff,0 0 1px #000;transition:opacity .3s}.q-tabs__content{overflow:hidden;flex:1 1 auto}.q-tabs__content--align-center{justify-content:center}.q-tabs__content--align-right{justify-content:flex-end}.q-tabs__content--align-justify .q-tab{flex:1 1 auto}.q-tabs__offset{display:none}.q-tabs--horizontal .q-tabs__arrow{height:100%}.q-tabs--horizontal .q-tabs__arrow--left{top:0;left:0;bottom:0}.q-tabs--horizontal .q-tabs__arrow--right{top:0;right:0;bottom:0}.q-tabs--vertical,.q-tabs--vertical .q-tabs__content{display:block!important;height:100%}.q-tabs--vertical .q-tabs__arrow{width:100%;height:36px;text-align:center}.q-tabs--vertical .q-tabs__arrow--left{top:0;left:0;right:0}.q-tabs--vertical .q-tabs__arrow--right{left:0;right:0;bottom:0}.q-tabs--vertical .q-tab{padding:0 8px}.q-tabs--vertical .q-tab__indicator{height:unset;width:2px}.q-tabs--vertical.q-tabs--not-scrollable .q-tabs__content{height:100%}.q-tabs--vertical.q-tabs--dense .q-tab__content{min-width:24px}.q-tabs--dense .q-tab{min-height:36px}.q-tabs--dense .q-tab--full{min-height:52px}.q-time{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;background:#fff;outline:0;width:290px;min-width:290px;max-width:100%}.q-time--bordered{border:1px solid rgba(0,0,0,.12)}.q-time__header{border-top-left-radius:inherit;color:#fff;background-color:var(--q-primary);padding:16px;font-weight:300}.q-time__actions{padding:0 16px 16px}.q-time__header-label{font-size:28px;line-height:1;letter-spacing:-.00833em}.q-time__header-label>div+div{margin-left:4px}.q-time__link{opacity:.56;outline:0;transition:opacity .3s ease-out}.q-time__link--active,.q-time__link:hover,.q-time__link:focus{opacity:1}.q-time__header-ampm{font-size:16px;letter-spacing:.1em}.q-time__content{padding:16px}.q-time__content:before{content:"";display:block;padding-bottom:100%}.q-time__container-parent{padding:16px}.q-time__container-child{border-radius:50%;background:rgba(0,0,0,.12)}.q-time__clock{padding:24px;width:100%;height:100%;max-width:100%;max-height:100%;font-size:14px}.q-time__clock-circle{position:relative}.q-time__clock-center{height:6px;width:6px;margin:auto;border-radius:50%;min-height:0;background:currentColor}.q-time__clock-pointer{width:2px;height:50%;transform-origin:0 0;min-height:0;position:absolute;left:50%;right:0;bottom:0;color:var(--q-primary);background:currentColor;transform:translate(-50%)}.q-time__clock-pointer:before,.q-time__clock-pointer:after{content:"";position:absolute;left:50%;border-radius:50%;background:currentColor;transform:translate(-50%)}.q-time__clock-pointer:before{bottom:-4px;width:8px;height:8px}.q-time__clock-pointer:after{top:-3px;height:6px;width:6px}.q-time__clock-position{position:absolute;min-height:32px;width:32px;height:32px;font-size:12px;line-height:32px;margin:0;padding:0;transform:translate(-50%,-50%);border-radius:50%}.q-time__clock-position--disable{opacity:.4}.q-time__clock-position--active{background-color:var(--q-primary);color:#fff}.q-time__clock-pos-0{top:0%;left:50%}.q-time__clock-pos-1{top:6.7%;left:75%}.q-time__clock-pos-2{top:25%;left:93.3%}.q-time__clock-pos-3{top:50%;left:100%}.q-time__clock-pos-4{top:75%;left:93.3%}.q-time__clock-pos-5{top:93.3%;left:75%}.q-time__clock-pos-6{top:100%;left:50%}.q-time__clock-pos-7{top:93.3%;left:25%}.q-time__clock-pos-8{top:75%;left:6.7%}.q-time__clock-pos-9{top:50%;left:0%}.q-time__clock-pos-10{top:25%;left:6.7%}.q-time__clock-pos-11{top:6.7%;left:25%}.q-time__clock-pos-12{top:15%;left:50%}.q-time__clock-pos-13{top:19.69%;left:67.5%}.q-time__clock-pos-14{top:32.5%;left:80.31%}.q-time__clock-pos-15{top:50%;left:85%}.q-time__clock-pos-16{top:67.5%;left:80.31%}.q-time__clock-pos-17{top:80.31%;left:67.5%}.q-time__clock-pos-18{top:85%;left:50%}.q-time__clock-pos-19{top:80.31%;left:32.5%}.q-time__clock-pos-20{top:67.5%;left:19.69%}.q-time__clock-pos-21{top:50%;left:15%}.q-time__clock-pos-22{top:32.5%;left:19.69%}.q-time__clock-pos-23{top:19.69%;left:32.5%}.q-time__now-button{background-color:var(--q-primary);color:#fff;top:12px;right:12px}.q-time.disabled .q-time__header-ampm,.q-time.disabled .q-time__content,.q-time--readonly .q-time__header-ampm,.q-time--readonly .q-time__content{pointer-events:none}.q-time--portrait{display:inline-flex;flex-direction:column}.q-time--portrait .q-time__header{border-top-right-radius:inherit;min-height:86px}.q-time--portrait .q-time__header-ampm{margin-left:12px}.q-time--portrait.q-time--bordered .q-time__content{margin:1px 0}.q-time--landscape{display:inline-flex;align-items:stretch;min-width:420px}.q-time--landscape>div{display:flex;flex-direction:column;justify-content:center}.q-time--landscape .q-time__header{border-bottom-left-radius:inherit;min-width:156px}.q-time--landscape .q-time__header-ampm{margin-top:12px}.q-time--dark{border-color:#ffffff47}.q-timeline{padding:0;width:100%;list-style:none}.q-timeline h6{line-height:inherit}.q-timeline--dark{color:#fff}.q-timeline--dark .q-timeline__subtitle{opacity:.7}.q-timeline__content{padding-bottom:24px}.q-timeline__title{margin-top:0;margin-bottom:16px}.q-timeline__subtitle{font-size:12px;margin-bottom:8px;opacity:.6;text-transform:uppercase;letter-spacing:1px;font-weight:700}.q-timeline__dot{position:absolute;top:0;bottom:0;width:15px}.q-timeline__dot:before,.q-timeline__dot:after{content:"";background:currentColor;display:block;position:absolute}.q-timeline__dot:before{border:3px solid transparent;border-radius:100%;height:15px;width:15px;top:4px;left:0;transition:background .3s ease-in-out,border .3s ease-in-out}.q-timeline__dot:after{width:3px;opacity:.4;top:24px;bottom:0;left:6px}.q-timeline__dot .q-icon{position:absolute;top:0;left:0;right:0;font-size:16px;height:38px;line-height:38px;width:100%;color:#fff}.q-timeline__dot .q-icon>svg,.q-timeline__dot .q-icon>img{width:1em;height:1em}.q-timeline__dot-img{position:absolute;top:4px;left:0;right:0;height:31px;width:31px;background:currentColor;border-radius:50%}.q-timeline__heading{position:relative}.q-timeline__heading:first-child .q-timeline__heading-title{padding-top:0}.q-timeline__heading:last-child .q-timeline__heading-title{padding-bottom:0}.q-timeline__heading-title{padding:32px 0;margin:0}.q-timeline__entry{position:relative;line-height:22px}.q-timeline__entry:last-child{padding-bottom:0!important}.q-timeline__entry:last-child .q-timeline__dot:after{content:none}.q-timeline__entry--icon .q-timeline__dot{width:31px}.q-timeline__entry--icon .q-timeline__dot:before{height:31px;width:31px}.q-timeline__entry--icon .q-timeline__dot:after{top:41px;left:14px}.q-timeline__entry--icon .q-timeline__subtitle{padding-top:8px}.q-timeline--dense--right .q-timeline__entry{padding-left:40px}.q-timeline--dense--right .q-timeline__entry--icon .q-timeline__dot{left:-8px}.q-timeline--dense--right .q-timeline__dot{left:0}.q-timeline--dense--left .q-timeline__heading{text-align:right}.q-timeline--dense--left .q-timeline__entry{padding-right:40px}.q-timeline--dense--left .q-timeline__entry--icon .q-timeline__dot{right:-8px}.q-timeline--dense--left .q-timeline__content,.q-timeline--dense--left .q-timeline__title,.q-timeline--dense--left .q-timeline__subtitle{text-align:right}.q-timeline--dense--left .q-timeline__dot{right:0}.q-timeline--comfortable{display:table}.q-timeline--comfortable .q-timeline__heading{display:table-row;font-size:200%}.q-timeline--comfortable .q-timeline__heading>div{display:table-cell}.q-timeline--comfortable .q-timeline__entry{display:table-row;padding:0}.q-timeline--comfortable .q-timeline__entry--icon .q-timeline__content{padding-top:8px}.q-timeline--comfortable .q-timeline__subtitle,.q-timeline--comfortable .q-timeline__dot,.q-timeline--comfortable .q-timeline__content{display:table-cell;vertical-align:top}.q-timeline--comfortable .q-timeline__subtitle{width:35%}.q-timeline--comfortable .q-timeline__dot{position:relative;min-width:31px}.q-timeline--comfortable--right .q-timeline__heading .q-timeline__heading-title{margin-left:-50px}.q-timeline--comfortable--right .q-timeline__subtitle{text-align:right;padding-right:30px}.q-timeline--comfortable--right .q-timeline__content{padding-left:30px}.q-timeline--comfortable--right .q-timeline__entry--icon .q-timeline__dot{left:-8px}.q-timeline--comfortable--left .q-timeline__heading{text-align:right}.q-timeline--comfortable--left .q-timeline__heading .q-timeline__heading-title{margin-right:-50px}.q-timeline--comfortable--left .q-timeline__subtitle{padding-left:30px}.q-timeline--comfortable--left .q-timeline__content{padding-right:30px}.q-timeline--comfortable--left .q-timeline__content,.q-timeline--comfortable--left .q-timeline__title{text-align:right}.q-timeline--comfortable--left .q-timeline__entry--icon .q-timeline__dot{right:0}.q-timeline--comfortable--left .q-timeline__dot{right:-8px}.q-timeline--loose .q-timeline__heading-title{text-align:center;margin-left:0}.q-timeline--loose .q-timeline__entry,.q-timeline--loose .q-timeline__subtitle,.q-timeline--loose .q-timeline__dot,.q-timeline--loose .q-timeline__content{display:block;margin:0;padding:0}.q-timeline--loose .q-timeline__dot{position:absolute;left:50%;margin-left:-7.15px}.q-timeline--loose .q-timeline__entry{padding-bottom:24px;overflow:hidden}.q-timeline--loose .q-timeline__entry--icon .q-timeline__dot{margin-left:-15px}.q-timeline--loose .q-timeline__entry--icon .q-timeline__subtitle{line-height:38px}.q-timeline--loose .q-timeline__entry--icon .q-timeline__content{padding-top:8px}.q-timeline--loose .q-timeline__entry--left .q-timeline__content,.q-timeline--loose .q-timeline__entry--right .q-timeline__subtitle{float:left;padding-right:30px;text-align:right}.q-timeline--loose .q-timeline__entry--left .q-timeline__subtitle,.q-timeline--loose .q-timeline__entry--right .q-timeline__content{float:right;text-align:left;padding-left:30px}.q-timeline--loose .q-timeline__subtitle,.q-timeline--loose .q-timeline__content{width:50%}.q-toggle{vertical-align:middle}.q-toggle__native{width:1px;height:1px}.q-toggle__track{height:.35em;border-radius:.175em;opacity:.38;background:currentColor}.q-toggle__thumb{top:.25em;left:.25em;width:.5em;height:.5em;transition:left .22s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;z-index:0}.q-toggle__thumb:after{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.q-toggle__thumb .q-icon{font-size:.3em;min-width:1em;color:#000;opacity:.54;z-index:1}.q-toggle__inner{font-size:40px;width:1.4em;min-width:1.4em;height:1em;padding:.325em .3em;-webkit-print-color-adjust:exact}.q-toggle__inner--indet .q-toggle__thumb{left:.45em}.q-toggle__inner--truthy{color:var(--q-primary)}.q-toggle__inner--truthy .q-toggle__track{opacity:.54}.q-toggle__inner--truthy .q-toggle__thumb{left:.65em}.q-toggle__inner--truthy .q-toggle__thumb:after{background-color:currentColor}.q-toggle__inner--truthy .q-toggle__thumb .q-icon{color:#fff;opacity:1}.q-toggle.disabled{opacity:.75!important}.q-toggle--dark .q-toggle__inner{color:#fff}.q-toggle--dark .q-toggle__inner--truthy{color:var(--q-primary)}.q-toggle--dark .q-toggle__thumb:before{opacity:.32!important}.q-toggle--dense .q-toggle__inner{width:.8em;min-width:.8em;height:.5em;padding:.07625em 0}.q-toggle--dense .q-toggle__thumb{top:0;left:0}.q-toggle--dense .q-toggle__inner--indet .q-toggle__thumb{left:.15em}.q-toggle--dense .q-toggle__inner--truthy .q-toggle__thumb{left:.3em}.q-toggle--dense .q-toggle__label{padding-left:.5em}.q-toggle--dense.reverse .q-toggle__label{padding-left:0;padding-right:.5em}body.desktop .q-toggle:not(.disabled) .q-toggle__thumb:before{content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;opacity:.12;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1)}body.desktop .q-toggle:not(.disabled):focus .q-toggle__thumb:before,body.desktop .q-toggle:not(.disabled):hover .q-toggle__thumb:before{transform:scale3d(2,2,1)}body.desktop .q-toggle--dense:not(.disabled):focus .q-toggle__thumb:before,body.desktop .q-toggle--dense:not(.disabled):hover .q-toggle__thumb:before{transform:scale3d(1.5,1.5,1)}.q-toolbar{position:relative;padding:0 12px;min-height:50px;width:100%}.q-toolbar--inset{padding-left:58px}.q-toolbar .q-avatar{font-size:38px}.q-toolbar__title{flex:1 1 0%;min-width:1px;max-width:100%;font-size:21px;font-weight:400;letter-spacing:.01em;padding:0 12px}.q-toolbar__title:first-child{padding-left:0}.q-toolbar__title:last-child{padding-right:0}.q-tooltip--style{font-size:10px;color:#fafafa;background:#757575;border-radius:4px;text-transform:none;font-weight:400}.q-tooltip{z-index:9000;position:fixed!important;overflow-y:auto;overflow-x:hidden;padding:6px 10px}@media (max-width: 599.98px){.q-tooltip{font-size:14px;padding:8px 16px}}.q-tree{position:relative;color:#9e9e9e}.q-tree__node{padding:0 0 3px 22px}.q-tree__node:after{content:"";position:absolute;width:2px;inset:-3px auto 0 -13px;border-left:1px solid currentColor}.q-tree__node:last-child:after{display:none}.q-tree__node--disabled{pointer-events:none}.q-tree__node--disabled .disabled{opacity:1!important}.q-tree__node--disabled>div,.q-tree__node--disabled>i,.q-tree__node--disabled>.disabled{opacity:.6!important}.q-tree__node--disabled>div .q-tree__node--disabled>div,.q-tree__node--disabled>div .q-tree__node--disabled>i,.q-tree__node--disabled>div .q-tree__node--disabled>.disabled,.q-tree__node--disabled>i .q-tree__node--disabled>div,.q-tree__node--disabled>i .q-tree__node--disabled>i,.q-tree__node--disabled>i .q-tree__node--disabled>.disabled,.q-tree__node--disabled>.disabled .q-tree__node--disabled>div,.q-tree__node--disabled>.disabled .q-tree__node--disabled>i,.q-tree__node--disabled>.disabled .q-tree__node--disabled>.disabled{opacity:1!important}.q-tree__node-header:before{content:"";position:absolute;top:-3px;bottom:50%;width:31px;left:-35px;border-left:1px solid currentColor;border-bottom:1px solid currentColor}.q-tree__children{padding-left:25px}.q-tree__node-body{padding:5px 0 8px 5px}.q-tree__node--parent{padding-left:2px}.q-tree__node--parent>.q-tree__node-header:before{width:15px;left:-15px}.q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body{padding:5px 0 8px 27px}.q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body:after{content:"";position:absolute;width:2px;height:100%;inset:0 auto 50px 12px;border-left:1px solid currentColor}.q-tree__node--link{cursor:pointer}.q-tree__node-header{padding:4px;margin-top:3px;border-radius:4px;outline:0}.q-tree__node-header-content{color:#000;transition:color .3s}.q-tree__node--selected .q-tree__node-header-content{color:#9e9e9e}.q-tree__icon,.q-tree__node-header-content .q-icon{font-size:21px}.q-tree__img{height:42px;border-radius:2px}.q-tree__avatar,.q-tree__node-header-content .q-avatar{font-size:28px;border-radius:50%;width:28px;height:28px}.q-tree__arrow,.q-tree__spinner{font-size:16px;margin-right:4px}.q-tree__arrow{transition:transform .3s}.q-tree__arrow--rotate{transform:rotate3d(0,0,1,90deg)}.q-tree__tickbox{margin-right:4px}.q-tree>.q-tree__node{padding:0}.q-tree>.q-tree__node:after,.q-tree>.q-tree__node>.q-tree__node-header:before{display:none}.q-tree>.q-tree__node--child>.q-tree__node-header{padding-left:24px}.q-tree--dark .q-tree__node-header-content{color:#fff}.q-tree--no-connectors .q-tree__node:after,.q-tree--no-connectors .q-tree__node-header:before,.q-tree--no-connectors .q-tree__node-body:after{display:none!important}.q-tree--dense>.q-tree__node--child>.q-tree__node-header{padding-left:1px}.q-tree--dense .q-tree__arrow,.q-tree--dense .q-tree__spinner{margin-right:1px}.q-tree--dense .q-tree__img{height:32px}.q-tree--dense .q-tree__tickbox{margin-right:3px}.q-tree--dense .q-tree__node{padding:0}.q-tree--dense .q-tree__node:after{top:0;left:-8px}.q-tree--dense .q-tree__node-header{margin-top:0;padding:1px}.q-tree--dense .q-tree__node-header:before{top:0;left:-8px;width:8px}.q-tree--dense .q-tree__node--child{padding-left:17px}.q-tree--dense .q-tree__node--child>.q-tree__node-header:before{left:-25px;width:21px}.q-tree--dense .q-tree__node-body{padding:0 0 2px}.q-tree--dense .q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body{padding:0 0 2px 20px}.q-tree--dense .q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body:after{left:8px}.q-tree--dense .q-tree__children{padding-left:16px}[dir=rtl] .q-tree__arrow{transform:rotate3d(0,0,1,180deg)}[dir=rtl] .q-tree__arrow--rotate{transform:rotate3d(0,0,1,90deg)}.q-uploader{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;vertical-align:top;background:#fff;position:relative;width:320px;max-height:320px}.q-uploader--bordered{border:1px solid rgba(0,0,0,.12)}.q-uploader__input{opacity:0;width:100%;height:100%;cursor:pointer!important;z-index:1}.q-uploader__input::-webkit-file-upload-button{cursor:pointer}.q-uploader__file:before{content:"";border-top-left-radius:inherit;border-top-right-radius:inherit;position:absolute;inset:0;pointer-events:none;background:currentColor;opacity:.04}.q-uploader__header{position:relative;border-top-left-radius:inherit;border-top-right-radius:inherit;background-color:var(--q-primary);color:#fff;width:100%}.q-uploader__spinner{font-size:24px;margin-right:4px}.q-uploader__header-content{padding:8px}.q-uploader__dnd{outline:1px dashed currentColor;outline-offset:-4px;background:rgba(255,255,255,.6)}.q-uploader__overlay{font-size:36px;color:#000;background-color:#fff9}.q-uploader__list{position:relative;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;padding:8px;min-height:60px;flex:1 1 auto}.q-uploader__file{border-radius:4px 4px 0 0;border:1px solid rgba(0,0,0,.12)}.q-uploader__file .q-circular-progress{font-size:24px}.q-uploader__file--img{color:#fff;height:200px;min-width:200px;background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.q-uploader__file--img:before{content:none}.q-uploader__file--img .q-circular-progress{color:#fff}.q-uploader__file--img .q-uploader__file-header{padding-bottom:24px;background:linear-gradient(to bottom,rgba(0,0,0,.7) 20%,rgba(255,255,255,0))}.q-uploader__file+.q-uploader__file{margin-top:8px}.q-uploader__file-header{position:relative;padding:4px 8px;border-top-left-radius:inherit;border-top-right-radius:inherit}.q-uploader__file-header-content{padding-right:8px}.q-uploader__file-status{font-size:24px;margin-right:4px}.q-uploader__title{font-size:14px;font-weight:700;line-height:18px;word-break:break-word}.q-uploader__subtitle{font-size:12px;line-height:18px}.q-uploader--disable .q-uploader__header,.q-uploader--disable .q-uploader__list{pointer-events:none}.q-uploader--dark,.q-uploader--dark .q-uploader__file{border-color:#ffffff47}.q-uploader--dark .q-uploader__dnd,.q-uploader--dark .q-uploader__overlay{background:rgba(255,255,255,.3)}.q-uploader--dark .q-uploader__overlay{color:#fff}img.responsive{max-width:100%;height:auto}.q-video{position:relative;overflow:hidden;border-radius:inherit}.q-video iframe,.q-video object,.q-video embed{width:100%;height:100%}.q-video--responsive{height:0}.q-video--responsive iframe,.q-video--responsive object,.q-video--responsive embed{position:absolute;top:0;left:0}.q-virtual-scroll:focus{outline:0}.q-virtual-scroll__content{outline:none;contain:content}.q-virtual-scroll__content>*{overflow-anchor:none}.q-virtual-scroll__content>[data-q-vs-anchor]{overflow-anchor:auto}.q-virtual-scroll__padding{background:linear-gradient(rgba(255,255,255,0),rgba(255,255,255,0) 20%,rgba(128,128,128,.03) 20%,rgba(128,128,128,.08) 50%,rgba(128,128,128,.03) 80%,rgba(255,255,255,0) 80%,rgba(255,255,255,0));background-size:var(--q-virtual-scroll-item-width, 100%) var(--q-virtual-scroll-item-height, 50px)}.q-table .q-virtual-scroll__padding tr{height:0!important}.q-table .q-virtual-scroll__padding td{padding:0!important}.q-virtual-scroll--horizontal{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch}.q-virtual-scroll--horizontal .q-virtual-scroll__content{display:flex;flex-direction:row;flex-wrap:nowrap}.q-virtual-scroll--horizontal .q-virtual-scroll__padding,.q-virtual-scroll--horizontal .q-virtual-scroll__content,.q-virtual-scroll--horizontal .q-virtual-scroll__content>*{flex:0 0 auto}.q-virtual-scroll--horizontal .q-virtual-scroll__padding{background:linear-gradient(to left,rgba(255,255,255,0),rgba(255,255,255,0) 20%,rgba(128,128,128,.03) 20%,rgba(128,128,128,.08) 50%,rgba(128,128,128,.03) 80%,rgba(255,255,255,0) 80%,rgba(255,255,255,0));background-size:var(--q-virtual-scroll-item-width, 50px) var(--q-virtual-scroll-item-height, 100%)}.q-ripple{position:absolute;top:0;left:0;width:100%;height:100%;color:inherit;border-radius:inherit;z-index:0;pointer-events:none;overflow:hidden;contain:strict}.q-ripple__inner{position:absolute;top:0;left:0;opacity:0;color:inherit;border-radius:50%;background:currentColor;pointer-events:none;will-change:transform,opacity}.q-ripple__inner--enter{transition:transform .225s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.q-ripple__inner--leave{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.q-morph--invisible,.q-morph--internal{opacity:0!important;pointer-events:none!important;position:fixed!important;right:200vw!important;bottom:200vh!important}.q-loading{color:#000;position:fixed!important}.q-loading__backdrop{position:fixed;inset:0;opacity:.5;z-index:-1;background-color:#000;transition:background-color .28s}.q-loading__box{border-radius:4px;padding:18px;color:#fff;max-width:450px}.q-loading__message{margin:40px 20px 0;text-align:center}.q-notifications__list{z-index:9500;pointer-events:none;left:0;right:0;margin-bottom:10px;position:relative}.q-notifications__list--center{top:0;bottom:0}.q-notifications__list--top{top:0}.q-notifications__list--bottom{bottom:0}body.q-ios-padding .q-notifications__list--center,body.q-ios-padding .q-notifications__list--top{top:20px;top:env(safe-area-inset-top)}body.q-ios-padding .q-notifications__list--center,body.q-ios-padding .q-notifications__list--bottom{bottom:env(safe-area-inset-bottom)}.q-notification{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;pointer-events:all;display:inline-flex;margin:10px 10px 0;transition:transform 1s,opacity 1s;z-index:9500;flex-shrink:0;max-width:95vw;background:#323232;color:#fff;font-size:14px}.q-notification__icon{font-size:24px;flex:0 0 1em}.q-notification__icon--additional{margin-right:16px}.q-notification__avatar{font-size:32px}.q-notification__avatar--additional{margin-right:8px}.q-notification__spinner{font-size:32px}.q-notification__spinner--additional{margin-right:8px}.q-notification__message{padding:8px 0}.q-notification__caption{font-size:.9em;opacity:.7}.q-notification__actions{color:var(--q-primary)}.q-notification__badge{animation:q-notif-badge .42s;padding:4px 8px;position:absolute;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;background-color:var(--q-negative);color:#fff;border-radius:4px;font-size:12px;line-height:12px}.q-notification__badge--top-left,.q-notification__badge--top-right{top:-6px}.q-notification__badge--bottom-left,.q-notification__badge--bottom-right{bottom:-6px}.q-notification__badge--top-left,.q-notification__badge--bottom-left{left:-22px}.q-notification__badge--top-right,.q-notification__badge--bottom-right{right:-22px}.q-notification__progress{z-index:-1;position:absolute;height:3px;bottom:0;left:-10px;right:-10px;animation:q-notif-progress linear;background:currentColor;opacity:.3;border-radius:4px 4px 0 0;transform-origin:0 50%;transform:scaleX(0)}.q-notification--standard{padding:0 16px;min-height:48px}.q-notification--standard .q-notification__actions{padding:6px 0 6px 8px;margin-right:-8px}.q-notification--multi-line{min-height:68px;padding:8px 16px}.q-notification--multi-line .q-notification__badge--top-left,.q-notification--multi-line .q-notification__badge--top-right{top:-15px}.q-notification--multi-line .q-notification__badge--bottom-left,.q-notification--multi-line .q-notification__badge--bottom-right{bottom:-15px}.q-notification--multi-line .q-notification__progress{bottom:-8px}.q-notification--multi-line .q-notification__actions{padding:0}.q-notification--multi-line .q-notification__actions--with-media{padding-left:25px}.q-notification--top-left-enter-from,.q-notification--top-left-leave-to,.q-notification--top-enter-from,.q-notification--top-leave-to,.q-notification--top-right-enter-from,.q-notification--top-right-leave-to{opacity:0;transform:translateY(-50px);z-index:9499}.q-notification--left-enter-from,.q-notification--left-leave-to,.q-notification--center-enter-from,.q-notification--center-leave-to,.q-notification--right-enter-from,.q-notification--right-leave-to{opacity:0;transform:rotateX(90deg);z-index:9499}.q-notification--bottom-left-enter-from,.q-notification--bottom-left-leave-to,.q-notification--bottom-enter-from,.q-notification--bottom-leave-to,.q-notification--bottom-right-enter-from,.q-notification--bottom-right-leave-to{opacity:0;transform:translateY(50px);z-index:9499}.q-notification--top-left-leave-active,.q-notification--top-leave-active,.q-notification--top-right-leave-active,.q-notification--left-leave-active,.q-notification--center-leave-active,.q-notification--right-leave-active,.q-notification--bottom-left-leave-active,.q-notification--bottom-leave-active,.q-notification--bottom-right-leave-active{position:absolute;z-index:9499;margin-left:0;margin-right:0}.q-notification--top-leave-active,.q-notification--center-leave-active{top:0}.q-notification--bottom-left-leave-active,.q-notification--bottom-leave-active,.q-notification--bottom-right-leave-active{bottom:0}@media (min-width: 600px){.q-notification{max-width:65vw}}@keyframes q-notif-badge{15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}}@keyframes q-notif-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}:root{--animate-duration: .3s;--animate-delay: .3s;--animate-repeat: 1}.animated{animation-duration:var(--animate-duration);animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{animation-duration:2s}.animated.repeat-1{animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{animation-iteration-count:calc(var(--animate-repeat) * 2)}.animated.repeat-3{animation-iteration-count:calc(var(--animate-repeat) * 3)}.animated.delay-1s{animation-delay:var(--animate-delay)}.animated.delay-2s{animation-delay:calc(var(--animate-delay) * 2)}.animated.delay-3s{animation-delay:calc(var(--animate-delay) * 3)}.animated.delay-4s{animation-delay:calc(var(--animate-delay) * 4)}.animated.delay-5s{animation-delay:calc(var(--animate-delay) * 5)}.animated.faster{animation-duration:calc(var(--animate-duration) / 2)}.animated.fast{animation-duration:calc(var(--animate-duration) * .8)}.animated.slow{animation-duration:calc(var(--animate-duration) * 2)}.animated.slower{animation-duration:calc(var(--animate-duration) * 3)}@media print,(prefers-reduced-motion: reduce){.animated{animation-duration:1ms!important;transition-duration:1ms!important;animation-iteration-count:1!important}.animated[class*=Out]{opacity:0}}.q-animate--scale{animation:q-scale .15s;animation-timing-function:cubic-bezier(.25,.8,.25,1)}@keyframes q-scale{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}.q-animate--fade{animation:q-fade .2s}@keyframes q-fade{0%{opacity:0}to{opacity:1}}:root{--q-primary: #1976D2;--q-secondary: #26A69A;--q-accent: #9C27B0;--q-positive: #21BA45;--q-negative: #C10015;--q-info: #31CCEC;--q-warning: #F2C037;--q-dark: #1D1D1D;--q-dark-page: #121212}.text-dark{color:var(--q-dark)!important}.bg-dark{background:var(--q-dark)!important}.text-primary{color:var(--q-primary)!important}.bg-primary{background:var(--q-primary)!important}.text-secondary{color:var(--q-secondary)!important}.bg-secondary{background:var(--q-secondary)!important}.text-accent{color:var(--q-accent)!important}.bg-accent{background:var(--q-accent)!important}.text-positive{color:var(--q-positive)!important}.bg-positive{background:var(--q-positive)!important}.text-negative{color:var(--q-negative)!important}.bg-negative{background:var(--q-negative)!important}.text-info{color:var(--q-info)!important}.bg-info{background:var(--q-info)!important}.text-warning{color:var(--q-warning)!important}.bg-warning{background:var(--q-warning)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.text-transparent{color:transparent!important}.bg-transparent{background:transparent!important}.text-separator{color:#0000001f!important}.bg-separator{background:rgba(0,0,0,.12)!important}.text-dark-separator{color:#ffffff47!important}.bg-dark-separator{background:rgba(255,255,255,.28)!important}.text-red{color:#f44336!important}.text-red-1{color:#ffebee!important}.text-red-2{color:#ffcdd2!important}.text-red-3{color:#ef9a9a!important}.text-red-4{color:#e57373!important}.text-red-5{color:#ef5350!important}.text-red-6{color:#f44336!important}.text-red-7{color:#e53935!important}.text-red-8{color:#d32f2f!important}.text-red-9{color:#c62828!important}.text-red-10{color:#b71c1c!important}.text-red-11{color:#ff8a80!important}.text-red-12{color:#ff5252!important}.text-red-13{color:#ff1744!important}.text-red-14{color:#d50000!important}.text-pink{color:#e91e63!important}.text-pink-1{color:#fce4ec!important}.text-pink-2{color:#f8bbd0!important}.text-pink-3{color:#f48fb1!important}.text-pink-4{color:#f06292!important}.text-pink-5{color:#ec407a!important}.text-pink-6{color:#e91e63!important}.text-pink-7{color:#d81b60!important}.text-pink-8{color:#c2185b!important}.text-pink-9{color:#ad1457!important}.text-pink-10{color:#880e4f!important}.text-pink-11{color:#ff80ab!important}.text-pink-12{color:#ff4081!important}.text-pink-13{color:#f50057!important}.text-pink-14{color:#c51162!important}.text-purple{color:#9c27b0!important}.text-purple-1{color:#f3e5f5!important}.text-purple-2{color:#e1bee7!important}.text-purple-3{color:#ce93d8!important}.text-purple-4{color:#ba68c8!important}.text-purple-5{color:#ab47bc!important}.text-purple-6{color:#9c27b0!important}.text-purple-7{color:#8e24aa!important}.text-purple-8{color:#7b1fa2!important}.text-purple-9{color:#6a1b9a!important}.text-purple-10{color:#4a148c!important}.text-purple-11{color:#ea80fc!important}.text-purple-12{color:#e040fb!important}.text-purple-13{color:#d500f9!important}.text-purple-14{color:#a0f!important}.text-deep-purple{color:#673ab7!important}.text-deep-purple-1{color:#ede7f6!important}.text-deep-purple-2{color:#d1c4e9!important}.text-deep-purple-3{color:#b39ddb!important}.text-deep-purple-4{color:#9575cd!important}.text-deep-purple-5{color:#7e57c2!important}.text-deep-purple-6{color:#673ab7!important}.text-deep-purple-7{color:#5e35b1!important}.text-deep-purple-8{color:#512da8!important}.text-deep-purple-9{color:#4527a0!important}.text-deep-purple-10{color:#311b92!important}.text-deep-purple-11{color:#b388ff!important}.text-deep-purple-12{color:#7c4dff!important}.text-deep-purple-13{color:#651fff!important}.text-deep-purple-14{color:#6200ea!important}.text-indigo{color:#3f51b5!important}.text-indigo-1{color:#e8eaf6!important}.text-indigo-2{color:#c5cae9!important}.text-indigo-3{color:#9fa8da!important}.text-indigo-4{color:#7986cb!important}.text-indigo-5{color:#5c6bc0!important}.text-indigo-6{color:#3f51b5!important}.text-indigo-7{color:#3949ab!important}.text-indigo-8{color:#303f9f!important}.text-indigo-9{color:#283593!important}.text-indigo-10{color:#1a237e!important}.text-indigo-11{color:#8c9eff!important}.text-indigo-12{color:#536dfe!important}.text-indigo-13{color:#3d5afe!important}.text-indigo-14{color:#304ffe!important}.text-blue{color:#2196f3!important}.text-blue-1{color:#e3f2fd!important}.text-blue-2{color:#bbdefb!important}.text-blue-3{color:#90caf9!important}.text-blue-4{color:#64b5f6!important}.text-blue-5{color:#42a5f5!important}.text-blue-6{color:#2196f3!important}.text-blue-7{color:#1e88e5!important}.text-blue-8{color:#1976d2!important}.text-blue-9{color:#1565c0!important}.text-blue-10{color:#0d47a1!important}.text-blue-11{color:#82b1ff!important}.text-blue-12{color:#448aff!important}.text-blue-13{color:#2979ff!important}.text-blue-14{color:#2962ff!important}.text-light-blue{color:#03a9f4!important}.text-light-blue-1{color:#e1f5fe!important}.text-light-blue-2{color:#b3e5fc!important}.text-light-blue-3{color:#81d4fa!important}.text-light-blue-4{color:#4fc3f7!important}.text-light-blue-5{color:#29b6f6!important}.text-light-blue-6{color:#03a9f4!important}.text-light-blue-7{color:#039be5!important}.text-light-blue-8{color:#0288d1!important}.text-light-blue-9{color:#0277bd!important}.text-light-blue-10{color:#01579b!important}.text-light-blue-11{color:#80d8ff!important}.text-light-blue-12{color:#40c4ff!important}.text-light-blue-13{color:#00b0ff!important}.text-light-blue-14{color:#0091ea!important}.text-cyan{color:#00bcd4!important}.text-cyan-1{color:#e0f7fa!important}.text-cyan-2{color:#b2ebf2!important}.text-cyan-3{color:#80deea!important}.text-cyan-4{color:#4dd0e1!important}.text-cyan-5{color:#26c6da!important}.text-cyan-6{color:#00bcd4!important}.text-cyan-7{color:#00acc1!important}.text-cyan-8{color:#0097a7!important}.text-cyan-9{color:#00838f!important}.text-cyan-10{color:#006064!important}.text-cyan-11{color:#84ffff!important}.text-cyan-12{color:#18ffff!important}.text-cyan-13{color:#00e5ff!important}.text-cyan-14{color:#00b8d4!important}.text-teal{color:#009688!important}.text-teal-1{color:#e0f2f1!important}.text-teal-2{color:#b2dfdb!important}.text-teal-3{color:#80cbc4!important}.text-teal-4{color:#4db6ac!important}.text-teal-5{color:#26a69a!important}.text-teal-6{color:#009688!important}.text-teal-7{color:#00897b!important}.text-teal-8{color:#00796b!important}.text-teal-9{color:#00695c!important}.text-teal-10{color:#004d40!important}.text-teal-11{color:#a7ffeb!important}.text-teal-12{color:#64ffda!important}.text-teal-13{color:#1de9b6!important}.text-teal-14{color:#00bfa5!important}.text-green{color:#4caf50!important}.text-green-1{color:#e8f5e9!important}.text-green-2{color:#c8e6c9!important}.text-green-3{color:#a5d6a7!important}.text-green-4{color:#81c784!important}.text-green-5{color:#66bb6a!important}.text-green-6{color:#4caf50!important}.text-green-7{color:#43a047!important}.text-green-8{color:#388e3c!important}.text-green-9{color:#2e7d32!important}.text-green-10{color:#1b5e20!important}.text-green-11{color:#b9f6ca!important}.text-green-12{color:#69f0ae!important}.text-green-13{color:#00e676!important}.text-green-14{color:#00c853!important}.text-light-green{color:#8bc34a!important}.text-light-green-1{color:#f1f8e9!important}.text-light-green-2{color:#dcedc8!important}.text-light-green-3{color:#c5e1a5!important}.text-light-green-4{color:#aed581!important}.text-light-green-5{color:#9ccc65!important}.text-light-green-6{color:#8bc34a!important}.text-light-green-7{color:#7cb342!important}.text-light-green-8{color:#689f38!important}.text-light-green-9{color:#558b2f!important}.text-light-green-10{color:#33691e!important}.text-light-green-11{color:#ccff90!important}.text-light-green-12{color:#b2ff59!important}.text-light-green-13{color:#76ff03!important}.text-light-green-14{color:#64dd17!important}.text-lime{color:#cddc39!important}.text-lime-1{color:#f9fbe7!important}.text-lime-2{color:#f0f4c3!important}.text-lime-3{color:#e6ee9c!important}.text-lime-4{color:#dce775!important}.text-lime-5{color:#d4e157!important}.text-lime-6{color:#cddc39!important}.text-lime-7{color:#c0ca33!important}.text-lime-8{color:#afb42b!important}.text-lime-9{color:#9e9d24!important}.text-lime-10{color:#827717!important}.text-lime-11{color:#f4ff81!important}.text-lime-12{color:#eeff41!important}.text-lime-13{color:#c6ff00!important}.text-lime-14{color:#aeea00!important}.text-yellow{color:#ffeb3b!important}.text-yellow-1{color:#fffde7!important}.text-yellow-2{color:#fff9c4!important}.text-yellow-3{color:#fff59d!important}.text-yellow-4{color:#fff176!important}.text-yellow-5{color:#ffee58!important}.text-yellow-6{color:#ffeb3b!important}.text-yellow-7{color:#fdd835!important}.text-yellow-8{color:#fbc02d!important}.text-yellow-9{color:#f9a825!important}.text-yellow-10{color:#f57f17!important}.text-yellow-11{color:#ffff8d!important}.text-yellow-12{color:#ff0!important}.text-yellow-13{color:#ffea00!important}.text-yellow-14{color:#ffd600!important}.text-amber{color:#ffc107!important}.text-amber-1{color:#fff8e1!important}.text-amber-2{color:#ffecb3!important}.text-amber-3{color:#ffe082!important}.text-amber-4{color:#ffd54f!important}.text-amber-5{color:#ffca28!important}.text-amber-6{color:#ffc107!important}.text-amber-7{color:#ffb300!important}.text-amber-8{color:#ffa000!important}.text-amber-9{color:#ff8f00!important}.text-amber-10{color:#ff6f00!important}.text-amber-11{color:#ffe57f!important}.text-amber-12{color:#ffd740!important}.text-amber-13{color:#ffc400!important}.text-amber-14{color:#ffab00!important}.text-orange{color:#ff9800!important}.text-orange-1{color:#fff3e0!important}.text-orange-2{color:#ffe0b2!important}.text-orange-3{color:#ffcc80!important}.text-orange-4{color:#ffb74d!important}.text-orange-5{color:#ffa726!important}.text-orange-6{color:#ff9800!important}.text-orange-7{color:#fb8c00!important}.text-orange-8{color:#f57c00!important}.text-orange-9{color:#ef6c00!important}.text-orange-10{color:#e65100!important}.text-orange-11{color:#ffd180!important}.text-orange-12{color:#ffab40!important}.text-orange-13{color:#ff9100!important}.text-orange-14{color:#ff6d00!important}.text-deep-orange{color:#ff5722!important}.text-deep-orange-1{color:#fbe9e7!important}.text-deep-orange-2{color:#ffccbc!important}.text-deep-orange-3{color:#ffab91!important}.text-deep-orange-4{color:#ff8a65!important}.text-deep-orange-5{color:#ff7043!important}.text-deep-orange-6{color:#ff5722!important}.text-deep-orange-7{color:#f4511e!important}.text-deep-orange-8{color:#e64a19!important}.text-deep-orange-9{color:#d84315!important}.text-deep-orange-10{color:#bf360c!important}.text-deep-orange-11{color:#ff9e80!important}.text-deep-orange-12{color:#ff6e40!important}.text-deep-orange-13{color:#ff3d00!important}.text-deep-orange-14{color:#dd2c00!important}.text-brown{color:#795548!important}.text-brown-1{color:#efebe9!important}.text-brown-2{color:#d7ccc8!important}.text-brown-3{color:#bcaaa4!important}.text-brown-4{color:#a1887f!important}.text-brown-5{color:#8d6e63!important}.text-brown-6{color:#795548!important}.text-brown-7{color:#6d4c41!important}.text-brown-8{color:#5d4037!important}.text-brown-9{color:#4e342e!important}.text-brown-10{color:#3e2723!important}.text-brown-11{color:#d7ccc8!important}.text-brown-12{color:#bcaaa4!important}.text-brown-13{color:#8d6e63!important}.text-brown-14{color:#5d4037!important}.text-grey{color:#9e9e9e!important}.text-grey-1{color:#fafafa!important}.text-grey-2{color:#f5f5f5!important}.text-grey-3{color:#eee!important}.text-grey-4{color:#e0e0e0!important}.text-grey-5{color:#bdbdbd!important}.text-grey-6{color:#9e9e9e!important}.text-grey-7{color:#757575!important}.text-grey-8{color:#616161!important}.text-grey-9{color:#424242!important}.text-grey-10{color:#212121!important}.text-grey-11{color:#f5f5f5!important}.text-grey-12{color:#eee!important}.text-grey-13{color:#bdbdbd!important}.text-grey-14{color:#616161!important}.text-blue-grey{color:#607d8b!important}.text-blue-grey-1{color:#eceff1!important}.text-blue-grey-2{color:#cfd8dc!important}.text-blue-grey-3{color:#b0bec5!important}.text-blue-grey-4{color:#90a4ae!important}.text-blue-grey-5{color:#78909c!important}.text-blue-grey-6{color:#607d8b!important}.text-blue-grey-7{color:#546e7a!important}.text-blue-grey-8{color:#455a64!important}.text-blue-grey-9{color:#37474f!important}.text-blue-grey-10{color:#263238!important}.text-blue-grey-11{color:#cfd8dc!important}.text-blue-grey-12{color:#b0bec5!important}.text-blue-grey-13{color:#78909c!important}.text-blue-grey-14{color:#455a64!important}.bg-red{background:#f44336!important}.bg-red-1{background:#ffebee!important}.bg-red-2{background:#ffcdd2!important}.bg-red-3{background:#ef9a9a!important}.bg-red-4{background:#e57373!important}.bg-red-5{background:#ef5350!important}.bg-red-6{background:#f44336!important}.bg-red-7{background:#e53935!important}.bg-red-8{background:#d32f2f!important}.bg-red-9{background:#c62828!important}.bg-red-10{background:#b71c1c!important}.bg-red-11{background:#ff8a80!important}.bg-red-12{background:#ff5252!important}.bg-red-13{background:#ff1744!important}.bg-red-14{background:#d50000!important}.bg-pink{background:#e91e63!important}.bg-pink-1{background:#fce4ec!important}.bg-pink-2{background:#f8bbd0!important}.bg-pink-3{background:#f48fb1!important}.bg-pink-4{background:#f06292!important}.bg-pink-5{background:#ec407a!important}.bg-pink-6{background:#e91e63!important}.bg-pink-7{background:#d81b60!important}.bg-pink-8{background:#c2185b!important}.bg-pink-9{background:#ad1457!important}.bg-pink-10{background:#880e4f!important}.bg-pink-11{background:#ff80ab!important}.bg-pink-12{background:#ff4081!important}.bg-pink-13{background:#f50057!important}.bg-pink-14{background:#c51162!important}.bg-purple{background:#9c27b0!important}.bg-purple-1{background:#f3e5f5!important}.bg-purple-2{background:#e1bee7!important}.bg-purple-3{background:#ce93d8!important}.bg-purple-4{background:#ba68c8!important}.bg-purple-5{background:#ab47bc!important}.bg-purple-6{background:#9c27b0!important}.bg-purple-7{background:#8e24aa!important}.bg-purple-8{background:#7b1fa2!important}.bg-purple-9{background:#6a1b9a!important}.bg-purple-10{background:#4a148c!important}.bg-purple-11{background:#ea80fc!important}.bg-purple-12{background:#e040fb!important}.bg-purple-13{background:#d500f9!important}.bg-purple-14{background:#aa00ff!important}.bg-deep-purple{background:#673ab7!important}.bg-deep-purple-1{background:#ede7f6!important}.bg-deep-purple-2{background:#d1c4e9!important}.bg-deep-purple-3{background:#b39ddb!important}.bg-deep-purple-4{background:#9575cd!important}.bg-deep-purple-5{background:#7e57c2!important}.bg-deep-purple-6{background:#673ab7!important}.bg-deep-purple-7{background:#5e35b1!important}.bg-deep-purple-8{background:#512da8!important}.bg-deep-purple-9{background:#4527a0!important}.bg-deep-purple-10{background:#311b92!important}.bg-deep-purple-11{background:#b388ff!important}.bg-deep-purple-12{background:#7c4dff!important}.bg-deep-purple-13{background:#651fff!important}.bg-deep-purple-14{background:#6200ea!important}.bg-indigo{background:#3f51b5!important}.bg-indigo-1{background:#e8eaf6!important}.bg-indigo-2{background:#c5cae9!important}.bg-indigo-3{background:#9fa8da!important}.bg-indigo-4{background:#7986cb!important}.bg-indigo-5{background:#5c6bc0!important}.bg-indigo-6{background:#3f51b5!important}.bg-indigo-7{background:#3949ab!important}.bg-indigo-8{background:#303f9f!important}.bg-indigo-9{background:#283593!important}.bg-indigo-10{background:#1a237e!important}.bg-indigo-11{background:#8c9eff!important}.bg-indigo-12{background:#536dfe!important}.bg-indigo-13{background:#3d5afe!important}.bg-indigo-14{background:#304ffe!important}.bg-blue{background:#2196f3!important}.bg-blue-1{background:#e3f2fd!important}.bg-blue-2{background:#bbdefb!important}.bg-blue-3{background:#90caf9!important}.bg-blue-4{background:#64b5f6!important}.bg-blue-5{background:#42a5f5!important}.bg-blue-6{background:#2196f3!important}.bg-blue-7{background:#1e88e5!important}.bg-blue-8{background:#1976d2!important}.bg-blue-9{background:#1565c0!important}.bg-blue-10{background:#0d47a1!important}.bg-blue-11{background:#82b1ff!important}.bg-blue-12{background:#448aff!important}.bg-blue-13{background:#2979ff!important}.bg-blue-14{background:#2962ff!important}.bg-light-blue{background:#03a9f4!important}.bg-light-blue-1{background:#e1f5fe!important}.bg-light-blue-2{background:#b3e5fc!important}.bg-light-blue-3{background:#81d4fa!important}.bg-light-blue-4{background:#4fc3f7!important}.bg-light-blue-5{background:#29b6f6!important}.bg-light-blue-6{background:#03a9f4!important}.bg-light-blue-7{background:#039be5!important}.bg-light-blue-8{background:#0288d1!important}.bg-light-blue-9{background:#0277bd!important}.bg-light-blue-10{background:#01579b!important}.bg-light-blue-11{background:#80d8ff!important}.bg-light-blue-12{background:#40c4ff!important}.bg-light-blue-13{background:#00b0ff!important}.bg-light-blue-14{background:#0091ea!important}.bg-cyan{background:#00bcd4!important}.bg-cyan-1{background:#e0f7fa!important}.bg-cyan-2{background:#b2ebf2!important}.bg-cyan-3{background:#80deea!important}.bg-cyan-4{background:#4dd0e1!important}.bg-cyan-5{background:#26c6da!important}.bg-cyan-6{background:#00bcd4!important}.bg-cyan-7{background:#00acc1!important}.bg-cyan-8{background:#0097a7!important}.bg-cyan-9{background:#00838f!important}.bg-cyan-10{background:#006064!important}.bg-cyan-11{background:#84ffff!important}.bg-cyan-12{background:#18ffff!important}.bg-cyan-13{background:#00e5ff!important}.bg-cyan-14{background:#00b8d4!important}.bg-teal{background:#009688!important}.bg-teal-1{background:#e0f2f1!important}.bg-teal-2{background:#b2dfdb!important}.bg-teal-3{background:#80cbc4!important}.bg-teal-4{background:#4db6ac!important}.bg-teal-5{background:#26a69a!important}.bg-teal-6{background:#009688!important}.bg-teal-7{background:#00897b!important}.bg-teal-8{background:#00796b!important}.bg-teal-9{background:#00695c!important}.bg-teal-10{background:#004d40!important}.bg-teal-11{background:#a7ffeb!important}.bg-teal-12{background:#64ffda!important}.bg-teal-13{background:#1de9b6!important}.bg-teal-14{background:#00bfa5!important}.bg-green{background:#4caf50!important}.bg-green-1{background:#e8f5e9!important}.bg-green-2{background:#c8e6c9!important}.bg-green-3{background:#a5d6a7!important}.bg-green-4{background:#81c784!important}.bg-green-5{background:#66bb6a!important}.bg-green-6{background:#4caf50!important}.bg-green-7{background:#43a047!important}.bg-green-8{background:#388e3c!important}.bg-green-9{background:#2e7d32!important}.bg-green-10{background:#1b5e20!important}.bg-green-11{background:#b9f6ca!important}.bg-green-12{background:#69f0ae!important}.bg-green-13{background:#00e676!important}.bg-green-14{background:#00c853!important}.bg-light-green{background:#8bc34a!important}.bg-light-green-1{background:#f1f8e9!important}.bg-light-green-2{background:#dcedc8!important}.bg-light-green-3{background:#c5e1a5!important}.bg-light-green-4{background:#aed581!important}.bg-light-green-5{background:#9ccc65!important}.bg-light-green-6{background:#8bc34a!important}.bg-light-green-7{background:#7cb342!important}.bg-light-green-8{background:#689f38!important}.bg-light-green-9{background:#558b2f!important}.bg-light-green-10{background:#33691e!important}.bg-light-green-11{background:#ccff90!important}.bg-light-green-12{background:#b2ff59!important}.bg-light-green-13{background:#76ff03!important}.bg-light-green-14{background:#64dd17!important}.bg-lime{background:#cddc39!important}.bg-lime-1{background:#f9fbe7!important}.bg-lime-2{background:#f0f4c3!important}.bg-lime-3{background:#e6ee9c!important}.bg-lime-4{background:#dce775!important}.bg-lime-5{background:#d4e157!important}.bg-lime-6{background:#cddc39!important}.bg-lime-7{background:#c0ca33!important}.bg-lime-8{background:#afb42b!important}.bg-lime-9{background:#9e9d24!important}.bg-lime-10{background:#827717!important}.bg-lime-11{background:#f4ff81!important}.bg-lime-12{background:#eeff41!important}.bg-lime-13{background:#c6ff00!important}.bg-lime-14{background:#aeea00!important}.bg-yellow{background:#ffeb3b!important}.bg-yellow-1{background:#fffde7!important}.bg-yellow-2{background:#fff9c4!important}.bg-yellow-3{background:#fff59d!important}.bg-yellow-4{background:#fff176!important}.bg-yellow-5{background:#ffee58!important}.bg-yellow-6{background:#ffeb3b!important}.bg-yellow-7{background:#fdd835!important}.bg-yellow-8{background:#fbc02d!important}.bg-yellow-9{background:#f9a825!important}.bg-yellow-10{background:#f57f17!important}.bg-yellow-11{background:#ffff8d!important}.bg-yellow-12{background:#ffff00!important}.bg-yellow-13{background:#ffea00!important}.bg-yellow-14{background:#ffd600!important}.bg-amber{background:#ffc107!important}.bg-amber-1{background:#fff8e1!important}.bg-amber-2{background:#ffecb3!important}.bg-amber-3{background:#ffe082!important}.bg-amber-4{background:#ffd54f!important}.bg-amber-5{background:#ffca28!important}.bg-amber-6{background:#ffc107!important}.bg-amber-7{background:#ffb300!important}.bg-amber-8{background:#ffa000!important}.bg-amber-9{background:#ff8f00!important}.bg-amber-10{background:#ff6f00!important}.bg-amber-11{background:#ffe57f!important}.bg-amber-12{background:#ffd740!important}.bg-amber-13{background:#ffc400!important}.bg-amber-14{background:#ffab00!important}.bg-orange{background:#ff9800!important}.bg-orange-1{background:#fff3e0!important}.bg-orange-2{background:#ffe0b2!important}.bg-orange-3{background:#ffcc80!important}.bg-orange-4{background:#ffb74d!important}.bg-orange-5{background:#ffa726!important}.bg-orange-6{background:#ff9800!important}.bg-orange-7{background:#fb8c00!important}.bg-orange-8{background:#f57c00!important}.bg-orange-9{background:#ef6c00!important}.bg-orange-10{background:#e65100!important}.bg-orange-11{background:#ffd180!important}.bg-orange-12{background:#ffab40!important}.bg-orange-13{background:#ff9100!important}.bg-orange-14{background:#ff6d00!important}.bg-deep-orange{background:#ff5722!important}.bg-deep-orange-1{background:#fbe9e7!important}.bg-deep-orange-2{background:#ffccbc!important}.bg-deep-orange-3{background:#ffab91!important}.bg-deep-orange-4{background:#ff8a65!important}.bg-deep-orange-5{background:#ff7043!important}.bg-deep-orange-6{background:#ff5722!important}.bg-deep-orange-7{background:#f4511e!important}.bg-deep-orange-8{background:#e64a19!important}.bg-deep-orange-9{background:#d84315!important}.bg-deep-orange-10{background:#bf360c!important}.bg-deep-orange-11{background:#ff9e80!important}.bg-deep-orange-12{background:#ff6e40!important}.bg-deep-orange-13{background:#ff3d00!important}.bg-deep-orange-14{background:#dd2c00!important}.bg-brown{background:#795548!important}.bg-brown-1{background:#efebe9!important}.bg-brown-2{background:#d7ccc8!important}.bg-brown-3{background:#bcaaa4!important}.bg-brown-4{background:#a1887f!important}.bg-brown-5{background:#8d6e63!important}.bg-brown-6{background:#795548!important}.bg-brown-7{background:#6d4c41!important}.bg-brown-8{background:#5d4037!important}.bg-brown-9{background:#4e342e!important}.bg-brown-10{background:#3e2723!important}.bg-brown-11{background:#d7ccc8!important}.bg-brown-12{background:#bcaaa4!important}.bg-brown-13{background:#8d6e63!important}.bg-brown-14{background:#5d4037!important}.bg-grey{background:#9e9e9e!important}.bg-grey-1{background:#fafafa!important}.bg-grey-2{background:#f5f5f5!important}.bg-grey-3{background:#eeeeee!important}.bg-grey-4{background:#e0e0e0!important}.bg-grey-5{background:#bdbdbd!important}.bg-grey-6{background:#9e9e9e!important}.bg-grey-7{background:#757575!important}.bg-grey-8{background:#616161!important}.bg-grey-9{background:#424242!important}.bg-grey-10{background:#212121!important}.bg-grey-11{background:#f5f5f5!important}.bg-grey-12{background:#eeeeee!important}.bg-grey-13{background:#bdbdbd!important}.bg-grey-14{background:#616161!important}.bg-blue-grey{background:#607d8b!important}.bg-blue-grey-1{background:#eceff1!important}.bg-blue-grey-2{background:#cfd8dc!important}.bg-blue-grey-3{background:#b0bec5!important}.bg-blue-grey-4{background:#90a4ae!important}.bg-blue-grey-5{background:#78909c!important}.bg-blue-grey-6{background:#607d8b!important}.bg-blue-grey-7{background:#546e7a!important}.bg-blue-grey-8{background:#455a64!important}.bg-blue-grey-9{background:#37474f!important}.bg-blue-grey-10{background:#263238!important}.bg-blue-grey-11{background:#cfd8dc!important}.bg-blue-grey-12{background:#b0bec5!important}.bg-blue-grey-13{background:#78909c!important}.bg-blue-grey-14{background:#455a64!important}.shadow-transition{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)!important}.shadow-1{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}.shadow-up-1{box-shadow:0 -1px 3px #0003,0 -1px 1px #00000024,0 -2px 1px -1px #0000001f}.shadow-2{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.shadow-up-2{box-shadow:0 -1px 5px #0003,0 -2px 2px #00000024,0 -3px 1px -2px #0000001f}.shadow-3{box-shadow:0 1px 8px #0003,0 3px 4px #00000024,0 3px 3px -2px #0000001f}.shadow-up-3{box-shadow:0 -1px 8px #0003,0 -3px 4px #00000024,0 -3px 3px -2px #0000001f}.shadow-4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.shadow-up-4{box-shadow:0 -2px 4px -1px #0003,0 -4px 5px #00000024,0 -1px 10px #0000001f}.shadow-5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.shadow-up-5{box-shadow:0 -3px 5px -1px #0003,0 -5px 8px #00000024,0 -1px 14px #0000001f}.shadow-6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.shadow-up-6{box-shadow:0 -3px 5px -1px #0003,0 -6px 10px #00000024,0 -1px 18px #0000001f}.shadow-7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.shadow-up-7{box-shadow:0 -4px 5px -2px #0003,0 -7px 10px 1px #00000024,0 -2px 16px 1px #0000001f}.shadow-8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.shadow-up-8{box-shadow:0 -5px 5px -3px #0003,0 -8px 10px 1px #00000024,0 -3px 14px 2px #0000001f}.shadow-9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.shadow-up-9{box-shadow:0 -5px 6px -3px #0003,0 -9px 12px 1px #00000024,0 -3px 16px 2px #0000001f}.shadow-10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.shadow-up-10{box-shadow:0 -6px 6px -3px #0003,0 -10px 14px 1px #00000024,0 -4px 18px 3px #0000001f}.shadow-11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.shadow-up-11{box-shadow:0 -6px 7px -4px #0003,0 -11px 15px 1px #00000024,0 -4px 20px 3px #0000001f}.shadow-12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.shadow-up-12{box-shadow:0 -7px 8px -4px #0003,0 -12px 17px 2px #00000024,0 -5px 22px 4px #0000001f}.shadow-13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.shadow-up-13{box-shadow:0 -7px 8px -4px #0003,0 -13px 19px 2px #00000024,0 -5px 24px 4px #0000001f}.shadow-14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.shadow-up-14{box-shadow:0 -7px 9px -4px #0003,0 -14px 21px 2px #00000024,0 -5px 26px 4px #0000001f}.shadow-15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.shadow-up-15{box-shadow:0 -8px 9px -5px #0003,0 -15px 22px 2px #00000024,0 -6px 28px 5px #0000001f}.shadow-16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.shadow-up-16{box-shadow:0 -8px 10px -5px #0003,0 -16px 24px 2px #00000024,0 -6px 30px 5px #0000001f}.shadow-17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.shadow-up-17{box-shadow:0 -8px 11px -5px #0003,0 -17px 26px 2px #00000024,0 -6px 32px 5px #0000001f}.shadow-18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.shadow-up-18{box-shadow:0 -9px 11px -5px #0003,0 -18px 28px 2px #00000024,0 -7px 34px 6px #0000001f}.shadow-19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.shadow-up-19{box-shadow:0 -9px 12px -6px #0003,0 -19px 29px 2px #00000024,0 -7px 36px 6px #0000001f}.shadow-20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.shadow-up-20{box-shadow:0 -10px 13px -6px #0003,0 -20px 31px 3px #00000024,0 -8px 38px 7px #0000001f}.shadow-21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.shadow-up-21{box-shadow:0 -10px 13px -6px #0003,0 -21px 33px 3px #00000024,0 -8px 40px 7px #0000001f}.shadow-22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.shadow-up-22{box-shadow:0 -10px 14px -6px #0003,0 -22px 35px 3px #00000024,0 -8px 42px 7px #0000001f}.shadow-23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.shadow-up-23{box-shadow:0 -11px 14px -7px #0003,0 -23px 36px 3px #00000024,0 -9px 44px 8px #0000001f}.shadow-24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.shadow-up-24{box-shadow:0 -11px 15px -7px #0003,0 -24px 38px 3px #00000024,0 -9px 46px 8px #0000001f}.no-shadow,.shadow-0{box-shadow:none!important}.inset-shadow{box-shadow:0 7px 9px -7px #000000b3 inset!important}.inset-shadow-down{box-shadow:0 -7px 9px -7px #000000b3 inset!important}.z-marginals{z-index:2000}.z-notify{z-index:9500}.z-fullscreen{z-index:6000}.z-inherit{z-index:inherit!important}.row,.column,.flex{display:flex;flex-wrap:wrap}.row.inline,.column.inline,.flex.inline{display:inline-flex}.row.reverse{flex-direction:row-reverse}.column{flex-direction:column}.column.reverse{flex-direction:column-reverse}.wrap{flex-wrap:wrap}.no-wrap{flex-wrap:nowrap}.reverse-wrap{flex-wrap:wrap-reverse}.order-first{order:-10000}.order-last{order:10000}.order-none{order:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center,.flex-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center,.flex-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.q-gutter-x-none,.q-gutter-none{margin-left:0}.q-gutter-x-none>*,.q-gutter-none>*{margin-left:0}.q-gutter-y-none,.q-gutter-none{margin-top:0}.q-gutter-y-none>*,.q-gutter-none>*{margin-top:0}.q-col-gutter-x-none,.q-col-gutter-none{margin-left:0}.q-col-gutter-x-none>*,.q-col-gutter-none>*{padding-left:0}.q-col-gutter-y-none,.q-col-gutter-none{margin-top:0}.q-col-gutter-y-none>*,.q-col-gutter-none>*{padding-top:0}.q-gutter-x-xs,.q-gutter-xs{margin-left:-4px}.q-gutter-x-xs>*,.q-gutter-xs>*{margin-left:4px}.q-gutter-y-xs,.q-gutter-xs{margin-top:-4px}.q-gutter-y-xs>*,.q-gutter-xs>*{margin-top:4px}.q-col-gutter-x-xs,.q-col-gutter-xs{margin-left:-4px}.q-col-gutter-x-xs>*,.q-col-gutter-xs>*{padding-left:4px}.q-col-gutter-y-xs,.q-col-gutter-xs{margin-top:-4px}.q-col-gutter-y-xs>*,.q-col-gutter-xs>*{padding-top:4px}.q-gutter-x-sm,.q-gutter-sm{margin-left:-8px}.q-gutter-x-sm>*,.q-gutter-sm>*{margin-left:8px}.q-gutter-y-sm,.q-gutter-sm{margin-top:-8px}.q-gutter-y-sm>*,.q-gutter-sm>*{margin-top:8px}.q-col-gutter-x-sm,.q-col-gutter-sm{margin-left:-8px}.q-col-gutter-x-sm>*,.q-col-gutter-sm>*{padding-left:8px}.q-col-gutter-y-sm,.q-col-gutter-sm{margin-top:-8px}.q-col-gutter-y-sm>*,.q-col-gutter-sm>*{padding-top:8px}.q-gutter-x-md,.q-gutter-md{margin-left:-16px}.q-gutter-x-md>*,.q-gutter-md>*{margin-left:16px}.q-gutter-y-md,.q-gutter-md{margin-top:-16px}.q-gutter-y-md>*,.q-gutter-md>*{margin-top:16px}.q-col-gutter-x-md,.q-col-gutter-md{margin-left:-16px}.q-col-gutter-x-md>*,.q-col-gutter-md>*{padding-left:16px}.q-col-gutter-y-md,.q-col-gutter-md{margin-top:-16px}.q-col-gutter-y-md>*,.q-col-gutter-md>*{padding-top:16px}.q-gutter-x-lg,.q-gutter-lg{margin-left:-24px}.q-gutter-x-lg>*,.q-gutter-lg>*{margin-left:24px}.q-gutter-y-lg,.q-gutter-lg{margin-top:-24px}.q-gutter-y-lg>*,.q-gutter-lg>*{margin-top:24px}.q-col-gutter-x-lg,.q-col-gutter-lg{margin-left:-24px}.q-col-gutter-x-lg>*,.q-col-gutter-lg>*{padding-left:24px}.q-col-gutter-y-lg,.q-col-gutter-lg{margin-top:-24px}.q-col-gutter-y-lg>*,.q-col-gutter-lg>*{padding-top:24px}.q-gutter-x-xl,.q-gutter-xl{margin-left:-48px}.q-gutter-x-xl>*,.q-gutter-xl>*{margin-left:48px}.q-gutter-y-xl,.q-gutter-xl{margin-top:-48px}.q-gutter-y-xl>*,.q-gutter-xl>*{margin-top:48px}.q-col-gutter-x-xl,.q-col-gutter-xl{margin-left:-48px}.q-col-gutter-x-xl>*,.q-col-gutter-xl>*{padding-left:48px}.q-col-gutter-y-xl,.q-col-gutter-xl{margin-top:-48px}.q-col-gutter-y-xl>*,.q-col-gutter-xl>*{padding-top:48px}@media (min-width: 0){.row>.col,.flex>.col,.row>.col-auto,.flex>.col-auto,.row>.col-grow,.flex>.col-grow,.row>.col-shrink,.flex>.col-shrink,.row>.col-xs,.flex>.col-xs,.row>.col-xs-auto,.row>.col-12,.row>.col-xs-12,.row>.col-11,.row>.col-xs-11,.row>.col-10,.row>.col-xs-10,.row>.col-9,.row>.col-xs-9,.row>.col-8,.row>.col-xs-8,.row>.col-7,.row>.col-xs-7,.row>.col-6,.row>.col-xs-6,.row>.col-5,.row>.col-xs-5,.row>.col-4,.row>.col-xs-4,.row>.col-3,.row>.col-xs-3,.row>.col-2,.row>.col-xs-2,.row>.col-1,.row>.col-xs-1,.row>.col-0,.row>.col-xs-0,.flex>.col-xs-auto,.flex>.col-12,.flex>.col-xs-12,.flex>.col-11,.flex>.col-xs-11,.flex>.col-10,.flex>.col-xs-10,.flex>.col-9,.flex>.col-xs-9,.flex>.col-8,.flex>.col-xs-8,.flex>.col-7,.flex>.col-xs-7,.flex>.col-6,.flex>.col-xs-6,.flex>.col-5,.flex>.col-xs-5,.flex>.col-4,.flex>.col-xs-4,.flex>.col-3,.flex>.col-xs-3,.flex>.col-2,.flex>.col-xs-2,.flex>.col-1,.flex>.col-xs-1,.flex>.col-0,.flex>.col-xs-0,.row>.col-xs-grow,.flex>.col-xs-grow,.row>.col-xs-shrink,.flex>.col-xs-shrink{width:auto;min-width:0;max-width:100%}.column>.col,.flex>.col,.column>.col-auto,.flex>.col-auto,.column>.col-grow,.flex>.col-grow,.column>.col-shrink,.flex>.col-shrink,.column>.col-xs,.flex>.col-xs,.column>.col-xs-auto,.column>.col-12,.column>.col-xs-12,.column>.col-11,.column>.col-xs-11,.column>.col-10,.column>.col-xs-10,.column>.col-9,.column>.col-xs-9,.column>.col-8,.column>.col-xs-8,.column>.col-7,.column>.col-xs-7,.column>.col-6,.column>.col-xs-6,.column>.col-5,.column>.col-xs-5,.column>.col-4,.column>.col-xs-4,.column>.col-3,.column>.col-xs-3,.column>.col-2,.column>.col-xs-2,.column>.col-1,.column>.col-xs-1,.column>.col-0,.column>.col-xs-0,.flex>.col-xs-auto,.flex>.col-12,.flex>.col-xs-12,.flex>.col-11,.flex>.col-xs-11,.flex>.col-10,.flex>.col-xs-10,.flex>.col-9,.flex>.col-xs-9,.flex>.col-8,.flex>.col-xs-8,.flex>.col-7,.flex>.col-xs-7,.flex>.col-6,.flex>.col-xs-6,.flex>.col-5,.flex>.col-xs-5,.flex>.col-4,.flex>.col-xs-4,.flex>.col-3,.flex>.col-xs-3,.flex>.col-2,.flex>.col-xs-2,.flex>.col-1,.flex>.col-xs-1,.flex>.col-0,.flex>.col-xs-0,.column>.col-xs-grow,.flex>.col-xs-grow,.column>.col-xs-shrink,.flex>.col-xs-shrink{height:auto;min-height:0;max-height:100%}.col,.col-xs{flex:10000 1 0%}.col-auto,.col-xs-auto,.col-12,.col-xs-12,.col-11,.col-xs-11,.col-10,.col-xs-10,.col-9,.col-xs-9,.col-8,.col-xs-8,.col-7,.col-xs-7,.col-6,.col-xs-6,.col-5,.col-xs-5,.col-4,.col-xs-4,.col-3,.col-xs-3,.col-2,.col-xs-2,.col-1,.col-xs-1,.col-0,.col-xs-0{flex:0 0 auto}.col-grow,.col-xs-grow{flex:1 0 auto}.col-shrink,.col-xs-shrink{flex:0 1 auto}.row>.col-0,.row>.col-xs-0{height:auto;width:0%}.row>.offset-0,.row>.offset-xs-0{margin-left:0%}.column>.col-0,.column>.col-xs-0{height:0%;width:auto}.row>.col-1,.row>.col-xs-1{height:auto;width:8.3333%}.row>.offset-1,.row>.offset-xs-1{margin-left:8.3333%}.column>.col-1,.column>.col-xs-1{height:8.3333%;width:auto}.row>.col-2,.row>.col-xs-2{height:auto;width:16.6667%}.row>.offset-2,.row>.offset-xs-2{margin-left:16.6667%}.column>.col-2,.column>.col-xs-2{height:16.6667%;width:auto}.row>.col-3,.row>.col-xs-3{height:auto;width:25%}.row>.offset-3,.row>.offset-xs-3{margin-left:25%}.column>.col-3,.column>.col-xs-3{height:25%;width:auto}.row>.col-4,.row>.col-xs-4{height:auto;width:33.3333%}.row>.offset-4,.row>.offset-xs-4{margin-left:33.3333%}.column>.col-4,.column>.col-xs-4{height:33.3333%;width:auto}.row>.col-5,.row>.col-xs-5{height:auto;width:41.6667%}.row>.offset-5,.row>.offset-xs-5{margin-left:41.6667%}.column>.col-5,.column>.col-xs-5{height:41.6667%;width:auto}.row>.col-6,.row>.col-xs-6{height:auto;width:50%}.row>.offset-6,.row>.offset-xs-6{margin-left:50%}.column>.col-6,.column>.col-xs-6{height:50%;width:auto}.row>.col-7,.row>.col-xs-7{height:auto;width:58.3333%}.row>.offset-7,.row>.offset-xs-7{margin-left:58.3333%}.column>.col-7,.column>.col-xs-7{height:58.3333%;width:auto}.row>.col-8,.row>.col-xs-8{height:auto;width:66.6667%}.row>.offset-8,.row>.offset-xs-8{margin-left:66.6667%}.column>.col-8,.column>.col-xs-8{height:66.6667%;width:auto}.row>.col-9,.row>.col-xs-9{height:auto;width:75%}.row>.offset-9,.row>.offset-xs-9{margin-left:75%}.column>.col-9,.column>.col-xs-9{height:75%;width:auto}.row>.col-10,.row>.col-xs-10{height:auto;width:83.3333%}.row>.offset-10,.row>.offset-xs-10{margin-left:83.3333%}.column>.col-10,.column>.col-xs-10{height:83.3333%;width:auto}.row>.col-11,.row>.col-xs-11{height:auto;width:91.6667%}.row>.offset-11,.row>.offset-xs-11{margin-left:91.6667%}.column>.col-11,.column>.col-xs-11{height:91.6667%;width:auto}.row>.col-12,.row>.col-xs-12{height:auto;width:100%}.row>.offset-12,.row>.offset-xs-12{margin-left:100%}.column>.col-12,.column>.col-xs-12{height:100%;width:auto}.row>.col-all{height:auto;flex:0 0 100%}}@media (min-width: 600px){.row>.col-sm,.flex>.col-sm,.row>.col-sm-auto,.row>.col-sm-12,.row>.col-sm-11,.row>.col-sm-10,.row>.col-sm-9,.row>.col-sm-8,.row>.col-sm-7,.row>.col-sm-6,.row>.col-sm-5,.row>.col-sm-4,.row>.col-sm-3,.row>.col-sm-2,.row>.col-sm-1,.row>.col-sm-0,.flex>.col-sm-auto,.flex>.col-sm-12,.flex>.col-sm-11,.flex>.col-sm-10,.flex>.col-sm-9,.flex>.col-sm-8,.flex>.col-sm-7,.flex>.col-sm-6,.flex>.col-sm-5,.flex>.col-sm-4,.flex>.col-sm-3,.flex>.col-sm-2,.flex>.col-sm-1,.flex>.col-sm-0,.row>.col-sm-grow,.flex>.col-sm-grow,.row>.col-sm-shrink,.flex>.col-sm-shrink{width:auto;min-width:0;max-width:100%}.column>.col-sm,.flex>.col-sm,.column>.col-sm-auto,.column>.col-sm-12,.column>.col-sm-11,.column>.col-sm-10,.column>.col-sm-9,.column>.col-sm-8,.column>.col-sm-7,.column>.col-sm-6,.column>.col-sm-5,.column>.col-sm-4,.column>.col-sm-3,.column>.col-sm-2,.column>.col-sm-1,.column>.col-sm-0,.flex>.col-sm-auto,.flex>.col-sm-12,.flex>.col-sm-11,.flex>.col-sm-10,.flex>.col-sm-9,.flex>.col-sm-8,.flex>.col-sm-7,.flex>.col-sm-6,.flex>.col-sm-5,.flex>.col-sm-4,.flex>.col-sm-3,.flex>.col-sm-2,.flex>.col-sm-1,.flex>.col-sm-0,.column>.col-sm-grow,.flex>.col-sm-grow,.column>.col-sm-shrink,.flex>.col-sm-shrink{height:auto;min-height:0;max-height:100%}.col-sm{flex:10000 1 0%}.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col-sm-0{flex:0 0 auto}.col-sm-grow{flex:1 0 auto}.col-sm-shrink{flex:0 1 auto}.row>.col-sm-0{height:auto;width:0%}.row>.offset-sm-0{margin-left:0%}.column>.col-sm-0{height:0%;width:auto}.row>.col-sm-1{height:auto;width:8.3333%}.row>.offset-sm-1{margin-left:8.3333%}.column>.col-sm-1{height:8.3333%;width:auto}.row>.col-sm-2{height:auto;width:16.6667%}.row>.offset-sm-2{margin-left:16.6667%}.column>.col-sm-2{height:16.6667%;width:auto}.row>.col-sm-3{height:auto;width:25%}.row>.offset-sm-3{margin-left:25%}.column>.col-sm-3{height:25%;width:auto}.row>.col-sm-4{height:auto;width:33.3333%}.row>.offset-sm-4{margin-left:33.3333%}.column>.col-sm-4{height:33.3333%;width:auto}.row>.col-sm-5{height:auto;width:41.6667%}.row>.offset-sm-5{margin-left:41.6667%}.column>.col-sm-5{height:41.6667%;width:auto}.row>.col-sm-6{height:auto;width:50%}.row>.offset-sm-6{margin-left:50%}.column>.col-sm-6{height:50%;width:auto}.row>.col-sm-7{height:auto;width:58.3333%}.row>.offset-sm-7{margin-left:58.3333%}.column>.col-sm-7{height:58.3333%;width:auto}.row>.col-sm-8{height:auto;width:66.6667%}.row>.offset-sm-8{margin-left:66.6667%}.column>.col-sm-8{height:66.6667%;width:auto}.row>.col-sm-9{height:auto;width:75%}.row>.offset-sm-9{margin-left:75%}.column>.col-sm-9{height:75%;width:auto}.row>.col-sm-10{height:auto;width:83.3333%}.row>.offset-sm-10{margin-left:83.3333%}.column>.col-sm-10{height:83.3333%;width:auto}.row>.col-sm-11{height:auto;width:91.6667%}.row>.offset-sm-11{margin-left:91.6667%}.column>.col-sm-11{height:91.6667%;width:auto}.row>.col-sm-12{height:auto;width:100%}.row>.offset-sm-12{margin-left:100%}.column>.col-sm-12{height:100%;width:auto}}@media (min-width: 1024px){.row>.col-md,.flex>.col-md,.row>.col-md-auto,.row>.col-md-12,.row>.col-md-11,.row>.col-md-10,.row>.col-md-9,.row>.col-md-8,.row>.col-md-7,.row>.col-md-6,.row>.col-md-5,.row>.col-md-4,.row>.col-md-3,.row>.col-md-2,.row>.col-md-1,.row>.col-md-0,.flex>.col-md-auto,.flex>.col-md-12,.flex>.col-md-11,.flex>.col-md-10,.flex>.col-md-9,.flex>.col-md-8,.flex>.col-md-7,.flex>.col-md-6,.flex>.col-md-5,.flex>.col-md-4,.flex>.col-md-3,.flex>.col-md-2,.flex>.col-md-1,.flex>.col-md-0,.row>.col-md-grow,.flex>.col-md-grow,.row>.col-md-shrink,.flex>.col-md-shrink{width:auto;min-width:0;max-width:100%}.column>.col-md,.flex>.col-md,.column>.col-md-auto,.column>.col-md-12,.column>.col-md-11,.column>.col-md-10,.column>.col-md-9,.column>.col-md-8,.column>.col-md-7,.column>.col-md-6,.column>.col-md-5,.column>.col-md-4,.column>.col-md-3,.column>.col-md-2,.column>.col-md-1,.column>.col-md-0,.flex>.col-md-auto,.flex>.col-md-12,.flex>.col-md-11,.flex>.col-md-10,.flex>.col-md-9,.flex>.col-md-8,.flex>.col-md-7,.flex>.col-md-6,.flex>.col-md-5,.flex>.col-md-4,.flex>.col-md-3,.flex>.col-md-2,.flex>.col-md-1,.flex>.col-md-0,.column>.col-md-grow,.flex>.col-md-grow,.column>.col-md-shrink,.flex>.col-md-shrink{height:auto;min-height:0;max-height:100%}.col-md{flex:10000 1 0%}.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-md-0{flex:0 0 auto}.col-md-grow{flex:1 0 auto}.col-md-shrink{flex:0 1 auto}.row>.col-md-0{height:auto;width:0%}.row>.offset-md-0{margin-left:0%}.column>.col-md-0{height:0%;width:auto}.row>.col-md-1{height:auto;width:8.3333%}.row>.offset-md-1{margin-left:8.3333%}.column>.col-md-1{height:8.3333%;width:auto}.row>.col-md-2{height:auto;width:16.6667%}.row>.offset-md-2{margin-left:16.6667%}.column>.col-md-2{height:16.6667%;width:auto}.row>.col-md-3{height:auto;width:25%}.row>.offset-md-3{margin-left:25%}.column>.col-md-3{height:25%;width:auto}.row>.col-md-4{height:auto;width:33.3333%}.row>.offset-md-4{margin-left:33.3333%}.column>.col-md-4{height:33.3333%;width:auto}.row>.col-md-5{height:auto;width:41.6667%}.row>.offset-md-5{margin-left:41.6667%}.column>.col-md-5{height:41.6667%;width:auto}.row>.col-md-6{height:auto;width:50%}.row>.offset-md-6{margin-left:50%}.column>.col-md-6{height:50%;width:auto}.row>.col-md-7{height:auto;width:58.3333%}.row>.offset-md-7{margin-left:58.3333%}.column>.col-md-7{height:58.3333%;width:auto}.row>.col-md-8{height:auto;width:66.6667%}.row>.offset-md-8{margin-left:66.6667%}.column>.col-md-8{height:66.6667%;width:auto}.row>.col-md-9{height:auto;width:75%}.row>.offset-md-9{margin-left:75%}.column>.col-md-9{height:75%;width:auto}.row>.col-md-10{height:auto;width:83.3333%}.row>.offset-md-10{margin-left:83.3333%}.column>.col-md-10{height:83.3333%;width:auto}.row>.col-md-11{height:auto;width:91.6667%}.row>.offset-md-11{margin-left:91.6667%}.column>.col-md-11{height:91.6667%;width:auto}.row>.col-md-12{height:auto;width:100%}.row>.offset-md-12{margin-left:100%}.column>.col-md-12{height:100%;width:auto}}@media (min-width: 1440px){.row>.col-lg,.flex>.col-lg,.row>.col-lg-auto,.row>.col-lg-12,.row>.col-lg-11,.row>.col-lg-10,.row>.col-lg-9,.row>.col-lg-8,.row>.col-lg-7,.row>.col-lg-6,.row>.col-lg-5,.row>.col-lg-4,.row>.col-lg-3,.row>.col-lg-2,.row>.col-lg-1,.row>.col-lg-0,.flex>.col-lg-auto,.flex>.col-lg-12,.flex>.col-lg-11,.flex>.col-lg-10,.flex>.col-lg-9,.flex>.col-lg-8,.flex>.col-lg-7,.flex>.col-lg-6,.flex>.col-lg-5,.flex>.col-lg-4,.flex>.col-lg-3,.flex>.col-lg-2,.flex>.col-lg-1,.flex>.col-lg-0,.row>.col-lg-grow,.flex>.col-lg-grow,.row>.col-lg-shrink,.flex>.col-lg-shrink{width:auto;min-width:0;max-width:100%}.column>.col-lg,.flex>.col-lg,.column>.col-lg-auto,.column>.col-lg-12,.column>.col-lg-11,.column>.col-lg-10,.column>.col-lg-9,.column>.col-lg-8,.column>.col-lg-7,.column>.col-lg-6,.column>.col-lg-5,.column>.col-lg-4,.column>.col-lg-3,.column>.col-lg-2,.column>.col-lg-1,.column>.col-lg-0,.flex>.col-lg-auto,.flex>.col-lg-12,.flex>.col-lg-11,.flex>.col-lg-10,.flex>.col-lg-9,.flex>.col-lg-8,.flex>.col-lg-7,.flex>.col-lg-6,.flex>.col-lg-5,.flex>.col-lg-4,.flex>.col-lg-3,.flex>.col-lg-2,.flex>.col-lg-1,.flex>.col-lg-0,.column>.col-lg-grow,.flex>.col-lg-grow,.column>.col-lg-shrink,.flex>.col-lg-shrink{height:auto;min-height:0;max-height:100%}.col-lg{flex:10000 1 0%}.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-lg-0{flex:0 0 auto}.col-lg-grow{flex:1 0 auto}.col-lg-shrink{flex:0 1 auto}.row>.col-lg-0{height:auto;width:0%}.row>.offset-lg-0{margin-left:0%}.column>.col-lg-0{height:0%;width:auto}.row>.col-lg-1{height:auto;width:8.3333%}.row>.offset-lg-1{margin-left:8.3333%}.column>.col-lg-1{height:8.3333%;width:auto}.row>.col-lg-2{height:auto;width:16.6667%}.row>.offset-lg-2{margin-left:16.6667%}.column>.col-lg-2{height:16.6667%;width:auto}.row>.col-lg-3{height:auto;width:25%}.row>.offset-lg-3{margin-left:25%}.column>.col-lg-3{height:25%;width:auto}.row>.col-lg-4{height:auto;width:33.3333%}.row>.offset-lg-4{margin-left:33.3333%}.column>.col-lg-4{height:33.3333%;width:auto}.row>.col-lg-5{height:auto;width:41.6667%}.row>.offset-lg-5{margin-left:41.6667%}.column>.col-lg-5{height:41.6667%;width:auto}.row>.col-lg-6{height:auto;width:50%}.row>.offset-lg-6{margin-left:50%}.column>.col-lg-6{height:50%;width:auto}.row>.col-lg-7{height:auto;width:58.3333%}.row>.offset-lg-7{margin-left:58.3333%}.column>.col-lg-7{height:58.3333%;width:auto}.row>.col-lg-8{height:auto;width:66.6667%}.row>.offset-lg-8{margin-left:66.6667%}.column>.col-lg-8{height:66.6667%;width:auto}.row>.col-lg-9{height:auto;width:75%}.row>.offset-lg-9{margin-left:75%}.column>.col-lg-9{height:75%;width:auto}.row>.col-lg-10{height:auto;width:83.3333%}.row>.offset-lg-10{margin-left:83.3333%}.column>.col-lg-10{height:83.3333%;width:auto}.row>.col-lg-11{height:auto;width:91.6667%}.row>.offset-lg-11{margin-left:91.6667%}.column>.col-lg-11{height:91.6667%;width:auto}.row>.col-lg-12{height:auto;width:100%}.row>.offset-lg-12{margin-left:100%}.column>.col-lg-12{height:100%;width:auto}}@media (min-width: 1920px){.row>.col-xl,.flex>.col-xl,.row>.col-xl-auto,.row>.col-xl-12,.row>.col-xl-11,.row>.col-xl-10,.row>.col-xl-9,.row>.col-xl-8,.row>.col-xl-7,.row>.col-xl-6,.row>.col-xl-5,.row>.col-xl-4,.row>.col-xl-3,.row>.col-xl-2,.row>.col-xl-1,.row>.col-xl-0,.flex>.col-xl-auto,.flex>.col-xl-12,.flex>.col-xl-11,.flex>.col-xl-10,.flex>.col-xl-9,.flex>.col-xl-8,.flex>.col-xl-7,.flex>.col-xl-6,.flex>.col-xl-5,.flex>.col-xl-4,.flex>.col-xl-3,.flex>.col-xl-2,.flex>.col-xl-1,.flex>.col-xl-0,.row>.col-xl-grow,.flex>.col-xl-grow,.row>.col-xl-shrink,.flex>.col-xl-shrink{width:auto;min-width:0;max-width:100%}.column>.col-xl,.flex>.col-xl,.column>.col-xl-auto,.column>.col-xl-12,.column>.col-xl-11,.column>.col-xl-10,.column>.col-xl-9,.column>.col-xl-8,.column>.col-xl-7,.column>.col-xl-6,.column>.col-xl-5,.column>.col-xl-4,.column>.col-xl-3,.column>.col-xl-2,.column>.col-xl-1,.column>.col-xl-0,.flex>.col-xl-auto,.flex>.col-xl-12,.flex>.col-xl-11,.flex>.col-xl-10,.flex>.col-xl-9,.flex>.col-xl-8,.flex>.col-xl-7,.flex>.col-xl-6,.flex>.col-xl-5,.flex>.col-xl-4,.flex>.col-xl-3,.flex>.col-xl-2,.flex>.col-xl-1,.flex>.col-xl-0,.column>.col-xl-grow,.flex>.col-xl-grow,.column>.col-xl-shrink,.flex>.col-xl-shrink{height:auto;min-height:0;max-height:100%}.col-xl{flex:10000 1 0%}.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-xl-0{flex:0 0 auto}.col-xl-grow{flex:1 0 auto}.col-xl-shrink{flex:0 1 auto}.row>.col-xl-0{height:auto;width:0%}.row>.offset-xl-0{margin-left:0%}.column>.col-xl-0{height:0%;width:auto}.row>.col-xl-1{height:auto;width:8.3333%}.row>.offset-xl-1{margin-left:8.3333%}.column>.col-xl-1{height:8.3333%;width:auto}.row>.col-xl-2{height:auto;width:16.6667%}.row>.offset-xl-2{margin-left:16.6667%}.column>.col-xl-2{height:16.6667%;width:auto}.row>.col-xl-3{height:auto;width:25%}.row>.offset-xl-3{margin-left:25%}.column>.col-xl-3{height:25%;width:auto}.row>.col-xl-4{height:auto;width:33.3333%}.row>.offset-xl-4{margin-left:33.3333%}.column>.col-xl-4{height:33.3333%;width:auto}.row>.col-xl-5{height:auto;width:41.6667%}.row>.offset-xl-5{margin-left:41.6667%}.column>.col-xl-5{height:41.6667%;width:auto}.row>.col-xl-6{height:auto;width:50%}.row>.offset-xl-6{margin-left:50%}.column>.col-xl-6{height:50%;width:auto}.row>.col-xl-7{height:auto;width:58.3333%}.row>.offset-xl-7{margin-left:58.3333%}.column>.col-xl-7{height:58.3333%;width:auto}.row>.col-xl-8{height:auto;width:66.6667%}.row>.offset-xl-8{margin-left:66.6667%}.column>.col-xl-8{height:66.6667%;width:auto}.row>.col-xl-9{height:auto;width:75%}.row>.offset-xl-9{margin-left:75%}.column>.col-xl-9{height:75%;width:auto}.row>.col-xl-10{height:auto;width:83.3333%}.row>.offset-xl-10{margin-left:83.3333%}.column>.col-xl-10{height:83.3333%;width:auto}.row>.col-xl-11{height:auto;width:91.6667%}.row>.offset-xl-11{margin-left:91.6667%}.column>.col-xl-11{height:91.6667%;width:auto}.row>.col-xl-12{height:auto;width:100%}.row>.offset-xl-12{margin-left:100%}.column>.col-xl-12{height:100%;width:auto}}.rounded-borders{border-radius:4px}.border-radius-inherit{border-radius:inherit}.no-transition{transition:none!important}.transition-0{transition:0s!important}.glossy{background-image:linear-gradient(to bottom,rgba(255,255,255,.3),rgba(255,255,255,0) 50%,rgba(0,0,0,.12) 51%,rgba(0,0,0,.04))!important}.q-placeholder::placeholder{color:inherit;opacity:.7}.q-body--fullscreen-mixin,.q-body--prevent-scroll{position:fixed!important}.q-body--force-scrollbar-x{overflow-x:scroll}.q-body--force-scrollbar-y{overflow-y:scroll}.q-no-input-spinner{-moz-appearance:textfield!important}.q-no-input-spinner::-webkit-outer-spin-button,.q-no-input-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.q-link{outline:0;text-decoration:none}.q-link--focusable:focus-visible{-webkit-text-decoration:underline dashed currentColor 1px;text-decoration:underline dashed currentColor 1px}body.electron .q-electron-drag{-webkit-user-select:none;-webkit-app-region:drag}body.electron .q-electron-drag .q-btn-item,body.electron .q-electron-drag--exception{-webkit-app-region:no-drag}img.responsive{max-width:100%;height:auto}.non-selectable{-webkit-user-select:none!important;user-select:none!important}.scroll{overflow:auto}.scroll,.scroll-x,.scroll-y{-webkit-overflow-scrolling:touch;will-change:scroll-position}.scroll-x{overflow-x:auto}.scroll-y{overflow-y:auto}.no-scroll{overflow:hidden!important}.no-pointer-events,.no-pointer-events--children,.no-pointer-events--children *{pointer-events:none!important}.all-pointer-events{pointer-events:all!important}.cursor-pointer{cursor:pointer!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-inherit{cursor:inherit!important}.cursor-none{cursor:none!important}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}.flip-horizontal{transform:scaleX(-1)}.flip-vertical{transform:scaleY(-1)}.float-left{float:left}.float-right{float:right}.relative-position{position:relative}.fixed,.fixed-full,.fullscreen,.fixed-center,.fixed-bottom,.fixed-left,.fixed-right,.fixed-top,.fixed-top-left,.fixed-top-right,.fixed-bottom-left,.fixed-bottom-right{position:fixed}.absolute,.absolute-full,.absolute-center,.absolute-bottom,.absolute-left,.absolute-right,.absolute-top,.absolute-top-left,.absolute-top-right,.absolute-bottom-left,.absolute-bottom-right{position:absolute}.fixed-top,.absolute-top{top:0;left:0;right:0}.fixed-right,.absolute-right{top:0;right:0;bottom:0}.fixed-bottom,.absolute-bottom{right:0;bottom:0;left:0}.fixed-left,.absolute-left{top:0;bottom:0;left:0}.fixed-top-left,.absolute-top-left{top:0;left:0}.fixed-top-right,.absolute-top-right{top:0;right:0}.fixed-bottom-left,.absolute-bottom-left{bottom:0;left:0}.fixed-bottom-right,.absolute-bottom-right{bottom:0;right:0}.fullscreen{z-index:6000;border-radius:0!important;max-width:100vw;max-height:100vh}body.q-ios-padding .fullscreen{padding-top:20px!important;padding-top:env(safe-area-inset-top)!important;padding-bottom:env(safe-area-inset-bottom)!important}.absolute-full,.fullscreen,.fixed-full{inset:0}.fixed-center,.absolute-center{top:50%;left:50%;transform:translate(-50%,-50%)}.vertical-top{vertical-align:top!important}.vertical-middle{vertical-align:middle!important}.vertical-bottom{vertical-align:bottom!important}.on-left{margin-right:12px}.on-right{margin-left:12px}.q-position-engine{margin-top:var(--q-pe-top, 0)!important;margin-left:var(--q-pe-left, 0)!important;will-change:auto;visibility:collapse}:root{--q-size-xs: 0;--q-size-sm: 600px;--q-size-md: 1024px;--q-size-lg: 1440px;--q-size-xl: 1920px}.fit{width:100%!important;height:100%!important}.full-height{height:100%!important}.full-width{width:100%!important;margin-left:0!important;margin-right:0!important}.window-height{margin-top:0!important;margin-bottom:0!important;height:100vh!important}.window-width{margin-left:0!important;margin-right:0!important;width:100vw!important}.block{display:block!important}.inline-block{display:inline-block!important}.q-pa-none{padding:0}.q-pl-none{padding-left:0}.q-pr-none{padding-right:0}.q-pt-none{padding-top:0}.q-pb-none{padding-bottom:0}.q-px-none{padding-left:0;padding-right:0}.q-py-none{padding-top:0;padding-bottom:0}.q-ma-none{margin:0}.q-ml-none{margin-left:0}.q-mr-none{margin-right:0}.q-mt-none{margin-top:0}.q-mb-none{margin-bottom:0}.q-mx-none{margin-left:0;margin-right:0}.q-my-none{margin-top:0;margin-bottom:0}.q-pa-xs{padding:4px}.q-pl-xs{padding-left:4px}.q-pr-xs{padding-right:4px}.q-pt-xs{padding-top:4px}.q-pb-xs{padding-bottom:4px}.q-px-xs{padding-left:4px;padding-right:4px}.q-py-xs{padding-top:4px;padding-bottom:4px}.q-ma-xs{margin:4px}.q-ml-xs{margin-left:4px}.q-mr-xs{margin-right:4px}.q-mt-xs{margin-top:4px}.q-mb-xs{margin-bottom:4px}.q-mx-xs{margin-left:4px;margin-right:4px}.q-my-xs{margin-top:4px;margin-bottom:4px}.q-pa-sm{padding:8px}.q-pl-sm{padding-left:8px}.q-pr-sm{padding-right:8px}.q-pt-sm{padding-top:8px}.q-pb-sm{padding-bottom:8px}.q-px-sm{padding-left:8px;padding-right:8px}.q-py-sm{padding-top:8px;padding-bottom:8px}.q-ma-sm{margin:8px}.q-ml-sm{margin-left:8px}.q-mr-sm{margin-right:8px}.q-mt-sm{margin-top:8px}.q-mb-sm{margin-bottom:8px}.q-mx-sm{margin-left:8px;margin-right:8px}.q-my-sm{margin-top:8px;margin-bottom:8px}.q-pa-md{padding:16px}.q-pl-md{padding-left:16px}.q-pr-md{padding-right:16px}.q-pt-md{padding-top:16px}.q-pb-md{padding-bottom:16px}.q-px-md{padding-left:16px;padding-right:16px}.q-py-md{padding-top:16px;padding-bottom:16px}.q-ma-md{margin:16px}.q-ml-md{margin-left:16px}.q-mr-md{margin-right:16px}.q-mt-md{margin-top:16px}.q-mb-md{margin-bottom:16px}.q-mx-md{margin-left:16px;margin-right:16px}.q-my-md{margin-top:16px;margin-bottom:16px}.q-pa-lg{padding:24px}.q-pl-lg{padding-left:24px}.q-pr-lg{padding-right:24px}.q-pt-lg{padding-top:24px}.q-pb-lg{padding-bottom:24px}.q-px-lg{padding-left:24px;padding-right:24px}.q-py-lg{padding-top:24px;padding-bottom:24px}.q-ma-lg{margin:24px}.q-ml-lg{margin-left:24px}.q-mr-lg{margin-right:24px}.q-mt-lg{margin-top:24px}.q-mb-lg{margin-bottom:24px}.q-mx-lg{margin-left:24px;margin-right:24px}.q-my-lg{margin-top:24px;margin-bottom:24px}.q-pa-xl{padding:48px}.q-pl-xl{padding-left:48px}.q-pr-xl{padding-right:48px}.q-pt-xl{padding-top:48px}.q-pb-xl{padding-bottom:48px}.q-px-xl{padding-left:48px;padding-right:48px}.q-py-xl{padding-top:48px;padding-bottom:48px}.q-ma-xl{margin:48px}.q-ml-xl{margin-left:48px}.q-mr-xl{margin-right:48px}.q-mt-xl{margin-top:48px}.q-mb-xl{margin-bottom:48px}.q-mx-xl{margin-left:48px;margin-right:48px}.q-my-xl{margin-top:48px;margin-bottom:48px}.q-mt-auto,.q-my-auto{margin-top:auto}.q-ml-auto{margin-left:auto}.q-mb-auto,.q-my-auto{margin-bottom:auto}.q-mr-auto{margin-right:auto}.q-mx-auto{margin-left:auto;margin-right:auto}.q-touch{-webkit-user-select:none;user-select:none;user-drag:none;-khtml-user-drag:none;-webkit-user-drag:none}.q-touch-x{touch-action:pan-x}.q-touch-y{touch-action:pan-y}:root{--q-transition-duration: .3s}.q-transition--slide-right-enter-active,.q-transition--slide-right-leave-active,.q-transition--slide-left-enter-active,.q-transition--slide-left-leave-active,.q-transition--slide-up-enter-active,.q-transition--slide-up-leave-active,.q-transition--slide-down-enter-active,.q-transition--slide-down-leave-active,.q-transition--jump-right-enter-active,.q-transition--jump-right-leave-active,.q-transition--jump-left-enter-active,.q-transition--jump-left-leave-active,.q-transition--jump-up-enter-active,.q-transition--jump-up-leave-active,.q-transition--jump-down-enter-active,.q-transition--jump-down-leave-active,.q-transition--fade-enter-active,.q-transition--fade-leave-active,.q-transition--scale-enter-active,.q-transition--scale-leave-active,.q-transition--rotate-enter-active,.q-transition--rotate-leave-active,.q-transition--flip-enter-active,.q-transition--flip-leave-active{--q-transition-duration: .3s;--q-transition-easing: cubic-bezier(.215,.61,.355,1)}.q-transition--slide-right-leave-active,.q-transition--slide-left-leave-active,.q-transition--slide-up-leave-active,.q-transition--slide-down-leave-active,.q-transition--jump-right-leave-active,.q-transition--jump-left-leave-active,.q-transition--jump-up-leave-active,.q-transition--jump-down-leave-active,.q-transition--fade-leave-active,.q-transition--scale-leave-active,.q-transition--rotate-leave-active,.q-transition--flip-leave-active{position:absolute}.q-transition--slide-right-enter-active,.q-transition--slide-right-leave-active,.q-transition--slide-left-enter-active,.q-transition--slide-left-leave-active,.q-transition--slide-up-enter-active,.q-transition--slide-up-leave-active,.q-transition--slide-down-enter-active,.q-transition--slide-down-leave-active{transition:transform var(--q-transition-duration) var(--q-transition-easing)}.q-transition--slide-right-enter-from{transform:translate3d(-100%,0,0)}.q-transition--slide-right-leave-to,.q-transition--slide-left-enter-from{transform:translate3d(100%,0,0)}.q-transition--slide-left-leave-to{transform:translate3d(-100%,0,0)}.q-transition--slide-up-enter-from{transform:translate3d(0,100%,0)}.q-transition--slide-up-leave-to,.q-transition--slide-down-enter-from{transform:translate3d(0,-100%,0)}.q-transition--slide-down-leave-to{transform:translate3d(0,100%,0)}.q-transition--jump-right-enter-active,.q-transition--jump-right-leave-active,.q-transition--jump-left-enter-active,.q-transition--jump-left-leave-active,.q-transition--jump-up-enter-active,.q-transition--jump-up-leave-active,.q-transition--jump-down-enter-active,.q-transition--jump-down-leave-active{transition:opacity var(--q-transition-duration),transform var(--q-transition-duration)}.q-transition--jump-right-enter-from,.q-transition--jump-right-leave-to,.q-transition--jump-left-enter-from,.q-transition--jump-left-leave-to,.q-transition--jump-up-enter-from,.q-transition--jump-up-leave-to,.q-transition--jump-down-enter-from,.q-transition--jump-down-leave-to{opacity:0}.q-transition--jump-right-enter-from{transform:translate3d(-15px,0,0)}.q-transition--jump-right-leave-to,.q-transition--jump-left-enter-from{transform:translate3d(15px,0,0)}.q-transition--jump-left-leave-to{transform:translate(-15px)}.q-transition--jump-up-enter-from{transform:translate3d(0,15px,0)}.q-transition--jump-up-leave-to,.q-transition--jump-down-enter-from{transform:translate3d(0,-15px,0)}.q-transition--jump-down-leave-to{transform:translate3d(0,15px,0)}.q-transition--fade-enter-active,.q-transition--fade-leave-active{transition:opacity var(--q-transition-duration) ease-out}.q-transition--fade-enter-from,.q-transition--fade-leave-to{opacity:0}.q-transition--scale-enter-active,.q-transition--scale-leave-active{transition:opacity var(--q-transition-duration),transform var(--q-transition-duration) var(--q-transition-easing)}.q-transition--scale-enter-from,.q-transition--scale-leave-to{opacity:0;transform:scale3d(0,0,1)}.q-transition--rotate-enter-active,.q-transition--rotate-leave-active{transition:opacity var(--q-transition-duration),transform var(--q-transition-duration) var(--q-transition-easing);transform-style:preserve-3d}.q-transition--rotate-enter-from,.q-transition--rotate-leave-to{opacity:0;transform:scale3d(0,0,1) rotate3d(0,0,1,90deg)}.q-transition--flip-right-enter-active,.q-transition--flip-right-leave-active,.q-transition--flip-left-enter-active,.q-transition--flip-left-leave-active,.q-transition--flip-up-enter-active,.q-transition--flip-up-leave-active,.q-transition--flip-down-enter-active,.q-transition--flip-down-leave-active{transition:transform var(--q-transition-duration);backface-visibility:hidden}.q-transition--flip-right-enter-to,.q-transition--flip-right-leave-from,.q-transition--flip-left-enter-to,.q-transition--flip-left-leave-from,.q-transition--flip-up-enter-to,.q-transition--flip-up-leave-from,.q-transition--flip-down-enter-to,.q-transition--flip-down-leave-from{transform:perspective(400px) rotate3d(1,1,0,0)}.q-transition--flip-right-enter-from{transform:perspective(400px) rotateY(-180deg)}.q-transition--flip-right-leave-to,.q-transition--flip-left-enter-from{transform:perspective(400px) rotateY(180deg)}.q-transition--flip-left-leave-to{transform:perspective(400px) rotateY(-180deg)}.q-transition--flip-up-enter-from{transform:perspective(400px) rotateX(-180deg)}.q-transition--flip-up-leave-to,.q-transition--flip-down-enter-from{transform:perspective(400px) rotateX(180deg)}.q-transition--flip-down-leave-to{transform:perspective(400px) rotateX(-180deg)}body{min-width:100px;min-height:100%;font-family:Roboto,-apple-system,Helvetica Neue,Helvetica,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased;line-height:1.5;font-size:14px}h1{font-size:6rem;font-weight:300;line-height:6rem;letter-spacing:-.01562em}h2{font-size:3.75rem;font-weight:300;line-height:3.75rem;letter-spacing:-.00833em}h3{font-size:3rem;font-weight:400;line-height:3.125rem;letter-spacing:normal}h4{font-size:2.125rem;font-weight:400;line-height:2.5rem;letter-spacing:.00735em}h5{font-size:1.5rem;font-weight:400;line-height:2rem;letter-spacing:normal}h6{font-size:1.25rem;font-weight:500;line-height:2rem;letter-spacing:.0125em}p{margin:0 0 16px}.text-h1{font-size:6rem;font-weight:300;line-height:6rem;letter-spacing:-.01562em}.text-h2{font-size:3.75rem;font-weight:300;line-height:3.75rem;letter-spacing:-.00833em}.text-h3{font-size:3rem;font-weight:400;line-height:3.125rem;letter-spacing:normal}.text-h4{font-size:2.125rem;font-weight:400;line-height:2.5rem;letter-spacing:.00735em}.text-h5{font-size:1.5rem;font-weight:400;line-height:2rem;letter-spacing:normal}.text-h6{font-size:1.25rem;font-weight:500;line-height:2rem;letter-spacing:.0125em}.text-subtitle1{font-size:1rem;font-weight:400;line-height:1.75rem;letter-spacing:.00937em}.text-subtitle2{font-size:.875rem;font-weight:500;line-height:1.375rem;letter-spacing:.00714em}.text-body1{font-size:1rem;font-weight:400;line-height:1.5rem;letter-spacing:.03125em}.text-body2{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.01786em}.text-overline{font-size:.75rem;font-weight:500;line-height:2rem;letter-spacing:.16667em}.text-caption{font-size:.75rem;font-weight:400;line-height:1.25rem;letter-spacing:.03333em}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.text-italic{font-style:italic}.text-bold{font-weight:700}.text-no-wrap{white-space:nowrap}.text-strike{text-decoration:line-through}.text-weight-thin{font-weight:100}.text-weight-light{font-weight:300}.text-weight-regular{font-weight:400}.text-weight-medium{font-weight:500}.text-weight-bold{font-weight:700}.text-weight-bolder{font-weight:900}small{font-size:80%}big{font-size:170%}sub{bottom:-.25em}sup{top:-.5em}.no-margin{margin:0!important}.no-padding{padding:0!important}.no-border{border:0!important}.no-border-radius{border-radius:0!important}.no-box-shadow{box-shadow:none!important}.no-outline{outline:0!important}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ellipsis-2-lines,.ellipsis-3-lines{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.ellipsis-2-lines{-webkit-line-clamp:2}.ellipsis-3-lines{-webkit-line-clamp:3}.readonly{cursor:default!important}.disabled,.disabled *,[disabled],[disabled] *{outline:0!important;cursor:not-allowed!important}.disabled,[disabled]{opacity:.6!important}.hidden{display:none!important}.invisible{visibility:hidden!important}.transparent{background:transparent!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-hidden-y{overflow-y:hidden!important}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{width:0;height:0;display:none}.dimmed:after,.light-dimmed:after{content:"";position:absolute;inset:0}.dimmed:after{background:rgba(0,0,0,.4)!important}.light-dimmed:after{background:rgba(255,255,255,.6)!important}.z-top{z-index:7000!important}.z-max{z-index:9998!important}body:not(.desktop) .desktop-only,body.desktop .desktop-hide{display:none!important}body:not(.mobile) .mobile-only,body.mobile .mobile-hide{display:none!important}body:not(.native-mobile) .native-mobile-only,body.native-mobile .native-mobile-hide{display:none!important}body:not(.cordova) .cordova-only,body.cordova .cordova-hide{display:none!important}body:not(.capacitor) .capacitor-only,body.capacitor .capacitor-hide{display:none!important}body:not(.electron) .electron-only,body.electron .electron-hide{display:none!important}body:not(.touch) .touch-only,body.touch .touch-hide{display:none!important}body:not(.within-iframe) .within-iframe-only,body.within-iframe .within-iframe-hide{display:none!important}body:not(.platform-ios) .platform-ios-only,body.platform-ios .platform-ios-hide{display:none!important}body:not(.platform-android) .platform-android-only,body.platform-android .platform-android-hide{display:none!important}@media all and (orientation: portrait){.orientation-landscape{display:none!important}}@media all and (orientation: landscape){.orientation-portrait{display:none!important}}@media screen{.print-only{display:none!important}}@media print{.print-hide{display:none!important}}@media (max-width: 599.98px){.xs-hide,.gt-xs,.sm,.gt-sm,.md,.gt-md,.lg,.gt-lg,.xl{display:none!important}}@media (min-width: 600px) and (max-width: 1023.98px){.sm-hide,.xs,.lt-sm,.gt-sm,.md,.gt-md,.lg,.gt-lg,.xl{display:none!important}}@media (min-width: 1024px) and (max-width: 1439.98px){.md-hide,.xs,.lt-sm,.sm,.lt-md,.gt-md,.lg,.gt-lg,.xl{display:none!important}}@media (min-width: 1440px) and (max-width: 1919.98px){.lg-hide,.xs,.lt-sm,.sm,.lt-md,.md,.lt-lg,.gt-lg,.xl{display:none!important}}@media (min-width: 1920px){.xl-hide,.xs,.lt-sm,.sm,.lt-md,.md,.lt-lg,.lg,.lt-xl{display:none!important}}.q-focus-helper,.q-focusable,.q-manual-focusable,.q-hoverable{outline:0}body.desktop .q-focus-helper{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border-radius:inherit;opacity:0;transition:background-color .3s cubic-bezier(.25,.8,.5,1),opacity .4s cubic-bezier(.25,.8,.5,1)}body.desktop .q-focus-helper:before,body.desktop .q-focus-helper:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border-radius:inherit;transition:background-color .3s cubic-bezier(.25,.8,.5,1),opacity .6s cubic-bezier(.25,.8,.5,1)}body.desktop .q-focus-helper:before{background:#000}body.desktop .q-focus-helper:after{background:#fff}body.desktop .q-focus-helper--rounded{border-radius:4px}body.desktop .q-focus-helper--round{border-radius:50%}body.desktop .q-focusable:focus>.q-focus-helper,body.desktop .q-manual-focusable--focused>.q-focus-helper,body.desktop .q-hoverable:hover>.q-focus-helper{background:currentColor;opacity:.15}body.desktop .q-focusable:focus>.q-focus-helper:before,body.desktop .q-manual-focusable--focused>.q-focus-helper:before,body.desktop .q-hoverable:hover>.q-focus-helper:before{opacity:.1}body.desktop .q-focusable:focus>.q-focus-helper:after,body.desktop .q-manual-focusable--focused>.q-focus-helper:after,body.desktop .q-hoverable:hover>.q-focus-helper:after{opacity:.4}body.desktop .q-focusable:focus>.q-focus-helper,body.desktop .q-manual-focusable--focused>.q-focus-helper{opacity:.22}body.body--dark{color:#fff;background:var(--q-dark-page)}.q-dark{color:#fff;background:var(--q-dark)} diff --git a/dist/spa/assets/index.d5b71521.js b/dist/spa/assets/index.d5b71521.js new file mode 100644 index 0000000..1e1d7f6 --- /dev/null +++ b/dist/spa/assets/index.d5b71521.js @@ -0,0 +1,5 @@ +function zr(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}function Hr(e){if(te(e)){const t={};for(let n=0;n{if(n){const o=n.split(Ya);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Kr(e){let t="";if(ke(e))t=e;else if(te(e))for(let n=0;nke(e)?e:e==null?"":te(e)||ye(e)&&(e.toString===rl||!oe(e.toString))?JSON.stringify(e,tl,2):String(e),tl=(e,t)=>t&&t.__v_isRef?tl(e,t.value):cn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r])=>(n[`${o} =>`]=r,n),{})}:nl(t)?{[`Set(${t.size})`]:[...t.values()]}:ye(t)&&!te(t)&&!il(t)?String(t):t,pe={},un=[],tt=()=>{},eu=()=>!1,tu=/^on[^a-z]/,Oo=e=>tu.test(e),Ur=e=>e.startsWith("onUpdate:"),Te=Object.assign,Wr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},nu=Object.prototype.hasOwnProperty,ae=(e,t)=>nu.call(e,t),te=Array.isArray,cn=e=>$o(e)==="[object Map]",nl=e=>$o(e)==="[object Set]",oe=e=>typeof e=="function",ke=e=>typeof e=="string",Qr=e=>typeof e=="symbol",ye=e=>e!==null&&typeof e=="object",ol=e=>ye(e)&&oe(e.then)&&oe(e.catch),rl=Object.prototype.toString,$o=e=>rl.call(e),ou=e=>$o(e).slice(8,-1),il=e=>$o(e)==="[object Object]",Yr=e=>ke(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,po=zr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Lo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ru=/-(\w)/g,ut=Lo(e=>e.replace(ru,(t,n)=>n?n.toUpperCase():"")),iu=/\B([A-Z])/g,_n=Lo(e=>e.replace(iu,"-$1").toLowerCase()),Bo=Lo(e=>e.charAt(0).toUpperCase()+e.slice(1)),Yo=Lo(e=>e?`on${Bo(e)}`:""),Dn=(e,t)=>!Object.is(e,t),Ln=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Zr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ki;const su=()=>ki||(ki=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let it;class lu{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=it,!t&&it&&(this.index=(it.scopes||(it.scopes=[])).push(this)-1)}run(t){if(this.active){const n=it;try{return it=this,t()}finally{it=n}}}on(){it=this}off(){it=this.parent}stop(t){if(this.active){let n,o;for(n=0,o=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},sl=e=>(e.w&Pt)>0,ll=e=>(e.n&Pt)>0,uu=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{(u==="length"||u>=a)&&l.push(c)})}else switch(n!==void 0&&l.push(s.get(n)),t){case"add":te(e)?Yr(n)&&l.push(s.get("length")):(l.push(s.get(zt)),cn(e)&&l.push(s.get(wr)));break;case"delete":te(e)||(l.push(s.get(zt)),cn(e)&&l.push(s.get(wr)));break;case"set":cn(e)&&l.push(s.get(zt));break}if(l.length===1)l[0]&&xr(l[0]);else{const a=[];for(const c of l)c&&a.push(...c);xr(Jr(a))}}function xr(e,t){const n=te(e)?e:[...e];for(const o of n)o.computed&&Si(o);for(const o of n)o.computed||Si(o)}function Si(e,t){(e!==Xe||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const fu=zr("__proto__,__v_isRef,__isVue"),cl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qr)),du=Gr(),hu=Gr(!1,!0),gu=Gr(!0),Ri=mu();function mu(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=re(this);for(let i=0,s=this.length;i{e[t]=function(...n){wn();const o=re(this)[t].apply(this,n);return xn(),o}}),e}function Gr(e=!1,t=!1){return function(o,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?Au:ml:t?gl:hl).get(o))return o;const s=te(o);if(!e&&s&&ae(Ri,r))return Reflect.get(Ri,r,i);const l=Reflect.get(o,r,i);return(Qr(r)?cl.has(r):fu(r))||(e||Ne(o,"get",r),t)?l:Oe(l)?s&&Yr(r)?l:l.value:ye(l)?e?pl(l):Yt(l):l}}const pu=fl(),vu=fl(!0);function fl(e=!1){return function(n,o,r,i){let s=n[o];if(hn(s)&&Oe(s)&&!Oe(r))return!1;if(!e&&(!ko(r)&&!hn(r)&&(s=re(s),r=re(r)),!te(n)&&Oe(s)&&!Oe(r)))return s.value=r,!0;const l=te(n)&&Yr(o)?Number(o)e,Fo=e=>Reflect.getPrototypeOf(e);function no(e,t,n=!1,o=!1){e=e.__v_raw;const r=re(e),i=re(t);n||(t!==i&&Ne(r,"get",t),Ne(r,"get",i));const{has:s}=Fo(r),l=o?ei:n?oi:zn;if(s.call(r,t))return l(e.get(t));if(s.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function oo(e,t=!1){const n=this.__v_raw,o=re(n),r=re(e);return t||(e!==r&&Ne(o,"has",e),Ne(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function ro(e,t=!1){return e=e.__v_raw,!t&&Ne(re(e),"iterate",zt),Reflect.get(e,"size",e)}function Ti(e){e=re(e);const t=re(this);return Fo(t).has.call(t,e)||(t.add(e),mt(t,"add",e,e)),this}function Pi(e,t){t=re(t);const n=re(this),{has:o,get:r}=Fo(n);let i=o.call(n,e);i||(e=re(e),i=o.call(n,e));const s=r.call(n,e);return n.set(e,t),i?Dn(t,s)&&mt(n,"set",e,t):mt(n,"add",e,t),this}function qi(e){const t=re(this),{has:n,get:o}=Fo(t);let r=n.call(t,e);r||(e=re(e),r=n.call(t,e)),o&&o.call(t,e);const i=t.delete(e);return r&&mt(t,"delete",e,void 0),i}function Ai(){const e=re(this),t=e.size!==0,n=e.clear();return t&&mt(e,"clear",void 0,void 0),n}function io(e,t){return function(o,r){const i=this,s=i.__v_raw,l=re(s),a=t?ei:e?oi:zn;return!e&&Ne(l,"iterate",zt),s.forEach((c,u)=>o.call(r,a(c),a(u),i))}}function so(e,t,n){return function(...o){const r=this.__v_raw,i=re(r),s=cn(i),l=e==="entries"||e===Symbol.iterator&&s,a=e==="keys"&&s,c=r[e](...o),u=n?ei:t?oi:zn;return!t&&Ne(i,"iterate",a?wr:zt),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:l?[u(d[0]),u(d[1])]:u(d),done:f}},[Symbol.iterator](){return this}}}}function yt(e){return function(...t){return e==="delete"?!1:this}}function Cu(){const e={get(i){return no(this,i)},get size(){return ro(this)},has:oo,add:Ti,set:Pi,delete:qi,clear:Ai,forEach:io(!1,!1)},t={get(i){return no(this,i,!1,!0)},get size(){return ro(this)},has:oo,add:Ti,set:Pi,delete:qi,clear:Ai,forEach:io(!1,!0)},n={get(i){return no(this,i,!0)},get size(){return ro(this,!0)},has(i){return oo.call(this,i,!0)},add:yt("add"),set:yt("set"),delete:yt("delete"),clear:yt("clear"),forEach:io(!0,!1)},o={get(i){return no(this,i,!0,!0)},get size(){return ro(this,!0)},has(i){return oo.call(this,i,!0)},add:yt("add"),set:yt("set"),delete:yt("delete"),clear:yt("clear"),forEach:io(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=so(i,!1,!1),n[i]=so(i,!0,!1),t[i]=so(i,!1,!0),o[i]=so(i,!0,!0)}),[e,n,t,o]}const[ku,Eu,Su,Ru]=Cu();function ti(e,t){const n=t?e?Ru:Su:e?Eu:ku;return(o,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(ae(n,r)&&r in o?n:o,r,i)}const Tu={get:ti(!1,!1)},Pu={get:ti(!1,!0)},qu={get:ti(!0,!1)},hl=new WeakMap,gl=new WeakMap,ml=new WeakMap,Au=new WeakMap;function Mu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ou(e){return e.__v_skip||!Object.isExtensible(e)?0:Mu(ou(e))}function Yt(e){return hn(e)?e:ni(e,!1,dl,Tu,hl)}function $u(e){return ni(e,!1,xu,Pu,gl)}function pl(e){return ni(e,!0,wu,qu,ml)}function ni(e,t,n,o,r){if(!ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const s=Ou(e);if(s===0)return e;const l=new Proxy(e,s===2?o:n);return r.set(e,l),l}function fn(e){return hn(e)?fn(e.__v_raw):!!(e&&e.__v_isReactive)}function hn(e){return!!(e&&e.__v_isReadonly)}function ko(e){return!!(e&&e.__v_isShallow)}function vl(e){return fn(e)||hn(e)}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Cn(e){return Co(e,"__v_skip",!0),e}const zn=e=>ye(e)?Yt(e):e,oi=e=>ye(e)?pl(e):e;function bl(e){Rt&&Xe&&(e=re(e),ul(e.dep||(e.dep=Jr())))}function yl(e,t){e=re(e),e.dep&&xr(e.dep)}function Oe(e){return!!(e&&e.__v_isRef===!0)}function ce(e){return _l(e,!1)}function Lu(e){return _l(e,!0)}function _l(e,t){return Oe(e)?e:new Bu(e,t)}class Bu{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:re(t),this._value=n?t:zn(t)}get value(){return bl(this),this._value}set value(t){const n=this.__v_isShallow||ko(t)||hn(t);t=n?t:re(t),Dn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:zn(t),yl(this))}}function Ht(e){return Oe(e)?e.value:e}const Fu={get:(e,t,n)=>Ht(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Oe(r)&&!Oe(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function wl(e){return fn(e)?e:new Proxy(e,Fu)}var xl;class Iu{constructor(t,n,o,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[xl]=!1,this._dirty=!0,this.effect=new Xr(t,()=>{this._dirty||(this._dirty=!0,yl(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const t=re(this);return bl(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}xl="__v_isReadonly";function ju(e,t,n=!1){let o,r;const i=oe(e);return i?(o=e,r=tt):(o=e.get,r=e.set),new Iu(o,r,i||!r,n)}function Tt(e,t,n,o){let r;try{r=o?e(...o):e()}catch(i){Io(i,t,n)}return r}function We(e,t,n,o){if(oe(e)){const i=Tt(e,t,n,o);return i&&ol(i)&&i.catch(s=>{Io(s,t,n)}),i}const r=[];for(let i=0;i>>1;Kn(Me[o])lt&&Me.splice(t,1)}function zu(e){te(e)?dn.push(...e):(!ht||!ht.includes(e,e.allowRecurse?Bt+1:Bt))&&dn.push(e),kl()}function Mi(e,t=Hn?lt+1:0){for(;tKn(n)-Kn(o)),Bt=0;Bte.id==null?1/0:e.id,Hu=(e,t)=>{const n=Kn(e)-Kn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Sl(e){Cr=!1,Hn=!0,Me.sort(Hu);const t=tt;try{for(lt=0;ltke(m)?m.trim():m)),d&&(r=n.map(Zr))}let l,a=o[l=Yo(t)]||o[l=Yo(ut(t))];!a&&i&&(a=o[l=Yo(_n(t))]),a&&We(a,e,6,r);const c=o[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,We(c,e,6,r)}}function Rl(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(r!==void 0)return r;const i=e.emits;let s={},l=!1;if(!oe(e)){const a=c=>{const u=Rl(c,t,!0);u&&(l=!0,Te(s,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(ye(e)&&o.set(e,null),null):(te(i)?i.forEach(a=>s[a]=null):Te(s,i),ye(e)&&o.set(e,s),s)}function jo(e,t){return!e||!Oo(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,_n(t))||ae(e,t))}let Ue=null,Tl=null;function Eo(e){const t=Ue;return Ue=e,Tl=e&&e.type.__scopeId||null,t}function Uu(e,t=Ue,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&zi(-1);const i=Eo(t);let s;try{s=e(...r)}finally{Eo(i),o._d&&zi(1)}return s};return o._n=!0,o._c=!0,o._d=!0,o}function Zo(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:i,propsOptions:[s],slots:l,attrs:a,emit:c,render:u,renderCache:d,data:f,setupState:m,ctx:b,inheritAttrs:P}=e;let R,A;const p=Eo(e);try{if(n.shapeFlag&4){const T=r||o;R=st(u.call(T,T,d,i,m,f,b)),A=a}else{const T=t;R=st(T.length>1?T(i,{attrs:a,slots:l,emit:c}):T(i,null)),A=t.props?a:Wu(a)}}catch(T){jn.length=0,Io(T,e,1),R=je(gt)}let v=R;if(A&&P!==!1){const T=Object.keys(A),{shapeFlag:I}=v;T.length&&I&7&&(s&&T.some(Ur)&&(A=Qu(A,s)),v=pt(v,A))}return n.dirs&&(v=pt(v),v.dirs=v.dirs?v.dirs.concat(n.dirs):n.dirs),n.transition&&(v.transition=n.transition),R=v,Eo(p),R}const Wu=e=>{let t;for(const n in e)(n==="class"||n==="style"||Oo(n))&&((t||(t={}))[n]=e[n]);return t},Qu=(e,t)=>{const n={};for(const o in e)(!Ur(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Yu(e,t,n){const{props:o,children:r,component:i}=e,{props:s,children:l,patchFlag:a}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return o?Oi(o,s,c):!!s;if(a&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function Ju(e,t){t&&t.pendingBranch?te(e)?t.effects.push(...e):t.effects.push(e):zu(e)}function vo(e,t){if(Re){let n=Re.provides;const o=Re.parent&&Re.parent.provides;o===n&&(n=Re.provides=Object.create(o)),n[e]=t}}function at(e,t,n=!1){const o=Re||Ue;if(o){const r=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&oe(t)?t.call(o.proxy):t}}const lo={};function be(e,t,n){return ql(e,t,n)}function ql(e,t,{immediate:n,deep:o,flush:r,onTrack:i,onTrigger:s}=pe){const l=Re;let a,c=!1,u=!1;if(Oe(e)?(a=()=>e.value,c=ko(e)):fn(e)?(a=()=>e,o=!0):te(e)?(u=!0,c=e.some(v=>fn(v)||ko(v)),a=()=>e.map(v=>{if(Oe(v))return v.value;if(fn(v))return jt(v);if(oe(v))return Tt(v,l,2)})):oe(e)?t?a=()=>Tt(e,l,2):a=()=>{if(!(l&&l.isUnmounted))return d&&d(),We(e,l,3,[f])}:a=tt,t&&o){const v=a;a=()=>jt(v())}let d,f=v=>{d=A.onStop=()=>{Tt(v,l,4)}},m;if(Qn)if(f=tt,t?n&&We(t,l,3,[a(),u?[]:void 0,f]):a(),r==="sync"){const v=Uc();m=v.__watcherHandles||(v.__watcherHandles=[])}else return tt;let b=u?new Array(e.length).fill(lo):lo;const P=()=>{if(!!A.active)if(t){const v=A.run();(o||c||(u?v.some((T,I)=>Dn(T,b[I])):Dn(v,b)))&&(d&&d(),We(t,l,3,[v,b===lo||u&&b[0]===lo?[]:b,f]),b=v)}else A.run()};P.allowRecurse=!!t;let R;r==="sync"?R=P:r==="post"?R=()=>qe(P,l&&l.suspense):(P.pre=!0,l&&(P.id=l.uid),R=()=>ii(P));const A=new Xr(a,R);t?n?P():b=A.run():r==="post"?qe(A.run.bind(A),l&&l.suspense):A.run();const p=()=>{A.stop(),l&&l.scope&&Wr(l.scope.effects,A)};return m&&m.push(p),p}function Xu(e,t,n){const o=this.proxy,r=ke(e)?e.includes(".")?Al(o,e):()=>o[e]:e.bind(o,o);let i;oe(t)?i=t:(i=t.handler,n=t);const s=Re;mn(this);const l=ql(r,i.bind(o),n);return s?mn(s):Kt(),l}function Al(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r{jt(n,t)});else if(il(e))for(const n in e)jt(e[n],t);return e}function Ml(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return At(()=>{e.isMounted=!0}),Qe(()=>{e.isUnmounting=!0}),e}const Ve=[Function,Array],Gu={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ve,onEnter:Ve,onAfterEnter:Ve,onEnterCancelled:Ve,onBeforeLeave:Ve,onLeave:Ve,onAfterLeave:Ve,onLeaveCancelled:Ve,onBeforeAppear:Ve,onAppear:Ve,onAfterAppear:Ve,onAppearCancelled:Ve},setup(e,{slots:t}){const n=we(),o=Ml();let r;return()=>{const i=t.default&&si(t.default(),!0);if(!i||!i.length)return;let s=i[0];if(i.length>1){for(const P of i)if(P.type!==gt){s=P;break}}const l=re(e),{mode:a}=l;if(o.isLeaving)return Jo(s);const c=$i(s);if(!c)return Jo(s);const u=Un(c,l,o,n);gn(c,u);const d=n.subTree,f=d&&$i(d);let m=!1;const{getTransitionKey:b}=c.type;if(b){const P=b();r===void 0?r=P:P!==r&&(r=P,m=!0)}if(f&&f.type!==gt&&(!Ft(c,f)||m)){const P=Un(f,l,o,n);if(gn(f,P),a==="out-in")return o.isLeaving=!0,P.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&n.update()},Jo(s);a==="in-out"&&c.type!==gt&&(P.delayLeave=(R,A,p)=>{const v=$l(o,f);v[String(f.key)]=f,R._leaveCb=()=>{A(),R._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=p})}return s}}},Ol=Gu;function $l(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Un(e,t,n,o){const{appear:r,mode:i,persisted:s=!1,onBeforeEnter:l,onEnter:a,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:d,onLeave:f,onAfterLeave:m,onLeaveCancelled:b,onBeforeAppear:P,onAppear:R,onAfterAppear:A,onAppearCancelled:p}=t,v=String(e.key),T=$l(n,e),I=(_,$)=>{_&&We(_,o,9,$)},y=(_,$)=>{const L=$[1];I(_,$),te(_)?_.every(B=>B.length<=1)&&L():_.length<=1&&L()},E={mode:i,persisted:s,beforeEnter(_){let $=l;if(!n.isMounted)if(r)$=P||l;else return;_._leaveCb&&_._leaveCb(!0);const L=T[v];L&&Ft(e,L)&&L.el._leaveCb&&L.el._leaveCb(),I($,[_])},enter(_){let $=a,L=c,B=u;if(!n.isMounted)if(r)$=R||a,L=A||c,B=p||u;else return;let k=!1;const H=_._enterCb=q=>{k||(k=!0,q?I(B,[_]):I(L,[_]),E.delayedLeave&&E.delayedLeave(),_._enterCb=void 0)};$?y($,[_,H]):H()},leave(_,$){const L=String(e.key);if(_._enterCb&&_._enterCb(!0),n.isUnmounting)return $();I(d,[_]);let B=!1;const k=_._leaveCb=H=>{B||(B=!0,$(),H?I(b,[_]):I(m,[_]),_._leaveCb=void 0,T[L]===e&&delete T[L])};T[L]=e,f?y(f,[_,k]):k()},clone(_){return Un(_,t,n,o)}};return E}function Jo(e){if(Vo(e))return e=pt(e),e.children=null,e}function $i(e){return Vo(e)?e.children?e.children[0]:void 0:e}function gn(e,t){e.shapeFlag&6&&e.component?gn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function si(e,t=!1,n){let o=[],r=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,Vo=e=>e.type.__isKeepAlive,ec={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=we(),o=n.ctx;if(!o.renderer)return()=>{const p=t.default&&t.default();return p&&p.length===1?p[0]:p};const r=new Map,i=new Set;let s=null;const l=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=o,f=d("div");o.activate=(p,v,T,I,y)=>{const E=p.component;c(p,v,T,0,l),a(E.vnode,p,v,T,E,l,I,p.slotScopeIds,y),qe(()=>{E.isDeactivated=!1,E.a&&Ln(E.a);const _=p.props&&p.props.onVnodeMounted;_&&ze(_,E.parent,p)},l)},o.deactivate=p=>{const v=p.component;c(p,f,null,1,l),qe(()=>{v.da&&Ln(v.da);const T=p.props&&p.props.onVnodeUnmounted;T&&ze(T,v.parent,p),v.isDeactivated=!0},l)};function m(p){Xo(p),u(p,n,l,!0)}function b(p){r.forEach((v,T)=>{const I=qr(v.type);I&&(!p||!p(I))&&P(T)})}function P(p){const v=r.get(p);!s||v.type!==s.type?m(v):s&&Xo(s),r.delete(p),i.delete(p)}be(()=>[e.include,e.exclude],([p,v])=>{p&&b(T=>On(p,T)),v&&b(T=>!On(v,T))},{flush:"post",deep:!0});let R=null;const A=()=>{R!=null&&r.set(R,Go(n.subTree))};return At(A),li(A),Qe(()=>{r.forEach(p=>{const{subTree:v,suspense:T}=n,I=Go(v);if(p.type===I.type){Xo(I);const y=I.component.da;y&&qe(y,T);return}m(p)})}),()=>{if(R=null,!t.default)return null;const p=t.default(),v=p[0];if(p.length>1)return s=null,p;if(!Ro(v)||!(v.shapeFlag&4)&&!(v.shapeFlag&128))return s=null,v;let T=Go(v);const I=T.type,y=qr(Bn(T)?T.type.__asyncResolved||{}:I),{include:E,exclude:_,max:$}=e;if(E&&(!y||!On(E,y))||_&&y&&On(_,y))return s=T,v;const L=T.key==null?I:T.key,B=r.get(L);return T.el&&(T=pt(T),v.shapeFlag&128&&(v.ssContent=T)),R=L,B?(T.el=B.el,T.component=B.component,T.transition&&gn(T,T.transition),T.shapeFlag|=512,i.delete(L),i.add(L)):(i.add(L),$&&i.size>parseInt($,10)&&P(i.values().next().value)),T.shapeFlag|=256,s=T,Pl(v.type)?v:T}}},om=ec;function On(e,t){return te(e)?e.some(n=>On(n,t)):ke(e)?e.split(",").includes(t):e.test?e.test(t):!1}function Ll(e,t){Bl(e,"a",t)}function Do(e,t){Bl(e,"da",t)}function Bl(e,t,n=Re){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(zo(t,o,n),n){let r=n.parent;for(;r&&r.parent;)Vo(r.parent.vnode)&&tc(o,t,n,r),r=r.parent}}function tc(e,t,n,o){const r=zo(t,e,o,!0);ai(()=>{Wr(o[t],r)},n)}function Xo(e){let t=e.shapeFlag;t&256&&(t-=256),t&512&&(t-=512),e.shapeFlag=t}function Go(e){return e.shapeFlag&128?e.ssContent:e}function zo(e,t,n=Re,o=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...s)=>{if(n.isUnmounted)return;wn(),mn(n);const l=We(t,n,e,s);return Kt(),xn(),l});return o?r.unshift(i):r.push(i),i}}const bt=e=>(t,n=Re)=>(!Qn||e==="sp")&&zo(e,(...o)=>t(...o),n),nc=bt("bm"),At=bt("m"),Fl=bt("bu"),li=bt("u"),Qe=bt("bum"),ai=bt("um"),oc=bt("sp"),rc=bt("rtg"),ic=bt("rtc");function sc(e,t=Re){zo("ec",e,t)}function Il(e,t){const n=Ue;if(n===null)return e;const o=Ko(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let i=0;ie?Zl(e)?Ko(e)||e.proxy:kr(e.parent):null,Fn=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>kr(e.parent),$root:e=>kr(e.root),$emit:e=>e.emit,$options:e=>ui(e),$forceUpdate:e=>e.f||(e.f=()=>ii(e.update)),$nextTick:e=>e.n||(e.n=Ie.bind(e.proxy)),$watch:e=>Xu.bind(e)}),cc={get({_:e},t){const{ctx:n,setupState:o,data:r,props:i,accessCache:s,type:l,appContext:a}=e;let c;if(t[0]!=="$"){const m=s[t];if(m!==void 0)switch(m){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(o!==pe&&ae(o,t))return s[t]=1,o[t];if(r!==pe&&ae(r,t))return s[t]=2,r[t];if((c=e.propsOptions[0])&&ae(c,t))return s[t]=3,i[t];if(n!==pe&&ae(n,t))return s[t]=4,n[t];Er&&(s[t]=0)}}const u=Fn[t];let d,f;if(u)return t==="$attrs"&&Ne(e,"get",t),u(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==pe&&ae(n,t))return s[t]=4,n[t];if(f=a.config.globalProperties,ae(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:i}=e;return r!==pe&&ae(r,t)?(r[t]=n,!0):o!==pe&&ae(o,t)?(o[t]=n,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:i}},s){let l;return!!n[s]||e!==pe&&ae(e,s)||t!==pe&&ae(t,s)||(l=i[0])&&ae(l,s)||ae(o,s)||ae(Fn,s)||ae(r.config.globalProperties,s)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Er=!0;function fc(e){const t=ui(e),n=e.proxy,o=e.ctx;Er=!1,t.beforeCreate&&Bi(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:s,watch:l,provide:a,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:m,updated:b,activated:P,deactivated:R,beforeDestroy:A,beforeUnmount:p,destroyed:v,unmounted:T,render:I,renderTracked:y,renderTriggered:E,errorCaptured:_,serverPrefetch:$,expose:L,inheritAttrs:B,components:k,directives:H,filters:q}=t;if(c&&dc(c,o,null,e.appContext.config.unwrapInjectedRef),s)for(const M in s){const W=s[M];oe(W)&&(o[M]=W.bind(n))}if(r){const M=r.call(n,n);ye(M)&&(e.data=Yt(M))}if(Er=!0,i)for(const M in i){const W=i[M],de=oe(W)?W.bind(n,n):oe(W.get)?W.get.bind(n,n):tt,N=!oe(W)&&oe(W.set)?W.set.bind(n):tt,ue=S({get:de,set:N});Object.defineProperty(o,M,{enumerable:!0,configurable:!0,get:()=>ue.value,set:ge=>ue.value=ge})}if(l)for(const M in l)Nl(l[M],o,n,M);if(a){const M=oe(a)?a.call(n):a;Reflect.ownKeys(M).forEach(W=>{vo(W,M[W])})}u&&Bi(u,e,"c");function ee(M,W){te(W)?W.forEach(de=>M(de.bind(n))):W&&M(W.bind(n))}if(ee(nc,d),ee(At,f),ee(Fl,m),ee(li,b),ee(Ll,P),ee(Do,R),ee(sc,_),ee(ic,y),ee(rc,E),ee(Qe,p),ee(ai,T),ee(oc,$),te(L))if(L.length){const M=e.exposed||(e.exposed={});L.forEach(W=>{Object.defineProperty(M,W,{get:()=>n[W],set:de=>n[W]=de})})}else e.exposed||(e.exposed={});I&&e.render===tt&&(e.render=I),B!=null&&(e.inheritAttrs=B),k&&(e.components=k),H&&(e.directives=H)}function dc(e,t,n=tt,o=!1){te(e)&&(e=Sr(e));for(const r in e){const i=e[r];let s;ye(i)?"default"in i?s=at(i.from||r,i.default,!0):s=at(i.from||r):s=at(i),Oe(s)&&o?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:l=>s.value=l}):t[r]=s}}function Bi(e,t,n){We(te(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Nl(e,t,n,o){const r=o.includes(".")?Al(n,o):()=>n[o];if(ke(e)){const i=t[e];oe(i)&&be(r,i)}else if(oe(e))be(r,e.bind(n));else if(ye(e))if(te(e))e.forEach(i=>Nl(i,t,n,o));else{const i=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(i)&&be(r,i,e)}}function ui(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext,l=i.get(t);let a;return l?a=l:!r.length&&!n&&!o?a=t:(a={},r.length&&r.forEach(c=>So(a,c,s,!0)),So(a,t,s)),ye(t)&&i.set(t,a),a}function So(e,t,n,o=!1){const{mixins:r,extends:i}=t;i&&So(e,i,n,!0),r&&r.forEach(s=>So(e,s,n,!0));for(const s in t)if(!(o&&s==="expose")){const l=hc[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const hc={data:Fi,props:Lt,emits:Lt,methods:Lt,computed:Lt,beforeCreate:Le,created:Le,beforeMount:Le,mounted:Le,beforeUpdate:Le,updated:Le,beforeDestroy:Le,beforeUnmount:Le,destroyed:Le,unmounted:Le,activated:Le,deactivated:Le,errorCaptured:Le,serverPrefetch:Le,components:Lt,directives:Lt,watch:mc,provide:Fi,inject:gc};function Fi(e,t){return t?e?function(){return Te(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function gc(e,t){return Lt(Sr(e),Sr(t))}function Sr(e){if(te(e)){const t={};for(let n=0;n0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[f,m]=Dl(d,t,!0);Te(s,f),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!a)return ye(e)&&o.set(e,un),un;if(te(i))for(let u=0;u-1,m[1]=P<0||b-1||ae(m,"default"))&&l.push(d)}}}const c=[s,l];return ye(e)&&o.set(e,c),c}function Ii(e){return e[0]!=="$"}function ji(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Ni(e,t){return ji(e)===ji(t)}function Vi(e,t){return te(t)?t.findIndex(n=>Ni(n,e)):oe(t)&&Ni(t,e)?0:-1}const zl=e=>e[0]==="_"||e==="$stable",ci=e=>te(e)?e.map(st):[st(e)],bc=(e,t,n)=>{if(t._n)return t;const o=Uu((...r)=>ci(t(...r)),n);return o._c=!1,o},Hl=(e,t,n)=>{const o=e._ctx;for(const r in e){if(zl(r))continue;const i=e[r];if(oe(i))t[r]=bc(r,i,o);else if(i!=null){const s=ci(i);t[r]=()=>s}}},Kl=(e,t)=>{const n=ci(t);e.slots.default=()=>n},yc=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=re(t),Co(t,"_",n)):Hl(t,e.slots={})}else e.slots={},t&&Kl(e,t);Co(e.slots,Ho,1)},_c=(e,t,n)=>{const{vnode:o,slots:r}=e;let i=!0,s=pe;if(o.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(Te(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Hl(t,r)),s=t}else t&&(Kl(e,t),s={default:1});if(i)for(const l in r)!zl(l)&&!(l in s)&&delete r[l]};function Ul(){return{app:null,config:{isNativeTag:eu,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let wc=0;function xc(e,t){return function(o,r=null){oe(o)||(o=Object.assign({},o)),r!=null&&!ye(r)&&(r=null);const i=Ul(),s=new Set;let l=!1;const a=i.app={_uid:wc++,_component:o,_props:r,_container:null,_context:i,_instance:null,version:Wc,get config(){return i.config},set config(c){},use(c,...u){return s.has(c)||(c&&oe(c.install)?(s.add(c),c.install(a,...u)):oe(c)&&(s.add(c),c(a,...u))),a},mixin(c){return i.mixins.includes(c)||i.mixins.push(c),a},component(c,u){return u?(i.components[c]=u,a):i.components[c]},directive(c,u){return u?(i.directives[c]=u,a):i.directives[c]},mount(c,u,d){if(!l){const f=je(o,r);return f.appContext=i,u&&t?t(f,c):e(f,c,d),l=!0,a._container=c,c.__vue_app__=a,Ko(f.component)||f.component.proxy}},unmount(){l&&(e(null,a._container),delete a._container.__vue_app__)},provide(c,u){return i.provides[c]=u,a}};return a}}function Tr(e,t,n,o,r=!1){if(te(e)){e.forEach((f,m)=>Tr(f,t&&(te(t)?t[m]:t),n,o,r));return}if(Bn(o)&&!r)return;const i=o.shapeFlag&4?Ko(o.component)||o.component.proxy:o.el,s=r?null:i,{i:l,r:a}=e,c=t&&t.r,u=l.refs===pe?l.refs={}:l.refs,d=l.setupState;if(c!=null&&c!==a&&(ke(c)?(u[c]=null,ae(d,c)&&(d[c]=null)):Oe(c)&&(c.value=null)),oe(a))Tt(a,l,12,[s,u]);else{const f=ke(a),m=Oe(a);if(f||m){const b=()=>{if(e.f){const P=f?ae(d,a)?d[a]:u[a]:a.value;r?te(P)&&Wr(P,i):te(P)?P.includes(i)||P.push(i):f?(u[a]=[i],ae(d,a)&&(d[a]=u[a])):(a.value=[i],e.k&&(u[e.k]=a.value))}else f?(u[a]=s,ae(d,a)&&(d[a]=s)):m&&(a.value=s,e.k&&(u[e.k]=s))};s?(b.id=-1,qe(b,n)):b()}}}const qe=Ju;function Cc(e){return kc(e)}function kc(e,t){const n=su();n.__VUE__=!0;const{insert:o,remove:r,patchProp:i,createElement:s,createText:l,createComment:a,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:m=tt,insertStaticContent:b}=e,P=(h,g,C,O=null,F=null,z=null,Q=!1,D=null,K=!!g.dynamicChildren)=>{if(h===g)return;h&&!Ft(h,g)&&(O=U(h),ge(h,F,z,!0),h=null),g.patchFlag===-2&&(K=!1,g.dynamicChildren=null);const{type:j,ref:X,shapeFlag:Y}=g;switch(j){case di:R(h,g,C,O);break;case gt:A(h,g,C,O);break;case er:h==null&&p(g,C,O,Q);break;case Je:k(h,g,C,O,F,z,Q,D,K);break;default:Y&1?I(h,g,C,O,F,z,Q,D,K):Y&6?H(h,g,C,O,F,z,Q,D,K):(Y&64||Y&128)&&j.process(h,g,C,O,F,z,Q,D,K,se)}X!=null&&F&&Tr(X,h&&h.ref,z,g||h,!g)},R=(h,g,C,O)=>{if(h==null)o(g.el=l(g.children),C,O);else{const F=g.el=h.el;g.children!==h.children&&c(F,g.children)}},A=(h,g,C,O)=>{h==null?o(g.el=a(g.children||""),C,O):g.el=h.el},p=(h,g,C,O)=>{[h.el,h.anchor]=b(h.children,g,C,O,h.el,h.anchor)},v=({el:h,anchor:g},C,O)=>{let F;for(;h&&h!==g;)F=f(h),o(h,C,O),h=F;o(g,C,O)},T=({el:h,anchor:g})=>{let C;for(;h&&h!==g;)C=f(h),r(h),h=C;r(g)},I=(h,g,C,O,F,z,Q,D,K)=>{Q=Q||g.type==="svg",h==null?y(g,C,O,F,z,Q,D,K):$(h,g,F,z,Q,D,K)},y=(h,g,C,O,F,z,Q,D)=>{let K,j;const{type:X,props:Y,shapeFlag:G,transition:ne,dirs:le}=h;if(K=h.el=s(h.type,z,Y&&Y.is,Y),G&8?u(K,h.children):G&16&&_(h.children,K,null,O,F,z&&X!=="foreignObject",Q,D),le&&Mt(h,null,O,"created"),Y){for(const he in Y)he!=="value"&&!po(he)&&i(K,he,null,Y[he],z,h.children,O,F,V);"value"in Y&&i(K,"value",null,Y.value),(j=Y.onVnodeBeforeMount)&&ze(j,O,h)}E(K,h,h.scopeId,Q,O),le&&Mt(h,null,O,"beforeMount");const ve=(!F||F&&!F.pendingBranch)&&ne&&!ne.persisted;ve&&ne.beforeEnter(K),o(K,g,C),((j=Y&&Y.onVnodeMounted)||ve||le)&&qe(()=>{j&&ze(j,O,h),ve&&ne.enter(K),le&&Mt(h,null,O,"mounted")},F)},E=(h,g,C,O,F)=>{if(C&&m(h,C),O)for(let z=0;z{for(let j=K;j{const D=g.el=h.el;let{patchFlag:K,dynamicChildren:j,dirs:X}=g;K|=h.patchFlag&16;const Y=h.props||pe,G=g.props||pe;let ne;C&&Ot(C,!1),(ne=G.onVnodeBeforeUpdate)&&ze(ne,C,g,h),X&&Mt(g,h,C,"beforeUpdate"),C&&Ot(C,!0);const le=F&&g.type!=="foreignObject";if(j?L(h.dynamicChildren,j,D,C,O,le,z):Q||W(h,g,D,null,C,O,le,z,!1),K>0){if(K&16)B(D,g,Y,G,C,O,F);else if(K&2&&Y.class!==G.class&&i(D,"class",null,G.class,F),K&4&&i(D,"style",Y.style,G.style,F),K&8){const ve=g.dynamicProps;for(let he=0;he{ne&&ze(ne,C,g,h),X&&Mt(g,h,C,"updated")},O)},L=(h,g,C,O,F,z,Q)=>{for(let D=0;D{if(C!==O){if(C!==pe)for(const D in C)!po(D)&&!(D in O)&&i(h,D,C[D],null,Q,g.children,F,z,V);for(const D in O){if(po(D))continue;const K=O[D],j=C[D];K!==j&&D!=="value"&&i(h,D,j,K,Q,g.children,F,z,V)}"value"in O&&i(h,"value",C.value,O.value)}},k=(h,g,C,O,F,z,Q,D,K)=>{const j=g.el=h?h.el:l(""),X=g.anchor=h?h.anchor:l("");let{patchFlag:Y,dynamicChildren:G,slotScopeIds:ne}=g;ne&&(D=D?D.concat(ne):ne),h==null?(o(j,C,O),o(X,C,O),_(g.children,C,X,F,z,Q,D,K)):Y>0&&Y&64&&G&&h.dynamicChildren?(L(h.dynamicChildren,G,C,F,z,Q,D),(g.key!=null||F&&g===F.subTree)&&fi(h,g,!0)):W(h,g,C,X,F,z,Q,D,K)},H=(h,g,C,O,F,z,Q,D,K)=>{g.slotScopeIds=D,h==null?g.shapeFlag&512?F.ctx.activate(g,C,O,Q,K):q(g,C,O,F,z,Q,K):J(h,g,K)},q=(h,g,C,O,F,z,Q)=>{const D=h.component=jc(h,O,F);if(Vo(h)&&(D.ctx.renderer=se),Nc(D),D.asyncDep){if(F&&F.registerDep(D,ee),!h.el){const K=D.subTree=je(gt);A(null,K,g,C)}return}ee(D,h,g,C,F,z,Q)},J=(h,g,C)=>{const O=g.component=h.component;if(Yu(h,g,C))if(O.asyncDep&&!O.asyncResolved){M(O,g,C);return}else O.next=g,Du(O.update),O.update();else g.el=h.el,O.vnode=g},ee=(h,g,C,O,F,z,Q)=>{const D=()=>{if(h.isMounted){let{next:X,bu:Y,u:G,parent:ne,vnode:le}=h,ve=X,he;Ot(h,!1),X?(X.el=le.el,M(h,X,Q)):X=le,Y&&Ln(Y),(he=X.props&&X.props.onVnodeBeforeUpdate)&&ze(he,ne,X,le),Ot(h,!0);const xe=Zo(h),Ye=h.subTree;h.subTree=xe,P(Ye,xe,d(Ye.el),U(Ye),h,F,z),X.el=xe.el,ve===null&&Zu(h,xe.el),G&&qe(G,F),(he=X.props&&X.props.onVnodeUpdated)&&qe(()=>ze(he,ne,X,le),F)}else{let X;const{el:Y,props:G}=g,{bm:ne,m:le,parent:ve}=h,he=Bn(g);if(Ot(h,!1),ne&&Ln(ne),!he&&(X=G&&G.onVnodeBeforeMount)&&ze(X,ve,g),Ot(h,!0),Y&&ie){const xe=()=>{h.subTree=Zo(h),ie(Y,h.subTree,h,F,null)};he?g.type.__asyncLoader().then(()=>!h.isUnmounted&&xe()):xe()}else{const xe=h.subTree=Zo(h);P(null,xe,C,O,h,F,z),g.el=xe.el}if(le&&qe(le,F),!he&&(X=G&&G.onVnodeMounted)){const xe=g;qe(()=>ze(X,ve,xe),F)}(g.shapeFlag&256||ve&&Bn(ve.vnode)&&ve.vnode.shapeFlag&256)&&h.a&&qe(h.a,F),h.isMounted=!0,g=C=O=null}},K=h.effect=new Xr(D,()=>ii(j),h.scope),j=h.update=()=>K.run();j.id=h.uid,Ot(h,!0),j()},M=(h,g,C)=>{g.component=h;const O=h.vnode.props;h.vnode=g,h.next=null,vc(h,g.props,O,C),_c(h,g.children,C),wn(),Mi(),xn()},W=(h,g,C,O,F,z,Q,D,K=!1)=>{const j=h&&h.children,X=h?h.shapeFlag:0,Y=g.children,{patchFlag:G,shapeFlag:ne}=g;if(G>0){if(G&128){N(j,Y,C,O,F,z,Q,D,K);return}else if(G&256){de(j,Y,C,O,F,z,Q,D,K);return}}ne&8?(X&16&&V(j,F,z),Y!==j&&u(C,Y)):X&16?ne&16?N(j,Y,C,O,F,z,Q,D,K):V(j,F,z,!0):(X&8&&u(C,""),ne&16&&_(Y,C,O,F,z,Q,D,K))},de=(h,g,C,O,F,z,Q,D,K)=>{h=h||un,g=g||un;const j=h.length,X=g.length,Y=Math.min(j,X);let G;for(G=0;GX?V(h,F,z,!0,!1,Y):_(g,C,O,F,z,Q,D,K,Y)},N=(h,g,C,O,F,z,Q,D,K)=>{let j=0;const X=g.length;let Y=h.length-1,G=X-1;for(;j<=Y&&j<=G;){const ne=h[j],le=g[j]=K?Ct(g[j]):st(g[j]);if(Ft(ne,le))P(ne,le,C,null,F,z,Q,D,K);else break;j++}for(;j<=Y&&j<=G;){const ne=h[Y],le=g[G]=K?Ct(g[G]):st(g[G]);if(Ft(ne,le))P(ne,le,C,null,F,z,Q,D,K);else break;Y--,G--}if(j>Y){if(j<=G){const ne=G+1,le=neG)for(;j<=Y;)ge(h[j],F,z,!0),j++;else{const ne=j,le=j,ve=new Map;for(j=le;j<=G;j++){const Fe=g[j]=K?Ct(g[j]):st(g[j]);Fe.key!=null&&ve.set(Fe.key,j)}let he,xe=0;const Ye=G-le+1;let Xt=!1,wi=0;const En=new Array(Ye);for(j=0;j=Ye){ge(Fe,F,z,!0);continue}let rt;if(Fe.key!=null)rt=ve.get(Fe.key);else for(he=le;he<=G;he++)if(En[he-le]===0&&Ft(Fe,g[he])){rt=he;break}rt===void 0?ge(Fe,F,z,!0):(En[rt-le]=j+1,rt>=wi?wi=rt:Xt=!0,P(Fe,g[rt],C,null,F,z,Q,D,K),xe++)}const xi=Xt?Ec(En):un;for(he=xi.length-1,j=Ye-1;j>=0;j--){const Fe=le+j,rt=g[Fe],Ci=Fe+1{const{el:z,type:Q,transition:D,children:K,shapeFlag:j}=h;if(j&6){ue(h.component.subTree,g,C,O);return}if(j&128){h.suspense.move(g,C,O);return}if(j&64){Q.move(h,g,C,se);return}if(Q===Je){o(z,g,C);for(let Y=0;YD.enter(z),F);else{const{leave:Y,delayLeave:G,afterLeave:ne}=D,le=()=>o(z,g,C),ve=()=>{Y(z,()=>{le(),ne&&ne()})};G?G(z,le,ve):ve()}else o(z,g,C)},ge=(h,g,C,O=!1,F=!1)=>{const{type:z,props:Q,ref:D,children:K,dynamicChildren:j,shapeFlag:X,patchFlag:Y,dirs:G}=h;if(D!=null&&Tr(D,null,C,h,!0),X&256){g.ctx.deactivate(h);return}const ne=X&1&&G,le=!Bn(h);let ve;if(le&&(ve=Q&&Q.onVnodeBeforeUnmount)&&ze(ve,g,h),X&6)w(h.component,C,O);else{if(X&128){h.suspense.unmount(C,O);return}ne&&Mt(h,null,g,"beforeUnmount"),X&64?h.type.remove(h,g,C,F,se,O):j&&(z!==Je||Y>0&&Y&64)?V(j,g,C,!1,!0):(z===Je&&Y&384||!F&&X&16)&&V(K,g,C),O&&me(h)}(le&&(ve=Q&&Q.onVnodeUnmounted)||ne)&&qe(()=>{ve&&ze(ve,g,h),ne&&Mt(h,null,g,"unmounted")},C)},me=h=>{const{type:g,el:C,anchor:O,transition:F}=h;if(g===Je){ot(C,O);return}if(g===er){T(h);return}const z=()=>{r(C),F&&!F.persisted&&F.afterLeave&&F.afterLeave()};if(h.shapeFlag&1&&F&&!F.persisted){const{leave:Q,delayLeave:D}=F,K=()=>Q(C,z);D?D(h.el,z,K):K()}else z()},ot=(h,g)=>{let C;for(;h!==g;)C=f(h),r(h),h=C;r(g)},w=(h,g,C)=>{const{bum:O,scope:F,update:z,subTree:Q,um:D}=h;O&&Ln(O),F.stop(),z&&(z.active=!1,ge(Q,h,g,C)),D&&qe(D,g),qe(()=>{h.isUnmounted=!0},g),g&&g.pendingBranch&&!g.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===g.pendingId&&(g.deps--,g.deps===0&&g.resolve())},V=(h,g,C,O=!1,F=!1,z=0)=>{for(let Q=z;Qh.shapeFlag&6?U(h.component.subTree):h.shapeFlag&128?h.suspense.next():f(h.anchor||h.el),Z=(h,g,C)=>{h==null?g._vnode&&ge(g._vnode,null,null,!0):P(g._vnode||null,h,g,null,null,null,C),Mi(),El(),g._vnode=h},se={p:P,um:ge,m:ue,r:me,mt:q,mc:_,pc:W,pbc:L,n:U,o:e};let _e,ie;return t&&([_e,ie]=t(se)),{render:Z,hydrate:_e,createApp:xc(Z,_e)}}function Ot({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function fi(e,t,n=!1){const o=e.children,r=t.children;if(te(o)&&te(r))for(let i=0;i>1,e[n[l]]0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,s=n[i-1];i-- >0;)n[i]=s,s=t[s];return n}const Sc=e=>e.__isTeleport,In=e=>e&&(e.disabled||e.disabled===""),Di=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Pr=(e,t)=>{const n=e&&e.to;return ke(n)?t?t(n):null:n},Rc={__isTeleport:!0,process(e,t,n,o,r,i,s,l,a,c){const{mc:u,pc:d,pbc:f,o:{insert:m,querySelector:b,createText:P,createComment:R}}=c,A=In(t.props);let{shapeFlag:p,children:v,dynamicChildren:T}=t;if(e==null){const I=t.el=P(""),y=t.anchor=P("");m(I,n,o),m(y,n,o);const E=t.target=Pr(t.props,b),_=t.targetAnchor=P("");E&&(m(_,E),s=s||Di(E));const $=(L,B)=>{p&16&&u(v,L,B,r,i,s,l,a)};A?$(n,y):E&&$(E,_)}else{t.el=e.el;const I=t.anchor=e.anchor,y=t.target=e.target,E=t.targetAnchor=e.targetAnchor,_=In(e.props),$=_?n:y,L=_?I:E;if(s=s||Di(y),T?(f(e.dynamicChildren,T,$,r,i,s,l),fi(e,t,!0)):a||d(e,t,$,L,r,i,s,l,!1),A)_||ao(t,n,I,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const B=t.target=Pr(t.props,b);B&&ao(t,B,null,c,0)}else _&&ao(t,y,E,c,1)}},remove(e,t,n,o,{um:r,o:{remove:i}},s){const{shapeFlag:l,children:a,anchor:c,targetAnchor:u,target:d,props:f}=e;if(d&&i(u),(s||!In(f))&&(i(c),l&16))for(let m=0;m0?Ge||un:null,Ac(),Wn>0&&Ge&&Ge.push(e),e}function rm(e,t,n,o,r,i){return Wl(Yl(e,t,n,o,r,i,!0))}function Mc(e,t,n,o,r){return Wl(je(e,t,n,o,r,!0))}function Ro(e){return e?e.__v_isVNode===!0:!1}function Ft(e,t){return e.type===t.type&&e.key===t.key}const Ho="__vInternal",Ql=({key:e})=>e??null,bo=({ref:e,ref_key:t,ref_for:n})=>e!=null?ke(e)||Oe(e)||oe(e)?{i:Ue,r:e,k:t,f:!!n}:e:null;function Yl(e,t=null,n=null,o=0,r=null,i=e===Je?0:1,s=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ql(t),ref:t&&bo(t),scopeId:Tl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null};return l?(hi(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=ke(n)?8:16),Wn>0&&!s&&Ge&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&Ge.push(a),a}const je=Oc;function Oc(e,t=null,n=null,o=0,r=null,i=!1){if((!e||e===ac)&&(e=gt),Ro(e)){const l=pt(e,t,!0);return n&&hi(l,n),Wn>0&&!i&&Ge&&(l.shapeFlag&6?Ge[Ge.indexOf(e)]=l:Ge.push(l)),l.patchFlag|=-2,l}if(Hc(e)&&(e=e.__vccOpts),t){t=$c(t);let{class:l,style:a}=t;l&&!ke(l)&&(t.class=Kr(l)),ye(a)&&(vl(a)&&!te(a)&&(a=Te({},a)),t.style=Hr(a))}const s=ke(e)?1:Pl(e)?128:Sc(e)?64:ye(e)?4:oe(e)?2:0;return Yl(e,t,n,o,r,s,i,!0)}function $c(e){return e?vl(e)||Ho in e?Te({},e):e:null}function pt(e,t,n=!1){const{props:o,ref:r,patchFlag:i,children:s}=e,l=t?Bc(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ql(l),ref:t&&t.ref?n&&r?te(r)?r.concat(bo(t)):[r,bo(t)]:bo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Je?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pt(e.ssContent),ssFallback:e.ssFallback&&pt(e.ssFallback),el:e.el,anchor:e.anchor}}function Lc(e=" ",t=0){return je(di,null,e,t)}function st(e){return e==null||typeof e=="boolean"?je(gt):te(e)?je(Je,null,e.slice()):typeof e=="object"?Ct(e):je(di,null,String(e))}function Ct(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:pt(e)}function hi(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(te(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),hi(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Ho in t)?t._ctx=Ue:r===3&&Ue&&(Ue.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:Ue},n=32):(t=String(t),o&64?(n=16,t=[Lc(t)]):n=8);e.children=t,e.shapeFlag|=n}function Bc(...e){const t={};for(let n=0;nRe||Ue,mn=e=>{Re=e,e.scope.on()},Kt=()=>{Re&&Re.scope.off(),Re=null};function Zl(e){return e.vnode.shapeFlag&4}let Qn=!1;function Nc(e,t=!1){Qn=t;const{props:n,children:o}=e.vnode,r=Zl(e);pc(e,n,r,t),yc(e,o);const i=r?Vc(e,t):void 0;return Qn=!1,i}function Vc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Cn(new Proxy(e.ctx,cc));const{setup:o}=n;if(o){const r=e.setupContext=o.length>1?zc(e):null;mn(e),wn();const i=Tt(o,e,0,[e.props,r]);if(xn(),Kt(),ol(i)){if(i.then(Kt,Kt),t)return i.then(s=>{Hi(e,s,t)}).catch(s=>{Io(s,e,0)});e.asyncDep=i}else Hi(e,i,t)}else Jl(e,t)}function Hi(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ye(t)&&(e.setupState=wl(t)),Jl(e,n)}let Ki;function Jl(e,t,n){const o=e.type;if(!e.render){if(!t&&Ki&&!o.render){const r=o.template||ui(e).template;if(r){const{isCustomElement:i,compilerOptions:s}=e.appContext.config,{delimiters:l,compilerOptions:a}=o,c=Te(Te({isCustomElement:i,delimiters:l},s),a);o.render=Ki(r,c)}}e.render=o.render||tt}mn(e),wn(),fc(e),xn(),Kt()}function Dc(e){return new Proxy(e.attrs,{get(t,n){return Ne(e,"get","$attrs"),t[n]}})}function zc(e){const t=o=>{e.exposed=o||{}};let n;return{get attrs(){return n||(n=Dc(e))},slots:e.slots,emit:e.emit,expose:t}}function Ko(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(wl(Cn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Fn)return Fn[n](e)},has(t,n){return n in t||n in Fn}}))}function qr(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Hc(e){return oe(e)&&"__vccOpts"in e}const S=(e,t)=>ju(e,t,Qn);function x(e,t,n){const o=arguments.length;return o===2?ye(t)&&!te(t)?Ro(t)?je(e,null,[t]):je(e,t):je(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Ro(n)&&(n=[n]),je(e,t,n))}const Kc=Symbol(""),Uc=()=>at(Kc),Wc="3.2.43",Qc="http://www.w3.org/2000/svg",It=typeof document<"u"?document:null,Ui=It&&It.createElement("template"),Yc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?It.createElementNS(Qc,e):It.createElement(e,n?{is:n}:void 0);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>It.createTextNode(e),createComment:e=>It.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>It.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,i){const s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ui.innerHTML=o?`${e}`:e;const l=Ui.content;if(o){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Zc(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Jc(e,t,n){const o=e.style,r=ke(n);if(n&&!r){for(const i in n)Ar(o,i,n[i]);if(t&&!ke(t))for(const i in t)n[i]==null&&Ar(o,i,"")}else{const i=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=i)}}const Wi=/\s*!important$/;function Ar(e,t,n){if(te(n))n.forEach(o=>Ar(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Xc(e,t);Wi.test(n)?e.setProperty(_n(o),n.replace(Wi,""),"important"):e[o]=n}}const Qi=["Webkit","Moz","ms"],tr={};function Xc(e,t){const n=tr[t];if(n)return n;let o=ut(t);if(o!=="filter"&&o in e)return tr[t]=o;o=Bo(o);for(let r=0;rnr||(sf.then(()=>nr=0),nr=Date.now());function af(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;We(uf(o,n.value),t,5,[o])};return n.value=e,n.attached=lf(),n}function uf(e,t){if(te(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const Ji=/^on[a-z]/,cf=(e,t,n,o,r=!1,i,s,l,a)=>{t==="class"?Zc(e,o,r):t==="style"?Jc(e,n,o):Oo(t)?Ur(t)||of(e,t,n,o,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ff(e,t,o,r))?ef(e,t,o,i,s,l,a):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Gc(e,t,o,r))};function ff(e,t,n,o){return o?!!(t==="innerHTML"||t==="textContent"||t in e&&Ji.test(t)&&oe(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Ji.test(t)&&ke(n)?!1:t in e}const _t="transition",Sn="animation",Qt=(e,{slots:t})=>x(Ol,Gl(e),t);Qt.displayName="Transition";const Xl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},df=Qt.props=Te({},Ol.props,Xl),$t=(e,t=[])=>{te(e)?e.forEach(n=>n(...t)):e&&e(...t)},Xi=e=>e?te(e)?e.some(t=>t.length>1):e.length>1:!1;function Gl(e){const t={};for(const k in e)k in Xl||(t[k]=e[k]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:c=s,appearToClass:u=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,b=hf(r),P=b&&b[0],R=b&&b[1],{onBeforeEnter:A,onEnter:p,onEnterCancelled:v,onLeave:T,onLeaveCancelled:I,onBeforeAppear:y=A,onAppear:E=p,onAppearCancelled:_=v}=t,$=(k,H,q)=>{xt(k,H?u:l),xt(k,H?c:s),q&&q()},L=(k,H)=>{k._isLeaving=!1,xt(k,d),xt(k,m),xt(k,f),H&&H()},B=k=>(H,q)=>{const J=k?E:p,ee=()=>$(H,k,q);$t(J,[H,ee]),Gi(()=>{xt(H,k?a:i),ft(H,k?u:l),Xi(J)||es(H,o,P,ee)})};return Te(t,{onBeforeEnter(k){$t(A,[k]),ft(k,i),ft(k,s)},onBeforeAppear(k){$t(y,[k]),ft(k,a),ft(k,c)},onEnter:B(!1),onAppear:B(!0),onLeave(k,H){k._isLeaving=!0;const q=()=>L(k,H);ft(k,d),ta(),ft(k,f),Gi(()=>{!k._isLeaving||(xt(k,d),ft(k,m),Xi(T)||es(k,o,R,q))}),$t(T,[k,q])},onEnterCancelled(k){$(k,!1),$t(v,[k])},onAppearCancelled(k){$(k,!0),$t(_,[k])},onLeaveCancelled(k){L(k),$t(I,[k])}})}function hf(e){if(e==null)return null;if(ye(e))return[or(e.enter),or(e.leave)];{const t=or(e);return[t,t]}}function or(e){return Zr(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function xt(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Gi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let gf=0;function es(e,t,n,o){const r=e._endId=++gf,i=()=>{r===e._endId&&o()};if(n)return setTimeout(i,n);const{type:s,timeout:l,propCount:a}=ea(e,t);if(!s)return o();const c=s+"end";let u=0;const d=()=>{e.removeEventListener(c,f),i()},f=m=>{m.target===e&&++u>=a&&d()};setTimeout(()=>{u(n[b]||"").split(", "),r=o(`${_t}Delay`),i=o(`${_t}Duration`),s=ts(r,i),l=o(`${Sn}Delay`),a=o(`${Sn}Duration`),c=ts(l,a);let u=null,d=0,f=0;t===_t?s>0&&(u=_t,d=s,f=i.length):t===Sn?c>0&&(u=Sn,d=c,f=a.length):(d=Math.max(s,c),u=d>0?s>c?_t:Sn:null,f=u?u===_t?i.length:a.length:0);const m=u===_t&&/\b(transform|all)(,|$)/.test(o(`${_t}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:m}}function ts(e,t){for(;e.lengthns(n)+ns(e[o])))}function ns(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ta(){return document.body.offsetHeight}const na=new WeakMap,oa=new WeakMap,mf={name:"TransitionGroup",props:Te({},df,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=we(),o=Ml();let r,i;return li(()=>{if(!r.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!_f(r[0].el,n.vnode.el,s))return;r.forEach(vf),r.forEach(bf);const l=r.filter(yf);ta(),l.forEach(a=>{const c=a.el,u=c.style;ft(c,s),u.transform=u.webkitTransform=u.transitionDuration="";const d=c._moveCb=f=>{f&&f.target!==c||(!f||/transform$/.test(f.propertyName))&&(c.removeEventListener("transitionend",d),c._moveCb=null,xt(c,s))};c.addEventListener("transitionend",d)})}),()=>{const s=re(e),l=Gl(s);let a=s.tag||Je;r=i,i=t.default?si(t.default()):[];for(let c=0;c{s.split(/\s+/).forEach(l=>l&&o.classList.remove(l))}),n.split(/\s+/).forEach(s=>s&&o.classList.add(s)),o.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(o);const{hasTransform:i}=ea(o);return r.removeChild(o),i}const im={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Rn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Rn(e,!0),o.enter(e)):o.leave(e,()=>{Rn(e,!1)}):Rn(e,t))},beforeUnmount(e,{value:t}){Rn(e,t)}};function Rn(e,t){e.style.display=t?e._vod:"none"}const wf=Te({patchProp:cf},Yc);let os;function xf(){return os||(os=Cc(wf))}const gi=(...e)=>{const t=xf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=Cf(o);if(!r)return;const i=t._component;!oe(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.innerHTML="";const s=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t};function Cf(e){return ke(e)?document.querySelector(e):e}function kn(e,t,n,o){return Object.defineProperty(e,t,{get:n,set:o,enumerable:!0}),e}const qt=ce(!1);let Uo;function kf(e,t){const n=/(edg|edge|edga|edgios)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(vivaldi)[\/]([\w.]+)/.exec(e)||/(chrome|crios)[\/]([\w.]+)/.exec(e)||/(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(e)||/(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(e)||/(firefox|fxios)[\/]([\w.]+)/.exec(e)||/(webkit)[\/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[\/]([\w.]+)/.exec(e)||[];return{browser:n[5]||n[3]||n[1]||"",version:n[2]||n[4]||"0",versionNumber:n[4]||n[2]||"0",platform:t[0]||""}}function Ef(e){return/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(silk)/.exec(e)||/(android)/.exec(e)||/(win)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||/(playbook)/.exec(e)||/(bb)/.exec(e)||/(blackberry)/.exec(e)||[]}const ra="ontouchstart"in window||window.navigator.maxTouchPoints>0;function Sf(e){Uo={is:{...e}},delete e.mac,delete e.desktop;const t=Math.min(window.innerHeight,window.innerWidth)>414?"ipad":"iphone";Object.assign(e,{mobile:!0,ios:!0,platform:t,[t]:!0})}function Rf(e){const t=e.toLowerCase(),n=Ef(t),o=kf(t,n),r={};o.browser&&(r[o.browser]=!0,r.version=o.version,r.versionNumber=parseInt(o.versionNumber,10)),o.platform&&(r[o.platform]=!0);const i=r.android||r.ios||r.bb||r.blackberry||r.ipad||r.iphone||r.ipod||r.kindle||r.playbook||r.silk||r["windows phone"];return i===!0||t.indexOf("mobile")>-1?(r.mobile=!0,r.edga||r.edgios?(r.edge=!0,o.browser="edge"):r.crios?(r.chrome=!0,o.browser="chrome"):r.fxios&&(r.firefox=!0,o.browser="firefox")):r.desktop=!0,(r.ipod||r.ipad||r.iphone)&&(r.ios=!0),r["windows phone"]&&(r.winphone=!0,delete r["windows phone"]),(r.chrome||r.opr||r.safari||r.vivaldi||r.mobile===!0&&r.ios!==!0&&i!==!0)&&(r.webkit=!0),r.edg&&(o.browser="edgechromium",r.edgeChromium=!0),(r.safari&&r.blackberry||r.bb)&&(o.browser="blackberry",r.blackberry=!0),r.safari&&r.playbook&&(o.browser="playbook",r.playbook=!0),r.opr&&(o.browser="opera",r.opera=!0),r.safari&&r.android&&(o.browser="android",r.android=!0),r.safari&&r.kindle&&(o.browser="kindle",r.kindle=!0),r.safari&&r.silk&&(o.browser="silk",r.silk=!0),r.vivaldi&&(o.browser="vivaldi",r.vivaldi=!0),r.name=o.browser,r.platform=o.platform,t.indexOf("electron")>-1?r.electron=!0:document.location.href.indexOf("-extension://")>-1?r.bex=!0:(window.Capacitor!==void 0?(r.capacitor=!0,r.nativeMobile=!0,r.nativeMobileWrapper="capacitor"):(window._cordovaNative!==void 0||window.cordova!==void 0)&&(r.cordova=!0,r.nativeMobile=!0,r.nativeMobileWrapper="cordova"),ra===!0&&r.mac===!0&&(r.desktop===!0&&r.safari===!0||r.nativeMobile===!0&&r.android!==!0&&r.ios!==!0&&r.ipad!==!0)&&Sf(r)),r}const rs=navigator.userAgent||navigator.vendor||window.opera,Tf={has:{touch:!1,webStorage:!1},within:{iframe:!1}},Ce={userAgent:rs,is:Rf(rs),has:{touch:ra},within:{iframe:window.self!==window.top}},Mr={install(e){const{$q:t}=e;qt.value===!0?(e.onSSRHydrated.push(()=>{qt.value=!1,Object.assign(t.platform,Ce),Uo=void 0}),t.platform=Yt(this)):t.platform=this}};{let e;kn(Ce.has,"webStorage",()=>{if(e!==void 0)return e;try{if(window.localStorage)return e=!0,!0}catch{}return e=!1,!1}),Ce.is.ios===!0&&window.navigator.vendor.toLowerCase().indexOf("apple"),qt.value===!0?Object.assign(Mr,Ce,Uo,Tf):Object.assign(Mr,Ce)}var Gn=(e,t)=>{const n=Yt(e);for(const o in e)kn(t,o,()=>n[o],r=>{n[o]=r});return t};const Be={hasPassive:!1,passiveCapture:!0,notPassiveCapture:!0};try{const e=Object.defineProperty({},"passive",{get(){Object.assign(Be,{hasPassive:!0,passive:{passive:!0},notPassive:{passive:!1},passiveCapture:{passive:!0,capture:!0},notPassiveCapture:{passive:!1,capture:!0}})}});window.addEventListener("qtest",null,e),window.removeEventListener("qtest",null,e)}catch{}function Yn(){}function sm(e){return e.button===0}function Pf(e){return e.touches&&e.touches[0]?e=e.touches[0]:e.changedTouches&&e.changedTouches[0]?e=e.changedTouches[0]:e.targetTouches&&e.targetTouches[0]&&(e=e.targetTouches[0]),{top:e.clientY,left:e.clientX}}function qf(e){if(e.path)return e.path;if(e.composedPath)return e.composedPath();const t=[];let n=e.target;for(;n;){if(t.push(n),n.tagName==="HTML")return t.push(document),t.push(window),t;n=n.parentElement}}function To(e){e.stopPropagation()}function St(e){e.cancelable!==!1&&e.preventDefault()}function He(e){e.cancelable!==!1&&e.preventDefault(),e.stopPropagation()}function lm(e,t){if(e===void 0||t===!0&&e.__dragPrevented===!0)return;const n=t===!0?o=>{o.__dragPrevented=!0,o.addEventListener("dragstart",St,Be.notPassiveCapture)}:o=>{delete o.__dragPrevented,o.removeEventListener("dragstart",St,Be.notPassiveCapture)};e.querySelectorAll("a, img").forEach(n)}function Af(e,t,n){const o=`__q_${t}_evt`;e[o]=e[o]!==void 0?e[o].concat(n):n,n.forEach(r=>{r[0].addEventListener(r[1],e[r[2]],Be[r[3]])})}function Mf(e,t){const n=`__q_${t}_evt`;e[n]!==void 0&&(e[n].forEach(o=>{o[0].removeEventListener(o[1],e[o[2]],Be[o[3]])}),e[n]=void 0)}function ia(e,t=250,n){let o;function r(){const i=arguments,s=()=>{o=void 0,n!==!0&&e.apply(this,i)};clearTimeout(o),n===!0&&o===void 0&&e.apply(this,i),o=setTimeout(s,t)}return r.cancel=()=>{clearTimeout(o)},r}const rr=["sm","md","lg","xl"],{passive:is}=Be;var Of=Gn({width:0,height:0,name:"xs",sizes:{sm:600,md:1024,lg:1440,xl:1920},lt:{sm:!0,md:!0,lg:!0,xl:!0},gt:{xs:!1,sm:!1,md:!1,lg:!1},xs:!0,sm:!1,md:!1,lg:!1,xl:!1},{setSizes:Yn,setDebounce:Yn,install({$q:e,onSSRHydrated:t}){if(e.screen=this,this.__installed===!0){e.config.screen!==void 0&&(e.config.screen.bodyClasses===!1?document.body.classList.remove(`screen--${this.name}`):this.__update(!0));return}const{visualViewport:n}=window,o=n||window,r=document.scrollingElement||document.documentElement,i=n===void 0||Ce.is.mobile===!0?()=>[Math.max(window.innerWidth,r.clientWidth),Math.max(window.innerHeight,r.clientHeight)]:()=>[n.width*n.scale+window.innerWidth-r.clientWidth,n.height*n.scale+window.innerHeight-r.clientHeight],s=e.config.screen!==void 0&&e.config.screen.bodyClasses===!0;this.__update=d=>{const[f,m]=i();if(m!==this.height&&(this.height=m),f!==this.width)this.width=f;else if(d!==!0)return;let b=this.sizes;this.gt.xs=f>=b.sm,this.gt.sm=f>=b.md,this.gt.md=f>=b.lg,this.gt.lg=f>=b.xl,this.lt.sm=f{rr.forEach(f=>{d[f]!==void 0&&(a[f]=d[f])})},this.setDebounce=d=>{c=d};const u=()=>{const d=getComputedStyle(document.body);d.getPropertyValue("--q-size-sm")&&rr.forEach(f=>{this.sizes[f]=parseInt(d.getPropertyValue(`--q-size-${f}`),10)}),this.setSizes=f=>{rr.forEach(m=>{f[m]&&(this.sizes[m]=f[m])}),this.__update(!0)},this.setDebounce=f=>{l!==void 0&&o.removeEventListener("resize",l,is),l=f>0?ia(this.__update,f):this.__update,o.addEventListener("resize",l,is)},this.setDebounce(c),Object.keys(a).length>0?(this.setSizes(a),a=void 0):this.__update(),s===!0&&this.name==="xs"&&document.body.classList.add("screen--xs")};qt.value===!0?t.push(u):u()}});const Ae=Gn({isActive:!1,mode:!1},{__media:void 0,set(e){Ae.mode=e,e==="auto"?(Ae.__media===void 0&&(Ae.__media=window.matchMedia("(prefers-color-scheme: dark)"),Ae.__updateMedia=()=>{Ae.set("auto")},Ae.__media.addListener(Ae.__updateMedia)),e=Ae.__media.matches):Ae.__media!==void 0&&(Ae.__media.removeListener(Ae.__updateMedia),Ae.__media=void 0),Ae.isActive=e===!0,document.body.classList.remove(`body--${e===!0?"light":"dark"}`),document.body.classList.add(`body--${e===!0?"dark":"light"}`)},toggle(){Ae.set(Ae.isActive===!1)},install({$q:e,onSSRHydrated:t,ssrContext:n}){const{dark:o}=e.config;if(e.dark=this,this.__installed===!0&&o===void 0)return;this.isActive=o===!0;const r=o!==void 0?o:!1;if(qt.value===!0){const i=l=>{this.__fromSSR=l},s=this.set;this.set=i,i(r),t.push(()=>{this.set=s,this.set(this.__fromSSR)})}else this.set(r)}}),sa=()=>!0;function $f(e){return typeof e=="string"&&e!==""&&e!=="/"&&e!=="#/"}function Lf(e){return e.startsWith("#")===!0&&(e=e.substring(1)),e.startsWith("/")===!1&&(e="/"+e),e.endsWith("/")===!0&&(e=e.substring(0,e.length-1)),"#"+e}function Bf(e){if(e.backButtonExit===!1)return()=>!1;if(e.backButtonExit==="*")return sa;const t=["#/"];return Array.isArray(e.backButtonExit)===!0&&t.push(...e.backButtonExit.filter($f).map(Lf)),()=>t.includes(window.location.hash)}var Or={__history:[],add:Yn,remove:Yn,install({$q:e}){if(this.__installed===!0)return;const{cordova:t,capacitor:n}=Ce.is;if(t!==!0&&n!==!0)return;const o=e.config[t===!0?"cordova":"capacitor"];if(o!==void 0&&o.backButton===!1||n===!0&&(window.Capacitor===void 0||window.Capacitor.Plugins.App===void 0))return;this.add=s=>{s.condition===void 0&&(s.condition=sa),this.__history.push(s)},this.remove=s=>{const l=this.__history.indexOf(s);l>=0&&this.__history.splice(l,1)};const r=Bf(Object.assign({backButtonExit:!0},o)),i=()=>{if(this.__history.length){const s=this.__history[this.__history.length-1];s.condition()===!0&&(this.__history.pop(),s.handler())}else r()===!0?navigator.app.exitApp():window.history.back()};t===!0?document.addEventListener("deviceready",()=>{document.addEventListener("backbutton",i,!1)}):window.Capacitor.Plugins.App.addListener("backButton",i)}},ss={isoName:"en-US",nativeName:"English (US)",label:{clear:"Clear",ok:"OK",cancel:"Cancel",close:"Close",set:"Set",select:"Select",reset:"Reset",remove:"Remove",update:"Update",create:"Create",search:"Search",filter:"Filter",refresh:"Refresh",expand:e=>e?`Expand "${e}"`:"Expand",collapse:e=>e?`Collapse "${e}"`:"Collapse"},date:{days:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),daysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),firstDayOfWeek:0,format24h:!1,pluralDay:"days"},table:{noData:"No data available",noResults:"No matching records found",loading:"Loading...",selectedRecords:e=>e===1?"1 record selected.":(e===0?"No":e)+" records selected.",recordsPerPage:"Records per page:",allRows:"All",pagination:(e,t,n)=>e+"-"+t+" of "+n,columns:"Columns"},editor:{url:"URL",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",underline:"Underline",unorderedList:"Unordered List",orderedList:"Ordered List",subscript:"Subscript",superscript:"Superscript",hyperlink:"Hyperlink",toggleFullscreen:"Toggle Fullscreen",quote:"Quote",left:"Left align",center:"Center align",right:"Right align",justify:"Justify align",print:"Print",outdent:"Decrease indentation",indent:"Increase indentation",removeFormat:"Remove formatting",formatting:"Formatting",fontSize:"Font Size",align:"Align",hr:"Insert Horizontal Rule",undo:"Undo",redo:"Redo",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",paragraph:"Paragraph",code:"Code",size1:"Very small",size2:"A bit small",size3:"Normal",size4:"Medium-large",size5:"Big",size6:"Very big",size7:"Maximum",defaultFont:"Default Font",viewSource:"View Source"},tree:{noNodes:"No nodes available",noResults:"No matching nodes found"}};function ls(){const e=Array.isArray(navigator.languages)===!0&&navigator.languages.length>0?navigator.languages[0]:navigator.language;if(typeof e=="string")return e.split(/[-_]/).map((t,n)=>n===0?t.toLowerCase():n>1||t.length<4?t.toUpperCase():t[0].toUpperCase()+t.slice(1).toLowerCase()).join("-")}const kt=Gn({__langPack:{}},{getLocale:ls,set(e=ss,t){const n={...e,rtl:e.rtl===!0,getLocale:ls};{const o=document.documentElement;o.setAttribute("dir",n.rtl===!0?"rtl":"ltr"),o.setAttribute("lang",n.isoName),n.set=kt.set,Object.assign(kt.__langPack,n),kt.props=n,kt.isoName=n.isoName,kt.nativeName=n.nativeName}},install({$q:e,lang:t,ssrContext:n}){e.lang=kt.__langPack,this.__installed===!0?t!==void 0&&this.set(t):this.set(t||ss)}});function Ff(e,t,n=document.body){if(typeof e!="string")throw new TypeError("Expected a string as propName");if(typeof t!="string")throw new TypeError("Expected a string as value");if(!(n instanceof Element))throw new TypeError("Expected a DOM element");n.style.setProperty(`--q-${e}`,t)}let la=!1;function If(e){la=e.isComposing===!0}function aa(e){return la===!0||e!==Object(e)||e.isComposing===!0||e.qKeyEvent===!0}function Zn(e,t){return aa(e)===!0?!1:[].concat(t).includes(e.keyCode)}function jf(e){if(e.ios===!0)return"ios";if(e.android===!0)return"android"}function Nf({is:e,has:t,within:n},o){const r=[e.desktop===!0?"desktop":"mobile",`${t.touch===!1?"no-":""}touch`];if(e.mobile===!0){const i=jf(e);i!==void 0&&r.push("platform-"+i)}if(e.nativeMobile===!0){const i=e.nativeMobileWrapper;r.push(i),r.push("native-mobile"),e.ios===!0&&(o[i]===void 0||o[i].iosStatusBarPadding!==!1)&&r.push("q-ios-padding")}else e.electron===!0?r.push("electron"):e.bex===!0&&r.push("bex");return n.iframe===!0&&r.push("within-iframe"),r}function Vf(){const e=document.body.className;let t=e;Uo!==void 0&&(t=t.replace("desktop","platform-ios mobile")),Ce.has.touch===!0&&(t=t.replace("no-touch","touch")),Ce.within.iframe===!0&&(t+=" within-iframe"),e!==t&&(document.body.className=t)}function Df(e){for(const t in e)Ff(t,e[t])}var zf={install(e){if(this.__installed!==!0){if(qt.value===!0)Vf();else{const{$q:t}=e;t.config.brand!==void 0&&Df(t.config.brand);const n=Nf(Ce,t.config);document.body.classList.add.apply(document.body.classList,n)}Ce.is.ios===!0&&document.body.addEventListener("touchstart",Yn),window.addEventListener("keydown",If,!0)}}},Hf={name:"material-icons",type:{positive:"check_circle",negative:"warning",info:"info",warning:"priority_high"},arrow:{up:"arrow_upward",right:"arrow_forward",down:"arrow_downward",left:"arrow_back",dropdown:"arrow_drop_down"},chevron:{left:"chevron_left",right:"chevron_right"},colorPicker:{spectrum:"gradient",tune:"tune",palette:"style"},pullToRefresh:{icon:"refresh"},carousel:{left:"chevron_left",right:"chevron_right",up:"keyboard_arrow_up",down:"keyboard_arrow_down",navigationIcon:"lens"},chip:{remove:"cancel",selected:"check"},datetime:{arrowLeft:"chevron_left",arrowRight:"chevron_right",now:"access_time",today:"today"},editor:{bold:"format_bold",italic:"format_italic",strikethrough:"strikethrough_s",underline:"format_underlined",unorderedList:"format_list_bulleted",orderedList:"format_list_numbered",subscript:"vertical_align_bottom",superscript:"vertical_align_top",hyperlink:"link",toggleFullscreen:"fullscreen",quote:"format_quote",left:"format_align_left",center:"format_align_center",right:"format_align_right",justify:"format_align_justify",print:"print",outdent:"format_indent_decrease",indent:"format_indent_increase",removeFormat:"format_clear",formatting:"text_format",fontSize:"format_size",align:"format_align_left",hr:"remove",undo:"undo",redo:"redo",heading:"format_size",code:"code",size:"format_size",font:"font_download",viewSource:"code"},expansionItem:{icon:"keyboard_arrow_down",denseIcon:"arrow_drop_down"},fab:{icon:"add",activeIcon:"close"},field:{clear:"cancel",error:"error"},pagination:{first:"first_page",prev:"keyboard_arrow_left",next:"keyboard_arrow_right",last:"last_page"},rating:{icon:"grade"},stepper:{done:"check",active:"edit",error:"warning"},tabs:{left:"chevron_left",right:"chevron_right",up:"keyboard_arrow_up",down:"keyboard_arrow_down"},table:{arrowUp:"arrow_upward",warning:"warning",firstPage:"first_page",prevPage:"chevron_left",nextPage:"chevron_right",lastPage:"last_page"},tree:{icon:"play_arrow"},uploader:{done:"done",clear:"clear",add:"add_box",upload:"cloud_upload",removeQueue:"clear_all",removeUploaded:"done_all"}};const Po=Gn({iconMapFn:null,__icons:{}},{set(e,t){const n={...e,rtl:e.rtl===!0};n.set=Po.set,Object.assign(Po.__icons,n)},install({$q:e,iconSet:t,ssrContext:n}){e.config.iconMapFn!==void 0&&(this.iconMapFn=e.config.iconMapFn),e.iconSet=this.__icons,kn(e,"iconMapFn",()=>this.iconMapFn,o=>{this.iconMapFn=o}),this.__installed===!0?t!==void 0&&this.set(t):this.set(t||Hf)}}),Kf="_q_",am="_q_l_",um="_q_pc_",Uf="_q_fo_",cm="_q_tabs_",fm=()=>{},qo={};let ua=!1;function Wf(){ua=!0}function ir(e,t){if(e===t)return!0;if(e!==null&&t!==null&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;let n,o;if(e.constructor===Array){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(ir(e[o],t[o])!==!0)return!1;return!0}if(e.constructor===Map){if(e.size!==t.size)return!1;for(o=e.entries().next();o.done!==!0;){if(t.has(o.value[0])!==!0)return!1;o=o.next()}for(o=e.entries().next();o.done!==!0;){if(ir(o.value[1],t.get(o.value[0]))!==!0)return!1;o=o.next()}return!0}if(e.constructor===Set){if(e.size!==t.size)return!1;for(o=e.entries().next();o.done!==!0;){if(t.has(o.value[0])!==!0)return!1;o=o.next()}return!0}if(e.buffer!=null&&e.buffer.constructor===ArrayBuffer){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(e[o]!==t[o])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const r=Object.keys(e).filter(i=>e[i]!==void 0);if(n=r.length,n!==Object.keys(t).filter(i=>t[i]!==void 0).length)return!1;for(o=n;o--!==0;){const i=r[o];if(ir(e[i],t[i])!==!0)return!1}return!0}return e!==e&&t!==t}function Ke(e){return e!==null&&typeof e=="object"&&Array.isArray(e)!==!0}const as=[Mr,zf,Ae,Of,Or,kt,Po];function ca(e,t){const n=gi(e);n.config.globalProperties=t.config.globalProperties;const{reload:o,...r}=t._context;return Object.assign(n._context,r),n}function us(e,t){t.forEach(n=>{n.install(e),n.__installed=!0})}function Qf(e,t,n){e.config.globalProperties.$q=n.$q,e.provide(Kf,n.$q),us(n,as),t.components!==void 0&&Object.values(t.components).forEach(o=>{Ke(o)===!0&&o.name!==void 0&&e.component(o.name,o)}),t.directives!==void 0&&Object.values(t.directives).forEach(o=>{Ke(o)===!0&&o.name!==void 0&&e.directive(o.name,o)}),t.plugins!==void 0&&us(n,Object.values(t.plugins).filter(o=>typeof o.install=="function"&&as.includes(o)===!1)),qt.value===!0&&(n.$q.onSSRHydrated=()=>{n.onSSRHydrated.forEach(o=>{o()}),n.$q.onSSRHydrated=()=>{}})}var Yf=function(e,t={}){const n={version:"2.10.1"};ua===!1?(t.config!==void 0&&Object.assign(qo,t.config),n.config={...qo},Wf()):n.config=t.config||{},Qf(e,t,{parentApp:e,$q:n,lang:t.lang,iconSet:t.iconSet,onSSRHydrated:[]})},Zf={version:"2.10.1",install:Yf,lang:kt,iconSet:Po},Jf=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};const Xf=No({name:"App"});function Gf(e,t,n,o,r,i){const s=lc("router-view");return qc(),Mc(s)}var ed=Jf(Xf,[["render",Gf]]);/*! + * vue-router v4.1.6 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */const ln=typeof window<"u";function td(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const fe=Object.assign;function sr(e,t){const n={};for(const o in t){const r=t[o];n[o]=nt(r)?r.map(e):e(r)}return n}const Nn=()=>{},nt=Array.isArray,nd=/\/$/,od=e=>e.replace(nd,"");function lr(e,t,n="/"){let o,r={},i="",s="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(o=t.slice(0,a),i=t.slice(a+1,l>-1?l:t.length),r=e(i)),l>-1&&(o=o||t.slice(0,l),s=t.slice(l,t.length)),o=ld(o??t,n),{fullPath:o+(i&&"?")+i+s,path:o,query:r,hash:s}}function rd(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function cs(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function id(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&pn(t.matched[o],n.matched[r])&&fa(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function pn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function fa(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!sd(e[n],t[n]))return!1;return!0}function sd(e,t){return nt(e)?fs(e,t):nt(t)?fs(t,e):e===t}function fs(e,t){return nt(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function ld(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/");let r=n.length-1,i,s;for(i=0;i1&&r--;else break;return n.slice(0,r).join("/")+"/"+o.slice(i-(i===o.length?1:0)).join("/")}var Jn;(function(e){e.pop="pop",e.push="push"})(Jn||(Jn={}));var Vn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Vn||(Vn={}));function ad(e){if(!e)if(ln){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),od(e)}const ud=/^[^#]+#/;function cd(e,t){return e.replace(ud,"#")+t}function fd(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Wo=()=>({left:window.pageXOffset,top:window.pageYOffset});function dd(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=fd(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function ds(e,t){return(history.state?history.state.position-t:-1)+e}const $r=new Map;function hd(e,t){$r.set(e,t)}function gd(e){const t=$r.get(e);return $r.delete(e),t}let md=()=>location.protocol+"//"+location.host;function da(e,t){const{pathname:n,search:o,hash:r}=t,i=e.indexOf("#");if(i>-1){let l=r.includes(e.slice(i))?e.slice(i).length:1,a=r.slice(l);return a[0]!=="/"&&(a="/"+a),cs(a,"")}return cs(n,e)+o+r}function pd(e,t,n,o){let r=[],i=[],s=null;const l=({state:f})=>{const m=da(e,location),b=n.value,P=t.value;let R=0;if(f){if(n.value=m,t.value=f,s&&s===b){s=null;return}R=P?f.position-P.position:0}else o(m);r.forEach(A=>{A(n.value,b,{delta:R,type:Jn.pop,direction:R?R>0?Vn.forward:Vn.back:Vn.unknown})})};function a(){s=n.value}function c(f){r.push(f);const m=()=>{const b=r.indexOf(f);b>-1&&r.splice(b,1)};return i.push(m),m}function u(){const{history:f}=window;!f.state||f.replaceState(fe({},f.state,{scroll:Wo()}),"")}function d(){for(const f of i)f();i=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",u),{pauseListeners:a,listen:c,destroy:d}}function hs(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?Wo():null}}function vd(e){const{history:t,location:n}=window,o={value:da(e,n)},r={value:t.state};r.value||i(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,c,u){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+a:md()+e+a;try{t[u?"replaceState":"pushState"](c,"",f),r.value=c}catch(m){console.error(m),n[u?"replace":"assign"](f)}}function s(a,c){const u=fe({},t.state,hs(r.value.back,a,r.value.forward,!0),c,{position:r.value.position});i(a,u,!0),o.value=a}function l(a,c){const u=fe({},r.value,t.state,{forward:a,scroll:Wo()});i(u.current,u,!0);const d=fe({},hs(o.value,a,null),{position:u.position+1},c);i(a,d,!1),o.value=a}return{location:o,state:r,push:l,replace:s}}function bd(e){e=ad(e);const t=vd(e),n=pd(e,t.state,t.location,t.replace);function o(i,s=!0){s||n.pauseListeners(),history.go(i)}const r=fe({location:"",base:e,go:o,createHref:cd.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function yd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),bd(e)}function _d(e){return typeof e=="string"||e&&typeof e=="object"}function ha(e){return typeof e=="string"||typeof e=="symbol"}const wt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},ga=Symbol("");var gs;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(gs||(gs={}));function vn(e,t){return fe(new Error,{type:e,[ga]:!0},t)}function ct(e,t){return e instanceof Error&&ga in e&&(t==null||!!(e.type&t))}const ms="[^/]+?",wd={sensitive:!1,strict:!1,start:!0,end:!0},xd=/[.+*?^${}()[\]/\\]/g;function Cd(e,t){const n=fe({},wd,t),o=[];let r=n.start?"^":"";const i=[];for(const c of e){const u=c.length?[]:[90];n.strict&&!c.length&&(r+="/");for(let d=0;dt.length?t.length===1&&t[0]===40+40?1:-1:0}function Ed(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const Sd={type:0,value:""},Rd=/[a-zA-Z0-9_]/;function Td(e){if(!e)return[[]];if(e==="/")return[[Sd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,o=n;const r=[];let i;function s(){i&&r.push(i),i=[]}let l=0,a,c="",u="";function d(){!c||(n===0?i.push({type:0,value:c}):n===1||n===2||n===3?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function f(){c+=a}for(;l{s(p)}:Nn}function s(u){if(ha(u)){const d=o.get(u);d&&(o.delete(u),n.splice(n.indexOf(d),1),d.children.forEach(s),d.alias.forEach(s))}else{const d=n.indexOf(u);d>-1&&(n.splice(d,1),u.record.name&&o.delete(u.record.name),u.children.forEach(s),u.alias.forEach(s))}}function l(){return n}function a(u){let d=0;for(;d=0&&(u.record.path!==n[d].record.path||!ma(u,n[d]));)d++;n.splice(d,0,u),u.record.name&&!bs(u)&&o.set(u.record.name,u)}function c(u,d){let f,m={},b,P;if("name"in u&&u.name){if(f=o.get(u.name),!f)throw vn(1,{location:u});P=f.record.name,m=fe(vs(d.params,f.keys.filter(p=>!p.optional).map(p=>p.name)),u.params&&vs(u.params,f.keys.map(p=>p.name))),b=f.stringify(m)}else if("path"in u)b=u.path,f=n.find(p=>p.re.test(b)),f&&(m=f.parse(b),P=f.record.name);else{if(f=d.name?o.get(d.name):n.find(p=>p.re.test(d.path)),!f)throw vn(1,{location:u,currentLocation:d});P=f.record.name,m=fe({},d.params,u.params),b=f.stringify(m)}const R=[];let A=f;for(;A;)R.unshift(A.record),A=A.parent;return{name:P,path:b,params:m,matched:R,meta:Od(R)}}return e.forEach(u=>i(u)),{addRoute:i,resolve:c,removeRoute:s,getRoutes:l,getRecordMatcher:r}}function vs(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function Ad(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Md(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Md(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="boolean"?n:n[o];return t}function bs(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Od(e){return e.reduce((t,n)=>fe(t,n.meta),{})}function ys(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function ma(e,t){return t.children.some(n=>n===e||ma(e,n))}const pa=/#/g,$d=/&/g,Ld=/\//g,Bd=/=/g,Fd=/\?/g,va=/\+/g,Id=/%5B/g,jd=/%5D/g,ba=/%5E/g,Nd=/%60/g,ya=/%7B/g,Vd=/%7C/g,_a=/%7D/g,Dd=/%20/g;function mi(e){return encodeURI(""+e).replace(Vd,"|").replace(Id,"[").replace(jd,"]")}function zd(e){return mi(e).replace(ya,"{").replace(_a,"}").replace(ba,"^")}function Lr(e){return mi(e).replace(va,"%2B").replace(Dd,"+").replace(pa,"%23").replace($d,"%26").replace(Nd,"`").replace(ya,"{").replace(_a,"}").replace(ba,"^")}function Hd(e){return Lr(e).replace(Bd,"%3D")}function Kd(e){return mi(e).replace(pa,"%23").replace(Fd,"%3F")}function Ud(e){return e==null?"":Kd(e).replace(Ld,"%2F")}function Ao(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function Wd(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ri&&Lr(i)):[o&&Lr(o)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Qd(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=nt(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const Yd=Symbol(""),ws=Symbol(""),pi=Symbol(""),wa=Symbol(""),Br=Symbol("");function Tn(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Et(e,t,n,o,r){const i=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((s,l)=>{const a=d=>{d===!1?l(vn(4,{from:n,to:t})):d instanceof Error?l(d):_d(d)?l(vn(2,{from:t,to:d})):(i&&o.enterCallbacks[r]===i&&typeof d=="function"&&i.push(d),s())},c=e.call(o&&o.instances[r],t,n,a);let u=Promise.resolve(c);e.length<3&&(u=u.then(a)),u.catch(d=>l(d))})}function ar(e,t,n,o){const r=[];for(const i of e)for(const s in i.components){let l=i.components[s];if(!(t!=="beforeRouteEnter"&&!i.instances[s]))if(Zd(l)){const c=(l.__vccOpts||l)[t];c&&r.push(Et(c,n,o,i,s))}else{let a=l();r.push(()=>a.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${s}" at "${i.path}"`));const u=td(c)?c.default:c;i.components[s]=u;const f=(u.__vccOpts||u)[t];return f&&Et(f,n,o,i,s)()}))}}return r}function Zd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function xs(e){const t=at(pi),n=at(wa),o=S(()=>t.resolve(Ht(e.to))),r=S(()=>{const{matched:a}=o.value,{length:c}=a,u=a[c-1],d=n.matched;if(!u||!d.length)return-1;const f=d.findIndex(pn.bind(null,u));if(f>-1)return f;const m=Cs(a[c-2]);return c>1&&Cs(u)===m&&d[d.length-1].path!==m?d.findIndex(pn.bind(null,a[c-2])):f}),i=S(()=>r.value>-1&&eh(n.params,o.value.params)),s=S(()=>r.value>-1&&r.value===n.matched.length-1&&fa(n.params,o.value.params));function l(a={}){return Gd(a)?t[Ht(e.replace)?"replace":"push"](Ht(e.to)).catch(Nn):Promise.resolve()}return{route:o,href:S(()=>o.value.href),isActive:i,isExactActive:s,navigate:l}}const Jd=No({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:xs,setup(e,{slots:t}){const n=Yt(xs(e)),{options:o}=at(pi),r=S(()=>({[ks(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[ks(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&t.default(n);return e.custom?i:x("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),Xd=Jd;function Gd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function eh(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!nt(r)||r.length!==o.length||o.some((i,s)=>i!==r[s]))return!1}return!0}function Cs(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ks=(e,t,n)=>e??t??n,th=No({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=at(Br),r=S(()=>e.route||o.value),i=at(ws,0),s=S(()=>{let c=Ht(i);const{matched:u}=r.value;let d;for(;(d=u[c])&&!d.components;)c++;return c}),l=S(()=>r.value.matched[s.value]);vo(ws,S(()=>s.value+1)),vo(Yd,l),vo(Br,r);const a=ce();return be(()=>[a.value,l.value,e.name],([c,u,d],[f,m,b])=>{u&&(u.instances[d]=c,m&&m!==u&&c&&c===f&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!pn(u,m)||!f)&&(u.enterCallbacks[d]||[]).forEach(P=>P(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,d=l.value,f=d&&d.components[u];if(!f)return Es(n.default,{Component:f,route:c});const m=d.props[u],b=m?m===!0?c.params:typeof m=="function"?m(c):m:null,R=x(f,fe({},b,t,{onVnodeUnmounted:A=>{A.component.isUnmounted&&(d.instances[u]=null)},ref:a}));return Es(n.default,{Component:R,route:c})||R}}});function Es(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const nh=th;function oh(e){const t=qd(e.routes,e),n=e.parseQuery||Wd,o=e.stringifyQuery||_s,r=e.history,i=Tn(),s=Tn(),l=Tn(),a=Lu(wt);let c=wt;ln&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=sr.bind(null,w=>""+w),d=sr.bind(null,Ud),f=sr.bind(null,Ao);function m(w,V){let U,Z;return ha(w)?(U=t.getRecordMatcher(w),Z=V):Z=w,t.addRoute(Z,U)}function b(w){const V=t.getRecordMatcher(w);V&&t.removeRoute(V)}function P(){return t.getRoutes().map(w=>w.record)}function R(w){return!!t.getRecordMatcher(w)}function A(w,V){if(V=fe({},V||a.value),typeof w=="string"){const h=lr(n,w,V.path),g=t.resolve({path:h.path},V),C=r.createHref(h.fullPath);return fe(h,g,{params:f(g.params),hash:Ao(h.hash),redirectedFrom:void 0,href:C})}let U;if("path"in w)U=fe({},w,{path:lr(n,w.path,V.path).path});else{const h=fe({},w.params);for(const g in h)h[g]==null&&delete h[g];U=fe({},w,{params:d(w.params)}),V.params=d(V.params)}const Z=t.resolve(U,V),se=w.hash||"";Z.params=u(f(Z.params));const _e=rd(o,fe({},w,{hash:zd(se),path:Z.path})),ie=r.createHref(_e);return fe({fullPath:_e,hash:se,query:o===_s?Qd(w.query):w.query||{}},Z,{redirectedFrom:void 0,href:ie})}function p(w){return typeof w=="string"?lr(n,w,a.value.path):fe({},w)}function v(w,V){if(c!==w)return vn(8,{from:V,to:w})}function T(w){return E(w)}function I(w){return T(fe(p(w),{replace:!0}))}function y(w){const V=w.matched[w.matched.length-1];if(V&&V.redirect){const{redirect:U}=V;let Z=typeof U=="function"?U(w):U;return typeof Z=="string"&&(Z=Z.includes("?")||Z.includes("#")?Z=p(Z):{path:Z},Z.params={}),fe({query:w.query,hash:w.hash,params:"path"in Z?{}:w.params},Z)}}function E(w,V){const U=c=A(w),Z=a.value,se=w.state,_e=w.force,ie=w.replace===!0,h=y(U);if(h)return E(fe(p(h),{state:typeof h=="object"?fe({},se,h.state):se,force:_e,replace:ie}),V||U);const g=U;g.redirectedFrom=V;let C;return!_e&&id(o,Z,U)&&(C=vn(16,{to:g,from:Z}),N(Z,Z,!0,!1)),(C?Promise.resolve(C):$(g,Z)).catch(O=>ct(O)?ct(O,2)?O:de(O):M(O,g,Z)).then(O=>{if(O){if(ct(O,2))return E(fe({replace:ie},p(O.to),{state:typeof O.to=="object"?fe({},se,O.to.state):se,force:_e}),V||g)}else O=B(g,Z,!0,ie,se);return L(g,Z,O),O})}function _(w,V){const U=v(w,V);return U?Promise.reject(U):Promise.resolve()}function $(w,V){let U;const[Z,se,_e]=rh(w,V);U=ar(Z.reverse(),"beforeRouteLeave",w,V);for(const h of Z)h.leaveGuards.forEach(g=>{U.push(Et(g,w,V))});const ie=_.bind(null,w,V);return U.push(ie),Gt(U).then(()=>{U=[];for(const h of i.list())U.push(Et(h,w,V));return U.push(ie),Gt(U)}).then(()=>{U=ar(se,"beforeRouteUpdate",w,V);for(const h of se)h.updateGuards.forEach(g=>{U.push(Et(g,w,V))});return U.push(ie),Gt(U)}).then(()=>{U=[];for(const h of w.matched)if(h.beforeEnter&&!V.matched.includes(h))if(nt(h.beforeEnter))for(const g of h.beforeEnter)U.push(Et(g,w,V));else U.push(Et(h.beforeEnter,w,V));return U.push(ie),Gt(U)}).then(()=>(w.matched.forEach(h=>h.enterCallbacks={}),U=ar(_e,"beforeRouteEnter",w,V),U.push(ie),Gt(U))).then(()=>{U=[];for(const h of s.list())U.push(Et(h,w,V));return U.push(ie),Gt(U)}).catch(h=>ct(h,8)?h:Promise.reject(h))}function L(w,V,U){for(const Z of l.list())Z(w,V,U)}function B(w,V,U,Z,se){const _e=v(w,V);if(_e)return _e;const ie=V===wt,h=ln?history.state:{};U&&(Z||ie?r.replace(w.fullPath,fe({scroll:ie&&h&&h.scroll},se)):r.push(w.fullPath,se)),a.value=w,N(w,V,U,ie),de()}let k;function H(){k||(k=r.listen((w,V,U)=>{if(!ot.listening)return;const Z=A(w),se=y(Z);if(se){E(fe(se,{replace:!0}),Z).catch(Nn);return}c=Z;const _e=a.value;ln&&hd(ds(_e.fullPath,U.delta),Wo()),$(Z,_e).catch(ie=>ct(ie,12)?ie:ct(ie,2)?(E(ie.to,Z).then(h=>{ct(h,20)&&!U.delta&&U.type===Jn.pop&&r.go(-1,!1)}).catch(Nn),Promise.reject()):(U.delta&&r.go(-U.delta,!1),M(ie,Z,_e))).then(ie=>{ie=ie||B(Z,_e,!1),ie&&(U.delta&&!ct(ie,8)?r.go(-U.delta,!1):U.type===Jn.pop&&ct(ie,20)&&r.go(-1,!1)),L(Z,_e,ie)}).catch(Nn)}))}let q=Tn(),J=Tn(),ee;function M(w,V,U){de(w);const Z=J.list();return Z.length?Z.forEach(se=>se(w,V,U)):console.error(w),Promise.reject(w)}function W(){return ee&&a.value!==wt?Promise.resolve():new Promise((w,V)=>{q.add([w,V])})}function de(w){return ee||(ee=!w,H(),q.list().forEach(([V,U])=>w?U(w):V()),q.reset()),w}function N(w,V,U,Z){const{scrollBehavior:se}=e;if(!ln||!se)return Promise.resolve();const _e=!U&&gd(ds(w.fullPath,0))||(Z||!U)&&history.state&&history.state.scroll||null;return Ie().then(()=>se(w,V,_e)).then(ie=>ie&&dd(ie)).catch(ie=>M(ie,w,V))}const ue=w=>r.go(w);let ge;const me=new Set,ot={currentRoute:a,listening:!0,addRoute:m,removeRoute:b,hasRoute:R,getRoutes:P,resolve:A,options:e,push:T,replace:I,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:i.add,beforeResolve:s.add,afterEach:l.add,onError:J.add,isReady:W,install(w){const V=this;w.component("RouterLink",Xd),w.component("RouterView",nh),w.config.globalProperties.$router=V,Object.defineProperty(w.config.globalProperties,"$route",{enumerable:!0,get:()=>Ht(a)}),ln&&!ge&&a.value===wt&&(ge=!0,T(r.location).catch(se=>{}));const U={};for(const se in wt)U[se]=S(()=>a.value[se]);w.provide(pi,V),w.provide(wa,Yt(U)),w.provide(Br,a);const Z=w.unmount;me.add(w),w.unmount=function(){me.delete(w),me.size<1&&(c=wt,k&&k(),k=null,a.value=wt,ge=!1,ee=!1),Z()}}};return ot}function Gt(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function rh(e,t){const n=[],o=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let s=0;spn(c,l))?o.push(l):n.push(l));const a=e.matched[s];a&&(t.matched.find(c=>pn(c,a))||r.push(a))}return[n,o,r]}const ih=function(){const t=document.createElement("link").relList;return t&&t.supports&&t.supports("modulepreload")?"modulepreload":"preload"}(),Ss={},sh="/",ur=function(t,n){return!n||n.length===0?t():Promise.all(n.map(o=>{if(o=`${sh}${o}`,o in Ss)return;Ss[o]=!0;const r=o.endsWith(".css"),i=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${o}"]${i}`))return;const s=document.createElement("link");if(s.rel=r?"stylesheet":ih,r||(s.as="script",s.crossOrigin=""),s.href=o,document.head.appendChild(s),r)return new Promise((l,a)=>{s.addEventListener("load",l),s.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>t())},lh=[{path:"/",component:()=>ur(()=>import("./MainLayout.9c08e3a6.js"),["assets/MainLayout.9c08e3a6.js","assets/MainLayout.78f1fccc.css","assets/QPage.fbcc8738.js"]),children:[{path:"",component:()=>ur(()=>import("./IndexPage.4fe7212a.js"),["assets/IndexPage.4fe7212a.js","assets/QPage.fbcc8738.js"])}]},{path:"/:catchAll(.*)*",component:()=>ur(()=>import("./ErrorNotFound.c4812c2a.js"),[])}];var cr=function(){return oh({scrollBehavior:()=>({left:0,top:0}),routes:lh,history:yd("/")})};async function ah(e,t){const n=e(ed);n.use(Zf,t);const o=Cn(typeof cr=="function"?await cr({}):cr);return{app:n,router:o}}const Fr={xs:18,sm:24,md:32,lg:38,xl:46},eo={size:String};function to(e,t=Fr){return S(()=>e.size!==void 0?{fontSize:e.size in t?`${t[e.size]}px`:e.size}:null)}const $e=e=>Cn(No(e)),uh=e=>Cn(e);function et(e,t){return e!==void 0&&e()||t}function dm(e,t){if(e!==void 0){const n=e();if(n!=null)return n.slice()}return t}function Nt(e,t){return e!==void 0?t.concat(e()):t}function ch(e,t){return e===void 0?t:t!==void 0?t.concat(e()):e()}function hm(e,t,n,o,r,i){t.key=o+r;const s=x(e,t,n);return r===!0?Il(s,i()):s}const Rs="0 0 24 24",Ts=e=>e,fr=e=>`ionicons ${e}`,xa={"mdi-":e=>`mdi ${e}`,"icon-":Ts,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":fr,"ion-ios":fr,"ion-logo":fr,"iconfont ":Ts,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`},Ca={o_:"-outlined",r_:"-round",s_:"-sharp"},ka={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},fh=new RegExp("^("+Object.keys(xa).join("|")+")"),dh=new RegExp("^("+Object.keys(Ca).join("|")+")"),Ps=new RegExp("^("+Object.keys(ka).join("|")+")"),hh=/^[Mm]\s?[-+]?\.?\d/,gh=/^img:/,mh=/^svguse:/,ph=/^ion-/,vh=/^(fa-(solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /;var vt=$e({name:"QIcon",props:{...eo,tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=we(),o=to(e),r=S(()=>"q-icon"+(e.left===!0?" on-left":"")+(e.right===!0?" on-right":"")+(e.color!==void 0?` text-${e.color}`:"")),i=S(()=>{let s,l=e.name;if(l==="none"||!l)return{none:!0};if(n.iconMapFn!==null){const u=n.iconMapFn(l);if(u!==void 0)if(u.icon!==void 0){if(l=u.icon,l==="none"||!l)return{none:!0}}else return{cls:u.cls,content:u.content!==void 0?u.content:" "}}if(hh.test(l)===!0){const[u,d=Rs]=l.split("|");return{svg:!0,viewBox:d,nodes:u.split("&&").map(f=>{const[m,b,P]=f.split("@@");return x("path",{style:b,d:m,transform:P})})}}if(gh.test(l)===!0)return{img:!0,src:l.substring(4)};if(mh.test(l)===!0){const[u,d=Rs]=l.split("|");return{svguse:!0,src:u.substring(7),viewBox:d}}let a=" ";const c=l.match(fh);if(c!==null)s=xa[c[1]](l);else if(vh.test(l)===!0)s=l;else if(ph.test(l)===!0)s=`ionicons ion-${n.platform.is.ios===!0?"ios":"md"}${l.substring(3)}`;else if(Ps.test(l)===!0){s="notranslate material-symbols";const u=l.match(Ps);u!==null&&(l=l.substring(6),s+=ka[u[1]]),a=l}else{s="notranslate material-icons";const u=l.match(dh);u!==null&&(l=l.substring(2),s+=Ca[u[1]]),a=l}return{cls:s,content:a}});return()=>{const s={class:r.value,style:o.value,"aria-hidden":"true",role:"presentation"};return i.value.none===!0?x(e.tag,s,et(t.default)):i.value.img===!0?x("span",s,Nt(t.default,[x("img",{src:i.value.src})])):i.value.svg===!0?x("span",s,Nt(t.default,[x("svg",{viewBox:i.value.viewBox||"0 0 24 24"},i.value.nodes)])):i.value.svguse===!0?x("span",s,Nt(t.default,[x("svg",{viewBox:i.value.viewBox},[x("use",{"xlink:href":i.value.src})])])):(i.value.cls!==void 0&&(s.class+=" "+i.value.cls),x(e.tag,s,Nt(t.default,[i.value.content])))}}}),bh=$e({name:"QAvatar",props:{...eo,fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},setup(e,{slots:t}){const n=to(e),o=S(()=>"q-avatar"+(e.color?` bg-${e.color}`:"")+(e.textColor?` text-${e.textColor} q-chip--colored`:"")+(e.square===!0?" q-avatar--square":e.rounded===!0?" rounded-borders":"")),r=S(()=>e.fontSize?{fontSize:e.fontSize}:null);return()=>{const i=e.icon!==void 0?[x(vt,{name:e.icon})]:void 0;return x("div",{class:o.value,style:n.value},[x("div",{class:"q-avatar__content row flex-center overflow-hidden",style:r.value},ch(t.default,i))])}}});const yh={size:{type:[Number,String],default:"1em"},color:String};function _h(e){return{cSize:S(()=>e.size in Fr?`${Fr[e.size]}px`:e.size),classes:S(()=>"q-spinner"+(e.color?` text-${e.color}`:""))}}var bn=$e({name:"QSpinner",props:{...yh,thickness:{type:Number,default:5}},setup(e){const{cSize:t,classes:n}=_h(e);return()=>x("svg",{class:n.value+" q-spinner-mat",width:t.value,height:t.value,viewBox:"25 25 50 50"},[x("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":e.thickness,"stroke-miterlimit":"10"})])}});function Ir(e,t){const n=e.style;for(const o in t)n[o]=t[o]}function wh(e){if(e==null)return;if(typeof e=="string")try{return document.querySelector(e)||void 0}catch{return}const t=Ht(e);if(t)return t.$el||t}function xh(e,t){if(e==null||e.contains(t)===!0)return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}function Ch(e,t=250){let n=!1,o;return function(){return n===!1&&(n=!0,setTimeout(()=>{n=!1},t),o=e.apply(this,arguments)),o}}function qs(e,t,n,o){n.modifiers.stop===!0&&To(e);const r=n.modifiers.color;let i=n.modifiers.center;i=i===!0||o===!0;const s=document.createElement("span"),l=document.createElement("span"),a=Pf(e),{left:c,top:u,width:d,height:f}=t.getBoundingClientRect(),m=Math.sqrt(d*d+f*f),b=m/2,P=`${(d-m)/2}px`,R=i?P:`${a.left-c-b}px`,A=`${(f-m)/2}px`,p=i?A:`${a.top-u-b}px`;l.className="q-ripple__inner",Ir(l,{height:`${m}px`,width:`${m}px`,transform:`translate3d(${R},${p},0) scale3d(.2,.2,1)`,opacity:0}),s.className=`q-ripple${r?" text-"+r:""}`,s.setAttribute("dir","ltr"),s.appendChild(l),t.appendChild(s);const v=()=>{s.remove(),clearTimeout(T)};n.abort.push(v);let T=setTimeout(()=>{l.classList.add("q-ripple__inner--enter"),l.style.transform=`translate3d(${P},${A},0) scale3d(1,1,1)`,l.style.opacity=.2,T=setTimeout(()=>{l.classList.remove("q-ripple__inner--enter"),l.classList.add("q-ripple__inner--leave"),l.style.opacity=0,T=setTimeout(()=>{s.remove(),n.abort.splice(n.abort.indexOf(v),1)},275)},250)},50)}function As(e,{modifiers:t,value:n,arg:o}){const r=Object.assign({},e.cfg.ripple,t,n);e.modifiers={early:r.early===!0,stop:r.stop===!0,center:r.center===!0,color:r.color||o,keyCodes:[].concat(r.keyCodes||13)}}var kh=uh({name:"ripple",beforeMount(e,t){const n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;const o={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(r){o.enabled===!0&&r.qSkipRipple!==!0&&r.type===(o.modifiers.early===!0?"pointerdown":"click")&&qs(r,e,o,r.qKeyEvent===!0)},keystart:Ch(r=>{o.enabled===!0&&r.qSkipRipple!==!0&&Zn(r,o.modifiers.keyCodes)===!0&&r.type===`key${o.modifiers.early===!0?"down":"up"}`&&qs(r,e,o,!0)},300)};As(o,t),e.__qripple=o,Af(o,"main",[[e,"pointerdown","start","passive"],[e,"click","start","passive"],[e,"keydown","keystart","passive"],[e,"keyup","keystart","passive"]])},updated(e,t){if(t.oldValue!==t.value){const n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled===!0&&Object(t.value)===t.value&&As(n,t))}},beforeUnmount(e){const t=e.__qripple;t!==void 0&&(t.abort.forEach(n=>{n()}),Mf(t,"main"),delete e._qripple)}});const Ea={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},Eh=Object.keys(Ea),Sa={align:{type:String,validator:e=>Eh.includes(e)}};function Ra(e){return S(()=>{const t=e.align===void 0?e.vertical===!0?"stretch":"left":e.align;return`${e.vertical===!0?"items":"justify"}-${Ea[t]}`})}function yo(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Ta(e,t){typeof t.type=="symbol"?Array.isArray(t.children)===!0&&t.children.forEach(n=>{Ta(e,n)}):e.add(t)}function gm(e){const t=new Set;return e.forEach(n=>{Ta(t,n)}),Array.from(t)}function Pa(e){return e.appContext.config.globalProperties.$router!==void 0}function qa(e){return e.isUnmounted===!0||e.isDeactivated===!0}function Ms(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}function Os(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Sh(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(Array.isArray(r)===!1||r.length!==o.length||o.some((i,s)=>i!==r[s]))return!1}return!0}function $s(e,t){return Array.isArray(t)===!0?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function Rh(e,t){return Array.isArray(e)===!0?$s(e,t):Array.isArray(t)===!0?$s(t,e):e===t}function Th(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(Rh(e[n],t[n])===!1)return!1;return!0}const Ph={to:[String,Object],replace:Boolean,exact:Boolean,activeClass:{type:String,default:"q-router-link--active"},exactActiveClass:{type:String,default:"q-router-link--exact-active"},href:String,target:String,disable:Boolean};function qh({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){const n=we(),{props:o,proxy:r,emit:i}=n,s=Pa(n),l=S(()=>o.disable!==!0&&o.href!==void 0),a=S(t===!0?()=>s===!0&&o.disable!==!0&&l.value!==!0&&o.to!==void 0&&o.to!==null&&o.to!=="":()=>s===!0&&l.value!==!0&&o.to!==void 0&&o.to!==null&&o.to!==""),c=S(()=>a.value===!0?p(o.to):null),u=S(()=>c.value!==null),d=S(()=>l.value===!0||u.value===!0),f=S(()=>o.type==="a"||d.value===!0?"a":o.tag||e||"div"),m=S(()=>l.value===!0?{href:o.href,target:o.target}:u.value===!0?{href:c.value.href,target:o.target}:{}),b=S(()=>{if(u.value===!1)return-1;const{matched:I}=c.value,{length:y}=I,E=I[y-1];if(E===void 0)return-1;const _=r.$route.matched;if(_.length===0)return-1;const $=_.findIndex(Os.bind(null,E));if($>-1)return $;const L=Ms(I[y-2]);return y>1&&Ms(E)===L&&_[_.length-1].path!==L?_.findIndex(Os.bind(null,I[y-2])):$}),P=S(()=>u.value===!0&&b.value!==-1&&Sh(r.$route.params,c.value.params)),R=S(()=>P.value===!0&&b.value===r.$route.matched.length-1&&Th(r.$route.params,c.value.params)),A=S(()=>u.value===!0?R.value===!0?` ${o.exactActiveClass} ${o.activeClass}`:o.exact===!0?"":P.value===!0?` ${o.activeClass}`:"":"");function p(I){try{return r.$router.resolve(I)}catch{}return null}function v(I,{returnRouterError:y,to:E=o.to,replace:_=o.replace}={}){if(o.disable===!0)return I.preventDefault(),Promise.resolve(!1);if(I.metaKey||I.altKey||I.ctrlKey||I.shiftKey||I.button!==void 0&&I.button!==0||o.target==="_blank")return Promise.resolve(!1);I.preventDefault();const $=r.$router[_===!0?"replace":"push"](E);return y===!0?$:$.then(()=>{}).catch(()=>{})}function T(I){if(u.value===!0){const y=E=>v(I,E);i("click",I,y),I.defaultPrevented!==!0&&y()}else i("click",I)}return{hasRouterLink:u,hasHrefLink:l,hasLink:d,linkTag:f,resolvedLink:c,linkIsActive:P,linkIsExactActive:R,linkClass:A,linkAttrs:m,getLink:p,navigateToRouterLink:v,navigateOnClick:T}}const Ls={none:0,xs:4,sm:8,md:16,lg:24,xl:32},Ah={xs:8,sm:10,md:14,lg:20,xl:24},Mh=["button","submit","reset"],Oh=/[^\s]\/[^\s]/,$h=["flat","outline","push","unelevated"],Lh=(e,t)=>e.flat===!0?"flat":e.outline===!0?"outline":e.push===!0?"push":e.unelevated===!0?"unelevated":t,Bh={...eo,...Ph,type:{type:String,default:"button"},label:[Number,String],icon:String,iconRight:String,...$h.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,round:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{...Sa.align,default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean};function Fh(e){const t=to(e,Ah),n=Ra(e),{hasRouterLink:o,hasLink:r,linkTag:i,linkAttrs:s,navigateOnClick:l}=qh({fallbackTag:"button"}),a=S(()=>{const R=e.fab===!1&&e.fabMini===!1?t.value:{};return e.padding!==void 0?Object.assign({},R,{padding:e.padding.split(/\s+/).map(A=>A in Ls?Ls[A]+"px":A).join(" "),minWidth:"0",minHeight:"0"}):R}),c=S(()=>e.rounded===!0||e.fab===!0||e.fabMini===!0),u=S(()=>e.disable!==!0&&e.loading!==!0),d=S(()=>u.value===!0?e.tabindex||0:-1),f=S(()=>Lh(e,"standard")),m=S(()=>{const R={tabindex:d.value};return r.value===!0?Object.assign(R,s.value):Mh.includes(e.type)===!0&&(R.type=e.type),i.value==="a"?(e.disable===!0?R["aria-disabled"]="true":R.href===void 0&&(R.role="button"),o.value!==!0&&Oh.test(e.type)===!0&&(R.type=e.type)):e.disable===!0&&(R.disabled="",R["aria-disabled"]="true"),e.loading===!0&&e.percentage!==void 0&&Object.assign(R,{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),R}),b=S(()=>{let R;e.color!==void 0?e.flat===!0||e.outline===!0?R=`text-${e.textColor||e.color}`:R=`bg-${e.color} text-${e.textColor||"white"}`:e.textColor&&(R=`text-${e.textColor}`);const A=e.round===!0?"round":`rectangle${c.value===!0?" q-btn--rounded":e.square===!0?" q-btn--square":""}`;return`q-btn--${f.value} q-btn--${A}`+(R!==void 0?" "+R:"")+(u.value===!0?" q-btn--actionable q-focusable q-hoverable":e.disable===!0?" disabled":"")+(e.fab===!0?" q-btn--fab":e.fabMini===!0?" q-btn--fab-mini":"")+(e.noCaps===!0?" q-btn--no-uppercase":"")+(e.dense===!0?" q-btn--dense":"")+(e.stretch===!0?" no-border-radius self-stretch":"")+(e.glossy===!0?" glossy":"")+(e.square?" q-btn--square":"")}),P=S(()=>n.value+(e.stack===!0?" column":" row")+(e.noWrap===!0?" no-wrap text-no-wrap":"")+(e.loading===!0?" q-btn__content--hidden":""));return{classes:b,style:a,innerClasses:P,attributes:m,hasLink:r,linkTag:i,navigateOnClick:l,isActionable:u}}const{passiveCapture:De}=Be;let en=null,tn=null,nn=null;var jr=$e({name:"QBtn",props:{...Bh,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:["click","keydown","mousedown","keyup"],setup(e,{slots:t,emit:n}){const{proxy:o}=we(),{classes:r,style:i,innerClasses:s,attributes:l,hasLink:a,linkTag:c,navigateOnClick:u,isActionable:d}=Fh(e),f=ce(null),m=ce(null);let b=null,P,R;const A=S(()=>e.label!==void 0&&e.label!==null&&e.label!==""),p=S(()=>e.disable===!0||e.ripple===!1?!1:{keyCodes:a.value===!0?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),v=S(()=>({center:e.round})),T=S(()=>{const q=Math.max(0,Math.min(100,e.percentage));return q>0?{transition:"transform 0.6s",transform:`translateX(${q-100}%)`}:{}}),I=S(()=>{if(e.loading===!0)return{onMousedown:H,onTouchstart:H,onClick:H,onKeydown:H,onKeyup:H};if(d.value===!0){const q={onClick:E,onKeydown:_,onMousedown:L};if(o.$q.platform.has.touch===!0){const J=e.onTouchstart!==void 0?"":"Passive";q[`onTouchstart${J}`]=$}return q}return{onClick:He}}),y=S(()=>({ref:f,class:"q-btn q-btn-item non-selectable no-outline "+r.value,style:i.value,...l.value,...I.value}));function E(q){if(f.value!==null){if(q!==void 0){if(q.defaultPrevented===!0)return;const J=document.activeElement;if(e.type==="submit"&&J!==document.body&&f.value.contains(J)===!1&&J.contains(f.value)===!1){f.value.focus();const ee=()=>{document.removeEventListener("keydown",He,!0),document.removeEventListener("keyup",ee,De),f.value!==null&&f.value.removeEventListener("blur",ee,De)};document.addEventListener("keydown",He,!0),document.addEventListener("keyup",ee,De),f.value.addEventListener("blur",ee,De)}}u(q)}}function _(q){f.value!==null&&(n("keydown",q),Zn(q,[13,32])===!0&&tn!==f.value&&(tn!==null&&k(),q.defaultPrevented!==!0&&(f.value.focus(),tn=f.value,f.value.classList.add("q-btn--active"),document.addEventListener("keyup",B,!0),f.value.addEventListener("blur",B,De)),He(q)))}function $(q){f.value!==null&&(n("touchstart",q),q.defaultPrevented!==!0&&(en!==f.value&&(en!==null&&k(),en=f.value,b=q.target,b.addEventListener("touchcancel",B,De),b.addEventListener("touchend",B,De)),P=!0,clearTimeout(R),R=setTimeout(()=>{P=!1},200)))}function L(q){f.value!==null&&(q.qSkipRipple=P===!0,n("mousedown",q),q.defaultPrevented!==!0&&nn!==f.value&&(nn!==null&&k(),nn=f.value,f.value.classList.add("q-btn--active"),document.addEventListener("mouseup",B,De)))}function B(q){if(f.value!==null&&!(q!==void 0&&q.type==="blur"&&document.activeElement===f.value)){if(q!==void 0&&q.type==="keyup"){if(tn===f.value&&Zn(q,[13,32])===!0){const J=new MouseEvent("click",q);J.qKeyEvent=!0,q.defaultPrevented===!0&&St(J),q.cancelBubble===!0&&To(J),f.value.dispatchEvent(J),He(q),q.qKeyEvent=!0}n("keyup",q)}k()}}function k(q){const J=m.value;q!==!0&&(en===f.value||nn===f.value)&&J!==null&&J!==document.activeElement&&(J.setAttribute("tabindex",-1),J.focus()),en===f.value&&(b!==null&&(b.removeEventListener("touchcancel",B,De),b.removeEventListener("touchend",B,De)),en=b=null),nn===f.value&&(document.removeEventListener("mouseup",B,De),nn=null),tn===f.value&&(document.removeEventListener("keyup",B,!0),f.value!==null&&f.value.removeEventListener("blur",B,De),tn=null),f.value!==null&&f.value.classList.remove("q-btn--active")}function H(q){He(q),q.qSkipRipple=!0}return Qe(()=>{k(!0)}),Object.assign(o,{click:E}),()=>{let q=[];e.icon!==void 0&&q.push(x(vt,{name:e.icon,left:e.stack===!1&&A.value===!0,role:"img","aria-hidden":"true"})),A.value===!0&&q.push(x("span",{class:"block"},[e.label])),q=Nt(t.default,q),e.iconRight!==void 0&&e.round===!1&&q.push(x(vt,{name:e.iconRight,right:e.stack===!1&&A.value===!0,role:"img","aria-hidden":"true"}));const J=[x("span",{class:"q-focus-helper",ref:m})];return e.loading===!0&&e.percentage!==void 0&&J.push(x("span",{class:"q-btn__progress absolute-full overflow-hidden"+(e.darkPercentage===!0?" q-btn__progress--dark":"")},[x("span",{class:"q-btn__progress-indicator fit block",style:T.value})])),J.push(x("span",{class:"q-btn__content text-center col items-center q-anchor--skip "+s.value},q)),e.loading!==null&&J.push(x(Qt,{name:"q-transition--fade"},()=>e.loading===!0?[x("span",{key:"loading",class:"absolute-full flex flex-center"},t.loading!==void 0?t.loading():[x(bn)])]:null)),Il(x(c.value,y.value,J),[[kh,p.value,void 0,v.value]])}}});let Ih=document.body;function Qo(e){const t=document.createElement("div");if(e!==void 0&&(t.id=e),qo.globalNodes!==void 0){const n=qo.globalNodes.class;n!==void 0&&(t.className=n)}return Ih.appendChild(t),t}function vi(e){e.remove()}let jh=0;const _o={},wo={},Ze={},Aa={},Nh=/^\s*$/,Ma=[],bi=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],Vh=["top-left","top-right","bottom-left","bottom-right"],an={positive:{icon:e=>e.iconSet.type.positive,color:"positive"},negative:{icon:e=>e.iconSet.type.negative,color:"negative"},warning:{icon:e=>e.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:e=>e.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function Oa(e,t,n){if(!e)return Pn("parameter required");let o;const r={textColor:"white"};if(e.ignoreDefaults!==!0&&Object.assign(r,_o),Ke(e)===!1&&(r.type&&Object.assign(r,an[r.type]),e={message:e}),Object.assign(r,an[e.type||r.type],e),typeof r.icon=="function"&&(r.icon=r.icon(t)),r.spinner?(r.spinner===!0&&(r.spinner=bn),r.spinner=Cn(r.spinner)):r.spinner=!1,r.meta={hasMedia:Boolean(r.spinner!==!1||r.icon||r.avatar),hasText:Bs(r.message)||Bs(r.caption)},r.position){if(bi.includes(r.position)===!1)return Pn("wrong position",e)}else r.position="bottom";if(r.timeout===void 0)r.timeout=5e3;else{const a=parseInt(r.timeout,10);if(isNaN(a)||a<0)return Pn("wrong timeout",e);r.timeout=a}r.timeout===0?r.progress=!1:r.progress===!0&&(r.meta.progressClass="q-notification__progress"+(r.progressClass?` ${r.progressClass}`:""),r.meta.progressStyle={animationDuration:`${r.timeout+1e3}ms`});const i=(Array.isArray(e.actions)===!0?e.actions:[]).concat(e.ignoreDefaults!==!0&&Array.isArray(_o.actions)===!0?_o.actions:[]).concat(an[e.type]!==void 0&&Array.isArray(an[e.type].actions)===!0?an[e.type].actions:[]),{closeBtn:s}=r;if(s&&i.push({label:typeof s=="string"?s:t.lang.label.close}),r.actions=i.map(({handler:a,noDismiss:c,...u})=>({flat:!0,...u,onClick:typeof a=="function"?()=>{a(),c!==!0&&l()}:()=>{l()}})),r.multiLine===void 0&&(r.multiLine=r.actions.length>1),Object.assign(r.meta,{class:`q-notification row items-stretch q-notification--${r.multiLine===!0?"multi-line":"standard"}`+(r.color!==void 0?` bg-${r.color}`:"")+(r.textColor!==void 0?` text-${r.textColor}`:"")+(r.classes!==void 0?` ${r.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(r.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(r.multiLine===!0?"":" col"),leftClass:r.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...r.attrs}}),r.group===!1?(r.group=void 0,r.meta.group=void 0):((r.group===void 0||r.group===!0)&&(r.group=[r.message,r.caption,r.multiline].concat(r.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),r.meta.group=r.group+"|"+r.position),r.actions.length===0?r.actions=void 0:r.meta.actionsClass="q-notification__actions row items-center "+(r.multiLine===!0?"justify-end":"col-auto")+(r.meta.hasMedia===!0?" q-notification__actions--with-media":""),n!==void 0){clearTimeout(n.notif.meta.timer),r.meta.uid=n.notif.meta.uid;const a=Ze[r.position].value.indexOf(n.notif);Ze[r.position].value[a]=r}else{const a=wo[r.meta.group];if(a===void 0){if(r.meta.uid=jh++,r.meta.badge=1,["left","right","center"].indexOf(r.position)!==-1)Ze[r.position].value.splice(Math.floor(Ze[r.position].value.length/2),0,r);else{const c=r.position.indexOf("top")>-1?"unshift":"push";Ze[r.position].value[c](r)}r.group!==void 0&&(wo[r.meta.group]=r)}else{if(clearTimeout(a.meta.timer),r.badgePosition!==void 0){if(Vh.includes(r.badgePosition)===!1)return Pn("wrong badgePosition",e)}else r.badgePosition=`top-${r.position.indexOf("left")>-1?"right":"left"}`;r.meta.uid=a.meta.uid,r.meta.badge=a.meta.badge+1,r.meta.badgeClass=`q-notification__badge q-notification__badge--${r.badgePosition}`+(r.badgeColor!==void 0?` bg-${r.badgeColor}`:"")+(r.badgeTextColor!==void 0?` text-${r.badgeTextColor}`:"")+(r.badgeClass?` ${r.badgeClass}`:"");const c=Ze[r.position].value.indexOf(a);Ze[r.position].value[c]=wo[r.meta.group]=r}}const l=()=>{Dh(r),o=void 0};if(r.timeout>0&&(r.meta.timer=setTimeout(()=>{l()},r.timeout+1e3)),r.group!==void 0)return a=>{a!==void 0?Pn("trying to update a grouped one which is forbidden",e):l()};if(o={dismiss:l,config:e,notif:r},n!==void 0){Object.assign(n,o);return}return a=>{if(o!==void 0)if(a===void 0)o.dismiss();else{const c=Object.assign({},o.config,a,{group:!1,position:r.position});Oa(c,t,o)}}}function Dh(e){clearTimeout(e.meta.timer);const t=Ze[e.position].value.indexOf(e);if(t!==-1){e.group!==void 0&&delete wo[e.meta.group];const n=Ma[""+e.meta.uid];if(n){const{width:o,height:r}=getComputedStyle(n);n.style.left=`${n.offsetLeft}px`,n.style.width=o,n.style.height=r}Ze[e.position].value.splice(t,1),typeof e.onDismiss=="function"&&e.onDismiss()}}function Bs(e){return e!=null&&Nh.test(e)!==!0}function Pn(e,t){return console.error(`Notify: ${e}`,t),!1}function zh(){return $e({name:"QNotifications",devtools:{hide:!0},setup(){return()=>x("div",{class:"q-notifications"},bi.map(e=>x(pf,{key:e,class:Aa[e],tag:"div",name:`q-notification--${e}`},()=>Ze[e].value.map(t=>{const n=t.meta,o=[];if(n.hasMedia===!0&&(t.spinner!==!1?o.push(x(t.spinner,{class:"q-notification__spinner q-notification__spinner--"+n.leftClass,color:t.spinnerColor,size:t.spinnerSize})):t.icon?o.push(x(vt,{class:"q-notification__icon q-notification__icon--"+n.leftClass,name:t.icon,color:t.iconColor,size:t.iconSize,role:"img"})):t.avatar&&o.push(x(bh,{class:"q-notification__avatar q-notification__avatar--"+n.leftClass},()=>x("img",{src:t.avatar,"aria-hidden":"true"})))),n.hasText===!0){let i;const s={class:"q-notification__message col"};if(t.html===!0)s.innerHTML=t.caption?`
${t.message}
${t.caption}
`:t.message;else{const l=[t.message];i=t.caption?[x("div",l),x("div",{class:"q-notification__caption"},[t.caption])]:l}o.push(x("div",s,i))}const r=[x("div",{class:n.contentClass},o)];return t.progress===!0&&r.push(x("div",{key:`${n.uid}|p|${n.badge}`,class:n.progressClass,style:n.progressStyle})),t.actions!==void 0&&r.push(x("div",{class:n.actionsClass},t.actions.map(i=>x(jr,i)))),n.badge>1&&r.push(x("div",{key:`${n.uid}|${n.badge}`,class:t.meta.badgeClass,style:t.badgeStyle},[n.badge])),x("div",{ref:i=>{Ma[""+n.uid]=i},key:n.uid,class:n.class,...n.attrs},[x("div",{class:n.wrapperClass},r)])}))))}})}var Hh={setDefaults(e){Ke(e)===!0&&Object.assign(_o,e)},registerType(e,t){Ke(t)===!0&&(an[e]=t)},install({$q:e,parentApp:t}){if(e.notify=this.create=n=>Oa(n,e),e.notify.setDefaults=this.setDefaults,e.notify.registerType=this.registerType,e.config.notify!==void 0&&this.setDefaults(e.config.notify),this.__installed!==!0){bi.forEach(o=>{Ze[o]=ce([]);const r=["left","center","right"].includes(o)===!0?"center":o.indexOf("top")>-1?"top":"bottom",i=o.indexOf("left")>-1?"start":o.indexOf("right")>-1?"end":"center",s=["left","right"].includes(o)?`items-${o==="left"?"start":"end"} justify-center`:o==="center"?"flex-center":`items-${i}`;Aa[o]=`q-notifications__list q-notifications__list--${r} fixed column no-wrap ${s}`});const n=Qo("q-notify");ca(zh(),t).mount(n)}}};function Kh(e,t,n){let o;function r(){o!==void 0&&(Or.remove(o),o=void 0)}return Qe(()=>{e.value===!0&&r()}),{removeFromHistory:r,addToHistory(){o={condition:()=>n.value===!0,handler:t},Or.add(o)}}}function Uh(){let e;const t=we();function n(){clearTimeout(e)}return Do(n),Qe(n),{removeTimeout:n,registerTimeout(o,r){clearTimeout(e),qa(t)===!1&&(e=setTimeout(o,r))}}}function Wh(){let e;const t=we();function n(){e=void 0}return Do(n),Qe(n),{removeTick:n,registerTick(o){e=o,Ie(()=>{e===o&&(qa(t)===!1&&e(),e=void 0)})}}}const Qh={modelValue:{type:Boolean,default:null},"onUpdate:modelValue":[Function,Array]},Yh=["beforeShow","show","beforeHide","hide"];function Zh({showing:e,canShow:t,hideOnRouteChange:n,handleShow:o,handleHide:r,processOnMount:i}){const s=we(),{props:l,emit:a,proxy:c}=s;let u;function d(p){e.value===!0?b(p):f(p)}function f(p){if(l.disable===!0||p!==void 0&&p.qAnchorHandled===!0||t!==void 0&&t(p)!==!0)return;const v=l["onUpdate:modelValue"]!==void 0;v===!0&&(a("update:modelValue",!0),u=p,Ie(()=>{u===p&&(u=void 0)})),(l.modelValue===null||v===!1)&&m(p)}function m(p){e.value!==!0&&(e.value=!0,a("beforeShow",p),o!==void 0?o(p):a("show",p))}function b(p){if(l.disable===!0)return;const v=l["onUpdate:modelValue"]!==void 0;v===!0&&(a("update:modelValue",!1),u=p,Ie(()=>{u===p&&(u=void 0)})),(l.modelValue===null||v===!1)&&P(p)}function P(p){e.value!==!1&&(e.value=!1,a("beforeHide",p),r!==void 0?r(p):a("hide",p))}function R(p){l.disable===!0&&p===!0?l["onUpdate:modelValue"]!==void 0&&a("update:modelValue",!1):p===!0!==e.value&&(p===!0?m:P)(u)}be(()=>l.modelValue,R),n!==void 0&&Pa(s)===!0&&be(()=>c.$route.fullPath,()=>{n.value===!0&&e.value===!0&&b()}),i===!0&&At(()=>{R(l.modelValue)});const A={show:f,hide:b,toggle:d};return Object.assign(c,A),A}const Jh={transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"},transitionDuration:{type:[String,Number],default:300}};function Xh(e,t=()=>{},n=()=>{}){return{transitionProps:S(()=>{const o=`q-transition--${e.transitionShow||t()}`,r=`q-transition--${e.transitionHide||n()}`;return{appear:!0,enterFromClass:`${o}-enter-from`,enterActiveClass:`${o}-enter-active`,enterToClass:`${o}-enter-to`,leaveFromClass:`${r}-leave-from`,leaveActiveClass:`${r}-leave-active`,leaveToClass:`${r}-leave-to`}}),transitionStyle:S(()=>`--q-transition-duration: ${e.transitionDuration}ms`)}}let Vt=[],Xn=[];function $a(e){Xn=Xn.filter(t=>t!==e)}function Gh(e){$a(e),Xn.push(e)}function Fs(e){$a(e),Xn.length===0&&Vt.length>0&&(Vt[Vt.length-1](),Vt=[])}function yi(e){Xn.length===0?e():Vt.push(e)}function eg(e){Vt=Vt.filter(t=>t!==e)}const xo=[];function mm(e){return xo.find(t=>t.contentEl!==null&&t.contentEl.contains(e))}function tg(e,t){do{if(e.$options.name==="QMenu"){if(e.hide(t),e.$props.separateClosePopup===!0)return yo(e)}else if(e.__qPortal===!0){const n=yo(e);return n!==void 0&&n.$options.name==="QPopupProxy"?(e.hide(t),n):e}e=yo(e)}while(e!=null)}function pm(e,t,n){for(;n!==0&&e!==void 0&&e!==null;){if(e.__qPortal===!0){if(n--,e.$options.name==="QMenu"){e=tg(e,t);continue}e.hide(t)}e=yo(e)}}function ng(e){for(e=e.parent;e!=null;){if(e.type.name==="QGlobalDialog")return!0;if(e.type.name==="QDialog"||e.type.name==="QMenu")return!1;e=e.parent}return!1}function og(e,t,n,o){const r=ce(!1),i=ce(!1);let s=null;const l={},a=o===!0&&ng(e);function c(d){if(d===!0){Fs(l),i.value=!0;return}i.value=!1,r.value===!1&&(a===!1&&s===null&&(s=Qo()),r.value=!0,xo.push(e.proxy),Gh(l))}function u(d){if(i.value=!1,d!==!0)return;Fs(l),r.value=!1;const f=xo.indexOf(e.proxy);f!==-1&&xo.splice(f,1),s!==null&&(vi(s),s=null)}return ai(()=>{u(!0)}),e.proxy.__qPortal=!0,kn(e.proxy,"contentEl",()=>t.value),{showPortal:c,hidePortal:u,portalIsActive:r,portalIsAccessible:i,renderPortal:()=>a===!0?n():r.value===!0?[x(Pc,{to:s},n())]:void 0}}const rg=[null,document,document.body,document.scrollingElement,document.documentElement];function vm(e,t){let n=wh(t);if(n===void 0){if(e==null)return window;n=e.closest(".scroll,.scroll-y,.overflow-auto")}return rg.includes(n)?window:n}function ig(e){return e===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:e.scrollTop}function sg(e){return e===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:e.scrollLeft}let uo;function bm(){if(uo!==void 0)return uo;const e=document.createElement("p"),t=document.createElement("div");Ir(e,{width:"100%",height:"200px"}),Ir(t,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);const n=e.offsetWidth;t.style.overflow="scroll";let o=e.offsetWidth;return n===o&&(o=t.clientWidth),t.remove(),uo=n-o,uo}function lg(e,t=!0){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:t?e.scrollHeight>e.clientHeight&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-y"])):e.scrollWidth>e.clientWidth&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]))}let qn=0,dr,hr,$n,gr=!1,Is,js,on;function ag(e){ug(e)&&He(e)}function ug(e){if(e.target===document.body||e.target.classList.contains("q-layout__backdrop"))return!0;const t=qf(e),n=e.shiftKey&&!e.deltaX,o=!n&&Math.abs(e.deltaX)<=Math.abs(e.deltaY),r=n||o?e.deltaY:e.deltaX;for(let i=0;i0&&s.scrollTop+s.clientHeight===s.scrollHeight:r<0&&s.scrollLeft===0?!0:r>0&&s.scrollLeft+s.clientWidth===s.scrollWidth}return!0}function Ns(e){e.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function co(e){gr!==!0&&(gr=!0,requestAnimationFrame(()=>{gr=!1;const{height:t}=e.target,{clientHeight:n,scrollTop:o}=document.scrollingElement;($n===void 0||t!==window.innerHeight)&&($n=n-t,document.scrollingElement.scrollTop=o),o>$n&&(document.scrollingElement.scrollTop-=Math.ceil((o-$n)/8))}))}function Vs(e){const t=document.body,n=window.visualViewport!==void 0;if(e==="add"){const{overflowY:o,overflowX:r}=window.getComputedStyle(t);dr=sg(window),hr=ig(window),Is=t.style.left,js=t.style.top,t.style.left=`-${dr}px`,t.style.top=`-${hr}px`,r!=="hidden"&&(r==="scroll"||t.scrollWidth>window.innerWidth)&&t.classList.add("q-body--force-scrollbar-x"),o!=="hidden"&&(o==="scroll"||t.scrollHeight>window.innerHeight)&&t.classList.add("q-body--force-scrollbar-y"),t.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,Ce.is.ios===!0&&(n===!0?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",co,Be.passiveCapture),window.visualViewport.addEventListener("scroll",co,Be.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",Ns,Be.passiveCapture))}Ce.is.desktop===!0&&Ce.is.mac===!0&&window[`${e}EventListener`]("wheel",ag,Be.notPassive),e==="remove"&&(Ce.is.ios===!0&&(n===!0?(window.visualViewport.removeEventListener("resize",co,Be.passiveCapture),window.visualViewport.removeEventListener("scroll",co,Be.passiveCapture)):window.removeEventListener("scroll",Ns,Be.passiveCapture)),t.classList.remove("q-body--prevent-scroll"),t.classList.remove("q-body--force-scrollbar-x"),t.classList.remove("q-body--force-scrollbar-y"),document.qScrollPrevented=!1,t.style.left=Is,t.style.top=js,window.scrollTo(dr,hr),$n=void 0)}function Nr(e){let t="add";if(e===!0){if(qn++,on!==void 0){clearTimeout(on),on=void 0;return}if(qn>1)return}else{if(qn===0||(qn--,qn>0))return;if(t="remove",Ce.is.ios===!0&&Ce.is.nativeMobile===!0){clearTimeout(on),on=setTimeout(()=>{Vs(t),on=void 0},100);return}}Vs(t)}function cg(){let e;return{preventBodyScroll(t){t!==e&&(e!==void 0||t===!0)&&(e=t,Nr(t))}}}const Ut=[];let yn;function fg(e){yn=e.keyCode===27}function dg(){yn===!0&&(yn=!1)}function hg(e){yn===!0&&(yn=!1,Zn(e,27)===!0&&Ut[Ut.length-1](e))}function La(e){window[e]("keydown",fg),window[e]("blur",dg),window[e]("keyup",hg),yn=!1}function gg(e){Ce.is.desktop===!0&&(Ut.push(e),Ut.length===1&&La("addEventListener"))}function Ds(e){const t=Ut.indexOf(e);t>-1&&(Ut.splice(t,1),Ut.length===0&&La("removeEventListener"))}const Wt=[];function Ba(e){Wt[Wt.length-1](e)}function mg(e){Ce.is.desktop===!0&&(Wt.push(e),Wt.length===1&&document.body.addEventListener("focusin",Ba))}function zs(e){const t=Wt.indexOf(e);t>-1&&(Wt.splice(t,1),Wt.length===0&&document.body.removeEventListener("focusin",Ba))}let fo=0;const pg={standard:"fixed-full flex-center",top:"fixed-top justify-center",bottom:"fixed-bottom justify-center",right:"fixed-right items-center",left:"fixed-left items-center"},Hs={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]};var vg=$e({name:"QDialog",inheritAttrs:!1,props:{...Qh,...Jh,transitionShow:String,transitionHide:String,persistent:Boolean,autoClose:Boolean,allowFocusOutside:Boolean,noEscDismiss:Boolean,noBackdropDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,noShake:Boolean,seamless:Boolean,maximized:Boolean,fullWidth:Boolean,fullHeight:Boolean,square:Boolean,position:{type:String,default:"standard",validator:e=>e==="standard"||["top","bottom","left","right"].includes(e)}},emits:[...Yh,"shake","click","escapeKey"],setup(e,{slots:t,emit:n,attrs:o}){const r=we(),i=ce(null),s=ce(!1),l=ce(!1);let a,c=null,u,d;const f=S(()=>e.persistent!==!0&&e.noRouteDismiss!==!0&&e.seamless!==!0),{preventBodyScroll:m}=cg(),{registerTimeout:b}=Uh(),{registerTick:P,removeTick:R}=Wh(),{transitionProps:A,transitionStyle:p}=Xh(e,()=>Hs[e.position][0],()=>Hs[e.position][1]),{showPortal:v,hidePortal:T,portalIsAccessible:I,renderPortal:y}=og(r,i,ot,!0),{hide:E}=Zh({showing:s,hideOnRouteChange:f,handleShow:q,handleHide:J,processOnMount:!0}),{addToHistory:_,removeFromHistory:$}=Kh(s,E,f),L=S(()=>`q-dialog__inner flex no-pointer-events q-dialog__inner--${e.maximized===!0?"maximized":"minimized"} q-dialog__inner--${e.position} ${pg[e.position]}`+(l.value===!0?" q-dialog__inner--animating":"")+(e.fullWidth===!0?" q-dialog__inner--fullwidth":"")+(e.fullHeight===!0?" q-dialog__inner--fullheight":"")+(e.square===!0?" q-dialog__inner--square":"")),B=S(()=>s.value===!0&&e.seamless!==!0),k=S(()=>e.autoClose===!0?{onClick:ue}:{}),H=S(()=>[`q-dialog fullscreen no-pointer-events q-dialog--${B.value===!0?"modal":"seamless"}`,o.class]);be(()=>e.maximized,w=>{s.value===!0&&N(w)}),be(B,w=>{m(w),w===!0?(mg(me),gg(W)):(zs(me),Ds(W))});function q(w){_(),c=e.noRefocus===!1&&document.activeElement!==null?document.activeElement:null,N(e.maximized),v(),l.value=!0,e.noFocus!==!0?(document.activeElement!==null&&document.activeElement.blur(),P(ee)):R(),b(()=>{if(r.proxy.$q.platform.is.ios===!0){if(e.seamless!==!0&&document.activeElement){const{top:V,bottom:U}=document.activeElement.getBoundingClientRect(),{innerHeight:Z}=window,se=window.visualViewport!==void 0?window.visualViewport.height:Z;V>0&&U>se/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-se,U>=Z?1/0:Math.ceil(document.scrollingElement.scrollTop+U-se/2))),document.activeElement.scrollIntoView()}d=!0,i.value.click(),d=!1}v(!0),l.value=!1,n("show",w)},e.transitionDuration)}function J(w){R(),$(),de(!0),l.value=!0,T(),c!==null&&(c.focus(),c=null),b(()=>{T(!0),l.value=!1,n("hide",w)},e.transitionDuration)}function ee(w){yi(()=>{let V=i.value;V===null||V.contains(document.activeElement)===!0||(V=(w!==""?V.querySelector(w):null)||V.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||V.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||V.querySelector("[autofocus], [data-autofocus]")||V,V.focus({preventScroll:!0}))})}function M(w){w&&typeof w.focus=="function"?w.focus({preventScroll:!0}):ee(),n("shake");const V=i.value;V!==null&&(V.classList.remove("q-animate--scale"),V.classList.add("q-animate--scale"),clearTimeout(a),a=setTimeout(()=>{i.value!==null&&(V.classList.remove("q-animate--scale"),ee())},170))}function W(){e.seamless!==!0&&(e.persistent===!0||e.noEscDismiss===!0?e.maximized!==!0&&e.noShake!==!0&&M():(n("escapeKey"),E()))}function de(w){clearTimeout(a),(w===!0||s.value===!0)&&(N(!1),e.seamless!==!0&&(m(!1),zs(me),Ds(W))),w!==!0&&(c=null)}function N(w){w===!0?u!==!0&&(fo<1&&document.body.classList.add("q-body--dialog"),fo++,u=!0):u===!0&&(fo<2&&document.body.classList.remove("q-body--dialog"),fo--,u=!1)}function ue(w){d!==!0&&(E(w),n("click",w))}function ge(w){e.persistent!==!0&&e.noBackdropDismiss!==!0?E(w):e.noShake!==!0&&M(w.relatedTarget)}function me(w){e.allowFocusOutside!==!0&&I.value===!0&&xh(i.value,w.target)!==!0&&ee('[tabindex]:not([tabindex="-1"])')}Object.assign(r.proxy,{focus:ee,shake:M,__updateRefocusTarget(w){c=w||null}}),Qe(de);function ot(){return x("div",{role:"dialog","aria-modal":B.value===!0?"true":"false",...o,class:H.value},[x(Qt,{name:"q-transition--fade",appear:!0},()=>B.value===!0?x("div",{class:"q-dialog__backdrop fixed-full",style:p.value,"aria-hidden":"true",tabindex:-1,onFocusin:ge}):null),x(Qt,A.value,()=>s.value===!0?x("div",{ref:i,class:L.value,style:p.value,tabindex:-1,...k.value},et(t.default)):null)])}return y}});const Zt={dark:{type:Boolean,default:null}};function Jt(e,t){return S(()=>e.dark===null?t.dark.isActive:e.dark)}var bg=$e({name:"QCard",props:{...Zt,tag:{type:String,default:"div"},square:Boolean,flat:Boolean,bordered:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=we(),o=Jt(e,n),r=S(()=>"q-card"+(o.value===!0?" q-card--dark q-dark":"")+(e.bordered===!0?" q-card--bordered":"")+(e.square===!0?" q-card--square no-border-radius":"")+(e.flat===!0?" q-card--flat no-shadow":""));return()=>x(e.tag,{class:r.value},et(t.default))}}),An=$e({name:"QCardSection",props:{tag:{type:String,default:"div"},horizontal:Boolean},setup(e,{slots:t}){const n=S(()=>`q-card__section q-card__section--${e.horizontal===!0?"horiz row no-wrap":"vert"}`);return()=>x(e.tag,{class:n.value},et(t.default))}}),yg=$e({name:"QCardActions",props:{...Sa,vertical:Boolean},setup(e,{slots:t}){const n=Ra(e),o=S(()=>`q-card__actions ${n.value} q-card__actions--${e.vertical===!0?"vert column":"horiz row"}`);return()=>x("div",{class:o.value},et(t.default))}});const _g={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},mr={xs:2,sm:4,md:8,lg:16,xl:24};var Ks=$e({name:"QSeparator",props:{...Zt,spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},setup(e){const t=we(),n=Jt(e,t.proxy.$q),o=S(()=>e.vertical===!0?"vertical":"horizontal"),r=S(()=>` q-separator--${o.value}`),i=S(()=>e.inset!==!1?`${r.value}-${_g[e.inset]}`:""),s=S(()=>`q-separator${r.value}${i.value}`+(e.color!==void 0?` bg-${e.color}`:"")+(n.value===!0?" q-separator--dark":"")),l=S(()=>{const a={};if(e.size!==void 0&&(a[e.vertical===!0?"width":"height"]=e.size),e.spaced!==!1){const c=e.spaced===!0?`${mr.md}px`:e.spaced in mr?`${mr[e.spaced]}px`:e.spaced,u=e.vertical===!0?["Left","Right"]:["Top","Bottom"];a[`margin${u[0]}`]=a[`margin${u[1]}`]=c}return a});return()=>x("hr",{class:s.value,style:l.value,"aria-orientation":o.value})}});function wg({validate:e,resetValidation:t,requiresQForm:n}){const o=at(Uf,!1);if(o!==!1){const{props:r,proxy:i}=we();Object.assign(i,{validate:e,resetValidation:t}),be(()=>r.disable,s=>{s===!0?(typeof t=="function"&&t(),o.unbindComponent(i)):o.bindComponent(i)}),At(()=>{r.disable!==!0&&o.bindComponent(i)}),Qe(()=>{r.disable!==!0&&o.unbindComponent(i)})}else n===!0&&console.error("Parent QForm not found on useFormChild()!")}const Us=/^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,Ws=/^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,Qs=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,ho=/^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/,go=/^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/,pr={date:e=>/^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(e),time:e=>/^([0-1]?\d|2[0-3]):[0-5]\d$/.test(e),fulltime:e=>/^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(e),timeOrFulltime:e=>/^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(e),email:e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),hexColor:e=>Us.test(e),hexaColor:e=>Ws.test(e),hexOrHexaColor:e=>Qs.test(e),rgbColor:e=>ho.test(e),rgbaColor:e=>go.test(e),rgbOrRgbaColor:e=>ho.test(e)||go.test(e),hexOrRgbColor:e=>Us.test(e)||ho.test(e),hexaOrRgbaColor:e=>Ws.test(e)||go.test(e),anyColor:e=>Qs.test(e)||ho.test(e)||go.test(e)},xg=[!0,!1,"ondemand"],Cg={modelValue:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],validator:e=>xg.includes(e)}};function kg(e,t){const{props:n,proxy:o}=we(),r=ce(!1),i=ce(null),s=ce(null);wg({validate:b,resetValidation:m});let l=0,a;const c=S(()=>n.rules!==void 0&&n.rules!==null&&n.rules.length>0),u=S(()=>n.disable!==!0&&c.value===!0),d=S(()=>n.error===!0||r.value===!0),f=S(()=>typeof n.errorMessage=="string"&&n.errorMessage.length>0?n.errorMessage:i.value);be(()=>n.modelValue,()=>{P()}),be(()=>n.reactiveRules,A=>{A===!0?a===void 0&&(a=be(()=>n.rules,()=>{P(!0)})):a!==void 0&&(a(),a=void 0)},{immediate:!0}),be(e,A=>{A===!0?s.value===null&&(s.value=!1):s.value===!1&&(s.value=!0,u.value===!0&&n.lazyRules!=="ondemand"&&t.value===!1&&R())});function m(){l++,t.value=!1,s.value=null,r.value=!1,i.value=null,R.cancel()}function b(A=n.modelValue){if(u.value!==!0)return!0;const p=++l,v=t.value!==!0?()=>{s.value=!0}:()=>{},T=(y,E)=>{y===!0&&v(),r.value=y,i.value=E||null,t.value=!1},I=[];for(let y=0;y{if(y===void 0||Array.isArray(y)===!1||y.length===0)return p===l&&T(!1),!0;const E=y.find(_=>_===!1||typeof _=="string");return p===l&&T(E!==void 0,E),E===void 0},y=>(p===l&&(console.error(y),T(!0)),!1)))}function P(A){u.value===!0&&n.lazyRules!=="ondemand"&&(s.value===!0||n.lazyRules!==!0&&A!==!0)&&R()}const R=ia(b,0);return Qe(()=>{a!==void 0&&a(),R.cancel()}),Object.assign(o,{resetValidation:m,validate:b}),kn(o,"hasError",()=>d.value),{isDirtyModel:s,hasRules:c,hasError:d,errorMessage:f,validate:b,resetValidation:m}}const Ys=/^on[A-Z]/;function Eg(e,t){const n={listeners:ce({}),attributes:ce({})};function o(){const r={},i={};for(const s in e)s!=="class"&&s!=="style"&&Ys.test(s)===!1&&(r[s]=e[s]);for(const s in t.props)Ys.test(s)===!0&&(i[s]=t.props[s]);n.attributes.value=r,n.listeners.value=i}return Fl(o),o(),n}let vr,mo=0;const Pe=new Array(256);for(let e=0;e<256;e++)Pe[e]=(e+256).toString(16).substring(1);const Sg=(()=>{const e=typeof crypto<"u"?crypto:typeof window<"u"?window.crypto||window.msCrypto:void 0;if(e!==void 0){if(e.randomBytes!==void 0)return e.randomBytes;if(e.getRandomValues!==void 0)return t=>{const n=new Uint8Array(t);return e.getRandomValues(n),n}}return t=>{const n=[];for(let o=t;o>0;o--)n.push(Math.floor(Math.random()*256));return n}})(),Zs=4096;function Rg(){(vr===void 0||mo+16>Zs)&&(mo=0,vr=Sg(Zs));const e=Array.prototype.slice.call(vr,mo,mo+=16);return e[6]=e[6]&15|64,e[8]=e[8]&63|128,Pe[e[0]]+Pe[e[1]]+Pe[e[2]]+Pe[e[3]]+"-"+Pe[e[4]]+Pe[e[5]]+"-"+Pe[e[6]]+Pe[e[7]]+"-"+Pe[e[8]]+Pe[e[9]]+"-"+Pe[e[10]]+Pe[e[11]]+Pe[e[12]]+Pe[e[13]]+Pe[e[14]]+Pe[e[15]]}function Vr(e){return e===void 0?`f_${Rg()}`:e}function Dr(e){return e!=null&&(""+e).length>0}const Tg={...Zt,...Cg,label:String,stackLabel:Boolean,hint:String,hideHint:Boolean,prefix:String,suffix:String,labelColor:String,color:String,bgColor:String,filled:Boolean,outlined:Boolean,borderless:Boolean,standout:[Boolean,String],square:Boolean,loading:Boolean,labelSlot:Boolean,bottomSlots:Boolean,hideBottomSpace:Boolean,rounded:Boolean,dense:Boolean,itemAligned:Boolean,counter:Boolean,clearable:Boolean,clearIcon:String,disable:Boolean,readonly:Boolean,autofocus:Boolean,for:String,maxlength:[Number,String]},Pg=["update:modelValue","clear","focus","blur","popupShow","popupHide"];function qg(){const{props:e,attrs:t,proxy:n,vnode:o}=we();return{isDark:Jt(e,n.$q),editable:S(()=>e.disable!==!0&&e.readonly!==!0),innerLoading:ce(!1),focused:ce(!1),hasPopupOpen:!1,splitAttrs:Eg(t,o),targetUid:ce(Vr(e.for)),rootRef:ce(null),targetRef:ce(null),controlRef:ce(null)}}function Ag(e){const{props:t,emit:n,slots:o,attrs:r,proxy:i}=we(),{$q:s}=i;let l;e.hasValue===void 0&&(e.hasValue=S(()=>Dr(t.modelValue))),e.emitValue===void 0&&(e.emitValue=M=>{n("update:modelValue",M)}),e.controlEvents===void 0&&(e.controlEvents={onFocusin:$,onFocusout:L}),Object.assign(e,{clearValue:B,onControlFocusin:$,onControlFocusout:L,focus:E}),e.computedCounter===void 0&&(e.computedCounter=S(()=>{if(t.counter!==!1){const M=typeof t.modelValue=="string"||typeof t.modelValue=="number"?(""+t.modelValue).length:Array.isArray(t.modelValue)===!0?t.modelValue.length:0,W=t.maxlength!==void 0?t.maxlength:t.maxValues;return M+(W!==void 0?" / "+W:"")}}));const{isDirtyModel:a,hasRules:c,hasError:u,errorMessage:d,resetValidation:f}=kg(e.focused,e.innerLoading),m=e.floatingLabel!==void 0?S(()=>t.stackLabel===!0||e.focused.value===!0||e.floatingLabel.value===!0):S(()=>t.stackLabel===!0||e.focused.value===!0||e.hasValue.value===!0),b=S(()=>t.bottomSlots===!0||t.hint!==void 0||c.value===!0||t.counter===!0||t.error!==null),P=S(()=>t.filled===!0?"filled":t.outlined===!0?"outlined":t.borderless===!0?"borderless":t.standout?"standout":"standard"),R=S(()=>`q-field row no-wrap items-start q-field--${P.value}`+(e.fieldClass!==void 0?` ${e.fieldClass.value}`:"")+(t.rounded===!0?" q-field--rounded":"")+(t.square===!0?" q-field--square":"")+(m.value===!0?" q-field--float":"")+(p.value===!0?" q-field--labeled":"")+(t.dense===!0?" q-field--dense":"")+(t.itemAligned===!0?" q-field--item-aligned q-item-type":"")+(e.isDark.value===!0?" q-field--dark":"")+(e.getControl===void 0?" q-field--auto-height":"")+(e.focused.value===!0?" q-field--focused":"")+(u.value===!0?" q-field--error":"")+(u.value===!0||e.focused.value===!0?" q-field--highlighted":"")+(t.hideBottomSpace!==!0&&b.value===!0?" q-field--with-bottom":"")+(t.disable===!0?" q-field--disabled":t.readonly===!0?" q-field--readonly":"")),A=S(()=>"q-field__control relative-position row no-wrap"+(t.bgColor!==void 0?` bg-${t.bgColor}`:"")+(u.value===!0?" text-negative":typeof t.standout=="string"&&t.standout.length>0&&e.focused.value===!0?` ${t.standout}`:t.color!==void 0?` text-${t.color}`:"")),p=S(()=>t.labelSlot===!0||t.label!==void 0),v=S(()=>"q-field__label no-pointer-events absolute ellipsis"+(t.labelColor!==void 0&&u.value!==!0?` text-${t.labelColor}`:"")),T=S(()=>({id:e.targetUid.value,editable:e.editable.value,focused:e.focused.value,floatingLabel:m.value,modelValue:t.modelValue,emitValue:e.emitValue})),I=S(()=>{const M={for:e.targetUid.value};return t.disable===!0?M["aria-disabled"]="true":t.readonly===!0&&(M["aria-readonly"]="true"),M});be(()=>t.for,M=>{e.targetUid.value=Vr(M)});function y(){const M=document.activeElement;let W=e.targetRef!==void 0&&e.targetRef.value;W&&(M===null||M.id!==e.targetUid.value)&&(W.hasAttribute("tabindex")===!0||(W=W.querySelector("[tabindex]")),W&&W!==M&&W.focus({preventScroll:!0}))}function E(){yi(y)}function _(){eg(y);const M=document.activeElement;M!==null&&e.rootRef.value.contains(M)&&M.blur()}function $(M){clearTimeout(l),e.editable.value===!0&&e.focused.value===!1&&(e.focused.value=!0,n("focus",M))}function L(M,W){clearTimeout(l),l=setTimeout(()=>{document.hasFocus()===!0&&(e.hasPopupOpen===!0||e.controlRef===void 0||e.controlRef.value===null||e.controlRef.value.contains(document.activeElement)!==!1)||(e.focused.value===!0&&(e.focused.value=!1,n("blur",M)),W!==void 0&&W())})}function B(M){He(M),s.platform.is.mobile!==!0?(e.targetRef!==void 0&&e.targetRef.value||e.rootRef.value).focus():e.rootRef.value.contains(document.activeElement)===!0&&document.activeElement.blur(),t.type==="file"&&(e.inputRef.value.value=null),n("update:modelValue",null),n("clear",t.modelValue),Ie(()=>{f(),s.platform.is.mobile!==!0&&(a.value=!1)})}function k(){const M=[];return o.prepend!==void 0&&M.push(x("div",{class:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",onClick:St},o.prepend())),M.push(x("div",{class:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},H())),u.value===!0&&t.noErrorIcon===!1&&M.push(J("error",[x(vt,{name:s.iconSet.field.error,color:"negative"})])),t.loading===!0||e.innerLoading.value===!0?M.push(J("inner-loading-append",o.loading!==void 0?o.loading():[x(bn,{color:t.color})])):t.clearable===!0&&e.hasValue.value===!0&&e.editable.value===!0&&M.push(J("inner-clearable-append",[x(vt,{class:"q-field__focusable-action",tag:"button",name:t.clearIcon||s.iconSet.field.clear,tabindex:0,type:"button","aria-hidden":null,role:null,onClick:B})])),o.append!==void 0&&M.push(x("div",{class:"q-field__append q-field__marginal row no-wrap items-center",key:"append",onClick:St},o.append())),e.getInnerAppend!==void 0&&M.push(J("inner-append",e.getInnerAppend())),e.getControlChild!==void 0&&M.push(e.getControlChild()),M}function H(){const M=[];return t.prefix!==void 0&&t.prefix!==null&&M.push(x("div",{class:"q-field__prefix no-pointer-events row items-center"},t.prefix)),e.getShadowControl!==void 0&&e.hasShadow.value===!0&&M.push(e.getShadowControl()),e.getControl!==void 0?M.push(e.getControl()):o.rawControl!==void 0?M.push(o.rawControl()):o.control!==void 0&&M.push(x("div",{ref:e.targetRef,class:"q-field__native row",tabindex:-1,...e.splitAttrs.attributes.value,"data-autofocus":t.autofocus===!0||void 0},o.control(T.value))),p.value===!0&&M.push(x("div",{class:v.value},et(o.label,t.label))),t.suffix!==void 0&&t.suffix!==null&&M.push(x("div",{class:"q-field__suffix no-pointer-events row items-center"},t.suffix)),M.concat(et(o.default))}function q(){let M,W;u.value===!0?d.value!==null?(M=[x("div",{role:"alert"},d.value)],W=`q--slot-error-${d.value}`):(M=et(o.error),W="q--slot-error"):(t.hideHint!==!0||e.focused.value===!0)&&(t.hint!==void 0?(M=[x("div",t.hint)],W=`q--slot-hint-${t.hint}`):(M=et(o.hint),W="q--slot-hint"));const de=t.counter===!0||o.counter!==void 0;if(t.hideBottomSpace===!0&&de===!1&&M===void 0)return;const N=x("div",{key:W,class:"q-field__messages col"},M);return x("div",{class:"q-field__bottom row items-start q-field__bottom--"+(t.hideBottomSpace!==!0?"animated":"stale"),onClick:St},[t.hideBottomSpace===!0?N:x(Qt,{name:"q-transition--field-message"},()=>N),de===!0?x("div",{class:"q-field__counter"},o.counter!==void 0?o.counter():e.computedCounter.value):null])}function J(M,W){return W===null?null:x("div",{key:M,class:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"},W)}let ee=!1;return Do(()=>{ee=!0}),Ll(()=>{ee===!0&&t.autofocus===!0&&i.focus()}),At(()=>{qt.value===!0&&t.for===void 0&&(e.targetUid.value=Vr()),t.autofocus===!0&&i.focus()}),Qe(()=>{clearTimeout(l)}),Object.assign(i,{focus:E,blur:_}),function(){const W=e.getControl===void 0&&o.control===void 0?{...e.splitAttrs.attributes.value,"data-autofocus":t.autofocus===!0||void 0,...I.value}:I.value;return x("label",{ref:e.rootRef,class:[R.value,r.class],style:r.style,...W},[o.before!==void 0?x("div",{class:"q-field__before q-field__marginal row no-wrap items-center",onClick:St},o.before()):null,x("div",{class:"q-field__inner relative-position col self-stretch"},[x("div",{ref:e.controlRef,class:A.value,tabindex:-1,...e.controlEvents},k()),b.value===!0?q():null]),o.after!==void 0?x("div",{class:"q-field__after q-field__marginal row no-wrap items-center",onClick:St},o.after()):null])}}const Js={date:"####/##/##",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"},Mo={"#":{pattern:"[\\d]",negate:"[^\\d]"},S:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]"},N:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]"},A:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:e=>e.toLocaleUpperCase()},a:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:e=>e.toLocaleLowerCase()},X:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:e=>e.toLocaleUpperCase()},x:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:e=>e.toLocaleLowerCase()}},Fa=Object.keys(Mo);Fa.forEach(e=>{Mo[e].regex=new RegExp(Mo[e].pattern)});const Mg=new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|(["+Fa.join("")+"])|(.)","g"),Xs=/[.*+?^${}()|[\]\\]/g,Ee=String.fromCharCode(1),Og={mask:String,reverseFillMask:Boolean,fillMask:[Boolean,String],unmaskedValue:Boolean};function $g(e,t,n,o){let r,i,s,l;const a=ce(null),c=ce(d());function u(){return e.autogrow===!0||["textarea","text","search","url","tel","password"].includes(e.type)}be(()=>e.type+e.autogrow,m),be(()=>e.mask,y=>{if(y!==void 0)b(c.value,!0);else{const E=T(c.value);m(),e.modelValue!==E&&t("update:modelValue",E)}}),be(()=>e.fillMask+e.reverseFillMask,()=>{a.value===!0&&b(c.value,!0)}),be(()=>e.unmaskedValue,()=>{a.value===!0&&b(c.value)});function d(){if(m(),a.value===!0){const y=p(T(e.modelValue));return e.fillMask!==!1?I(y):y}return e.modelValue}function f(y){if(y-1){for(let L=y-_.length;L>0;L--)E+=Ee;_=_.slice(0,$)+E+_.slice($)}return _}function m(){if(a.value=e.mask!==void 0&&e.mask.length>0&&u(),a.value===!1){l=void 0,r="",i="";return}const y=Js[e.mask]===void 0?e.mask:Js[e.mask],E=typeof e.fillMask=="string"&&e.fillMask.length>0?e.fillMask.slice(0,1):"_",_=E.replace(Xs,"\\$&"),$=[],L=[],B=[];let k=e.reverseFillMask===!0,H="",q="";y.replace(Mg,(W,de,N,ue,ge)=>{if(ue!==void 0){const me=Mo[ue];B.push(me),q=me.negate,k===!0&&(L.push("(?:"+q+"+)?("+me.pattern+"+)?(?:"+q+"+)?("+me.pattern+"+)?"),k=!1),L.push("(?:"+q+"+)?("+me.pattern+")?")}else if(N!==void 0)H="\\"+(N==="\\"?"":N),B.push(N),$.push("([^"+H+"]+)?"+H+"?");else{const me=de!==void 0?de:ge;H=me==="\\"?"\\\\\\\\":me.replace(Xs,"\\\\$&"),B.push(me),$.push("([^"+H+"]+)?"+H+"?")}});const J=new RegExp("^"+$.join("")+"("+(H===""?".":"[^"+H+"]")+"+)?"+(H===""?"":"["+H+"]*")+"$"),ee=L.length-1,M=L.map((W,de)=>de===0&&e.reverseFillMask===!0?new RegExp("^"+_+"*"+W):de===ee?new RegExp("^"+W+"("+(q===""?".":q)+"+)?"+(e.reverseFillMask===!0?"$":_+"*")):new RegExp("^"+W));s=B,l=W=>{const de=J.exec(e.reverseFillMask===!0?W:W.slice(0,B.length));de!==null&&(W=de.slice(1).join(""));const N=[],ue=M.length;for(let ge=0,me=W;ge0?N.join(""):W},r=B.map(W=>typeof W=="string"?W:Ee).join(""),i=r.split(Ee).join(E)}function b(y,E,_){const $=o.value,L=$.selectionEnd,B=$.value.length-L,k=T(y);E===!0&&m();const H=p(k),q=e.fillMask!==!1?I(H):H,J=c.value!==q;$.value!==q&&($.value=q),J===!0&&(c.value=q),document.activeElement===$&&Ie(()=>{if(q===i){const M=e.reverseFillMask===!0?i.length:0;$.setSelectionRange(M,M,"forward");return}if(_==="insertFromPaste"&&e.reverseFillMask!==!0){const M=L-1;R.right($,M,M);return}if(["deleteContentBackward","deleteContentForward"].indexOf(_)>-1){const M=e.reverseFillMask===!0?L===0?q.length>H.length?1:0:Math.max(0,q.length-(q===i?0:Math.min(H.length,B)+1))+1:L;$.setSelectionRange(M,M,"forward");return}if(e.reverseFillMask===!0)if(J===!0){const M=Math.max(0,q.length-(q===i?0:Math.min(H.length,B+1)));M===1&&L===1?$.setSelectionRange(M,M,"forward"):R.rightReverse($,M,M)}else{const M=q.length-B;$.setSelectionRange(M,M,"backward")}else if(J===!0){const M=Math.max(0,r.indexOf(Ee),Math.min(H.length,L)-1);R.right($,M,M)}else{const M=L-1;R.right($,M,M)}});const ee=e.unmaskedValue===!0?T(q):q;String(e.modelValue)!==ee&&n(ee,!0)}function P(y,E,_){const $=p(T(y.value));E=Math.max(0,r.indexOf(Ee),Math.min($.length,E)),y.setSelectionRange(E,_,"forward")}const R={left(y,E,_,$){const L=r.slice(E-1).indexOf(Ee)===-1;let B=Math.max(0,E-1);for(;B>=0;B--)if(r[B]===Ee){E=B,L===!0&&E++;break}if(B<0&&r[E]!==void 0&&r[E]!==Ee)return R.right(y,0,0);E>=0&&y.setSelectionRange(E,$===!0?_:E,"backward")},right(y,E,_,$){const L=y.value.length;let B=Math.min(L,_+1);for(;B<=L;B++)if(r[B]===Ee){_=B;break}else r[B-1]===Ee&&(_=B);if(B>L&&r[_-1]!==void 0&&r[_-1]!==Ee)return R.left(y,L,L);y.setSelectionRange($?E:_,_,"forward")},leftReverse(y,E,_,$){const L=f(y.value.length);let B=Math.max(0,E-1);for(;B>=0;B--)if(L[B-1]===Ee){E=B;break}else if(L[B]===Ee&&(E=B,B===0))break;if(B<0&&L[E]!==void 0&&L[E]!==Ee)return R.rightReverse(y,0,0);E>=0&&y.setSelectionRange(E,$===!0?_:E,"backward")},rightReverse(y,E,_,$){const L=y.value.length,B=f(L),k=B.slice(0,_+1).indexOf(Ee)===-1;let H=Math.min(L,_+1);for(;H<=L;H++)if(B[H-1]===Ee){_=H,_>0&&k===!0&&_--;break}if(H>L&&B[_-1]!==void 0&&B[_-1]!==Ee)return R.leftReverse(y,L,L);y.setSelectionRange($===!0?E:_,_,"forward")}};function A(y){if(aa(y)===!0)return;const E=o.value,_=E.selectionStart,$=E.selectionEnd;if(y.keyCode===37||y.keyCode===39){const L=R[(y.keyCode===39?"right":"left")+(e.reverseFillMask===!0?"Reverse":"")];y.preventDefault(),L(E,_,$,y.shiftKey)}else y.keyCode===8&&e.reverseFillMask!==!0&&_===$?R.left(E,_,$,!0):y.keyCode===46&&e.reverseFillMask===!0&&_===$&&R.rightReverse(E,_,$,!0)}function p(y){if(y==null||y==="")return"";if(e.reverseFillMask===!0)return v(y);const E=s;let _=0,$="";for(let L=0;L=0&&$>-1;B--){const k=E[B];let H=y[$];if(typeof k=="string")L=k+L,H===k&&$--;else if(H!==void 0&&k.regex.test(H))do L=(k.transform!==void 0?k.transform(H):H)+L,$--,H=y[$];while(_===B&&H!==void 0&&k.regex.test(H));else return L}return L}function T(y){return typeof y!="string"||l===void 0?typeof y=="number"?l(""+y):y:l(y)}function I(y){return i.length-y.length<=0?y:e.reverseFillMask===!0&&y.length>0?i.slice(0,-y.length)+y:y+i.slice(y.length)}return{innerValue:c,hasMask:a,moveCursorForPaste:P,updateMaskValue:b,onMaskedKeydown:A}}const _i={name:String};function Ia(e={}){return(t,n,o)=>{t[n](x("input",{class:"hidden"+(o||""),...e.value}))}}function Lg(e){return S(()=>e.name||e.for)}function Bg(e,t){function n(){const o=e.modelValue;try{const r="DataTransfer"in window?new DataTransfer:"ClipboardEvent"in window?new ClipboardEvent("").clipboardData:void 0;return Object(o)===o&&("length"in o?Array.from(o):[o]).forEach(i=>{r.items.add(i)}),{files:r.files}}catch{return{files:void 0}}}return S(t===!0?()=>{if(e.type==="file")return n()}:n)}const Fg=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,Ig=/[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u,jg=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,Ng=/[a-z0-9_ -]$/i;function Vg(e){return function(n){if(n.type==="compositionend"||n.type==="change"){if(n.target.qComposing!==!0)return;n.target.qComposing=!1,e(n)}else n.type==="compositionupdate"&&n.target.qComposing!==!0&&typeof n.data=="string"&&(Ce.is.firefox===!0?Ng.test(n.data)===!1:Fg.test(n.data)===!0||Ig.test(n.data)===!0||jg.test(n.data)===!0)===!0&&(n.target.qComposing=!0)}}var Dg=$e({name:"QInput",inheritAttrs:!1,props:{...Tg,...Og,..._i,modelValue:{required:!1},shadowText:String,type:{type:String,default:"text"},debounce:[String,Number],autogrow:Boolean,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},emits:[...Pg,"paste","change"],setup(e,{emit:t,attrs:n}){const{proxy:o}=we(),{$q:r}=o,i={};let s=NaN,l,a,c,u;const d=ce(null),f=Lg(e),{innerValue:m,hasMask:b,moveCursorForPaste:P,updateMaskValue:R,onMaskedKeydown:A}=$g(e,t,q,d),p=Bg(e,!0),v=S(()=>Dr(m.value)),T=Vg(H),I=qg(),y=S(()=>e.type==="textarea"||e.autogrow===!0),E=S(()=>y.value===!0||["text","search","url","tel","password"].includes(e.type)),_=S(()=>{const N={...I.splitAttrs.listeners.value,onInput:H,onPaste:k,onChange:ee,onBlur:M,onFocus:To};return N.onCompositionstart=N.onCompositionupdate=N.onCompositionend=T,b.value===!0&&(N.onKeydown=A),e.autogrow===!0&&(N.onAnimationend=J),N}),$=S(()=>{const N={tabindex:0,"data-autofocus":e.autofocus===!0||void 0,rows:e.type==="textarea"?6:void 0,"aria-label":e.label,name:f.value,...I.splitAttrs.attributes.value,id:I.targetUid.value,maxlength:e.maxlength,disabled:e.disable===!0,readonly:e.readonly===!0};return y.value===!1&&(N.type=e.type),e.autogrow===!0&&(N.rows=1),N});be(()=>e.type,()=>{d.value&&(d.value.value=e.modelValue)}),be(()=>e.modelValue,N=>{if(b.value===!0){if(a===!0&&(a=!1,String(N)===s))return;R(N)}else m.value!==N&&(m.value=N,e.type==="number"&&i.hasOwnProperty("value")===!0&&(l===!0?l=!1:delete i.value));e.autogrow===!0&&Ie(J)}),be(()=>e.autogrow,N=>{N===!0?Ie(J):d.value!==null&&n.rows>0&&(d.value.style.height="auto")}),be(()=>e.dense,()=>{e.autogrow===!0&&Ie(J)});function L(){yi(()=>{const N=document.activeElement;d.value!==null&&d.value!==N&&(N===null||N.id!==I.targetUid.value)&&d.value.focus({preventScroll:!0})})}function B(){d.value!==null&&d.value.select()}function k(N){if(b.value===!0&&e.reverseFillMask!==!0){const ue=N.target;P(ue,ue.selectionStart,ue.selectionEnd)}t("paste",N)}function H(N){if(!N||!N.target)return;if(e.type==="file"){t("update:modelValue",N.target.files);return}const ue=N.target.value;if(N.target.qComposing===!0){i.value=ue;return}if(b.value===!0)R(ue,!1,N.inputType);else if(q(ue),E.value===!0&&N.target===document.activeElement){const{selectionStart:ge,selectionEnd:me}=N.target;ge!==void 0&&me!==void 0&&Ie(()=>{N.target===document.activeElement&&ue.indexOf(N.target.value)===0&&N.target.setSelectionRange(ge,me)})}e.autogrow===!0&&J()}function q(N,ue){u=()=>{e.type!=="number"&&i.hasOwnProperty("value")===!0&&delete i.value,e.modelValue!==N&&s!==N&&(s=N,ue===!0&&(a=!0),t("update:modelValue",N),Ie(()=>{s===N&&(s=NaN)})),u=void 0},e.type==="number"&&(l=!0,i.value=N),e.debounce!==void 0?(clearTimeout(c),i.value=N,c=setTimeout(u,e.debounce)):u()}function J(){requestAnimationFrame(()=>{const N=d.value;if(N!==null){const ue=N.parentNode.style,{overflow:ge}=N.style;r.platform.is.firefox!==!0&&(N.style.overflow="hidden"),N.style.height="1px",ue.marginBottom=N.scrollHeight-1+"px",N.style.height=N.scrollHeight+"px",N.style.overflow=ge,ue.marginBottom=""}})}function ee(N){T(N),clearTimeout(c),u!==void 0&&u(),t("change",N.target.value)}function M(N){N!==void 0&&To(N),clearTimeout(c),u!==void 0&&u(),l=!1,a=!1,delete i.value,e.type!=="file"&&setTimeout(()=>{d.value!==null&&(d.value.value=m.value!==void 0?m.value:"")})}function W(){return i.hasOwnProperty("value")===!0?i.value:m.value!==void 0?m.value:""}Qe(()=>{M()}),At(()=>{e.autogrow===!0&&J()}),Object.assign(I,{innerValue:m,fieldClass:S(()=>`q-${y.value===!0?"textarea":"input"}`+(e.autogrow===!0?" q-textarea--autogrow":"")),hasShadow:S(()=>e.type!=="file"&&typeof e.shadowText=="string"&&e.shadowText.length>0),inputRef:d,emitValue:q,hasValue:v,floatingLabel:S(()=>v.value===!0||Dr(e.displayValue)),getControl:()=>x(y.value===!0?"textarea":"input",{ref:d,class:["q-field__native q-placeholder",e.inputClass],style:e.inputStyle,...$.value,..._.value,...e.type!=="file"?{value:W()}:p.value}),getShadowControl:()=>x("div",{class:"q-field__native q-field__shadow absolute-bottom no-pointer-events"+(y.value===!0?"":" text-no-wrap")},[x("span",{class:"invisible"},W()),x("span",e.shadowText)])});const de=Ag(I);return Object.assign(o,{focus:L,select:B,getNativeElement:()=>d.value}),kn(o,"nativeEl",()=>d.value),de}});function ja(e,t){const n=ce(null),o=S(()=>e.disable===!0?null:x("span",{ref:n,class:"no-outline",tabindex:-1}));function r(i){const s=t.value;i!==void 0&&i.type.indexOf("key")===0?s!==null&&document.activeElement!==s&&s.contains(document.activeElement)===!0&&s.focus():n.value!==null&&(i===void 0||s!==null&&s.contains(i.target)===!0)&&n.value.focus()}return{refocusTargetEl:o,refocusTarget:r}}var Na={xs:30,sm:35,md:40,lg:50,xl:60};const zg=x("svg",{key:"svg",class:"q-radio__bg absolute non-selectable",viewBox:"0 0 24 24"},[x("path",{d:"M12,22a10,10 0 0 1 -10,-10a10,10 0 0 1 10,-10a10,10 0 0 1 10,10a10,10 0 0 1 -10,10m0,-22a12,12 0 0 0 -12,12a12,12 0 0 0 12,12a12,12 0 0 0 12,-12a12,12 0 0 0 -12,-12"}),x("path",{class:"q-radio__check",d:"M12,6a6,6 0 0 0 -6,6a6,6 0 0 0 6,6a6,6 0 0 0 6,-6a6,6 0 0 0 -6,-6"})]);var Hg=$e({name:"QRadio",props:{...Zt,...eo,..._i,modelValue:{required:!0},val:{required:!0},label:String,leftLabel:Boolean,checkedIcon:String,uncheckedIcon:String,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},emits:["update:modelValue"],setup(e,{slots:t,emit:n}){const{proxy:o}=we(),r=Jt(e,o.$q),i=to(e,Na),s=ce(null),{refocusTargetEl:l,refocusTarget:a}=ja(e,s),c=S(()=>re(e.modelValue)===re(e.val)),u=S(()=>"q-radio cursor-pointer no-outline row inline no-wrap items-center"+(e.disable===!0?" disabled":"")+(r.value===!0?" q-radio--dark":"")+(e.dense===!0?" q-radio--dense":"")+(e.leftLabel===!0?" reverse":"")),d=S(()=>{const v=e.color!==void 0&&(e.keepColor===!0||c.value===!0)?` text-${e.color}`:"";return`q-radio__inner relative-position q-radio__inner--${c.value===!0?"truthy":"falsy"}${v}`}),f=S(()=>(c.value===!0?e.checkedIcon:e.uncheckedIcon)||null),m=S(()=>e.disable===!0?-1:e.tabindex||0),b=S(()=>{const v={type:"radio"};return e.name!==void 0&&Object.assign(v,{"^checked":c.value===!0?"checked":void 0,name:e.name,value:e.val}),v}),P=Ia(b);function R(v){v!==void 0&&(He(v),a(v)),e.disable!==!0&&c.value!==!0&&n("update:modelValue",e.val,v)}function A(v){(v.keyCode===13||v.keyCode===32)&&He(v)}function p(v){(v.keyCode===13||v.keyCode===32)&&R(v)}return Object.assign(o,{set:R}),()=>{const v=f.value!==null?[x("div",{key:"icon",class:"q-radio__icon-container absolute-full flex flex-center no-wrap"},[x(vt,{class:"q-radio__icon",name:f.value})])]:[zg];e.disable!==!0&&P(v,"unshift"," q-radio__native q-ma-none q-pa-none");const T=[x("div",{class:d.value,style:i.value,"aria-hidden":"true"},v)];l.value!==null&&T.push(l.value);const I=e.label!==void 0?Nt(t.default,[e.label]):et(t.default);return I!==void 0&&T.push(x("div",{class:"q-radio__label q-anchor--skip"},I)),x("div",{ref:s,class:u.value,tabindex:m.value,role:"radio","aria-label":e.label,"aria-checked":c.value===!0?"true":"false","aria-disabled":e.disable===!0?"true":void 0,onClick:R,onKeydown:A,onKeyup:p},T)}}});const Va={...Zt,...eo,..._i,modelValue:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:e=>e==="tf"||e==="ft"},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},Da=["update:modelValue"];function za(e,t){const{props:n,slots:o,emit:r,proxy:i}=we(),{$q:s}=i,l=Jt(n,s),a=ce(null),{refocusTargetEl:c,refocusTarget:u}=ja(n,a),d=to(n,Na),f=S(()=>n.val!==void 0&&Array.isArray(n.modelValue)),m=S(()=>{const k=re(n.val);return f.value===!0?n.modelValue.findIndex(H=>re(H)===k):-1}),b=S(()=>f.value===!0?m.value>-1:re(n.modelValue)===re(n.trueValue)),P=S(()=>f.value===!0?m.value===-1:re(n.modelValue)===re(n.falseValue)),R=S(()=>b.value===!1&&P.value===!1),A=S(()=>n.disable===!0?-1:n.tabindex||0),p=S(()=>`q-${e} cursor-pointer no-outline row inline no-wrap items-center`+(n.disable===!0?" disabled":"")+(l.value===!0?` q-${e}--dark`:"")+(n.dense===!0?` q-${e}--dense`:"")+(n.leftLabel===!0?" reverse":"")),v=S(()=>{const k=b.value===!0?"truthy":P.value===!0?"falsy":"indet",H=n.color!==void 0&&(n.keepColor===!0||(e==="toggle"?b.value===!0:P.value!==!0))?` text-${n.color}`:"";return`q-${e}__inner relative-position non-selectable q-${e}__inner--${k}${H}`}),T=S(()=>{const k={type:"checkbox"};return n.name!==void 0&&Object.assign(k,{"^checked":b.value===!0?"checked":void 0,name:n.name,value:f.value===!0?n.val:n.trueValue}),k}),I=Ia(T),y=S(()=>{const k={tabindex:A.value,role:e==="toggle"?"switch":"checkbox","aria-label":n.label,"aria-checked":R.value===!0?"mixed":b.value===!0?"true":"false"};return n.disable===!0&&(k["aria-disabled"]="true"),k});function E(k){k!==void 0&&(He(k),u(k)),n.disable!==!0&&r("update:modelValue",_(),k)}function _(){if(f.value===!0){if(b.value===!0){const k=n.modelValue.slice();return k.splice(m.value,1),k}return n.modelValue.concat([n.val])}if(b.value===!0){if(n.toggleOrder!=="ft"||n.toggleIndeterminate===!1)return n.falseValue}else if(P.value===!0){if(n.toggleOrder==="ft"||n.toggleIndeterminate===!1)return n.trueValue}else return n.toggleOrder!=="ft"?n.trueValue:n.falseValue;return n.indeterminateValue}function $(k){(k.keyCode===13||k.keyCode===32)&&He(k)}function L(k){(k.keyCode===13||k.keyCode===32)&&E(k)}const B=t(b,R);return Object.assign(i,{toggle:E}),()=>{const k=B();n.disable!==!0&&I(k,"unshift",` q-${e}__native absolute q-ma-none q-pa-none`);const H=[x("div",{class:v.value,style:d.value,"aria-hidden":"true"},k)];c.value!==null&&H.push(c.value);const q=n.label!==void 0?Nt(o.default,[n.label]):et(o.default);return q!==void 0&&H.push(x("div",{class:`q-${e}__label q-anchor--skip`},q)),x("div",{ref:a,class:p.value,...y.value,onClick:E,onKeydown:$,onKeyup:L},H)}}const Kg=x("div",{key:"svg",class:"q-checkbox__bg absolute"},[x("svg",{class:"q-checkbox__svg fit absolute-full",viewBox:"0 0 24 24"},[x("path",{class:"q-checkbox__truthy",fill:"none",d:"M1.73,12.91 8.1,19.28 22.79,4.59"}),x("path",{class:"q-checkbox__indet",d:"M4,14H20V10H4"})])]);var Ug=$e({name:"QCheckbox",props:Va,emits:Da,setup(e){function t(n,o){const r=S(()=>(n.value===!0?e.checkedIcon:o.value===!0?e.indeterminateIcon:e.uncheckedIcon)||null);return()=>r.value!==null?[x("div",{key:"icon",class:"q-checkbox__icon-container absolute-full flex flex-center no-wrap"},[x(vt,{class:"q-checkbox__icon",name:r.value})])]:[Kg]}return za("checkbox",t)}}),Wg=$e({name:"QToggle",props:{...Va,icon:String,iconColor:String},emits:Da,setup(e){function t(n,o){const r=S(()=>(n.value===!0?e.checkedIcon:o.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=S(()=>n.value===!0?e.iconColor:null);return()=>[x("div",{class:"q-toggle__track"}),x("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},r.value!==void 0?[x(vt,{name:r.value,color:i.value})]:void 0)]}return za("toggle",t)}});const Ha={radio:Hg,checkbox:Ug,toggle:Wg},Qg=Object.keys(Ha);var Yg=$e({name:"QOptionGroup",props:{...Zt,modelValue:{required:!0},options:{type:Array,validator:e=>e.every(t=>"value"in t&&"label"in t)},name:String,type:{default:"radio",validator:e=>Qg.includes(e)},color:String,keepColor:Boolean,dense:Boolean,size:String,leftLabel:Boolean,inline:Boolean,disable:Boolean},emits:["update:modelValue"],setup(e,{emit:t,slots:n}){const{proxy:{$q:o}}=we(),r=Array.isArray(e.modelValue);e.type==="radio"?r===!0&&console.error("q-option-group: model should not be array"):r===!1&&console.error("q-option-group: model should be array in your case");const i=Jt(e,o),s=S(()=>Ha[e.type]),l=S(()=>"q-option-group q-gutter-x-sm"+(e.inline===!0?" q-option-group--inline":"")),a=S(()=>{const u={role:"group"};return e.type==="radio"&&(u.role="radiogroup",e.disable===!0&&(u["aria-disabled"]="true")),u});function c(u){t("update:modelValue",u)}return()=>x("div",{class:l.value,...a.value},e.options.map((u,d)=>{const f=n["label-"+d]!==void 0?()=>n["label-"+d](u):n.label!==void 0?()=>n.label(u):void 0;return x("div",[x(s.value,{modelValue:e.modelValue,val:u.value,name:u.name===void 0?e.name:u.name,disable:e.disable||u.disable,label:f===void 0?u.label:null,leftLabel:u.leftLabel===void 0?e.leftLabel:u.leftLabel,color:u.color===void 0?e.color:u.color,checkedIcon:u.checkedIcon,uncheckedIcon:u.uncheckedIcon,dark:u.dark||i.value,size:u.size===void 0?e.size:u.size,dense:e.dense,keepColor:u.keepColor===void 0?e.keepColor:u.keepColor,"onUpdate:modelValue":c},f)])}))}}),Zg=$e({name:"DialogPlugin",props:{...Zt,title:String,message:String,prompt:Object,options:Object,progress:[Boolean,Object],html:Boolean,ok:{type:[String,Object,Boolean],default:!0},cancel:[String,Object,Boolean],focus:{type:String,default:"ok",validator:e=>["ok","cancel","none"].includes(e)},stackButtons:Boolean,color:String,cardClass:[String,Array,Object],cardStyle:[String,Array,Object]},emits:["ok","hide"],setup(e,{emit:t}){const{proxy:n}=we(),{$q:o}=n,r=Jt(e,o),i=ce(null),s=ce(e.prompt!==void 0?e.prompt.model:e.options!==void 0?e.options.model:void 0),l=S(()=>"q-dialog-plugin"+(r.value===!0?" q-dialog-plugin--dark q-dark":"")+(e.progress!==!1?" q-dialog-plugin--progress":"")),a=S(()=>e.color||(r.value===!0?"amber":"primary")),c=S(()=>e.progress===!1?null:Ke(e.progress)===!0?{component:e.progress.spinner||bn,props:{color:e.progress.color||a.value}}:{component:bn,props:{color:a.value}}),u=S(()=>e.prompt!==void 0||e.options!==void 0),d=S(()=>{if(u.value!==!0)return{};const{model:q,isValid:J,items:ee,...M}=e.prompt!==void 0?e.prompt:e.options;return M}),f=S(()=>Ke(e.ok)===!0||e.ok===!0?o.lang.label.ok:e.ok),m=S(()=>Ke(e.cancel)===!0||e.cancel===!0?o.lang.label.cancel:e.cancel),b=S(()=>e.prompt!==void 0?e.prompt.isValid!==void 0&&e.prompt.isValid(s.value)!==!0:e.options!==void 0?e.options.isValid!==void 0&&e.options.isValid(s.value)!==!0:!1),P=S(()=>({color:a.value,label:f.value,ripple:!1,disable:b.value,...Ke(e.ok)===!0?e.ok:{flat:!0},"data-autofocus":e.focus==="ok"&&u.value!==!0||void 0,onClick:v})),R=S(()=>({color:a.value,label:m.value,ripple:!1,...Ke(e.cancel)===!0?e.cancel:{flat:!0},"data-autofocus":e.focus==="cancel"&&u.value!==!0||void 0,onClick:T}));be(()=>e.prompt&&e.prompt.model,y),be(()=>e.options&&e.options.model,y);function A(){i.value.show()}function p(){i.value.hide()}function v(){t("ok",re(s.value)),p()}function T(){p()}function I(){t("hide")}function y(q){s.value=q}function E(q){b.value!==!0&&e.prompt.type!=="textarea"&&Zn(q,13)===!0&&v()}function _(q,J){return e.html===!0?x(An,{class:q,innerHTML:J}):x(An,{class:q},()=>J)}function $(){return[x(Dg,{color:a.value,dense:!0,autofocus:!0,dark:r.value,...d.value,modelValue:s.value,"onUpdate:modelValue":y,onKeyup:E})]}function L(){return[x(Yg,{color:a.value,options:e.options.items,dark:r.value,...d.value,modelValue:s.value,"onUpdate:modelValue":y})]}function B(){const q=[];return e.cancel&&q.push(x(jr,R.value)),e.ok&&q.push(x(jr,P.value)),x(yg,{class:e.stackButtons===!0?"items-end":"",vertical:e.stackButtons,align:"right"},()=>q)}function k(){const q=[];return e.title&&q.push(_("q-dialog__title",e.title)),e.progress!==!1&&q.push(x(An,{class:"q-dialog__progress"},()=>x(c.value.component,c.value.props))),e.message&&q.push(_("q-dialog__message",e.message)),e.prompt!==void 0?q.push(x(An,{class:"scroll q-dialog-plugin__form"},$)):e.options!==void 0&&q.push(x(Ks,{dark:r.value}),x(An,{class:"scroll q-dialog-plugin__form"},L),x(Ks,{dark:r.value})),(e.ok||e.cancel)&&q.push(B()),q}function H(){return[x(bg,{class:[l.value,e.cardClass],style:e.cardStyle,dark:r.value},k)]}return Object.assign(n,{show:A,hide:p}),()=>x(vg,{ref:i,onHide:I},H)}});function Ka(e,t){for(const n in t)n!=="spinner"&&Object(t[n])===t[n]?(e[n]=Object(e[n])!==e[n]?{}:{...e[n]},Ka(e[n],t[n])):e[n]=t[n]}function Jg(e,t,n){return o=>{let r,i;const s=t===!0&&o.component!==void 0;if(s===!0){const{component:p,componentProps:v}=o;r=typeof p=="string"?n.component(p):p,i=v||{}}else{const{class:p,style:v,...T}=o;r=e,i=T,p!==void 0&&(T.cardClass=p),v!==void 0&&(T.cardStyle=v)}let l,a=!1;const c=ce(null),u=Qo(),d=p=>{if(c.value!==null&&c.value[p]!==void 0){c.value[p]();return}const v=l.$.subTree;if(v&&v.component){if(v.component.proxy&&v.component.proxy[p]){v.component.proxy[p]();return}if(v.component.subTree&&v.component.subTree.component&&v.component.subTree.component.proxy&&v.component.subTree.component.proxy[p]){v.component.subTree.component.proxy[p]();return}}console.error("[Quasar] Incorrectly defined Dialog component")},f=[],m=[],b={onOk(p){return f.push(p),b},onCancel(p){return m.push(p),b},onDismiss(p){return f.push(p),m.push(p),b},hide(){return d("hide"),b},update(p){if(l!==null){if(s===!0)Object.assign(i,p);else{const{class:v,style:T,...I}=p;v!==void 0&&(I.cardClass=v),T!==void 0&&(I.cardStyle=T),Ka(i,I)}l.$forceUpdate()}return b}},P=p=>{a=!0,f.forEach(v=>{v(p)})},R=()=>{A.unmount(u),vi(u),A=null,l=null,a!==!0&&m.forEach(p=>{p()})};let A=ca({name:"QGlobalDialog",setup:()=>()=>x(r,{...i,ref:c,onOk:P,onHide:R,onVnodeMounted(...p){typeof i.onVnodeMounted=="function"&&i.onVnodeMounted(...p),Ie(()=>d("show"))}})},n);return l=A.mount(u),b}}var Xg={install({$q:e,parentApp:t}){e.dialog=Jg(Zg,!0,t),this.__installed!==!0&&(this.create=e.dialog)}};let rn,br,Gs=0,sn,Se={},Dt={};const Ua={group:"__default_quasar_group__",delay:0,message:!1,html:!1,spinnerSize:80,spinnerColor:"",messageColor:"",backgroundColor:"",boxClass:"",spinner:bn,customClass:""},Wa={...Ua};function Gg(e){if(e&&e.group!==void 0&&Dt[e.group]!==void 0)return Object.assign(Dt[e.group],e);const t=Ke(e)===!0&&e.ignoreDefaults===!0?{...Ua,...e}:{...Wa,...e};return Dt[t.group]=t,t}const dt=Gn({isActive:!1},{show(e){Se=Gg(e);const{group:t}=Se;return dt.isActive=!0,rn!==void 0?(Se.uid=Gs,br.$forceUpdate()):(Se.uid=++Gs,clearTimeout(sn),sn=setTimeout(()=>{sn=void 0;const n=Qo("q-loading");rn=gi({name:"QLoading",setup(){At(()=>{Nr(!0)});function o(){dt.isActive!==!0&&rn!==void 0&&(Nr(!1),rn.unmount(n),vi(n),rn=void 0,br=void 0)}function r(){if(dt.isActive!==!0)return null;const i=[x(Se.spinner,{class:"q-loading__spinner",color:Se.spinnerColor,size:Se.spinnerSize})];return Se.message&&i.push(x("div",{class:"q-loading__message"+(Se.messageColor?` text-${Se.messageColor}`:""),[Se.html===!0?"innerHTML":"textContent"]:Se.message})),x("div",{class:"q-loading fullscreen flex flex-center z-max "+Se.customClass.trim(),key:Se.uid},[x("div",{class:"q-loading__backdrop"+(Se.backgroundColor?` bg-${Se.backgroundColor}`:"")}),x("div",{class:"q-loading__box column items-center "+Se.boxClass},i)])}return()=>x(Qt,{name:"q-transition--fade",appear:!0,onAfterLeave:o},r)}}),br=rn.mount(n)},Se.delay)),n=>{if(n===void 0||Object(n)!==n){dt.hide(t);return}dt.show({...n,group:t})}},hide(e){if(dt.isActive===!0){if(e===void 0)Dt={};else{if(Dt[e]===void 0)return;{delete Dt[e];const t=Object.keys(Dt);if(t.length!==0){const n=t[t.length-1];dt.show({group:n});return}}}sn!==void 0&&(clearTimeout(sn),sn=void 0),dt.isActive=!1}},setDefaults(e){Ke(e)===!0&&Object.assign(Wa,e)},install({$q:e}){e.loading=this,e.config.loading!==void 0&&this.setDefaults(e.config.loading)}});var em={config:{loading:{},notify:{},dialog:{}},plugins:{Notify:Hh,Dialog:Xg,Loading:dt}};async function tm({app:e,router:t}){e.use(t),e.mount("#q-app")}ah(gi,em).then(tm);export{um as $,Qh as A,Zt as B,Yh as C,Jt as D,Uh as E,Zh as F,Kh as G,Il as H,hm as I,et as J,cg as K,cm as L,Zn as M,aa as N,Nt as O,Mr as P,vt as Q,kh as R,ir as S,Rg as T,Wh as U,vo as V,Do as W,Ll as X,Qt as Y,gm as Z,om as _,Qe as a,vm as a0,ig as a1,sg as a2,bm as a3,Yt as a4,ai as a5,xo as a6,Jh as a7,Xh as a8,og as a9,qh as aA,ia as aB,nc as aC,_i as aD,Lg as aE,Dr as aF,Fl as aG,li as aH,Vg as aI,vg as aJ,mm as aK,pm as aL,Kf as aM,im as aN,Dg as aO,bg as aP,An as aQ,yg as aR,Je as aS,Mc as aT,Ks as aU,Hh as aV,lc as aW,No as aX,mg as aa,zs as ab,Ds as ac,tg as ad,gg as ae,yi as af,xh as ag,Jf as ah,qc as ai,rm as aj,je as ak,Uu as al,jr as am,Yl as an,Yg as ao,Lc as ap,nm as aq,bn as ar,Tg as as,Pg as at,Ag as au,qg as av,eo as aw,to as ax,ch as ay,Ph as az,Ie as b,$e as c,at as d,fm as e,S as f,we as g,x as h,qt as i,dm as j,am as k,Be as l,uh as m,Yn as n,At as o,Ce as p,sm as q,ce as r,Af as s,lm as t,St as u,To as v,be as w,Pf as x,Mf as y,He as z}; diff --git a/dist/spa/favicon.ico b/dist/spa/favicon.ico new file mode 100644 index 0000000..8402fb2 Binary files /dev/null and b/dist/spa/favicon.ico differ diff --git a/dist/spa/gdal.data b/dist/spa/gdal.data new file mode 100644 index 0000000..ee1f85b --- /dev/null +++ b/dist/spa/gdal.data @@ -0,0 +1,6772 @@ +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","UOM_CODE","SOURCE_GEOGCRS_CODE","COORD_OP_CODE","COORD_OP_METHOD_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","PARAMETER_CODE_1","PARAMETER_VALUE_1","PARAMETER_UOM_1","PARAMETER_CODE_2","PARAMETER_VALUE_2","PARAMETER_UOM_2","PARAMETER_CODE_3","PARAMETER_VALUE_3","PARAMETER_UOM_3","PARAMETER_CODE_4","PARAMETER_VALUE_4","PARAMETER_UOM_4","PARAMETER_CODE_5","PARAMETER_VALUE_5","PARAMETER_UOM_5","PARAMETER_CODE_6","PARAMETER_VALUE_6","PARAMETER_UOM_6","PARAMETER_CODE_7","PARAMETER_VALUE_7","PARAMETER_UOM_7","DX","DY","DZ","RX","RY","RZ","DS" +2000,"Anguilla 1957 / British West Indies Grid",9001,4600,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2001,"Antigua 1943 / British West Indies Grid",9001,4601,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2002,"Dominica 1945 / British West Indies Grid",9001,4602,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2003,"Grenada 1953 / British West Indies Grid",9001,4603,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2004,"Montserrat 1958 / British West Indies Grid",9001,4604,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2005,"St. Kitts 1955 / British West Indies Grid",9001,4605,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2006,"St. Lucia 1955 / British West Indies Grid",9001,4606,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2007,"St. Vincent 45 / British West Indies Grid",9001,4607,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +2008,"NAD27(CGQ77) / SCoPQ zone 2",9001,4609,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2009,"NAD27(CGQ77) / SCoPQ zone 3",9001,4609,17703,9807,1,0,4499,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2010,"NAD27(CGQ77) / SCoPQ zone 4",9001,4609,17704,9807,1,0,4499,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2011,"NAD27(CGQ77) / SCoPQ zone 5",9001,4609,17705,9807,1,0,4499,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2012,"NAD27(CGQ77) / SCoPQ zone 6",9001,4609,17706,9807,1,0,4499,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2013,"NAD27(CGQ77) / SCoPQ zone 7",9001,4609,17707,9807,1,0,4499,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2014,"NAD27(CGQ77) / SCoPQ zone 8",9001,4609,17708,9807,1,0,4499,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2015,"NAD27(CGQ77) / SCoPQ zone 9",9001,4609,17709,9807,1,0,4499,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2016,"NAD27(CGQ77) / SCoPQ zone 10",9001,4609,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2017,"NAD27(76) / MTM zone 8",9001,4608,17708,9807,1,0,4499,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2018,"NAD27(76) / MTM zone 9",9001,4608,17709,9807,1,0,4499,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2019,"NAD27(76) / MTM zone 10",9001,4608,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2020,"NAD27(76) / MTM zone 11",9001,4608,17711,9807,1,0,4400,8801,0,9110,8802,-82.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2021,"NAD27(76) / MTM zone 12",9001,4608,17712,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2022,"NAD27(76) / MTM zone 13",9001,4608,17713,9807,1,0,4400,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2023,"NAD27(76) / MTM zone 14",9001,4608,17714,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2024,"NAD27(76) / MTM zone 15",9001,4608,17715,9807,1,0,4400,8801,0,9102,8802,-90,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2025,"NAD27(76) / MTM zone 16",9001,4608,17716,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2026,"NAD27(76) / MTM zone 17",9001,4608,17717,9807,1,0,4400,8801,0,9102,8802,-96,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2027,"NAD27(76) / UTM zone 15N",9001,4608,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2028,"NAD27(76) / UTM zone 16N",9001,4608,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2029,"NAD27(76) / UTM zone 17N",9001,4608,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2030,"NAD27(76) / UTM zone 18N",9001,4608,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2031,"NAD27(CGQ77) / UTM zone 17N",9001,4609,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2032,"NAD27(CGQ77) / UTM zone 18N",9001,4609,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2033,"NAD27(CGQ77) / UTM zone 19N",9001,4609,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2034,"NAD27(CGQ77) / UTM zone 20N",9001,4609,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2035,"NAD27(CGQ77) / UTM zone 21N",9001,4609,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2036,"NAD83(CSRS98) / New Brunswick Stereo",9001,4140,19946,9809,1,1,4500,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,2500000,9001,8807,7500000,9001,,,,,,,,,,,,, +2037,"NAD83(CSRS98) / UTM zone 19N",9001,4140,16019,9807,1,1,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2038,"NAD83(CSRS98) / UTM zone 20N",9001,4140,16020,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2039,"Israel 1993 / Israeli TM Grid",9001,4141,18204,9807,1,0,4400,8801,31.4403817,9110,8802,35.1216261,9110,8805,1.0000067,9201,8806,219529.584,9001,8807,626907.39,9001,,,,,,,,,,,,, +2040,"Locodjo 1965 / UTM zone 30N",9001,4142,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2041,"Abidjan 1987 / UTM zone 30N",9001,4143,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2042,"Locodjo 1965 / UTM zone 29N",9001,4142,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2043,"Abidjan 1987 / UTM zone 29N",9001,4143,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2044,"Hanoi 1972 / Gauss-Kruger zone 18",9001,4147,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +2045,"Hanoi 1972 / Gauss-Kruger zone 19",9001,4147,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +2046,"Hartebeesthoek94 / Lo15",9001,4148,17515,9808,1,0,6503,8801,0,9102,8802,15,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2047,"Hartebeesthoek94 / Lo17",9001,4148,17517,9808,1,0,6503,8801,0,9102,8802,17,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2048,"Hartebeesthoek94 / Lo19",9001,4148,17519,9808,1,0,6503,8801,0,9102,8802,19,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2049,"Hartebeesthoek94 / Lo21",9001,4148,17521,9808,1,0,6503,8801,0,9102,8802,21,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2050,"Hartebeesthoek94 / Lo23",9001,4148,17523,9808,1,0,6503,8801,0,9102,8802,23,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2051,"Hartebeesthoek94 / Lo25",9001,4148,17525,9808,1,0,6503,8801,0,9102,8802,25,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2052,"Hartebeesthoek94 / Lo27",9001,4148,17527,9808,1,0,6503,8801,0,9102,8802,27,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2053,"Hartebeesthoek94 / Lo29",9001,4148,17529,9808,1,0,6503,8801,0,9102,8802,29,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2054,"Hartebeesthoek94 / Lo31",9001,4148,17531,9808,1,0,6503,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2055,"Hartebeesthoek94 / Lo33",9001,4148,17533,9808,1,0,6503,8801,0,9102,8802,33,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2056,"CH1903+ / LV95",9001,4150,19950,9815,1,0,4400,8811,46.570866,9110,8812,7.26225,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,2600000,9001,8817,1200000,9001,,,,,,, +2057,"Rassadiran / Nakhl e Taqi",9001,4153,19951,9815,1,0,4400,8811,27.31077837,9110,8812,52.3612741,9110,8813,0.34179803,9110,8814,0.34179803,9110,8815,0.999895934,9201,8816,658377.437,9001,8817,3044969.194,9001,,,,,,, +2058,"ED50(ED77) / UTM zone 38N",9001,4154,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2059,"ED50(ED77) / UTM zone 39N",9001,4154,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2060,"ED50(ED77) / UTM zone 40N",9001,4154,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2061,"ED50(ED77) / UTM zone 41N",9001,4154,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2062,"Madrid 1870 (Madrid) / Spain",9001,4903,19921,9801,1,0,4499,8801,40,9102,8802,0,9102,8805,0.9988085293,9201,8806,600000,9001,8807,600000,9001,,,,,,,,,,,,, +2063,"Dabola 1981 / UTM zone 28N",9001,4315,16028,9807,1,1,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2064,"Dabola 1981 / UTM zone 29N",9001,4315,16029,9807,1,1,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2065,"S-JTSK (Ferro) / Krovak",9001,4818,19952,9819,1,0,6501,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,42.3,9110,570.8,85.7,462.8,4.998,1.587,5.261,3.56 +2066,"Mount Dillon / Tobago Grid",9039,4157,19924,9806,1,0,4407,8801,11.1507843,9110,8802,-60.4109632,9110,8806,187500,9039,8807,180000,9039,,,,,,,,,,,,,,,, +2067,"Naparima 1955 / UTM zone 20N",9001,4158,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2068,"ELD79 / Libya zone 5",9001,4159,18240,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2069,"ELD79 / Libya zone 6",9001,4159,18241,9807,1,0,4499,8801,0,9102,8802,11,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2070,"ELD79 / Libya zone 7",9001,4159,18242,9807,1,0,4499,8801,0,9102,8802,13,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2071,"ELD79 / Libya zone 8",9001,4159,18243,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2072,"ELD79 / Libya zone 9",9001,4159,18244,9807,1,0,4499,8801,0,9102,8802,17,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2073,"ELD79 / Libya zone 10",9001,4159,18245,9807,1,0,4499,8801,0,9102,8802,19,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2074,"ELD79 / Libya zone 11",9001,4159,18246,9807,1,0,4499,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2075,"ELD79 / Libya zone 12",9001,4159,18247,9807,1,0,4499,8801,0,9102,8802,23,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2076,"ELD79 / Libya zone 13",9001,4159,18248,9807,1,0,4499,8801,0,9102,8802,25,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2077,"ELD79 / UTM zone 32N",9001,4159,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2078,"ELD79 / UTM zone 33N",9001,4159,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2079,"ELD79 / UTM zone 34N",9001,4159,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2080,"ELD79 / UTM zone 35N",9001,4159,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2081,"Chos Malal 1914 / Argentina 2",9001,4160,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +2082,"Pampa del Castillo / Argentina 2",9001,4161,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +2083,"Hito XVIII 1963 / Argentina 2",9001,4254,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +2084,"Hito XVIII 1963 / UTM zone 19S",9001,4254,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2085,"NAD27 / Cuba Norte",9001,4267,18061,9801,1,1,4532,8801,22.21,9110,8802,-81,9110,8805,0.99993602,9201,8806,500000,9001,8807,280296.016,9001,,,,,,,,,,,,, +2086,"NAD27 / Cuba Sur",9001,4267,18062,9801,1,1,4532,8801,20.43,9110,8802,-76.5,9110,8805,0.99994848,9201,8806,500000,9001,8807,229126.939,9001,,,,,,,,,,,,, +2087,"ELD79 / TM 12 NE",9001,4159,16412,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2088,"Carthage / TM 11 NE",9001,4223,16411,9807,1,0,4400,8801,0,9102,8802,11,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2089,"Yemen NGN96 / UTM zone 38N",9001,4163,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2090,"Yemen NGN96 / UTM zone 39N",9001,4163,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2091,"South Yemen / Gauss Kruger zone 8",9001,4164,16208,9807,1,1,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +2092,"South Yemen / Gauss Kruger zone 9",9001,4164,16209,9807,1,1,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +2093,"Hanoi 1972 / GK 106 NE",9001,4147,16586,9807,1,0,4530,8801,0,9102,8802,106,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2094,"WGS 72BE / TM 106 NE",9001,4324,16506,9807,1,0,4400,8801,0,9102,8802,106,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2095,"Bissau / UTM zone 28N",9001,4165,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2096,"Korean 1985 / East Belt",9001,4162,18251,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +2097,"Korean 1985 / Central Belt",9001,4162,18252,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +2098,"Korean 1985 / West Belt",9001,4162,18253,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +2099,"Qatar 1948 / Qatar Grid",9001,4286,19953,9806,1,0,4400,8801,25.22565,9110,8802,50.4541,9110,8806,100000,9001,8807,100000,9001,,,,,,,,,,,,,,,, +2100,"GGRS87 / Greek Grid",9001,4121,19930,9807,1,0,4400,8801,0,9102,8802,24,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2101,"Lake / Maracaibo Grid M1",9001,4249,18260,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,0,9001,8807,-52684.972,9001,,,,,,,,,,,,, +2102,"Lake / Maracaibo Grid",9001,4249,18261,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,200000,9001,8807,147315.028,9001,,,,,,,,,,,,, +2103,"Lake / Maracaibo Grid M3",9001,4249,18262,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,500000,9001,8807,447315.028,9001,,,,,,,,,,,,, +2104,"Lake / Maracaibo La Rosa Grid",9001,4249,18263,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,-17044,9001,8807,-23139.97,9001,,,,,,,,,,,,, +2105,"NZGD2000 / Mount Eden 2000",9001,4167,17931,9807,1,0,4500,8801,-36.5247,9110,8802,174.4551,9110,8805,0.9999,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2106,"NZGD2000 / Bay of Plenty 2000",9001,4167,17932,9807,1,0,4500,8801,-37.454,9110,8802,176.2758,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2107,"NZGD2000 / Poverty Bay 2000",9001,4167,17933,9807,1,0,4500,8801,-38.3728,9110,8802,177.5308,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2108,"NZGD2000 / Hawkes Bay 2000",9001,4167,17934,9807,1,0,4500,8801,-39.3903,9110,8802,176.4025,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2109,"NZGD2000 / Taranaki 2000",9001,4167,17935,9807,1,0,4500,8801,-39.0808,9110,8802,174.134,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2110,"NZGD2000 / Tuhirangi 2000",9001,4167,17936,9807,1,0,4500,8801,-39.3044,9110,8802,175.3824,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2111,"NZGD2000 / Wanganui 2000",9001,4167,17937,9807,1,0,4500,8801,-40.1431,9110,8802,175.2917,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2112,"NZGD2000 / Wairarapa 2000",9001,4167,17938,9807,1,0,4500,8801,-40.5531,9110,8802,175.385,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2113,"NZGD2000 / Wellington 2000",9001,4167,17939,9807,1,0,4500,8801,-41.1804,9110,8802,174.4635,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2114,"NZGD2000 / Collingwood 2000",9001,4167,17940,9807,1,0,4500,8801,-40.4253,9110,8802,172.4019,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2115,"NZGD2000 / Nelson 2000",9001,4167,17941,9807,1,0,4500,8801,-41.1628,9110,8802,173.1757,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2116,"NZGD2000 / Karamea 2000",9001,4167,17942,9807,1,0,4500,8801,-41.1723,9110,8802,172.0632,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2117,"NZGD2000 / Buller 2000",9001,4167,17943,9807,1,0,4500,8801,-41.4838,9110,8802,171.3452,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2118,"NZGD2000 / Grey 2000",9001,4167,17944,9807,1,0,4500,8801,-42.2001,9110,8802,171.3259,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2119,"NZGD2000 / Amuri 2000",9001,4167,17945,9807,1,0,4500,8801,-42.412,9110,8802,173.0036,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2120,"NZGD2000 / Marlborough 2000",9001,4167,17946,9807,1,0,4500,8801,-41.324,9110,8802,173.4807,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2121,"NZGD2000 / Hokitika 2000",9001,4167,17947,9807,1,0,4500,8801,-42.531,9110,8802,170.5847,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2122,"NZGD2000 / Okarito 2000",9001,4167,17948,9807,1,0,4500,8801,-43.0636,9110,8802,170.1539,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2123,"NZGD2000 / Jacksons Bay 2000",9001,4167,17949,9807,1,0,4500,8801,-43.584,9110,8802,168.3622,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2124,"NZGD2000 / Mount Pleasant 2000",9001,4167,17950,9807,1,0,4500,8801,-43.3526,9110,8802,172.4337,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2125,"NZGD2000 / Gawler 2000",9001,4167,17951,9807,1,0,4500,8801,-43.4455,9110,8802,171.2138,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2126,"NZGD2000 / Timaru 2000",9001,4167,17952,9807,1,0,4500,8801,-44.2407,9110,8802,171.0326,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2127,"NZGD2000 / Lindis Peak 2000",9001,4167,17953,9807,1,0,4500,8801,-44.4406,9110,8802,169.2803,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2128,"NZGD2000 / Mount Nicholas 2000",9001,4167,17954,9807,1,0,4500,8801,-45.0758,9110,8802,168.2355,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2129,"NZGD2000 / Mount York 2000",9001,4167,17955,9807,1,0,4500,8801,-45.3349,9110,8802,167.4419,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2130,"NZGD2000 / Observation Point 2000",9001,4167,17956,9807,1,0,4500,8801,-45.4858,9110,8802,170.3742,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2131,"NZGD2000 / North Taieri 2000",9001,4167,17957,9807,1,0,4500,8801,-45.5141,9110,8802,170.1657,9110,8805,0.99996,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2132,"NZGD2000 / Bluff 2000",9001,4167,17958,9807,1,0,4500,8801,-46.36,9110,8802,168.2034,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2133,"NZGD2000 / UTM zone 58S",9001,4167,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2134,"NZGD2000 / UTM zone 59S",9001,4167,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2135,"NZGD2000 / UTM zone 60S",9001,4167,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2136,"Accra / Ghana National Grid",9094,4168,19959,9807,1,0,4404,8801,4.4,9110,8802,-1,9110,8805,0.99975,9201,8806,900000,9094,8807,0,9094,,,,,,,,,,,,, +2137,"Accra / TM 1 NW",9001,4168,17001,9807,1,0,4400,8801,0,9102,8802,-1,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2138,"NAD27(CGQ77) / Quebec Lambert",9001,4609,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +2139,"NAD83(CSRS98) / SCoPQ zone 2",9001,4140,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2140,"NAD83(CSRS98) / MTM zone 3",9001,4140,17703,9807,1,1,4496,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2141,"NAD83(CSRS98) / MTM zone 4",9001,4140,17704,9807,1,1,4496,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2142,"NAD83(CSRS98) / MTM zone 5",9001,4140,17705,9807,1,1,4496,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2143,"NAD83(CSRS98) / MTM zone 6",9001,4140,17706,9807,1,1,4496,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2144,"NAD83(CSRS98) / MTM zone 7",9001,4140,17707,9807,1,1,4496,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2145,"NAD83(CSRS98) / MTM zone 8",9001,4140,17708,9807,1,1,4496,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2146,"NAD83(CSRS98) / MTM zone 9",9001,4140,17709,9807,1,1,4496,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2147,"NAD83(CSRS98) / MTM zone 10",9001,4140,17710,9807,1,1,4496,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2148,"NAD83(CSRS98) / UTM zone 21N",9001,4140,16021,9807,1,1,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2149,"NAD83(CSRS98) / UTM zone 18N",9001,4140,16018,9807,1,1,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2150,"NAD83(CSRS98) / UTM zone 17N",9001,4140,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2151,"NAD83(CSRS98) / UTM zone 13N",9001,4140,16013,9807,1,1,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2152,"NAD83(CSRS98) / UTM zone 12N",9001,4140,16012,9807,1,1,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2153,"NAD83(CSRS98) / UTM zone 11N",9001,4140,16011,9807,1,1,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2154,"RGF93 / Lambert-93",9001,4171,18085,9802,1,0,4499,8821,46.3,9110,8822,3,9110,8823,49,9110,8824,44,9110,8826,700000,9001,8827,6600000,9001,,,,,,,,,, +2155,"American Samoa 1962 / American Samoa Lambert",9003,4169,15300,9801,1,1,4497,8801,-14.16,9110,8802,170,9110,8805,1,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +2156,"NAD83(HARN) / UTM zone 59S",9001,4152,16159,9807,1,1,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2157,"IRENET95 / Irish Transverse Mercator",9001,4173,19962,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,0.99982,9201,8806,600000,9001,8807,750000,9001,,,,,,,,,,,,, +2158,"IRENET95 / UTM zone 29N",9001,4173,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2159,"Sierra Leone 1924 / New Colony Grid",9094,4174,19963,9807,1,0,4404,8801,6.4,9110,8802,-12,9110,8805,1,9201,8806,500000,9094,8807,0,9094,,,,,,,,,,,,, +2160,"Sierra Leone 1924 / New War Office Grid",9094,4174,19964,9807,1,0,4404,8801,6.4,9110,8802,-12,9110,8805,1,9201,8806,800000,9094,8807,600000,9094,,,,,,,,,,,,, +2161,"Sierra Leone 1968 / UTM zone 28N",9001,4175,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2162,"Sierra Leone 1968 / UTM zone 29N",9001,4175,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2163,US National Atlas Equal Area,9001,4052,3899,1027,1,0,4499,8801,45,9102,8802,-100,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +2164,"Locodjo 1965 / TM 5 NW",9001,4142,17005,9807,1,0,4400,8801,0,9102,8802,-5,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2165,"Abidjan 1987 / TM 5 NW",9001,4143,17005,9807,1,0,4400,8801,0,9102,8802,-5,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2166,"Pulkovo 1942(83) / Gauss Kruger zone 3",9001,4178,16263,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +2167,"Pulkovo 1942(83) / Gauss Kruger zone 4",9001,4178,16264,9807,1,1,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +2168,"Pulkovo 1942(83) / Gauss Kruger zone 5",9001,4178,16265,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +2169,"Luxembourg 1930 / Gauss",9001,4181,19966,9807,1,0,4530,8801,49.5,9110,8802,6.1,9110,8805,1,9201,8806,80000,9001,8807,100000,9001,,,,,,,,,,,,, +2170,"MGI / Slovenia Grid",9001,4312,19967,9807,1,1,4530,8801,0,9110,8802,15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2171,"Pulkovo 1942(58) / Poland zone I",9001,4179,18281,9809,1,1,4530,8801,50.373,9110,8802,21.05,9110,8805,0.9998,9201,8806,4637000,9001,8807,5647000,9001,,,,,,,,,,,,, +2172,"Pulkovo 1942(58) / Poland zone II",9001,4179,18282,9809,1,0,4530,8801,53.0007,9110,8802,21.301,9110,8805,0.9998,9201,8806,4603000,9001,8807,5806000,9001,,,,,,,,,,,,, +2173,"Pulkovo 1942(58) / Poland zone III",9001,4179,18283,9809,1,0,4530,8801,53.35,9110,8802,17.003,9110,8805,0.9998,9201,8806,3501000,9001,8807,5999000,9001,,,,,,,,,,,,, +2174,"Pulkovo 1942(58) / Poland zone IV",9001,4179,18284,9809,1,0,4530,8801,51.4015,9110,8802,16.402,9110,8805,0.9998,9201,8806,3703000,9001,8807,5627000,9001,,,,,,,,,,,,, +2175,"Pulkovo 1942(58) / Poland zone V",9001,4179,18285,9807,1,0,4530,8801,0,9110,8802,18.573,9110,8805,0.999983,9201,8806,237000,9001,8807,-4700000,9001,,,,,,,,,,,,, +2176,"ETRS89 / Poland CS2000 zone 5",9001,4258,18305,9807,1,0,4531,8801,0,9102,8802,15,9102,8805,0.999923,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +2177,"ETRS89 / Poland CS2000 zone 6",9001,4258,18306,9807,1,0,4531,8801,0,9102,8802,18,9102,8805,0.999923,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +2178,"ETRS89 / Poland CS2000 zone 7",9001,4258,18307,9807,1,0,4531,8801,0,9102,8802,21,9102,8805,0.999923,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +2179,"ETRS89 / Poland CS2000 zone 8",9001,4258,18308,9807,1,0,4531,8801,0,9102,8802,24,9102,8805,0.999923,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +2180,"ETRS89 / Poland CS92",9001,4258,18300,9807,1,0,4531,8801,0,9102,8802,19,9102,8805,0.9993,9201,8806,500000,9001,8807,-5300000,9001,,,,,,,,,,,,, +2188,"Azores Occidental 1939 / UTM zone 25N",9001,4182,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2189,"Azores Central 1948 / UTM zone 26N",9001,4183,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2190,"Azores Oriental 1940 / UTM zone 26N",9001,4184,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2191,"Madeira 1936 / UTM zone 28N",9001,4185,16028,9807,1,1,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2192,"ED50 / France EuroLambert",9001,4230,18086,9801,1,1,4499,8801,46.48,9110,8802,2.2014025,9110,8805,0.99987742,9201,8806,600000,9001,8807,2200000,9001,,,,,,,,,,,,, +2193,"NZGD2000 / New Zealand Transverse Mercator 2000",9001,4167,19971,9807,1,0,4500,8801,0,9102,8802,173,9102,8805,0.9996,9201,8806,1600000,9001,8807,10000000,9001,,,,,,,,,,,,, +2194,"American Samoa 1962 / American Samoa Lambert",9003,4169,15301,9801,1,1,4497,8801,-14.16,9110,8802,-170,9110,8805,1,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +2195,"NAD83(HARN) / UTM zone 2S",9001,4152,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2196,"ETRS89 / Kp2000 Jutland",9001,4258,18401,9807,1,0,4400,8801,0,9110,8802,9.3,9110,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2197,"ETRS89 / Kp2000 Zealand",9001,4258,18402,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2198,"ETRS89 / Kp2000 Bornholm",9001,4258,18403,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,, +2199,"Albanian 1987 / Gauss Kruger zone 4",9001,4191,16204,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +2200,"ATS77 / New Brunswick Stereographic (ATS77)",9001,4122,19945,9809,1,0,4500,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,300000,9001,8807,800000,9001,,,,,,,,,,,,, +2201,"REGVEN / UTM zone 18N",9001,4189,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2202,"REGVEN / UTM zone 19N",9001,4189,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2203,"REGVEN / UTM zone 20N",9001,4189,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2204,"NAD27 / Tennessee",9003,4267,15302,9802,1,0,4497,8821,34.4,9110,8822,-86,9110,8823,35.15,9110,8824,36.25,9110,8826,2000000,9003,8827,100000,9003,,,,,,,,,, +2205,"NAD83 / Kentucky North",9001,4269,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2206,"ED50 / 3-degree Gauss-Kruger zone 9",9001,4230,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +2207,"ED50 / 3-degree Gauss-Kruger zone 10",9001,4230,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +2208,"ED50 / 3-degree Gauss-Kruger zone 11",9001,4230,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +2209,"ED50 / 3-degree Gauss-Kruger zone 12",9001,4230,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +2210,"ED50 / 3-degree Gauss-Kruger zone 13",9001,4230,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +2211,"ED50 / 3-degree Gauss-Kruger zone 14",9001,4230,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +2212,"ED50 / 3-degree Gauss-Kruger zone 15",9001,4230,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +2213,"ETRS89 / TM 30 NE",9001,4258,16430,9807,1,0,4400,8801,0,9102,8802,30,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2214,"Douala 1948 / AOF west",9001,4192,18415,9807,1,1,4400,8801,0,9110,8802,10.3,9110,8805,0.999,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +2215,"Manoca 1962 / UTM zone 32N",9001,4193,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2216,"Qornoq 1927 / UTM zone 22N",9001,4194,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2217,"Qornoq 1927 / UTM zone 23N",9001,4194,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2218,"Scoresbysund 1952 / Greenland zone 5 east",9001,4195,18425,9826,1,0,1031,8801,70.3,9110,8802,-24,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2219,"ATS77 / UTM zone 19N",9001,4122,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2220,"ATS77 / UTM zone 20N",9001,4122,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2221,"Scoresbysund 1952 / Greenland zone 6 east",9001,4195,18426,9826,1,0,1031,8801,67.3,9110,8802,-32,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2222,"NAD83 / Arizona East (ft)",9002,4269,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +2223,"NAD83 / Arizona Central (ft)",9002,4269,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +2224,"NAD83 / Arizona West (ft)",9002,4269,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +2225,"NAD83 / California zone 1 (ftUS)",9003,4269,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2226,"NAD83 / California zone 2 (ftUS)",9003,4269,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2227,"NAD83 / California zone 3 (ftUS)",9003,4269,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2228,"NAD83 / California zone 4 (ftUS)",9003,4269,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2229,"NAD83 / California zone 5 (ftUS)",9003,4269,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2230,"NAD83 / California zone 6 (ftUS)",9003,4269,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2231,"NAD83 / Colorado North (ftUS)",9003,4269,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +2232,"NAD83 / Colorado Central (ftUS)",9003,4269,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +2233,"NAD83 / Colorado South (ftUS)",9003,4269,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +2234,"NAD83 / Connecticut (ftUS)",9003,4269,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,, +2235,"NAD83 / Delaware (ftUS)",9003,4269,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2236,"NAD83 / Florida East (ftUS)",9003,4269,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2237,"NAD83 / Florida West (ftUS)",9003,4269,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2238,"NAD83 / Florida North (ftUS)",9003,4269,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2239,"NAD83 / Georgia East (ftUS)",9003,4269,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2240,"NAD83 / Georgia West (ftUS)",9003,4269,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +2241,"NAD83 / Idaho East (ftUS)",9003,4269,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2242,"NAD83 / Idaho Central (ftUS)",9003,4269,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +2243,"NAD83 / Idaho West (ftUS)",9003,4269,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,, +2244,"NAD83 / Indiana East (ftUS)",9003,4269,15326,9807,1,1,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,818125,9003,,,,,,,,,,,,, +2245,"NAD83 / Indiana West (ftUS)",9003,4269,15327,9807,1,1,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,818125,9003,,,,,,,,,,,,, +2246,"NAD83 / Kentucky North (ftUS)",9003,4269,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2247,"NAD83 / Kentucky South (ftUS)",9003,4269,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,, +2248,"NAD83 / Maryland (ftUS)",9003,4269,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,, +2249,"NAD83 / Massachusetts Mainland (ftUS)",9003,4269,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,, +2250,"NAD83 / Massachusetts Island (ftUS)",9003,4269,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2251,"NAD83 / Michigan North (ft)",9002,4269,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,, +2252,"NAD83 / Michigan Central (ft)",9002,4269,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,, +2253,"NAD83 / Michigan South (ft)",9002,4269,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,, +2254,"NAD83 / Mississippi East (ftUS)",9003,4269,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +2255,"NAD83 / Mississippi West (ftUS)",9003,4269,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +2256,"NAD83 / Montana (ft)",9002,4269,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +2257,"NAD83 / New Mexico East (ftUS)",9003,4269,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,, +2258,"NAD83 / New Mexico Central (ftUS)",9003,4269,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +2259,"NAD83 / New Mexico West (ftUS)",9003,4269,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,, +2260,"NAD83 / New York East (ftUS)",9003,4269,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +2261,"NAD83 / New York Central (ftUS)",9003,4269,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,, +2262,"NAD83 / New York West (ftUS)",9003,4269,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,, +2263,"NAD83 / New York Long Island (ftUS)",9003,4269,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,, +2264,"NAD83 / North Carolina (ftUS)",9003,4269,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +2265,"NAD83 / North Dakota North (ft)",9002,4269,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +2266,"NAD83 / North Dakota South (ft)",9002,4269,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +2267,"NAD83 / Oklahoma North (ftUS)",9003,4269,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2268,"NAD83 / Oklahoma South (ftUS)",9003,4269,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2269,"NAD83 / Oregon North (ft)",9002,4269,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,, +2270,"NAD83 / Oregon South (ft)",9002,4269,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,, +2271,"NAD83 / Pennsylvania North (ftUS)",9003,4269,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2272,"NAD83 / Pennsylvania South (ftUS)",9003,4269,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2273,"NAD83 / South Carolina (ft)",9002,4269,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,, +2274,"NAD83 / Tennessee (ftUS)",9003,4269,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2275,"NAD83 / Texas North (ftUS)",9003,4269,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,, +2276,"NAD83 / Texas North Central (ftUS)",9003,4269,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,, +2277,"NAD83 / Texas Central (ftUS)",9003,4269,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,, +2278,"NAD83 / Texas South Central (ftUS)",9003,4269,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,, +2279,"NAD83 / Texas South (ftUS)",9003,4269,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,, +2280,"NAD83 / Utah North (ft)",9002,4269,15362,9802,0,0,4495,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640419.948,9002,8827,3280839.895,9002,,,,,,,,,, +2281,"NAD83 / Utah Central (ft)",9002,4269,15363,9802,0,0,4495,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640419.948,9002,8827,6561679.79,9002,,,,,,,,,, +2282,"NAD83 / Utah South (ft)",9002,4269,15364,9802,0,0,4495,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640419.948,9002,8827,9842519.685,9002,,,,,,,,,, +2283,"NAD83 / Virginia North (ftUS)",9003,4269,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,, +2284,"NAD83 / Virginia South (ftUS)",9003,4269,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,, +2285,"NAD83 / Washington North (ftUS)",9003,4269,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2286,"NAD83 / Washington South (ftUS)",9003,4269,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2287,"NAD83 / Wisconsin North (ftUS)",9003,4269,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2288,"NAD83 / Wisconsin Central (ftUS)",9003,4269,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2289,"NAD83 / Wisconsin South (ftUS)",9003,4269,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2290,"ATS77 / Prince Edward Isl. Stereographic (ATS77)",9001,4122,19933,9809,1,0,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,700000,9001,8807,400000,9001,,,,,,,,,,,,, +2291,"NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83)",9001,4122,19960,9809,1,1,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2292,"NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83)",9001,4140,19960,9809,1,1,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2294,"ATS77 / MTM Nova Scotia zone 4",9001,4122,17794,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +2295,"ATS77 / MTM Nova Scotia zone 5",9001,4122,17795,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +2296,"Ammassalik 1958 / Greenland zone 7 east",9001,4196,18427,9826,1,0,1031,8801,64.3,9110,8802,-40,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2297,"Qornoq 1927 / Greenland zone 1 east",9001,4194,18421,9826,1,1,4501,8801,82.3,9110,8802,-40,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2298,"Qornoq 1927 / Greenland zone 2 east",9001,4194,18422,9826,1,1,4501,8801,79.3,9110,8802,-24,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2299,"Qornoq 1927 / Greenland zone 2 west",9001,4194,18432,9826,1,0,1031,8801,79.3,9110,8802,-64,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2300,"Qornoq 1927 / Greenland zone 3 east",9001,4194,18423,9826,1,1,4501,8801,76.3,9110,8802,-20,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2301,"Qornoq 1927 / Greenland zone 3 west",9001,4194,18433,9826,1,0,1031,8801,76.3,9110,8802,-64,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2302,"Qornoq 1927 / Greenland zone 4 east",9001,4194,18424,9826,1,1,4501,8801,73.3,9110,8802,-24,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2303,"Qornoq 1927 / Greenland zone 4 west",9001,4194,18434,9826,1,0,1031,8801,73.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2304,"Qornoq 1927 / Greenland zone 5 west",9001,4194,18435,9826,1,0,1031,8801,70.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2305,"Qornoq 1927 / Greenland zone 6 west",9001,4194,18436,9826,1,0,1031,8801,67.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2306,"Qornoq 1927 / Greenland zone 7 west",9001,4194,18437,9826,1,0,1031,8801,64.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2307,"Qornoq 1927 / Greenland zone 8 east",9001,4194,18428,9826,1,0,1031,8801,61.3,9110,8802,-48,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2308,"Batavia / TM 109 SE",9001,4211,16709,9807,1,0,4400,8801,0,9102,8802,109,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2309,"WGS 84 / TM 116 SE",9001,4326,16716,9807,1,0,4400,8801,0,9102,8802,116,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2310,"WGS 84 / TM 132 SE",9001,4326,16732,9807,1,0,4400,8801,0,9102,8802,132,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2311,"WGS 84 / TM 6 NE",9001,4326,16406,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2312,"Garoua / UTM zone 33N",9001,4197,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2313,"Kousseri / UTM zone 33N",9001,4198,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2314,"Trinidad 1903 / Trinidad Grid (ftCla)",9005,4302,19975,9806,1,0,4403,8801,10.263,9110,8802,-61.2,9110,8806,283800,9005,8807,214500,9005,,,,,,,,,,,,,,,, +2315,"Campo Inchauspe / UTM zone 19S",9001,4221,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2316,"Campo Inchauspe / UTM zone 20S",9001,4221,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2317,"PSAD56 / ICN Regional",9001,4248,19976,9802,1,0,4499,8821,6,9102,8822,-66,9102,8823,9,9102,8824,3,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +2318,"Ain el Abd / Aramco Lambert",9001,4204,19977,9802,1,0,4400,8821,25.0522236,9110,8822,48,9102,8823,17,9102,8824,33,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +2319,"ED50 / TM27",9001,4230,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2320,"ED50 / TM30",9001,4230,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2321,"ED50 / TM33",9001,4230,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2322,"ED50 / TM36",9001,4230,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2323,"ED50 / TM39",9001,4230,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2324,"ED50 / TM42",9001,4230,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2325,"ED50 / TM45",9001,4230,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2326,Hong Kong 1980 Grid System,9001,4611,19978,9807,1,0,4500,8801,22.184368,9110,8802,114.10428,9110,8805,1,9201,8806,836694.05,9001,8807,819069.8,9001,,,,,,,,,,,,, +2327,"Xian 1980 / Gauss-Kruger zone 13",9001,4610,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +2328,"Xian 1980 / Gauss-Kruger zone 14",9001,4610,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +2329,"Xian 1980 / Gauss-Kruger zone 15",9001,4610,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +2330,"Xian 1980 / Gauss-Kruger zone 16",9001,4610,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +2331,"Xian 1980 / Gauss-Kruger zone 17",9001,4610,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +2332,"Xian 1980 / Gauss-Kruger zone 18",9001,4610,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +2333,"Xian 1980 / Gauss-Kruger zone 19",9001,4610,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +2334,"Xian 1980 / Gauss-Kruger zone 20",9001,4610,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +2335,"Xian 1980 / Gauss-Kruger zone 21",9001,4610,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +2336,"Xian 1980 / Gauss-Kruger zone 22",9001,4610,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +2337,"Xian 1980 / Gauss-Kruger zone 23",9001,4610,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +2338,"Xian 1980 / Gauss-Kruger CM 75E",9001,4610,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2339,"Xian 1980 / Gauss-Kruger CM 81E",9001,4610,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2340,"Xian 1980 / Gauss-Kruger CM 87E",9001,4610,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2341,"Xian 1980 / Gauss-Kruger CM 93E",9001,4610,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2342,"Xian 1980 / Gauss-Kruger CM 99E",9001,4610,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2343,"Xian 1980 / Gauss-Kruger CM 105E",9001,4610,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2344,"Xian 1980 / Gauss-Kruger CM 111E",9001,4610,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2345,"Xian 1980 / Gauss-Kruger CM 117E",9001,4610,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2346,"Xian 1980 / Gauss-Kruger CM 123E",9001,4610,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2347,"Xian 1980 / Gauss-Kruger CM 129E",9001,4610,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2348,"Xian 1980 / Gauss-Kruger CM 135E",9001,4610,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2349,"Xian 1980 / 3-degree Gauss-Kruger zone 25",9001,4610,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +2350,"Xian 1980 / 3-degree Gauss-Kruger zone 26",9001,4610,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +2351,"Xian 1980 / 3-degree Gauss-Kruger zone 27",9001,4610,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +2352,"Xian 1980 / 3-degree Gauss-Kruger zone 28",9001,4610,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +2353,"Xian 1980 / 3-degree Gauss-Kruger zone 29",9001,4610,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +2354,"Xian 1980 / 3-degree Gauss-Kruger zone 30",9001,4610,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +2355,"Xian 1980 / 3-degree Gauss-Kruger zone 31",9001,4610,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +2356,"Xian 1980 / 3-degree Gauss-Kruger zone 32",9001,4610,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +2357,"Xian 1980 / 3-degree Gauss-Kruger zone 33",9001,4610,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +2358,"Xian 1980 / 3-degree Gauss-Kruger zone 34",9001,4610,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,, +2359,"Xian 1980 / 3-degree Gauss-Kruger zone 35",9001,4610,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,, +2360,"Xian 1980 / 3-degree Gauss-Kruger zone 36",9001,4610,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,, +2361,"Xian 1980 / 3-degree Gauss-Kruger zone 37",9001,4610,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,, +2362,"Xian 1980 / 3-degree Gauss-Kruger zone 38",9001,4610,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,, +2363,"Xian 1980 / 3-degree Gauss-Kruger zone 39",9001,4610,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,, +2364,"Xian 1980 / 3-degree Gauss-Kruger zone 40",9001,4610,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,, +2365,"Xian 1980 / 3-degree Gauss-Kruger zone 41",9001,4610,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,, +2366,"Xian 1980 / 3-degree Gauss-Kruger zone 42",9001,4610,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,, +2367,"Xian 1980 / 3-degree Gauss-Kruger zone 43",9001,4610,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,, +2368,"Xian 1980 / 3-degree Gauss-Kruger zone 44",9001,4610,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,, +2369,"Xian 1980 / 3-degree Gauss-Kruger zone 45",9001,4610,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,, +2370,"Xian 1980 / 3-degree Gauss-Kruger CM 75E",9001,4610,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2371,"Xian 1980 / 3-degree Gauss-Kruger CM 78E",9001,4610,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2372,"Xian 1980 / 3-degree Gauss-Kruger CM 81E",9001,4610,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2373,"Xian 1980 / 3-degree Gauss-Kruger CM 84E",9001,4610,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2374,"Xian 1980 / 3-degree Gauss-Kruger CM 87E",9001,4610,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2375,"Xian 1980 / 3-degree Gauss-Kruger CM 90E",9001,4610,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2376,"Xian 1980 / 3-degree Gauss-Kruger CM 93E",9001,4610,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2377,"Xian 1980 / 3-degree Gauss-Kruger CM 96E",9001,4610,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2378,"Xian 1980 / 3-degree Gauss-Kruger CM 99E",9001,4610,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2379,"Xian 1980 / 3-degree Gauss-Kruger CM 102E",9001,4610,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2380,"Xian 1980 / 3-degree Gauss-Kruger CM 105E",9001,4610,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2381,"Xian 1980 / 3-degree Gauss-Kruger CM 108E",9001,4610,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2382,"Xian 1980 / 3-degree Gauss-Kruger CM 111E",9001,4610,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2383,"Xian 1980 / 3-degree Gauss-Kruger CM 114E",9001,4610,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2384,"Xian 1980 / 3-degree Gauss-Kruger CM 117E",9001,4610,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2385,"Xian 1980 / 3-degree Gauss-Kruger CM 120E",9001,4610,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2386,"Xian 1980 / 3-degree Gauss-Kruger CM 123E",9001,4610,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2387,"Xian 1980 / 3-degree Gauss-Kruger CM 126E",9001,4610,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2388,"Xian 1980 / 3-degree Gauss-Kruger CM 129E",9001,4610,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2389,"Xian 1980 / 3-degree Gauss-Kruger CM 132E",9001,4610,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2390,"Xian 1980 / 3-degree Gauss-Kruger CM 135E",9001,4610,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2391,"KKJ / Finland zone 1",9001,4123,18191,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +2392,"KKJ / Finland zone 2",9001,4123,18192,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +2393,"KKJ / Finland Uniform Coordinate System",9001,4123,18193,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +2394,"KKJ / Finland zone 4",9001,4123,18194,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +2395,"South Yemen / Gauss-Kruger zone 8",9001,4164,16208,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +2396,"South Yemen / Gauss-Kruger zone 9",9001,4164,16209,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +2397,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3",9001,4178,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01 +2398,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4",9001,4178,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01 +2399,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5",9001,4178,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01 +2400,RT90 2.5 gon W,9001,4124,19929,9807,1,1,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +2401,"Beijing 1954 / 3-degree Gauss-Kruger zone 25",9001,4214,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +2402,"Beijing 1954 / 3-degree Gauss-Kruger zone 26",9001,4214,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +2403,"Beijing 1954 / 3-degree Gauss-Kruger zone 27",9001,4214,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +2404,"Beijing 1954 / 3-degree Gauss-Kruger zone 28",9001,4214,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +2405,"Beijing 1954 / 3-degree Gauss-Kruger zone 29",9001,4214,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +2406,"Beijing 1954 / 3-degree Gauss-Kruger zone 30",9001,4214,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +2407,"Beijing 1954 / 3-degree Gauss-Kruger zone 31",9001,4214,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +2408,"Beijing 1954 / 3-degree Gauss-Kruger zone 32",9001,4214,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +2409,"Beijing 1954 / 3-degree Gauss-Kruger zone 33",9001,4214,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +2410,"Beijing 1954 / 3-degree Gauss-Kruger zone 34",9001,4214,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,, +2411,"Beijing 1954 / 3-degree Gauss-Kruger zone 35",9001,4214,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,, +2412,"Beijing 1954 / 3-degree Gauss-Kruger zone 36",9001,4214,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,, +2413,"Beijing 1954 / 3-degree Gauss-Kruger zone 37",9001,4214,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,, +2414,"Beijing 1954 / 3-degree Gauss-Kruger zone 38",9001,4214,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,, +2415,"Beijing 1954 / 3-degree Gauss-Kruger zone 39",9001,4214,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,, +2416,"Beijing 1954 / 3-degree Gauss-Kruger zone 40",9001,4214,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,, +2417,"Beijing 1954 / 3-degree Gauss-Kruger zone 41",9001,4214,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,, +2418,"Beijing 1954 / 3-degree Gauss-Kruger zone 42",9001,4214,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,, +2419,"Beijing 1954 / 3-degree Gauss-Kruger zone 43",9001,4214,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,, +2420,"Beijing 1954 / 3-degree Gauss-Kruger zone 44",9001,4214,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,, +2421,"Beijing 1954 / 3-degree Gauss-Kruger zone 45",9001,4214,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,, +2422,"Beijing 1954 / 3-degree Gauss-Kruger CM 75E",9001,4214,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2423,"Beijing 1954 / 3-degree Gauss-Kruger CM 78E",9001,4214,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2424,"Beijing 1954 / 3-degree Gauss-Kruger CM 81E",9001,4214,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2425,"Beijing 1954 / 3-degree Gauss-Kruger CM 84E",9001,4214,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2426,"Beijing 1954 / 3-degree Gauss-Kruger CM 87E",9001,4214,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2427,"Beijing 1954 / 3-degree Gauss-Kruger CM 90E",9001,4214,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2428,"Beijing 1954 / 3-degree Gauss-Kruger CM 93E",9001,4214,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2429,"Beijing 1954 / 3-degree Gauss-Kruger CM 96E",9001,4214,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2430,"Beijing 1954 / 3-degree Gauss-Kruger CM 99E",9001,4214,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2431,"Beijing 1954 / 3-degree Gauss-Kruger CM 102E",9001,4214,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2432,"Beijing 1954 / 3-degree Gauss-Kruger CM 105E",9001,4214,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2433,"Beijing 1954 / 3-degree Gauss-Kruger CM 108E",9001,4214,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2434,"Beijing 1954 / 3-degree Gauss-Kruger CM 111E",9001,4214,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2435,"Beijing 1954 / 3-degree Gauss-Kruger CM 114E",9001,4214,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2436,"Beijing 1954 / 3-degree Gauss-Kruger CM 117E",9001,4214,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2437,"Beijing 1954 / 3-degree Gauss-Kruger CM 120E",9001,4214,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2438,"Beijing 1954 / 3-degree Gauss-Kruger CM 123E",9001,4214,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2439,"Beijing 1954 / 3-degree Gauss-Kruger CM 126E",9001,4214,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2440,"Beijing 1954 / 3-degree Gauss-Kruger CM 129E",9001,4214,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2441,"Beijing 1954 / 3-degree Gauss-Kruger CM 132E",9001,4214,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2442,"Beijing 1954 / 3-degree Gauss-Kruger CM 135E",9001,4214,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2443,"JGD2000 / Japan Plane Rectangular CS I",9001,4612,17801,9807,1,0,4530,8801,33,9110,8802,129.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2444,"JGD2000 / Japan Plane Rectangular CS II",9001,4612,17802,9807,1,0,4530,8801,33,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2445,"JGD2000 / Japan Plane Rectangular CS III",9001,4612,17803,9807,1,0,4530,8801,36,9110,8802,132.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2446,"JGD2000 / Japan Plane Rectangular CS IV",9001,4612,17804,9807,1,0,4530,8801,33,9110,8802,133.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2447,"JGD2000 / Japan Plane Rectangular CS V",9001,4612,17805,9807,1,0,4530,8801,36,9110,8802,134.2,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2448,"JGD2000 / Japan Plane Rectangular CS VI",9001,4612,17806,9807,1,0,4530,8801,36,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2449,"JGD2000 / Japan Plane Rectangular CS VII",9001,4612,17807,9807,1,0,4530,8801,36,9110,8802,137.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2450,"JGD2000 / Japan Plane Rectangular CS VIII",9001,4612,17808,9807,1,0,4530,8801,36,9110,8802,138.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2451,"JGD2000 / Japan Plane Rectangular CS IX",9001,4612,17809,9807,1,0,4530,8801,36,9110,8802,139.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2452,"JGD2000 / Japan Plane Rectangular CS X",9001,4612,17810,9807,1,0,4530,8801,40,9110,8802,140.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2453,"JGD2000 / Japan Plane Rectangular CS XI",9001,4612,17811,9807,1,0,4530,8801,44,9110,8802,140.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2454,"JGD2000 / Japan Plane Rectangular CS XII",9001,4612,17812,9807,1,0,4530,8801,44,9110,8802,142.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2455,"JGD2000 / Japan Plane Rectangular CS XIII",9001,4612,17813,9807,1,0,4530,8801,44,9110,8802,144.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2456,"JGD2000 / Japan Plane Rectangular CS XIV",9001,4612,17814,9807,1,0,4530,8801,26,9110,8802,142,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2457,"JGD2000 / Japan Plane Rectangular CS XV",9001,4612,17815,9807,1,0,4530,8801,26,9110,8802,127.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2458,"JGD2000 / Japan Plane Rectangular CS XVI",9001,4612,17816,9807,1,0,4530,8801,26,9110,8802,124,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2459,"JGD2000 / Japan Plane Rectangular CS XVII",9001,4612,17817,9807,1,0,4530,8801,26,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2460,"JGD2000 / Japan Plane Rectangular CS XVIII",9001,4612,17818,9807,1,0,4530,8801,20,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2461,"JGD2000 / Japan Plane Rectangular CS XIX",9001,4612,17819,9807,1,0,4530,8801,26,9110,8802,154,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +2462,"Albanian 1987 / Gauss-Kruger zone 4",9001,4191,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +2463,"Pulkovo 1995 / Gauss-Kruger CM 21E",9001,4200,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2464,"Pulkovo 1995 / Gauss-Kruger CM 27E",9001,4200,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2465,"Pulkovo 1995 / Gauss-Kruger CM 33E",9001,4200,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2466,"Pulkovo 1995 / Gauss-Kruger CM 39E",9001,4200,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2467,"Pulkovo 1995 / Gauss-Kruger CM 45E",9001,4200,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2468,"Pulkovo 1995 / Gauss-Kruger CM 51E",9001,4200,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2469,"Pulkovo 1995 / Gauss-Kruger CM 57E",9001,4200,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2470,"Pulkovo 1995 / Gauss-Kruger CM 63E",9001,4200,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2471,"Pulkovo 1995 / Gauss-Kruger CM 69E",9001,4200,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2472,"Pulkovo 1995 / Gauss-Kruger CM 75E",9001,4200,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2473,"Pulkovo 1995 / Gauss-Kruger CM 81E",9001,4200,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2474,"Pulkovo 1995 / Gauss-Kruger CM 87E",9001,4200,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2475,"Pulkovo 1995 / Gauss-Kruger CM 93E",9001,4200,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2476,"Pulkovo 1995 / Gauss-Kruger CM 99E",9001,4200,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2477,"Pulkovo 1995 / Gauss-Kruger CM 105E",9001,4200,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2478,"Pulkovo 1995 / Gauss-Kruger CM 111E",9001,4200,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2479,"Pulkovo 1995 / Gauss-Kruger CM 117E",9001,4200,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2480,"Pulkovo 1995 / Gauss-Kruger CM 123E",9001,4200,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2481,"Pulkovo 1995 / Gauss-Kruger CM 129E",9001,4200,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2482,"Pulkovo 1995 / Gauss-Kruger CM 135E",9001,4200,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2483,"Pulkovo 1995 / Gauss-Kruger CM 141E",9001,4200,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2484,"Pulkovo 1995 / Gauss-Kruger CM 147E",9001,4200,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2485,"Pulkovo 1995 / Gauss-Kruger CM 153E",9001,4200,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2486,"Pulkovo 1995 / Gauss-Kruger CM 159E",9001,4200,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2487,"Pulkovo 1995 / Gauss-Kruger CM 165E",9001,4200,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2488,"Pulkovo 1995 / Gauss-Kruger CM 171E",9001,4200,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2489,"Pulkovo 1995 / Gauss-Kruger CM 177E",9001,4200,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2490,"Pulkovo 1995 / Gauss-Kruger CM 177W",9001,4200,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2491,"Pulkovo 1995 / Gauss-Kruger CM 171W",9001,4200,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2492,"Pulkovo 1942 / Gauss-Kruger CM 9E",9001,4284,16302,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2493,"Pulkovo 1942 / Gauss-Kruger CM 15E",9001,4284,16303,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2494,"Pulkovo 1942 / Gauss-Kruger CM 21E",9001,4284,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2495,"Pulkovo 1942 / Gauss-Kruger CM 27E",9001,4284,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2496,"Pulkovo 1942 / Gauss-Kruger CM 33E",9001,4284,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2497,"Pulkovo 1942 / Gauss-Kruger CM 39E",9001,4284,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2498,"Pulkovo 1942 / Gauss-Kruger CM 45E",9001,4284,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2499,"Pulkovo 1942 / Gauss-Kruger CM 51E",9001,4284,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2500,"Pulkovo 1942 / Gauss-Kruger CM 57E",9001,4284,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2501,"Pulkovo 1942 / Gauss-Kruger CM 63E",9001,4284,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2502,"Pulkovo 1942 / Gauss-Kruger CM 69E",9001,4284,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2503,"Pulkovo 1942 / Gauss-Kruger CM 75E",9001,4284,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2504,"Pulkovo 1942 / Gauss-Kruger CM 81E",9001,4284,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2505,"Pulkovo 1942 / Gauss-Kruger CM 87E",9001,4284,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2506,"Pulkovo 1942 / Gauss-Kruger CM 93E",9001,4284,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2507,"Pulkovo 1942 / Gauss-Kruger CM 99E",9001,4284,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2508,"Pulkovo 1942 / Gauss-Kruger CM 105E",9001,4284,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2509,"Pulkovo 1942 / Gauss-Kruger CM 111E",9001,4284,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2510,"Pulkovo 1942 / Gauss-Kruger CM 117E",9001,4284,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2511,"Pulkovo 1942 / Gauss-Kruger CM 123E",9001,4284,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2512,"Pulkovo 1942 / Gauss-Kruger CM 129E",9001,4284,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2513,"Pulkovo 1942 / Gauss-Kruger CM 135E",9001,4284,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2514,"Pulkovo 1942 / Gauss-Kruger CM 141E",9001,4284,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2515,"Pulkovo 1942 / Gauss-Kruger CM 147E",9001,4284,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2516,"Pulkovo 1942 / Gauss-Kruger CM 153E",9001,4284,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2517,"Pulkovo 1942 / Gauss-Kruger CM 159E",9001,4284,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2518,"Pulkovo 1942 / Gauss-Kruger CM 165E",9001,4284,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2519,"Pulkovo 1942 / Gauss-Kruger CM 171E",9001,4284,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2520,"Pulkovo 1942 / Gauss-Kruger CM 177E",9001,4284,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2521,"Pulkovo 1942 / Gauss-Kruger CM 177W",9001,4284,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2522,"Pulkovo 1942 / Gauss-Kruger CM 171W",9001,4284,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2523,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 7",9001,4284,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +2524,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 8",9001,4284,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +2525,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 9",9001,4284,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +2526,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 10",9001,4284,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +2527,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 11",9001,4284,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +2528,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 12",9001,4284,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +2529,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 13",9001,4284,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +2530,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 14",9001,4284,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +2531,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 15",9001,4284,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +2532,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 16",9001,4284,16276,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +2533,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 17",9001,4284,16277,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +2534,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 18",9001,4284,16278,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +2535,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 19",9001,4284,16279,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +2536,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 20",9001,4284,16280,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +2537,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 21",9001,4284,16281,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +2538,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 22",9001,4284,16282,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +2539,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 23",9001,4284,16283,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +2540,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 24",9001,4284,16284,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +2541,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 25",9001,4284,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +2542,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 26",9001,4284,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +2543,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 27",9001,4284,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +2544,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 28",9001,4284,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +2545,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 29",9001,4284,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +2546,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 30",9001,4284,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +2547,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 31",9001,4284,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +2548,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 32",9001,4284,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +2549,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 33",9001,4284,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +2550,"Samboja / UTM zone 50S",9001,4125,16150,9807,1,1,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2551,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 34",9001,4284,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,, +2552,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 35",9001,4284,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,, +2553,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 36",9001,4284,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,, +2554,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 37",9001,4284,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,, +2555,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 38",9001,4284,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,, +2556,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 39",9001,4284,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,, +2557,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 40",9001,4284,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,, +2558,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 41",9001,4284,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,, +2559,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 42",9001,4284,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,, +2560,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 43",9001,4284,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,, +2561,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 44",9001,4284,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,, +2562,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 45",9001,4284,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,, +2563,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 46",9001,4284,16076,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,46500000,9001,8807,0,9001,,,,,,,,,,,,, +2564,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 47",9001,4284,16077,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,47500000,9001,8807,0,9001,,,,,,,,,,,,, +2565,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 48",9001,4284,16078,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,48500000,9001,8807,0,9001,,,,,,,,,,,,, +2566,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 49",9001,4284,16079,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,49500000,9001,8807,0,9001,,,,,,,,,,,,, +2567,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 50",9001,4284,16080,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,50500000,9001,8807,0,9001,,,,,,,,,,,,, +2568,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 51",9001,4284,16081,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,51500000,9001,8807,0,9001,,,,,,,,,,,,, +2569,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 52",9001,4284,16082,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,52500000,9001,8807,0,9001,,,,,,,,,,,,, +2570,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 53",9001,4284,16083,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,53500000,9001,8807,0,9001,,,,,,,,,,,,, +2571,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 54",9001,4284,16084,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,54500000,9001,8807,0,9001,,,,,,,,,,,,, +2572,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 55",9001,4284,16085,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,55500000,9001,8807,0,9001,,,,,,,,,,,,, +2573,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 56",9001,4284,16086,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,56500000,9001,8807,0,9001,,,,,,,,,,,,, +2574,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 57",9001,4284,16087,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,57500000,9001,8807,0,9001,,,,,,,,,,,,, +2575,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 58",9001,4284,16088,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,58500000,9001,8807,0,9001,,,,,,,,,,,,, +2576,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 59",9001,4284,16089,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,59500000,9001,8807,0,9001,,,,,,,,,,,,, +2577,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60",9001,4284,16090,9807,1,1,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60000000,9001,8807,0,9001,,,,,,,,,,,,, +2578,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 61",9001,4284,16091,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,61500000,9001,8807,0,9001,,,,,,,,,,,,, +2579,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 62",9001,4284,16092,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,62500000,9001,8807,0,9001,,,,,,,,,,,,, +2580,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 63",9001,4284,16093,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,63500000,9001,8807,0,9001,,,,,,,,,,,,, +2581,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 64",9001,4284,16094,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,64500000,9001,8807,0,9001,,,,,,,,,,,,, +2582,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E",9001,4284,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2583,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E",9001,4284,16368,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2584,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E",9001,4284,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2585,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E",9001,4284,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2586,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E",9001,4284,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2587,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E",9001,4284,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2588,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E",9001,4284,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2589,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E",9001,4284,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2590,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E",9001,4284,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2591,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E",9001,4284,16376,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2592,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E",9001,4284,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2593,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E",9001,4284,16378,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2594,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E",9001,4284,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2595,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E",9001,4284,16380,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2596,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E",9001,4284,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2597,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E",9001,4284,16382,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2598,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E",9001,4284,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2599,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E",9001,4284,16384,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2600,Lietuvos Koordinoei Sistema 1994,9001,4669,19934,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,0.9998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2601,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E",9001,4284,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2602,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E",9001,4284,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2603,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E",9001,4284,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2604,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E",9001,4284,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2605,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E",9001,4284,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2606,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E",9001,4284,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2607,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E",9001,4284,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2608,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E",9001,4284,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2609,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E",9001,4284,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2610,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E",9001,4284,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2611,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E",9001,4284,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2612,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E",9001,4284,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2613,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E",9001,4284,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2614,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E",9001,4284,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2615,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E",9001,4284,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2616,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E",9001,4284,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2617,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E",9001,4284,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2618,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E",9001,4284,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2619,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E",9001,4284,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2620,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E",9001,4284,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2621,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E",9001,4284,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2622,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E",9001,4284,16176,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2623,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E",9001,4284,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2624,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E",9001,4284,16178,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2625,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E",9001,4284,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2626,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E",9001,4284,16180,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2627,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E",9001,4284,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2628,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E",9001,4284,16182,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2629,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E",9001,4284,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2630,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E",9001,4284,16184,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2631,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E",9001,4284,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2632,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E",9001,4284,16186,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2633,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E",9001,4284,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2634,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E",9001,4284,16188,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2635,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E",9001,4284,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2636,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E",9001,4284,16190,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2637,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W",9001,4284,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2638,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W",9001,4284,16192,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2639,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W",9001,4284,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2640,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W",9001,4284,16194,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2641,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 7",9001,4200,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +2642,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 8",9001,4200,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +2643,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 9",9001,4200,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +2644,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 10",9001,4200,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +2645,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 11",9001,4200,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +2646,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 12",9001,4200,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +2647,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 13",9001,4200,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +2648,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 14",9001,4200,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +2649,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 15",9001,4200,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +2650,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 16",9001,4200,16276,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +2651,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 17",9001,4200,16277,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +2652,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 18",9001,4200,16278,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +2653,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 19",9001,4200,16279,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +2654,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 20",9001,4200,16280,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +2655,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 21",9001,4200,16281,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +2656,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 22",9001,4200,16282,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +2657,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 23",9001,4200,16283,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +2658,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 24",9001,4200,16284,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +2659,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 25",9001,4200,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +2660,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 26",9001,4200,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +2661,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 27",9001,4200,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +2662,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 28",9001,4200,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +2663,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 29",9001,4200,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +2664,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 30",9001,4200,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +2665,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 31",9001,4200,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +2666,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 32",9001,4200,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +2667,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 33",9001,4200,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +2668,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 34",9001,4200,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,, +2669,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 35",9001,4200,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,, +2670,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 36",9001,4200,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,, +2671,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 37",9001,4200,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,, +2672,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 38",9001,4200,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,, +2673,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 39",9001,4200,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,, +2674,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 40",9001,4200,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,, +2675,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 41",9001,4200,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,, +2676,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 42",9001,4200,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,, +2677,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 43",9001,4200,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,, +2678,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 44",9001,4200,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,, +2679,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 45",9001,4200,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,, +2680,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 46",9001,4200,16076,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,46500000,9001,8807,0,9001,,,,,,,,,,,,, +2681,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 47",9001,4200,16077,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,47500000,9001,8807,0,9001,,,,,,,,,,,,, +2682,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 48",9001,4200,16078,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,48500000,9001,8807,0,9001,,,,,,,,,,,,, +2683,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 49",9001,4200,16079,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,49500000,9001,8807,0,9001,,,,,,,,,,,,, +2684,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 50",9001,4200,16080,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,50500000,9001,8807,0,9001,,,,,,,,,,,,, +2685,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 51",9001,4200,16081,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,51500000,9001,8807,0,9001,,,,,,,,,,,,, +2686,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 52",9001,4200,16082,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,52500000,9001,8807,0,9001,,,,,,,,,,,,, +2687,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 53",9001,4200,16083,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,53500000,9001,8807,0,9001,,,,,,,,,,,,, +2688,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 54",9001,4200,16084,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,54500000,9001,8807,0,9001,,,,,,,,,,,,, +2689,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 55",9001,4200,16085,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,55500000,9001,8807,0,9001,,,,,,,,,,,,, +2690,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 56",9001,4200,16086,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,56500000,9001,8807,0,9001,,,,,,,,,,,,, +2691,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 57",9001,4200,16087,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,57500000,9001,8807,0,9001,,,,,,,,,,,,, +2692,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 58",9001,4200,16088,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,58500000,9001,8807,0,9001,,,,,,,,,,,,, +2693,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 59",9001,4200,16089,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,59500000,9001,8807,0,9001,,,,,,,,,,,,, +2694,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",9001,4200,16090,9807,1,1,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60000000,9001,8807,0,9001,,,,,,,,,,,,, +2695,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 61",9001,4200,16091,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,61500000,9001,8807,0,9001,,,,,,,,,,,,, +2696,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 62",9001,4200,16092,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,62500000,9001,8807,0,9001,,,,,,,,,,,,, +2697,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 63",9001,4200,16093,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,63500000,9001,8807,0,9001,,,,,,,,,,,,, +2698,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 64",9001,4200,16094,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,64500000,9001,8807,0,9001,,,,,,,,,,,,, +2699,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E",9001,4200,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2700,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E",9001,4200,16368,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2701,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E",9001,4200,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2702,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E",9001,4200,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2703,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E",9001,4200,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2704,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E",9001,4200,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2705,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E",9001,4200,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2706,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E",9001,4200,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2707,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E",9001,4200,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2708,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E",9001,4200,16376,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2709,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E",9001,4200,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2710,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E",9001,4200,16378,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2711,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E",9001,4200,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2712,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E",9001,4200,16380,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2713,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E",9001,4200,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2714,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E",9001,4200,16382,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2715,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E",9001,4200,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2716,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E",9001,4200,16384,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2717,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E",9001,4200,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2718,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E",9001,4200,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2719,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E",9001,4200,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2720,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E",9001,4200,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2721,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E",9001,4200,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2722,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E",9001,4200,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2723,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E",9001,4200,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2724,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E",9001,4200,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2725,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E",9001,4200,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2726,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E",9001,4200,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2727,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E",9001,4200,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2728,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E",9001,4200,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2729,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E",9001,4200,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2730,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E",9001,4200,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2731,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E",9001,4200,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2732,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E",9001,4200,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2733,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E",9001,4200,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2734,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E",9001,4200,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2735,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E",9001,4200,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2736,"Tete / UTM zone 36S",9001,4127,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2737,"Tete / UTM zone 37S",9001,4127,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2738,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E",9001,4200,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2739,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E",9001,4200,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2740,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E",9001,4200,16176,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2741,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E",9001,4200,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2742,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E",9001,4200,16178,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2743,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E",9001,4200,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2744,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E",9001,4200,16180,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2745,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E",9001,4200,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2746,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E",9001,4200,16182,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2747,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E",9001,4200,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2748,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E",9001,4200,16184,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2749,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E",9001,4200,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2750,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E",9001,4200,16186,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2751,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E",9001,4200,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2752,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E",9001,4200,16188,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2753,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E",9001,4200,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2754,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E",9001,4200,16190,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2755,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W",9001,4200,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2756,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W",9001,4200,16192,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2757,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W",9001,4200,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2758,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W",9001,4200,16194,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2759,"NAD83(HARN) / Alabama East",9001,4152,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2760,"NAD83(HARN) / Alabama West",9001,4152,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +2761,"NAD83(HARN) / Arizona East",9001,4152,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +2762,"NAD83(HARN) / Arizona Central",9001,4152,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +2763,"NAD83(HARN) / Arizona West",9001,4152,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +2764,"NAD83(HARN) / Arkansas North",9001,4152,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +2765,"NAD83(HARN) / Arkansas South",9001,4152,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +2766,"NAD83(HARN) / California zone 1",9001,4152,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +2767,"NAD83(HARN) / California zone 2",9001,4152,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +2768,"NAD83(HARN) / California zone 3",9001,4152,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +2769,"NAD83(HARN) / California zone 4",9001,4152,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +2770,"NAD83(HARN) / California zone 5",9001,4152,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +2771,"NAD83(HARN) / California zone 6",9001,4152,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +2772,"NAD83(HARN) / Colorado North",9001,4152,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +2773,"NAD83(HARN) / Colorado Central",9001,4152,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +2774,"NAD83(HARN) / Colorado South",9001,4152,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +2775,"NAD83(HARN) / Connecticut",9001,4152,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,, +2776,"NAD83(HARN) / Delaware",9001,4152,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2777,"NAD83(HARN) / Florida East",9001,4152,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2778,"NAD83(HARN) / Florida West",9001,4152,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2779,"NAD83(HARN) / Florida North",9001,4152,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2780,"NAD83(HARN) / Georgia East",9001,4152,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2781,"NAD83(HARN) / Georgia West",9001,4152,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +2782,"NAD83(HARN) / Hawaii zone 1",9001,4152,15131,9807,1,0,4499,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2783,"NAD83(HARN) / Hawaii zone 2",9001,4152,15132,9807,1,0,4499,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2784,"NAD83(HARN) / Hawaii zone 3",9001,4152,15133,9807,1,0,4499,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2785,"NAD83(HARN) / Hawaii zone 4",9001,4152,15134,9807,1,0,4499,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2786,"NAD83(HARN) / Hawaii zone 5",9001,4152,15135,9807,1,0,4499,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2787,"NAD83(HARN) / Idaho East",9001,4152,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2788,"NAD83(HARN) / Idaho Central",9001,4152,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2789,"NAD83(HARN) / Idaho West",9001,4152,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,, +2790,"NAD83(HARN) / Illinois East",9001,4152,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +2791,"NAD83(HARN) / Illinois West",9001,4152,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +2792,"NAD83(HARN) / Indiana East",9001,4152,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,, +2793,"NAD83(HARN) / Indiana West",9001,4152,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,, +2794,"NAD83(HARN) / Iowa North",9001,4152,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +2795,"NAD83(HARN) / Iowa South",9001,4152,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2796,"NAD83(HARN) / Kansas North",9001,4152,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +2797,"NAD83(HARN) / Kansas South",9001,4152,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +2798,"NAD83(HARN) / Kentucky North",9001,4152,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2799,"NAD83(HARN) / Kentucky South",9001,4152,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +2800,"NAD83(HARN) / Louisiana North",9001,4152,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +2801,"NAD83(HARN) / Louisiana South",9001,4152,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +2802,"NAD83(HARN) / Maine East",9001,4152,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +2803,"NAD83(HARN) / Maine West",9001,4152,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,, +2804,"NAD83(HARN) / Maryland",9001,4152,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +2805,"NAD83(HARN) / Massachusetts Mainland",9001,4152,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,, +2806,"NAD83(HARN) / Massachusetts Island",9001,4152,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2807,"NAD83(HARN) / Michigan North",9001,4152,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,, +2808,"NAD83(HARN) / Michigan Central",9001,4152,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,, +2809,"NAD83(HARN) / Michigan South",9001,4152,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,, +2810,"NAD83(HARN) / Minnesota North",9001,4152,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +2811,"NAD83(HARN) / Minnesota Central",9001,4152,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +2812,"NAD83(HARN) / Minnesota South",9001,4152,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +2813,"NAD83(HARN) / Mississippi East",9001,4152,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +2814,"NAD83(HARN) / Mississippi West",9001,4152,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +2815,"NAD83(HARN) / Missouri East",9001,4152,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +2816,"NAD83(HARN) / Missouri Central",9001,4152,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2817,"NAD83(HARN) / Missouri West",9001,4152,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,, +2818,"NAD83(HARN) / Montana",9001,4152,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2819,"NAD83(HARN) / Nebraska",9001,4152,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2820,"NAD83(HARN) / Nevada East",9001,4152,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,, +2821,"NAD83(HARN) / Nevada Central",9001,4152,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,, +2822,"NAD83(HARN) / Nevada West",9001,4152,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,, +2823,"NAD83(HARN) / New Hampshire",9001,4152,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +2824,"NAD83(HARN) / New Jersey",9001,4152,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +2825,"NAD83(HARN) / New Mexico East",9001,4152,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,, +2826,"NAD83(HARN) / New Mexico Central",9001,4152,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2827,"NAD83(HARN) / New Mexico West",9001,4152,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,, +2828,"NAD83(HARN) / New York East",9001,4152,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +2829,"NAD83(HARN) / New York Central",9001,4152,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +2830,"NAD83(HARN) / New York West",9001,4152,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,, +2831,"NAD83(HARN) / New York Long Island",9001,4152,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,, +2832,"NAD83(HARN) / North Dakota North",9001,4152,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2833,"NAD83(HARN) / North Dakota South",9001,4152,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2834,"NAD83(HARN) / Ohio North",9001,4152,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2835,"NAD83(HARN) / Ohio South",9001,4152,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2836,"NAD83(HARN) / Oklahoma North",9001,4152,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2837,"NAD83(HARN) / Oklahoma South",9001,4152,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2838,"NAD83(HARN) / Oregon North",9001,4152,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,, +2839,"NAD83(HARN) / Oregon South",9001,4152,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,, +2840,"NAD83(HARN) / Rhode Island",9001,4152,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,, +2841,"NAD83(HARN) / South Dakota North",9001,4152,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2842,"NAD83(HARN) / South Dakota South",9001,4152,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2843,"NAD83(HARN) / Tennessee",9001,4152,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2844,"NAD83(HARN) / Texas North",9001,4152,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,, +2845,"NAD83(HARN) / Texas North Central",9001,4152,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,, +2846,"NAD83(HARN) / Texas Central",9001,4152,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,, +2847,"NAD83(HARN) / Texas South Central",9001,4152,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,, +2848,"NAD83(HARN) / Texas South",9001,4152,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,, +2849,"NAD83(HARN) / Utah North",9001,4152,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,, +2850,"NAD83(HARN) / Utah Central",9001,4152,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,, +2851,"NAD83(HARN) / Utah South",9001,4152,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,, +2852,"NAD83(HARN) / Vermont",9001,4152,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2853,"NAD83(HARN) / Virginia North",9001,4152,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,, +2854,"NAD83(HARN) / Virginia South",9001,4152,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,, +2855,"NAD83(HARN) / Washington North",9001,4152,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2856,"NAD83(HARN) / Washington South",9001,4152,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +2857,"NAD83(HARN) / West Virginia North",9001,4152,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2858,"NAD83(HARN) / West Virginia South",9001,4152,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2859,"NAD83(HARN) / Wisconsin North",9001,4152,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2860,"NAD83(HARN) / Wisconsin Central",9001,4152,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2861,"NAD83(HARN) / Wisconsin South",9001,4152,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +2862,"NAD83(HARN) / Wyoming East",9001,4152,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +2863,"NAD83(HARN) / Wyoming East Central",9001,4152,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,, +2864,"NAD83(HARN) / Wyoming West Central",9001,4152,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +2865,"NAD83(HARN) / Wyoming West",9001,4152,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,, +2866,"NAD83(HARN) / Puerto Rico and Virgin Is.",9001,4152,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,, +2867,"NAD83(HARN) / Arizona East (ft)",9002,4152,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +2868,"NAD83(HARN) / Arizona Central (ft)",9002,4152,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +2869,"NAD83(HARN) / Arizona West (ft)",9002,4152,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +2870,"NAD83(HARN) / California zone 1 (ftUS)",9003,4152,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2871,"NAD83(HARN) / California zone 2 (ftUS)",9003,4152,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2872,"NAD83(HARN) / California zone 3 (ftUS)",9003,4152,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2873,"NAD83(HARN) / California zone 4 (ftUS)",9003,4152,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2874,"NAD83(HARN) / California zone 5 (ftUS)",9003,4152,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2875,"NAD83(HARN) / California zone 6 (ftUS)",9003,4152,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +2876,"NAD83(HARN) / Colorado North (ftUS)",9003,4152,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +2877,"NAD83(HARN) / Colorado Central (ftUS)",9003,4152,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +2878,"NAD83(HARN) / Colorado South (ftUS)",9003,4152,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +2879,"NAD83(HARN) / Connecticut (ftUS)",9003,4152,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,, +2880,"NAD83(HARN) / Delaware (ftUS)",9003,4152,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2881,"NAD83(HARN) / Florida East (ftUS)",9003,4152,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2882,"NAD83(HARN) / Florida West (ftUS)",9003,4152,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2883,"NAD83(HARN) / Florida North (ftUS)",9003,4152,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2884,"NAD83(HARN) / Georgia East (ftUS)",9003,4152,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2885,"NAD83(HARN) / Georgia West (ftUS)",9003,4152,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +2886,"NAD83(HARN) / Idaho East (ftUS)",9003,4152,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +2887,"NAD83(HARN) / Idaho Central (ftUS)",9003,4152,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +2888,"NAD83(HARN) / Idaho West (ftUS)",9003,4152,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,, +2889,"NAD83(HARN) / Indiana East (ftUS)",9003,4152,15326,9807,1,1,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,818125,9003,,,,,,,,,,,,, +2890,"NAD83(HARN) / Indiana West (ftUS)",9003,4152,15327,9807,1,1,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,818125,9003,,,,,,,,,,,,, +2891,"NAD83(HARN) / Kentucky North (ftUS)",9003,4152,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2892,"NAD83(HARN) / Kentucky South (ftUS)",9003,4152,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,, +2893,"NAD83(HARN) / Maryland (ftUS)",9003,4152,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,, +2894,"NAD83(HARN) / Massachusetts Mainland (ftUS)",9003,4152,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,, +2895,"NAD83(HARN) / Massachusetts Island (ftUS)",9003,4152,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2896,"NAD83(HARN) / Michigan North (ft)",9002,4152,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,, +2897,"NAD83(HARN) / Michigan Central (ft)",9002,4152,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,, +2898,"NAD83(HARN) / Michigan South (ft)",9002,4152,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,, +2899,"NAD83(HARN) / Mississippi East (ftUS)",9003,4152,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +2900,"NAD83(HARN) / Mississippi West (ftUS)",9003,4152,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +2901,"NAD83(HARN) / Montana (ft)",9002,4152,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +2902,"NAD83(HARN) / New Mexico East (ftUS)",9003,4152,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,, +2903,"NAD83(HARN) / New Mexico Central (ftUS)",9003,4152,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +2904,"NAD83(HARN) / New Mexico West (ftUS)",9003,4152,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,, +2905,"NAD83(HARN) / New York East (ftUS)",9003,4152,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +2906,"NAD83(HARN) / New York Central (ftUS)",9003,4152,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,, +2907,"NAD83(HARN) / New York West (ftUS)",9003,4152,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,, +2908,"NAD83(HARN) / New York Long Island (ftUS)",9003,4152,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,, +2909,"NAD83(HARN) / North Dakota North (ft)",9002,4152,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +2910,"NAD83(HARN) / North Dakota South (ft)",9002,4152,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +2911,"NAD83(HARN) / Oklahoma North (ftUS)",9003,4152,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2912,"NAD83(HARN) / Oklahoma South (ftUS)",9003,4152,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2913,"NAD83(HARN) / Oregon North (ft)",9002,4152,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,, +2914,"NAD83(HARN) / Oregon South (ft)",9002,4152,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,, +2915,"NAD83(HARN) / Tennessee (ftUS)",9003,4152,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2916,"NAD83(HARN) / Texas North (ftUS)",9003,4152,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,, +2917,"NAD83(HARN) / Texas North Central (ftUS)",9003,4152,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,, +2918,"NAD83(HARN) / Texas Central (ftUS)",9003,4152,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,, +2919,"NAD83(HARN) / Texas South Central (ftUS)",9003,4152,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,, +2920,"NAD83(HARN) / Texas South (ftUS)",9003,4152,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,, +2921,"NAD83(HARN) / Utah North (ft)",9002,4152,15362,9802,0,0,4495,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640419.948,9002,8827,3280839.895,9002,,,,,,,,,, +2922,"NAD83(HARN) / Utah Central (ft)",9002,4152,15363,9802,0,0,4495,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640419.948,9002,8827,6561679.79,9002,,,,,,,,,, +2923,"NAD83(HARN) / Utah South (ft)",9002,4152,15364,9802,0,0,4495,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640419.948,9002,8827,9842519.685,9002,,,,,,,,,, +2924,"NAD83(HARN) / Virginia North (ftUS)",9003,4152,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,, +2925,"NAD83(HARN) / Virginia South (ftUS)",9003,4152,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,, +2926,"NAD83(HARN) / Washington North (ftUS)",9003,4152,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2927,"NAD83(HARN) / Washington South (ftUS)",9003,4152,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +2928,"NAD83(HARN) / Wisconsin North (ftUS)",9003,4152,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2929,"NAD83(HARN) / Wisconsin Central (ftUS)",9003,4152,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2930,"NAD83(HARN) / Wisconsin South (ftUS)",9003,4152,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +2931,"Beduaram / TM 13 NE",9001,4213,16413,9807,1,0,4499,8801,0,9102,8802,13,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2932,"QND95 / Qatar National Grid",9001,4614,19919,9807,1,0,4400,8801,24.27,9110,8802,51.13,9110,8805,0.99999,9201,8806,200000,9001,8807,300000,9001,,,,,,,,,,,,, +2933,"Segara / UTM zone 50S",9001,4613,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2934,"Segara (Jakarta) / NEIEZ",9001,4820,19905,9804,1,1,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +2935,"Pulkovo 1942 / CS63 zone A1",9001,4284,18441,9807,1,0,4530,8801,0.07,9110,8802,41.32,9110,8805,1,9201,8806,1300000,9001,8807,0,9001,,,,,,,,,,,,, +2936,"Pulkovo 1942 / CS63 zone A2",9001,4284,18442,9807,1,0,4530,8801,0.07,9110,8802,44.32,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,,,,,,,,, +2937,"Pulkovo 1942 / CS63 zone A3",9001,4284,18443,9807,1,0,4530,8801,0.07,9110,8802,47.32,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,,,,,,,,, +2938,"Pulkovo 1942 / CS63 zone A4",9001,4284,18444,9807,1,0,4530,8801,0.07,9110,8802,50.32,9110,8805,1,9201,8806,4300000,9001,8807,0,9001,,,,,,,,,,,,, +2939,"Pulkovo 1942 / CS63 zone K2",9001,4284,18446,9807,1,0,4530,8801,0.08,9110,8802,50.46,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,,,,,,,,, +2940,"Pulkovo 1942 / CS63 zone K3",9001,4284,18447,9807,1,0,4530,8801,0.08,9110,8802,53.46,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,,,,,,,,, +2941,"Pulkovo 1942 / CS63 zone K4",9001,4284,18448,9807,1,0,4530,8801,0.08,9110,8802,56.46,9110,8805,1,9201,8806,4300000,9001,8807,0,9001,,,,,,,,,,,,, +2942,"Porto Santo / UTM zone 28N",9001,4615,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2943,"Selvagem Grande / UTM zone 28N",9001,4616,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2944,"NAD83(CSRS) / SCoPQ zone 2",9001,4617,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2945,"NAD83(CSRS) / MTM zone 3",9001,4617,17703,9807,1,0,4496,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2946,"NAD83(CSRS) / MTM zone 4",9001,4617,17704,9807,1,0,4496,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2947,"NAD83(CSRS) / MTM zone 5",9001,4617,17705,9807,1,0,4496,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2948,"NAD83(CSRS) / MTM zone 6",9001,4617,17706,9807,1,0,4496,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2949,"NAD83(CSRS) / MTM zone 7",9001,4617,17707,9807,1,0,4496,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2950,"NAD83(CSRS) / MTM zone 8",9001,4617,17708,9807,1,0,4496,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2951,"NAD83(CSRS) / MTM zone 9",9001,4617,17709,9807,1,0,4496,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2952,"NAD83(CSRS) / MTM zone 10",9001,4617,17710,9807,1,0,4496,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +2953,"NAD83(CSRS) / New Brunswick Stereographic",9001,4617,19946,9809,1,0,4500,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,2500000,9001,8807,7500000,9001,,,,,,,,,,,,, +2954,"NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)",9001,4617,19960,9809,1,0,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +2955,"NAD83(CSRS) / UTM zone 11N",9001,4617,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2956,"NAD83(CSRS) / UTM zone 12N",9001,4617,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2957,"NAD83(CSRS) / UTM zone 13N",9001,4617,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2958,"NAD83(CSRS) / UTM zone 17N",9001,4617,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2959,"NAD83(CSRS) / UTM zone 18N",9001,4617,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2960,"NAD83(CSRS) / UTM zone 19N",9001,4617,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2961,"NAD83(CSRS) / UTM zone 20N",9001,4617,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2962,"NAD83(CSRS) / UTM zone 21N",9001,4617,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2963,"Lisbon 1890 (Lisbon) / Portugal Bonne",9001,4904,19979,9828,1,0,6509,8801,39.4,9110,8802,1,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +2964,"NAD27 / Alaska Albers",9003,4267,15020,9822,1,0,4497,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9003,8827,0,9003,,,,,,,,,, +2965,"NAD83 / Indiana East (ftUS)",9003,4269,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,, +2966,"NAD83 / Indiana West (ftUS)",9003,4269,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,, +2967,"NAD83(HARN) / Indiana East (ftUS)",9003,4152,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,, +2968,"NAD83(HARN) / Indiana West (ftUS)",9003,4152,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,, +2969,"Fort Marigot / UTM zone 20N",9001,4621,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2970,"Guadeloupe 1948 / UTM zone 20N",9001,4622,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2971,"CSG67 / UTM zone 22N",9001,4623,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2972,"RGFG95 / UTM zone 22N",9001,4624,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2973,"Martinique 1938 / UTM zone 20N",9001,4625,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2975,"RGR92 / UTM zone 40S",9001,4627,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2976,"Tahiti 52 / UTM zone 6S",9001,4628,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2977,"Tahaa 54 / UTM zone 5S",9001,4629,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2978,"IGN72 Nuku Hiva / UTM zone 7S",9001,4630,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2979,"K0 1949 / UTM zone 42S",9001,4631,16142,9807,1,1,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2980,"Combani 1950 / UTM zone 38S",9001,4632,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2981,"IGN56 Lifou / UTM zone 58S",9001,4633,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2982,"IGN72 Grand Terre / UTM zone 58S",9001,4634,16158,9807,1,1,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2983,"ST87 Ouvea / UTM zone 58S",9001,4635,16158,9807,1,1,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2984,"RGNC 1991 / Lambert New Caledonia",9001,4645,19981,9802,1,1,4499,8821,-21.3,9110,8822,166,9110,8823,-20.4,9110,8824,-22.2,9110,8826,400000,9001,8827,300000,9001,,,,,,,,,, +2985,"Petrels 1972 / Terre Adelie Polar Stereographic",9001,4636,19983,9830,1,0,1025,8826,300000,9001,8827,200000,9001,8832,-67,9102,8833,140,9102,,,,,,,,,,,,,,,, +2986,"Perroud 1950 / Terre Adelie Polar Stereographic",9001,4637,19983,9830,1,0,1025,8826,300000,9001,8827,200000,9001,8832,-67,9102,8833,140,9102,,,,,,,,,,,,,,,, +2987,"Saint Pierre et Miquelon 1950 / UTM zone 21N",9001,4638,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2988,"MOP78 / UTM zone 1S",9001,4639,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2989,"RRAF 1991 / UTM zone 20N",9001,4640,16020,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +2990,"Reunion 1947 / TM Reunion",9001,4626,19982,9807,1,1,4499,8801,-21.07,9110,8802,55.32,9110,8805,1,9201,8806,50000,9001,8807,160000,9001,,,,,,,,,,,,, +2991,"NAD83 / Oregon LCC (m)",9001,4269,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +2992,"NAD83 / Oregon GIC Lambert (ft)",9002,4269,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,, +2993,"NAD83(HARN) / Oregon LCC (m)",9001,4152,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +2994,"NAD83(HARN) / Oregon GIC Lambert (ft)",9002,4152,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,, +2995,"IGN53 Mare / UTM zone 58S",9001,4641,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2996,"ST84 Ile des Pins / UTM zone 58S",9001,4642,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2997,"ST71 Belep / UTM zone 58S",9001,4643,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2998,"NEA74 Noumea / UTM zone 58S",9001,4644,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +2999,"Grand Comoros / UTM zone 38S",9001,4646,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3000,"Segara / NEIEZ",9001,4613,19905,9804,1,0,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +3001,"Batavia / NEIEZ",9001,4211,19905,9804,1,0,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +3002,"Makassar / NEIEZ",9001,4257,19905,9804,1,0,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +3003,"Monte Mario / Italy zone 1",9001,4265,18121,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3004,"Monte Mario / Italy zone 2",9001,4265,18122,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,2520000,9001,8807,0,9001,,,,,,,,,,,,, +3005,"NAD83 / BC Albers",9001,4269,19984,9822,1,0,4400,8821,45,9102,8822,-126,9102,8823,50,9110,8824,58.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +3006,SWEREF99 TM,9001,4619,17333,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3007,SWEREF99 12 00,9001,4619,17321,9807,1,0,4500,8801,0,9102,8802,12,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3008,SWEREF99 13 30,9001,4619,17322,9807,1,0,4500,8801,0,9110,8802,13.3,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3009,SWEREF99 15 00,9001,4619,17323,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3010,SWEREF99 16 30,9001,4619,17324,9807,1,0,4500,8801,0,9110,8802,16.3,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3011,SWEREF99 18 00,9001,4619,17325,9807,1,0,4500,8801,0,9102,8802,18,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3012,SWEREF99 14 15,9001,4619,17326,9807,1,0,4500,8801,0,9110,8802,14.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3013,SWEREF99 15 45,9001,4619,17327,9807,1,0,4500,8801,0,9110,8802,15.45,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3014,SWEREF99 17 15,9001,4619,17328,9807,1,0,4500,8801,0,9110,8802,17.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3015,SWEREF99 18 45,9001,4619,17329,9807,1,0,4500,8801,0,9110,8802,18.45,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3016,SWEREF99 20 15,9001,4619,17330,9807,1,0,4500,8801,0,9110,8802,20.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3017,SWEREF99 21 45,9001,4619,17331,9807,1,0,4500,8801,0,9110,8802,21.45,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3018,SWEREF99 23 15,9001,4619,17332,9807,1,0,4500,8801,0,9110,8802,23.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3019,RT90 7.5 gon V,9001,4124,17334,9807,1,0,4530,8801,0,9110,8802,11.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3020,RT90 5 gon V,9001,4124,17335,9807,1,0,4530,8801,0,9110,8802,13.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3021,RT90 2.5 gon V,9001,4124,19929,9807,1,0,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3022,RT90 0 gon,9001,4124,17336,9807,1,0,4530,8801,0,9110,8802,18.03298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3023,RT90 2.5 gon O,9001,4124,17337,9807,1,0,4530,8801,0,9110,8802,20.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3024,RT90 5 gon O,9001,4124,17338,9807,1,0,4530,8801,0,9110,8802,22.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3025,RT38 7.5 gon V,9001,4308,17334,9807,1,0,4530,8801,0,9110,8802,11.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3026,RT38 5 gon V,9001,4308,17335,9807,1,0,4530,8801,0,9110,8802,13.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3027,RT38 2.5 gon V,9001,4308,19929,9807,1,0,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3028,RT38 0 gon,9001,4308,17336,9807,1,0,4530,8801,0,9110,8802,18.03298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3029,RT38 2.5 gon O,9001,4308,17337,9807,1,0,4530,8801,0,9110,8802,20.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3030,RT38 5 gon O,9001,4308,17338,9807,1,0,4530,8801,0,9110,8802,22.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +3031,"WGS 84 / Antarctic Polar Stereographic",9001,4326,19992,9829,1,0,4490,8806,0,9001,8807,0,9001,8832,-71,9102,8833,0,9102,,,,,,,,,,,,,,,, +3032,"WGS 84 / Australian Antarctic Polar Stereographic",9001,4326,19993,9829,1,0,4489,8806,6000000,9001,8807,6000000,9001,8832,-71,9102,8833,70,9102,,,,,,,,,,,,,,,, +3033,"WGS 84 / Australian Antarctic Lambert",9001,4326,19994,9802,1,0,4400,8821,-50,9110,8822,70,9110,8823,-68.3,9110,8824,-74.3,9110,8826,6000000,9001,8827,6000000,9001,,,,,,,,,, +3034,"ETRS89 / LCC Europe",9001,4258,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,, +3035,"ETRS89 / LAEA Europe",9001,4258,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,, +3036,"Moznet / UTM zone 36S",9001,4130,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3037,"Moznet / UTM zone 37S",9001,4130,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3038,"ETRS89 / TM26",9001,4258,16026,9807,1,1,4500,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3039,"ETRS89 / TM27",9001,4258,16027,9807,1,1,4500,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3040,"ETRS89 / UTM zone 28N (N-E)",9001,4258,16028,9807,1,0,4500,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3041,"ETRS89 / UTM zone 29N (N-E)",9001,4258,16029,9807,1,0,4500,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3042,"ETRS89 / UTM zone 30N (N-E)",9001,4258,16030,9807,1,0,4500,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3043,"ETRS89 / UTM zone 31N (N-E)",9001,4258,16031,9807,1,0,4500,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3044,"ETRS89 / UTM zone 32N (N-E)",9001,4258,16032,9807,1,0,4500,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3045,"ETRS89 / UTM zone 33N (N-E)",9001,4258,16033,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3046,"ETRS89 / UTM zone 34N (N-E)",9001,4258,16034,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3047,"ETRS89 / UTM zone 35N (N-E)",9001,4258,16035,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3048,"ETRS89 / UTM zone 36N (N-E)",9001,4258,16036,9807,1,0,4500,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3049,"ETRS89 / UTM zone 37N (N-E)",9001,4258,16037,9807,1,0,4500,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3050,"ETRS89 / TM38",9001,4258,16038,9807,1,1,4500,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3051,"ETRS89 / TM39",9001,4258,16039,9807,1,1,4500,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3052,"Reykjavik 1900 / Lambert 1900",9001,4657,19987,9826,1,0,4491,8801,65,9110,8802,-19.011965,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3053,"Hjorsey 1955 / Lambert 1955",9001,4658,19988,9826,1,0,4491,8801,65,9102,8802,-18,9102,8805,1,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +3054,"Hjorsey 1955 / UTM zone 26N",9001,4658,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3055,"Hjorsey 1955 / UTM zone 27N",9001,4658,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3056,"Hjorsey 1955 / UTM zone 28N",9001,4658,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3057,"ISN93 / Lambert 1993",9001,4659,19989,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +3058,"Helle 1954 / Jan Mayen Grid",9001,4660,19991,9807,1,0,4531,8801,0,9110,8802,-8.3,9110,8805,1,9201,8806,50000,9001,8807,-7800000,9001,,,,,,,,,,,,, +3059,"LKS92 / Latvia TM",9001,4661,19990,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9996,9201,8806,500000,9001,8807,-6000000,9001,,,,,,,,,,,,, +3060,"IGN72 Grande Terre / UTM zone 58S",9001,4662,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3061,"Porto Santo 1995 / UTM zone 28N",9001,4663,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3062,"Azores Oriental 1995 / UTM zone 26N",9001,4664,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3063,"Azores Central 1995 / UTM zone 26N",9001,4665,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3064,"IGM95 / UTM zone 32N",9001,4670,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3065,"IGM95 / UTM zone 33N",9001,4670,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3066,"ED50 / Jordan TM",9001,4230,19995,9807,1,0,4400,8801,0,9102,8802,37,9102,8805,0.9998,9201,8806,500000,9001,8807,-3000000,9001,,,,,,,,,,,,, +3067,"ETRS89 / TM35FIN(E,N)",9001,4258,16065,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3068,"DHDN / Soldner Berlin",9001,4314,19996,9806,1,0,4531,8801,52.25071338,9110,8802,13.37379332,9110,8806,40000,9001,8807,10000,9001,,,,,,,,,,,,,,,, +3069,"NAD27 / Wisconsin Transverse Mercator",9001,4267,14811,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,500000,9001,8807,-4500000,9001,,,,,,,,,,,,, +3070,"NAD83 / Wisconsin Transverse Mercator",9001,4269,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,, +3071,"NAD83(HARN) / Wisconsin Transverse Mercator",9001,4152,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,, +3072,"NAD83 / Maine CS2000 East",9001,4269,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +3073,"NAD83 / Maine CS2000 Central",9001,4269,11852,9807,1,1,4499,8801,43,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3074,"NAD83 / Maine CS2000 West",9001,4269,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3075,"NAD83(HARN) / Maine CS2000 East",9001,4152,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +3076,"NAD83(HARN) / Maine CS2000 Central",9001,4152,11852,9807,1,1,4499,8801,43,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3077,"NAD83(HARN) / Maine CS2000 West",9001,4152,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3078,"NAD83 / Michigan Oblique Mercator",9001,4269,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,, +3079,"NAD83(HARN) / Michigan Oblique Mercator",9001,4152,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,, +3080,"NAD27 / Shackleford",9002,4267,14252,9802,1,0,4495,8821,31.1,9110,8822,-100,9110,8823,27.25,9110,8824,34.55,9110,8826,3000000,9002,8827,3000000,9002,,,,,,,,,, +3081,"NAD83 / Texas State Mapping System",9001,4269,14251,9802,1,0,4499,8821,31.1,9110,8822,-100,9110,8823,27.25,9110,8824,34.55,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +3082,"NAD83 / Texas Centric Lambert Conformal",9001,4269,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,, +3083,"NAD83 / Texas Centric Albers Equal Area",9001,4269,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,, +3084,"NAD83(HARN) / Texas Centric Lambert Conformal",9001,4152,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,, +3085,"NAD83(HARN) / Texas Centric Albers Equal Area",9001,4152,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,, +3086,"NAD83 / Florida GDL Albers",9001,4269,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3087,"NAD83(HARN) / Florida GDL Albers",9001,4152,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3088,"NAD83 / Kentucky Single Zone",9001,4269,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +3089,"NAD83 / Kentucky Single Zone (ftUS)",9003,4269,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,, +3090,"NAD83(HARN) / Kentucky Single Zone",9001,4152,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +3091,"NAD83(HARN) / Kentucky Single Zone (ftUS)",9003,4152,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,, +3092,"Tokyo / UTM zone 51N",9001,4301,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3093,"Tokyo / UTM zone 52N",9001,4301,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3094,"Tokyo / UTM zone 53N",9001,4301,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3095,"Tokyo / UTM zone 54N",9001,4301,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3096,"Tokyo / UTM zone 55N",9001,4301,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3097,"JGD2000 / UTM zone 51N",9001,4612,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3098,"JGD2000 / UTM zone 52N",9001,4612,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3099,"JGD2000 / UTM zone 53N",9001,4612,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3100,"JGD2000 / UTM zone 54N",9001,4612,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3101,"JGD2000 / UTM zone 55N",9001,4612,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3102,"American Samoa 1962 / American Samoa Lambert",9003,4169,15376,9801,1,0,4497,8801,-14.16,9110,8802,-170,9110,8805,1,9201,8806,500000,9003,8807,312234.65,9003,,,,,,,,,,,,, +3103,"Mauritania 1999 / UTM zone 28N",9001,4681,16028,9807,1,1,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3104,"Mauritania 1999 / UTM zone 29N",9001,4681,16029,9807,1,1,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3105,"Mauritania 1999 / UTM zone 30N",9001,4681,16030,9807,1,1,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3106,"Gulshan 303 / Bangladesh Transverse Mercator",9001,4682,16490,9807,1,0,4400,8801,0,9102,8802,90,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3107,"GDA94 / SA Lambert",9001,4283,17359,9802,1,0,4400,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,,,,,,,,, +3108,"ETRS89 / Guernsey Grid",9001,4258,19998,9807,1,0,4400,8801,49.3,9110,8802,-2.25,9110,8805,0.999997,9201,8806,47000,9001,8807,50000,9001,,,,,,,,,,,,, +3109,"ETRS89 / Jersey Transverse Mercator",9001,4258,19999,9807,1,0,4400,8801,49.225,9102,8802,-2.135,9102,8805,0.9999999,9201,8806,40000,9001,8807,70000,9001,,,,,,,,,,,,, +3110,"AGD66 / Vicgrid66",9001,4202,17360,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,4500000,9001,,,,,,,,,, +3111,"GDA94 / Vicgrid",9001,4283,17361,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,2500000,9001,,,,,,,,,, +3112,"GDA94 / Geoscience Australia Lambert",9001,4283,17362,9802,1,0,4400,8821,0,9102,8822,134,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3113,"GDA94 / BCSG02",9001,4283,17363,9807,1,0,4400,8801,-28,9102,8802,153,9102,8805,0.99999,9201,8806,50000,9001,8807,100000,9001,,,,,,,,,,,,, +3114,"MAGNA-SIRGAS / Colombia Far West zone",9001,4686,18055,9807,1,0,4500,8801,4.35463215,9110,8802,-80.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3115,"MAGNA-SIRGAS / Colombia West zone",9001,4686,18056,9807,1,0,4500,8801,4.35463215,9110,8802,-77.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3116,"MAGNA-SIRGAS / Colombia Bogota zone",9001,4686,18057,9807,1,0,4500,8801,4.35463215,9110,8802,-74.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3117,"MAGNA-SIRGAS / Colombia East Central zone",9001,4686,18058,9807,1,0,4500,8801,4.35463215,9110,8802,-71.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3118,"MAGNA-SIRGAS / Colombia East zone",9001,4686,18059,9807,1,0,4500,8801,4.35463215,9110,8802,-68.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3119,"Douala 1948 / AEF west",9001,4192,18415,9807,1,0,4400,8801,0,9110,8802,10.3,9110,8805,0.999,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3120,"Pulkovo 1942(58) / Poland zone I",9001,4179,18280,9809,1,0,4530,8801,50.373,9110,8802,21.05,9110,8805,0.9998,9201,8806,4637000,9001,8807,5467000,9001,,,,,,,,,,,,, +3121,"PRS92 / Philippines zone 1",9001,4683,18171,9807,1,0,4499,8801,0,9102,8802,117,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3122,"PRS92 / Philippines zone 2",9001,4683,18172,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3123,"PRS92 / Philippines zone 3",9001,4683,18173,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3124,"PRS92 / Philippines zone 4",9001,4683,18174,9807,1,0,4499,8801,0,9102,8802,123,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3125,"PRS92 / Philippines zone 5",9001,4683,18175,9807,1,0,4499,8801,0,9102,8802,125,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3126,"ETRS89 / ETRS-GK19FIN",9001,4258,18183,9807,1,0,4500,8801,0,9102,8802,19,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3127,"ETRS89 / ETRS-GK20FIN",9001,4258,18184,9807,1,0,4500,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3128,"ETRS89 / ETRS-GK21FIN",9001,4258,18185,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3129,"ETRS89 / ETRS-GK22FIN",9001,4258,18186,9807,1,0,4500,8801,0,9102,8802,22,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3130,"ETRS89 / ETRS-GK23FIN",9001,4258,18187,9807,1,0,4500,8801,0,9102,8802,23,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3131,"ETRS89 / ETRS-GK24FIN",9001,4258,18188,9807,1,0,4500,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3132,"ETRS89 / ETRS-GK25FIN",9001,4258,18189,9807,1,0,4500,8801,0,9102,8802,25,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3133,"ETRS89 / ETRS-GK26FIN",9001,4258,18190,9807,1,0,4500,8801,0,9102,8802,26,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3134,"ETRS89 / ETRS-GK27FIN",9001,4258,18195,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3135,"ETRS89 / ETRS-GK28FIN",9001,4258,18196,9807,1,0,4500,8801,0,9102,8802,28,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3136,"ETRS89 / ETRS-GK29FIN",9001,4258,18197,9807,1,0,4500,8801,0,9102,8802,29,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3137,"ETRS89 / ETRS-GK30FIN",9001,4258,18198,9807,1,0,4500,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3138,"ETRS89 / ETRS-GK31FIN",9001,4258,18199,9807,1,0,4500,8801,0,9102,8802,31,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3139,"Vanua Levu 1915 / Vanua Levu Grid",9098,4748,19878,9833,1,0,4533,8801,-16.15,9110,8802,179.2,9110,8806,1251331.8,9098,8807,1662888.5,9098,,,,,,,,,,,,,,,, +3140,"Viti Levu 1912 / Viti Levu Grid",9098,4752,19879,9806,1,0,4533,8801,-18,9102,8802,178,9102,8806,544000,9098,8807,704000,9098,,,,,,,,,,,,,,,, +3141,"Fiji 1956 / UTM zone 60S",9001,4721,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3142,"Fiji 1956 / UTM zone 1S",9001,4721,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3143,"Fiji 1986 / Fiji Map Grid",9001,4720,19880,9807,1,1,4400,8801,-17,9110,8802,178.45,9110,8805,0.99985,9001,8806,2000000,9001,8807,4000000,9001,,,,,,,,,,,,, +3144,"FD54 / Faroe Lambert",9001,4741,19870,9826,1,0,1031,8801,62,9102,8802,-9,9102,8805,1,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +3145,"ETRS89 / Faroe Lambert",9001,4258,19870,9826,1,0,1031,8801,62,9102,8802,-9,9102,8805,1,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +3146,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6",9001,4284,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3147,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E",9001,4284,16366,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3148,"Indian 1960 / UTM zone 48N",9001,4131,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3149,"Indian 1960 / UTM zone 49N",9001,4131,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3150,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6",9001,4200,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3151,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E",9001,4200,16366,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3152,ST74,9001,4619,19876,9807,1,0,4531,8801,0,9110,8802,18.0328044,9110,8805,0.99999425,9201,8806,100178.1808,9001,8807,-6500614.7836,9001,,,,,,,,,,,,, +3153,"NAD83(CSRS) / BC Albers",9001,4617,19984,9822,1,0,4400,8821,45,9102,8822,-126,9102,8823,50,9110,8824,58.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +3154,"NAD83(CSRS) / UTM zone 7N",9001,4617,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3155,"NAD83(CSRS) / UTM zone 8N",9001,4617,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3156,"NAD83(CSRS) / UTM zone 9N",9001,4617,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3157,"NAD83(CSRS) / UTM zone 10N",9001,4617,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3158,"NAD83(CSRS) / UTM zone 14N",9001,4617,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3159,"NAD83(CSRS) / UTM zone 15N",9001,4617,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3160,"NAD83(CSRS) / UTM zone 16N",9001,4617,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3161,"NAD83 / Ontario MNR Lambert",9001,4269,19875,9802,1,0,4400,8821,0,9102,8822,-85,9102,8823,44.5,9102,8824,53.5,9102,8826,930000,9001,8827,6430000,9001,,,,,,,,,, +3162,"NAD83(CSRS) / Ontario MNR Lambert",9001,4617,19875,9802,1,0,4400,8821,0,9102,8822,-85,9102,8823,44.5,9102,8824,53.5,9102,8826,930000,9001,8827,6430000,9001,,,,,,,,,, +3163,"RGNC91-93 / Lambert New Caledonia",9001,4749,19981,9802,1,0,4499,8821,-21.3,9110,8822,166,9110,8823,-20.4,9110,8824,-22.2,9110,8826,400000,9001,8827,300000,9001,,,,,,,,,, +3164,"ST87 Ouvea / UTM zone 58S",9001,4750,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3165,"NEA74 Noumea / Noumea Lambert",9001,4644,19873,9802,1,0,4499,8821,-22.16108903,9110,8822,166.26327327,9110,8823,-22.14408903,9110,8824,-22.17408903,9110,8826,0.66,9001,8827,1.02,9001,,,,,,,,,, +3166,"NEA74 Noumea / Noumea Lambert 2",9001,4644,19874,9802,1,0,4499,8821,-22.1611,9110,8822,166.2633,9110,8823,-22.1441,9110,8824,-22.1741,9110,8826,8.313,9001,8827,-2.354,9001,,,,,,,,,, +3167,"Kertau (RSO) / RSO Malaya (ch)",9301,4751,19871,9812,1,0,4410,8806,40000,9301,8807,0,9301,8811,4,9110,8812,102.15,9110,8813,323.01328458,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,, +3168,"Kertau (RSO) / RSO Malaya (m)",9001,4751,19872,9812,1,0,4400,8806,804670.24,9001,8807,0,9001,8811,4,9110,8812,102.15,9110,8813,323.01328458,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,, +3169,"RGNC91-93 / UTM zone 57S",9001,4749,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3170,"RGNC91-93 / UTM zone 58S",9001,4749,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3171,"RGNC91-93 / UTM zone 59S",9001,4749,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3172,"IGN53 Mare / UTM zone 59S",9001,4641,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3173,"fk89 / Faroe Lambert FK89",9001,4753,19877,9826,1,0,1031,8801,62,9102,8802,-9,9102,8805,1,9201,8806,700000,9001,8807,700000,9001,,,,,,,,,,,,, +3174,"NAD83 / Great Lakes Albers",9001,4269,15397,9822,1,0,4499,8821,45.568977,9102,8822,-84.455955,9102,8823,42.122774,9102,8824,49.01518,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +3175,"NAD83 / Great Lakes and St Lawrence Albers",9001,4269,15398,9822,1,0,4499,8821,45.568977,9102,8822,-83.248627,9102,8823,42.122774,9102,8824,49.01518,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +3176,"Indian 1960 / TM 106 NE",9001,4131,16506,9807,1,0,4400,8801,0,9102,8802,106,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3177,"LGD2006 / Libya TM",9001,4754,18319,9807,1,0,4499,8801,0,9102,8802,17,9102,8805,0.9965,9201,8806,1000000,9001,8807,0,9001,,,,,,,,,,,,, +3178,"GR96 / UTM zone 18N",9001,4747,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3179,"GR96 / UTM zone 19N",9001,4747,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3180,"GR96 / UTM zone 20N",9001,4747,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3181,"GR96 / UTM zone 21N",9001,4747,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3182,"GR96 / UTM zone 22N",9001,4747,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3183,"GR96 / UTM zone 23N",9001,4747,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3184,"GR96 / UTM zone 24N",9001,4747,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3185,"GR96 / UTM zone 25N",9001,4747,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3186,"GR96 / UTM zone 26N",9001,4747,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3187,"GR96 / UTM zone 27N",9001,4747,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3188,"GR96 / UTM zone 28N",9001,4747,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3189,"GR96 / UTM zone 29N",9001,4747,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3190,"LGD2006 / Libya TM zone 5",9001,4754,18310,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3191,"LGD2006 / Libya TM zone 6",9001,4754,18311,9807,1,0,4499,8801,0,9102,8802,11,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3192,"LGD2006 / Libya TM zone 7",9001,4754,18312,9807,1,0,4499,8801,0,9102,8802,13,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3193,"LGD2006 / Libya TM zone 8",9001,4754,18313,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3194,"LGD2006 / Libya TM zone 9",9001,4754,18314,9807,1,0,4499,8801,0,9102,8802,17,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3195,"LGD2006 / Libya TM zone 10",9001,4754,18315,9807,1,0,4499,8801,0,9102,8802,19,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3196,"LGD2006 / Libya TM zone 11",9001,4754,18316,9807,1,0,4499,8801,0,9102,8802,21,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3197,"LGD2006 / Libya TM zone 12",9001,4754,18317,9807,1,0,4499,8801,0,9102,8802,23,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3198,"LGD2006 / Libya TM zone 13",9001,4754,18318,9807,1,0,4499,8801,0,9102,8802,25,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3199,"LGD2006 / UTM zone 32N",9001,4754,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3200,"FD58 / Iraq zone",9001,4132,19906,9801,1,0,4400,8801,32.3,9110,8802,45,9110,8805,0.9987864078,9201,8806,1500000,9001,8807,1166200,9001,,,,,,,,,,,,, +3201,"LGD2006 / UTM zone 33N",9001,4754,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3202,"LGD2006 / UTM zone 34N",9001,4754,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3203,"LGD2006 / UTM zone 35N",9001,4754,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3204,"WGS 84 / SCAR IMW SP19-20",9001,4326,17204,9802,1,0,4400,8821,-90,9102,8822,-66,9102,8823,-60.4,9110,8824,-63.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3205,"WGS 84 / SCAR IMW SP21-22",9001,4326,17205,9802,1,0,4400,8821,-90,9102,8822,-54,9102,8823,-60.4,9110,8824,-63.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3206,"WGS 84 / SCAR IMW SP23-24",9001,4326,17206,9802,1,0,4400,8821,-90,9102,8822,-42,9102,8823,-60.4,9110,8824,-63.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3207,"WGS 84 / SCAR IMW SQ01-02",9001,4326,17207,9802,1,0,4400,8821,-90,9102,8822,-174,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3208,"WGS 84 / SCAR IMW SQ19-20",9001,4326,17208,9802,1,0,4400,8821,-90,9102,8822,-66,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3209,"WGS 84 / SCAR IMW SQ21-22",9001,4326,17209,9802,1,0,4400,8821,-90,9102,8822,-54,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3210,"WGS 84 / SCAR IMW SQ37-38",9001,4326,17210,9802,1,0,4400,8821,-90,9102,8822,42,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3211,"WGS 84 / SCAR IMW SQ39-40",9001,4326,17211,9802,1,0,4400,8821,-90,9102,8822,54,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3212,"WGS 84 / SCAR IMW SQ41-42",9001,4326,17212,9802,1,0,4400,8821,-90,9102,8822,66,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3213,"WGS 84 / SCAR IMW SQ43-44",9001,4326,17213,9802,1,0,4400,8821,-90,9102,8822,78,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3214,"WGS 84 / SCAR IMW SQ45-46",9001,4326,17214,9802,1,0,4400,8821,-90,9102,8822,90,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3215,"WGS 84 / SCAR IMW SQ47-48",9001,4326,17215,9802,1,0,4400,8821,-90,9102,8822,102,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3216,"WGS 84 / SCAR IMW SQ49-50",9001,4326,17216,9802,1,0,4400,8821,-90,9102,8822,114,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3217,"WGS 84 / SCAR IMW SQ51-52",9001,4326,17217,9802,1,0,4400,8821,-90,9102,8822,126,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3218,"WGS 84 / SCAR IMW SQ53-54",9001,4326,17218,9802,1,0,4400,8821,-90,9102,8822,138,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3219,"WGS 84 / SCAR IMW SQ55-56",9001,4326,17219,9802,1,0,4400,8821,-90,9102,8822,150,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3220,"WGS 84 / SCAR IMW SQ57-58",9001,4326,17220,9802,1,0,4400,8821,-90,9102,8822,162,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3221,"WGS 84 / SCAR IMW SR13-14",9001,4326,17221,9802,1,0,4400,8821,-90,9102,8822,-102,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3222,"WGS 84 / SCAR IMW SR15-16",9001,4326,17222,9802,1,0,4400,8821,-90,9102,8822,-90,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3223,"WGS 84 / SCAR IMW SR17-18",9001,4326,17223,9802,1,0,4400,8821,-90,9102,8822,-78,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3224,"WGS 84 / SCAR IMW SR19-20",9001,4326,17224,9802,1,0,4400,8821,-90,9102,8822,-66,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3225,"WGS 84 / SCAR IMW SR27-28",9001,4326,17225,9802,1,0,4400,8821,-90,9102,8822,-18,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3226,"WGS 84 / SCAR IMW SR29-30",9001,4326,17226,9802,1,0,4400,8821,-90,9102,8822,-6,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3227,"WGS 84 / SCAR IMW SR31-32",9001,4326,17227,9802,1,0,4400,8821,-90,9102,8822,6,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3228,"WGS 84 / SCAR IMW SR33-34",9001,4326,17228,9802,1,0,4400,8821,-90,9102,8822,18,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3229,"WGS 84 / SCAR IMW SR35-36",9001,4326,17229,9802,1,0,4400,8821,-90,9102,8822,30,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3230,"WGS 84 / SCAR IMW SR37-38",9001,4326,17230,9802,1,0,4400,8821,-90,9102,8822,42,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3231,"WGS 84 / SCAR IMW SR39-40",9001,4326,17231,9802,1,0,4400,8821,-90,9102,8822,54,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3232,"WGS 84 / SCAR IMW SR41-42",9001,4326,17232,9802,1,0,4400,8821,-90,9102,8822,66,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3233,"WGS 84 / SCAR IMW SR43-44",9001,4326,17233,9802,1,0,4400,8821,-90,9102,8822,78,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3234,"WGS 84 / SCAR IMW SR45-46",9001,4326,17234,9802,1,0,4400,8821,-90,9102,8822,90,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3235,"WGS 84 / SCAR IMW SR47-48",9001,4326,17235,9802,1,0,4400,8821,-90,9102,8822,102,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3236,"WGS 84 / SCAR IMW SR49-50",9001,4326,17236,9802,1,0,4400,8821,-90,9102,8822,114,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3237,"WGS 84 / SCAR IMW SR51-52",9001,4326,17237,9802,1,0,4400,8821,-90,9102,8822,126,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3238,"WGS 84 / SCAR IMW SR53-54",9001,4326,17238,9802,1,0,4400,8821,-90,9102,8822,138,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3239,"WGS 84 / SCAR IMW SR55-56",9001,4326,17239,9802,1,0,4400,8821,-90,9102,8822,150,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3240,"WGS 84 / SCAR IMW SR57-58",9001,4326,17240,9802,1,0,4400,8821,-90,9102,8822,162,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3241,"WGS 84 / SCAR IMW SR59-60",9001,4326,17241,9802,1,0,4400,8821,-90,9102,8822,174,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3242,"WGS 84 / SCAR IMW SS04-06",9001,4326,17242,9802,1,0,4400,8821,-90,9102,8822,-153,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3243,"WGS 84 / SCAR IMW SS07-09",9001,4326,17243,9802,1,0,4400,8821,-90,9102,8822,-135,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3244,"WGS 84 / SCAR IMW SS10-12",9001,4326,17244,9802,1,0,4400,8821,-90,9102,8822,-117,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3245,"WGS 84 / SCAR IMW SS13-15",9001,4326,17245,9802,1,0,4400,8821,-90,9102,8822,-99,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3246,"WGS 84 / SCAR IMW SS16-18",9001,4326,17246,9802,1,0,4400,8821,-90,9102,8822,-81,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3247,"WGS 84 / SCAR IMW SS19-21",9001,4326,17247,9802,1,0,4400,8821,-90,9102,8822,-63,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3248,"WGS 84 / SCAR IMW SS25-27",9001,4326,17248,9802,1,0,4400,8821,-90,9102,8822,-27,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3249,"WGS 84 / SCAR IMW SS28-30",9001,4326,17249,9802,1,0,4400,8821,-90,9102,8822,-9,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3250,"WGS 84 / SCAR IMW SS31-33",9001,4326,17250,9802,1,0,4400,8821,-90,9102,8822,9,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3251,"WGS 84 / SCAR IMW SS34-36",9001,4326,17251,9802,1,0,4400,8821,-90,9102,8822,27,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3252,"WGS 84 / SCAR IMW SS37-39",9001,4326,17252,9802,1,0,4400,8821,-90,9102,8822,45,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3253,"WGS 84 / SCAR IMW SS40-42",9001,4326,17253,9802,1,0,4400,8821,-90,9102,8822,63,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3254,"WGS 84 / SCAR IMW SS43-45",9001,4326,17254,9802,1,0,4400,8821,-90,9102,8822,81,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3255,"WGS 84 / SCAR IMW SS46-48",9001,4326,17255,9802,1,0,4400,8821,-90,9102,8822,99,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3256,"WGS 84 / SCAR IMW SS49-51",9001,4326,17256,9802,1,0,4400,8821,-90,9102,8822,117,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3257,"WGS 84 / SCAR IMW SS52-54",9001,4326,17257,9802,1,0,4400,8821,-90,9102,8822,135,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3258,"WGS 84 / SCAR IMW SS55-57",9001,4326,17258,9802,1,0,4400,8821,-90,9102,8822,153,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3259,"WGS 84 / SCAR IMW SS58-60",9001,4326,17259,9802,1,0,4400,8821,-90,9102,8822,171,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3260,"WGS 84 / SCAR IMW ST01-04",9001,4326,17260,9802,1,0,4400,8821,-90,9102,8822,-168,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3261,"WGS 84 / SCAR IMW ST05-08",9001,4326,17261,9802,1,0,4400,8821,-90,9102,8822,-144,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3262,"WGS 84 / SCAR IMW ST09-12",9001,4326,17262,9802,1,0,4400,8821,-90,9102,8822,-120,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3263,"WGS 84 / SCAR IMW ST13-16",9001,4326,17263,9802,1,0,4400,8821,-90,9102,8822,-96,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3264,"WGS 84 / SCAR IMW ST17-20",9001,4326,17264,9802,1,0,4400,8821,-90,9102,8822,-72,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3265,"WGS 84 / SCAR IMW ST21-24",9001,4326,17265,9802,1,0,4400,8821,-90,9102,8822,-48,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3266,"WGS 84 / SCAR IMW ST25-28",9001,4326,17266,9802,1,0,4400,8821,-90,9102,8822,-24,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3267,"WGS 84 / SCAR IMW ST29-32",9001,4326,17267,9802,1,0,4400,8821,-90,9102,8822,0,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3268,"WGS 84 / SCAR IMW ST33-36",9001,4326,17268,9802,1,0,4400,8821,-90,9102,8822,24,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3269,"WGS 84 / SCAR IMW ST37-40",9001,4326,17269,9802,1,0,4400,8821,-90,9102,8822,48,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3270,"WGS 84 / SCAR IMW ST41-44",9001,4326,17270,9802,1,0,4400,8821,-90,9102,8822,72,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3271,"WGS 84 / SCAR IMW ST45-48",9001,4326,17271,9802,1,0,4400,8821,-90,9102,8822,96,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3272,"WGS 84 / SCAR IMW ST49-52",9001,4326,17272,9802,1,0,4400,8821,-90,9102,8822,120,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3273,"WGS 84 / SCAR IMW ST53-56",9001,4326,17273,9802,1,0,4400,8821,-90,9102,8822,144,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3274,"WGS 84 / SCAR IMW ST57-60",9001,4326,17274,9802,1,0,4400,8821,-90,9102,8822,168,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3275,"WGS 84 / SCAR IMW SU01-05",9001,4326,17275,9829,1,0,4471,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-165,9102,,,,,,,,,,,,,,,, +3276,"WGS 84 / SCAR IMW SU06-10",9001,4326,17276,9829,1,0,4473,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-135,9102,,,,,,,,,,,,,,,, +3277,"WGS 84 / SCAR IMW SU11-15",9001,4326,17277,9829,1,0,4474,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-105,9102,,,,,,,,,,,,,,,, +3278,"WGS 84 / SCAR IMW SU16-20",9001,4326,17278,9829,1,0,4476,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-75,9102,,,,,,,,,,,,,,,, +3279,"WGS 84 / SCAR IMW SU21-25",9001,4326,17279,9829,1,0,4477,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-45,9102,,,,,,,,,,,,,,,, +3280,"WGS 84 / SCAR IMW SU26-30",9001,4326,17280,9829,1,0,4479,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-15,9102,,,,,,,,,,,,,,,, +3281,"WGS 84 / SCAR IMW SU31-35",9001,4326,17281,9829,1,0,4480,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,15,9102,,,,,,,,,,,,,,,, +3282,"WGS 84 / SCAR IMW SU36-40",9001,4326,17282,9829,1,0,4482,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,45,9102,,,,,,,,,,,,,,,, +3283,"WGS 84 / SCAR IMW SU41-45",9001,4326,17283,9829,1,0,4483,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,75,9102,,,,,,,,,,,,,,,, +3284,"WGS 84 / SCAR IMW SU46-50",9001,4326,17284,9829,1,0,4485,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,105,9102,,,,,,,,,,,,,,,, +3285,"WGS 84 / SCAR IMW SU51-55",9001,4326,17285,9829,1,0,4486,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,135,9102,,,,,,,,,,,,,,,, +3286,"WGS 84 / SCAR IMW SU56-60",9001,4326,17286,9829,1,0,4488,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,165,9102,,,,,,,,,,,,,,,, +3287,"WGS 84 / SCAR IMW SV01-10",9001,4326,17287,9829,1,0,4472,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-150,9102,,,,,,,,,,,,,,,, +3288,"WGS 84 / SCAR IMW SV11-20",9001,4326,17288,9829,1,0,4475,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-90,9102,,,,,,,,,,,,,,,, +3289,"WGS 84 / SCAR IMW SV21-30",9001,4326,17289,9829,1,0,4478,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-30,9102,,,,,,,,,,,,,,,, +3290,"WGS 84 / SCAR IMW SV31-40",9001,4326,17290,9829,1,0,4481,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,30,9102,,,,,,,,,,,,,,,, +3291,"WGS 84 / SCAR IMW SV41-50",9001,4326,17291,9829,1,0,4484,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,90,9102,,,,,,,,,,,,,,,, +3292,"WGS 84 / SCAR IMW SV51-60",9001,4326,17292,9829,1,0,4487,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,150,9102,,,,,,,,,,,,,,,, +3293,"WGS 84 / SCAR IMW SW01-60",9001,4326,17293,9829,1,0,4490,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,0,9102,,,,,,,,,,,,,,,, +3294,"WGS 84 / USGS Transantarctic Mountains",9001,4326,17294,9802,1,0,4400,8821,-78,9102,8822,162,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3295,"Guam 1963 / Yap Islands",9001,4675,15399,9832,1,0,4499,8801,9.324815,9110,8802,138.100748,9110,8806,40000,9001,8807,60000,9001,,,,,,,,,,,,,,,, +3296,"RGPF / UTM zone 5S",9001,4687,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3297,"RGPF / UTM zone 6S",9001,4687,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3298,"RGPF / UTM zone 7S",9001,4687,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3299,"RGPF / UTM zone 8S",9001,4687,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3300,Estonian Coordinate System of 1992,9001,4133,19938,9802,1,0,4530,8821,57.310319415,9110,8822,24,9110,8823,59.2,9110,8824,58,9110,8826,500000,9001,8827,6375000,9001,,,,,,,,,, +3301,Estonian Coordinate System of 1997,9001,4180,19938,9802,1,0,4530,8821,57.310319415,9110,8822,24,9110,8823,59.2,9110,8824,58,9110,8826,500000,9001,8827,6375000,9001,,,,,,,,,, +3302,"IGN63 Hiva Oa / UTM zone 7S",9001,4689,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3303,"Fatu Iva 72 / UTM zone 7S",9001,4688,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3304,"Tahiti 79 / UTM zone 6S",9001,4690,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3305,"Moorea 87 / UTM zone 6S",9001,4691,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3306,"Maupiti 83 / UTM zone 5S",9001,4692,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3307,"Nakhl-e Ghanem / UTM zone 39N",9001,4693,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3308,"GDA94 / NSW Lambert",9001,4283,17364,9802,1,0,4400,8821,-33.25,9102,8822,147,9102,8823,-30.75,9102,8824,-35.75,9102,8826,9300000,9001,8827,4500000,9001,,,,,,,,,, +3309,"NAD27 / California Albers",9001,4267,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,, +3310,"NAD83 / California Albers",9001,4269,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,, +3311,"NAD83(HARN) / California Albers",9001,4152,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,, +3312,"CSG67 / UTM zone 21N",9001,4623,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3313,"RGFG95 / UTM zone 21N",9001,4624,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3314,"Katanga 1955 / Katanga Lambert",9001,4695,17401,9802,1,1,4400,8821,0,9102,8822,26,9102,8823,-6.5,9102,8824,-11.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3315,"Katanga 1955 / Katanga TM",9001,4695,17402,9807,1,1,4400,8801,-9,9102,8802,26,9102,8805,0.9998,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3316,"Kasai 1953 / Congo TM zone 22",9001,4696,17422,9807,1,0,4400,8801,0,9102,8802,22,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3317,"Kasai 1953 / Congo TM zone 24",9001,4696,17424,9807,1,0,4400,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3318,"IGC 1962 / Congo TM zone 12",9001,4697,17412,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3319,"IGC 1962 / Congo TM zone 14",9001,4697,17414,9807,1,0,4400,8801,0,9102,8802,14,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3320,"IGC 1962 / Congo TM zone 16",9001,4697,17416,9807,1,0,4400,8801,0,9102,8802,16,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3321,"IGC 1962 / Congo TM zone 18",9001,4697,17418,9807,1,0,4400,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3322,"IGC 1962 / Congo TM zone 20",9001,4697,17420,9807,1,0,4400,8801,0,9102,8802,20,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3323,"IGC 1962 / Congo TM zone 22",9001,4697,17422,9807,1,0,4400,8801,0,9102,8802,22,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3324,"IGC 1962 / Congo TM zone 24",9001,4697,17424,9807,1,0,4400,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3325,"IGC 1962 / Congo TM zone 26",9001,4697,17426,9807,1,0,4400,8801,0,9102,8802,26,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3326,"IGC 1962 / Congo TM zone 28",9001,4697,17428,9807,1,0,4400,8801,0,9102,8802,28,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3327,"IGC 1962 / Congo TM zone 30",9001,4697,17430,9807,1,0,4400,8801,0,9102,8802,30,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3328,"Pulkovo 1942(58) / GUGiK-80",9001,4179,18286,9809,1,0,4530,8801,52.1,9110,8802,19.1,9110,8805,0.999714,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +3329,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5",9001,4179,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +3330,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6",9001,4179,16266,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3331,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7",9001,4179,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +3332,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8",9001,4179,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +3333,"Pulkovo 1942(58) / Gauss-Kruger zone 3",9001,4179,16203,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +3334,"Pulkovo 1942(58) / Gauss-Kruger zone 4",9001,4179,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +3335,"Pulkovo 1942(58) / Gauss-Kruger zone 5",9001,4179,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +3336,"IGN 1962 Kerguelen / UTM zone 42S",9001,4698,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3337,"Le Pouce 1934 / Mauritius Grid",9001,4699,19899,9801,1,0,4400,8801,-20.114225,9110,8802,57.311858,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +3338,"NAD83 / Alaska Albers",9001,4269,15021,9822,1,0,4499,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3339,"IGCB 1955 / Congo TM zone 12",9001,4701,17412,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3340,"IGCB 1955 / Congo TM zone 14",9001,4701,17414,9807,1,0,4400,8801,0,9102,8802,14,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3341,"IGCB 1955 / Congo TM zone 16",9001,4701,17416,9807,1,0,4400,8801,0,9102,8802,16,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3342,"IGCB 1955 / UTM zone 33S",9001,4701,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3343,"Mauritania 1999 / UTM zone 28N",9001,4702,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3344,"Mauritania 1999 / UTM zone 29N",9001,4702,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3345,"Mauritania 1999 / UTM zone 30N",9001,4702,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3346,"LKS94 / Lithuania TM",9001,4669,19934,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3347,"NAD83 / Statistics Canada Lambert",9001,4269,19897,9802,1,0,4400,8821,63.390675,9102,8822,-91.52,9110,8823,49,9102,8824,77,9102,8826,6200000,9001,8827,3000000,9001,,,,,,,,,, +3348,"NAD83(CSRS) / Statistics Canada Lambert",9001,4617,19897,9802,1,0,4400,8821,63.390675,9102,8822,-91.52,9110,8823,49,9102,8824,77,9102,8826,6200000,9001,8827,3000000,9001,,,,,,,,,, +3349,"WGS 84 / PDC Mercator",9001,4326,19898,9804,1,1,4400,8801,0,9102,8802,-150,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3350,"Pulkovo 1942 / CS63 zone C0",9001,4284,18450,9807,1,0,4530,8801,0.06,9110,8802,21.57,9110,8805,1,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3351,"Pulkovo 1942 / CS63 zone C1",9001,4284,18451,9807,1,0,4530,8801,0.06,9110,8802,24.57,9110,8805,1,9201,8806,1250000,9001,8807,0,9001,,,,,,,,,,,,, +3352,"Pulkovo 1942 / CS63 zone C2",9001,4284,18452,9807,1,0,4530,8801,0.06,9110,8802,27.57,9110,8805,1,9201,8806,2250000,9001,8807,0,9001,,,,,,,,,,,,, +3353,"Mhast (onshore) / UTM zone 32S",9001,4704,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3354,"Mhast (offshore) / UTM zone 32S",9001,4705,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3355,"Egypt Gulf of Suez S-650 TL / Red Belt",9001,4706,18072,9807,1,0,4400,8801,30,9102,8802,31,9102,8805,1,9201,8806,615000,9001,8807,810000,9001,,,,,,,,,,,,, +3356,"Grand Cayman 1959 / UTM zone 17N",9001,4723,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3357,"Little Cayman 1961 / UTM zone 17N",9001,4726,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3358,"NAD83(HARN) / North Carolina",9001,4152,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,, +3359,"NAD83(HARN) / North Carolina (ftUS)",9002,4152,15346,9802,1,1,4495,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +3360,"NAD83(HARN) / South Carolina",9001,4152,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,, +3361,"NAD83(HARN) / South Carolina (ft)",9002,4152,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,, +3362,"NAD83(HARN) / Pennsylvania North",9001,4152,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3363,"NAD83(HARN) / Pennsylvania North (ftUS)",9003,4152,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3364,"NAD83(HARN) / Pennsylvania South",9001,4152,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3365,"NAD83(HARN) / Pennsylvania South (ftUS)",9003,4152,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3366,Hong Kong 1963 Grid System,9001,4738,19896,9806,1,1,4500,8801,22.184368,9110,8802,114.10428,9110,8806,132033.92,9005,8807,62565.96,9005,,,,,,,,,,,,,,,, +3367,"IGN Astro 1960 / UTM zone 28N",9001,4700,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3368,"IGN Astro 1960 / UTM zone 29N",9001,4700,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3369,"IGN Astro 1960 / UTM zone 30N",9001,4700,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3370,"NAD27 / UTM zone 59N",9001,4267,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3371,"NAD27 / UTM zone 60N",9001,4267,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3372,"NAD83 / UTM zone 59N",9001,4269,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3373,"NAD83 / UTM zone 60N",9001,4269,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3374,"FD54 / UTM zone 29N",9001,4741,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3375,"GDM2000 / Peninsula RSO",9001,4742,19895,9812,1,0,4400,8806,804671,9001,8807,0,9001,8811,4,9110,8812,102.15,9110,8813,323.013286728,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,, +3376,"GDM2000 / East Malaysia BRSO",9001,4742,19894,9812,1,0,4400,8806,0,9001,8807,0,9001,8811,4,9110,8812,115,9110,8813,53.185691582,9110,8814,53.07483685,9110,8815,0.99984,9201,,,,,,, +3377,"GDM2000 / Johor Grid",9001,4742,19893,9806,1,0,4400,8801,2.071804708,9110,8802,103.254057045,9110,8806,-14810.562,9001,8807,8758.32,9001,,,,,,,,,,,,,,,, +3378,"GDM2000 / Sembilan and Melaka Grid",9001,4742,19892,9806,1,0,4400,8801,2.405645149,9110,8802,101.582965815,9110,8806,3673.785,9001,8807,-4240.573,9001,,,,,,,,,,,,,,,, +3379,"GDM2000 / Pahang Grid",9001,4742,19891,9806,1,0,4400,8801,3.460979712,9110,8802,102.220587634,9110,8806,-7368.228,9001,8807,6485.858,9001,,,,,,,,,,,,,,,, +3380,"GDM2000 / Selangor Grid",9001,4742,19890,9806,1,0,4400,8801,3.410473658,9110,8802,101.232078849,9110,8806,-34836.161,9001,8807,56464.049,9001,,,,,,,,,,,,,,,, +3381,"GDM2000 / Terengganu Grid",9001,4742,19889,9806,1,0,4400,8801,4.583462672,9110,8802,103.041299225,9110,8806,19594.245,9001,8807,3371.895,9001,,,,,,,,,,,,,,,, +3382,"GDM2000 / Pinang Grid",9001,4742,19888,9806,1,0,4400,8801,5.251746315,9110,8802,100.203975707,9110,8806,-23.414,9001,8807,62.283,9001,,,,,,,,,,,,,,,, +3383,"GDM2000 / Kedah and Perlis Grid",9001,4742,19887,9806,1,0,4400,8801,5.575282177,9110,8802,100.3810936,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3384,"GDM2000 / Perak Grid",9001,4742,19886,9806,1,0,4400,8801,4.513262688,9110,8802,100.485547811,9110,8806,-1.769,9001,8807,133454.779,9001,,,,,,,,,,,,,,,, +3385,"GDM2000 / Kelantan Grid",9001,4742,19885,9806,1,0,4400,8801,5.582115717,9110,8802,102.174287001,9110,8806,13227.851,9001,8807,8739.894,9001,,,,,,,,,,,,,,,, +3386,"KKJ / Finland zone 0",9001,4123,18180,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3387,"KKJ / Finland zone 5",9001,4123,18205,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +3388,"Pulkovo 1942 / Caspian Sea Mercator",9001,4284,19884,9805,1,0,4534,8802,51,9102,8806,0,9001,8807,0,9001,8823,42,9102,,,,,,,,,,,,,,,, +3389,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60",9001,4284,16099,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60500000,9001,8807,0,9001,,,,,,,,,,,,, +3390,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",9001,4200,16099,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60500000,9001,8807,0,9001,,,,,,,,,,,,, +3391,"Karbala 1979 / UTM zone 37N",9001,4743,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3392,"Karbala 1979 / UTM zone 38N",9001,4743,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3393,"Karbala 1979 / UTM zone 39N",9001,4743,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3394,"Nahrwan 1934 / Iraq zone",9001,4744,19906,9801,1,0,4400,8801,32.3,9110,8802,45,9110,8805,0.9987864078,9201,8806,1500000,9001,8807,1166200,9001,,,,,,,,,,,,, +3395,"WGS 84 / World Mercator",9001,4326,19883,9804,1,0,4400,8801,0,9102,8802,0,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3396,"PD/83 / 3-degree Gauss-Kruger zone 3",9001,4746,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +3397,"PD/83 / 3-degree Gauss-Kruger zone 4",9001,4746,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +3398,"RD/83 / 3-degree Gauss-Kruger zone 4",9001,4745,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +3399,"RD/83 / 3-degree Gauss-Kruger zone 5",9001,4745,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +3400,"NAD83 / Alberta 10-TM (Forest)",9001,4269,19881,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3401,"NAD83 / Alberta 10-TM (Resource)",9001,4269,19882,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3402,"NAD83(CSRS) / Alberta 10-TM (Forest)",9001,4617,19881,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3403,"NAD83(CSRS) / Alberta 10-TM (Resource)",9001,4617,19882,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3404,"NAD83(HARN) / North Carolina (ftUS)",9003,4152,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +3405,"VN-2000 / UTM zone 48N",9001,4756,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3406,"VN-2000 / UTM zone 49N",9001,4756,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3407,Hong Kong 1963 Grid System,9005,4738,19896,9806,1,0,4502,8801,22.184368,9110,8802,114.10428,9110,8806,132033.92,9005,8807,62565.96,9005,,,,,,,,,,,,,,,, +3408,NSIDC EASE-Grid North,9001,4053,3897,1027,1,0,4469,8801,90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3409,NSIDC EASE-Grid South,9001,4053,3898,1027,1,0,4470,8801,-90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3410,NSIDC EASE-Grid Global,9001,4053,19869,9834,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,30,9102,,,,,,,,,,,,,,,, +3411,NSIDC Sea Ice Polar Stereographic North,9001,4054,19865,9829,1,0,4468,8806,0,9001,8807,0,9001,8832,70,9102,8833,-45,9102,,,,,,,,,,,,,,,, +3412,NSIDC Sea Ice Polar Stereographic South,9001,4054,19866,9829,1,0,4470,8806,0,9001,8807,0,9001,8832,-70,9102,8833,0,9102,,,,,,,,,,,,,,,, +3413,"WGS 84 / NSIDC Sea Ice Polar Stereographic North",9001,4326,19865,9829,1,0,4468,8806,0,9001,8807,0,9001,8832,70,9102,8833,-45,9102,,,,,,,,,,,,,,,, +3414,"SVY21 / Singapore TM",9001,4757,19864,9807,1,0,4500,8801,1.22,9110,8802,103.5,9110,8805,1,9201,8806,28001.642,9001,8807,38744.572,9001,,,,,,,,,,,,, +3415,"WGS 72BE / South China Sea Lambert",9001,4324,19863,9802,1,0,4400,8821,21,9102,8822,114,9102,8823,18,9102,8824,24,9102,8826,500000,9001,8827,500000,9001,,,,,,,,,, +3416,"ETRS89 / Austria Lambert",9001,4258,19947,9802,1,0,4530,8821,47.3,9110,8822,13.2,9110,8823,49,9110,8824,46,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +3417,"NAD83 / Iowa North (ftUS)",9003,4269,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,, +3418,"NAD83 / Iowa South (ftUS)",9003,4269,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +3419,"NAD83 / Kansas North (ftUS)",9003,4269,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +3420,"NAD83 / Kansas South (ftUS)",9003,4269,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +3421,"NAD83 / Nevada East (ftUS)",9003,4269,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,, +3422,"NAD83 / Nevada Central (ftUS)",9003,4269,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,, +3423,"NAD83 / Nevada West (ftUS)",9003,4269,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,, +3424,"NAD83 / New Jersey (ftUS)",9003,4269,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +3425,"NAD83(HARN) / Iowa North (ftUS)",9003,4152,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,, +3426,"NAD83(HARN) / Iowa South (ftUS)",9003,4152,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +3427,"NAD83(HARN) / Kansas North (ftUS)",9003,4152,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +3428,"NAD83(HARN) / Kansas South (ftUS)",9003,4152,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +3429,"NAD83(HARN) / Nevada East (ftUS)",9003,4152,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,, +3430,"NAD83(HARN) / Nevada Central (ftUS)",9003,4152,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,, +3431,"NAD83(HARN) / Nevada West (ftUS)",9003,4152,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,, +3432,"NAD83(HARN) / New Jersey (ftUS)",9003,4152,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +3433,"NAD83 / Arkansas North (ftUS)",9003,4269,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +3434,"NAD83 / Arkansas South (ftUS)",9003,4269,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +3435,"NAD83 / Illinois East (ftUS)",9003,4269,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3436,"NAD83 / Illinois West (ftUS)",9003,4269,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,, +3437,"NAD83 / New Hampshire (ftUS)",9003,4269,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3438,"NAD83 / Rhode Island (ftUS)",9003,4269,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,, +3439,"PSD93 / UTM zone 39N",9001,4134,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3440,"PSD93 / UTM zone 40N",9001,4134,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3441,"NAD83(HARN) / Arkansas North (ftUS)",9003,4152,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +3442,"NAD83(HARN) / Arkansas South (ftUS)",9003,4152,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +3443,"NAD83(HARN) / Illinois East (ftUS)",9003,4152,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3444,"NAD83(HARN) / Illinois West (ftUS)",9003,4152,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,, +3445,"NAD83(HARN) / New Hampshire (ftUS)",9003,4152,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3446,"NAD83(HARN) / Rhode Island (ftUS)",9003,4152,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,, +3447,"ETRS89 / Belgian Lambert 2005",9001,4258,19862,9802,1,0,4499,8821,50.4752134,9110,8822,4.2133177,9110,8823,49.5,9110,8824,51.1,9110,8826,150328,9001,8827,166262,9001,,,,,,,,,, +3448,"JAD2001 / Jamaica Metric Grid",9001,4758,19860,9801,1,0,4400,8801,18,9102,8802,-77,9102,8805,1,9201,8806,750000,9001,8807,650000,9001,,,,,,,,,,,,, +3449,"JAD2001 / UTM zone 17N",9001,4758,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3450,"JAD2001 / UTM zone 18N",9001,4758,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3451,"NAD83 / Louisiana North (ftUS)",9003,4269,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3452,"NAD83 / Louisiana South (ftUS)",9003,4269,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3453,"NAD83 / Louisiana Offshore (ftUS)",9003,4269,15393,9802,1,0,4497,8821,25.3,9110,8822,-91.2,9110,8823,27.5,9110,8824,26.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3454,"NAD83 / South Dakota North (ftUS)",9003,4269,15395,9802,1,1,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3455,"NAD83 / South Dakota South (ftUS)",9003,4269,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3456,"NAD83(HARN) / Louisiana North (ftUS)",9003,4152,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3457,"NAD83(HARN) / Louisiana South (ftUS)",9003,4152,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3458,"NAD83(HARN) / South Dakota North (ftUS)",9003,4152,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3459,"NAD83(HARN) / South Dakota South (ftUS)",9003,4152,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3460,"Fiji 1986 / Fiji Map Grid",9001,4720,19859,9807,1,0,4400,8801,-17,9110,8802,178.45,9110,8805,0.99985,9201,8806,2000000,9001,8807,4000000,9001,,,,,,,,,,,,, +3461,"Dabola 1981 / UTM zone 28N",9001,4155,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3462,"Dabola 1981 / UTM zone 29N",9001,4155,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3463,"NAD83 / Maine CS2000 Central",9001,4269,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3464,"NAD83(HARN) / Maine CS2000 Central",9001,4152,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3465,"NAD83(NSRS2007) / Alabama East",9001,4759,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3466,"NAD83(NSRS2007) / Alabama West",9001,4759,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +3467,"NAD83(NSRS2007) / Alaska Albers",9001,4759,15021,9822,1,0,4499,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3468,"NAD83(NSRS2007) / Alaska zone 1",9001,4759,15031,9812,1,0,4499,8806,5000000,9001,8807,-5000000,9001,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,, +3469,"NAD83(NSRS2007) / Alaska zone 2",9001,4759,15032,9807,1,0,4499,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3470,"NAD83(NSRS2007) / Alaska zone 3",9001,4759,15033,9807,1,0,4499,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3471,"NAD83(NSRS2007) / Alaska zone 4",9001,4759,15034,9807,1,0,4499,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3472,"NAD83(NSRS2007) / Alaska zone 5",9001,4759,15035,9807,1,0,4499,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3473,"NAD83(NSRS2007) / Alaska zone 6",9001,4759,15036,9807,1,0,4499,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3474,"NAD83(NSRS2007) / Alaska zone 7",9001,4759,15037,9807,1,0,4499,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3475,"NAD83(NSRS2007) / Alaska zone 8",9001,4759,15038,9807,1,0,4499,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3476,"NAD83(NSRS2007) / Alaska zone 9",9001,4759,15039,9807,1,0,4499,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3477,"NAD83(NSRS2007) / Alaska zone 10",9001,4759,15040,9802,1,0,4499,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +3478,"NAD83(NSRS2007) / Arizona Central",9001,4759,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +3479,"NAD83(NSRS2007) / Arizona Central (ft)",9002,4759,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +3480,"NAD83(NSRS2007) / Arizona East",9001,4759,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +3481,"NAD83(NSRS2007) / Arizona East (ft)",9002,4759,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +3482,"NAD83(NSRS2007) / Arizona West",9001,4759,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +3483,"NAD83(NSRS2007) / Arizona West (ft)",9002,4759,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +3484,"NAD83(NSRS2007) / Arkansas North",9001,4759,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3485,"NAD83(NSRS2007) / Arkansas North (ftUS)",9003,4759,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +3486,"NAD83(NSRS2007) / Arkansas South",9001,4759,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +3487,"NAD83(NSRS2007) / Arkansas South (ftUS)",9003,4759,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +3488,"NAD83(NSRS2007) / California Albers",9001,4759,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,, +3489,"NAD83(NSRS2007) / California zone 1",9001,4759,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +3490,"NAD83(NSRS2007) / California zone 1 (ftUS)",9003,4759,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +3491,"NAD83(NSRS2007) / California zone 2",9001,4759,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +3492,"NAD83(NSRS2007) / California zone 2 (ftUS)",9003,4759,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +3493,"NAD83(NSRS2007) / California zone 3",9001,4759,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +3494,"NAD83(NSRS2007) / California zone 3 (ftUS)",9003,4759,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +3495,"NAD83(NSRS2007) / California zone 4",9001,4759,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +3496,"NAD83(NSRS2007) / California zone 4 (ftUS)",9003,4759,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +3497,"NAD83(NSRS2007) / California zone 5",9001,4759,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +3498,"NAD83(NSRS2007) / California zone 5 (ftUS)",9003,4759,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +3499,"NAD83(NSRS2007) / California zone 6",9001,4759,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +3500,"NAD83(NSRS2007) / California zone 6 (ftUS)",9003,4759,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +3501,"NAD83(NSRS2007) / Colorado Central",9001,4759,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +3502,"NAD83(NSRS2007) / Colorado Central (ftUS)",9003,4759,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +3503,"NAD83(NSRS2007) / Colorado North",9001,4759,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +3504,"NAD83(NSRS2007) / Colorado North (ftUS)",9003,4759,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +3505,"NAD83(NSRS2007) / Colorado South",9001,4759,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +3506,"NAD83(NSRS2007) / Colorado South (ftUS)",9003,4759,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +3507,"NAD83(NSRS2007) / Connecticut",9001,4759,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,, +3508,"NAD83(NSRS2007) / Connecticut (ftUS)",9003,4759,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,, +3509,"NAD83(NSRS2007) / Delaware",9001,4759,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3510,"NAD83(NSRS2007) / Delaware (ftUS)",9003,4759,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +3511,"NAD83(NSRS2007) / Florida East",9001,4759,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3512,"NAD83(NSRS2007) / Florida East (ftUS)",9003,4759,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +3513,"NAD83(NSRS2007) / Florida GDL Albers",9001,4759,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3514,"NAD83(NSRS2007) / Florida North",9001,4759,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3515,"NAD83(NSRS2007) / Florida North (ftUS)",9003,4759,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3516,"NAD83(NSRS2007) / Florida West",9001,4759,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3517,"NAD83(NSRS2007) / Florida West (ftUS)",9003,4759,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +3518,"NAD83(NSRS2007) / Georgia East",9001,4759,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3519,"NAD83(NSRS2007) / Georgia East (ftUS)",9003,4759,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +3520,"NAD83(NSRS2007) / Georgia West",9001,4759,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +3521,"NAD83(NSRS2007) / Georgia West (ftUS)",9003,4759,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +3522,"NAD83(NSRS2007) / Idaho Central",9001,4759,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3523,"NAD83(NSRS2007) / Idaho Central (ftUS)",9003,4759,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +3524,"NAD83(NSRS2007) / Idaho East",9001,4759,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3525,"NAD83(NSRS2007) / Idaho East (ftUS)",9003,4759,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +3526,"NAD83(NSRS2007) / Idaho West",9001,4759,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,, +3527,"NAD83(NSRS2007) / Idaho West (ftUS)",9003,4759,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,, +3528,"NAD83(NSRS2007) / Illinois East",9001,4759,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3529,"NAD83(NSRS2007) / Illinois East (ftUS)",9003,4759,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3530,"NAD83(NSRS2007) / Illinois West",9001,4759,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +3531,"NAD83(NSRS2007) / Illinois West (ftUS)",9003,4759,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,, +3532,"NAD83(NSRS2007) / Indiana East",9001,4759,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,, +3533,"NAD83(NSRS2007) / Indiana East (ftUS)",9003,4759,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,, +3534,"NAD83(NSRS2007) / Indiana West",9001,4759,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,, +3535,"NAD83(NSRS2007) / Indiana West (ftUS)",9003,4759,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,, +3536,"NAD83(NSRS2007) / Iowa North",9001,4759,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +3537,"NAD83(NSRS2007) / Iowa North (ftUS)",9003,4759,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,, +3538,"NAD83(NSRS2007) / Iowa South",9001,4759,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3539,"NAD83(NSRS2007) / Iowa South (ftUS)",9003,4759,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +3540,"NAD83(NSRS2007) / Kansas North",9001,4759,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3541,"NAD83(NSRS2007) / Kansas North (ftUS)",9003,4759,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +3542,"NAD83(NSRS2007) / Kansas South",9001,4759,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +3543,"NAD83(NSRS2007) / Kansas South (ftUS)",9003,4759,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +3544,"NAD83(NSRS2007) / Kentucky North",9001,4759,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3545,"NAD83(NSRS2007) / Kentucky North (ftUS)",9003,4759,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +3546,"NAD83(NSRS2007) / Kentucky Single Zone",9001,4759,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +3547,"NAD83(NSRS2007) / Kentucky Single Zone (ftUS)",9003,4759,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,, +3548,"NAD83(NSRS2007) / Kentucky South",9001,4759,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +3549,"NAD83(NSRS2007) / Kentucky South (ftUS)",9003,4759,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,, +3550,"NAD83(NSRS2007) / Louisiana North",9001,4759,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +3551,"NAD83(NSRS2007) / Louisiana North (ftUS)",9003,4759,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3552,"NAD83(NSRS2007) / Louisiana South",9001,4759,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +3553,"NAD83(NSRS2007) / Louisiana South (ftUS)",9003,4759,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +3554,"NAD83(NSRS2007) / Maine CS2000 Central",9001,4759,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3555,"NAD83(NSRS2007) / Maine CS2000 East",9001,4759,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +3556,"NAD83(NSRS2007) / Maine CS2000 West",9001,4759,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3557,"NAD83(NSRS2007) / Maine East",9001,4759,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3558,"NAD83(NSRS2007) / Maine West",9001,4759,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,, +3559,"NAD83(NSRS2007) / Maryland",9001,4759,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3560,"NAD83 / Utah North (ftUS)",9003,4269,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,, +3561,"Old Hawaiian / Hawaii zone 1",9003,4135,15101,9807,1,0,4497,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +3562,"Old Hawaiian / Hawaii zone 2",9003,4135,15102,9807,1,0,4497,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +3563,"Old Hawaiian / Hawaii zone 3",9003,4135,15103,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +3564,"Old Hawaiian / Hawaii zone 4",9003,4135,15104,9807,1,0,4497,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +3565,"Old Hawaiian / Hawaii zone 5",9003,4135,15105,9807,1,0,4497,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +3566,"NAD83 / Utah Central (ftUS)",9003,4269,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,, +3567,"NAD83 / Utah South (ftUS)",9003,4269,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,, +3568,"NAD83(HARN) / Utah North (ftUS)",9003,4152,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,, +3569,"NAD83(HARN) / Utah Central (ftUS)",9003,4152,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,, +3570,"NAD83(HARN) / Utah South (ftUS)",9003,4152,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,, +3571,"WGS 84 / North Pole LAEA Bering Sea",9001,4326,17295,9820,1,0,4464,8801,90,9102,8802,180,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3572,"WGS 84 / North Pole LAEA Alaska",9001,4326,17296,9820,1,0,4467,8801,90,9102,8802,-150,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3573,"WGS 84 / North Pole LAEA Canada",9001,4326,17297,9820,1,0,4466,8801,90,9102,8802,-100,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3574,"WGS 84 / North Pole LAEA Atlantic",9001,4326,17298,9820,1,0,4465,8801,90,9102,8802,-40,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3575,"WGS 84 / North Pole LAEA Europe",9001,4326,17299,9820,1,0,4463,8801,90,9102,8802,10,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3576,"WGS 84 / North Pole LAEA Russia",9001,4326,17300,9820,1,0,1035,8801,90,9102,8802,90,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3577,"GDA94 / Australian Albers",9001,4283,17365,9822,1,0,4400,8821,0,9102,8822,132,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3578,"NAD83 / Yukon Albers",9001,4269,19858,9822,1,0,4400,8821,59,9110,8822,-132.3,9110,8823,61.4,9110,8824,68,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +3579,"NAD83(CSRS) / Yukon Albers",9001,4617,19858,9822,1,0,4400,8821,59,9110,8822,-132.3,9110,8823,61.4,9110,8824,68,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +3580,"NAD83 / NWT Lambert",9001,4269,19857,9802,1,0,4400,8821,0,9102,8822,-112,9102,8823,62,9102,8824,70,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3581,"NAD83(CSRS) / NWT Lambert",9001,4617,19857,9802,1,0,4400,8821,0,9102,8822,-112,9102,8823,62,9102,8824,70,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3582,"NAD83(NSRS2007) / Maryland (ftUS)",9003,4759,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,, +3583,"NAD83(NSRS2007) / Massachusetts Island",9001,4759,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3584,"NAD83(NSRS2007) / Massachusetts Island (ftUS)",9003,4759,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +3585,"NAD83(NSRS2007) / Massachusetts Mainland",9001,4759,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,, +3586,"NAD83(NSRS2007) / Massachusetts Mainland (ftUS)",9003,4759,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,, +3587,"NAD83(NSRS2007) / Michigan Central",9001,4759,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,, +3588,"NAD83(NSRS2007) / Michigan Central (ft)",9002,4759,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,, +3589,"NAD83(NSRS2007) / Michigan North",9001,4759,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,, +3590,"NAD83(NSRS2007) / Michigan North (ft)",9002,4759,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,, +3591,"NAD83(NSRS2007) / Michigan Oblique Mercator",9001,4759,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,, +3592,"NAD83(NSRS2007) / Michigan South",9001,4759,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,, +3593,"NAD83(NSRS2007) / Michigan South (ft)",9002,4759,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,, +3594,"NAD83(NSRS2007) / Minnesota Central",9001,4759,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +3595,"NAD83(NSRS2007) / Minnesota North",9001,4759,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +3596,"NAD83(NSRS2007) / Minnesota South",9001,4759,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +3597,"NAD83(NSRS2007) / Mississippi East",9001,4759,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3598,"NAD83(NSRS2007) / Mississippi East (ftUS)",9003,4759,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3599,"NAD83(NSRS2007) / Mississippi West",9001,4759,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +3600,"NAD83(NSRS2007) / Mississippi West (ftUS)",9003,4759,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +3601,"NAD83(NSRS2007) / Missouri Central",9001,4759,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3602,"NAD83(NSRS2007) / Missouri East",9001,4759,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3603,"NAD83(NSRS2007) / Missouri West",9001,4759,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,, +3604,"NAD83(NSRS2007) / Montana",9001,4759,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3605,"NAD83(NSRS2007) / Montana (ft)",9002,4759,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +3606,"NAD83(NSRS2007) / Nebraska",9001,4759,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3607,"NAD83(NSRS2007) / Nevada Central",9001,4759,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,, +3608,"NAD83(NSRS2007) / Nevada Central (ftUS)",9003,4759,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,, +3609,"NAD83(NSRS2007) / Nevada East",9001,4759,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,, +3610,"NAD83(NSRS2007) / Nevada East (ftUS)",9003,4759,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,, +3611,"NAD83(NSRS2007) / Nevada West",9001,4759,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,, +3612,"NAD83(NSRS2007) / Nevada West (ftUS)",9003,4759,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,, +3613,"NAD83(NSRS2007) / New Hampshire",9001,4759,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +3614,"NAD83(NSRS2007) / New Hampshire (ftUS)",9003,4759,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +3615,"NAD83(NSRS2007) / New Jersey",9001,4759,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3616,"NAD83(NSRS2007) / New Jersey (ftUS)",9003,4759,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +3617,"NAD83(NSRS2007) / New Mexico Central",9001,4759,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3618,"NAD83(NSRS2007) / New Mexico Central (ftUS)",9003,4759,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +3619,"NAD83(NSRS2007) / New Mexico East",9001,4759,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,, +3620,"NAD83(NSRS2007) / New Mexico East (ftUS)",9003,4759,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,, +3621,"NAD83(NSRS2007) / New Mexico West",9001,4759,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,, +3622,"NAD83(NSRS2007) / New Mexico West (ftUS)",9003,4759,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,, +3623,"NAD83(NSRS2007) / New York Central",9001,4759,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3624,"NAD83(NSRS2007) / New York Central (ftUS)",9003,4759,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,, +3625,"NAD83(NSRS2007) / New York East",9001,4759,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +3626,"NAD83(NSRS2007) / New York East (ftUS)",9003,4759,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +3627,"NAD83(NSRS2007) / New York Long Island",9001,4759,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,, +3628,"NAD83(NSRS2007) / New York Long Island (ftUS)",9003,4759,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,, +3629,"NAD83(NSRS2007) / New York West",9001,4759,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,, +3630,"NAD83(NSRS2007) / New York West (ftUS)",9003,4759,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,, +3631,"NAD83(NSRS2007) / North Carolina",9001,4759,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,, +3632,"NAD83(NSRS2007) / North Carolina (ftUS)",9003,4759,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +3633,"NAD83(NSRS2007) / North Dakota North",9001,4759,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3634,"NAD83(NSRS2007) / North Dakota North (ft)",9002,4759,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +3635,"NAD83(NSRS2007) / North Dakota South",9001,4759,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3636,"NAD83(NSRS2007) / North Dakota South (ft)",9002,4759,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +3637,"NAD83(NSRS2007) / Ohio North",9001,4759,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3638,"NAD83(NSRS2007) / Ohio South",9001,4759,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3639,"NAD83(NSRS2007) / Oklahoma North",9001,4759,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3640,"NAD83(NSRS2007) / Oklahoma North (ftUS)",9003,4759,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3641,"NAD83(NSRS2007) / Oklahoma South",9001,4759,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3642,"NAD83(NSRS2007) / Oklahoma South (ftUS)",9003,4759,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3643,"NAD83(NSRS2007) / Oregon LCC (m)",9001,4759,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +3644,"NAD83(NSRS2007) / Oregon GIC Lambert (ft)",9002,4759,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,, +3645,"NAD83(NSRS2007) / Oregon North",9001,4759,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,, +3646,"NAD83(NSRS2007) / Oregon North (ft)",9002,4759,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,, +3647,"NAD83(NSRS2007) / Oregon South",9001,4759,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,, +3648,"NAD83(NSRS2007) / Oregon South (ft)",9002,4759,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,, +3649,"NAD83(NSRS2007) / Pennsylvania North",9001,4759,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3650,"NAD83(NSRS2007) / Pennsylvania North (ftUS)",9003,4759,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3651,"NAD83(NSRS2007) / Pennsylvania South",9001,4759,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3652,"NAD83(NSRS2007) / Pennsylvania South (ftUS)",9003,4759,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3653,"NAD83(NSRS2007) / Rhode Island",9001,4759,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,, +3654,"NAD83(NSRS2007) / Rhode Island (ftUS)",9003,4759,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,, +3655,"NAD83(NSRS2007) / South Carolina",9001,4759,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,, +3656,"NAD83(NSRS2007) / South Carolina (ft)",9002,4759,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,, +3657,"NAD83(NSRS2007) / South Dakota North",9001,4759,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3658,"NAD83(NSRS2007) / South Dakota North (ftUS)",9003,4759,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3659,"NAD83(NSRS2007) / South Dakota South",9001,4759,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3660,"NAD83(NSRS2007) / South Dakota South (ftUS)",9003,4759,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3661,"NAD83(NSRS2007) / Tennessee",9001,4759,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3662,"NAD83(NSRS2007) / Tennessee (ftUS)",9003,4759,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3663,"NAD83(NSRS2007) / Texas Central",9001,4759,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,, +3664,"NAD83(NSRS2007) / Texas Central (ftUS)",9003,4759,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,, +3665,"NAD83(NSRS2007) / Texas Centric Albers Equal Area",9001,4759,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,, +3666,"NAD83(NSRS2007) / Texas Centric Lambert Conformal",9001,4759,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,, +3667,"NAD83(NSRS2007) / Texas North",9001,4759,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,, +3668,"NAD83(NSRS2007) / Texas North (ftUS)",9003,4759,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,, +3669,"NAD83(NSRS2007) / Texas North Central",9001,4759,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,, +3670,"NAD83(NSRS2007) / Texas North Central (ftUS)",9003,4759,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,, +3671,"NAD83(NSRS2007) / Texas South",9001,4759,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,, +3672,"NAD83(NSRS2007) / Texas South (ftUS)",9003,4759,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,, +3673,"NAD83(NSRS2007) / Texas South Central",9001,4759,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,, +3674,"NAD83(NSRS2007) / Texas South Central (ftUS)",9003,4759,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,, +3675,"NAD83(NSRS2007) / Utah Central",9001,4759,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,, +3676,"NAD83(NSRS2007) / Utah Central (ft)",9002,4759,15363,9802,0,0,4495,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640419.948,9002,8827,6561679.79,9002,,,,,,,,,, +3677,"NAD83(NSRS2007) / Utah Central (ftUS)",9003,4759,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,, +3678,"NAD83(NSRS2007) / Utah North",9001,4759,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,, +3679,"NAD83(NSRS2007) / Utah North (ft)",9002,4759,15362,9802,0,0,4495,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640419.948,9002,8827,3280839.895,9002,,,,,,,,,, +3680,"NAD83(NSRS2007) / Utah North (ftUS)",9003,4759,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,, +3681,"NAD83(NSRS2007) / Utah South",9001,4759,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,, +3682,"NAD83(NSRS2007) / Utah South (ft)",9002,4759,15364,9802,0,0,4495,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640419.948,9002,8827,9842519.685,9002,,,,,,,,,, +3683,"NAD83(NSRS2007) / Utah South (ftUS)",9003,4759,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,, +3684,"NAD83(NSRS2007) / Vermont",9001,4759,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3685,"NAD83(NSRS2007) / Virginia North",9001,4759,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,, +3686,"NAD83(NSRS2007) / Virginia North (ftUS)",9003,4759,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,, +3687,"NAD83(NSRS2007) / Virginia South",9001,4759,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,, +3688,"NAD83(NSRS2007) / Virginia South (ftUS)",9003,4759,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,, +3689,"NAD83(NSRS2007) / Washington North",9001,4759,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3690,"NAD83(NSRS2007) / Washington North (ftUS)",9003,4759,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +3691,"NAD83(NSRS2007) / Washington South",9001,4759,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3692,"NAD83(NSRS2007) / Washington South (ftUS)",9003,4759,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +3693,"NAD83(NSRS2007) / West Virginia North",9001,4759,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3694,"NAD83(NSRS2007) / West Virginia South",9001,4759,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3695,"NAD83(NSRS2007) / Wisconsin Central",9001,4759,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3696,"NAD83(NSRS2007) / Wisconsin Central (ftUS)",9003,4759,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3697,"NAD83(NSRS2007) / Wisconsin North",9001,4759,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3698,"NAD83(NSRS2007) / Wisconsin North (ftUS)",9003,4759,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3699,"NAD83(NSRS2007) / Wisconsin South",9001,4759,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +3700,"NAD83(NSRS2007) / Wisconsin South (ftUS)",9003,4759,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3701,"NAD83(NSRS2007) / Wisconsin Transverse Mercator",9001,4759,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,, +3702,"NAD83(NSRS2007) / Wyoming East",9001,4759,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +3703,"NAD83(NSRS2007) / Wyoming East Central",9001,4759,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,, +3704,"NAD83(NSRS2007) / Wyoming West Central",9001,4759,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +3705,"NAD83(NSRS2007) / Wyoming West",9001,4759,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,, +3706,"NAD83(NSRS2007) / UTM zone 59N",9001,4759,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3707,"NAD83(NSRS2007) / UTM zone 60N",9001,4759,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3708,"NAD83(NSRS2007) / UTM zone 1N",9001,4759,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3709,"NAD83(NSRS2007) / UTM zone 2N",9001,4759,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3710,"NAD83(NSRS2007) / UTM zone 3N",9001,4759,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3711,"NAD83(NSRS2007) / UTM zone 4N",9001,4759,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3712,"NAD83(NSRS2007) / UTM zone 5N",9001,4759,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3713,"NAD83(NSRS2007) / UTM zone 6N",9001,4759,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3714,"NAD83(NSRS2007) / UTM zone 7N",9001,4759,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3715,"NAD83(NSRS2007) / UTM zone 8N",9001,4759,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3716,"NAD83(NSRS2007) / UTM zone 9N",9001,4759,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3717,"NAD83(NSRS2007) / UTM zone 10N",9001,4759,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3718,"NAD83(NSRS2007) / UTM zone 11N",9001,4759,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3719,"NAD83(NSRS2007) / UTM zone 12N",9001,4759,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3720,"NAD83(NSRS2007) / UTM zone 13N",9001,4759,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3721,"NAD83(NSRS2007) / UTM zone 14N",9001,4759,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3722,"NAD83(NSRS2007) / UTM zone 15N",9001,4759,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3723,"NAD83(NSRS2007) / UTM zone 16N",9001,4759,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3724,"NAD83(NSRS2007) / UTM zone 17N",9001,4759,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3725,"NAD83(NSRS2007) / UTM zone 18N",9001,4759,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3726,"NAD83(NSRS2007) / UTM zone 19N",9001,4759,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3727,"Reunion 1947 / TM Reunion",9001,4626,19856,9807,1,0,4499,8801,-21.07,9110,8802,55.32,9110,8805,1,9201,8806,160000,9001,8807,50000,9001,,,,,,,,,,,,, +3728,"NAD83(NSRS2007) / Ohio North (ftUS)",9003,4759,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3729,"NAD83(NSRS2007) / Ohio South (ftUS)",9003,4759,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3730,"NAD83(NSRS2007) / Wyoming East (ftUS)",9003,4759,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,, +3731,"NAD83(NSRS2007) / Wyoming East Central (ftUS)",9003,4759,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,, +3732,"NAD83(NSRS2007) / Wyoming West Central (ftUS)",9003,4759,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,, +3733,"NAD83(NSRS2007) / Wyoming West (ftUS)",9003,4759,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,, +3734,"NAD83 / Ohio North (ftUS)",9003,4269,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3735,"NAD83 / Ohio South (ftUS)",9003,4269,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3736,"NAD83 / Wyoming East (ftUS)",9003,4269,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,, +3737,"NAD83 / Wyoming East Central (ftUS)",9003,4269,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,, +3738,"NAD83 / Wyoming West Central (ftUS)",9003,4269,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,, +3739,"NAD83 / Wyoming West (ftUS)",9003,4269,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,, +3740,"NAD83(HARN) / UTM zone 10N",9001,4152,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3741,"NAD83(HARN) / UTM zone 11N",9001,4152,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3742,"NAD83(HARN) / UTM zone 12N",9001,4152,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3743,"NAD83(HARN) / UTM zone 13N",9001,4152,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3744,"NAD83(HARN) / UTM zone 14N",9001,4152,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3745,"NAD83(HARN) / UTM zone 15N",9001,4152,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3746,"NAD83(HARN) / UTM zone 16N",9001,4152,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3747,"NAD83(HARN) / UTM zone 17N",9001,4152,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3748,"NAD83(HARN) / UTM zone 18N",9001,4152,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3749,"NAD83(HARN) / UTM zone 19N",9001,4152,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3750,"NAD83(HARN) / UTM zone 4N",9001,4152,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3751,"NAD83(HARN) / UTM zone 5N",9001,4152,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3752,"WGS 84 / Mercator 41",9001,4326,19855,9804,1,1,4499,8801,-41,9102,8802,100,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3753,"NAD83(HARN) / Ohio North (ftUS)",9003,4152,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3754,"NAD83(HARN) / Ohio South (ftUS)",9003,4152,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +3755,"NAD83(HARN) / Wyoming East (ftUS)",9003,4152,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,, +3756,"NAD83(HARN) / Wyoming East Central (ftUS)",9003,4152,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,, +3757,"NAD83(HARN) / Wyoming West Central (ftUS)",9003,4152,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,, +3758,"NAD83(HARN) / Wyoming West (ftUS)",9003,4152,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,, +3759,"NAD83 / Hawaii zone 3 (ftUS)",9003,4269,15138,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +3760,"NAD83(HARN) / Hawaii zone 3 (ftUS)",9003,4152,15138,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +3761,"NAD83(CSRS) / UTM zone 22N",9001,4617,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3762,"WGS 84 / South Georgia Lambert",9001,4326,19854,9802,1,0,4400,8821,-55,9102,8822,-37,9102,8823,-54,9110,8824,-54.45,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3763,"ETRS89 / Portugal TM06",9001,4258,19853,9807,1,0,4499,8801,39.400573,9110,8802,-8.075919,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3764,"NZGD2000 / Chatham Island Circuit 2000",9001,4167,17959,9807,1,0,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,, +3765,"HTRS96 / Croatia TM",9001,4761,19851,9807,1,0,4400,8801,0,9102,8802,16.5,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3766,"HTRS96 / Croatia LCC",9001,4761,19852,9802,1,0,4400,8821,0,9102,8822,16.3,9110,8823,45.55,9110,8824,43.05,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +3767,"HTRS96 / UTM zone 33N",9001,4761,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3768,"HTRS96 / UTM zone 34N",9001,4761,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3769,"Bermuda 1957 / UTM zone 20N",9001,4216,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3770,"BDA2000 / Bermuda 2000 National Grid",9001,4762,19849,9807,1,0,4400,8801,32,9110,8802,-64.45,9110,8805,1,9201,8806,550000,9001,8807,100000,9001,,,,,,,,,,,,, +3771,"NAD27 / Alberta 3TM ref merid 111 W",9001,4267,17722,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3772,"NAD27 / Alberta 3TM ref merid 114 W",9001,4267,17723,9807,1,0,4400,8801,0,9102,8802,-114,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3773,"NAD27 / Alberta 3TM ref merid 117 W",9001,4267,17724,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3774,"NAD27 / Alberta 3TM ref merid 120 W",9001,4267,17725,9807,1,1,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9001,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3775,"NAD83 / Alberta 3TM ref merid 111 W",9001,4269,17722,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3776,"NAD83 / Alberta 3TM ref merid 114 W",9001,4269,17723,9807,1,0,4400,8801,0,9102,8802,-114,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3777,"NAD83 / Alberta 3TM ref merid 117 W",9001,4269,17724,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3778,"NAD83 / Alberta 3TM ref merid 120 W",9001,4269,17725,9807,1,1,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9001,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3779,"NAD83(CSRS) / Alberta 3TM ref merid 111 W",9001,4617,17722,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3780,"NAD83(CSRS) / Alberta 3TM ref merid 114 W",9001,4617,17723,9807,1,0,4400,8801,0,9102,8802,-114,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3781,"NAD83(CSRS) / Alberta 3TM ref merid 117 W",9001,4617,17724,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3782,"NAD83(CSRS) / Alberta 3TM ref merid 120 W",9001,4617,17725,9807,1,1,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9001,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3783,"Pitcairn 2006 / Pitcairn TM 2006",9001,4763,19848,9807,1,0,4400,8801,-25.04067894,9110,8802,-130.06466816,9110,8805,1,9201,8806,14200,9001,8807,15500,9001,,,,,,,,,,,,, +3784,"Pitcairn 1967 / UTM zone 9S",9001,4729,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3785,"Popular Visualisation CRS / Mercator",9001,4055,19847,9841,1,1,4499,8801,0,9102,8802,0,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3786,"World Equidistant Cylindrical (Sphere)",9001,4047,19968,9823,1,1,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3787,"MGI / Slovene National Grid",9001,4312,19845,9807,1,1,4498,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,500000,9001,8807,-5000000,9001,,,,,,,,,,,,, +3788,"NZGD2000 / Auckland Islands TM 2000",9001,4167,17960,9807,1,0,4500,8801,0,9102,8802,166,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3789,"NZGD2000 / Campbell Island TM 2000",9001,4167,17961,9807,1,0,4500,8801,0,9102,8802,169,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3790,"NZGD2000 / Antipodes Islands TM 2000",9001,4167,17962,9807,1,0,4500,8801,0,9102,8802,179,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3791,"NZGD2000 / Raoul Island TM 2000",9001,4167,17963,9807,1,0,4500,8801,0,9102,8802,-178,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3793,"NZGD2000 / Chatham Islands TM 2000",9001,4167,17965,9807,1,0,4500,8801,0,9110,8802,-176.3,9110,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,, +3794,"Slovenia 1996 / Slovene National Grid",9001,4765,19845,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,500000,9001,8807,-5000000,9001,,,,,,,,,,,,, +3795,"NAD27 / Cuba Norte",9001,4267,18063,9802,1,0,4532,8821,22.21,9110,8822,-81,9110,8823,23,9110,8824,21.42,9110,8826,500000,9001,8827,280296.016,9001,,,,,,,,,, +3796,"NAD27 / Cuba Sur",9001,4267,18064,9802,1,0,4532,8821,20.43,9110,8822,-76.5,9110,8823,21.18,9110,8824,20.08,9110,8826,500000,9001,8827,229126.939,9001,,,,,,,,,, +3797,"NAD27 / MTQ Lambert",9001,4267,19844,9802,1,0,4499,8821,44,9102,8822,-70,9102,8823,50,9102,8824,46,9102,8826,800000,9001,8827,0,9001,,,,,,,,,, +3798,"NAD83 / MTQ Lambert",9001,4269,19844,9802,1,0,4499,8821,44,9102,8822,-70,9102,8823,50,9102,8824,46,9102,8826,800000,9001,8827,0,9001,,,,,,,,,, +3799,"NAD83(CSRS) / MTQ Lambert",9001,4617,19844,9802,1,0,4499,8821,44,9102,8822,-70,9102,8823,50,9102,8824,46,9102,8826,800000,9001,8827,0,9001,,,,,,,,,, +3800,"NAD27 / Alberta 3TM ref merid 120 W",9001,4267,17726,9807,1,0,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3801,"NAD83 / Alberta 3TM ref merid 120 W",9001,4269,17726,9807,1,0,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3802,"NAD83(CSRS) / Alberta 3TM ref merid 120 W",9001,4617,17726,9807,1,0,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3812,"ETRS89 / Belgian Lambert 2008",9001,4258,3811,9802,1,0,4499,8821,50.4752134,9110,8822,4.2133177,9110,8823,49.5,9110,8824,51.1,9110,8826,649328,9001,8827,665262,9001,,,,,,,,,, +3814,"NAD83 / Mississippi TM",9001,4269,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,, +3815,"NAD83(HARN) / Mississippi TM",9001,4152,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,, +3816,"NAD83(NSRS2007) / Mississippi TM",9001,4759,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,, +3825,"TWD97 / TM2 zone 119",9001,3824,3818,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3826,"TWD97 / TM2 zone 121",9001,3824,3820,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3827,"TWD67 / TM2 zone 119",9001,3821,3818,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3828,"TWD67 / TM2 zone 121",9001,3821,3820,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +3829,"Hu Tzu Shan 1950 / UTM zone 51N",9001,4236,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3832,"WGS 84 / PDC Mercator",9001,4326,3831,9804,1,0,4400,8801,0,9102,8802,150,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +3833,"Pulkovo 1942(58) / Gauss-Kruger zone 2",9001,4179,16202,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +3834,"Pulkovo 1942(83) / Gauss-Kruger zone 2",9001,4178,16202,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +3835,"Pulkovo 1942(83) / Gauss-Kruger zone 3",9001,4178,16203,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +3836,"Pulkovo 1942(83) / Gauss-Kruger zone 4",9001,4178,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +3837,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3",9001,4179,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +3838,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4",9001,4179,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +3839,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9",9001,4179,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +3840,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10",9001,4179,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +3841,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6",9001,4178,16266,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3842,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",9001,4178,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3843,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",9001,4178,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3844,"Pulkovo 1942(58) / Stereo70",9001,4179,19926,9809,1,0,4530,8801,46,9102,8802,25,9102,8805,0.99975,9201,8806,500000,9001,8807,500000,9001,,,,,,,2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69 +3845,"SWEREF99 / RT90 7.5 gon V emulation",9001,4619,17339,9807,1,0,4530,8801,0,9110,8802,11.18225,9110,8805,1.000006,9201,8806,1500025.141,9001,8807,-667.282,9001,,,,,,,,,,,,, +3846,"SWEREF99 / RT90 5 gon V emulation",9001,4619,17340,9807,1,0,4530,8801,0,9110,8802,13.332256,9110,8805,1.0000058,9201,8806,1500044.695,9001,8807,-667.13,9001,,,,,,,,,,,,, +3847,"SWEREF99 / RT90 2.5 gon V emulation",9001,4619,17341,9807,1,0,4530,8801,0,9110,8802,15.4822624306,9110,8805,1.00000561024,9201,8806,1500064.274,9001,8807,-667.711,9001,,,,,,,,,,,,, +3848,"SWEREF99 / RT90 0 gon emulation",9001,4619,17342,9807,1,0,4530,8801,0,9110,8802,18.032268,9110,8805,1.0000054,9201,8806,1500083.521,9001,8807,-668.844,9001,,,,,,,,,,,,, +3849,"SWEREF99 / RT90 2.5 gon O emulation",9001,4619,17343,9807,1,0,4530,8801,0,9110,8802,20.182274,9110,8805,1.0000052,9201,8806,1500102.765,9001,8807,-670.706,9001,,,,,,,,,,,,, +3850,"SWEREF99 / RT90 5 gon O emulation",9001,4619,17344,9807,1,0,4530,8801,0,9110,8802,22.33228,9110,8805,1.0000049,9201,8806,1500121.846,9001,8807,-672.557,9001,,,,,,,,,,,,, +3851,"NZGD2000 / NZCS2000",9001,4167,17964,9802,1,0,4500,8821,-41,9110,8822,173,9110,8823,-37.3,9110,8824,-44.3,9110,8826,3000000,9001,8827,7000000,9001,,,,,,,,,, +3852,"RSRGD2000 / DGLC2000",9001,4764,17966,9802,1,0,4500,8821,-90,9110,8822,157,9110,8823,-76.4,9110,8824,-79.2,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +3854,County ST74,9001,4619,3853,9807,1,0,4531,8801,0,9110,8802,18.0328332,9110,8805,0.99999506,9201,8806,100182.7406,9001,8807,-6500620.1207,9001,,,,,,,,,,,,, +3857,"WGS 84 / Pseudo-Mercator",9001,4326,3856,1024,1,0,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3873,"ETRS89 / GK19FIN",9001,4258,3860,9807,1,0,4500,8801,0,9102,8802,19,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +3874,"ETRS89 / GK20FIN",9001,4258,3861,9807,1,0,4500,8801,0,9102,8802,20,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +3875,"ETRS89 / GK21FIN",9001,4258,3862,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +3876,"ETRS89 / GK22FIN",9001,4258,3863,9807,1,0,4500,8801,0,9102,8802,22,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +3877,"ETRS89 / GK23FIN",9001,4258,3864,9807,1,0,4500,8801,0,9102,8802,23,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +3878,"ETRS89 / GK24FIN",9001,4258,3865,9807,1,0,4500,8801,0,9102,8802,24,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +3879,"ETRS89 / GK25FIN",9001,4258,3866,9807,1,0,4500,8801,0,9102,8802,25,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +3880,"ETRS89 / GK26FIN",9001,4258,3867,9807,1,0,4500,8801,0,9102,8802,26,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +3881,"ETRS89 / GK27FIN",9001,4258,3868,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +3882,"ETRS89 / GK28FIN",9001,4258,3869,9807,1,0,4500,8801,0,9102,8802,28,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +3883,"ETRS89 / GK29FIN",9001,4258,3870,9807,1,0,4500,8801,0,9102,8802,29,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +3884,"ETRS89 / GK30FIN",9001,4258,3871,9807,1,0,4500,8801,0,9102,8802,30,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +3885,"ETRS89 / GK31FIN",9001,4258,3872,9807,1,0,4500,8801,0,9102,8802,31,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +3890,"IGRS / UTM zone 37N",9001,3889,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3891,"IGRS / UTM zone 38N",9001,3889,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3892,"IGRS / UTM zone 39N",9001,3889,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3893,"ED50 / Iraq National Grid",9001,4230,19907,9807,1,0,4400,8801,29.0134566,9110,8802,46.3,9110,8805,0.9994,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,, +3907,"MGI 1901 / Balkans zone 5",9001,3906,18275,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +3908,"MGI 1901 / Balkans zone 6",9001,3906,18276,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +3909,"MGI 1901 / Balkans zone 7",9001,3906,18277,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +3910,"MGI 1901 / Balkans zone 8",9001,3906,18278,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +3911,"MGI 1901 / Slovenia Grid",9001,3906,19967,9807,1,0,4530,8801,0,9110,8802,15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3912,"MGI 1901 / Slovene National Grid",9001,3906,19845,9807,1,0,4498,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,500000,9001,8807,-5000000,9001,,,,,,,,,,,,, +3920,"Puerto Rico / UTM zone 20N",9001,4139,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +3942,"RGF93 / CC42",9001,4171,18101,9802,1,0,4499,8821,42,9102,8822,3,9102,8823,41.25,9102,8824,42.75,9102,8826,1700000,9001,8827,1200000,9001,,,,,,,,,, +3943,"RGF93 / CC43",9001,4171,18102,9802,1,0,4499,8821,43,9102,8822,3,9102,8823,42.25,9102,8824,43.75,9102,8826,1700000,9001,8827,2200000,9001,,,,,,,,,, +3944,"RGF93 / CC44",9001,4171,18103,9802,1,0,4499,8821,44,9102,8822,3,9102,8823,43.25,9102,8824,44.75,9102,8826,1700000,9001,8827,3200000,9001,,,,,,,,,, +3945,"RGF93 / CC45",9001,4171,18104,9802,1,0,4499,8821,45,9102,8822,3,9102,8823,44.25,9102,8824,45.75,9102,8826,1700000,9001,8827,4200000,9001,,,,,,,,,, +3946,"RGF93 / CC46",9001,4171,18105,9802,1,0,4499,8821,46,9102,8822,3,9102,8823,45.25,9102,8824,46.75,9102,8826,1700000,9001,8827,5200000,9001,,,,,,,,,, +3947,"RGF93 / CC47",9001,4171,18106,9802,1,0,4499,8821,47,9102,8822,3,9102,8823,46.25,9102,8824,47.75,9102,8826,1700000,9001,8827,6200000,9001,,,,,,,,,, +3948,"RGF93 / CC48",9001,4171,18107,9802,1,0,4499,8821,48,9102,8822,3,9102,8823,47.25,9102,8824,48.75,9102,8826,1700000,9001,8827,7200000,9001,,,,,,,,,, +3949,"RGF93 / CC49",9001,4171,18108,9802,1,0,4499,8821,49,9102,8822,3,9102,8823,48.25,9102,8824,49.75,9102,8826,1700000,9001,8827,8200000,9001,,,,,,,,,, +3950,"RGF93 / CC50",9001,4171,18109,9802,1,0,4499,8821,50,9102,8822,3,9102,8823,49.25,9102,8824,50.75,9102,8826,1700000,9001,8827,9200000,9001,,,,,,,,,, +3968,"NAD83 / Virginia Lambert",9001,4269,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3969,"NAD83(HARN) / Virginia Lambert",9001,4152,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3970,"NAD83(NSRS2007) / Virginia Lambert",9001,4759,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3973,"WGS 84 / NSIDC EASE-Grid North",9001,4326,3897,1027,1,1,4469,8801,90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3974,"WGS 84 / NSIDC EASE-Grid South",9001,4326,3898,1027,1,1,4470,8801,-90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +3975,"WGS 84 / NSIDC EASE-Grid Global",9001,4326,19869,9834,1,1,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,30,9102,,,,,,,,,,,,,,,, +3976,"WGS 84 / NSIDC Sea Ice Polar Stereographic South",9001,4326,19866,9829,1,0,4470,8806,0,9001,8807,0,9001,8832,-70,9102,8833,0,9102,,,,,,,,,,,,,,,, +3978,"NAD83 / Canada Atlas Lambert",9001,4269,3977,9802,1,0,4400,8821,49,9102,8822,-95,9102,8823,49,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3979,"NAD83(CSRS) / Canada Atlas Lambert",9001,4617,3977,9802,1,0,4400,8821,49,9102,8822,-95,9102,8823,49,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +3985,"Katanga 1955 / Katanga Lambert",9001,4695,3980,9802,1,1,4499,8821,9,9102,8822,26,9102,8823,-6.5,9102,8824,-11.5,9102,8826,500000,9001,8827,500000,9001,,,,,,,,,, +3986,"Katanga 1955 / Katanga Gauss zone A",9001,4695,3981,9807,1,0,4499,8801,-9,9102,8802,30,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +3987,"Katanga 1955 / Katanga Gauss zone B",9001,4695,3982,9807,1,0,4499,8801,-9,9102,8802,28,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +3988,"Katanga 1955 / Katanga Gauss zone C",9001,4695,3983,9807,1,0,4499,8801,-9,9102,8802,26,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +3989,"Katanga 1955 / Katanga Gauss zone D",9001,4695,3984,9807,1,0,4499,8801,-9,9102,8802,24,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +3991,Puerto Rico State Plane CS of 1927,9003,4139,15201,9802,1,0,4497,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,500000,9003,8827,0,9003,,,,,,,,,, +3992,"Puerto Rico / St. Croix",9003,4139,15202,9802,1,0,4497,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,500000,9003,8827,100000,9003,,,,,,,,,, +3993,"Guam 1963 / Guam SPCS",9001,4675,15400,9831,1,0,4499,8801,13.282087887,9110,8802,144.445550254,9110,8806,50000,9001,8807,50000,9001,,,,,,,,,,,,,,,, +3994,"WGS 84 / Mercator 41",9001,4326,19843,9805,1,0,4499,8802,100,9102,8806,0,9001,8807,0,9001,8823,-41,9102,,,,,,,,,,,,,,,, +3995,"WGS 84 / Arctic Polar Stereographic",9001,4326,19842,9829,1,0,4469,8806,0,9001,8807,0,9001,8832,71,9102,8833,0,9102,,,,,,,,,,,,,,,, +3996,"WGS 84 / IBCAO Polar Stereographic",9001,4326,19840,9829,1,0,4469,8806,0,9001,8807,0,9001,8832,75,9102,8833,0,9102,,,,,,,,,,,,,,,, +3997,"WGS 84 / Dubai Local TM",9001,4326,19839,9807,1,0,4400,8801,0,9110,8802,55.2,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4026,"MOLDREF99 / Moldova TM",9001,4023,3999,9807,1,0,4530,8801,0,9110,8802,28.24,9110,8805,0.99994,9201,8806,200000,9001,8807,-5000000,9001,,,,,,,,,,,,, +4037,"WGS 84 / TMzn35N",9001,4326,16035,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4038,"WGS 84 / TMzn36N",9001,4326,16036,9807,1,0,4500,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4048,"RGRDC 2005 / Congo TM zone 12",9001,4046,17412,9807,1,0,4499,8801,0,9102,8802,12,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4049,"RGRDC 2005 / Congo TM zone 14",9001,4046,17414,9807,1,0,4499,8801,0,9102,8802,14,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4050,"RGRDC 2005 / Congo TM zone 16",9001,4046,17416,9807,1,0,4499,8801,0,9102,8802,16,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4051,"RGRDC 2005 / Congo TM zone 18",9001,4046,17418,9807,1,0,4499,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4056,"RGRDC 2005 / Congo TM zone 20",9001,4046,17420,9807,1,0,4499,8801,0,9102,8802,20,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4057,"RGRDC 2005 / Congo TM zone 22",9001,4046,17422,9807,1,0,4499,8801,0,9102,8802,22,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4058,"RGRDC 2005 / Congo TM zone 24",9001,4046,17424,9807,1,0,4499,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4059,"RGRDC 2005 / Congo TM zone 26",9001,4046,17426,9807,1,0,4499,8801,0,9102,8802,26,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4060,"RGRDC 2005 / Congo TM zone 28",9001,4046,17428,9807,1,0,4499,8801,0,9102,8802,28,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4061,"RGRDC 2005 / UTM zone 33S",9001,4046,16133,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4062,"RGRDC 2005 / UTM zone 34S",9001,4046,16134,9807,1,0,4499,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4063,"RGRDC 2005 / UTM zone 35S",9001,4046,16135,9807,1,0,4499,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4071,"Chua / UTM zone 23S",9001,4224,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4082,"REGCAN95 / UTM zone 27N",9001,4081,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4083,"REGCAN95 / UTM zone 28N",9001,4081,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4087,"WGS 84 / World Equidistant Cylindrical",9001,4326,4085,1028,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,0,9102,,,,,,,,,,,,,,,, +4088,"World Equidistant Cylindrical (Sphere)",9001,4047,4086,1029,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,0,9102,,,,,,,,,,,,,,,, +4093,"ETRS89 / DKTM1",9001,4258,4089,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.99998,9201,8806,200000,9001,8807,-5000000,9001,,,,,,,,,,,,, +4094,"ETRS89 / DKTM2",9001,4258,4090,9807,1,0,4400,8801,0,9102,8802,10,9102,8805,0.99998,9201,8806,400000,9001,8807,-5000000,9001,,,,,,,,,,,,, +4095,"ETRS89 / DKTM3",9001,4258,4091,9807,1,0,4400,8801,0,9102,8802,11.75,9102,8805,0.99998,9201,8806,600000,9001,8807,-5000000,9001,,,,,,,,,,,,, +4096,"ETRS89 / DKTM4",9001,4258,4092,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,800000,9001,8807,-5000000,9001,,,,,,,,,,,,, +4217,"NAD83 / BLM 59N (ftUS)",9003,4269,4186,9807,1,0,4497,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4390,"Kertau 1968 / Johor Grid",9001,4245,4114,9806,1,0,4400,8801,2.02333,9110,8802,103.334593,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +4391,"Kertau 1968 / Sembilan and Melaka Grid",9001,4245,4115,9806,1,0,4400,8801,2.424422,9110,8802,101.56282,9110,8806,-242.005,9001,8807,-948.547,9001,,,,,,,,,,,,,,,, +4392,"Kertau 1968 / Pahang Grid",9001,4245,4116,9806,1,0,4400,8801,3.42395,9110,8802,102.261024,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +4393,"Kertau 1968 / Selangor Grid",9001,4245,4117,9806,1,0,4400,8801,3.404924,9110,8802,101.302968,9110,8806,-21759.438,9001,8807,55960.906,9001,,,,,,,,,,,,,,,, +4394,"Kertau 1968 / Terengganu Grid",9001,4245,4177,9806,1,0,4400,8801,4.564611,9110,8802,102.534275,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +4395,"Kertau 1968 / Pinang Grid",9001,4245,4305,9806,1,0,4400,8801,5.251677,9110,8802,100.204513,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +4396,"Kertau 1968 / Kedah and Perlis Grid",9001,4245,4320,9806,1,0,4400,8801,5.575453,9110,8802,100.381534,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +4397,"Kertau 1968 / Perak Revised Grid",9001,4245,4321,9806,1,0,4400,8801,4.513377,9110,8802,100.490036,9110,8806,0,9001,8807,133453.669,9001,,,,,,,,,,,,,,,, +4398,"Kertau 1968 / Kelantan Grid",9001,4245,4323,9806,1,0,4400,8801,5.533812,9110,8802,102.103825,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +4399,"NAD27 / BLM 59N (ftUS)",9003,4267,4186,9807,1,0,4497,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4400,"NAD27 / BLM 60N (ftUS)",9003,4267,4187,9807,1,0,4497,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4401,"NAD27 / BLM 1N (ftUS)",9003,4267,4101,9807,1,0,4497,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4402,"NAD27 / BLM 2N (ftUS)",9003,4267,4102,9807,1,0,4497,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4403,"NAD27 / BLM 3N (ftUS)",9003,4267,4103,9807,1,0,4497,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4404,"NAD27 / BLM 4N (ftUS)",9003,4267,4104,9807,1,0,4497,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4405,"NAD27 / BLM 5N (ftUS)",9003,4267,4105,9807,1,0,4497,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4406,"NAD27 / BLM 6N (ftUS)",9003,4267,4106,9807,1,0,4497,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4407,"NAD27 / BLM 7N (ftUS)",9003,4267,4107,9807,1,0,4497,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4408,"NAD27 / BLM 8N (ftUS)",9003,4267,4108,9807,1,0,4497,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4409,"NAD27 / BLM 9N (ftUS)",9003,4267,4109,9807,1,0,4497,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4410,"NAD27 / BLM 10N (ftUS)",9003,4267,4110,9807,1,0,4497,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4411,"NAD27 / BLM 11N (ftUS)",9003,4267,4111,9807,1,0,4497,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4412,"NAD27 / BLM 12N (ftUS)",9003,4267,4112,9807,1,0,4497,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4413,"NAD27 / BLM 13N (ftUS)",9003,4267,4113,9807,1,0,4497,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4414,"NAD83(HARN) / Guam Map Grid",9001,4152,4325,9807,1,0,4499,8801,13.3,9110,8802,144.45,9110,8805,1,9201,8806,100000,9001,8807,200000,9001,,,,,,,,,,,,, +4415,"Katanga 1955 / Katanga Lambert",9001,4695,4416,9802,1,0,4499,8821,-9,9102,8822,26,9102,8823,-6.5,9102,8824,-11.5,9102,8826,500000,9001,8827,500000,9001,,,,,,,,,, +4417,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",9001,4178,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +4418,"NAD27 / BLM 18N (ftUS)",9003,4267,4118,9807,1,0,4497,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4419,"NAD27 / BLM 19N (ftUS)",9003,4267,4119,9807,1,0,4497,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4420,"NAD83 / BLM 60N (ftUS)",9003,4269,4187,9807,1,0,4497,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4421,"NAD83 / BLM 1N (ftUS)",9003,4269,4101,9807,1,0,4497,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4422,"NAD83 / BLM 2N (ftUS)",9003,4269,4102,9807,1,0,4497,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4423,"NAD83 / BLM 3N (ftUS)",9003,4269,4103,9807,1,0,4497,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4424,"NAD83 / BLM 4N (ftUS)",9003,4269,4104,9807,1,0,4497,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4425,"NAD83 / BLM 5N (ftUS)",9003,4269,4105,9807,1,0,4497,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4426,"NAD83 / BLM 6N (ftUS)",9003,4269,4106,9807,1,0,4497,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4427,"NAD83 / BLM 7N (ftUS)",9003,4269,4107,9807,1,0,4497,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4428,"NAD83 / BLM 8N (ftUS)",9003,4269,4108,9807,1,0,4497,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4429,"NAD83 / BLM 9N (ftUS)",9003,4269,4109,9807,1,0,4497,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4430,"NAD83 / BLM 10N (ftUS)",9003,4269,4110,9807,1,0,4497,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4431,"NAD83 / BLM 11N (ftUS)",9003,4269,4111,9807,1,0,4497,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4432,"NAD83 / BLM 12N (ftUS)",9003,4269,4112,9807,1,0,4497,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4433,"NAD83 / BLM 13N (ftUS)",9003,4269,4113,9807,1,0,4497,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4434,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",9001,4178,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +4437,"NAD83(NSRS2007) / Puerto Rico and Virgin Is.",9001,4759,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,, +4438,"NAD83 / BLM 18N (ftUS)",9003,4269,4118,9807,1,0,4497,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4439,"NAD83 / BLM 19N (ftUS)",9003,4269,4119,9807,1,0,4497,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +4455,"NAD27 / Pennsylvania South",9003,4267,4436,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +4456,"NAD27 / New York Long Island",9003,4267,4454,9802,1,0,4497,8821,40.3,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,2000000,9003,8827,100000,9003,,,,,,,,,, +4457,"NAD83 / South Dakota North (ftUS)",9003,4269,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +4462,"WGS 84 / Australian Centre for Remote Sensing Lambert",9001,4326,4460,9802,1,0,4400,8821,-27,9102,8822,132,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +4467,"RGSPM06 / UTM zone 21N",9001,4463,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4471,"RGM04 / UTM zone 38S",9001,4470,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4474,"Cadastre 1997 / UTM zone 38S",9001,4632,16138,9807,1,1,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +4484,"Mexico ITRF92 / UTM zone 11N",9001,4483,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4485,"Mexico ITRF92 / UTM zone 12N",9001,4483,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4486,"Mexico ITRF92 / UTM zone 13N",9001,4483,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4487,"Mexico ITRF92 / UTM zone 14N",9001,4483,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4488,"Mexico ITRF92 / UTM zone 15N",9001,4483,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4489,"Mexico ITRF92 / UTM zone 16N",9001,4483,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4491,"CGCS2000 / Gauss-Kruger zone 13",9001,4490,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +4492,"CGCS2000 / Gauss-Kruger zone 14",9001,4490,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +4493,"CGCS2000 / Gauss-Kruger zone 15",9001,4490,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +4494,"CGCS2000 / Gauss-Kruger zone 16",9001,4490,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +4495,"CGCS2000 / Gauss-Kruger zone 17",9001,4490,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +4496,"CGCS2000 / Gauss-Kruger zone 18",9001,4490,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +4497,"CGCS2000 / Gauss-Kruger zone 19",9001,4490,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +4498,"CGCS2000 / Gauss-Kruger zone 20",9001,4490,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +4499,"CGCS2000 / Gauss-Kruger zone 21",9001,4490,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +4500,"CGCS2000 / Gauss-Kruger zone 22",9001,4490,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +4501,"CGCS2000 / Gauss-Kruger zone 23",9001,4490,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +4502,"CGCS2000 / Gauss-Kruger CM 75E",9001,4490,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4503,"CGCS2000 / Gauss-Kruger CM 81E",9001,4490,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4504,"CGCS2000 / Gauss-Kruger CM 87E",9001,4490,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4505,"CGCS2000 / Gauss-Kruger CM 93E",9001,4490,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4506,"CGCS2000 / Gauss-Kruger CM 99E",9001,4490,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4507,"CGCS2000 / Gauss-Kruger CM 105E",9001,4490,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4508,"CGCS2000 / Gauss-Kruger CM 111E",9001,4490,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4509,"CGCS2000 / Gauss-Kruger CM 117E",9001,4490,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4510,"CGCS2000 / Gauss-Kruger CM 123E",9001,4490,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4511,"CGCS2000 / Gauss-Kruger CM 129E",9001,4490,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4512,"CGCS2000 / Gauss-Kruger CM 135E",9001,4490,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4513,"CGCS2000 / 3-degree Gauss-Kruger zone 25",9001,4490,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +4514,"CGCS2000 / 3-degree Gauss-Kruger zone 26",9001,4490,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +4515,"CGCS2000 / 3-degree Gauss-Kruger zone 27",9001,4490,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +4516,"CGCS2000 / 3-degree Gauss-Kruger zone 28",9001,4490,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +4517,"CGCS2000 / 3-degree Gauss-Kruger zone 29",9001,4490,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +4518,"CGCS2000 / 3-degree Gauss-Kruger zone 30",9001,4490,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +4519,"CGCS2000 / 3-degree Gauss-Kruger zone 31",9001,4490,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +4520,"CGCS2000 / 3-degree Gauss-Kruger zone 32",9001,4490,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +4521,"CGCS2000 / 3-degree Gauss-Kruger zone 33",9001,4490,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +4522,"CGCS2000 / 3-degree Gauss-Kruger zone 34",9001,4490,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,, +4523,"CGCS2000 / 3-degree Gauss-Kruger zone 35",9001,4490,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,, +4524,"CGCS2000 / 3-degree Gauss-Kruger zone 36",9001,4490,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,, +4525,"CGCS2000 / 3-degree Gauss-Kruger zone 37",9001,4490,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,, +4526,"CGCS2000 / 3-degree Gauss-Kruger zone 38",9001,4490,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,, +4527,"CGCS2000 / 3-degree Gauss-Kruger zone 39",9001,4490,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,, +4528,"CGCS2000 / 3-degree Gauss-Kruger zone 40",9001,4490,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,, +4529,"CGCS2000 / 3-degree Gauss-Kruger zone 41",9001,4490,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,, +4530,"CGCS2000 / 3-degree Gauss-Kruger zone 42",9001,4490,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,, +4531,"CGCS2000 / 3-degree Gauss-Kruger zone 43",9001,4490,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,, +4532,"CGCS2000 / 3-degree Gauss-Kruger zone 44",9001,4490,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,, +4533,"CGCS2000 / 3-degree Gauss-Kruger zone 45",9001,4490,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,, +4534,"CGCS2000 / 3-degree Gauss-Kruger CM 75E",9001,4490,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4535,"CGCS2000 / 3-degree Gauss-Kruger CM 78E",9001,4490,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4536,"CGCS2000 / 3-degree Gauss-Kruger CM 81E",9001,4490,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4537,"CGCS2000 / 3-degree Gauss-Kruger CM 84E",9001,4490,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4538,"CGCS2000 / 3-degree Gauss-Kruger CM 87E",9001,4490,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4539,"CGCS2000 / 3-degree Gauss-Kruger CM 90E",9001,4490,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4540,"CGCS2000 / 3-degree Gauss-Kruger CM 93E",9001,4490,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4541,"CGCS2000 / 3-degree Gauss-Kruger CM 96E",9001,4490,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4542,"CGCS2000 / 3-degree Gauss-Kruger CM 99E",9001,4490,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4543,"CGCS2000 / 3-degree Gauss-Kruger CM 102E",9001,4490,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4544,"CGCS2000 / 3-degree Gauss-Kruger CM 105E",9001,4490,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4545,"CGCS2000 / 3-degree Gauss-Kruger CM 108E",9001,4490,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4546,"CGCS2000 / 3-degree Gauss-Kruger CM 111E",9001,4490,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4547,"CGCS2000 / 3-degree Gauss-Kruger CM 114E",9001,4490,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4548,"CGCS2000 / 3-degree Gauss-Kruger CM 117E",9001,4490,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4549,"CGCS2000 / 3-degree Gauss-Kruger CM 120E",9001,4490,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4550,"CGCS2000 / 3-degree Gauss-Kruger CM 123E",9001,4490,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4551,"CGCS2000 / 3-degree Gauss-Kruger CM 126E",9001,4490,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4552,"CGCS2000 / 3-degree Gauss-Kruger CM 129E",9001,4490,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4553,"CGCS2000 / 3-degree Gauss-Kruger CM 132E",9001,4490,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4554,"CGCS2000 / 3-degree Gauss-Kruger CM 135E",9001,4490,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4559,"RRAF 1991 / UTM zone 20N",9001,4558,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4568,"New Beijing / Gauss-Kruger zone 13",9001,4555,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +4569,"New Beijing / Gauss-Kruger zone 14",9001,4555,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +4570,"New Beijing / Gauss-Kruger zone 15",9001,4555,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +4571,"New Beijing / Gauss-Kruger zone 16",9001,4555,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +4572,"New Beijing / Gauss-Kruger zone 17",9001,4555,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +4573,"New Beijing / Gauss-Kruger zone 18",9001,4555,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +4574,"New Beijing / Gauss-Kruger zone 19",9001,4555,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +4575,"New Beijing / Gauss-Kruger zone 20",9001,4555,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +4576,"New Beijing / Gauss-Kruger zone 21",9001,4555,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +4577,"New Beijing / Gauss-Kruger zone 22",9001,4555,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +4578,"New Beijing / Gauss-Kruger zone 23",9001,4555,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +4579,"New Beijing / Gauss-Kruger CM 75E",9001,4555,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4580,"New Beijing / Gauss-Kruger CM 81E",9001,4555,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4581,"New Beijing / Gauss-Kruger CM 87E",9001,4555,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4582,"New Beijing / Gauss-Kruger CM 93E",9001,4555,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4583,"New Beijing / Gauss-Kruger CM 99E",9001,4555,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4584,"New Beijing / Gauss-Kruger CM 105E",9001,4555,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4585,"New Beijing / Gauss-Kruger CM 111E",9001,4555,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4586,"New Beijing / Gauss-Kruger CM 117E",9001,4555,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4587,"New Beijing / Gauss-Kruger CM 123E",9001,4555,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4588,"New Beijing / Gauss-Kruger CM 129E",9001,4555,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4589,"New Beijing / Gauss-Kruger CM 135E",9001,4555,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4647,"ETRS89 / UTM zone 32N (zE-N)",9001,4258,4648,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +4652,"New Beijing / 3-degree Gauss-Kruger zone 25",9001,4555,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +4653,"New Beijing / 3-degree Gauss-Kruger zone 26",9001,4555,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +4654,"New Beijing / 3-degree Gauss-Kruger zone 27",9001,4555,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +4655,"New Beijing / 3-degree Gauss-Kruger zone 28",9001,4555,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +4656,"New Beijing / 3-degree Gauss-Kruger zone 29",9001,4555,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +4766,"New Beijing / 3-degree Gauss-Kruger zone 30",9001,4555,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +4767,"New Beijing / 3-degree Gauss-Kruger zone 31",9001,4555,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +4768,"New Beijing / 3-degree Gauss-Kruger zone 32",9001,4555,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +4769,"New Beijing / 3-degree Gauss-Kruger zone 33",9001,4555,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +4770,"New Beijing / 3-degree Gauss-Kruger zone 34",9001,4555,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,, +4771,"New Beijing / 3-degree Gauss-Kruger zone 35",9001,4555,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,, +4772,"New Beijing / 3-degree Gauss-Kruger zone 36",9001,4555,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,, +4773,"New Beijing / 3-degree Gauss-Kruger zone 37",9001,4555,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,, +4774,"New Beijing / 3-degree Gauss-Kruger zone 38",9001,4555,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,, +4775,"New Beijing / 3-degree Gauss-Kruger zone 39",9001,4555,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,, +4776,"New Beijing / 3-degree Gauss-Kruger zone 40",9001,4555,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,, +4777,"New Beijing / 3-degree Gauss-Kruger zone 41",9001,4555,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,, +4778,"New Beijing / 3-degree Gauss-Kruger zone 42",9001,4555,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,, +4779,"New Beijing / 3-degree Gauss-Kruger zone 43",9001,4555,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,, +4780,"New Beijing / 3-degree Gauss-Kruger zone 44",9001,4555,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,, +4781,"New Beijing / 3-degree Gauss-Kruger zone 45",9001,4555,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,, +4782,"New Beijing / 3-degree Gauss-Kruger CM 75E",9001,4555,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4783,"New Beijing / 3-degree Gauss-Kruger CM 78E",9001,4555,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4784,"New Beijing / 3-degree Gauss-Kruger CM 81E",9001,4555,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4785,"New Beijing / 3-degree Gauss-Kruger CM 84E",9001,4555,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4786,"New Beijing / 3-degree Gauss-Kruger CM 87E",9001,4555,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4787,"New Beijing / 3-degree Gauss-Kruger CM 90E",9001,4555,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4788,"New Beijing / 3-degree Gauss-Kruger CM 93E",9001,4555,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4789,"New Beijing / 3-degree Gauss-Kruger CM 96E",9001,4555,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4790,"New Beijing / 3-degree Gauss-Kruger CM 99E",9001,4555,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4791,"New Beijing / 3-degree Gauss-Kruger CM 102E",9001,4555,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4792,"New Beijing / 3-degree Gauss-Kruger CM 105E",9001,4555,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4793,"New Beijing / 3-degree Gauss-Kruger CM 108E",9001,4555,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4794,"New Beijing / 3-degree Gauss-Kruger CM 111E",9001,4555,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4795,"New Beijing / 3-degree Gauss-Kruger CM 114E",9001,4555,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4796,"New Beijing / 3-degree Gauss-Kruger CM 117E",9001,4555,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4797,"New Beijing / 3-degree Gauss-Kruger CM 120E",9001,4555,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4798,"New Beijing / 3-degree Gauss-Kruger CM 123E",9001,4555,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4799,"New Beijing / 3-degree Gauss-Kruger CM 126E",9001,4555,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4800,"New Beijing / 3-degree Gauss-Kruger CM 129E",9001,4555,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4812,"New Beijing / 3-degree Gauss-Kruger CM 132E",9001,4555,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4822,"New Beijing / 3-degree Gauss-Kruger CM 135E",9001,4555,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +4826,"WGS 84 / Cape Verde National",9001,4326,4825,9802,1,0,1024,8821,15.5,9110,8822,-24,9110,8823,15,9110,8824,16.4,9110,8826,161587.83,9001,8827,128511.202,9001,,,,,,,,,, +4839,"ETRS89 / LCC Germany (N-E)",9001,4258,4838,9802,1,0,4500,8821,51,9102,8822,10.3,9110,8823,48.4,9110,8824,53.4,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +4855,"ETRS89 / NTM zone 5",9001,4258,4845,9807,1,1,4500,8801,0,9110,8802,5.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4856,"ETRS89 / NTM zone 6",9001,4258,4846,9807,1,1,4500,8801,0,9110,8802,6.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4857,"ETRS89 / NTM zone 7",9001,4258,4847,9807,1,1,4500,8801,0,9110,8802,7.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4858,"ETRS89 / NTM zone 8",9001,4258,4848,9807,1,1,4500,8801,0,9110,8802,8.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4859,"ETRS89 / NTM zone 9",9001,4258,4849,9807,1,1,4500,8801,0,9110,8802,9.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4860,"ETRS89 / NTM zone 10",9001,4258,4850,9807,1,1,4500,8801,0,9110,8802,10.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4861,"ETRS89 / NTM zone 11",9001,4258,4851,9807,1,1,4500,8801,0,9110,8802,11.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4862,"ETRS89 / NTM zone 12",9001,4258,4852,9807,1,1,4500,8801,0,9110,8802,12.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4863,"ETRS89 / NTM zone 13",9001,4258,4853,9807,1,1,4500,8801,0,9110,8802,13.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4864,"ETRS89 / NTM zone 14",9001,4258,4854,9807,1,1,4500,8801,0,9110,8802,14.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4865,"ETRS89 / NTM zone 15",9001,4258,4841,9807,1,1,4500,8801,0,9110,8802,15.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4866,"ETRS89 / NTM zone 16",9001,4258,4842,9807,1,1,4500,8801,0,9110,8802,16.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4867,"ETRS89 / NTM zone 17",9001,4258,4843,9807,1,1,4500,8801,0,9110,8802,17.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4868,"ETRS89 / NTM zone 18",9001,4258,4844,9807,1,1,4500,8801,0,9110,8802,18.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4869,"ETRS89 / NTM zone 19",9001,4258,4881,9807,1,1,4500,8801,0,9110,8802,19.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4870,"ETRS89 / NTM zone 20",9001,4258,5000,9807,1,1,4500,8801,0,9110,8802,20.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4871,"ETRS89 / NTM zone 21",9001,4258,5001,9807,1,1,4500,8801,0,9110,8802,21.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4872,"ETRS89 / NTM zone 22",9001,4258,5002,9807,1,1,4500,8801,0,9110,8802,22.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4873,"ETRS89 / NTM zone 23",9001,4258,5003,9807,1,1,4500,8801,0,9110,8802,23.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4874,"ETRS89 / NTM zone 24",9001,4258,5004,9807,1,1,4500,8801,0,9110,8802,24.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4875,"ETRS89 / NTM zone 25",9001,4258,5005,9807,1,1,4500,8801,0,9110,8802,25.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4876,"ETRS89 / NTM zone 26",9001,4258,5006,9807,1,1,4500,8801,0,9110,8802,26.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4877,"ETRS89 / NTM zone 27",9001,4258,5007,9807,1,1,4500,8801,0,9110,8802,27.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4878,"ETRS89 / NTM zone 28",9001,4258,5008,9807,1,1,4500,8801,0,9110,8802,28.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4879,"ETRS89 / NTM zone 29",9001,4258,5009,9807,1,1,4500,8801,0,9110,8802,29.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +4880,"ETRS89 / NTM zone 30",9001,4258,5010,9807,1,1,4500,8801,0,9110,8802,30.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5014,"PTRA08 / UTM zone 25N",9001,5013,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5015,"PTRA08 / UTM zone 26N",9001,5013,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5016,"PTRA08 / UTM zone 28N",9001,5013,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5017,"Lisbon 1890 / Portugal Bonne New",9001,4666,5019,9828,1,0,6509,8801,39.4,9110,8802,-8.0754862,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +5018,"Lisbon / Portuguese Grid New",9001,4207,5020,9807,1,0,4499,8801,39.4,9110,8802,-8.0754862,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +5041,"WGS 84 / UPS North (E,N)",9001,4326,16061,9810,1,0,1026,8801,90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5042,"WGS 84 / UPS South (E,N)",9001,4326,16161,9810,1,0,1027,8801,-90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5048,"ETRS89 / TM35FIN(N,E)",9001,4258,16065,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5069,"NAD27 / Conus Albers",9001,4267,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +5070,"NAD83 / Conus Albers",9001,4269,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +5071,"NAD83(HARN) / Conus Albers",9001,4152,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +5072,"NAD83(NSRS2007) / Conus Albers",9001,4759,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +5105,"ETRS89 / NTM zone 5",9001,4258,5135,9807,1,0,4500,8801,58,9110,8802,5.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5106,"ETRS89 / NTM zone 6",9001,4258,5136,9807,1,0,4500,8801,58,9110,8802,6.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5107,"ETRS89 / NTM zone 7",9001,4258,5137,9807,1,0,4500,8801,58,9110,8802,7.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5108,"ETRS89 / NTM zone 8",9001,4258,5138,9807,1,0,4500,8801,58,9110,8802,8.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5109,"ETRS89 / NTM zone 9",9001,4258,5139,9807,1,0,4500,8801,58,9110,8802,9.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5110,"ETRS89 / NTM zone 10",9001,4258,5140,9807,1,0,4500,8801,58,9110,8802,10.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5111,"ETRS89 / NTM zone 11",9001,4258,5141,9807,1,0,4500,8801,58,9110,8802,11.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5112,"ETRS89 / NTM zone 12",9001,4258,5142,9807,1,0,4500,8801,58,9110,8802,12.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5113,"ETRS89 / NTM zone 13",9001,4258,5143,9807,1,0,4500,8801,58,9110,8802,13.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5114,"ETRS89 / NTM zone 14",9001,4258,5144,9807,1,0,4500,8801,58,9110,8802,14.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5115,"ETRS89 / NTM zone 15",9001,4258,5145,9807,1,0,4500,8801,58,9110,8802,15.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5116,"ETRS89 / NTM zone 16",9001,4258,5146,9807,1,0,4500,8801,58,9110,8802,16.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5117,"ETRS89 / NTM zone 17",9001,4258,5147,9807,1,0,4500,8801,58,9110,8802,17.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5118,"ETRS89 / NTM zone 18",9001,4258,5148,9807,1,0,4500,8801,58,9110,8802,18.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5119,"ETRS89 / NTM zone 19",9001,4258,5149,9807,1,0,4500,8801,58,9110,8802,19.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5120,"ETRS89 / NTM zone 20",9001,4258,5150,9807,1,0,4500,8801,58,9110,8802,20.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5121,"ETRS89 / NTM zone 21",9001,4258,5151,9807,1,0,4500,8801,58,9110,8802,21.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5122,"ETRS89 / NTM zone 22",9001,4258,5152,9807,1,0,4500,8801,58,9110,8802,22.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5123,"ETRS89 / NTM zone 23",9001,4258,5153,9807,1,0,4500,8801,58,9110,8802,23.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5124,"ETRS89 / NTM zone 24",9001,4258,5154,9807,1,0,4500,8801,58,9110,8802,24.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5125,"ETRS89 / NTM zone 25",9001,4258,5155,9807,1,0,4500,8801,58,9110,8802,25.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5126,"ETRS89 / NTM zone 26",9001,4258,5156,9807,1,0,4500,8801,58,9110,8802,26.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5127,"ETRS89 / NTM zone 27",9001,4258,5157,9807,1,0,4500,8801,58,9110,8802,27.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5128,"ETRS89 / NTM zone 28",9001,4258,5158,9807,1,0,4500,8801,58,9110,8802,28.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5129,"ETRS89 / NTM zone 29",9001,4258,5159,9807,1,0,4500,8801,58,9110,8802,29.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5130,"ETRS89 / NTM zone 30",9001,4258,5160,9807,1,0,4500,8801,58,9110,8802,30.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,, +5167,"Korean 1985 / East Sea Belt",9001,4162,5049,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5168,"Korean 1985 / Central Belt Jeju",9001,4162,5131,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,550000,9001,,,,,,,,,,,,, +5169,"Tokyo 1892 / Korea West Belt",9001,5132,18253,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5170,"Tokyo 1892 / Korea Central Belt",9001,5132,18252,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5171,"Tokyo 1892 / Korea East Belt",9001,5132,18251,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5172,"Tokyo 1892 / Korea East Sea Belt",9001,5132,5049,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5173,"Korean 1985 / Modified West Belt",9001,4162,5161,9807,1,0,4530,8801,38,9102,8802,125.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5174,"Korean 1985 / Modified Central Belt",9001,4162,5162,9807,1,0,4530,8801,38,9102,8802,127.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5175,"Korean 1985 / Modified Central Belt Jeju",9001,4162,5163,9807,1,0,4530,8801,38,9102,8802,127.0010405,9110,8805,1,9201,8806,200000,9001,8807,550000,9001,,,,,,,,,,,,, +5176,"Korean 1985 / Modified East Belt",9001,4162,5164,9807,1,0,4530,8801,38,9102,8802,129.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5177,"Korean 1985 / Modified East Sea Belt",9001,4162,5165,9807,1,0,4530,8801,38,9102,8802,131.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5178,"Korean 1985 / Unified CS",9001,4162,5100,9807,1,0,4530,8801,38,9102,8802,127.3,9110,8805,0.9996,9201,8806,1000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5179,"Korea 2000 / Unified CS",9001,4737,5100,9807,1,0,4530,8801,38,9102,8802,127.3,9110,8805,0.9996,9201,8806,1000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5180,"Korea 2000 / West Belt",9001,4737,18253,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5181,"Korea 2000 / Central Belt",9001,4737,18252,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5182,"Korea 2000 / Central Belt Jeju",9001,4737,5131,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,550000,9001,,,,,,,,,,,,, +5183,"Korea 2000 / East Belt",9001,4737,18251,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5184,"Korea 2000 / East Sea Belt",9001,4737,5049,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,, +5185,"Korea 2000 / West Belt 2010",9001,4737,5101,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,, +5186,"Korea 2000 / Central Belt 2010",9001,4737,5102,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,, +5187,"Korea 2000 / East Belt 2010",9001,4737,5103,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,, +5188,"Korea 2000 / East Sea Belt 2010",9001,4737,5104,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,, +5221,"S-JTSK (Ferro) / Krovak East North",9001,4818,5218,1041,1,0,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,42.3,9110,,,,,,, +5223,"WGS 84 / Gabon TM",9001,4326,5222,9807,1,0,4499,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +5224,"S-JTSK/05 (Ferro) / Modified Krovak",9001,5229,5219,1042,1,0,6501,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,, +5225,"S-JTSK/05 (Ferro) / Modified Krovak East North",9001,5229,5220,1043,1,0,4499,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,, +5234,"Kandawala / Sri Lanka Grid",9001,4244,5231,9807,1,0,4400,8801,7.0001729,9110,8802,80.461816,9110,8805,0.9999238418,9201,8806,200000,9001,8807,200000,9001,,,,,,,,,,,,, +5235,"SLD99 / Sri Lanka Grid 1999",9001,5233,5232,9807,1,0,4400,8801,7.00016975,9110,8802,80.46181671,9110,8805,0.9999238418,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +5243,"ETRS89 / LCC Germany (E-N)",9001,4258,4838,9802,1,0,4400,8821,51,9102,8822,10.3,9110,8823,48.4,9110,8824,53.4,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +5247,"GDBD2009 / Brunei BRSO",9001,5246,19894,9812,1,0,4400,8806,0,9001,8807,0,9001,8811,4,9110,8812,115,9110,8813,53.185691582,9110,8814,53.07483685,9110,8815,0.99984,9201,,,,,,, +5253,"TUREF / TM27",9001,5252,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5254,"TUREF / TM30",9001,5252,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5255,"TUREF / TM33",9001,5252,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5256,"TUREF / TM36",9001,5252,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5257,"TUREF / TM39",9001,5252,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5258,"TUREF / TM42",9001,5252,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5259,"TUREF / TM45",9001,5252,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5266,"DRUKREF 03 / Bhutan National Grid",9001,5264,5265,9807,1,0,4400,8801,0,9102,8802,90,9102,8805,1,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +5269,"TUREF / 3-degree Gauss-Kruger zone 9",9001,5252,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +5270,"TUREF / 3-degree Gauss-Kruger zone 10",9001,5252,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +5271,"TUREF / 3-degree Gauss-Kruger zone 11",9001,5252,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +5272,"TUREF / 3-degree Gauss-Kruger zone 12",9001,5252,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +5273,"TUREF / 3-degree Gauss-Kruger zone 13",9001,5252,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +5274,"TUREF / 3-degree Gauss-Kruger zone 14",9001,5252,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +5275,"TUREF / 3-degree Gauss-Kruger zone 15",9001,5252,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +5292,"DRUKREF 03 / Bumthang TM",9001,5264,5268,9807,1,0,4400,8801,0,9110,8802,90.44,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5293,"DRUKREF 03 / Chhukha TM",9001,5264,5276,9807,1,0,4400,8801,0,9110,8802,89.33,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5294,"DRUKREF 03 / Dagana TM",9001,5264,5277,9807,1,0,4400,8801,0,9110,8802,89.51,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5295,"DRUKREF 03 / Gasa TM",9001,5264,5278,9807,1,0,4400,8801,0,9110,8802,90.02,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5296,"DRUKREF 03 / Ha TM",9001,5264,5279,9807,1,0,4400,8801,0,9110,8802,90.09,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5297,"DRUKREF 03 / Lhuentse TM",9001,5264,5280,9807,1,0,4400,8801,0,9110,8802,91.08,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5298,"DRUKREF 03 / Mongar TM",9001,5264,5281,9807,1,0,4400,8801,0,9110,8802,91.14,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5299,"DRUKREF 03 / Paro TM",9001,5264,5282,9807,1,0,4400,8801,0,9110,8802,89.21,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5300,"DRUKREF 03 / Pemagatshel TM",9001,5264,5283,9807,1,0,4400,8801,0,9110,8802,91.21,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5301,"DRUKREF 03 / Punakha TM",9001,5264,5313,9807,1,0,4400,8801,0,9110,8802,89.51,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5302,"DRUKREF 03 / Samdrup Jongkhar TM",9001,5264,5285,9807,1,0,4400,8801,0,9110,8802,91.34,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5303,"DRUKREF 03 / Samtse TM",9001,5264,5286,9807,1,0,4400,8801,0,9110,8802,89.04,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5304,"DRUKREF 03 / Sarpang TM",9001,5264,5287,9807,1,0,4400,8801,0,9110,8802,90.16,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5305,"DRUKREF 03 / Thimphu TM",9001,5264,5312,9807,1,0,4400,8801,0,9110,8802,89.33,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5306,"DRUKREF 03 / Trashigang TM",9001,5264,5289,9807,1,0,4400,8801,0,9110,8802,91.45,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5307,"DRUKREF 03 / Trongsa TM",9001,5264,5290,9807,1,0,4400,8801,0,9110,8802,90.3,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5308,"DRUKREF 03 / Tsirang TM",9001,5264,5284,9807,1,0,4400,8801,0,9110,8802,90.1,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5309,"DRUKREF 03 / Wangdue Phodrang TM",9001,5264,5288,9807,1,0,4400,8801,0,9110,8802,90.07,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5310,"DRUKREF 03 / Yangtse TM",9001,5264,5314,9807,1,0,4400,8801,0,9110,8802,91.34,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5311,"DRUKREF 03 / Zhemgang TM",9001,5264,5291,9807,1,0,4400,8801,0,9110,8802,90.52,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,, +5316,"ETRS89 / Faroe TM",9001,4258,5315,9807,1,0,4400,8801,0,9102,8802,-7,9102,8805,0.999997,9201,8806,200000,9001,8807,-6000000,9001,,,,,,,,,,,,, +5320,"NAD83 / Teranet Ontario Lambert",9001,4269,5319,9802,1,0,4499,8821,0,9102,8822,-84,9102,8823,44.3,9110,8824,54.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +5321,"NAD83(CSRS) / Teranet Ontario Lambert",9001,4617,5319,9802,1,0,4499,8821,0,9102,8822,-84,9102,8823,44.3,9110,8824,54.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +5325,"ISN2004 / Lambert 2004",9001,5324,5326,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,1700000,9001,8827,300000,9001,,,,,,,,,, +5329,"Segara (Jakarta) / NEIEZ",9001,4820,5328,9804,1,0,4499,8801,0,9102,8802,3.113221,9110,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +5330,"Batavia (Jakarta) / NEIEZ",9001,4813,5328,9804,1,0,4499,8801,0,9102,8802,3.113221,9110,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +5331,"Makassar (Jakarta) / NEIEZ",9001,4804,5328,9804,1,0,4499,8801,0,9102,8802,3.113221,9110,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +5337,"Aratu / UTM zone 25S",9001,4208,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5343,"POSGAR 2007 / Argentina 1",9001,5340,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +5344,"POSGAR 2007 / Argentina 2",9001,5340,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +5345,"POSGAR 2007 / Argentina 3",9001,5340,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5346,"POSGAR 2007 / Argentina 4",9001,5340,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5347,"POSGAR 2007 / Argentina 5",9001,5340,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5348,"POSGAR 2007 / Argentina 6",9001,5340,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +5349,"POSGAR 2007 / Argentina 7",9001,5340,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +5355,"MARGEN / UTM zone 20S",9001,5354,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5356,"MARGEN / UTM zone 19S",9001,5354,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5357,"MARGEN / UTM zone 21S",9001,5354,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5361,"SIRGAS-Chile / UTM zone 19S",9001,5360,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5362,"SIRGAS-Chile / UTM zone 18S",9001,5360,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5367,"CR05 / CRTM05",9001,5365,5366,9807,1,0,4500,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5382,"SIRGAS-ROU98 / UTM zone 21S",9001,5381,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5383,"SIRGAS-ROU98 / UTM zone 22S",9001,5381,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5387,"Peru96 / UTM zone 18S",9001,5373,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5388,"Peru96 / UTM zone 17S",9001,5373,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5389,"Peru96 / UTM zone 19S",9001,5373,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5396,"SIRGAS 2000 / UTM zone 26S",9001,4674,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5456,"Ocotepeque 1935 / Costa Rica Norte",9001,5451,5390,9801,1,0,4499,8801,10.28,9110,8802,-84.2,9110,8805,0.99995696,9201,8806,500000,9001,8807,271820.522,9001,,,,,,,,,,,,, +5457,"Ocotepeque 1935 / Costa Rica Sur",9001,5451,5394,9801,1,0,4499,8801,9,9110,8802,-83.4,9110,8805,0.99995696,9201,8806,500000,9001,8807,327987.436,9001,,,,,,,,,,,,, +5458,"Ocotepeque 1935 / Guatemala Norte",9001,4267,18211,9801,1,1,4499,8801,16.49,9110,8802,-90.2,9110,8805,0.99992226,9201,8806,500000,9001,8807,292209.579,9001,,,,,,,,,,,,, +5459,"Ocotepeque 1935 / Guatemala Sur",9001,5451,18212,9801,1,0,4499,8801,14.54,9110,8802,-90.2,9110,8805,0.99989906,9201,8806,500000,9001,8807,325992.681,9001,,,,,,,,,,,,, +5460,"Ocotepeque 1935 / El Salvador Lambert",9001,5451,5399,9801,1,0,4499,8801,13.47,9110,8802,-89,9110,8805,0.99996704,9201,8806,500000,9001,8807,295809.184,9001,,,,,,,,,,,,, +5461,"Ocotepeque 1935 / Nicaragua Norte",9001,5451,5439,9801,1,0,4499,8801,13.52,9110,8802,-85.3,9110,8805,0.99990314,9201,8806,500000,9001,8807,359891.816,9001,,,,,,,,,,,,, +5462,"Ocotepeque 1935 / Nicaragua Sur",9001,5451,5444,9801,1,0,4499,8801,11.44,9110,8802,-85.3,9110,8805,0.99992228,9201,8806,500000,9001,8807,288876.327,9001,,,,,,,,,,,,, +5463,"SAD69 / UTM zone 17N",9001,4618,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5466,"Sibun Gorge 1922 / Colony Grid",9001,5464,5465,9807,1,1,4499,8801,17.0340471,9110,8802,-88.3754687,9110,8805,1,9201,8806,217259.26,9005,8807,445474.83,9005,,,,,,,,,,,,, +5469,"Panama-Colon 1911 / Panama Lambert",9001,5467,5468,9801,1,0,4499,8801,8.25,9110,8802,-80,9110,8805,0.99989909,9201,8806,500000,9001,8807,294865.303,9001,,,,,,,,,,,,, +5472,"Panama-Colon 1911 / Panama Polyconic",9037,5467,5471,9818,1,0,1028,8801,8.15,9110,8802,-81,9110,8806,1000000,9037,8807,1092972.1,9037,,,,,,,,,,,,,,,, +5479,"RSRGD2000 / MSLC2000",9001,4764,5475,9802,1,0,4500,8821,-78,9110,8822,163,9110,8823,-76.4,9110,8824,-79.2,9110,8826,7000000,9001,8827,5000000,9001,,,,,,,,,, +5480,"RSRGD2000 / BCLC2000",9001,4764,5476,9802,1,0,4500,8821,-74.3,9110,8822,165,9110,8823,-73.4,9110,8824,-75.2,9110,8826,5000000,9001,8827,3000000,9001,,,,,,,,,, +5481,"RSRGD2000 / PCLC2000",9001,4764,5477,9802,1,0,4500,8821,-71.3,9110,8822,166,9110,8823,-70.4,9110,8824,-72.2,9110,8826,3000000,9001,8827,1000000,9001,,,,,,,,,, +5482,"RSRGD2000 / RSPS2000",9001,4764,5478,9810,1,0,1044,8801,-90,9102,8802,180,9102,8805,0.994,9201,8806,5000000,9001,8807,1000000,9001,,,,,,,,,,,,, +5490,"RGAF09 / UTM zone 20N",9001,5489,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5513,"S-JTSK / Krovak",9001,4156,5509,9819,1,0,6501,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110,,,,,,, +5514,"S-JTSK / Krovak East North",9001,4156,5510,1041,1,0,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110,,,,,,, +5515,"S-JTSK/05 / Modified Krovak",9001,5228,5511,1042,1,0,6501,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,, +5516,"S-JTSK/05 / Modified Krovak East North",9001,5228,5512,1043,1,0,4499,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,, +5518,"CI1971 / Chatham Islands Map Grid",9001,4672,5517,9807,1,0,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,,,,,,,, +5519,"CI1979 / Chatham Islands Map Grid",9001,4673,5517,9807,1,0,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,,,,,,,, +5520,"DHDN / 3-degree Gauss-Kruger zone 1",9001,4314,16261,9807,1,0,4530,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +5523,"WGS 84 / Gabon TM 2011",9001,4326,5522,9807,1,0,4499,8801,0,9102,8802,11.3,9110,8805,0.9996,9201,8806,1500000,9001,8807,5500000,9001,,,,,,,,,,,,, +5530,"SAD69(96) / Brazil Polyconic",9001,5527,19941,9818,1,0,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,, +5531,"SAD69(96) / UTM zone 21S",9001,5527,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5532,"SAD69(96) / UTM zone 22S",9001,4618,16122,9807,1,1,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5533,"SAD69(96) / UTM zone 23S",9001,5527,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5534,"SAD69(96) / UTM zone 24S",9001,5527,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5535,"SAD69(96) / UTM zone 25S",9001,5527,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5536,"Corrego Alegre 1961 / UTM zone 21S",9001,5524,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5537,"Corrego Alegre 1961 / UTM zone 22S",9001,5524,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5538,"Corrego Alegre 1961 / UTM zone 23S",9001,5524,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5539,"Corrego Alegre 1961 / UTM zone 24S",9001,5524,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5550,"PNG94 / PNGMG94 zone 54",9001,5546,5547,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5551,"PNG94 / PNGMG94 zone 55",9001,5546,5548,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5552,"PNG94 / PNGMG94 zone 56",9001,5546,5549,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5559,"Ocotepeque 1935 / Guatemala Norte",9001,5451,18211,9801,1,0,4499,8801,16.49,9110,8802,-90.2,9110,8805,0.99992226,9201,8806,500000,9001,8807,292209.579,9001,,,,,,,,,,,,, +5562,"UCS-2000 / Gauss-Kruger zone 4",9001,5561,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5563,"UCS-2000 / Gauss-Kruger zone 5",9001,5561,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5564,"UCS-2000 / Gauss-Kruger zone 6",9001,5561,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +5565,"UCS-2000 / Gauss-Kruger zone 7",9001,5561,16207,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +5566,"UCS-2000 / Gauss-Kruger CM 21E",9001,5561,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5567,"UCS-2000 / Gauss-Kruger CM 27E",9001,5561,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5568,"UCS-2000 / Gauss-Kruger CM 33E",9001,5561,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5569,"UCS-2000 / Gauss-Kruger CM 39E",9001,5561,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5570,"UCS-2000 / 3-degree Gauss-Kruger zone 7",9001,5561,16267,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +5571,"UCS-2000 / 3-degree Gauss-Kruger zone 8",9001,5561,16268,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +5572,"UCS-2000 / 3-degree Gauss-Kruger zone 9",9001,5561,16269,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +5573,"UCS-2000 / 3-degree Gauss-Kruger zone 10",9001,5561,16270,9807,1,1,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +5574,"UCS-2000 / 3-degree Gauss-Kruger zone 11",9001,5561,16271,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +5575,"UCS-2000 / 3-degree Gauss-Kruger zone 12",9001,5561,16272,9807,1,1,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +5576,"UCS-2000 / 3-degree Gauss-Kruger zone 13",9001,5561,16273,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +5577,"UCS-2000 / 3-degree Gauss-Kruger CM 21E",9001,5561,16304,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5578,"UCS-2000 / 3-degree Gauss-Kruger CM 24E",9001,5561,16368,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5579,"UCS-2000 / 3-degree Gauss-Kruger CM 27E",9001,5561,16305,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5580,"UCS-2000 / 3-degree Gauss-Kruger CM 30E",9001,5561,16370,9807,1,1,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5581,"UCS-2000 / 3-degree Gauss-Kruger CM 33E",9001,5561,16306,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5582,"UCS-2000 / 3-degree Gauss-Kruger CM 36E",9001,5561,16372,9807,1,1,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5583,"UCS-2000 / 3-degree Gauss-Kruger CM 39E",9001,5561,16307,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5588,"NAD27 / New Brunswick Stereographic (NAD27)",9002,4267,5587,9809,1,0,1029,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,1000000,9002,8807,1000000,9002,,,,,,,,,,,,, +5589,"Sibun Gorge 1922 / Colony Grid",9005,5464,5465,9807,1,0,4403,8801,17.0340471,9110,8802,-88.3754687,9110,8805,1,9201,8806,217259.26,9005,8807,445474.83,9005,,,,,,,,,,,,, +5596,"FEH2010 / Fehmarnbelt TM",9001,5593,5595,9807,1,0,4400,8801,0,9110,8802,11.2,9110,8805,1,9201,8806,1000000,9001,8807,0,9001,,,,,,,,,,,,, +5623,"NAD27 / Michigan East",9003,4267,12101,9807,1,0,4497,8801,41.3,9110,8802,-83.4,9110,8805,0.999942857,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +5624,"NAD27 / Michigan Old Central",9003,4267,12102,9807,1,0,4497,8801,41.3,9110,8802,-85.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +5625,"NAD27 / Michigan West",9003,4267,12103,9807,1,0,4497,8801,41.3,9110,8802,-88.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +5627,"ED50 / TM 6 NE",9001,4230,16406,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5629,"Moznet / UTM zone 38S",9001,4130,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5631,"Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)",9001,4179,16202,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +5632,"PTRA08 / LCC Europe",9001,5013,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,, +5633,"PTRA08 / LAEA Europe",9001,5013,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,, +5634,"REGCAN95 / LCC Europe",9001,4081,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,, +5635,"REGCAN95 / LAEA Europe",9001,4081,19986,9820,1,0,4500,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,, +5636,"TUREF / LAEA Europe",9001,5252,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,, +5637,"TUREF / LCC Europe",9001,5252,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,, +5638,"ISN2004 / LAEA Europe",9001,5324,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,, +5639,"ISN2004 / LCC Europe",9001,5324,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,, +5641,"SIRGAS 2000 / Brazil Mercator",9001,4674,5640,9805,1,0,4499,8802,-43,9102,8806,5000000,9001,8807,10000000,9001,8823,-2,9102,,,,,,,,,,,,,,,, +5643,"ED50 / SPBA LCC",9001,4230,5642,9802,1,0,4400,8821,48,9102,8822,10,9102,8823,52.4,9110,8824,54.2,9110,8826,815000,9001,8827,0,9001,,,,,,,,,, +5644,"RGR92 / UTM zone 39S",9001,4627,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5646,"NAD83 / Vermont (ftUS)",9003,4269,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +5649,"ETRS89 / UTM zone 31N (zE-N)",9001,4258,5647,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +5650,"ETRS89 / UTM zone 33N (zE-N)",9001,4258,5648,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +5651,"ETRS89 / UTM zone 31N (N-zE)",9001,4258,5647,9807,1,0,4500,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +5652,"ETRS89 / UTM zone 32N (N-zE)",9001,4258,4648,9807,1,0,4500,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +5653,"ETRS89 / UTM zone 33N (N-zE)",9001,4258,5648,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,, +5654,"NAD83(HARN) / Vermont (ftUS)",9003,4152,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +5655,"NAD83(NSRS2007) / Vermont (ftUS)",9003,4759,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +5659,"Monte Mario / TM Emilia-Romagna",9001,4265,5658,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500053,9001,8807,-3999820,9001,,,,,,,,,,,,, +5663,"Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)",9001,4179,16203,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5664,"Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)",9001,4178,16202,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +5665,"Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)",9001,4178,16203,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5666,"PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4746,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5667,"PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4746,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5668,"RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4745,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5669,"RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4745,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5670,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4179,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5671,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4179,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5672,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4179,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5673,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4178,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5674,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4178,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5675,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4178,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5676,"DHDN / 3-degree Gauss-Kruger zone 2 (E-N)",9001,4314,16262,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +5677,"DHDN / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4314,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5678,"DHDN / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4314,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5679,"DHDN / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4314,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5680,"DHDN / 3-degree Gauss-Kruger zone 1 (E-N)",9001,4314,16261,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +5682,"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)",9001,5681,16262,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +5683,"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)",9001,5681,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +5684,"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)",9001,5681,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +5685,"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)",9001,5681,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +5700,"NZGD2000 / UTM zone 1S",9001,4167,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5819,EPSG topocentric example A,9001,4979,15594,9837,1,0,4461,8834,55,9102,8835,5,9102,8836,0,9001,,,,,,,,,,,,,,,,,,, +5820,EPSG topocentric example B,9001,4978,15595,9836,1,0,4461,8837,3771793.97,9001,8838,140253.34,9001,8839,5124304.35,9001,,,,,,,,,,,,,,,,,,, +5821,EPSG vertical perspective example,9001,5819,19850,9838,1,0,4461,8834,55,9102,8835,5,9102,8836,200,9001,8840,5900,9036,,,,,,,,,,,,,,,, +5825,"AGD66 / ACT Standard Grid",9001,4202,5824,9807,1,0,4400,8801,-35.19038506,9110,8802,149.003346139,9110,8805,1.000086,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,, +5836,"Yemen NGN96 / UTM zone 37N",9001,4163,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5837,"Yemen NGN96 / UTM zone 40N",9001,4163,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +5839,"Peru96 / UTM zone 17S",9001,5373,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5842,"WGS 84 / TM 12 SE",9001,4326,16612,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5844,"RGRDC 2005 / Congo TM zone 30",9001,4046,17430,9807,1,0,4499,8801,0,9102,8802,30,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5858,"SAD69(96) / UTM zone 22S",9001,5527,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5875,"SAD69(96) / UTM zone 18S",9001,5527,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5876,"SAD69(96) / UTM zone 19S",9001,5527,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5877,"SAD69(96) / UTM zone 20S",9001,5527,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5879,"Cadastre 1997 / UTM zone 38S",9001,4475,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +5880,"SIRGAS 2000 / Brazil Polyconic",9001,4674,19941,9818,1,0,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,, +5887,"TGD2005 / Tonga Map Grid",9001,5886,5883,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,1500000,9001,8807,5000000,9001,,,,,,,,,,,,, +5890,JAXA Snow Depth Polar Stereographic North,9001,4054,5889,9829,1,0,1035,8806,0,9001,8807,0,9001,8832,70,9102,8833,90,9102,,,,,,,,,,,,,,,, +5921,"WGS 84 / EPSG Arctic Regional zone A1",9001,4326,5906,9802,1,0,4400,8821,81.19020136,9110,8822,-111,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5922,"WGS 84 / EPSG Arctic Regional zone A2",9001,4326,5907,9802,1,0,4400,8821,81.19020136,9110,8822,-39,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5923,"WGS 84 / EPSG Arctic Regional zone A3",9001,4326,5908,9802,1,0,4400,8821,81.19020136,9110,8822,33,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5924,"WGS 84 / EPSG Arctic Regional zone A4",9001,4326,5909,9802,1,0,4400,8821,81.19020136,9110,8822,105,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5925,"WGS 84 / EPSG Arctic Regional zone A5",9001,4326,5910,9802,1,0,4400,8821,81.19020136,9110,8822,177,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5926,"WGS 84 / EPSG Arctic Regional zone B1",9001,4326,5911,9802,1,0,4400,8821,73.09206671,9110,8822,-111,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5927,"WGS 84 / EPSG Arctic Regional zone B2",9001,4326,5912,9802,1,0,4400,8821,73.09206671,9110,8822,-39,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5928,"WGS 84 / EPSG Arctic Regional zone B3",9001,4326,5913,9802,1,0,4400,8821,73.09206671,9110,8822,33,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5929,"WGS 84 / EPSG Arctic Regional zone B4",9001,4326,5914,9802,1,0,4400,8821,73.09206671,9110,8822,105,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5930,"WGS 84 / EPSG Arctic Regional zone B5",9001,4326,5915,9802,1,0,4400,8821,73.09206671,9110,8822,177,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5931,"WGS 84 / EPSG Arctic Regional zone C1",9001,4326,5916,9802,1,0,4400,8821,65.06045752,9110,8822,-111,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5932,"WGS 84 / EPSG Arctic Regional zone C2",9001,4326,5917,9802,1,0,4400,8821,65.06045752,9110,8822,-39,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5933,"WGS 84 / EPSG Arctic Regional zone C3",9001,4326,5918,9802,1,0,4400,8821,65.06045752,9110,8822,33,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5934,"WGS 84 / EPSG Arctic Regional zone C4",9001,4326,5919,9802,1,0,4400,8821,65.06045752,9110,8822,105,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5935,"WGS 84 / EPSG Arctic Regional zone C5",9001,4326,5920,9802,1,0,4400,8821,65.06045752,9110,8822,177,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +5936,"WGS 84 / EPSG Alaska Polar Stereographic",9001,4326,5901,9810,1,0,4467,8801,90,9102,8802,-150,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5937,"WGS 84 / EPSG Canada Polar Stereographic",9001,4326,5902,9810,1,0,4466,8801,90,9102,8802,-100,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5938,"WGS 84 / EPSG Greenland Polar Stereographic",9001,4326,5903,9810,1,0,1036,8801,90,9102,8802,-33,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5939,"WGS 84 / EPSG Norway Polar Stereographic",9001,4326,5904,9810,1,0,1037,8801,90,9102,8802,18,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +5940,"WGS 84 / EPSG Russia Polar Stereographic",9001,4326,5905,9810,1,0,1038,8801,90,9102,8802,105,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +6050,"GR96 / EPSG Arctic zone 1-25",9001,4747,5979,9802,1,0,4400,8821,85.2613626,9110,8822,-30,9110,8823,87,9110,8824,83.4,9110,8826,25500000,9001,8827,1500000,9001,,,,,,,,,, +6051,"GR96 / EPSG Arctic zone 2-18",9001,4747,5987,9802,1,0,4400,8821,82.03303296,9110,8822,-52,9110,8823,83.4,9110,8824,80.2,9110,8826,18500000,9001,8827,2500000,9001,,,,,,,,,, +6052,"GR96 / EPSG Arctic zone 2-20",9001,4747,5988,9802,1,0,4400,8821,82.03303296,9110,8822,-12,9110,8823,83.4,9110,8824,80.2,9110,8826,20500000,9001,8827,2500000,9001,,,,,,,,,, +6053,"GR96 / EPSG Arctic zone 3-29",9001,4747,6002,9802,1,0,4400,8821,78.42264151,9110,8822,-69,9110,8823,80.2,9110,8824,77,9110,8826,29500000,9001,8827,3500000,9001,,,,,,,,,, +6054,"GR96 / EPSG Arctic zone 3-31",9001,4747,6003,9802,1,0,4400,8821,78.42264151,9110,8822,-39,9110,8823,80.2,9110,8824,77,9110,8826,31500000,9001,8827,3500000,9001,,,,,,,,,, +6055,"GR96 / EPSG Arctic zone 3-33",9001,4747,6004,9802,1,0,4400,8821,78.42264151,9110,8822,-10,9110,8823,80.2,9110,8824,77,9110,8826,33500000,9001,8827,3500000,9001,,,,,,,,,, +6056,"GR96 / EPSG Arctic zone 4-20",9001,4747,6009,9802,1,0,4400,8821,75.21518519,9110,8822,-64,9110,8823,77,9110,8824,73.4,9110,8826,20500000,9001,8827,4500000,9001,,,,,,,,,, +6057,"GR96 / EPSG Arctic zone 4-22",9001,4747,6010,9802,1,0,4400,8821,75.21518519,9110,8822,-39,9110,8823,77,9110,8824,73.4,9110,8826,22500000,9001,8827,4500000,9001,,,,,,,,,, +6058,"GR96 / EPSG Arctic zone 4-24",9001,4747,6011,9802,1,0,4400,8821,75.21518519,9110,8822,-14,9110,8823,77,9110,8824,73.4,9110,8826,24500000,9001,8827,4500000,9001,,,,,,,,,, +6059,"GR96 / EPSG Arctic zone 5-41",9001,4747,6035,9802,1,0,4400,8821,72.01300331,9110,8822,-62,9110,8823,73.4,9110,8824,70.2,9110,8826,41500000,9001,8827,5500000,9001,,,,,,,,,, +6060,"GR96 / EPSG Arctic zone 5-43",9001,4747,6036,9802,1,0,4400,8821,72.01300331,9110,8822,-42,9110,8823,73.4,9110,8824,70.2,9110,8826,43500000,9001,8827,5500000,9001,,,,,,,,,, +6061,"GR96 / EPSG Arctic zone 5-45",9001,4747,6037,9802,1,0,4400,8821,72.01300331,9110,8822,-22,9110,8823,73.4,9110,8824,70.2,9110,8826,45500000,9001,8827,5500000,9001,,,,,,,,,, +6062,"GR96 / EPSG Arctic zone 6-26",9001,4747,6045,9802,1,0,4400,8821,68.4114912,9110,8822,-56,9110,8823,70.2,9110,8824,67,9110,8826,26500000,9001,8827,6500000,9001,,,,,,,,,, +6063,"GR96 / EPSG Arctic zone 6-28",9001,4747,6046,9802,1,0,4400,8821,68.4114912,9110,8822,-38,9110,8823,70.2,9110,8824,67,9110,8826,28500000,9001,8827,6500000,9001,,,,,,,,,, +6064,"GR96 / EPSG Arctic zone 6-30",9001,4747,6047,9802,1,0,4400,8821,68.4114912,9110,8822,-20,9110,8823,70.2,9110,8824,67,9110,8826,30500000,9001,8827,6500000,9001,,,,,,,,,, +6065,"GR96 / EPSG Arctic zone 7-11",9001,4747,6048,9802,1,0,4400,8821,65.21037415,9110,8822,-51,9110,8823,67,9110,8824,63.4,9110,8826,11500000,9001,8827,7500000,9001,,,,,,,,,, +6066,"GR96 / EPSG Arctic zone 7-13",9001,4747,6049,9802,1,0,4400,8821,65.21037415,9110,8822,-34,9110,8823,67,9110,8824,63.4,9110,8826,13500000,9001,8827,7500000,9001,,,,,,,,,, +6067,"GR96 / EPSG Arctic zone 8-20",9001,4747,5943,9802,1,0,4400,8821,62.00551048,9110,8822,-52,9110,8823,63.4,9110,8824,60.2,9110,8826,20500000,9001,8827,8500000,9001,,,,,,,,,, +6068,"GR96 / EPSG Arctic zone 8-22",9001,4747,5944,9802,1,0,4400,8821,62.00551048,9110,8822,-37,9110,8823,63.4,9110,8824,60.2,9110,8826,22500000,9001,8827,8500000,9001,,,,,,,,,, +6069,"ETRS89 / EPSG Arctic zone 2-22",9001,4258,5989,9802,1,0,4400,8821,82.03303296,9110,8822,16,9110,8823,83.4,9110,8824,80.2,9110,8826,22500000,9001,8827,2500000,9001,,,,,,,,,, +6070,"ETRS89 / EPSG Arctic zone 3-11",9001,4258,5993,9802,1,0,4400,8821,78.42264151,9110,8822,21,9110,8823,80.2,9110,8824,77,9110,8826,11500000,9001,8827,3500000,9001,,,,,,,,,, +6071,"ETRS89 / EPSG Arctic zone 4-26",9001,4258,6012,9802,1,0,4400,8821,75.21518519,9110,8822,10,9110,8823,77,9110,8824,73.4,9110,8826,26500000,9001,8827,4500000,9001,,,,,,,,,, +6072,"ETRS89 / EPSG Arctic zone 4-28",9001,4258,6013,9802,1,0,4400,8821,75.21518519,9110,8822,34,9110,8823,77,9110,8824,73.4,9110,8826,28500000,9001,8827,4500000,9001,,,,,,,,,, +6073,"ETRS89 / EPSG Arctic zone 5-11",9001,4258,6020,9802,1,0,4400,8821,72.01300331,9110,8822,14,9110,8823,73.4,9110,8824,70.2,9110,8826,11500000,9001,8827,5500000,9001,,,,,,,,,, +6074,"ETRS89 / EPSG Arctic zone 5-13",9001,4258,6021,9802,1,0,4400,8821,72.01300331,9110,8822,34,9110,8823,73.4,9110,8824,70.2,9110,8826,13500000,9001,8827,5500000,9001,,,,,,,,,, +6075,"WGS 84 / EPSG Arctic zone 2-24",9001,4326,5990,9802,1,0,4400,8821,82.03303296,9110,8822,53,9110,8823,83.4,9110,8824,80.2,9110,8826,24500000,9001,8827,2500000,9001,,,,,,,,,, +6076,"WGS 84 / EPSG Arctic zone 2-26",9001,4326,5991,9802,1,0,4400,8821,82.03303296,9110,8822,93,9110,8823,83.4,9110,8824,80.2,9110,8826,26500000,9001,8827,2500000,9001,,,,,,,,,, +6077,"WGS 84 / EPSG Arctic zone 3-13",9001,4326,5994,9802,1,0,4400,8821,78.42264151,9110,8822,52,9110,8823,80.2,9110,8824,77,9110,8826,13500000,9001,8827,3500000,9001,,,,,,,,,, +6078,"WGS 84 / EPSG Arctic zone 3-15",9001,4326,5995,9802,1,0,4400,8821,78.42264151,9110,8822,83,9110,8823,80.2,9110,8824,77,9110,8826,15500000,9001,8827,3500000,9001,,,,,,,,,, +6079,"WGS 84 / EPSG Arctic zone 3-17",9001,4326,5996,9802,1,0,4400,8821,78.42264151,9110,8822,114,9110,8823,80.2,9110,8824,77,9110,8826,17500000,9001,8827,3500000,9001,,,,,,,,,, +6080,"WGS 84 / EPSG Arctic zone 3-19",9001,4326,5997,9802,1,0,4400,8821,78.42264151,9110,8822,145,9110,8823,80.2,9110,8824,77,9110,8826,19500000,9001,8827,3500000,9001,,,,,,,,,, +6081,"WGS 84 / EPSG Arctic zone 4-30",9001,4326,6014,9802,1,0,4400,8821,75.21518519,9110,8822,58,9110,8823,77,9110,8824,73.4,9110,8826,30500000,9001,8827,4500000,9001,,,,,,,,,, +6082,"WGS 84 / EPSG Arctic zone 4-32",9001,4326,6015,9802,1,0,4400,8821,75.21518519,9110,8822,82,9110,8823,77,9110,8824,73.4,9110,8826,32500000,9001,8827,4500000,9001,,,,,,,,,, +6083,"WGS 84 / EPSG Arctic zone 4-34",9001,4326,6016,9802,1,0,4400,8821,75.21518519,9110,8822,106,9110,8823,77,9110,8824,73.4,9110,8826,34500000,9001,8827,4500000,9001,,,,,,,,,, +6084,"WGS 84 / EPSG Arctic zone 4-36",9001,4326,6017,9802,1,0,4400,8821,75.21518519,9110,8822,130,9110,8823,77,9110,8824,73.4,9110,8826,36500000,9001,8827,4500000,9001,,,,,,,,,, +6085,"WGS 84 / EPSG Arctic zone 4-38",9001,4326,6018,9802,1,0,4400,8821,75.21518519,9110,8822,154,9110,8823,77,9110,8824,73.4,9110,8826,38500000,9001,8827,4500000,9001,,,,,,,,,, +6086,"WGS 84 / EPSG Arctic zone 4-40",9001,4326,6019,9802,1,0,4400,8821,75.21518519,9110,8822,179,9110,8823,77,9110,8824,73.4,9110,8826,40500000,9001,8827,4500000,9001,,,,,,,,,, +6087,"WGS 84 / EPSG Arctic zone 5-15",9001,4326,6022,9802,1,0,4400,8821,72.01300331,9110,8822,54,9110,8823,73.4,9110,8824,70.2,9110,8826,15500000,9001,8827,5500000,9001,,,,,,,,,, +6088,"WGS 84 / EPSG Arctic zone 5-17",9001,4326,6023,9802,1,0,4400,8821,72.01300331,9110,8822,74,9110,8823,73.4,9110,8824,70.2,9110,8826,17500000,9001,8827,5500000,9001,,,,,,,,,, +6089,"WGS 84 / EPSG Arctic zone 5-19",9001,4326,6024,9802,1,0,4400,8821,72.01300331,9110,8822,95,9110,8823,73.4,9110,8824,70.2,9110,8826,19500000,9001,8827,5500000,9001,,,,,,,,,, +6090,"WGS 84 / EPSG Arctic zone 5-21",9001,4326,6025,9802,1,0,4400,8821,72.01300331,9110,8822,116,9110,8823,73.4,9110,8824,70.2,9110,8826,21500000,9001,8827,5500000,9001,,,,,,,,,, +6091,"WGS 84 / EPSG Arctic zone 5-23",9001,4326,6026,9802,1,0,4400,8821,72.01300331,9110,8822,137,9110,8823,73.4,9110,8824,70.2,9110,8826,23500000,9001,8827,5500000,9001,,,,,,,,,, +6092,"WGS 84 / EPSG Arctic zone 5-25",9001,4326,6027,9802,1,0,4400,8821,72.01300331,9110,8822,158,9110,8823,73.4,9110,8824,70.2,9110,8826,25500000,9001,8827,5500000,9001,,,,,,,,,, +6093,"WGS 84 / EPSG Arctic zone 5-27",9001,4326,6028,9802,1,0,4400,8821,72.01300331,9110,8822,179,9110,8823,73.4,9110,8824,70.2,9110,8826,27500000,9001,8827,5500000,9001,,,,,,,,,, +6094,"NAD83(NSRS2007) / EPSG Arctic zone 5-29",9001,4759,6029,9802,1,0,4400,8821,72.01300331,9110,8822,-163,9110,8823,73.4,9110,8824,70.2,9110,8826,29500000,9001,8827,5500000,9001,,,,,,,,,, +6095,"NAD83(NSRS2007) / EPSG Arctic zone 5-31",9001,4759,6030,9802,1,0,4400,8821,72.01300331,9110,8822,-147,9110,8823,73.4,9110,8824,70.2,9110,8826,31500000,9001,8827,5500000,9001,,,,,,,,,, +6096,"NAD83(NSRS2007) / EPSG Arctic zone 6-14",9001,4759,6039,9802,1,0,4400,8821,68.4114912,9110,8822,-165,9110,8823,70.2,9110,8824,67,9110,8826,14500000,9001,8827,6500000,9001,,,,,,,,,, +6097,"NAD83(NSRS2007) / EPSG Arctic zone 6-16",9001,4759,6040,9802,1,0,4400,8821,68.4114912,9110,8822,-147,9110,8823,70.2,9110,8824,67,9110,8826,16500000,9001,8827,6500000,9001,,,,,,,,,, +6098,"NAD83(CSRS) / EPSG Arctic zone 1-23",9001,4617,5978,9802,1,0,4400,8821,85.2613626,9110,8822,-90,9110,8823,87,9110,8824,83.4,9110,8826,23500000,9001,8827,1500000,9001,,,,,,,,,, +6099,"NAD83(CSRS) / EPSG Arctic zone 2-14",9001,4617,5985,9802,1,0,4400,8821,82.03303296,9110,8822,-115,9110,8823,83.4,9110,8824,80.2,9110,8826,14500000,9001,8827,2500000,9001,,,,,,,,,, +6100,"NAD83(CSRS) / EPSG Arctic zone 2-16",9001,4617,5986,9802,1,0,4400,8821,82.03303296,9110,8822,-75,9110,8823,83.4,9110,8824,80.2,9110,8826,16500000,9001,8827,2500000,9001,,,,,,,,,, +6101,"NAD83(CSRS) / EPSG Arctic zone 3-25",9001,4617,6000,9802,1,0,4400,8821,78.42264151,9110,8822,-129,9110,8823,80.2,9110,8824,77,9110,8826,25500000,9001,8827,3500000,9001,,,,,,,,,, +6102,"NAD83(CSRS) / EPSG Arctic zone 3-27",9001,4617,6001,9802,1,0,4400,8821,78.42264151,9110,8822,-99,9110,8823,80.2,9110,8824,77,9110,8826,27500000,9001,8827,3500000,9001,,,,,,,,,, +6103,"NAD83(CSRS) / EPSG Arctic zone 3-29",9001,4617,6002,9802,1,0,4400,8821,78.42264151,9110,8822,-69,9110,8823,80.2,9110,8824,77,9110,8826,29500000,9001,8827,3500000,9001,,,,,,,,,, +6104,"NAD83(CSRS) / EPSG Arctic zone 4-14",9001,4617,6006,9802,1,0,4400,8821,75.21518519,9110,8822,-129,9110,8823,77,9110,8824,73.4,9110,8826,14500000,9001,8827,4500000,9001,,,,,,,,,, +6105,"NAD83(CSRS) / EPSG Arctic zone 4-16",9001,4617,6007,9802,1,0,4400,8821,75.21518519,9110,8822,-104,9110,8823,77,9110,8824,73.4,9110,8826,16500000,9001,8827,4500000,9001,,,,,,,,,, +6106,"NAD83(CSRS) / EPSG Arctic zone 4-18",9001,4617,6008,9802,1,0,4400,8821,75.21518519,9110,8822,-79,9110,8823,77,9110,8824,73.4,9110,8826,18500000,9001,8827,4500000,9001,,,,,,,,,, +6107,"NAD83(CSRS) / EPSG Arctic zone 5-33",9001,4617,6031,9802,1,0,4400,8821,72.01300331,9110,8822,-131,9110,8823,73.4,9110,8824,70.2,9110,8826,33500000,9001,8827,5500000,9001,,,,,,,,,, +6108,"NAD83(CSRS) / EPSG Arctic zone 5-35",9001,4617,6032,9802,1,0,4400,8821,72.01300331,9110,8822,-111,9110,8823,73.4,9110,8824,70.2,9110,8826,35500000,9001,8827,5500000,9001,,,,,,,,,, +6109,"NAD83(CSRS) / EPSG Arctic zone 5-37",9001,4617,6033,9802,1,0,4400,8821,72.01300331,9110,8822,-91,9110,8823,73.4,9110,8824,70.2,9110,8826,37500000,9001,8827,5500000,9001,,,,,,,,,, +6110,"NAD83(CSRS) / EPSG Arctic zone 5-39",9001,4617,6034,9802,1,0,4400,8821,72.01300331,9110,8822,-71,9110,8823,73.4,9110,8824,70.2,9110,8826,39500000,9001,8827,5500000,9001,,,,,,,,,, +6111,"NAD83(CSRS) / EPSG Arctic zone 6-18",9001,4617,6041,9802,1,0,4400,8821,68.4114912,9110,8822,-132,9110,8823,70.2,9110,8824,67,9110,8826,18500000,9001,8827,6500000,9001,,,,,,,,,, +6112,"NAD83(CSRS) / EPSG Arctic zone 6-20",9001,4617,6042,9802,1,0,4400,8821,68.4114912,9110,8822,-113,9110,8823,70.2,9110,8824,67,9110,8826,20500000,9001,8827,6500000,9001,,,,,,,,,, +6113,"NAD83(CSRS) / EPSG Arctic zone 6-22",9001,4617,6043,9802,1,0,4400,8821,68.4114912,9110,8822,-94,9110,8823,70.2,9110,8824,67,9110,8826,22500000,9001,8827,6500000,9001,,,,,,,,,, +6114,"NAD83(CSRS) / EPSG Arctic zone 6-24",9001,4617,6044,9802,1,0,4400,8821,68.4114912,9110,8822,-75,9110,8823,70.2,9110,8824,67,9110,8826,24500000,9001,8827,6500000,9001,,,,,,,,,, +6115,"WGS 84 / EPSG Arctic zone 1-27",9001,4326,5980,9802,1,0,4400,8821,85.2613626,9110,8822,30,9110,8823,87,9110,8824,83.4,9110,8826,27500000,9001,8827,1500000,9001,,,,,,,,,, +6116,"WGS 84 / EPSG Arctic zone 1-29",9001,4326,5981,9802,1,0,4400,8821,85.2613626,9110,8822,90,9110,8823,87,9110,8824,83.4,9110,8826,29500000,9001,8827,1500000,9001,,,,,,,,,, +6117,"WGS 84 / EPSG Arctic zone 1-31",9001,4326,5982,9802,1,0,4400,8821,85.2613626,9110,8822,150,9110,8823,87,9110,8824,83.4,9110,8826,31500000,9001,8827,1500000,9001,,,,,,,,,, +6118,"WGS 84 / EPSG Arctic zone 1-21",9001,4326,5977,9802,1,0,4400,8821,85.2613626,9110,8822,-150,9110,8823,87,9110,8824,83.4,9110,8826,21500000,9001,8827,1500000,9001,,,,,,,,,, +6119,"WGS 84 / EPSG Arctic zone 2-28",9001,4326,5992,9802,1,0,4400,8821,82.03303296,9110,8822,133,9110,8823,83.4,9110,8824,80.2,9110,8826,28500000,9001,8827,2500000,9001,,,,,,,,,, +6120,"WGS 84 / EPSG Arctic zone 2-10",9001,4326,5983,9802,1,0,4400,8821,82.03303296,9110,8822,166,9110,8823,83.4,9110,8824,80.2,9110,8826,10500000,9001,8827,2500000,9001,,,,,,,,,, +6121,"WGS 84 / EPSG Arctic zone 2-12",9001,4326,5984,9802,1,0,4400,8821,82.03303296,9110,8822,-154,9110,8823,83.4,9110,8824,80.2,9110,8826,12500000,9001,8827,2500000,9001,,,,,,,,,, +6122,"WGS 84 / EPSG Arctic zone 3-21",9001,4326,5998,9802,1,0,4400,8821,78.42264151,9110,8822,176,9110,8823,80.2,9110,8824,77,9110,8826,21500000,9001,8827,3500000,9001,,,,,,,,,, +6123,"WGS 84 / EPSG Arctic zone 3-23",9001,4326,5999,9802,1,0,4400,8821,78.42264151,9110,8822,-153,9110,8823,80.2,9110,8824,77,9110,8826,23500000,9001,8827,3500000,9001,,,,,,,,,, +6124,"WGS 84 / EPSG Arctic zone 4-12",9001,4326,6005,9802,1,0,4400,8821,75.21518519,9110,8822,-155,9110,8823,77,9110,8824,73.4,9110,8826,12500000,9001,8827,4500000,9001,,,,,,,,,, +6125,"ETRS89 / EPSG Arctic zone 5-47",9001,4258,6038,9802,1,0,4400,8821,72.01300331,9110,8822,-5,9110,8823,73.4,9110,8824,70.2,9110,8826,47500000,9001,8827,5500000,9001,,,,,,,,,, +6128,Grand Cayman National Grid 1959,9002,4723,6127,9807,1,0,1039,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640419.9475,9002,8807,0,9002,,,,,,,,,,,,, +6129,Sister Islands National Grid 1961,9002,4726,6127,9807,1,0,1039,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640419.9475,9002,8807,0,9002,,,,,,,,,,,,, +6141,Cayman Islands National Grid 2011,9002,6135,6126,9802,1,1,1039,8821,19.2,9110,8822,80.34,9110,8823,19.2,9110,8824,19.42,9110,8826,2950000,9002,8827,1900000,9002,,,,,,,,,, +6200,"NAD27 / Michigan North",9003,4267,6197,1051,1,1,4497,1038,1.0000382,9201,8821,44.87,9110,8822,-87,9110,8823,45.29,9110,8824,47.05,9110,8826,2000000,9003,8827,0,9003,,,,,,, +6201,"NAD27 / Michigan Central",9003,4267,6198,1051,1,0,4497,1038,1.0000382,9201,8821,43.19,9110,8822,-84.2,9110,8823,44.11,9110,8824,45.42,9110,8826,2000000,9003,8827,0,9003,,,,,,, +6202,"NAD27 / Michigan South",9003,4267,6199,1051,1,0,4497,1038,1.0000382,9201,8821,41.3,9110,8822,-84.2,9110,8823,42.06,9110,8824,43.4,9110,8826,2000000,9003,8827,0,9003,,,,,,, +6204,Macedonia State Coordinate System,9001,3906,6203,9807,1,0,4498,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6210,"SIRGAS 2000 / UTM zone 23N",9001,4674,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6211,"SIRGAS 2000 / UTM zone 24N",9001,4674,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6244,"MAGNA-SIRGAS / Arauca urban grid",9001,4686,6212,1052,1,0,4500,1039,100,9001,8801,7.051538301,9110,8802,-70.452991476,9110,8806,1035263.443,9001,8807,1275526.621,9001,,,,,,,,,,,,, +6245,"MAGNA-SIRGAS / Armenia urban grid",9001,4686,6213,1052,1,0,4500,1039,1470,9001,8801,4.315637,9110,8802,-75.4024561,9110,8806,1155824.666,9001,8807,993087.465,9001,,,,,,,,,,,,, +6246,"MAGNA-SIRGAS / Barranquilla urban grid",9001,4686,6214,1052,1,0,4500,1039,100,9001,8801,10.55234591,9110,8802,-74.50035928,9110,8806,917264.406,9001,8807,1699839.935,9001,,,,,,,,,,,,, +6247,"MAGNA-SIRGAS / Bogota urban grid",9001,4686,6215,1052,1,0,4500,1039,2550,9001,8801,4.404975,9110,8802,-74.084773,9110,8806,92334.879,9001,8807,109320.965,9001,,,,,,,,,,,,, +6248,"MAGNA-SIRGAS / Bucaramanga urban grid",9001,4686,6216,1052,1,0,4500,1039,931,9001,8801,7.044399371,9110,8802,-73.11504356,9110,8806,1097241.305,9001,8807,1274642.278,9001,,,,,,,,,,,,, +6249,"MAGNA-SIRGAS / Cali urban grid",9001,4686,6217,1052,1,0,4500,1039,1000,9001,8801,3.263078,9110,8802,-76.3114025,9110,8806,1061900.18,9001,8807,872364.63,9001,,,,,,,,,,,,, +6250,"MAGNA-SIRGAS / Cartagena urban grid",9001,4686,6218,1052,1,0,4500,1039,0,9001,8801,10.2349371,9110,8802,-75.3040345,9110,8806,842981.41,9001,8807,1641887.09,9001,,,,,,,,,,,,, +6251,"MAGNA-SIRGAS / Cucuta urban grid",9001,4686,6219,1052,1,0,4500,1039,308,9001,8801,7.532017225,9110,8802,-72.301033542,9110,8806,842805.406,9001,8807,1364404.57,9001,,,,,,,,,,,,, +6252,"MAGNA-SIRGAS / Florencia urban grid",9001,4686,6220,1052,1,0,4500,1039,300,9001,8801,1.371564426,9110,8802,-75.370882337,9110,8806,1162300.348,9001,8807,671068.716,9001,,,,,,,,,,,,, +6253,"MAGNA-SIRGAS / Ibague urban grid",9001,4686,6221,1052,1,0,4500,1039,1100,9001,8801,4.250988618,9110,8802,-75.104773336,9110,8806,877634.33,9001,8807,980541.348,9001,,,,,,,,,,,,, +6254,"MAGNA-SIRGAS / Inirida urban grid",9001,4686,6222,1052,1,0,4500,1039,96,9001,8801,3.504357746,9110,8802,-67.541883552,9110,8806,1019177.687,9001,8807,491791.326,9001,,,,,,,,,,,,, +6255,"MAGNA-SIRGAS / Leticia urban grid",9001,4686,6223,1052,1,0,4500,1039,89.7,9001,8801,-4.115166257,9110,8802,-69.563411981,9110,8806,25978.217,9001,8807,27501.365,9001,,,,,,,,,,,,, +6256,"MAGNA-SIRGAS / Manizales urban grid",9001,4686,6224,1052,1,0,4500,1039,2100,9001,8801,5.0405354,9110,8802,-75.3039941,9110,8806,1173727.04,9001,8807,1052391.13,9001,,,,,,,,,,,,, +6257,"MAGNA-SIRGAS / Medellin urban grid",9001,4686,6225,1052,1,0,4500,1039,1510,9001,8801,6.1345152,9110,8802,-75.3353593,9110,8806,835378.647,9001,8807,1180816.875,9001,,,,,,,,,,,,, +6258,"MAGNA-SIRGAS / Mitu urban grid",9001,4686,6226,1052,1,0,4500,1039,170,9001,8801,1.145988972,9110,8802,-70.140766196,9110,8806,1093717.398,9001,8807,629997.236,9001,,,,,,,,,,,,, +6259,"MAGNA-SIRGAS / Mocoa urban grid",9001,4686,6227,1052,1,0,4500,1039,655.2,9001,8801,1.082408409,9110,8802,-76.390367639,9110,8806,1047467.388,9001,8807,617828.474,9001,,,,,,,,,,,,, +6260,"MAGNA-SIRGAS / Monteria urban grid",9001,4686,6228,1052,1,0,4500,1039,15,9001,8801,8.462310872,9110,8802,-75.524639199,9110,8806,1131814.934,9001,8807,1462131.119,9001,,,,,,,,,,,,, +6261,"MAGNA-SIRGAS / Neiva urban grid",9001,4686,6229,1052,1,0,4500,1039,430,9001,8801,2.56326942,9110,8802,-75.17471722,9110,8806,864476.923,9001,8807,817199.827,9001,,,,,,,,,,,,, +6262,"MAGNA-SIRGAS / Pasto urban grid",9001,4686,6230,1052,1,0,4500,1039,2530,9001,8801,1.120356225,9110,8802,-77.151125228,9110,8806,980469.695,9001,8807,624555.332,9001,,,,,,,,,,,,, +6263,"MAGNA-SIRGAS / Pereira urban grid",9001,4686,6231,1052,1,0,4500,1039,1500,9001,8801,4.4848937,9110,8802,-75.4138225,9110,8806,1153492.012,9001,8807,1024195.255,9001,,,,,,,,,,,,, +6264,"MAGNA-SIRGAS / Popayan urban grid",9001,4686,6232,1052,1,0,4500,1039,1740,9001,8801,2.272217558,9110,8802,-76.362192989,9110,8806,1052430.525,9001,8807,763366.548,9001,,,,,,,,,,,,, +6265,"MAGNA-SIRGAS / Puerto Carreno urban grid",9001,4686,6233,1052,1,0,4500,1039,51.58,9001,8801,6.105059709,9110,8802,-67.300270089,9110,8806,1063834.703,9001,8807,1175257.481,9001,,,,,,,,,,,,, +6266,"MAGNA-SIRGAS / Quibdo urban grid",9001,4686,6234,1052,1,0,4500,1039,44,9001,8801,5.413929158,9110,8802,-76.390271389,9110,8806,1047273.617,9001,8807,1121443.09,9001,,,,,,,,,,,,, +6267,"MAGNA-SIRGAS / Riohacha urban grid",9001,4686,6235,1052,1,0,4500,1039,6,9001,8801,11.321288798,9110,8802,-72.540996793,9110,8806,1128154.73,9001,8807,1767887.914,9001,,,,,,,,,,,,, +6268,"MAGNA-SIRGAS / San Andres urban grid",9001,4686,6236,1052,1,0,4500,1039,6,9001,8801,12.312565957,9110,8802,-81.434575342,9110,8806,820439.298,9001,8807,1877357.828,9001,,,,,,,,,,,,, +6269,"MAGNA-SIRGAS / San Jose del Guaviare urban grid",9001,4686,6237,1052,1,0,4500,1039,185,9001,8801,2.335068419,9110,8802,-72.382411997,9110,8806,1159876.62,9001,8807,775380.342,9001,,,,,,,,,,,,, +6270,"MAGNA-SIRGAS / Santa Marta urban grid",9001,4686,6238,1052,1,0,4500,1039,29,9001,8801,11.1310715,9110,8802,-74.1330019,9110,8806,983892.409,9001,8807,1732533.518,9001,,,,,,,,,,,,, +6271,"MAGNA-SIRGAS / Sucre urban grid",9001,4686,6239,1052,1,0,4500,1039,20,9001,8801,8.483798132,9110,8802,-74.432088057,9110,8806,929043.607,9001,8807,1466125.658,9001,,,,,,,,,,,,, +6272,"MAGNA-SIRGAS / Tunja urban grid",9001,4686,6240,1052,1,0,4500,1039,2800,9001,8801,5.320310106,9110,8802,-73.210698004,9110,8806,1080514.91,9001,8807,1103772.028,9001,,,,,,,,,,,,, +6273,"MAGNA-SIRGAS / Valledupar urban grid",9001,4686,6241,1052,1,0,4500,1039,200,9001,8801,10.265014,9110,8802,-73.1447657,9110,8806,1090979.66,9001,8807,1647208.93,9001,,,,,,,,,,,,, +6274,"MAGNA-SIRGAS / Villavicencio urban grid",9001,4686,6242,1052,1,0,4500,1039,427.19,9001,8801,4.091935036,9110,8802,-73.372814955,9110,8806,1050678.757,9001,8807,950952.124,9001,,,,,,,,,,,,, +6275,"MAGNA-SIRGAS / Yopal urban grid",9001,4686,6243,1052,1,0,4500,1039,300,9001,8801,5.2114138,9110,8802,-72.2512145,9110,8806,851184.177,9001,8807,1083954.137,9001,,,,,,,,,,,,, +6307,"NAD83(CORS96) / Puerto Rico and Virgin Is.",9001,6783,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,, +6312,"CGRS93 / Cyprus Local Transverse Mercator",9001,6311,6308,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.99995,9201,8806,200000,9001,8807,-3500000,9001,,,,,,,,,,,,, +6316,Macedonia State Coordinate System zone 7,9001,3906,18277,9807,1,0,4498,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +6328,"NAD83(2011) / UTM zone 59N",9001,6318,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6329,"NAD83(2011) / UTM zone 60N",9001,6318,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6330,"NAD83(2011) / UTM zone 1N",9001,6318,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6331,"NAD83(2011) / UTM zone 2N",9001,6318,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6332,"NAD83(2011) / UTM zone 3N",9001,6318,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6333,"NAD83(2011) / UTM zone 4N",9001,6318,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6334,"NAD83(2011) / UTM zone 5N",9001,6318,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6335,"NAD83(2011) / UTM zone 6N",9001,6318,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6336,"NAD83(2011) / UTM zone 7N",9001,6318,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6337,"NAD83(2011) / UTM zone 8N",9001,6318,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6338,"NAD83(2011) / UTM zone 9N",9001,6318,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6339,"NAD83(2011) / UTM zone 10N",9001,6318,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6340,"NAD83(2011) / UTM zone 11N",9001,6318,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6341,"NAD83(2011) / UTM zone 12N",9001,6318,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6342,"NAD83(2011) / UTM zone 13N",9001,6318,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6343,"NAD83(2011) / UTM zone 14N",9001,6318,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6344,"NAD83(2011) / UTM zone 15N",9001,6318,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6345,"NAD83(2011) / UTM zone 16N",9001,6318,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6346,"NAD83(2011) / UTM zone 17N",9001,6318,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6347,"NAD83(2011) / UTM zone 18N",9001,6318,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6348,"NAD83(2011) / UTM zone 19N",9001,6318,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6350,"NAD83(2011) / Conus Albers",9001,6318,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +6351,"NAD83(2011) / EPSG Arctic zone 5-29",9001,6318,6029,9802,1,0,4400,8821,72.01300331,9110,8822,-163,9110,8823,73.4,9110,8824,70.2,9110,8826,29500000,9001,8827,5500000,9001,,,,,,,,,, +6352,"NAD83(2011) / EPSG Arctic zone 5-31",9001,6318,6030,9802,1,0,4400,8821,72.01300331,9110,8822,-147,9110,8823,73.4,9110,8824,70.2,9110,8826,31500000,9001,8827,5500000,9001,,,,,,,,,, +6353,"NAD83(2011) / EPSG Arctic zone 6-14",9001,6318,6039,9802,1,0,4400,8821,68.4114912,9110,8822,-165,9110,8823,70.2,9110,8824,67,9110,8826,14500000,9001,8827,6500000,9001,,,,,,,,,, +6354,"NAD83(2011) / EPSG Arctic zone 6-16",9001,6318,6040,9802,1,0,4400,8821,68.4114912,9110,8822,-147,9110,8823,70.2,9110,8824,67,9110,8826,16500000,9001,8827,6500000,9001,,,,,,,,,, +6355,"NAD83(2011) / Alabama East",9001,6318,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6356,"NAD83(2011) / Alabama West",9001,6318,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +6362,"Mexico ITRF92 / LCC",9001,4483,6361,9802,1,0,4500,8821,12,9102,8822,-102,9102,8823,17.5,9102,8824,29.5,9102,8826,2500000,9001,8827,0,9001,,,,,,,,,, +6366,"Mexico ITRF2008 / UTM zone 11N",9001,6365,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6367,"Mexico ITRF2008 / UTM zone 12N",9001,6365,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6368,"Mexico ITRF2008 / UTM zone 13N",9001,6365,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6369,"Mexico ITRF2008 / UTM zone 14N",9001,6365,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6370,"Mexico ITRF2008 / UTM zone 15N",9001,6365,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6371,"Mexico ITRF2008 / UTM zone 16N",9001,6365,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6372,"Mexico ITRF2008 / LCC",9001,6365,6361,9802,1,0,4500,8821,12,9102,8822,-102,9102,8823,17.5,9102,8824,29.5,9102,8826,2500000,9001,8827,0,9001,,,,,,,,,, +6381,"UCS-2000 / Ukraine TM zone 7",9001,5561,6374,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6382,"UCS-2000 / Ukraine TM zone 8",9001,5561,6375,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6383,"UCS-2000 / Ukraine TM zone 9",9001,5561,6376,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6384,"UCS-2000 / Ukraine TM zone 10",9001,5561,6377,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6385,"UCS-2000 / Ukraine TM zone 11",9001,5561,6378,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6386,"UCS-2000 / Ukraine TM zone 12",9001,5561,6379,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6387,"UCS-2000 / Ukraine TM zone 13",9001,5561,6380,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6391,Cayman Islands National Grid 2011,9002,6135,6390,9802,1,0,1039,8821,19.2,9110,8822,-80.34,9110,8823,19.2,9110,8824,19.42,9110,8826,2950000,9002,8827,1900000,9002,,,,,,,,,, +6393,"NAD83(2011) / Alaska Albers",9001,6318,15021,9822,1,0,4499,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +6394,"NAD83(2011) / Alaska zone 1",9001,6318,15031,9812,1,0,4499,8806,5000000,9001,8807,-5000000,9001,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,, +6395,"NAD83(2011) / Alaska zone 2",9001,6318,15032,9807,1,0,4499,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6396,"NAD83(2011) / Alaska zone 3",9001,6318,15033,9807,1,0,4499,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6397,"NAD83(2011) / Alaska zone 4",9001,6318,15034,9807,1,0,4499,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6398,"NAD83(2011) / Alaska zone 5",9001,6318,15035,9807,1,0,4499,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6399,"NAD83(2011) / Alaska zone 6",9001,6318,15036,9807,1,0,4499,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6400,"NAD83(2011) / Alaska zone 7",9001,6318,15037,9807,1,0,4499,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6401,"NAD83(2011) / Alaska zone 8",9001,6318,15038,9807,1,0,4499,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6402,"NAD83(2011) / Alaska zone 9",9001,6318,15039,9807,1,0,4499,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6403,"NAD83(2011) / Alaska zone 10",9001,6318,15040,9802,1,0,4499,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +6404,"NAD83(2011) / Arizona Central",9001,6318,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +6405,"NAD83(2011) / Arizona Central (ft)",9002,6318,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +6406,"NAD83(2011) / Arizona East",9001,6318,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +6407,"NAD83(2011) / Arizona East (ft)",9002,6318,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +6408,"NAD83(2011) / Arizona West",9001,6318,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +6409,"NAD83(2011) / Arizona West (ft)",9002,6318,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,, +6410,"NAD83(2011) / Arkansas North",9001,6318,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6411,"NAD83(2011) / Arkansas North (ftUS)",9003,6318,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +6412,"NAD83(2011) / Arkansas South",9001,6318,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +6413,"NAD83(2011) / Arkansas South (ftUS)",9003,6318,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +6414,"NAD83(2011) / California Albers",9001,6318,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,, +6415,"NAD83(2011) / California zone 1",9001,6318,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +6416,"NAD83(2011) / California zone 1 (ftUS)",9003,6318,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +6417,"NAD83(2011) / California zone 2",9001,6318,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +6418,"NAD83(2011) / California zone 2 (ftUS)",9003,6318,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +6419,"NAD83(2011) / California zone 3",9001,6318,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +6420,"NAD83(2011) / California zone 3 (ftUS)",9003,6318,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +6421,"NAD83(2011) / California zone 4",9001,6318,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +6422,"NAD83(2011) / California zone 4 (ftUS)",9003,6318,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +6423,"NAD83(2011) / California zone 5",9001,6318,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +6424,"NAD83(2011) / California zone 5 (ftUS)",9003,6318,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +6425,"NAD83(2011) / California zone 6",9001,6318,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +6426,"NAD83(2011) / California zone 6 (ftUS)",9003,6318,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,, +6427,"NAD83(2011) / Colorado Central",9001,6318,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +6428,"NAD83(2011) / Colorado Central (ftUS)",9003,6318,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +6429,"NAD83(2011) / Colorado North",9001,6318,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +6430,"NAD83(2011) / Colorado North (ftUS)",9003,6318,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +6431,"NAD83(2011) / Colorado South",9001,6318,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +6432,"NAD83(2011) / Colorado South (ftUS)",9003,6318,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,, +6433,"NAD83(2011) / Connecticut",9001,6318,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,, +6434,"NAD83(2011) / Connecticut (ftUS)",9003,6318,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,, +6435,"NAD83(2011) / Delaware",9001,6318,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6436,"NAD83(2011) / Delaware (ftUS)",9003,6318,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +6437,"NAD83(2011) / Florida East",9001,6318,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6438,"NAD83(2011) / Florida East (ftUS)",9003,6318,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +6439,"NAD83(2011) / Florida GDL Albers",9001,6318,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6440,"NAD83(2011) / Florida North",9001,6318,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6441,"NAD83(2011) / Florida North (ftUS)",9003,6318,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6442,"NAD83(2011) / Florida West",9001,6318,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6443,"NAD83(2011) / Florida West (ftUS)",9003,6318,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +6444,"NAD83(2011) / Georgia East",9001,6318,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6445,"NAD83(2011) / Georgia East (ftUS)",9003,6318,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +6446,"NAD83(2011) / Georgia West",9001,6318,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +6447,"NAD83(2011) / Georgia West (ftUS)",9003,6318,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +6448,"NAD83(2011) / Idaho Central",9001,6318,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6449,"NAD83(2011) / Idaho Central (ftUS)",9003,6318,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +6450,"NAD83(2011) / Idaho East",9001,6318,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6451,"NAD83(2011) / Idaho East (ftUS)",9003,6318,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,, +6452,"NAD83(2011) / Idaho West",9001,6318,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,, +6453,"NAD83(2011) / Idaho West (ftUS)",9003,6318,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,, +6454,"NAD83(2011) / Illinois East",9001,6318,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6455,"NAD83(2011) / Illinois East (ftUS)",9003,6318,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +6456,"NAD83(2011) / Illinois West",9001,6318,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +6457,"NAD83(2011) / Illinois West (ftUS)",9003,6318,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,, +6458,"NAD83(2011) / Indiana East",9001,6318,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,, +6459,"NAD83(2011) / Indiana East (ftUS)",9003,6318,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,, +6460,"NAD83(2011) / Indiana West",9001,6318,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,, +6461,"NAD83(2011) / Indiana West (ftUS)",9003,6318,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,, +6462,"NAD83(2011) / Iowa North",9001,6318,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +6463,"NAD83(2011) / Iowa North (ftUS)",9003,6318,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,, +6464,"NAD83(2011) / Iowa South",9001,6318,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +6465,"NAD83(2011) / Iowa South (ftUS)",9003,6318,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +6466,"NAD83(2011) / Kansas North",9001,6318,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6467,"NAD83(2011) / Kansas North (ftUS)",9003,6318,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +6468,"NAD83(2011) / Kansas South",9001,6318,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +6469,"NAD83(2011) / Kansas South (ftUS)",9003,6318,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,, +6470,"NAD83(2011) / Kentucky North",9001,6318,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +6471,"NAD83(2011) / Kentucky North (ftUS)",9003,6318,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +6472,"NAD83(2011) / Kentucky Single Zone",9001,6318,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +6473,"NAD83(2011) / Kentucky Single Zone (ftUS)",9003,6318,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,, +6474,"NAD83(2011) / Kentucky South",9001,6318,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +6475,"NAD83(2011) / Kentucky South (ftUS)",9003,6318,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,, +6476,"NAD83(2011) / Louisiana North",9001,6318,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +6477,"NAD83(2011) / Louisiana North (ftUS)",9003,6318,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +6478,"NAD83(2011) / Louisiana South",9001,6318,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +6479,"NAD83(2011) / Louisiana South (ftUS)",9003,6318,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,, +6480,"NAD83(2011) / Maine CS2000 Central",9001,6318,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6481,"NAD83(2011) / Maine CS2000 East",9001,6318,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +6482,"NAD83(2011) / Maine CS2000 West",9001,6318,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6483,"NAD83(2011) / Maine East",9001,6318,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6484,"NAD83(2011) / Maine East (ftUS)",9003,6318,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +6485,"NAD83(2011) / Maine West",9001,6318,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,, +6486,"NAD83(2011) / Maine West (ftUS)",9003,6318,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +6487,"NAD83(2011) / Maryland",9001,6318,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6488,"NAD83(2011) / Maryland (ftUS)",9003,6318,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,, +6489,"NAD83(2011) / Massachusetts Island",9001,6318,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +6490,"NAD83(2011) / Massachusetts Island (ftUS)",9003,6318,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +6491,"NAD83(2011) / Massachusetts Mainland",9001,6318,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,, +6492,"NAD83(2011) / Massachusetts Mainland (ftUS)",9003,6318,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,, +6493,"NAD83(2011) / Michigan Central",9001,6318,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,, +6494,"NAD83(2011) / Michigan Central (ft)",9002,6318,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,, +6495,"NAD83(2011) / Michigan North",9001,6318,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,, +6496,"NAD83(2011) / Michigan North (ft)",9002,6318,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,, +6497,"NAD83(2011) / Michigan Oblique Mercator",9001,6318,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,, +6498,"NAD83(2011) / Michigan South",9001,6318,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,, +6499,"NAD83(2011) / Michigan South (ft)",9002,6318,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,, +6500,"NAD83(2011) / Minnesota Central",9001,6318,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +6501,"NAD83(2011) / Minnesota Central (ftUS)",9003,6318,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +6502,"NAD83(2011) / Minnesota North",9001,6318,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +6503,"NAD83(2011) / Minnesota North (ftUS)",9003,6318,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +6504,"NAD83(2011) / Minnesota South",9001,6318,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +6505,"NAD83(2011) / Minnesota South (ftUS)",9003,6318,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +6506,"NAD83(2011) / Mississippi East",9001,6318,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6507,"NAD83(2011) / Mississippi East (ftUS)",9003,6318,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +6508,"NAD83(2011) / Mississippi TM",9001,6318,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,, +6509,"NAD83(2011) / Mississippi West",9001,6318,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +6510,"NAD83(2011) / Mississippi West (ftUS)",9003,6318,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,, +6511,"NAD83(2011) / Missouri Central",9001,6318,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6512,"NAD83(2011) / Missouri East",9001,6318,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +6513,"NAD83(2011) / Missouri West",9001,6318,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,, +6514,"NAD83(2011) / Montana",9001,6318,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6515,"NAD83(2011) / Montana (ft)",9002,6318,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +6516,"NAD83(2011) / Nebraska",9001,6318,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +6517,"NAD83(2011) / Nebraska (ftUS)",9003,4759,15396,9802,1,1,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +6518,"NAD83(2011) / Nevada Central",9001,6318,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,, +6519,"NAD83(2011) / Nevada Central (ftUS)",9003,6318,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,, +6520,"NAD83(2011) / Nevada East",9001,6318,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,, +6521,"NAD83(2011) / Nevada East (ftUS)",9003,6318,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,, +6522,"NAD83(2011) / Nevada West",9001,6318,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,, +6523,"NAD83(2011) / Nevada West (ftUS)",9003,6318,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,, +6524,"NAD83(2011) / New Hampshire",9001,6318,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +6525,"NAD83(2011) / New Hampshire (ftUS)",9003,6318,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +6526,"NAD83(2011) / New Jersey",9001,6318,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +6527,"NAD83(2011) / New Jersey (ftUS)",9003,6318,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +6528,"NAD83(2011) / New Mexico Central",9001,6318,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6529,"NAD83(2011) / New Mexico Central (ftUS)",9003,6318,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +6530,"NAD83(2011) / New Mexico East",9001,6318,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,, +6531,"NAD83(2011) / New Mexico East (ftUS)",9003,6318,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,, +6532,"NAD83(2011) / New Mexico West",9001,6318,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,, +6533,"NAD83(2011) / New Mexico West (ftUS)",9003,6318,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,, +6534,"NAD83(2011) / New York Central",9001,6318,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +6535,"NAD83(2011) / New York Central (ftUS)",9003,6318,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,, +6536,"NAD83(2011) / New York East",9001,6318,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +6537,"NAD83(2011) / New York East (ftUS)",9003,6318,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,, +6538,"NAD83(2011) / New York Long Island",9001,6318,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,, +6539,"NAD83(2011) / New York Long Island (ftUS)",9003,6318,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,, +6540,"NAD83(2011) / New York West",9001,6318,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,, +6541,"NAD83(2011) / New York West (ftUS)",9003,6318,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,, +6542,"NAD83(2011) / North Carolina",9001,6318,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,, +6543,"NAD83(2011) / North Carolina (ftUS)",9003,6318,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +6544,"NAD83(2011) / North Dakota North",9001,6318,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6545,"NAD83(2011) / North Dakota North (ft)",9002,6318,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +6546,"NAD83(2011) / North Dakota South",9001,6318,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6547,"NAD83(2011) / North Dakota South (ft)",9002,6318,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,, +6548,"NAD83(2011) / Ohio North",9001,6318,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6549,"NAD83(2011) / Ohio North (ftUS)",9003,6318,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6550,"NAD83(2011) / Ohio South",9001,6318,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6551,"NAD83(2011) / Ohio South (ftUS)",9003,6318,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6552,"NAD83(2011) / Oklahoma North",9001,6318,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6553,"NAD83(2011) / Oklahoma North (ftUS)",9003,6318,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6554,"NAD83(2011) / Oklahoma South",9001,6318,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6555,"NAD83(2011) / Oklahoma South (ftUS)",9003,6318,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6556,"NAD83(2011) / Oregon LCC (m)",9001,6318,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6557,"NAD83(2011) / Oregon GIC Lambert (ft)",9002,6318,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,, +6558,"NAD83(2011) / Oregon North",9001,6318,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,, +6559,"NAD83(2011) / Oregon North (ft)",9002,6318,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,, +6560,"NAD83(2011) / Oregon South",9001,6318,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,, +6561,"NAD83(2011) / Oregon South (ft)",9002,6318,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,, +6562,"NAD83(2011) / Pennsylvania North",9001,6318,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6563,"NAD83(2011) / Pennsylvania North (ftUS)",9003,6318,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6564,"NAD83(2011) / Pennsylvania South",9001,6318,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6565,"NAD83(2011) / Pennsylvania South (ftUS)",9003,6318,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6566,"NAD83(2011) / Puerto Rico and Virgin Is.",9001,6318,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,, +6567,"NAD83(2011) / Rhode Island",9001,6318,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,, +6568,"NAD83(2011) / Rhode Island (ftUS)",9003,6318,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,, +6569,"NAD83(2011) / South Carolina",9001,6318,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,, +6570,"NAD83(2011) / South Carolina (ft)",9002,6318,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,, +6571,"NAD83(2011) / South Dakota North",9001,6318,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6572,"NAD83(2011) / South Dakota North (ftUS)",9003,6318,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6573,"NAD83(2011) / South Dakota South",9001,6318,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6574,"NAD83(2011) / South Dakota South (ftUS)",9003,6318,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6575,"NAD83(2011) / Tennessee",9001,6318,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6576,"NAD83(2011) / Tennessee (ftUS)",9003,6318,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6577,"NAD83(2011) / Texas Central",9001,6318,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,, +6578,"NAD83(2011) / Texas Central (ftUS)",9003,6318,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,, +6579,"NAD83(2011) / Texas Centric Albers Equal Area",9001,6318,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,, +6580,"NAD83(2011) / Texas Centric Lambert Conformal",9001,6318,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,, +6581,"NAD83(2011) / Texas North",9001,6318,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,, +6582,"NAD83(2011) / Texas North (ftUS)",9003,6318,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,, +6583,"NAD83(2011) / Texas North Central",9001,6318,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,, +6584,"NAD83(2011) / Texas North Central (ftUS)",9003,6318,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,, +6585,"NAD83(2011) / Texas South",9001,6318,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,, +6586,"NAD83(2011) / Texas South (ftUS)",9003,6318,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,, +6587,"NAD83(2011) / Texas South Central",9001,6318,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,, +6588,"NAD83(2011) / Texas South Central (ftUS)",9003,6318,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,, +6589,"NAD83(2011) / Vermont",9001,6318,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6590,"NAD83(2011) / Vermont (ftUS)",9003,6318,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +6591,"NAD83(2011) / Virginia Lambert",9001,6318,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +6592,"NAD83(2011) / Virginia North",9001,6318,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,, +6593,"NAD83(2011) / Virginia North (ftUS)",9003,6318,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,, +6594,"NAD83(2011) / Virginia South",9001,6318,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,, +6595,"NAD83(2011) / Virginia South (ftUS)",9003,6318,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,, +6596,"NAD83(2011) / Washington North",9001,6318,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +6597,"NAD83(2011) / Washington North (ftUS)",9003,6318,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +6598,"NAD83(2011) / Washington South",9001,6318,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +6599,"NAD83(2011) / Washington South (ftUS)",9003,6318,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,, +6600,"NAD83(2011) / West Virginia North",9001,6318,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6601,"NAD83(2011) / West Virginia North (ftUS)",9003,6318,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6602,"NAD83(2011) / West Virginia South",9001,6318,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6603,"NAD83(2011) / West Virginia South (ftUS)",9003,6318,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6604,"NAD83(2011) / Wisconsin Central",9001,4759,14832,9802,1,1,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6605,"NAD83(2011) / Wisconsin Central (ftUS)",9003,6318,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6606,"NAD83(2011) / Wisconsin North",9001,6318,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6607,"NAD83(2011) / Wisconsin North (ftUS)",9003,6318,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6608,"NAD83(2011) / Wisconsin South",9001,6318,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6609,"NAD83(2011) / Wisconsin South (ftUS)",9003,6318,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +6610,"NAD83(2011) / Wisconsin Transverse Mercator",9001,6318,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,, +6611,"NAD83(2011) / Wyoming East",9001,6318,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +6612,"NAD83(2011) / Wyoming East (ftUS)",9003,6318,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,, +6613,"NAD83(2011) / Wyoming East Central",9001,6318,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,, +6614,"NAD83(2011) / Wyoming East Central (ftUS)",9003,6318,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,, +6615,"NAD83(2011) / Wyoming West",9001,6318,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,, +6616,"NAD83(2011) / Wyoming West (ftUS)",9003,6318,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,, +6617,"NAD83(2011) / Wyoming West Central",9001,6318,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +6618,"NAD83(2011) / Wyoming West Central (ftUS)",9003,6318,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,, +6619,"NAD83(2011) / Utah Central",9001,6318,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,, +6620,"NAD83(2011) / Utah North",9001,6318,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,, +6621,"NAD83(2011) / Utah South",9001,6318,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,, +6622,"NAD83(CSRS) / Quebec Lambert",9001,4617,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +6623,"NAD83 / Quebec Albers",9001,4269,6645,9822,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +6624,"NAD83(CSRS) / Quebec Albers",9001,4617,6645,9822,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +6625,"NAD83(2011) / Utah Central (ftUS)",9003,6318,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,, +6626,"NAD83(2011) / Utah North (ftUS)",9003,6318,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,, +6627,"NAD83(2011) / Utah South (ftUS)",9003,6318,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,, +6628,"NAD83(PA11) / Hawaii zone 1",9001,6322,15131,9807,1,0,4499,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6629,"NAD83(PA11) / Hawaii zone 2",9001,6322,15132,9807,1,0,4499,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6630,"NAD83(PA11) / Hawaii zone 3",9001,6322,15133,9807,1,0,4499,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6631,"NAD83(PA11) / Hawaii zone 4",9001,6322,15134,9807,1,0,4499,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6632,"NAD83(PA11) / Hawaii zone 5",9001,6322,15135,9807,1,0,4499,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6633,"NAD83(PA11) / Hawaii zone 3 (ftUS)",9003,6322,15138,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,, +6634,"NAD83(PA11) / UTM zone 4N",9001,6322,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6635,"NAD83(PA11) / UTM zone 5N",9001,6322,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6636,"NAD83(PA11) / UTM zone 2S",9001,6322,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6637,"NAD83(MA11) / Guam Map Grid",9001,6325,4325,9807,1,0,4499,8801,13.3,9110,8802,144.45,9110,8805,1,9201,8806,100000,9001,8807,200000,9001,,,,,,,,,,,,, +6646,"Karbala 1979 / Iraq National Grid",9001,4743,19907,9807,1,0,4400,8801,29.0134566,9110,8802,46.3,9110,8805,0.9994,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,, +6669,"JGD2011 / Japan Plane Rectangular CS I",9001,6668,17801,9807,1,0,4530,8801,33,9110,8802,129.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6670,"JGD2011 / Japan Plane Rectangular CS II",9001,6668,17802,9807,1,0,4530,8801,33,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6671,"JGD2011 / Japan Plane Rectangular CS III",9001,6668,17803,9807,1,0,4530,8801,36,9110,8802,132.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6672,"JGD2011 / Japan Plane Rectangular CS IV",9001,6668,17804,9807,1,0,4530,8801,33,9110,8802,133.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6673,"JGD2011 / Japan Plane Rectangular CS V",9001,6668,17805,9807,1,0,4530,8801,36,9110,8802,134.2,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6674,"JGD2011 / Japan Plane Rectangular CS VI",9001,6668,17806,9807,1,0,4530,8801,36,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6675,"JGD2011 / Japan Plane Rectangular CS VII",9001,6668,17807,9807,1,0,4530,8801,36,9110,8802,137.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6676,"JGD2011 / Japan Plane Rectangular CS VIII",9001,6668,17808,9807,1,0,4530,8801,36,9110,8802,138.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6677,"JGD2011 / Japan Plane Rectangular CS IX",9001,6668,17809,9807,1,0,4530,8801,36,9110,8802,139.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6678,"JGD2011 / Japan Plane Rectangular CS X",9001,6668,17810,9807,1,0,4530,8801,40,9110,8802,140.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6679,"JGD2011 / Japan Plane Rectangular CS XI",9001,6668,17811,9807,1,0,4530,8801,44,9110,8802,140.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6680,"JGD2011 / Japan Plane Rectangular CS XII",9001,6668,17812,9807,1,0,4530,8801,44,9110,8802,142.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6681,"JGD2011 / Japan Plane Rectangular CS XIII",9001,6668,17813,9807,1,0,4530,8801,44,9110,8802,144.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6682,"JGD2011 / Japan Plane Rectangular CS XIV",9001,6668,17814,9807,1,0,4530,8801,26,9110,8802,142,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6683,"JGD2011 / Japan Plane Rectangular CS XV",9001,6668,17815,9807,1,0,4530,8801,26,9110,8802,127.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6684,"JGD2011 / Japan Plane Rectangular CS XVI",9001,6668,17816,9807,1,0,4530,8801,26,9110,8802,124,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6685,"JGD2011 / Japan Plane Rectangular CS XVII",9001,6668,17817,9807,1,0,4530,8801,26,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6686,"JGD2011 / Japan Plane Rectangular CS XVIII",9001,6668,17818,9807,1,0,4530,8801,20,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6687,"JGD2011 / Japan Plane Rectangular CS XIX",9001,6668,17819,9807,1,0,4530,8801,26,9110,8802,154,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6688,"JGD2011 / UTM zone 51N",9001,6668,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6689,"JGD2011 / UTM zone 52N",9001,6668,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6690,"JGD2011 / UTM zone 53N",9001,6668,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6691,"JGD2011 / UTM zone 54N",9001,6668,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6692,"JGD2011 / UTM zone 55N",9001,6668,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6703,"WGS 84 / TM 60 SW",9001,4326,6702,9807,1,0,4400,8801,0,9102,8802,-60,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6707,"RDN2008 / UTM zone 32N (N-E)",9001,6706,16032,9807,1,0,4500,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6708,"RDN2008 / UTM zone 33N (N-E)",9001,6706,16033,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6709,"RDN2008 / UTM zone 34N (N-E)",9001,6706,16034,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6720,"WGS 84 / CIG92",9001,4326,6716,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.000024,9201,8806,50000,9001,8807,1300000,9001,,,,,,,,,,,,, +6721,"GDA94 / CIG94",9001,4283,6717,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.00002514,9201,8806,50000,9001,8807,1300000,9001,,,,,,,,,,,,, +6722,"WGS 84 / CKIG92",9001,4326,6718,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,1,9201,8806,50000,9001,8807,1400000,9001,,,,,,,,,,,,, +6723,"GDA94 / CKIG94",9001,4283,6719,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,0.99999387,9201,8806,50000,9001,8807,1500000,9001,,,,,,,,,,,,, +6732,"GDA94 / MGA zone 41",9001,4283,6725,9807,1,1,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6733,"GDA94 / MGA zone 42",9001,4283,6726,9807,1,1,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6734,"GDA94 / MGA zone 43",9001,4283,6727,9807,1,1,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6735,"GDA94 / MGA zone 44",9001,4283,6728,9807,1,1,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6736,"GDA94 / MGA zone 46",9001,4283,6729,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6737,"GDA94 / MGA zone 47",9001,4283,6730,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6738,"GDA94 / MGA zone 59",9001,4283,6731,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +6784,"NAD83(CORS96) / Oregon Baker zone (m)",9001,6783,6741,9807,1,0,4499,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,, +6785,"NAD83(CORS96) / Oregon Baker zone (ft)",9002,6783,6742,9807,1,0,4495,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,, +6786,"NAD83(2011) / Oregon Baker zone (m)",9001,6318,6741,9807,1,0,4499,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,, +6787,"NAD83(2011) / Oregon Baker zone (ft)",9002,6318,6742,9807,1,0,4495,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,, +6788,"NAD83(CORS96) / Oregon Bend-Klamath Falls zone (m)",9001,6783,6743,9807,1,0,4499,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +6789,"NAD83(CORS96) / Oregon Bend-Klamath Falls zone (ft)",9002,6783,6744,9807,1,0,4495,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +6790,"NAD83(2011) / Oregon Bend-Klamath Falls zone (m)",9001,6318,6743,9807,1,0,4499,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +6791,"NAD83(2011) / Oregon Bend-Klamath Falls zone (ft)",9002,6318,6744,9807,1,0,4495,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +6792,"NAD83(CORS96) / Oregon Bend-Redmond-Prineville zone (m)",9001,6783,6745,9801,1,0,4499,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,80000,9001,8807,130000,9001,,,,,,,,,,,,, +6793,"NAD83(CORS96) / Oregon Bend-Redmond-Prineville zone (ft)",9002,6783,6746,9801,1,0,4495,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,262467.1916,9002,8807,426509.1864,9002,,,,,,,,,,,,, +6794,"NAD83(2011) / Oregon Bend-Redmond-Prineville zone (m)",9001,6318,6745,9801,1,0,4499,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,80000,9001,8807,130000,9001,,,,,,,,,,,,, +6795,"NAD83(2011) / Oregon Bend-Redmond-Prineville zone (ft)",9002,6318,6746,9801,1,0,4495,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,262467.1916,9002,8807,426509.1864,9002,,,,,,,,,,,,, +6796,"NAD83(CORS96) / Oregon Bend-Burns zone (m)",9001,6783,6747,9801,1,0,4499,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,120000,9001,8807,60000,9001,,,,,,,,,,,,, +6797,"NAD83(CORS96) / Oregon Bend-Burns zone (ft)",9002,6783,6748,9801,1,0,4495,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,393700.7874,9002,8807,196850.3937,9002,,,,,,,,,,,,, +6798,"NAD83(2011) / Oregon Bend-Burns zone (m)",9001,6318,6747,9801,1,0,4499,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,120000,9001,8807,60000,9001,,,,,,,,,,,,, +6799,"NAD83(2011) / Oregon Bend-Burns zone (ft)",9002,6318,6748,9801,1,0,4495,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,393700.7874,9002,8807,196850.3937,9002,,,,,,,,,,,,, +6800,"NAD83(CORS96) / Oregon Canyonville-Grants Pass zone (m)",9001,6783,6749,9807,1,0,4499,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,, +6801,"NAD83(CORS96) / Oregon Canyonville-Grants Pass zone (ft)",9002,6783,6750,9807,1,0,4495,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,, +6802,"NAD83(2011) / Oregon Canyonville-Grants Pass zone (m)",9001,6318,6749,9807,1,0,4499,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,, +6803,"NAD83(2011) / Oregon Canyonville-Grants Pass zone (ft)",9002,6318,6750,9807,1,0,4495,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,, +6804,"NAD83(CORS96) / Oregon Columbia River East zone (m)",9001,6783,6751,9801,1,0,4499,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,150000,9001,8807,30000,9001,,,,,,,,,,,,, +6805,"NAD83(CORS96) / Oregon Columbia River East zone (ft)",9002,6783,6752,9801,1,0,4495,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,492125.9843,9002,8807,98425.1969,9002,,,,,,,,,,,,, +6806,"NAD83(2011) / Oregon Columbia River East zone (m)",9001,6318,6751,9801,1,0,4499,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,150000,9001,8807,30000,9001,,,,,,,,,,,,, +6807,"NAD83(2011) / Oregon Columbia River East zone (ft)",9002,6318,6752,9801,1,0,4495,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,492125.9843,9002,8807,98425.1969,9002,,,,,,,,,,,,, +6808,"NAD83(CORS96) / Oregon Columbia River West zone (m)",9001,6783,6753,9812,1,0,4499,8806,7000000,9001,8807,-3000000,9001,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,, +6809,"NAD83(CORS96) / Oregon Columbia River West zone (ft)",9002,6783,6754,9812,1,0,4495,8806,22965879.2651,9002,8807,-9842519.685,9002,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,, +6810,"NAD83(2011) / Oregon Columbia River West zone (m)",9001,6318,6753,9812,1,0,4499,8806,7000000,9001,8807,-3000000,9001,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,, +6811,"NAD83(2011) / Oregon Columbia River West zone (ft)",9002,6318,6754,9812,1,0,4495,8806,22965879.2651,9002,8807,-9842519.685,9002,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,, +6812,"NAD83(CORS96) / Oregon Cottage Grove-Canyonville zone (m)",9001,6783,6755,9807,1,0,4499,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6813,"NAD83(CORS96) / Oregon Cottage Grove-Canyonville zone (ft)",9002,6783,6756,9807,1,0,4495,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6814,"NAD83(2011) / Oregon Cottage Grove-Canyonville zone (m)",9001,6318,6755,9807,1,0,4499,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6815,"NAD83(2011) / Oregon Cottage Grove-Canyonville zone (ft)",9002,6318,6756,9807,1,0,4495,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6816,"NAD83(CORS96) / Oregon Dufur-Madras zone (m)",9001,6783,6757,9807,1,0,4499,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +6817,"NAD83(CORS96) / Oregon Dufur-Madras zone (ft)",9002,6783,6758,9807,1,0,4495,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +6818,"NAD83(2011) / Oregon Dufur-Madras zone (m)",9001,6318,6757,9807,1,0,4499,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +6819,"NAD83(2011) / Oregon Dufur-Madras zone (ft)",9002,6318,6758,9807,1,0,4495,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +6820,"NAD83(CORS96) / Oregon Eugene zone (m)",9001,6783,6759,9807,1,0,4499,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6821,"NAD83(CORS96) / Oregon Eugene zone (ft)",9002,6783,6760,9807,1,0,4495,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6822,"NAD83(2011) / Oregon Eugene zone (m)",9001,6318,6759,9807,1,0,4499,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6823,"NAD83(2011) / Oregon Eugene zone (ft)",9002,6318,6760,9807,1,0,4495,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6824,"NAD83(CORS96) / Oregon Grants Pass-Ashland zone (m)",9001,6783,6761,9807,1,0,4499,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6825,"NAD83(CORS96) / Oregon Grants Pass-Ashland zone (ft)",9002,6783,6762,9807,1,0,4495,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6826,"NAD83(2011) / Oregon Grants Pass-Ashland zone (m)",9001,6318,6761,9807,1,0,4499,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6827,"NAD83(2011) / Oregon Grants Pass-Ashland zone (ft)",9002,6318,6762,9807,1,0,4495,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6828,"NAD83(CORS96) / Oregon Gresham-Warm Springs zone (m)",9001,6783,6763,9807,1,0,4499,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,10000,9001,8807,0,9001,,,,,,,,,,,,, +6829,"NAD83(CORS96) / Oregon Gresham-Warm Springs zone (ft)",9002,6783,6764,9807,1,0,4495,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,32808.399,9002,8807,0,9002,,,,,,,,,,,,, +6830,"NAD83(2011) / Oregon Gresham-Warm Springs zone (m)",9001,6318,6763,9807,1,0,4499,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,10000,9001,8807,0,9001,,,,,,,,,,,,, +6831,"NAD83(2011) / Oregon Gresham-Warm Springs zone (ft)",9002,6318,6764,9807,1,0,4495,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,32808.399,9002,8807,0,9002,,,,,,,,,,,,, +6832,"NAD83(CORS96) / Oregon La Grande zone (m)",9001,6783,6765,9807,1,0,4499,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,, +6833,"NAD83(CORS96) / Oregon La Grande zone (ft)",9002,6783,6766,9807,1,0,4495,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,, +6834,"NAD83(2011) / Oregon La Grande zone (m)",9001,6318,6765,9807,1,0,4499,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,, +6835,"NAD83(2011) / Oregon La Grande zone (ft)",9002,6318,6766,9807,1,0,4495,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,, +6836,"NAD83(CORS96) / Oregon Ontario zone (m)",9001,6783,6767,9807,1,0,4499,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +6837,"NAD83(CORS96) / Oregon Ontario zone (ft)",9002,6783,6768,9807,1,0,4495,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +6838,"NAD83(2011) / Oregon Ontario zone (m)",9001,6318,6767,9807,1,0,4499,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +6839,"NAD83(2011) / Oregon Ontario zone (ft)",9002,6318,6768,9807,1,0,4495,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +6840,"NAD83(CORS96) / Oregon Coast zone (m)",9001,6783,6769,9812,1,0,4499,8806,-300000,9001,8807,-4600000,9001,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,, +6841,"NAD83(CORS96) / Oregon Coast zone (ft)",9002,6783,6770,9812,1,0,4495,8806,-984251.9685,9002,8807,-15091863.5171,9002,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,, +6842,"NAD83(2011) / Oregon Coast zone (m)",9001,6318,6769,9812,1,0,4499,8806,-300000,9001,8807,-4600000,9001,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,, +6843,"NAD83(2011) / Oregon Coast zone (ft)",9002,6318,6770,9812,1,0,4495,8806,-984251.9685,9002,8807,-15091863.5171,9002,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,, +6844,"NAD83(CORS96) / Oregon Pendleton zone (m)",9001,6783,6771,9807,1,0,4499,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,, +6845,"NAD83(CORS96) / Oregon Pendleton zone (ft)",9002,6783,6772,9807,1,0,4495,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,, +6846,"NAD83(2011) / Oregon Pendleton zone (m)",9001,6318,6771,9807,1,0,4499,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,, +6847,"NAD83(2011) / Oregon Pendleton zone (ft)",9002,6318,6772,9807,1,0,4495,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,, +6848,"NAD83(CORS96) / Oregon Pendleton-La Grande zone (m)",9001,6783,6773,9807,1,0,4499,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,30000,9001,8807,0,9001,,,,,,,,,,,,, +6849,"NAD83(CORS96) / Oregon Pendleton-La Grande zone (ft)",9002,6783,6774,9807,1,0,4495,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,98425.1969,9002,8807,0,9002,,,,,,,,,,,,, +6850,"NAD83(2011) / Oregon Pendleton-La Grande zone (m)",9001,6318,6773,9807,1,0,4499,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,30000,9001,8807,0,9001,,,,,,,,,,,,, +6851,"NAD83(2011) / Oregon Pendleton-La Grande zone (ft)",9002,6318,6774,9807,1,0,4495,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,98425.1969,9002,8807,0,9002,,,,,,,,,,,,, +6852,"NAD83(CORS96) / Oregon Portland zone (m)",9001,6783,6775,9801,1,0,4499,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,100000,9001,8807,50000,9001,,,,,,,,,,,,, +6853,"NAD83(CORS96) / Oregon Portland zone (ft)",9002,6783,6776,9801,1,0,4495,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,328083.9895,9002,8807,164041.9948,9002,,,,,,,,,,,,, +6854,"NAD83(2011) / Oregon Portland zone (m)",9001,6318,6775,9801,1,0,4499,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,100000,9001,8807,50000,9001,,,,,,,,,,,,, +6855,"NAD83(2011) / Oregon Portland zone (ft)",9002,6318,6776,9801,1,0,4495,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,328083.9895,9002,8807,164041.9948,9002,,,,,,,,,,,,, +6856,"NAD83(CORS96) / Oregon Salem zone (m)",9001,6783,6777,9807,1,0,4499,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6857,"NAD83(CORS96) / Oregon Salem zone (ft)",9002,6783,6778,9807,1,0,4495,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6858,"NAD83(2011) / Oregon Salem zone (m)",9001,6318,6777,9807,1,0,4499,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,, +6859,"NAD83(2011) / Oregon Salem zone (ft)",9002,6318,6778,9807,1,0,4495,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,, +6860,"NAD83(CORS96) / Oregon Santiam Pass zone (m)",9001,6783,6779,9807,1,0,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6861,"NAD83(CORS96) / Oregon Santiam Pass zone (ft)",9002,6783,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,, +6862,"NAD83(2011) / Oregon Santiam Pass zone (m)",9001,6318,6779,9807,1,0,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +6863,"NAD83(2011) / Oregon Santiam Pass zone (ft)",9002,6318,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,, +6867,"NAD83(CORS96) / Oregon LCC (m)",9001,6783,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6868,"NAD83(CORS96) / Oregon GIC Lambert (ft)",9002,6783,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,, +6870,"ETRS89 / Albania TM 2010",9001,4258,6869,9807,1,0,4530,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6875,"RDN2008 / Italy zone (N-E)",9001,6706,6877,9807,1,0,4500,8801,0,9102,8802,12,9102,8805,0.9985,9201,8806,7000000,9001,8807,0,9001,,,,,,,,,,,,, +6876,"RDN2008 / Zone 12 (N-E)",9001,6706,6878,9807,1,0,4500,8801,0,9102,8802,12,9102,8805,1,9201,8806,3000000,9001,8807,0,9001,,,,,,,,,,,,, +6879,"NAD83(2011) / Wisconsin Central",9001,6318,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +6880,"NAD83(2011) / Nebraska (ftUS)",9003,6318,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +6884,"NAD83(CORS96) / Oregon North",9001,6783,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,, +6885,"NAD83(CORS96) / Oregon North (ft)",9002,6783,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,, +6886,"NAD83(CORS96) / Oregon South",9001,6783,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,, +6887,"NAD83(CORS96) / Oregon South (ft)",9002,6783,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,, +6915,"South East Island 1943 / UTM zone 40N",9001,6892,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +6922,"NAD83 / Kansas LCC",9001,4269,6920,9802,1,0,4499,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6923,"NAD83 / Kansas LCC (ftUS)",9003,4269,6921,9802,1,0,4497,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +6924,"NAD83(2011) / Kansas LCC",9001,6318,6920,9802,1,0,4499,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +6925,"NAD83(2011) / Kansas LCC (ftUS)",9003,6318,6921,9802,1,0,4497,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,, +6931,"WGS 84 / NSIDC EASE-Grid 2.0 North",9001,4326,6929,9820,1,0,4469,8801,90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +6932,"WGS 84 / NSIDC EASE-Grid 2.0 South",9001,4326,6930,9820,1,0,4470,8801,-90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +6933,"WGS 84 / NSIDC EASE-Grid 2.0 Global",9001,4326,6928,9835,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,30,9102,,,,,,,,,,,,,,,, +6956,"VN-2000 / TM-3 zone 481",9001,4756,6952,9807,1,0,4400,8801,0,9102,8802,102,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,, +6957,"VN-2000 / TM-3 zone 482",9001,4756,6953,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,, +6958,"VN-2000 / TM-3 zone 491",9001,4756,6954,9807,1,0,4400,8801,0,9102,8802,108,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,, +6959,"VN-2000 / TM-3 Da Nang zone",9001,4756,6955,9807,1,0,4400,8801,0,9110,8802,107.45,9110,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,, +6962,"ETRS89 / Albania LCC 2010",9001,4258,6961,9802,1,0,4530,8821,41,9102,8822,20,9102,8823,39,9102,8824,43,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +6966,"NAD27 / Michigan North",9003,4267,6965,1051,1,0,4497,1038,1.0000382,9201,8821,44.47,9110,8822,-87,9110,8823,45.29,9110,8824,47.05,9110,8826,2000000,9003,8827,0,9003,,,,,,, +6984,Israeli Grid 05,9001,6983,18204,9807,1,0,4400,8801,31.4403817,9110,8802,35.1216261,9110,8805,1.0000067,9201,8806,219529.584,9001,8807,626907.39,9001,,,,,,,,,,,,, +6991,"Israeli Grid 05/12",9001,6990,18204,9807,1,0,4400,8801,31.4403817,9110,8802,35.1216261,9110,8805,1.0000067,9201,8806,219529.584,9001,8807,626907.39,9001,,,,,,,,,,,,, +6996,"NAD83(2011) / San Francisco CS13",9001,6318,6994,9807,1,1,4499,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9202,8806,48000,9001,8807,24000,9001,,,,,,,,,,,,, +6997,"NAD83(2011) / San Francisco CS13 (ftUS)",9003,6318,6995,9807,1,1,4497,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9202,8806,157480,9003,8807,78740,9003,,,,,,,,,,,,, +7005,"Nahrwan 1934 / UTM zone 37N",9001,4744,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7006,"Nahrwan 1934 / UTM zone 38N",9001,4744,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7007,"Nahrwan 1934 / UTM zone 39N",9001,4744,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7057,"NAD83(2011) / IaRCS zone 1",9003,6318,7043,9801,1,0,4497,8801,43.12,9110,8802,-95.15,9110,8805,1.000052,9201,8806,11500000,9003,8807,9600000,9003,,,,,,,,,,,,, +7058,"NAD83(2011) / IaRCS zone 2",9003,6318,7044,9801,1,0,4497,8801,43.1,9110,8802,-92.45,9110,8805,1.000043,9201,8806,12500000,9003,8807,9800000,9003,,,,,,,,,,,,, +7059,"NAD83(2011) / IaRCS zone 3",9003,6318,7045,9807,1,0,4497,8801,40.15,9110,8802,-91.12,9110,8805,1.000035,9201,8806,13500000,9003,8807,8300000,9003,,,,,,,,,,,,, +7060,"NAD83(2011) / IaRCS zone 4",9003,6318,7046,9801,1,0,4497,8801,42.32,9110,8802,-94.5,9110,8805,1.000045,9201,8806,14500000,9003,8807,8600000,9003,,,,,,,,,,,,, +7061,"NAD83(2011) / IaRCS zone 5",9003,6318,7047,9801,1,0,4497,8801,42.39,9110,8802,-92.15,9110,8805,1.000032,9201,8806,15500000,9003,8807,8900000,9003,,,,,,,,,,,,, +7062,"NAD83(2011) / IaRCS zone 6",9003,6318,7048,9807,1,0,4497,8801,40.15,9110,8802,-95.44,9110,8805,1.000039,9201,8806,16500000,9003,8807,6600000,9003,,,,,,,,,,,,, +7063,"NAD83(2011) / IaRCS zone 7",9003,6318,7049,9807,1,0,4497,8801,40.15,9110,8802,-94.38,9110,8805,1.000045,9201,8806,17500000,9003,8807,6800000,9003,,,,,,,,,,,,, +7064,"NAD83(2011) / IaRCS zone 8",9003,6318,7050,9807,1,0,4497,8801,40.15,9110,8802,-93.43,9110,8805,1.000033,9201,8806,18500000,9003,8807,7000000,9003,,,,,,,,,,,,, +7065,"NAD83(2011) / IaRCS zone 9",9003,6318,7051,9807,1,0,4497,8801,40.15,9110,8802,-92.49,9110,8805,1.000027,9201,8806,19500000,9003,8807,7200000,9003,,,,,,,,,,,,, +7066,"NAD83(2011) / IaRCS zone 10",9003,6318,7052,9801,1,0,4497,8801,41.5,9110,8802,-91.4,9110,8805,1.00002,9201,8806,20500000,9003,8807,8000000,9003,,,,,,,,,,,,, +7067,"NAD83(2011) / IaRCS zone 11",9003,6318,7053,9807,1,0,4497,8801,40.15,9110,8802,-90.32,9110,8805,1.000027,9201,8806,21500000,9003,8807,7600000,9003,,,,,,,,,,,,, +7068,"NAD83(2011) / IaRCS zone 12",9003,6318,7054,9801,1,0,4497,8801,40.55,9110,8802,-93.45,9110,8805,1.000037,9201,8806,22500000,9003,8807,6200000,9003,,,,,,,,,,,,, +7069,"NAD83(2011) / IaRCS zone 13",9003,6318,7055,9807,1,0,4497,8801,40.15,9110,8802,-91.55,9110,8805,1.00002,9201,8806,23500000,9003,8807,6400000,9003,,,,,,,,,,,,, +7070,"NAD83(2011) / IaRCS zone 14",9003,6318,7056,9807,1,0,4497,8801,40.15,9110,8802,-91.15,9110,8805,1.000018,9201,8806,24500000,9003,8807,6200000,9003,,,,,,,,,,,,, +7074,"RGTAAF07 / UTM zone 37S",9001,7073,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7075,"RGTAAF07 / UTM zone 38S",9001,7073,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7076,"RGTAAF07 / UTM zone 39S",9001,7073,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7077,"RGTAAF07 / UTM zone 40S",9001,7073,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7078,"RGTAAF07 / UTM zone 41S",9001,7073,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7079,"RGTAAF07 / UTM zone 42S",9001,7073,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7080,"RGTAAF07 / UTM zone 43S",9001,7073,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7081,"RGTAAF07 / UTM zone 44S",9001,7073,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7082,"RGTAAF07 / Terre Adelie Polar Stereographic",9001,7073,19983,9830,1,0,4400,8826,300000,9001,8827,200000,9001,8832,-67,9102,8833,140,9102,,,,,,,,,,,,,,,, +7109,"NAD83(2011) / RMTCRS St Mary (m)",9001,6318,7089,9807,1,0,4499,8801,48.3,9110,8802,-112.3,9110,8805,1.00016,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +7110,"NAD83(2011) / RMTCRS Blackfeet (m)",9001,6318,7091,9807,1,0,4499,8801,48,9110,8802,-112.3,9110,8805,1.00019,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,, +7111,"NAD83(2011) / RMTCRS Milk River (m)",9001,6318,7093,9801,1,0,4499,8801,48.3,9110,8802,-111,9110,8805,1.000145,9201,8806,150000,9001,8807,200000,9001,,,,,,,,,,,,, +7112,"NAD83(2011) / RMTCRS Fort Belknap (m)",9001,6318,7095,9801,1,0,4499,8801,48.3,9110,8802,-108.3,9110,8805,1.00012,9201,8806,200000,9001,8807,150000,9001,,,,,,,,,,,,, +7113,"NAD83(2011) / RMTCRS Fort Peck Assiniboine (m)",9001,6318,7097,9801,1,0,4499,8801,48.2,9110,8802,-105.3,9110,8805,1.00012,9201,8806,200000,9001,8807,100000,9001,,,,,,,,,,,,, +7114,"NAD83(2011) / RMTCRS Fort Peck Sioux (m)",9001,6318,7099,9801,1,0,4499,8801,48.2,9110,8802,-105.3,9110,8805,1.00009,9201,8806,100000,9001,8807,50000,9001,,,,,,,,,,,,, +7115,"NAD83(2011) / RMTCRS Crow (m)",9001,6318,7101,9807,1,0,4499,8801,44.45,9110,8802,-107.45,9110,8805,1.000148,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +7116,"NAD83(2011) / RMTCRS Bobcat (m)",9001,6318,7103,9801,1,0,4499,8801,46.15,9110,8802,-111.15,9110,8805,1.000185,9201,8806,100000,9001,8807,100000,9001,,,,,,,,,,,,, +7117,"NAD83(2011) / RMTCRS Billings (m)",9001,6318,7105,9801,1,0,4499,8801,45.47,9110,8802,-108.25,9110,8805,1.0001515,9201,8806,200000,9001,8807,50000,9001,,,,,,,,,,,,, +7118,"NAD83(2011) / RMTCRS Wind River (m)",9001,6318,7107,9807,1,0,4499,8801,42.4,9110,8802,-108.2,9110,8805,1.00024,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,, +7119,"NAD83(2011) / RMTCRS St Mary (ft)",9002,6318,7090,9807,1,0,4495,8801,48.3,9110,8802,-112.3,9110,8805,1.00016,9201,8806,492125.9843,9002,8807,0,9002,,,,,,,,,,,,, +7120,"NAD83(2011) / RMTCRS Blackfeet (ft)",9002,6318,7092,9807,1,0,4495,8801,48,9110,8802,-112.3,9110,8805,1.00019,9201,8806,328083.9895,9002,8807,0,9002,,,,,,,,,,,,, +7121,"NAD83(2011) / RMTCRS Milk River (ft)",9002,6318,7094,9801,1,0,4495,8801,48.3,9110,8802,-111,9110,8805,1.000145,9201,8806,492125.9843,9002,8807,656167.979,9002,,,,,,,,,,,,, +7122,"NAD83(2011) / RMTCRS Fort Belknap (ft)",9002,6318,7096,9801,1,0,4495,8801,48.3,9110,8802,-108.3,9110,8805,1.00012,9201,8806,656167.979,9002,8807,492125.9843,9002,,,,,,,,,,,,, +7123,"NAD83(2011) / RMTCRS Fort Peck Assiniboine (ft)",9002,6318,7098,9801,1,0,4495,8801,48.2,9110,8802,-105.3,9110,8805,1.00012,9201,8806,656167.979,9002,8807,328083.9895,9002,,,,,,,,,,,,, +7124,"NAD83(2011) / RMTCRS Fort Peck Sioux (ft)",9002,6318,7100,9801,1,0,4495,8801,48.2,9110,8802,-105.3,9110,8805,1.00009,9201,8806,328083.9895,9002,8807,164041.9938,9002,,,,,,,,,,,,, +7125,"NAD83(2011) / RMTCRS Crow (ft)",9002,6318,7102,9807,1,0,4495,8801,44.45,9110,8802,-107.45,9110,8805,1.000148,9201,8806,656167.979,9002,8807,0,9002,,,,,,,,,,,,, +7126,"NAD83(2011) / RMTCRS Bobcat (ft)",9002,6318,7104,9801,1,0,4495,8801,46.15,9110,8802,-111.15,9110,8805,1.000185,9201,8806,328083.9895,9002,8807,328083.9895,9002,,,,,,,,,,,,, +7127,"NAD83(2011) / RMTCRS Billings (ft)",9002,6318,7106,9801,1,0,4495,8801,45.47,9110,8802,-108.25,9110,8805,1.0001515,9201,8806,656167.979,9002,8807,164041.9948,9002,,,,,,,,,,,,, +7128,"NAD83(2011) / RMTCRS Wind River (ftUS)",9003,6318,7108,9807,1,0,4497,8801,42.4,9110,8802,-108.2,9110,8805,1.00024,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,, +7131,"NAD83(2011) / San Francisco CS13",9001,6318,7129,9807,1,0,4499,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9201,8806,48000,9001,8807,24000,9001,,,,,,,,,,,,, +7132,"NAD83(2011) / San Francisco CS13 (ftUS)",9003,6318,7130,9807,1,0,4497,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9201,8806,157480,9003,8807,78740,9003,,,,,,,,,,,,, +7142,"Palestine 1923 / Palestine Grid modified",9001,4281,7141,9807,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8805,1,9201,8806,170251.555,9001,8807,126867.909,9001,,,,,,,,,,,,, +7257,"NAD83(2011) / InGCS Adams (m)",9001,6318,7143,9807,1,0,4499,8801,40.33,9110,8802,-84.57,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7258,"NAD83(2011) / InGCS Adams (ftUS)",9003,6318,7144,9807,1,0,4497,8801,40.33,9110,8802,-84.57,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7259,"NAD83(2011) / InGCS Allen (m)",9001,6318,7145,9807,1,0,4499,8801,40.54,9110,8802,-85.03,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7260,"NAD83(2011) / InGCS Allen (ftUS)",9003,6318,7146,9807,1,0,4497,8801,40.54,9110,8802,-85.03,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7261,"NAD83(2011) / InGCS Bartholomew (m)",9001,6318,7147,9807,1,0,4499,8801,39,9110,8802,-85.51,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7262,"NAD83(2011) / InGCS Bartholomew (ftUS)",9003,6318,7148,9807,1,0,4497,8801,39,9110,8802,-85.51,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7263,"NAD83(2011) / InGCS Benton (m)",9001,6318,7149,9807,1,0,4499,8801,40.27,9110,8802,-87.18,9110,8805,1.000029,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7264,"NAD83(2011) / InGCS Benton (ftUS)",9003,6318,7150,9807,1,0,4497,8801,40.27,9110,8802,-87.18,9110,8805,1.000029,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7265,"NAD83(2011) / InGCS Blackford-Delaware (m)",9001,6318,7151,9807,1,0,4499,8801,40.03,9110,8802,-85.24,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7266,"NAD83(2011) / InGCS Blackford-Delaware (ftUS)",9003,6318,7152,9807,1,0,4497,8801,40.03,9110,8802,-85.24,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7267,"NAD83(2011) / InGCS Boone-Hendricks (m)",9001,6318,7153,9807,1,0,4499,8801,39.36,9110,8802,-86.3,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7268,"NAD83(2011) / InGCS Boone-Hendricks (ftUS)",9003,6318,7154,9807,1,0,4497,8801,39.36,9110,8802,-86.3,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7269,"NAD83(2011) / InGCS Brown (m)",9001,6318,7155,9807,1,0,4499,8801,39,9110,8802,-86.18,9110,8805,1.00003,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7270,"NAD83(2011) / InGCS Brown (ftUS)",9003,6318,7156,9807,1,0,4497,8801,39,9110,8802,-86.18,9110,8805,1.00003,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7271,"NAD83(2011) / InGCS Carroll (m)",9001,6318,7157,9807,1,0,4499,8801,40.24,9110,8802,-86.39,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7272,"NAD83(2011) / InGCS Carroll (ftUS)",9003,6318,7158,9807,1,0,4497,8801,40.24,9110,8802,-86.39,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7273,"NAD83(2011) / InGCS Cass (m)",9001,6318,7159,9807,1,0,4499,8801,40.33,9110,8802,-86.24,9110,8805,1.000028,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7274,"NAD83(2011) / InGCS Cass (ftUS)",9003,6318,7160,9807,1,0,4497,8801,40.33,9110,8802,-86.24,9110,8805,1.000028,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7275,"NAD83(2011) / InGCS Clark-Floyd-Scott (m)",9001,6318,7161,9807,1,0,4499,8801,38.09,9110,8802,-85.36,9110,8805,1.000021,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7276,"NAD83(2011) / InGCS Clark-Floyd-Scott (ftUS)",9003,6318,7162,9807,1,0,4497,8801,38.09,9110,8802,-85.36,9110,8805,1.000021,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7277,"NAD83(2011) / InGCS Clay (m)",9001,6318,7163,9807,1,0,4499,8801,39.09,9110,8802,-87.09,9110,8805,1.000024,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7278,"NAD83(2011) / InGCS Clay (ftUS)",9003,6318,7164,9807,1,0,4497,8801,39.09,9110,8802,-87.09,9110,8805,1.000024,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7279,"NAD83(2011) / InGCS Clinton (m)",9001,6318,7165,9807,1,0,4499,8801,40.09,9110,8802,-86.36,9110,8805,1.000032,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7280,"NAD83(2011) / InGCS Clinton (ftUS)",9003,6318,7166,9807,1,0,4497,8801,40.09,9110,8802,-86.36,9110,8805,1.000032,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7281,"NAD83(2011) / InGCS Crawford-Lawrence-Orange (m)",9001,6318,7167,9807,1,0,4499,8801,38.06,9110,8802,-86.3,9110,8805,1.000025,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7282,"NAD83(2011) / InGCS Crawford-Lawrence-Orange (ftUS)",9003,6318,7168,9807,1,0,4497,8801,38.06,9110,8802,-86.3,9110,8805,1.000025,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7283,"NAD83(2011) / InGCS Daviess-Greene (m)",9001,6318,7169,9807,1,0,4499,8801,38.27,9110,8802,-87.06,9110,8805,1.000018,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7284,"NAD83(2011) / InGCS Daviess-Greene (ftUS)",9003,6318,7170,9807,1,0,4497,8801,38.27,9110,8802,-87.06,9110,8805,1.000018,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7285,"NAD83(2011) / InGCS Dearborn-Ohio-Switzerland (m)",9001,6318,7171,9807,1,0,4499,8801,38.39,9110,8802,-84.54,9110,8805,1.000029,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7286,"NAD83(2011) / InGCS Dearborn-Ohio-Switzerland (ftUS)",9003,6318,7172,9807,1,0,4497,8801,38.39,9110,8802,-84.54,9110,8805,1.000029,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7287,"NAD83(2011) / InGCS Decatur-Rush (m)",9001,6318,7173,9807,1,0,4499,8801,39.06,9110,8802,-85.39,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7288,"NAD83(2011) / InGCS Decatur-Rush (ftUS)",9003,6318,7174,9807,1,0,4497,8801,39.06,9110,8802,-85.39,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7289,"NAD83(2011) / InGCS DeKalb (m)",9001,6318,7175,9807,1,0,4499,8801,41.15,9110,8802,-84.57,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7290,"NAD83(2011) / InGCS DeKalb (ftUS)",9003,6318,7176,9807,1,0,4497,8801,41.15,9110,8802,-84.57,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7291,"NAD83(2011) / InGCS Dubois-Martin (m)",9001,6318,7177,9807,1,0,4499,8801,38.12,9110,8802,-86.57,9110,8805,1.00002,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7292,"NAD83(2011) / InGCS Dubois-Martin (ftUS)",9003,6318,7178,9807,1,0,4497,8801,38.12,9110,8802,-86.57,9110,8805,1.00002,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7293,"NAD83(2011) / InGCS Elkhart-Kosciusko-Wabash (m)",9001,6318,7179,9807,1,0,4499,8801,40.39,9110,8802,-85.51,9110,8805,1.000033,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7294,"NAD83(2011) / InGCS Elkhart-Kosciusko-Wabash (ftUS)",9003,6318,7180,9807,1,0,4497,8801,40.39,9110,8802,-85.51,9110,8805,1.000033,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7295,"NAD83(2011) / InGCS Fayette-Franklin-Union (m)",9001,6318,7181,9807,1,0,4499,8801,39.15,9110,8802,-85.03,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7296,"NAD83(2011) / InGCS Fayette-Franklin-Union (ftUS)",9003,6318,7182,9807,1,0,4497,8801,39.15,9110,8802,-85.03,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7297,"NAD83(2011) / InGCS Fountain-Warren (m)",9001,6318,7183,9807,1,0,4499,8801,39.57,9110,8802,-87.18,9110,8805,1.000025,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7298,"NAD83(2011) / InGCS Fountain-Warren (ftUS)",9003,6318,7184,9807,1,0,4497,8801,39.57,9110,8802,-87.18,9110,8805,1.000025,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7299,"NAD83(2011) / InGCS Fulton-Marshall-St. Joseph (m)",9001,6318,7185,9807,1,0,4499,8801,40.54,9110,8802,-86.18,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7300,"NAD83(2011) / InGCS Fulton-Marshall-St. Joseph (ftUS)",9003,6318,7186,9807,1,0,4497,8801,40.54,9110,8802,-86.18,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7301,"NAD83(2011) / InGCS Gibson (m)",9001,6318,7187,9807,1,0,4499,8801,38.09,9110,8802,-87.39,9110,8805,1.000013,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7302,"NAD83(2011) / InGCS Gibson (ftUS)",9003,6318,7188,9807,1,0,4497,8801,38.09,9110,8802,-87.39,9110,8805,1.000013,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7303,"NAD83(2011) / InGCS Grant (m)",9001,6318,7189,9807,1,0,4499,8801,40.21,9110,8802,-85.42,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7304,"NAD83(2011) / InGCS Grant (ftUS)",9003,6318,7190,9807,1,0,4497,8801,40.21,9110,8802,-85.42,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7305,"NAD83(2011) / InGCS Hamilton-Tipton (m)",9001,6318,7191,9807,1,0,4499,8801,39.54,9110,8802,-86,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7306,"NAD83(2011) / InGCS Hamilton-Tipton (ftUS)",9003,6318,7192,9807,1,0,4497,8801,39.54,9110,8802,-86,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7307,"NAD83(2011) / InGCS Hancock-Madison (m)",9001,6318,7193,9807,1,0,4499,8801,39.39,9110,8802,-85.48,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7308,"NAD83(2011) / InGCS Hancock-Madison (ftUS)",9003,6318,7194,9807,1,0,4497,8801,39.39,9110,8802,-85.48,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7309,"NAD83(2011) / InGCS Harrison-Washington (m)",9001,6318,7195,9807,1,0,4499,8801,37.57,9110,8802,-86.09,9110,8805,1.000027,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7310,"NAD83(2011) / InGCS Harrison-Washington (ftUS)",9003,6318,7196,9807,1,0,4497,8801,37.57,9110,8802,-86.09,9110,8805,1.000027,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7311,"NAD83(2011) / InGCS Henry (m)",9001,6318,7197,9807,1,0,4499,8801,39.45,9110,8802,-85.27,9110,8805,1.000043,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7312,"NAD83(2011) / InGCS Henry (ftUS)",9003,6318,7198,9807,1,0,4497,8801,39.45,9110,8802,-85.27,9110,8805,1.000043,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7313,"NAD83(2011) / InGCS Howard-Miami (m)",9001,6318,7199,9807,1,0,4499,8801,40.21,9110,8802,-86.09,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7314,"NAD83(2011) / InGCS Howard-Miami (ftUS)",9003,6318,7200,9807,1,0,4497,8801,40.21,9110,8802,-86.09,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7315,"NAD83(2011) / InGCS Huntington-Whitley (m)",9001,6318,7201,9807,1,0,4499,8801,40.39,9110,8802,-85.3,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7316,"NAD83(2011) / InGCS Huntington-Whitley (ftUS)",9003,6318,7202,9807,1,0,4497,8801,40.39,9110,8802,-85.3,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7317,"NAD83(2011) / InGCS Jackson (m)",9001,6318,7203,9807,1,0,4499,8801,38.42,9110,8802,-85.57,9110,8805,1.000022,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7318,"NAD83(2011) / InGCS Jackson (ftUS)",9003,6318,7204,9807,1,0,4497,8801,38.42,9110,8802,-85.57,9110,8805,1.000022,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7319,"NAD83(2011) / InGCS Jasper-Porter (m)",9001,6318,7205,9807,1,0,4499,8801,40.42,9110,8802,-87.06,9110,8805,1.000027,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7320,"NAD83(2011) / InGCS Jasper-Porter (ftUS)",9003,6318,7206,9807,1,0,4497,8801,40.42,9110,8802,-87.06,9110,8805,1.000027,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7321,"NAD83(2011) / InGCS Jay (m)",9001,6318,7207,9807,1,0,4499,8801,40.18,9110,8802,-85,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7322,"NAD83(2011) / InGCS Jay (ftUS)",9003,6318,7208,9807,1,0,4497,8801,40.18,9110,8802,-85,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7323,"NAD83(2011) / InGCS Jefferson (m)",9001,6318,7209,9807,1,0,4499,8801,38.33,9110,8802,-85.21,9110,8805,1.000028,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7324,"NAD83(2011) / InGCS Jefferson (ftUS)",9003,6318,7210,9807,1,0,4497,8801,38.33,9110,8802,-85.21,9110,8805,1.000028,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7325,"NAD83(2011) / InGCS Jennings (m)",9001,6318,7211,9807,1,0,4499,8801,38.48,9110,8802,-85.48,9110,8805,1.000025,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7326,"NAD83(2011) / InGCS Jennings (ftUS)",9003,6318,7212,9807,1,0,4497,8801,38.48,9110,8802,-85.48,9110,8805,1.000025,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7327,"NAD83(2011) / InGCS Johnson-Marion (m)",9001,6318,7213,9807,1,0,4499,8801,39.18,9110,8802,-86.09,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7328,"NAD83(2011) / InGCS Johnson-Marion (ftUS)",9003,6318,7214,9807,1,0,4497,8801,39.18,9110,8802,-86.09,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7329,"NAD83(2011) / InGCS Knox (m)",9001,6318,7215,9807,1,0,4499,8801,38.24,9110,8802,-87.27,9110,8805,1.000015,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7330,"NAD83(2011) / InGCS Knox (ftUS)",9003,6318,7216,9807,1,0,4497,8801,38.24,9110,8802,-87.27,9110,8805,1.000015,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7331,"NAD83(2011) / InGCS LaGrange-Noble (m)",9001,6318,7217,9807,1,0,4499,8801,41.15,9110,8802,-85.27,9110,8805,1.000037,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7332,"NAD83(2011) / InGCS LaGrange-Noble (ftUS)",9003,6318,7218,9807,1,0,4497,8801,41.15,9110,8802,-85.27,9110,8805,1.000037,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7333,"NAD83(2011) / InGCS Lake-Newton (m)",9001,6318,7219,9807,1,0,4499,8801,40.42,9110,8802,-87.24,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7334,"NAD83(2011) / InGCS Lake-Newton (ftUS)",9003,6318,7220,9807,1,0,4497,8801,40.42,9110,8802,-87.24,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7335,"NAD83(2011) / InGCS LaPorte-Pulaski-Starke (m)",9001,6318,7221,9807,1,0,4499,8801,40.54,9110,8802,-86.45,9110,8805,1.000027,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7336,"NAD83(2011) / InGCS LaPorte-Pulaski-Starke (ftUS)",9003,6318,7222,9807,1,0,4497,8801,40.54,9110,8802,-86.45,9110,8805,1.000027,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7337,"NAD83(2011) / InGCS Monroe-Morgan (m)",9001,6318,7223,9807,1,0,4499,8801,38.57,9110,8802,-86.3,9110,8805,1.000028,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7338,"NAD83(2011) / InGCS Monroe-Morgan (ftUS)",9003,6318,7224,9807,1,0,4497,8801,38.57,9110,8802,-86.3,9110,8805,1.000028,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7339,"NAD83(2011) / InGCS Montgomery-Putnam (m)",9001,6318,7225,9807,1,0,4499,8801,39.27,9110,8802,-86.57,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7340,"NAD83(2011) / InGCS Montgomery-Putnam (ftUS)",9003,6318,7226,9807,1,0,4497,8801,39.27,9110,8802,-86.57,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7341,"NAD83(2011) / InGCS Owen (m)",9001,6318,7227,9807,1,0,4499,8801,39.09,9110,8802,-86.54,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7342,"NAD83(2011) / InGCS Owen (ftUS)",9003,6318,7228,9807,1,0,4497,8801,39.09,9110,8802,-86.54,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7343,"NAD83(2011) / InGCS Parke-Vermillion (m)",9001,6318,7229,9807,1,0,4499,8801,39.36,9110,8802,-87.21,9110,8805,1.000022,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7344,"NAD83(2011) / InGCS Parke-Vermillion (ftUS)",9003,6318,7230,9807,1,0,4497,8801,39.36,9110,8802,-87.21,9110,8805,1.000022,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7345,"NAD83(2011) / InGCS Perry (m)",9001,6318,7231,9807,1,0,4499,8801,37.48,9110,8802,-86.42,9110,8805,1.00002,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7346,"NAD83(2011) / InGCS Perry (ftUS)",9003,6318,7232,9807,1,0,4497,8801,37.48,9110,8802,-86.42,9110,8805,1.00002,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7347,"NAD83(2011) / InGCS Pike-Warrick (m)",9001,6318,7233,9807,1,0,4499,8801,37.51,9110,8802,-87.18,9110,8805,1.000015,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7348,"NAD83(2011) / InGCS Pike-Warrick (ftUS)",9003,6318,7234,9807,1,0,4497,8801,37.51,9110,8802,-87.18,9110,8805,1.000015,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7349,"NAD83(2011) / InGCS Posey (m)",9001,6318,7235,9807,1,0,4499,8801,37.45,9110,8802,-87.57,9110,8805,1.000013,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7350,"NAD83(2011) / InGCS Posey (ftUS)",9003,6318,7236,9807,1,0,4497,8801,37.45,9110,8802,-87.57,9110,8805,1.000013,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7351,"NAD83(2011) / InGCS Randolph-Wayne (m)",9001,6318,7237,9807,1,0,4499,8801,39.42,9110,8802,-85.03,9110,8805,1.000044,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7352,"NAD83(2011) / InGCS Randolph-Wayne (ftUS)",9003,6318,7238,9807,1,0,4497,8801,39.42,9110,8802,-85.03,9110,8805,1.000044,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7353,"NAD83(2011) / InGCS Ripley (m)",9001,6318,7239,9807,1,0,4499,8801,38.54,9110,8802,-85.18,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7354,"NAD83(2011) / InGCS Ripley (ftUS)",9003,6318,7240,9807,1,0,4497,8801,38.54,9110,8802,-85.18,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7355,"NAD83(2011) / InGCS Shelby (m)",9001,6318,7241,9807,1,0,4499,8801,39.18,9110,8802,-85.54,9110,8805,1.00003,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7356,"NAD83(2011) / InGCS Shelby (ftUS)",9003,6318,7242,9807,1,0,4497,8801,39.18,9110,8802,-85.54,9110,8805,1.00003,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7357,"NAD83(2011) / InGCS Spencer (m)",9001,6318,7243,9807,1,0,4499,8801,37.45,9110,8802,-87.03,9110,8805,1.000014,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7358,"NAD83(2011) / InGCS Spencer (ftUS)",9003,6318,7244,9807,1,0,4497,8801,37.45,9110,8802,-87.03,9110,8805,1.000014,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7359,"NAD83(2011) / InGCS Steuben (m)",9001,6318,7245,9807,1,0,4499,8801,41.3,9110,8802,-85,9110,8805,1.000041,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7360,"NAD83(2011) / InGCS Steuben (ftUS)",9003,6318,7246,9807,1,0,4497,8801,41.3,9110,8802,-85,9110,8805,1.000041,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7361,"NAD83(2011) / InGCS Sullivan (m)",9001,6318,7247,9807,1,0,4499,8801,38.54,9110,8802,-87.3,9110,8805,1.000017,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7362,"NAD83(2011) / InGCS Sullivan (ftUS)",9003,6318,7248,9807,1,0,4497,8801,38.54,9110,8802,-87.3,9110,8805,1.000017,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7363,"NAD83(2011) / InGCS Tippecanoe-White (m)",9001,6318,7249,9807,1,0,4499,8801,40.12,9110,8802,-86.54,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7364,"NAD83(2011) / InGCS Tippecanoe-White (ftUS)",9003,6318,7250,9807,1,0,4497,8801,40.12,9110,8802,-86.54,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7365,"NAD83(2011) / InGCS Vanderburgh (m)",9001,6318,7251,9807,1,0,4499,8801,37.48,9110,8802,-87.33,9110,8805,1.000015,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7366,"NAD83(2011) / InGCS Vanderburgh (ftUS)",9003,6318,7252,9807,1,0,4497,8801,37.48,9110,8802,-87.33,9110,8805,1.000015,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7367,"NAD83(2011) / InGCS Vigo (m)",9001,6318,7253,9807,1,0,4499,8801,39.15,9110,8802,-87.27,9110,8805,1.00002,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7368,"NAD83(2011) / InGCS Vigo (ftUS)",9003,6318,7254,9807,1,0,4497,8801,39.15,9110,8802,-87.27,9110,8805,1.00002,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7369,"NAD83(2011) / InGCS Wells (m)",9001,6318,7255,9807,1,0,4499,8801,40.33,9110,8802,-85.15,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,, +7370,"NAD83(2011) / InGCS Wells (ftUS)",9003,6318,7256,9807,1,0,4497,8801,40.33,9110,8802,-85.15,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,, +7374,"ONGD14 / UTM zone 39N",9001,7373,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7375,"ONGD14 / UTM zone 40N",9001,7373,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7376,"ONGD14 / UTM zone 41N",9001,7373,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7528,"NAD83(2011) / WISCRS Adams and Juneau (m)",9001,6318,7484,9807,1,0,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,,,,,,,, +7529,"NAD83(2011) / WISCRS Ashland (m)",9001,6318,7378,9807,1,0,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,,,,,,,, +7530,"NAD83(2011) / WISCRS Barron (m)",9001,6318,7426,9807,1,0,4499,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,93150,9001,8807,0.0029,9001,,,,,,,,,,,,, +7531,"NAD83(2011) / WISCRS Bayfield (m)",9001,6318,7380,9801,1,0,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,,,,,,,, +7532,"NAD83(2011) / WISCRS Brown (m)",9001,6318,7428,9807,1,0,4499,8801,43,9102,8802,-88,9102,8805,1.00002,9201,8806,31600,9001,8807,4600,9001,,,,,,,,,,,,, +7533,"NAD83(2011) / WISCRS Buffalo (m)",9001,6318,7430,9807,1,0,4499,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,175260.3502,9001,8807,0.0048,9001,,,,,,,,,,,,, +7534,"NAD83(2011) / WISCRS Burnett (m)",9001,6318,7382,9801,1,0,4499,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,64008.1276,9001,8807,59445.9043,9001,,,,,,,,,,,,, +7535,"NAD83(2011) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (m)",9001,6318,7486,9807,1,0,4499,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,244754.8893,9001,8807,0.0049,9001,,,,,,,,,,,,, +7536,"NAD83(2011) / WISCRS Chippewa (m)",9001,6318,7432,9801,1,0,4499,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,60045.72,9001,8807,44091.4346,9001,,,,,,,,,,,,, +7537,"NAD83(2011) / WISCRS Clark (m)",9001,6318,7434,9807,1,0,4499,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,199949.1989,9001,8807,0.0086,9001,,,,,,,,,,,,, +7538,"NAD83(2011) / WISCRS Columbia (m)",9001,6318,7488,9801,1,0,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,,,,,,,, +7539,"NAD83(2011) / WISCRS Crawford (m)",9001,6318,7490,9801,1,0,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,,,,,,,, +7540,"NAD83(2011) / WISCRS Dane (m)",9001,6318,7492,9801,1,0,4499,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,247193.2944,9001,8807,146591.9896,9001,,,,,,,,,,,,, +7541,"NAD83(2011) / WISCRS Dodge and Jefferson (m)",9001,6318,7494,9807,1,0,4499,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,263347.7263,9001,8807,0.0076,9001,,,,,,,,,,,,, +7542,"NAD83(2011) / WISCRS Door (m)",9001,6318,7436,9807,1,0,4499,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,158801.1176,9001,8807,0.0023,9001,,,,,,,,,,,,, +7543,"NAD83(2011) / WISCRS Douglas (m)",9001,6318,7384,9807,1,0,4499,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,59131.3183,9001,8807,0.0041,9001,,,,,,,,,,,,, +7544,"NAD83(2011) / WISCRS Dunn (m)",9001,6318,7438,9807,1,0,4499,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,51816.104,9001,8807,0.003,9001,,,,,,,,,,,,, +7545,"NAD83(2011) / WISCRS Eau Claire (m)",9001,6318,7440,9801,1,0,4499,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,120091.4402,9001,8807,91687.9239,9001,,,,,,,,,,,,, +7546,"NAD83(2011) / WISCRS Florence (m)",9001,6318,7386,9807,1,0,4499,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,133502.6683,9001,8807,0.0063,9001,,,,,,,,,,,,, +7547,"NAD83(2011) / WISCRS Forest (m)",9001,6318,7388,9807,1,0,4499,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,275844.5533,9001,8807,0.0157,9001,,,,,,,,,,,,, +7548,"NAD83(2011) / WISCRS Grant (m)",9001,6318,7496,9807,1,0,4499,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,242316.4841,9001,8807,0.01,9001,,,,,,,,,,,,, +7549,"NAD83(2011) / WISCRS Green and Lafayette (m)",9001,6318,7498,9801,1,0,4499,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,170078.7403,9001,8807,45830.2947,9001,,,,,,,,,,,,, +7550,"NAD83(2011) / WISCRS Green Lake and Marquette (m)",9001,6318,7500,9801,1,0,4499,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,150876.3018,9001,8807,79170.7795,9001,,,,,,,,,,,,, +7551,"NAD83(2011) / WISCRS Iowa (m)",9001,6318,7502,9807,1,0,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,,,,,,,, +7552,"NAD83(2011) / WISCRS Iron (m)",9001,6318,7390,9807,1,0,4499,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,220980.4419,9001,8807,0.0085,9001,,,,,,,,,,,,, +7553,"NAD83(2011) / WISCRS Jackson (m)",9001,6318,7450,9807,1,0,4499,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,27000,9001,8807,25000,9001,,,,,,,,,,,,, +7554,"NAD83(2011) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (m)",9001,6318,7504,9807,1,0,4499,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,185928.3728,9001,8807,0.0009,9001,,,,,,,,,,,,, +7555,"NAD83(2011) / WISCRS Kewaunee, Manitowoc and Sheboygan (m)",9001,6318,7506,9807,1,0,4499,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,79857.7614,9001,8807,0.0012,9001,,,,,,,,,,,,, +7556,"NAD83(2011) / WISCRS La Crosse (m)",9001,6318,7508,9807,1,0,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,,,,,,,, +7557,"NAD83(2011) / WISCRS Langlade (m)",9001,6318,7452,9801,1,0,4499,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,198425.197,9001,8807,105279.7829,9001,,,,,,,,,,,,, +7558,"NAD83(2011) / WISCRS Lincoln (m)",9001,6318,7454,9807,1,0,4499,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,116129.0323,9001,8807,0.0058,9001,,,,,,,,,,,,, +7559,"NAD83(2011) / WISCRS Marathon (m)",9001,6318,7456,9801,1,0,4499,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,74676.1493,9001,8807,55049.2669,9001,,,,,,,,,,,,, +7560,"NAD83(2011) / WISCRS Marinette (m)",9001,6318,7458,9807,1,0,4499,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,238658.8794,9001,8807,0.0032,9001,,,,,,,,,,,,, +7561,"NAD83(2011) / WISCRS Menominee (m)",9001,6318,7460,9807,1,0,4499,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,105461.0121,9001,8807,0.0029,9001,,,,,,,,,,,,, +7562,"NAD83(2011) / WISCRS Monroe (m)",9001,6318,7510,9801,1,0,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,,,,,,,, +7563,"NAD83(2011) / WISCRS Oconto (m)",9001,6318,7462,9807,1,0,4499,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,182880.3676,9001,8807,0.0033,9001,,,,,,,,,,,,, +7564,"NAD83(2011) / WISCRS Oneida (m)",9001,6318,7392,9801,1,0,4499,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,70104.1401,9001,8807,57588.0346,9001,,,,,,,,,,,,, +7565,"NAD83(2011) / WISCRS Pepin and Pierce (m)",9001,6318,7464,9801,1,0,4499,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,167640.3354,9001,8807,86033.0876,9001,,,,,,,,,,,,, +7566,"NAD83(2011) / WISCRS Polk (m)",9001,6318,7466,9807,1,0,4499,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,141732.2823,9001,8807,0.0059,9001,,,,,,,,,,,,, +7567,"NAD83(2011) / WISCRS Portage (m)",9001,6318,7468,9801,1,0,4499,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,56388.1128,9001,8807,50022.1874,9001,,,,,,,,,,,,, +7568,"NAD83(2011) / WISCRS Price (m)",9001,6318,7394,9807,1,0,4499,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,227990.8546,9001,8807,0.0109,9001,,,,,,,,,,,,, +7569,"NAD83(2011) / WISCRS Richland (m)",9001,6318,7512,9801,1,0,4499,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,202387.6048,9001,8807,134255.4253,9001,,,,,,,,,,,,, +7570,"NAD83(2011) / WISCRS Rock (m)",9001,6318,7514,9807,1,0,4499,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,146304.2926,9001,8807,0.0068,9001,,,,,,,,,,,,, +7571,"NAD83(2011) / WISCRS Rusk (m)",9001,6318,7470,9807,1,0,4499,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,250546.1013,9001,8807,0.0234,9001,,,,,,,,,,,,, +7572,"NAD83(2011) / WISCRS Sauk (m)",9001,6318,7516,9807,1,0,4499,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,185623.5716,9001,8807,0.0051,9001,,,,,,,,,,,,, +7573,"NAD83(2011) / WISCRS Sawyer (m)",9001,6318,7396,9801,1,0,4499,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,216713.2336,9001,8807,120734.1631,9001,,,,,,,,,,,,, +7574,"NAD83(2011) / WISCRS Shawano (m)",9001,6318,7472,9807,1,0,4499,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,262433.3253,9001,8807,0.0096,9001,,,,,,,,,,,,, +7575,"NAD83(2011) / WISCRS St. Croix (m)",9001,6318,7474,9807,1,0,4499,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,165506.7302,9001,8807,0.0103,9001,,,,,,,,,,,,, +7576,"NAD83(2011) / WISCRS Taylor (m)",9001,6318,7476,9801,1,0,4499,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,187147.5744,9001,8807,107746.7522,9001,,,,,,,,,,,,, +7577,"NAD83(2011) / WISCRS Trempealeau (m)",9001,6318,7478,9807,1,0,4499,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,256946.9138,9001,8807,0.0041,9001,,,,,,,,,,,,, +7578,"NAD83(2011) / WISCRS Vernon (m)",9001,6318,7518,9801,1,0,4499,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,222504.4451,9001,8807,47532.0602,9001,,,,,,,,,,,,, +7579,"NAD83(2011) / WISCRS Vilas (m)",9001,6318,7398,9801,1,0,4499,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,134417.0689,9001,8807,50337.1092,9001,,,,,,,,,,,,, +7580,"NAD83(2011) / WISCRS Walworth (m)",9001,6318,7520,9801,1,0,4499,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,232562.8651,9001,8807,111088.2224,9001,,,,,,,,,,,,, +7581,"NAD83(2011) / WISCRS Washburn (m)",9001,6318,7424,9801,1,0,4499,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,234086.8682,9001,8807,188358.6058,9001,,,,,,,,,,,,, +7582,"NAD83(2011) / WISCRS Washington (m)",9001,6318,7522,9807,1,0,4499,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,120091.4415,9001,8807,0.003,9001,,,,,,,,,,,,, +7583,"NAD83(2011) / WISCRS Waukesha (m)",9001,6318,7524,9807,1,0,4499,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,208788.418,9001,8807,0.0034,9001,,,,,,,,,,,,, +7584,"NAD83(2011) / WISCRS Waupaca (m)",9001,6318,7480,9807,1,0,4499,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,185013.9709,9001,8807,0.007,9001,,,,,,,,,,,,, +7585,"NAD83(2011) / WISCRS Waushara (m)",9001,6318,7526,9801,1,0,4499,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,120091.4402,9001,8807,45069.7587,9001,,,,,,,,,,,,, +7586,"NAD83(2011) / WISCRS Wood (m)",9001,6318,7482,9801,1,0,4499,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,208483.6173,9001,8807,134589.754,9001,,,,,,,,,,,,, +7587,"NAD83(2011) / WISCRS Adams and Juneau (ftUS)",9003,6318,7485,9807,1,0,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,,,,,,,, +7588,"NAD83(2011) / WISCRS Ashland (ftUS)",9003,6318,7379,9807,1,0,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,,,,,,,, +7589,"NAD83(2011) / WISCRS Barron (ftUS)",9003,6318,7427,9807,1,0,4497,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,305609.625,9003,8807,0.01,9003,,,,,,,,,,,,, +7590,"NAD83(2011) / WISCRS Bayfield (ftUS)",9003,6318,7381,9801,1,0,4497,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,750000.001,9003,8807,487372.659,9003,,,,,,,,,,,,, +7591,"NAD83(2011) / WISCRS Brown (ftUS)",9003,6318,7429,9807,1,0,4497,8801,43,9110,8802,-88,9110,8805,1.00002,9201,8806,103674.333,9003,8807,15091.833,9003,,,,,,,,,,,,, +7592,"NAD83(2011) / WISCRS Buffalo (ftUS)",9003,6318,7431,9807,1,0,4497,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,574999.999,9003,8807,0.016,9003,,,,,,,,,,,,, +7593,"NAD83(2011) / WISCRS Burnett (ftUS)",9003,6318,7383,9801,1,0,4497,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,209999.999,9003,8807,195032.104,9003,,,,,,,,,,,,, +7594,"NAD83(2011) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (ftUS)",9003,6318,7487,9807,1,0,4497,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,802999.999,9003,8807,0.016,9003,,,,,,,,,,,,, +7595,"NAD83(2011) / WISCRS Chippewa (ftUS)",9003,6318,7433,9801,1,0,4497,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,197000,9003,8807,144656.648,9003,,,,,,,,,,,,, +7596,"NAD83(2011) / WISCRS Clark (ftUS)",9003,6318,7435,9807,1,0,4497,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,655999.997,9003,8807,0.028,9003,,,,,,,,,,,,, +7597,"NAD83(2011) / WISCRS Columbia (ftUS)",9003,6318,7489,9801,1,0,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,,,,,,,, +7598,"NAD83(2011) / WISCRS Crawford (ftUS)",9003,6318,7491,9801,1,0,4497,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,373000,9003,8807,176190.987,9003,,,,,,,,,,,,, +7599,"NAD83(2011) / WISCRS Dane (ftUS)",9003,6318,7493,9801,1,0,4497,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,811000,9003,8807,480943.886,9003,,,,,,,,,,,,, +7600,"NAD83(2011) / WISCRS Dodge and Jefferson (ftUS)",9003,6318,7495,9807,1,0,4497,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,863999.999,9003,8807,0.025,9003,,,,,,,,,,,,, +7601,"NAD83(2011) / WISCRS Door (ftUS)",9003,6318,7437,9807,1,0,4497,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,521000,9003,8807,0.008,9003,,,,,,,,,,,,, +7602,"NAD83(2011) / WISCRS Douglas (ftUS)",9003,6318,7385,9807,1,0,4497,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,194000,9003,8807,0.013,9003,,,,,,,,,,,,, +7603,"NAD83(2011) / WISCRS Dunn (ftUS)",9003,6318,7439,9807,1,0,4497,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,170000.001,9003,8807,0.01,9003,,,,,,,,,,,,, +7604,"NAD83(2011) / WISCRS Eau Claire (ftUS)",9003,6318,7441,9801,1,0,4497,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,394000,9003,8807,300812.797,9003,,,,,,,,,,,,, +7605,"NAD83(2011) / WISCRS Florence (ftUS)",9003,6318,7387,9807,1,0,4497,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,438000.004,9003,8807,0.021,9003,,,,,,,,,,,,, +7606,"NAD83(2011) / WISCRS Forest (ftUS)",9003,6318,7389,9807,1,0,4497,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,905000.005,9003,8807,0.052,9003,,,,,,,,,,,,, +7607,"NAD83(2011) / WISCRS Grant (ftUS)",9003,6318,7497,9807,1,0,4497,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,794999.998,9003,8807,0.033,9003,,,,,,,,,,,,, +7608,"NAD83(2011) / WISCRS Green and Lafayette (ftUS)",9003,6318,7499,9801,1,0,4497,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,558000,9003,8807,150361.559,9003,,,,,,,,,,,,, +7609,"NAD83(2011) / WISCRS Green Lake and Marquette (ftUS)",9003,6318,7501,9801,1,0,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,,,,,,,, +7610,"NAD83(2011) / WISCRS Iowa (ftUS)",9003,6318,7503,9807,1,0,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,,,,,,,, +7611,"NAD83(2011) / WISCRS Iron (ftUS)",9003,6318,7391,9807,1,0,4497,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,725000,9003,8807,0.028,9003,,,,,,,,,,,,, +7612,"NAD83(2011) / WISCRS Jackson (ftUS)",9003,6318,7451,9807,1,0,4497,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,88582.5,9003,8807,82020.833,9003,,,,,,,,,,,,, +7613,"NAD83(2011) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (ftUS)",9003,6318,7505,9807,1,0,4497,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,610000.003,9003,8807,0.003,9003,,,,,,,,,,,,, +7614,"NAD83(2011) / WISCRS Kewaunee, Manitowoc and Sheboygan (ftUS)",9003,6318,7507,9807,1,0,4497,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,262000.006,9003,8807,0.004,9003,,,,,,,,,,,,, +7615,"NAD83(2011) / WISCRS La Crosse (ftUS)",9003,6318,7509,9807,1,0,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,,,,,,,, +7616,"NAD83(2011) / WISCRS Langlade (ftUS)",9003,6318,7453,9801,1,0,4497,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,651000,9003,8807,345405.421,9003,,,,,,,,,,,,, +7617,"NAD83(2011) / WISCRS Lincoln (ftUS)",9003,6318,7455,9807,1,0,4497,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,381000,9003,8807,0.019,9003,,,,,,,,,,,,, +7618,"NAD83(2011) / WISCRS Marathon (ftUS)",9003,6318,7457,9801,1,0,4497,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,245000,9003,8807,180607.47,9003,,,,,,,,,,,,, +7619,"NAD83(2011) / WISCRS Marinette (ftUS)",9003,6318,7459,9807,1,0,4497,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,783000.007,9003,8807,0.01,9003,,,,,,,,,,,,, +7620,"NAD83(2011) / WISCRS Menominee (ftUS)",9003,6318,7461,9807,1,0,4497,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,346000.004,9003,8807,0.01,9003,,,,,,,,,,,,, +7621,"NAD83(2011) / WISCRS Monroe (ftUS)",9003,6318,7511,9801,1,0,4497,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,671000,9003,8807,400012.278,9003,,,,,,,,,,,,, +7622,"NAD83(2011) / WISCRS Oconto (ftUS)",9003,6318,7463,9807,1,0,4497,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,600000.006,9003,8807,0.011,9003,,,,,,,,,,,,, +7623,"NAD83(2011) / WISCRS Oneida (ftUS)",9003,6318,7393,9801,1,0,4497,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,230000,9003,8807,188936.744,9003,,,,,,,,,,,,, +7624,"NAD83(2011) / WISCRS Pepin and Pierce (ftUS)",9003,6318,7465,9801,1,0,4497,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,550000,9003,8807,282260.222,9003,,,,,,,,,,,,, +7625,"NAD83(2011) / WISCRS Polk (ftUS)",9003,6318,7467,9807,1,0,4497,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,464999.996,9003,8807,0.019,9003,,,,,,,,,,,,, +7626,"NAD83(2011) / WISCRS Portage (ftUS)",9003,6318,7469,9801,1,0,4497,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,185000,9003,8807,164114.46,9003,,,,,,,,,,,,, +7627,"NAD83(2011) / WISCRS Price (ftUS)",9003,6318,7395,9807,1,0,4497,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,747999.995,9003,8807,0.036,9003,,,,,,,,,,,,, +7628,"NAD83(2011) / WISCRS Richland (ftUS)",9003,6318,7513,9801,1,0,4497,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,664000,9003,8807,440469.675,9003,,,,,,,,,,,,, +7629,"NAD83(2011) / WISCRS Rock (ftUS)",9003,6318,7515,9807,1,0,4497,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,480000,9003,8807,0.022,9003,,,,,,,,,,,,, +7630,"NAD83(2011) / WISCRS Rusk (ftUS)",9003,6318,7471,9807,1,0,4497,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,822000.001,9003,8807,0.077,9003,,,,,,,,,,,,, +7631,"NAD83(2011) / WISCRS Sauk (ftUS)",9003,6318,7517,9807,1,0,4497,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,609000.001,9003,8807,0.017,9003,,,,,,,,,,,,, +7632,"NAD83(2011) / WISCRS Sawyer (ftUS)",9003,6318,7397,9801,1,0,4497,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,711000.001,9003,8807,396108.667,9003,,,,,,,,,,,,, +7633,"NAD83(2011) / WISCRS Shawano (ftUS)",9003,6318,7473,9807,1,0,4497,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,861000.001,9003,8807,0.031,9003,,,,,,,,,,,,, +7634,"NAD83(2011) / WISCRS St. Croix (ftUS)",9003,6318,7475,9807,1,0,4497,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,542999.997,9003,8807,0.034,9003,,,,,,,,,,,,, +7635,"NAD83(2011) / WISCRS Taylor (ftUS)",9003,6318,7477,9801,1,0,4497,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,614000,9003,8807,353499.136,9003,,,,,,,,,,,,, +7636,"NAD83(2011) / WISCRS Trempealeau (ftUS)",9003,6318,7479,9807,1,0,4497,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,843000,9003,8807,0.013,9003,,,,,,,,,,,,, +7637,"NAD83(2011) / WISCRS Vernon (ftUS)",9003,6318,7519,9801,1,0,4497,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,730000,9003,8807,155944.768,9003,,,,,,,,,,,,, +7638,"NAD83(2011) / WISCRS Vilas (ftUS)",9003,6318,7399,9801,1,0,4497,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,441000,9003,8807,165147.666,9003,,,,,,,,,,,,, +7639,"NAD83(2011) / WISCRS Walworth (ftUS)",9003,6318,7521,9801,1,0,4497,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,763000,9003,8807,364461.943,9003,,,,,,,,,,,,, +7640,"NAD83(2011) / WISCRS Washburn (ftUS)",9003,6318,7425,9801,1,0,4497,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,768000,9003,8807,617973.193,9003,,,,,,,,,,,,, +7641,"NAD83(2011) / WISCRS Washington (ftUS)",9003,6318,7523,9807,1,0,4497,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,394000.004,9003,8807,0.01,9003,,,,,,,,,,,,, +7642,"NAD83(2011) / WISCRS Waukesha (ftUS)",9003,6318,7525,9807,1,0,4497,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,685000.001,9003,8807,0.011,9003,,,,,,,,,,,,, +7643,"NAD83(2011) / WISCRS Waupaca (ftUS)",9003,6318,7481,9807,1,0,4497,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,607000.003,9003,8807,0.023,9003,,,,,,,,,,,,, +7644,"NAD83(2011) / WISCRS Waushara (ftUS)",9003,6318,7527,9801,1,0,4497,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,394000,9003,8807,147866.367,9003,,,,,,,,,,,,, +7645,"NAD83(2011) / WISCRS Wood (ftUS)",9003,6318,7483,9801,1,0,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,,,,,,,, +7692,"Kyrg-06 / zone 1",9001,7686,7687,9807,1,0,4400,8801,0,9110,8802,68.31,9110,8805,1,9201,8806,1300000,9001,8807,14743.5,9001,,,,,,,,,,,,, +7693,"Kyrg-06 / zone 2",9001,7686,7688,9807,1,0,4400,8801,0,9110,8802,71.31,9110,8805,1,9201,8806,2300000,9001,8807,14743.5,9001,,,,,,,,,,,,, +7694,"Kyrg-06 / zone 3",9001,7686,7689,9807,1,0,4400,8801,0,9110,8802,74.31,9110,8805,1,9201,8806,3300000,9001,8807,14743.5,9001,,,,,,,,,,,,, +7695,"Kyrg-06 / zone 4",9001,7686,7690,9807,1,0,4400,8801,0,9110,8802,77.31,9110,8805,1,9201,8806,4300000,9001,8807,14743.5,9001,,,,,,,,,,,,, +7696,"Kyrg-06 / zone 5",9001,7686,7691,9807,1,0,4400,8801,0,9110,8802,80.31,9110,8805,1,9201,8806,5300000,9001,8807,14743.5,9001,,,,,,,,,,,,, +7755,"WGS 84 / India NSF LCC",9001,4326,7722,9802,1,0,4499,8821,24,9102,8822,80,9102,8823,12.2822638,9110,8824,35.1022096,9110,8826,4000000,9001,8827,4000000,9001,,,,,,,,,, +7756,"WGS 84 / Andhra Pradesh",9001,4326,7723,9802,1,0,4499,8821,16.25543298,9102,8822,80.875,9102,8823,13.75,9102,8824,18.75,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7757,"WGS 84 / Arunachal Pradesh",9001,4326,7724,9802,1,0,4499,8821,28.00157897,9102,8822,94.5,9102,8823,27,9102,8824,29,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7758,"WGS 84 / Assam",9001,4326,7725,9802,1,0,4499,8821,26.00257703,9102,8822,92.75,9102,8823,24.4,9110,8824,27.2,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7759,"WGS 84 / Bihar",9001,4326,7726,9802,1,0,4499,8821,25.87725247,9102,8822,85.875,9102,8823,24.625,9102,8824,27.125,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7760,"WGS 84 / Delhi",9001,4326,7727,9802,1,0,4499,8821,28.62510126,9102,8822,77,9102,8823,28.223,9110,8824,28.523,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7761,"WGS 84 / Gujarat",9001,4326,7728,9802,1,0,4499,8821,22.37807121,9102,8822,71.375,9102,8823,20.473,9110,8824,23.573,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7762,"WGS 84 / Haryana",9001,4326,7729,9802,1,0,4499,8821,29.25226266,9102,8822,76,9102,8823,28.05,9110,8824,30.25,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7763,"WGS 84 / Himachal Pradesh",9001,4326,7730,9802,1,0,4499,8821,31.75183497,9102,8822,77.375,9102,8823,30.75,9102,8824,32.75,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7764,"WGS 84 / Jammu and Kashmir",9001,4326,7731,9802,1,0,4499,8821,34.75570874,9102,8822,76.5,9102,8823,33.05,9110,8824,36.25,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7765,"WGS 84 / Jharkhand",9001,4326,7732,9802,1,0,4499,8821,23.62652682,9102,8822,85.625,9102,8823,22.323,9110,8824,24.423,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7766,"WGS 84 / Madhya Pradesh",9001,4326,7733,9802,1,0,4499,8821,24.00529821,9102,8822,78.375,9102,8823,22,9102,8824,26,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7767,"WGS 84 / Maharashtra",9001,4326,7734,9802,1,0,4499,8821,18.88015774,9102,8822,76.75,9102,8823,16.373,9110,8824,21.073,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7768,"WGS 84 / Manipur",9001,4326,7735,9802,1,0,4499,8821,24.75060911,9102,8822,94,9102,8823,24.05,9110,8824,25.25,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7769,"WGS 84 / Meghalaya",9001,4326,7736,9802,1,0,4499,8821,25.62524747,9102,8822,91.375,9102,8823,25.123,9110,8824,26.023,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7770,"WGS 84 / Nagaland",9001,4326,7737,9802,1,0,4499,8821,26.12581974,9102,8822,94.375,9102,8823,25.223,9110,8824,26.523,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7771,"WGS 84 / India Northeast",9001,4326,7738,9802,1,0,4499,8821,25.63452135,9102,8822,93.5,9102,8823,23.023,9110,8824,28.123,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7772,"WGS 84 / Orissa",9001,4326,7739,9802,1,0,4499,8821,20.25305174,9102,8822,84.375,9102,8823,18.35,9110,8824,21.55,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7773,"WGS 84 / Punjab",9001,4326,7740,9802,1,0,4499,8821,31.00178226,9102,8822,75.375,9102,8823,30,9102,8824,32,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7774,"WGS 84 / Rajasthan",9001,4326,7741,9802,1,0,4499,8821,26.88505546,9102,8822,73.875,9102,8823,24.173,9110,8824,29.273,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7775,"WGS 84 / Uttar Pradesh",9001,4326,7742,9802,1,0,4499,8821,27.13270823,9102,8822,80.875,9102,8823,24.523,9110,8824,29.223,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7776,"WGS 84 / Uttaranchal",9001,4326,7743,9802,1,0,4499,8821,30.0017132,9102,8822,79.375,9102,8823,29,9102,8824,31,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,, +7777,"WGS 84 / Andaman and Nicobar",9001,4326,7744,9807,1,0,4499,8801,10.25,9102,8802,93.25,9102,8805,0.9999428,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7778,"WGS 84 / Chhattisgarh",9001,4326,7745,9807,1,0,4499,8801,21,9102,8802,82.25,9102,8805,0.9998332,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7779,"WGS 84 / Goa",9001,4326,7746,9807,1,0,4499,8801,15.375,9102,8802,74,9102,8805,0.9999913,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7780,"WGS 84 / Karnataka",9001,4326,7747,9807,1,0,4499,8801,15.125,9102,8802,76.375,9102,8805,0.9998012,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7781,"WGS 84 / Kerala",9001,4326,7748,9807,1,0,4499,8801,10.5,9102,8802,76,9102,8805,0.9999177,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7782,"WGS 84 / Lakshadweep",9001,4326,7749,9807,1,0,4499,8801,10,9102,8802,73.125,9102,8805,0.9999536,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7783,"WGS 84 / Mizoram",9001,4326,7750,9807,1,0,4499,8801,23.125,9102,8802,92.75,9102,8805,0.9999821,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7784,"WGS 84 / Sikkim",9001,4326,7751,9807,1,0,4499,8801,27.625,9102,8802,88.5,9102,8805,0.9999926,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7785,"WGS 84 / Tamil Nadu",9001,4326,7752,9807,1,0,4499,8801,10.875,9102,8802,78.375,9102,8805,0.9997942,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7786,"WGS 84 / Tripura",9001,4326,7753,9807,1,0,4499,8801,23.75,9102,8802,91.75,9102,8805,0.9999822,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7787,"WGS 84 / West Bengal",9001,4326,7754,9807,1,0,4499,8801,24.375,9102,8802,87.875,9102,8805,0.9998584,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +7791,"RDN2008 / UTM zone 32N",9001,6706,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7792,"RDN2008 / UTM zone 33N",9001,6706,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7793,"RDN2008 / UTM zone 34N",9001,6706,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7794,"RDN2008 / Italy zone (E-N)",9001,6706,6877,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9985,9201,8806,7000000,9001,8807,0,9001,,,,,,,,,,,,, +7795,"RDN2008 / Zone 12 (E-N)",9001,6706,6878,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,3000000,9001,8807,0,9001,,,,,,,,,,,,, +7799,"BGS2005 / UTM zone 34N (N-E)",9001,7798,16034,9807,1,0,4531,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7800,"BGS2005 / UTM zone 35N (N-E)",9001,7798,16035,9807,1,0,4531,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7801,"BGS2005 / CCS2005",9001,7798,7802,9802,1,0,4531,8821,42.400435246,9110,8822,25.3,9110,8823,42,9110,8824,43.2,9110,8826,500000,9001,8827,4725824.3591,9001,,,,,,,,,, +7803,"BGS2005 / UTM zone 34N",9001,7798,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7804,"BGS2005 / UTM zone 35N",9001,7798,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7805,"BGS2005 / UTM zone 36N",9001,7798,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +7825,"Pulkovo 1942 / CS63 zone X1",9001,4284,7818,9807,1,0,4530,8801,0.05,9110,8802,23.3,9110,8805,1,9201,8806,1300000,9001,8807,0,9001,,,,,,,,,,,,, +7826,"Pulkovo 1942 / CS63 zone X2",9001,4284,7819,9807,1,0,4530,8801,0.05,9110,8802,26.3,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,,,,,,,,, +7827,"Pulkovo 1942 / CS63 zone X3",9001,4284,7820,9807,1,0,4530,8801,0.05,9110,8802,29.3,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,,,,,,,,, +7828,"Pulkovo 1942 / CS63 zone X4",9001,4284,7821,9807,1,0,4530,8801,0.05,9110,8802,32.3,9110,8805,1,9201,8806,4300000,9001,8807,0,9001,,,,,,,,,,,,, +7829,"Pulkovo 1942 / CS63 zone X5",9001,4284,7822,9807,1,0,4530,8801,0.05,9110,8802,35.3,9110,8805,1,9201,8806,5300000,9001,8807,0,9001,,,,,,,,,,,,, +7830,"Pulkovo 1942 / CS63 zone X6",9001,4284,7823,9807,1,0,4530,8801,0.05,9110,8802,38.3,9110,8805,1,9201,8806,6300000,9001,8807,0,9001,,,,,,,,,,,,, +7831,"Pulkovo 1942 / CS63 zone X7",9001,4284,7824,9807,1,0,4530,8801,0.05,9110,8802,41.3,9110,8805,1,9201,8806,7300000,9001,8807,0,9001,,,,,,,,,,,,, +7845,"GDA2020 / GA LCC",9001,7844,17362,9802,1,0,4400,8821,0,9102,8822,134,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,, +7846,"GDA2020 / MGA zone 46",9001,7844,6729,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7847,"GDA2020 / MGA zone 47",9001,7844,6730,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7848,"GDA2020 / MGA zone 48",9001,7844,17348,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7849,"GDA2020 / MGA zone 49",9001,7844,17349,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7850,"GDA2020 / MGA zone 50",9001,7844,17350,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7851,"GDA2020 / MGA zone 51",9001,7844,17351,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7852,"GDA2020 / MGA zone 52",9001,7844,17352,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7853,"GDA2020 / MGA zone 53",9001,7844,17353,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7854,"GDA2020 / MGA zone 54",9001,7844,17354,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7855,"GDA2020 / MGA zone 55",9001,7844,17355,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7856,"GDA2020 / MGA zone 56",9001,7844,17356,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7857,"GDA2020 / MGA zone 57",9001,7844,17357,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7858,"GDA2020 / MGA zone 58",9001,7844,17358,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7859,"GDA2020 / MGA zone 59",9001,7844,6731,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7877,"Astro DOS 71 / SHLG71",9001,4710,7875,9807,1,0,4400,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,300000,9001,8807,2000000,9001,,,,,,,,,,,,, +7878,"Astro DOS 71 / UTM zone 30S",9001,4710,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7882,"St. Helena Tritan / SHLG(Tritan)",9001,7881,7876,9807,1,0,4400,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,299483.737,9001,8807,2000527.879,9001,,,,,,,,,,,,, +7883,"St. Helena Tritan / UTM zone 30S",9001,7881,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7887,SHMG2015,9001,7886,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +7899,"GDA2020 / Vicgrid",9001,7844,17361,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,2500000,9001,,,,,,,,,, +7991,"NAD27 / MTM zone 10",9001,4267,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +7992,"Malongo 1987 / UTM zone 33S",9001,4259,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +8013,"GDA2020 / ALB2020",9001,7844,7993,9807,1,0,4400,8801,0,9110,8802,117.53,9110,8805,1.0000044,9201,8806,50000,9001,8807,4100000,9001,,,,,,,,,,,,, +8014,"GDA2020 / BIO2020",9001,7844,7994,9807,1,0,4400,8801,0,9110,8802,115.15,9110,8805,1.0000022,9201,8806,60000,9001,8807,2700000,9001,,,,,,,,,,,,, +8015,"GDA2020 / BRO2020",9001,7844,7995,9807,1,0,4400,8801,0,9110,8802,122.2,9110,8805,1.00000298,9201,8806,50000,9001,8807,2300000,9001,,,,,,,,,,,,, +8016,"GDA2020 / BCG2020",9001,7844,7996,9807,1,0,4400,8801,0,9110,8802,115.26,9110,8805,0.99999592,9201,8806,50000,9001,8807,4000000,9001,,,,,,,,,,,,, +8017,"GDA2020 / CARN2020",9001,7844,7997,9807,1,0,4400,8801,0,9110,8802,113.4,9110,8805,0.99999796,9201,8806,50000,9001,8807,3050000,9001,,,,,,,,,,,,, +8018,"GDA2020 / CIG2020",9001,7844,7998,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.00002514,9201,8806,50000,9001,8807,1400000,9001,,,,,,,,,,,,, +8019,"GDA2020 / CKIG2020",9001,7844,7999,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,0.99999387,9201,8806,50000,9001,8807,1600000,9001,,,,,,,,,,,,, +8020,"GDA2020 / COL2020",9001,7844,8000,9807,1,0,4400,8801,0,9110,8802,115.56,9110,8805,1.000019,9201,8806,40000,9001,8807,4100000,9001,,,,,,,,,,,,, +8021,"GDA2020 / ESP2020",9001,7844,8001,9807,1,0,4400,8801,0,9110,8802,121.53,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,,,,,,,,, +8022,"GDA2020 / EXM2020",9001,7844,8002,9807,1,0,4400,8801,0,9110,8802,114.04,9110,8805,1.00000236,9201,8806,50000,9001,8807,2750000,9001,,,,,,,,,,,,, +8023,"GDA2020 / GCG2020",9001,7844,8003,9807,1,0,4400,8801,0,9110,8802,114.35,9110,8805,1.00000628,9201,8806,50000,9001,8807,3450000,9001,,,,,,,,,,,,, +8024,"GDA2020 / GOLD2020",9001,7844,8004,9807,1,0,4400,8801,0,9110,8802,121.3,9110,8805,1.00004949,9201,8806,60000,9001,8807,3800000,9001,,,,,,,,,,,,, +8025,"GDA2020 / JCG2020",9001,7844,8005,9807,1,0,4400,8801,0,9110,8802,114.59,9110,8805,1.00000314,9201,8806,50000,9001,8807,3650000,9001,,,,,,,,,,,,, +8026,"GDA2020 / KALB2020",9001,7844,8006,9807,1,0,4400,8801,0,9110,8802,114.1855,9110,8805,1.000014,9201,8806,55000,9001,8807,3700000,9001,,,,,,,,,,,,, +8027,"GDA2020 / KAR2020",9001,7844,8007,9807,1,0,4400,8801,0,9110,8802,116.56,9110,8805,0.9999989,9201,8806,50000,9001,8807,2550000,9001,,,,,,,,,,,,, +8028,"GDA2020 / KUN2020",9001,7844,8008,9807,1,0,4400,8801,0,9110,8802,128.45,9110,8805,1.0000165,9201,8806,50000,9001,8807,2100000,9001,,,,,,,,,,,,, +8029,"GDA2020 / LCG2020",9001,7844,8009,9807,1,0,4400,8801,0,9110,8802,115.22,9110,8805,1.00000157,9201,8806,50000,9001,8807,3750000,9001,,,,,,,,,,,,, +8030,"GDA2020 / MRCG2020",9001,7844,8010,9807,1,0,4400,8801,0,9110,8802,115.1,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,,,,,,,,, +8031,"GDA2020 / PCG2020",9001,7844,8011,9807,1,0,4400,8801,0,9110,8802,115.49,9110,8805,0.99999906,9201,8806,50000,9001,8807,3900000,9001,,,,,,,,,,,,, +8032,"GDA2020 / PHG2020",9001,7844,8012,9807,1,0,4400,8801,0,9110,8802,118.36,9110,8805,1.00000135,9201,8806,50000,9001,8807,2500000,9001,,,,,,,,,,,,, +8035,"WGS 84 / TM Zone 20N (ftUS)",9003,4326,8033,9807,1,0,4497,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +8036,"WGS 84 / TM Zone 21N (ftUS)",9003,4326,8034,9807,1,0,4497,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +8044,"Gusterberg Grid (Ferro)",9001,8042,8040,9806,1,0,6501,8801,48.021847,9110,8802,31.481505,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +8045,"St. Stephen Grid (Ferro)",9001,8043,8041,9806,1,0,6501,8801,48.123154,9110,8802,34.022732,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +8058,"GDA2020 / NSW Lambert",9001,7844,17364,9802,1,0,4400,8821,-33.25,9102,8822,147,9102,8823,-30.75,9102,8824,-35.75,9102,8826,9300000,9001,8827,4500000,9001,,,,,,,,,, +8059,"GDA2020 / SA Lambert",9001,7844,17359,9802,1,0,4400,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,,,,,,,,, +8065,"NAD83(2011) / PCCS zone 1 (ft)",9002,6318,8061,9815,1,0,4495,8811,32.15,9110,8812,-111.24,9110,8813,45,9102,8814,45,9102,8815,1.00011,9201,8816,160000,9002,8817,800000,9002,,,,,,, +8066,"NAD83(2011) / PCCS zone 2 (ft)",9002,6318,8062,9807,1,0,4495,8801,31.15,9110,8802,-112.1,9110,8805,1.00009,9201,8806,1800000,9002,8807,1000000,9002,,,,,,,,,,,,, +8067,"NAD83(2011) / PCCS zone 3 (ft)",9002,6318,8063,9807,1,0,4495,8801,31.3,9110,8802,-113.1,9110,8805,1.000055,9201,8806,600000,9002,8807,0,9002,,,,,,,,,,,,, +8068,"NAD83(2011) / PCCS zone 4 (ft)",9002,6318,8064,9801,1,0,4495,8801,30.3,9110,8802,-110.45,9110,8805,0.9998,9201,8806,30000,9002,8807,-620000,9002,,,,,,,,,,,,, +8082,"NAD83(CSRS)v6 / MTM Nova Scotia zone 4",9001,8252,8080,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +8083,"NAD83(CSRS)v6 / MTM Nova Scotia zone 5",9001,8252,8081,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +8088,"ISN2016 / Lambert 2016",9001,8086,8087,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,2700000,9001,8827,300000,9001,,,,,,,,,, +8090,"NAD83(HARN) / WISCRS Florence (m)",9001,4152,7386,9807,1,0,4499,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,133502.6683,9001,8807,0.0063,9001,,,,,,,,,,,,, +8091,"NAD83(HARN) / WISCRS Florence (ftUS)",9003,4152,7387,9807,1,0,4497,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,438000.004,9003,8807,0.021,9003,,,,,,,,,,,,, +8092,"NAD83(HARN) / WISCRS Eau Claire (m)",9001,4152,7440,9801,1,0,4499,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,120091.4402,9001,8807,91687.9239,9001,,,,,,,,,,,,, +8093,"NAD83(HARN) / WISCRS Eau Claire (ftUS)",9003,4152,7441,9801,1,0,4497,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,394000,9003,8807,300812.797,9003,,,,,,,,,,,,, +8095,"NAD83(HARN) / WISCRS Wood (m)",9001,4152,7482,9801,1,0,4499,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,208483.6173,9001,8807,134589.754,9001,,,,,,,,,,,,, +8096,"NAD83(HARN) / WISCRS Wood (ftUS)",9003,4152,7483,9801,1,0,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,,,,,,,, +8097,"NAD83(HARN) / WISCRS Waushara (m)",9001,4152,7526,9801,1,0,4499,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,120091.4402,9001,8807,45069.7587,9001,,,,,,,,,,,,, +8098,"NAD83(HARN) / WISCRS Waushara (ftUS)",9003,4152,7527,9801,1,0,4497,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,394000,9003,8807,147866.367,9003,,,,,,,,,,,,, +8099,"NAD83(HARN) / WISCRS Waupaca (m)",9001,4152,7480,9807,1,0,4499,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,185013.9709,9001,8807,0.007,9001,,,,,,,,,,,,, +8100,"NAD83(HARN) / WISCRS Waupaca (ftUS)",9003,4152,7481,9807,1,0,4497,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,607000.003,9003,8807,0.023,9003,,,,,,,,,,,,, +8101,"NAD83(HARN) / WISCRS Waukesha (m)",9001,4152,7524,9807,1,0,4499,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,208788.418,9001,8807,0.0034,9001,,,,,,,,,,,,, +8102,"NAD83(HARN) / WISCRS Waukesha (ftUS)",9003,4152,7525,9807,1,0,4497,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,685000.001,9003,8807,0.011,9003,,,,,,,,,,,,, +8103,"NAD83(HARN) / WISCRS Washington (m)",9001,4152,7522,9807,1,0,4499,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,120091.4415,9001,8807,0.003,9001,,,,,,,,,,,,, +8104,"NAD83(HARN) / WISCRS Washington (ftUS)",9003,4152,7523,9807,1,0,4497,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,394000.004,9003,8807,0.01,9003,,,,,,,,,,,,, +8105,"NAD83(HARN) / WISCRS Washburn (m)",9001,4152,7424,9801,1,0,4499,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,234086.8682,9001,8807,188358.6058,9001,,,,,,,,,,,,, +8106,"NAD83(HARN) / WISCRS Washburn (ftUS)",9003,4152,7425,9801,1,0,4497,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,768000,9003,8807,617973.193,9003,,,,,,,,,,,,, +8107,"NAD83(HARN) / WISCRS Walworth (m)",9001,4152,7520,9801,1,0,4499,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,232562.8651,9001,8807,111088.2224,9001,,,,,,,,,,,,, +8108,"NAD83(HARN) / WISCRS Walworth (ftUS)",9003,4152,7521,9801,1,0,4497,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,763000,9003,8807,364461.943,9003,,,,,,,,,,,,, +8109,"NAD83(HARN) / WISCRS Vilas (m)",9001,4152,7398,9801,1,0,4499,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,134417.0689,9001,8807,50337.1092,9001,,,,,,,,,,,,, +8110,"NAD83(HARN) / WISCRS Vilas (ftUS)",9003,4152,7399,9801,1,0,4497,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,441000,9003,8807,165147.666,9003,,,,,,,,,,,,, +8111,"NAD83(HARN) / WISCRS Vernon (m)",9001,4152,7518,9801,1,0,4499,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,222504.4451,9001,8807,47532.0602,9001,,,,,,,,,,,,, +8112,"NAD83(HARN) / WISCRS Vernon (ftUS)",9003,4152,7519,9801,1,0,4497,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,730000,9003,8807,155944.768,9003,,,,,,,,,,,,, +8113,"NAD83(HARN) / WISCRS Trempealeau (m)",9001,4152,7478,9807,1,0,4499,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,256946.9138,9001,8807,0.0041,9001,,,,,,,,,,,,, +8114,"NAD83(HARN) / WISCRS Trempealeau (ftUS)",9003,4152,7479,9807,1,0,4497,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,843000,9003,8807,0.013,9003,,,,,,,,,,,,, +8115,"NAD83(HARN) / WISCRS Taylor (m)",9001,4152,7476,9801,1,0,4499,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,187147.5744,9001,8807,107746.7522,9001,,,,,,,,,,,,, +8116,"NAD83(HARN) / WISCRS Taylor (ftUS)",9003,4152,7477,9801,1,0,4497,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,614000,9003,8807,353499.136,9003,,,,,,,,,,,,, +8117,"NAD83(HARN) / WISCRS St. Croix (m)",9001,4152,7474,9807,1,0,4499,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,165506.7302,9001,8807,0.0103,9001,,,,,,,,,,,,, +8118,"NAD83(HARN) / WISCRS St. Croix (ftUS)",9003,4152,7475,9807,1,0,4497,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,542999.997,9003,8807,0.034,9003,,,,,,,,,,,,, +8119,"NAD83(HARN) / WISCRS Shawano (m)",9001,4152,7472,9807,1,0,4499,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,262433.3253,9001,8807,0.0096,9001,,,,,,,,,,,,, +8120,"NAD83(HARN) / WISCRS Shawano (ftUS)",9003,4152,7473,9807,1,0,4497,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,861000.001,9003,8807,0.031,9003,,,,,,,,,,,,, +8121,"NAD83(HARN) / WISCRS Sawyer (m)",9001,4152,7396,9801,1,0,4499,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,216713.2336,9001,8807,120734.1631,9001,,,,,,,,,,,,, +8122,"NAD83(HARN) / WISCRS Sawyer (ftUS)",9003,4152,7397,9801,1,0,4497,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,711000.001,9003,8807,396108.667,9003,,,,,,,,,,,,, +8123,"NAD83(HARN) / WISCRS Sauk (m)",9001,4152,7516,9807,1,0,4499,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,185623.5716,9001,8807,0.0051,9001,,,,,,,,,,,,, +8124,"NAD83(HARN) / WISCRS Sauk (ftUS)",9003,4152,7517,9807,1,0,4497,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,609000.001,9003,8807,0.017,9003,,,,,,,,,,,,, +8125,"NAD83(HARN) / WISCRS Rusk (m)",9001,4152,7470,9807,1,0,4499,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,250546.1013,9001,8807,0.0234,9001,,,,,,,,,,,,, +8126,"NAD83(HARN) / WISCRS Rusk (ftUS)",9003,4152,7471,9807,1,0,4497,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,822000.001,9003,8807,0.077,9003,,,,,,,,,,,,, +8127,"NAD83(HARN) / WISCRS Rock (m)",9001,4152,7514,9807,1,0,4499,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,146304.2926,9001,8807,0.0068,9001,,,,,,,,,,,,, +8128,"NAD83(HARN) / WISCRS Rock (ftUS)",9003,4152,7515,9807,1,0,4497,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,480000,9003,8807,0.022,9003,,,,,,,,,,,,, +8129,"NAD83(HARN) / WISCRS Richland (m)",9001,4152,7512,9801,1,0,4499,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,202387.6048,9001,8807,134255.4253,9001,,,,,,,,,,,,, +8130,"NAD83(HARN) / WISCRS Richland (ftUS)",9003,4152,7513,9801,1,0,4497,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,664000,9003,8807,440469.675,9003,,,,,,,,,,,,, +8131,"NAD83(HARN) / WISCRS Price (m)",9001,4152,7394,9807,1,0,4499,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,227990.8546,9001,8807,0.0109,9001,,,,,,,,,,,,, +8132,"NAD83(HARN) / WISCRS Price (ftUS)",9003,4152,7395,9807,1,0,4497,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,747999.995,9003,8807,0.036,9003,,,,,,,,,,,,, +8133,"NAD83(HARN) / WISCRS Portage (m)",9001,4152,7468,9801,1,0,4499,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,56388.1128,9001,8807,50022.1874,9001,,,,,,,,,,,,, +8134,"NAD83(HARN) / WISCRS Portage (ftUS)",9003,4152,7469,9801,1,0,4497,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,185000,9003,8807,164114.46,9003,,,,,,,,,,,,, +8135,"NAD83(HARN) / WISCRS Polk (m)",9001,4152,7466,9807,1,0,4499,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,141732.2823,9001,8807,0.0059,9001,,,,,,,,,,,,, +8136,"NAD83(HARN) / WISCRS Polk (ftUS)",9003,4152,7467,9807,1,0,4497,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,464999.996,9003,8807,0.019,9003,,,,,,,,,,,,, +8137,"NAD83(HARN) / WISCRS Pepin and Pierce (m)",9001,4152,7464,9801,1,0,4499,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,167640.3354,9001,8807,86033.0876,9001,,,,,,,,,,,,, +8138,"NAD83(HARN) / WISCRS Pepin and Pierce (ftUS)",9003,4152,7465,9801,1,0,4497,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,550000,9003,8807,282260.222,9003,,,,,,,,,,,,, +8139,"NAD83(HARN) / WISCRS Oneida (m)",9001,4152,7392,9801,1,0,4499,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,70104.1401,9001,8807,57588.0346,9001,,,,,,,,,,,,, +8140,"NAD83(HARN) / WISCRS Oneida (ftUS)",9003,4152,7393,9801,1,0,4497,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,230000,9003,8807,188936.744,9003,,,,,,,,,,,,, +8141,"NAD83(HARN) / WISCRS Oconto (m)",9001,4152,7462,9807,1,0,4499,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,182880.3676,9001,8807,0.0033,9001,,,,,,,,,,,,, +8142,"NAD83(HARN) / WISCRS Oconto (ftUS)",9003,4152,7463,9807,1,0,4497,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,600000.006,9003,8807,0.011,9003,,,,,,,,,,,,, +8143,"NAD83(HARN) / WISCRS Monroe (m)",9001,4152,7510,9801,1,0,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,,,,,,,, +8144,"NAD83(HARN) / WISCRS Monroe (ftUS)",9003,4152,7511,9801,1,0,4497,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,671000,9003,8807,400012.278,9003,,,,,,,,,,,,, +8145,"NAD83(HARN) / WISCRS Menominee (m)",9001,4152,7460,9807,1,0,4499,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,105461.0121,9001,8807,0.0029,9001,,,,,,,,,,,,, +8146,"NAD83(HARN) / WISCRS Menominee (ftUS)",9003,4152,7461,9807,1,0,4497,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,346000.004,9003,8807,0.01,9003,,,,,,,,,,,,, +8147,"NAD83(HARN) / WISCRS Marinette (m)",9001,4152,7458,9807,1,0,4499,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,238658.8794,9001,8807,0.0032,9001,,,,,,,,,,,,, +8148,"NAD83(HARN) / WISCRS Marinette (ftUS)",9003,4152,7459,9807,1,0,4497,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,783000.007,9003,8807,0.01,9003,,,,,,,,,,,,, +8149,"NAD83(HARN) / WISCRS Marathon (m)",9001,4152,7456,9801,1,0,4499,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,74676.1493,9001,8807,55049.2669,9001,,,,,,,,,,,,, +8150,"NAD83(HARN) / WISCRS Marathon (ftUS)",9003,4152,7457,9801,1,0,4497,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,245000,9003,8807,180607.47,9003,,,,,,,,,,,,, +8151,"NAD83(HARN) / WISCRS Lincoln (m)",9001,4152,7454,9807,1,0,4499,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,116129.0323,9001,8807,0.0058,9001,,,,,,,,,,,,, +8152,"NAD83(HARN) / WISCRS Lincoln (ftUS)",9003,4152,7455,9807,1,0,4497,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,381000,9003,8807,0.019,9003,,,,,,,,,,,,, +8153,"NAD83(HARN) / WISCRS Langlade (m)",9001,4152,7452,9801,1,0,4499,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,198425.197,9001,8807,105279.7829,9001,,,,,,,,,,,,, +8154,"NAD83(HARN) / WISCRS Langlade (ftUS)",9003,4152,7453,9801,1,0,4497,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,651000,9003,8807,345405.421,9003,,,,,,,,,,,,, +8155,"NAD83(HARN) / WISCRS La Crosse (m)",9001,4152,7508,9807,1,0,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,,,,,,,, +8156,"NAD83(HARN) / WISCRS La Crosse (ftUS)",9003,4152,7509,9807,1,0,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,,,,,,,, +8157,"NAD83(HARN) / WISCRS Kewaunee, Manitowoc and Sheboygan (m)",9001,4152,7506,9807,1,0,4499,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,79857.7614,9001,8807,0.0012,9001,,,,,,,,,,,,, +8158,"NAD83(HARN) / WISCRS Kewaunee, Manitowoc and Sheboygan (ftUS)",9003,4152,7507,9807,1,0,4497,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,262000.006,9003,8807,0.004,9003,,,,,,,,,,,,, +8159,"NAD83(HARN) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (m)",9001,4152,7504,9807,1,0,4499,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,185928.3728,9001,8807,0.0009,9001,,,,,,,,,,,,, +8160,"NAD83(HARN) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (ftUS)",9003,4152,7505,9807,1,0,4497,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,610000.003,9003,8807,0.003,9003,,,,,,,,,,,,, +8161,"NAD83(HARN) / WISCRS Jackson (m)",9001,4152,7450,9807,1,0,4499,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,27000,9001,8807,25000,9001,,,,,,,,,,,,, +8162,"NAD83(HARN) / WISCRS Jackson (ftUS)",9003,4152,7451,9807,1,0,4497,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,88582.5,9003,8807,82020.833,9003,,,,,,,,,,,,, +8163,"NAD83(HARN) / WISCRS Iron (m)",9001,4152,7390,9807,1,0,4499,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,220980.4419,9001,8807,0.0085,9001,,,,,,,,,,,,, +8164,"NAD83(HARN) / WISCRS Iron (ftUS)",9003,4152,7391,9807,1,0,4497,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,725000,9003,8807,0.028,9003,,,,,,,,,,,,, +8165,"NAD83(HARN) / WISCRS Iowa (m)",9001,4152,7502,9807,1,0,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,,,,,,,, +8166,"NAD83(HARN) / WISCRS Iowa (ftUS)",9003,4152,7503,9807,1,0,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,,,,,,,, +8167,"NAD83(HARN) / WISCRS Green Lake and Marquette (m)",9001,4152,7500,9801,1,0,4499,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,150876.3018,9001,8807,79170.7795,9001,,,,,,,,,,,,, +8168,"NAD83(HARN) / WISCRS Green Lake and Marquette (ftUS)",9003,4152,7501,9801,1,0,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,,,,,,,, +8169,"NAD83(HARN) / WISCRS Green and Lafayette (m)",9001,4152,7498,9801,1,0,4499,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,170078.7403,9001,8807,45830.2947,9001,,,,,,,,,,,,, +8170,"NAD83(HARN) / WISCRS Green and Lafayette (ftUS)",9003,4152,7499,9801,1,0,4497,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,558000,9003,8807,150361.559,9003,,,,,,,,,,,,, +8171,"NAD83(HARN) / WISCRS Grant (m)",9001,4152,7496,9807,1,0,4499,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,242316.4841,9001,8807,0.01,9001,,,,,,,,,,,,, +8172,"NAD83(HARN) / WISCRS Grant (ftUS)",9003,4152,7497,9807,1,0,4497,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,794999.998,9003,8807,0.033,9003,,,,,,,,,,,,, +8173,"NAD83(HARN) / WISCRS Forest (m)",9001,4152,7388,9807,1,0,4499,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,275844.5533,9001,8807,0.0157,9001,,,,,,,,,,,,, +8177,"NAD83(HARN) / WISCRS Forest (ftUS)",9003,4152,7389,9807,1,0,4497,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,905000.005,9003,8807,0.052,9003,,,,,,,,,,,,, +8179,"NAD83(HARN) / WISCRS Dunn (m)",9001,4152,7438,9807,1,0,4499,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,51816.104,9001,8807,0.003,9001,,,,,,,,,,,,, +8180,"NAD83(HARN) / WISCRS Dunn (ftUS)",9003,4152,7439,9807,1,0,4497,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,170000.001,9003,8807,0.01,9003,,,,,,,,,,,,, +8181,"NAD83(HARN) / WISCRS Douglas (m)",9001,4152,7384,9807,1,0,4499,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,59131.3183,9001,8807,0.0041,9001,,,,,,,,,,,,, +8182,"NAD83(HARN) / WISCRS Douglas (ftUS)",9003,4152,7385,9807,1,0,4497,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,194000,9003,8807,0.013,9003,,,,,,,,,,,,, +8184,"NAD83(HARN) / WISCRS Door (m)",9001,4152,7436,9807,1,0,4499,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,158801.1176,9001,8807,0.0023,9001,,,,,,,,,,,,, +8185,"NAD83(HARN) / WISCRS Door (ftUS)",9003,4152,7437,9807,1,0,4497,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,521000,9003,8807,0.008,9003,,,,,,,,,,,,, +8187,"NAD83(HARN) / WISCRS Dodge and Jefferson (m)",9001,4152,7494,9807,1,0,4499,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,263347.7263,9001,8807,0.0076,9001,,,,,,,,,,,,, +8189,"NAD83(HARN) / WISCRS Dodge and Jefferson (ftUS)",9003,4152,7495,9807,1,0,4497,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,863999.999,9003,8807,0.025,9003,,,,,,,,,,,,, +8191,"NAD83(HARN) / WISCRS Dane (m)",9001,4152,7492,9801,1,0,4499,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,247193.2944,9001,8807,146591.9896,9001,,,,,,,,,,,,, +8193,"NAD83(HARN) / WISCRS Dane (ftUS)",9003,4152,7493,9801,1,0,4497,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,811000,9003,8807,480943.886,9003,,,,,,,,,,,,, +8196,"NAD83(HARN) / WISCRS Crawford (m)",9001,4152,7490,9801,1,0,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,,,,,,,, +8197,"NAD83(HARN) / WISCRS Crawford (ftUS)",9003,4152,7491,9801,1,0,4497,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,373000,9003,8807,176190.987,9003,,,,,,,,,,,,, +8198,"NAD83(HARN) / WISCRS Columbia (m)",9001,4152,7488,9801,1,0,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,,,,,,,, +8200,"NAD83(HARN) / WISCRS Columbia (ftUS)",9003,4152,7489,9801,1,0,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,,,,,,,, +8201,"NAD83(HARN) / WISCRS Clark (m)",9001,4152,7434,9807,1,0,4499,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,199949.1989,9001,8807,0.0086,9001,,,,,,,,,,,,, +8202,"NAD83(HARN) / WISCRS Clark (ftUS)",9003,4152,7435,9807,1,0,4497,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,655999.997,9003,8807,0.028,9003,,,,,,,,,,,,, +8203,"NAD83(HARN) / WISCRS Chippewa (m)",9001,4152,7432,9801,1,0,4499,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,60045.72,9001,8807,44091.4346,9001,,,,,,,,,,,,, +8204,"NAD83(HARN) / WISCRS Chippewa (ftUS)",9003,4152,7433,9801,1,0,4497,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,197000,9003,8807,144656.648,9003,,,,,,,,,,,,, +8205,"NAD83(HARN) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (m)",9001,4152,7486,9807,1,0,4499,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,244754.8893,9001,8807,0.0049,9001,,,,,,,,,,,,, +8206,"NAD83(HARN) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (ftUS)",9003,4152,7487,9807,1,0,4497,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,802999.999,9003,8807,0.016,9003,,,,,,,,,,,,, +8207,"NAD83(HARN) / WISCRS Burnett (m)",9001,4152,7382,9801,1,0,4499,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,64008.1276,9001,8807,59445.9043,9001,,,,,,,,,,,,, +8208,"NAD83(HARN) / WISCRS Burnett (ftUS)",9003,4152,7383,9801,1,0,4497,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,209999.999,9003,8807,195032.104,9003,,,,,,,,,,,,, +8209,"NAD83(HARN) / WISCRS Buffalo (m)",9001,4152,7430,9807,1,0,4499,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,175260.3502,9001,8807,0.0048,9001,,,,,,,,,,,,, +8210,"NAD83(HARN) / WISCRS Buffalo (ftUS)",9003,4152,7431,9807,1,0,4497,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,574999.999,9003,8807,0.016,9003,,,,,,,,,,,,, +8212,"NAD83(HARN) / WISCRS Brown (m)",9001,4152,7428,9807,1,0,4499,8801,43,9102,8802,-88,9102,8805,1.00002,9201,8806,31600,9001,8807,4600,9001,,,,,,,,,,,,, +8213,"NAD83(HARN) / WISCRS Brown (ftUS)",9003,4152,7429,9807,1,0,4497,8801,43,9110,8802,-88,9110,8805,1.00002,9201,8806,103674.333,9003,8807,15091.833,9003,,,,,,,,,,,,, +8214,"NAD83(HARN) / WISCRS Bayfield (m)",9001,4152,7380,9801,1,0,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,,,,,,,, +8216,"NAD83(HARN) / WISCRS Bayfield (ftUS)",9003,4152,7381,9801,1,0,4497,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,750000.001,9003,8807,487372.659,9003,,,,,,,,,,,,, +8218,"NAD83(HARN) / WISCRS Barron (m)",9001,4152,7426,9807,1,0,4499,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,93150,9001,8807,0.0029,9001,,,,,,,,,,,,, +8220,"NAD83(HARN) / WISCRS Barron (ftUS)",9003,4152,7427,9807,1,0,4497,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,305609.625,9003,8807,0.01,9003,,,,,,,,,,,,, +8222,"NAD83(HARN) / WISCRS Ashland (m)",9001,4152,7378,9807,1,0,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,,,,,,,, +8224,"NAD83(HARN) / WISCRS Ashland (ftUS)",9003,4152,7379,9807,1,0,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,,,,,,,, +8225,"NAD83(HARN) / WISCRS Adams and Juneau (m)",9001,4152,7484,9807,1,0,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,,,,,,,, +8226,"NAD83(HARN) / WISCRS Adams and Juneau (ftUS)",9003,4152,7485,9807,1,0,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,,,,,,,, +8311,"NAD83(2011) / Oregon Burns-Harper zone (m)",9001,6318,8273,9807,1,0,4499,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,90000,9001,8807,0,9001,,,,,,,,,,,,, +8312,"NAD83(2011) / Oregon Burns-Harper zone (ft)",9002,6318,8274,9807,1,0,4495,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,295275.5906,9002,8807,0,9002,,,,,,,,,,,,, +8313,"NAD83(2011) / Oregon Canyon City-Burns zone (m)",9001,6318,8275,9807,1,0,4499,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,, +8314,"NAD83(2011) / Oregon Canyon City-Burns zone (ft)",9002,6318,8276,9807,1,0,4495,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,, +8315,"NAD83(2011) / Oregon Coast Range North zone (m)",9001,6318,8277,9801,1,0,4499,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,30000,9001,8807,20000,9001,,,,,,,,,,,,, +8316,"NAD83(2011) / Oregon Coast Range North zone (ft)",9002,6318,8278,9801,1,0,4495,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,98425.1969,9002,8807,65616.7979,9002,,,,,,,,,,,,, +8317,"NAD83(2011) / Oregon Dayville-Prairie City zone (m)",9001,6318,8279,9807,1,0,4499,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,, +8318,"NAD83(2011) / Oregon Dayville-Prairie City zone (ft)",9002,6318,8280,9807,1,0,4495,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,, +8319,"NAD83(2011) / Oregon Denio-Burns zone (m)",9001,6318,8281,9807,1,0,4499,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +8320,"NAD83(2011) / Oregon Denio-Burns zone (ft)",9002,6318,8282,9807,1,0,4495,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +8321,"NAD83(2011) / Oregon Halfway zone (m)",9001,6318,8283,9801,1,0,4499,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,40000,9001,8807,70000,9001,,,,,,,,,,,,, +8322,"NAD83(2011) / Oregon Halfway zone (ft)",9002,6318,8284,9801,1,0,4495,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,131233.5958,9002,8807,229658.7927,9002,,,,,,,,,,,,, +8323,"NAD83(2011) / Oregon Medford-Diamond Lake zone (m)",9001,6318,8285,9801,1,0,4499,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,60000,9001,8807,-60000,9001,,,,,,,,,,,,, +8324,"NAD83(2011) / Oregon Medford-Diamond Lake zone (ft)",9002,6318,8286,9801,1,0,4495,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,196850.3937,9002,8807,-196850.3937,9002,,,,,,,,,,,,, +8325,"NAD83(2011) / Oregon Mitchell zone (m)",9001,6318,8287,9801,1,0,4499,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,30000,9001,8807,290000,9001,,,,,,,,,,,,, +8326,"NAD83(2011) / Oregon Mitchell zone (ft)",9002,6318,8288,9801,1,0,4495,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,98425.1969,9002,8807,951443.5696,9002,,,,,,,,,,,,, +8327,"NAD83(2011) / Oregon North Central zone (m)",9001,6318,8289,9801,1,0,4499,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,100000,9001,8807,140000,9001,,,,,,,,,,,,, +8328,"NAD83(2011) / Oregon North Central zone (ft)",9002,6318,8290,9801,1,0,4495,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,328083.9895,9002,8807,459317.5853,9002,,,,,,,,,,,,, +8329,"NAD83(2011) / Oregon Ochoco Summit zone (m)",9001,6318,8291,9801,1,0,4499,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,40000,9001,8807,-80000,9001,,,,,,,,,,,,, +8330,"NAD83(2011) / Oregon Ochoco Summit zone (ft)",9002,6318,8292,9801,1,0,4495,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,131233.5958,9002,8807,-262467.1916,9002,,,,,,,,,,,,, +8331,"NAD83(2011) / Oregon Owyhee zone (m)",9001,6318,8293,9807,1,0,4499,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,70000,9001,8807,0,9001,,,,,,,,,,,,, +8332,"NAD83(2011) / Oregon Owyhee zone (ft)",9002,6318,8294,9807,1,0,4495,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,229658.7927,9002,8807,0,9002,,,,,,,,,,,,, +8333,"NAD83(2011) / Oregon Pilot Rock-Ukiah zone (m)",9001,6318,8295,9801,1,0,4499,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,50000,9001,8807,130000,9001,,,,,,,,,,,,, +8334,"NAD83(2011) / Oregon Pilot Rock-Ukiah zone (ft)",9002,6318,8296,9801,1,0,4495,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,164041.9948,9002,8807,426509.1864,9002,,,,,,,,,,,,, +8335,"NAD83(2011) / Oregon Prairie City-Brogan zone (m)",9001,6318,8297,9801,1,0,4499,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,, +8336,"NAD83(2011) / Oregon Prairie City-Brogan zone (ft)",9002,6318,8298,9801,1,0,4495,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,, +8337,"NAD83(2011) / Oregon Riley-Lakeview zone (m)",9001,6318,8299,9807,1,0,4499,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,70000,9001,8807,0,9001,,,,,,,,,,,,, +8338,"NAD83(2011) / Oregon Riley-Lakeview zone (ft)",9002,6318,8300,9807,1,0,4495,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,229658.7927,9002,8807,0,9002,,,,,,,,,,,,, +8339,"NAD83(2011) / Oregon Siskiyou Pass zone (m)",9001,6318,8301,9801,1,0,4499,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,10000,9001,8807,60000,9001,,,,,,,,,,,,, +8340,"NAD83(2011) / Oregon Siskiyou Pass zone (ft)",9002,6318,8302,9801,1,0,4495,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,32808.399,9002,8807,196850.3937,9002,,,,,,,,,,,,, +8341,"NAD83(2011) / Oregon Ukiah-Fox zone (m)",9001,6318,8303,9801,1,0,4499,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,30000,9001,8807,90000,9001,,,,,,,,,,,,, +8342,"NAD83(2011) / Oregon Ukiah-Fox zone (ft)",9002,6318,8304,9801,1,0,4495,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,98425.1969,9002,8807,295275.5906,9002,,,,,,,,,,,,, +8343,"NAD83(2011) / Oregon Wallowa zone (m)",9001,6318,8305,9807,1,0,4499,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,, +8344,"NAD83(2011) / Oregon Wallowa zone (ft)",9002,6318,8306,9807,1,0,4495,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,, +8345,"NAD83(2011) / Oregon Warner Highway zone (m)",9001,6318,8307,9801,1,0,4499,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,40000,9001,8807,60000,9001,,,,,,,,,,,,, +8346,"NAD83(2011) / Oregon Warner Highway zone (ft)",9002,6318,8308,9801,1,0,4495,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,131233.5958,9002,8807,196850.3937,9002,,,,,,,,,,,,, +8347,"NAD83(2011) / Oregon Willamette Pass zone (m)",9001,6318,8309,9807,1,0,4499,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,, +8348,"NAD83(2011) / Oregon Willamette Pass zone (ft)",9002,6318,8310,9807,1,0,4495,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,, +20004,"Pulkovo 1995 / Gauss-Kruger zone 4",9001,4200,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +20005,"Pulkovo 1995 / Gauss-Kruger zone 5",9001,4200,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +20006,"Pulkovo 1995 / Gauss-Kruger zone 6",9001,4200,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +20007,"Pulkovo 1995 / Gauss-Kruger zone 7",9001,4200,16207,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +20008,"Pulkovo 1995 / Gauss-Kruger zone 8",9001,4200,16208,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +20009,"Pulkovo 1995 / Gauss-Kruger zone 9",9001,4200,16209,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +20010,"Pulkovo 1995 / Gauss-Kruger zone 10",9001,4200,16210,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +20011,"Pulkovo 1995 / Gauss-Kruger zone 11",9001,4200,16211,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +20012,"Pulkovo 1995 / Gauss-Kruger zone 12",9001,4200,16212,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +20013,"Pulkovo 1995 / Gauss-Kruger zone 13",9001,4200,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +20014,"Pulkovo 1995 / Gauss-Kruger zone 14",9001,4200,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +20015,"Pulkovo 1995 / Gauss-Kruger zone 15",9001,4200,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +20016,"Pulkovo 1995 / Gauss-Kruger zone 16",9001,4200,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +20017,"Pulkovo 1995 / Gauss-Kruger zone 17",9001,4200,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +20018,"Pulkovo 1995 / Gauss-Kruger zone 18",9001,4200,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +20019,"Pulkovo 1995 / Gauss-Kruger zone 19",9001,4200,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +20020,"Pulkovo 1995 / Gauss-Kruger zone 20",9001,4200,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +20021,"Pulkovo 1995 / Gauss-Kruger zone 21",9001,4200,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +20022,"Pulkovo 1995 / Gauss-Kruger zone 22",9001,4200,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +20023,"Pulkovo 1995 / Gauss-Kruger zone 23",9001,4200,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +20024,"Pulkovo 1995 / Gauss-Kruger zone 24",9001,4200,16224,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +20025,"Pulkovo 1995 / Gauss-Kruger zone 25",9001,4200,16225,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +20026,"Pulkovo 1995 / Gauss-Kruger zone 26",9001,4200,16226,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +20027,"Pulkovo 1995 / Gauss-Kruger zone 27",9001,4200,16227,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +20028,"Pulkovo 1995 / Gauss-Kruger zone 28",9001,4200,16228,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +20029,"Pulkovo 1995 / Gauss-Kruger zone 29",9001,4200,16229,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +20030,"Pulkovo 1995 / Gauss-Kruger zone 30",9001,4200,16230,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +20031,"Pulkovo 1995 / Gauss-Kruger zone 31",9001,4200,16231,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +20032,"Pulkovo 1995 / Gauss-Kruger zone 32",9001,4200,16232,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +20064,"Pulkovo 1995 / Gauss-Kruger 4N",9001,4200,16304,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20065,"Pulkovo 1995 / Gauss-Kruger 5N",9001,4200,16305,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20066,"Pulkovo 1995 / Gauss-Kruger 6N",9001,4200,16306,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20067,"Pulkovo 1995 / Gauss-Kruger 7N",9001,4200,16307,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20068,"Pulkovo 1995 / Gauss-Kruger 8N",9001,4200,16308,9807,1,1,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20069,"Pulkovo 1995 / Gauss-Kruger 9N",9001,4200,16309,9807,1,1,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20070,"Pulkovo 1995 / Gauss-Kruger 10N",9001,4200,16310,9807,1,1,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20071,"Pulkovo 1995 / Gauss-Kruger 11N",9001,4200,16311,9807,1,1,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20072,"Pulkovo 1995 / Gauss-Kruger 12N",9001,4200,16312,9807,1,1,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20073,"Pulkovo 1995 / Gauss-Kruger 13N",9001,4200,16313,9807,1,1,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20074,"Pulkovo 1995 / Gauss-Kruger 14N",9001,4200,16314,9807,1,1,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20075,"Pulkovo 1995 / Gauss-Kruger 15N",9001,4200,16315,9807,1,1,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20076,"Pulkovo 1995 / Gauss-Kruger 16N",9001,4200,16316,9807,1,1,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20077,"Pulkovo 1995 / Gauss-Kruger 17N",9001,4200,16317,9807,1,1,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20078,"Pulkovo 1995 / Gauss-Kruger 18N",9001,4200,16318,9807,1,1,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20079,"Pulkovo 1995 / Gauss-Kruger 19N",9001,4200,16319,9807,1,1,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20080,"Pulkovo 1995 / Gauss-Kruger 20N",9001,4200,16320,9807,1,1,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20081,"Pulkovo 1995 / Gauss-Kruger 21N",9001,4200,16321,9807,1,1,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20082,"Pulkovo 1995 / Gauss-Kruger 22N",9001,4200,16322,9807,1,1,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20083,"Pulkovo 1995 / Gauss-Kruger 23N",9001,4200,16323,9807,1,1,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20084,"Pulkovo 1995 / Gauss-Kruger 24N",9001,4200,16324,9807,1,1,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20085,"Pulkovo 1995 / Gauss-Kruger 25N",9001,4200,16325,9807,1,1,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20086,"Pulkovo 1995 / Gauss-Kruger 26N",9001,4200,16326,9807,1,1,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20087,"Pulkovo 1995 / Gauss-Kruger 27N",9001,4200,16327,9807,1,1,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20088,"Pulkovo 1995 / Gauss-Kruger 28N",9001,4200,16328,9807,1,1,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20089,"Pulkovo 1995 / Gauss-Kruger 29N",9001,4200,16329,9807,1,1,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20090,"Pulkovo 1995 / Gauss-Kruger 30N",9001,4200,16330,9807,1,1,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20091,"Pulkovo 1995 / Gauss-Kruger 31N",9001,4200,16331,9807,1,1,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20092,"Pulkovo 1995 / Gauss-Kruger 32N",9001,4200,16332,9807,1,1,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20135,"Adindan / UTM zone 35N",9001,4201,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20136,"Adindan / UTM zone 36N",9001,4201,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20137,"Adindan / UTM zone 37N",9001,4201,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20138,"Adindan / UTM zone 38N",9001,4201,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20248,"AGD66 / AMG zone 48",9001,4202,17448,9807,1,1,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20249,"AGD66 / AMG zone 49",9001,4202,17449,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20250,"AGD66 / AMG zone 50",9001,4202,17450,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20251,"AGD66 / AMG zone 51",9001,4202,17451,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20252,"AGD66 / AMG zone 52",9001,4202,17452,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20253,"AGD66 / AMG zone 53",9001,4202,17453,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20254,"AGD66 / AMG zone 54",9001,4202,17454,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20255,"AGD66 / AMG zone 55",9001,4202,17455,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20256,"AGD66 / AMG zone 56",9001,4202,17456,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20257,"AGD66 / AMG zone 57",9001,4202,17457,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20258,"AGD66 / AMG zone 58",9001,4202,17458,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20348,"AGD84 / AMG zone 48",9001,4203,17448,9807,1,1,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20349,"AGD84 / AMG zone 49",9001,4203,17449,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20350,"AGD84 / AMG zone 50",9001,4203,17450,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20351,"AGD84 / AMG zone 51",9001,4203,17451,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20352,"AGD84 / AMG zone 52",9001,4203,17452,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20353,"AGD84 / AMG zone 53",9001,4203,17453,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20354,"AGD84 / AMG zone 54",9001,4203,17454,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20355,"AGD84 / AMG zone 55",9001,4203,17455,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20356,"AGD84 / AMG zone 56",9001,4203,17456,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20357,"AGD84 / AMG zone 57",9001,4203,17457,9807,1,1,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20358,"AGD84 / AMG zone 58",9001,4203,17458,9807,1,1,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20436,"Ain el Abd / UTM zone 36N",9001,4204,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20437,"Ain el Abd / UTM zone 37N",9001,4204,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20438,"Ain el Abd / UTM zone 38N",9001,4204,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20439,"Ain el Abd / UTM zone 39N",9001,4204,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20440,"Ain el Abd / UTM zone 40N",9001,4204,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20499,"Ain el Abd / Bahrain Grid",9001,4204,19900,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20538,"Afgooye / UTM zone 38N",9001,4205,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20539,"Afgooye / UTM zone 39N",9001,4205,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +20790,"Lisbon (Lisbon) / Portuguese National Grid",9001,4803,19936,9807,1,0,4499,8801,39.4,9110,8802,1,9110,8805,1,9201,8806,200000,9001,8807,300000,9001,,,,,,,,,,,,, +20791,"Lisbon (Lisbon) / Portuguese Grid",9001,4803,19969,9807,1,0,4499,8801,39.4,9110,8802,1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +20822,"Aratu / UTM zone 22S",9001,4208,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20823,"Aratu / UTM zone 23S",9001,4208,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20824,"Aratu / UTM zone 24S",9001,4208,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20934,"Arc 1950 / UTM zone 34S",9001,4209,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20935,"Arc 1950 / UTM zone 35S",9001,4209,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +20936,"Arc 1950 / UTM zone 36S",9001,4209,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21035,"Arc 1960 / UTM zone 35S",9001,4210,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21036,"Arc 1960 / UTM zone 36S",9001,4210,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21037,"Arc 1960 / UTM zone 37S",9001,4210,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21095,"Arc 1960 / UTM zone 35N",9001,4210,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21096,"Arc 1960 / UTM zone 36N",9001,4210,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21097,"Arc 1960 / UTM zone 37N",9001,4210,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21100,"Batavia (Jakarta) / NEIEZ",9001,4813,19905,9804,1,1,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +21148,"Batavia / UTM zone 48S",9001,4211,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21149,"Batavia / UTM zone 49S",9001,4211,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21150,"Batavia / UTM zone 50S",9001,4211,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +21291,"Barbados 1938 / British West Indies Grid",9001,4212,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,, +21292,"Barbados 1938 / Barbados National Grid",9001,4212,19943,9807,1,0,4400,8801,13.1035,9110,8802,-59.3335,9110,8805,0.9999986,9201,8806,30000,9001,8807,75000,9001,,,,,,,,,,,,, +21413,"Beijing 1954 / Gauss-Kruger zone 13",9001,4214,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +21414,"Beijing 1954 / Gauss-Kruger zone 14",9001,4214,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +21415,"Beijing 1954 / Gauss-Kruger zone 15",9001,4214,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +21416,"Beijing 1954 / Gauss-Kruger zone 16",9001,4214,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +21417,"Beijing 1954 / Gauss-Kruger zone 17",9001,4214,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +21418,"Beijing 1954 / Gauss-Kruger zone 18",9001,4214,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +21419,"Beijing 1954 / Gauss-Kruger zone 19",9001,4214,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +21420,"Beijing 1954 / Gauss-Kruger zone 20",9001,4214,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +21421,"Beijing 1954 / Gauss-Kruger zone 21",9001,4214,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +21422,"Beijing 1954 / Gauss-Kruger zone 22",9001,4214,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +21423,"Beijing 1954 / Gauss-Kruger zone 23",9001,4214,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +21453,"Beijing 1954 / Gauss-Kruger CM 75E",9001,4214,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21454,"Beijing 1954 / Gauss-Kruger CM 81E",9001,4214,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21455,"Beijing 1954 / Gauss-Kruger CM 87E",9001,4214,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21456,"Beijing 1954 / Gauss-Kruger CM 93E",9001,4214,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21457,"Beijing 1954 / Gauss-Kruger CM 99E",9001,4214,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21458,"Beijing 1954 / Gauss-Kruger CM 105E",9001,4214,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21459,"Beijing 1954 / Gauss-Kruger CM 111E",9001,4214,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21460,"Beijing 1954 / Gauss-Kruger CM 117E",9001,4214,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21461,"Beijing 1954 / Gauss-Kruger CM 123E",9001,4214,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21462,"Beijing 1954 / Gauss-Kruger CM 129E",9001,4214,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21463,"Beijing 1954 / Gauss-Kruger CM 135E",9001,4214,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21473,"Beijing 1954 / Gauss-Kruger 13N",9001,4214,16313,9807,1,1,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21474,"Beijing 1954 / Gauss-Kruger 14N",9001,4214,16314,9807,1,1,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21475,"Beijing 1954 / Gauss-Kruger 15N",9001,4214,16315,9807,1,1,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21476,"Beijing 1954 / Gauss-Kruger 16N",9001,4214,16316,9807,1,1,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21477,"Beijing 1954 / Gauss-Kruger 17N",9001,4214,16317,9807,1,1,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21478,"Beijing 1954 / Gauss-Kruger 18N",9001,4214,16318,9807,1,1,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21479,"Beijing 1954 / Gauss-Kruger 19N",9001,4214,16319,9807,1,1,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21480,"Beijing 1954 / Gauss-Kruger 20N",9001,4214,16320,9807,1,1,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21481,"Beijing 1954 / Gauss-Kruger 21N",9001,4214,16321,9807,1,1,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21482,"Beijing 1954 / Gauss-Kruger 22N",9001,4214,16322,9807,1,1,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21483,"Beijing 1954 / Gauss-Kruger 23N",9001,4214,16323,9807,1,1,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21500,"Belge 1950 (Brussels) / Belge Lambert 50",9001,4809,19901,9802,1,0,4499,8821,90,9110,8822,0,9110,8823,49.5,9110,8824,51.1,9110,8826,150000,9001,8827,5400000,9001,,,,,,,,,, +21780,"Bern 1898 (Bern) / LV03C",9001,4801,19923,9815,1,0,4498,8811,46.570866,9110,8812,0,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,0,9001,8817,0,9001,,,,,,, +21781,"CH1903 / LV03",9001,4149,19922,9815,1,0,4498,8811,46.570866,9110,8812,7.26225,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,600000,9001,8817,200000,9001,,,,,,, +21782,"CH1903 / LV03C-G",9001,4149,19841,9815,1,0,4498,8811,46.570866,9110,8812,7.26225,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,0,9001,8817,0,9001,,,,,,, +21817,"Bogota 1975 / UTM zone 17N",9001,4218,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21818,"Bogota 1975 / UTM zone 18N",9001,4218,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +21891,"Bogota 1975 / Colombia West zone",9001,4218,18051,9807,1,1,4499,8801,4.355657,9110,8802,-77.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21892,"Bogota 1975 / Colombia Bogota zone",9001,4218,18052,9807,1,1,4499,8801,4.355657,9110,8802,-74.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21893,"Bogota 1975 / Colombia East Central zone",9001,4218,18053,9807,1,1,4499,8801,4.355657,9110,8802,-71.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21894,"Bogota 1975 / Colombia East",9001,4218,18054,9807,1,1,4499,8801,4.355657,9110,8802,-68.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21896,"Bogota 1975 / Colombia West zone",9001,4218,18051,9807,1,0,4530,8801,4.355657,9110,8802,-77.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21897,"Bogota 1975 / Colombia Bogota zone",9001,4218,18052,9807,1,0,4530,8801,4.355657,9110,8802,-74.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21898,"Bogota 1975 / Colombia East Central zone",9001,4218,18053,9807,1,0,4530,8801,4.355657,9110,8802,-71.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +21899,"Bogota 1975 / Colombia East",9001,4218,18054,9807,1,0,4530,8801,4.355657,9110,8802,-68.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,, +22032,"Camacupa / UTM zone 32S",9001,4220,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22033,"Camacupa / UTM zone 33S",9001,4220,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22091,"Camacupa / TM 11.30 SE",9001,4220,16611,9807,1,0,4400,8801,0,9110,8802,11.3,9110,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22092,"Camacupa / TM 12 SE",9001,4220,16612,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22171,"POSGAR 98 / Argentina 1",9001,4190,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +22172,"POSGAR 98 / Argentina 2",9001,4190,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +22173,"POSGAR 98 / Argentina 3",9001,4190,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +22174,"POSGAR 98 / Argentina 4",9001,4190,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +22175,"POSGAR 98 / Argentina 5",9001,4190,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +22176,"POSGAR 98 / Argentina 6",9001,4190,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +22177,"POSGAR 98 / Argentina 7",9001,4190,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +22181,"POSGAR 94 / Argentina 1",9001,4694,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +22182,"POSGAR 94 / Argentina 2",9001,4694,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +22183,"POSGAR 94 / Argentina 3",9001,4694,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +22184,"POSGAR 94 / Argentina 4",9001,4694,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +22185,"POSGAR 94 / Argentina 5",9001,4694,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +22186,"POSGAR 94 / Argentina 6",9001,4694,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +22187,"POSGAR 94 / Argentina 7",9001,4694,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +22191,"Campo Inchauspe / Argentina 1",9001,4221,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +22192,"Campo Inchauspe / Argentina 2",9001,4221,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +22193,"Campo Inchauspe / Argentina 3",9001,4221,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +22194,"Campo Inchauspe / Argentina 4",9001,4221,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +22195,"Campo Inchauspe / Argentina 5",9001,4221,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +22196,"Campo Inchauspe / Argentina 6",9001,4221,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +22197,"Campo Inchauspe / Argentina 7",9001,4221,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +22234,"Cape / UTM zone 34S",9001,4222,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22235,"Cape / UTM zone 35S",9001,4222,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22236,"Cape / UTM zone 36S",9001,4222,16136,9807,1,1,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22275,"Cape / Lo15",9001,4222,17515,9808,1,0,6503,8801,0,9102,8802,15,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22277,"Cape / Lo17",9001,4222,17517,9808,1,0,6503,8801,0,9102,8802,17,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22279,"Cape / Lo19",9001,4222,17519,9808,1,0,6503,8801,0,9102,8802,19,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22281,"Cape / Lo21",9001,4222,17521,9808,1,0,6503,8801,0,9102,8802,21,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22283,"Cape / Lo23",9001,4222,17523,9808,1,0,6503,8801,0,9102,8802,23,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22285,"Cape / Lo25",9001,4222,17525,9808,1,0,6503,8801,0,9102,8802,25,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22287,"Cape / Lo27",9001,4222,17527,9808,1,0,6503,8801,0,9102,8802,27,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22289,"Cape / Lo29",9001,4222,17529,9808,1,0,6503,8801,0,9102,8802,29,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22291,"Cape / Lo31",9001,4222,17531,9808,1,0,6503,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22293,"Cape / Lo33",9001,4222,17533,9808,1,0,6503,8801,0,9102,8802,33,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22300,"Carthage (Paris) / Tunisia Mining Grid",9036,4816,19937,9816,1,0,4406,8821,36.5964,9105,8822,7.83445,9105,8826,270,9036,8827,360,9036,,,,,,,,,,,,,,,, +22332,"Carthage / UTM zone 32N",9001,4223,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +22391,"Carthage / Nord Tunisie",9001,4223,18181,9801,1,0,4499,8801,40,9105,8802,11,9105,8805,0.999625544,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +22392,"Carthage / Sud Tunisie",9001,4223,18182,9801,1,0,4499,8801,37,9105,8802,11,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +22521,"Corrego Alegre 1970-72 / UTM zone 21S",9001,4225,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22522,"Corrego Alegre 1970-72 / UTM zone 22S",9001,4225,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22523,"Corrego Alegre 1970-72 / UTM zone 23S",9001,4225,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22524,"Corrego Alegre 1970-72 / UTM zone 24S",9001,4225,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22525,"Corrego Alegre 1970-72 / UTM zone 25S",9001,4225,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +22700,"Deir ez Zor / Levant Zone",9001,4227,19940,9817,1,0,4499,8801,34.39,9110,8802,37.21,9110,8805,0.9996256,9201,8806,300000,9001,8807,300000,9001,,,,,,,,,,,,, +22770,"Deir ez Zor / Syria Lambert",9001,4227,19948,9801,1,0,4499,8801,34.39,9110,8802,37.21,9110,8805,0.9996256,9201,8806,300000,9001,8807,300000,9001,,,,,,,,,,,,, +22780,"Deir ez Zor / Levant Stereographic",9001,4227,19949,9809,1,0,4499,8801,38,9105,8802,43.5,9105,8805,0.9995341,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +22832,"Douala / UTM zone 32N",9001,4228,16032,9807,1,1,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +22991,"Egypt 1907 / Blue Belt",9001,4229,18071,9807,1,0,4400,8801,30,9102,8802,35,9102,8805,1,9201,8806,300000,9001,8807,1100000,9001,,,,,,,,,,,,, +22992,"Egypt 1907 / Red Belt",9001,4229,18072,9807,1,0,4400,8801,30,9102,8802,31,9102,8805,1,9201,8806,615000,9001,8807,810000,9001,,,,,,,,,,,,, +22993,"Egypt 1907 / Purple Belt",9001,4229,18073,9807,1,0,4400,8801,30,9102,8802,27,9102,8805,1,9201,8806,700000,9001,8807,200000,9001,,,,,,,,,,,,, +22994,"Egypt 1907 / Extended Purple Belt",9001,4229,18074,9807,1,0,4400,8801,30,9102,8802,27,9102,8805,1,9201,8806,700000,9001,8807,1200000,9001,,,,,,,,,,,,, +23028,"ED50 / UTM zone 28N",9001,4230,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23029,"ED50 / UTM zone 29N",9001,4230,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23030,"ED50 / UTM zone 30N",9001,4230,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23031,"ED50 / UTM zone 31N",9001,4230,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23032,"ED50 / UTM zone 32N",9001,4230,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23033,"ED50 / UTM zone 33N",9001,4230,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23034,"ED50 / UTM zone 34N",9001,4230,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23035,"ED50 / UTM zone 35N",9001,4230,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23036,"ED50 / UTM zone 36N",9001,4230,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23037,"ED50 / UTM zone 37N",9001,4230,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23038,"ED50 / UTM zone 38N",9001,4230,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23090,"ED50 / TM 0 N",9001,4230,16400,9807,1,0,4400,8801,0,9102,8802,0,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23095,"ED50 / TM 5 NE",9001,4230,16405,9807,1,0,4400,8801,0,9102,8802,5,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23239,"Fahud / UTM zone 39N",9001,4232,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23240,"Fahud / UTM zone 40N",9001,4232,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23433,"Garoua / UTM zone 33N",9001,4234,16033,9807,1,1,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23700,"HD72 / EOV",9001,4237,19931,9815,1,0,4498,8811,47.08398174,9110,8812,19.02548584,9110,8813,90,9110,8814,90,9110,8815,0.99993,9201,8816,650000,9001,8817,200000,9001,,,,,,, +23830,"DGN95 / Indonesia TM-3 zone 46.2",9001,4755,17432,9807,1,0,4499,8801,0,9102,8802,94.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23831,"DGN95 / Indonesia TM-3 zone 47.1",9001,4755,17433,9807,1,0,4499,8801,0,9102,8802,97.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23832,"DGN95 / Indonesia TM-3 zone 47.2",9001,4755,17434,9807,1,0,4499,8801,0,9102,8802,100.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23833,"DGN95 / Indonesia TM-3 zone 48.1",9001,4755,17435,9807,1,0,4499,8801,0,9102,8802,103.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23834,"DGN95 / Indonesia TM-3 zone 48.2",9001,4755,17436,9807,1,0,4499,8801,0,9102,8802,106.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23835,"DGN95 / Indonesia TM-3 zone 49.1",9001,4755,17437,9807,1,0,4499,8801,0,9102,8802,109.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23836,"DGN95 / Indonesia TM-3 zone 49.2",9001,4755,17438,9807,1,0,4499,8801,0,9102,8802,112.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23837,"DGN95 / Indonesia TM-3 zone 50.1",9001,4755,17439,9807,1,0,4499,8801,0,9102,8802,115.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23838,"DGN95 / Indonesia TM-3 zone 50.2",9001,4755,17440,9807,1,0,4499,8801,0,9102,8802,118.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23839,"DGN95 / Indonesia TM-3 zone 51.1",9001,4755,17441,9807,1,0,4499,8801,0,9102,8802,121.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23840,"DGN95 / Indonesia TM-3 zone 51.2",9001,4755,17442,9807,1,0,4499,8801,0,9102,8802,124.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23841,"DGN95 / Indonesia TM-3 zone 52.1",9001,4755,17443,9807,1,0,4499,8801,0,9102,8802,127.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23842,"DGN95 / Indonesia TM-3 zone 52.2",9001,4755,17444,9807,1,0,4499,8801,0,9102,8802,130.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23843,"DGN95 / Indonesia TM-3 zone 53.1",9001,4755,17445,9807,1,0,4499,8801,0,9102,8802,133.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23844,"DGN95 / Indonesia TM-3 zone 53.2",9001,4755,17446,9807,1,0,4499,8801,0,9102,8802,136.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23845,"DGN95 / Indonesia TM-3 zone 54.1",9001,4755,17447,9807,1,0,4499,8801,0,9102,8802,139.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,, +23846,"ID74 / UTM zone 46N",9001,4238,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23847,"ID74 / UTM zone 47N",9001,4238,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23848,"ID74 / UTM zone 48N",9001,4238,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23849,"ID74 / UTM zone 49N",9001,4238,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23850,"ID74 / UTM zone 50N",9001,4238,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23851,"ID74 / UTM zone 51N",9001,4238,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23852,"ID74 / UTM zone 52N",9001,4238,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23853,"ID74 / UTM zone 53N",9001,4238,16053,9807,1,1,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23866,"DGN95 / UTM zone 46N",9001,4755,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23867,"DGN95 / UTM zone 47N",9001,4755,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23868,"DGN95 / UTM zone 48N",9001,4755,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23869,"DGN95 / UTM zone 49N",9001,4755,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23870,"DGN95 / UTM zone 50N",9001,4755,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23871,"DGN95 / UTM zone 51N",9001,4755,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23872,"DGN95 / UTM zone 52N",9001,4755,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23877,"DGN95 / UTM zone 47S",9001,4755,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23878,"DGN95 / UTM zone 48S",9001,4755,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23879,"DGN95 / UTM zone 49S",9001,4755,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23880,"DGN95 / UTM zone 50S",9001,4755,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23881,"DGN95 / UTM zone 51S",9001,4755,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23882,"DGN95 / UTM zone 52S",9001,4755,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23883,"DGN95 / UTM zone 53S",9001,4755,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23884,"DGN95 / UTM zone 54S",9001,4755,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23886,"ID74 / UTM zone 46S",9001,4238,16146,9807,1,1,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23887,"ID74 / UTM zone 47S",9001,4238,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23888,"ID74 / UTM zone 48S",9001,4238,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23889,"ID74 / UTM zone 49S",9001,4238,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23890,"ID74 / UTM zone 50S",9001,4238,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23891,"ID74 / UTM zone 51S",9001,4238,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23892,"ID74 / UTM zone 52S",9001,4238,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23893,"ID74 / UTM zone 53S",9001,4238,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23894,"ID74 / UTM zone 54S",9001,4238,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +23946,"Indian 1954 / UTM zone 46N",9001,4239,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23947,"Indian 1954 / UTM zone 47N",9001,4239,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +23948,"Indian 1954 / UTM zone 48N",9001,4239,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24047,"Indian 1975 / UTM zone 47N",9001,4240,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24048,"Indian 1975 / UTM zone 48N",9001,4240,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24100,"Jamaica 1875 / Jamaica (Old Grid)",9005,4241,19909,9801,1,0,4403,8801,18,9102,8802,-77,9102,8805,1,9201,8806,550000,9005,8807,400000,9005,,,,,,,,,,,,, +24200,"JAD69 / Jamaica National Grid",9001,4242,19910,9801,1,0,4400,8801,18,9102,8802,-77,9102,8805,1,9201,8806,250000,9001,8807,150000,9001,,,,,,,,,,,,, +24305,"Kalianpur 1937 / UTM zone 45N",9001,4144,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24306,"Kalianpur 1937 / UTM zone 46N",9001,4144,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24311,"Kalianpur 1962 / UTM zone 41N",9001,4145,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24312,"Kalianpur 1962 / UTM zone 42N",9001,4145,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24313,"Kalianpur 1962 / UTM zone 43N",9001,4145,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24342,"Kalianpur 1975 / UTM zone 42N",9001,4146,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24343,"Kalianpur 1975 / UTM zone 43N",9001,4146,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24344,"Kalianpur 1975 / UTM zone 44N",9001,4146,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24345,"Kalianpur 1975 / UTM zone 45N",9001,4146,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24346,"Kalianpur 1975 / UTM zone 46N",9001,4146,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24347,"Kalianpur 1975 / UTM zone 47N",9001,4146,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24370,"Kalianpur 1880 / India zone 0",9084,4243,18110,9801,1,0,4408,8801,39.3,9110,8802,68,9110,8805,0.99846154,9201,8806,2355500,9084,8807,2590000,9084,,,,,,,,,,,,, +24371,"Kalianpur 1880 / India zone I",9084,4243,18111,9801,1,0,4408,8801,32.3,9110,8802,68,9110,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,, +24372,"Kalianpur 1880 / India zone IIa",9084,4243,18112,9801,1,0,4408,8801,26,9102,8802,74,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,, +24373,"Kalianpur 1880 / India zone IIIa",9084,4243,18114,9801,1,0,4408,8801,19,9102,8802,80,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,, +24374,"Kalianpur 1880 / India zone IVa",9084,4243,18116,9801,1,0,4408,8801,12,9102,8802,80,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,, +24375,"Kalianpur 1937 / India zone IIb",9001,4144,18238,9801,1,0,4400,8801,26,9102,8802,90,9102,8805,0.99878641,9201,8806,2743185.69,9001,8807,914395.23,9001,,,,,,,,,,,,, +24376,"Kalianpur 1962 / India zone I",9001,4145,18236,9801,1,0,4400,8801,32.3,9110,8802,68,9110,8805,0.99878641,9201,8806,2743196.4,9001,8807,914398.8,9001,,,,,,,,,,,,, +24377,"Kalianpur 1962 / India zone IIa",9001,4145,18237,9801,1,0,4400,8801,26,9102,8802,74,9102,8805,0.99878641,9201,8806,2743196.4,9001,8807,914398.8,9001,,,,,,,,,,,,, +24378,"Kalianpur 1975 / India zone I",9001,4146,18231,9801,1,0,4400,8801,32.3,9110,8802,68,9110,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,, +24379,"Kalianpur 1975 / India zone IIa",9001,4146,18232,9801,1,0,4400,8801,26,9102,8802,74,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,, +24380,"Kalianpur 1975 / India zone IIb",9001,4146,18235,9801,1,0,4400,8801,26,9102,8802,90,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,, +24381,"Kalianpur 1975 / India zone IIIa",9001,4146,18233,9801,1,0,4400,8801,19,9102,8802,80,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,, +24382,"Kalianpur 1880 / India zone IIb",9084,4243,18113,9801,1,0,4408,8801,26,9102,8802,90,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,, +24383,"Kalianpur 1975 / India zone IVa",9001,4146,18234,9801,1,0,4400,8801,12,9102,8802,80,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,, +24500,"Kertau 1968 / Singapore Grid",9001,4245,19920,9806,1,0,4400,8801,1.1715528,9110,8802,103.5110808,9110,8806,30000,9001,8807,30000,9001,,,,,,,,,,,,,,,, +24547,"Kertau 1968 / UTM zone 47N",9001,4245,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24548,"Kertau 1968 / UTM zone 48N",9001,4245,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24571,"Kertau / R.S.O. Malaya (ch)",9062,4245,19935,9812,1,1,4401,8806,40000,9062,8807,0,9062,8811,4,9110,8812,102.15,9110,8813,323.01328458,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,, +24600,KOC Lambert,9001,4246,19906,9801,1,0,4400,8801,32.3,9110,8802,45,9110,8805,0.9987864078,9201,8806,1500000,9001,8807,1166200,9001,,,,,,,,,,,,, +24718,"La Canoa / UTM zone 18N",9001,4247,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24719,"La Canoa / UTM zone 19N",9001,4247,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24720,"La Canoa / UTM zone 20N",9001,4247,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24817,"PSAD56 / UTM zone 17N",9001,4248,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24818,"PSAD56 / UTM zone 18N",9001,4248,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24819,"PSAD56 / UTM zone 19N",9001,4248,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24820,"PSAD56 / UTM zone 20N",9001,4248,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24821,"PSAD56 / UTM zone 21N",9001,4248,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +24877,"PSAD56 / UTM zone 17S",9001,4248,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +24878,"PSAD56 / UTM zone 18S",9001,4248,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +24879,"PSAD56 / UTM zone 19S",9001,4248,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +24880,"PSAD56 / UTM zone 20S",9001,4248,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +24881,"PSAD56 / UTM zone 21S",9001,4248,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +24882,"PSAD56 / UTM zone 22S",9001,4248,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +24891,"PSAD56 / Peru west zone",9001,4248,18161,9807,1,0,4499,8801,-6,9110,8802,-80.3,9110,8805,0.99983008,9201,8806,222000,9001,8807,1426834.743,9001,,,,,,,,,,,,, +24892,"PSAD56 / Peru central zone",9001,4248,18162,9807,1,0,4499,8801,-9.3,9110,8802,-76,9110,8805,0.99932994,9201,8806,720000,9001,8807,1039979.159,9001,,,,,,,,,,,,, +24893,"PSAD56 / Peru east zone",9001,4248,18163,9807,1,0,4499,8801,-9.3,9110,8802,-70.3,9110,8805,0.99952992,9201,8806,1324000,9001,8807,1040084.558,9001,,,,,,,,,,,,, +25000,"Leigon / Ghana Metre Grid",9001,4250,19904,9807,1,0,4400,8801,4.4,9110,8802,-1,9110,8805,0.99975,9201,8806,274319.51,9001,8807,0,9001,,,,,,,,,,,,, +25231,"Lome / UTM zone 31N",9001,4252,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25391,"Luzon 1911 / Philippines zone I",9001,4253,18171,9807,1,0,4499,8801,0,9102,8802,117,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25392,"Luzon 1911 / Philippines zone II",9001,4253,18172,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25393,"Luzon 1911 / Philippines zone III",9001,4253,18173,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25394,"Luzon 1911 / Philippines zone IV",9001,4253,18174,9807,1,0,4499,8801,0,9102,8802,123,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25395,"Luzon 1911 / Philippines zone V",9001,4253,18175,9807,1,0,4499,8801,0,9102,8802,125,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25700,"Makassar (Jakarta) / NEIEZ",9001,4804,19905,9804,1,1,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,, +25828,"ETRS89 / UTM zone 28N",9001,4258,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25829,"ETRS89 / UTM zone 29N",9001,4258,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25830,"ETRS89 / UTM zone 30N",9001,4258,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25831,"ETRS89 / UTM zone 31N",9001,4258,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25832,"ETRS89 / UTM zone 32N",9001,4258,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25833,"ETRS89 / UTM zone 33N",9001,4258,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25834,"ETRS89 / UTM zone 34N",9001,4258,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25835,"ETRS89 / UTM zone 35N",9001,4258,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25836,"ETRS89 / UTM zone 36N",9001,4258,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25837,"ETRS89 / UTM zone 37N",9001,4258,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25838,"ETRS89 / UTM zone 38N",9001,4258,16038,9807,1,1,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25884,"ETRS89 / TM Baltic93",9001,4258,19939,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +25932,"Malongo 1987 / UTM zone 32S",9001,4259,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +26191,"Merchich / Nord Maroc",9001,4261,18131,9801,1,0,4499,8801,37,9105,8802,-6,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +26192,"Merchich / Sud Maroc",9001,4261,18132,9801,1,0,4499,8801,33,9105,8802,-6,9105,8805,0.999615596,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +26193,"Merchich / Sahara",9001,4261,18133,9801,1,1,4499,8801,29,9105,8802,-6,9105,8805,0.9996,9201,8806,1200000,9001,8807,400000,9001,,,,,,,,,,,,, +26194,"Merchich / Sahara Nord",9001,4261,18134,9801,1,0,4499,8801,29,9105,8802,-6,9105,8805,0.999616304,9201,8806,1200000,9001,8807,400000,9001,,,,,,,,,,,,, +26195,"Merchich / Sahara Sud",9001,4261,18135,9801,1,0,4499,8801,25,9105,8802,-6,9105,8805,0.999616437,9201,8806,1500000,9001,8807,400000,9001,,,,,,,,,,,,, +26237,"Massawa / UTM zone 37N",9001,4262,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26331,"Minna / UTM zone 31N",9001,4263,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26332,"Minna / UTM zone 32N",9001,4263,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26391,"Minna / Nigeria West Belt",9001,4263,18151,9807,1,0,4400,8801,4,9110,8802,4.3,9110,8805,0.99975,9201,8806,230738.26,9001,8807,0,9001,,,,,,,,,,,,, +26392,"Minna / Nigeria Mid Belt",9001,4263,18152,9807,1,0,4400,8801,4,9110,8802,8.3,9110,8805,0.99975,9201,8806,670553.98,9001,8807,0,9001,,,,,,,,,,,,, +26393,"Minna / Nigeria East Belt",9001,4263,18153,9807,1,0,4400,8801,4,9110,8802,12.3,9110,8805,0.99975,9201,8806,1110369.7,9001,8807,0,9001,,,,,,,,,,,,, +26432,"Mhast / UTM zone 32S",9001,4264,16132,9807,1,1,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +26591,"Monte Mario (Rome) / Italy zone 1",9001,4806,18121,9807,1,1,4499,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +26592,"Monte Mario (Rome) / Italy zone 2",9001,4806,18122,9807,1,1,4499,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,2520000,9001,8807,0,9001,,,,,,,,,,,,, +26632,"M'poraloko / UTM zone 32N",9001,4266,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26692,"M'poraloko / UTM zone 32S",9001,4266,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +26701,"NAD27 / UTM zone 1N",9001,4267,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26702,"NAD27 / UTM zone 2N",9001,4267,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26703,"NAD27 / UTM zone 3N",9001,4267,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26704,"NAD27 / UTM zone 4N",9001,4267,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26705,"NAD27 / UTM zone 5N",9001,4267,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26706,"NAD27 / UTM zone 6N",9001,4267,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26707,"NAD27 / UTM zone 7N",9001,4267,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26708,"NAD27 / UTM zone 8N",9001,4267,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26709,"NAD27 / UTM zone 9N",9001,4267,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26710,"NAD27 / UTM zone 10N",9001,4267,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26711,"NAD27 / UTM zone 11N",9001,4267,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26712,"NAD27 / UTM zone 12N",9001,4267,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26713,"NAD27 / UTM zone 13N",9001,4267,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26714,"NAD27 / UTM zone 14N",9001,4267,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26715,"NAD27 / UTM zone 15N",9001,4267,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26716,"NAD27 / UTM zone 16N",9001,4267,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26717,"NAD27 / UTM zone 17N",9001,4267,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26718,"NAD27 / UTM zone 18N",9001,4267,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26719,"NAD27 / UTM zone 19N",9001,4267,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26720,"NAD27 / UTM zone 20N",9001,4267,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26721,"NAD27 / UTM zone 21N",9001,4267,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26722,"NAD27 / UTM zone 22N",9001,4267,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26729,"NAD27 / Alabama East",9003,4267,10101,9807,1,0,4497,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26730,"NAD27 / Alabama West",9003,4267,10102,9807,1,0,4497,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26731,"NAD27 / Alaska zone 1",9003,4267,15001,9812,1,0,4497,8806,16404166.67,9003,8807,-16404166.67,9003,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,, +26732,"NAD27 / Alaska zone 2",9003,4267,15002,9807,1,0,4497,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26733,"NAD27 / Alaska zone 3",9003,4267,15003,9807,1,0,4497,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26734,"NAD27 / Alaska zone 4",9003,4267,15004,9807,1,0,4497,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26735,"NAD27 / Alaska zone 5",9003,4267,15005,9807,1,0,4497,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26736,"NAD27 / Alaska zone 6",9003,4267,15006,9807,1,0,4497,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26737,"NAD27 / Alaska zone 7",9003,4267,15007,9807,1,0,4497,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,700000,9003,8807,0,9003,,,,,,,,,,,,, +26738,"NAD27 / Alaska zone 8",9003,4267,15008,9807,1,0,4497,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26739,"NAD27 / Alaska zone 9",9003,4267,15009,9807,1,0,4497,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,600000,9003,8807,0,9003,,,,,,,,,,,,, +26740,"NAD27 / Alaska zone 10",9003,4267,15010,9802,1,0,4497,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,3000000,9003,8827,0,9003,,,,,,,,,, +26741,"NAD27 / California zone I",9003,4267,10401,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26742,"NAD27 / California zone II",9003,4267,10402,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26743,"NAD27 / California zone III",9003,4267,10403,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26744,"NAD27 / California zone IV",9003,4267,10404,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26745,"NAD27 / California zone V",9003,4267,10405,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26746,"NAD27 / California zone VI",9003,4267,10406,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26747,"NAD27 / California zone VII",9003,4267,10407,9802,1,1,4497,8821,34.08,9110,8822,-118.2,9110,8823,34.25,9110,8824,33.52,9110,8826,4186692.58,9003,8827,416926.74,9003,,,,,,,,,, +26748,"NAD27 / Arizona East",9003,4267,10201,9807,1,0,4497,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26749,"NAD27 / Arizona Central",9003,4267,10202,9807,1,0,4497,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26750,"NAD27 / Arizona West",9003,4267,10203,9807,1,0,4497,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26751,"NAD27 / Arkansas North",9003,4267,10301,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26752,"NAD27 / Arkansas South",9003,4267,10302,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26753,"NAD27 / Colorado North",9003,4267,10501,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,39.43,9110,8824,40.47,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26754,"NAD27 / Colorado Central",9003,4267,10502,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26755,"NAD27 / Colorado South",9003,4267,10503,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26756,"NAD27 / Connecticut",9003,4267,10600,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,600000,9003,8827,0,9003,,,,,,,,,, +26757,"NAD27 / Delaware",9003,4267,10700,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26758,"NAD27 / Florida East",9003,4267,10901,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26759,"NAD27 / Florida West",9003,4267,10902,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26760,"NAD27 / Florida North",9003,4267,10903,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26766,"NAD27 / Georgia East",9003,4267,11001,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26767,"NAD27 / Georgia West",9003,4267,11002,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26768,"NAD27 / Idaho East",9003,4267,11101,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26769,"NAD27 / Idaho Central",9003,4267,11102,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26770,"NAD27 / Idaho West",9003,4267,11103,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26771,"NAD27 / Illinois East",9003,4267,11201,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26772,"NAD27 / Illinois West",9003,4267,11202,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26773,"NAD27 / Indiana East",9003,4267,11301,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26774,"NAD27 / Indiana West",9003,4267,11302,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26775,"NAD27 / Iowa North",9003,4267,11401,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26776,"NAD27 / Iowa South",9003,4267,11402,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26777,"NAD27 / Kansas North",9003,4267,11501,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26778,"NAD27 / Kansas South",9003,4267,11502,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26779,"NAD27 / Kentucky North",9003,4267,11601,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26780,"NAD27 / Kentucky South",9003,4267,11602,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,36.44,9110,8824,37.56,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26781,"NAD27 / Louisiana North",9003,4267,11701,9802,1,0,4497,8821,30.4,9110,8822,-92.3,9110,8823,31.1,9110,8824,32.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26782,"NAD27 / Louisiana South",9003,4267,11702,9802,1,0,4497,8821,28.4,9110,8822,-91.2,9110,8823,29.18,9110,8824,30.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26783,"NAD27 / Maine East",9003,4267,11801,9807,1,0,4497,8801,43.5,9110,8802,-68.3,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26784,"NAD27 / Maine West",9003,4267,11802,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26785,"NAD27 / Maryland",9003,4267,11900,9802,1,0,4497,8821,37.5,9110,8822,-77,9110,8823,38.18,9110,8824,39.27,9110,8826,800000,9003,8827,0,9003,,,,,,,,,, +26786,"NAD27 / Massachusetts Mainland",9003,4267,12001,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,41.43,9110,8824,42.41,9110,8826,600000,9003,8827,0,9003,,,,,,,,,, +26787,"NAD27 / Massachusetts Island",9003,4267,12002,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.17,9110,8824,41.29,9110,8826,200000,9003,8827,0,9003,,,,,,,,,, +26791,"NAD27 / Minnesota North",9003,4267,12201,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,47.02,9110,8824,48.38,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26792,"NAD27 / Minnesota Central",9003,4267,12202,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,45.37,9110,8824,47.03,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26793,"NAD27 / Minnesota South",9003,4267,12203,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,43.47,9110,8824,45.13,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26794,"NAD27 / Mississippi East",9003,4267,12301,9807,1,0,4497,8801,29.4,9110,8802,-88.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26795,"NAD27 / Mississippi West",9003,4267,12302,9807,1,0,4497,8801,30.3,9110,8802,-90.2,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26796,"NAD27 / Missouri East",9003,4267,12401,9807,1,0,4497,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26797,"NAD27 / Missouri Central",9003,4267,12402,9807,1,0,4497,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26798,"NAD27 / Missouri West",9003,4267,12403,9807,1,0,4497,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26799,"NAD27 / California zone VII",9003,4267,10408,9802,1,0,4497,8821,34.08,9110,8822,-118.2,9110,8823,34.25,9110,8824,33.52,9110,8826,4186692.58,9003,8827,4160926.74,9003,,,,,,,,,, +26801,"NAD Michigan / Michigan East",9003,4268,12101,9807,1,1,4497,8801,41.3,9110,8802,-83.4,9110,8805,0.999942857,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26802,"NAD Michigan / Michigan Old Central",9003,4268,12102,9807,1,1,4497,8801,41.3,9110,8802,-85.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26803,"NAD Michigan / Michigan West",9003,4268,12103,9807,1,1,4497,8801,41.3,9110,8802,-88.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +26811,"NAD Michigan / Michigan North",9003,4268,12111,9802,1,1,4497,8821,44.47,9110,8822,-87,9110,8823,45.29,9110,8824,47.05,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26812,"NAD Michigan / Michigan Central",9003,4268,12112,9802,1,1,4497,8821,43.19,9110,8822,-84.2,9110,8823,44.11,9110,8824,45.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26813,"NAD Michigan / Michigan South",9003,4268,12113,9802,1,1,4497,8821,41.3,9110,8822,-84.2,9110,8823,42.06,9110,8824,43.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +26814,"NAD83 / Maine East (ftUS)",9001,4269,11833,9807,1,1,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +26815,"NAD83 / Maine West (ftUS)",9001,4269,11834,9807,1,1,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +26819,"NAD83 / Minnesota North (ftUS)",9001,4269,12234,9802,1,1,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26820,"NAD83 / Minnesota Central (ftUS)",9001,4269,12235,9802,1,1,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26821,"NAD83 / Minnesota South (ftUS)",9001,4269,12236,9802,1,1,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26822,"NAD83 / Nebraska (ftUS)",9001,4269,15396,9802,1,1,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +26823,"NAD83 / West Virginia North (ftUS)",9001,4269,14733,9802,1,1,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,, +26824,"NAD83 / West Virginia South (ftUS)",9001,4269,14734,9802,1,1,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,, +26825,"NAD83(HARN) / Maine East (ftUS)",9001,4152,11833,9807,1,1,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +26826,"NAD83(HARN) / Maine West (ftUS)",9001,4152,11834,9807,1,1,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +26830,"NAD83(HARN) / Minnesota North (ftUS)",9001,4152,12234,9802,1,1,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26831,"NAD83(HARN) / Minnesota Central (ftUS)",9001,4152,12235,9802,1,1,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26832,"NAD83(HARN) / Minnesota South (ftUS)",9001,4152,12236,9802,1,1,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26833,"NAD83(HARN) / Nebraska (ftUS)",9001,4152,15396,9802,1,1,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +26834,"NAD83(HARN) / West Virginia North (ftUS)",9001,4152,14733,9802,1,1,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,, +26835,"NAD83(HARN) / West Virginia South (ftUS)",9001,4152,14734,9802,1,1,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,, +26836,"NAD83(NSRS2007) / Maine East (ftUS)",9001,4759,11833,9807,1,1,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +26837,"NAD83(NSRS2007) / Maine West (ftUS)",9001,4759,11834,9807,1,1,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +26841,"NAD83(NSRS2007) / Minnesota North (ftUS)",9001,4759,12234,9802,1,1,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26842,"NAD83(NSRS2007) / Minnesota Central (ftUS)",9001,4759,12235,9802,1,1,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26843,"NAD83(NSRS2007) / Minnesota South (ftUS)",9001,4759,12236,9802,1,1,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26844,"NAD83(NSRS2007) / Nebraska (ftUS)",9001,4759,15396,9802,1,1,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +26845,"NAD83(NSRS2007) / West Virginia North (ftUS)",9001,4759,14733,9802,1,1,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,, +26846,"NAD83(NSRS2007) / West Virginia South (ftUS)",9001,4759,14734,9802,1,1,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,, +26847,"NAD83 / Maine East (ftUS)",9003,4269,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +26848,"NAD83 / Maine West (ftUS)",9003,4269,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +26849,"NAD83 / Minnesota North (ftUS)",9003,4269,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26850,"NAD83 / Minnesota Central (ftUS)",9003,4269,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26851,"NAD83 / Minnesota South (ftUS)",9003,4269,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26852,"NAD83 / Nebraska (ftUS)",9003,4269,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +26853,"NAD83 / West Virginia North (ftUS)",9003,4269,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +26854,"NAD83 / West Virginia South (ftUS)",9003,4269,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +26855,"NAD83(HARN) / Maine East (ftUS)",9003,4152,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +26856,"NAD83(HARN) / Maine West (ftUS)",9003,4152,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +26857,"NAD83(HARN) / Minnesota North (ftUS)",9003,4152,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26858,"NAD83(HARN) / Minnesota Central (ftUS)",9003,4152,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26859,"NAD83(HARN) / Minnesota South (ftUS)",9003,4152,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26860,"NAD83(HARN) / Nebraska (ftUS)",9003,4152,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +26861,"NAD83(HARN) / West Virginia North (ftUS)",9003,4152,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +26862,"NAD83(HARN) / West Virginia South (ftUS)",9003,4152,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +26863,"NAD83(NSRS2007) / Maine East (ftUS)",9003,4759,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,, +26864,"NAD83(NSRS2007) / Maine West (ftUS)",9003,4759,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,, +26865,"NAD83(NSRS2007) / Minnesota North (ftUS)",9003,4759,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26866,"NAD83(NSRS2007) / Minnesota Central (ftUS)",9003,4759,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26867,"NAD83(NSRS2007) / Minnesota South (ftUS)",9003,4759,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,, +26868,"NAD83(NSRS2007) / Nebraska (ftUS)",9003,4759,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,, +26869,"NAD83(NSRS2007) / West Virginia North (ftUS)",9003,4759,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +26870,"NAD83(NSRS2007) / West Virginia South (ftUS)",9003,4759,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,, +26891,"NAD83(CSRS) / MTM zone 11",9001,4617,17711,9807,1,0,4400,8801,0,9110,8802,-82.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26892,"NAD83(CSRS) / MTM zone 12",9001,4617,17712,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26893,"NAD83(CSRS) / MTM zone 13",9001,4617,17713,9807,1,0,4400,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26894,"NAD83(CSRS) / MTM zone 14",9001,4617,17714,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26895,"NAD83(CSRS) / MTM zone 15",9001,4617,17715,9807,1,0,4400,8801,0,9102,8802,-90,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26896,"NAD83(CSRS) / MTM zone 16",9001,4617,17716,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26897,"NAD83(CSRS) / MTM zone 17",9001,4617,17717,9807,1,0,4400,8801,0,9102,8802,-96,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26898,"NAD83(CSRS) / MTM zone 1",9001,4617,17701,9807,1,0,4496,8801,0,9102,8802,-53,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26899,"NAD83(CSRS) / MTM zone 2",9001,4617,17702,9807,1,0,4496,8801,0,9102,8802,-56,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +26901,"NAD83 / UTM zone 1N",9001,4269,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26902,"NAD83 / UTM zone 2N",9001,4269,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26903,"NAD83 / UTM zone 3N",9001,4269,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26904,"NAD83 / UTM zone 4N",9001,4269,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26905,"NAD83 / UTM zone 5N",9001,4269,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26906,"NAD83 / UTM zone 6N",9001,4269,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26907,"NAD83 / UTM zone 7N",9001,4269,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26908,"NAD83 / UTM zone 8N",9001,4269,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26909,"NAD83 / UTM zone 9N",9001,4269,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26910,"NAD83 / UTM zone 10N",9001,4269,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26911,"NAD83 / UTM zone 11N",9001,4269,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26912,"NAD83 / UTM zone 12N",9001,4269,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26913,"NAD83 / UTM zone 13N",9001,4269,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26914,"NAD83 / UTM zone 14N",9001,4269,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26915,"NAD83 / UTM zone 15N",9001,4269,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26916,"NAD83 / UTM zone 16N",9001,4269,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26917,"NAD83 / UTM zone 17N",9001,4269,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26918,"NAD83 / UTM zone 18N",9001,4269,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26919,"NAD83 / UTM zone 19N",9001,4269,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26920,"NAD83 / UTM zone 20N",9001,4269,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26921,"NAD83 / UTM zone 21N",9001,4269,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26922,"NAD83 / UTM zone 22N",9001,4269,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26923,"NAD83 / UTM zone 23N",9001,4269,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26929,"NAD83 / Alabama East",9001,4269,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +26930,"NAD83 / Alabama West",9001,4269,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +26931,"NAD83 / Alaska zone 1",9001,4269,15031,9812,1,0,4499,8806,5000000,9001,8807,-5000000,9001,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,, +26932,"NAD83 / Alaska zone 2",9001,4269,15032,9807,1,0,4499,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26933,"NAD83 / Alaska zone 3",9001,4269,15033,9807,1,0,4499,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26934,"NAD83 / Alaska zone 4",9001,4269,15034,9807,1,0,4499,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26935,"NAD83 / Alaska zone 5",9001,4269,15035,9807,1,0,4499,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26936,"NAD83 / Alaska zone 6",9001,4269,15036,9807,1,0,4499,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26937,"NAD83 / Alaska zone 7",9001,4269,15037,9807,1,0,4499,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26938,"NAD83 / Alaska zone 8",9001,4269,15038,9807,1,0,4499,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26939,"NAD83 / Alaska zone 9",9001,4269,15039,9807,1,0,4499,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26940,"NAD83 / Alaska zone 10",9001,4269,15040,9802,1,0,4499,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +26941,"NAD83 / California zone 1",9001,4269,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +26942,"NAD83 / California zone 2",9001,4269,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +26943,"NAD83 / California zone 3",9001,4269,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +26944,"NAD83 / California zone 4",9001,4269,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +26945,"NAD83 / California zone 5",9001,4269,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +26946,"NAD83 / California zone 6",9001,4269,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,, +26948,"NAD83 / Arizona East",9001,4269,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +26949,"NAD83 / Arizona Central",9001,4269,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +26950,"NAD83 / Arizona West",9001,4269,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,, +26951,"NAD83 / Arkansas North",9001,4269,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +26952,"NAD83 / Arkansas South",9001,4269,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +26953,"NAD83 / Colorado North",9001,4269,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +26954,"NAD83 / Colorado Central",9001,4269,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +26955,"NAD83 / Colorado South",9001,4269,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,, +26956,"NAD83 / Connecticut",9001,4269,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,, +26957,"NAD83 / Delaware",9001,4269,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +26958,"NAD83 / Florida East",9001,4269,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +26959,"NAD83 / Florida West",9001,4269,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +26960,"NAD83 / Florida North",9001,4269,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +26961,"NAD83 / Hawaii zone 1",9001,4269,15131,9807,1,0,4499,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26962,"NAD83 / Hawaii zone 2",9001,4269,15132,9807,1,0,4499,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26963,"NAD83 / Hawaii zone 3",9001,4269,15133,9807,1,0,4499,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26964,"NAD83 / Hawaii zone 4",9001,4269,15134,9807,1,0,4499,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26965,"NAD83 / Hawaii zone 5",9001,4269,15135,9807,1,0,4499,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26966,"NAD83 / Georgia East",9001,4269,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +26967,"NAD83 / Georgia West",9001,4269,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +26968,"NAD83 / Idaho East",9001,4269,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +26969,"NAD83 / Idaho Central",9001,4269,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26970,"NAD83 / Idaho West",9001,4269,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,, +26971,"NAD83 / Illinois East",9001,4269,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +26972,"NAD83 / Illinois West",9001,4269,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +26973,"NAD83 / Indiana East",9001,4269,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,, +26974,"NAD83 / Indiana West",9001,4269,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,, +26975,"NAD83 / Iowa North",9001,4269,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,, +26976,"NAD83 / Iowa South",9001,4269,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +26977,"NAD83 / Kansas North",9001,4269,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +26978,"NAD83 / Kansas South",9001,4269,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +26979,"NAD83 / Kentucky North",9001,4269,11631,9802,1,1,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,37.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +26980,"NAD83 / Kentucky South",9001,4269,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,, +26981,"NAD83 / Louisiana North",9001,4269,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +26982,"NAD83 / Louisiana South",9001,4269,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +26983,"NAD83 / Maine East",9001,4269,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +26984,"NAD83 / Maine West",9001,4269,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,, +26985,"NAD83 / Maryland",9001,4269,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, +26986,"NAD83 / Massachusetts Mainland",9001,4269,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,, +26987,"NAD83 / Massachusetts Island",9001,4269,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +26988,"NAD83 / Michigan North",9001,4269,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,, +26989,"NAD83 / Michigan Central",9001,4269,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,, +26990,"NAD83 / Michigan South",9001,4269,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,, +26991,"NAD83 / Minnesota North",9001,4269,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +26992,"NAD83 / Minnesota Central",9001,4269,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +26993,"NAD83 / Minnesota South",9001,4269,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,, +26994,"NAD83 / Mississippi East",9001,4269,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +26995,"NAD83 / Mississippi West",9001,4269,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,, +26996,"NAD83 / Missouri East",9001,4269,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +26997,"NAD83 / Missouri Central",9001,4269,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +26998,"NAD83 / Missouri West",9001,4269,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,, +27037,"Nahrwan 1967 / UTM zone 37N",9001,4270,16037,9807,1,1,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +27038,"Nahrwan 1967 / UTM zone 38N",9001,4270,16038,9807,1,1,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +27039,"Nahrwan 1967 / UTM zone 39N",9001,4270,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +27040,"Nahrwan 1967 / UTM zone 40N",9001,4270,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +27120,"Naparima 1972 / UTM zone 20N",9001,4271,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +27200,"NZGD49 / New Zealand Map Grid",9001,4272,19917,9811,1,0,4400,8801,-41,9102,8802,173,9102,8806,2510000,9001,8807,6023150,9001,,,,,,,,,,,,,,,, +27205,"NZGD49 / Mount Eden Circuit",9001,4272,17901,9807,1,0,4500,8801,-36.5247515,9110,8802,174.45516217,9110,8805,0.9999,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27206,"NZGD49 / Bay of Plenty Circuit",9001,4272,17902,9807,1,0,4500,8801,-37.45404993,9110,8802,176.27583101,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27207,"NZGD49 / Poverty Bay Circuit",9001,4272,17903,9807,1,0,4500,8801,-38.372893,9110,8802,177.53082906,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27208,"NZGD49 / Hawkes Bay Circuit",9001,4272,17904,9807,1,0,4500,8801,-39.39033455,9110,8802,176.40252499,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27209,"NZGD49 / Taranaki Circuit",9001,4272,17905,9807,1,0,4500,8801,-39.08087299,9110,8802,174.13408423,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27210,"NZGD49 / Tuhirangi Circuit",9001,4272,17906,9807,1,0,4500,8801,-39.30448934,9110,8802,175.38241325,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27211,"NZGD49 / Wanganui Circuit",9001,4272,17907,9807,1,0,4500,8801,-40.14310097,9110,8802,175.29171586,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27212,"NZGD49 / Wairarapa Circuit",9001,4272,17908,9807,1,0,4500,8801,-40.55319175,9110,8802,175.38504588,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27213,"NZGD49 / Wellington Circuit",9001,4272,17909,9807,1,0,4500,8801,-41.18047507,9110,8802,174.46358432,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27214,"NZGD49 / Collingwood Circuit",9001,4272,17910,9807,1,0,4500,8801,-40.42531326,9110,8802,172.40193674,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27215,"NZGD49 / Nelson Circuit",9001,4272,17911,9807,1,0,4500,8801,-41.1628361,9110,8802,173.17575405,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27216,"NZGD49 / Karamea Circuit",9001,4272,17912,9807,1,0,4500,8801,-41.17236815,9110,8802,172.06325015,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27217,"NZGD49 / Buller Circuit",9001,4272,17913,9807,1,0,4500,8801,-41.48388903,9110,8802,171.34525362,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27218,"NZGD49 / Grey Circuit",9001,4272,17914,9807,1,0,4500,8801,-42.20012994,9110,8802,171.32591767,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27219,"NZGD49 / Amuri Circuit",9001,4272,17915,9807,1,0,4500,8801,-42.41208197,9110,8802,173.00364802,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27220,"NZGD49 / Marlborough Circuit",9001,4272,17916,9807,1,0,4500,8801,-41.3240152,9110,8802,173.48074668,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27221,"NZGD49 / Hokitika Circuit",9001,4272,17917,9807,1,0,4500,8801,-42.53107605,9110,8802,170.58479766,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27222,"NZGD49 / Okarito Circuit",9001,4272,17918,9807,1,0,4500,8801,-43.06364613,9110,8802,170.1539333,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27223,"NZGD49 / Jacksons Bay Circuit",9001,4272,17919,9807,1,0,4500,8801,-43.58400904,9110,8802,168.36225612,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27224,"NZGD49 / Mount Pleasant Circuit",9001,4272,17920,9807,1,0,4500,8801,-43.35262953,9110,8802,172.43378969,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27225,"NZGD49 / Gawler Circuit",9001,4272,17921,9807,1,0,4500,8801,-43.44553616,9110,8802,171.21386945,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27226,"NZGD49 / Timaru Circuit",9001,4272,17922,9807,1,0,4500,8801,-44.24079933,9110,8802,171.0326103,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27227,"NZGD49 / Lindis Peak Circuit",9001,4272,17923,9807,1,0,4500,8801,-44.44069647,9110,8802,169.28039183,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27228,"NZGD49 / Mount Nicholas Circuit",9001,4272,17924,9807,1,0,4500,8801,-45.07584493,9110,8802,168.23551083,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27229,"NZGD49 / Mount York Circuit",9001,4272,17925,9807,1,0,4500,8801,-45.33494142,9110,8802,167.44199024,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27230,"NZGD49 / Observation Point Circuit",9001,4272,17926,9807,1,0,4500,8801,-45.48583078,9110,8802,170.37429426,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27231,"NZGD49 / North Taieri Circuit",9001,4272,17927,9807,1,0,4500,8801,-45.51414481,9110,8802,170.16573208,9110,8805,0.99996,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,, +27232,"NZGD49 / Bluff Circuit",9001,4272,17928,9807,1,0,4500,8801,-46.36000346,9110,8802,168.20343392,9110,8805,1,9201,8806,300002.66,9001,8807,699999.58,9001,,,,,,,,,,,,, +27258,"NZGD49 / UTM zone 58S",9001,4272,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +27259,"NZGD49 / UTM zone 59S",9001,4272,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +27260,"NZGD49 / UTM zone 60S",9001,4272,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +27291,"NZGD49 / North Island Grid",9040,4272,18141,9807,1,0,4409,8801,-39,9110,8802,175.3,9110,8805,1,9201,8806,300000,9040,8807,400000,9040,,,,,,,,,,,,, +27292,"NZGD49 / South Island Grid",9040,4272,18142,9807,1,0,4409,8801,-44,9110,8802,171.3,9110,8805,1,9201,8806,500000,9040,8807,500000,9040,,,,,,,,,,,,, +27391,"NGO 1948 (Oslo) / NGO zone I",9001,4817,18221,9807,1,0,4531,8801,58,9110,8802,-4.4,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27392,"NGO 1948 (Oslo) / NGO zone II",9001,4817,18222,9807,1,0,4531,8801,58,9110,8802,-2.2,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27393,"NGO 1948 (Oslo) / NGO zone III",9001,4817,18223,9807,1,0,4531,8801,58,9110,8802,0,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27394,"NGO 1948 (Oslo) / NGO zone IV",9001,4817,18224,9807,1,0,4531,8801,58,9110,8802,2.3,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27395,"NGO 1948 (Oslo) / NGO zone V",9001,4817,18225,9807,1,0,4531,8801,58,9110,8802,6.1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27396,"NGO 1948 (Oslo) / NGO zone VI",9001,4817,18226,9807,1,0,4531,8801,58,9110,8802,10.1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27397,"NGO 1948 (Oslo) / NGO zone VII",9001,4817,18227,9807,1,0,4531,8801,58,9110,8802,14.1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27398,"NGO 1948 (Oslo) / NGO zone VIII",9001,4817,18228,9807,1,0,4531,8801,58,9110,8802,18.2,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +27429,"Datum 73 / UTM zone 29N",9001,4274,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +27492,"Datum 73 / Modified Portuguese Grid",9001,4274,19974,9807,1,1,4530,8801,39.4,9110,8802,-8.0754862,9110,8805,1,9201,8806,180.598,9001,8807,-86.99,9001,,,,,,,,,,,,, +27493,"Datum 73 / Modified Portuguese Grid",9001,4274,19974,9807,1,0,4499,8801,39.4,9110,8802,-8.0754862,9110,8805,1,9201,8806,180.598,9001,8807,-86.99,9001,,,,,,,,,,,,, +27500,"ATF (Paris) / Nord de Guerre",9001,4901,19903,9801,1,0,4499,8801,55,9105,8802,6,9105,8805,0.99950908,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +27561,"NTF (Paris) / Lambert Nord France",9001,4807,18091,9801,1,0,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,, +27562,"NTF (Paris) / Lambert Centre France",9001,4807,18092,9801,1,0,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,, +27563,"NTF (Paris) / Lambert Sud France",9001,4807,18093,9801,1,0,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,, +27564,"NTF (Paris) / Lambert Corse",9001,4807,18094,9801,1,0,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,185861.369,9001,,,,,,,,,,,,, +27571,"NTF (Paris) / Lambert zone I",9001,4807,18081,9801,1,0,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,1200000,9001,,,,,,,,,,,,, +27572,"NTF (Paris) / Lambert zone II",9001,4807,18082,9801,1,0,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,2200000,9001,,,,,,,,,,,,, +27573,"NTF (Paris) / Lambert zone III",9001,4807,18083,9801,1,0,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,3200000,9001,,,,,,,,,,,,, +27574,"NTF (Paris) / Lambert zone IV",9001,4807,18084,9801,1,0,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,4185861.369,9001,,,,,,,,,,,,, +27581,"NTF (Paris) / France I",9001,4807,18081,9801,1,1,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,1200000,9001,,,,,,,,,,,,, +27582,"NTF (Paris) / France II",9001,4807,18082,9801,1,1,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,2200000,9001,,,,,,,,,,,,, +27583,"NTF (Paris) / France III",9001,4807,18083,9801,1,1,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,3200000,9001,,,,,,,,,,,,, +27584,"NTF (Paris) / France IV",9001,4807,18084,9801,1,1,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,4185861.369,9001,,,,,,,,,,,,, +27591,"NTF (Paris) / Nord France",9001,4807,18091,9801,1,1,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,, +27592,"NTF (Paris) / Centre France",9001,4807,18092,9801,1,1,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,, +27593,"NTF (Paris) / Sud France",9001,4807,18093,9801,1,1,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,, +27594,"NTF (Paris) / Corse",9001,4807,18094,9801,1,1,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,185861.369,9001,,,,,,,,,,,,, +27700,"OSGB 1936 / British National Grid",9001,4277,19916,9807,1,0,4400,8801,49,9102,8802,-2,9102,8805,0.9996012717,9201,8806,400000,9001,8807,-100000,9001,,,,,,,,,,,,, +28191,"Palestine 1923 / Palestine Grid",9001,4281,18201,9806,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8806,170251.555,9001,8807,126867.909,9001,,,,,,,,,,,,,,,, +28192,"Palestine 1923 / Palestine Belt",9001,4281,18202,9807,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8805,1,9201,8806,170251.555,9001,8807,1126867.909,9001,,,,,,,,,,,,, +28193,"Palestine 1923 / Israeli CS Grid",9001,4281,18203,9806,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8806,170251.555,9001,8807,1126867.909,9001,,,,,,,,,,,,,,,, +28232,"Pointe Noire / UTM zone 32S",9001,4282,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28348,"GDA94 / MGA zone 48",9001,4283,17348,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28349,"GDA94 / MGA zone 49",9001,4283,17349,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28350,"GDA94 / MGA zone 50",9001,4283,17350,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28351,"GDA94 / MGA zone 51",9001,4283,17351,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28352,"GDA94 / MGA zone 52",9001,4283,17352,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28353,"GDA94 / MGA zone 53",9001,4283,17353,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28354,"GDA94 / MGA zone 54",9001,4283,17354,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28355,"GDA94 / MGA zone 55",9001,4283,17355,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28356,"GDA94 / MGA zone 56",9001,4283,17356,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28357,"GDA94 / MGA zone 57",9001,4283,17357,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28358,"GDA94 / MGA zone 58",9001,4283,17358,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +28402,"Pulkovo 1942 / Gauss-Kruger zone 2",9001,4284,16202,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +28403,"Pulkovo 1942 / Gauss-Kruger zone 3",9001,4284,16203,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +28404,"Pulkovo 1942 / Gauss-Kruger zone 4",9001,4284,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +28405,"Pulkovo 1942 / Gauss-Kruger zone 5",9001,4284,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +28406,"Pulkovo 1942 / Gauss-Kruger zone 6",9001,4284,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +28407,"Pulkovo 1942 / Gauss-Kruger zone 7",9001,4284,16207,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +28408,"Pulkovo 1942 / Gauss-Kruger zone 8",9001,4284,16208,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +28409,"Pulkovo 1942 / Gauss-Kruger zone 9",9001,4284,16209,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,, +28410,"Pulkovo 1942 / Gauss-Kruger zone 10",9001,4284,16210,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,, +28411,"Pulkovo 1942 / Gauss-Kruger zone 11",9001,4284,16211,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,, +28412,"Pulkovo 1942 / Gauss-Kruger zone 12",9001,4284,16212,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,, +28413,"Pulkovo 1942 / Gauss-Kruger zone 13",9001,4284,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,, +28414,"Pulkovo 1942 / Gauss-Kruger zone 14",9001,4284,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,, +28415,"Pulkovo 1942 / Gauss-Kruger zone 15",9001,4284,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,, +28416,"Pulkovo 1942 / Gauss-Kruger zone 16",9001,4284,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,, +28417,"Pulkovo 1942 / Gauss-Kruger zone 17",9001,4284,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,, +28418,"Pulkovo 1942 / Gauss-Kruger zone 18",9001,4284,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,, +28419,"Pulkovo 1942 / Gauss-Kruger zone 19",9001,4284,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,, +28420,"Pulkovo 1942 / Gauss-Kruger zone 20",9001,4284,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,, +28421,"Pulkovo 1942 / Gauss-Kruger zone 21",9001,4284,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,, +28422,"Pulkovo 1942 / Gauss-Kruger zone 22",9001,4284,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,, +28423,"Pulkovo 1942 / Gauss-Kruger zone 23",9001,4284,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,, +28424,"Pulkovo 1942 / Gauss-Kruger zone 24",9001,4284,16224,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +28425,"Pulkovo 1942 / Gauss-Kruger zone 25",9001,4284,16225,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +28426,"Pulkovo 1942 / Gauss-Kruger zone 26",9001,4284,16226,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,, +28427,"Pulkovo 1942 / Gauss-Kruger zone 27",9001,4284,16227,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,, +28428,"Pulkovo 1942 / Gauss-Kruger zone 28",9001,4284,16228,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,, +28429,"Pulkovo 1942 / Gauss-Kruger zone 29",9001,4284,16229,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,, +28430,"Pulkovo 1942 / Gauss-Kruger zone 30",9001,4284,16230,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,, +28431,"Pulkovo 1942 / Gauss-Kruger zone 31",9001,4284,16231,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,, +28432,"Pulkovo 1942 / Gauss-Kruger zone 32",9001,4284,16232,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,, +28462,"Pulkovo 1942 / Gauss-Kruger 2N",9001,4284,16302,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28463,"Pulkovo 1942 / Gauss-Kruger 3N",9001,4284,16303,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28464,"Pulkovo 1942 / Gauss-Kruger 4N",9001,4284,16304,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28465,"Pulkovo 1942 / Gauss-Kruger 5N",9001,4284,16305,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28466,"Pulkovo 1942 / Gauss-Kruger 6N",9001,4284,16306,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28467,"Pulkovo 1942 / Gauss-Kruger 7N",9001,4284,16307,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28468,"Pulkovo 1942 / Gauss-Kruger 8N",9001,4284,16308,9807,1,1,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28469,"Pulkovo 1942 / Gauss-Kruger 9N",9001,4284,16309,9807,1,1,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28470,"Pulkovo 1942 / Gauss-Kruger 10N",9001,4284,16310,9807,1,1,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28471,"Pulkovo 1942 / Gauss-Kruger 11N",9001,4284,16311,9807,1,1,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28472,"Pulkovo 1942 / Gauss-Kruger 12N",9001,4284,16312,9807,1,1,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28473,"Pulkovo 1942 / Gauss-Kruger 13N",9001,4284,16313,9807,1,1,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28474,"Pulkovo 1942 / Gauss-Kruger 14N",9001,4284,16314,9807,1,1,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28475,"Pulkovo 1942 / Gauss-Kruger 15N",9001,4284,16315,9807,1,1,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28476,"Pulkovo 1942 / Gauss-Kruger 16N",9001,4284,16316,9807,1,1,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28477,"Pulkovo 1942 / Gauss-Kruger 17N",9001,4284,16317,9807,1,1,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28478,"Pulkovo 1942 / Gauss-Kruger 18N",9001,4284,16318,9807,1,1,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28479,"Pulkovo 1942 / Gauss-Kruger 19N",9001,4284,16319,9807,1,1,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28480,"Pulkovo 1942 / Gauss-Kruger 20N",9001,4284,16320,9807,1,1,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28481,"Pulkovo 1942 / Gauss-Kruger 21N",9001,4284,16321,9807,1,1,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28482,"Pulkovo 1942 / Gauss-Kruger 22N",9001,4284,16322,9807,1,1,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28483,"Pulkovo 1942 / Gauss-Kruger 23N",9001,4284,16323,9807,1,1,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28484,"Pulkovo 1942 / Gauss-Kruger 24N",9001,4284,16324,9807,1,1,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28485,"Pulkovo 1942 / Gauss-Kruger 25N",9001,4284,16325,9807,1,1,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28486,"Pulkovo 1942 / Gauss-Kruger 26N",9001,4284,16326,9807,1,1,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28487,"Pulkovo 1942 / Gauss-Kruger 27N",9001,4284,16327,9807,1,1,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28488,"Pulkovo 1942 / Gauss-Kruger 28N",9001,4284,16328,9807,1,1,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28489,"Pulkovo 1942 / Gauss-Kruger 29N",9001,4284,16329,9807,1,1,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28490,"Pulkovo 1942 / Gauss-Kruger 30N",9001,4284,16330,9807,1,1,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28491,"Pulkovo 1942 / Gauss-Kruger 31N",9001,4284,16331,9807,1,1,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28492,"Pulkovo 1942 / Gauss-Kruger 32N",9001,4284,16332,9807,1,1,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +28600,"Qatar 1974 / Qatar National Grid",9001,4285,19919,9807,1,0,4400,8801,24.27,9110,8802,51.13,9110,8805,0.99999,9201,8806,200000,9001,8807,300000,9001,,,,,,,,,,,,, +28991,"Amersfoort / RD Old",9001,4289,19913,9809,1,0,4499,8801,52.0922178,9110,8802,5.23155,9110,8805,0.9999079,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +28992,"Amersfoort / RD New",9001,4289,19914,9809,1,0,4499,8801,52.0922178,9110,8802,5.23155,9110,8805,0.9999079,9201,8806,155000,9001,8807,463000,9001,,,,,,,,,,,,, +29100,"SAD69 / Brazil Polyconic",9001,4291,19941,9818,1,1,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,, +29101,"SAD69 / Brazil Polyconic",9001,4618,19941,9818,1,0,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,, +29118,"SAD69 / UTM zone 18N",9001,4291,16018,9807,1,1,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29119,"SAD69 / UTM zone 19N",9001,4291,16019,9807,1,1,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29120,"SAD69 / UTM zone 20N",9001,4291,16020,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29121,"SAD69 / UTM zone 21N",9001,4291,16021,9807,1,1,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29122,"SAD69 / UTM zone 22N",9001,4291,16022,9807,1,1,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29168,"SAD69 / UTM zone 18N",9001,4618,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29169,"SAD69 / UTM zone 19N",9001,4618,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29170,"SAD69 / UTM zone 20N",9001,4618,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29171,"SAD69 / UTM zone 21N",9001,4618,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29172,"SAD69 / UTM zone 22N",9001,4618,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29177,"SAD69 / UTM zone 17S",9001,4291,16117,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29178,"SAD69 / UTM zone 18S",9001,4291,16118,9807,1,1,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29179,"SAD69 / UTM zone 19S",9001,4291,16119,9807,1,1,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29180,"SAD69 / UTM zone 20S",9001,4291,16120,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29181,"SAD69 / UTM zone 21S",9001,4291,16121,9807,1,1,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29182,"SAD69 / UTM zone 22S",9001,4291,16122,9807,1,1,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29183,"SAD69 / UTM zone 23S",9001,4291,16123,9807,1,1,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29184,"SAD69 / UTM zone 24S",9001,4291,16124,9807,1,1,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29185,"SAD69 / UTM zone 25S",9001,4291,16125,9807,1,1,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29187,"SAD69 / UTM zone 17S",9001,4618,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29188,"SAD69 / UTM zone 18S",9001,4618,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29189,"SAD69 / UTM zone 19S",9001,4618,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29190,"SAD69 / UTM zone 20S",9001,4618,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29191,"SAD69 / UTM zone 21S",9001,4618,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29192,"SAD69 / UTM zone 22S",9001,4618,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29193,"SAD69 / UTM zone 23S",9001,4618,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29194,"SAD69 / UTM zone 24S",9001,4618,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29195,"SAD69 / UTM zone 25S",9001,4618,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29220,"Sapper Hill 1943 / UTM zone 20S",9001,4292,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29221,"Sapper Hill 1943 / UTM zone 21S",9001,4292,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29333,"Schwarzeck / UTM zone 33S",9001,4293,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29371,"Schwarzeck / Lo22/11",9031,4293,17611,9808,1,0,6502,8801,-22,9102,8802,11,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29373,"Schwarzeck / Lo22/13",9031,4293,17613,9808,1,0,6502,8801,-22,9102,8802,13,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29375,"Schwarzeck / Lo22/15",9031,4293,17615,9808,1,0,6502,8801,-22,9102,8802,15,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29377,"Schwarzeck / Lo22/17",9031,4293,17617,9808,1,0,6502,8801,-22,9102,8802,17,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29379,"Schwarzeck / Lo22/19",9031,4293,17619,9808,1,0,6502,8801,-22,9102,8802,19,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29381,"Schwarzeck / Lo22/21",9031,4293,17621,9808,1,0,6502,8801,-22,9102,8802,21,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29383,"Schwarzeck / Lo22/23",9031,4293,17623,9808,1,0,6502,8801,-22,9102,8802,23,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29385,"Schwarzeck / Lo22/25",9031,4293,17625,9808,1,0,6502,8801,-22,9102,8802,25,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,, +29635,"Sudan / UTM zone 35N",9001,4296,16035,9807,1,1,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29636,"Sudan / UTM zone 36N",9001,4296,16036,9807,1,1,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29700,"Tananarive (Paris) / Laborde Grid",9001,4810,19911,9815,1,1,4499,8811,-21,9105,8812,49,9105,8813,21,9105,8814,21,9105,8815,0.9995,9201,8816,400000,9001,8817,800000,9001,,,,,,, +29701,"Tananarive (Paris) / Laborde Grid",9001,4810,19861,9813,1,0,4530,8806,400000,9001,8807,800000,9001,8811,-21,9105,8812,49,9105,8813,21,9105,8815,0.9995,9201,,,,,,,,,, +29702,"Tananarive (Paris) / Laborde Grid approximation",9001,4810,19911,9815,1,0,4530,8811,-21,9105,8812,49,9105,8813,21,9105,8814,21,9105,8815,0.9995,9201,8816,400000,9001,8817,800000,9001,,,,,,, +29738,"Tananarive / UTM zone 38S",9001,4297,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29739,"Tananarive / UTM zone 39S",9001,4297,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +29849,"Timbalai 1948 / UTM zone 49N",9001,4298,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29850,"Timbalai 1948 / UTM zone 50N",9001,4298,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +29871,"Timbalai 1948 / RSO Borneo (ch)",9042,4298,19956,9815,1,0,4402,8811,4,9110,8812,115,9110,8813,53.18569537,9110,8814,53.07483685,9110,8815,0.99984,9201,8816,29352.4763,9042,8817,22014.3572,9042,,,,,,, +29872,"Timbalai 1948 / RSO Borneo (ftSe)",9041,4298,19957,9815,1,0,4405,8811,4,9110,8812,115,9110,8813,53.18569537,9110,8814,53.07483685,9110,8815,0.99984,9201,8816,1937263.44,9041,8817,1452947.58,9041,,,,,,, +29873,"Timbalai 1948 / RSO Borneo (m)",9001,4298,19958,9815,1,0,4400,8811,4,9110,8812,115,9110,8813,53.18569537,9110,8814,53.07483685,9110,8815,0.99984,9201,8816,590476.87,9001,8817,442857.65,9001,,,,,,, +29900,"TM65 / Irish National Grid",9001,4299,19908,9807,1,1,4400,8801,53.3,9110,8802,-8,9110,8805,1.000035,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,, +29901,"OSNI 1952 / Irish National Grid",9001,4188,19973,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,1,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,, +29902,"TM65 / Irish Grid",9001,4299,19972,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,1.000035,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,, +29903,"TM75 / Irish Grid",9001,4300,19972,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,1.000035,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,, +30161,"Tokyo / Japan Plane Rectangular CS I",9001,4301,17801,9807,1,0,4530,8801,33,9110,8802,129.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30162,"Tokyo / Japan Plane Rectangular CS II",9001,4301,17802,9807,1,0,4530,8801,33,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30163,"Tokyo / Japan Plane Rectangular CS III",9001,4301,17803,9807,1,0,4530,8801,36,9110,8802,132.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30164,"Tokyo / Japan Plane Rectangular CS IV",9001,4301,17804,9807,1,0,4530,8801,33,9110,8802,133.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30165,"Tokyo / Japan Plane Rectangular CS V",9001,4301,17805,9807,1,0,4530,8801,36,9110,8802,134.2,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30166,"Tokyo / Japan Plane Rectangular CS VI",9001,4301,17806,9807,1,0,4530,8801,36,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30167,"Tokyo / Japan Plane Rectangular CS VII",9001,4301,17807,9807,1,0,4530,8801,36,9110,8802,137.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30168,"Tokyo / Japan Plane Rectangular CS VIII",9001,4301,17808,9807,1,0,4530,8801,36,9110,8802,138.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30169,"Tokyo / Japan Plane Rectangular CS IX",9001,4301,17809,9807,1,0,4530,8801,36,9110,8802,139.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30170,"Tokyo / Japan Plane Rectangular CS X",9001,4301,17810,9807,1,0,4530,8801,40,9110,8802,140.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30171,"Tokyo / Japan Plane Rectangular CS XI",9001,4301,17811,9807,1,0,4530,8801,44,9110,8802,140.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30172,"Tokyo / Japan Plane Rectangular CS XII",9001,4301,17812,9807,1,0,4530,8801,44,9110,8802,142.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30173,"Tokyo / Japan Plane Rectangular CS XIII",9001,4301,17813,9807,1,0,4530,8801,44,9110,8802,144.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30174,"Tokyo / Japan Plane Rectangular CS XIV",9001,4301,17814,9807,1,0,4530,8801,26,9110,8802,142,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30175,"Tokyo / Japan Plane Rectangular CS XV",9001,4301,17815,9807,1,0,4530,8801,26,9110,8802,127.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30176,"Tokyo / Japan Plane Rectangular CS XVI",9001,4301,17816,9807,1,0,4530,8801,26,9110,8802,124,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30177,"Tokyo / Japan Plane Rectangular CS XVII",9001,4301,17817,9807,1,0,4530,8801,26,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30178,"Tokyo / Japan Plane Rectangular CS XVIII",9001,4301,17818,9807,1,0,4530,8801,20,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30179,"Tokyo / Japan Plane Rectangular CS XIX",9001,4301,17819,9807,1,0,4530,8801,26,9110,8802,154,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +30200,"Trinidad 1903 / Trinidad Grid",9039,4302,19925,9806,1,0,4407,8801,10.263,9110,8802,-61.2,9110,8806,430000,9039,8807,325000,9039,,,,,,,,,,,,,,,, +30339,"TC(1948) / UTM zone 39N",9001,4303,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +30340,"TC(1948) / UTM zone 40N",9001,4303,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +30491,"Voirol 1875 / Nord Algerie (ancienne)",9001,4304,18011,9801,1,0,4499,8801,40,9105,8802,3,9105,8805,0.999625544,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +30492,"Voirol 1875 / Sud Algerie (ancienne)",9001,4304,18012,9801,1,0,4499,8801,37,9105,8802,3,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +30493,"Voirol 1879 / Nord Algerie (ancienne)",9001,4671,18011,9801,1,0,4499,8801,40,9105,8802,3,9105,8805,0.999625544,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +30494,"Voirol 1879 / Sud Algerie (ancienne)",9001,4671,18012,9801,1,0,4499,8801,37,9105,8802,3,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,, +30729,"Nord Sahara 1959 / UTM zone 29N",9001,4307,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +30730,"Nord Sahara 1959 / UTM zone 30N",9001,4307,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +30731,"Nord Sahara 1959 / UTM zone 31N",9001,4307,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +30732,"Nord Sahara 1959 / UTM zone 32N",9001,4307,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +30791,"Nord Sahara 1959 / Nord Algerie",9001,4307,18021,9801,1,0,4499,8801,40,9105,8802,3,9105,8805,0.999625544,9201,8806,500135,9001,8807,300090,9001,,,,,,,,,,,,, +30792,"Nord Sahara 1959 / Sud Algerie",9001,4307,18022,9801,1,0,4499,8801,37,9105,8802,3,9105,8805,0.999625769,9201,8806,500135,9001,8807,300090,9001,,,,,,,,,,,,, +30800,RT38 2.5 gon W,9001,4308,19929,9807,1,1,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +31028,"Yoff / UTM zone 28N",9001,4310,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31121,"Zanderij / UTM zone 21N",9001,4311,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31154,"Zanderij / TM 54 NW",9001,4311,17054,9807,1,0,4400,8801,0,9102,8802,-54,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31170,"Zanderij / Suriname Old TM",9001,4311,19954,9807,1,0,4400,8801,0,9110,8802,-55.41,9110,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31171,"Zanderij / Suriname TM",9001,4311,19955,9807,1,0,4400,8801,0,9110,8802,-55.41,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31251,"MGI (Ferro) / Austria GK West Zone",9001,4805,18001,9807,1,0,4530,8801,0,9102,8802,28,9102,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +31252,"MGI (Ferro) / Austria GK Central Zone",9001,4805,18002,9807,1,0,4530,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +31253,"MGI (Ferro) / Austria GK East Zone",9001,4805,18003,9807,1,0,4530,8801,0,9102,8802,34,9102,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +31254,"MGI / Austria GK West",9001,4312,18004,9807,1,0,4530,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,,,,,,, +31255,"MGI / Austria GK Central",9001,4312,18005,9807,1,0,4530,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,,,,,,, +31256,"MGI / Austria GK East",9001,4312,18006,9807,1,0,4530,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,,,,,,, +31257,"MGI / Austria GK M28",9001,4312,18007,9807,1,0,4530,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,150000,9001,8807,-5000000,9001,,,,,,,,,,,,, +31258,"MGI / Austria GK M31",9001,4312,18008,9807,1,0,4530,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,450000,9001,8807,-5000000,9001,,,,,,,,,,,,, +31259,"MGI / Austria GK M34",9001,4312,18009,9807,1,0,4530,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,750000,9001,8807,-5000000,9001,,,,,,,,,,,,, +31265,"MGI / 3-degree Gauss zone 5",9001,4312,16265,9807,1,1,4499,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +31266,"MGI / 3-degree Gauss zone 6",9001,4312,16266,9807,1,1,4499,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +31267,"MGI / 3-degree Gauss zone 7",9001,4312,16267,9807,1,1,4499,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +31268,"MGI / 3-degree Gauss zone 8",9001,4312,16268,9807,1,1,4499,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +31275,"MGI / Balkans zone 5",9001,4312,18275,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +31276,"MGI / Balkans zone 6",9001,4312,18276,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, +31277,"MGI / Balkans zone 7",9001,4312,18277,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +31278,"MGI / Balkans zone 8",9001,4312,18277,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,, +31279,"MGI / Balkans zone 8",9001,4312,18278,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,, +31281,"MGI (Ferro) / Austria West Zone",9001,4805,18041,9807,1,0,4530,8801,0,9102,8802,28,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +31282,"MGI (Ferro) / Austria Central Zone",9001,4805,18042,9807,1,0,4530,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +31283,"MGI (Ferro) / Austria East Zone",9001,4805,18043,9807,1,0,4530,8801,0,9102,8802,34,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +31284,"MGI / Austria M28",9001,4312,18044,9807,1,0,4530,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +31285,"MGI / Austria M31",9001,4312,18045,9807,1,0,4530,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,450000,9001,8807,0,9001,,,,,,,,,,,,, +31286,"MGI / Austria M34",9001,4312,18046,9807,1,0,4530,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,750000,9001,8807,0,9001,,,,,,,,,,,,, +31287,"MGI / Austria Lambert",9001,4312,19947,9802,1,0,4530,8821,47.3,9110,8822,13.2,9110,8823,49,9110,8824,46,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +31288,"MGI (Ferro) / M28",9001,4805,18047,9807,1,0,4530,8801,0,9102,8802,28,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +31289,"MGI (Ferro) / M31",9001,4805,18048,9807,1,0,4530,8801,0,9102,8802,31,9102,8805,1,9201,8806,450000,9001,8807,0,9001,,,,,,,,,,,,, +31290,"MGI (Ferro) / M34",9001,4805,18049,9807,1,0,4530,8801,0,9102,8802,34,9102,8805,1,9201,8806,750000,9001,8807,0,9001,,,,,,,,,,,,, +31291,"MGI (Ferro) / Austria West Zone",9001,4805,18041,9807,1,1,4499,8801,0,9102,8802,28,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +31292,"MGI (Ferro) / Austria Central Zone",9001,4805,18042,9807,1,1,4499,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +31293,"MGI (Ferro) / Austria East Zone",9001,4805,18043,9807,1,1,4499,8801,0,9102,8802,34,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, +31294,"MGI / M28",9001,4312,18044,9807,1,1,4499,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +31295,"MGI / M31",9001,4312,18045,9807,1,1,4499,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,450000,9001,8807,0,9001,,,,,,,,,,,,, +31296,"MGI / M34",9001,4312,18046,9807,1,1,4499,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,750000,9001,8807,0,9001,,,,,,,,,,,,, +31297,"MGI / Austria Lambert",9001,4312,19947,9802,1,1,4499,8821,47.3,9110,8822,13.2,9110,8823,49,9110,8824,46,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,, +31300,"Belge 1972 / Belge Lambert 72",9001,4313,19902,9803,1,0,4499,8821,90,9110,8822,4.2124983,9110,8823,49.5,9110,8824,51.1,9110,8826,150000.01256,9001,8827,5400088.4378,9001,,,,,,,,,, +31370,"Belge 1972 / Belgian Lambert 72",9001,4313,19961,9802,1,0,4499,8821,90,9110,8822,4.2202952,9110,8823,51.100000204,9110,8824,49.500000204,9110,8826,150000.013,9001,8827,5400088.438,9001,,,,,,,,,, +31461,"DHDN / 3-degree Gauss zone 1",9001,4314,16261,9807,1,1,4499,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,, +31462,"DHDN / 3-degree Gauss zone 2",9001,4314,16262,9807,1,1,4499,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +31463,"DHDN / 3-degree Gauss zone 3",9001,4314,16263,9807,1,1,4499,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +31464,"DHDN / 3-degree Gauss zone 4",9001,4314,16264,9807,1,1,4499,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +31465,"DHDN / 3-degree Gauss zone 5",9001,4314,16265,9807,1,1,4499,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +31466,"DHDN / 3-degree Gauss-Kruger zone 2",9001,4314,16262,9807,1,0,4530,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,, +31467,"DHDN / 3-degree Gauss-Kruger zone 3",9001,4314,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,, +31468,"DHDN / 3-degree Gauss-Kruger zone 4",9001,4314,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, +31469,"DHDN / 3-degree Gauss-Kruger zone 5",9001,4314,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, +31528,"Conakry 1905 / UTM zone 28N",9001,4315,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31529,"Conakry 1905 / UTM zone 29N",9001,4315,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31600,"Dealul Piscului 1930 / Stereo 33",9001,4316,19927,9809,1,0,4499,8801,45.54,9110,8802,25.23328772,9110,8805,0.9996667,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +31700,"Dealul Piscului 1970/ Stereo 70",9001,4317,19926,9809,1,1,4530,8801,46,9102,8802,25,9102,8805,0.99975,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,, +31838,"NGN / UTM zone 38N",9001,4318,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31839,"NGN / UTM zone 39N",9001,4318,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31900,"KUDAMS / KTM",9001,4319,19928,9807,1,1,4400,8801,0,9102,8802,48,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31901,"KUDAMS / KTM",9001,4319,19997,9807,1,0,4400,8801,0,9102,8802,48,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31965,"SIRGAS 2000 / UTM zone 11N",9001,4674,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31966,"SIRGAS 2000 / UTM zone 12N",9001,4674,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31967,"SIRGAS 2000 / UTM zone 13N",9001,4674,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31968,"SIRGAS 2000 / UTM zone 14N",9001,4674,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31969,"SIRGAS 2000 / UTM zone 15N",9001,4674,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31970,"SIRGAS 2000 / UTM zone 16N",9001,4674,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31971,"SIRGAS 2000 / UTM zone 17N",9001,4674,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31972,"SIRGAS 2000 / UTM zone 18N",9001,4674,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31973,"SIRGAS 2000 / UTM zone 19N",9001,4674,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31974,"SIRGAS 2000 / UTM zone 20N",9001,4674,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31975,"SIRGAS 2000 / UTM zone 21N",9001,4674,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31976,"SIRGAS 2000 / UTM zone 22N",9001,4674,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31977,"SIRGAS 2000 / UTM zone 17S",9001,4674,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31978,"SIRGAS 2000 / UTM zone 18S",9001,4674,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31979,"SIRGAS 2000 / UTM zone 19S",9001,4674,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31980,"SIRGAS 2000 / UTM zone 20S",9001,4674,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31981,"SIRGAS 2000 / UTM zone 21S",9001,4674,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31982,"SIRGAS 2000 / UTM zone 22S",9001,4674,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31983,"SIRGAS 2000 / UTM zone 23S",9001,4674,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31984,"SIRGAS 2000 / UTM zone 24S",9001,4674,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31985,"SIRGAS 2000 / UTM zone 25S",9001,4674,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31986,"SIRGAS 1995 / UTM zone 17N",9001,4170,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31987,"SIRGAS 1995 / UTM zone 18N",9001,4170,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31988,"SIRGAS 1995 / UTM zone 19N",9001,4170,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31989,"SIRGAS 1995 / UTM zone 20N",9001,4170,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31990,"SIRGAS 1995 / UTM zone 21N",9001,4170,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31991,"SIRGAS 1995 / UTM zone 22N",9001,4170,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +31992,"SIRGAS 1995 / UTM zone 17S",9001,4170,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31993,"SIRGAS 1995 / UTM zone 18S",9001,4170,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31994,"SIRGAS 1995 / UTM zone 19S",9001,4170,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31995,"SIRGAS 1995 / UTM zone 20S",9001,4170,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31996,"SIRGAS 1995 / UTM zone 21S",9001,4170,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31997,"SIRGAS 1995 / UTM zone 22S",9001,4170,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31998,"SIRGAS 1995 / UTM zone 23S",9001,4170,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +31999,"SIRGAS 1995 / UTM zone 24S",9001,4170,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32000,"SIRGAS 1995 / UTM zone 25S",9001,4170,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32001,"NAD27 / Montana North",9003,4267,12501,9802,1,0,4497,8821,47,9110,8822,-109.3,9110,8823,48.43,9110,8824,47.51,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32002,"NAD27 / Montana Central",9003,4267,12502,9802,1,0,4497,8821,45.5,9110,8822,-109.3,9110,8823,47.53,9110,8824,46.27,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32003,"NAD27 / Montana South",9003,4267,12503,9802,1,0,4497,8821,44,9110,8822,-109.3,9110,8823,46.24,9110,8824,44.52,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32005,"NAD27 / Nebraska North",9003,4267,12601,9802,1,0,4497,8821,41.2,9110,8822,-100,9110,8823,41.51,9110,8824,42.49,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32006,"NAD27 / Nebraska South",9003,4267,12602,9802,1,0,4497,8821,39.4,9110,8822,-99.3,9110,8823,40.17,9110,8824,41.43,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32007,"NAD27 / Nevada East",9003,4267,12701,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32008,"NAD27 / Nevada Central",9003,4267,12702,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32009,"NAD27 / Nevada West",9003,4267,12703,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32010,"NAD27 / New Hampshire",9003,4267,12800,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32011,"NAD27 / New Jersey",9003,4267,12900,9807,1,0,4497,8801,38.5,9110,8802,-74.4,9110,8805,0.999975,9201,8806,2000000,9003,8807,0,9003,,,,,,,,,,,,, +32012,"NAD27 / New Mexico East",9003,4267,13001,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32013,"NAD27 / New Mexico Central",9003,4267,13002,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32014,"NAD27 / New Mexico West",9003,4267,13003,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32015,"NAD27 / New York East",9003,4267,13101,9807,1,0,4497,8801,40,9110,8802,-74.2,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32016,"NAD27 / New York Central",9003,4267,13102,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32017,"NAD27 / New York West",9003,4267,13103,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32018,"NAD27 / New York Long Island",9003,4267,13104,9802,1,1,4497,8821,40.3,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,1000000,9003,8827,0,9003,,,,,,,,,, +32019,"NAD27 / North Carolina",9003,4267,13200,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,34.2,9110,8824,36.1,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32020,"NAD27 / North Dakota North",9003,4267,13301,9802,1,0,4497,8821,47,9110,8822,-100.3,9110,8823,47.26,9110,8824,48.44,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32021,"NAD27 / North Dakota South",9003,4267,13302,9802,1,0,4497,8821,45.4,9110,8822,-100.3,9110,8823,46.11,9110,8824,47.29,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32022,"NAD27 / Ohio North",9003,4267,13401,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,40.26,9110,8824,41.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32023,"NAD27 / Ohio South",9003,4267,13402,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,38.44,9110,8824,40.02,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32024,"NAD27 / Oklahoma North",9003,4267,13501,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,35.34,9110,8824,36.46,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32025,"NAD27 / Oklahoma South",9003,4267,13502,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,33.56,9110,8824,35.14,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32026,"NAD27 / Oregon North",9003,4267,13601,9802,1,0,4497,8821,43.4,9110,8822,-120.3,9110,8823,44.2,9110,8824,46,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32027,"NAD27 / Oregon South",9003,4267,13602,9802,1,0,4497,8821,41.4,9110,8822,-120.3,9110,8823,42.2,9110,8824,44,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32028,"NAD27 / Pennsylvania North",9003,4267,13701,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,40.53,9110,8824,41.57,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32029,"NAD27 / Pennsylvania South",9003,4267,13702,9802,1,1,4497,8821,39.2,9110,8822,-77.45,9110,8823,39.56,9110,8824,40.48,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32030,"NAD27 / Rhode Island",9003,4267,13800,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.9999938,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32031,"NAD27 / South Carolina North",9003,4267,13901,9802,1,0,4497,8821,33,9110,8822,-81,9110,8823,33.46,9110,8824,34.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32033,"NAD27 / South Carolina South",9003,4267,13902,9802,1,0,4497,8821,31.5,9110,8822,-81,9110,8823,32.2,9110,8824,33.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32034,"NAD27 / South Dakota North",9003,4267,14001,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,44.25,9110,8824,45.41,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32035,"NAD27 / South Dakota South",9003,4267,14002,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,42.5,9110,8824,44.24,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32036,"NAD27 / Tennessee",9003,4267,14100,9802,1,1,4497,8821,34.4,9110,8822,-86,9110,8823,35.15,9110,8824,36.25,9110,8826,100000,9003,8827,0,9003,,,,,,,,,, +32037,"NAD27 / Texas North",9003,4267,14201,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,34.39,9110,8824,36.11,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32038,"NAD27 / Texas North Central",9003,4267,14202,9802,1,0,4497,8821,31.4,9110,8822,-97.3,9110,8823,32.08,9110,8824,33.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32039,"NAD27 / Texas Central",9003,4267,14203,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,30.07,9110,8824,31.53,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32040,"NAD27 / Texas South Central",9003,4267,14204,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,28.23,9110,8824,30.17,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32041,"NAD27 / Texas South",9003,4267,14205,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,26.1,9110,8824,27.5,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32042,"NAD27 / Utah North",9003,4267,14301,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,40.43,9110,8824,41.47,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32043,"NAD27 / Utah Central",9003,4267,14302,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,39.01,9110,8824,40.39,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32044,"NAD27 / Utah South",9003,4267,14303,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,37.13,9110,8824,38.21,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32045,"NAD27 / Vermont",9003,4267,14400,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32046,"NAD27 / Virginia North",9003,4267,14501,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,38.02,9110,8824,39.12,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32047,"NAD27 / Virginia South",9003,4267,14502,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,36.46,9110,8824,37.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32048,"NAD27 / Washington North",9003,4267,14601,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,47.3,9110,8824,48.44,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32049,"NAD27 / Washington South",9003,4267,14602,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,45.5,9110,8824,47.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32050,"NAD27 / West Virginia North",9003,4267,14701,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,39,9110,8824,40.15,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32051,"NAD27 / West Virginia South",9003,4267,14702,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,37.29,9110,8824,38.53,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32052,"NAD27 / Wisconsin North",9003,4267,14801,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,45.34,9110,8824,46.46,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32053,"NAD27 / Wisconsin Central",9003,4267,14802,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,44.15,9110,8824,45.3,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32054,"NAD27 / Wisconsin South",9003,4267,14803,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,42.44,9110,8824,44.04,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32055,"NAD27 / Wyoming East",9003,4267,14901,9807,1,0,4497,8801,40.4,9110,8802,-105.1,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32056,"NAD27 / Wyoming East Central",9003,4267,14902,9807,1,0,4497,8801,40.4,9110,8802,-107.2,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32057,"NAD27 / Wyoming West Central",9003,4267,14903,9807,1,0,4497,8801,40.4,9110,8802,-108.45,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32058,"NAD27 / Wyoming West",9003,4267,14904,9807,1,0,4497,8801,40.4,9110,8802,-110.05,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,, +32061,"NAD27 / Guatemala Norte",9001,4267,18211,9801,1,1,4499,8801,16.49,9110,8802,-90.2,9110,8805,0.99992226,9201,8806,500000,9001,8807,292209.579,9001,,,,,,,,,,,,, +32062,"NAD27 / Guatemala Sur",9001,4267,18212,9801,1,1,4499,8801,14.54,9110,8802,-90.2,9110,8805,0.99989906,9201,8806,500000,9001,8807,325992.681,9001,,,,,,,,,,,,, +32064,"NAD27 / BLM 14N (ftUS)",9003,4267,15914,9807,1,0,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32065,"NAD27 / BLM 15N (ftUS)",9003,4267,15915,9807,1,0,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32066,"NAD27 / BLM 16N (ftUS)",9003,4267,15916,9807,1,0,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32067,"NAD27 / BLM 17N (ftUS)",9003,4267,15917,9807,1,0,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32074,"NAD27 / BLM 14N (feet)",9003,4267,15914,9807,1,1,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32075,"NAD27 / BLM 15N (feet)",9003,4267,15915,9807,1,1,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32076,"NAD27 / BLM 16N (feet)",9003,4267,15916,9807,1,1,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32077,"NAD27 / BLM 17N (feet)",9003,4267,15917,9807,1,1,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32081,"NAD27 / MTM zone 1",9001,4267,17701,9807,1,0,4400,8801,0,9102,8802,-53,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32082,"NAD27 / MTM zone 2",9001,4267,17702,9807,1,0,4400,8801,0,9102,8802,-56,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32083,"NAD27 / MTM zone 3",9001,4267,17703,9807,1,0,4400,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32084,"NAD27 / MTM zone 4",9001,4267,17704,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32085,"NAD27 / MTM zone 5",9001,4267,17705,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32086,"NAD27 / MTM zone 6",9001,4267,17706,9807,1,0,4400,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32098,"NAD27 / Quebec Lambert",9001,4267,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +32099,"NAD27 / Louisiana Offshore",9003,4267,11703,9802,1,0,4497,8821,25.4,9110,8822,-91.2,9110,8823,27.5,9110,8824,26.1,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,, +32100,"NAD83 / Montana",9001,4269,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32104,"NAD83 / Nebraska",9001,4269,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +32107,"NAD83 / Nevada East",9001,4269,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,, +32108,"NAD83 / Nevada Central",9001,4269,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,, +32109,"NAD83 / Nevada West",9001,4269,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,, +32110,"NAD83 / New Hampshire",9001,4269,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,, +32111,"NAD83 / New Jersey",9001,4269,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +32112,"NAD83 / New Mexico East",9001,4269,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,, +32113,"NAD83 / New Mexico Central",9001,4269,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32114,"NAD83 / New Mexico West",9001,4269,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,, +32115,"NAD83 / New York East",9001,4269,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,, +32116,"NAD83 / New York Central",9001,4269,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,, +32117,"NAD83 / New York West",9001,4269,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,, +32118,"NAD83 / New York Long Island",9001,4269,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,, +32119,"NAD83 / North Carolina",9001,4269,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,, +32120,"NAD83 / North Dakota North",9001,4269,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32121,"NAD83 / North Dakota South",9001,4269,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32122,"NAD83 / Ohio North",9001,4269,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32123,"NAD83 / Ohio South",9001,4269,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32124,"NAD83 / Oklahoma North",9001,4269,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32125,"NAD83 / Oklahoma South",9001,4269,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32126,"NAD83 / Oregon North",9001,4269,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,, +32127,"NAD83 / Oregon South",9001,4269,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,, +32128,"NAD83 / Pennsylvania North",9001,4269,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32129,"NAD83 / Pennsylvania South",9001,4269,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32130,"NAD83 / Rhode Island",9001,4269,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,, +32133,"NAD83 / South Carolina",9001,4269,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,, +32134,"NAD83 / South Dakota North",9001,4269,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32135,"NAD83 / South Dakota South",9001,4269,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32136,"NAD83 / Tennessee",9001,4269,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32137,"NAD83 / Texas North",9001,4269,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,, +32138,"NAD83 / Texas North Central",9001,4269,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,, +32139,"NAD83 / Texas Central",9001,4269,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,, +32140,"NAD83 / Texas South Central",9001,4269,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,, +32141,"NAD83 / Texas South",9001,4269,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,, +32142,"NAD83 / Utah North",9001,4269,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,, +32143,"NAD83 / Utah Central",9001,4269,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,, +32144,"NAD83 / Utah South",9001,4269,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,, +32145,"NAD83 / Vermont",9001,4269,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32146,"NAD83 / Virginia North",9001,4269,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,, +32147,"NAD83 / Virginia South",9001,4269,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,, +32148,"NAD83 / Washington North",9001,4269,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +32149,"NAD83 / Washington South",9001,4269,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,, +32150,"NAD83 / West Virginia North",9001,4269,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32151,"NAD83 / West Virginia South",9001,4269,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32152,"NAD83 / Wisconsin North",9001,4269,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32153,"NAD83 / Wisconsin Central",9001,4269,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32154,"NAD83 / Wisconsin South",9001,4269,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,, +32155,"NAD83 / Wyoming East",9001,4269,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,, +32156,"NAD83 / Wyoming East Central",9001,4269,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,, +32157,"NAD83 / Wyoming West Central",9001,4269,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,, +32158,"NAD83 / Wyoming West",9001,4269,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,, +32161,"NAD83 / Puerto Rico & Virgin Is.",9001,4269,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,, +32164,"NAD83 / BLM 14N (ftUS)",9003,4269,15914,9807,1,0,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32165,"NAD83 / BLM 15N (ftUS)",9003,4269,15915,9807,1,0,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32166,"NAD83 / BLM 16N (ftUS)",9003,4269,15916,9807,1,0,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32167,"NAD83 / BLM 17N (ftUS)",9003,4269,15917,9807,1,0,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32180,"NAD83 / SCoPQ zone 2",9001,4269,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32181,"NAD83 / MTM zone 1",9001,4269,17701,9807,1,0,4496,8801,0,9102,8802,-53,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32182,"NAD83 / MTM zone 2",9001,4269,17702,9807,1,0,4496,8801,0,9102,8802,-56,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32183,"NAD83 / MTM zone 3",9001,4269,17703,9807,1,0,4496,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32184,"NAD83 / MTM zone 4",9001,4269,17704,9807,1,0,4496,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32185,"NAD83 / MTM zone 5",9001,4269,17705,9807,1,0,4496,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32186,"NAD83 / MTM zone 6",9001,4269,17706,9807,1,0,4496,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32187,"NAD83 / MTM zone 7",9001,4269,17707,9807,1,0,4496,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32188,"NAD83 / MTM zone 8",9001,4269,17708,9807,1,0,4496,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32189,"NAD83 / MTM zone 9",9001,4269,17709,9807,1,0,4496,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32190,"NAD83 / MTM zone 10",9001,4269,17710,9807,1,0,4496,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32191,"NAD83 / MTM zone 11",9001,4269,17711,9807,1,0,4400,8801,0,9110,8802,-82.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32192,"NAD83 / MTM zone 12",9001,4269,17712,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32193,"NAD83 / MTM zone 13",9001,4269,17713,9807,1,0,4400,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32194,"NAD83 / MTM zone 14",9001,4269,17714,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32195,"NAD83 / MTM zone 15",9001,4269,17715,9807,1,0,4400,8801,0,9102,8802,-90,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32196,"NAD83 / MTM zone 16",9001,4269,17716,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32197,"NAD83 / MTM zone 17",9001,4269,17717,9807,1,0,4400,8801,0,9102,8802,-96,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +32198,"NAD83 / Quebec Lambert",9001,4269,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,, +32199,"NAD83 / Louisiana Offshore",9001,4269,11733,9802,1,0,4499,8821,25.3,9110,8822,-91.2,9110,8823,27.5,9110,8824,26.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,, +32201,"WGS 72 / UTM zone 1N",9001,4322,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32202,"WGS 72 / UTM zone 2N",9001,4322,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32203,"WGS 72 / UTM zone 3N",9001,4322,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32204,"WGS 72 / UTM zone 4N",9001,4322,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32205,"WGS 72 / UTM zone 5N",9001,4322,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32206,"WGS 72 / UTM zone 6N",9001,4322,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32207,"WGS 72 / UTM zone 7N",9001,4322,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32208,"WGS 72 / UTM zone 8N",9001,4322,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32209,"WGS 72 / UTM zone 9N",9001,4322,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32210,"WGS 72 / UTM zone 10N",9001,4322,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32211,"WGS 72 / UTM zone 11N",9001,4322,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32212,"WGS 72 / UTM zone 12N",9001,4322,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32213,"WGS 72 / UTM zone 13N",9001,4322,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32214,"WGS 72 / UTM zone 14N",9001,4322,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32215,"WGS 72 / UTM zone 15N",9001,4322,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32216,"WGS 72 / UTM zone 16N",9001,4322,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32217,"WGS 72 / UTM zone 17N",9001,4322,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32218,"WGS 72 / UTM zone 18N",9001,4322,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32219,"WGS 72 / UTM zone 19N",9001,4322,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32220,"WGS 72 / UTM zone 20N",9001,4322,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32221,"WGS 72 / UTM zone 21N",9001,4322,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32222,"WGS 72 / UTM zone 22N",9001,4322,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32223,"WGS 72 / UTM zone 23N",9001,4322,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32224,"WGS 72 / UTM zone 24N",9001,4322,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32225,"WGS 72 / UTM zone 25N",9001,4322,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32226,"WGS 72 / UTM zone 26N",9001,4322,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32227,"WGS 72 / UTM zone 27N",9001,4322,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32228,"WGS 72 / UTM zone 28N",9001,4322,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32229,"WGS 72 / UTM zone 29N",9001,4322,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32230,"WGS 72 / UTM zone 30N",9001,4322,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32231,"WGS 72 / UTM zone 31N",9001,4322,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32232,"WGS 72 / UTM zone 32N",9001,4322,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32233,"WGS 72 / UTM zone 33N",9001,4322,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32234,"WGS 72 / UTM zone 34N",9001,4322,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32235,"WGS 72 / UTM zone 35N",9001,4322,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32236,"WGS 72 / UTM zone 36N",9001,4322,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32237,"WGS 72 / UTM zone 37N",9001,4322,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32238,"WGS 72 / UTM zone 38N",9001,4322,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32239,"WGS 72 / UTM zone 39N",9001,4322,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32240,"WGS 72 / UTM zone 40N",9001,4322,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32241,"WGS 72 / UTM zone 41N",9001,4322,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32242,"WGS 72 / UTM zone 42N",9001,4322,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32243,"WGS 72 / UTM zone 43N",9001,4322,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32244,"WGS 72 / UTM zone 44N",9001,4322,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32245,"WGS 72 / UTM zone 45N",9001,4322,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32246,"WGS 72 / UTM zone 46N",9001,4322,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32247,"WGS 72 / UTM zone 47N",9001,4322,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32248,"WGS 72 / UTM zone 48N",9001,4322,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32249,"WGS 72 / UTM zone 49N",9001,4322,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32250,"WGS 72 / UTM zone 50N",9001,4322,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32251,"WGS 72 / UTM zone 51N",9001,4322,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32252,"WGS 72 / UTM zone 52N",9001,4322,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32253,"WGS 72 / UTM zone 53N",9001,4322,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32254,"WGS 72 / UTM zone 54N",9001,4322,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32255,"WGS 72 / UTM zone 55N",9001,4322,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32256,"WGS 72 / UTM zone 56N",9001,4322,16056,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32257,"WGS 72 / UTM zone 57N",9001,4322,16057,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32258,"WGS 72 / UTM zone 58N",9001,4322,16058,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32259,"WGS 72 / UTM zone 59N",9001,4322,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32260,"WGS 72 / UTM zone 60N",9001,4322,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32301,"WGS 72 / UTM zone 1S",9001,4322,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32302,"WGS 72 / UTM zone 2S",9001,4322,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32303,"WGS 72 / UTM zone 3S",9001,4322,16103,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32304,"WGS 72 / UTM zone 4S",9001,4322,16104,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32305,"WGS 72 / UTM zone 5S",9001,4322,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32306,"WGS 72 / UTM zone 6S",9001,4322,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32307,"WGS 72 / UTM zone 7S",9001,4322,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32308,"WGS 72 / UTM zone 8S",9001,4322,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32309,"WGS 72 / UTM zone 9S",9001,4322,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32310,"WGS 72 / UTM zone 10S",9001,4322,16110,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32311,"WGS 72 / UTM zone 11S",9001,4322,16111,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32312,"WGS 72 / UTM zone 12S",9001,4322,16112,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32313,"WGS 72 / UTM zone 13S",9001,4322,16113,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32314,"WGS 72 / UTM zone 14S",9001,4322,16114,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32315,"WGS 72 / UTM zone 15S",9001,4322,16115,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32316,"WGS 72 / UTM zone 16S",9001,4322,16116,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32317,"WGS 72 / UTM zone 17S",9001,4322,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32318,"WGS 72 / UTM zone 18S",9001,4322,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32319,"WGS 72 / UTM zone 19S",9001,4322,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32320,"WGS 72 / UTM zone 20S",9001,4322,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32321,"WGS 72 / UTM zone 21S",9001,4322,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32322,"WGS 72 / UTM zone 22S",9001,4322,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32323,"WGS 72 / UTM zone 23S",9001,4322,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32324,"WGS 72 / UTM zone 24S",9001,4322,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32325,"WGS 72 / UTM zone 25S",9001,4322,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32326,"WGS 72 / UTM zone 26S",9001,4322,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32327,"WGS 72 / UTM zone 27S",9001,4322,16127,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32328,"WGS 72 / UTM zone 28S",9001,4322,16128,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32329,"WGS 72 / UTM zone 29S",9001,4322,16129,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32330,"WGS 72 / UTM zone 30S",9001,4322,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32331,"WGS 72 / UTM zone 31S",9001,4322,16131,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32332,"WGS 72 / UTM zone 32S",9001,4322,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32333,"WGS 72 / UTM zone 33S",9001,4322,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32334,"WGS 72 / UTM zone 34S",9001,4322,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32335,"WGS 72 / UTM zone 35S",9001,4322,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32336,"WGS 72 / UTM zone 36S",9001,4322,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32337,"WGS 72 / UTM zone 37S",9001,4322,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32338,"WGS 72 / UTM zone 38S",9001,4322,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32339,"WGS 72 / UTM zone 39S",9001,4322,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32340,"WGS 72 / UTM zone 40S",9001,4322,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32341,"WGS 72 / UTM zone 41S",9001,4322,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32342,"WGS 72 / UTM zone 42S",9001,4322,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32343,"WGS 72 / UTM zone 43S",9001,4322,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32344,"WGS 72 / UTM zone 44S",9001,4322,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32345,"WGS 72 / UTM zone 45S",9001,4322,16145,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32346,"WGS 72 / UTM zone 46S",9001,4322,16146,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32347,"WGS 72 / UTM zone 47S",9001,4322,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32348,"WGS 72 / UTM zone 48S",9001,4322,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32349,"WGS 72 / UTM zone 49S",9001,4322,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32350,"WGS 72 / UTM zone 50S",9001,4322,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32351,"WGS 72 / UTM zone 51S",9001,4322,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32352,"WGS 72 / UTM zone 52S",9001,4322,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32353,"WGS 72 / UTM zone 53S",9001,4322,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32354,"WGS 72 / UTM zone 54S",9001,4322,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32355,"WGS 72 / UTM zone 55S",9001,4322,16155,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32356,"WGS 72 / UTM zone 56S",9001,4322,16156,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32357,"WGS 72 / UTM zone 57S",9001,4322,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32358,"WGS 72 / UTM zone 58S",9001,4322,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32359,"WGS 72 / UTM zone 59S",9001,4322,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32360,"WGS 72 / UTM zone 60S",9001,4322,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32401,"WGS 72BE / UTM zone 1N",9001,4324,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32402,"WGS 72BE / UTM zone 2N",9001,4324,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32403,"WGS 72BE / UTM zone 3N",9001,4324,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32404,"WGS 72BE / UTM zone 4N",9001,4324,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32405,"WGS 72BE / UTM zone 5N",9001,4324,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32406,"WGS 72BE / UTM zone 6N",9001,4324,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32407,"WGS 72BE / UTM zone 7N",9001,4324,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32408,"WGS 72BE / UTM zone 8N",9001,4324,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32409,"WGS 72BE / UTM zone 9N",9001,4324,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32410,"WGS 72BE / UTM zone 10N",9001,4324,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32411,"WGS 72BE / UTM zone 11N",9001,4324,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32412,"WGS 72BE / UTM zone 12N",9001,4324,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32413,"WGS 72BE / UTM zone 13N",9001,4324,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32414,"WGS 72BE / UTM zone 14N",9001,4324,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32415,"WGS 72BE / UTM zone 15N",9001,4324,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32416,"WGS 72BE / UTM zone 16N",9001,4324,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32417,"WGS 72BE / UTM zone 17N",9001,4324,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32418,"WGS 72BE / UTM zone 18N",9001,4324,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32419,"WGS 72BE / UTM zone 19N",9001,4324,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32420,"WGS 72BE / UTM zone 20N",9001,4324,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32421,"WGS 72BE / UTM zone 21N",9001,4324,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32422,"WGS 72BE / UTM zone 22N",9001,4324,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32423,"WGS 72BE / UTM zone 23N",9001,4324,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32424,"WGS 72BE / UTM zone 24N",9001,4324,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32425,"WGS 72BE / UTM zone 25N",9001,4324,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32426,"WGS 72BE / UTM zone 26N",9001,4324,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32427,"WGS 72BE / UTM zone 27N",9001,4324,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32428,"WGS 72BE / UTM zone 28N",9001,4324,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32429,"WGS 72BE / UTM zone 29N",9001,4324,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32430,"WGS 72BE / UTM zone 30N",9001,4324,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32431,"WGS 72BE / UTM zone 31N",9001,4324,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32432,"WGS 72BE / UTM zone 32N",9001,4324,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32433,"WGS 72BE / UTM zone 33N",9001,4324,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32434,"WGS 72BE / UTM zone 34N",9001,4324,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32435,"WGS 72BE / UTM zone 35N",9001,4324,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32436,"WGS 72BE / UTM zone 36N",9001,4324,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32437,"WGS 72BE / UTM zone 37N",9001,4324,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32438,"WGS 72BE / UTM zone 38N",9001,4324,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32439,"WGS 72BE / UTM zone 39N",9001,4324,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32440,"WGS 72BE / UTM zone 40N",9001,4324,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32441,"WGS 72BE / UTM zone 41N",9001,4324,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32442,"WGS 72BE / UTM zone 42N",9001,4324,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32443,"WGS 72BE / UTM zone 43N",9001,4324,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32444,"WGS 72BE / UTM zone 44N",9001,4324,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32445,"WGS 72BE / UTM zone 45N",9001,4324,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32446,"WGS 72BE / UTM zone 46N",9001,4324,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32447,"WGS 72BE / UTM zone 47N",9001,4324,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32448,"WGS 72BE / UTM zone 48N",9001,4324,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32449,"WGS 72BE / UTM zone 49N",9001,4324,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32450,"WGS 72BE / UTM zone 50N",9001,4324,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32451,"WGS 72BE / UTM zone 51N",9001,4324,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32452,"WGS 72BE / UTM zone 52N",9001,4324,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32453,"WGS 72BE / UTM zone 53N",9001,4324,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32454,"WGS 72BE / UTM zone 54N",9001,4324,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32455,"WGS 72BE / UTM zone 55N",9001,4324,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32456,"WGS 72BE / UTM zone 56N",9001,4324,16056,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32457,"WGS 72BE / UTM zone 57N",9001,4324,16057,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32458,"WGS 72BE / UTM zone 58N",9001,4324,16058,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32459,"WGS 72BE / UTM zone 59N",9001,4324,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32460,"WGS 72BE / UTM zone 60N",9001,4324,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32501,"WGS 72BE / UTM zone 1S",9001,4324,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32502,"WGS 72BE / UTM zone 2S",9001,4324,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32503,"WGS 72BE / UTM zone 3S",9001,4324,16103,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32504,"WGS 72BE / UTM zone 4S",9001,4324,16104,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32505,"WGS 72BE / UTM zone 5S",9001,4324,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32506,"WGS 72BE / UTM zone 6S",9001,4324,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32507,"WGS 72BE / UTM zone 7S",9001,4324,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32508,"WGS 72BE / UTM zone 8S",9001,4324,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32509,"WGS 72BE / UTM zone 9S",9001,4324,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32510,"WGS 72BE / UTM zone 10S",9001,4324,16110,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32511,"WGS 72BE / UTM zone 11S",9001,4324,16111,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32512,"WGS 72BE / UTM zone 12S",9001,4324,16112,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32513,"WGS 72BE / UTM zone 13S",9001,4324,16113,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32514,"WGS 72BE / UTM zone 14S",9001,4324,16114,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32515,"WGS 72BE / UTM zone 15S",9001,4324,16115,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32516,"WGS 72BE / UTM zone 16S",9001,4324,16116,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32517,"WGS 72BE / UTM zone 17S",9001,4324,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32518,"WGS 72BE / UTM zone 18S",9001,4324,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32519,"WGS 72BE / UTM zone 19S",9001,4324,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32520,"WGS 72BE / UTM zone 20S",9001,4324,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32521,"WGS 72BE / UTM zone 21S",9001,4324,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32522,"WGS 72BE / UTM zone 22S",9001,4324,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32523,"WGS 72BE / UTM zone 23S",9001,4324,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32524,"WGS 72BE / UTM zone 24S",9001,4324,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32525,"WGS 72BE / UTM zone 25S",9001,4324,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32526,"WGS 72BE / UTM zone 26S",9001,4324,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32527,"WGS 72BE / UTM zone 27S",9001,4324,16127,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32528,"WGS 72BE / UTM zone 28S",9001,4324,16128,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32529,"WGS 72BE / UTM zone 29S",9001,4324,16129,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32530,"WGS 72BE / UTM zone 30S",9001,4324,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32531,"WGS 72BE / UTM zone 31S",9001,4324,16131,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32532,"WGS 72BE / UTM zone 32S",9001,4324,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32533,"WGS 72BE / UTM zone 33S",9001,4324,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32534,"WGS 72BE / UTM zone 34S",9001,4324,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32535,"WGS 72BE / UTM zone 35S",9001,4324,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32536,"WGS 72BE / UTM zone 36S",9001,4324,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32537,"WGS 72BE / UTM zone 37S",9001,4324,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32538,"WGS 72BE / UTM zone 38S",9001,4324,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32539,"WGS 72BE / UTM zone 39S",9001,4324,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32540,"WGS 72BE / UTM zone 40S",9001,4324,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32541,"WGS 72BE / UTM zone 41S",9001,4324,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32542,"WGS 72BE / UTM zone 42S",9001,4324,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32543,"WGS 72BE / UTM zone 43S",9001,4324,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32544,"WGS 72BE / UTM zone 44S",9001,4324,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32545,"WGS 72BE / UTM zone 45S",9001,4324,16145,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32546,"WGS 72BE / UTM zone 46S",9001,4324,16146,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32547,"WGS 72BE / UTM zone 47S",9001,4324,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32548,"WGS 72BE / UTM zone 48S",9001,4324,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32549,"WGS 72BE / UTM zone 49S",9001,4324,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32550,"WGS 72BE / UTM zone 50S",9001,4324,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32551,"WGS 72BE / UTM zone 51S",9001,4324,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32552,"WGS 72BE / UTM zone 52S",9001,4324,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32553,"WGS 72BE / UTM zone 53S",9001,4324,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32554,"WGS 72BE / UTM zone 54S",9001,4324,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32555,"WGS 72BE / UTM zone 55S",9001,4324,16155,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32556,"WGS 72BE / UTM zone 56S",9001,4324,16156,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32557,"WGS 72BE / UTM zone 57S",9001,4324,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32558,"WGS 72BE / UTM zone 58S",9001,4324,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32559,"WGS 72BE / UTM zone 59S",9001,4324,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32560,"WGS 72BE / UTM zone 60S",9001,4324,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32600,"WGS 84 / UTM grid system (northern hemisphere)",9001,4326,16000,9824,1,0,4400,8801,0,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,8830,-180,9102,8831,6,9102,,,,,,,,,, +32601,"WGS 84 / UTM zone 1N",9001,4326,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32602,"WGS 84 / UTM zone 2N",9001,4326,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32603,"WGS 84 / UTM zone 3N",9001,4326,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32604,"WGS 84 / UTM zone 4N",9001,4326,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32605,"WGS 84 / UTM zone 5N",9001,4326,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32606,"WGS 84 / UTM zone 6N",9001,4326,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32607,"WGS 84 / UTM zone 7N",9001,4326,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32608,"WGS 84 / UTM zone 8N",9001,4326,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32609,"WGS 84 / UTM zone 9N",9001,4326,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32610,"WGS 84 / UTM zone 10N",9001,4326,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32611,"WGS 84 / UTM zone 11N",9001,4326,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32612,"WGS 84 / UTM zone 12N",9001,4326,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32613,"WGS 84 / UTM zone 13N",9001,4326,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32614,"WGS 84 / UTM zone 14N",9001,4326,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32615,"WGS 84 / UTM zone 15N",9001,4326,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32616,"WGS 84 / UTM zone 16N",9001,4326,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32617,"WGS 84 / UTM zone 17N",9001,4326,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32618,"WGS 84 / UTM zone 18N",9001,4326,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32619,"WGS 84 / UTM zone 19N",9001,4326,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32620,"WGS 84 / UTM zone 20N",9001,4326,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32621,"WGS 84 / UTM zone 21N",9001,4326,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32622,"WGS 84 / UTM zone 22N",9001,4326,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32623,"WGS 84 / UTM zone 23N",9001,4326,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32624,"WGS 84 / UTM zone 24N",9001,4326,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32625,"WGS 84 / UTM zone 25N",9001,4326,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32626,"WGS 84 / UTM zone 26N",9001,4326,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32627,"WGS 84 / UTM zone 27N",9001,4326,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32628,"WGS 84 / UTM zone 28N",9001,4326,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32629,"WGS 84 / UTM zone 29N",9001,4326,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32630,"WGS 84 / UTM zone 30N",9001,4326,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32631,"WGS 84 / UTM zone 31N",9001,4326,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32632,"WGS 84 / UTM zone 32N",9001,4326,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32633,"WGS 84 / UTM zone 33N",9001,4326,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32634,"WGS 84 / UTM zone 34N",9001,4326,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32635,"WGS 84 / UTM zone 35N",9001,4326,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32636,"WGS 84 / UTM zone 36N",9001,4326,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32637,"WGS 84 / UTM zone 37N",9001,4326,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32638,"WGS 84 / UTM zone 38N",9001,4326,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32639,"WGS 84 / UTM zone 39N",9001,4326,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32640,"WGS 84 / UTM zone 40N",9001,4326,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32641,"WGS 84 / UTM zone 41N",9001,4326,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32642,"WGS 84 / UTM zone 42N",9001,4326,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32643,"WGS 84 / UTM zone 43N",9001,4326,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32644,"WGS 84 / UTM zone 44N",9001,4326,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32645,"WGS 84 / UTM zone 45N",9001,4326,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32646,"WGS 84 / UTM zone 46N",9001,4326,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32647,"WGS 84 / UTM zone 47N",9001,4326,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32648,"WGS 84 / UTM zone 48N",9001,4326,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32649,"WGS 84 / UTM zone 49N",9001,4326,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32650,"WGS 84 / UTM zone 50N",9001,4326,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32651,"WGS 84 / UTM zone 51N",9001,4326,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32652,"WGS 84 / UTM zone 52N",9001,4326,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32653,"WGS 84 / UTM zone 53N",9001,4326,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32654,"WGS 84 / UTM zone 54N",9001,4326,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32655,"WGS 84 / UTM zone 55N",9001,4326,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32656,"WGS 84 / UTM zone 56N",9001,4326,16056,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32657,"WGS 84 / UTM zone 57N",9001,4326,16057,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32658,"WGS 84 / UTM zone 58N",9001,4326,16058,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32659,"WGS 84 / UTM zone 59N",9001,4326,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32660,"WGS 84 / UTM zone 60N",9001,4326,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, +32661,"WGS 84 / UPS North (N,E)",9001,4326,16061,9810,1,0,4493,8801,90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +32662,"WGS 84 / Plate Carree",9001,4326,19968,9823,1,1,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +32663,"WGS 84 / World Equidistant Cylindrical",9001,4326,19846,9842,1,1,4499,8801,0,9102,8806,0,9001,8807,0,9001,8822,0,9102,,,,,,,,,,,,,,,, +32664,"WGS 84 / BLM 14N (ftUS)",9003,4326,15914,9807,1,0,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32665,"WGS 84 / BLM 15N (ftUS)",9003,4326,15915,9807,1,0,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32666,"WGS 84 / BLM 16N (ftUS)",9003,4326,15916,9807,1,0,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32667,"WGS 84 / BLM 17N (ftUS)",9003,4326,15917,9807,1,0,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,, +32700,"WGS 84 / UTM grid system (southern hemisphere)",9001,4326,16100,9824,1,0,4400,8801,0,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,8830,-180,9102,8831,6,9102,,,,,,,,,, +32701,"WGS 84 / UTM zone 1S",9001,4326,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32702,"WGS 84 / UTM zone 2S",9001,4326,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32703,"WGS 84 / UTM zone 3S",9001,4326,16103,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32704,"WGS 84 / UTM zone 4S",9001,4326,16104,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32705,"WGS 84 / UTM zone 5S",9001,4326,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32706,"WGS 84 / UTM zone 6S",9001,4326,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32707,"WGS 84 / UTM zone 7S",9001,4326,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32708,"WGS 84 / UTM zone 8S",9001,4326,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32709,"WGS 84 / UTM zone 9S",9001,4326,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32710,"WGS 84 / UTM zone 10S",9001,4326,16110,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32711,"WGS 84 / UTM zone 11S",9001,4326,16111,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32712,"WGS 84 / UTM zone 12S",9001,4326,16112,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32713,"WGS 84 / UTM zone 13S",9001,4326,16113,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32714,"WGS 84 / UTM zone 14S",9001,4326,16114,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32715,"WGS 84 / UTM zone 15S",9001,4326,16115,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32716,"WGS 84 / UTM zone 16S",9001,4326,16116,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32717,"WGS 84 / UTM zone 17S",9001,4326,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32718,"WGS 84 / UTM zone 18S",9001,4326,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32719,"WGS 84 / UTM zone 19S",9001,4326,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32720,"WGS 84 / UTM zone 20S",9001,4326,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32721,"WGS 84 / UTM zone 21S",9001,4326,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32722,"WGS 84 / UTM zone 22S",9001,4326,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32723,"WGS 84 / UTM zone 23S",9001,4326,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32724,"WGS 84 / UTM zone 24S",9001,4326,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32725,"WGS 84 / UTM zone 25S",9001,4326,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32726,"WGS 84 / UTM zone 26S",9001,4326,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32727,"WGS 84 / UTM zone 27S",9001,4326,16127,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32728,"WGS 84 / UTM zone 28S",9001,4326,16128,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32729,"WGS 84 / UTM zone 29S",9001,4326,16129,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32730,"WGS 84 / UTM zone 30S",9001,4326,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32731,"WGS 84 / UTM zone 31S",9001,4326,16131,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32732,"WGS 84 / UTM zone 32S",9001,4326,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32733,"WGS 84 / UTM zone 33S",9001,4326,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32734,"WGS 84 / UTM zone 34S",9001,4326,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32735,"WGS 84 / UTM zone 35S",9001,4326,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32736,"WGS 84 / UTM zone 36S",9001,4326,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32737,"WGS 84 / UTM zone 37S",9001,4326,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32738,"WGS 84 / UTM zone 38S",9001,4326,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32739,"WGS 84 / UTM zone 39S",9001,4326,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32740,"WGS 84 / UTM zone 40S",9001,4326,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32741,"WGS 84 / UTM zone 41S",9001,4326,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32742,"WGS 84 / UTM zone 42S",9001,4326,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32743,"WGS 84 / UTM zone 43S",9001,4326,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32744,"WGS 84 / UTM zone 44S",9001,4326,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32745,"WGS 84 / UTM zone 45S",9001,4326,16145,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32746,"WGS 84 / UTM zone 46S",9001,4326,16146,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32747,"WGS 84 / UTM zone 47S",9001,4326,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32748,"WGS 84 / UTM zone 48S",9001,4326,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32749,"WGS 84 / UTM zone 49S",9001,4326,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32750,"WGS 84 / UTM zone 50S",9001,4326,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32751,"WGS 84 / UTM zone 51S",9001,4326,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32752,"WGS 84 / UTM zone 52S",9001,4326,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32753,"WGS 84 / UTM zone 53S",9001,4326,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32754,"WGS 84 / UTM zone 54S",9001,4326,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32755,"WGS 84 / UTM zone 55S",9001,4326,16155,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32756,"WGS 84 / UTM zone 56S",9001,4326,16156,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32757,"WGS 84 / UTM zone 57S",9001,4326,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32758,"WGS 84 / UTM zone 58S",9001,4326,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32759,"WGS 84 / UTM zone 59S",9001,4326,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32760,"WGS 84 / UTM zone 60S",9001,4326,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +32761,"WGS 84 / UPS South (N,E)",9001,4326,16161,9810,1,0,4494,8801,-90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,, +32766,"WGS 84 / TM 36 SE",9001,4326,16636,9807,1,0,4400,8801,0,9102,8802,36,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","GREENWICH_DATUM","UOM_CODE","ELLIPSOID_CODE","PRIME_MERIDIAN_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","COORD_OP_CODE","COORD_OP_CODE_MULTI","COORD_OP_METHOD_CODE","DX","DY","DZ","RX","RY","RZ","DS" +3819,HD1909,1024,Hungarian Datum 1909,1024,9122,7004,8901,1,0,6422,3817,0,9607,595.48,121.69,515.35,-4.115,2.9383,-0.853,-3.408 +3821,TWD67,1025,Taiwan Datum 1967,1025,9122,7050,8901,1,0,6422,,0,,,,,,,, +3824,TWD97,1026,Taiwan Datum 1997,1026,9122,7019,8901,1,0,6422,3830,0,9603,0,0,0,,,, +3889,IGRS,1029,Iraqi Geospatial Reference System,1029,9122,7019,8901,1,0,6422,3894,0,9603,0,0,0,,,, +3906,MGI 1901,1031,MGI 1901,1031,9122,7004,8901,1,0,6422,3962,1,9603,682,-203,480,,,, +4001,Unknown datum based upon the Airy 1830 ellipsoid,6001,"Not specified (based on Airy 1830 ellipsoid)",6001,9122,7001,8901,0,0,6422,,0,,,,,,,, +4002,Unknown datum based upon the Airy Modified 1849 ellipsoid,6002,"Not specified (based on Airy Modified 1849 ellipsoid)",6002,9122,7002,8901,0,0,6422,,0,,,,,,,, +4003,Unknown datum based upon the Australian National Spheroid,6003,"Not specified (based on Australian National Spheroid)",6003,9122,7003,8901,0,0,6422,,0,,,,,,,, +4004,Unknown datum based upon the Bessel 1841 ellipsoid,6004,"Not specified (based on Bessel 1841 ellipsoid)",6004,9122,7004,8901,0,0,6422,,0,,,,,,,, +4005,Unknown datum based upon the Bessel Modified ellipsoid,6005,"Not specified (based on Bessel Modified ellipsoid)",6005,9122,7005,8901,0,0,6422,,0,,,,,,,, +4006,Unknown datum based upon the Bessel Namibia ellipsoid,6006,"Not specified (based on Bessel Namibia ellipsoid)",6006,9122,7046,8901,0,0,6422,,0,,,,,,,, +4007,Unknown datum based upon the Clarke 1858 ellipsoid,6007,"Not specified (based on Clarke 1858 ellipsoid)",6007,9122,7007,8901,0,0,6422,,0,,,,,,,, +4008,Unknown datum based upon the Clarke 1866 ellipsoid,6008,"Not specified (based on Clarke 1866 ellipsoid)",6008,9122,7008,8901,0,0,6422,,0,,,,,,,, +4009,Unknown datum based upon the Clarke 1866 Michigan ellipsoid,6009,"Not specified (based on Clarke 1866 Michigan ellipsoid)",6009,9122,7009,8901,0,1,6422,,0,,,,,,,, +4010,"Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid",6010,"Not specified (based on Clarke 1880 (Benoit) ellipsoid)",6010,9122,7010,8901,0,0,6422,,0,,,,,,,, +4011,"Unknown datum based upon the Clarke 1880 (IGN) ellipsoid",6011,"Not specified (based on Clarke 1880 (IGN) ellipsoid)",6011,9122,7011,8901,0,0,6422,,0,,,,,,,, +4012,"Unknown datum based upon the Clarke 1880 (RGS) ellipsoid",6012,"Not specified (based on Clarke 1880 (RGS) ellipsoid)",6012,9122,7012,8901,0,0,6422,,0,,,,,,,, +4013,"Unknown datum based upon the Clarke 1880 (Arc) ellipsoid",6013,"Not specified (based on Clarke 1880 (Arc) ellipsoid)",6013,9122,7013,8901,0,0,6422,,0,,,,,,,, +4014,"Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid",6014,"Not specified (based on Clarke 1880 (SGA 1922) ellipsoid)",6014,9122,7014,8901,0,0,6422,,0,,,,,,,, +4015,"Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid",6015,"Not specified (based on Everest 1830 (1937 Adjustment) ellipsoid)",6015,9122,7015,8901,0,0,6422,,0,,,,,,,, +4016,"Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid",6016,"Not specified (based on Everest 1830 (1967 Definition) ellipsoid)",6016,9122,7016,8901,0,0,6422,,0,,,,,,,, +4018,Unknown datum based upon the Everest 1830 Modified ellipsoid,6018,"Not specified (based on Everest 1830 Modified ellipsoid)",6018,9122,7018,8901,0,0,6422,,0,,,,,,,, +4019,Unknown datum based upon the GRS 1980 ellipsoid,6019,"Not specified (based on GRS 1980 ellipsoid)",6019,9122,7019,8901,0,0,6422,,0,,,,,,,, +4020,Unknown datum based upon the Helmert 1906 ellipsoid,6020,"Not specified (based on Helmert 1906 ellipsoid)",6020,9122,7020,8901,0,0,6422,,0,,,,,,,, +4021,Unknown datum based upon the Indonesian National Spheroid,6021,"Not specified (based on Indonesian National Spheroid)",6021,9122,7021,8901,0,0,6422,,0,,,,,,,, +4022,Unknown datum based upon the International 1924 ellipsoid,6022,"Not specified (based on International 1924 ellipsoid)",6022,9122,7022,8901,0,0,6422,,0,,,,,,,, +4023,MOLDREF99,1032,MOLDREF99,1032,9122,7019,8901,1,0,6422,5585,0,9603,0,0,0,,,, +4024,Unknown datum based upon the Krassowsky 1940 ellipsoid,6024,"Not specified (based on Krassowsky 1940 ellipsoid)",6024,9122,7024,8901,0,0,6422,,0,,,,,,,, +4025,Unknown datum based upon the NWL 9D ellipsoid,6025,"Not specified (based on NWL 9D ellipsoid)",6025,9122,7025,8901,0,0,6422,,0,,,,,,,, +4027,Unknown datum based upon the Plessis 1817 ellipsoid,6027,"Not specified (based on Plessis 1817 ellipsoid)",6027,9122,7027,8901,0,0,6422,,0,,,,,,,, +4028,Unknown datum based upon the Struve 1860 ellipsoid,6028,"Not specified (based on Struve 1860 ellipsoid)",6028,9122,7028,8901,0,0,6422,,0,,,,,,,, +4029,Unknown datum based upon the War Office ellipsoid,6029,"Not specified (based on War Office ellipsoid)",6029,9122,7029,8901,0,0,6422,,0,,,,,,,, +4030,Unknown datum based upon the WGS 84 ellipsoid,6030,"Not specified (based on WGS 84 ellipsoid)",6030,9122,7030,8901,0,0,6422,,0,,,,,,,, +4031,Unknown datum based upon the GEM 10C ellipsoid,6031,"Not specified (based on GEM 10C ellipsoid)",6031,9122,7031,8901,0,0,6422,,0,,,,,,,, +4032,Unknown datum based upon the OSU86F ellipsoid,6032,"Not specified (based on OSU86F ellipsoid)",6032,9122,7032,8901,0,0,6422,,0,,,,,,,, +4033,Unknown datum based upon the OSU91A ellipsoid,6033,"Not specified (based on OSU91A ellipsoid)",6033,9122,7033,8901,0,0,6422,,0,,,,,,,, +4034,Unknown datum based upon the Clarke 1880 ellipsoid,6034,"Not specified (based on Clarke 1880 ellipsoid)",6034,9122,7034,8901,0,0,6422,,0,,,,,,,, +4035,Unknown datum based upon the Authalic Sphere,6035,"Not specified (based on Authalic Sphere)",6035,9108,7035,8901,0,1,6402,,0,,,,,,,, +4036,Unknown datum based upon the GRS 1967 ellipsoid,6036,"Not specified (based on GRS 1967 ellipsoid)",6036,9122,7036,8901,0,0,6422,,0,,,,,,,, +4041,Unknown datum based upon the Average Terrestrial System 1977 ellipsoid,6041,"Not specified (based on Average Terrestrial System 1977 ellipsoid)",6041,9122,7041,8901,0,0,6422,,0,,,,,,,, +4042,"Unknown datum based upon the Everest (1830 Definition) ellipsoid",6042,"Not specified (based on Everest (1830 Definition) ellipsoid)",6042,9122,7042,8901,0,0,6422,,0,,,,,,,, +4043,Unknown datum based upon the WGS 72 ellipsoid,6043,"Not specified (based on WGS 72 ellipsoid)",6043,9122,7043,8901,0,0,6422,,0,,,,,,,, +4044,"Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid",6044,"Not specified (based on Everest 1830 (1962 Definition) ellipsoid)",6044,9122,7044,8901,0,0,6422,,0,,,,,,,, +4045,"Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid",6045,"Not specified (based on Everest 1830 (1975 Definition) ellipsoid)",6045,9122,7045,8901,0,0,6422,,0,,,,,,,, +4046,RGRDC 2005,1033,Reseau Geodesique de la RDC 2005,1033,9122,7019,8901,1,0,6422,4064,0,9603,0,0,0,,,, +4047,Unspecified datum based upon the GRS 1980 Authalic Sphere,6047,"Not specified (based on GRS 1980 Authalic Sphere)",6047,9122,7048,8901,0,0,6422,,0,,,,,,,, +4052,Unspecified datum based upon the Clarke 1866 Authalic Sphere,6052,"Not specified (based on Clarke 1866 Authalic Sphere)",6052,9122,7052,8901,0,0,6422,,0,,,,,,,, +4053,Unspecified datum based upon the International 1924 Authalic Sphere,6053,"Not specified (based on International 1924 Authalic Sphere)",6053,9122,7057,8901,0,0,6422,,0,,,,,,,, +4054,Unspecified datum based upon the Hughes 1980 ellipsoid,6054,"Not specified (based on Hughes 1980 ellipsoid)",6054,9122,7058,8901,0,0,6422,,0,,,,,,,, +4055,Popular Visualisation CRS,6055,Popular Visualisation Datum,6055,9122,7059,8901,1,1,6422,15973,0,9603,0,0,0,,,, +4075,SREF98,1034,Serbian Reference Network 1998,1034,9122,7019,8901,1,0,6422,4077,0,9603,0,0,0,,,, +4081,REGCAN95,1035,Red Geodesica de Canarias 1995,1035,9122,7019,8901,1,0,6422,4084,0,9603,0,0,0,,,, +4120,Greek,6120,Greek,6120,9122,7004,8901,1,0,6422,,0,,,,,,,, +4121,GGRS87,6121,Greek Geodetic Reference System 1987,6121,9122,7019,8901,1,0,6422,1272,0,9603,-199.87,74.79,246.62,,,, +4122,ATS77,6122,Average Terrestrial System 1977,6122,9122,7041,8901,1,0,6422,,0,,,,,,,, +4123,KKJ,6123,"Kartastokoordinaattijarjestelma (1966)",6123,9122,7022,8901,1,0,6422,10099,1,9607,-96.062,-82.428,-121.753,-4.801,-0.345,1.376,1.496 +4124,RT90,6124,Rikets koordinatsystem 1990,6124,9122,7004,8901,1,0,6422,1896,1,9607,414.1,41.3,603.1,0.855,-2.141,7.023,0 +4125,Samboja,6125,Samboja,6125,9108,7004,8901,1,1,6402,1282,0,9603,-404.78,685.68,45.47,,,, +4126,"LKS94 (ETRS89)",6126,"Lithuania 1994 (ETRS89)",6126,9108,7019,8901,1,1,6402,,0,,,,,,,, +4127,Tete,6127,Tete,6127,9122,7008,8901,1,0,6422,6901,1,9603,-80,-100,-228,,,, +4128,Madzansua,6128,Madzansua,6128,9122,7008,8901,1,0,6422,,0,,,,,,,, +4129,Observatario,6129,Observatario,6129,9122,7008,8901,1,0,6422,6900,0,9603,-132,-110,-335,,,, +4130,Moznet,6130,"Moznet (ITRF94)",6130,9122,7030,8901,1,0,6422,1302,0,9607,0,0,0,0,0,0,0 +4131,Indian 1960,6131,Indian 1960,6131,9122,7015,8901,1,0,6422,1542,1,9603,198,881,317,,,, +4132,FD58,6132,Final Datum 1958,6132,9122,7012,8901,1,0,6422,1513,1,9603,-241.54,-163.64,396.06,,,, +4133,EST92,6133,Estonia 1992,6133,9122,7019,8901,1,0,6422,1333,0,9607,0.055,-0.541,-0.185,-0.0183,0.0003,0.007,-0.014 +4134,PSD93,6134,PDO Survey Datum 1993,6134,9122,7012,8901,1,0,6422,1439,1,9606,-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006 +4135,Old Hawaiian,6135,Old Hawaiian,6135,9122,7008,8901,1,0,6422,15824,1,9603,61,-285,-181,,,, +4136,St. Lawrence Island,6136,St. Lawrence Island,6136,9122,7008,8901,1,0,6422,,0,,,,,,,, +4137,St. Paul Island,6137,St. Paul Island,6137,9122,7008,8901,1,0,6422,,0,,,,,,,, +4138,St. George Island,6138,St. George Island,6138,9122,7008,8901,1,0,6422,,0,,,,,,,, +4139,Puerto Rico,6139,Puerto Rico,6139,9122,7008,8901,1,0,6422,1893,0,9603,11,72,-101,,,, +4140,"NAD83(CSRS98)",6140,NAD83 Canadian Spatial Reference System,6140,9108,7019,8901,1,1,6402,1473,0,9603,0,0,0,,,, +4141,Israel 1993,6141,Israel 1993,6141,9122,7019,8901,1,0,6422,1073,0,9603,-48,55,52,,,, +4142,Locodjo 1965,6142,Locodjo 1965,6142,9122,7012,8901,1,0,6422,1469,0,9603,-125,53,467,,,, +4143,Abidjan 1987,6143,Abidjan 1987,6143,9122,7012,8901,1,0,6422,1470,1,9603,-124.76,53,466.79,,,, +4144,Kalianpur 1937,6144,Kalianpur 1937,6144,9122,7015,8901,1,0,6422,1533,1,9603,214,804,268,,,, +4145,Kalianpur 1962,6145,Kalianpur 1962,6145,9122,7044,8901,1,0,6422,1247,1,9603,283,682,231,,,, +4146,Kalianpur 1975,6146,Kalianpur 1975,6146,9122,7045,8901,1,0,6422,1156,0,9603,295,736,257,,,, +4147,Hanoi 1972,6147,Hanoi 1972,6147,9122,7024,8901,1,0,6422,1544,0,9603,-17.51,-108.32,-62.39,,,, +4148,Hartebeesthoek94,6148,Hartebeesthoek94,6148,9122,7030,8901,1,0,6422,1505,0,9603,0,0,0,,,, +4149,CH1903,6149,CH1903,6149,9122,7004,8901,1,0,6422,1510,1,9603,674.374,15.056,405.346,,,, +4150,"CH1903+",6150,"CH1903+",6150,9122,7004,8901,1,0,6422,1676,0,9603,674.374,15.056,405.346,,,, +4151,CHTRF95,6151,Swiss Terrestrial Reference Frame 1995,6151,9122,7019,8901,1,0,6422,1511,0,9603,0,0,0,,,, +4152,"NAD83(HARN)",6152,"NAD83 (High Accuracy Reference Network)",6152,9122,7019,8901,1,0,6422,1580,1,9603,0,0,0,,,, +4153,Rassadiran,6153,Rassadiran,6153,9122,7022,8901,1,0,6422,1512,0,9603,-133.63,-157.5,-158.62,,,, +4154,"ED50(ED77)",6154,"European Datum 1950(1977)",6154,9122,7022,8901,1,0,6422,1141,1,9603,-117,-132,-164,,,, +4155,Dabola 1981,6155,Dabola 1981,6155,9122,7011,8901,1,0,6422,1518,0,9603,-83,37,124,,,, +4156,S-JTSK,6156,System Jednotne Trigonometricke Site Katastralni,6156,9122,7004,8901,1,0,6422,15965,1,9603,589,76,480,,,, +4157,Mount Dillon,6157,Mount Dillon,6157,9122,7007,8901,1,0,6422,,0,,,,,,,, +4158,Naparima 1955,6158,Naparima 1955,6158,9122,7022,8901,1,0,6422,1555,1,9603,-0.465,372.095,171.736,,,, +4159,ELD79,6159,European Libyan Datum 1979,6159,9122,7022,8901,1,0,6422,15909,1,9603,-115.8543,-99.0583,-152.4616,,,, +4160,Chos Malal 1914,6160,Chos Malal 1914,6160,9122,7022,8901,1,0,6422,,0,,,,,,,, +4161,Pampa del Castillo,6161,Pampa del Castillo,6161,9122,7022,8901,1,0,6422,15845,0,9603,27.5,14,186.4,,,, +4162,Korean 1985,6162,Korean Datum 1985,6162,9122,7004,8901,1,0,6422,,0,,,,,,,, +4163,Yemen NGN96,6163,Yemen National Geodetic Network 1996,6163,9122,7030,8901,1,0,6422,1540,0,9603,0,0,0,,,, +4164,South Yemen,6164,South Yemen,6164,9122,7024,8901,1,0,6422,1682,0,9603,-76,-138,67,,,, +4165,Bissau,6165,Bissau,6165,9122,7022,8901,1,0,6422,1547,0,9603,-173,253,27,,,, +4166,Korean 1995,6166,Korean Datum 1995,6166,9122,7030,8901,1,0,6422,1558,0,9603,0,0,0,,,, +4167,NZGD2000,6167,New Zealand Geodetic Datum 2000,6167,9122,7019,8901,1,0,6422,1565,0,9603,0,0,0,,,, +4168,Accra,6168,Accra,6168,9122,7029,8901,1,0,6422,1569,1,9603,-199,32,322,,,, +4169,American Samoa 1962,6169,American Samoa 1962,6169,9122,7008,8901,1,0,6422,1577,0,9603,-115,118,426,,,, +4170,SIRGAS 1995,6170,Sistema de Referencia Geocentrico para America del Sur 1995,6170,9122,7019,8901,1,0,6422,1581,0,9603,0,0,0,,,, +4171,RGF93,6171,Reseau Geodesique Francais 1993,6171,9122,7019,8901,1,0,6422,1671,0,9603,0,0,0,,,, +4172,POSGAR,6172,Posiciones Geodesicas Argentinas,6172,9108,7019,8901,1,1,6402,1598,0,9603,0,0,0,,,, +4173,IRENET95,6173,IRENET95,6173,9122,7019,8901,1,0,6422,1678,0,9603,0,0,0,,,, +4174,Sierra Leone 1924,6174,Sierra Leone Colony 1924,6174,9122,7029,8901,1,0,6422,,0,,,,,,,, +4175,Sierra Leone 1968,6175,Sierra Leone 1968,6175,9122,7012,8901,1,0,6422,1614,0,9603,-88,4,101,,,, +4176,Australian Antarctic,6176,Australian Antarctic Datum 1998,6176,9122,7019,8901,1,0,6422,1890,0,9603,0,0,0,,,, +4178,"Pulkovo 1942(83)",6178,"Pulkovo 1942(83)",6178,9122,7024,8901,1,0,6422,15998,1,9603,26,-121,-78,,,, +4179,"Pulkovo 1942(58)",6179,"Pulkovo 1942(58)",6179,9122,7024,8901,1,0,6422,1645,1,9606,33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +4180,EST97,6180,Estonia 1997,6180,9122,7019,8901,1,0,6422,1649,0,9603,0,0,0,,,, +4181,Luxembourg 1930,6181,Luxembourg 1930,6181,9122,7022,8901,1,0,6422,5486,1,9607,-189.6806,18.3463,-42.7695,0.33746,3.09264,-2.53861,0.4598 +4182,Azores Occidental 1939,6182,Azores Occidental Islands 1939,6182,9122,7022,8901,1,0,6422,1887,1,9603,-425,-169,81,,,, +4183,Azores Central 1948,6183,Azores Central Islands 1948,6183,9122,7022,8901,1,0,6422,1886,0,9603,-104,167,-38,,,, +4184,Azores Oriental 1940,6184,Azores Oriental Islands 1940,6184,9122,7022,8901,1,0,6422,1885,0,9603,-203,141,53,,,, +4185,Madeira 1936,6185,Madeira 1936,6185,9108,7022,8901,1,1,6402,,0,,,,,,,, +4188,OSNI 1952,6188,OSNI 1952,6188,9122,7001,8901,1,0,6422,1955,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +4189,REGVEN,6189,Red Geodesica Venezolana,6189,9122,7019,8901,1,0,6422,1768,0,9603,0,0,0,,,, +4190,POSGAR 98,6190,Posiciones Geodesicas Argentinas 1998,6190,9122,7019,8901,1,0,6422,1773,1,9603,0,0,0,,,, +4191,Albanian 1987,6191,Albanian 1987,6191,9122,7024,8901,1,0,6422,7834,1,9607,-44.183,-0.58,-38.489,-2.3867,-2.7072,3.5196,-8.2703 +4192,Douala 1948,6192,Douala 1948,6192,9122,7022,8901,1,0,6422,15873,0,9603,-206.1,-174.7,-87.7,,,, +4193,Manoca 1962,6193,Manoca 1962,6193,9122,7011,8901,1,0,6422,1796,0,9603,-70.9,-151.8,-41.4,,,, +4194,Qornoq 1927,6194,Qornoq 1927,6194,9122,7022,8901,1,0,6422,1797,1,9603,164,138,-189,,,, +4195,Scoresbysund 1952,6195,Scoresbysund 1952,6195,9122,7022,8901,1,0,6422,1799,0,9606,105,326,-102.5,0,0,0.814,-0.6 +4196,Ammassalik 1958,6196,Ammassalik 1958,6196,9122,7022,8901,1,0,6422,1800,0,9606,-45,417,-3.5,0,0,0.814,-0.6 +4197,Garoua,6197,Garoua,6197,9122,7012,8901,1,0,6422,,0,,,,,,,, +4198,Kousseri,6198,Kousseri,6198,9122,7012,8901,1,0,6422,,0,,,,,,,, +4199,Egypt 1930,6199,Egypt 1930,6199,9122,7022,8901,1,0,6422,,0,,,,,,,, +4200,Pulkovo 1995,6200,Pulkovo 1995,6200,9122,7024,8901,1,0,6422,5043,1,9607,24.47,-130.89,-81.56,0,0,-0.13,-0.22 +4201,Adindan,6201,Adindan,6201,9122,7012,8901,1,0,6422,1100,1,9603,-166,-15,204,,,, +4202,AGD66,6202,Australian Geodetic Datum 1966,6202,9122,7003,8901,1,0,6422,15980,1,9607,-117.808,-51.536,137.784,-0.303,-0.446,-0.234,-0.29 +4203,AGD84,6203,Australian Geodetic Datum 1984,6203,9122,7003,8901,1,0,6422,1109,1,9603,-134,-48,149,,,, +4204,Ain el Abd,6204,Ain el Abd 1970,6204,9122,7022,8901,1,0,6422,1111,1,9603,-143,-236,7,,,, +4205,Afgooye,6205,Afgooye,6205,9122,7024,8901,1,0,6422,1107,0,9603,-43,-163,45,,,, +4206,Agadez,6206,Agadez,6206,9122,7011,8901,1,0,6422,,0,,,,,,,, +4207,Lisbon,6207,Lisbon 1937,6207,9122,7022,8901,1,0,6422,1984,1,9603,-304.046,-60.576,103.64,,,, +4208,Aratu,6208,Aratu,6208,9122,7022,8901,1,0,6422,5067,1,9603,-151.99,287.04,-147.45,,,, +4209,Arc 1950,6209,Arc 1950,6209,9122,7013,8901,1,0,6422,1113,1,9603,-143,-90,-294,,,, +4210,Arc 1960,6210,Arc 1960,6210,9122,7012,8901,1,0,6422,1122,1,9603,-160,-6,-302,,,, +4211,Batavia,6211,Batavia,6211,9122,7004,8901,1,0,6422,1123,1,9603,-377,681,-50,,,, +4212,Barbados 1938,6212,Barbados 1938,6212,9122,7012,8901,1,0,6422,15793,0,9603,31.95,300.99,419.19,,,, +4213,Beduaram,6213,Beduaram,6213,9122,7011,8901,1,0,6422,15849,0,9603,-106,-87,188,,,, +4214,Beijing 1954,6214,Beijing 1954,6214,9122,7024,8901,1,0,6422,15921,1,9603,15.8,-154.4,-82.3,,,, +4215,Belge 1950,6215,Reseau National Belge 1950,6215,9122,7022,8901,1,0,6422,,0,,,,,,,, +4216,Bermuda 1957,6216,Bermuda 1957,6216,9122,7008,8901,1,0,6422,1124,1,9603,-73,213,296,,,, +4218,Bogota 1975,6218,Bogota 1975,6218,9122,7022,8901,1,0,6422,1125,1,9603,307,304,-318,,,, +4219,Bukit Rimpah,6219,Bukit Rimpah,6219,9122,7004,8901,1,0,6422,1126,0,9603,-384,664,-48,,,, +4220,Camacupa,6220,Camacupa,6220,9122,7012,8901,1,0,6422,1327,1,9603,-50.9,-347.6,-231,,,, +4221,Campo Inchauspe,6221,Campo Inchauspe,6221,9122,7022,8901,1,0,6422,1127,1,9603,-148,136,90,,,, +4222,Cape,6222,Cape,6222,9122,7013,8901,1,0,6422,1128,1,9603,-136,-108,-292,,,, +4223,Carthage,6223,Carthage,6223,9122,7011,8901,1,0,6422,1130,1,9603,-263,6,431,,,, +4224,Chua,6224,Chua,6224,9122,7022,8901,1,0,6422,3972,1,9603,-143.87,243.37,-33.52,,,, +4225,Corrego Alegre 1970-72,6225,Corrego Alegre 1970-72,6225,9122,7022,8901,1,0,6422,6192,1,9603,-205.57,168.77,-4.12,,,, +4226,"Cote d'Ivoire",6226,"Cote d'Ivoire",6226,9108,7011,8901,1,1,6402,,0,,,,,,,, +4227,Deir ez Zor,6227,Deir ez Zor,6227,9122,7011,8901,1,0,6422,15742,1,9603,-190.421,8.532,238.69,,,, +4228,Douala,6228,Douala,6228,9108,7011,8901,1,1,6402,,0,,,,,,,, +4229,Egypt 1907,6229,Egypt 1907,6229,9122,7020,8901,1,0,6422,1148,1,9603,-130,110,-13,,,, +4230,ED50,6230,European Datum 1950,6230,9122,7022,8901,1,0,6422,1133,1,9603,-87,-98,-121,,,, +4231,ED87,6231,European Datum 1987,6231,9122,7022,8901,1,0,6422,3905,1,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218 +4232,Fahud,6232,Fahud,6232,9122,7012,8901,1,0,6422,1438,1,9606,-333.102,-11.02,230.69,0,0,0.554,0.219 +4233,Gandajika 1970,6233,Gandajika 1970,6233,9122,7022,8901,1,1,6422,1894,0,9603,-133,-321,50,,,, +4234,Garoua,6234,Garoua,6234,9108,7011,8901,1,1,6402,,0,,,,,,,, +4235,Guyane Francaise,6235,Guyane Francaise,6235,9108,7022,8901,1,1,6402,,0,,,,,,,, +4236,Hu Tzu Shan 1950,6236,Hu Tzu Shan 1950,6236,9122,7022,8901,1,0,6422,1152,0,9603,-637,-549,-203,,,, +4237,HD72,6237,Hungarian Datum 1972,6237,9122,7036,8901,1,0,6422,1242,1,9603,52.17,-71.82,-14.9,,,, +4238,ID74,6238,Indonesian Datum 1974,6238,9122,7021,8901,1,0,6422,1248,1,9603,-24,-15,5,,,, +4239,Indian 1954,6239,Indian 1954,6239,9122,7015,8901,1,0,6422,1153,0,9603,217,823,299,,,, +4240,Indian 1975,6240,Indian 1975,6240,9122,7015,8901,1,0,6422,1304,1,9603,210,814,289,,,, +4241,Jamaica 1875,6241,Jamaica 1875,6241,9122,7034,8901,1,0,6422,,0,,,,,,,, +4242,JAD69,6242,Jamaica 1969,6242,9122,7008,8901,1,0,6422,1084,1,9603,70,207,389.5,,,, +4243,Kalianpur 1880,6243,Kalianpur 1880,6243,9122,7042,8901,1,0,6422,,0,,,,,,,, +4244,Kandawala,6244,Kandawala,6244,9122,7015,8901,1,0,6422,1157,0,9603,-97,787,86,,,, +4245,Kertau 1968,6245,Kertau 1968,6245,9122,7018,8901,1,0,6422,1158,0,9603,-11,851,5,,,, +4246,KOC,6246,Kuwait Oil Company,6246,9122,7012,8901,1,0,6422,1059,0,9603,-294.7,-200.1,525.5,,,, +4247,La Canoa,6247,La Canoa,6247,9122,7022,8901,1,0,6422,1516,0,9603,-273.5,110.6,-357.9,,,, +4248,PSAD56,6248,Provisional South American Datum 1956,6248,9122,7022,8901,1,0,6422,1201,1,9603,-288,175,-376,,,, +4249,Lake,6249,Lake,6249,9122,7022,8901,1,0,6422,,0,,,,,,,, +4250,Leigon,6250,Leigon,6250,9122,7012,8901,1,0,6422,1159,0,9603,-130,29,364,,,, +4251,Liberia 1964,6251,Liberia 1964,6251,9122,7012,8901,1,0,6422,1160,0,9603,-90,40,88,,,, +4252,Lome,6252,Lome,6252,9122,7011,8901,1,0,6422,,0,,,,,,,, +4253,Luzon 1911,6253,Luzon 1911,6253,9122,7008,8901,1,0,6422,1161,1,9603,-133,-77,-51,,,, +4254,Hito XVIII 1963,6254,Hito XVIII 1963,6254,9122,7022,8901,1,0,6422,1892,1,9603,16,196,93,,,, +4255,Herat North,6255,Herat North,6255,9122,7022,8901,1,0,6422,1246,0,9603,-333,-222,114,,,, +4256,Mahe 1971,6256,Mahe 1971,6256,9122,7012,8901,1,0,6422,1164,0,9603,41,-220,-134,,,, +4257,Makassar,6257,Makassar,6257,9122,7004,8901,1,0,6422,1837,0,9603,-587.8,519.75,145.76,,,, +4258,ETRS89,6258,European Terrestrial Reference System 1989,6258,9122,7019,8901,1,0,6422,1149,1,9603,0,0,0,,,, +4259,Malongo 1987,6259,Malongo 1987,6259,9122,7022,8901,1,0,6422,1557,1,9603,-254.1,-5.36,-100.29,,,, +4260,Manoca,6260,Manoca,6260,9108,7012,8901,1,1,6402,1316,0,9603,-70.9,-151.8,-41.4,,,, +4261,Merchich,6261,Merchich,6261,9122,7011,8901,1,0,6422,1166,0,9603,31,146,47,,,, +4262,Massawa,6262,Massawa,6262,9122,7004,8901,1,0,6422,1165,0,9603,639,405,60,,,, +4263,Minna,6263,Minna,6263,9122,7012,8901,1,0,6422,1168,1,9603,-92,-93,122,,,, +4264,Mhast,6264,Mhast,6264,9122,7022,8901,1,1,6422,1329,0,9603,-252.95,-4.11,-96.38,,,, +4265,Monte Mario,6265,Monte Mario,6265,9122,7022,8901,1,0,6422,1660,1,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +4266,"M'poraloko",6266,"M'poraloko",6266,9122,7011,8901,1,0,6422,1163,1,9603,-74,-130,42,,,, +4267,NAD27,6267,North American Datum 1927,6267,9122,7008,8901,1,0,6422,,0,,,,,,,, +4268,NAD27 Michigan,6268,NAD27 Michigan,6268,9122,7009,8901,1,1,6422,,0,,,,,,,, +4269,NAD83,6269,North American Datum 1983,6269,9122,7019,8901,1,0,6422,1188,1,9603,0,0,0,,,, +4270,Nahrwan 1967,6270,Nahrwan 1967,6270,9122,7012,8901,1,0,6422,1191,1,9603,-249,-156,381,,,, +4271,Naparima 1972,6271,Naparima 1972,6271,9122,7022,8901,1,0,6422,1192,1,9603,-10,375,165,,,, +4272,NZGD49,6272,New Zealand Geodetic Datum 1949,6272,9122,7022,8901,1,0,6422,1564,1,9607,59.47,-5.04,187.44,-0.47,0.1,-1.024,-4.5993 +4273,NGO 1948,6273,NGO 1948,6273,9122,7005,8901,1,0,6422,1654,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21 +4274,Datum 73,6274,Datum 73,6274,9122,7022,8901,1,0,6422,1983,1,9603,-223.237,110.193,36.649,,,, +4275,NTF,6275,Nouvelle Triangulation Francaise,6275,9122,7011,8901,1,0,6422,1193,0,9603,-168,-60,320,,,, +4276,NSWC 9Z-2,6276,NSWC 9Z-2,6276,9122,7025,8901,1,0,6422,,0,,,,,,,, +4277,OSGB 1936,6277,OSGB 1936,6277,9122,7001,8901,1,0,6422,1314,1,9606,446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +4278,OSGB70,6278,"OSGB 1970 (SN)",6278,9122,7001,8901,1,0,6422,,0,,,,,,,, +4279,"OS(SN)80",6279,"OS (SN) 1980",6279,9122,7001,8901,1,0,6422,,0,,,,,,,, +4280,Padang,6280,Padang 1884,6280,9122,7004,8901,1,0,6422,,0,,,,,,,, +4281,Palestine 1923,6281,Palestine 1923,6281,9122,7010,8901,1,0,6422,1074,0,9606,-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1 +4282,Pointe Noire,6282,Congo 1960 Pointe Noire,6282,9122,7011,8901,1,0,6422,1200,1,9603,-148,51,-291,,,, +4283,GDA94,6283,Geocentric Datum of Australia 1994,6283,9122,7019,8901,1,0,6422,1150,0,9603,0,0,0,,,, +4284,Pulkovo 1942,6284,Pulkovo 1942,6284,9122,7024,8901,1,0,6422,1267,1,9607,23.92,-141.27,-80.9,0,-0.35,-0.82,-0.12 +4285,Qatar 1974,6285,Qatar 1974,6285,9122,7022,8901,1,0,6422,1562,1,9603,-128.16,-282.42,21.93,,,, +4286,Qatar 1948,6286,Qatar 1948,6286,9122,7020,8901,1,0,6422,,0,,,,,,,, +4287,Qornoq,6287,Qornoq,6287,9108,7022,8901,1,1,6402,1211,0,9603,164,138,-189,,,, +4288,Loma Quintana,6288,Loma Quintana,6288,9122,7022,8901,1,0,6422,,0,,,,,,,, +4289,Amersfoort,6289,Amersfoort,6289,9122,7004,8901,1,0,6422,15934,1,9607,565.2369,50.0087,465.658,0.406857,-0.350733,1.87035,4.0812 +4291,SAD69,6291,South American Datum 1969,6291,9108,7036,8901,1,1,6402,1212,1,9603,-57,1,-41,,,, +4292,Sapper Hill 1943,6292,Sapper Hill 1943,6292,9122,7022,8901,1,0,6422,1225,0,9603,-355,21,72,,,, +4293,Schwarzeck,6293,Schwarzeck,6293,9122,7046,8901,1,0,6422,1226,1,9603,616,97,-251,,,, +4294,Segora,6294,Segora,6294,9108,7004,8901,1,1,6402,1286,1,9603,-403,684,41,,,, +4295,Serindung,6295,Serindung,6295,9122,7004,8901,1,0,6422,,0,,,,,,,, +4296,Sudan,6296,Sudan,6296,9108,7011,8901,1,1,6402,,0,,,,,,,, +4297,Tananarive,6297,Tananarive 1925,6297,9122,7022,8901,1,0,6422,1227,1,9603,-189,-242,-91,,,, +4298,Timbalai 1948,6298,Timbalai 1948,6298,9122,7016,8901,1,0,6422,1228,1,9603,-679,669,-48,,,, +4299,TM65,6299,TM65,6299,9122,7002,8901,1,0,6422,1641,1,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +4300,TM75,6300,Geodetic Datum of 1965,6300,9122,7002,8901,1,0,6422,1954,1,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +4301,Tokyo,6301,Tokyo,6301,9122,7004,8901,1,0,6422,15484,1,9603,-146.414,507.337,680.507,,,, +4302,Trinidad 1903,6302,Trinidad 1903,6302,9122,7007,8901,1,0,6422,1296,1,9603,-61.702,284.488,472.052,,,, +4303,"TC(1948)",6303,Trucial Coast 1948,6303,9122,7020,8901,1,0,6422,,0,,,,,,,, +4304,Voirol 1875,6304,Voirol 1875,6304,9122,7011,8901,1,0,6422,1294,0,9603,-73,-247,227,,,, +4306,Bern 1938,6306,Bern 1938,6306,9122,7004,8901,1,0,6422,,0,,,,,,,, +4307,Nord Sahara 1959,6307,Nord Sahara 1959,6307,9122,7012,8901,1,0,6422,5660,1,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +4308,RT38,6308,Stockholm 1938,6308,9122,7004,8901,1,0,6422,,0,,,,,,,, +4309,Yacare,6309,Yacare,6309,9122,7022,8901,1,0,6422,1234,1,9603,-155,171,37,,,, +4310,Yoff,6310,Yoff,6310,9122,7011,8901,1,0,6422,6903,0,9603,-30,190,89,,,, +4311,Zanderij,6311,Zanderij,6311,9122,7022,8901,1,0,6422,1235,0,9603,-265,120,-358,,,, +4312,MGI,6312,Militar-Geographische Institut,6312,9122,7004,8901,1,0,6422,1618,1,9606,577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +4313,Belge 1972,6313,Reseau National Belge 1972,6313,9122,7022,8901,1,0,6422,15929,1,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,-1.2747 +4314,DHDN,6314,Deutsches Hauptdreiecksnetz,6314,9122,7004,8901,1,0,6422,1777,1,9606,598.1,73.7,418.2,0.202,0.045,-2.455,6.7 +4315,Conakry 1905,6315,Conakry 1905,6315,9122,7011,8901,1,0,6422,1517,0,9603,-23,259,-9,,,, +4316,Dealul Piscului 1930,6316,Dealul Piscului 1930,6316,9122,7022,8901,1,0,6422,1995,1,9603,103.25,-100.4,-307.19,,,, +4317,Dealul Piscului 1970,6317,Dealul Piscului 1970,6317,9122,7024,8901,1,1,6422,1097,1,9603,28,-121,-77,,,, +4318,NGN,6318,National Geodetic Network,6318,9122,7030,8901,1,0,6422,1060,0,9603,-3.2,-5.7,2.8,,,, +4319,KUDAMS,6319,Kuwait Utility,6319,9122,7019,8901,1,0,6422,1061,1,9603,-20.8,11.3,2.4,,,, +4322,WGS 72,6322,World Geodetic System 1972,6322,9122,7043,8901,1,0,6422,1237,1,9606,0,0,4.5,0,0,0.554,0.2263 +4324,WGS 72BE,6324,WGS 72 Transit Broadcast Ephemeris,6324,9122,7043,8901,1,0,6422,1240,0,9606,0,0,1.9,0,0,0.814,-0.38 +4326,WGS 84,6326,World Geodetic System 1984,6326,9122,7030,8901,1,0,6422,,0,,,,,,,, +4463,RGSPM06,1038,Reseau Geodesique de Saint Pierre et Miquelon 2006,1038,9122,7019,8901,1,0,6422,4477,0,9603,0,0,0,,,, +4470,RGM04,1036,Reseau Geodesique de Mayotte 2004,1036,9122,7019,8901,1,0,6422,4476,0,9603,0,0,0,,,, +4475,Cadastre 1997,1037,Cadastre 1997,1037,9122,7022,8901,1,0,6422,4290,0,9603,-381.788,-57.501,-256.673,,,, +4483,Mexico ITRF92,1042,Mexico ITRF92,1042,9122,7019,8901,1,0,6422,4832,0,9603,0,0,0,,,, +4490,China Geodetic Coordinate System 2000,1043,China 2000,1043,9122,1024,8901,1,0,6422,,0,,,,,,,, +4555,New Beijing,1045,New Beijing,1045,9122,7024,8901,1,0,6422,,0,,,,,,,, +4558,RRAF 1991,1047,Reseau de Reference des Antilles Francaises 1991,1047,9122,7019,8901,1,0,6422,4560,0,9603,0,0,0,,,, +4600,Anguilla 1957,6600,Anguilla 1957,6600,9122,7012,8901,1,0,6422,,0,,,,,,,, +4601,Antigua 1943,6601,Antigua 1943,6601,9122,7012,8901,1,0,6422,1441,1,9603,-255,-15,71,,,, +4602,Dominica 1945,6602,Dominica 1945,6602,9122,7012,8901,1,0,6422,1442,0,9603,725,685,536,,,, +4603,Grenada 1953,6603,Grenada 1953,6603,9122,7012,8901,1,0,6422,1443,0,9603,72,213.7,93,,,, +4604,Montserrat 1958,6604,Montserrat 1958,6604,9122,7012,8901,1,0,6422,1444,0,9603,174,359,365,,,, +4605,St. Kitts 1955,6605,St. Kitts 1955,6605,9122,7012,8901,1,0,6422,1445,1,9603,9,183,236,,,, +4606,St. Lucia 1955,6606,St. Lucia 1955,6606,9122,7012,8901,1,0,6422,1446,1,9603,-149,128,296,,,, +4607,St. Vincent 1945,6607,St. Vincent 1945,6607,9122,7012,8901,1,0,6422,1959,0,9603,195.671,332.517,274.607,,,, +4608,"NAD27(76)",6608,"North American Datum 1927 (1976)",6608,9122,7008,8901,1,0,6422,,0,,,,,,,, +4609,"NAD27(CGQ77)",6609,"North American Datum 1927 (CGQ77)",6609,9122,7008,8901,1,0,6422,,0,,,,,,,, +4610,Xian 1980,6610,Xian 1980,6610,9122,7049,8901,1,0,6422,,0,,,,,,,, +4611,Hong Kong 1980,6611,Hong Kong 1980,6611,9122,7022,8901,1,0,6422,1825,0,9606,-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246 +4612,JGD2000,6612,Japanese Geodetic Datum 2000,6612,9122,7019,8901,1,0,6422,1826,0,9603,0,0,0,,,, +4613,Segara,6613,Gunung Segara,6613,9122,7004,8901,1,0,6422,1897,1,9603,-403,684,41,,,, +4614,QND95,6614,Qatar National Datum 1995,6614,9122,7022,8901,1,0,6422,1840,0,9606,-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065 +4615,Porto Santo,6615,Porto Santo 1936,6615,9122,7022,8901,1,0,6422,1888,0,9603,-499,-249,314,,,, +4616,Selvagem Grande,6616,Selvagem Grande,6616,9122,7022,8901,1,0,6422,1965,1,9603,-289,-124,60,,,, +4617,"NAD83(CSRS)",6140,NAD83 Canadian Spatial Reference System,6140,9122,7019,8901,1,0,6422,1842,1,9603,0,0,0,,,, +4618,SAD69,6618,South American Datum 1969,6618,9122,7050,8901,1,0,6422,1877,1,9603,-66.87,4.37,-38.52,,,, +4619,SWEREF99,6619,SWEREF99,6619,9122,7019,8901,1,0,6422,1879,0,9603,0,0,0,,,, +4620,Point 58,6620,Point 58,6620,9122,7012,8901,1,0,6422,1880,0,9603,-106,-129,165,,,, +4621,Fort Marigot,6621,Fort Marigot,6621,9122,7022,8901,1,0,6422,1903,0,9603,137,248,-430,,,, +4622,Guadeloupe 1948,6622,Guadeloupe 1948,6622,9122,7022,8901,1,0,6422,1904,1,9603,-467,-16,-300,,,, +4623,CSG67,6623,Centre Spatial Guyanais 1967,6623,9122,7022,8901,1,0,6422,1906,0,9603,-186,230,110,,,, +4624,RGFG95,6624,Reseau Geodesique Francais Guyane 1995,6624,9122,7019,8901,1,0,6422,4840,1,9603,0,0,0,,,, +4625,Martinique 1938,6625,Martinique 1938,6625,9122,7022,8901,1,0,6422,1909,1,9603,186,482,151,,,, +4626,Reunion 1947,6626,Reunion 1947,6626,9122,7022,8901,1,0,6422,15751,1,9603,94,-948,-1262,,,, +4627,RGR92,6627,Reseau Geodesique de la Reunion 1992,6627,9122,7019,8901,1,0,6422,1912,0,9603,0,0,0,,,, +4628,Tahiti 52,6628,Tahiti 52,6628,9122,7022,8901,1,0,6422,1924,0,9603,162,117,154,,,, +4629,Tahaa 54,6629,Tahaa 54,6629,9122,7022,8901,1,0,6422,15770,1,9607,72.438,345.918,79.486,-1.6045,-0.8823,-0.5565,1.3746 +4630,IGN72 Nuku Hiva,6630,IGN72 Nuku Hiva,6630,9122,7022,8901,1,0,6422,1914,1,9603,84,274,65,,,, +4631,K0 1949,6631,K0 1949,6631,9122,7022,8901,1,1,6422,1915,0,9603,145,-187,103,,,, +4632,Combani 1950,6632,Combani 1950,6632,9122,7022,8901,1,0,6422,1916,0,9603,-382,-59,-262,,,, +4633,IGN56 Lifou,6633,IGN56 Lifou,6633,9122,7022,8901,1,0,6422,15902,1,9603,335.47,222.58,-230.94,,,, +4634,IGN72 Grand Terre,6634,IGN72 Grande Terre,6634,9108,7022,8901,1,1,6402,1918,1,9603,-13,-348,292,,,, +4635,ST87 Ouvea,6635,ST87 Ouvea,6635,9122,7022,8901,1,1,6422,1919,0,9606,-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +4636,Petrels 1972,6636,Petrels 1972,6636,9122,7022,8901,1,0,6422,1921,0,9603,365,194,166,,,, +4637,Perroud 1950,6637,Pointe Geologie Perroud 1950,6637,9122,7022,8901,1,0,6422,1922,0,9603,325,154,172,,,, +4638,Saint Pierre et Miquelon 1950,6638,Saint Pierre et Miquelon 1950,6638,9122,7008,8901,1,0,6422,8270,1,9603,11.363,424.148,373.13,,,, +4639,MOP78,6639,MOP78,6639,9122,7022,8901,1,0,6422,15847,1,9603,253,-132,-127,,,, +4640,RRAF 1991,6640,Reseau de Reference des Antilles Francaises 1991,6640,9122,7030,8901,1,1,6422,1934,0,9603,0,0,0,,,, +4641,IGN53 Mare,6641,IGN53 Mare,6641,9122,7022,8901,1,0,6422,15901,1,9603,287.58,177.78,-135.41,,,, +4642,ST84 Ile des Pins,6642,ST84 Ile des Pins,6642,9122,7022,8901,1,0,6422,15848,1,9603,-13,-348,292,,,, +4643,ST71 Belep,6643,ST71 Belep,6643,9122,7022,8901,1,0,6422,1931,0,9606,-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002 +4644,NEA74 Noumea,6644,NEA74 Noumea,6644,9122,7022,8901,1,0,6422,15904,1,9603,-10.18,-350.43,291.37,,,, +4645,RGNC 1991,6645,Reseau Geodesique Nouvelle Caledonie 1991,6645,9122,7022,8901,1,1,6422,1920,0,9603,0,0,0,,,, +4646,Grand Comoros,6646,Grand Comoros,6646,9122,7022,8901,1,0,6422,5521,0,9603,-963,510,-359,,,, +4657,Reykjavik 1900,6657,Reykjavik 1900,6657,9122,7051,8901,1,0,6422,1994,0,9603,-28,199,5,,,, +4658,Hjorsey 1955,6658,Hjorsey 1955,6658,9122,7022,8901,1,0,6422,6909,1,9603,-73,47,-83,,,, +4659,ISN93,6659,Islands Net 1993,6659,9122,7019,8901,1,0,6422,1952,0,9603,0,0,0,,,, +4660,Helle 1954,6660,Helle 1954,6660,9122,7022,8901,1,0,6422,1957,0,9606,982.6087,552.753,-540.873,6.6816266,-31.6114924,-19.84816,16.805 +4661,LKS92,6661,Latvia 1992,6661,9122,7019,8901,1,0,6422,1958,0,9603,0,0,0,,,, +4662,IGN72 Grande Terre,6634,IGN72 Grande Terre,6634,9122,7022,8901,1,0,6422,15903,1,9603,-11.64,-348.6,291.98,,,, +4663,Porto Santo 1995,6663,Porto Santo 1995,6663,9122,7022,8901,1,0,6422,1966,1,9603,-502.862,-247.438,312.724,,,, +4664,Azores Oriental 1995,6664,Azores Oriental Islands 1995,6664,9122,7022,8901,1,0,6422,1970,1,9603,-204.619,140.176,55.226,,,, +4665,Azores Central 1995,6665,Azores Central Islands 1995,6665,9122,7022,8901,1,0,6422,1980,1,9603,-106.226,166.366,-37.893,,,, +4666,Lisbon 1890,6666,Lisbon 1890,6666,9122,7004,8901,1,0,6422,1986,1,9603,508.088,-191.042,565.223,,,, +4667,IKBD-92,6667,Iraq-Kuwait Boundary Datum 1992,6667,9122,7030,8901,1,0,6422,1993,0,9603,0,0,0,,,, +4668,ED79,6668,European Datum 1979,6668,9122,7022,8901,1,0,6422,15752,0,9603,-86,-98,-119,,,, +4669,LKS94,6126,"Lithuania 1994 (ETRS89)",6126,9122,7019,8901,1,0,6422,1283,0,9603,0,0,0,,,, +4670,IGM95,6670,Istituto Geografico Militaire 1995,6670,9122,7030,8901,1,0,6422,1099,0,9603,0,0,0,,,, +4671,Voirol 1879,6671,Voirol 1879,6671,9122,7011,8901,1,0,6422,,0,,,,,,,, +4672,Chatham Islands 1971,6672,Chatham Islands Datum 1971,6672,9122,7022,8901,1,0,6422,1080,0,9603,175,-38,113,,,, +4673,Chatham Islands 1979,6673,Chatham Islands Datum 1979,6673,9122,7022,8901,1,0,6422,1081,0,9607,174.05,-25.49,112.57,0,0,-0.554,0.2263 +4674,SIRGAS 2000,6674,Sistema de Referencia Geocentrico para las AmericaS 2000,6674,9122,7019,8901,1,0,6422,15894,0,9603,0,0,0,,,, +4675,Guam 1963,6675,Guam 1963,6675,9122,7008,8901,1,0,6422,1070,0,9603,-100,-248,259,,,, +4676,Vientiane 1982,6676,Vientiane 1982,6676,9122,7024,8901,1,0,6422,,0,,,,,,,, +4677,Lao 1993,6677,Lao 1993,6677,9122,7024,8901,1,0,6422,,0,,,,,,,, +4678,Lao 1997,6678,Lao National Datum 1997,6678,9122,7024,8901,1,0,6422,1065,0,9603,44.585,-131.212,-39.544,,,, +4679,Jouik 1961,6679,Jouik 1961,6679,9122,7012,8901,1,0,6422,15870,0,9603,-80.01,253.26,291.19,,,, +4680,Nouakchott 1965,6680,Nouakchott 1965,6680,9122,7012,8901,1,0,6422,15709,0,9603,124.5,-63.5,-281,,,, +4681,Mauritania 1999,6681,Mauritania 1999,6681,9122,7012,8901,1,1,6422,,0,,,,,,,, +4682,Gulshan 303,6682,Gulshan 303,6682,9122,7015,8901,1,0,6422,15779,1,9603,283.7,735.9,261.1,,,, +4683,PRS92,6683,Philippine Reference System 1992,6683,9122,7008,8901,1,0,6422,15708,0,9607,-127.62,-67.24,-47.04,3.068,-4.903,-1.578,-1.06 +4684,Gan 1970,6684,Gan 1970,6684,9122,7022,8901,1,0,6422,15713,0,9603,-133,-321,50,,,, +4685,Gandajika,6685,Gandajika,6685,9122,7022,8901,1,1,6422,,0,,,,,,,, +4686,MAGNA-SIRGAS,6686,Marco Geocentrico Nacional de Referencia,6686,9122,7019,8901,1,0,6422,15738,0,9603,0,0,0,,,, +4687,RGPF,6687,Reseau Geodesique de la Polynesie Francaise,6687,9122,7019,8901,1,0,6422,15832,1,9607,0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093 +4688,Fatu Iva 72,6688,Fatu Iva 72,6688,9122,7022,8901,1,0,6422,15772,0,9607,347.103,1078.125,2623.922,33.8875,-70.6773,9.3943,186.074 +4689,IGN63 Hiva Oa,6689,IGN63 Hiva Oa,6689,9122,7022,8901,1,0,6422,15773,1,9607,410.721,55.049,80.746,-2.5779,-2.3514,-0.6664,17.3311 +4690,Tahiti 79,6690,Tahiti 79,6690,9122,7022,8901,1,0,6422,4835,0,9607,221.525,152.948,176.768,2.3847,1.3896,0.877,11.4741 +4691,Moorea 87,6691,Moorea 87,6691,9122,7022,8901,1,0,6422,15769,0,9607,215.525,149.593,176.229,3.2624,1.692,1.1571,10.4773 +4692,Maupiti 83,6692,Maupiti 83,6692,9122,7022,8901,1,0,6422,15771,0,9603,217.037,86.959,23.956,,,, +4693,Nakhl-e Ghanem,6693,Nakhl-e Ghanem,6693,9122,7030,8901,1,0,6422,15746,0,9603,0,-0.15,0.68,,,, +4694,POSGAR 94,6694,Posiciones Geodesicas Argentinas 1994,6694,9122,7030,8901,1,0,6422,1210,0,9603,0,0,0,,,, +4695,Katanga 1955,6695,Katanga 1955,6695,9122,7008,8901,1,0,6422,4066,0,9603,-103.746,-9.614,-255.95,,,, +4696,Kasai 1953,6696,Kasai 1953,6696,9122,7012,8901,1,0,6422,,0,,,,,,,, +4697,IGC 1962 6th Parallel South,6697,IGC 1962 Arc of the 6th Parallel South,6697,9122,7012,8901,1,0,6422,,0,,,,,,,, +4698,IGN 1962 Kerguelen,6698,IGN 1962 Kerguelen,6698,9122,7022,8901,1,0,6422,15850,0,9603,145,-187,103,,,, +4699,Le Pouce 1934,6699,Le Pouce 1934,6699,9122,7012,8901,1,0,6422,15784,0,9603,-770.1,158.4,-498.2,,,, +4700,IGN Astro 1960,6700,IGN Astro 1960,6700,9122,7012,8901,1,0,6422,,0,,,,,,,, +4701,IGCB 1955,6701,Institut Geographique du Congo Belge 1955,6701,9122,7012,8901,1,0,6422,15787,0,9603,-79.9,-158,-168.9,,,, +4702,Mauritania 1999,6702,Mauritania 1999,6702,9122,7019,8901,1,0,6422,15860,0,9603,0,0,0,,,, +4703,Mhast 1951,6703,Missao Hidrografico Angola y Sao Tome 1951,6703,9122,7012,8901,1,0,6422,,0,,,,,,,, +4704,"Mhast (onshore)",6704,"Mhast (onshore)",6704,9122,7022,8901,1,0,6422,,0,,,,,,,, +4705,"Mhast (offshore)",6705,"Mhast (offshore)",6705,9122,7022,8901,1,0,6422,,0,,,,,,,, +4706,Egypt Gulf of Suez S-650 TL,6706,Egypt Gulf of Suez S-650 TL,6706,9122,7020,8901,1,0,6422,15846,0,9603,-146.21,112.63,4.05,,,, +4707,Tern Island 1961,6707,Tern Island 1961,6707,9122,7022,8901,1,0,6422,15795,0,9603,114,-116,-333,,,, +4708,Cocos Islands 1965,6708,Cocos Islands 1965,6708,9122,7003,8901,1,0,6422,15794,0,9603,-491,-22,435,,,, +4709,Iwo Jima 1945,6709,Iwo Jima 1945,6709,9122,7022,8901,1,0,6422,15796,0,9603,145,75,-272,,,, +4710,Astro DOS 71,6710,Astro DOS 71,6710,9122,7022,8901,1,0,6422,15798,1,9603,-320,550,-494,,,, +4711,Marcus Island 1952,6711,Marcus Island 1952,6711,9122,7022,8901,1,0,6422,15799,0,9603,124,-234,-25,,,, +4712,Ascension Island 1958,6712,Ascension Island 1958,6712,9122,7022,8901,1,0,6422,15797,0,9603,-205,107,53,,,, +4713,Ayabelle Lighthouse,6713,Ayabelle Lighthouse,6713,9122,7012,8901,1,0,6422,6907,1,9603,-77,-128,142,,,, +4714,Bellevue,6714,Bellevue,6714,9122,7022,8901,1,0,6422,15801,0,9603,-127,-769,472,,,, +4715,Camp Area Astro,6715,Camp Area Astro,6715,9122,7022,8901,1,0,6422,15802,0,9603,-104,-129,239,,,, +4716,Phoenix Islands 1966,6716,Phoenix Islands 1966,6716,9122,7022,8901,1,0,6422,15803,0,9603,298,-304,-375,,,, +4717,Cape Canaveral,6717,Cape Canaveral,6717,9122,7008,8901,1,0,6422,15804,0,9603,-2,151,181,,,, +4718,Solomon 1968,6718,Solomon 1968,6718,9122,7022,8901,1,0,6422,15805,1,9603,230,-199,-752,,,, +4719,Easter Island 1967,6719,Easter Island 1967,6719,9122,7022,8901,1,0,6422,15806,0,9603,211,147,111,,,, +4720,Fiji 1986,6720,Fiji Geodetic Datum 1986,6720,9122,7043,8901,1,0,6422,15876,1,9606,0,0,4.5,0,0,0.554,0.2263 +4721,Fiji 1956,6721,Fiji 1956,6721,9122,7022,8901,1,0,6422,15875,0,9603,265.025,384.929,-194.046,,,, +4722,South Georgia 1968,6722,South Georgia 1968,6722,9122,7022,8901,1,0,6422,15813,0,9603,-794,119,-298,,,, +4723,GCGD59,6723,Grand Cayman Geodetic Datum 1959,6723,9122,7008,8901,1,0,6422,6142,1,9607,-179.483,-69.379,-27.584,7.862,-8.163,-6.042,-13.925 +4724,Diego Garcia 1969,6724,Diego Garcia 1969,6724,9122,7022,8901,1,0,6422,15808,0,9603,208,-435,-229,,,, +4725,Johnston Island 1961,6725,Johnston Island 1961,6725,9122,7022,8901,1,0,6422,15809,0,9603,189,-79,-202,,,, +4726,SIGD61,6726,Sister Islands Geodetic Datum 1961,6726,9122,7008,8901,1,0,6422,6143,1,9607,8.853,-52.644,180.304,0.393,2.323,-2.96,-24.081 +4727,Midway 1961,6727,Midway 1961,6727,9122,7022,8901,1,0,6422,15818,1,9603,403,-81,277,,,, +4728,Pico de las Nieves 1984,6728,Pico de las Nieves 1984,6728,9122,7022,8901,1,0,6422,15815,0,9603,-307,-92,127,,,, +4729,Pitcairn 1967,6729,Pitcairn 1967,6729,9122,7022,8901,1,0,6422,15819,0,9603,185,165,42,,,, +4730,Santo 1965,6730,Santo 1965,6730,9122,7022,8901,1,0,6422,15820,0,9603,170,42,84,,,, +4731,Viti Levu 1916,6731,Viti Levu 1916,6731,9122,7012,8901,1,1,6422,15821,0,9603,51,391,-36,,,, +4732,Marshall Islands 1960,6732,Marshall Islands 1960,6732,9122,7053,8901,1,0,6422,15822,0,9603,102,52,-38,,,, +4733,Wake Island 1952,6733,Wake Island 1952,6733,9122,7022,8901,1,0,6422,15823,0,9603,276,-57,149,,,, +4734,Tristan 1968,6734,Tristan 1968,6734,9122,7022,8901,1,0,6422,15816,0,9603,-632,438,-609,,,, +4735,Kusaie 1951,6735,Kusaie 1951,6735,9122,7022,8901,1,0,6422,15810,0,9603,647,1777,-1124,,,, +4736,Deception Island,6736,Deception Island,6736,9122,7012,8901,1,0,6422,15812,0,9603,260,12,-147,,,, +4737,Korea 2000,6737,Geocentric datum of Korea,6737,9122,7019,8901,1,0,6422,15831,0,9603,0,0,0,,,, +4738,Hong Kong 1963,6738,Hong Kong 1963,6738,9122,7007,8901,1,0,6422,,0,,,,,,,, +4739,"Hong Kong 1963(67)",6739,"Hong Kong 1963(67)",6739,9122,7022,8901,1,0,6422,15842,0,9603,-156,-271,-189,,,, +4740,PZ-90,6740,Parametry Zemli 1990,6740,9122,7054,8901,1,0,6422,15843,1,9607,0,0,1.5,0,0,-0.076,0 +4741,FD54,6741,Faroe Datum 1954,6741,9122,7022,8901,1,0,6422,,0,,,,,,,, +4742,GDM2000,6742,Geodetic Datum of Malaysia 2000,6742,9122,7019,8901,1,0,6422,,0,,,,,,,, +4743,Karbala 1979,6743,Karbala 1979,6743,9122,7012,8901,1,0,6422,5078,1,9603,70.995,-335.916,262.898,,,, +4744,Nahrwan 1934,6744,Nahrwan 1934,6744,9122,7012,8901,1,0,6422,7033,0,9603,-242.2,-144.9,370.3,,,, +4745,"RD/83",6745,"Rauenberg Datum/83",6745,9122,7004,8901,1,0,6422,,0,,,,,,,, +4746,"PD/83",6746,"Potsdam Datum/83",6746,9122,7004,8901,1,0,6422,,0,,,,,,,, +4747,GR96,6747,Greenland 1996,6747,9122,7019,8901,1,0,6422,15879,0,9603,0,0,0,,,, +4748,Vanua Levu 1915,6748,Vanua Levu 1915,6748,9122,7055,8901,1,0,6422,15878,0,9603,51,391,-36,,,, +4749,RGNC91-93,6749,Reseau Geodesique de Nouvelle Caledonie 91-93,6749,9122,7019,8901,1,0,6422,15880,0,9603,0,0,0,,,, +4750,ST87 Ouvea,6750,ST87 Ouvea,6750,9122,7030,8901,1,0,6422,15881,0,9603,-56.263,16.136,-22.856,,,, +4751,"Kertau (RSO)",6751,"Kertau (RSO)",6751,9122,7056,8901,1,0,6422,,0,,,,,,,, +4752,Viti Levu 1912,6752,Viti Levu 1912,6752,9122,7055,8901,1,0,6422,6895,1,9603,98,390,-22,,,, +4753,fk89,6753,fk89,6753,9122,7022,8901,1,0,6422,,0,,,,,,,, +4754,LGD2006,6754,Libyan Geodetic Datum 2006,6754,9122,7022,8901,1,0,6422,15908,0,9603,-208.4058,-109.8777,-2.5764,,,, +4755,DGN95,6755,Datum Geodesi Nasional 1995,6755,9122,7030,8901,1,0,6422,15912,0,9603,0,0,0,,,, +4756,VN-2000,6756,Vietnam 2000,6756,9122,7030,8901,1,0,6422,6960,1,9607,-191.90441429,-39.30318279,-111.45032835,-0.00928836,0.01975479,-0.00427372,0.252906278 +4757,SVY21,6757,SVY21,6757,9122,7030,8901,1,0,6422,,0,,,,,,,, +4758,JAD2001,6758,Jamaica 2001,6758,9122,7030,8901,1,0,6422,15925,0,9603,0,0,0,,,, +4759,"NAD83(NSRS2007)",6759,"NAD83 (National Spatial Reference System 2007)",6759,9122,7019,8901,1,0,6422,15931,0,9603,0,0,0,,,, +4760,WGS 66,6760,World Geodetic System 1966,6760,9122,7025,8901,1,0,6422,,0,,,,,,,, +4761,HTRS96,6761,Croatian Terrestrial Reference System,6761,9122,7019,8901,1,0,6422,15967,0,9603,0,0,0,,,, +4762,BDA2000,6762,Bermuda 2000,6762,9122,7030,8901,1,0,6422,15971,0,9603,0,0,0,,,, +4763,Pitcairn 2006,6763,Pitcairn 2006,6763,9122,7030,8901,1,0,6422,15972,0,9603,0,0,0,,,, +4764,RSRGD2000,6764,Ross Sea Region Geodetic Datum 2000,6764,9122,7019,8901,1,0,6422,15974,0,9603,0,0,0,,,, +4765,Slovenia 1996,6765,Slovenia Geodetic Datum 1996,6765,9122,7019,8901,1,0,6422,15976,0,9603,0,0,0,,,, +4801,"Bern 1898 (Bern)",6801,"CH1903 (Bern)",6149,9122,7004,8907,1,0,6422,1510,1,9603,674.374,15.056,405.346,,,, +4802,"Bogota 1975 (Bogota)",6802,"Bogota 1975 (Bogota)",6218,9122,7022,8904,1,0,6422,1125,1,9603,307,304,-318,,,, +4803,"Lisbon (Lisbon)",6803,"Lisbon 1937 (Lisbon)",6207,9122,7022,8902,1,0,6422,1984,1,9603,-304.046,-60.576,103.64,,,, +4804,"Makassar (Jakarta)",6804,"Makassar (Jakarta)",6257,9122,7004,8908,1,0,6422,1837,0,9603,-587.8,519.75,145.76,,,, +4805,"MGI (Ferro)",6805,"Militar-Geographische Institut (Ferro)",1031,9122,7004,8909,1,0,6422,3962,1,9603,682,-203,480,,,, +4806,"Monte Mario (Rome)",6806,"Monte Mario (Rome)",6265,9122,7022,8906,1,0,6422,1660,1,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +4807,"NTF (Paris)",6807,"Nouvelle Triangulation Francaise (Paris)",6275,9105,7011,8903,1,0,6403,1193,0,9603,-168,-60,320,,,, +4808,"Padang (Jakarta)",6808,"Padang 1884 (Jakarta)",6280,9122,7004,8908,1,0,6422,,0,,,,,,,, +4809,"Belge 1950 (Brussels)",6809,"Reseau National Belge 1950 (Brussels)",6215,9122,7022,8910,1,0,6422,,0,,,,,,,, +4810,"Tananarive (Paris)",6810,"Tananarive 1925 (Paris)",6297,9105,7022,8903,1,0,6403,1227,1,9603,-189,-242,-91,,,, +4811,"Voirol 1875 (Paris)",6811,"Voirol 1875 (Paris)",6304,9105,7011,8903,1,0,6403,1294,0,9603,-73,-247,227,,,, +4813,"Batavia (Jakarta)",6813,"Batavia (Jakarta)",6211,9122,7004,8908,1,0,6422,1123,1,9603,-377,681,-50,,,, +4814,"RT38 (Stockholm)",6814,"Stockholm 1938 (Stockholm)",6308,9122,7004,8911,1,0,6422,,0,,,,,,,, +4815,"Greek (Athens)",6815,"Greek (Athens)",6120,9122,7004,8912,1,0,6422,,0,,,,,,,, +4816,"Carthage (Paris)",6816,"Carthage (Paris)",6223,9105,7011,8903,1,0,6403,1130,1,9603,-263,6,431,,,, +4817,"NGO 1948 (Oslo)",6817,"NGO 1948 (Oslo)",6273,9122,7005,8913,1,0,6422,1654,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21 +4818,"S-JTSK (Ferro)",6818,"System Jednotne Trigonometricke Site Katastralni (Ferro)",6156,9122,7004,8909,1,0,6422,15965,1,9603,589,76,480,,,, +4819,"Nord Sahara 1959 (Paris)",6819,"Nord Sahara 1959 (Paris)",6307,9105,7012,8903,1,1,6403,5660,1,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +4820,"Segara (Jakarta)",6820,"Gunung Segara (Jakarta)",6613,9122,7004,8908,1,0,6422,1897,1,9603,-403,684,41,,,, +4821,"Voirol 1879 (Paris)",6821,"Voirol 1879 (Paris)",6821,9105,7011,8903,1,0,6403,,0,,,,,,,, +4823,Sao Tome,1044,Sao Tome,1044,9122,7022,8901,1,0,6422,,0,,,,,,,, +4824,Principe,1046,Principe,1046,9122,7022,8901,1,0,6422,,0,,,,,,,, +4901,"ATF (Paris)",6901,"Ancienne Triangulation Francaise (Paris)",6901,9105,7027,8914,1,0,6403,,0,,,,,,,, +4902,"NDG (Paris)",6902,"Nord de Guerre (Paris)",6902,9105,7027,8903,1,1,6403,,0,,,,,,,, +4903,"Madrid 1870 (Madrid)",6903,"Madrid 1870 (Madrid)",6903,9122,7028,8905,1,0,6422,,0,,,,,,,, +4904,"Lisbon 1890 (Lisbon)",6904,"Lisbon 1890 (Lisbon)",6666,9122,7004,8902,1,0,6422,1986,1,9603,508.088,-191.042,565.223,,,, +5013,PTRA08,1041,Autonomous Regions of Portugal 2008,1041,9122,7019,8901,1,0,6422,4905,0,9603,0,0,0,,,, +5132,Tokyo 1892,1048,Tokyo 1892,6162,9122,7004,8901,1,0,6422,,0,,,,,,,, +5228,"S-JTSK/05",1052,"System Jednotne Trigonometricke Site Katastralni/05",1052,9122,7004,8901,1,0,6422,5227,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378 +5229,"S-JTSK/05 (Ferro)",1055,"System Jednotne Trigonometricke Site Katastralni/05 (Ferro)",1052,9122,7004,8909,1,0,6422,5227,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378 +5233,SLD99,1053,Sri Lanka Datum 1999,1053,9122,7015,8901,1,0,6422,5236,0,9607,-0.293,766.95,87.713,-0.195704,-1.695068,-3.473016,-0.039338 +5246,GDBD2009,1056,Geocentric Datum Brunei Darussalam 2009,1056,9122,7019,8901,1,0,6422,6701,0,9603,0,0,0,,,, +5252,TUREF,1057,Turkish National Reference Frame,1057,9122,7019,8901,1,0,6422,5261,0,9603,0,0,0,,,, +5264,DRUKREF 03,1058,Bhutan National Geodetic Datum,1058,9122,7019,8901,1,0,6422,5267,0,9603,0,0,0,,,, +5324,ISN2004,1060,Islands Net 2004,1060,9122,7019,8901,1,0,6422,5327,0,9603,0,0,0,,,, +5340,POSGAR 2007,1062,Posiciones Geodesicas Argentinas 2007,1062,9122,7019,8901,1,0,6422,5351,0,9603,0,0,0,,,, +5354,MARGEN,1063,Marco Geodesico Nacional de Bolivia,1063,9122,7019,8901,1,0,6422,5374,0,9603,0,0,0,,,, +5360,SIRGAS-Chile,1064,SIRGAS-Chile,1064,9122,7019,8901,1,0,6422,5375,0,9603,0,0,0,,,, +5365,CR05,1065,Costa Rica 2005,1065,9122,7030,8901,1,0,6422,5376,0,9603,0,0,0,,,, +5371,MACARIO SOLIS,1066,Sistema Geodesico Nacional de Panama MACARIO SOLIS,1066,9122,7019,8901,1,0,6422,5377,0,9603,0,0,0,,,, +5373,Peru96,1067,Peru96,1067,9122,7019,8901,1,0,6422,5378,0,9603,0,0,0,,,, +5381,SIRGAS-ROU98,1068,SIRGAS-ROU98,1068,9122,7030,8901,1,0,6422,5384,0,9603,0,0,0,,,, +5393,"SIRGAS_ES2007.8",1069,"SIRGAS_ES2007.8",1069,9122,7019,8901,1,0,6422,5395,0,9603,0,0,0,,,, +5451,Ocotepeque 1935,1070,Ocotepeque 1935,1070,9122,7008,8901,1,0,6422,6891,1,9603,205,96,-98,,,, +5464,Sibun Gorge 1922,1071,Sibun Gorge 1922,1071,9122,7007,8901,1,0,6422,,0,,,,,,,, +5467,Panama-Colon 1911,1072,Panama-Colon 1911,1072,9122,7008,8901,1,0,6422,,0,,,,,,,, +5489,RGAF09,1073,Reseau Geodesique des Antilles Francaises 2009,1073,9122,7019,8901,1,0,6422,5501,0,9603,0,0,0,,,, +5524,Corrego Alegre 1961,1074,Corrego Alegre 1961,1074,9122,7022,8901,1,0,6422,,0,,,,,,,, +5527,"SAD69(96)",1075,"South American Datum 1969(96)",1075,9122,7050,8901,1,0,6422,6195,0,9603,-67.35,3.88,-38.22,,,, +5546,PNG94,1076,Papua New Guinea Geodetic Datum 1994,1076,9122,7019,8901,1,0,6422,5553,0,9603,0,0,0,,,, +5561,UCS-2000,1077,Ukraine 2000,1077,9122,7024,8901,1,0,6422,5590,1,9607,25,-141,-78.5,0,-0.35,-0.736,0 +5593,FEH2010,1078,Fehmarnbelt Datum 2010,1078,9122,7019,8901,1,0,6422,5599,0,9603,0,0,0,,,, +5681,"DB_REF",1081,Deutsche Bahn Reference System,1081,9122,7004,8901,1,0,6422,,0,,,,,,,, +5886,TGD2005,1095,Tonga Geodetic Datum 2005,1095,9122,7019,8901,1,0,6422,,0,,,,,,,, +6135,CIGD11,1100,Cayman Islands Geodetic Datum 2011,1100,9122,7019,8901,1,0,6422,6177,0,9603,0,0,0,,,, +6207,Nepal 1981,1111,Nepal 1981,1111,9122,7015,8901,1,0,6422,6208,0,9603,293.17,726.18,245.36,,,, +6311,CGRS93,1112,Cyprus Geodetic Reference System 1993,1112,9122,7030,8901,1,0,6422,7721,1,9607,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926 +6318,"NAD83(2011)",1116,"NAD83 (National Spatial Reference System 2011)",1116,9122,7019,8901,1,0,6422,,0,,,,,,,, +6322,"NAD83(PA11)",1117,"NAD83 (National Spatial Reference System PA11)",1117,9122,7019,8901,1,0,6422,,0,,,,,,,, +6325,"NAD83(MA11)",1118,"NAD83 (National Spatial Reference System MA11)",1118,9122,7019,8901,1,0,6422,,0,,,,,,,, +6365,Mexico ITRF2008,1120,Mexico ITRF2008,1120,9122,7019,8901,1,0,6422,6373,0,9603,0,0,0,,,, +6668,JGD2011,1128,Japanese Geodetic Datum 2011,1128,9122,7019,8901,1,0,6422,,0,,,,,,,, +6706,RDN2008,1132,Rete Dinamica Nazionale 2008,1132,9122,7019,8901,1,0,6422,6711,0,9603,0,0,0,,,, +6783,"NAD83(CORS96)",1133,"NAD83 (Continuously Operating Reference Station 1996)",1133,9122,7019,8901,1,0,6422,,0,,,,,,,, +6881,Aden 1925,1135,Aden 1925,1135,9122,7012,8901,1,0,6422,6910,0,9603,-24,-203,268,,,, +6882,Bekaa Valley 1920,1137,Bekaa Valley 1920,1137,9122,7012,8901,1,0,6422,6911,0,9603,-183,-15,273,,,, +6883,Bioko,1136,Bioko,1136,9122,7022,8901,1,0,6422,6912,0,9603,-235,-110,393,,,, +6892,South East Island 1943,1138,South East Island 1943,1138,9122,7012,8901,1,0,6422,6914,1,9603,-43.685,-179.785,-267.721,,,, +6894,Gambia,1139,Gambia,1139,9122,7012,8901,1,0,6422,6913,0,9603,-63,176,185,,,, +6980,IGD05,1143,Israeli Geodetic Datum 2005,1143,9122,7019,8901,1,1,6422,,0,,,,,,,, +6983,IG05 Intermediate CRS,1142,IG05 Intermediate Datum,1142,9122,7019,8901,1,0,6422,,0,,,,,,,, +6987,"IGD05/12",1145,"Israeli Geodetic Datum 2005(2012)",1145,9122,7019,8901,1,1,6422,,0,,,,,,,, +6990,"IG05/12 Intermediate CRS",1144,"IG05/12 Intermediate Datum",1144,9122,7019,8901,1,0,6422,,0,,,,,,,, +7035,"RGSPM06 (lon-lat)",1038,Reseau Geodesique de Saint Pierre et Miquelon 2006,1038,9122,7019,8901,1,0,6424,,0,,,,,,,, +7037,"RGR92 (lon-lat)",6627,Reseau Geodesique de la Reunion 1992,6627,9122,7019,8901,1,0,6424,,0,,,,,,,, +7039,"RGM04 (lon-lat)",1036,Reseau Geodesique de Mayotte 2004,1036,9122,7019,8901,1,0,6424,,0,,,,,,,, +7041,"RGFG95 (lon-lat)",6624,Reseau Geodesique Francais Guyane 1995,6624,9122,7019,8901,1,0,6424,,0,,,,,,,, +7073,RGTAAF07,1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9122,7019,8901,1,0,6422,,0,,,,,,,, +7084,"RGF93 (lon-lat)",6171,Reseau Geodesique Francais 1993,6171,9122,7019,8901,1,0,6424,,0,,,,,,,, +7086,"RGAF09 (lon-lat)",1073,Reseau Geodesique des Antilles Francaises 2009,1073,9122,7019,8901,1,0,6424,,0,,,,,,,, +7088,"RGTAAF07 (lon-lat)",1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9122,7019,8901,1,1,6424,,0,,,,,,,, +7133,"RGTAAF07 (lon-lat)",1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9122,7019,8901,1,0,6424,,0,,,,,,,, +7136,IGD05,1114,Israeli Geodetic Datum 2005,1114,9122,7030,8901,1,0,6422,,0,,,,,,,, +7139,"IGD05/12",1115,"Israeli Geodetic Datum 2005(2012)",1115,9122,7030,8901,1,0,6422,,0,,,,,,,, +7373,ONGD14,1147,Oman National Geodetic Datum 2014,1147,9122,7019,8901,1,0,6422,7443,0,9603,0,0,0,,,, +7683,GSK-2011,1159,Geodezicheskaya Sistema Koordinat 2011,1159,9122,1025,8901,1,0,6422,,0,,,,,,,, +7686,Kyrg-06,1160,Kyrgyzstan Geodetic Datum 2006,1160,9122,7019,8901,1,0,6422,,0,,,,,,,, +7798,BGS2005,1167,Bulgaria Geodetic System 2005,1167,9122,7019,8901,1,0,6422,,0,,,,,,,, +7844,GDA2020,1168,Geocentric Datum of Australia 2020,1168,9122,7019,8901,1,0,6422,,0,,,,,,,, +7881,St. Helena Tritan,1173,St. Helena Tritan,1173,9122,7030,8901,1,0,6422,7898,0,9603,-0.077,0.079,0.086,,,, +7886,SHGD2015,1174,St. Helena Geodetic Datum 2015,1174,9122,7019,8901,1,0,6422,7892,0,9603,0,0,0,,,, +8042,"Gusterberg (Ferro)",1188,"Gusterberg (Ferro)",1188,9122,1026,8909,1,0,6422,,0,,,,,,,, +8043,"St. Stephen (Ferro)",1189,"St. Stephen (Ferro)",1189,9122,1026,8909,1,0,6422,,0,,,,,,,, +8086,ISN2016,1187,Islands Net 2016,1187,9122,7019,8901,1,0,6422,,0,,,,,,,, +8232,"NAD83(CSRS96)",1192,"North American Datum of 1983 (CSRS96)",1192,9122,7019,8901,1,0,6422,,0,,,,,,,, +8237,"NAD83(CSRS)v2",1193,"North American Datum of 1983 (CSRS) version 2",1193,9122,7019,8901,1,0,6422,,0,,,,,,,, +8240,"NAD83(CSRS)v3",1194,"North American Datum of 1983 (CSRS) version 3",1194,9122,7019,8901,1,0,6422,,0,,,,,,,, +8246,"NAD83(CSRS)v4",1195,"North American Datum of 1983 (CSRS) version 4",1195,9122,7019,8901,1,0,6422,,0,,,,,,,, +8249,"NAD83(CSRS)v5",1196,"North American Datum of 1983 (CSRS) version 5",1196,9122,7019,8901,1,0,6422,,0,,,,,,,, +8252,"NAD83(CSRS)v6",1197,"North American Datum of 1983 (CSRS) version 6",1197,9122,7019,8901,1,0,6422,,0,,,,,,,, +8255,"NAD83(CSRS)v7",1198,"North American Datum of 1983 (CSRS) version 7",1198,9122,7019,8901,1,0,6422,,0,,,,,,,, +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","GREENWICH_DATUM","UOM_CODE","ELLIPSOID_CODE","PRIME_MERIDIAN_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","COORD_OP_CODE","COORD_OP_CODE_MULTI","COORD_OP_METHOD_CODE","DX","DY","DZ","RX","RY","RZ","DS" +# +# NOTICE: The master version of this file is in the libgeotiff subversion at: +# +# https://svn.osgeo.org/metacrs/geotiff/trunk/libgeotiff/csv/gcs.override.csv +# +# Do *not* change other copies without upstreaming the results to libgeotiff. +prime_meridian_code,prime_meridian_name,greenwich_longitude,uom_code,remarks,information_source,data_source,revision_date,change_id,deprecated +8901,Greenwich,0,9102,The international reference meridian as defined first by the 1884 International Meridian Conference and later by the Bureau International de l'Heure (BIH) and then the International Earth Rotation Service (IERS).,OGP,IOGP,2016/12/15,1996.290 2016.045,0 +8902,Lisbon,-9.0754862,9110,,"Instituto Geografico e Cadastral; Lisbon",OGP,2014/06/27,1996.290 2014.040,0 +8903,Paris,2.5969213,9105,"Value adopted by IGN (Paris) in 1936. Equivalent to 2°20'14.025"". Preferred by EPSG to earlier value of 2°20'13.95"" (2.596898 grads) used by RGS London.","Institut Geographique National (IGN); Paris",OGP,2008/06/24,2008.045,0 +8904,Bogota,-74.04513,9110,,"Instituto Geografico ""Augustin Cadazzi"" (IGAC); Bogota",OGP,2014/06/27,1996.290 2014.040,0 +8905,Madrid,-3.411658,9110,,,OGP,2014/06/27,1996.290 2014.040,0 +8906,Rome,12.27084,9110,,,OGP,1995/06/02,1996.290,0 +8907,Bern,7.26225,9110,"1895 value. Newer value of 7°26'22.335"" determined in 1938.",Bundesamt für Landestopographie,OGP,2008/06/24,1996.290 2008.045,0 +8908,Jakarta,106.482779,9110,,,OGP,1995/06/02,1996.290,0 +8909,Ferro,-17.4,9110,Used in Austria and former Czechoslovakia.,,OGP,2014/06/27,1996.290 2014.040,0 +8910,Brussels,4.220471,9110,,,OGP,1995/06/02,1996.290,0 +8911,Stockholm,18.03298,9110,,,OGP,1995/06/02,1996.290,0 +8912,Athens,23.4258815,9110,Used in Greece for older mapping based on Hatt projection.,"Topography Department; National Technical University of Athens.",OGP,1997/06/16,,0 +8913,Oslo,10.43225,9110,Formerly known as Kristiania or Christiania.,Statens Kartverk - Geodesidivisjonen,OGP,1999/10/20,,0 +8914,Paris RGS,2.201395,9110,Value replaced by IGN (France) in 1936 - see code 8903. Equivalent to 2.596898 grads.,"Royal Geographic Society, London",OGP,2007/11/01,,0 +uom_code,unit_of_meas_name,unit_of_meas_type,target_uom_code,factor_b,factor_c,remarks,information_source,data_source,revision_date,change_id,deprecated +1024,bin,scale,9201,1,1,,OGP,OGP,2012/07/14,2011.106,0 +1025,millimetre,length,9001,1,1000,,ISO 1000.,IOGP,2015/11/25,2013.021 2015.062,0 +1026,metres per second,length,1026,1,1,Length rate.,OGP,IOGP,2015/11/25,2013.021 2015.062,0 +1027,millimetres per year,length,1026,1,31556925445,"Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029.",ISO 1000.,OGP,2013/09/02,2013.021 2013.042,0 +1028,parts per billion,scale,9201,1,1000000000,"Billion is internationally ambiguous, in different languages being 1E+9 and 1E+12. One billion taken here to be 1E+9.",OGP,OGP,2013/05/29,2013.021,0 +1029,year,time,1040,31556925.445,1,,"International Union of Geological Sciences (IUGS) and International Union of Pure and Applied Chemistry (IUPAC). Pure Appl. Chem., Vol. 83, No. 5, pp. 1159–1162, 2011.",OGP,2013/05/28,2013.021,0 +1030,parts per billion per year,scale,1036,1,3.1556925445e+16,"Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029. Billion is internationally ambiguous, in different languages being 1E+9 and 1E+12. One billion taken here to be 1E+9.",ISO 1000.,IOGP,2015/06/24,2013.021 2013.042 2013.067 2015.036,0 +1031,milliarc-second,angle,9101,3.14159265358979,648000000,= ((pi/180) / 3600 / 1000) radians,,IOGP,2015/11/25,2013.021 2015.062,0 +1032,milliarc-seconds per year,angle,1035,3.14159265358979,2.044888768836e+16,"= ((pi/180) / 3600 / 1000) radians per year. Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029.",,OGP,2013/09/02,2013.021 2013.042,0 +1033,centimetre,length,9001,1,100,,ISO 1000.,IOGP,2015/11/25,2013.021 2015.062,0 +1034,centimetres per year,length,1026,1,3155692544.5,"Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029.",ISO 1000.,OGP,2013/09/02,2013.021 2013.042,0 +1035,radians per second,angle,1035,1,1,Angle rate.,OGP,IOGP,2015/11/25,2013.021 2015.062,0 +1036,unity per second,scale,1036,1,1,Scale rate.,OGP,OGP,2013/05/29,2013.021,0 +1040,second,time,1040,1,1,Not to be confused with the angle unit arc-second.,ISO 1000.,IOGP,2015/11/25,2013.021 2015.062,0 +1041,parts per million per year,scale,1036,1,31556925445000,"Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029.",,OGP,2013/09/02,2013.021 2013.037 2013.042,0 +1042,metres per year,length,1026,1,31556925.445,"Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029.",OGP,OGP,2013/09/02,2013.021 2013.042,0 +1043,arc-seconds per year,angle,1035,3.14159265358979,20448887688360,"=((pi/180) / 3600) radians per year. Year taken to be IUGS definition of 31556925.445 seconds; see UoM code 1029.",,IOGP,2015/03/06,2013.021 2013.042 2015.014,0 +9001,metre,length,9001,1,1,Also known as International metre. SI standard unit.,ISO 1000.,IOGP,2015/11/25,2015.062,0 +9002,foot,length,9001,0.3048,1,,"ISO 1000; 1958",IOGP,2015/11/25,2015.062,0 +9003,US survey foot,length,9001,12,39.37,Used in USA.,OGP,IOGP,2015/11/25,1999.990 2015.062,0 +9005,Clarke's foot,length,9001,0.3047972654,1,"Assumes Clarke's 1865 ratio of 1 British foot = 0.3047972654 French legal metres applies to the international metre. Used in older Australian, southern African & British West Indian mapping.",Australian Land Information Group www.auslig.gov.au,IOGP,2015/11/25,1997.233 1999.990 2000.050 2005.370 2005.460 2015.062,0 +9014,fathom,length,9001,1.8288,1,= 6 feet.,,IOGP,2015/11/25,2015.062,0 +9030,nautical mile,length,9001,1852,1,,,IOGP,2015/11/25,1996.240 2015.062,0 +9031,German legal metre,length,9001,1.0000135965,1,Used in Namibia.,"Chief Directorate Surveys and Land Information; Mowbray; South Africa",IOGP,2015/11/25,2015.062,0 +9033,US survey chain,length,9001,792,39.37,Used in USA primarily for public lands cadastral work.,Bureau of Land Management technical bulletin 6 (1973) and Standard Field Tables 8th edition (1956).,IOGP,2015/11/25,1999.990 2015.062,0 +9034,US survey link,length,9001,7.92,39.37,Used in USA primarily for public lands cadastral work.,Bureau of Land Management technical bulletin 6 (1973) and Standard Field Tables 8th edition (1956).,IOGP,2015/11/25,1999.990 2015.062,0 +9035,US survey mile,length,9001,63360,39.37,Used in USA primarily for public lands cadastral work.,Bureau of Land Management technical bulletin 6 (1973) and Standard Field Tables 8th edition (1956).,IOGP,2015/11/25,1999.990 2015.062,0 +9036,kilometre,length,9001,1000,1,,ISO 1000.,IOGP,2015/11/25,2015.062,0 +9037,Clarke's yard,length,9001,0.9143917962,1,"=3 Clarke's feet. Assumes Clarke's 1865 ratio of 1 British foot = 0.3047972654 French legal metres applies to the international metre. Used in older Australian, southern African & British West Indian mapping.",Australian Land Information Group www.auslig.gov.au,IOGP,2015/11/25,1997.233 1999.990 2005.370 2005.460 2015.062,0 +9038,Clarke's chain,length,9001,20.1166195164,1,"=22 Clarke's yards. Assumes Clarke's 1865 ratio of 1 British foot = 0.3047972654 French legal metres applies to the international metre. Used in older Australian, southern African & British West Indian mapping.",Australian Land Information Group www.auslig.gov.au,IOGP,2015/11/25,1997.233 1999.990 2005.370 2005.460 2015.062,0 +9039,Clarke's link,length,9001,0.201166195164,1,"=1/100 Clarke's chain. Assumes Clarke's 1865 ratio of 1 British foot = 0.3047972654 French legal metres applies to the international metre. Used in older Australian, southern African & British West Indian mapping.",Australian Land Information Group www.auslig.gov.au,IOGP,2015/11/25,1997.233 1999.990 2005.370 2005.460 2015.062,0 +9040,British yard (Sears 1922),length,9001,36,39.370147,Uses Sear's 1922 British yard-metre ratio as given by Bomford as 39.370147 inches per metre. Used in East Malaysian and older New Zealand mapping.,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9041,British foot (Sears 1922),length,9001,12,39.370147,Uses Sear's 1922 British yard-metre ratio as given by Bomford as 39.370147 inches per metre. Used in East Malaysian and older New Zealand mapping.,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9042,British chain (Sears 1922),length,9001,792,39.370147,Uses Sear's 1922 British yard-metre ratio as given by Bomford as 39.370147 inches per metre. Used in East Malaysian and older New Zealand mapping.,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9043,British link (Sears 1922),length,9001,7.92,39.370147,Uses Sear's 1922 British yard-metre ratio as given by Bomford as 39.370147 inches per metre. Used in East Malaysian and older New Zealand mapping.,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9050,British yard (Benoit 1895 A),length,9001,0.9143992,1,Uses Benoit's 1895 British yard-metre ratio as given by Clark as 0.9143992 metres per yard. Used for deriving metric size of ellipsoid in Palestine.,"J.S.Clark; ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2006.260 2015.062,0 +9051,British foot (Benoit 1895 A),length,9001,0.9143992,3,Uses Benoit's 1895 British yard-metre ratio as given by Clark as 0.9143992 metres per yard. Used for deriving metric size of ellipsoid in Palestine.,"J.S.Clark; ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2006.260 2015.062,0 +9052,British chain (Benoit 1895 A),length,9001,20.1167824,1,Uses Benoit's 1895 British yard-metre ratio as given by Clark as 0.9143992 metres per yard. Used for deriving metric size of ellipsoid in Palestine.,"J.S.Clark; ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2006.260 2015.062,0 +9053,British link (Benoit 1895 A),length,9001,0.201167824,1,Uses Benoit's 1895 British yard-metre ratio as given by Clark as 0.9143992 metres per yard. Used for deriving metric size of ellipsoid in Palestine.,"J.S.Clark; ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2006.260 2015.062,0 +9060,British yard (Benoit 1895 B),length,9001,36,39.370113,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.","G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9061,British foot (Benoit 1895 B),length,9001,12,39.370113,Uses Benoit's 1895 British yard-metre ratio as given by Bomford as 39.370113 inches per metre. Used in West Malaysian mapping.,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9062,British chain (Benoit 1895 B),length,9001,792,39.370113,Uses Benoit's 1895 British yard-metre ratio as given by Bomford as 39.370113 inches per metre. Used in West Malaysian mapping.,"G. Bomford ""Geodesy"" 2nd edition 1962; after J.S.Clark ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9063,British link (Benoit 1895 B),length,9001,7.92,39.370113,Uses Benoit's 1895 British yard-metre ratio as given by Bomford as 39.370113 inches per metre. Used in West Malaysian mapping.,"G. Bomford; ""Geodesy""; 3rd edition 1975",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9070,British foot (1865),length,9001,0.9144025,3,Uses Clark's estimate of 1853-1865 British foot-metre ratio of 0.9144025 metres per yard. Used in 1962 and 1975 estimates of Indian foot.,"J.S.Clark; ""Remeasurement of the Old Length Standards""; Empire Survey Review no. 90; 1953.",IOGP,2015/11/25,1997.233 1999.990 2015.062,0 +9080,Indian foot,length,9001,12,39.370142,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British yard (= 3 British feet) taken to be J.S.Clark's 1865 value of 0.9144025 metres.,"G. Bomford; ""The Re-adjustment of the Indian Triangulation""; Survey of India Professional Paper 28; 1939.",IOGP,2015/11/25,1997.231 1999.990 2015.062,0 +9081,Indian foot (1937),length,9001,0.30479841,1,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British foot taken to be 1895 Benoit value of 12/39.370113m. Rounded to 8 decimal places as 0.30479841. Used from Bangladesh to Vietnam. Previously used in India and Pakistan but superseded.,"G. Bomford; ""The Re-adjustment of the Indian Triangulation""; Survey of India Professional Paper 28; 1939.",IOGP,2015/11/25,1997.231 1999.990 2015.062,0 +9082,Indian foot (1962),length,9001,0.3047996,1,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British yard (3 feet) taken to be J.S. Clark's 1865 value of 0.9144025m. Rounded to 7 significant figures with a small error as 1 Ind ft=0.3047996m. Used in Pakistan since metrication.,"G. Bomford; ""Geodesy""; 2nd edition 1962",IOGP,2015/11/25,1997.231 1999.990 2007.011 2015.062,0 +9083,Indian foot (1975),length,9001,0.3047995,1,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British yard (3 feet) taken to be J.S. Clark's 1865 value of 0.9144025m. Rounded to 7 significant figures as 1 Ind ft=0.3047995m. Used in India since metrication.,"G. Bomford; ""Geodesy""; 3rd edition 1975",IOGP,2015/11/25,1997.231 1999.990 2007.011 2015.062,0 +9084,Indian yard,length,9001,36,39.370142,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British yard (= 3 British feet) taken to be J.S.Clark's 1865 value of 0.9144025 metres.,"G. Bomford; ""The Re-adjustment of the Indian Triangulation""; Survey of India Professional Paper 28; 1939.",IOGP,2015/11/25,1997.231 1999.990 2015.062,0 +9085,Indian yard (1937),length,9001,0.91439523,1,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British foot taken to be 1895 Benoit value of 12/39.370113m. Rounded to 8 decimal places as 0.30479841. Used from Bangladesh to Vietnam. Previously used in India and Pakistan but superseded.,"G. Bomford; ""The Re-adjustment of the Indian Triangulation""; Survey of India Professional Paper 28; 1939.",IOGP,2015/11/25,1997.231 1999.990 2015.062,0 +9086,Indian yard (1962),length,9001,0.9143988,1,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British yard (3 feet) taken to be J.S. Clark's 1865 value of 0.9144025m. Rounded to 7 significant figures with a small error as 1 Ind ft=0.3047996m. Used in Pakistan since metrication.,"G. Bomford; ""Geodesy""; 2nd edition 1962",IOGP,2015/11/25,1997.231 1999.990 2007.011 2015.062,0 +9087,Indian yard (1975),length,9001,0.9143985,1,Indian Foot = 0.99999566 British feet (A.R.Clarke 1865). British yard (3 feet) taken to be J.S. Clark's 1865 value of 0.9144025m. Rounded to 7 significant figures as 1 Ind ft=0.3047995m. Used in India since metrication.,"G. Bomford; ""Geodesy""; 3rd edition 1975",IOGP,2015/11/25,1997.231 1999.990 2007.011 2015.062,0 +9093,Statute mile,length,9001,1609.344,1,=5280 feet,OGP,IOGP,2015/11/25,2015.062,0 +9094,Gold Coast foot,length,9001,6378300,20926201,"Used in Ghana and some adjacent parts of British west Africa prior to metrication, except for the metrication of projection defining parameters when British foot (Sears 1922) used.",Ordnance Survey International,IOGP,2015/11/25,2000.861 2015.062,0 +9095,British foot (1936),length,9001,0.3048007491,1,For the 1936 retriangulation OSGB defines the relationship of 10 feet of 1796 to the International metre through the logarithmic relationship (10^0.48401603 exactly). 1 ft = 0.3048007491…m. Also used for metric conversions in Ireland.,"1. ""The Retriangulation of Great Britain"", Ordnance Survey of Great Britain. +2. ""The Irish Grid - A Description of the Co-ordinate Reference System"" published by Ordnance Survey of Ireland, Dublin and Ordnance Survey of Northern Ireland, Belfast.",IOGP,2015/11/25,2002.621 2006.932 2015.062,0 +9096,yard,length,9001,0.9144,1,=3 international feet.,OGP,IOGP,2015/11/25,2015.062,0 +9097,chain,length,9001,20.1168,1,=22 international yards or 66 international feet.,OGP,IOGP,2015/11/25,2015.062,0 +9098,link,length,9001,20.1168,100,=1/100 international chain.,OGP,IOGP,2015/11/25,2015.062,0 +9099,British yard (Sears 1922 truncated),length,9001,0.914398,1,Uses Sear's 1922 British yard-metre ratio (UoM code 9040) truncated to 6 significant figures.,Defence Geographic Centre,IOGP,2015/11/25,2006.901 2015.062,0 +9101,radian,angle,9101,1,1,SI standard unit.,ISO 1000:1992,IOGP,2015/11/25,2015.062,0 +9102,degree,angle,9101,3.14159265358979,180,= pi/180 radians,,IOGP,2015/11/25,1996.220 2002.860 2015.062,0 +9103,arc-minute,angle,9101,3.14159265358979,10800,1/60th degree = ((pi/180) / 60) radians,,IOGP,2015/11/25,1996.220 2002.860 2015.062,0 +9104,arc-second,angle,9101,3.14159265358979,648000,1/60th arc-minute = ((pi/180) / 3600) radians,,IOGP,2015/11/25,1996.220 2002.860 2015.062,0 +9105,grad,angle,9101,3.14159265358979,200,=pi/200 radians.,OGP,IOGP,2015/11/25,1996.220 1999.050 2002.860 2015.062,0 +9106,gon,angle,9101,3.14159265358979,200,=pi/200 radians,,OGP,2002/11/18,1996.220 2002.860 2015.062,1 +9107,degree minute second,angle,9102,,,"Degree representation. Format: signed degrees (integer) - arc-minutes (integer) - arc-seconds (real, any precision). Different symbol sets are in use as field separators, for example º ' "". Convert to degrees using algorithm.",OGP,IOGP,2015/11/25,1996.190 2002.070 2002.780 2015.062,0 +9108,degree minute second hemisphere,angle,9102,,,"Degree representation. Format: degrees (integer) - arc-minutes (integer) - arc-seconds (real) - hemisphere abbreviation (single character N S E or W). Different symbol sets are in use as field separators for example º ' "". Convert to deg using algorithm.",OGP,IOGP,2015/11/25,1996.190 2002.070 2002.780 2015.062,0 +9109,microradian,angle,9101,1,1000000,rad * 10E-6,ISO 1000.,OGP,1996/10/18,1999.050,0 +9110,sexagesimal DMS,angle,9102,,,Pseudo unit. Format: signed degrees - period - minutes (2 digits) - integer seconds (2 digits) - fraction of seconds (any precision). Must include leading zero in minutes and seconds and exclude decimal point for seconds. Convert to deg using algorithm.,OGP,IOGP,2016/12/15,2002.270 2002.780 2008.020 2015.062 2016.047,0 +9111,sexagesimal DM,angle,9102,,,Pseudo unit. Format: signed degrees - period - integer minutes (2 digits) - fraction of minutes (any precision). Must include leading zero in minutes and exclude decimal point for minutes. Convert to degree using algorithm.,OGP,IOGP,2016/12/15,2002.070 2002.780 2015.062 2016.047,0 +9112,centesimal minute,angle,9101,3.14159265358979,20000,1/100 of a grad and gon = ((pi/200) / 100) radians,http://www.geodesy.matav.hu/,IOGP,2015/11/25,1998.480 1999.510 2002.860 2005.460 2015.062,0 +9113,centesimal second,angle,9101,3.14159265358979,2000000,"1/100 of a centesimal minute or 1/10,000th of a grad and gon = ((pi/200) / 10000) radians",http://www.geodesy.matav.hu/,IOGP,2015/11/25,1999.510 2002.860 2005.460 2015.062,0 +9114,mil_6400,angle,9101,3.14159265358979,3200,Angle subtended by 1/6400 part of a circle. Approximates to 1/1000th radian. Note that other approximations (notably 1/6300 circle and 1/6000 circle) also exist.,http://www.geodesy.matav.hu/,IOGP,2015/11/25,1999.510 2005.460 2015.062,0 +9115,degree minute,angle,9102,,,"Degree representation. Format: signed degrees (integer) - arc-minutes (real, any precision). Different symbol sets are in use as field separators, for example º '. Convert to degrees using algorithm.",OGP,IOGP,2015/11/25,2002.780 2015.062,0 +9116,degree hemisphere,angle,9102,,,"Degree representation. Format: degrees (real, any precision) - hemisphere abbreviation (single character N S E or W). Convert to degrees using algorithm.",OGP,IOGP,2015/11/25,2015.062,0 +9117,hemisphere degree,angle,9102,,,"Degree representation. Format: hemisphere abbreviation (single character N S E or W) - degrees (real, any precision). Convert to degrees using algorithm.",OGP,IOGP,2015/11/25,2015.062,0 +9118,degree minute hemisphere,angle,9102,,,"Degree representation. Format: degrees (integer) - arc-minutes (real, any precision) - hemisphere abbreviation (single character N S E or W). Different symbol sets are in use as field separators, for example º '. Convert to degrees using algorithm.",OGP,IOGP,2015/11/25,2015.062,0 +9119,hemisphere degree minute,angle,9102,,,"Degree representation. Format: hemisphere abbreviation (single character N S E or W) - degrees (integer) - arc-minutes (real, any precision). Different symbol sets are in use as field separators, for example º '. Convert to degrees using algorithm.",OGP,IOGP,2015/11/25,2015.062,0 +9120,hemisphere degree minute second,angle,9102,,,"Degree representation. Format: hemisphere abbreviation (single character N S E or W) - degrees (integer) - arc-minutes (integer) - arc-seconds (real). Different symbol sets are in use as field separators for example º ' "". Convert to deg using algorithm.",OGP,IOGP,2015/11/25,2015.062,0 +9121,sexagesimal DMS.s,angle,9104,,,Pseudo unit. Format: signed degrees - minutes (2 digits) - integer seconds (2 digits) - period - fraction of seconds (any precision). Must include leading zero in minutes and seconds and include decimal point for seconds. Convert to deg using algorithm.,ISO 6709:1983.,IOGP,2016/12/15,2015.062 2016.047,0 +9122,degree (supplier to define representation),angle,9101,3.14159265358979,180,"= pi/180 radians. The degree representation (e.g. decimal, DMSH, etc.) must be clarified by suppliers of data associated with this code.",OGP,IOGP,2015/11/25,2015.062,0 +9201,unity,scale,9201,1,1,,,IOGP,2015/11/25,2015.062,0 +9202,parts per million,scale,9201,1,1000000,,,IOGP,2015/11/25,2013.021 2013.037 2015.062,0 +9203,coefficient,scale,9201,1,1,Used when parameters are coefficients. They inherently take the units which depend upon the term to which the coefficient applies.,OGP,OGP,2004/09/14,2004.530,0 +9204,Bin width 330 US survey feet,length,9001,3960,39.37,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9205,Bin width 165 US survey feet,length,9001,1980,39.37,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9206,Bin width 82.5 US survey feet,length,9001,990,39.37,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9207,Bin width 37.5 metres,length,9001,37.5,1,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9208,Bin width 25 metres,length,9001,25,1,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9209,Bin width 12.5 metres,length,9001,12.5,1,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9210,Bin width 6.25 metres,length,9001,6.25,1,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9211,Bin width 3.125 metres,length,9001,3.125,1,,OGP,OGP,2000/10/19,2000.590 2011.106,1 +9300,British foot (Sears 1922 truncated),length,9001,0.914398,3,"Uses Sear's 1922 British yard-metre ratio (UoM code 9040) truncated to 6 significant figures; this truncated ratio (0.914398, UoM code 9099) then converted to other imperial units. 3 ftSe(T) = 1 ydSe(T).",Defence Geographic Centre,IOGP,2015/11/25,2006.901 2015.062,0 +9301,British chain (Sears 1922 truncated),length,9001,20.116756,1,"Uses Sear's 1922 British yard-metre ratio (UoM code 9040) truncated to 6 significant figures; this truncated ratio (0.914398, UoM code 9099) then converted to other imperial units. 1 chSe(T) = 22 ydSe(T). Used in metrication of Malaya RSO grid.",Defence Geographic Centre,IOGP,2015/11/25,2006.901 2015.062,0 +9302,British link (Sears 1922 truncated),length,9001,20.116756,100,"Uses Sear's 1922 British yard-metre ratio (UoM code 9040) truncated to 6 significant figures; this truncated ratio (0.914398, UoM code 9099) then converted to other imperial units. 100 lkSe(T) = 1 chSe(T).",Defence Geographic Centre,IOGP,2015/11/25,2006.901 2015.062,0 +ellipsoid_code,ellipsoid_name,semi_major_axis,uom_code,inv_flattening,semi_minor_axis,ellipsoid_shape,remarks,information_source,data_source,revision_date,change_id,deprecated +1024,CGCS2000,6378137,9001,298.257222101,,1,"Defining parameters semi-major axis, flattening and angular velocity are same as for GRS 1980 (ellipsoid code 7019); GM = 3986004.4e8 m*m*m/s/s (from NASA 1986 Lageos determination).",Chinese Academy of Surveying and Mapping.,OGP,2009/11/12,2009.084,0 +1025,GSK-2011,6378136.5,9001,298.2564151,,1,,"Parametry Zemli 1990 Reference Document, Military Topgraphic Department (VTU) of the General Staff of Armed Forces of the Russian Federation.",IOGP,2016/01/25,2015.055,0 +1026,Zach 1812,6376045,9001,310,,1,"Defined as log a = 6.5266022 Klafter (Austrian fathom, Kl), log b = 6.5251990 Kl. a=10^6.526 6022 = 3362035 Kl. Then using the Austro-Hungarian 1871 KL/m legal ratio of 1.89648384, a = 6376045m","Land Survey Office (ZU), Prague, www.cuzk.cz/zu. See also Georg Strasser ""Ellipsoidiche Parameter der Erdfigur 1800-1950"".",IOGP,2017/05/24,2017.007,0 +7001,Airy 1830,6377563.396,9001,299.3249646,,1,"Original definition is a=20923713, b=20853810 feet of 1796. 1/f is given to 7 decimal places. For the 1936 retriangulation OSGB defines the relationship of 10 feet of 1796 to the International metre through ([10^0.48401603]/10) exactly = 0.3048007491...",Ordnance Survey of Great Britain.,OGP,2006/11/27,1998.321 1998.340 2006.932,0 +7002,Airy Modified 1849,6377340.189,9001,299.3249646,,1,OSGB Airy 1830 figure (ellipsoid code 7001) rescaled by 0.999965 to best fit the scale of the 19th century primary triangulation of Ireland.,"""The Irish Grid - A Description of the Co-ordinate Reference System"" published by Ordnance Survey of Ireland, Dublin and Ordnance Survey of Northern Ireland, Belfast.",OGP,2003/06/27,1998.321 2002.622,0 +7003,Australian National Spheroid,6378160,9001,298.25,,1,Based on the GRS 1967 figure but with 1/f taken to 2 decimal places exactly. The dimensions are also used as the GRS 1967 Modified ellipsoid (see code 7050).,"""Australian Map Grid Technical Manual""; National Mapping Council of Australia Special Publication #7; 1972",OGP,2008/08/11,2002.500 2008.017,0 +7004,Bessel 1841,6377397.155,9001,299.1528128,,1,"Original Bessel definition is a=3272077.14 and b=3261139.33 toise. This used a weighted mean of values from several authors but did not account for differences in the length of the various toise: the ""Bessel toise"" is therefore of uncertain length.","US Army Map Service Technical Manual; 1943.",OGP,1999/04/22,1998.321 1998.340,0 +7005,Bessel Modified,6377492.018,9001,299.1528128,,1,Used in Norway and also in Sweden with a 1mm increase in semi-major axis.,,OGP,1999/04/22,1998.321,0 +7006,Bessel Namibia,6377483.865,9001,299.1528128,,1,a = 6377397.155 German legal metres. This is the same value as the Bessel 1841 figure (code 7004) but in different units. Used in Namibia.,"Chief Directorate: Surveys and Mapping, Mowbray, South Africa.",OGP,1999/04/22,1997.160,1 +7007,Clarke 1858,20926348,9005,,20855233,1,"Clarke's 1858/II solution. Derived parameters: a = 6378293.645m using his 1865 ratio of 0.3047972654 feet per metre; 1/f = 294.26068… In Australia and Amoco Trinidad 1/f taken to two decimal places (294.26 exactly); elsewhere a and b used to derive 1/f.","""Ellipsoidisch Parameter der Erdfigur (1800-1950)"" by Georg Strasser.",OGP,2005/08/14,1999.700 2005.370,0 +7008,Clarke 1866,6378206.4,9001,,6356583.8,1,Original definition a=20926062 and b=20855121 (British) feet. Uses Clarke's 1865 inch-metre ratio of 39.370432 to obtain metres. (Metric value then converted to US survey feet for use in the US and international feet for use in Cayman Islands).,"US Army Map Service Technical Manual No. 7; 1943.",OGP,2013/01/17,1998.340 2012.095,0 +7009,Clarke 1866 Michigan,20926631.531,9003,,20855688.674,1,"Used for Michigan NAD27 State Plane zones. Radius = ellipsoid radius + 800 feet; this approximates the average elevation of the state. Derived parameter: 1/f = 294.97870",USGS Professional Paper #1395.,OGP,1995/06/02,1998.220 2013.020,1 +7010,Clarke 1880 (Benoit),6378300.789,9001,,6356566.435,1,Adopts Clarke's values for a and b. Uses Benoit's 1895 ratio of 0.9143992 metres per yard to convert to metres.,,OGP,1995/06/02,,0 +7011,Clarke 1880 (IGN),6378249.2,9001,,6356515,1,Adopts Clarke's values for a and b using his 1865 ratio of 39.370432 inches per metre to convert axes to metres.,,OGP,1998/04/16,1998.120,0 +7012,Clarke 1880 (RGS),6378249.145,9001,293.465,,1,Adopts Clarke's values for a and 1/f. Adopts his 1865 ratio of 39.370432 inches per metre to convert semi-major axis to metres. Also known as Clarke Modified 1880.,"Empire Survey Review #32; 1939.",OGP,1995/06/02,,0 +7013,Clarke 1880 (Arc),6378249.145,9001,293.4663077,,1,Adopts Clarke's value for a with derived 1/f. Uses his 1865 ratio of 39.370432 inch per metre to convert semi-major axis to metres.,"Chief Directorate: Surveys and Mapping, Mowbray, South Africa.",OGP,2001/06/05,2001.052,0 +7014,Clarke 1880 (SGA 1922),6378249.2,9001,293.46598,,1,Used in Old French Triangulation (ATF). Uses Clarke's 1865 inch-metre ratio of 39.370432 to convert axes to metres.,,OGP,1995/06/02,,0 +7015,Everest 1830 (1937 Adjustment),6377276.345,9001,300.8017,,1,Used for the 1937 readjustment of Indian triangulation. Clarke's 1865 Indian-British foot ratio (0.99999566) and Benoit's 1898 British inch-metre ratio (39.370113) rounded as 0.30479841 exactly and applied to Everest's 1830 definition taken as a and 1/f,"Survey of India professional paper #28; 1939",OGP,1996/10/18,1996.200,0 +7016,Everest 1830 (1967 Definition),6377298.556,9001,300.8017,,1,Adopted 1967 for use in East Malaysia. Applies Sears 1922 inch-metre ratio of 39.370147 to Everest 1830 original definition of a and 1/f but with a taken to be in British rather than Indian feet.,,OGP,1995/06/02,,0 +7018,Everest 1830 Modified,6377304.063,9001,300.8017,,1,Adopted 1967 for use in West Malaysia. Applies Benoit 1898 inch-metre ratio of 39.370113 to Everest 1830 original definition of a and 1/f but with a taken to be in British rather than Indian feet.,,OGP,1995/06/02,,0 +7019,GRS 1980,6378137,9001,298.257222101,,1,"Adopted by IUGG 1979 Canberra. Inverse flattening is derived from geocentric gravitational constant GM = 3986005e8 m*m*m/s/s; dynamic form factor J2 = 108263e-8 and Earth's angular velocity = 7292115e-11 rad/s.","""Geodetic Reference System 1980"" by H. Moritz; Bulletin Geodesique",OGP,2013/08/23,1998.110 1998.320 2013.043,0 +7020,Helmert 1906,6378200,9001,298.3,,1,Helmert 1906/III solution.,"""Ellipsoidisch Parameter der Erdfigur (1800-1950)"" by Georg Strasser",OGP,1995/06/02,,0 +7021,Indonesian National Spheroid,6378160,9001,298.247,,1,Based on the GRS 1967 figure but with 1/f taken to 3 decimal places exactly.,Rais paper.,OGP,1995/06/02,,0 +7022,International 1924,6378388,9001,297,,1,Adopted by IUGG 1924 in Madrid. Based on Hayford 1909/1910 figures. ,,OGP,1995/06/02,,0 +7024,Krassowsky 1940,6378245,9001,298.3,,1,,,OGP,1995/06/02,,0 +7025,NWL 9D,6378145,9001,298.25,,1,Used by Transit Precise Ephemeris between October 1971 and January 1987.,,OGP,1995/06/02,,0 +7027,Plessis 1817,6376523,9001,308.64,,1,Rescaling of Delambre 1810 figure (a=6376985 m) to make meridional arc from equator to pole equal to 10000000 metres exactly. (Ref: Strasser).,"IGN Paris ""Constants d'Ellipsoides"" February 1972.",OGP,1995/06/02,,0 +7028,Struve 1860,6378298.3,9001,294.73,,1,"Original definition of semi-major axis given as 3272539 toise. In ""Ellipsoidisch Parameter der Erdfigur (1800-1950)"" , Strasser suggests a conversion factor of 1.94903631 which gives a=6378297.337 metres.","""Geodesia y Cartografia Matematica"" by Fernando Martin Asin; ISBN 84-398-0248-X.",OGP,1998/11/11,1998.070 1998.340,0 +7029,War Office,6378300,9001,296,,1,"In non-metric form, a=20926201 Gold Coast feet. DMA Technical Manual 8358.1 and data derived from this quotes value for semi-major axis as 6378300.58m: OGP recommends use of defined value 6378300m exactly.","Tables for the use of the Gold Coast Survey Department, 1935.",OGP,2009/10/29,2009.075,0 +7030,WGS 84,6378137,9001,298.257223563,,1,"1/f derived from four defining parameters semi-major axis; C20 = -484.16685*10e-6; earth's angular velocity ? = 7292115e-11 rad/sec; gravitational constant GM = 3986005e8 m*m*m/s/s. In 1994 new GM = 3986004.418e8 m*m*m/s/s but a and 1/f retained.",DMA Technical Manual 8350.2-B,IOGP,2015/11/25,1998.320 2015.047,0 +7031,GEM 10C,6378137,9001,298.257223563,,1,Used for GEM 10C Gravity Potential Model.,,OGP,1995/06/02,1998.320,0 +7032,OSU86F,6378136.2,9001,298.257223563,,1,Used for OSU86 gravity potential (geoidal) model.,,OGP,1995/06/02,1998.320,0 +7033,OSU91A,6378136.3,9001,298.257223563,,1,Used for OSU91 gravity potential (geoidal) model.,,OGP,1995/06/02,1998.320,0 +7034,Clarke 1880,20926202,9005,,20854895,1,Clarke gave a and b and also 1/f=293.465 (to 3 decimal places exactly). In the 19th century b was normally given as the second defining parameter.,"""Ellipsoidisch Parameter der Erdfigur (1800-1950)"" by Georg Strasser.",OGP,2008/06/26,2008.057,0 +7035,Sphere,6371000,9001,,6371000,0,Authalic sphere. 1/f is infinite. Superseded by GRS 1980 authalic sphere (code 7047).,,OGP,1995/06/02,,1 +7036,GRS 1967,6378160,9001,298.247167427,,1,"Adopted by IUGG 1967 Lucerne. 1/f given is derived from geocentric gravitational constant (GM)= 398603e9 m*m*m/s/s; dynamic form factor (J2) = 0.0010827 and Earth's angular velocity w = 7.2921151467e-5 rad/s. See also GRS 1967 Modified (code 7050).","""Geodetic Reference System 1967""; International Association of Geodesy special publication number 3; August 1971.",OGP,2011/02/25,1996.090 1997.252 1998.320 2002.500 2011.016,0 +7041,Average Terrestrial System 1977,6378135,9001,298.257,,1,,New Brunswick Geographic Information Corporation land and water information standards manual,OGP,1997/07/22,1998.321,0 +7042,Everest (1830 Definition),20922931.8,9080,,20853374.58,1,Everest gave a and b to 2 decimal places and also 1/f=300.8017 (to 4 decimal places exactly). In the 19th century b was normally given as the second defining parameter.,"""Ellipsoidisch Parameter der Erdfigur (1800-1950)"" by Georg Strasser",OGP,2008/06/26,1997.231 2008.057,0 +7043,WGS 72,6378135,9001,298.26,,1,,,OGP,1999/04/22,1999.030,0 +7044,Everest 1830 (1962 Definition),6377301.243,9001,300.8017255,,1,Used by Pakistan since metrication. Clarke's 1865 Indian foot-British foot ratio (0.99999566) and his 1865 British inch-metre ratio (39.369971) rounded with slight error as 1 Ind ft = 0.3047995m exactly and applied to Everest's 1830 definition of a & b.,,OGP,1999/10/20,,0 +7045,Everest 1830 (1975 Definition),6377299.151,9001,300.8017255,,1,Used by India since metrication. Clarke's 1865 Indian foot-British foot ratio (0.99999566) and his 1865 British inch-metre ratio (39.369971) rounded as 1 Ind ft = 0.3047995m exactly applied to Everest's 1830 original definition taken as a and b.,,OGP,1999/10/20,,0 +7046,Bessel Namibia (GLM),6377397.155,9031,299.1528128,,1,The semi-major axis has the same value as the Bessel 1841 ellipsoid (code 7004) but is in different units - German Legal Metres rather than International metres - hence a different size. a = 6377483.865 International metres. Used in Namibia.,"Chief Directorate: Surveys and Mapping, Mowbray, South Africa.",OGP,2007/09/21,2007.091,0 +7047,GRS 1980 Authalic Sphere,6370997,9001,,6370997,0,"Authalic sphere derived from Clarke 1866 ellipsoid (code 7008). Deprecated as name and parameter values do not match; replaced by 7048.",OGP,OGP,2001/06/05,,1 +7048,GRS 1980 Authalic Sphere,6371007,9001,,6371007,0,Authalic sphere derived from GRS 1980 ellipsoid (code 7019). (An authalic sphere is one with a surface area equal to the surface area of the ellipsoid). 1/f is infinite.,OGP,OGP,2001/06/25,,0 +7049,IAG 1975,6378140,9001,298.257,,1,,"Chinese Sceience Bulletin, 2009, 54:2714-2721.",OGP,2009/11/24,2009.084,0 +7050,GRS 1967 Modified,6378160,9001,298.25,,1,Based on the GRS 1967 figure (code 7036) but with 1/f taken to 2 decimal places exactly. Used with SAD69 and TWD67 datums. The dimensions are also used as the Australian National Spheroid (code 7003).,"""Geodetic Reference System 1967""; International Association of Geodesy special publication number 3; August 1971.",OGP,2008/08/11,2008.017,0 +7051,Danish 1876,6377019.27,9001,300,,1,Semi-major axis originally given as 3271883.25 toise. Uses toise to French metre ratio of 1.94903631 to two decimal place precision. An alternative ratio with the German legal metre of 1.9490622 giving 6377104m has not been used in Danish work.,"Kort og Matrikelstyrelsen (KMS), Copenhagen.",OGP,2003/06/27,,0 +7052,Clarke 1866 Authalic Sphere,6370997,9001,,6370997,0,Authalic sphere derived from Clarke 1866 ellipsoid (code 7008).,OGP,OGP,2004/04/27,,0 +7053,Hough 1960,6378270,9001,297,,1,,DMA / NIMA / NGA TR8350.2,OGP,2006/01/26,,0 +7054,PZ-90,6378136,9001,298.257839303,,1,"Earth's angular velocity ? = 7.292115e-5 rad/sec; gravitational constant GM = 3986004.418e8 m*m*m/s/s.","Parametry Zemli 1990 Reference Document, Military Topgraphic Department (VTU) of the General Staff of Armed Forces of the Russian Federation.",IOGP,2016/12/15,2015.055,0 +7055,Clarke 1880 (international foot),20926202,9002,,20854895,1,Clarke's 1880 definition in feet assumed for the purposes of metric conversion to be international foot. a = 6378306.370…metres. 1/f derived from a and b = 293.4663077… Used in Fiji.,"Department of Lands and Survey, Fiji.",IOGP,2017/10/16,2017.042,0 +7056,Everest 1830 (RSO 1969),6377295.664,9001,300.8017,,1,Adopted for 1969 metrication of peninsula Malaysia RSO grid. Uses Sears 1922 yard-metre ratio truncated to 6 significant figures applied to Everest 1830 original definition of a and 1/f but with a taken to be in British rather than Indian feet.,Defence Geographic Centre,OGP,2006/07/24,,0 +7057,International 1924 Authalic Sphere,6371228,9001,,6371228,0,Authalic sphere derived from International 1924 ellipsoid (code 7022).,OGP,OGP,2006/09/22,,0 +7058,Hughes 1980,6378273,9001,,6356889.449,1,Used in US DMSP SSM/I microwave sensor processing software. Semi-minor axis derived from eccentricity=0.081816153. Semi-major axis (a) sometimes given as 3443.992nm which OGP suspects is a derived approximation. OGP conversion assumes 1nm=1852m exactly.,US National Snow and Ice Data Center,OGP,2006/09/22,,0 +7059,Popular Visualisation Sphere,6378137,9001,,6378137,0,Sphere with radius equal to the semi-major axis of the GRS80 and WGS 84 ellipsoids. Used only for Web approximate mapping and visualisation. Not recognised by geodetic authorities.,Microsoft.,OGP,2008/03/14,2008.114,1 +coord_sys_code,coord_axis_name_code,coord_axis_orientation,coord_axis_abbreviation,uom_code,coord_axis_order +1024,9906,east,M,9001,1 +1024,9907,north,P,9001,2 +1025,9906,North along 130°W,X,9001,1 +1025,9907,North along 140°E,Y,9001,2 +1026,9906,South along 90°E,E,9001,1 +1026,9907,South along 180°E,N,9001,2 +1027,9906,North along 90°E,E,9001,1 +1027,9907,North along 0°E,N,9001,2 +1028,9906,east,E,9037,1 +1028,9907,north,N,9037,2 +1029,9906,east,E,9002,2 +1029,9907,north,N,9002,1 +1030,9904,up,H,9002,1 +1031,9907,north,Y,9001,1 +1031,9908,west,X,9001,2 +1032,9904,up,z,9001,3 +1032,9918,east,x,9001,1 +1032,9919,north,y,9001,2 +1033,9920,J-axis plus 90°,I,1024,1 +1033,9921,See associated operation,J,1024,2 +1034,9920,J-axis minus 90°,I,1024,1 +1034,9921,See associated operation,J,1024,2 +1035,9906,South along 180°E,X,9001,1 +1035,9907,South along 90°W,Y,9001,2 +1036,9906,South along 57°E,X,9001,1 +1036,9907,South along 147°E,Y,9001,2 +1037,9906,South along 108°E,X,9001,1 +1037,9907,South along 162°W,Y,9001,2 +1038,9906,South along 165°W,X,9001,1 +1038,9907,South along 75°W,Y,9001,2 +1039,9906,east,E,9002,1 +1039,9907,north,N,9002,2 +1040,1024,Ahead,x,9001,1 +1040,1025,Starboard,y,9001,2 +1040,1026,Upward,z,9001,3 +1041,1024,Ahead,x,9001,1 +1041,1025,Starboard,y,9001,2 +1041,1027,Downward,z,9001,3 +1042,1024,Ahead,y,9001,2 +1042,1025,Starboard,x,9001,1 +1042,1026,Upward,z,9001,3 +1043,9905,down,D,9003,1 +1044,9906,North along 90°W,E,9001,2 +1044,9907,North along 180°E,N,9001,1 +1045,1024,Ahead,y,9001,2 +1045,1025,Starboard,x,9001,1 +1045,1027,Downward,z,9001,3 +4400,9906,east,E,9001,1 +4400,9907,north,N,9001,2 +4401,9906,east,E,9062,1 +4401,9907,north,N,9062,2 +4402,9906,east,E,9042,1 +4402,9907,north,N,9042,2 +4403,9906,east,E,9005,1 +4403,9907,north,N,9005,2 +4404,9906,east,E,9094,1 +4404,9907,north,N,9094,2 +4405,9906,east,E,9041,1 +4405,9907,north,N,9041,2 +4406,9906,east,X,9036,1 +4406,9907,north,Y,9036,2 +4407,9906,east,E,9039,1 +4407,9907,north,N,9039,2 +4408,9906,east,E,9084,1 +4408,9907,north,N,9084,2 +4409,9906,east,E,9040,1 +4409,9907,north,N,9040,2 +4410,9906,east,E,9301,1 +4410,9907,north,N,9301,2 +4460,9906,South along 90°E.,E,9001,1 +4460,9907,South along 180°E,N,9001,2 +4461,9929,up,W,9001,3 +4461,9930,east,U,9001,1 +4461,9931,north,V,9001,2 +4462,9906,South along 180°W,X,9001,1 +4462,9907,South along 90°W,Y,9001,2 +4463,9906,South along 100°E,X,9001,1 +4463,9907,South along 170°W,Y,9001,2 +4464,9906,South along 90°W,X,9001,1 +4464,9907,South along 0°E,Y,9001,2 +4465,9906,South along 50°E,X,9001,1 +4465,9907,South along 140°E,Y,9001,2 +4466,9906,South along 10°W,X,9001,1 +4466,9907,South along 80°E,Y,9001,2 +4467,9906,South along 60°W,X,9001,1 +4467,9907,South along 30°E,Y,9001,2 +4468,9906,South along 45°E,X,9001,1 +4468,9907,South along 135°E,Y,9001,2 +4469,9906,South along 90°E,X,9001,1 +4469,9907,South along 180°E,Y,9001,2 +4470,9906,North along 90°E,X,9001,1 +4470,9907,North along 0°E,Y,9001,2 +4471,9906,North along 75°W,E,9001,1 +4471,9907,North along 165°W,N,9001,2 +4472,9906,North along 60°W,E,9001,1 +4472,9907,North along 150°W,N,9001,2 +4473,9906,North along 45°W,E,9001,1 +4473,9907,North along 135°W,N,9001,2 +4474,9906,North along 15°W,E,9001,1 +4474,9907,North along 105°W,N,9001,2 +4475,9906,North along 0°E,E,9001,1 +4475,9907,North along 90°W,N,9001,2 +4476,9906,North along 15°E,E,9001,1 +4476,9907,North along 75°W,N,9001,2 +4477,9906,North along 45°E,E,9001,1 +4477,9907,North along 45°W,N,9001,2 +4478,9906,North along 60°E,E,9001,1 +4478,9907,North along 30°W,N,9001,2 +4479,9906,North along 75°E,E,9001,1 +4479,9907,North along 15°W,N,9001,2 +4480,9906,North along 105°E,E,9001,1 +4480,9907,North along 15°E,N,9001,2 +4481,9906,North along 120°E,E,9001,1 +4481,9907,North along 30°E,N,9001,2 +4482,9906,North along 135°E,E,9001,1 +4482,9907,North along 45°E,N,9001,2 +4483,9906,North along 165°E,E,9001,1 +4483,9907,North along 75°E,N,9001,2 +4484,9906,North along 180°E,E,9001,1 +4484,9907,North along 90°E,N,9001,2 +4485,9906,North along 165°W,E,9001,1 +4485,9907,North along 105°E,N,9001,2 +4486,9906,North along 135°W,E,9001,1 +4486,9907,North along 135°E,N,9001,2 +4487,9906,North along 120°W,E,9001,1 +4487,9907,North along 150°E,N,9001,2 +4488,9906,North along 105°W,E,9001,1 +4488,9907,North along 165°E,N,9001,2 +4489,9906,North along 160°E,E,9001,1 +4489,9907,North along 70°E,N,9001,2 +4490,9906,North along 90°E,E,9001,1 +4490,9907,North along 0°E,N,9001,2 +4491,9907,north,N,9001,2 +4491,9908,west,W,9001,1 +4492,9913,North along 130°W,X,9001,1 +4492,9914,North along 140°E,Y,9001,2 +4493,9906,South along 90°E,E,9001,2 +4493,9907,South along 180°E,N,9001,1 +4494,9906,North along 90°E,E,9001,2 +4494,9907,North along 0°E,N,9001,1 +4495,9906,east,X,9002,1 +4495,9907,north,Y,9002,2 +4496,9906,east,E(X),9001,1 +4496,9907,north,N(Y),9001,2 +4497,9906,east,X,9003,1 +4497,9907,north,Y,9003,2 +4498,9906,east,Y,9001,1 +4498,9907,north,X,9001,2 +4499,9906,east,X,9001,1 +4499,9907,north,Y,9001,2 +4500,9906,east,E,9001,2 +4500,9907,north,N,9001,1 +4501,9907,north,N,9001,1 +4501,9908,west,E,9001,2 +4502,9906,east,E,9005,2 +4502,9907,north,N,9005,1 +4530,9906,east,Y,9001,2 +4530,9907,north,X,9001,1 +4531,9906,east,y,9001,2 +4531,9907,north,x,9001,1 +4532,9906,east,X,9001,2 +4532,9907,north,Y,9001,1 +4533,9906,east,Y,9098,2 +4533,9907,north,X,9098,1 +4534,9906,east,none,9001,2 +4534,9907,north,none,9001,1 +6401,9901,north,Lat,9108,1 +6401,9902,east,Long,9108,2 +6401,9903,up,h,9001,3 +6402,9901,north,Lat,9108,1 +6402,9902,east,Long,9108,2 +6403,9901,north,Lat,9105,1 +6403,9902,east,Lon,9105,2 +6404,9926,north,Lat,9122,1 +6404,9927,east,Long,9122,2 +6404,9928,up,R,9001,3 +6405,9901,north,Lat,9102,1 +6405,9902,east,Long,9102,2 +6406,9901,north,Lat,9116,1 +6406,9902,east,Long,9116,2 +6407,9901,north,Lat,9117,1 +6407,9902,east,Long,9117,2 +6408,9901,north,Lat,9115,1 +6408,9902,east,Long,9115,2 +6409,9901,north,Lat,9118,1 +6409,9902,east,Long,9118,2 +6410,9901,north,Lat,9119,1 +6410,9902,east,Long,9119,2 +6411,9901,north,Lat,9107,1 +6411,9902,east,Long,9107,2 +6412,9901,north,Lat,9120,1 +6412,9902,east,Long,9120,2 +6413,9901,north,Lat,9102,1 +6413,9902,east,Long,9102,2 +6413,9903,up,h,9001,3 +6414,9901,north,Lat,9116,1 +6414,9902,east,Long,9116,2 +6414,9903,up,h,9001,3 +6415,9901,north,Lat,9117,1 +6415,9902,east,Long,9117,2 +6415,9903,up,h,9001,3 +6416,9901,north,Lat,9115,1 +6416,9902,east,Long,9115,2 +6416,9903,up,h,9001,3 +6417,9901,north,Lat,9118,1 +6417,9902,east,Long,9118,2 +6417,9903,up,h,9001,3 +6418,9901,north,Lat,9119,1 +6418,9902,east,Long,9119,2 +6418,9903,up,h,9001,3 +6419,9901,north,Lat,9107,1 +6419,9902,east,Long,9107,2 +6419,9903,up,h,9001,3 +6420,9901,north,Lat,9120,1 +6420,9902,east,Long,9120,2 +6420,9903,up,h,9001,3 +6421,9901,north,Lat,9105,1 +6421,9902,east,Lon,9105,2 +6421,9903,up,h,9001,3 +6422,9901,north,Lat,9122,1 +6422,9902,east,Lon,9122,2 +6423,9901,north,Lat,9122,1 +6423,9902,east,Lon,9122,2 +6423,9903,up,h,9001,3 +6424,9901,north,Lat,9122,2 +6424,9902,east,Lon,9122,1 +6425,9901,north,Lat,9105,2 +6425,9902,east,Lon,9105,1 +6426,9901,north,Lat,9122,2 +6426,9902,east,Lon,9122,1 +6426,9903,up,h,9001,3 +6427,9901,north,Lat,9105,2 +6427,9902,east,Lon,9105,1 +6427,9903,up,h,9001,3 +6428,9901,north,Lat,9101,1 +6428,9902,east,Lon,9101,2 +6429,9901,north,Lat,9101,2 +6429,9902,east,Lon,9101,1 +6430,9901,north,Lat,9101,1 +6430,9902,east,Lon,9101,2 +6430,9903,up,h,9001,3 +6431,9901,north,Lat,9101,2 +6431,9902,east,Lon,9101,1 +6431,9903,up,h,9001,3 +6495,9905,down,D,9002,1 +6496,9904,up,H,9095,1 +6497,9904,up,H,9003,1 +6498,9905,down,D,9001,1 +6499,9904,up,H,9001,1 +6500,9910,Geocentre > equator/0°E,X,9001,1 +6500,9911,Geocentre > equator/90°E,Y,9001,2 +6500,9912,Geocentre > north pole,Z,9001,3 +6501,9908,west,Y,9001,2 +6501,9909,south,X,9001,1 +6502,9908,west,Y,9031,1 +6502,9909,south,X,9031,2 +6503,9908,west,Y,9001,1 +6503,9909,south,X,9001,2 +6504,9918,northeast,e,9001,2 +6504,9919,northwest,n,9001,1 +6505,9913,northwest,n,9001,1 +6505,9914,northeast,e,9001,2 +6506,9913,east-south-east,I,9205,1 +6506,9914,north-north-east,J,9204,2 +6507,9913,north,X,9001,1 +6507,9914,west,Y,9001,2 +6508,9920,east south east,I,9208,2 +6508,9921,north north east,J,9209,1 +6509,9908,west,M,9001,2 +6509,9909,south,P,9001,1 +6510,9918,northeast,x,9001,1 +6510,9919,northwest,y,9001,2 +6511,9922,Along receiver lines,I,9208,1 +6511,9923,Across receiver lines,J,9209,2 +6512,9916,up,z,9001,3 +6512,9918,east,x,9001,1 +6512,9919,north,y,9001,2 +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","UOM_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","COORD_OP_METHOD_CODE_1","PARM_1_1" +# +# NOTICE: The master version of this file is in the libgeotiff subversion at: +# +# https://svn.osgeo.org/metacrs/geotiff/trunk/libgeotiff/csv/vertcs.override.csv +# +# Do *not* change other copies without upstreaming the results to libgeotiff. +# +# Use the Geoid 2003 files to translated from NAVD88 to WGS84 (approx. NAD83) +# +# +# Updated to default to Geoid12A (11/27/12) hobu +# http://lists.osgeo.org/pipermail/metacrs/2012-November/000649.html +5703,NAVD88 height,5103,North American Vertical Datum 1988,9001,1,0,6499,9665,"g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx" +# +# +# Use the EGM 96 geoid grid for translation from EGM96 to WGS84. +# +5773,EGM96 geoid height,5171,EGM96 geoid,9001,1,0,6499,9665,egm96_15.gtx +# +# Use the EGM 2008 geoid grid for translation from EGM08 to WGS84. +# +3855,EGM2008 geoid height,1027,EGM2008 geoid,9001,1,0,6499,9665,egm08_25.gtx +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","UOM_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","COORD_OP_METHOD_CODE_1","PARM_1_1" +3855,EGM2008 geoid height,1027,EGM2008 geoid,9001,1,0,6499,9665,"egm08_25.gtx" +3886,Fao 1979 height,1028,Fao 1979,9001,1,0,6499,, +3900,N2000 height,1030,N2000,9001,1,0,6499,, +4440,NZVD2009 height,1039,New Zealand Vertical Datum 2009,9001,1,0,6499,, +4458,Dunedin-Bluff 1960 height,1040,Dunedin-Bluff 1960,9001,1,0,6499,, +5193,Incheon height,1049,Incheon,9001,1,0,6499,, +5195,Trieste height,1050,Trieste,9001,1,0,6499,, +5214,Genoa height,1051,Genoa,9001,1,0,6499,, +5237,SLVD height,1054,Sri Lanka Vertical Datum,9001,1,0,6499,, +5317,FVR09 height,1059,Faroe Islands Vertical Reference 2009,9001,1,0,6499,, +5336,Black Sea depth,5134,Black Sea,9001,1,0,6498,, +5597,FCSVR10 height,1079,Fehmarnbelt Vertical Reference 2010,9001,1,0,6499,, +5600,NGPF height,5195,Nivellement General de Polynesie Francaise,9001,1,0,6499,, +5601,IGN 1966 height,5196,IGN 1966,9001,1,0,6499,, +5602,Moorea SAU 1981 height,5197,Moorea SAU 1981,9001,1,0,6499,, +5603,Raiatea SAU 2001 height,5198,Raiatea SAU 2001,9001,1,0,6499,, +5604,Maupiti SAU 2001 height,5199,Maupiti SAU 2001,9001,1,0,6499,, +5605,Huahine SAU 2001 height,5200,Huahine SAU 2001,9001,1,0,6499,, +5606,Tahaa SAU 2001 height,5201,Tahaa SAU 2001,9001,1,0,6499,, +5607,Bora Bora SAU 2001 height,5202,Bora Bora SAU 2001,9001,1,0,6499,, +5608,IGLD 1955 height,5204,International Great Lakes Datum 1955,9001,1,0,6499,, +5609,IGLD 1985 height,5205,International Great Lakes Datum 1985,9001,1,0,6499,, +5610,HVRS71 height,5207,Croatian Vertical Reference System 1971,9001,1,0,6499,, +5611,Caspian height,5106,Caspian Sea,9001,1,0,6499,, +5612,Baltic depth,5105,Baltic Sea,9001,1,0,6498,, +5613,RH2000 height,5208,Rikets hojdsystem 2000,9001,1,0,6499,, +5614,"KOC WD depth (ft)",5187,KOC Well Datum,9002,1,0,6495,, +5615,RH00 height,5209,Rikets hojdsystem 1900,9001,1,0,6499,, +5616,IGN 1988 LS height,5210,IGN 1988 LS,9001,1,0,6499,, +5617,IGN 1988 MG height,5211,IGN 1988 MG,9001,1,0,6499,, +5618,IGN 1992 LD height,5212,IGN 1992 LD,9001,1,0,6499,, +5619,IGN 1988 SB height,5213,IGN 1988 SB,9001,1,0,6499,, +5620,IGN 1988 SM height,5214,IGN 1988 SM,9001,1,0,6499,, +5621,EVRF2007 height,5215,European Vertical Reference Frame 2007,9001,1,0,6499,, +5701,ODN height,5101,Ordnance Datum Newlyn,9001,1,0,6499,, +5702,"NGVD29 height (ftUS)",5102,National Geodetic Vertical Datum 1929,9003,1,0,6497,, +5703,NAVD88 height,5103,North American Vertical Datum 1988,9001,1,0,6499,9665,"g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx" +5704,Yellow Sea,5104,Yellow Sea 1956,9001,1,1,6499,, +5705,Baltic height,5105,Baltic Sea,9001,1,0,6499,, +5706,Caspian depth,5106,Caspian Sea,9001,1,0,6498,, +5709,NAP height,5109,Normaal Amsterdams Peil,9001,1,0,6499,, +5710,Ostend height,5110,Ostend,9001,1,0,6499,, +5711,AHD height,5111,Australian Height Datum,9001,1,0,6499,, +5712,"AHD (Tasmania) height",5112,"Australian Height Datum (Tasmania)",9001,1,0,6499,, +5713,CGVD28 height,5114,Canadian Geodetic Vertical Datum of 1928,9001,1,0,6499,, +5714,MSL height,5100,Mean Sea Level,9001,1,0,6499,, +5715,MSL depth,5100,Mean Sea Level,9001,1,0,6498,, +5716,Piraeus height,5115,Piraeus Harbour 1986,9001,1,0,6499,, +5717,N60 height,5116,Helsinki 1960,9001,1,0,6499,, +5718,RH70 height,5117,Rikets hojdsystem 1970,9001,1,0,6499,, +5719,NGF Lallemand height,5118,Nivellement General de la France - Lallemand,9001,1,0,6499,, +5720,NGF-IGN69 height,5119,Nivellement General de la France - IGN69,9001,1,0,6499,, +5721,NGF-IGN78 height,5120,Nivellement General de la France - IGN78,9001,1,0,6499,, +5722,Maputo height,5121,Maputo,9001,1,0,6499,, +5723,JSLD69 height,5122,Japanese Standard Levelling Datum 1969,9001,1,0,6499,, +5724,PHD93 height,5123,PDO Height Datum 1993,9001,1,0,6499,, +5725,Fahud HD height,5124,Fahud Height Datum,9001,1,0,6499,, +5726,Ha Tien 1960 height,5125,Ha Tien 1960,9001,1,0,6499,, +5727,Hon Dau 1992 height,5126,Hon Dau 1992,9001,1,0,6499,, +5728,LN02 height,5127,Landesnivellement 1902,9001,1,0,6499,, +5729,LHN95 height,5128,Landeshohennetz 1995,9001,1,0,6499,, +5730,EVRF2000 height,5129,European Vertical Reference Frame 2000,9001,1,0,6499,, +5731,Malin Head height,5130,Malin Head,9001,1,0,6499,, +5732,Belfast height,5131,Belfast Lough,9001,1,0,6499,, +5733,DNN height,5132,Dansk Normal Nul,9001,1,0,6499,, +5734,AIOC95 depth,5133,AIOC 1995,9001,1,0,6498,, +5735,Black Sea height,5134,Black Sea,9001,1,0,6499,, +5736,Yellow Sea 1956 height,5104,Yellow Sea 1956,9001,1,0,6499,, +5737,Yellow Sea 1985 height,5137,Yellow Sea 1985,9001,1,0,6499,, +5738,HKPD height,5135,Hong Kong Principal Datum,9001,1,0,6499,, +5739,HKCD depth,5136,Hong Kong Chart Datum,9001,1,0,6498,, +5740,ODN Orkney height,5138,"Ordnance Datum Newlyn (Orkney Isles)",9001,1,0,6499,, +5741,Fair Isle height,5139,Fair Isle,9001,1,0,6499,, +5742,Lerwick height,5140,Lerwick,9001,1,0,6499,, +5743,Foula height,5141,Foula,9001,1,0,6499,, +5744,Sule Skerry height,5142,Sule Skerry,9001,1,0,6499,, +5745,North Rona height,5143,North Rona,9001,1,0,6499,, +5746,Stornoway height,5144,Stornoway,9001,1,0,6499,, +5747,St Kilda height,5145,St Kilda,9001,1,0,6499,, +5748,Flannan Isles height,5146,Flannan Isles,9001,1,0,6499,, +5749,St Marys height,5147,St Marys,9001,1,0,6499,, +5750,Douglas height,5148,Douglas,9001,1,0,6499,, +5751,Fao height,5149,Fao,9001,1,0,6499,, +5752,Bandar Abbas height,5150,Bandar Abbas,9001,1,0,6499,, +5753,NGNC height,5151,Nivellement General de Nouvelle Caledonie,9001,1,0,6499,, +5754,"Poolbeg height (ft(Br36))",5152,Poolbeg,9095,1,0,6496,, +5755,NGG1977 height,5153,Nivellement General Guyanais 1977,9001,1,0,6499,, +5756,Martinique 1987 height,5154,Martinique 1987,9001,1,0,6499,, +5757,Guadeloupe 1988 height,5155,Guadeloupe 1988,9001,1,0,6499,, +5758,Reunion 1989 height,5156,Reunion 1989,9001,1,0,6499,, +5759,Auckland 1946 height,5157,Auckland 1946,9001,1,0,6499,, +5760,Bluff 1955 height,5158,Bluff 1955,9001,1,0,6499,, +5761,Dunedin 1958 height,5159,Dunedin 1958,9001,1,0,6499,, +5762,Gisborne 1926 height,5160,Gisborne 1926,9001,1,0,6499,, +5763,Lyttelton 1937 height,5161,Lyttelton 1937,9001,1,0,6499,, +5764,Moturiki 1953 height,5162,Moturiki 1953,9001,1,0,6499,, +5765,Napier 1962 height,5163,Napier 1962,9001,1,0,6499,, +5766,Nelson 1955 height,5164,Nelson 1955,9001,1,0,6499,, +5767,One Tree Point 1964 height,5165,One Tree Point 1964,9001,1,0,6499,, +5768,Tararu 1952 height,5166,Tararu 1952,9001,1,0,6499,, +5769,Taranaki 1970 height,5167,Taranaki 1970,9001,1,0,6499,, +5770,Wellington 1953 height,5168,Wellington 1953,9001,1,0,6499,, +5771,Chatham Island 1959 height,5169,"Waitangi (Chatham Island) 1959",9001,1,0,6499,, +5772,Stewart Island 1977 height,5170,Stewart Island 1977,9001,1,0,6499,, +5773,EGM96 geoid height,5171,EGM96 geoid,9001,1,0,6499,9665,"egm96_15.gtx" +5774,NG-L height,5172,Nivellement General du Luxembourg,9001,1,0,6499,, +5775,Antalya height,5173,Antalya,9001,1,0,6499,, +5776,NN54 height,5174,Norway Normal Null 1954,9001,1,0,6499,, +5777,Durres height,5175,Durres,9001,1,0,6499,, +5778,GHA height,5176,Gebrauchshohen ADRIA,9001,1,0,6499,, +5779,NVN99 height,5177,National Vertical Network 1999,9001,1,0,6499,, +5780,Cascais height,5178,Cascais,9001,1,0,6499,, +5781,Constanta height,5179,Constanta,9001,1,0,6499,, +5782,Alicante height,5180,Alicante,9001,1,0,6499,, +5783,DHHN92 height,5181,Deutsches Haupthoehennetz 1992,9001,1,0,6499,, +5784,DHHN85 height,5182,Deutsches Haupthoehennetz 1985,9001,1,0,6499,, +5785,SNN76 height,5183,Staatlichen Nivellementnetzes 1976,9001,1,0,6499,, +5786,Baltic 1982 height,5184,Baltic 1982,9001,1,0,6499,, +5787,EOMA 1980 height,5185,Baltic 1980,9001,1,0,6499,, +5788,Kuwait PWD height,5186,Kuwait PWD,9001,1,0,6499,, +5789,KOC WD depth,5187,KOC Well Datum,9001,1,0,6498,, +5790,KOC CD height,5188,KOC Construction Datum,9001,1,0,6499,, +5791,NGC 1948 height,5189,Nivellement General de la Corse 1948,9001,1,0,6499,, +5792,Danger 1950 height,5190,Danger 1950,9001,1,0,6499,, +5793,Mayotte 1950 height,5191,Mayotte 1950,9001,1,0,6499,, +5794,Martinique 1955 height,5192,Martinique 1955,9001,1,0,6499,, +5795,Guadeloupe 1951 height,5193,Guadeloupe 1951,9001,1,0,6499,, +5796,Lagos 1955 height,5194,Lagos 1955,9001,1,0,6499,, +5797,AIOC95 height,5133,AIOC 1995,9001,1,0,6499,, +5798,EGM84 height,5203,EGM84 geoid,9001,1,0,6499,, +5799,DVR90 height,5206,Dansk Vertikal Reference 1990,9001,1,0,6499,, +5829,Instantaneous Water Level height,5113,Instantaneous Water Level,9001,1,0,6499,, +5831,Instantaneous Water Level depth,5113,Instantaneous Water Level,9001,1,0,6498,, +5843,Ras Ghumays height,1146,Ras Ghumays,9001,1,0,6499,, +5861,LAT depth,1080,Lowest Astronomic Tide,9001,1,0,6498,, +5862,LLWLT depth,1083,Lower Low Water Large Tide,9001,1,0,6498,, +5863,ISLW depth,1085,Indian Spring Low Water,9001,1,0,6498,, +5864,MLLWS depth,1086,Mean Lower Low Water Spring Tides,9001,1,0,6498,, +5865,MLWS depth,1087,Mean Low Water Spring Tides,9001,1,0,6498,, +5866,MLLW depth,1089,Mean Lower Low Water,9001,1,0,6498,, +5867,MLW depth,1091,Mean Low Water,9001,1,0,6498,, +5868,MHW height,1092,Mean High Water,9001,1,0,6499,, +5869,MHHW height,1090,Mean Higher High Water,9001,1,0,6499,, +5870,MHWS height,1088,Mean High Water Spring Tides,9001,1,0,6499,, +5871,HHWLT height,1084,Higher High Water Large Tide,9001,1,0,6499,, +5872,HAT height,1082,Highest Astronomic Tide,9001,1,0,6499,, +5873,Low Water depth,1093,Low Water,9001,1,0,6498,, +5874,High Water height,1094,High Water,9001,1,0,6499,, +5941,NN2000 height,1096,Norway Normal Null 2000,9001,1,0,6499,, +6130,"GCVD54 height (ft)",1097,Grand Cayman Vertical Datum 1954,9002,1,0,1030,, +6131,"LCVD61 height (ft)",1098,Little Cayman Vertical Datum 1961,9002,1,0,1030,, +6132,"CBVD61 height (ft)",1099,Cayman Brac Vertical Datum 1961,9002,1,0,1030,, +6178,Cais da Pontinha - Funchal height,1101,Cais da Pontinha - Funchal,9001,1,0,6499,, +6179,Cais da Vila - Porto Santo height,1102,Cais da Vila - Porto Santo,9001,1,0,6499,, +6180,Cais das Velas height,1103,Cais das Velas,9001,1,0,6499,, +6181,Horta height,1104,Horta,9001,1,0,6499,, +6182,Cais da Madalena height,1105,Cais da Madalena,9001,1,0,6499,, +6183,Santa Cruz da Graciosa height,1106,Santa Cruz da Graciosa,9001,1,0,6499,, +6184,Cais da Figueirinha - Angra do Heroismo height,1107,Cais da Figueirinha - Angra do Heroismo,9001,1,0,6499,, +6185,Santa Cruz das Flores height,1108,Santa Cruz das Flores,9001,1,0,6499,, +6186,Cais da Vila do Porto height,1109,Cais da Vila do Porto,9001,1,0,6499,, +6187,Ponta Delgada height,1110,Ponta Delgada,9001,1,0,6499,, +6357,NAVD88 depth,5103,North American Vertical Datum 1988,9001,1,0,6498,, +6358,"NAVD88 depth (ftUS)",5103,North American Vertical Datum 1988,9003,1,0,1043,, +6359,"NGVD29 depth (ftUS)",5102,National Geodetic Vertical Datum 1929,9003,1,0,1043,, +6360,"NAVD88 height (ftUS)",5103,North American Vertical Datum 1988,9003,1,0,6497,, +6638,Tutuila 1962 height,1121,Tutuila Vertical Datum of 1962,9001,1,0,6499,, +6639,Guam 1963 height,1122,Guam Vertical Datum of 1963,9001,1,0,6499,, +6640,NMVD03 height,1119,Northern Marianas Vertical Datum of 2003,9001,1,0,6499,, +6641,PRVD02 height,1123,Puerto Rico Vertical Datum of 2002,9001,1,0,6499,, +6642,VIVD09 height,1124,Virgin Islands Vertical Datum of 2009,9001,1,0,6499,, +6643,ASVD02 height,1125,American Samoa Vertical Datum of 2002,9001,1,0,6499,, +6644,GUVD04 height,1126,Guam Vertical Datum of 2004,9001,1,0,6499,, +6647,CGVD2013 height,1127,Canadian Geodetic Vertical Datum of 2013,9001,1,0,6499,, +6693,JSLD72 height,1129,Japanese Standard Levelling Datum 1972,9001,1,0,6499,, +6694,"JGD2000 (vertical) height",1130,"Japanese Geodetic Datum 2000 (vertical)",9001,1,0,6499,, +6695,"JGD2011 (vertical) height",1131,"Japanese Geodetic Datum 2011 (vertical)",9001,1,0,6499,, +6916,SHD height,1140,Singapore Height Datum,9001,1,0,6499,, +7446,Famagusta 1960 height,1148,Famagusta 1960,9001,1,0,6499,, +7447,PNG08 height,1149,PNG08,9001,1,0,6499,, +7651,Kumul 34 height,1150,Kumul 34,9001,1,0,6499,, +7652,Kiunga height,1151,Kiunga,9001,1,0,6499,, +7699,DHHN12 height,1161,Deutsches Haupthoehennetz 1912,9001,1,0,6499,, +7700,Latvia 2000 height,1162,Latvian Height System 2000,9001,1,0,6499,, +7707,"ODN (Offshore) height",1164,"Ordnance Datum Newlyn (Offshore)",9001,1,0,6499,, +7832,POM96 height,1171,Port Moresby 1996,9001,1,0,6499,, +7837,DHHN2016 height,1170,Deutsches Haupthoehennetz 2016,9001,1,0,6499,, +7839,NZVD2016 height,1169,New Zealand Vertical Datum 2016,9001,1,0,6499,, +7841,POM08 height,1172,Port Moresby 2008,9001,1,0,6499,, +7888,Jamestown 1971 height,1175,Jamestown 1971,9001,1,0,6499,, +7889,St. Helena Tritan 2011 height,1176,St. Helena Tritan Vertical Datum 2011,9001,1,0,6499,, +7890,SHVD2015 height,1177,St. Helena Vertical Datum 2015,9001,1,0,6499,, +7962,"Poolbeg height (m)",5152,Poolbeg,9001,1,0,6499,, +7968,"NGVD29 height (m)",5102,National Geodetic Vertical Datum 1929,9001,1,0,6499,, +7976,HKPD depth,5135,Hong Kong Principal Datum,9001,1,0,6498,, +7979,KOC WD height,5187,KOC Well Datum,9001,1,0,6499,, +8050,"MSL height (ft)",5100,Mean Sea Level,9002,1,0,1030,, +8051,"MSL depth (ft)",5100,Mean Sea Level,9002,1,0,6495,, +8052,"MSL height (ftUS)",5100,Mean Sea Level,9003,1,0,6497,, +8053,"MSL depth (ftUS)",5100,Mean Sea Level,9003,1,0,1043,, +8089,ISH2004 height,1190,Landshaedarkerfi Islands 2004,9001,1,0,6499,, +8228,"NAVD88 height (ft)",5103,North American Vertical Datum 1988,9002,1,0,1030,, +8266,GVR2000 height,1199,Greenland Vertical Reference 2000,9001,1,0,6499,, +8267,GVR2016 height,1200,Greenland Vertical Reference 2016,9001,1,0,6499,, +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","CMPD_HORIZCRS_CODE","CMPD_VERTCRS_CODE","SHOW_CRS","DEPRECATED" +3901,"KKJ / Finland Uniform Coordinate System + N60 height",2393,5717,1,0 +3902,"ETRS89 / TM35FIN(N,E) + N60 height",5048,5717,1,0 +3903,"ETRS89 / TM35FIN(N,E) + N2000 height",5048,3900,1,0 +4097,"ETRS89 / DKTM1 + DVR90 height",4093,5799,1,0 +4098,"ETRS89 / DKTM2 + DVR90 height",4094,5799,1,0 +4099,"ETRS89 / DKTM3 + DVR90 height",4095,5799,1,0 +4100,"ETRS89 / DKTM4 + DVR90 height",4096,5799,1,0 +5318,"ETRS89 / Faroe TM + FVR09 height",5316,5317,1,0 +5498,"NAD83 + NAVD88 height",4269,5703,1,0 +5499,"NAD83(HARN) + NAVD88 height",4152,5703,1,0 +5500,"NAD83(NSRS2007) + NAVD88 height",4759,5703,1,0 +5554,"ETRS89 / UTM zone 31N + DHHN92 height",25831,5783,1,0 +5555,"ETRS89 / UTM zone 32N + DHHN92 height",25832,5783,1,0 +5556,"ETRS89 / UTM zone 33N + DHHN92 height",25833,5783,1,0 +5598,"FEH2010 / Fehmarnbelt TM + FCSVR10 height",5596,5597,1,0 +5628,"SWEREF99 + RH2000 height",4619,5613,1,0 +5698,"RGF93 / Lambert-93 + NGF-IGN69 height",2154,5720,1,0 +5699,"RGF93 / Lambert-93 + NGF-IGN78 height",2154,5721,1,0 +5707,"NTF (Paris) / Lambert zone I + NGF-IGN69 height",27571,5720,1,0 +5708,"NTF (Paris) / Lambert zone IV + NGF-IGN78 height",27574,5721,1,0 +5832,"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) + DHHN92 height",5682,5783,1,0 +5833,"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) + DHHN92 height",5683,5783,1,0 +5834,"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height",5684,5783,1,0 +5835,"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) + DHHN92 height",5685,5783,1,0 +5845,"SWEREF99 TM + RH2000 height",3006,5613,1,0 +5846,"SWEREF99 12 00 + RH2000 height",3007,5613,1,0 +5847,"SWEREF99 13 30 + RH2000 height",3008,5613,1,0 +5848,"SWEREF99 15 00 + RH2000 height",3009,5613,1,0 +5849,"SWEREF99 16 30 + RH2000 height",3010,5613,1,0 +5850,"SWEREF99 18 00 + RH2000 height",3011,5613,1,0 +5851,"SWEREF99 14 15 + RH2000 height",3012,5613,1,0 +5852,"SWEREF99 15 45 + RH2000 height",3013,5613,1,0 +5853,"SWEREF99 17 15 + RH2000 height",3014,5613,1,0 +5854,"SWEREF99 18 45 + RH2000 height",3015,5613,1,0 +5855,"SWEREF99 20 15 + RH2000 height",3016,5613,1,0 +5856,"SWEREF99 21 45 + RH2000 height",3017,5613,1,0 +5857,"SWEREF99 23 15 + RH2000 height",3018,5613,1,0 +5942,"ETRS89 + NN2000 height",4258,5941,1,0 +5945,"ETRS89 / NTM zone 5 + NN2000 height",5105,5941,1,0 +5946,"ETRS89 / NTM zone 6 + NN2000 height",5106,5941,1,0 +5947,"ETRS89 / NTM zone 7 + NN2000 height",5107,5941,1,0 +5948,"ETRS89 / NTM zone 8 + NN2000 height",5108,5941,1,0 +5949,"ETRS89 / NTM zone 9 + NN2000 height",5109,5941,1,0 +5950,"ETRS89 / NTM zone 10 + NN2000 height",5110,5941,1,0 +5951,"ETRS89 / NTM zone 11 + NN2000 height",5111,5941,1,0 +5952,"ETRS89 / NTM zone 12 + NN2000 height",5112,5941,1,0 +5953,"ETRS89 / NTM zone 13 + NN2000 height",5113,5941,1,0 +5954,"ETRS89 / NTM zone 14 + NN2000 height",5114,5941,1,0 +5955,"ETRS89 / NTM zone 15 + NN2000 height",5115,5941,1,0 +5956,"ETRS89 / NTM zone 16 + NN2000 height",5116,5941,1,0 +5957,"ETRS89 / NTM zone 17 + NN2000 height",5117,5941,1,0 +5958,"ETRS89 / NTM zone 18 + NN2000 height",5118,5941,1,0 +5959,"ETRS89 / NTM zone 19 + NN2000 height",5119,5941,1,0 +5960,"ETRS89 / NTM zone 20 + NN2000 height",5120,5941,1,0 +5961,"ETRS89 / NTM zone 21 + NN2000 height",5121,5941,1,0 +5962,"ETRS89 / NTM zone 22 + NN2000 height",5122,5941,1,0 +5963,"ETRS89 / NTM zone 23 + NN2000 height",5123,5941,1,0 +5964,"ETRS89 / NTM zone 24 + NN2000 height",5124,5941,1,0 +5965,"ETRS89 / NTM zone 25 + NN2000 height",5125,5941,1,0 +5966,"ETRS89 / NTM zone 26 + NN2000 height",5126,5941,1,0 +5967,"ETRS89 / NTM zone 27 + NN2000 height",5127,5941,1,0 +5968,"ETRS89 / NTM zone 28 + NN2000 height",5128,5941,1,0 +5969,"ETRS89 / NTM zone 29 + NN2000 height",5129,5941,1,0 +5970,"ETRS89 / NTM zone 30 + NN2000 height",5130,5941,1,0 +5971,"ETRS89 / UTM zone 31 + NN2000 height",25831,5941,1,0 +5972,"ETRS89 / UTM zone 32 + NN2000 height",25832,5941,1,0 +5973,"ETRS89 / UTM zone 33 + NN2000 height",25833,5941,1,0 +5974,"ETRS89 / UTM zone 34 + NN2000 height",25834,5941,1,0 +5975,"ETRS89 / UTM zone 35 + NN2000 height",25835,5941,1,0 +5976,"ETRS89 / UTM zone 36 + NN2000 height",25836,5941,1,0 +6144,"ETRS89 + NN54 height",4258,5776,1,0 +6145,"ETRS89 / NTM zone 5 + NN54 height",5105,5776,1,0 +6146,"ETRS89 / NTM zone 6 + NN54 height",5106,5776,1,0 +6147,"ETRS89 / NTM zone 7 + NN54 height",5107,5776,1,0 +6148,"ETRS89 / NTM zone 8 + NN54 height",5108,5776,1,0 +6149,"ETRS89 / NTM zone 9 + NN54 height",5109,5776,1,0 +6150,"ETRS89 / NTM zone 10 + NN54 height",5110,5776,1,0 +6151,"ETRS89 / NTM zone 11 + NN54 height",5111,5776,1,0 +6152,"ETRS89 / NTM zone 12 + NN54 height",5112,5776,1,0 +6153,"ETRS89 / NTM zone 13 + NN54 height",5113,5776,1,0 +6154,"ETRS89 / NTM zone 14 + NN54 height",5114,5776,1,0 +6155,"ETRS89 / NTM zone 15 + NN54 height",5115,5776,1,0 +6156,"ETRS89 / NTM zone 16 + NN54 height",5116,5776,1,0 +6157,"ETRS89 / NTM zone 17 + NN54 height",5117,5776,1,0 +6158,"ETRS89 / NTM zone 18 + NN54 height",5118,5776,1,0 +6159,"ETRS89 / NTM zone 19 + NN54 height",5119,5776,1,0 +6160,"ETRS89 / NTM zone 20 + NN54 height",5120,5776,1,0 +6161,"ETRS89 / NTM zone 21 + NN54 height",5121,5776,1,0 +6162,"ETRS89 / NTM zone 22 + NN54 height",5122,5776,1,0 +6163,"ETRS89 / NTM zone 23 + NN54 height",5123,5776,1,0 +6164,"ETRS89 / NTM zone 24 + NN54 height",5124,5776,1,0 +6165,"ETRS89 / NTM zone 25 + NN54 height",5125,5776,1,0 +6166,"ETRS89 / NTM zone 26 + NN54 height",5126,5776,1,0 +6167,"ETRS89 / NTM zone 27 + NN54 height",5127,5776,1,0 +6168,"ETRS89 / NTM zone 28 + NN54 height",5128,5776,1,0 +6169,"ETRS89 / NTM zone 29 + NN54 height",5129,5776,1,0 +6170,"ETRS89 / NTM zone 30 + NN54 height",5130,5776,1,0 +6171,"ETRS89 / UTM zone 31 + NN54 height",25831,5776,1,0 +6172,"ETRS89 / UTM zone 32 + NN54 height",25832,5776,1,0 +6173,"ETRS89 / UTM zone 33 + NN54 height",25833,5776,1,0 +6174,"ETRS89 / UTM zone 34 + NN54 height",25834,5776,1,0 +6175,"ETRS89 / UTM zone 35 + NN54 height",25835,5776,1,0 +6176,"ETRS89 / UTM zone 36 + NN54 height",25836,5776,1,0 +6190,"Belge 1972 / Belgian Lambert 72 + Ostend height",31370,5710,1,0 +6349,"NAD83(2011) + NAVD88 height",6318,5703,1,0 +6649,"NAD83(CSRS) + CGVD2013 height",4617,6647,1,0 +6650,"NAD83(CSRS) / UTM zone 7N + CGVD2013 height",3154,6647,1,0 +6651,"NAD83(CSRS) / UTM zone 8N + CGVD2013 height",3155,6647,1,0 +6652,"NAD83(CSRS) / UTM zone 9N + CGVD2013 height",3156,6647,1,0 +6653,"NAD83(CSRS) / UTM zone 10N + CGVD2013 height",3157,6647,1,0 +6654,"NAD83(CSRS) / UTM zone 11N + CGVD2013 height",2955,6647,1,0 +6655,"NAD83(CSRS) / UTM zone 12N + CGVD2013 height",2956,6647,1,0 +6656,"NAD83(CSRS) / UTM zone 13N + CGVD2013 height",2957,6647,1,0 +6657,"NAD83(CSRS) / UTM zone 14N + CGVD2013 height",3158,6647,1,0 +6658,"NAD83(CSRS) / UTM zone 15N + CGVD2013 height",3159,6647,1,0 +6659,"NAD83(CSRS) / UTM zone 16N + CGVD2013 height",3160,6647,1,0 +6660,"NAD83(CSRS) / UTM zone 17N + CGVD2013 height",2958,6647,1,0 +6661,"NAD83(CSRS) / UTM zone 18N + CGVD2013 height",2959,6647,1,0 +6662,"NAD83(CSRS) / UTM zone 19N + CGVD2013 height",2960,6647,1,0 +6663,"NAD83(CSRS) / UTM zone 20N + CGVD2013 height",2961,6647,1,0 +6664,"NAD83(CSRS) / UTM zone 21N + CGVD2013 height",2962,6647,1,0 +6665,"NAD83(CSRS) / UTM zone 22N + CGVD2013 height",3761,6647,1,0 +6696,"JGD2000 + JGD2000 (vertical) height",4612,6694,1,0 +6697,"JGD2011 + JGD2011 (vertical) height",6668,6695,1,0 +6700,"Tokyo + JSLD72 height",4301,6693,1,0 +6871,"WGS 84 / Pseudo-Mercator + EGM2008 geoid height",3857,3855,1,1 +6893,"WGS 84 / World Mercator + EGM2008 height",3395,3855,1,0 +6917,"SVY21 + SHD height",4757,6916,1,0 +6927,"SVY21 / Singapore TM + SHD height",3414,6916,1,0 +7400,"NTF (Paris) + NGF IGN69 height",4807,5720,1,0 +7401,"NTF (Paris) / France II + NGF Lallemand",27582,5719,1,1 +7402,"NTF (Paris) / France II + NGF IGN69",27582,5720,1,1 +7403,"NTF (Paris) / France III + NGF IGN69",27583,5720,1,1 +7404,"RT90 + RH70 height",4124,5718,1,0 +7405,"OSGB 1936 / British National Grid + ODN height",27700,5701,1,0 +7406,"NAD27 + NGVD29 height",4267,5702,1,0 +7407,"NAD27 / Texas North + NGVD29 height",32037,5702,1,0 +7408,"RD/NAP",4289,5709,1,1 +7409,"ETRS89 + EVRF2000 height",4258,5730,1,0 +7410,PSHD93,4134,5724,1,0 +7411,"NTF (Paris) / Lambert zone II + NGF Lallemand height",27572,5719,1,0 +7412,"NTF (Paris) / Lambert zone II + NGF IGN69",27572,5719,1,1 +7413,"NTF (Paris) / Lambert zone III + NGF IGN69",27573,5719,1,1 +7414,"Tokyo + JSLD69 height",4301,5723,1,0 +7415,"Amersfoort / RD New + NAP height",28992,5709,1,0 +7416,"ETRS89 / UTM zone 32N + DVR90 height",25832,5799,1,0 +7417,"ETRS89 / UTM zone 33N + DVR90 height",25833,5799,1,0 +7418,"ETRS89 / Kp2000 Jutland + DVR90 height",2196,5799,1,0 +7419,"ETRS89 / Kp2000 Zealand + DVR90 height",2197,5799,1,0 +7420,"ETRS89 / Kp2000 Bornholm + DVR90 height",2198,5799,1,0 +7421,"NTF (Paris) / Lambert zone II + NGF-IGN69 height",27572,5720,1,0 +7422,"NTF (Paris) / Lambert zone III + NGF-IGN69 height",27573,5720,1,0 +7423,"ETRS89 + EVRF2007 height",4258,5621,1,0 +7954,"Astro DOS 71 / UTM zone 30S + Jamestown 1971 height",7878,7888,1,0 +7955,"St. Helena Tritan / UTM zone 30S + Tritan 2011 height",7883,7889,1,0 +7956,"SHMG2015 + SHVD2015 height",7887,7890,1,0 +8349,"GR96 + GVR2000 height",4747,8266,1,0 +8350,"GR96 + GVR2016 height",4747,8267,1,0 +"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","GREENWICH_DATUM","UOM_CODE","ELLIPSOID_CODE","PRIME_MERIDIAN_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE" +3822,TWD97,1026,Taiwan Datum 1997,1026,9001,7019,8901,1,0,6500 +3887,IGRS,1029,Iraqi Geospatial Reference System,1029,9001,7019,8901,1,0,6500 +4000,MOLDREF99,1032,MOLDREF99,1032,9001,7019,8901,1,0,6500 +4039,RGRDC 2005,1033,Reseau Geodesique de la RDC 2005,1033,9001,7019,8901,1,0,6500 +4073,SREF98,1034,Serbian Reference Network 1998,1034,9001,7019,8901,1,0,6500 +4079,REGCAN95,1035,Red Geodesica de Canarias 1995,1035,9001,7019,8901,1,0,6500 +4328,"WGS 84 (geocentric)",6326,World Geodetic System 1984,6326,9001,7030,8901,1,1,6500 +4330,"ITRF88 (geocentric)",6647,International Terrestrial Reference Frame 1988,6647,9001,7019,8901,1,1,6500 +4331,"ITRF89 (geocentric)",6648,International Terrestrial Reference Frame 1989,6648,9001,7019,8901,1,1,6500 +4332,"ITRF90 (geocentric)",6649,International Terrestrial Reference Frame 1990,6649,9001,7019,8901,1,1,6500 +4333,"ITRF91 (geocentric)",6650,International Terrestrial Reference Frame 1991,6650,9001,7019,8901,1,1,6500 +4334,"ITRF92 (geocentric)",6651,International Terrestrial Reference Frame 1992,6651,9001,7019,8901,1,1,6500 +4335,"ITRF93 (geocentric)",6652,International Terrestrial Reference Frame 1993,6652,9001,7019,8901,1,1,6500 +4336,"ITRF94 (geocentric)",6653,International Terrestrial Reference Frame 1994,6653,9001,7019,8901,1,1,6500 +4337,"ITRF96 (geocentric)",6654,International Terrestrial Reference Frame 1996,6654,9001,7019,8901,1,1,6500 +4338,"ITRF97 (geocentric)",6655,International Terrestrial Reference Frame 1997,6655,9001,7019,8901,1,1,6500 +4340,"Australian Antarctic (geocentric)",6176,Australian Antarctic Datum 1998,6176,9001,7019,8901,1,1,6500 +4342,"EST97 (geocentric)",6180,Estonia 1997,6180,9001,7019,8901,1,1,6500 +4344,"CHTRF95 (geocentric)",6151,Swiss Terrestrial Reference Frame 1995,6151,9001,7019,8901,1,1,6500 +4346,"ETRS89 (geocentric)",6258,European Terrestrial Reference System 1989,6258,9001,7019,8901,1,1,6500 +4348,"GDA94 (geocentric)",6283,Geocentric Datum of Australia 1994,6283,9001,7019,8901,1,1,6500 +4350,"Hartebeesthoek94 (geocentric)",6148,Hartebeesthoek94,6148,9001,7030,8901,1,1,6500 +4352,"IRENET95 (geocentric)",6173,IRENET95,6173,9001,7019,8901,1,1,6500 +4354,"JGD2000 (geocentric)",6612,Japanese Geodetic Datum 2000,6612,9001,7019,8901,1,1,6500 +4356,"LKS94 (ETRS89) (geocentric)",6126,"Lithuania 1994 (ETRS89)",6126,9001,7019,8901,1,1,6500 +4358,"Moznet (geocentric)",6130,"Moznet (ITRF94)",6130,9001,7030,8901,1,1,6500 +4360,"NAD83(CSRS) (geocentric)",6140,NAD83 Canadian Spatial Reference System,6140,9001,7019,8901,1,1,6500 +4362,"NAD83(HARN) (geocentric)",6152,"NAD83 (High Accuracy Reference Network)",6152,9001,7019,8901,1,1,6500 +4364,"NZGD2000 (geocentric)",6167,New Zealand Geodetic Datum 2000,6167,9001,7019,8901,1,1,6500 +4366,"POSGAR 98 (geocentric)",6190,Posiciones Geodesicas Argentinas 1998,6190,9001,7019,8901,1,1,6500 +4368,"REGVEN (geocentric)",6189,Red Geodesica Venezolana,6189,9001,7019,8901,1,1,6500 +4370,"RGF93 (geocentric)",6171,Reseau Geodesique Francais 1993,6171,9001,7019,8901,1,1,6500 +4372,"RGFG95 (geocentric)",6624,Reseau Geodesique Francais Guyane 1995,6624,9001,7019,8901,1,1,6500 +4374,"RGR92 (geocentric)",6627,Reseau Geodesique de la Reunion 1992,6627,9001,7019,8901,1,1,6500 +4376,"SIRGAS (geocentric)",6170,Sistema de Referencia Geocentrico para America del Sur 1995,6170,9001,7019,8901,1,1,6500 +4378,"SWEREF99 (geocentric)",6619,SWEREF99,6619,9001,7019,8901,1,1,6500 +4380,"Yemen NGN96 (geocentric)",6163,Yemen National Geodetic Network 1996,6163,9001,7030,8901,1,1,6500 +4382,"RGNC 1991 (geocentric)",6645,Reseau Geodesique Nouvelle Caledonie 1991,6645,9001,7022,8901,1,1,6500 +4384,"RRAF 1991 (geocentric)",6640,Reseau de Reference des Antilles Francaises 1991,6640,9001,7030,8901,1,1,6500 +4385,"ITRF2000 (geocentric)",6656,International Terrestrial Reference Frame 2000,6656,9001,7019,8901,1,1,6500 +4387,"ISN93 (geocentric)",6659,Islands Net 1993,6659,9001,7019,8901,1,1,6500 +4389,"LKS92 (geocentric)",6661,Latvia 1992,6661,9001,7019,8901,1,1,6500 +4465,RGSPM06,1038,Reseau Geodesique de Saint Pierre et Miquelon 2006,1038,9001,7019,8901,1,0,6500 +4468,RGM04,1036,Reseau Geodesique de Mayotte 2004,1036,9001,7019,8901,1,0,6500 +4473,Cadastre 1997,1037,Cadastre 1997,1037,9001,7022,8901,1,0,6500 +4479,China Geodetic Coordinate System 2000,1043,China 2000,1043,9001,1024,8901,1,0,6500 +4481,Mexico ITRF92,1042,Mexico ITRF92,1042,9001,7019,8901,1,0,6500 +4556,RRAF 1991,1047,Reseau de Reference des Antilles Francaises 1991,1047,9001,7019,8901,1,0,6500 +4882,Slovenia 1996,6765,Slovenia Geodetic Datum 1996,6765,9001,7019,8901,1,0,6500 +4884,RSRGD2000,6764,Ross Sea Region Geodetic Datum 2000,6764,9001,7019,8901,1,0,6500 +4886,BDA2000,6762,Bermuda 2000,6762,9001,7030,8901,1,0,6500 +4888,HTRS96,6761,Croatian Terrestrial Reference System,6761,9001,7019,8901,1,0,6500 +4890,WGS 66,6760,World Geodetic System 1966,6760,9001,7025,8901,1,0,6500 +4892,"NAD83(NSRS2007)",6759,"NAD83 (National Spatial Reference System 2007)",6759,9001,7019,8901,1,0,6500 +4894,JAD2001,6758,Jamaica 2001,6758,9001,7030,8901,1,0,6500 +4896,ITRF2005,6896,International Terrestrial Reference Frame 2005,6896,9001,7019,8901,1,0,6500 +4897,DGN95,6755,Datum Geodesi Nasional 1995,6755,9001,7030,8901,1,0,6500 +4899,LGD2006,6754,Libyan Geodetic Datum 2006,6754,9001,7022,8901,1,0,6500 +4906,RGNC91-93,6749,Reseau Geodesique de Nouvelle Caledonie 91-93,6749,9001,7019,8901,1,0,6500 +4908,GR96,6747,Greenland 1996,6747,9001,7019,8901,1,0,6500 +4910,ITRF88,6647,International Terrestrial Reference Frame 1988,6647,9001,7019,8901,1,0,6500 +4911,ITRF89,6648,International Terrestrial Reference Frame 1989,6648,9001,7019,8901,1,0,6500 +4912,ITRF90,6649,International Terrestrial Reference Frame 1990,6649,9001,7019,8901,1,0,6500 +4913,ITRF91,6650,International Terrestrial Reference Frame 1991,6650,9001,7019,8901,1,0,6500 +4914,ITRF92,6651,International Terrestrial Reference Frame 1992,6651,9001,7019,8901,1,0,6500 +4915,ITRF93,6652,International Terrestrial Reference Frame 1993,6652,9001,7019,8901,1,0,6500 +4916,ITRF94,6653,International Terrestrial Reference Frame 1994,6653,9001,7019,8901,1,0,6500 +4917,ITRF96,6654,International Terrestrial Reference Frame 1996,6654,9001,7019,8901,1,0,6500 +4918,ITRF97,6655,International Terrestrial Reference Frame 1997,6655,9001,7019,8901,1,0,6500 +4919,ITRF2000,6656,International Terrestrial Reference Frame 2000,6656,9001,7019,8901,1,0,6500 +4920,GDM2000,6742,Geodetic Datum of Malaysia 2000,6742,9001,7019,8901,1,0,6500 +4922,PZ-90,6740,Parametry Zemli 1990,6740,9001,7054,8901,1,0,6500 +4924,Mauritania 1999,6702,Mauritania 1999,6702,9001,7019,8901,1,0,6500 +4926,Korea 2000,6737,Geocentric datum of Korea,6737,9001,7019,8901,1,0,6500 +4928,POSGAR 94,6694,Posiciones Geodesicas Argentinas 1994,6694,9001,7030,8901,1,0,6500 +4930,Australian Antarctic,6176,Australian Antarctic Datum 1998,6176,9001,7019,8901,1,0,6500 +4932,CHTRF95,6151,Swiss Terrestrial Reference Frame 1995,6151,9001,7019,8901,1,0,6500 +4934,EST97,6180,Estonia 1997,6180,9001,7019,8901,1,0,6500 +4936,ETRS89,6258,European Terrestrial Reference System 1989,6258,9001,7019,8901,1,0,6500 +4938,GDA94,6283,Geocentric Datum of Australia 1994,6283,9001,7019,8901,1,0,6500 +4940,Hartebeesthoek94,6148,Hartebeesthoek94,6148,9001,7030,8901,1,0,6500 +4942,IRENET95,6173,IRENET95,6173,9001,7019,8901,1,0,6500 +4944,ISN93,6659,Islands Net 1993,6659,9001,7019,8901,1,0,6500 +4946,JGD2000,6612,Japanese Geodetic Datum 2000,6612,9001,7019,8901,1,0,6500 +4948,LKS92,6661,Latvia 1992,6661,9001,7019,8901,1,0,6500 +4950,LKS94,6126,"Lithuania 1994 (ETRS89)",6126,9001,7019,8901,1,0,6500 +4952,Moznet,6130,"Moznet (ITRF94)",6130,9001,7030,8901,1,0,6500 +4954,"NAD83(CSRS)",6140,NAD83 Canadian Spatial Reference System,6140,9001,7019,8901,1,0,6500 +4956,"NAD83(HARN)",6152,"NAD83 (High Accuracy Reference Network)",6152,9001,7019,8901,1,0,6500 +4958,NZGD2000,6167,New Zealand Geodetic Datum 2000,6167,9001,7019,8901,1,0,6500 +4960,POSGAR 98,6190,Posiciones Geodesicas Argentinas 1998,6190,9001,7019,8901,1,0,6500 +4962,REGVEN,6189,Red Geodesica Venezolana,6189,9001,7019,8901,1,0,6500 +4964,RGF93,6171,Reseau Geodesique Francais 1993,6171,9001,7019,8901,1,0,6500 +4966,RGFG95,6624,Reseau Geodesique Francais Guyane 1995,6624,9001,7019,8901,1,0,6500 +4968,RGNC 1991,6645,Reseau Geodesique Nouvelle Caledonie 1991,6645,9001,7022,8901,1,1,6500 +4970,RGR92,6627,Reseau Geodesique de la Reunion 1992,6627,9001,7019,8901,1,0,6500 +4972,RRAF 1991,6640,Reseau de Reference des Antilles Francaises 1991,6640,9001,7030,8901,1,1,6500 +4974,SIRGAS 1995,6170,Sistema de Referencia Geocentrico para America del Sur 1995,6170,9001,7019,8901,1,0,6500 +4976,SWEREF99,6619,SWEREF99,6619,9001,7019,8901,1,0,6500 +4978,WGS 84,6326,World Geodetic System 1984,6326,9001,7030,8901,1,0,6500 +4980,Yemen NGN96,6163,Yemen National Geodetic Network 1996,6163,9001,7030,8901,1,0,6500 +4982,IGM95,6670,Istituto Geografico Militaire 1995,6670,9001,7030,8901,1,0,6500 +4984,WGS 72,6322,World Geodetic System 1972,6322,9001,7043,8901,1,0,6500 +4986,WGS 72BE,6324,WGS 72 Transit Broadcast Ephemeris,6324,9001,7043,8901,1,0,6500 +4988,SIRGAS 2000,6674,Sistema de Referencia Geocentrico para las AmericaS 2000,6674,9001,7019,8901,1,0,6500 +4990,Lao 1993,6677,Lao 1993,6677,9001,7024,8901,1,0,6500 +4992,Lao 1997,6678,Lao National Datum 1997,6678,9001,7024,8901,1,0,6500 +4994,PRS92,6683,Philippine Reference System 1992,6683,9001,7008,8901,1,0,6500 +4996,MAGNA-SIRGAS,6686,Marco Geocentrico Nacional de Referencia,6686,9001,7019,8901,1,0,6500 +4998,RGPF,6687,Reseau Geodesique de la Polynesie Francaise,6687,9001,7019,8901,1,0,6500 +5011,PTRA08,1041,Autonomous Regions of Portugal 2008,1041,9001,7019,8901,1,0,6500 +5244,GDBD2009,1056,Geocentric Datum Brunei Darussalam 2009,1056,9001,7019,8901,1,0,6500 +5250,TUREF,1057,Turkish National Reference Frame,1057,9001,7019,8901,1,0,6500 +5262,DRUKREF 03,1058,Bhutan National Geodetic Datum,1058,9001,7019,8901,1,0,6500 +5322,ISN2004,1060,Islands Net 2004,1060,9001,7019,8901,1,0,6500 +5332,ITRF2008,1061,International Terrestrial Reference Frame 2008,1061,9001,7019,8901,1,0,6500 +5341,POSGAR 2007,1062,Posiciones Geodesicas Argentinas 2007,1062,9001,7019,8901,1,0,6500 +5352,MARGEN,1063,Marco Geodesico Nacional de Bolivia,1063,9001,7019,8901,1,0,6500 +5358,SIRGAS-Chile,1064,SIRGAS-Chile,1064,9001,7019,8901,1,0,6500 +5363,CR05,1065,Costa Rica 2005,1065,9001,7030,8901,1,0,6500 +5368,MACARIO SOLIS,1066,Sistema Geodesico Nacional de Panama MACARIO SOLIS,1066,9001,7019,8901,1,0,6500 +5369,Peru96,1067,Peru96,1067,9001,7019,8901,1,0,6500 +5379,SIRGAS-ROU98,1068,SIRGAS-ROU98,1068,9001,7030,8901,1,0,6500 +5391,"SIRGAS_ES2007.8",1069,"SIRGAS_ES2007.8",1069,9001,7019,8901,1,0,6500 +5487,RGAF09,1073,Reseau Geodesique des Antilles Francaises 2009,1073,9001,7019,8901,1,0,6500 +5544,PNG94,1076,Papua New Guinea Geodetic Datum 1994,1076,9001,7019,8901,1,0,6500 +5558,UCS-2000,1077,Ukraine 2000,1077,9001,7024,8901,1,0,6500 +5591,FEH2010,1078,Fehmarnbelt Datum 2010,1078,9001,7019,8901,1,0,6500 +5828,"DB_REF",1081,Deutsche Bahn Reference System,1081,9001,7004,8901,1,0,6500 +5884,TGD2005,1095,Tonga Geodetic Datum 2005,1095,9001,7019,8901,1,0,6500 +6133,CIGD11,1100,Cayman Islands Geodetic Datum 2011,1100,9001,7019,8901,1,0,6500 +6309,CGRS93,1112,Cyprus Geodetic Reference System 1993,1112,9001,7030,8901,1,0,6500 +6317,"NAD83(2011)",1116,"NAD83 (National Spatial Reference System 2011)",1116,9001,7019,8901,1,0,6500 +6320,"NAD83(PA11)",1117,"NAD83 (National Spatial Reference System PA11)",1117,9001,7019,8901,1,0,6500 +6323,"NAD83(MA11)",1118,"NAD83 (National Spatial Reference System MA11)",1118,9001,7019,8901,1,0,6500 +6363,Mexico ITRF2008,1120,Mexico ITRF2008,1120,9001,7019,8901,1,0,6500 +6666,JGD2011,1128,Japanese Geodetic Datum 2011,1128,9001,7019,8901,1,0,6500 +6704,RDN2008,1132,Rete Dinamica Nazionale 2008,1132,9001,7019,8901,1,0,6500 +6781,"NAD83(CORS96)",1133,"NAD83 (Continuously Operating Reference Station 1996)",1133,9001,7019,8901,1,0,6500 +6934,IGS08,1141,IGS08,1141,9001,7019,8901,1,0,6500 +6978,IGD05,1143,Israeli Geodetic Datum 2005,1143,9001,7019,8901,1,1,6500 +6981,IG05 Intermediate CRS,1142,IG05 Intermediate Datum,1142,9001,7019,8901,1,0,6500 +6985,"IGD05/12",1145,"Israeli Geodetic Datum 2005(2012)",1145,9001,7019,8901,1,1,6500 +6988,"IG05/12 Intermediate CRS",1144,"IG05/12 Intermediate Datum",1144,9001,7019,8901,1,0,6500 +7071,RGTAAF07,1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9001,7019,8901,1,0,6500 +7134,IGD05,1114,Israeli Geodetic Datum 2005,1114,9001,7030,8901,1,0,6500 +7137,"IGD05/12",1115,"Israeli Geodetic Datum 2005(2012)",1115,9001,7030,8901,1,0,6500 +7371,ONGD14,1147,Oman National Geodetic Datum 2014,1147,9001,7019,8901,1,0,6500 +7656,"WGS 84 (G730)",1152,"World Geodetic System 1984 (G730)",1152,9001,7030,8901,1,0,6500 +7658,"WGS 84 (G873)",1153,"World Geodetic System 1984 (G873)",1153,9001,7030,8901,1,0,6500 +7660,"WGS 84 (G1150)",1154,"World Geodetic System 1984 (G1150)",1154,9001,7030,8901,1,0,6500 +7662,"WGS 84 (G1674)",1155,"World Geodetic System 1984 (G1674)",1155,9001,7030,8901,1,0,6500 +7664,"WGS 84 (G1762)",1156,"World Geodetic System 1984 (G1762)",1156,9001,7030,8901,1,0,6500 +7677,PZ-90.02,1157,Parametry Zemli 1990.02,1157,9001,7054,8901,1,0,6500 +7679,PZ-90.11,1158,Parametry Zemli 1990.11,1158,9001,7054,8901,1,0,6500 +7681,GSK-2011,1159,Geodezicheskaya Sistema Koordinat 2011,1159,9001,1025,8901,1,0,6500 +7684,Kyrg-06,1160,Kyrgyzstan Geodetic Datum 2006,1160,9001,7019,8901,1,0,6500 +7789,ITRF2014,1165,International Terrestrial Reference Frame 2014,1165,9001,7019,8901,1,0,6500 +7796,BGS2005,1167,Bulgaria Geodetic System 2005,1167,9001,7019,8901,1,0,6500 +7815,"WGS 84 (Transit)",1166,"World Geodetic System 1984 (Transit)",1166,9001,7030,8901,1,0,6500 +7842,GDA2020,1168,Geocentric Datum of Australia 2020,1168,9001,7019,8901,1,0,6500 +7879,St. Helena Tritan,1173,St. Helena Tritan,1173,9001,7030,8901,1,0,6500 +7884,SHGD2015,1174,St. Helena Geodetic Datum 2015,1174,9001,7019,8901,1,0,6500 +7914,ETRF89,1178,European Terrestrial Reference Frame 1989,1178,9001,7019,8901,1,0,6500 +7916,ETRF90,1179,European Terrestrial Reference Frame 1990,1179,9001,7019,8901,1,0,6500 +7918,ETRF91,1180,European Terrestrial Reference Frame 1991,1180,9001,7019,8901,1,0,6500 +7920,ETRF92,1181,European Terrestrial Reference Frame 1992,1181,9001,7019,8901,1,0,6500 +7922,ETRF93,1182,European Terrestrial Reference Frame 1993,1182,9001,7019,8901,1,0,6500 +7924,ETRF94,1183,European Terrestrial Reference Frame 1994,1183,9001,7019,8901,1,0,6500 +7926,ETRF96,1184,European Terrestrial Reference Frame 1996,1184,9001,7019,8901,1,0,6500 +7928,ETRF97,1185,European Terrestrial Reference Frame 1997,1185,9001,7019,8901,1,0,6500 +7930,ETRF2000,1186,European Terrestrial Reference Frame 2000,1186,9001,7019,8901,1,0,6500 +8084,ISN2016,1187,Islands Net 2016,1187,9001,7019,8901,1,0,6500 +8227,IGS14,1191,IGS14,1191,9001,7019,8901,1,0,6500 +8230,"NAD83(CSRS96)",1192,"North American Datum of 1983 (CSRS96)",1192,9001,7019,8901,1,0,6500 +8233,"NAD83(CSRS)v2",1193,"North American Datum of 1983 (CSRS) version 2",1193,9001,7019,8901,1,0,6500 +8238,"NAD83(CSRS)v3",1194,"North American Datum of 1983 (CSRS) version 3",1194,9001,7019,8901,1,0,6500 +8242,"NAD83(CSRS)v4",1195,"North American Datum of 1983 (CSRS) version 4",1195,9001,7019,8901,1,0,6500 +8247,"NAD83(CSRS)v5",1196,"North American Datum of 1983 (CSRS) version 5",1196,9001,7019,8901,1,0,6500 +8250,"NAD83(CSRS)v6",1197,"North American Datum of 1983 (CSRS) version 6",1197,9001,7019,8901,1,0,6500 +8253,"NAD83(CSRS)v7",1198,"North American Datum of 1983 (CSRS) version 7",1198,9001,7019,8901,1,0,6500 +"ID","STATE","ZONE","PROJ_METHOD","DATUM","USGS_CODE","EPSG_PCS_CODE" +101,ALABAMA,EAST,1,NAD83,101,26929 +102,ALABAMA,WEST,1,NAD83,102,26930 +201,ARIZONA,EAST,1,NAD83,201,26948 +202,ARIZONA,CENTRAL,1,NAD83,202,26949 +203,ARIZONA,WEST,1,NAD83,203,26950 +301,ARKANSAS,NORTH,2,NAD83,301,26951 +302,ARKANSAS,SOUTH,2,NAD83,302,26952 +401,CALIFORNIA,I,2,NAD83,401,26941 +402,CALIFORNIA,II,2,NAD83,402,26942 +403,CALIFORNIA,III,2,NAD83,403,26943 +404,CALIFORNIA,IV,2,NAD83,404,26944 +405,CALIFORNIA,V,2,NAD83,405,26945 +406,CALIFORNIA,VI,2,NAD83,406,26946 +501,COLORADO,NORTH,2,NAD83,501,26953 +502,COLORADO,CENTRAL,2,NAD83,502,26954 +503,COLORADO,SOUTH,2,NAD83,503,26955 +600,CONNECTICUT,,2,NAD83,600,26956 +700,DELAWARE,,1,NAD83,700,26957 +901,FLORIDA,EAST,1,NAD83,901,26958 +902,FLORIDA,WEST,1,NAD83,902,26959 +903,FLORIDA,NORTH,2,NAD83,903,26960 +1001,GEORGIA,EAST,1,NAD83,1001,26966 +1002,GEORGIA,WEST,1,NAD83,1002,26967 +1101,IDAHO,EAST,1,NAD83,1101,26968 +1102,IDAHO,CENTRAL,1,NAD83,1102,26969 +1103,IDAHO,WEST,1,NAD83,1103,26970 +1201,ILLINOIS,EAST,1,NAD83,1201,26971 +1202,ILLINOIS,WEST,1,NAD83,1202,26972 +1301,INDIANA,EAST,1,NAD83,1301,26973 +1302,INDIANA,WEST,1,NAD83,1302,26974 +1401,IOWA,NORTH,2,NAD83,1401,26975 +1402,IOWA,SOUTH,2,NAD83,1402,26976 +1501,KANSAS,NORTH,2,NAD83,1501,26977 +1502,KANSAS,SOUTH,2,NAD83,1502,26978 +1600,KENTUCKY,SINGLE ZONE,2,NAD83,1600,3088 +1601,KENTUCKY,NORTH,2,NAD83,1601,2205 +1602,KENTUCKY,SOUTH,2,NAD83,1602,26980 +1701,LOUISIANA,NORTH,2,NAD83,1701,26981 +1702,LOUISIANA,SOUTH,2,NAD83,1702,26982 +1703,LOUISIANA,OFFSHORE,2,NAD83,1703, +1801,MAINE,EAST,1,NAD83,1801,26983 +1802,MAINE,WEST,1,NAD83,1802,26984 +1900,MARYLAND,,2,NAD83,1900,26985 +2001,MASSACHUSETTS,MAINLAND,2,NAD83,2001,26986 +2002,MASSACHUSETTS,ISLAND,2,NAD83,2002,26987 +2111,MICHIGAN,NORTH,2,NAD83,2111,26988 +2112,MICHIGAN,CENTRAL,2,NAD83,2112,26989 +2113,MICHIGAN,SOUTH,2,NAD83,2113,26990 +2201,MINNESOTA,NORTH,2,NAD83,2201,26991 +2202,MINNESOTA,CENTRAL,2,NAD83,2202,26992 +2203,MINNESOTA,SOUTH,2,NAD83,2203,26993 +2301,MISSISSIPPI,EAST,1,NAD83,2301,26994 +2302,MISSISSIPPI,WEST,1,NAD83,2302,26995 +2401,MISSOURI,EAST,1,NAD83,2401,26996 +2402,MISSOURI,CENTRAL,1,NAD83,2402,26997 +2403,MISSOURI,WEST,1,NAD83,2403,26998 +2500,MONTANA,,2,NAD83,2500,32100 +2600,NEBRASKA,,2,NAD83,2600,32104 +2701,NEVADA,EAST,1,NAD83,2701,32107 +2702,NEVADA,CENTRAL,1,NAD83,2702,32108 +2703,NEVADA,WEST,1,NAD83,2703,32109 +2800,"NEW HAMPSHIRE",,1,NAD83,2800,32110 +2900,"NEW JERSEY",,1,NAD83,2900,32111 +3001,"NEW MEXICO",EAST,1,NAD83,3001,32112 +3002,"NEW MEXICO",CENTRAL,1,NAD83,3002,32113 +3003,"NEW MEXICO",WEST,1,NAD83,3003,32114 +3101,"NEW YORK",EAST,1,NAD83,3101,32115 +3102,"NEW YORK",CENTRAL,1,NAD83,3102,32116 +3103,"NEW YORK",WEST,1,NAD83,3103,32117 +3104,"NEW YORK","LONG ISLAND",2,NAD83,3104,32118 +3200,"NORTH CAROLINA",,2,NAD83,3200,32119 +3301,"NORTH DAKOTA",NORTH,2,NAD83,3301,32120 +3302,"NORTH DAKOTA",SOUTH,2,NAD83,3302,32121 +3401,OHIO,NORTH,2,NAD83,3401,32122 +3402,OHIO,SOUTH,2,NAD83,3402,32123 +3501,OKLAHOMA,NORTH,2,NAD83,3501,32124 +3502,OKLAHOMA,SOUTH,2,NAD83,3502,32125 +3601,OREGON,NORTH,2,NAD83,3601,32126 +3602,OREGON,SOUTH,2,NAD83,3602,32127 +3701,PENNSYLVANIA,NORTH,2,NAD83,3701,32128 +3702,PENNSYLVANIA,SOUTH,2,NAD83,3702,32129 +3800,"RHODE ISLAND",,1,NAD83,3800,32130 +3900,"SOUTH CAROLINA",,2,NAD83,3900,32133 +4001,"SOUTH DAKOTA",NORTH,2,NAD83,4001,32134 +4002,"SOUTH DAKOTA",SOUTH,2,NAD83,4002,32135 +4100,TENNESSEE,,2,NAD83,4100,32136 +4201,TEXAS,NORTH,2,NAD83,4201,32137 +4202,TEXAS,"NORTH CENTRAL",2,NAD83,4202,32138 +4203,TEXAS,CENTRAL,2,NAD83,4203,32139 +4204,TEXAS,"SOUTH CENTRAL",2,NAD83,4204,32140 +4205,TEXAS,SOUTH,2,NAD83,4205,32141 +4301,UTAH,NORTH,2,NAD83,4301,32142 +4302,UTAH,CENTRAL,2,NAD83,4302,32143 +4303,UTAH,SOUTH,2,NAD83,4303,32144 +4400,VERMONT,,1,NAD83,4400,32145 +4501,VIRGINIA,NORTH,2,NAD83,4501,32146 +4502,VIRGINIA,SOUTH,2,NAD83,4502,32147 +4601,WASHINGTON,NORTH,2,NAD83,4601,32148 +4602,WASHINGTON,SOUTH,2,NAD83,4602,32149 +4701,"WEST VIRGINIA",NORTH,2,NAD83,4701,32150 +4702,"WEST VIRGINIA",SOUTH,2,NAD83,4702,32151 +4801,WISCONSIN,NORTH,2,NAD83,4801,32152 +4802,WISCONSIN,CENTRAL,2,NAD83,4802,32153 +4803,WISCONSIN,SOUTH,2,NAD83,4803,32154 +4901,WYOMING,EAST,1,NAD83,4901,32155 +4902,WYOMING,"EAST CENTRAL",1,NAD83,4902,32156 +4903,WYOMING,"WEST CENTRAL",1,NAD83,4903,32157 +4904,WYOMING,WEST,1,NAD83,4904,32158 +5001,ALASKA,"ZONE NO. 1",4,NAD83,5001,26931 +5002,ALASKA,"ZONE NO. 2",1,NAD83,5002,26932 +5003,ALASKA,"ZONE NO. 3",1,NAD83,5003,26933 +5004,ALASKA,"ZONE NO. 4",1,NAD83,5004,26934 +5005,ALASKA,"ZONE NO. 5",1,NAD83,5005,26935 +5006,ALASKA,"ZONE NO. 6",1,NAD83,5006,26936 +5007,ALASKA,"ZONE NO. 7",1,NAD83,5007,26937 +5008,ALASKA,"ZONE NO. 8",1,NAD83,5008,26938 +5009,ALASKA,"ZONE NO. 9",1,NAD83,5009,26939 +5010,ALASKA,"ZONE NO. 10",2,NAD83,5010,26940 +5101,HAWAII,1,1,NAD83,5101,26961 +5102,HAWAII,2,1,NAD83,5102,26962 +5103,HAWAII,3,1,NAD83,5103,26963 +5104,HAWAII,4,1,NAD83,5104,26964 +5105,HAWAII,5,1,NAD83,5105,26965 +5200,"PUERTO RICO AND","VIRGIN ISLANDS",2,NAD83,5200,32161 +10101,ALABAMA,EAST,1,NAD27,101,26729 +10102,ALABAMA,WEST,1,NAD27,102,26730 +10201,ARIZONA,EAST,1,NAD27,201,26748 +10202,ARIZONA,CENTRAL,1,NAD27,202,26749 +10203,ARIZONA,WEST,1,NAD27,203,26750 +10301,ARKANSAS,NORTH,2,NAD27,301,26751 +10302,ARKANSAS,SOUTH,2,NAD27,302,26752 +10401,CALIFORNIA,I,2,NAD27,401,26741 +10402,CALIFORNIA,II,2,NAD27,402,26742 +10403,CALIFORNIA,III,2,NAD27,403,26743 +10404,CALIFORNIA,IV,2,NAD27,404,26744 +10405,CALIFORNIA,V,2,NAD27,405,26745 +10406,CALIFORNIA,VI,2,NAD27,406,26746 +10407,CALIFORNIA,VII,2,NAD27,407,26799 +10501,COLORADO,NORTH,2,NAD27,501,26753 +10502,COLORADO,CENTRAL,2,NAD27,502,26754 +10503,COLORADO,SOUTH,2,NAD27,503,26755 +10600,CONNECTICUT,,2,NAD27,600,26756 +10700,DELAWARE,,1,NAD27,700,26757 +10901,FLORIDA,EAST,1,NAD27,901,26758 +10902,FLORIDA,WEST,1,NAD27,902,26759 +10903,FLORIDA,NORTH,2,NAD27,903,26760 +11001,GEORGIA,EAST,1,NAD27,1001,26766 +11002,GEORGIA,WEST,1,NAD27,1002,26767 +11101,IDAHO,EAST,1,NAD27,1101,26768 +11102,IDAHO,CENTRAL,1,NAD27,1102,26769 +11103,IDAHO,WEST,1,NAD27,1103,26770 +11201,ILLINOIS,EAST,1,NAD27,1201,26771 +11202,ILLINOIS,WEST,1,NAD27,1202,26772 +11301,INDIANA,EAST,1,NAD27,1301,26773 +11302,INDIANA,WEST,1,NAD27,1302,26774 +11401,IOWA,NORTH,2,NAD27,1401,26775 +11402,IOWA,SOUTH,2,NAD27,1402,26776 +11501,KANSAS,NORTH,2,NAD27,1501,26777 +11502,KANSAS,SOUTH,2,NAD27,1502,26778 +11601,KENTUCKY,NORTH,2,NAD27,1601,26779 +11602,KENTUCKY,SOUTH,2,NAD27,1602,26780 +11701,LOUISIANA,NORTH,2,NAD27,1701,26781 +11702,LOUISIANA,SOUTH,2,NAD27,1702,26782 +11703,LOUISIANA,OFFSHORE,2,NAD27,1703, +11801,MAINE,EAST,1,NAD27,1801,26783 +11802,MAINE,WEST,1,NAD27,1802,26784 +11900,MARYLAND,,2,NAD27,1900,26785 +12001,MASSACHUSETTS,MAINLAND,2,NAD27,2001,26786 +12002,MASSACHUSETTS,ISLAND,2,NAD27,2002,26787 +12101,MICHIGAN,EAST,1,NAD27,2101,26801 +12102,MICHIGAN,"CENTRAL/M",1,NAD27,2102,26802 +12103,MICHIGAN,WEST,1,NAD27,2103,26803 +12111,MICHIGAN,NORTH,2,NAD27,2111,26811 +12112,MICHIGAN,"CENTRAL/L",2,NAD27,2112,26812 +12113,MICHIGAN,SOUTH,2,NAD27,2113,26813 +12201,MINNESOTA,NORTH,2,NAD27,2201,26791 +12202,MINNESOTA,CENTRAL,2,NAD27,2202,26792 +12203,MINNESOTA,SOUTH,2,NAD27,2203,26793 +12301,MISSISSIPPI,EAST,1,NAD27,2301,26794 +12302,MISSISSIPPI,WEST,1,NAD27,2302,26795 +12401,MISSOURI,EAST,1,NAD27,2401,26796 +12402,MISSOURI,CENTRAL,1,NAD27,2402,26797 +12403,MISSOURI,WEST,1,NAD27,2403,26798 +12501,MONTANA,NORTH,2,NAD27,2501,32001 +12502,MONTANA,CENTRAL,2,NAD27,2502,32002 +12503,MONTANA,SOUTH,2,NAD27,2503,32003 +12601,NEBRASKA,NORTH,2,NAD27,2601,32005 +12602,NEBRASKA,SOUTH,2,NAD27,2602,32006 +12701,NEVADA,EAST,1,NAD27,2701,32007 +12702,NEVADA,CENTRAL,1,NAD27,2702,32008 +12703,NEVADA,WEST,1,NAD27,2703,32009 +12800,"NEW HAMPSHIRE",,1,NAD27,2800,32010 +12900,"NEW JERSEY",,1,NAD27,2900,32011 +13001,"NEW MEXICO",EAST,1,NAD27,3001,32012 +13002,"NEW MEXICO",CENTRAL,1,NAD27,3002,32013 +13003,"NEW MEXICO",WEST,1,NAD27,3003,32014 +13101,"NEW YORK",EAST,1,NAD27,3101,32015 +13102,"NEW YORK",CENTRAL,1,NAD27,3102,32016 +13103,"NEW YORK",WEST,1,NAD27,3103,32017 +13104,"NEW YORK","LONG ISLAND",2,NAD27,3104,32018 +13200,"NORTH CAROLINA",,2,NAD27,3200,32019 +13301,"NORTH DAKOTA",NORTH,2,NAD27,3301,32020 +13302,"NORTH DAKOTA",SOUTH,2,NAD27,3302,32021 +13401,OHIO,NORTH,2,NAD27,3401,32022 +13402,OHIO,SOUTH,2,NAD27,3402,32023 +13501,OKLAHOMA,NORTH,2,NAD27,3501,32024 +13502,OKLAHOMA,SOUTH,2,NAD27,3502,32025 +13601,OREGON,NORTH,2,NAD27,3601,32026 +13602,OREGON,SOUTH,2,NAD27,3602,32027 +13701,PENNSYLVANIA,NORTH,2,NAD27,3701,32028 +13702,PENNSYLVANIA,SOUTH,2,NAD27,3702,32029 +13800,"RHODE ISLAND",,1,NAD27,3800,32030 +13901,"SOUTH CAROLINA",NORTH,2,NAD27,3901,32031 +13902,"SOUTH CAROLINA",SOUTH,2,NAD27,3902,32033 +14001,"SOUTH DAKOTA",NORTH,2,NAD27,4001,32034 +14002,"SOUTH DAKOTA",SOUTH,2,NAD27,4002,32035 +14100,TENNESSEE,,2,NAD27,4100,2204 +14201,TEXAS,NORTH,2,NAD27,4201,32037 +14202,TEXAS,"NORTH CENTRAL",2,NAD27,4202,32038 +14203,TEXAS,CENTRAL,2,NAD27,4203,32039 +14204,TEXAS,"SOUTH CENTRAL",2,NAD27,4204,32040 +14205,TEXAS,SOUTH,2,NAD27,4205,32041 +14301,UTAH,NORTH,2,NAD27,4301,32042 +14302,UTAH,CENTRAL,2,NAD27,4302,32043 +14303,UTAH,SOUTH,2,NAD27,4303,32044 +14400,VERMONT,,1,NAD27,4400,32045 +14501,VIRGINIA,NORTH,2,NAD27,4501,32046 +14502,VIRGINIA,SOUTH,2,NAD27,4502,32047 +14601,WASHINGTON,NORTH,2,NAD27,4601,32048 +14602,WASHINGTON,SOUTH,2,NAD27,4602,32049 +14701,"WEST VIRGINIA",NORTH,2,NAD27,4701,32050 +14702,"WEST VIRGINIA",SOUTH,2,NAD27,4702,32051 +14801,WISCONSIN,NORTH,2,NAD27,4801,32052 +14802,WISCONSIN,CENTRAL,2,NAD27,4802,32053 +14803,WISCONSIN,SOUTH,2,NAD27,4803,32054 +14901,WYOMING,EAST,1,NAD27,4901,32055 +14902,WYOMING,"EAST CENTRAL",1,NAD27,4902,32056 +14903,WYOMING,"WEST CENTRAL",1,NAD27,4903,32057 +14904,WYOMING,WEST,1,NAD27,4904,32058 +15001,ALASKA,"ZONE NO. 1",4,NAD27,5001,26731 +15002,ALASKA,"ZONE NO. 2",1,NAD27,5002,26732 +15003,ALASKA,"ZONE NO. 3",1,NAD27,5003,26733 +15004,ALASKA,"ZONE NO. 4",1,NAD27,5004,26734 +15005,ALASKA,"ZONE NO. 5",1,NAD27,5005,26735 +15006,ALASKA,"ZONE NO. 6",1,NAD27,5006,26736 +15007,ALASKA,"ZONE NO. 7",1,NAD27,5007,26737 +15008,ALASKA,"ZONE NO. 8",1,NAD27,5008,26738 +15009,ALASKA,"ZONE NO. 9",1,NAD27,5009,26739 +15010,ALASKA,"ZONE NO. 10",2,NAD27,5010,26740 +15101,HAWAII,1,1,NAD27,5101,3561 +15102,HAWAII,2,1,NAD27,5102,3562 +15103,HAWAII,3,1,NAD27,5103,3563 +15104,HAWAII,4,1,NAD27,5104,3564 +15105,HAWAII,5,1,NAD27,5105,3565 +15201,"PUERTO RICO AND VIRGIN ISLANDS",,2,NAD27,5201,3991 +15202,"VIRGIN ISLANDS","ST. CROIX",2,NAD27,5202,3992 +15300,"AMERICAN SAMOA",,2,NAD27,5300,2155 +15400,"GUAM ISLAND",,3,NAD27,5400, diff --git a/dist/spa/gdal.js b/dist/spa/gdal.js new file mode 100644 index 0000000..67802ea --- /dev/null +++ b/dist/spa/gdal.js @@ -0,0 +1 @@ +var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="gdal.data";var REMOTE_PACKAGE_BASE="gdal.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","usr",true,true);Module["FS_createPath"]("/usr","local",true,true);Module["FS_createPath"]("/usr/local","share",true,true);Module["FS_createPath"]("/usr/local/share","gdal",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=(()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}});read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=(filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret});readAsync=((filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})});if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function uleb128Encode(n){if(n<128){return[n]}return[n%128|128,n>>7]}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function=="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{tempRet0=value};var getTempRet0=()=>tempRet0;var dynamicLibraries=Module["dynamicLibraries"]||[];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}function setValue(ptr,value,type="i8",noSafe){if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type="i8",noSafe){if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return Number(HEAPF64[ptr>>3]);default:abort("invalid type for getValue: "+type)}return null}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function getCFunc(ident){var func=Module["_"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||268435456;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable=new WebAssembly.Table({"initial":7637,"element":"anyfunc"});var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);PIPEFS.root=FS.mount(PIPEFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="gdal.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg,"GOT.mem":new Proxy(asmLibraryArg,GOTHandler),"GOT.func":new Proxy(asmLibraryArg,GOTHandler)};function receiveInstance(instance,module){var exports=instance.exports;exports=relocateExports(exports,1024);Module["asm"]=exports;var metadata=getDylinkMetadata(module);if(metadata.neededDynlibs){dynamicLibraries=metadata.neededDynlibs.concat(dynamicLibraries)}mergeLibSymbols(exports,"main");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var GOT={};var GOTHandler={get:function(obj,symName){if(!GOT[symName]){GOT[symName]=new WebAssembly.Global({"value":"i32","mutable":true})}return GOT[symName]}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}function getDylinkMetadata(binary){var offset=0;var end=0;function getU8(){return binary[offset++]}function getLEB(){var ret=0;var mul=1;while(1){var byte=binary[offset++];ret+=(byte&127)*mul;mul*=128;if(!(byte&128))break}return ret}function getString(){var len=getLEB();offset+=len;return UTF8ArrayToString(binary,offset-len,len)}function failIf(condition,message){if(condition)throw new Error(message)}var name="dylink.0";if(binary instanceof WebAssembly.Module){var dylinkSection=WebAssembly.Module.customSections(binary,name);if(dylinkSection.length===0){name="dylink";dylinkSection=WebAssembly.Module.customSections(binary,name)}failIf(dylinkSection.length===0,"need dylink section");binary=new Uint8Array(dylinkSection[0]);end=binary.length}else{var int32View=new Uint32Array(new Uint8Array(binary.subarray(0,24)).buffer);var magicNumberFound=int32View[0]==1836278016;failIf(!magicNumberFound,"need to see wasm magic number");failIf(binary[8]!==0,"need the dylink section to be first");offset=9;var section_size=getLEB();end=offset+section_size;name=getString()}var customSection={neededDynlibs:[],tlsExports:{}};if(name=="dylink"){customSection.memorySize=getLEB();customSection.memoryAlign=getLEB();customSection.tableSize=getLEB();customSection.tableAlign=getLEB();var neededDynlibsCount=getLEB();for(var i=0;i=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function asmjsMangle(x){var unmangledSymbols=["stackAlloc","stackSave","stackRestore"];return x.indexOf("dynCall_")==0||unmangledSymbols.includes(x)?x:"_"+x}function mergeLibSymbols(exports,libName){for(var sym in exports){if(!exports.hasOwnProperty(sym)){continue}if(!asmLibraryArg.hasOwnProperty(sym)){asmLibraryArg[sym]=exports[sym]}var module_sym=asmjsMangle(sym);if(!Module.hasOwnProperty(module_sym)){Module[module_sym]=exports[sym]}}}var LDSO={loadedLibsByName:{},loadedLibsByHandle:{}};function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function createInvokeFunction(sig){return function(){var sp=stackSave();try{return dynCall(sig,arguments[0],Array.prototype.slice.call(arguments,1))}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}}var ___heap_base=6761248;function getMemory(size){if(runtimeInitialized)return _malloc(size);var ret=___heap_base;var end=ret+size+15&-16;___heap_base=end;GOT["__heap_base"].value=end;return ret}function isInternalSym(symName){return["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors"].includes(symName)}function updateGOT(exports,replace){for(var symName in exports){if(isInternalSym(symName)){continue}var value=exports[symName];if(symName.startsWith("orig$")){symName=symName.split("$")[1];replace=true}if(!GOT[symName]){GOT[symName]=new WebAssembly.Global({"value":"i32","mutable":true})}if(replace||GOT[symName].value==0){if(typeof value=="function"){GOT[symName].value=addFunction(value)}else if(typeof value=="number"){GOT[symName].value=value}else if(typeof value=="bigint"){GOT[symName].value=Number(value)}else{err("unhandled export type for `"+symName+"`: "+typeof value)}}}}function relocateExports(exports,memoryBase,replace){var relocated={};for(var e in exports){var value=exports[e];if(typeof value=="object"){value=value.value}if(typeof value=="number"){value+=memoryBase}relocated[e]=value}updateGOT(relocated,replace);return relocated}function resolveGlobalSymbol(symName,direct){var sym;if(direct){sym=asmLibraryArg["orig$"+symName]}if(!sym){sym=asmLibraryArg[symName]}if(!sym){sym=Module[asmjsMangle(symName)]}if(!sym&&symName.startsWith("invoke_")){sym=createInvokeFunction(symName.split("_")[1])}return sym}function alignMemory(size,alignment){return Math.ceil(size/alignment)*alignment}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function loadWebAssemblyModule(binary,flags,handle){var metadata=getDylinkMetadata(binary);function loadModule(){var needsAllocation=!handle||!HEAP8[handle+24>>0];if(needsAllocation){var memAlign=Math.pow(2,metadata.memoryAlign);memAlign=Math.max(memAlign,STACK_ALIGN);var memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0;var tableBase=metadata.tableSize?wasmTable.length:0;if(handle){HEAP8[handle+24>>0]=1;HEAP32[handle+28>>2]=memoryBase;HEAP32[handle+32>>2]=metadata.memorySize;HEAP32[handle+36>>2]=tableBase;HEAP32[handle+40>>2]=metadata.tableSize}}else{memoryBase=HEAP32[handle+28>>2];tableBase=HEAP32[handle+36>>2]}var tableGrowthNeeded=tableBase+metadata.tableSize-wasmTable.length;if(tableGrowthNeeded>0){wasmTable.grow(tableGrowthNeeded)}var moduleExports;function resolveSymbol(sym){var resolved=resolveGlobalSymbol(sym,false);if(!resolved){resolved=moduleExports[sym]}return resolved}var proxyHandler={"get":function(stubs,prop){switch(prop){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(prop in asmLibraryArg){return asmLibraryArg[prop]}if(!(prop in stubs)){var resolved;stubs[prop]=function(){if(!resolved)resolved=resolveSymbol(prop);return resolved.apply(null,arguments)}}return stubs[prop]}};var proxy=new Proxy({},proxyHandler);var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),"env":proxy,wasi_snapshot_preview1:proxy};function postInstantiation(instance){updateTableMap(tableBase,metadata.tableSize);moduleExports=relocateExports(instance.exports,memoryBase);if(!flags.allowUndefined){reportUndefinedSymbols()}var init=moduleExports["__wasm_call_ctors"];if(init){if(runtimeInitialized){init()}else{__ATINIT__.push(init)}}return moduleExports}if(flags.loadAsync){if(binary instanceof WebAssembly.Module){var instance=new WebAssembly.Instance(binary,info);return Promise.resolve(postInstantiation(instance))}return WebAssembly.instantiate(binary,info).then(function(result){return postInstantiation(result.instance)})}var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary);var instance=new WebAssembly.Instance(module,info);return postInstantiation(instance)}if(flags.loadAsync){return metadata.neededDynlibs.reduce(function(chain,dynNeeded){return chain.then(function(){return loadDynamicLibrary(dynNeeded,flags)})},Promise.resolve()).then(function(){return loadModule()})}metadata.neededDynlibs.forEach(function(dynNeeded){loadDynamicLibrary(dynNeeded,flags)});return loadModule()}function loadDynamicLibrary(lib,flags,handle){flags=flags||{global:true,nodelete:true};var dso=LDSO.loadedLibsByName[lib];if(dso){if(flags.global&&!dso.global){dso.global=true;if(dso.module!=="loading"){mergeLibSymbols(dso.module,lib)}}if(flags.nodelete&&dso.refcount!==Infinity){dso.refcount=Infinity}dso.refcount++;if(handle){LDSO.loadedLibsByHandle[handle]=dso}return flags.loadAsync?Promise.resolve(true):true}dso={refcount:flags.nodelete?Infinity:1,name:lib,module:"loading",global:flags.global};LDSO.loadedLibsByName[lib]=dso;if(handle){LDSO.loadedLibsByHandle[handle]=dso}function loadLibData(libFile){if(flags.fs&&flags.fs.findObject(libFile)){var libData=flags.fs.readFile(libFile,{encoding:"binary"});if(!(libData instanceof Uint8Array)){libData=new Uint8Array(libData)}return flags.loadAsync?Promise.resolve(libData):libData}if(flags.loadAsync){return new Promise(function(resolve,reject){readAsync(libFile,function(data){resolve(new Uint8Array(data))},reject)})}if(!readBinary){throw new Error(libFile+": file not found, and synchronous loading of external files is not available")}return readBinary(libFile)}function getLibModule(){if(typeof preloadedWasm!="undefined"&&preloadedWasm[lib]){var libModule=preloadedWasm[lib];return flags.loadAsync?Promise.resolve(libModule):libModule}if(flags.loadAsync){return loadLibData(lib).then(function(libData){return loadWebAssemblyModule(libData,flags,handle)})}return loadWebAssemblyModule(loadLibData(lib),flags,handle)}function moduleLoaded(libModule){if(dso.global){mergeLibSymbols(libModule,lib)}dso.module=libModule}if(flags.loadAsync){return getLibModule().then(function(libModule){moduleLoaded(libModule);return true})}moduleLoaded(getLibModule());return true}function reportUndefinedSymbols(){for(var symName in GOT){if(GOT[symName].value==0){var value=resolveGlobalSymbol(symName,true);if(typeof value=="function"){GOT[symName].value=addFunction(value,value.sig)}else if(typeof value=="number"){GOT[symName].value=value}else{throw new Error("bad export type for `"+symName+"`: "+typeof value)}}}}function preloadDylibs(){if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("preloadDylibs");dynamicLibraries.reduce(function(chain,lib){return chain.then(function(){return loadDynamicLibrary(lib,{loadAsync:true,global:true,nodelete:true,allowUndefined:true})})},Promise.resolve()).then(function(){reportUndefinedSymbols();removeRunDependency("preloadDylibs")})}function setWasmTableEntry(idx,func){wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}___assert_fail.sig="viiii";function ___cxa_allocate_exception(size){return _malloc(size+24)+24}___cxa_allocate_exception.sig="vi";function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=Module["___cxa_is_pointer_type"](this.get_type());if(isPointer){return HEAP32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}___cxa_throw.sig="viii";var ___memory_base=new WebAssembly.Global({"value":"i32","mutable":false},1024);var ___stack_pointer=new WebAssembly.Global({"value":"i32","mutable":true},6761248);var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;zeroMemory(ptr,size);return ptr}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get function(){return this.shared.position},set:function(val){this.shared.position=val}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"WORKERFS":WORKERFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=ENVIRONMENT_IS_NODE?{"protocol":subProtocols.toString()}:subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,flags){if(!flags.binary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return 28}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i>2]=value;return value}function inetNtop4(addr){return(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function inetPton4(str){var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ftruncate64(fd,length_low,length_high){try{var length=length_high*4294967296+(length_low>>>0);FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~4352;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount:function(mount){return FS.createNode(null,"/",16384|511,0)},createPipe:function(){var pipe={buckets:[],refcnt:2};pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var rName=PIPEFS.nextname();var wName=PIPEFS.nextname();var rNode=FS.createNode(PIPEFS.root,rName,4096,0);var wNode=FS.createNode(PIPEFS.root,wName,4096,0);rNode.pipe=pipe;wNode.pipe=pipe;var readableStream=FS.createStream({path:rName,node:rNode,flags:0,seekable:false,stream_ops:PIPEFS.stream_ops});rNode.stream=readableStream;var writableStream=FS.createStream({path:wName,node:wNode,flags:1,seekable:false,stream_ops:PIPEFS.stream_ops});wNode.stream=writableStream;return{readable_fd:readableStream.fd,writable_fd:writableStream.fd}},stream_ops:{poll:function(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){return 256|4}else{if(pipe.buckets.length>0){for(var i=0;i0){return 64|1}}}}return 0},ioctl:function(stream,request,varargs){return 28},fsync:function(stream){return 28},read:function(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var currentLength=0;for(var i=0;i=dataLen){currBucket.buffer.set(data,currBucket.offset);currBucket.offset+=dataLen;return dataLen}else if(freeBytesInCurrBuffer>0){currBucket.buffer.set(data.subarray(0,freeBytesInCurrBuffer),currBucket.offset);currBucket.offset+=freeBytesInCurrBuffer;data=data.subarray(freeBytesInCurrBuffer,data.byteLength)}var numBuckets=data.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0;var remElements=data.byteLength%PIPEFS.BUCKET_BUFFER_SIZE;for(var i=0;i0){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:data.byteLength,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data)}return dataLen},close:function(stream){var pipe=stream.node.pipe;pipe.refcnt--;if(pipe.refcnt===0){pipe.buckets=null}}},nextname:function(){if(!PIPEFS.nextname.current){PIPEFS.nextname.current=0}return"pipe["+PIPEFS.nextname.current+++"]"}};function ___syscall_pipe(fdPtr){try{if(fdPtr==0){throw new FS.ErrnoError(21)}var res=PIPEFS.createPipe();HEAP32[fdPtr>>2]=res.readable_fd;HEAP32[fdPtr+4>>2]=res.writable_fd;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);var dest=getSocketAddress(addr,addr_len,true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}else{return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_statfs64(path,size,buf){try{path=SYSCALLS.getStr(path);HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}var ___table_base=new WebAssembly.Global({"value":"i32","mutable":false},1);function __dlinit(main_dso_handle){var dso={refcount:Infinity,name:"__main__",module:Module["asm"],global:true};LDSO.loadedLibsByName[dso.name]=dso;LDSO.loadedLibsByHandle[main_dso_handle]=dso}var ENV={};function dlSetError(msg){withStackSave(function(){var cmsg=allocateUTF8OnStack(msg);___dl_seterr(cmsg)})}function dlopenInternal(handle,jsflags){var filename=UTF8ToString(handle+44);var flags=HEAP32[handle+20>>2];filename=PATH.normalize(filename);var searchpaths=[];var isValidFile=filename=>{var target=FS.findObject(filename);return target&&!target.isFolder&&!target.isDevice};if(!isValidFile(filename)){if(ENV["LD_LIBRARY_PATH"]){searchpaths=ENV["LD_LIBRARY_PATH"].split(":")}for(var ident in searchpaths){var searchfile=PATH.join2(searchpaths[ident],filename);if(isValidFile(searchfile)){filename=searchfile;break}}}var combinedFlags={global:Boolean(flags&256),nodelete:Boolean(flags&4096),loadAsync:jsflags.loadAsync,fs:jsflags.fs};if(jsflags.loadAsync){return loadDynamicLibrary(filename,combinedFlags,handle)}try{return loadDynamicLibrary(filename,combinedFlags,handle)}catch(e){dlSetError("Could not load dynamic lib: "+filename+"\n"+e);return 0}}function __dlopen_js(handle){var jsflags={loadAsync:false,fs:FS};return dlopenInternal(handle,jsflags)}__dlopen_js.sig="iiii";function __dlsym_js(handle,symbol){symbol=UTF8ToString(symbol);var result;if(handle==0){result=resolveGlobalSymbol(symbol,true);if(!result){dlSetError('Tried to lookup unknown symbol "'+symbol+'" in dynamic lib: RTLD_DEFAULT');return 0}}else{var lib=LDSO.loadedLibsByHandle[handle];if(!lib.module.hasOwnProperty(symbol)){dlSetError('Tried to lookup unknown symbol "'+symbol+'" in dynamic lib: '+lib.name);return 0}result=lib.module["orig$"+symbol];if(!result)result=lib.module[symbol]}if(typeof result=="function"){result=addFunction(result,result.sig)}return result}__dlsym_js.sig="iii";function __emscripten_date_now(){return Date.now()}__emscripten_date_now.sig="j";var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}__emscripten_throw_longjmp.sig="v";function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}__localtime_js.sig="iii";function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}__mktime_js.sig="ii";function __mmap_js(addr,len,prot,flags,fd,off,allocated,builtin){try{var info=FS.getStream(fd);if(!info)return-8;var res=FS.mmap(info,addr,len,off,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;return ptr}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){try{var stream=FS.getStream(fd);if(stream){if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}FS.munmap(stream)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}_tzset_impl.sig="viii";function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}__tzset_js.sig="viii";function _abort(){abort("")}_abort.sig="v";function _emscripten_get_heap_max(){return 2147483648}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=(()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6})}else _emscripten_get_now=(()=>performance.now());function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}_environ_get.sig="iii";function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}_environ_sizes_get.sig="iii";function _exit(status){exit(status)}_exit.sig="vi";function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}_fd_close.sig="ii";function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}_fd_fdstat_get.sig="iii";function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}_fd_read.sig="iiiii";function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}_fd_write.sig="iiiii";function _getTempRet0(){return getTempRet0()}_getTempRet0.sig="i";function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAP32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}_getaddrinfo.sig="iiiii";function _proc_exit(code){procExit(code)}_proc_exit.sig="vi";function _setTempRet0(val){setTempRet0(val)}_setTempRet0.sig="vi";function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}_strftime.sig="iiiii";function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"__assert_fail":___assert_fail,"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_throw":___cxa_throw,"__heap_base":___heap_base,"__indirect_function_table":wasmTable,"__memory_base":___memory_base,"__stack_pointer":___stack_pointer,"__syscall_chdir":___syscall_chdir,"__syscall_connect":___syscall_connect,"__syscall_fcntl64":___syscall_fcntl64,"__syscall_ftruncate64":___syscall_ftruncate64,"__syscall_getcwd":___syscall_getcwd,"__syscall_getdents64":___syscall_getdents64,"__syscall_ioctl":___syscall_ioctl,"__syscall_lstat64":___syscall_lstat64,"__syscall_mkdirat":___syscall_mkdirat,"__syscall_newfstatat":___syscall_newfstatat,"__syscall_openat":___syscall_openat,"__syscall_pipe":___syscall_pipe,"__syscall_readlinkat":___syscall_readlinkat,"__syscall_recvfrom":___syscall_recvfrom,"__syscall_renameat":___syscall_renameat,"__syscall_rmdir":___syscall_rmdir,"__syscall_sendto":___syscall_sendto,"__syscall_socket":___syscall_socket,"__syscall_stat64":___syscall_stat64,"__syscall_statfs64":___syscall_statfs64,"__syscall_unlinkat":___syscall_unlinkat,"__table_base":___table_base,"_dlinit":__dlinit,"_dlopen_js":__dlopen_js,"_dlsym_js":__dlsym_js,"_emscripten_date_now":__emscripten_date_now,"_emscripten_get_now_is_monotonic":__emscripten_get_now_is_monotonic,"_emscripten_throw_longjmp":__emscripten_throw_longjmp,"_localtime_js":__localtime_js,"_mktime_js":__mktime_js,"_mmap_js":__mmap_js,"_munmap_js":__munmap_js,"_tzset_js":__tzset_js,"abort":_abort,"emscripten_get_heap_max":_emscripten_get_heap_max,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"environ_get":_environ_get,"environ_sizes_get":_environ_sizes_get,"exit":_exit,"fd_close":_fd_close,"fd_read":_fd_read,"fd_seek":_fd_seek,"fd_write":_fd_write,"getTempRet0":_getTempRet0,"getaddrinfo":_getaddrinfo,"invoke_i":invoke_i,"invoke_iddii":invoke_iddii,"invoke_idii":invoke_idii,"invoke_ii":invoke_ii,"invoke_iid":invoke_iid,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiiiiiiiijjji":invoke_iiiiiiiiiiiiijjji,"invoke_iiji":invoke_iiji,"invoke_jii":invoke_jii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viii":invoke_viii,"invoke_viiii":invoke_viiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"memory":wasmMemory,"setTempRet0":_setTempRet0,"strftime":_strftime,"strftime_l":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _GDALAllRegister=Module["_GDALAllRegister"]=function(){return(_GDALAllRegister=Module["_GDALAllRegister"]=Module["asm"]["GDALAllRegister"]).apply(null,arguments)};var _GDALGetRasterXSize=Module["_GDALGetRasterXSize"]=function(){return(_GDALGetRasterXSize=Module["_GDALGetRasterXSize"]=Module["asm"]["GDALGetRasterXSize"]).apply(null,arguments)};var _GDALGetRasterYSize=Module["_GDALGetRasterYSize"]=function(){return(_GDALGetRasterYSize=Module["_GDALGetRasterYSize"]=Module["asm"]["GDALGetRasterYSize"]).apply(null,arguments)};var _GDALGetRasterBand=Module["_GDALGetRasterBand"]=function(){return(_GDALGetRasterBand=Module["_GDALGetRasterBand"]=Module["asm"]["GDALGetRasterBand"]).apply(null,arguments)};var _GDALGetRasterCount=Module["_GDALGetRasterCount"]=function(){return(_GDALGetRasterCount=Module["_GDALGetRasterCount"]=Module["asm"]["GDALGetRasterCount"]).apply(null,arguments)};var _GDALGetProjectionRef=Module["_GDALGetProjectionRef"]=function(){return(_GDALGetProjectionRef=Module["_GDALGetProjectionRef"]=Module["asm"]["GDALGetProjectionRef"]).apply(null,arguments)};var _GDALSetProjection=Module["_GDALSetProjection"]=function(){return(_GDALSetProjection=Module["_GDALSetProjection"]=Module["asm"]["GDALSetProjection"]).apply(null,arguments)};var _GDALGetGeoTransform=Module["_GDALGetGeoTransform"]=function(){return(_GDALGetGeoTransform=Module["_GDALGetGeoTransform"]=Module["asm"]["GDALGetGeoTransform"]).apply(null,arguments)};var _GDALSetGeoTransform=Module["_GDALSetGeoTransform"]=function(){return(_GDALSetGeoTransform=Module["_GDALSetGeoTransform"]=Module["asm"]["GDALSetGeoTransform"]).apply(null,arguments)};var _GDALOpen=Module["_GDALOpen"]=function(){return(_GDALOpen=Module["_GDALOpen"]=Module["asm"]["GDALOpen"]).apply(null,arguments)};var _GDALOpenEx=Module["_GDALOpenEx"]=function(){return(_GDALOpenEx=Module["_GDALOpenEx"]=Module["asm"]["GDALOpenEx"]).apply(null,arguments)};var _GDALClose=Module["_GDALClose"]=function(){return(_GDALClose=Module["_GDALClose"]=Module["asm"]["GDALClose"]).apply(null,arguments)};var _GDALDatasetGetLayerCount=Module["_GDALDatasetGetLayerCount"]=function(){return(_GDALDatasetGetLayerCount=Module["_GDALDatasetGetLayerCount"]=Module["asm"]["GDALDatasetGetLayerCount"]).apply(null,arguments)};var _GDALDatasetGetLayer=Module["_GDALDatasetGetLayer"]=function(){return(_GDALDatasetGetLayer=Module["_GDALDatasetGetLayer"]=Module["asm"]["GDALDatasetGetLayer"]).apply(null,arguments)};var _GDALDatasetGetLayerByName=Module["_GDALDatasetGetLayerByName"]=function(){return(_GDALDatasetGetLayerByName=Module["_GDALDatasetGetLayerByName"]=Module["asm"]["GDALDatasetGetLayerByName"]).apply(null,arguments)};var _GDALDatasetExecuteSQL=Module["_GDALDatasetExecuteSQL"]=function(){return(_GDALDatasetExecuteSQL=Module["_GDALDatasetExecuteSQL"]=Module["asm"]["GDALDatasetExecuteSQL"]).apply(null,arguments)};var _GDALCreate=Module["_GDALCreate"]=function(){return(_GDALCreate=Module["_GDALCreate"]=Module["asm"]["GDALCreate"]).apply(null,arguments)};var _GDALCreateCopy=Module["_GDALCreateCopy"]=function(){return(_GDALCreateCopy=Module["_GDALCreateCopy"]=Module["asm"]["GDALCreateCopy"]).apply(null,arguments)};var _GDALGetDriverByName=Module["_GDALGetDriverByName"]=function(){return(_GDALGetDriverByName=Module["_GDALGetDriverByName"]=Module["asm"]["GDALGetDriverByName"]).apply(null,arguments)};var _GDALGetRasterDataType=Module["_GDALGetRasterDataType"]=function(){return(_GDALGetRasterDataType=Module["_GDALGetRasterDataType"]=Module["asm"]["GDALGetRasterDataType"]).apply(null,arguments)};var _GDALGetRasterNoDataValue=Module["_GDALGetRasterNoDataValue"]=function(){return(_GDALGetRasterNoDataValue=Module["_GDALGetRasterNoDataValue"]=Module["asm"]["GDALGetRasterNoDataValue"]).apply(null,arguments)};var _GDALGetRasterMaximum=Module["_GDALGetRasterMaximum"]=function(){return(_GDALGetRasterMaximum=Module["_GDALGetRasterMaximum"]=Module["asm"]["GDALGetRasterMaximum"]).apply(null,arguments)};var _GDALGetRasterMinimum=Module["_GDALGetRasterMinimum"]=function(){return(_GDALGetRasterMinimum=Module["_GDALGetRasterMinimum"]=Module["asm"]["GDALGetRasterMinimum"]).apply(null,arguments)};var _GDALGetRasterStatistics=Module["_GDALGetRasterStatistics"]=function(){return(_GDALGetRasterStatistics=Module["_GDALGetRasterStatistics"]=Module["asm"]["GDALGetRasterStatistics"]).apply(null,arguments)};var _GDALSetCacheMax=Module["_GDALSetCacheMax"]=function(){return(_GDALSetCacheMax=Module["_GDALSetCacheMax"]=Module["asm"]["GDALSetCacheMax"]).apply(null,arguments)};var _CPLError=Module["_CPLError"]=function(){return(_CPLError=Module["_CPLError"]=Module["asm"]["CPLError"]).apply(null,arguments)};var _CPLErrorReset=Module["_CPLErrorReset"]=function(){return(_CPLErrorReset=Module["_CPLErrorReset"]=Module["asm"]["CPLErrorReset"]).apply(null,arguments)};var _CPLGetLastErrorNo=Module["_CPLGetLastErrorNo"]=function(){return(_CPLGetLastErrorNo=Module["_CPLGetLastErrorNo"]=Module["asm"]["CPLGetLastErrorNo"]).apply(null,arguments)};var _CPLGetLastErrorType=Module["_CPLGetLastErrorType"]=function(){return(_CPLGetLastErrorType=Module["_CPLGetLastErrorType"]=Module["asm"]["CPLGetLastErrorType"]).apply(null,arguments)};var _CPLGetLastErrorMsg=Module["_CPLGetLastErrorMsg"]=function(){return(_CPLGetLastErrorMsg=Module["_CPLGetLastErrorMsg"]=Module["asm"]["CPLGetLastErrorMsg"]).apply(null,arguments)};var _CPLQuietErrorHandler=Module["_CPLQuietErrorHandler"]=function(){return(_CPLQuietErrorHandler=Module["_CPLQuietErrorHandler"]=Module["asm"]["CPLQuietErrorHandler"]).apply(null,arguments)};var _CPLSetErrorHandler=Module["_CPLSetErrorHandler"]=function(){return(_CPLSetErrorHandler=Module["_CPLSetErrorHandler"]=Module["asm"]["CPLSetErrorHandler"]).apply(null,arguments)};var _CSLCount=Module["_CSLCount"]=function(){return(_CSLCount=Module["_CSLCount"]=Module["asm"]["CSLCount"]).apply(null,arguments)};var _GDALSieveFilter=Module["_GDALSieveFilter"]=function(){return(_GDALSieveFilter=Module["_GDALSieveFilter"]=Module["asm"]["GDALSieveFilter"]).apply(null,arguments)};var _GDALSuggestedWarpOutput=Module["_GDALSuggestedWarpOutput"]=function(){return(_GDALSuggestedWarpOutput=Module["_GDALSuggestedWarpOutput"]=Module["asm"]["GDALSuggestedWarpOutput"]).apply(null,arguments)};var _GDALGenImgProjTransform=Module["_GDALGenImgProjTransform"]=function(){return(_GDALGenImgProjTransform=Module["_GDALGenImgProjTransform"]=Module["asm"]["GDALGenImgProjTransform"]).apply(null,arguments)};var _GDALCreateGenImgProjTransformer=Module["_GDALCreateGenImgProjTransformer"]=function(){return(_GDALCreateGenImgProjTransformer=Module["_GDALCreateGenImgProjTransformer"]=Module["asm"]["GDALCreateGenImgProjTransformer"]).apply(null,arguments)};var _GDALDestroyGenImgProjTransformer=Module["_GDALDestroyGenImgProjTransformer"]=function(){return(_GDALDestroyGenImgProjTransformer=Module["_GDALDestroyGenImgProjTransformer"]=Module["asm"]["GDALDestroyGenImgProjTransformer"]).apply(null,arguments)};var _GDALReprojectImage=Module["_GDALReprojectImage"]=function(){return(_GDALReprojectImage=Module["_GDALReprojectImage"]=Module["asm"]["GDALReprojectImage"]).apply(null,arguments)};var _GDALPolygonize=Module["_GDALPolygonize"]=function(){return(_GDALPolygonize=Module["_GDALPolygonize"]=Module["asm"]["GDALPolygonize"]).apply(null,arguments)};var _GDALFPolygonize=Module["_GDALFPolygonize"]=function(){return(_GDALFPolygonize=Module["_GDALFPolygonize"]=Module["asm"]["GDALFPolygonize"]).apply(null,arguments)};var _GDALTranslate=Module["_GDALTranslate"]=function(){return(_GDALTranslate=Module["_GDALTranslate"]=Module["asm"]["GDALTranslate"]).apply(null,arguments)};var _GDALTranslateOptionsFree=Module["_GDALTranslateOptionsFree"]=function(){return(_GDALTranslateOptionsFree=Module["_GDALTranslateOptionsFree"]=Module["asm"]["GDALTranslateOptionsFree"]).apply(null,arguments)};var _GDALTranslateOptionsNew=Module["_GDALTranslateOptionsNew"]=function(){return(_GDALTranslateOptionsNew=Module["_GDALTranslateOptionsNew"]=Module["asm"]["GDALTranslateOptionsNew"]).apply(null,arguments)};var _GDALWarp=Module["_GDALWarp"]=function(){return(_GDALWarp=Module["_GDALWarp"]=Module["asm"]["GDALWarp"]).apply(null,arguments)};var _GDALWarpAppOptionsNew=Module["_GDALWarpAppOptionsNew"]=function(){return(_GDALWarpAppOptionsNew=Module["_GDALWarpAppOptionsNew"]=Module["asm"]["GDALWarpAppOptionsNew"]).apply(null,arguments)};var _GDALWarpAppOptionsFree=Module["_GDALWarpAppOptionsFree"]=function(){return(_GDALWarpAppOptionsFree=Module["_GDALWarpAppOptionsFree"]=Module["asm"]["GDALWarpAppOptionsFree"]).apply(null,arguments)};var _GDALWarpAppOptionsSetProgress=Module["_GDALWarpAppOptionsSetProgress"]=function(){return(_GDALWarpAppOptionsSetProgress=Module["_GDALWarpAppOptionsSetProgress"]=Module["asm"]["GDALWarpAppOptionsSetProgress"]).apply(null,arguments)};var _GDALVectorTranslate=Module["_GDALVectorTranslate"]=function(){return(_GDALVectorTranslate=Module["_GDALVectorTranslate"]=Module["asm"]["GDALVectorTranslate"]).apply(null,arguments)};var _GDALVectorTranslateOptionsFree=Module["_GDALVectorTranslateOptionsFree"]=function(){return(_GDALVectorTranslateOptionsFree=Module["_GDALVectorTranslateOptionsFree"]=Module["asm"]["GDALVectorTranslateOptionsFree"]).apply(null,arguments)};var _GDALVectorTranslateOptionsNew=Module["_GDALVectorTranslateOptionsNew"]=function(){return(_GDALVectorTranslateOptionsNew=Module["_GDALVectorTranslateOptionsNew"]=Module["asm"]["GDALVectorTranslateOptionsNew"]).apply(null,arguments)};var _GDALVectorTranslateOptionsSetProgress=Module["_GDALVectorTranslateOptionsSetProgress"]=function(){return(_GDALVectorTranslateOptionsSetProgress=Module["_GDALVectorTranslateOptionsSetProgress"]=Module["asm"]["GDALVectorTranslateOptionsSetProgress"]).apply(null,arguments)};var _GDALDEMProcessing=Module["_GDALDEMProcessing"]=function(){return(_GDALDEMProcessing=Module["_GDALDEMProcessing"]=Module["asm"]["GDALDEMProcessing"]).apply(null,arguments)};var _GDALDEMProcessingOptionsNew=Module["_GDALDEMProcessingOptionsNew"]=function(){return(_GDALDEMProcessingOptionsNew=Module["_GDALDEMProcessingOptionsNew"]=Module["asm"]["GDALDEMProcessingOptionsNew"]).apply(null,arguments)};var _GDALDEMProcessingOptionsFree=Module["_GDALDEMProcessingOptionsFree"]=function(){return(_GDALDEMProcessingOptionsFree=Module["_GDALDEMProcessingOptionsFree"]=Module["asm"]["GDALDEMProcessingOptionsFree"]).apply(null,arguments)};var _GDALRasterize=Module["_GDALRasterize"]=function(){return(_GDALRasterize=Module["_GDALRasterize"]=Module["asm"]["GDALRasterize"]).apply(null,arguments)};var _GDALRasterizeOptionsNew=Module["_GDALRasterizeOptionsNew"]=function(){return(_GDALRasterizeOptionsNew=Module["_GDALRasterizeOptionsNew"]=Module["asm"]["GDALRasterizeOptionsNew"]).apply(null,arguments)};var _GDALRasterizeOptionsFree=Module["_GDALRasterizeOptionsFree"]=function(){return(_GDALRasterizeOptionsFree=Module["_GDALRasterizeOptionsFree"]=Module["asm"]["GDALRasterizeOptionsFree"]).apply(null,arguments)};var _GDALBuildVRT=Module["_GDALBuildVRT"]=function(){return(_GDALBuildVRT=Module["_GDALBuildVRT"]=Module["asm"]["GDALBuildVRT"]).apply(null,arguments)};var _GDALBuildVRTOptionsFree=Module["_GDALBuildVRTOptionsFree"]=function(){return(_GDALBuildVRTOptionsFree=Module["_GDALBuildVRTOptionsFree"]=Module["asm"]["GDALBuildVRTOptionsFree"]).apply(null,arguments)};var _GDALBuildVRTOptionsNew=Module["_GDALBuildVRTOptionsNew"]=function(){return(_GDALBuildVRTOptionsNew=Module["_GDALBuildVRTOptionsNew"]=Module["asm"]["GDALBuildVRTOptionsNew"]).apply(null,arguments)};var _OGR_G_ExportToKML=Module["_OGR_G_ExportToKML"]=function(){return(_OGR_G_ExportToKML=Module["_OGR_G_ExportToKML"]=Module["asm"]["OGR_G_ExportToKML"]).apply(null,arguments)};var _OGR_G_ExportToJson=Module["_OGR_G_ExportToJson"]=function(){return(_OGR_G_ExportToJson=Module["_OGR_G_ExportToJson"]=Module["asm"]["OGR_G_ExportToJson"]).apply(null,arguments)};var _OGR_G_ExportToJsonEx=Module["_OGR_G_ExportToJsonEx"]=function(){return(_OGR_G_ExportToJsonEx=Module["_OGR_G_ExportToJsonEx"]=Module["asm"]["OGR_G_ExportToJsonEx"]).apply(null,arguments)};var _OGR_L_GetExtent=Module["_OGR_L_GetExtent"]=function(){return(_OGR_L_GetExtent=Module["_OGR_L_GetExtent"]=Module["asm"]["OGR_L_GetExtent"]).apply(null,arguments)};var _OGR_L_GetNextFeature=Module["_OGR_L_GetNextFeature"]=function(){return(_OGR_L_GetNextFeature=Module["_OGR_L_GetNextFeature"]=Module["asm"]["OGR_L_GetNextFeature"]).apply(null,arguments)};var _OGR_L_GetLayerDefn=Module["_OGR_L_GetLayerDefn"]=function(){return(_OGR_L_GetLayerDefn=Module["_OGR_L_GetLayerDefn"]=Module["asm"]["OGR_L_GetLayerDefn"]).apply(null,arguments)};var _OGR_L_ResetReading=Module["_OGR_L_ResetReading"]=function(){return(_OGR_L_ResetReading=Module["_OGR_L_ResetReading"]=Module["asm"]["OGR_L_ResetReading"]).apply(null,arguments)};var _OGR_L_GetName=Module["_OGR_L_GetName"]=function(){return(_OGR_L_GetName=Module["_OGR_L_GetName"]=Module["asm"]["OGR_L_GetName"]).apply(null,arguments)};var _OGR_G_Intersects=Module["_OGR_G_Intersects"]=function(){return(_OGR_G_Intersects=Module["_OGR_G_Intersects"]=Module["asm"]["OGR_G_Intersects"]).apply(null,arguments)};var _OGR_G_Transform=Module["_OGR_G_Transform"]=function(){return(_OGR_G_Transform=Module["_OGR_G_Transform"]=Module["asm"]["OGR_G_Transform"]).apply(null,arguments)};var _OGR_G_Set3D=Module["_OGR_G_Set3D"]=function(){return(_OGR_G_Set3D=Module["_OGR_G_Set3D"]=Module["asm"]["OGR_G_Set3D"]).apply(null,arguments)};var _OGR_G_SetMeasured=Module["_OGR_G_SetMeasured"]=function(){return(_OGR_G_SetMeasured=Module["_OGR_G_SetMeasured"]=Module["asm"]["OGR_G_SetMeasured"]).apply(null,arguments)};var _OGR_G_GetEnvelope=Module["_OGR_G_GetEnvelope"]=function(){return(_OGR_G_GetEnvelope=Module["_OGR_G_GetEnvelope"]=Module["asm"]["OGR_G_GetEnvelope"]).apply(null,arguments)};var _OGR_G_ExportToWkb=Module["_OGR_G_ExportToWkb"]=function(){return(_OGR_G_ExportToWkb=Module["_OGR_G_ExportToWkb"]=Module["asm"]["OGR_G_ExportToWkb"]).apply(null,arguments)};var _OGR_G_ExportToWkt=Module["_OGR_G_ExportToWkt"]=function(){return(_OGR_G_ExportToWkt=Module["_OGR_G_ExportToWkt"]=Module["asm"]["OGR_G_ExportToWkt"]).apply(null,arguments)};var _OGR_G_GetGeometryType=Module["_OGR_G_GetGeometryType"]=function(){return(_OGR_G_GetGeometryType=Module["_OGR_G_GetGeometryType"]=Module["asm"]["OGR_G_GetGeometryType"]).apply(null,arguments)};var _OGR_G_GetSpatialReference=Module["_OGR_G_GetSpatialReference"]=function(){return(_OGR_G_GetSpatialReference=Module["_OGR_G_GetSpatialReference"]=Module["asm"]["OGR_G_GetSpatialReference"]).apply(null,arguments)};var _OGR_G_Touches=Module["_OGR_G_Touches"]=function(){return(_OGR_G_Touches=Module["_OGR_G_Touches"]=Module["asm"]["OGR_G_Touches"]).apply(null,arguments)};var _OGR_G_Within=Module["_OGR_G_Within"]=function(){return(_OGR_G_Within=Module["_OGR_G_Within"]=Module["asm"]["OGR_G_Within"]).apply(null,arguments)};var _OGR_G_Simplify=Module["_OGR_G_Simplify"]=function(){return(_OGR_G_Simplify=Module["_OGR_G_Simplify"]=Module["asm"]["OGR_G_Simplify"]).apply(null,arguments)};var _OGR_G_GetPointCount=Module["_OGR_G_GetPointCount"]=function(){return(_OGR_G_GetPointCount=Module["_OGR_G_GetPointCount"]=Module["asm"]["OGR_G_GetPointCount"]).apply(null,arguments)};var _OGR_G_GetX=Module["_OGR_G_GetX"]=function(){return(_OGR_G_GetX=Module["_OGR_G_GetX"]=Module["asm"]["OGR_G_GetX"]).apply(null,arguments)};var _OGR_G_GetY=Module["_OGR_G_GetY"]=function(){return(_OGR_G_GetY=Module["_OGR_G_GetY"]=Module["asm"]["OGR_G_GetY"]).apply(null,arguments)};var _OGR_G_GetPoints=Module["_OGR_G_GetPoints"]=function(){return(_OGR_G_GetPoints=Module["_OGR_G_GetPoints"]=Module["asm"]["OGR_G_GetPoints"]).apply(null,arguments)};var _OGR_G_GetPoint=Module["_OGR_G_GetPoint"]=function(){return(_OGR_G_GetPoint=Module["_OGR_G_GetPoint"]=Module["asm"]["OGR_G_GetPoint"]).apply(null,arguments)};var _OGR_F_Destroy=Module["_OGR_F_Destroy"]=function(){return(_OGR_F_Destroy=Module["_OGR_F_Destroy"]=Module["asm"]["OGR_F_Destroy"]).apply(null,arguments)};var _OGR_F_GetGeometryRef=Module["_OGR_F_GetGeometryRef"]=function(){return(_OGR_F_GetGeometryRef=Module["_OGR_F_GetGeometryRef"]=Module["asm"]["OGR_F_GetGeometryRef"]).apply(null,arguments)};var _OGR_F_GetFieldAsInteger=Module["_OGR_F_GetFieldAsInteger"]=function(){return(_OGR_F_GetFieldAsInteger=Module["_OGR_F_GetFieldAsInteger"]=Module["asm"]["OGR_F_GetFieldAsInteger"]).apply(null,arguments)};var _OGR_F_GetFieldAsInteger64=Module["_OGR_F_GetFieldAsInteger64"]=function(){return(_OGR_F_GetFieldAsInteger64=Module["_OGR_F_GetFieldAsInteger64"]=Module["asm"]["OGR_F_GetFieldAsInteger64"]).apply(null,arguments)};var _OGR_F_GetFieldAsDouble=Module["_OGR_F_GetFieldAsDouble"]=function(){return(_OGR_F_GetFieldAsDouble=Module["_OGR_F_GetFieldAsDouble"]=Module["asm"]["OGR_F_GetFieldAsDouble"]).apply(null,arguments)};var _OGR_F_GetFieldAsString=Module["_OGR_F_GetFieldAsString"]=function(){return(_OGR_F_GetFieldAsString=Module["_OGR_F_GetFieldAsString"]=Module["asm"]["OGR_F_GetFieldAsString"]).apply(null,arguments)};var _OGR_F_GetFieldAsIntegerList=Module["_OGR_F_GetFieldAsIntegerList"]=function(){return(_OGR_F_GetFieldAsIntegerList=Module["_OGR_F_GetFieldAsIntegerList"]=Module["asm"]["OGR_F_GetFieldAsIntegerList"]).apply(null,arguments)};var _OGR_F_GetFieldAsInteger64List=Module["_OGR_F_GetFieldAsInteger64List"]=function(){return(_OGR_F_GetFieldAsInteger64List=Module["_OGR_F_GetFieldAsInteger64List"]=Module["asm"]["OGR_F_GetFieldAsInteger64List"]).apply(null,arguments)};var _OGR_F_GetFieldAsDoubleList=Module["_OGR_F_GetFieldAsDoubleList"]=function(){return(_OGR_F_GetFieldAsDoubleList=Module["_OGR_F_GetFieldAsDoubleList"]=Module["asm"]["OGR_F_GetFieldAsDoubleList"]).apply(null,arguments)};var _OGR_F_GetFieldAsStringList=Module["_OGR_F_GetFieldAsStringList"]=function(){return(_OGR_F_GetFieldAsStringList=Module["_OGR_F_GetFieldAsStringList"]=Module["asm"]["OGR_F_GetFieldAsStringList"]).apply(null,arguments)};var _OGR_F_GetFieldAsBinary=Module["_OGR_F_GetFieldAsBinary"]=function(){return(_OGR_F_GetFieldAsBinary=Module["_OGR_F_GetFieldAsBinary"]=Module["asm"]["OGR_F_GetFieldAsBinary"]).apply(null,arguments)};var _OGR_F_GetFieldAsDateTime=Module["_OGR_F_GetFieldAsDateTime"]=function(){return(_OGR_F_GetFieldAsDateTime=Module["_OGR_F_GetFieldAsDateTime"]=Module["asm"]["OGR_F_GetFieldAsDateTime"]).apply(null,arguments)};var _OGR_F_GetFieldAsDateTimeEx=Module["_OGR_F_GetFieldAsDateTimeEx"]=function(){return(_OGR_F_GetFieldAsDateTimeEx=Module["_OGR_F_GetFieldAsDateTimeEx"]=Module["asm"]["OGR_F_GetFieldAsDateTimeEx"]).apply(null,arguments)};var _OGR_FD_GetFieldCount=Module["_OGR_FD_GetFieldCount"]=function(){return(_OGR_FD_GetFieldCount=Module["_OGR_FD_GetFieldCount"]=Module["asm"]["OGR_FD_GetFieldCount"]).apply(null,arguments)};var _OGR_FD_GetFieldDefn=Module["_OGR_FD_GetFieldDefn"]=function(){return(_OGR_FD_GetFieldDefn=Module["_OGR_FD_GetFieldDefn"]=Module["asm"]["OGR_FD_GetFieldDefn"]).apply(null,arguments)};var _OGR_Fld_GetNameRef=Module["_OGR_Fld_GetNameRef"]=function(){return(_OGR_Fld_GetNameRef=Module["_OGR_Fld_GetNameRef"]=Module["asm"]["OGR_Fld_GetNameRef"]).apply(null,arguments)};var _OGR_Fld_GetType=Module["_OGR_Fld_GetType"]=function(){return(_OGR_Fld_GetType=Module["_OGR_Fld_GetType"]=Module["asm"]["OGR_Fld_GetType"]).apply(null,arguments)};var _OSRNewSpatialReference=Module["_OSRNewSpatialReference"]=function(){return(_OSRNewSpatialReference=Module["_OSRNewSpatialReference"]=Module["asm"]["OSRNewSpatialReference"]).apply(null,arguments)};var _OSRDestroySpatialReference=Module["_OSRDestroySpatialReference"]=function(){return(_OSRDestroySpatialReference=Module["_OSRDestroySpatialReference"]=Module["asm"]["OSRDestroySpatialReference"]).apply(null,arguments)};var _OSRImportFromEPSG=Module["_OSRImportFromEPSG"]=function(){return(_OSRImportFromEPSG=Module["_OSRImportFromEPSG"]=Module["asm"]["OSRImportFromEPSG"]).apply(null,arguments)};var _OCTDestroyCoordinateTransformation=Module["_OCTDestroyCoordinateTransformation"]=function(){return(_OCTDestroyCoordinateTransformation=Module["_OCTDestroyCoordinateTransformation"]=Module["asm"]["OCTDestroyCoordinateTransformation"]).apply(null,arguments)};var _OCTNewCoordinateTransformation=Module["_OCTNewCoordinateTransformation"]=function(){return(_OCTNewCoordinateTransformation=Module["_OCTNewCoordinateTransformation"]=Module["asm"]["OCTNewCoordinateTransformation"]).apply(null,arguments)};var _OCTTransform=Module["_OCTTransform"]=function(){return(_OCTTransform=Module["_OCTTransform"]=Module["asm"]["OCTTransform"]).apply(null,arguments)};var _OGR_G_ExportToGML=Module["_OGR_G_ExportToGML"]=function(){return(_OGR_G_ExportToGML=Module["_OGR_G_ExportToGML"]=Module["asm"]["OGR_G_ExportToGML"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var ___dl_seterr=Module["___dl_seterr"]=function(){return(___dl_seterr=Module["___dl_seterr"]=Module["asm"]["__dl_seterr"]).apply(null,arguments)};var _htonl=Module["_htonl"]=function(){return(_htonl=Module["_htonl"]=Module["asm"]["htonl"]).apply(null,arguments)};var _htons=Module["_htons"]=function(){return(_htons=Module["_htons"]=Module["asm"]["htons"]).apply(null,arguments)};var _ntohs=Module["_ntohs"]=function(){return(_ntohs=Module["_ntohs"]=Module["asm"]["ntohs"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var _emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=function(){return(_emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=Module["asm"]["emscripten_builtin_memalign"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["__cxa_is_pointer_type"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["dynCall_jiji"]).apply(null,arguments)};var dynCall_iiji=Module["dynCall_iiji"]=function(){return(dynCall_iiji=Module["dynCall_iiji"]=Module["asm"]["dynCall_iiji"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["dynCall_ji"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["dynCall_iij"]).apply(null,arguments)};var dynCall_iijj=Module["dynCall_iijj"]=function(){return(dynCall_iijj=Module["dynCall_iijj"]=Module["asm"]["dynCall_iijj"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["dynCall_jii"]).apply(null,arguments)};var dynCall_iiiji=Module["dynCall_iiiji"]=function(){return(dynCall_iiiji=Module["dynCall_iiiji"]=Module["asm"]["dynCall_iiiji"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiijjji=Module["dynCall_iiiiiiiiiiiiijjji"]=function(){return(dynCall_iiiiiiiiiiiiijjji=Module["dynCall_iiiiiiiiiiiiijjji"]=Module["asm"]["dynCall_iiiiiiiiiiiiijjji"]).apply(null,arguments)};var dynCall_iiiiiiiiiiijji=Module["dynCall_iiiiiiiiiiijji"]=function(){return(dynCall_iiiiiiiiiiijji=Module["dynCall_iiiiiiiiiiijji"]=Module["asm"]["dynCall_iiiiiiiiiiijji"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["dynCall_iiij"]).apply(null,arguments)};var dynCall_jij=Module["dynCall_jij"]=function(){return(dynCall_jij=Module["dynCall_jij"]=Module["asm"]["dynCall_jij"]).apply(null,arguments)};var dynCall_viij=Module["dynCall_viij"]=function(){return(dynCall_viij=Module["dynCall_viij"]=Module["asm"]["dynCall_viij"]).apply(null,arguments)};var dynCall_jijji=Module["dynCall_jijji"]=function(){return(dynCall_jijji=Module["dynCall_jijji"]=Module["asm"]["dynCall_jijji"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["dynCall_iiiiij"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["dynCall_iiiiijj"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["dynCall_iiiiiijj"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["dynCall_viijii"]).apply(null,arguments)};var dynCall_viijj=Module["dynCall_viijj"]=function(){return(dynCall_viijj=Module["dynCall_viijj"]=Module["asm"]["dynCall_viijj"]).apply(null,arguments)};var dynCall_viijjji=Module["dynCall_viijjji"]=function(){return(dynCall_viijjji=Module["dynCall_viijjji"]=Module["asm"]["dynCall_viijjji"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["dynCall_vij"]).apply(null,arguments)};var dynCall_jiiji=Module["dynCall_jiiji"]=function(){return(dynCall_jiiji=Module["dynCall_jiiji"]=Module["asm"]["dynCall_jiiji"]).apply(null,arguments)};var dynCall_jiijji=Module["dynCall_jiijji"]=function(){return(dynCall_jiijji=Module["dynCall_jiijji"]=Module["asm"]["dynCall_jiijji"]).apply(null,arguments)};var dynCall_iiiijii=Module["dynCall_iiiijii"]=function(){return(dynCall_iiiijii=Module["dynCall_iiiijii"]=Module["asm"]["dynCall_iiiijii"]).apply(null,arguments)};var _orig$OGR_F_GetFieldAsInteger64=Module["_orig$OGR_F_GetFieldAsInteger64"]=function(){return(_orig$OGR_F_GetFieldAsInteger64=Module["_orig$OGR_F_GetFieldAsInteger64"]=Module["asm"]["orig$OGR_F_GetFieldAsInteger64"]).apply(null,arguments)};function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iddii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiji(index,a1,a2,a3,a4){var sp=stackSave();try{return Module["dynCall_iiji"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jii(index,a1,a2){var sp=stackSave();try{return Module["dynCall_jii"](index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiiijjji(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19){var sp=stackSave();try{return Module["dynCall_iiiiiiiiiiiiijjji"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["allocate"]=allocate;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;Module["addFunction"]=addFunction;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];if(!entryFunction)return;args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}var dylibsLoaded=false;function run(args){args=args||arguments_;if(runDependencies>0){return}if(!dylibsLoaded){preloadDylibs();dylibsLoaded=true;if(runDependencies>0){return}}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/dist/spa/gdal.wasm b/dist/spa/gdal.wasm new file mode 100644 index 0000000..bb3935d Binary files /dev/null and b/dist/spa/gdal.wasm differ diff --git a/dist/spa/gdalWorker.js b/dist/spa/gdalWorker.js new file mode 100644 index 0000000..0d7f672 --- /dev/null +++ b/dist/spa/gdalWorker.js @@ -0,0 +1,176 @@ +/* + * Setup + */ +let TIFFPATH = '/tiffs'; +let PNGPATH = '/pngs'; + +let initialized = false; + +let GDALOpen, + GDALClose, + GDALGetRasterCount, + GDALTranslate, + GDALTranslateOptionsNew, + GDALTranslateOptionsFree, + GDALGetRasterMaximum, + GDALGetRasterBand, + GDALGetRasterMinimum, + GDALGetRasterStatistics, + CSLCount; + +// Set up Module object for gdal.js to populate. Emscripten sets up its compiled +// code to look for a Module object in the global scope. If found, it reads runtime +// configuration from the existing object, and then further populates that object +// with other helpful functionality (e.g. ccall() and cwrap(), which are used in +// the onRuntimeInitialized callback, below). +var Module = { + 'print': function(text) { console.log('stdout: ' + text); }, + 'printErr': function(text) { console.log('stderr: ' + text); }, + // Optimized builds contain a .js.mem file which is loaded asynchronously; + // this waits until that has finished before performing further setup. + 'onRuntimeInitialized': function() { + // Initialize GDAL + Module.ccall('GDALAllRegister', null, [], []); + + // Set up JS proxy functions + // Note that JS Number types are used to represent pointers, which means that + // any time we want to pass a pointer to an object, such as in GDALOpen, which in + // C returns a pointer to a GDALDataset, we need to use 'number'. + GDALOpen = Module.cwrap('GDALOpen', 'number', ['string']); + GDALClose = Module.cwrap('GDALClose', 'number', ['number']); + GDALGetRasterCount = Module.cwrap('GDALGetRasterCount', 'number', ['number']); + GDALGetRasterMinimum = Module.cwrap('GDALGetRasterMinimum', 'number', [ + 'number', // GDALRasterBandH + 'number', // int * success + ]); + GDALGetRasterMaximum = Module.cwrap('GDALGetRasterMaximum', 'number', [ + 'number', // GDALRasterBandH + 'number', // int * success + ]); + GDALGetRasterBand = Module.cwrap('GDALGetRasterBand', 'number', [ + 'number', // GDALDatasetH + 'number' // int band number (1-indexed) + ]); + GDALGetRasterStatistics = Module.cwrap('GDALGetRasterStatistics', 'number', [ + 'number', // GDALRasterBandH + 'number', // int approximations okay? + 'number', // int force? + 'number', // double * min + 'number', // double * max + 'number', // double * mean + 'number', // double * stddev + ]) + // Params: + // 1. Output path + // 2. Pointer to a GDALDataset + // 3. Pointer to a GDALTranslateOptions + // 4. Int to use for error reporting + // Returns a pointer to a new GDAL Dataset + GDALTranslate = Module.cwrap('GDALTranslate', 'number', ['string', 'number', 'number', 'number']); + // Params: array of option strings as to gdal_translate; pointer to a struct that should be null. + GDALTranslateOptionsNew = Module.cwrap('GDALTranslateOptionsNew', 'number', ['number', 'number']); + GDALTranslateOptionsFree = Module.cwrap('GDALTranslateOptionsFree', 'number', ['number']); + + CSLCount = Module.cwrap('CSLCount', 'number', ['number']); + // Create a "directory" where user-selected files will be placed + FS.mkdir(TIFFPATH); + FS.mkdir(PNGPATH); + initialized = true; + } +}; + +// Load gdal.js. This will populate the Module object, and then call +// Module.onRuntimeInitialized() when it is ready for user code to interact with it. +importScripts('gdal.js'); + +/* + * Logic + */ +// Use GDAL functions to translate file into PNG format +// @param files a FileList object as returned by a file input's .files field +function translateTiff(data) { + let files = data.files + let translateOptions = data.translateOptions + // Make GeoTiffs available to GDAL in the virtual filesystem that it lives inside + FS.mount(WORKERFS, { + files: files + }, TIFFPATH); + + // Create a GDAL Dataset + // TODO: Dynamically adjust Module['TOTAL_MEMORY'] based on incoming file size + let dataset = GDALOpen(TIFFPATH + '/' + files[0].name); + let bandCount = GDALGetRasterCount(dataset); + // let band = GDALGetRasterBand(dataset, 4); + // let newMax = GDALGetRasterMaximum(band,null); + // console.log('Band count', bandCount); + // console.log('newMax', newMax); + // TODO: Dynamically adjust the band output based on the band count + // Things get a bit ugly passing string arrays to C++ functions. Bear with me. + + translateOptions = data.translateOptions + // Dynamically adjust band output based on availability + for (let i = 1; i <= 3 && i <= bandCount; i++) { + translateOptions.push('-b'); + translateOptions.push(i.toString()); + } + // So first, we need to allocate Emscripten heap space sufficient to store each string + // as a null-terminated C string. + let ptrsArray = translateOptions.map(function(str) { + return Module._malloc(Module.lengthBytesUTF8(str) + 1); // +1 for the null terminator byte + }); + + // In addition to each individual argument being null-terminated, the GDAL docs specify that + // GDALTranslateOptionsNew take its options passed in as a null-terminated array of pointers, + // so we have to add on a null (0) byte at the end. + ptrsArray.push(0); + // Because the C function signature is char **, we'll eventually need to get a pointer to the list of + // pointers, so we're going to prepare by storing the pointers as a typed array so that we can + // more easily copy it into heap space later. + let strPtrs = Uint32Array.from(ptrsArray); + + // Next, we need to write each string from the JS string array into the Emscripten heap space + // we've allocated for it. + translateOptions.forEach(function(str, i) { + Module.stringToUTF8(str, strPtrs[i], Module.lengthBytesUTF8(str) + 1); + }); + + // Now, as mentioned above, we also need to copy the pointer array itself into heap space. + let ptrOffset = Module._malloc(strPtrs.length * strPtrs.BYTES_PER_ELEMENT); + Module.HEAPU32.set(strPtrs, ptrOffset/strPtrs.BYTES_PER_ELEMENT); + // Whew, all finished. ptrOffset is now the address of the start of the list of pointers in + // Emscripten heap space. Each pointer identifies the address of the start of a parameter + // string, also stored in heap space. This is the direct equivalent of a char **, which is what + // GDALTranslateOptionsNew requires. + let translateOptionsPtr = GDALTranslateOptionsNew(ptrOffset, null); + // Now that we have our translate options, we need to make a file location to hold the output. + let pngFilePath = PNGPATH + '/thumb.png'; + // And then we can kick off the actual translation process. + let pngDataset = GDALTranslate(pngFilePath, dataset, translateOptionsPtr, null); + + // Close out the output dataset before reading from it. + GDALClose(pngDataset); + // Read the output dataset (which is a PNG image) and send it back to the caller. + postMessage(FS.readFile(pngFilePath, { encoding: 'binary' })); + + // Now cleanup + GDALClose(dataset); + FS.unmount(TIFFPATH); + FS.unlink(pngFilePath); + // TODO this results in "Invalid argument" + //FS.unmount(PNGPATH); + ptrsArray.pop(); // Remove 0 terminator from the end; we don't want to free() this. + strPtrs.forEach(function(ptr) { Module._free(ptr); }); + Module._free(ptrOffset); + + // Deallocate TranslateOptions + GDALTranslateOptionsFree(translateOptionsPtr); +} + +// Assume that all incoming messages are FileLists of GeoTiffs and inspect them. +onmessage = function(msg) { + if (!initialized) { + console.log('Runtime not initialized yet, try again'); + return; + } + translateTiff(msg.data); +}; diff --git a/dist/spa/icon.png b/dist/spa/icon.png new file mode 100644 index 0000000..a7c1c83 Binary files /dev/null and b/dist/spa/icon.png differ diff --git a/dist/spa/icons/favicon-128x128.png b/dist/spa/icons/favicon-128x128.png new file mode 100644 index 0000000..3e5134e Binary files /dev/null and b/dist/spa/icons/favicon-128x128.png differ diff --git a/dist/spa/icons/favicon-16x16.png b/dist/spa/icons/favicon-16x16.png new file mode 100644 index 0000000..2f9930c Binary files /dev/null and b/dist/spa/icons/favicon-16x16.png differ diff --git a/dist/spa/icons/favicon-32x32.png b/dist/spa/icons/favicon-32x32.png new file mode 100644 index 0000000..6b57f76 Binary files /dev/null and b/dist/spa/icons/favicon-32x32.png differ diff --git a/dist/spa/icons/favicon-96x96.png b/dist/spa/icons/favicon-96x96.png new file mode 100644 index 0000000..3ab23ee Binary files /dev/null and b/dist/spa/icons/favicon-96x96.png differ diff --git a/dist/spa/index.html b/dist/spa/index.html new file mode 100644 index 0000000..6881c86 --- /dev/null +++ b/dist/spa/index.html @@ -0,0 +1,3 @@ +Unreal Mapbox Bridge + +
\ No newline at end of file diff --git a/dist/spa/robots.txt b/dist/spa/robots.txt new file mode 100644 index 0000000..c2a49f4 --- /dev/null +++ b/dist/spa/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/dist/spa/thirtytwo-9-82-180.png b/dist/spa/thirtytwo-9-82-180.png new file mode 100644 index 0000000..254bd08 Binary files /dev/null and b/dist/spa/thirtytwo-9-82-180.png differ diff --git a/package-lock.json b/package-lock.json index 5c1bd60..130854c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "unreal-mapbox-bridge", - "version": "2.3.4", + "version": "2.4.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "unreal-mapbox-bridge", - "version": "2.3.4", + "version": "2.4.2", "dependencies": { "@delebash/mapbox-gl-button-control": "^1.0.4", "@mapbox/mapbox-gl-draw": "^1.3.0", @@ -21,13 +21,13 @@ "mapbox-gl-draw-rectangle-mode": "^1.0.4", "mitt": "^3.0.0", "quasar": "^2.10.1", - "vue": "^3.2.41", + "vue": "^3.2.43", "vue-router": "^4.1.6" }, "devDependencies": { "@quasar/app-vite": "^1.1.3", "autoprefixer": "^10.4.13", - "electron": "^21.2.2", + "electron": "^21.2.3", "workbox-build": "^6.5.4", "workbox-cacheable-response": "^6.5.4", "workbox-core": "^6.5.4", @@ -4708,36 +4708,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", - "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.43.tgz", + "integrity": "sha512-YLr9MXkKHFWVVahNWSwISzrcjNPbERDT9Zn0ZyIsHsDslGMV4Jv28X+pDhaVFYt8+Tgy4iNbQMe/5O0oNlhaeQ==", "dependencies": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.41", + "@vue/shared": "3.2.43", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", - "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.43.tgz", + "integrity": "sha512-LIhLMArN4hkRyECQSUB56z/wsF2JdGMDsG06e3ZAJAaNcGaMQLLzhF667hklouTZeHbWVCe8c7qkDPVs21Zu9Q==", "dependencies": { - "@vue/compiler-core": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-core": "3.2.43", + "@vue/shared": "3.2.43" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", - "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.43.tgz", + "integrity": "sha512-YBv94ASxDxTuiE0PvvERs1+Zq9KWAMrZEHpvhVzEJsANJnqqveJ18d0tSvTU6jPlF2BWFQDO3JfiGm7biQd36g==", "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.41", - "@vue/compiler-dom": "3.2.41", - "@vue/compiler-ssr": "3.2.41", - "@vue/reactivity-transform": "3.2.41", - "@vue/shared": "3.2.41", + "@vue/compiler-core": "3.2.43", + "@vue/compiler-dom": "3.2.43", + "@vue/compiler-ssr": "3.2.43", + "@vue/reactivity-transform": "3.2.43", + "@vue/shared": "3.2.43", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -4745,12 +4745,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", - "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.43.tgz", + "integrity": "sha512-IoYbnhaH0WbJ16pxArPTlqbnJ3Bqj5+seTg4AeBvS8HAb0b2EQQw8PpgcyrvzdIOIFq9FLfpWTbixdhVMYofyg==", "dependencies": { - "@vue/compiler-dom": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-dom": "3.2.43", + "@vue/shared": "3.2.43" } }, "node_modules/@vue/devtools-api": { @@ -4759,60 +4759,60 @@ "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" }, "node_modules/@vue/reactivity": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", - "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.43.tgz", + "integrity": "sha512-LzOxeaTZPTpj9qHCArOJXNa73ky8M7g28prqsd7Kxjxvs7i0EmpHEFASoK7QpYyfmIOh/UjJA+0jaD/iMIiRFg==", "dependencies": { - "@vue/shared": "3.2.41" + "@vue/shared": "3.2.43" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", - "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.43.tgz", + "integrity": "sha512-TGRvlD3Y8DTHGKg1VJYOMwC6CbrjNYh3wwUCKtwHSEv0uYdXjyn8r5KtklehP58G+opv6K2DhyBNPNhvSt9ttw==", "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.41", - "@vue/shared": "3.2.41", + "@vue/compiler-core": "3.2.43", + "@vue/shared": "3.2.43", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/runtime-core": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", - "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.43.tgz", + "integrity": "sha512-rLm4b0+mVENn7D42pXL3tNqb7vtQ3Hjy2WThMd9WGlPSJr/BxxbomzUf6V5MBf40Qx698FSJeORZ00hH+jvixw==", "dependencies": { - "@vue/reactivity": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/reactivity": "3.2.43", + "@vue/shared": "3.2.43" } }, "node_modules/@vue/runtime-dom": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", - "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.43.tgz", + "integrity": "sha512-hDxrqUzBrXbIItQ9n5pePVf4itRbNpYh3xt5K+fRYvBu4GXOULoS+DmO77DctvBLwdgBaLMc1aOmKIL1TzRA7g==", "dependencies": { - "@vue/runtime-core": "3.2.41", - "@vue/shared": "3.2.41", + "@vue/runtime-core": "3.2.43", + "@vue/shared": "3.2.43", "csstype": "^2.6.8" } }, "node_modules/@vue/server-renderer": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", - "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.43.tgz", + "integrity": "sha512-T6mXBRCOOu6zJiQxySp5sRzW1P9NhXQXssRJA/KI8N40etGO+rwZgahc8uQvruVQvK56BSru+1kGQeuQ9qliPg==", "dependencies": { - "@vue/compiler-ssr": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-ssr": "3.2.43", + "@vue/shared": "3.2.43" }, "peerDependencies": { - "vue": "3.2.41" + "vue": "3.2.43" } }, "node_modules/@vue/shared": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", - "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.43.tgz", + "integrity": "sha512-zPhXJ0evblbcI3qOwUxliOoH90ecp2J1171RFrHXNC58EzzxXGPJ/X0FyIvuC9SvZNe8wpX4OcWhblPDSwT8Rw==" }, "node_modules/7zip-bin": { "version": "5.1.1", @@ -6714,9 +6714,9 @@ } }, "node_modules/electron": { - "version": "21.2.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-21.2.2.tgz", - "integrity": "sha512-Q0j1tzLTM5JRjSJVAfDSONZgdtuyruHR1pc1y2IbMYQz62pVJWVWAvcJXzpty5iRh2HKzW9+B9WVlmfWNFA8ag==", + "version": "21.2.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-21.2.3.tgz", + "integrity": "sha512-Wyj0ri3P8hnWEvX7+2Q1OtNzJI8Qn4V9J+aeypoXh+wtlX/fjfHxi4vZkos/XRncoIeYCeUZ5nhGjsOIQwSElQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -12768,15 +12768,15 @@ } }, "node_modules/vue": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", - "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.43.tgz", + "integrity": "sha512-rGUDDftb7VF2vLp0LnzcZ6R2tG/4BvMd/qOisZAGSxzsW+FysWtmGIN5c4gduaMWRo+IBrjTRiZD4bLh2FF4lw==", "dependencies": { - "@vue/compiler-dom": "3.2.41", - "@vue/compiler-sfc": "3.2.41", - "@vue/runtime-dom": "3.2.41", - "@vue/server-renderer": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-dom": "3.2.43", + "@vue/compiler-sfc": "3.2.43", + "@vue/runtime-dom": "3.2.43", + "@vue/server-renderer": "3.2.43", + "@vue/shared": "3.2.43" } }, "node_modules/vue-router": { @@ -16852,36 +16852,36 @@ "requires": {} }, "@vue/compiler-core": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", - "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.43.tgz", + "integrity": "sha512-YLr9MXkKHFWVVahNWSwISzrcjNPbERDT9Zn0ZyIsHsDslGMV4Jv28X+pDhaVFYt8+Tgy4iNbQMe/5O0oNlhaeQ==", "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.41", + "@vue/shared": "3.2.43", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } }, "@vue/compiler-dom": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", - "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.43.tgz", + "integrity": "sha512-LIhLMArN4hkRyECQSUB56z/wsF2JdGMDsG06e3ZAJAaNcGaMQLLzhF667hklouTZeHbWVCe8c7qkDPVs21Zu9Q==", "requires": { - "@vue/compiler-core": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-core": "3.2.43", + "@vue/shared": "3.2.43" } }, "@vue/compiler-sfc": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", - "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.43.tgz", + "integrity": "sha512-YBv94ASxDxTuiE0PvvERs1+Zq9KWAMrZEHpvhVzEJsANJnqqveJ18d0tSvTU6jPlF2BWFQDO3JfiGm7biQd36g==", "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.41", - "@vue/compiler-dom": "3.2.41", - "@vue/compiler-ssr": "3.2.41", - "@vue/reactivity-transform": "3.2.41", - "@vue/shared": "3.2.41", + "@vue/compiler-core": "3.2.43", + "@vue/compiler-dom": "3.2.43", + "@vue/compiler-ssr": "3.2.43", + "@vue/reactivity-transform": "3.2.43", + "@vue/shared": "3.2.43", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -16889,12 +16889,12 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", - "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.43.tgz", + "integrity": "sha512-IoYbnhaH0WbJ16pxArPTlqbnJ3Bqj5+seTg4AeBvS8HAb0b2EQQw8PpgcyrvzdIOIFq9FLfpWTbixdhVMYofyg==", "requires": { - "@vue/compiler-dom": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-dom": "3.2.43", + "@vue/shared": "3.2.43" } }, "@vue/devtools-api": { @@ -16903,57 +16903,57 @@ "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" }, "@vue/reactivity": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", - "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.43.tgz", + "integrity": "sha512-LzOxeaTZPTpj9qHCArOJXNa73ky8M7g28prqsd7Kxjxvs7i0EmpHEFASoK7QpYyfmIOh/UjJA+0jaD/iMIiRFg==", "requires": { - "@vue/shared": "3.2.41" + "@vue/shared": "3.2.43" } }, "@vue/reactivity-transform": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", - "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.43.tgz", + "integrity": "sha512-TGRvlD3Y8DTHGKg1VJYOMwC6CbrjNYh3wwUCKtwHSEv0uYdXjyn8r5KtklehP58G+opv6K2DhyBNPNhvSt9ttw==", "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.41", - "@vue/shared": "3.2.41", + "@vue/compiler-core": "3.2.43", + "@vue/shared": "3.2.43", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/runtime-core": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", - "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.43.tgz", + "integrity": "sha512-rLm4b0+mVENn7D42pXL3tNqb7vtQ3Hjy2WThMd9WGlPSJr/BxxbomzUf6V5MBf40Qx698FSJeORZ00hH+jvixw==", "requires": { - "@vue/reactivity": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/reactivity": "3.2.43", + "@vue/shared": "3.2.43" } }, "@vue/runtime-dom": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", - "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.43.tgz", + "integrity": "sha512-hDxrqUzBrXbIItQ9n5pePVf4itRbNpYh3xt5K+fRYvBu4GXOULoS+DmO77DctvBLwdgBaLMc1aOmKIL1TzRA7g==", "requires": { - "@vue/runtime-core": "3.2.41", - "@vue/shared": "3.2.41", + "@vue/runtime-core": "3.2.43", + "@vue/shared": "3.2.43", "csstype": "^2.6.8" } }, "@vue/server-renderer": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", - "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.43.tgz", + "integrity": "sha512-T6mXBRCOOu6zJiQxySp5sRzW1P9NhXQXssRJA/KI8N40etGO+rwZgahc8uQvruVQvK56BSru+1kGQeuQ9qliPg==", "requires": { - "@vue/compiler-ssr": "3.2.41", - "@vue/shared": "3.2.41" + "@vue/compiler-ssr": "3.2.43", + "@vue/shared": "3.2.43" } }, "@vue/shared": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", - "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.43.tgz", + "integrity": "sha512-zPhXJ0evblbcI3qOwUxliOoH90ecp2J1171RFrHXNC58EzzxXGPJ/X0FyIvuC9SvZNe8wpX4OcWhblPDSwT8Rw==" }, "7zip-bin": { "version": "5.1.1", @@ -18402,9 +18402,9 @@ } }, "electron": { - "version": "21.2.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-21.2.2.tgz", - "integrity": "sha512-Q0j1tzLTM5JRjSJVAfDSONZgdtuyruHR1pc1y2IbMYQz62pVJWVWAvcJXzpty5iRh2HKzW9+B9WVlmfWNFA8ag==", + "version": "21.2.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-21.2.3.tgz", + "integrity": "sha512-Wyj0ri3P8hnWEvX7+2Q1OtNzJI8Qn4V9J+aeypoXh+wtlX/fjfHxi4vZkos/XRncoIeYCeUZ5nhGjsOIQwSElQ==", "dev": true, "requires": { "@electron/get": "^1.14.1", @@ -23021,15 +23021,15 @@ } }, "vue": { - "version": "3.2.41", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", - "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", - "requires": { - "@vue/compiler-dom": "3.2.41", - "@vue/compiler-sfc": "3.2.41", - "@vue/runtime-dom": "3.2.41", - "@vue/server-renderer": "3.2.41", - "@vue/shared": "3.2.41" + "version": "3.2.43", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.43.tgz", + "integrity": "sha512-rGUDDftb7VF2vLp0LnzcZ6R2tG/4BvMd/qOisZAGSxzsW+FysWtmGIN5c4gduaMWRo+IBrjTRiZD4bLh2FF4lw==", + "requires": { + "@vue/compiler-dom": "3.2.43", + "@vue/compiler-sfc": "3.2.43", + "@vue/runtime-dom": "3.2.43", + "@vue/server-renderer": "3.2.43", + "@vue/shared": "3.2.43" } }, "vue-router": { diff --git a/package.json b/package.json index f2bab7d..16c8025 100644 --- a/package.json +++ b/package.json @@ -32,13 +32,13 @@ "mapbox-gl-draw-rectangle-mode": "^1.0.4", "mitt": "^3.0.0", "quasar": "^2.10.1", - "vue": "^3.2.41", + "vue": "^3.2.43", "vue-router": "^4.1.6" }, "devDependencies": { "@quasar/app-vite": "^1.1.3", "autoprefixer": "^10.4.13", - "electron": "^21.2.2", + "electron": "^21.2.3", "workbox-build": "^6.5.4", "workbox-cacheable-response": "^6.5.4", "workbox-core": "^6.5.4",