From 675cd871d0b1b83b2abeaa5b05f2184165012499 Mon Sep 17 00:00:00 2001 From: dabreegster Date: Wed, 20 Dec 2023 07:11:08 +0000 Subject: [PATCH] deploy: d705d7a9485165f7505bd41ec4dcb26d26c98f41 --- assets/backend_bg.wasm | Bin 660506 -> 699322 bytes assets/{main-01a4aa74.js => main-470f99ba.js} | 4 ++-- index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename assets/{main-01a4aa74.js => main-470f99ba.js} (99%) diff --git a/assets/backend_bg.wasm b/assets/backend_bg.wasm index 4645a98fcd49937ba2bcdb6fbe545ea7ac83b960..75b0a6631d2d25e4ab7cb8e587312d1bbd7b2cee 100644 GIT binary patch delta 283175 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

1_7;YS9=bax2gzKht&mnRsb$3 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%0AXzV+ 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%0D`QR@ex zMKcdyrY04(?)0a-DiyX2JshZo0kP3u7@*GB45aZ;*jt8R7PfY0Wwg+kE4m{<9DKD0 zV#;C@?!S622>#q&=IE%);8W`dex(;yC1L*53#*OVf8!eR;zq1C<~=QH$sSMRG&_9U zzfW|h`9vBP$zVo3jcXJzM?WpP$Lo+LBmldZ#=RotH&`5ze|;K9;o&*$uh{KRyT9_f zK4x22(tQuwT7!NnKx6$>zOSmIgZhw%kTkdqt<~>tsVSv1I%l?p8y^PtS1`_FcpQcf<|2Iqk7U}t9@W|*ch)`bR%!jR{72V ztlCY4TWdS6*nwuNxN=}lMk-*|viZXXnv5!}3j}TsGXSTRC*N+0{L+WDm;?dkBx&>!44=WOwnQpVoxQaljpdsVkCq8h*Jf zGXuoYjrN)H_(=2KxIvHGS<#JX(Brajl$k=E3%%d^?o8#jQRc*Y{!@3ph^%4x{ZnPB z3nyi1WLPWif|EPFnPF{EwpDcuYrC?|YG_zb(-u~`ys2RwQPvZ2aQ~;WE5?Xo*E6im3XZM)^}pUe7Z1-*5FgC0jLJ4&uG6acU3)G)4W(5Yu;;*D7O-=s zwDDc}-2yW$Vk>xE?5ly>O3b?Mv+v4hO3bv3g7@t1b{6iX@V^s8<(_|&Z^DT}xTC(5 zN#5TA*cvdB=We~XcrB_j18~H8$=h&?hMx~%QrrFHJ&#O0FRlq*Esyf6!@3;ptL*(3 zicnSC0nG8oi8*{YF(>LyJU#^95P~OPjk_DuuVxstLU3US=IqLpQ47tM@~1^+Gud&W z*~+hk2(v+I@jmW=f%<~jui3t5rg_(Y|U1;RHA!To?a+G+nqz$_h&=h*Ibf{dxb0CL7sbG5ti zhw{6nW}5%lhjy|46DCW82mWVZpqL8#`4BhkR$(O%D!#fM;GG)&FMC|jVWA1Di84dC zfEydNcEfHdLmKJevzn(Z#3UxO5bKT$v2z3_OKl!jN4!`q;$_(E0B=lzx}BrACI6CV z{APWB8QeG!75T7)ip!*1f$@C?7KM#{uv3KkFe5(%JF6-XZ($BDg&YHqqBqaCfTz=u zoMIbi!LJQ|F{W76TpYgxpCyeCn1`J|dQU+#I0E~Torz2gs{A(ULxn6t{L$c&c`<07 z+)`>j3nUa!)@A4SMf=vqtq871rQ2ZVNs!w? zR#p~P;OxD*{pTvPZZ&^!`&Yn0f5%GLXJaj46-@lE=nh!sAXw%M-&GOc3H}K9)mwdx zhjque?taK(zb`Oomqm-$yYdis%OD)b4C__rl%-tP=R|BsBm4kF; ztcCp^(7ho1rKsGl1Gp})XkI}9);)aL1F_f(#oInPO7{Zj3Ml4tlr*Rvs4r+V zXc8z3R0LWIS_N7UdI+=!v>)^e=snP9pkF}IUm#PUrl8iKR8U{g1khAaE@&xe#TTC8 z#yVIkK#zl703AR^j>CKx^fBmj&>zi&HhmSC3CYgS;MeXj1!~sq5O@<%cbxtvgEpY{ zbUT-@Zv^R1av$vXgZ?77l$l+kW_}&m-~U>kDKiJeY=RU2XcWtoyUhgm>96I8yUjE_ zU#wh|QzY!tT4FYg>vPdQ%dsAu{_xP}qC9xF**#$y_>F+`z~`t@v>>wpSEslyA+6PB z!NmdfX)Xv+6`vY zo3edbIdd{|m2QJHS|bfkDQH#&@DkWLU~9Y?cCQ2PhrOi(e+)Z?Le)2w`D@I_BI0yF z?uyzG$&TyID);_>%a{%3qwf9R%L5zC6>&p;u%{3s5t!0q$PaRYG)Ff%@h#NHI<983 z4rYJZGw(~e4){-^zp1Z0|nsU-_lP>6ukO%Ce167+@aQh|@PP&u=vQ zrLOwXqZXGJAzBo?q4D#9q%{5kn6-j%6Yn#JFnk3}zjiNyn=^bAKFNu>^yV9*v+w*qmVQTuDUjHQ= zkG+;2uB`ijdB{ENqB~YCXs|L_IU4VRo#8cpBn0mc!H>zWH=2#)q5I58*{8y6SVsqZ zyxOCjQDL^}r5$3BL)NCo=^^;h>VPVTd+ZecRbi%uA&hLc+3Xxl<^90t(jjZJ*=@Xz zwF^cNP5?CK(y}wv+z|W`Fqh!8|F40E+gN^q6vGBZAn7e;XA>4RVSU!lSK$^juC?Yp z7sz``rxZi;bQ53%ySJFb7*pkUTTGWLBBDmD(MN86$ZQxD*mWLR1F38^JA|!+Wz1I7 z3VQ{Xd$*d2!_L8TJmP2X;a?gi1={Wru}Y+9vmi4s2RE6sc@icKn#xWT6aQ%Jl0R)V zdo&q|AYQ;+n3N=sz)j25-E!PEvwxl4aAI1|z@!j*OT@~Dw;?Oq;ZnduxEZSo7ao*J z-9~4v6WmaiDt;|(_8_fCL66Cp?PfxZGwH`=x9#SLh}#ir2ur4}yl=Z%JM5&1!rN~4 zjSY{o+btL>`@`iE+oAN=+F>R|kF0i+y?3AxH$=r&&fa0xb9G#Z!b?CdE}(5w(U_i@ zi;K90>XjGm))DQ41q>`7-)UOyL`}PB;$bGi0e6_OE5ltq=u3Dva3uIFAGpheU1po; zTreoCpeR{m#~xjk~*CiKrPa`Pi*WBJS@W}_M( zk@0kI`O8nD*YRnYmhi^{pfCfjymycJL`2-yda-Iy9}6x&W@|lp{gY)+ynX%3m!33_)${K-je>Gj7*?gS95t+$mE{M+dYcw^`X
    DEb^AMT4J+NS(XiGltM|ZjhP6#ulV^X0! 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 in m?a_(m,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):m[f]=_;var Nn=(m,f,_)=>(l_(m,typeof f!="symbol"?f+"":f,_),_);(function(){const f=document.createElement("link").relList;if(f&&f.supports&&f.supports("modulepreload"))return;for(const E of document.querySelectorAll('link[rel="modulepreload"]'))v(E);new MutationObserver(E=>{for(const k of E)if(k.type==="childList")for(const B of k.addedNodes)B.tagName==="LINK"&&B.rel==="modulepreload"&&v(B)}).observe(document,{childList:!0,subtree:!0});function _(E){const k={};return E.integrity&&(k.integrity=E.integrity),E.referrerPolicy&&(k.referrerPolicy=E.referrerPolicy),E.crossOrigin==="use-credentials"?k.credentials="include":E.crossOrigin==="anonymous"?k.credentials="omit":k.credentials="same-origin",k}function v(E){if(E.ep)return;E.ep=!0;const k=_(E);fetch(E.href,k)}})();function Mr(){}function c_(m,f){for(const _ in f)m[_]=f[_];return m}function Np(m){return m()}function pp(){return Object.create(null)}function Ra(m){m.forEach(Np)}function Th(m){return typeof m=="function"}function Sr(m,f){return m!=m?f==f:m!==f||m&&typeof m=="object"||typeof m=="function"}function u_(m){return Object.keys(m).length===0}function Vp(m,...f){if(m==null){for(const v of f)v(void 0);return Mr}const _=m.subscribe(...f);return _.unsubscribe?()=>_.unsubscribe():_}function h_(m){let f;return Vp(m,_=>f=_)(),f}function Qr(m,f,_){m.$$.on_destroy.push(Vp(f,_))}function Ks(m,f,_,v){if(m){const E=Up(m,f,_,v);return m[0](E)}}function Up(m,f,_,v){return m[1]&&v?c_(_.ctx.slice(),m[1](v(f))):_.ctx}function Js(m,f,_,v){if(m[2]&&v){const E=m[2](v(_));if(f.dirty===void 0)return E;if(typeof E=="object"){const k=[],B=Math.max(f.dirty.length,E.length);for(let s=0;s32){const f=[],_=m.ctx.length/32;for(let v=0;v<_;v++)f[v]=-1;return f}return-1}function d_(m){const f={};for(const _ in m)f[_]=!0;return f}function fp(m){return m??""}function il(m,f,_){return m.set(_),f}function p_(m){return m&&Th(m.destroy)?m.destroy:Mr}function _i(m,f){m.appendChild(f)}function hi(m,f,_){m.insertBefore(f,_||null)}function li(m){m.parentNode&&m.parentNode.removeChild(m)}function f_(m,f){for(let _=0;_m.removeEventListener(f,_,v)}function vs(m,f,_){_==null?m.removeAttribute(f):m.getAttribute(f)!==_&&m.setAttribute(f,_)}function m_(m){return Array.from(m.childNodes)}function yh(m,f){f=""+f,m.data!==f&&(m.data=f)}function Uo(m,f){m.value=f??""}function Tc(m,f,_,v){_==null?m.style.removeProperty(f):m.style.setProperty(f,_,v?"important":"")}function mp(m,f,_){for(let v=0;v{const E=m.$$.callbacks[f];if(E){const k=g_(f,_,{cancelable:v});return E.slice().forEach(B=>{B.call(m,k)}),!k.defaultPrevented}return!0}}function qp(m,f){return kc().$$.context.set(m,f),f}function y_(m){return kc().$$.context.get(m)}function pn(m,f){const _=m.$$.callbacks[f.type];_&&_.slice().forEach(v=>v.call(this,f))}const Ml=[],$s=[];let Pl=[];const vh=[],Zp=Promise.resolve();let xh=!1;function Gp(){xh||(xh=!0,Zp.then(Wp))}function v_(){return Gp(),Zp}function _u(m){Pl.push(m)}function Pc(m){vh.push(m)}const dh=new Set;let El=0;function Wp(){if(El!==0)return;const m=Ac;do{try{for(;Elm.indexOf(v)===-1?f.push(v):_.push(v)),_.forEach(v=>v()),Pl=f}const hu=new Set;let tl;function rs(){tl={r:0,c:[],p:tl}}function ns(){tl.r||Ra(tl.c),tl=tl.p}function ft(m,f){m&&m.i&&(hu.delete(m),m.i(f))}function St(m,f,_,v){if(m&&m.o){if(hu.has(m))return;hu.add(m),tl.c.push(()=>{hu.delete(m),v&&(_&&m.d(1),v())}),m.o(f)}else v&&v()}function gp(m){return(m==null?void 0:m.length)!==void 0?m:Array.from(m)}function zc(m,f,_){const v=m.$$.props[f];v!==void 0&&(m.$$.bound[v]=_,_(m.$$.ctx[v]))}function Ri(m){m&&m.c()}function Ai(m,f,_){const{fragment:v,after_update:E}=m.$$;v&&v.m(f,_),_u(()=>{const k=m.$$.on_mount.map(Np).filter(Th);m.$$.on_destroy?m.$$.on_destroy.push(...k):Ra(k),m.$$.on_mount=[]}),E.forEach(_u)}function ki(m,f){const _=m.$$;_.fragment!==null&&(b_(_.after_update),Ra(_.on_destroy),_.fragment&&_.fragment.d(f),_.on_destroy=_.fragment=null,_.ctx=[])}function w_(m,f){m.$$.dirty[0]===-1&&(Ml.push(m),Gp(),m.$$.dirty.fill(0)),m.$$.dirty[f/31|0]|=1<{const Le=Oe.length?Oe[0]:ye;return N.ctx&&E(N.ctx[be],N.ctx[be]=Le)&&(!N.skip_bound&&N.bound[be]&&N.bound[be](Le),_e&&w_(m,be)),ye}):[],N.update(),_e=!0,Ra(N.before_update),N.fragment=v?v(N.ctx):!1,f.target){if(f.hydrate){const be=m_(f.target);N.fragment&&N.fragment.l(be),be.forEach(li)}else N.fragment&&N.fragment.c();f.intro&&ft(m.$$.fragment),Ai(m,f.target,f.anchor),Wp()}Ic(H)}class Gr{constructor(){Nn(this,"$$");Nn(this,"$$set")}$destroy(){ki(this,1),this.$destroy=Mr}$on(f,_){if(!Th(_))return Mr;const v=this.$$.callbacks[f]||(this.$$.callbacks[f]=[]);return v.push(_),()=>{const E=v.indexOf(_);E!==-1&&v.splice(E,1)}}$set(f){this.$$set&&!u_(f)&&(this.$$.skip_bound=!0,this.$$set(f),this.$$.skip_bound=!1)}}const S_="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(S_);function Hp(m,f,_){if(m!==null)for(var v,E,k,B,s,H,N,_e=0,be=0,ye,Oe=m.type,Le=Oe==="FeatureCollection",Be=Oe==="Feature",Ne=Le?m.features.length:1,et=0;et_[0]&&(f[0]=_[0]),f[1]>_[1]&&(f[1]=_[1]),f[2]<_[0]&&(f[2]=_[0]),f[3]<_[1]&&(f[3]=_[1])}),f}bh.default=bh;let Si;const Xp=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&Xp.decode();let gc=null;function zl(){return(gc===null||gc.byteLength===0)&&(gc=new Uint8Array(Si.memory.buffer)),gc}function kl(m,f){return m=m>>>0,Xp.decode(zl().subarray(m,m+f))}const Ws=new Array(128).fill(void 0);Ws.push(void 0,null,!0,!1);let Ec=Ws.length;function dn(m){Ec===Ws.length&&Ws.push(Ws.length+1);const f=Ec;return Ec=Ws[f],Ws[f]=m,f}function oi(m){return Ws[m]}let rl=0;const du=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},T_=typeof du.encodeInto=="function"?function(m,f){return du.encodeInto(m,f)}:function(m,f){const _=du.encode(m);return f.set(_),{read:m.length,written:_.length}};function ph(m,f,_){if(_===void 0){const s=du.encode(m),H=f(s.length,1)>>>0;return zl().subarray(H,H+s.length).set(s),rl=s.length,H}let v=m.length,E=f(v,1)>>>0;const k=zl();let B=0;for(;B127)break;k[E+B]=s}if(B!==v){B!==0&&(m=m.slice(B)),E=_(E,v,v=B+m.length*3,1)>>>0;const s=zl().subarray(E+B,E+v),H=T_(m,s);B+=H.written}return rl=B,E}function mc(m){return m==null}let yc=null;function Br(){return(yc===null||yc.byteLength===0)&&(yc=new Int32Array(Si.memory.buffer)),yc}function I_(m){m<132||(Ws[m]=Ec,Ec=m)}function pu(m){const f=oi(m);return I_(m),f}let vc=null;function E_(){return(vc===null||vc.byteLength===0)&&(vc=new Float64Array(Si.memory.buffer)),vc}let xc=null;function C_(){return(xc===null||xc.byteLength===0)&&(xc=new BigInt64Array(Si.memory.buffer)),xc}function wh(m){const f=typeof m;if(f=="number"||f=="boolean"||m==null)return`${m}`;if(f=="string")return`"${m}"`;if(f=="symbol"){const E=m.description;return E==null?"Symbol":`Symbol(${E})`}if(f=="function"){const E=m.name;return typeof E=="string"&&E.length>0?`Function(${E})`:"Function"}if(Array.isArray(m)){const E=m.length;let k="[";E>0&&(k+=wh(m[0]));for(let B=1;B1)v=_[1];else return toString.call(m);if(v=="Object")try{return"Object("+JSON.stringify(m)+")"}catch{return"Object"}return m instanceof Error?`${m.name}: ${m.message} -${m.stack}`:v}function M_(m,f){const _=f(m.length*1,1)>>>0;return zl().set(m,_/1),rl=m.length,_}function A_(m,f){return m=m>>>0,zl().subarray(m/1,m/1+f)}function fh(m,f){try{return m.apply(this,f)}catch(_){Si.__wbindgen_exn_store(dn(_))}}class k_{__destroy_into_raw(){const f=this.__wbg_ptr;return this.__wbg_ptr=0,f}free(){const f=this.__destroy_into_raw();Si.__wbg_mapmodel_free(f)}constructor(f){try{const k=Si.__wbindgen_add_to_stack_pointer(-16),B=M_(f,Si.__wbindgen_malloc),s=rl;Si.mapmodel_new(k,B,s);var _=Br()[k/4+0],v=Br()[k/4+1],E=Br()[k/4+2];if(E)throw pu(v);return this.__wbg_ptr=_>>>0,this}finally{Si.__wbindgen_add_to_stack_pointer(16)}}render(){let f,_;try{const N=Si.__wbindgen_add_to_stack_pointer(-16);Si.mapmodel_render(N,this.__wbg_ptr);var v=Br()[N/4+0],E=Br()[N/4+1],k=Br()[N/4+2],B=Br()[N/4+3],s=v,H=E;if(B)throw s=0,H=0,pu(k);return f=s,_=H,kl(s,H)}finally{Si.__wbindgen_add_to_stack_pointer(16),Si.__wbindgen_free(f,_,1)}}toRouteSnapper(){try{const E=Si.__wbindgen_add_to_stack_pointer(-16);Si.mapmodel_toRouteSnapper(E,this.__wbg_ptr);var f=Br()[E/4+0],_=Br()[E/4+1],v=A_(f,_).slice();return Si.__wbindgen_free(f,_*1,1),v}finally{Si.__wbindgen_add_to_stack_pointer(16)}}analyzeNeighbourhood(f){let _,v;try{const _e=Si.__wbindgen_add_to_stack_pointer(-16);Si.mapmodel_analyzeNeighbourhood(_e,this.__wbg_ptr,dn(f));var E=Br()[_e/4+0],k=Br()[_e/4+1],B=Br()[_e/4+2],s=Br()[_e/4+3],H=E,N=k;if(s)throw H=0,N=0,pu(B);return _=H,v=N,kl(H,N)}finally{Si.__wbindgen_add_to_stack_pointer(16),Si.__wbindgen_free(_,v,1)}}}async function P_(m,f){if(typeof Response=="function"&&m instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(m,f)}catch(v){if(m.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",v);else throw v}const _=await m.arrayBuffer();return await WebAssembly.instantiate(_,f)}else{const _=await WebAssembly.instantiate(m,f);return _ instanceof WebAssembly.Instance?{instance:_,module:m}:_}}function z_(){const m={};return m.wbg={},m.wbg.__wbindgen_error_new=function(f,_){const v=new Error(kl(f,_));return dn(v)},m.wbg.__wbindgen_string_new=function(f,_){const v=kl(f,_);return dn(v)},m.wbg.__wbindgen_string_get=function(f,_){const v=oi(_),E=typeof v=="string"?v:void 0;var k=mc(E)?0:ph(E,Si.__wbindgen_malloc,Si.__wbindgen_realloc),B=rl;Br()[f/4+1]=B,Br()[f/4+0]=k},m.wbg.__wbindgen_object_drop_ref=function(f){pu(f)},m.wbg.__wbindgen_boolean_get=function(f){const _=oi(f);return typeof _=="boolean"?_?1:0:2},m.wbg.__wbindgen_is_bigint=function(f){return typeof oi(f)=="bigint"},m.wbg.__wbindgen_bigint_from_i64=function(f){return dn(f)},m.wbg.__wbindgen_jsval_eq=function(f,_){return oi(f)===oi(_)},m.wbg.__wbindgen_bigint_from_u64=function(f){const _=BigInt.asUintN(64,f);return dn(_)},m.wbg.__wbindgen_number_get=function(f,_){const v=oi(_),E=typeof v=="number"?v:void 0;E_()[f/8+1]=mc(E)?0:E,Br()[f/4+0]=!mc(E)},m.wbg.__wbindgen_is_object=function(f){const _=oi(f);return typeof _=="object"&&_!==null},m.wbg.__wbindgen_in=function(f,_){return oi(f)in oi(_)},m.wbg.__wbindgen_jsval_loose_eq=function(f,_){return oi(f)==oi(_)},m.wbg.__wbg_debug_34c9290896ec9856=function(f){console.debug(oi(f))},m.wbg.__wbg_error_e60eff06f24ab7a4=function(f){console.error(oi(f))},m.wbg.__wbg_info_d7d58472d0bab115=function(f){console.info(oi(f))},m.wbg.__wbg_log_a4530b4fe289336f=function(f){console.log(oi(f))},m.wbg.__wbg_warn_f260f49434e45e62=function(f){console.warn(oi(f))},m.wbg.__wbg_get_f01601b5a68d10e3=function(f,_){const v=oi(f)[_>>>0];return dn(v)},m.wbg.__wbg_length_1009b1af0c481d7b=function(f){return oi(f).length},m.wbg.__wbindgen_is_function=function(f){return typeof oi(f)=="function"},m.wbg.__wbg_next_9b877f231f476d01=function(f){const _=oi(f).next;return dn(_)},m.wbg.__wbg_next_6529ee0cca8d57ed=function(){return fh(function(f){const _=oi(f).next();return dn(_)},arguments)},m.wbg.__wbg_done_5fe336b092d60cf2=function(f){return oi(f).done},m.wbg.__wbg_value_0c248a78fdc8e19f=function(f){const _=oi(f).value;return dn(_)},m.wbg.__wbg_iterator_db7ca081358d4fb2=function(){return dn(Symbol.iterator)},m.wbg.__wbg_get_7b48513de5dc5ea4=function(){return fh(function(f,_){const v=Reflect.get(oi(f),oi(_));return dn(v)},arguments)},m.wbg.__wbg_call_90c26b09837aba1c=function(){return fh(function(f,_){const v=oi(f).call(oi(_));return dn(v)},arguments)},m.wbg.__wbg_isArray_74fb723e24f76012=function(f){return Array.isArray(oi(f))},m.wbg.__wbg_instanceof_ArrayBuffer_e7d53d51371448e2=function(f){let _;try{_=oi(f)instanceof ArrayBuffer}catch{_=!1}return _},m.wbg.__wbg_isSafeInteger_f93fde0dca9820f8=function(f){return Number.isSafeInteger(oi(f))},m.wbg.__wbg_entries_9e2e2aa45aa5094a=function(f){const _=Object.entries(oi(f));return dn(_)},m.wbg.__wbg_buffer_a448f833075b71ba=function(f){const _=oi(f).buffer;return dn(_)},m.wbg.__wbg_new_8f67e318f15d7254=function(f){const _=new Uint8Array(oi(f));return dn(_)},m.wbg.__wbg_set_2357bf09366ee480=function(f,_,v){oi(f).set(oi(_),v>>>0)},m.wbg.__wbg_length_1d25fa9e4ac21ce7=function(f){return oi(f).length},m.wbg.__wbg_instanceof_Uint8Array_bced6f43aed8c1aa=function(f){let _;try{_=oi(f)instanceof Uint8Array}catch{_=!1}return _},m.wbg.__wbg_new_abda76e883ba8a5f=function(){const f=new Error;return dn(f)},m.wbg.__wbg_stack_658279fe44541cf6=function(f,_){const v=oi(_).stack,E=ph(v,Si.__wbindgen_malloc,Si.__wbindgen_realloc),k=rl;Br()[f/4+1]=k,Br()[f/4+0]=E},m.wbg.__wbg_error_f851667af71bcfc6=function(f,_){let v,E;try{v=f,E=_,console.error(kl(f,_))}finally{Si.__wbindgen_free(v,E,1)}},m.wbg.__wbindgen_bigint_get_as_i64=function(f,_){const v=oi(_),E=typeof v=="bigint"?v:void 0;C_()[f/8+1]=mc(E)?BigInt(0):E,Br()[f/4+0]=!mc(E)},m.wbg.__wbindgen_debug_string=function(f,_){const v=wh(oi(_)),E=ph(v,Si.__wbindgen_malloc,Si.__wbindgen_realloc),k=rl;Br()[f/4+1]=k,Br()[f/4+0]=E},m.wbg.__wbindgen_throw=function(f,_){throw new Error(kl(f,_))},m.wbg.__wbindgen_memory=function(){const f=Si.memory;return dn(f)},m}function L_(m,f){return Si=m.exports,Kp.__wbindgen_wasm_module=f,xc=null,vc=null,yc=null,gc=null,Si}async function Kp(m){if(Si!==void 0)return Si;typeof m>"u"&&(m="/ltn/assets/backend_bg.wasm");const f=z_();(typeof m=="string"||typeof Request=="function"&&m instanceof Request||typeof URL=="function"&&m instanceof URL)&&(m=fetch(m));const{instance:_,module:v}=await P_(await m,f);return L_(_,v)}const Cl=[];function mh(m,f){return{subscribe:bo(m,f).subscribe}}function bo(m,f=Mr){let _;const v=new Set;function E(s){if(Sr(m,s)&&(m=s,_)){const H=!Cl.length;for(const N of v)N[1](),Cl.push(N,m);if(H){for(let N=0;N{v.delete(N),v.size===0&&_&&(_(),_=null)}}return{set:E,update:k,subscribe:B}}let D_=Date.now();function Lc(m){return`${m}-${D_++}`}const Eh=Symbol.for("svelte-maplibre");function Ll(){return y_(Eh)}function F_(m){let f=new WeakMap;return _=>{var B;let v=f.get(_.originalEvent);if(v!==void 0)return v;let k=(B=_.target.queryRenderedFeatures(_.point).find(s=>{var H;return(H=m.get(s.layer.id))==null?void 0:H.interactive}))==null?void 0:B.layer.id;return f.set(_.originalEvent,k),k}}function R_(){let m=new Map;return qp(Eh,{map:bo(null),source:mh(null),layer:mh(null),popupTarget:mh(null),cluster:bo(),loadedImages:bo(new Set),minzoom:bo(0),maxzoom:bo(24),layerEvent:bo(null),layerInfo:m,eventTopMost:F_(m)})}function yp(m){return{subscribe:m.subscribe}}function Jp({key:m,setPopupTarget:f=!1,setCluster:_=!1,setMouseEvent:v=!1}){let E=Ll(),k=bo(null),B=yp(k),s={...E,[m]:yp(k)};if(f&&(s.popupTarget=B),v){let H=bo(null);s.layerEvent=H,E.layerEvent=H}return _&&(s.cluster=bo()),qp(Eh,s),{...E,self:k}}function O_(){return Jp({key:"source",setCluster:!0})}function B_(m=!0){return Jp({key:"layer",setPopupTarget:m,setMouseEvent:m})}function N_(m){return"layerType"in m&&m.layerType==="deckgl"}var Al=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yp(m){return m&&m.__esModule&&Object.prototype.hasOwnProperty.call(m,"default")?m.default:m}var Qp={exports:{}};(function(m,f){(function(_,v){m.exports=v()})(Al,function(){var _,v,E;function k(s,H){if(!_)_=H;else if(!v)v=H;else{var N="var sharedChunk = {}; ("+_+")(sharedChunk); ("+v+")(sharedChunk);",_e={};_(_e),E=H(_e),typeof window<"u"&&(E.workerUrl=window.URL.createObjectURL(new Blob([N],{type:"text/javascript"})))}}k(["exports"],function(s){function H(i,e,r,o){return new(r||(r=Promise))(function(l,h){function p(T){try{w(o.next(T))}catch(M){h(M)}}function y(T){try{w(o.throw(T))}catch(M){h(M)}}function w(T){var M;T.done?l(T.value):(M=T.value,M instanceof r?M:new r(function(z){z(M)})).then(p,y)}w((o=o.apply(i,e||[])).next())})}function N(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}typeof SuppressedError=="function"&&SuppressedError;var _e=be;function be(i,e){this.x=i,this.y=e}be.prototype={clone:function(){return new be(this.x,this.y)},add:function(i){return this.clone()._add(i)},sub:function(i){return this.clone()._sub(i)},multByPoint:function(i){return this.clone()._multByPoint(i)},divByPoint:function(i){return this.clone()._divByPoint(i)},mult:function(i){return this.clone()._mult(i)},div:function(i){return this.clone()._div(i)},rotate:function(i){return this.clone()._rotate(i)},rotateAround:function(i,e){return this.clone()._rotateAround(i,e)},matMult:function(i){return this.clone()._matMult(i)},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(i){return this.x===i.x&&this.y===i.y},dist:function(i){return Math.sqrt(this.distSqr(i))},distSqr:function(i){var e=i.x-this.x,r=i.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(i){return Math.atan2(this.y-i.y,this.x-i.x)},angleWith:function(i){return this.angleWithSep(i.x,i.y)},angleWithSep:function(i,e){return Math.atan2(this.x*e-this.y*i,this.x*i+this.y*e)},_matMult:function(i){var e=i[2]*this.x+i[3]*this.y;return this.x=i[0]*this.x+i[1]*this.y,this.y=e,this},_add:function(i){return this.x+=i.x,this.y+=i.y,this},_sub:function(i){return this.x-=i.x,this.y-=i.y,this},_mult:function(i){return this.x*=i,this.y*=i,this},_div:function(i){return this.x/=i,this.y/=i,this},_multByPoint:function(i){return this.x*=i.x,this.y*=i.y,this},_divByPoint:function(i){return this.x/=i.x,this.y/=i.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var i=this.y;return this.y=this.x,this.x=-i,this},_rotate:function(i){var e=Math.cos(i),r=Math.sin(i),o=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=o,this},_rotateAround:function(i,e){var r=Math.cos(i),o=Math.sin(i),l=e.y+o*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-o*(this.y-e.y),this.y=l,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},be.convert=function(i){return i instanceof be?i:Array.isArray(i)?new be(i[0],i[1]):i};var ye=N(_e),Oe=Le;function Le(i,e,r,o){this.cx=3*i,this.bx=3*(r-i)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(o-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=i,this.p1y=e,this.p2x=r,this.p2y=o}Le.prototype={sampleCurveX:function(i){return((this.ax*i+this.bx)*i+this.cx)*i},sampleCurveY:function(i){return((this.ay*i+this.by)*i+this.cy)*i},sampleCurveDerivativeX:function(i){return(3*this.ax*i+2*this.bx)*i+this.cx},solveCurveX:function(i,e){if(e===void 0&&(e=1e-6),i<0)return 0;if(i>1)return 1;for(var r=i,o=0;o<8;o++){var l=this.sampleCurveX(r)-i;if(Math.abs(l)l?p=r:y=r,r=.5*(y-p)+p;return r},solve:function(i,e){return this.sampleCurveY(this.solveCurveX(i,e))}};var Be=N(Oe);let Ne,et;function at(){return Ne==null&&(Ne=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),Ne}function nt(){if(et==null&&(et=!1,at())){const e=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(e){for(let o=0;o<5*5;o++){const l=4*o;e.fillStyle=`rgb(${l},${l+1},${l+2})`,e.fillRect(o%5,Math.floor(o/5),1,1)}const r=e.getImageData(0,0,5,5).data;for(let o=0;o<5*5*4;o++)if(o%4!=3&&r[o]!==o){et=!0;break}}}return et||!1}function it(i,e,r,o){const l=new Be(i,e,r,o);return function(h){return l.solve(h)}}const Vt=it(.25,.1,.25,1);function ei(i,e,r){return Math.min(r,Math.max(e,i))}function Ht(i,e,r){const o=r-e,l=((i-e)%o+o)%o+e;return l===e?r:l}function Nt(i,...e){for(const r of e)for(const o in r)i[o]=r[o];return i}let Jt=1;function At(i,e,r){const o={};for(const l in i)o[l]=e.call(r||this,i[l],l,i);return o}function Ae(i,e,r){const o={};for(const l in i)e.call(r||this,i[l],l,i)&&(o[l]=i[l]);return o}function Ge(i){return Array.isArray(i)?i.map(Ge):typeof i=="object"&&i?At(i,Ge):i}const Ui={};function Dt(i){Ui[i]||(typeof console<"u"&&console.warn(i),Ui[i]=!0)}function qt(i,e,r){return(r.y-i.y)*(e.x-i.x)>(e.y-i.y)*(r.x-i.x)}function Lt(i){let e=0;for(let r,o,l=0,h=i.length,p=h-1;l"u")throw new Error("VideoFrame not supported");const h=new VideoFrame(i,{timestamp:0});try{const p=h==null?void 0:h.format;if(!p||!p.startsWith("BGR")&&!p.startsWith("RGB"))throw new Error(`Unrecognized format ${p}`);const y=p.startsWith("BGR"),w=new Uint8ClampedArray(o*l*4);if(yield h.copyTo(w,function(T,M,z,D,V){const U=4*Math.max(-M,0),Z=(Math.max(0,z)-z)*D*4+U,$=4*D,ie=Math.max(0,M),ue=Math.max(0,z);return{rect:{x:ie,y:ue,width:Math.min(T.width,M+D)-ie,height:Math.min(T.height,z+V)-ue},layout:[{offset:Z,stride:$}]}}(i,e,r,o,l)),y)for(let T=0;TcancelAnimationFrame(e)}},getImageData(i,e=0){return this.getImageCanvasContext(i).getImageData(-e,-e,i.width+2*e,i.height+2*e)},getImageCanvasContext(i){const e=window.document.createElement("canvas"),r=e.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("failed to create canvas 2d context");return e.width=i.width,e.height=i.height,r.drawImage(i,0,0,i.width,i.height),r},resolveURL:i=>(pi||(pi=document.createElement("a")),pi.href=i,pi.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(Oi==null&&(Oi=matchMedia("(prefers-reduced-motion: reduce)")),Oi.matches)}},Pt={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};class He extends Error{constructor(e,r,o,l){super(`AJAXError: ${r} (${e}): ${o}`),this.status=e,this.statusText=r,this.url=o,this.body=l}}const Zt=di()?()=>self.worker&&self.worker.referrer:()=>(window.location.protocol==="blob:"?window.parent:window).location.href,ct=i=>Pt.REGISTERED_PROTOCOLS[i.substring(0,i.indexOf("://"))];function Zi(i,e){const r=new AbortController,o=new Request(i.url,{method:i.method||"GET",body:i.body,credentials:i.credentials,headers:i.headers,cache:i.cache,referrer:Zt(),signal:r.signal});let l=!1,h=!1;return i.type==="json"&&o.headers.set("Accept","application/json"),h||fetch(o).then(p=>p.ok?(y=>{(i.type==="arrayBuffer"||i.type==="image"?y.arrayBuffer():i.type==="json"?y.json():y.text()).then(w=>{h||(l=!0,e(null,w,y.headers.get("Cache-Control"),y.headers.get("Expires")))}).catch(w=>{h||e(new Error(w.message))})})(p):p.blob().then(y=>e(new He(p.status,p.statusText,i.url,y)))).catch(p=>{p.code!==20&&e(new Error(p.message))}),{cancel:()=>{h=!0,l||r.abort()}}}const _r=function(i,e){if(/:\/\//.test(i.url)&&!/^https?:|^file:/.test(i.url)){if(di()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,e);if(!di())return(ct(i.url)||Zi)(i,e)}if(!(/^file:/.test(r=i.url)||/^file:/.test(Zt())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return Zi(i,e);if(di()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,e,void 0,!0)}var r;return function(o,l){const h=new XMLHttpRequest;h.open(o.method||"GET",o.url,!0),o.type!=="arrayBuffer"&&o.type!=="image"||(h.responseType="arraybuffer");for(const p in o.headers)h.setRequestHeader(p,o.headers[p]);return o.type==="json"&&(h.responseType="text",h.setRequestHeader("Accept","application/json")),h.withCredentials=o.credentials==="include",h.onerror=()=>{l(new Error(h.statusText))},h.onload=()=>{if((h.status>=200&&h.status<300||h.status===0)&&h.response!==null){let p=h.response;if(o.type==="json")try{p=JSON.parse(h.response)}catch(y){return l(y)}l(null,p,h.getResponseHeader("Cache-Control"),h.getResponseHeader("Expires"))}else{const p=new Blob([h.response],{type:h.getResponseHeader("Content-Type")});l(new He(h.status,h.statusText,o.url,p))}},h.send(o.body),{cancel:()=>h.abort()}}(i,e)},Ue=function(i,e){return _r(Nt(i,{type:"arrayBuffer"}),e)};function Bi(i){if(!i||i.indexOf("://")<=0||i.indexOf("data:image/")===0||i.indexOf("blob:")===0)return!0;const e=new URL(i),r=window.location;return e.protocol===r.protocol&&e.host===r.host}function gr(i,e,r){r[i]&&r[i].indexOf(e)!==-1||(r[i]=r[i]||[],r[i].push(e))}function ci(i,e,r){if(r&&r[i]){const o=r[i].indexOf(e);o!==-1&&r[i].splice(o,1)}}class co{constructor(e,r={}){Nt(this,r),this.type=e}}class wo extends co{constructor(e,r={}){super("error",Nt({error:e},r))}}class jo{on(e,r){return this._listeners=this._listeners||{},gr(e,r,this._listeners),this}off(e,r){return ci(e,r,this._listeners),ci(e,r,this._oneTimeListeners),this}once(e,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},gr(e,r,this._oneTimeListeners),this):new Promise(o=>this.once(e,o))}fire(e,r){typeof e=="string"&&(e=new co(e,r||{}));const o=e.type;if(this.listens(o)){e.target=this;const l=this._listeners&&this._listeners[o]?this._listeners[o].slice():[];for(const y of l)y.call(this,e);const h=this._oneTimeListeners&&this._oneTimeListeners[o]?this._oneTimeListeners[o].slice():[];for(const y of h)ci(o,y,this._oneTimeListeners),y.call(this,e);const p=this._eventedParent;p&&(Nt(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),p.fire(e))}else e instanceof wo&&console.error(e.error);return this}listens(e){return this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)}setEventedParent(e,r){return this._eventedParent=e,this._eventedParentData=r,this}}var Se={$version:8,$root:{version:{required:!0,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"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,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:!0,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:!1},"*":{type:"*"}},source_raster:{type:{required:!0,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:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,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:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},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_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,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:!1,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"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,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:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,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:!0,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:!1,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:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,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:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,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:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,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:!0,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:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"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:!1,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:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,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:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,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_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:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,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"}}};const en=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function In(i,e){const r={};for(const o in i)o!=="ref"&&(r[o]=i[o]);return en.forEach(o=>{o in e&&(r[o]=e[o])}),r}function Ii(i,e){if(Array.isArray(i)){if(!Array.isArray(e)||i.length!==e.length)return!1;for(let r=0;r`:i.itemType.kind==="value"?"array":`array<${e}>`}return i.kind}const he=[tn,We,Bt,Mt,Vr,X,mn,J(It),L,F,j];function oe(i,e){if(e.kind==="error")return null;if(i.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!oe(i.itemType,e.itemType))&&(typeof i.N!="number"||i.N===e.N))return null}else{if(i.kind===e.kind)return null;if(i.kind==="value"){for(const r of he)if(!oe(r,e))return null}}return`Expected ${Q(i)} but found ${Q(e)} instead.`}function te(i,e){return e.some(r=>r.kind===i.kind)}function ae(i,e){return e.some(r=>r==="null"?i===null:r==="array"?Array.isArray(i):r==="object"?i&&!Array.isArray(i)&&typeof i=="object":r===typeof i)}function Te(i,e){return i.kind==="array"&&e.kind==="array"?i.itemType.kind===e.itemType.kind&&typeof i.N=="number":i.kind===e.kind}const Ie=.96422,Ee=.82521,mt=4/29,kt=6/29,ut=3*kt*kt,vt=kt*kt*kt,Ft=Math.PI/180,mi=180/Math.PI;function Ut(i){return(i%=360)<0&&(i+=360),i}function si([i,e,r,o]){let l,h;const p=Ur((.2225045*(i=ii(i))+.7168786*(e=ii(e))+.0606169*(r=ii(r)))/1);i===e&&e===r?l=h=p:(l=Ur((.4360747*i+.3850649*e+.1430804*r)/Ie),h=Ur((.0139322*i+.0971045*e+.7141733*r)/Ee));const y=116*p-16;return[y<0?0:y,500*(l-p),200*(p-h),o]}function ii(i){return i<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function Ur(i){return i>vt?Math.pow(i,1/3):i/ut+mt}function Ei([i,e,r,o]){let l=(i+16)/116,h=isNaN(e)?l:l+e/500,p=isNaN(r)?l:l-r/200;return l=1*yr(l),h=Ie*yr(h),p=Ee*yr(p),[ur(3.1338561*h-1.6168667*l-.4906146*p),ur(-.9787684*h+1.9161415*l+.033454*p),ur(.0719453*h-.2289914*l+1.4052427*p),o]}function ur(i){return(i=i<=.00304?12.92*i:1.055*Math.pow(i,1/2.4)-.055)<0?0:i>1?1:i}function yr(i){return i>kt?i*i*i:ut*(i-mt)}function An(i){return parseInt(i.padEnd(2,i),16)/255}function xs(i,e){return To(e?i/100:i,0,1)}function To(i,e,r){return Math.min(Math.max(e,i),r)}function Io(i){return!i.some(Number.isNaN)}const vr={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,134,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,250,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,221],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:[112,128,144],slategrey:[112,128,144],snow:[255,250,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,50]};class gi{constructor(e,r,o,l=1,h=!0){this.r=e,this.g=r,this.b=o,this.a=l,h||(this.r*=l,this.g*=l,this.b*=l,l||this.overwriteGetter("rgb",[e,r,o,l]))}static parse(e){if(e instanceof gi)return e;if(typeof e!="string")return;const r=function(o){if((o=o.toLowerCase().trim())==="transparent")return[0,0,0,0];const l=vr[o];if(l){const[p,y,w]=l;return[p/255,y/255,w/255,1]}if(o.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o)){const p=o.length<6?1:2;let y=1;return[An(o.slice(y,y+=p)),An(o.slice(y,y+=p)),An(o.slice(y,y+=p)),An(o.slice(y,y+p)||"ff")]}if(o.startsWith("rgb")){const p=o.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(p){const[y,w,T,M,z,D,V,U,Z,$,ie,ue]=p,re=[M||" ",V||" ",$].join("");if(re===" "||re===" /"||re===",,"||re===",,,"){const pe=[T,D,Z].join(""),ge=pe==="%%%"?100:pe===""?255:0;if(ge){const Me=[To(+w/ge,0,1),To(+z/ge,0,1),To(+U/ge,0,1),ie?xs(+ie,ue):1];if(Io(Me))return Me}}return}}const h=o.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(h){const[p,y,w,T,M,z,D,V,U]=h,Z=[w||" ",M||" ",D].join("");if(Z===" "||Z===" /"||Z===",,"||Z===",,,"){const $=[+y,To(+T,0,100),To(+z,0,100),V?xs(+V,U):1];if(Io($))return function([ie,ue,re,pe]){function ge(Me){const lt=(Me+ie/30)%12,pt=ue*Math.min(re,1-re);return re-pt*Math.max(-1,Math.min(lt-3,9-lt,1))}return ie=Ut(ie),ue/=100,re/=100,[ge(0),ge(8),ge(4),pe]}($)}}}(e);return r?new gi(...r,!1):void 0}get rgb(){const{r:e,g:r,b:o,a:l}=this,h=l||1/0;return this.overwriteGetter("rgb",[e/h,r/h,o/h,l])}get hcl(){return this.overwriteGetter("hcl",function(e){const[r,o,l,h]=si(e),p=Math.sqrt(o*o+l*l);return[Math.round(1e4*p)?Ut(Math.atan2(l,o)*mi):NaN,p,r,h]}(this.rgb))}get lab(){return this.overwriteGetter("lab",si(this.rgb))}overwriteGetter(e,r){return Object.defineProperty(this,e,{value:r}),r}toString(){const[e,r,o,l]=this.rgb;return`rgba(${[e,r,o].map(h=>Math.round(255*h)).join(",")},${l})`}}gi.black=new gi(0,0,0,1),gi.white=new gi(1,1,1,1),gi.transparent=new gi(0,0,0,0),gi.red=new gi(1,0,0,1);class ea{constructor(e,r,o){this.sensitivity=e?r?"variant":"case":r?"accent":"base",this.locale=o,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,r){return this.collator.compare(e,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class jn{constructor(e,r,o,l,h){this.text=e,this.image=r,this.scale=o,this.fontStack=l,this.textColor=h}}class ji{constructor(e){this.sections=e}static fromString(e){return new ji([new jn(e,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(e){return e instanceof ji?e:ji.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}}class jr{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof jr)return e;if(typeof e=="number")return new jr([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const r of e)if(typeof r!="number")return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new jr(e)}}toString(){return JSON.stringify(this.values)}}const Go=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class Tr{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof Tr)return e;if(Array.isArray(e)&&!(e.length<1)&&e.length%2==0){for(let r=0;r=0&&i<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof r=="number"&&r>=0&&r<=255?o===void 0||typeof o=="number"&&o>=0&&o<=1?null:`Invalid rgba value [${[i,e,r,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof o=="number"?[i,e,r,o]:[i,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function os(i){if(i===null||typeof i=="string"||typeof i=="boolean"||typeof i=="number"||i instanceof gi||i instanceof ea||i instanceof ji||i instanceof jr||i instanceof Tr||i instanceof Ir)return!0;if(Array.isArray(i)){for(const e of i)if(!os(e))return!1;return!0}if(typeof i=="object"){for(const e in i)if(!os(i[e]))return!1;return!0}return!1}function Gi(i){if(i===null)return tn;if(typeof i=="string")return Bt;if(typeof i=="boolean")return Mt;if(typeof i=="number")return We;if(i instanceof gi)return Vr;if(i instanceof ea)return Mn;if(i instanceof ji)return X;if(i instanceof jr)return L;if(i instanceof Tr)return j;if(i instanceof Ir)return F;if(Array.isArray(i)){const e=i.length;let r;for(const o of i){const l=Gi(o);if(r){if(r===l)continue;r=It;break}r=l}return J(r||It,e)}return mn}function ui(i){const e=typeof i;return i===null?"":e==="string"||e==="number"||e==="boolean"?String(i):i instanceof gi||i instanceof ji||i instanceof jr||i instanceof Tr||i instanceof Ir?i.toString():JSON.stringify(i)}class uo{constructor(e,r){this.type=e,this.value=r}static parse(e,r){if(e.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!os(e[1]))return r.error("invalid value");const o=e[1];let l=Gi(o);const h=r.expectedType;return l.kind!=="array"||l.N!==0||!h||h.kind!=="array"||typeof h.N=="number"&&h.N!==0||(l=h),new uo(l,o)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class Wi{constructor(e){this.name="ExpressionEvaluationError",this.message=e}toJSON(){return this.message}}const bs={string:Bt,number:We,boolean:Mt,object:mn};class kn{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");let o,l=1;const h=e[0];if(h==="array"){let y,w;if(e.length>2){const T=e[1];if(typeof T!="string"||!(T in bs)||T==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);y=bs[T],l++}else y=It;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return r.error('The length argument to "array" must be a positive integer literal',2);w=e[2],l++}o=J(y,w)}else{if(!bs[h])throw new Error(`Types doesn't contain name = ${h}`);o=bs[h]}const p=[];for(;le.outputDefined())}}const Ba={"to-boolean":Mt,"to-color":Vr,"to-number":We,"to-string":Bt};class Eo{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const o=e[0];if(!Ba[o])throw new Error(`Can't parse ${o} as it is not part of the known types`);if((o==="to-boolean"||o==="to-string")&&e.length!==2)return r.error("Expected one argument.");const l=Ba[o],h=[];for(let p=1;p4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:ta(r[0],r[1],r[2],r[3]),!o))return new gi(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new Wi(o||`Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"padding":{let r;for(const o of this.args){r=o.evaluate(e);const l=jr.parse(r);if(l)return l}throw new Wi(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"variableAnchorOffsetCollection":{let r;for(const o of this.args){r=o.evaluate(e);const l=Tr.parse(r);if(l)return l}throw new Wi(`Could not parse variableAnchorOffsetCollection from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"number":{let r=null;for(const o of this.args){if(r=o.evaluate(e),r===null)return 0;const l=Number(r);if(!isNaN(l))return l}throw new Wi(`Could not convert ${JSON.stringify(r)} to number.`)}case"formatted":return ji.fromString(ui(this.args[0].evaluate(e)));case"resolvedImage":return Ir.fromString(ui(this.args[0].evaluate(e)));default:return ui(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}const ws=["Unknown","Point","LineString","Polygon"];class g{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?ws[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||{}}parseColor(e){let r=this._parseColorCache[e];return r||(r=this._parseColorCache[e]=gi.parse(e)),r}}class I{constructor(e,r,o=[],l,h=new Zo,p=[]){this.registry=e,this.path=o,this.key=o.map(y=>`[${y}]`).join(""),this.scope=h,this.errors=p,this.expectedType=l,this._isConstant=r}parse(e,r,o,l,h={}){return r?this.concat(r,o,l)._parse(e,h):this._parse(e,h)}_parse(e,r){function o(l,h,p){return p==="assert"?new kn(h,[l]):p==="coerce"?new Eo(h,[l]):l}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),Array.isArray(e)){if(e.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const l=e[0];if(typeof l!="string")return this.error(`Expression name must be a string, but found ${typeof l} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const h=this.registry[l];if(h){let p=h.parse(e,this);if(!p)return null;if(this.expectedType){const y=this.expectedType,w=p.type;if(y.kind!=="string"&&y.kind!=="number"&&y.kind!=="boolean"&&y.kind!=="object"&&y.kind!=="array"||w.kind!=="value")if(y.kind!=="color"&&y.kind!=="formatted"&&y.kind!=="resolvedImage"||w.kind!=="value"&&w.kind!=="string")if(y.kind!=="padding"||w.kind!=="value"&&w.kind!=="number"&&w.kind!=="array")if(y.kind!=="variableAnchorOffsetCollection"||w.kind!=="value"&&w.kind!=="array"){if(this.checkSubtype(y,w))return null}else p=o(p,y,r.typeAnnotation||"coerce");else p=o(p,y,r.typeAnnotation||"coerce");else p=o(p,y,r.typeAnnotation||"coerce");else p=o(p,y,r.typeAnnotation||"assert")}if(!(p instanceof uo)&&p.type.kind!=="resolvedImage"&&this._isConstant(p)){const y=new g;try{p=new uo(p.type,p.evaluate(y))}catch(w){return this.error(w.message),null}}return p}return this.error(`Unknown expression "${l}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,r,o){const l=typeof e=="number"?this.path.concat(e):this.path,h=o?this.scope.concat(o):this.scope;return new I(this.registry,this._isConstant,l,r||null,h,this.errors)}error(e,...r){const o=`${this.key}${r.map(l=>`[${l}]`).join("")}`;this.errors.push(new er(o,e))}checkSubtype(e,r){const o=oe(e,r);return o&&this.error(o),o}}class O{constructor(e,r,o){this.type=Mn,this.locale=o,this.caseSensitive=e,this.diacriticSensitive=r}static parse(e,r){if(e.length!==2)return r.error("Expected one argument.");const o=e[1];if(typeof o!="object"||Array.isArray(o))return r.error("Collator options argument must be an object.");const l=r.parse(o["case-sensitive"]!==void 0&&o["case-sensitive"],1,Mt);if(!l)return null;const h=r.parse(o["diacritic-sensitive"]!==void 0&&o["diacritic-sensitive"],1,Mt);if(!h)return null;let p=null;return o.locale&&(p=r.parse(o.locale,1,Bt),!p)?null:new O(l,h,p)}evaluate(e){return new ea(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}}const Y=8192;function ne(i,e){i[0]=Math.min(i[0],e[0]),i[1]=Math.min(i[1],e[1]),i[2]=Math.max(i[2],e[0]),i[3]=Math.max(i[3],e[1])}function se(i,e){return!(i[0]<=e[0]||i[2]>=e[2]||i[1]<=e[1]||i[3]>=e[3])}function fe(i,e){const r=(180+i[0])/360,o=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i[1]*Math.PI/360)))/360,l=Math.pow(2,e.z);return[Math.round(r*l*Y),Math.round(o*l*Y)]}function De(i,e,r){const o=i[0]-e[0],l=i[1]-e[1],h=i[0]-r[0],p=i[1]-r[1];return o*p-h*l==0&&o*h<=0&&l*p<=0}function Ve(i,e){let r=!1;for(let p=0,y=e.length;p(o=i)[1]!=(h=w[T+1])[1]>o[1]&&o[0]<(h[0]-l[0])*(o[1]-l[1])/(h[1]-l[1])+l[0]&&(r=!r)}}var o,l,h;return r}function rt(i,e){for(let r=0;r0&&y<0||p<0&&y>0}function Je(i,e,r){for(const T of r)for(let M=0;Mr[2]){const l=.5*o;let h=i[0]-r[0]>l?-o:r[0]-i[0]>l?o:0;h===0&&(h=i[0]-r[2]>l?-o:r[2]-i[0]>l?o:0),i[0]+=h}ne(e,i)}function _t(i,e,r,o){const l=Math.pow(2,o.z)*Y,h=[o.x*Y,o.y*Y],p=[];for(const y of i)for(const w of y){const T=[w.x+h[0],w.y+h[1]];ke(T,e,r,l),p.push(T)}return p}function yi(i,e,r,o){const l=Math.pow(2,o.z)*Y,h=[o.x*Y,o.y*Y],p=[];for(const w of i){const T=[];for(const M of w){const z=[M.x+h[0],M.y+h[1]];ne(e,z),T.push(z)}p.push(T)}if(e[2]-e[0]<=l/2){(y=e)[0]=y[1]=1/0,y[2]=y[3]=-1/0;for(const w of p)for(const T of w)ke(T,e,r,l)}var y;return p}class Xi{constructor(e,r){this.type=Mt,this.geojson=e,this.geometries=r}static parse(e,r){if(e.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(os(e[1])){const o=e[1];if(o.type==="FeatureCollection")for(let l=0;l!Array.isArray(T)||T.length===e.length-1);let w=null;for(const[T,M]of y){w=new I(r.registry,ia,r.path,null,r.scope);const z=[];let D=!1;for(let V=1;V{return D=z,Array.isArray(D)?`(${D.map(Q).join(", ")})`:`(${Q(D.type)}...)`;var D}).join(" | "),M=[];for(let z=1;z{r=e?r&&ia(o):r&&o instanceof uo}),!!r&&Ci(i)&&ra(i,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Ci(i){if(i instanceof rn&&(i.name==="get"&&i.args.length===1||i.name==="feature-state"||i.name==="has"&&i.args.length===1||i.name==="properties"||i.name==="geometry-type"||i.name==="id"||/^filter-/.test(i.name))||i instanceof Xi)return!1;let e=!0;return i.eachChild(r=>{e&&!Ci(r)&&(e=!1)}),e}function ss(i){if(i instanceof rn&&i.name==="feature-state")return!1;let e=!0;return i.eachChild(r=>{e&&!ss(r)&&(e=!1)}),e}function ra(i,e){if(i instanceof rn&&e.indexOf(i.name)>=0)return!1;let r=!0;return i.eachChild(o=>{r&&!ra(o,e)&&(r=!1)}),r}function nn(i,e){const r=i.length-1;let o,l,h=0,p=r,y=0;for(;h<=p;)if(y=Math.floor((h+p)/2),o=i[y],l=i[y+1],o<=e){if(y===r||ee))throw new Wi("Input is not a number.");p=y-1}return 0}class ho{constructor(e,r,o){this.type=e,this.input=r,this.labels=[],this.outputs=[];for(const[l,h]of o)this.labels.push(l),this.outputs.push(h)}static parse(e,r){if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");const o=r.parse(e[1],1,We);if(!o)return null;const l=[];let h=null;r.expectedType&&r.expectedType.kind!=="value"&&(h=r.expectedType);for(let p=1;p=y)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',T);const z=r.parse(w,M,h);if(!z)return null;h=h||z.type,l.push([y,z])}return new ho(h,o,l)}evaluate(e){const r=this.labels,o=this.outputs;if(r.length===1)return o[0].evaluate(e);const l=this.input.evaluate(e);if(l<=r[0])return o[0].evaluate(e);const h=r.length;return l>=r[h-1]?o[h-1].evaluate(e):o[nn(r,l)].evaluate(e)}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function Xt(i,e,r){return i+r*(e-i)}function Ss(i,e,r){return i.map((o,l)=>Xt(o,e[l],r))}const Wr={number:Xt,color:function(i,e,r,o="rgb"){switch(o){case"rgb":{const[l,h,p,y]=Ss(i.rgb,e.rgb,r);return new gi(l,h,p,y,!1)}case"hcl":{const[l,h,p,y]=i.hcl,[w,T,M,z]=e.hcl;let D,V;if(isNaN(l)||isNaN(w))isNaN(l)?isNaN(w)?D=NaN:(D=w,p!==1&&p!==0||(V=T)):(D=l,M!==1&&M!==0||(V=h));else{let ue=w-l;w>l&&ue>180?ue-=360:w180&&(ue+=360),D=l+r*ue}const[U,Z,$,ie]=function([ue,re,pe,ge]){return ue=isNaN(ue)?0:ue*Ft,Ei([pe,Math.cos(ue)*re,Math.sin(ue)*re,ge])}([D,V??Xt(h,T,r),Xt(p,M,r),Xt(y,z,r)]);return new gi(U,Z,$,ie,!1)}case"lab":{const[l,h,p,y]=Ei(Ss(i.lab,e.lab,r));return new gi(l,h,p,y,!1)}}},array:Ss,padding:function(i,e,r){return new jr(Ss(i.values,e.values,r))},variableAnchorOffsetCollection:function(i,e,r){const o=i.values,l=e.values;if(o.length!==l.length)throw new Wi(`Cannot interpolate values of different length. from: ${i.toString()}, to: ${e.toString()}`);const h=[];for(let p=0;ptypeof M!="number"||M<0||M>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);l={name:"cubic-bezier",controlPoints:T}}}if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(h=r.parse(h,2,We),!h)return null;const y=[];let w=null;o==="interpolate-hcl"||o==="interpolate-lab"?w=Vr:r.expectedType&&r.expectedType.kind!=="value"&&(w=r.expectedType);for(let T=0;T=M)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',D);const U=r.parse(z,V,w);if(!U)return null;w=w||U.type,y.push([M,U])}return Te(w,We)||Te(w,Vr)||Te(w,L)||Te(w,j)||Te(w,J(We))?new on(w,o,l,h,y):r.error(`Type ${Q(w)} is not interpolatable.`)}evaluate(e){const r=this.labels,o=this.outputs;if(r.length===1)return o[0].evaluate(e);const l=this.input.evaluate(e);if(l<=r[0])return o[0].evaluate(e);const h=r.length;if(l>=r[h-1])return o[h-1].evaluate(e);const p=nn(r,l),y=on.interpolationFactor(this.interpolation,l,r[p],r[p+1]),w=o[p].evaluate(e),T=o[p+1].evaluate(e);switch(this.operator){case"interpolate":return Wr[this.type.kind](w,T,y);case"interpolate-hcl":return Wr.color(w,T,y,"hcl");case"interpolate-lab":return Wr.color(w,T,y,"lab")}}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function na(i,e,r,o){const l=o-r,h=i-r;return l===0?0:e===1?h/l:(Math.pow(e,h)-1)/(Math.pow(e,l)-1)}class oa{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expectected at least one argument.");let o=null;const l=r.expectedType;l&&l.kind!=="value"&&(o=l);const h=[];for(const y of e.slice(1)){const w=r.parse(y,1+h.length,o,void 0,{typeAnnotation:"omit"});if(!w)return null;o=o||w.type,h.push(w)}if(!o)throw new Error("No output type");const p=l&&h.some(y=>oe(l,y.type));return new oa(p?It:o,h)}evaluate(e){let r,o=null,l=0;for(const h of this.args)if(l++,o=h.evaluate(e),o&&o instanceof Ir&&!o.available&&(r||(r=o.name),o=null,l===this.args.length&&(o=r)),o!==null)break;return o}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}class sa{constructor(e,r){this.type=r.type,this.bindings=[].concat(e),this.result=r}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const r of this.bindings)e(r[1]);e(this.result)}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const o=[];for(let h=1;h=o.length)throw new Wi(`Array index out of bounds: ${r} > ${o.length-1}.`);if(r!==Math.floor(r))throw new Wi(`Array index must be an integer, but found ${r} instead.`);return o[r]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}}class aa{constructor(e,r){this.type=Mt,this.needle=e,this.haystack=r}static parse(e,r){if(e.length!==3)return r.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const o=r.parse(e[1],1,It),l=r.parse(e[2],2,It);return o&&l?te(o.type,[Mt,Bt,We,tn,It])?new aa(o,l):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Q(o.type)} instead`):null}evaluate(e){const r=this.needle.evaluate(e),o=this.haystack.evaluate(e);if(!o)return!1;if(!ae(r,["boolean","string","number","null"]))throw new Wi(`Expected first argument to be of type boolean, string, number or null, but found ${Q(Gi(r))} instead.`);if(!ae(o,["string","array"]))throw new Wi(`Expected second argument to be of type array or string, but found ${Q(Gi(o))} instead.`);return o.indexOf(r)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}}class Ts{constructor(e,r,o){this.type=We,this.needle=e,this.haystack=r,this.fromIndex=o}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const o=r.parse(e[1],1,It),l=r.parse(e[2],2,It);if(!o||!l)return null;if(!te(o.type,[Mt,Bt,We,tn,It]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Q(o.type)} instead`);if(e.length===4){const h=r.parse(e[3],3,We);return h?new Ts(o,l,h):null}return new Ts(o,l)}evaluate(e){const r=this.needle.evaluate(e),o=this.haystack.evaluate(e);if(!ae(r,["boolean","string","number","null"]))throw new Wi(`Expected first argument to be of type boolean, string, number or null, but found ${Q(Gi(r))} instead.`);if(!ae(o,["string","array"]))throw new Wi(`Expected second argument to be of type array or string, but found ${Q(Gi(o))} instead.`);if(this.fromIndex){const l=this.fromIndex.evaluate(e);return o.indexOf(r,l)}return o.indexOf(r)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}}class la{constructor(e,r,o,l,h,p){this.inputType=e,this.type=r,this.input=o,this.cases=l,this.outputs=h,this.otherwise=p}static parse(e,r){if(e.length<5)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return r.error("Expected an even number of arguments.");let o,l;r.expectedType&&r.expectedType.kind!=="value"&&(l=r.expectedType);const h={},p=[];for(let T=2;TNumber.MAX_SAFE_INTEGER)return D.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof U=="number"&&Math.floor(U)!==U)return D.error("Numeric branch labels must be integer values.");if(o){if(D.checkSubtype(o,Gi(U)))return null}else o=Gi(U);if(h[String(U)]!==void 0)return D.error("Branch labels must be unique.");h[String(U)]=p.length}const V=r.parse(z,T,l);if(!V)return null;l=l||V.type,p.push(V)}const y=r.parse(e[1],1,It);if(!y)return null;const w=r.parse(e[e.length-1],e.length-1,l);return w?y.type.kind!=="value"&&r.concat(1).checkSubtype(o,y.type)?null:new la(o,l,y,h,p,w):null}evaluate(e){const r=this.input.evaluate(e);return(Gi(r)===this.inputType&&this.outputs[this.cases[r]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}}class Va{constructor(e,r,o){this.type=e,this.branches=r,this.otherwise=o}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return r.error("Expected an odd number of arguments.");let o;r.expectedType&&r.expectedType.kind!=="value"&&(o=r.expectedType);const l=[];for(let p=1;pr.outputDefined())&&this.otherwise.outputDefined()}}class ca{constructor(e,r,o,l){this.type=e,this.input=r,this.beginIndex=o,this.endIndex=l}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const o=r.parse(e[1],1,It),l=r.parse(e[2],2,We);if(!o||!l)return null;if(!te(o.type,[J(It),Bt,It]))return r.error(`Expected first argument to be of type array or string, but found ${Q(o.type)} instead`);if(e.length===4){const h=r.parse(e[3],3,We);return h?new ca(o.type,o,l,h):null}return new ca(o.type,o,l)}evaluate(e){const r=this.input.evaluate(e),o=this.beginIndex.evaluate(e);if(!ae(r,["string","array"]))throw new Wi(`Expected first argument to be of type array or string, but found ${Q(Gi(r))} instead.`);if(this.endIndex){const l=this.endIndex.evaluate(e);return r.slice(o,l)}return r.slice(o)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}}function Is(i,e){return i==="=="||i==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function ua(i,e,r,o){return o.compare(e,r)===0}function Wo(i,e,r){const o=i!=="=="&&i!=="!=";return class $p{constructor(h,p,y){this.type=Mt,this.lhs=h,this.rhs=p,this.collator=y,this.hasUntypedArgument=h.type.kind==="value"||p.type.kind==="value"}static parse(h,p){if(h.length!==3&&h.length!==4)return p.error("Expected two or three arguments.");const y=h[0];let w=p.parse(h[1],1,It);if(!w)return null;if(!Is(y,w.type))return p.concat(1).error(`"${y}" comparisons are not supported for type '${Q(w.type)}'.`);let T=p.parse(h[2],2,It);if(!T)return null;if(!Is(y,T.type))return p.concat(2).error(`"${y}" comparisons are not supported for type '${Q(T.type)}'.`);if(w.type.kind!==T.type.kind&&w.type.kind!=="value"&&T.type.kind!=="value")return p.error(`Cannot compare types '${Q(w.type)}' and '${Q(T.type)}'.`);o&&(w.type.kind==="value"&&T.type.kind!=="value"?w=new kn(T.type,[w]):w.type.kind!=="value"&&T.type.kind==="value"&&(T=new kn(w.type,[T])));let M=null;if(h.length===4){if(w.type.kind!=="string"&&T.type.kind!=="string"&&w.type.kind!=="value"&&T.type.kind!=="value")return p.error("Cannot use collator to compare non-string types.");if(M=p.parse(h[3],3,Mn),!M)return null}return new $p(w,T,M)}evaluate(h){const p=this.lhs.evaluate(h),y=this.rhs.evaluate(h);if(o&&this.hasUntypedArgument){const w=Gi(p),T=Gi(y);if(w.kind!==T.kind||w.kind!=="string"&&w.kind!=="number")throw new Wi(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${w.kind}, ${T.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const w=Gi(p),T=Gi(y);if(w.kind!=="string"||T.kind!=="string")return e(h,p,y)}return this.collator?r(h,p,y,this.collator.evaluate(h)):e(h,p,y)}eachChild(h){h(this.lhs),h(this.rhs),this.collator&&h(this.collator)}outputDefined(){return!0}}}const eo=Wo("==",function(i,e,r){return e===r},ua),sl=Wo("!=",function(i,e,r){return e!==r},function(i,e,r,o){return!ua(0,e,r,o)}),al=Wo("<",function(i,e,r){return e",function(i,e,r){return e>r},function(i,e,r,o){return o.compare(e,r)>0}),ll=Wo("<=",function(i,e,r){return e<=r},function(i,e,r,o){return o.compare(e,r)<=0}),ha=Wo(">=",function(i,e,r){return e>=r},function(i,e,r,o){return o.compare(e,r)>=0});class da{constructor(e,r,o,l,h){this.type=Bt,this.number=e,this.locale=r,this.currency=o,this.minFractionDigits=l,this.maxFractionDigits=h}static parse(e,r){if(e.length!==3)return r.error("Expected two arguments.");const o=r.parse(e[1],1,We);if(!o)return null;const l=e[2];if(typeof l!="object"||Array.isArray(l))return r.error("NumberFormat options argument must be an object.");let h=null;if(l.locale&&(h=r.parse(l.locale,1,Bt),!h))return null;let p=null;if(l.currency&&(p=r.parse(l.currency,1,Bt),!p))return null;let y=null;if(l["min-fraction-digits"]&&(y=r.parse(l["min-fraction-digits"],1,We),!y))return null;let w=null;return l["max-fraction-digits"]&&(w=r.parse(l["max-fraction-digits"],1,We),!w)?null:new da(o,h,p,y,w)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}}class Es{constructor(e){this.type=X,this.sections=e}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const o=e[1];if(!Array.isArray(o)&&typeof o=="object")return r.error("First argument must be an image or text section.");const l=[];let h=!1;for(let p=1;p<=e.length-1;++p){const y=e[p];if(h&&typeof y=="object"&&!Array.isArray(y)){h=!1;let w=null;if(y["font-scale"]&&(w=r.parse(y["font-scale"],1,We),!w))return null;let T=null;if(y["text-font"]&&(T=r.parse(y["text-font"],1,J(Bt)),!T))return null;let M=null;if(y["text-color"]&&(M=r.parse(y["text-color"],1,Vr),!M))return null;const z=l[l.length-1];z.scale=w,z.font=T,z.textColor=M}else{const w=r.parse(e[p],1,It);if(!w)return null;const T=w.type.kind;if(T!=="string"&&T!=="value"&&T!=="null"&&T!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");h=!0,l.push({content:w,scale:null,font:null,textColor:null})}}return new Es(l)}evaluate(e){return new ji(this.sections.map(r=>{const o=r.content.evaluate(e);return Gi(o)===F?new jn("",o,null,null,null):new jn(ui(o),null,r.scale?r.scale.evaluate(e):null,r.font?r.font.evaluate(e).join(","):null,r.textColor?r.textColor.evaluate(e):null)}))}eachChild(e){for(const r of this.sections)e(r.content),r.scale&&e(r.scale),r.font&&e(r.font),r.textColor&&e(r.textColor)}outputDefined(){return!1}}class Ua{constructor(e){this.type=F,this.input=e}static parse(e,r){if(e.length!==2)return r.error("Expected two arguments.");const o=r.parse(e[1],1,Bt);return o?new Ua(o):r.error("No image name provided.")}evaluate(e){const r=this.input.evaluate(e),o=Ir.fromString(r);return o&&e.availableImages&&(o.available=e.availableImages.indexOf(r)>-1),o}eachChild(e){e(this.input)}outputDefined(){return!1}}class po{constructor(e){this.type=We,this.input=e}static parse(e,r){if(e.length!==2)return r.error(`Expected 1 argument, but found ${e.length-1} instead.`);const o=r.parse(e[1],1);return o?o.type.kind!=="array"&&o.type.kind!=="string"&&o.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${Q(o.type)} instead.`):new po(o):null}evaluate(e){const r=this.input.evaluate(e);if(typeof r=="string"||Array.isArray(r))return r.length;throw new Wi(`Expected value to be of type string or array, but found ${Q(Gi(r))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}}const Ho={"==":eo,"!=":sl,">":Dl,"<":al,">=":ha,"<=":ll,array:kn,at:Na,boolean:kn,case:Va,coalesce:oa,collator:O,format:Es,image:Ua,in:aa,"index-of":Ts,interpolate:on,"interpolate-hcl":on,"interpolate-lab":on,length:po,let:sa,literal:uo,match:la,number:kn,"number-format":da,object:kn,slice:ca,step:ho,string:kn,"to-boolean":Eo,"to-color":Eo,"to-number":Eo,"to-string":Eo,var:tr,within:Xi};function cl(i,[e,r,o,l]){e=e.evaluate(i),r=r.evaluate(i),o=o.evaluate(i);const h=l?l.evaluate(i):1,p=ta(e,r,o,h);if(p)throw new Wi(p);return new gi(e/255,r/255,o/255,h,!1)}function ul(i,e){return i in e}function Cs(i,e){const r=e[i];return r===void 0?null:r}function qn(i){return{type:i}}function pa(i){return{result:"success",value:i}}function to(i){return{result:"error",value:i}}function Co(i){return i["property-type"]==="data-driven"||i["property-type"]==="cross-faded-data-driven"}function as(i){return!!i.expression&&i.expression.parameters.indexOf("zoom")>-1}function ja(i){return!!i.expression&&i.expression.interpolated}function fi(i){return i instanceof Number?"number":i instanceof String?"string":i instanceof Boolean?"boolean":Array.isArray(i)?"array":i===null?"null":typeof i}function Ki(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)}function Fl(i){return i}function Yt(i,e){const r=e.type==="color",o=i.stops&&typeof i.stops[0][0]=="object",l=o||!(o||i.property!==void 0),h=i.type||(ja(e)?"exponential":"interval");if(r||e.type==="padding"){const M=r?gi.parse:jr.parse;(i=fn({},i)).stops&&(i.stops=i.stops.map(z=>[z[0],M(z[1])])),i.default=M(i.default?i.default:e.default)}if(i.colorSpace&&(p=i.colorSpace)!=="rgb"&&p!=="hcl"&&p!=="lab")throw new Error(`Unknown color space: "${i.colorSpace}"`);var p;let y,w,T;if(h==="exponential")y=_n;else if(h==="interval")y=vi;else if(h==="categorical"){y=Ni,w=Object.create(null);for(const M of i.stops)w[M[0]]=M[1];T=typeof i.stops[0][0]}else{if(h!=="identity")throw new Error(`Unknown function type "${h}"`);y=Ao}if(o){const M={},z=[];for(let U=0;UU[0]),evaluate:({zoom:U},Z)=>_n({stops:D,base:i.base},e,U).evaluate(U,Z)}}if(l){const M=h==="exponential"?{name:"exponential",base:i.base!==void 0?i.base:1}:null;return{kind:"camera",interpolationType:M,interpolationFactor:on.interpolationFactor.bind(void 0,M),zoomStops:i.stops.map(z=>z[0]),evaluate:({zoom:z})=>y(i,e,z,w,T)}}return{kind:"source",evaluate(M,z){const D=z&&z.properties?z.properties[i.property]:void 0;return D===void 0?Mo(i.default,e.default):y(i,e,D,w,T)}}}function Mo(i,e,r){return i!==void 0?i:e!==void 0?e:r!==void 0?r:void 0}function Ni(i,e,r,o,l){return Mo(typeof r===l?o[r]:void 0,i.default,e.default)}function vi(i,e,r){if(fi(r)!=="number")return Mo(i.default,e.default);const o=i.stops.length;if(o===1||r<=i.stops[0][0])return i.stops[0][1];if(r>=i.stops[o-1][0])return i.stops[o-1][1];const l=nn(i.stops.map(h=>h[0]),r);return i.stops[l][1]}function _n(i,e,r){const o=i.base!==void 0?i.base:1;if(fi(r)!=="number")return Mo(i.default,e.default);const l=i.stops.length;if(l===1||r<=i.stops[0][0])return i.stops[0][1];if(r>=i.stops[l-1][0])return i.stops[l-1][1];const h=nn(i.stops.map(M=>M[0]),r),p=function(M,z,D,V){const U=V-D,Z=M-D;return U===0?0:z===1?Z/U:(Math.pow(z,Z)-1)/(Math.pow(z,U)-1)}(r,o,i.stops[h][0],i.stops[h+1][0]),y=i.stops[h][1],w=i.stops[h+1][1],T=Wr[e.type]||Fl;return typeof y.evaluate=="function"?{evaluate(...M){const z=y.evaluate.apply(void 0,M),D=w.evaluate.apply(void 0,M);if(z!==void 0&&D!==void 0)return T(z,D,p,i.colorSpace)}}:T(y,w,p,i.colorSpace)}function Ao(i,e,r){switch(e.type){case"color":r=gi.parse(r);break;case"formatted":r=ji.fromString(r.toString());break;case"resolvedImage":r=Ir.fromString(r.toString());break;case"padding":r=jr.parse(r);break;default:fi(r)===e.type||e.type==="enum"&&e.values[r]||(r=void 0)}return Mo(r,i.default,e.default)}rn.register(Ho,{error:[{kind:"error"},[Bt],(i,[e])=>{throw new Wi(e.evaluate(i))}],typeof:[Bt,[It],(i,[e])=>Q(Gi(e.evaluate(i)))],"to-rgba":[J(We,4),[Vr],(i,[e])=>{const[r,o,l,h]=e.evaluate(i).rgb;return[255*r,255*o,255*l,h]}],rgb:[Vr,[We,We,We],cl],rgba:[Vr,[We,We,We,We],cl],has:{type:Mt,overloads:[[[Bt],(i,[e])=>ul(e.evaluate(i),i.properties())],[[Bt,mn],(i,[e,r])=>ul(e.evaluate(i),r.evaluate(i))]]},get:{type:It,overloads:[[[Bt],(i,[e])=>Cs(e.evaluate(i),i.properties())],[[Bt,mn],(i,[e,r])=>Cs(e.evaluate(i),r.evaluate(i))]]},"feature-state":[It,[Bt],(i,[e])=>Cs(e.evaluate(i),i.featureState||{})],properties:[mn,[],i=>i.properties()],"geometry-type":[Bt,[],i=>i.geometryType()],id:[It,[],i=>i.id()],zoom:[We,[],i=>i.globals.zoom],"heatmap-density":[We,[],i=>i.globals.heatmapDensity||0],"line-progress":[We,[],i=>i.globals.lineProgress||0],accumulated:[It,[],i=>i.globals.accumulated===void 0?null:i.globals.accumulated],"+":[We,qn(We),(i,e)=>{let r=0;for(const o of e)r+=o.evaluate(i);return r}],"*":[We,qn(We),(i,e)=>{let r=1;for(const o of e)r*=o.evaluate(i);return r}],"-":{type:We,overloads:[[[We,We],(i,[e,r])=>e.evaluate(i)-r.evaluate(i)],[[We],(i,[e])=>-e.evaluate(i)]]},"/":[We,[We,We],(i,[e,r])=>e.evaluate(i)/r.evaluate(i)],"%":[We,[We,We],(i,[e,r])=>e.evaluate(i)%r.evaluate(i)],ln2:[We,[],()=>Math.LN2],pi:[We,[],()=>Math.PI],e:[We,[],()=>Math.E],"^":[We,[We,We],(i,[e,r])=>Math.pow(e.evaluate(i),r.evaluate(i))],sqrt:[We,[We],(i,[e])=>Math.sqrt(e.evaluate(i))],log10:[We,[We],(i,[e])=>Math.log(e.evaluate(i))/Math.LN10],ln:[We,[We],(i,[e])=>Math.log(e.evaluate(i))],log2:[We,[We],(i,[e])=>Math.log(e.evaluate(i))/Math.LN2],sin:[We,[We],(i,[e])=>Math.sin(e.evaluate(i))],cos:[We,[We],(i,[e])=>Math.cos(e.evaluate(i))],tan:[We,[We],(i,[e])=>Math.tan(e.evaluate(i))],asin:[We,[We],(i,[e])=>Math.asin(e.evaluate(i))],acos:[We,[We],(i,[e])=>Math.acos(e.evaluate(i))],atan:[We,[We],(i,[e])=>Math.atan(e.evaluate(i))],min:[We,qn(We),(i,e)=>Math.min(...e.map(r=>r.evaluate(i)))],max:[We,qn(We),(i,e)=>Math.max(...e.map(r=>r.evaluate(i)))],abs:[We,[We],(i,[e])=>Math.abs(e.evaluate(i))],round:[We,[We],(i,[e])=>{const r=e.evaluate(i);return r<0?-Math.round(-r):Math.round(r)}],floor:[We,[We],(i,[e])=>Math.floor(e.evaluate(i))],ceil:[We,[We],(i,[e])=>Math.ceil(e.evaluate(i))],"filter-==":[Mt,[Bt,It],(i,[e,r])=>i.properties()[e.value]===r.value],"filter-id-==":[Mt,[It],(i,[e])=>i.id()===e.value],"filter-type-==":[Mt,[Bt],(i,[e])=>i.geometryType()===e.value],"filter-<":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o{const r=i.id(),o=e.value;return typeof r==typeof o&&r":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o>l}],"filter-id->":[Mt,[It],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r>o}],"filter-<=":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o<=l}],"filter-id-<=":[Mt,[It],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r<=o}],"filter->=":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o>=l}],"filter-id->=":[Mt,[It],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r>=o}],"filter-has":[Mt,[It],(i,[e])=>e.value in i.properties()],"filter-has-id":[Mt,[],i=>i.id()!==null&&i.id()!==void 0],"filter-type-in":[Mt,[J(Bt)],(i,[e])=>e.value.indexOf(i.geometryType())>=0],"filter-id-in":[Mt,[J(It)],(i,[e])=>e.value.indexOf(i.id())>=0],"filter-in-small":[Mt,[Bt,J(It)],(i,[e,r])=>r.value.indexOf(i.properties()[e.value])>=0],"filter-in-large":[Mt,[Bt,J(It)],(i,[e,r])=>function(o,l,h,p){for(;h<=p;){const y=h+p>>1;if(l[y]===o)return!0;l[y]>o?p=y-1:h=y+1}return!1}(i.properties()[e.value],r.value,0,r.value.length-1)],all:{type:Mt,overloads:[[[Mt,Mt],(i,[e,r])=>e.evaluate(i)&&r.evaluate(i)],[qn(Mt),(i,e)=>{for(const r of e)if(!r.evaluate(i))return!1;return!0}]]},any:{type:Mt,overloads:[[[Mt,Mt],(i,[e,r])=>e.evaluate(i)||r.evaluate(i)],[qn(Mt),(i,e)=>{for(const r of e)if(r.evaluate(i))return!0;return!1}]]},"!":[Mt,[Mt],(i,[e])=>!e.evaluate(i)],"is-supported-script":[Mt,[Bt],(i,[e])=>{const r=i.globals&&i.globals.isSupportedScript;return!r||r(e.evaluate(i))}],upcase:[Bt,[Bt],(i,[e])=>e.evaluate(i).toUpperCase()],downcase:[Bt,[Bt],(i,[e])=>e.evaluate(i).toLowerCase()],concat:[Bt,qn(It),(i,e)=>e.map(r=>ui(r.evaluate(i))).join("")],"resolved-locale":[Bt,[Mn],(i,[e])=>e.evaluate(i).resolvedLocale()]});class ls{constructor(e,r){var o;this.expression=e,this._warningHistory={},this._evaluator=new g,this._defaultValue=r?(o=r).type==="color"&&Ki(o.default)?new gi(0,0,0,0):o.type==="color"?gi.parse(o.default)||null:o.type==="padding"?jr.parse(o.default)||null:o.type==="variableAnchorOffsetCollection"?Tr.parse(o.default)||null:o.default===void 0?null:o.default:null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(e,r,o,l,h,p){return this._evaluator.globals=e,this._evaluator.feature=r,this._evaluator.featureState=o,this._evaluator.canonical=l,this._evaluator.availableImages=h||null,this._evaluator.formattedSection=p,this.expression.evaluate(this._evaluator)}evaluate(e,r,o,l,h,p){this._evaluator.globals=e,this._evaluator.feature=r||null,this._evaluator.featureState=o||null,this._evaluator.canonical=l,this._evaluator.availableImages=h||null,this._evaluator.formattedSection=p||null;try{const y=this.expression.evaluate(this._evaluator);if(y==null||typeof y=="number"&&y!=y)return this._defaultValue;if(this._enumValues&&!(y in this._enumValues))throw new Wi(`Expected value to be one of ${Object.keys(this._enumValues).map(w=>JSON.stringify(w)).join(", ")}, but found ${JSON.stringify(y)} instead.`);return y}catch(y){return this._warningHistory[y.message]||(this._warningHistory[y.message]=!0,typeof console<"u"&&console.warn(y.message)),this._defaultValue}}}function Zn(i){return Array.isArray(i)&&i.length>0&&typeof i[0]=="string"&&i[0]in Ho}function fa(i,e){const r=new I(Ho,ia,[],e?function(l){const h={color:Vr,string:Bt,number:We,enum:Bt,boolean:Mt,formatted:X,padding:L,resolvedImage:F,variableAnchorOffsetCollection:j};return l.type==="array"?J(h[l.value]||It,l.length):h[l.type]}(e):void 0),o=r.parse(i,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?pa(new ls(o,e)):to(r.errors)}class cs{constructor(e,r){this.kind=e,this._styleExpression=r,this.isStateDependent=e!=="constant"&&!ss(r.expression)}evaluateWithoutErrorHandling(e,r,o,l,h,p){return this._styleExpression.evaluateWithoutErrorHandling(e,r,o,l,h,p)}evaluate(e,r,o,l,h,p){return this._styleExpression.evaluate(e,r,o,l,h,p)}}class ko{constructor(e,r,o,l){this.kind=e,this.zoomStops=o,this._styleExpression=r,this.isStateDependent=e!=="camera"&&!ss(r.expression),this.interpolationType=l}evaluateWithoutErrorHandling(e,r,o,l,h,p){return this._styleExpression.evaluateWithoutErrorHandling(e,r,o,l,h,p)}evaluate(e,r,o,l,h,p){return this._styleExpression.evaluate(e,r,o,l,h,p)}interpolationFactor(e,r,o){return this.interpolationType?on.interpolationFactor(this.interpolationType,e,r,o):0}}function ma(i,e){const r=fa(i,e);if(r.result==="error")return r;const o=r.value.expression,l=Ci(o);if(!l&&!Co(e))return to([new er("","data expressions not supported")]);const h=ra(o,["zoom"]);if(!h&&!as(e))return to([new er("","zoom expressions not supported")]);const p=Ms(o);return p||h?p instanceof er?to([p]):p instanceof on&&!ja(e)?to([new er("",'"interpolate" expressions cannot be used with this property')]):pa(p?new ko(l?"camera":"composite",r.value,p.labels,p instanceof on?p.interpolation:void 0):new cs(l?"constant":"source",r.value)):to([new er("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class us{constructor(e,r){this._parameters=e,this._specification=r,fn(this,Yt(this._parameters,this._specification))}static deserialize(e){return new us(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function Ms(i){let e=null;if(i instanceof sa)e=Ms(i.result);else if(i instanceof oa){for(const r of i.args)if(e=Ms(r),e)break}else(i instanceof ho||i instanceof on)&&i.input instanceof rn&&i.input.name==="zoom"&&(e=i);return e instanceof er||i.eachChild(r=>{const o=Ms(r);o instanceof er?e=o:!e&&o?e=new er("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&o&&e!==o&&(e=new er("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function As(i){if(i===!0||i===!1)return!0;if(!Array.isArray(i)||i.length===0)return!1;switch(i[0]){case"has":return i.length>=2&&i[1]!=="$id"&&i[1]!=="$type";case"in":return i.length>=3&&(typeof i[1]!="string"||Array.isArray(i[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return i.length!==3||Array.isArray(i[1])||Array.isArray(i[2]);case"any":case"all":for(const e of i.slice(1))if(!As(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}const hl={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function _a(i){if(i==null)return{filter:()=>!0,needGeometry:!1};As(i)||(i=ya(i));const e=fa(i,hl);if(e.result==="error")throw new Error(e.value.map(r=>`${r.key}: ${r.message}`).join(", "));return{filter:(r,o,l)=>e.value.evaluate(r,o,{},l),needGeometry:Xo(i)}}function ga(i,e){return ie?1:0}function Xo(i){if(!Array.isArray(i))return!1;if(i[0]==="within")return!0;for(let e=1;e"||e==="<="||e===">="?io(i[1],i[2],e):e==="any"?(r=i.slice(1),["any"].concat(r.map(ya))):e==="all"?["all"].concat(i.slice(1).map(ya)):e==="none"?["all"].concat(i.slice(1).map(ya).map(hs)):e==="in"?dl(i[1],i.slice(2)):e==="!in"?hs(dl(i[1],i.slice(2))):e==="has"?Po(i[1]):e==="!has"?hs(Po(i[1])):e!=="within"||i;var r}function io(i,e,r){switch(i){case"$type":return[`filter-type-${r}`,e];case"$id":return[`filter-id-${r}`,e];default:return[`filter-${r}`,i,e]}}function dl(i,e){if(e.length===0)return!1;switch(i){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(r=>typeof r!=typeof e[0])?["filter-in-large",i,["literal",e.sort(ga)]]:["filter-in-small",i,["literal",e]]}}function Po(i){switch(i){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",i]}}function hs(i){return["!",i]}function va(i){const e=typeof i;if(e==="number"||e==="boolean"||e==="string"||i==null)return JSON.stringify(i);if(Array.isArray(i)){let l="[";for(const h of i)l+=`${va(h)},`;return`${l}]`}const r=Object.keys(i).sort();let o="{";for(let l=0;lo.maximum?[new qe(e,r,`${r} is greater than the maximum value ${o.maximum}`)]:[]}function ba(i){const e=i.valueSpec,r=Ji(i.value.type);let o,l,h,p={};const y=r!=="categorical"&&i.value.property===void 0,w=!y,T=fi(i.value.stops)==="array"&&fi(i.value.stops[0])==="array"&&fi(i.value.stops[0][0])==="object",M=Hr({key:i.key,value:i.value,valueSpec:i.styleSpec.function,validateSpec:i.validateSpec,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{stops:function(V){if(r==="identity")return[new qe(V.key,V.value,'identity function may not have a "stops" property')];let U=[];const Z=V.value;return U=U.concat(ro({key:V.key,value:Z,valueSpec:V.valueSpec,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec,arrayElementValidator:z})),fi(Z)==="array"&&Z.length===0&&U.push(new qe(V.key,Z,"array must have at least one stop")),U},default:function(V){return V.validateSpec({key:V.key,value:V.value,valueSpec:e,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec})}}});return r==="identity"&&y&&M.push(new qe(i.key,i.value,'missing required property "property"')),r==="identity"||i.value.stops||M.push(new qe(i.key,i.value,'missing required property "stops"')),r==="exponential"&&i.valueSpec.expression&&!ja(i.valueSpec)&&M.push(new qe(i.key,i.value,"exponential functions not supported")),i.styleSpec.$version>=8&&(w&&!Co(i.valueSpec)?M.push(new qe(i.key,i.value,"property functions not supported")):y&&!as(i.valueSpec)&&M.push(new qe(i.key,i.value,"zoom functions not supported"))),r!=="categorical"&&!T||i.value.property!==void 0||M.push(new qe(i.key,i.value,'"property" property is required')),M;function z(V){let U=[];const Z=V.value,$=V.key;if(fi(Z)!=="array")return[new qe($,Z,`array expected, ${fi(Z)} found`)];if(Z.length!==2)return[new qe($,Z,`array length 2 expected, length ${Z.length} found`)];if(T){if(fi(Z[0])!=="object")return[new qe($,Z,`object expected, ${fi(Z[0])} found`)];if(Z[0].zoom===void 0)return[new qe($,Z,"object stop key must have zoom")];if(Z[0].value===void 0)return[new qe($,Z,"object stop key must have value")];if(h&&h>Ji(Z[0].zoom))return[new qe($,Z[0].zoom,"stop zoom values must appear in ascending order")];Ji(Z[0].zoom)!==h&&(h=Ji(Z[0].zoom),l=void 0,p={}),U=U.concat(Hr({key:`${$}[0]`,value:Z[0],valueSpec:{zoom:{}},validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec,objectElementValidators:{zoom:ds,value:D}}))}else U=U.concat(D({key:`${$}[0]`,value:Z[0],valueSpec:{},validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec},Z));return Zn(zo(Z[1]))?U.concat([new qe(`${$}[1]`,Z[1],"expressions are not allowed in function stops.")]):U.concat(V.validateSpec({key:`${$}[1]`,value:Z[1],valueSpec:e,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec}))}function D(V,U){const Z=fi(V.value),$=Ji(V.value),ie=V.value!==null?V.value:U;if(o){if(Z!==o)return[new qe(V.key,ie,`${Z} stop domain type must match previous stop domain type ${o}`)]}else o=Z;if(Z!=="number"&&Z!=="string"&&Z!=="boolean")return[new qe(V.key,ie,"stop domain value must be a number, string, or boolean")];if(Z!=="number"&&r!=="categorical"){let ue=`number expected, ${Z} found`;return Co(e)&&r===void 0&&(ue+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new qe(V.key,ie,ue)]}return r!=="categorical"||Z!=="number"||isFinite($)&&Math.floor($)===$?r!=="categorical"&&Z==="number"&&l!==void 0&&$new qe(`${i.key}${o.key}`,i.value,o.message));const r=e.value.expression||e.value._styleExpression.expression;if(i.expressionContext==="property"&&i.propertyKey==="text-font"&&!r.outputDefined())return[new qe(i.key,i.value,`Invalid data expression for "${i.propertyKey}". Output values must be contained as literals within the expression.`)];if(i.expressionContext==="property"&&i.propertyType==="layout"&&!ss(r))return[new qe(i.key,i.value,'"feature-state" data expressions are not supported with layout properties.')];if(i.expressionContext==="filter"&&!ss(r))return[new qe(i.key,i.value,'"feature-state" data expressions are not supported with filters.')];if(i.expressionContext&&i.expressionContext.indexOf("cluster")===0){if(!ra(r,["zoom","feature-state"]))return[new qe(i.key,i.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(i.expressionContext==="cluster-initial"&&!Ci(r))return[new qe(i.key,i.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function we(i){const e=i.key,r=i.value,o=i.valueSpec,l=[];return Array.isArray(o.values)?o.values.indexOf(Ji(r))===-1&&l.push(new qe(e,r,`expected one of [${o.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(o.values).indexOf(Ji(r))===-1&&l.push(new qe(e,r,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(r)} found`)),l}function Ye(i){return As(zo(i.value))?de(fn({},i,{expressionContext:"filter",valueSpec:{value:"boolean"}})):wt(i)}function wt(i){const e=i.value,r=i.key;if(fi(e)!=="array")return[new qe(r,e,`array expected, ${fi(e)} found`)];const o=i.styleSpec;let l,h=[];if(e.length<1)return[new qe(r,e,"filter array must have at least 1 element")];switch(h=h.concat(we({key:`${r}[0]`,value:e[0],valueSpec:o.filter_operator,style:i.style,styleSpec:i.styleSpec})),Ji(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Ji(e[1])==="$type"&&h.push(new qe(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&h.push(new qe(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(l=fi(e[1]),l!=="string"&&h.push(new qe(`${r}[1]`,e[1],`string expected, ${l} found`)));for(let p=2;pf in m?a_(m,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):m[f]=_;var Nn=(m,f,_)=>(l_(m,typeof f!="symbol"?f+"":f,_),_);(function(){const f=document.createElement("link").relList;if(f&&f.supports&&f.supports("modulepreload"))return;for(const E of document.querySelectorAll('link[rel="modulepreload"]'))v(E);new MutationObserver(E=>{for(const k of E)if(k.type==="childList")for(const B of k.addedNodes)B.tagName==="LINK"&&B.rel==="modulepreload"&&v(B)}).observe(document,{childList:!0,subtree:!0});function _(E){const k={};return E.integrity&&(k.integrity=E.integrity),E.referrerPolicy&&(k.referrerPolicy=E.referrerPolicy),E.crossOrigin==="use-credentials"?k.credentials="include":E.crossOrigin==="anonymous"?k.credentials="omit":k.credentials="same-origin",k}function v(E){if(E.ep)return;E.ep=!0;const k=_(E);fetch(E.href,k)}})();function Mr(){}function c_(m,f){for(const _ in f)m[_]=f[_];return m}function Np(m){return m()}function pp(){return Object.create(null)}function Ra(m){m.forEach(Np)}function Th(m){return typeof m=="function"}function Sr(m,f){return m!=m?f==f:m!==f||m&&typeof m=="object"||typeof m=="function"}function u_(m){return Object.keys(m).length===0}function Vp(m,...f){if(m==null){for(const v of f)v(void 0);return Mr}const _=m.subscribe(...f);return _.unsubscribe?()=>_.unsubscribe():_}function h_(m){let f;return Vp(m,_=>f=_)(),f}function Qr(m,f,_){m.$$.on_destroy.push(Vp(f,_))}function Ks(m,f,_,v){if(m){const E=Up(m,f,_,v);return m[0](E)}}function Up(m,f,_,v){return m[1]&&v?c_(_.ctx.slice(),m[1](v(f))):_.ctx}function Js(m,f,_,v){if(m[2]&&v){const E=m[2](v(_));if(f.dirty===void 0)return E;if(typeof E=="object"){const k=[],B=Math.max(f.dirty.length,E.length);for(let s=0;s32){const f=[],_=m.ctx.length/32;for(let v=0;v<_;v++)f[v]=-1;return f}return-1}function d_(m){const f={};for(const _ in m)f[_]=!0;return f}function fp(m){return m??""}function il(m,f,_){return m.set(_),f}function p_(m){return m&&Th(m.destroy)?m.destroy:Mr}function _i(m,f){m.appendChild(f)}function hi(m,f,_){m.insertBefore(f,_||null)}function li(m){m.parentNode&&m.parentNode.removeChild(m)}function f_(m,f){for(let _=0;_m.removeEventListener(f,_,v)}function vs(m,f,_){_==null?m.removeAttribute(f):m.getAttribute(f)!==_&&m.setAttribute(f,_)}function m_(m){return Array.from(m.childNodes)}function yh(m,f){f=""+f,m.data!==f&&(m.data=f)}function Uo(m,f){m.value=f??""}function Tc(m,f,_,v){_==null?m.style.removeProperty(f):m.style.setProperty(f,_,v?"important":"")}function mp(m,f,_){for(let v=0;v{const E=m.$$.callbacks[f];if(E){const k=g_(f,_,{cancelable:v});return E.slice().forEach(B=>{B.call(m,k)}),!k.defaultPrevented}return!0}}function qp(m,f){return kc().$$.context.set(m,f),f}function y_(m){return kc().$$.context.get(m)}function pn(m,f){const _=m.$$.callbacks[f.type];_&&_.slice().forEach(v=>v.call(this,f))}const Ml=[],$s=[];let Pl=[];const vh=[],Zp=Promise.resolve();let xh=!1;function Gp(){xh||(xh=!0,Zp.then(Wp))}function v_(){return Gp(),Zp}function _u(m){Pl.push(m)}function Pc(m){vh.push(m)}const dh=new Set;let El=0;function Wp(){if(El!==0)return;const m=Ac;do{try{for(;Elm.indexOf(v)===-1?f.push(v):_.push(v)),_.forEach(v=>v()),Pl=f}const hu=new Set;let tl;function rs(){tl={r:0,c:[],p:tl}}function ns(){tl.r||Ra(tl.c),tl=tl.p}function ft(m,f){m&&m.i&&(hu.delete(m),m.i(f))}function St(m,f,_,v){if(m&&m.o){if(hu.has(m))return;hu.add(m),tl.c.push(()=>{hu.delete(m),v&&(_&&m.d(1),v())}),m.o(f)}else v&&v()}function gp(m){return(m==null?void 0:m.length)!==void 0?m:Array.from(m)}function zc(m,f,_){const v=m.$$.props[f];v!==void 0&&(m.$$.bound[v]=_,_(m.$$.ctx[v]))}function Ri(m){m&&m.c()}function Ai(m,f,_){const{fragment:v,after_update:E}=m.$$;v&&v.m(f,_),_u(()=>{const k=m.$$.on_mount.map(Np).filter(Th);m.$$.on_destroy?m.$$.on_destroy.push(...k):Ra(k),m.$$.on_mount=[]}),E.forEach(_u)}function ki(m,f){const _=m.$$;_.fragment!==null&&(b_(_.after_update),Ra(_.on_destroy),_.fragment&&_.fragment.d(f),_.on_destroy=_.fragment=null,_.ctx=[])}function w_(m,f){m.$$.dirty[0]===-1&&(Ml.push(m),Gp(),m.$$.dirty.fill(0)),m.$$.dirty[f/31|0]|=1<{const Le=Oe.length?Oe[0]:ye;return N.ctx&&E(N.ctx[be],N.ctx[be]=Le)&&(!N.skip_bound&&N.bound[be]&&N.bound[be](Le),_e&&w_(m,be)),ye}):[],N.update(),_e=!0,Ra(N.before_update),N.fragment=v?v(N.ctx):!1,f.target){if(f.hydrate){const be=m_(f.target);N.fragment&&N.fragment.l(be),be.forEach(li)}else N.fragment&&N.fragment.c();f.intro&&ft(m.$$.fragment),Ai(m,f.target,f.anchor),Wp()}Ic(H)}class Gr{constructor(){Nn(this,"$$");Nn(this,"$$set")}$destroy(){ki(this,1),this.$destroy=Mr}$on(f,_){if(!Th(_))return Mr;const v=this.$$.callbacks[f]||(this.$$.callbacks[f]=[]);return v.push(_),()=>{const E=v.indexOf(_);E!==-1&&v.splice(E,1)}}$set(f){this.$$set&&!u_(f)&&(this.$$.skip_bound=!0,this.$$set(f),this.$$.skip_bound=!1)}}const S_="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(S_);function Hp(m,f,_){if(m!==null)for(var v,E,k,B,s,H,N,_e=0,be=0,ye,Oe=m.type,Le=Oe==="FeatureCollection",Be=Oe==="Feature",Ne=Le?m.features.length:1,et=0;et_[0]&&(f[0]=_[0]),f[1]>_[1]&&(f[1]=_[1]),f[2]<_[0]&&(f[2]=_[0]),f[3]<_[1]&&(f[3]=_[1])}),f}bh.default=bh;let Si;const Ws=new Array(128).fill(void 0);Ws.push(void 0,null,!0,!1);function oi(m){return Ws[m]}let Ec=Ws.length;function T_(m){m<132||(Ws[m]=Ec,Ec=m)}function du(m){const f=oi(m);return T_(m),f}let rl=0,gc=null;function zl(){return(gc===null||gc.byteLength===0)&&(gc=new Uint8Array(Si.memory.buffer)),gc}const pu=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},I_=typeof pu.encodeInto=="function"?function(m,f){return pu.encodeInto(m,f)}:function(m,f){const _=pu.encode(m);return f.set(_),{read:m.length,written:_.length}};function ph(m,f,_){if(_===void 0){const s=pu.encode(m),H=f(s.length,1)>>>0;return zl().subarray(H,H+s.length).set(s),rl=s.length,H}let v=m.length,E=f(v,1)>>>0;const k=zl();let B=0;for(;B127)break;k[E+B]=s}if(B!==v){B!==0&&(m=m.slice(B)),E=_(E,v,v=B+m.length*3,1)>>>0;const s=zl().subarray(E+B,E+v),H=I_(m,s);B+=H.written}return rl=B,E}function mc(m){return m==null}let yc=null;function Br(){return(yc===null||yc.byteLength===0)&&(yc=new Int32Array(Si.memory.buffer)),yc}function dn(m){Ec===Ws.length&&Ws.push(Ws.length+1);const f=Ec;return Ec=Ws[f],Ws[f]=m,f}let vc=null;function E_(){return(vc===null||vc.byteLength===0)&&(vc=new Float64Array(Si.memory.buffer)),vc}const Xp=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&Xp.decode();function kl(m,f){return m=m>>>0,Xp.decode(zl().subarray(m,m+f))}let xc=null;function C_(){return(xc===null||xc.byteLength===0)&&(xc=new BigInt64Array(Si.memory.buffer)),xc}function wh(m){const f=typeof m;if(f=="number"||f=="boolean"||m==null)return`${m}`;if(f=="string")return`"${m}"`;if(f=="symbol"){const E=m.description;return E==null?"Symbol":`Symbol(${E})`}if(f=="function"){const E=m.name;return typeof E=="string"&&E.length>0?`Function(${E})`:"Function"}if(Array.isArray(m)){const E=m.length;let k="[";E>0&&(k+=wh(m[0]));for(let B=1;B1)v=_[1];else return toString.call(m);if(v=="Object")try{return"Object("+JSON.stringify(m)+")"}catch{return"Object"}return m instanceof Error?`${m.name}: ${m.message} +${m.stack}`:v}function M_(m,f){const _=f(m.length*1,1)>>>0;return zl().set(m,_/1),rl=m.length,_}function A_(m,f){return m=m>>>0,zl().subarray(m/1,m/1+f)}function fh(m,f){try{return m.apply(this,f)}catch(_){Si.__wbindgen_exn_store(dn(_))}}class k_{__destroy_into_raw(){const f=this.__wbg_ptr;return this.__wbg_ptr=0,f}free(){const f=this.__destroy_into_raw();Si.__wbg_mapmodel_free(f)}constructor(f){try{const k=Si.__wbindgen_add_to_stack_pointer(-16),B=M_(f,Si.__wbindgen_malloc),s=rl;Si.mapmodel_new(k,B,s);var _=Br()[k/4+0],v=Br()[k/4+1],E=Br()[k/4+2];if(E)throw du(v);return this.__wbg_ptr=_>>>0,this}finally{Si.__wbindgen_add_to_stack_pointer(16)}}render(){let f,_;try{const N=Si.__wbindgen_add_to_stack_pointer(-16);Si.mapmodel_render(N,this.__wbg_ptr);var v=Br()[N/4+0],E=Br()[N/4+1],k=Br()[N/4+2],B=Br()[N/4+3],s=v,H=E;if(B)throw s=0,H=0,du(k);return f=s,_=H,kl(s,H)}finally{Si.__wbindgen_add_to_stack_pointer(16),Si.__wbindgen_free(f,_,1)}}toRouteSnapper(){try{const E=Si.__wbindgen_add_to_stack_pointer(-16);Si.mapmodel_toRouteSnapper(E,this.__wbg_ptr);var f=Br()[E/4+0],_=Br()[E/4+1],v=A_(f,_).slice();return Si.__wbindgen_free(f,_*1,1),v}finally{Si.__wbindgen_add_to_stack_pointer(16)}}analyzeNeighbourhood(f){let _,v;try{const _e=Si.__wbindgen_add_to_stack_pointer(-16);Si.mapmodel_analyzeNeighbourhood(_e,this.__wbg_ptr,dn(f));var E=Br()[_e/4+0],k=Br()[_e/4+1],B=Br()[_e/4+2],s=Br()[_e/4+3],H=E,N=k;if(s)throw H=0,N=0,du(B);return _=H,v=N,kl(H,N)}finally{Si.__wbindgen_add_to_stack_pointer(16),Si.__wbindgen_free(_,v,1)}}}async function P_(m,f){if(typeof Response=="function"&&m instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(m,f)}catch(v){if(m.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",v);else throw v}const _=await m.arrayBuffer();return await WebAssembly.instantiate(_,f)}else{const _=await WebAssembly.instantiate(m,f);return _ instanceof WebAssembly.Instance?{instance:_,module:m}:_}}function z_(){const m={};return m.wbg={},m.wbg.__wbindgen_object_drop_ref=function(f){du(f)},m.wbg.__wbindgen_string_get=function(f,_){const v=oi(_),E=typeof v=="string"?v:void 0;var k=mc(E)?0:ph(E,Si.__wbindgen_malloc,Si.__wbindgen_realloc),B=rl;Br()[f/4+1]=B,Br()[f/4+0]=k},m.wbg.__wbindgen_boolean_get=function(f){const _=oi(f);return typeof _=="boolean"?_?1:0:2},m.wbg.__wbindgen_is_bigint=function(f){return typeof oi(f)=="bigint"},m.wbg.__wbindgen_bigint_from_i64=function(f){return dn(f)},m.wbg.__wbindgen_jsval_eq=function(f,_){return oi(f)===oi(_)},m.wbg.__wbindgen_bigint_from_u64=function(f){const _=BigInt.asUintN(64,f);return dn(_)},m.wbg.__wbindgen_number_get=function(f,_){const v=oi(_),E=typeof v=="number"?v:void 0;E_()[f/8+1]=mc(E)?0:E,Br()[f/4+0]=!mc(E)},m.wbg.__wbindgen_is_object=function(f){const _=oi(f);return typeof _=="object"&&_!==null},m.wbg.__wbindgen_in=function(f,_){return oi(f)in oi(_)},m.wbg.__wbindgen_error_new=function(f,_){const v=new Error(kl(f,_));return dn(v)},m.wbg.__wbindgen_string_new=function(f,_){const v=kl(f,_);return dn(v)},m.wbg.__wbindgen_jsval_loose_eq=function(f,_){return oi(f)==oi(_)},m.wbg.__wbg_debug_34c9290896ec9856=function(f){console.debug(oi(f))},m.wbg.__wbg_error_e60eff06f24ab7a4=function(f){console.error(oi(f))},m.wbg.__wbg_info_d7d58472d0bab115=function(f){console.info(oi(f))},m.wbg.__wbg_log_a4530b4fe289336f=function(f){console.log(oi(f))},m.wbg.__wbg_warn_f260f49434e45e62=function(f){console.warn(oi(f))},m.wbg.__wbg_get_f01601b5a68d10e3=function(f,_){const v=oi(f)[_>>>0];return dn(v)},m.wbg.__wbg_length_1009b1af0c481d7b=function(f){return oi(f).length},m.wbg.__wbindgen_is_function=function(f){return typeof oi(f)=="function"},m.wbg.__wbg_next_9b877f231f476d01=function(f){const _=oi(f).next;return dn(_)},m.wbg.__wbg_next_6529ee0cca8d57ed=function(){return fh(function(f){const _=oi(f).next();return dn(_)},arguments)},m.wbg.__wbg_done_5fe336b092d60cf2=function(f){return oi(f).done},m.wbg.__wbg_value_0c248a78fdc8e19f=function(f){const _=oi(f).value;return dn(_)},m.wbg.__wbg_iterator_db7ca081358d4fb2=function(){return dn(Symbol.iterator)},m.wbg.__wbg_get_7b48513de5dc5ea4=function(){return fh(function(f,_){const v=Reflect.get(oi(f),oi(_));return dn(v)},arguments)},m.wbg.__wbg_call_90c26b09837aba1c=function(){return fh(function(f,_){const v=oi(f).call(oi(_));return dn(v)},arguments)},m.wbg.__wbg_isArray_74fb723e24f76012=function(f){return Array.isArray(oi(f))},m.wbg.__wbg_instanceof_ArrayBuffer_e7d53d51371448e2=function(f){let _;try{_=oi(f)instanceof ArrayBuffer}catch{_=!1}return _},m.wbg.__wbg_isSafeInteger_f93fde0dca9820f8=function(f){return Number.isSafeInteger(oi(f))},m.wbg.__wbg_entries_9e2e2aa45aa5094a=function(f){const _=Object.entries(oi(f));return dn(_)},m.wbg.__wbg_buffer_a448f833075b71ba=function(f){const _=oi(f).buffer;return dn(_)},m.wbg.__wbg_new_8f67e318f15d7254=function(f){const _=new Uint8Array(oi(f));return dn(_)},m.wbg.__wbg_set_2357bf09366ee480=function(f,_,v){oi(f).set(oi(_),v>>>0)},m.wbg.__wbg_length_1d25fa9e4ac21ce7=function(f){return oi(f).length},m.wbg.__wbg_instanceof_Uint8Array_bced6f43aed8c1aa=function(f){let _;try{_=oi(f)instanceof Uint8Array}catch{_=!1}return _},m.wbg.__wbg_new_abda76e883ba8a5f=function(){const f=new Error;return dn(f)},m.wbg.__wbg_stack_658279fe44541cf6=function(f,_){const v=oi(_).stack,E=ph(v,Si.__wbindgen_malloc,Si.__wbindgen_realloc),k=rl;Br()[f/4+1]=k,Br()[f/4+0]=E},m.wbg.__wbg_error_f851667af71bcfc6=function(f,_){let v,E;try{v=f,E=_,console.error(kl(f,_))}finally{Si.__wbindgen_free(v,E,1)}},m.wbg.__wbindgen_bigint_get_as_i64=function(f,_){const v=oi(_),E=typeof v=="bigint"?v:void 0;C_()[f/8+1]=mc(E)?BigInt(0):E,Br()[f/4+0]=!mc(E)},m.wbg.__wbindgen_debug_string=function(f,_){const v=wh(oi(_)),E=ph(v,Si.__wbindgen_malloc,Si.__wbindgen_realloc),k=rl;Br()[f/4+1]=k,Br()[f/4+0]=E},m.wbg.__wbindgen_throw=function(f,_){throw new Error(kl(f,_))},m.wbg.__wbindgen_memory=function(){const f=Si.memory;return dn(f)},m}function L_(m,f){return Si=m.exports,Kp.__wbindgen_wasm_module=f,xc=null,vc=null,yc=null,gc=null,Si}async function Kp(m){if(Si!==void 0)return Si;typeof m>"u"&&(m="/ltn/assets/backend_bg.wasm");const f=z_();(typeof m=="string"||typeof Request=="function"&&m instanceof Request||typeof URL=="function"&&m instanceof URL)&&(m=fetch(m));const{instance:_,module:v}=await P_(await m,f);return L_(_,v)}const Cl=[];function mh(m,f){return{subscribe:bo(m,f).subscribe}}function bo(m,f=Mr){let _;const v=new Set;function E(s){if(Sr(m,s)&&(m=s,_)){const H=!Cl.length;for(const N of v)N[1](),Cl.push(N,m);if(H){for(let N=0;N{v.delete(N),v.size===0&&_&&(_(),_=null)}}return{set:E,update:k,subscribe:B}}let D_=Date.now();function Lc(m){return`${m}-${D_++}`}const Eh=Symbol.for("svelte-maplibre");function Ll(){return y_(Eh)}function F_(m){let f=new WeakMap;return _=>{var B;let v=f.get(_.originalEvent);if(v!==void 0)return v;let k=(B=_.target.queryRenderedFeatures(_.point).find(s=>{var H;return(H=m.get(s.layer.id))==null?void 0:H.interactive}))==null?void 0:B.layer.id;return f.set(_.originalEvent,k),k}}function R_(){let m=new Map;return qp(Eh,{map:bo(null),source:mh(null),layer:mh(null),popupTarget:mh(null),cluster:bo(),loadedImages:bo(new Set),minzoom:bo(0),maxzoom:bo(24),layerEvent:bo(null),layerInfo:m,eventTopMost:F_(m)})}function yp(m){return{subscribe:m.subscribe}}function Jp({key:m,setPopupTarget:f=!1,setCluster:_=!1,setMouseEvent:v=!1}){let E=Ll(),k=bo(null),B=yp(k),s={...E,[m]:yp(k)};if(f&&(s.popupTarget=B),v){let H=bo(null);s.layerEvent=H,E.layerEvent=H}return _&&(s.cluster=bo()),qp(Eh,s),{...E,self:k}}function O_(){return Jp({key:"source",setCluster:!0})}function B_(m=!0){return Jp({key:"layer",setPopupTarget:m,setMouseEvent:m})}function N_(m){return"layerType"in m&&m.layerType==="deckgl"}var Al=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yp(m){return m&&m.__esModule&&Object.prototype.hasOwnProperty.call(m,"default")?m.default:m}var Qp={exports:{}};(function(m,f){(function(_,v){m.exports=v()})(Al,function(){var _,v,E;function k(s,H){if(!_)_=H;else if(!v)v=H;else{var N="var sharedChunk = {}; ("+_+")(sharedChunk); ("+v+")(sharedChunk);",_e={};_(_e),E=H(_e),typeof window<"u"&&(E.workerUrl=window.URL.createObjectURL(new Blob([N],{type:"text/javascript"})))}}k(["exports"],function(s){function H(i,e,r,o){return new(r||(r=Promise))(function(l,h){function p(T){try{w(o.next(T))}catch(M){h(M)}}function y(T){try{w(o.throw(T))}catch(M){h(M)}}function w(T){var M;T.done?l(T.value):(M=T.value,M instanceof r?M:new r(function(z){z(M)})).then(p,y)}w((o=o.apply(i,e||[])).next())})}function N(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}typeof SuppressedError=="function"&&SuppressedError;var _e=be;function be(i,e){this.x=i,this.y=e}be.prototype={clone:function(){return new be(this.x,this.y)},add:function(i){return this.clone()._add(i)},sub:function(i){return this.clone()._sub(i)},multByPoint:function(i){return this.clone()._multByPoint(i)},divByPoint:function(i){return this.clone()._divByPoint(i)},mult:function(i){return this.clone()._mult(i)},div:function(i){return this.clone()._div(i)},rotate:function(i){return this.clone()._rotate(i)},rotateAround:function(i,e){return this.clone()._rotateAround(i,e)},matMult:function(i){return this.clone()._matMult(i)},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(i){return this.x===i.x&&this.y===i.y},dist:function(i){return Math.sqrt(this.distSqr(i))},distSqr:function(i){var e=i.x-this.x,r=i.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(i){return Math.atan2(this.y-i.y,this.x-i.x)},angleWith:function(i){return this.angleWithSep(i.x,i.y)},angleWithSep:function(i,e){return Math.atan2(this.x*e-this.y*i,this.x*i+this.y*e)},_matMult:function(i){var e=i[2]*this.x+i[3]*this.y;return this.x=i[0]*this.x+i[1]*this.y,this.y=e,this},_add:function(i){return this.x+=i.x,this.y+=i.y,this},_sub:function(i){return this.x-=i.x,this.y-=i.y,this},_mult:function(i){return this.x*=i,this.y*=i,this},_div:function(i){return this.x/=i,this.y/=i,this},_multByPoint:function(i){return this.x*=i.x,this.y*=i.y,this},_divByPoint:function(i){return this.x/=i.x,this.y/=i.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var i=this.y;return this.y=this.x,this.x=-i,this},_rotate:function(i){var e=Math.cos(i),r=Math.sin(i),o=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=o,this},_rotateAround:function(i,e){var r=Math.cos(i),o=Math.sin(i),l=e.y+o*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-o*(this.y-e.y),this.y=l,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},be.convert=function(i){return i instanceof be?i:Array.isArray(i)?new be(i[0],i[1]):i};var ye=N(_e),Oe=Le;function Le(i,e,r,o){this.cx=3*i,this.bx=3*(r-i)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(o-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=i,this.p1y=e,this.p2x=r,this.p2y=o}Le.prototype={sampleCurveX:function(i){return((this.ax*i+this.bx)*i+this.cx)*i},sampleCurveY:function(i){return((this.ay*i+this.by)*i+this.cy)*i},sampleCurveDerivativeX:function(i){return(3*this.ax*i+2*this.bx)*i+this.cx},solveCurveX:function(i,e){if(e===void 0&&(e=1e-6),i<0)return 0;if(i>1)return 1;for(var r=i,o=0;o<8;o++){var l=this.sampleCurveX(r)-i;if(Math.abs(l)l?p=r:y=r,r=.5*(y-p)+p;return r},solve:function(i,e){return this.sampleCurveY(this.solveCurveX(i,e))}};var Be=N(Oe);let Ne,et;function at(){return Ne==null&&(Ne=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),Ne}function nt(){if(et==null&&(et=!1,at())){const e=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(e){for(let o=0;o<5*5;o++){const l=4*o;e.fillStyle=`rgb(${l},${l+1},${l+2})`,e.fillRect(o%5,Math.floor(o/5),1,1)}const r=e.getImageData(0,0,5,5).data;for(let o=0;o<5*5*4;o++)if(o%4!=3&&r[o]!==o){et=!0;break}}}return et||!1}function it(i,e,r,o){const l=new Be(i,e,r,o);return function(h){return l.solve(h)}}const Vt=it(.25,.1,.25,1);function ei(i,e,r){return Math.min(r,Math.max(e,i))}function Ht(i,e,r){const o=r-e,l=((i-e)%o+o)%o+e;return l===e?r:l}function Nt(i,...e){for(const r of e)for(const o in r)i[o]=r[o];return i}let Jt=1;function At(i,e,r){const o={};for(const l in i)o[l]=e.call(r||this,i[l],l,i);return o}function Ae(i,e,r){const o={};for(const l in i)e.call(r||this,i[l],l,i)&&(o[l]=i[l]);return o}function Ge(i){return Array.isArray(i)?i.map(Ge):typeof i=="object"&&i?At(i,Ge):i}const Ui={};function Dt(i){Ui[i]||(typeof console<"u"&&console.warn(i),Ui[i]=!0)}function qt(i,e,r){return(r.y-i.y)*(e.x-i.x)>(e.y-i.y)*(r.x-i.x)}function Lt(i){let e=0;for(let r,o,l=0,h=i.length,p=h-1;l"u")throw new Error("VideoFrame not supported");const h=new VideoFrame(i,{timestamp:0});try{const p=h==null?void 0:h.format;if(!p||!p.startsWith("BGR")&&!p.startsWith("RGB"))throw new Error(`Unrecognized format ${p}`);const y=p.startsWith("BGR"),w=new Uint8ClampedArray(o*l*4);if(yield h.copyTo(w,function(T,M,z,D,V){const U=4*Math.max(-M,0),Z=(Math.max(0,z)-z)*D*4+U,$=4*D,ie=Math.max(0,M),ue=Math.max(0,z);return{rect:{x:ie,y:ue,width:Math.min(T.width,M+D)-ie,height:Math.min(T.height,z+V)-ue},layout:[{offset:Z,stride:$}]}}(i,e,r,o,l)),y)for(let T=0;TcancelAnimationFrame(e)}},getImageData(i,e=0){return this.getImageCanvasContext(i).getImageData(-e,-e,i.width+2*e,i.height+2*e)},getImageCanvasContext(i){const e=window.document.createElement("canvas"),r=e.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("failed to create canvas 2d context");return e.width=i.width,e.height=i.height,r.drawImage(i,0,0,i.width,i.height),r},resolveURL:i=>(pi||(pi=document.createElement("a")),pi.href=i,pi.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(Oi==null&&(Oi=matchMedia("(prefers-reduced-motion: reduce)")),Oi.matches)}},Pt={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};class He extends Error{constructor(e,r,o,l){super(`AJAXError: ${r} (${e}): ${o}`),this.status=e,this.statusText=r,this.url=o,this.body=l}}const Zt=di()?()=>self.worker&&self.worker.referrer:()=>(window.location.protocol==="blob:"?window.parent:window).location.href,ct=i=>Pt.REGISTERED_PROTOCOLS[i.substring(0,i.indexOf("://"))];function Zi(i,e){const r=new AbortController,o=new Request(i.url,{method:i.method||"GET",body:i.body,credentials:i.credentials,headers:i.headers,cache:i.cache,referrer:Zt(),signal:r.signal});let l=!1,h=!1;return i.type==="json"&&o.headers.set("Accept","application/json"),h||fetch(o).then(p=>p.ok?(y=>{(i.type==="arrayBuffer"||i.type==="image"?y.arrayBuffer():i.type==="json"?y.json():y.text()).then(w=>{h||(l=!0,e(null,w,y.headers.get("Cache-Control"),y.headers.get("Expires")))}).catch(w=>{h||e(new Error(w.message))})})(p):p.blob().then(y=>e(new He(p.status,p.statusText,i.url,y)))).catch(p=>{p.code!==20&&e(new Error(p.message))}),{cancel:()=>{h=!0,l||r.abort()}}}const _r=function(i,e){if(/:\/\//.test(i.url)&&!/^https?:|^file:/.test(i.url)){if(di()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,e);if(!di())return(ct(i.url)||Zi)(i,e)}if(!(/^file:/.test(r=i.url)||/^file:/.test(Zt())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return Zi(i,e);if(di()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,e,void 0,!0)}var r;return function(o,l){const h=new XMLHttpRequest;h.open(o.method||"GET",o.url,!0),o.type!=="arrayBuffer"&&o.type!=="image"||(h.responseType="arraybuffer");for(const p in o.headers)h.setRequestHeader(p,o.headers[p]);return o.type==="json"&&(h.responseType="text",h.setRequestHeader("Accept","application/json")),h.withCredentials=o.credentials==="include",h.onerror=()=>{l(new Error(h.statusText))},h.onload=()=>{if((h.status>=200&&h.status<300||h.status===0)&&h.response!==null){let p=h.response;if(o.type==="json")try{p=JSON.parse(h.response)}catch(y){return l(y)}l(null,p,h.getResponseHeader("Cache-Control"),h.getResponseHeader("Expires"))}else{const p=new Blob([h.response],{type:h.getResponseHeader("Content-Type")});l(new He(h.status,h.statusText,o.url,p))}},h.send(o.body),{cancel:()=>h.abort()}}(i,e)},Ue=function(i,e){return _r(Nt(i,{type:"arrayBuffer"}),e)};function Bi(i){if(!i||i.indexOf("://")<=0||i.indexOf("data:image/")===0||i.indexOf("blob:")===0)return!0;const e=new URL(i),r=window.location;return e.protocol===r.protocol&&e.host===r.host}function gr(i,e,r){r[i]&&r[i].indexOf(e)!==-1||(r[i]=r[i]||[],r[i].push(e))}function ci(i,e,r){if(r&&r[i]){const o=r[i].indexOf(e);o!==-1&&r[i].splice(o,1)}}class co{constructor(e,r={}){Nt(this,r),this.type=e}}class wo extends co{constructor(e,r={}){super("error",Nt({error:e},r))}}class jo{on(e,r){return this._listeners=this._listeners||{},gr(e,r,this._listeners),this}off(e,r){return ci(e,r,this._listeners),ci(e,r,this._oneTimeListeners),this}once(e,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},gr(e,r,this._oneTimeListeners),this):new Promise(o=>this.once(e,o))}fire(e,r){typeof e=="string"&&(e=new co(e,r||{}));const o=e.type;if(this.listens(o)){e.target=this;const l=this._listeners&&this._listeners[o]?this._listeners[o].slice():[];for(const y of l)y.call(this,e);const h=this._oneTimeListeners&&this._oneTimeListeners[o]?this._oneTimeListeners[o].slice():[];for(const y of h)ci(o,y,this._oneTimeListeners),y.call(this,e);const p=this._eventedParent;p&&(Nt(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),p.fire(e))}else e instanceof wo&&console.error(e.error);return this}listens(e){return this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)}setEventedParent(e,r){return this._eventedParent=e,this._eventedParentData=r,this}}var Se={$version:8,$root:{version:{required:!0,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"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,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:!0,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:!1},"*":{type:"*"}},source_raster:{type:{required:!0,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:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,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:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},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_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,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:!1,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"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,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:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,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:!0,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:!1,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:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,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:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,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:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,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:!0,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:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"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:!1,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:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,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:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,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_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:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,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"}}};const en=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function In(i,e){const r={};for(const o in i)o!=="ref"&&(r[o]=i[o]);return en.forEach(o=>{o in e&&(r[o]=e[o])}),r}function Ii(i,e){if(Array.isArray(i)){if(!Array.isArray(e)||i.length!==e.length)return!1;for(let r=0;r`:i.itemType.kind==="value"?"array":`array<${e}>`}return i.kind}const he=[tn,We,Bt,Mt,Vr,X,mn,J(It),L,F,j];function oe(i,e){if(e.kind==="error")return null;if(i.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!oe(i.itemType,e.itemType))&&(typeof i.N!="number"||i.N===e.N))return null}else{if(i.kind===e.kind)return null;if(i.kind==="value"){for(const r of he)if(!oe(r,e))return null}}return`Expected ${Q(i)} but found ${Q(e)} instead.`}function te(i,e){return e.some(r=>r.kind===i.kind)}function ae(i,e){return e.some(r=>r==="null"?i===null:r==="array"?Array.isArray(i):r==="object"?i&&!Array.isArray(i)&&typeof i=="object":r===typeof i)}function Te(i,e){return i.kind==="array"&&e.kind==="array"?i.itemType.kind===e.itemType.kind&&typeof i.N=="number":i.kind===e.kind}const Ie=.96422,Ee=.82521,mt=4/29,kt=6/29,ut=3*kt*kt,vt=kt*kt*kt,Ft=Math.PI/180,mi=180/Math.PI;function Ut(i){return(i%=360)<0&&(i+=360),i}function si([i,e,r,o]){let l,h;const p=Ur((.2225045*(i=ii(i))+.7168786*(e=ii(e))+.0606169*(r=ii(r)))/1);i===e&&e===r?l=h=p:(l=Ur((.4360747*i+.3850649*e+.1430804*r)/Ie),h=Ur((.0139322*i+.0971045*e+.7141733*r)/Ee));const y=116*p-16;return[y<0?0:y,500*(l-p),200*(p-h),o]}function ii(i){return i<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function Ur(i){return i>vt?Math.pow(i,1/3):i/ut+mt}function Ei([i,e,r,o]){let l=(i+16)/116,h=isNaN(e)?l:l+e/500,p=isNaN(r)?l:l-r/200;return l=1*yr(l),h=Ie*yr(h),p=Ee*yr(p),[ur(3.1338561*h-1.6168667*l-.4906146*p),ur(-.9787684*h+1.9161415*l+.033454*p),ur(.0719453*h-.2289914*l+1.4052427*p),o]}function ur(i){return(i=i<=.00304?12.92*i:1.055*Math.pow(i,1/2.4)-.055)<0?0:i>1?1:i}function yr(i){return i>kt?i*i*i:ut*(i-mt)}function An(i){return parseInt(i.padEnd(2,i),16)/255}function xs(i,e){return To(e?i/100:i,0,1)}function To(i,e,r){return Math.min(Math.max(e,i),r)}function Io(i){return!i.some(Number.isNaN)}const vr={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,134,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,250,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,221],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:[112,128,144],slategrey:[112,128,144],snow:[255,250,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,50]};class gi{constructor(e,r,o,l=1,h=!0){this.r=e,this.g=r,this.b=o,this.a=l,h||(this.r*=l,this.g*=l,this.b*=l,l||this.overwriteGetter("rgb",[e,r,o,l]))}static parse(e){if(e instanceof gi)return e;if(typeof e!="string")return;const r=function(o){if((o=o.toLowerCase().trim())==="transparent")return[0,0,0,0];const l=vr[o];if(l){const[p,y,w]=l;return[p/255,y/255,w/255,1]}if(o.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o)){const p=o.length<6?1:2;let y=1;return[An(o.slice(y,y+=p)),An(o.slice(y,y+=p)),An(o.slice(y,y+=p)),An(o.slice(y,y+p)||"ff")]}if(o.startsWith("rgb")){const p=o.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(p){const[y,w,T,M,z,D,V,U,Z,$,ie,ue]=p,re=[M||" ",V||" ",$].join("");if(re===" "||re===" /"||re===",,"||re===",,,"){const pe=[T,D,Z].join(""),ge=pe==="%%%"?100:pe===""?255:0;if(ge){const Me=[To(+w/ge,0,1),To(+z/ge,0,1),To(+U/ge,0,1),ie?xs(+ie,ue):1];if(Io(Me))return Me}}return}}const h=o.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(h){const[p,y,w,T,M,z,D,V,U]=h,Z=[w||" ",M||" ",D].join("");if(Z===" "||Z===" /"||Z===",,"||Z===",,,"){const $=[+y,To(+T,0,100),To(+z,0,100),V?xs(+V,U):1];if(Io($))return function([ie,ue,re,pe]){function ge(Me){const lt=(Me+ie/30)%12,pt=ue*Math.min(re,1-re);return re-pt*Math.max(-1,Math.min(lt-3,9-lt,1))}return ie=Ut(ie),ue/=100,re/=100,[ge(0),ge(8),ge(4),pe]}($)}}}(e);return r?new gi(...r,!1):void 0}get rgb(){const{r:e,g:r,b:o,a:l}=this,h=l||1/0;return this.overwriteGetter("rgb",[e/h,r/h,o/h,l])}get hcl(){return this.overwriteGetter("hcl",function(e){const[r,o,l,h]=si(e),p=Math.sqrt(o*o+l*l);return[Math.round(1e4*p)?Ut(Math.atan2(l,o)*mi):NaN,p,r,h]}(this.rgb))}get lab(){return this.overwriteGetter("lab",si(this.rgb))}overwriteGetter(e,r){return Object.defineProperty(this,e,{value:r}),r}toString(){const[e,r,o,l]=this.rgb;return`rgba(${[e,r,o].map(h=>Math.round(255*h)).join(",")},${l})`}}gi.black=new gi(0,0,0,1),gi.white=new gi(1,1,1,1),gi.transparent=new gi(0,0,0,0),gi.red=new gi(1,0,0,1);class ea{constructor(e,r,o){this.sensitivity=e?r?"variant":"case":r?"accent":"base",this.locale=o,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,r){return this.collator.compare(e,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class jn{constructor(e,r,o,l,h){this.text=e,this.image=r,this.scale=o,this.fontStack=l,this.textColor=h}}class ji{constructor(e){this.sections=e}static fromString(e){return new ji([new jn(e,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(e){return e instanceof ji?e:ji.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}}class jr{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof jr)return e;if(typeof e=="number")return new jr([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const r of e)if(typeof r!="number")return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new jr(e)}}toString(){return JSON.stringify(this.values)}}const Go=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class Tr{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof Tr)return e;if(Array.isArray(e)&&!(e.length<1)&&e.length%2==0){for(let r=0;r=0&&i<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof r=="number"&&r>=0&&r<=255?o===void 0||typeof o=="number"&&o>=0&&o<=1?null:`Invalid rgba value [${[i,e,r,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof o=="number"?[i,e,r,o]:[i,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function os(i){if(i===null||typeof i=="string"||typeof i=="boolean"||typeof i=="number"||i instanceof gi||i instanceof ea||i instanceof ji||i instanceof jr||i instanceof Tr||i instanceof Ir)return!0;if(Array.isArray(i)){for(const e of i)if(!os(e))return!1;return!0}if(typeof i=="object"){for(const e in i)if(!os(i[e]))return!1;return!0}return!1}function Gi(i){if(i===null)return tn;if(typeof i=="string")return Bt;if(typeof i=="boolean")return Mt;if(typeof i=="number")return We;if(i instanceof gi)return Vr;if(i instanceof ea)return Mn;if(i instanceof ji)return X;if(i instanceof jr)return L;if(i instanceof Tr)return j;if(i instanceof Ir)return F;if(Array.isArray(i)){const e=i.length;let r;for(const o of i){const l=Gi(o);if(r){if(r===l)continue;r=It;break}r=l}return J(r||It,e)}return mn}function ui(i){const e=typeof i;return i===null?"":e==="string"||e==="number"||e==="boolean"?String(i):i instanceof gi||i instanceof ji||i instanceof jr||i instanceof Tr||i instanceof Ir?i.toString():JSON.stringify(i)}class uo{constructor(e,r){this.type=e,this.value=r}static parse(e,r){if(e.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!os(e[1]))return r.error("invalid value");const o=e[1];let l=Gi(o);const h=r.expectedType;return l.kind!=="array"||l.N!==0||!h||h.kind!=="array"||typeof h.N=="number"&&h.N!==0||(l=h),new uo(l,o)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class Wi{constructor(e){this.name="ExpressionEvaluationError",this.message=e}toJSON(){return this.message}}const bs={string:Bt,number:We,boolean:Mt,object:mn};class kn{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");let o,l=1;const h=e[0];if(h==="array"){let y,w;if(e.length>2){const T=e[1];if(typeof T!="string"||!(T in bs)||T==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);y=bs[T],l++}else y=It;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return r.error('The length argument to "array" must be a positive integer literal',2);w=e[2],l++}o=J(y,w)}else{if(!bs[h])throw new Error(`Types doesn't contain name = ${h}`);o=bs[h]}const p=[];for(;le.outputDefined())}}const Ba={"to-boolean":Mt,"to-color":Vr,"to-number":We,"to-string":Bt};class Eo{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const o=e[0];if(!Ba[o])throw new Error(`Can't parse ${o} as it is not part of the known types`);if((o==="to-boolean"||o==="to-string")&&e.length!==2)return r.error("Expected one argument.");const l=Ba[o],h=[];for(let p=1;p4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:ta(r[0],r[1],r[2],r[3]),!o))return new gi(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new Wi(o||`Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"padding":{let r;for(const o of this.args){r=o.evaluate(e);const l=jr.parse(r);if(l)return l}throw new Wi(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"variableAnchorOffsetCollection":{let r;for(const o of this.args){r=o.evaluate(e);const l=Tr.parse(r);if(l)return l}throw new Wi(`Could not parse variableAnchorOffsetCollection from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}case"number":{let r=null;for(const o of this.args){if(r=o.evaluate(e),r===null)return 0;const l=Number(r);if(!isNaN(l))return l}throw new Wi(`Could not convert ${JSON.stringify(r)} to number.`)}case"formatted":return ji.fromString(ui(this.args[0].evaluate(e)));case"resolvedImage":return Ir.fromString(ui(this.args[0].evaluate(e)));default:return ui(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}const ws=["Unknown","Point","LineString","Polygon"];class g{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?ws[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||{}}parseColor(e){let r=this._parseColorCache[e];return r||(r=this._parseColorCache[e]=gi.parse(e)),r}}class I{constructor(e,r,o=[],l,h=new Zo,p=[]){this.registry=e,this.path=o,this.key=o.map(y=>`[${y}]`).join(""),this.scope=h,this.errors=p,this.expectedType=l,this._isConstant=r}parse(e,r,o,l,h={}){return r?this.concat(r,o,l)._parse(e,h):this._parse(e,h)}_parse(e,r){function o(l,h,p){return p==="assert"?new kn(h,[l]):p==="coerce"?new Eo(h,[l]):l}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),Array.isArray(e)){if(e.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const l=e[0];if(typeof l!="string")return this.error(`Expression name must be a string, but found ${typeof l} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const h=this.registry[l];if(h){let p=h.parse(e,this);if(!p)return null;if(this.expectedType){const y=this.expectedType,w=p.type;if(y.kind!=="string"&&y.kind!=="number"&&y.kind!=="boolean"&&y.kind!=="object"&&y.kind!=="array"||w.kind!=="value")if(y.kind!=="color"&&y.kind!=="formatted"&&y.kind!=="resolvedImage"||w.kind!=="value"&&w.kind!=="string")if(y.kind!=="padding"||w.kind!=="value"&&w.kind!=="number"&&w.kind!=="array")if(y.kind!=="variableAnchorOffsetCollection"||w.kind!=="value"&&w.kind!=="array"){if(this.checkSubtype(y,w))return null}else p=o(p,y,r.typeAnnotation||"coerce");else p=o(p,y,r.typeAnnotation||"coerce");else p=o(p,y,r.typeAnnotation||"coerce");else p=o(p,y,r.typeAnnotation||"assert")}if(!(p instanceof uo)&&p.type.kind!=="resolvedImage"&&this._isConstant(p)){const y=new g;try{p=new uo(p.type,p.evaluate(y))}catch(w){return this.error(w.message),null}}return p}return this.error(`Unknown expression "${l}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,r,o){const l=typeof e=="number"?this.path.concat(e):this.path,h=o?this.scope.concat(o):this.scope;return new I(this.registry,this._isConstant,l,r||null,h,this.errors)}error(e,...r){const o=`${this.key}${r.map(l=>`[${l}]`).join("")}`;this.errors.push(new er(o,e))}checkSubtype(e,r){const o=oe(e,r);return o&&this.error(o),o}}class O{constructor(e,r,o){this.type=Mn,this.locale=o,this.caseSensitive=e,this.diacriticSensitive=r}static parse(e,r){if(e.length!==2)return r.error("Expected one argument.");const o=e[1];if(typeof o!="object"||Array.isArray(o))return r.error("Collator options argument must be an object.");const l=r.parse(o["case-sensitive"]!==void 0&&o["case-sensitive"],1,Mt);if(!l)return null;const h=r.parse(o["diacritic-sensitive"]!==void 0&&o["diacritic-sensitive"],1,Mt);if(!h)return null;let p=null;return o.locale&&(p=r.parse(o.locale,1,Bt),!p)?null:new O(l,h,p)}evaluate(e){return new ea(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}}const Y=8192;function ne(i,e){i[0]=Math.min(i[0],e[0]),i[1]=Math.min(i[1],e[1]),i[2]=Math.max(i[2],e[0]),i[3]=Math.max(i[3],e[1])}function se(i,e){return!(i[0]<=e[0]||i[2]>=e[2]||i[1]<=e[1]||i[3]>=e[3])}function fe(i,e){const r=(180+i[0])/360,o=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i[1]*Math.PI/360)))/360,l=Math.pow(2,e.z);return[Math.round(r*l*Y),Math.round(o*l*Y)]}function De(i,e,r){const o=i[0]-e[0],l=i[1]-e[1],h=i[0]-r[0],p=i[1]-r[1];return o*p-h*l==0&&o*h<=0&&l*p<=0}function Ve(i,e){let r=!1;for(let p=0,y=e.length;p(o=i)[1]!=(h=w[T+1])[1]>o[1]&&o[0]<(h[0]-l[0])*(o[1]-l[1])/(h[1]-l[1])+l[0]&&(r=!r)}}var o,l,h;return r}function rt(i,e){for(let r=0;r0&&y<0||p<0&&y>0}function Je(i,e,r){for(const T of r)for(let M=0;Mr[2]){const l=.5*o;let h=i[0]-r[0]>l?-o:r[0]-i[0]>l?o:0;h===0&&(h=i[0]-r[2]>l?-o:r[2]-i[0]>l?o:0),i[0]+=h}ne(e,i)}function _t(i,e,r,o){const l=Math.pow(2,o.z)*Y,h=[o.x*Y,o.y*Y],p=[];for(const y of i)for(const w of y){const T=[w.x+h[0],w.y+h[1]];ke(T,e,r,l),p.push(T)}return p}function yi(i,e,r,o){const l=Math.pow(2,o.z)*Y,h=[o.x*Y,o.y*Y],p=[];for(const w of i){const T=[];for(const M of w){const z=[M.x+h[0],M.y+h[1]];ne(e,z),T.push(z)}p.push(T)}if(e[2]-e[0]<=l/2){(y=e)[0]=y[1]=1/0,y[2]=y[3]=-1/0;for(const w of p)for(const T of w)ke(T,e,r,l)}var y;return p}class Xi{constructor(e,r){this.type=Mt,this.geojson=e,this.geometries=r}static parse(e,r){if(e.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(os(e[1])){const o=e[1];if(o.type==="FeatureCollection")for(let l=0;l!Array.isArray(T)||T.length===e.length-1);let w=null;for(const[T,M]of y){w=new I(r.registry,ia,r.path,null,r.scope);const z=[];let D=!1;for(let V=1;V{return D=z,Array.isArray(D)?`(${D.map(Q).join(", ")})`:`(${Q(D.type)}...)`;var D}).join(" | "),M=[];for(let z=1;z{r=e?r&&ia(o):r&&o instanceof uo}),!!r&&Ci(i)&&ra(i,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Ci(i){if(i instanceof rn&&(i.name==="get"&&i.args.length===1||i.name==="feature-state"||i.name==="has"&&i.args.length===1||i.name==="properties"||i.name==="geometry-type"||i.name==="id"||/^filter-/.test(i.name))||i instanceof Xi)return!1;let e=!0;return i.eachChild(r=>{e&&!Ci(r)&&(e=!1)}),e}function ss(i){if(i instanceof rn&&i.name==="feature-state")return!1;let e=!0;return i.eachChild(r=>{e&&!ss(r)&&(e=!1)}),e}function ra(i,e){if(i instanceof rn&&e.indexOf(i.name)>=0)return!1;let r=!0;return i.eachChild(o=>{r&&!ra(o,e)&&(r=!1)}),r}function nn(i,e){const r=i.length-1;let o,l,h=0,p=r,y=0;for(;h<=p;)if(y=Math.floor((h+p)/2),o=i[y],l=i[y+1],o<=e){if(y===r||ee))throw new Wi("Input is not a number.");p=y-1}return 0}class ho{constructor(e,r,o){this.type=e,this.input=r,this.labels=[],this.outputs=[];for(const[l,h]of o)this.labels.push(l),this.outputs.push(h)}static parse(e,r){if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");const o=r.parse(e[1],1,We);if(!o)return null;const l=[];let h=null;r.expectedType&&r.expectedType.kind!=="value"&&(h=r.expectedType);for(let p=1;p=y)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',T);const z=r.parse(w,M,h);if(!z)return null;h=h||z.type,l.push([y,z])}return new ho(h,o,l)}evaluate(e){const r=this.labels,o=this.outputs;if(r.length===1)return o[0].evaluate(e);const l=this.input.evaluate(e);if(l<=r[0])return o[0].evaluate(e);const h=r.length;return l>=r[h-1]?o[h-1].evaluate(e):o[nn(r,l)].evaluate(e)}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function Xt(i,e,r){return i+r*(e-i)}function Ss(i,e,r){return i.map((o,l)=>Xt(o,e[l],r))}const Wr={number:Xt,color:function(i,e,r,o="rgb"){switch(o){case"rgb":{const[l,h,p,y]=Ss(i.rgb,e.rgb,r);return new gi(l,h,p,y,!1)}case"hcl":{const[l,h,p,y]=i.hcl,[w,T,M,z]=e.hcl;let D,V;if(isNaN(l)||isNaN(w))isNaN(l)?isNaN(w)?D=NaN:(D=w,p!==1&&p!==0||(V=T)):(D=l,M!==1&&M!==0||(V=h));else{let ue=w-l;w>l&&ue>180?ue-=360:w180&&(ue+=360),D=l+r*ue}const[U,Z,$,ie]=function([ue,re,pe,ge]){return ue=isNaN(ue)?0:ue*Ft,Ei([pe,Math.cos(ue)*re,Math.sin(ue)*re,ge])}([D,V??Xt(h,T,r),Xt(p,M,r),Xt(y,z,r)]);return new gi(U,Z,$,ie,!1)}case"lab":{const[l,h,p,y]=Ei(Ss(i.lab,e.lab,r));return new gi(l,h,p,y,!1)}}},array:Ss,padding:function(i,e,r){return new jr(Ss(i.values,e.values,r))},variableAnchorOffsetCollection:function(i,e,r){const o=i.values,l=e.values;if(o.length!==l.length)throw new Wi(`Cannot interpolate values of different length. from: ${i.toString()}, to: ${e.toString()}`);const h=[];for(let p=0;ptypeof M!="number"||M<0||M>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);l={name:"cubic-bezier",controlPoints:T}}}if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(h=r.parse(h,2,We),!h)return null;const y=[];let w=null;o==="interpolate-hcl"||o==="interpolate-lab"?w=Vr:r.expectedType&&r.expectedType.kind!=="value"&&(w=r.expectedType);for(let T=0;T=M)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',D);const U=r.parse(z,V,w);if(!U)return null;w=w||U.type,y.push([M,U])}return Te(w,We)||Te(w,Vr)||Te(w,L)||Te(w,j)||Te(w,J(We))?new on(w,o,l,h,y):r.error(`Type ${Q(w)} is not interpolatable.`)}evaluate(e){const r=this.labels,o=this.outputs;if(r.length===1)return o[0].evaluate(e);const l=this.input.evaluate(e);if(l<=r[0])return o[0].evaluate(e);const h=r.length;if(l>=r[h-1])return o[h-1].evaluate(e);const p=nn(r,l),y=on.interpolationFactor(this.interpolation,l,r[p],r[p+1]),w=o[p].evaluate(e),T=o[p+1].evaluate(e);switch(this.operator){case"interpolate":return Wr[this.type.kind](w,T,y);case"interpolate-hcl":return Wr.color(w,T,y,"hcl");case"interpolate-lab":return Wr.color(w,T,y,"lab")}}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function na(i,e,r,o){const l=o-r,h=i-r;return l===0?0:e===1?h/l:(Math.pow(e,h)-1)/(Math.pow(e,l)-1)}class oa{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expectected at least one argument.");let o=null;const l=r.expectedType;l&&l.kind!=="value"&&(o=l);const h=[];for(const y of e.slice(1)){const w=r.parse(y,1+h.length,o,void 0,{typeAnnotation:"omit"});if(!w)return null;o=o||w.type,h.push(w)}if(!o)throw new Error("No output type");const p=l&&h.some(y=>oe(l,y.type));return new oa(p?It:o,h)}evaluate(e){let r,o=null,l=0;for(const h of this.args)if(l++,o=h.evaluate(e),o&&o instanceof Ir&&!o.available&&(r||(r=o.name),o=null,l===this.args.length&&(o=r)),o!==null)break;return o}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}class sa{constructor(e,r){this.type=r.type,this.bindings=[].concat(e),this.result=r}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const r of this.bindings)e(r[1]);e(this.result)}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const o=[];for(let h=1;h=o.length)throw new Wi(`Array index out of bounds: ${r} > ${o.length-1}.`);if(r!==Math.floor(r))throw new Wi(`Array index must be an integer, but found ${r} instead.`);return o[r]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}}class aa{constructor(e,r){this.type=Mt,this.needle=e,this.haystack=r}static parse(e,r){if(e.length!==3)return r.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const o=r.parse(e[1],1,It),l=r.parse(e[2],2,It);return o&&l?te(o.type,[Mt,Bt,We,tn,It])?new aa(o,l):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Q(o.type)} instead`):null}evaluate(e){const r=this.needle.evaluate(e),o=this.haystack.evaluate(e);if(!o)return!1;if(!ae(r,["boolean","string","number","null"]))throw new Wi(`Expected first argument to be of type boolean, string, number or null, but found ${Q(Gi(r))} instead.`);if(!ae(o,["string","array"]))throw new Wi(`Expected second argument to be of type array or string, but found ${Q(Gi(o))} instead.`);return o.indexOf(r)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}}class Ts{constructor(e,r,o){this.type=We,this.needle=e,this.haystack=r,this.fromIndex=o}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const o=r.parse(e[1],1,It),l=r.parse(e[2],2,It);if(!o||!l)return null;if(!te(o.type,[Mt,Bt,We,tn,It]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${Q(o.type)} instead`);if(e.length===4){const h=r.parse(e[3],3,We);return h?new Ts(o,l,h):null}return new Ts(o,l)}evaluate(e){const r=this.needle.evaluate(e),o=this.haystack.evaluate(e);if(!ae(r,["boolean","string","number","null"]))throw new Wi(`Expected first argument to be of type boolean, string, number or null, but found ${Q(Gi(r))} instead.`);if(!ae(o,["string","array"]))throw new Wi(`Expected second argument to be of type array or string, but found ${Q(Gi(o))} instead.`);if(this.fromIndex){const l=this.fromIndex.evaluate(e);return o.indexOf(r,l)}return o.indexOf(r)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}}class la{constructor(e,r,o,l,h,p){this.inputType=e,this.type=r,this.input=o,this.cases=l,this.outputs=h,this.otherwise=p}static parse(e,r){if(e.length<5)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return r.error("Expected an even number of arguments.");let o,l;r.expectedType&&r.expectedType.kind!=="value"&&(l=r.expectedType);const h={},p=[];for(let T=2;TNumber.MAX_SAFE_INTEGER)return D.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof U=="number"&&Math.floor(U)!==U)return D.error("Numeric branch labels must be integer values.");if(o){if(D.checkSubtype(o,Gi(U)))return null}else o=Gi(U);if(h[String(U)]!==void 0)return D.error("Branch labels must be unique.");h[String(U)]=p.length}const V=r.parse(z,T,l);if(!V)return null;l=l||V.type,p.push(V)}const y=r.parse(e[1],1,It);if(!y)return null;const w=r.parse(e[e.length-1],e.length-1,l);return w?y.type.kind!=="value"&&r.concat(1).checkSubtype(o,y.type)?null:new la(o,l,y,h,p,w):null}evaluate(e){const r=this.input.evaluate(e);return(Gi(r)===this.inputType&&this.outputs[this.cases[r]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}}class Va{constructor(e,r,o){this.type=e,this.branches=r,this.otherwise=o}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return r.error("Expected an odd number of arguments.");let o;r.expectedType&&r.expectedType.kind!=="value"&&(o=r.expectedType);const l=[];for(let p=1;pr.outputDefined())&&this.otherwise.outputDefined()}}class ca{constructor(e,r,o,l){this.type=e,this.input=r,this.beginIndex=o,this.endIndex=l}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const o=r.parse(e[1],1,It),l=r.parse(e[2],2,We);if(!o||!l)return null;if(!te(o.type,[J(It),Bt,It]))return r.error(`Expected first argument to be of type array or string, but found ${Q(o.type)} instead`);if(e.length===4){const h=r.parse(e[3],3,We);return h?new ca(o.type,o,l,h):null}return new ca(o.type,o,l)}evaluate(e){const r=this.input.evaluate(e),o=this.beginIndex.evaluate(e);if(!ae(r,["string","array"]))throw new Wi(`Expected first argument to be of type array or string, but found ${Q(Gi(r))} instead.`);if(this.endIndex){const l=this.endIndex.evaluate(e);return r.slice(o,l)}return r.slice(o)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}}function Is(i,e){return i==="=="||i==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function ua(i,e,r,o){return o.compare(e,r)===0}function Wo(i,e,r){const o=i!=="=="&&i!=="!=";return class $p{constructor(h,p,y){this.type=Mt,this.lhs=h,this.rhs=p,this.collator=y,this.hasUntypedArgument=h.type.kind==="value"||p.type.kind==="value"}static parse(h,p){if(h.length!==3&&h.length!==4)return p.error("Expected two or three arguments.");const y=h[0];let w=p.parse(h[1],1,It);if(!w)return null;if(!Is(y,w.type))return p.concat(1).error(`"${y}" comparisons are not supported for type '${Q(w.type)}'.`);let T=p.parse(h[2],2,It);if(!T)return null;if(!Is(y,T.type))return p.concat(2).error(`"${y}" comparisons are not supported for type '${Q(T.type)}'.`);if(w.type.kind!==T.type.kind&&w.type.kind!=="value"&&T.type.kind!=="value")return p.error(`Cannot compare types '${Q(w.type)}' and '${Q(T.type)}'.`);o&&(w.type.kind==="value"&&T.type.kind!=="value"?w=new kn(T.type,[w]):w.type.kind!=="value"&&T.type.kind==="value"&&(T=new kn(w.type,[T])));let M=null;if(h.length===4){if(w.type.kind!=="string"&&T.type.kind!=="string"&&w.type.kind!=="value"&&T.type.kind!=="value")return p.error("Cannot use collator to compare non-string types.");if(M=p.parse(h[3],3,Mn),!M)return null}return new $p(w,T,M)}evaluate(h){const p=this.lhs.evaluate(h),y=this.rhs.evaluate(h);if(o&&this.hasUntypedArgument){const w=Gi(p),T=Gi(y);if(w.kind!==T.kind||w.kind!=="string"&&w.kind!=="number")throw new Wi(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${w.kind}, ${T.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const w=Gi(p),T=Gi(y);if(w.kind!=="string"||T.kind!=="string")return e(h,p,y)}return this.collator?r(h,p,y,this.collator.evaluate(h)):e(h,p,y)}eachChild(h){h(this.lhs),h(this.rhs),this.collator&&h(this.collator)}outputDefined(){return!0}}}const eo=Wo("==",function(i,e,r){return e===r},ua),sl=Wo("!=",function(i,e,r){return e!==r},function(i,e,r,o){return!ua(0,e,r,o)}),al=Wo("<",function(i,e,r){return e",function(i,e,r){return e>r},function(i,e,r,o){return o.compare(e,r)>0}),ll=Wo("<=",function(i,e,r){return e<=r},function(i,e,r,o){return o.compare(e,r)<=0}),ha=Wo(">=",function(i,e,r){return e>=r},function(i,e,r,o){return o.compare(e,r)>=0});class da{constructor(e,r,o,l,h){this.type=Bt,this.number=e,this.locale=r,this.currency=o,this.minFractionDigits=l,this.maxFractionDigits=h}static parse(e,r){if(e.length!==3)return r.error("Expected two arguments.");const o=r.parse(e[1],1,We);if(!o)return null;const l=e[2];if(typeof l!="object"||Array.isArray(l))return r.error("NumberFormat options argument must be an object.");let h=null;if(l.locale&&(h=r.parse(l.locale,1,Bt),!h))return null;let p=null;if(l.currency&&(p=r.parse(l.currency,1,Bt),!p))return null;let y=null;if(l["min-fraction-digits"]&&(y=r.parse(l["min-fraction-digits"],1,We),!y))return null;let w=null;return l["max-fraction-digits"]&&(w=r.parse(l["max-fraction-digits"],1,We),!w)?null:new da(o,h,p,y,w)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}}class Es{constructor(e){this.type=X,this.sections=e}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const o=e[1];if(!Array.isArray(o)&&typeof o=="object")return r.error("First argument must be an image or text section.");const l=[];let h=!1;for(let p=1;p<=e.length-1;++p){const y=e[p];if(h&&typeof y=="object"&&!Array.isArray(y)){h=!1;let w=null;if(y["font-scale"]&&(w=r.parse(y["font-scale"],1,We),!w))return null;let T=null;if(y["text-font"]&&(T=r.parse(y["text-font"],1,J(Bt)),!T))return null;let M=null;if(y["text-color"]&&(M=r.parse(y["text-color"],1,Vr),!M))return null;const z=l[l.length-1];z.scale=w,z.font=T,z.textColor=M}else{const w=r.parse(e[p],1,It);if(!w)return null;const T=w.type.kind;if(T!=="string"&&T!=="value"&&T!=="null"&&T!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");h=!0,l.push({content:w,scale:null,font:null,textColor:null})}}return new Es(l)}evaluate(e){return new ji(this.sections.map(r=>{const o=r.content.evaluate(e);return Gi(o)===F?new jn("",o,null,null,null):new jn(ui(o),null,r.scale?r.scale.evaluate(e):null,r.font?r.font.evaluate(e).join(","):null,r.textColor?r.textColor.evaluate(e):null)}))}eachChild(e){for(const r of this.sections)e(r.content),r.scale&&e(r.scale),r.font&&e(r.font),r.textColor&&e(r.textColor)}outputDefined(){return!1}}class Ua{constructor(e){this.type=F,this.input=e}static parse(e,r){if(e.length!==2)return r.error("Expected two arguments.");const o=r.parse(e[1],1,Bt);return o?new Ua(o):r.error("No image name provided.")}evaluate(e){const r=this.input.evaluate(e),o=Ir.fromString(r);return o&&e.availableImages&&(o.available=e.availableImages.indexOf(r)>-1),o}eachChild(e){e(this.input)}outputDefined(){return!1}}class po{constructor(e){this.type=We,this.input=e}static parse(e,r){if(e.length!==2)return r.error(`Expected 1 argument, but found ${e.length-1} instead.`);const o=r.parse(e[1],1);return o?o.type.kind!=="array"&&o.type.kind!=="string"&&o.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${Q(o.type)} instead.`):new po(o):null}evaluate(e){const r=this.input.evaluate(e);if(typeof r=="string"||Array.isArray(r))return r.length;throw new Wi(`Expected value to be of type string or array, but found ${Q(Gi(r))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}}const Ho={"==":eo,"!=":sl,">":Dl,"<":al,">=":ha,"<=":ll,array:kn,at:Na,boolean:kn,case:Va,coalesce:oa,collator:O,format:Es,image:Ua,in:aa,"index-of":Ts,interpolate:on,"interpolate-hcl":on,"interpolate-lab":on,length:po,let:sa,literal:uo,match:la,number:kn,"number-format":da,object:kn,slice:ca,step:ho,string:kn,"to-boolean":Eo,"to-color":Eo,"to-number":Eo,"to-string":Eo,var:tr,within:Xi};function cl(i,[e,r,o,l]){e=e.evaluate(i),r=r.evaluate(i),o=o.evaluate(i);const h=l?l.evaluate(i):1,p=ta(e,r,o,h);if(p)throw new Wi(p);return new gi(e/255,r/255,o/255,h,!1)}function ul(i,e){return i in e}function Cs(i,e){const r=e[i];return r===void 0?null:r}function qn(i){return{type:i}}function pa(i){return{result:"success",value:i}}function to(i){return{result:"error",value:i}}function Co(i){return i["property-type"]==="data-driven"||i["property-type"]==="cross-faded-data-driven"}function as(i){return!!i.expression&&i.expression.parameters.indexOf("zoom")>-1}function ja(i){return!!i.expression&&i.expression.interpolated}function fi(i){return i instanceof Number?"number":i instanceof String?"string":i instanceof Boolean?"boolean":Array.isArray(i)?"array":i===null?"null":typeof i}function Ki(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)}function Fl(i){return i}function Yt(i,e){const r=e.type==="color",o=i.stops&&typeof i.stops[0][0]=="object",l=o||!(o||i.property!==void 0),h=i.type||(ja(e)?"exponential":"interval");if(r||e.type==="padding"){const M=r?gi.parse:jr.parse;(i=fn({},i)).stops&&(i.stops=i.stops.map(z=>[z[0],M(z[1])])),i.default=M(i.default?i.default:e.default)}if(i.colorSpace&&(p=i.colorSpace)!=="rgb"&&p!=="hcl"&&p!=="lab")throw new Error(`Unknown color space: "${i.colorSpace}"`);var p;let y,w,T;if(h==="exponential")y=_n;else if(h==="interval")y=vi;else if(h==="categorical"){y=Ni,w=Object.create(null);for(const M of i.stops)w[M[0]]=M[1];T=typeof i.stops[0][0]}else{if(h!=="identity")throw new Error(`Unknown function type "${h}"`);y=Ao}if(o){const M={},z=[];for(let U=0;UU[0]),evaluate:({zoom:U},Z)=>_n({stops:D,base:i.base},e,U).evaluate(U,Z)}}if(l){const M=h==="exponential"?{name:"exponential",base:i.base!==void 0?i.base:1}:null;return{kind:"camera",interpolationType:M,interpolationFactor:on.interpolationFactor.bind(void 0,M),zoomStops:i.stops.map(z=>z[0]),evaluate:({zoom:z})=>y(i,e,z,w,T)}}return{kind:"source",evaluate(M,z){const D=z&&z.properties?z.properties[i.property]:void 0;return D===void 0?Mo(i.default,e.default):y(i,e,D,w,T)}}}function Mo(i,e,r){return i!==void 0?i:e!==void 0?e:r!==void 0?r:void 0}function Ni(i,e,r,o,l){return Mo(typeof r===l?o[r]:void 0,i.default,e.default)}function vi(i,e,r){if(fi(r)!=="number")return Mo(i.default,e.default);const o=i.stops.length;if(o===1||r<=i.stops[0][0])return i.stops[0][1];if(r>=i.stops[o-1][0])return i.stops[o-1][1];const l=nn(i.stops.map(h=>h[0]),r);return i.stops[l][1]}function _n(i,e,r){const o=i.base!==void 0?i.base:1;if(fi(r)!=="number")return Mo(i.default,e.default);const l=i.stops.length;if(l===1||r<=i.stops[0][0])return i.stops[0][1];if(r>=i.stops[l-1][0])return i.stops[l-1][1];const h=nn(i.stops.map(M=>M[0]),r),p=function(M,z,D,V){const U=V-D,Z=M-D;return U===0?0:z===1?Z/U:(Math.pow(z,Z)-1)/(Math.pow(z,U)-1)}(r,o,i.stops[h][0],i.stops[h+1][0]),y=i.stops[h][1],w=i.stops[h+1][1],T=Wr[e.type]||Fl;return typeof y.evaluate=="function"?{evaluate(...M){const z=y.evaluate.apply(void 0,M),D=w.evaluate.apply(void 0,M);if(z!==void 0&&D!==void 0)return T(z,D,p,i.colorSpace)}}:T(y,w,p,i.colorSpace)}function Ao(i,e,r){switch(e.type){case"color":r=gi.parse(r);break;case"formatted":r=ji.fromString(r.toString());break;case"resolvedImage":r=Ir.fromString(r.toString());break;case"padding":r=jr.parse(r);break;default:fi(r)===e.type||e.type==="enum"&&e.values[r]||(r=void 0)}return Mo(r,i.default,e.default)}rn.register(Ho,{error:[{kind:"error"},[Bt],(i,[e])=>{throw new Wi(e.evaluate(i))}],typeof:[Bt,[It],(i,[e])=>Q(Gi(e.evaluate(i)))],"to-rgba":[J(We,4),[Vr],(i,[e])=>{const[r,o,l,h]=e.evaluate(i).rgb;return[255*r,255*o,255*l,h]}],rgb:[Vr,[We,We,We],cl],rgba:[Vr,[We,We,We,We],cl],has:{type:Mt,overloads:[[[Bt],(i,[e])=>ul(e.evaluate(i),i.properties())],[[Bt,mn],(i,[e,r])=>ul(e.evaluate(i),r.evaluate(i))]]},get:{type:It,overloads:[[[Bt],(i,[e])=>Cs(e.evaluate(i),i.properties())],[[Bt,mn],(i,[e,r])=>Cs(e.evaluate(i),r.evaluate(i))]]},"feature-state":[It,[Bt],(i,[e])=>Cs(e.evaluate(i),i.featureState||{})],properties:[mn,[],i=>i.properties()],"geometry-type":[Bt,[],i=>i.geometryType()],id:[It,[],i=>i.id()],zoom:[We,[],i=>i.globals.zoom],"heatmap-density":[We,[],i=>i.globals.heatmapDensity||0],"line-progress":[We,[],i=>i.globals.lineProgress||0],accumulated:[It,[],i=>i.globals.accumulated===void 0?null:i.globals.accumulated],"+":[We,qn(We),(i,e)=>{let r=0;for(const o of e)r+=o.evaluate(i);return r}],"*":[We,qn(We),(i,e)=>{let r=1;for(const o of e)r*=o.evaluate(i);return r}],"-":{type:We,overloads:[[[We,We],(i,[e,r])=>e.evaluate(i)-r.evaluate(i)],[[We],(i,[e])=>-e.evaluate(i)]]},"/":[We,[We,We],(i,[e,r])=>e.evaluate(i)/r.evaluate(i)],"%":[We,[We,We],(i,[e,r])=>e.evaluate(i)%r.evaluate(i)],ln2:[We,[],()=>Math.LN2],pi:[We,[],()=>Math.PI],e:[We,[],()=>Math.E],"^":[We,[We,We],(i,[e,r])=>Math.pow(e.evaluate(i),r.evaluate(i))],sqrt:[We,[We],(i,[e])=>Math.sqrt(e.evaluate(i))],log10:[We,[We],(i,[e])=>Math.log(e.evaluate(i))/Math.LN10],ln:[We,[We],(i,[e])=>Math.log(e.evaluate(i))],log2:[We,[We],(i,[e])=>Math.log(e.evaluate(i))/Math.LN2],sin:[We,[We],(i,[e])=>Math.sin(e.evaluate(i))],cos:[We,[We],(i,[e])=>Math.cos(e.evaluate(i))],tan:[We,[We],(i,[e])=>Math.tan(e.evaluate(i))],asin:[We,[We],(i,[e])=>Math.asin(e.evaluate(i))],acos:[We,[We],(i,[e])=>Math.acos(e.evaluate(i))],atan:[We,[We],(i,[e])=>Math.atan(e.evaluate(i))],min:[We,qn(We),(i,e)=>Math.min(...e.map(r=>r.evaluate(i)))],max:[We,qn(We),(i,e)=>Math.max(...e.map(r=>r.evaluate(i)))],abs:[We,[We],(i,[e])=>Math.abs(e.evaluate(i))],round:[We,[We],(i,[e])=>{const r=e.evaluate(i);return r<0?-Math.round(-r):Math.round(r)}],floor:[We,[We],(i,[e])=>Math.floor(e.evaluate(i))],ceil:[We,[We],(i,[e])=>Math.ceil(e.evaluate(i))],"filter-==":[Mt,[Bt,It],(i,[e,r])=>i.properties()[e.value]===r.value],"filter-id-==":[Mt,[It],(i,[e])=>i.id()===e.value],"filter-type-==":[Mt,[Bt],(i,[e])=>i.geometryType()===e.value],"filter-<":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o{const r=i.id(),o=e.value;return typeof r==typeof o&&r":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o>l}],"filter-id->":[Mt,[It],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r>o}],"filter-<=":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o<=l}],"filter-id-<=":[Mt,[It],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r<=o}],"filter->=":[Mt,[Bt,It],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o>=l}],"filter-id->=":[Mt,[It],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r>=o}],"filter-has":[Mt,[It],(i,[e])=>e.value in i.properties()],"filter-has-id":[Mt,[],i=>i.id()!==null&&i.id()!==void 0],"filter-type-in":[Mt,[J(Bt)],(i,[e])=>e.value.indexOf(i.geometryType())>=0],"filter-id-in":[Mt,[J(It)],(i,[e])=>e.value.indexOf(i.id())>=0],"filter-in-small":[Mt,[Bt,J(It)],(i,[e,r])=>r.value.indexOf(i.properties()[e.value])>=0],"filter-in-large":[Mt,[Bt,J(It)],(i,[e,r])=>function(o,l,h,p){for(;h<=p;){const y=h+p>>1;if(l[y]===o)return!0;l[y]>o?p=y-1:h=y+1}return!1}(i.properties()[e.value],r.value,0,r.value.length-1)],all:{type:Mt,overloads:[[[Mt,Mt],(i,[e,r])=>e.evaluate(i)&&r.evaluate(i)],[qn(Mt),(i,e)=>{for(const r of e)if(!r.evaluate(i))return!1;return!0}]]},any:{type:Mt,overloads:[[[Mt,Mt],(i,[e,r])=>e.evaluate(i)||r.evaluate(i)],[qn(Mt),(i,e)=>{for(const r of e)if(r.evaluate(i))return!0;return!1}]]},"!":[Mt,[Mt],(i,[e])=>!e.evaluate(i)],"is-supported-script":[Mt,[Bt],(i,[e])=>{const r=i.globals&&i.globals.isSupportedScript;return!r||r(e.evaluate(i))}],upcase:[Bt,[Bt],(i,[e])=>e.evaluate(i).toUpperCase()],downcase:[Bt,[Bt],(i,[e])=>e.evaluate(i).toLowerCase()],concat:[Bt,qn(It),(i,e)=>e.map(r=>ui(r.evaluate(i))).join("")],"resolved-locale":[Bt,[Mn],(i,[e])=>e.evaluate(i).resolvedLocale()]});class ls{constructor(e,r){var o;this.expression=e,this._warningHistory={},this._evaluator=new g,this._defaultValue=r?(o=r).type==="color"&&Ki(o.default)?new gi(0,0,0,0):o.type==="color"?gi.parse(o.default)||null:o.type==="padding"?jr.parse(o.default)||null:o.type==="variableAnchorOffsetCollection"?Tr.parse(o.default)||null:o.default===void 0?null:o.default:null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(e,r,o,l,h,p){return this._evaluator.globals=e,this._evaluator.feature=r,this._evaluator.featureState=o,this._evaluator.canonical=l,this._evaluator.availableImages=h||null,this._evaluator.formattedSection=p,this.expression.evaluate(this._evaluator)}evaluate(e,r,o,l,h,p){this._evaluator.globals=e,this._evaluator.feature=r||null,this._evaluator.featureState=o||null,this._evaluator.canonical=l,this._evaluator.availableImages=h||null,this._evaluator.formattedSection=p||null;try{const y=this.expression.evaluate(this._evaluator);if(y==null||typeof y=="number"&&y!=y)return this._defaultValue;if(this._enumValues&&!(y in this._enumValues))throw new Wi(`Expected value to be one of ${Object.keys(this._enumValues).map(w=>JSON.stringify(w)).join(", ")}, but found ${JSON.stringify(y)} instead.`);return y}catch(y){return this._warningHistory[y.message]||(this._warningHistory[y.message]=!0,typeof console<"u"&&console.warn(y.message)),this._defaultValue}}}function Zn(i){return Array.isArray(i)&&i.length>0&&typeof i[0]=="string"&&i[0]in Ho}function fa(i,e){const r=new I(Ho,ia,[],e?function(l){const h={color:Vr,string:Bt,number:We,enum:Bt,boolean:Mt,formatted:X,padding:L,resolvedImage:F,variableAnchorOffsetCollection:j};return l.type==="array"?J(h[l.value]||It,l.length):h[l.type]}(e):void 0),o=r.parse(i,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?pa(new ls(o,e)):to(r.errors)}class cs{constructor(e,r){this.kind=e,this._styleExpression=r,this.isStateDependent=e!=="constant"&&!ss(r.expression)}evaluateWithoutErrorHandling(e,r,o,l,h,p){return this._styleExpression.evaluateWithoutErrorHandling(e,r,o,l,h,p)}evaluate(e,r,o,l,h,p){return this._styleExpression.evaluate(e,r,o,l,h,p)}}class ko{constructor(e,r,o,l){this.kind=e,this.zoomStops=o,this._styleExpression=r,this.isStateDependent=e!=="camera"&&!ss(r.expression),this.interpolationType=l}evaluateWithoutErrorHandling(e,r,o,l,h,p){return this._styleExpression.evaluateWithoutErrorHandling(e,r,o,l,h,p)}evaluate(e,r,o,l,h,p){return this._styleExpression.evaluate(e,r,o,l,h,p)}interpolationFactor(e,r,o){return this.interpolationType?on.interpolationFactor(this.interpolationType,e,r,o):0}}function ma(i,e){const r=fa(i,e);if(r.result==="error")return r;const o=r.value.expression,l=Ci(o);if(!l&&!Co(e))return to([new er("","data expressions not supported")]);const h=ra(o,["zoom"]);if(!h&&!as(e))return to([new er("","zoom expressions not supported")]);const p=Ms(o);return p||h?p instanceof er?to([p]):p instanceof on&&!ja(e)?to([new er("",'"interpolate" expressions cannot be used with this property')]):pa(p?new ko(l?"camera":"composite",r.value,p.labels,p instanceof on?p.interpolation:void 0):new cs(l?"constant":"source",r.value)):to([new er("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class us{constructor(e,r){this._parameters=e,this._specification=r,fn(this,Yt(this._parameters,this._specification))}static deserialize(e){return new us(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function Ms(i){let e=null;if(i instanceof sa)e=Ms(i.result);else if(i instanceof oa){for(const r of i.args)if(e=Ms(r),e)break}else(i instanceof ho||i instanceof on)&&i.input instanceof rn&&i.input.name==="zoom"&&(e=i);return e instanceof er||i.eachChild(r=>{const o=Ms(r);o instanceof er?e=o:!e&&o?e=new er("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&o&&e!==o&&(e=new er("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function As(i){if(i===!0||i===!1)return!0;if(!Array.isArray(i)||i.length===0)return!1;switch(i[0]){case"has":return i.length>=2&&i[1]!=="$id"&&i[1]!=="$type";case"in":return i.length>=3&&(typeof i[1]!="string"||Array.isArray(i[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return i.length!==3||Array.isArray(i[1])||Array.isArray(i[2]);case"any":case"all":for(const e of i.slice(1))if(!As(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}const hl={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function _a(i){if(i==null)return{filter:()=>!0,needGeometry:!1};As(i)||(i=ya(i));const e=fa(i,hl);if(e.result==="error")throw new Error(e.value.map(r=>`${r.key}: ${r.message}`).join(", "));return{filter:(r,o,l)=>e.value.evaluate(r,o,{},l),needGeometry:Xo(i)}}function ga(i,e){return ie?1:0}function Xo(i){if(!Array.isArray(i))return!1;if(i[0]==="within")return!0;for(let e=1;e"||e==="<="||e===">="?io(i[1],i[2],e):e==="any"?(r=i.slice(1),["any"].concat(r.map(ya))):e==="all"?["all"].concat(i.slice(1).map(ya)):e==="none"?["all"].concat(i.slice(1).map(ya).map(hs)):e==="in"?dl(i[1],i.slice(2)):e==="!in"?hs(dl(i[1],i.slice(2))):e==="has"?Po(i[1]):e==="!has"?hs(Po(i[1])):e!=="within"||i;var r}function io(i,e,r){switch(i){case"$type":return[`filter-type-${r}`,e];case"$id":return[`filter-id-${r}`,e];default:return[`filter-${r}`,i,e]}}function dl(i,e){if(e.length===0)return!1;switch(i){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(r=>typeof r!=typeof e[0])?["filter-in-large",i,["literal",e.sort(ga)]]:["filter-in-small",i,["literal",e]]}}function Po(i){switch(i){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",i]}}function hs(i){return["!",i]}function va(i){const e=typeof i;if(e==="number"||e==="boolean"||e==="string"||i==null)return JSON.stringify(i);if(Array.isArray(i)){let l="[";for(const h of i)l+=`${va(h)},`;return`${l}]`}const r=Object.keys(i).sort();let o="{";for(let l=0;lo.maximum?[new qe(e,r,`${r} is greater than the maximum value ${o.maximum}`)]:[]}function ba(i){const e=i.valueSpec,r=Ji(i.value.type);let o,l,h,p={};const y=r!=="categorical"&&i.value.property===void 0,w=!y,T=fi(i.value.stops)==="array"&&fi(i.value.stops[0])==="array"&&fi(i.value.stops[0][0])==="object",M=Hr({key:i.key,value:i.value,valueSpec:i.styleSpec.function,validateSpec:i.validateSpec,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{stops:function(V){if(r==="identity")return[new qe(V.key,V.value,'identity function may not have a "stops" property')];let U=[];const Z=V.value;return U=U.concat(ro({key:V.key,value:Z,valueSpec:V.valueSpec,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec,arrayElementValidator:z})),fi(Z)==="array"&&Z.length===0&&U.push(new qe(V.key,Z,"array must have at least one stop")),U},default:function(V){return V.validateSpec({key:V.key,value:V.value,valueSpec:e,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec})}}});return r==="identity"&&y&&M.push(new qe(i.key,i.value,'missing required property "property"')),r==="identity"||i.value.stops||M.push(new qe(i.key,i.value,'missing required property "stops"')),r==="exponential"&&i.valueSpec.expression&&!ja(i.valueSpec)&&M.push(new qe(i.key,i.value,"exponential functions not supported")),i.styleSpec.$version>=8&&(w&&!Co(i.valueSpec)?M.push(new qe(i.key,i.value,"property functions not supported")):y&&!as(i.valueSpec)&&M.push(new qe(i.key,i.value,"zoom functions not supported"))),r!=="categorical"&&!T||i.value.property!==void 0||M.push(new qe(i.key,i.value,'"property" property is required')),M;function z(V){let U=[];const Z=V.value,$=V.key;if(fi(Z)!=="array")return[new qe($,Z,`array expected, ${fi(Z)} found`)];if(Z.length!==2)return[new qe($,Z,`array length 2 expected, length ${Z.length} found`)];if(T){if(fi(Z[0])!=="object")return[new qe($,Z,`object expected, ${fi(Z[0])} found`)];if(Z[0].zoom===void 0)return[new qe($,Z,"object stop key must have zoom")];if(Z[0].value===void 0)return[new qe($,Z,"object stop key must have value")];if(h&&h>Ji(Z[0].zoom))return[new qe($,Z[0].zoom,"stop zoom values must appear in ascending order")];Ji(Z[0].zoom)!==h&&(h=Ji(Z[0].zoom),l=void 0,p={}),U=U.concat(Hr({key:`${$}[0]`,value:Z[0],valueSpec:{zoom:{}},validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec,objectElementValidators:{zoom:ds,value:D}}))}else U=U.concat(D({key:`${$}[0]`,value:Z[0],valueSpec:{},validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec},Z));return Zn(zo(Z[1]))?U.concat([new qe(`${$}[1]`,Z[1],"expressions are not allowed in function stops.")]):U.concat(V.validateSpec({key:`${$}[1]`,value:Z[1],valueSpec:e,validateSpec:V.validateSpec,style:V.style,styleSpec:V.styleSpec}))}function D(V,U){const Z=fi(V.value),$=Ji(V.value),ie=V.value!==null?V.value:U;if(o){if(Z!==o)return[new qe(V.key,ie,`${Z} stop domain type must match previous stop domain type ${o}`)]}else o=Z;if(Z!=="number"&&Z!=="string"&&Z!=="boolean")return[new qe(V.key,ie,"stop domain value must be a number, string, or boolean")];if(Z!=="number"&&r!=="categorical"){let ue=`number expected, ${Z} found`;return Co(e)&&r===void 0&&(ue+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new qe(V.key,ie,ue)]}return r!=="categorical"||Z!=="number"||isFinite($)&&Math.floor($)===$?r!=="categorical"&&Z==="number"&&l!==void 0&&$new qe(`${i.key}${o.key}`,i.value,o.message));const r=e.value.expression||e.value._styleExpression.expression;if(i.expressionContext==="property"&&i.propertyKey==="text-font"&&!r.outputDefined())return[new qe(i.key,i.value,`Invalid data expression for "${i.propertyKey}". Output values must be contained as literals within the expression.`)];if(i.expressionContext==="property"&&i.propertyType==="layout"&&!ss(r))return[new qe(i.key,i.value,'"feature-state" data expressions are not supported with layout properties.')];if(i.expressionContext==="filter"&&!ss(r))return[new qe(i.key,i.value,'"feature-state" data expressions are not supported with filters.')];if(i.expressionContext&&i.expressionContext.indexOf("cluster")===0){if(!ra(r,["zoom","feature-state"]))return[new qe(i.key,i.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(i.expressionContext==="cluster-initial"&&!Ci(r))return[new qe(i.key,i.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function we(i){const e=i.key,r=i.value,o=i.valueSpec,l=[];return Array.isArray(o.values)?o.values.indexOf(Ji(r))===-1&&l.push(new qe(e,r,`expected one of [${o.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(o.values).indexOf(Ji(r))===-1&&l.push(new qe(e,r,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(r)} found`)),l}function Ye(i){return As(zo(i.value))?de(fn({},i,{expressionContext:"filter",valueSpec:{value:"boolean"}})):wt(i)}function wt(i){const e=i.value,r=i.key;if(fi(e)!=="array")return[new qe(r,e,`array expected, ${fi(e)} found`)];const o=i.styleSpec;let l,h=[];if(e.length<1)return[new qe(r,e,"filter array must have at least 1 element")];switch(h=h.concat(we({key:`${r}[0]`,value:e[0],valueSpec:o.filter_operator,style:i.style,styleSpec:i.styleSpec})),Ji(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Ji(e[1])==="$type"&&h.push(new qe(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&h.push(new qe(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(l=fi(e[1]),l!=="string"&&h.push(new qe(`${r}[1]`,e[1],`string expected, ${l} found`)));for(let p=2;p{T in r&&e.push(new qe(o,r[T],`"${T}" is prohibited for ref layers`))}),l.layers.forEach(T=>{Ji(T.id)===y&&(w=T)}),w?w.ref?e.push(new qe(o,r.ref,"ref cannot reference another ref layer")):p=Ji(w.type):e.push(new qe(o,r.ref,`ref layer "${y}" not found`))}else if(p!=="background")if(r.source){const w=l.sources&&l.sources[r.source],T=w&&Ji(w.type);w?T==="vector"&&p==="raster"?e.push(new qe(o,r.source,`layer "${r.id}" requires a raster source`)):T!=="raster-dem"&&p==="hillshade"?e.push(new qe(o,r.source,`layer "${r.id}" requires a raster-dem source`)):T==="raster"&&p!=="raster"?e.push(new qe(o,r.source,`layer "${r.id}" requires a vector source`)):T!=="vector"||r["source-layer"]?T==="raster-dem"&&p!=="hillshade"?e.push(new qe(o,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):p!=="line"||!r.paint||!r.paint["line-gradient"]||T==="geojson"&&w.lineMetrics||e.push(new qe(o,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new qe(o,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new qe(o,r.source,`source "${r.source}" not found`))}else e.push(new qe(o,r,'missing required property "source"'));return e=e.concat(Hr({key:o,value:r,valueSpec:h.layer,style:i.style,styleSpec:i.styleSpec,validateSpec:i.validateSpec,objectElementValidators:{"*":()=>[],type:()=>i.validateSpec({key:`${o}.type`,value:r.type,valueSpec:h.layer.type,style:i.style,styleSpec:i.styleSpec,validateSpec:i.validateSpec,object:r,objectKey:"type"}),filter:Ye,layout:w=>Hr({layer:r,key:w.key,value:w.value,style:w.style,styleSpec:w.styleSpec,validateSpec:w.validateSpec,objectElementValidators:{"*":T=>ir(fn({layerType:p},T))}}),paint:w=>Hr({layer:r,key:w.key,value:w.value,style:w.style,styleSpec:w.styleSpec,validateSpec:w.validateSpec,objectElementValidators:{"*":T=>ri(fn({layerType:p},T))}})}})),e}function hr(i){const e=i.value,r=i.key,o=fi(e);return o!=="string"?[new qe(r,e,`string expected, ${o} found`)]:[]}const rr={promoteId:function({key:i,value:e}){if(fi(e)==="string")return hr({key:i,value:e});{const r=[];for(const o in e)r.push(...hr({key:`${i}.${o}`,value:e[o]}));return r}}};function xi(i){const e=i.value,r=i.key,o=i.styleSpec,l=i.style,h=i.validateSpec;if(!e.type)return[new qe(r,e,'"type" is required')];const p=Ji(e.type);let y;switch(p){case"vector":case"raster":return y=Hr({key:r,value:e,valueSpec:o[`source_${p.replace("-","_")}`],style:i.style,styleSpec:o,objectElementValidators:rr,validateSpec:h}),y;case"raster-dem":return y=function(w){var T;const M=(T=w.sourceName)!==null&&T!==void 0?T:"",z=w.value,D=w.styleSpec,V=D.source_raster_dem,U=w.style;let Z=[];const $=fi(z);if(z===void 0)return Z;if($!=="object")return Z.push(new qe("source_raster_dem",z,`object expected, ${$} found`)),Z;const ie=Ji(z.encoding)==="custom",ue=["redFactor","greenFactor","blueFactor","baseShift"],re=w.value.encoding?`"${w.value.encoding}"`:"Default";for(const pe in z)!ie&&ue.includes(pe)?Z.push(new qe(pe,z[pe],`In "${M}": "${pe}" is only valid when "encoding" is set to "custom". ${re} encoding found`)):V[pe]?Z=Z.concat(w.validateSpec({key:pe,value:z[pe],valueSpec:V[pe],validateSpec:w.validateSpec,style:U,styleSpec:D})):Z.push(new qe(pe,z[pe],`unknown property "${pe}"`));return Z}({sourceName:r,value:e,style:i.style,styleSpec:o,validateSpec:h}),y;case"geojson":if(y=Hr({key:r,value:e,valueSpec:o.source_geojson,style:l,styleSpec:o,validateSpec:h,objectElementValidators:rr}),e.cluster)for(const w in e.clusterProperties){const[T,M]=e.clusterProperties[w],z=typeof T=="string"?[T,["accumulated"],["get",w]]:T;y.push(...de({key:`${r}.${w}.map`,value:M,validateSpec:h,expressionContext:"cluster-map"})),y.push(...de({key:`${r}.${w}.reduce`,value:z,validateSpec:h,expressionContext:"cluster-reduce"}))}return y;case"video":return Hr({key:r,value:e,valueSpec:o.source_video,style:l,validateSpec:h,styleSpec:o});case"image":return Hr({key:r,value:e,valueSpec:o.source_image,style:l,validateSpec:h,styleSpec:o});case"canvas":return[new qe(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return we({key:`${r}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:l,validateSpec:h,styleSpec:o})}}function sn(i){const e=i.value,r=i.styleSpec,o=r.light,l=i.style;let h=[];const p=fi(e);if(e===void 0)return h;if(p!=="object")return h=h.concat([new qe("light",e,`object expected, ${p} found`)]),h;for(const y in e){const w=y.match(/^(.*)-transition$/);h=h.concat(w&&o[w[1]]&&o[w[1]].transition?i.validateSpec({key:y,value:e[y],valueSpec:r.transition,validateSpec:i.validateSpec,style:l,styleSpec:r}):o[y]?i.validateSpec({key:y,value:e[y],valueSpec:o[y],validateSpec:i.validateSpec,style:l,styleSpec:r}):[new qe(y,e[y],`unknown property "${y}"`)])}return h}function no(i){const e=i.value,r=i.styleSpec,o=r.terrain,l=i.style;let h=[];const p=fi(e);if(e===void 0)return h;if(p!=="object")return h=h.concat([new qe("terrain",e,`object expected, ${p} found`)]),h;for(const y in e)h=h.concat(o[y]?i.validateSpec({key:y,value:e[y],valueSpec:o[y],validateSpec:i.validateSpec,style:l,styleSpec:r}):[new qe(y,e[y],`unknown property "${y}"`)]);return h}function qr(i){let e=[];const r=i.value,o=i.key;if(Array.isArray(r)){const l=[],h=[];for(const p in r)r[p].id&&l.includes(r[p].id)&&e.push(new qe(o,r,`all the sprites' ids must be unique, but ${r[p].id} is duplicated`)),l.push(r[p].id),r[p].url&&h.includes(r[p].url)&&e.push(new qe(o,r,`all the sprites' URLs must be unique, but ${r[p].url} is duplicated`)),h.push(r[p].url),e=e.concat(Hr({key:`${o}[${p}]`,value:r[p],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:i.validateSpec}));return e}return hr({key:o,value:r})}const oo={"*":()=>[],array:ro,boolean:function(i){const e=i.value,r=i.key,o=fi(e);return o!=="boolean"?[new qe(r,e,`boolean expected, ${o} found`)]:[]},number:ds,color:function(i){const e=i.key,r=i.value,o=fi(r);return o!=="string"?[new qe(e,r,`color expected, ${o} found`)]:gi.parse(String(r))?[]:[new qe(e,r,`color expected, "${r}" found`)]},constants:xa,enum:we,filter:Ye,function:ba,layer:lr,object:Hr,source:xi,light:sn,terrain:no,string:hr,formatted:function(i){return hr(i).length===0?[]:de(i)},resolvedImage:function(i){return hr(i).length===0?[]:de(i)},padding:function(i){const e=i.key,r=i.value;if(fi(r)==="array"){if(r.length<1||r.length>4)return[new qe(e,r,`padding requires 1 to 4 values; ${r.length} values found`)];const o={type:"number"};let l=[];for(let h=0;h[]}})),i.constants&&(r=r.concat(xa({key:"constants",value:i.constants,style:i,styleSpec:e,validateSpec:an}))),Ps(r)}function gn(i){return function(e){return i({...e,validateSpec:an})}}function Ps(i){return[].concat(i).sort((e,r)=>e.line-r.line)}function fo(i){return function(...e){return Ps(i.apply(this,e))}}Ar.source=fo(gn(xi)),Ar.sprite=fo(gn(qr)),Ar.glyphs=fo(gn(ks)),Ar.light=fo(gn(sn)),Ar.terrain=fo(gn(no)),Ar.layer=fo(gn(lr)),Ar.filter=fo(gn(Ye)),Ar.paintProperty=fo(gn(ri)),Ar.layoutProperty=fo(gn(ir));const mo=Ar,Li=mo.light,bi=mo.paintProperty,zs=mo.layoutProperty;function Gn(i,e){let r=!1;if(e&&e.length)for(const o of e)i.fire(new wo(new Error(o.message))),r=!0;return r}class Lo{constructor(e,r,o){const l=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;const p=new Int32Array(this.arrayBuffer);e=p[0],this.d=(r=p[1])+2*(o=p[2]);for(let w=0;w=z[U+0]&&l>=z[U+1])?(y[V]=!0,p.push(M[V])):y[V]=!1}}}}_forEachCell(e,r,o,l,h,p,y,w){const T=this._convertToCellCoord(e),M=this._convertToCellCoord(r),z=this._convertToCellCoord(o),D=this._convertToCellCoord(l);for(let V=T;V<=z;V++)for(let U=M;U<=D;U++){const Z=this.d*U+V;if((!w||w(this._convertFromCellCoord(V),this._convertFromCellCoord(U),this._convertFromCellCoord(V+1),this._convertFromCellCoord(U+1)))&&h.call(this,e,r,o,l,Z,p,y,w))return}}_convertFromCellCoord(e){return(e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const e=this.cells,r=3+this.cells.length+1+1;let o=0;for(let p=0;p=0)continue;const p=i[h];l[h]=dr[o].shallow.indexOf(h)>=0?p:Pn(p,e)}i instanceof Error&&(l.message=i.message)}if(l.$name)throw new Error("$name property is reserved for worker serialization logic.");return o!=="Object"&&(l.$name=o),l}throw new Error("can't serialize object of type "+typeof i)}function _o(i){if(i==null||typeof i=="boolean"||typeof i=="number"||typeof i=="string"||i instanceof Boolean||i instanceof Number||i instanceof String||i instanceof Date||i instanceof RegExp||i instanceof Blob||Wn(i)||$r(i)||ArrayBuffer.isView(i)||i instanceof ImageData)return i;if(Array.isArray(i))return i.map(_o);if(typeof i=="object"){const e=i.$name||"Object";if(!dr[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:r}=dr[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(i);const o=Object.create(r.prototype);for(const l of Object.keys(i)){if(l==="$name")continue;const h=i[l];o[l]=dr[e].shallow.indexOf(l)>=0?h:_o(h)}return o}throw new Error("can't deserialize object of type "+typeof i)}class Jo{constructor(){this.first=!0}update(e,r){const o=Math.floor(e);return this.first?(this.first=!1,this.lastIntegerZoom=o,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=o,!0):(this.lastFloorZoom>o?(this.lastIntegerZoom=o+1,this.lastIntegerZoomTime=r):this.lastFloorZoomi>=128&&i<=255,Arabic:i=>i>=1536&&i<=1791,"Arabic Supplement":i=>i>=1872&&i<=1919,"Arabic Extended-A":i=>i>=2208&&i<=2303,"Hangul Jamo":i=>i>=4352&&i<=4607,"Unified Canadian Aboriginal Syllabics":i=>i>=5120&&i<=5759,Khmer:i=>i>=6016&&i<=6143,"Unified Canadian Aboriginal Syllabics Extended":i=>i>=6320&&i<=6399,"General Punctuation":i=>i>=8192&&i<=8303,"Letterlike Symbols":i=>i>=8448&&i<=8527,"Number Forms":i=>i>=8528&&i<=8591,"Miscellaneous Technical":i=>i>=8960&&i<=9215,"Control Pictures":i=>i>=9216&&i<=9279,"Optical Character Recognition":i=>i>=9280&&i<=9311,"Enclosed Alphanumerics":i=>i>=9312&&i<=9471,"Geometric Shapes":i=>i>=9632&&i<=9727,"Miscellaneous Symbols":i=>i>=9728&&i<=9983,"Miscellaneous Symbols and Arrows":i=>i>=11008&&i<=11263,"CJK Radicals Supplement":i=>i>=11904&&i<=12031,"Kangxi Radicals":i=>i>=12032&&i<=12255,"Ideographic Description Characters":i=>i>=12272&&i<=12287,"CJK Symbols and Punctuation":i=>i>=12288&&i<=12351,Hiragana:i=>i>=12352&&i<=12447,Katakana:i=>i>=12448&&i<=12543,Bopomofo:i=>i>=12544&&i<=12591,"Hangul Compatibility Jamo":i=>i>=12592&&i<=12687,Kanbun:i=>i>=12688&&i<=12703,"Bopomofo Extended":i=>i>=12704&&i<=12735,"CJK Strokes":i=>i>=12736&&i<=12783,"Katakana Phonetic Extensions":i=>i>=12784&&i<=12799,"Enclosed CJK Letters and Months":i=>i>=12800&&i<=13055,"CJK Compatibility":i=>i>=13056&&i<=13311,"CJK Unified Ideographs Extension A":i=>i>=13312&&i<=19903,"Yijing Hexagram Symbols":i=>i>=19904&&i<=19967,"CJK Unified Ideographs":i=>i>=19968&&i<=40959,"Yi Syllables":i=>i>=40960&&i<=42127,"Yi Radicals":i=>i>=42128&&i<=42191,"Hangul Jamo Extended-A":i=>i>=43360&&i<=43391,"Hangul Syllables":i=>i>=44032&&i<=55215,"Hangul Jamo Extended-B":i=>i>=55216&&i<=55295,"Private Use Area":i=>i>=57344&&i<=63743,"CJK Compatibility Ideographs":i=>i>=63744&&i<=64255,"Arabic Presentation Forms-A":i=>i>=64336&&i<=65023,"Vertical Forms":i=>i>=65040&&i<=65055,"CJK Compatibility Forms":i=>i>=65072&&i<=65103,"Small Form Variants":i=>i>=65104&&i<=65135,"Arabic Presentation Forms-B":i=>i>=65136&&i<=65279,"Halfwidth and Fullwidth Forms":i=>i>=65280&&i<=65519};function wa(i){for(const e of i)if(fs(e.charCodeAt(0)))return!0;return!1}function ps(i){for(const e of i)if(!qa(e.charCodeAt(0)))return!1;return!0}function qa(i){return!(Xe.Arabic(i)||Xe["Arabic Supplement"](i)||Xe["Arabic Extended-A"](i)||Xe["Arabic Presentation Forms-A"](i)||Xe["Arabic Presentation Forms-B"](i))}function fs(i){return!(i!==746&&i!==747&&(i<4352||!(Xe["Bopomofo Extended"](i)||Xe.Bopomofo(i)||Xe["CJK Compatibility Forms"](i)&&!(i>=65097&&i<=65103)||Xe["CJK Compatibility Ideographs"](i)||Xe["CJK Compatibility"](i)||Xe["CJK Radicals Supplement"](i)||Xe["CJK Strokes"](i)||!(!Xe["CJK Symbols and Punctuation"](i)||i>=12296&&i<=12305||i>=12308&&i<=12319||i===12336)||Xe["CJK Unified Ideographs Extension A"](i)||Xe["CJK Unified Ideographs"](i)||Xe["Enclosed CJK Letters and Months"](i)||Xe["Hangul Compatibility Jamo"](i)||Xe["Hangul Jamo Extended-A"](i)||Xe["Hangul Jamo Extended-B"](i)||Xe["Hangul Jamo"](i)||Xe["Hangul Syllables"](i)||Xe.Hiragana(i)||Xe["Ideographic Description Characters"](i)||Xe.Kanbun(i)||Xe["Kangxi Radicals"](i)||Xe["Katakana Phonetic Extensions"](i)||Xe.Katakana(i)&&i!==12540||!(!Xe["Halfwidth and Fullwidth Forms"](i)||i===65288||i===65289||i===65293||i>=65306&&i<=65310||i===65339||i===65341||i===65343||i>=65371&&i<=65503||i===65507||i>=65512&&i<=65519)||!(!Xe["Small Form Variants"](i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||Xe["Unified Canadian Aboriginal Syllabics"](i)||Xe["Unified Canadian Aboriginal Syllabics Extended"](i)||Xe["Vertical Forms"](i)||Xe["Yijing Hexagram Symbols"](i)||Xe["Yi Syllables"](i)||Xe["Yi Radicals"](i))))}function Ls(i){return!(fs(i)||function(e){return!!(Xe["Latin-1 Supplement"](e)&&(e===167||e===169||e===174||e===177||e===188||e===189||e===190||e===215||e===247)||Xe["General Punctuation"](e)&&(e===8214||e===8224||e===8225||e===8240||e===8241||e===8251||e===8252||e===8258||e===8263||e===8264||e===8265||e===8273)||Xe["Letterlike Symbols"](e)||Xe["Number Forms"](e)||Xe["Miscellaneous Technical"](e)&&(e>=8960&&e<=8967||e>=8972&&e<=8991||e>=8996&&e<=9e3||e===9003||e>=9085&&e<=9114||e>=9150&&e<=9165||e===9167||e>=9169&&e<=9179||e>=9186&&e<=9215)||Xe["Control Pictures"](e)&&e!==9251||Xe["Optical Character Recognition"](e)||Xe["Enclosed Alphanumerics"](e)||Xe["Geometric Shapes"](e)||Xe["Miscellaneous Symbols"](e)&&!(e>=9754&&e<=9759)||Xe["Miscellaneous Symbols and Arrows"](e)&&(e>=11026&&e<=11055||e>=11088&&e<=11097||e>=11192&&e<=11243)||Xe["CJK Symbols and Punctuation"](e)||Xe.Katakana(e)||Xe["Private Use Area"](e)||Xe["CJK Compatibility Forms"](e)||Xe["Small Form Variants"](e)||Xe["Halfwidth and Fullwidth Forms"](e)||e===8734||e===8756||e===8757||e>=9984&&e<=10087||e>=10102&&e<=10131||e===65532||e===65533)}(i))}function Za(i){return i>=1424&&i<=2303||Xe["Arabic Presentation Forms-A"](i)||Xe["Arabic Presentation Forms-B"](i)}function Ds(i,e){return!(!e&&Za(i)||i>=2304&&i<=3583||i>=3840&&i<=4255||Xe.Khmer(i))}function Sa(i){for(const e of i)if(Za(e.charCodeAt(0)))return!0;return!1}const Rl="deferred",Ol="loading",Bl="loaded";let Nl=null,zn="unavailable",ms=null;const Ga=function(i){i&&typeof i=="string"&&i.indexOf("NetworkError")>-1&&(zn="error"),Nl&&Nl(i)};function Vl(){Wa.fire(new co("pluginStateChange",{pluginStatus:zn,pluginURL:ms}))}const Wa=new jo,Ul=function(){return zn},Fc=function(){if(zn!==Rl||!ms)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");zn=Ol,Vl(),ms&&Ue({url:ms},i=>{i?Ga(i):(zn=Bl,Vl())})},Hn={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>zn===Bl||Hn.applyArabicShaping!=null,isLoading:()=>zn===Ol,setState(i){if(!di())throw new Error("Cannot set the state of the rtl-text-plugin when not in the web-worker context");zn=i.pluginStatus,ms=i.pluginURL},isParsed(){if(!di())throw new Error("rtl-text-plugin is only parsed on the worker-threads");return Hn.applyArabicShaping!=null&&Hn.processBidirectionalText!=null&&Hn.processStyledBidirectionalText!=null},getPluginURL(){if(!di())throw new Error("rtl-text-plugin url can only be queried from the worker threads");return ms}};class Yi{constructor(e,r){this.zoom=e,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.zoomHistory=r.zoomHistory,this.transition=r.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Jo,this.transition={})}isSupportedScript(e){return function(r,o){for(const l of r)if(!Ds(l.charCodeAt(0),o))return!1;return!0}(e,Hn.isLoaded())}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const e=this.zoom,r=e-Math.floor(e),o=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*o}:{fromScale:.5,toScale:1,t:1-(1-o)*r}}}class pl{constructor(e,r){this.property=e,this.value=r,this.expression=function(o,l){if(Ki(o))return new us(o,l);if(Zn(o)){const h=ma(o,l);if(h.result==="error")throw new Error(h.value.map(p=>`${p.key}: ${p.message}`).join(", "));return h.value}{let h=o;return l.type==="color"&&typeof o=="string"?h=gi.parse(o):l.type!=="padding"||typeof o!="number"&&!Array.isArray(o)?l.type==="variableAnchorOffsetCollection"&&Array.isArray(o)&&(h=Tr.parse(o)):h=jr.parse(o),{kind:"constant",evaluate:()=>h}}}(r===void 0?e.specification.default:r,e.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(e,r,o){return this.property.possiblyEvaluate(this,e,r,o)}}class jl{constructor(e){this.property=e,this.value=new pl(e,void 0)}transitioned(e,r){return new Oc(this.property,this.value,r,Nt({},e.transition,this.transition),e.now)}untransitioned(){return new Oc(this.property,this.value,null,{},0)}}class Rc{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues)}getValue(e){return Ge(this._values[e].value.value)}setValue(e,r){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new jl(this._values[e].property)),this._values[e].value=new pl(this._values[e].property,r===null?void 0:Ge(r))}getTransition(e){return Ge(this._values[e].transition)}setTransition(e,r){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new jl(this._values[e].property)),this._values[e].transition=Ge(r)||void 0}serialize(){const e={};for(const r of Object.keys(this._values)){const o=this.getValue(r);o!==void 0&&(e[r]=o);const l=this.getTransition(r);l!==void 0&&(e[`${r}-transition`]=l)}return e}transitioned(e,r){const o=new Bc(this._properties);for(const l of Object.keys(this._values))o._values[l]=this._values[l].transitioned(e,r._values[l]);return o}untransitioned(){const e=new Bc(this._properties);for(const r of Object.keys(this._values))e._values[r]=this._values[r].untransitioned();return e}}class Oc{constructor(e,r,o,l,h){this.property=e,this.value=r,this.begin=h+l.delay||0,this.end=this.begin+l.duration||0,e.specification.transition&&(l.delay||l.duration)&&(this.prior=o)}possiblyEvaluate(e,r,o){const l=e.now||0,h=this.value.possiblyEvaluate(e,r,o),p=this.prior;if(p){if(l>this.end)return this.prior=null,h;if(this.value.isDataDriven())return this.prior=null,h;if(l=1)return 1;const T=w*w,M=T*w;return 4*(w<.5?M:3*(w-T)+M-.75)}(y))}}return h}}class Bc{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitioningPropertyValues)}possiblyEvaluate(e,r,o){const l=new fl(this._properties);for(const h of Object.keys(this._values))l._values[h]=this._values[h].possiblyEvaluate(e,r,o);return l}hasTransition(){for(const e of Object.keys(this._values))if(this._values[e].prior)return!0;return!1}}class bu{constructor(e){this._properties=e,this._values=Object.create(e.defaultPropertyValues)}hasValue(e){return this._values[e].value!==void 0}getValue(e){return Ge(this._values[e].value)}setValue(e,r){this._values[e]=new pl(this._values[e].property,r===null?void 0:Ge(r))}serialize(){const e={};for(const r of Object.keys(this._values)){const o=this.getValue(r);o!==void 0&&(e[r]=o)}return e}possiblyEvaluate(e,r,o){const l=new fl(this._properties);for(const h of Object.keys(this._values))l._values[h]=this._values[h].possiblyEvaluate(e,r,o);return l}}class yn{constructor(e,r,o){this.property=e,this.value=r,this.parameters=o}isConstant(){return this.value.kind==="constant"}constantOr(e){return this.value.kind==="constant"?this.value.value:e}evaluate(e,r,o,l){return this.property.evaluate(this.value,this.parameters,e,r,o,l)}}class fl{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues)}get(e){return this._values[e]}}class xt{constructor(e){this.specification=e}possiblyEvaluate(e,r){if(e.isDataDriven())throw new Error("Value should not be data driven");return e.expression.evaluate(r)}interpolate(e,r,o){const l=Wr[this.specification.type];return l?l(e,r,o):e}}class Et{constructor(e,r){this.specification=e,this.overrides=r}possiblyEvaluate(e,r,o,l){return new yn(this,e.expression.kind==="constant"||e.expression.kind==="camera"?{kind:"constant",value:e.expression.evaluate(r,null,{},o,l)}:e.expression,r)}interpolate(e,r,o){if(e.value.kind!=="constant"||r.value.kind!=="constant")return e;if(e.value.value===void 0||r.value.value===void 0)return new yn(this,{kind:"constant",value:void 0},e.parameters);const l=Wr[this.specification.type];if(l){const h=l(e.value.value,r.value.value,o);return new yn(this,{kind:"constant",value:h},e.parameters)}return e}evaluate(e,r,o,l,h,p){return e.kind==="constant"?e.value:e.evaluate(r,o,l,h,p)}}class Ha extends Et{possiblyEvaluate(e,r,o,l){if(e.value===void 0)return new yn(this,{kind:"constant",value:void 0},r);if(e.expression.kind==="constant"){const h=e.expression.evaluate(r,null,{},o,l),p=e.property.specification.type==="resolvedImage"&&typeof h!="string"?h.name:h,y=this._calculate(p,p,p,r);return new yn(this,{kind:"constant",value:y},r)}if(e.expression.kind==="camera"){const h=this._calculate(e.expression.evaluate({zoom:r.zoom-1}),e.expression.evaluate({zoom:r.zoom}),e.expression.evaluate({zoom:r.zoom+1}),r);return new yn(this,{kind:"constant",value:h},r)}return new yn(this,e.expression,r)}evaluate(e,r,o,l,h,p){if(e.kind==="source"){const y=e.evaluate(r,o,l,h,p);return this._calculate(y,y,y,r)}return e.kind==="composite"?this._calculate(e.evaluate({zoom:Math.floor(r.zoom)-1},o,l),e.evaluate({zoom:Math.floor(r.zoom)},o,l),e.evaluate({zoom:Math.floor(r.zoom)+1},o,l),r):e.value}_calculate(e,r,o,l){return l.zoom>l.zoomHistory.lastIntegerZoom?{from:e,to:r}:{from:o,to:r}}interpolate(e){return e}}class ql{constructor(e){this.specification=e}possiblyEvaluate(e,r,o,l){if(e.value!==void 0){if(e.expression.kind==="constant"){const h=e.expression.evaluate(r,null,{},o,l);return this._calculate(h,h,h,r)}return this._calculate(e.expression.evaluate(new Yi(Math.floor(r.zoom-1),r)),e.expression.evaluate(new Yi(Math.floor(r.zoom),r)),e.expression.evaluate(new Yi(Math.floor(r.zoom+1),r)),r)}}_calculate(e,r,o,l){return l.zoom>l.zoomHistory.lastIntegerZoom?{from:e,to:r}:{from:o,to:r}}interpolate(e){return e}}class Zl{constructor(e){this.specification=e}possiblyEvaluate(e,r,o,l){return!!e.expression.evaluate(r,null,{},o,l)}interpolate(){return!1}}class xr{constructor(e){this.properties=e,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const r in e){const o=e[r];o.specification.overridable&&this.overridableProperties.push(r);const l=this.defaultPropertyValues[r]=new pl(o,void 0),h=this.defaultTransitionablePropertyValues[r]=new jl(o);this.defaultTransitioningPropertyValues[r]=h.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=l.possiblyEvaluate({})}}}tt("DataDrivenProperty",Et),tt("DataConstantProperty",xt),tt("CrossFadedDataDrivenProperty",Ha),tt("CrossFadedProperty",ql),tt("ColorRampProperty",Zl);const Gl="-transition";class so extends jo{constructor(e,r){if(super(),this.id=e.id,this.type=e.type,this._featureFilter={filter:()=>!0,needGeometry:!1},e.type!=="custom"&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!=="background"&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new bu(r.layout)),r.paint)){this._transitionablePaint=new Rc(r.paint);for(const o in e.paint)this.setPaintProperty(o,e.paint[o],{validate:!1});for(const o in e.layout)this.setLayoutProperty(o,e.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new fl(r.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(e){return e==="visibility"?this.visibility:this._unevaluatedLayout.getValue(e)}setLayoutProperty(e,r,o={}){r!=null&&this._validate(zs,`layers.${this.id}.layout.${e}`,e,r,o)||(e!=="visibility"?this._unevaluatedLayout.setValue(e,r):this.visibility=r)}getPaintProperty(e){return e.endsWith(Gl)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,r,o={}){if(r!=null&&this._validate(bi,`layers.${this.id}.paint.${e}`,e,r,o))return!1;if(e.endsWith(Gl))return this._transitionablePaint.setTransition(e.slice(0,-11),r||void 0),!1;{const l=this._transitionablePaint._values[e],h=l.property.specification["property-type"]==="cross-faded-data-driven",p=l.value.isDataDriven(),y=l.value;this._transitionablePaint.setValue(e,r),this._handleSpecialPaintPropertyUpdate(e);const w=this._transitionablePaint._values[e].value;return w.isDataDriven()||p||h||this._handleOverridablePaintPropertyUpdate(e,y,w)}}_handleSpecialPaintPropertyUpdate(e){}_handleOverridablePaintPropertyUpdate(e,r,o){return!1}isHidden(e){return!!(this.minzoom&&e=this.maxzoom)||this.visibility==="none"}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(e,r){e.getCrossfadeParameters&&(this._crossfadeParameters=e.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,r)}serialize(){const e={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&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),Ae(e,(r,o)=>!(r===void 0||o==="layout"&&!Object.keys(r).length||o==="paint"&&!Object.keys(r).length))}_validate(e,r,o,l,h={}){return(!h||h.validate!==!1)&&Gn(this,e.call(mo,{key:r,layerType:this.type,objectKey:o,value:l,styleSpec:Se,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const e in this.paint._values){const r=this.paint.get(e);if(r instanceof yn&&Co(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}}const Nc={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Fs{constructor(e,r){this._structArray=e,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class cr{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(e,r){return e._trim(),r&&(e.isTransferred=!0,r.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){const r=Object.create(this.prototype);return r.arrayBuffer=e.arrayBuffer,r.length=e.length,r.capacity=e.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_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(e){this.reserve(e),this.length=e}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function or(i,e=1){let r=0,o=0;return{members:i.map(l=>{const h=Nc[l.type].BYTES_PER_ELEMENT,p=r=Ta(r,Math.max(e,h)),y=l.components||1;return o=Math.max(o,h),r+=h*y,{name:l.name,type:l.type,components:y,offset:p}}),size:Ta(r,Math.max(o,e)),alignment:e}}function Ta(i,e){return Math.ceil(i/e)*e}class Xa extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r){const o=this.length;return this.resize(o+1),this.emplace(o,e,r)}emplace(e,r,o){const l=2*e;return this.int16[l+0]=r,this.int16[l+1]=o,e}}Xa.prototype.bytesPerElement=4,tt("StructArrayLayout2i4",Xa);class Ka extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o){const l=this.length;return this.resize(l+1),this.emplace(l,e,r,o)}emplace(e,r,o,l){const h=3*e;return this.int16[h+0]=r,this.int16[h+1]=o,this.int16[h+2]=l,e}}Ka.prototype.bytesPerElement=6,tt("StructArrayLayout3i6",Ka);class Rs extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l){const h=this.length;return this.resize(h+1),this.emplace(h,e,r,o,l)}emplace(e,r,o,l,h){const p=4*e;return this.int16[p+0]=r,this.int16[p+1]=o,this.int16[p+2]=l,this.int16[p+3]=h,e}}Rs.prototype.bytesPerElement=8,tt("StructArrayLayout4i8",Rs);class Wl extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,o,l,h,p)}emplace(e,r,o,l,h,p,y){const w=6*e;return this.int16[w+0]=r,this.int16[w+1]=o,this.int16[w+2]=l,this.int16[w+3]=h,this.int16[w+4]=p,this.int16[w+5]=y,e}}Wl.prototype.bytesPerElement=12,tt("StructArrayLayout2i4i12",Wl);class Hl extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,o,l,h,p)}emplace(e,r,o,l,h,p,y){const w=4*e,T=8*e;return this.int16[w+0]=r,this.int16[w+1]=o,this.uint8[T+4]=l,this.uint8[T+5]=h,this.uint8[T+6]=p,this.uint8[T+7]=y,e}}Hl.prototype.bytesPerElement=8,tt("StructArrayLayout2i4ub8",Hl);class Ia extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r){const o=this.length;return this.resize(o+1),this.emplace(o,e,r)}emplace(e,r,o){const l=2*e;return this.float32[l+0]=r,this.float32[l+1]=o,e}}Ia.prototype.bytesPerElement=8,tt("StructArrayLayout2f8",Ia);class Xl extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p,y,w,T,M){const z=this.length;return this.resize(z+1),this.emplace(z,e,r,o,l,h,p,y,w,T,M)}emplace(e,r,o,l,h,p,y,w,T,M,z){const D=10*e;return this.uint16[D+0]=r,this.uint16[D+1]=o,this.uint16[D+2]=l,this.uint16[D+3]=h,this.uint16[D+4]=p,this.uint16[D+5]=y,this.uint16[D+6]=w,this.uint16[D+7]=T,this.uint16[D+8]=M,this.uint16[D+9]=z,e}}Xl.prototype.bytesPerElement=20,tt("StructArrayLayout10ui20",Xl);class Kl extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p,y,w,T,M,z,D){const V=this.length;return this.resize(V+1),this.emplace(V,e,r,o,l,h,p,y,w,T,M,z,D)}emplace(e,r,o,l,h,p,y,w,T,M,z,D,V){const U=12*e;return this.int16[U+0]=r,this.int16[U+1]=o,this.int16[U+2]=l,this.int16[U+3]=h,this.uint16[U+4]=p,this.uint16[U+5]=y,this.uint16[U+6]=w,this.uint16[U+7]=T,this.int16[U+8]=M,this.int16[U+9]=z,this.int16[U+10]=D,this.int16[U+11]=V,e}}Kl.prototype.bytesPerElement=24,tt("StructArrayLayout4i4ui4i24",Kl);class wi extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,o){const l=this.length;return this.resize(l+1),this.emplace(l,e,r,o)}emplace(e,r,o,l){const h=3*e;return this.float32[h+0]=r,this.float32[h+1]=o,this.float32[h+2]=l,e}}wi.prototype.bytesPerElement=12,tt("StructArrayLayout3f12",wi);class u extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint32[1*e+0]=r,e}}u.prototype.bytesPerElement=4,tt("StructArrayLayout1ul4",u);class t extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p,y,w,T){const M=this.length;return this.resize(M+1),this.emplace(M,e,r,o,l,h,p,y,w,T)}emplace(e,r,o,l,h,p,y,w,T,M){const z=10*e,D=5*e;return this.int16[z+0]=r,this.int16[z+1]=o,this.int16[z+2]=l,this.int16[z+3]=h,this.int16[z+4]=p,this.int16[z+5]=y,this.uint32[D+3]=w,this.uint16[z+8]=T,this.uint16[z+9]=M,e}}t.prototype.bytesPerElement=20,tt("StructArrayLayout6i1ul2ui20",t);class n extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,o,l,h,p)}emplace(e,r,o,l,h,p,y){const w=6*e;return this.int16[w+0]=r,this.int16[w+1]=o,this.int16[w+2]=l,this.int16[w+3]=h,this.int16[w+4]=p,this.int16[w+5]=y,e}}n.prototype.bytesPerElement=12,tt("StructArrayLayout2i2i2i12",n);class a extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,o,l,h)}emplace(e,r,o,l,h,p){const y=4*e,w=8*e;return this.float32[y+0]=r,this.float32[y+1]=o,this.float32[y+2]=l,this.int16[w+6]=h,this.int16[w+7]=p,e}}a.prototype.bytesPerElement=16,tt("StructArrayLayout2f1f2i16",a);class c extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,o,l){const h=this.length;return this.resize(h+1),this.emplace(h,e,r,o,l)}emplace(e,r,o,l,h){const p=12*e,y=3*e;return this.uint8[p+0]=r,this.uint8[p+1]=o,this.float32[y+1]=l,this.float32[y+2]=h,e}}c.prototype.bytesPerElement=12,tt("StructArrayLayout2ub2f12",c);class d extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,o){const l=this.length;return this.resize(l+1),this.emplace(l,e,r,o)}emplace(e,r,o,l){const h=3*e;return this.uint16[h+0]=r,this.uint16[h+1]=o,this.uint16[h+2]=l,e}}d.prototype.bytesPerElement=6,tt("StructArrayLayout3ui6",d);class x extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z,$,ie){const ue=this.length;return this.resize(ue+1),this.emplace(ue,e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z,$,ie)}emplace(e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z,$,ie,ue){const re=24*e,pe=12*e,ge=48*e;return this.int16[re+0]=r,this.int16[re+1]=o,this.uint16[re+2]=l,this.uint16[re+3]=h,this.uint32[pe+2]=p,this.uint32[pe+3]=y,this.uint32[pe+4]=w,this.uint16[re+10]=T,this.uint16[re+11]=M,this.uint16[re+12]=z,this.float32[pe+7]=D,this.float32[pe+8]=V,this.uint8[ge+36]=U,this.uint8[ge+37]=Z,this.uint8[ge+38]=$,this.uint32[pe+10]=ie,this.int16[re+22]=ue,e}}x.prototype.bytesPerElement=48,tt("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",x);class b extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z,$,ie,ue,re,pe,ge,Me,lt,pt,st,$e,Ze,ht){const Ke=this.length;return this.resize(Ke+1),this.emplace(Ke,e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z,$,ie,ue,re,pe,ge,Me,lt,pt,st,$e,Ze,ht)}emplace(e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z,$,ie,ue,re,pe,ge,Me,lt,pt,st,$e,Ze,ht,Ke){const Re=32*e,bt=16*e;return this.int16[Re+0]=r,this.int16[Re+1]=o,this.int16[Re+2]=l,this.int16[Re+3]=h,this.int16[Re+4]=p,this.int16[Re+5]=y,this.int16[Re+6]=w,this.int16[Re+7]=T,this.uint16[Re+8]=M,this.uint16[Re+9]=z,this.uint16[Re+10]=D,this.uint16[Re+11]=V,this.uint16[Re+12]=U,this.uint16[Re+13]=Z,this.uint16[Re+14]=$,this.uint16[Re+15]=ie,this.uint16[Re+16]=ue,this.uint16[Re+17]=re,this.uint16[Re+18]=pe,this.uint16[Re+19]=ge,this.uint16[Re+20]=Me,this.uint16[Re+21]=lt,this.uint16[Re+22]=pt,this.uint32[bt+12]=st,this.float32[bt+13]=$e,this.float32[bt+14]=Ze,this.uint16[Re+30]=ht,this.uint16[Re+31]=Ke,e}}b.prototype.bytesPerElement=64,tt("StructArrayLayout8i15ui1ul2f2ui64",b);class S extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.float32[1*e+0]=r,e}}S.prototype.bytesPerElement=4,tt("StructArrayLayout1f4",S);class C extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,o){const l=this.length;return this.resize(l+1),this.emplace(l,e,r,o)}emplace(e,r,o,l){const h=3*e;return this.uint16[6*e+0]=r,this.float32[h+1]=o,this.float32[h+2]=l,e}}C.prototype.bytesPerElement=12,tt("StructArrayLayout1ui2f12",C);class A extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,o){const l=this.length;return this.resize(l+1),this.emplace(l,e,r,o)}emplace(e,r,o,l){const h=4*e;return this.uint32[2*e+0]=r,this.uint16[h+2]=o,this.uint16[h+3]=l,e}}A.prototype.bytesPerElement=8,tt("StructArrayLayout1ul2ui8",A);class P extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r){const o=this.length;return this.resize(o+1),this.emplace(o,e,r)}emplace(e,r,o){const l=2*e;return this.uint16[l+0]=r,this.uint16[l+1]=o,e}}P.prototype.bytesPerElement=4,tt("StructArrayLayout2ui4",P);class R extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint16[1*e+0]=r,e}}R.prototype.bytesPerElement=2,tt("StructArrayLayout1ui2",R);class W extends cr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,o,l){const h=this.length;return this.resize(h+1),this.emplace(h,e,r,o,l)}emplace(e,r,o,l,h){const p=4*e;return this.float32[p+0]=r,this.float32[p+1]=o,this.float32[p+2]=l,this.float32[p+3]=h,e}}W.prototype.bytesPerElement=16,tt("StructArrayLayout4f16",W);class G extends Fs{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new ye(this.anchorPointX,this.anchorPointY)}}G.prototype.size=20;class K extends t{get(e){return new G(this,e)}}tt("CollisionBoxArray",K);class q extends Fs{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(e){this._structArray.uint8[this._pos1+37]=e}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}q.prototype.size=48;class le extends x{get(e){return new q(this,e)}}tt("PlacedSymbolArray",le);class me extends Fs{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}me.prototype.size=64;class ee extends b{get(e){return new me(this,e)}}tt("SymbolInstanceArray",ee);class ce extends S{getoffsetX(e){return this.float32[1*e+0]}}tt("GlyphOffsetArray",ce);class ve extends Ka{getx(e){return this.int16[3*e+0]}gety(e){return this.int16[3*e+1]}gettileUnitDistanceFromAnchor(e){return this.int16[3*e+2]}}tt("SymbolLineVertexArray",ve);class xe extends Fs{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}xe.prototype.size=12;class Ce extends C{get(e){return new xe(this,e)}}tt("TextAnchorOffsetArray",Ce);class Fe extends Fs{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]}}Fe.prototype.size=8;class Pe extends A{get(e){return new Fe(this,e)}}tt("FeatureIndexArray",Pe);class je extends Xa{}class dt extends Xa{}class Qt extends Xa{}class Qe extends Wl{}class Ct extends Hl{}class gt extends Ia{}class Mi extends Xl{}class Kt extends Kl{}class jt extends wi{}class $t extends u{}class pr extends n{}class qi extends c{}class Xr extends d{}class kr extends P{}const br=or([{name:"a_pos",components:2,type:"Int16"}],4),{members:Xn}=br;class Qi{constructor(e=[]){this.segments=e}prepareSegment(e,r,o,l){let h=this.segments[this.segments.length-1];return e>Qi.MAX_VERTEX_ARRAY_LENGTH&&Dt(`Max vertices per segment is ${Qi.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}`),(!h||h.vertexLength+e>Qi.MAX_VERTEX_ARRAY_LENGTH||h.sortKey!==l)&&(h={vertexOffset:r.length,primitiveOffset:o.length,vertexLength:0,primitiveLength:0},l!==void 0&&(h.sortKey=l),this.segments.push(h)),h}get(){return this.segments}destroy(){for(const e of this.segments)for(const r in e.vaos)e.vaos[r].destroy()}static simpleSegment(e,r,o,l){return new Qi([{vertexOffset:e,primitiveOffset:r,vertexLength:o,primitiveLength:l,vaos:{},sortKey:0}])}}function Do(i,e){return 256*(i=ei(Math.floor(i),0,255))+ei(Math.floor(e),0,255)}Qi.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,tt("SegmentVector",Qi);const Fo=or([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var _s={exports:{}},Os={exports:{}};Os.exports=function(i,e){var r,o,l,h,p,y,w,T;for(o=i.length-(r=3&i.length),l=e,p=3432918353,y=461845907,T=0;T>>16)*p&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295)<<13|l>>>19))+((5*(l>>>16)&65535)<<16)&4294967295))+((58964+(h>>>16)&65535)<<16);switch(w=0,r){case 3:w^=(255&i.charCodeAt(T+2))<<16;case 2:w^=(255&i.charCodeAt(T+1))<<8;case 1:l^=w=(65535&(w=(w=(65535&(w^=255&i.charCodeAt(T)))*p+(((w>>>16)*p&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295}return l^=i.length,l=2246822507*(65535&(l^=l>>>16))+((2246822507*(l>>>16)&65535)<<16)&4294967295,l=3266489909*(65535&(l^=l>>>13))+((3266489909*(l>>>16)&65535)<<16)&4294967295,(l^=l>>>16)>>>0};var Ea=Os.exports,ln={exports:{}};ln.exports=function(i,e){for(var r,o=i.length,l=e^o,h=0;o>=4;)r=1540483477*(65535&(r=255&i.charCodeAt(h)|(255&i.charCodeAt(++h))<<8|(255&i.charCodeAt(++h))<<16|(255&i.charCodeAt(++h))<<24))+((1540483477*(r>>>16)&65535)<<16),l=1540483477*(65535&l)+((1540483477*(l>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),o-=4,++h;switch(o){case 3:l^=(255&i.charCodeAt(h+2))<<16;case 2:l^=(255&i.charCodeAt(h+1))<<8;case 1:l=1540483477*(65535&(l^=255&i.charCodeAt(h)))+((1540483477*(l>>>16)&65535)<<16)}return l=1540483477*(65535&(l^=l>>>13))+((1540483477*(l>>>16)&65535)<<16),(l^=l>>>15)>>>0};var Kr=Ea,vn=ln.exports;_s.exports=Kr,_s.exports.murmur3=Kr,_s.exports.murmur2=vn;var Bs=N(_s.exports);class fr{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,r,o,l){this.ids.push(Pr(e)),this.positions.push(r,o,l)}getPositions(e){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const r=Pr(e);let o=0,l=this.ids.length-1;for(;o>1;this.ids[p]>=r?l=p:o=p+1}const h=[];for(;this.ids[o]===r;)h.push({index:this.positions[3*o],start:this.positions[3*o+1],end:this.positions[3*o+2]}),o++;return h}static serialize(e,r){const o=new Float64Array(e.ids),l=new Uint32Array(e.positions);return Ln(o,l,0,o.length-1),r&&r.push(o.buffer,l.buffer),{ids:o,positions:l}}static deserialize(e){const r=new fr;return r.ids=e.ids,r.positions=e.positions,r.indexed=!0,r}}function Pr(i){const e=+i;return!isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:Bs(String(i))}function Ln(i,e,r,o){for(;r>1];let h=r-1,p=o+1;for(;;){do h++;while(i[h]l);if(h>=p)break;mr(i,h,p),mr(e,3*h,3*p),mr(e,3*h+1,3*p+1),mr(e,3*h+2,3*p+2)}p-r`u_${l}`),this.type=o}setUniform(e,r,o){e.set(o.constantOr(this.value))}getBinding(e,r,o){return this.type==="color"?new Uc(e,r):new ml(e,r)}}class Vs{constructor(e,r){this.uniformNames=r.map(o=>`u_${o}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(e,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=r.tlbr,this.patternTo=e.tlbr}setUniform(e,r,o,l){const h=l==="u_pattern_to"?this.patternTo:l==="u_pattern_from"?this.patternFrom:l==="u_pixel_ratio_to"?this.pixelRatioTo:l==="u_pixel_ratio_from"?this.pixelRatioFrom:null;h&&e.set(h)}getBinding(e,r,o){return o.substr(0,9)==="u_pattern"?new Vc(e,r):new ml(e,r)}}class Oo{constructor(e,r,o,l){this.expression=e,this.type=o,this.maxValue=0,this.paintVertexAttributes=r.map(h=>({name:`a_${h}`,type:"Float32",components:o==="color"?2:1,offset:0})),this.paintVertexArray=new l}populatePaintArray(e,r,o,l,h){const p=this.paintVertexArray.length,y=this.expression.evaluate(new Yi(0),r,{},l,[],h);this.paintVertexArray.resize(e),this._setPaintValue(p,e,y)}updatePaintArray(e,r,o,l){const h=this.expression.evaluate({zoom:0},o,l);this._setPaintValue(e,r,h)}_setPaintValue(e,r,o){if(this.type==="color"){const l=Jl(o);for(let h=e;h`u_${y}_t`),this.type=o,this.useIntegerZoom=l,this.zoom=h,this.maxValue=0,this.paintVertexAttributes=r.map(y=>({name:`a_${y}`,type:"Float32",components:o==="color"?4:2,offset:0})),this.paintVertexArray=new p}populatePaintArray(e,r,o,l,h){const p=this.expression.evaluate(new Yi(this.zoom),r,{},l,[],h),y=this.expression.evaluate(new Yi(this.zoom+1),r,{},l,[],h),w=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(w,e,p,y)}updatePaintArray(e,r,o,l){const h=this.expression.evaluate({zoom:this.zoom},o,l),p=this.expression.evaluate({zoom:this.zoom+1},o,l);this._setPaintValue(e,r,h,p)}_setPaintValue(e,r,o,l){if(this.type==="color"){const h=Jl(o),p=Jl(l);for(let y=e;y`#define HAS_UNIFORM_${l}`))}return e}getBinderAttributes(){const e=[];for(const r in this.binders){const o=this.binders[r];if(o instanceof Oo||o instanceof ao)for(let l=0;l!0){this.programConfigurations={};for(const l of e)this.programConfigurations[l.id]=new Yl(l,r,o);this.needsUpload=!1,this._featureMap=new fr,this._bufferOffset=0}populatePaintArrays(e,r,o,l,h,p){for(const y in this.programConfigurations)this.programConfigurations[y].populatePaintArrays(e,r,l,h,p);r.id!==void 0&&this._featureMap.add(r.id,o,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,r,o,l){for(const h of o)this.needsUpload=this.programConfigurations[h.id].updatePaintArrays(e,this._featureMap,r,h,l)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(e);this.needsUpload=!1}}destroy(){for(const e in this.programConfigurations)this.programConfigurations[e].destroy()}}function pf(i,e){return{"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"]}[i]||[i.replace(`${e}-`,"").replace(/-/g,"_")]}function Lh(i,e,r){const o={color:{source:Ia,composite:W},number:{source:S,composite:Ia}},l=function(h){return{"line-pattern":{source:Mi,composite:Mi},"fill-pattern":{source:Mi,composite:Mi},"fill-extrusion-pattern":{source:Mi,composite:Mi}}[h]}(i);return l&&l[r]||o[e][r]}tt("ConstantBinder",Ro),tt("CrossFadedConstantBinder",Vs),tt("SourceExpressionBinder",Oo),tt("CrossFadedCompositeBinder",Bo),tt("CompositeExpressionBinder",ao),tt("ProgramConfiguration",Yl,{omit:["_buffers"]}),tt("ProgramConfigurationSet",Yo);const Er=8192,Su=Math.pow(2,14)-1,Dh=-Su-1;function Ja(i){const e=Er/i.extent,r=i.loadGeometry();for(let o=0;op.x+1||wp.y+1)&&Dt("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return r}function Ya(i,e){return{type:i.type,id:i.id,properties:i.properties,geometry:e?Ja(i):[]}}function jc(i,e,r,o,l){i.emplaceBack(2*e+(o+1)/2,2*r+(l+1)/2)}class Tu{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.layoutVertexArray=new dt,this.indexArray=new Xr,this.segments=new Qi,this.programConfigurations=new Yo(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){const l=this.layers[0],h=[];let p=null,y=!1;l.type==="circle"&&(p=l.layout.get("circle-sort-key"),y=!p.isConstant());for(const{feature:w,id:T,index:M,sourceLayerIndex:z}of e){const D=this.layers[0]._featureFilter.needGeometry,V=Ya(w,D);if(!this.layers[0]._featureFilter.filter(new Yi(this.zoom),V,o))continue;const U=y?p.evaluate(V,{},o):void 0,Z={id:T,properties:w.properties,type:w.type,sourceLayerIndex:z,index:M,geometry:D?V.geometry:Ja(w),patterns:{},sortKey:U};h.push(Z)}y&&h.sort((w,T)=>w.sortKey-T.sortKey);for(const w of h){const{geometry:T,index:M,sourceLayerIndex:z}=w,D=e[M].feature;this.addFeature(w,T,M,o),r.featureIndex.insert(D,T,M,z,this.index)}}update(e,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Xn),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(e,r,o,l){for(const h of r)for(const p of h){const y=p.x,w=p.y;if(y<0||y>=Er||w<0||w>=Er)continue;const T=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,e.sortKey),M=T.vertexLength;jc(this.layoutVertexArray,y,w,-1,-1),jc(this.layoutVertexArray,y,w,1,-1),jc(this.layoutVertexArray,y,w,1,1),jc(this.layoutVertexArray,y,w,-1,1),this.indexArray.emplaceBack(M,M+1,M+2),this.indexArray.emplaceBack(M,M+3,M+2),T.vertexLength+=4,T.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,o,{},l)}}function Fh(i,e){for(let r=0;r1){if(Iu(i,e))return!0;for(let o=0;o1?r:r.sub(e)._mult(l)._add(e))}function Bh(i,e){let r,o,l,h=!1;for(let p=0;pe.y!=l.y>e.y&&e.x<(l.x-o.x)*(e.y-o.y)/(l.y-o.y)+o.x&&(h=!h)}return h}function _l(i,e){let r=!1;for(let o=0,l=i.length-1;oe.y!=p.y>e.y&&e.x<(p.x-h.x)*(e.y-h.y)/(p.y-h.y)+h.x&&(r=!r)}return r}function gf(i,e,r){const o=r[0],l=r[2];if(i.xl.x&&e.x>l.x||i.yl.y&&e.y>l.y)return!1;const h=qt(i,e,r[0]);return h!==qt(i,e,r[1])||h!==qt(i,e,r[2])||h!==qt(i,e,r[3])}function Ql(i,e,r){const o=e.paint.get(i).value;return o.kind==="constant"?o.value:r.programConfigurations.get(e.id).getMaxValue(i)}function qc(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function Zc(i,e,r,o,l){if(!e[0]&&!e[1])return i;const h=ye.convert(e)._mult(l);r==="viewport"&&h._rotate(-o);const p=[];for(let y=0;yjh($,Z))}(T,w),V=z?M*y:M;for(const U of l)for(const Z of U){const $=z?Z:jh(Z,w);let ie=V;const ue=Gc([],[Z.x,Z.y,0,1],w);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ie*=ue[3]/p.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ie*=p.cameraToCenterDistance/ue[3]),ff(D,$,ie))return!0}return!1}}function jh(i,e){const r=Gc([],[i.x,i.y,0,1],e);return new ye(r[0]/r[3],r[1]/r[3])}class qh extends Tu{}let Zh;tt("HeatmapBucket",qh,{omit:["layers"]});var bf={get paint(){return Zh=Zh||new xr({"heatmap-radius":new Et(Se.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Et(Se.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new xt(Se.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Zl(Se.paint_heatmap["heatmap-color"]),"heatmap-opacity":new xt(Se.paint_heatmap["heatmap-opacity"])})}};function Mu(i,{width:e,height:r},o,l){if(l){if(l instanceof Uint8ClampedArray)l=new Uint8Array(l.buffer);else if(l.length!==e*r*o)throw new RangeError(`mismatched image size. expected: ${l.length} but got: ${e*r*o}`)}else l=new Uint8Array(e*r*o);return i.width=e,i.height=r,i.data=l,i}function Gh(i,{width:e,height:r},o){if(e===i.width&&r===i.height)return;const l=Mu({},{width:e,height:r},o);Au(i,l,{x:0,y:0},{x:0,y:0},{width:Math.min(i.width,e),height:Math.min(i.height,r)},o),i.width=e,i.height=r,i.data=l.data}function Au(i,e,r,o,l,h){if(l.width===0||l.height===0)return e;if(l.width>i.width||l.height>i.height||r.x>i.width-l.width||r.y>i.height-l.height)throw new RangeError("out of range source coordinates for image copy");if(l.width>e.width||l.height>e.height||o.x>e.width-l.width||o.y>e.height-l.height)throw new RangeError("out of range destination coordinates for image copy");const p=i.data,y=e.data;if(p===y)throw new Error("srcData equals dstData, so image is already copied");for(let w=0;w{e[i.evaluationKey]=w;const T=i.expression.evaluate(e);l.data[p+y+0]=Math.floor(255*T.r/T.a),l.data[p+y+1]=Math.floor(255*T.g/T.a),l.data[p+y+2]=Math.floor(255*T.b/T.a),l.data[p+y+3]=Math.floor(255*T.a)};if(i.clips)for(let p=0,y=0;p80*r){o=h=i[0],l=p=i[1];for(var U=r;Uh&&(h=y),w>p&&(p=w);T=(T=Math.max(h-o,p-l))!==0?32767/T:0}return tc(D,V,r,o,l,T,0),V}function Xh(i,e,r,o,l){var h,p;if(l===Lu(i,e,r,o)>0)for(h=e;h=e;h-=o)p=Yh(h,i[h],i[h+1],p);return p&&Hc(p,p.next)&&(rc(p),p=p.next),p}function Qa(i,e){if(!i)return i;e||(e=i);var r,o=i;do if(r=!1,o.steiner||!Hc(o,o.next)&&wr(o.prev,o,o.next)!==0)o=o.next;else{if(rc(o),(o=e=o.prev)===o.next)break;r=!0}while(r||o!==e);return e}function tc(i,e,r,o,l,h,p){if(i){!p&&h&&function(M,z,D,V){var U=M;do U.z===0&&(U.z=Pu(U.x,U.y,z,D,V)),U.prevZ=U.prev,U.nextZ=U.next,U=U.next;while(U!==M);U.prevZ.nextZ=null,U.prevZ=null,function(Z){var $,ie,ue,re,pe,ge,Me,lt,pt=1;do{for(ie=Z,Z=null,pe=null,ge=0;ie;){for(ge++,ue=ie,Me=0,$=0;$0||lt>0&&ue;)Me!==0&&(lt===0||!ue||ie.z<=ue.z)?(re=ie,ie=ie.nextZ,Me--):(re=ue,ue=ue.nextZ,lt--),pe?pe.nextZ=re:Z=re,re.prevZ=pe,pe=re;ie=ue}pe.nextZ=null,pt*=2}while(ge>1)}(U)}(i,o,l,h);for(var y,w,T=i;i.prev!==i.next;)if(y=i.prev,w=i.next,h?Mf(i,o,l,h):Cf(i))e.push(y.i/r|0),e.push(i.i/r|0),e.push(w.i/r|0),rc(i),i=w.next,T=w.next;else if((i=w)===T){p?p===1?tc(i=Af(Qa(i),e,r),e,r,o,l,h,2):p===2&&kf(i,e,r,o,l,h):tc(Qa(i),e,r,o,l,h,1);break}}}function Cf(i){var e=i.prev,r=i,o=i.next;if(wr(e,r,o)>=0)return!1;for(var l=e.x,h=r.x,p=o.x,y=e.y,w=r.y,T=o.y,M=lh?l>p?l:p:h>p?h:p,V=y>w?y>T?y:T:w>T?w:T,U=o.next;U!==e;){if(U.x>=M&&U.x<=D&&U.y>=z&&U.y<=V&&yl(l,y,h,w,p,T,U.x,U.y)&&wr(U.prev,U,U.next)>=0)return!1;U=U.next}return!0}function Mf(i,e,r,o){var l=i.prev,h=i,p=i.next;if(wr(l,h,p)>=0)return!1;for(var y=l.x,w=h.x,T=p.x,M=l.y,z=h.y,D=p.y,V=yw?y>T?y:T:w>T?w:T,$=M>z?M>D?M:D:z>D?z:D,ie=Pu(V,U,e,r,o),ue=Pu(Z,$,e,r,o),re=i.prevZ,pe=i.nextZ;re&&re.z>=ie&&pe&&pe.z<=ue;){if(re.x>=V&&re.x<=Z&&re.y>=U&&re.y<=$&&re!==l&&re!==p&&yl(y,M,w,z,T,D,re.x,re.y)&&wr(re.prev,re,re.next)>=0||(re=re.prevZ,pe.x>=V&&pe.x<=Z&&pe.y>=U&&pe.y<=$&&pe!==l&&pe!==p&&yl(y,M,w,z,T,D,pe.x,pe.y)&&wr(pe.prev,pe,pe.next)>=0))return!1;pe=pe.nextZ}for(;re&&re.z>=ie;){if(re.x>=V&&re.x<=Z&&re.y>=U&&re.y<=$&&re!==l&&re!==p&&yl(y,M,w,z,T,D,re.x,re.y)&&wr(re.prev,re,re.next)>=0)return!1;re=re.prevZ}for(;pe&&pe.z<=ue;){if(pe.x>=V&&pe.x<=Z&&pe.y>=U&&pe.y<=$&&pe!==l&&pe!==p&&yl(y,M,w,z,T,D,pe.x,pe.y)&&wr(pe.prev,pe,pe.next)>=0)return!1;pe=pe.nextZ}return!0}function Af(i,e,r){var o=i;do{var l=o.prev,h=o.next.next;!Hc(l,h)&&Kh(l,o,o.next,h)&&ic(l,h)&&ic(h,l)&&(e.push(l.i/r|0),e.push(o.i/r|0),e.push(h.i/r|0),rc(o),rc(o.next),o=i=h),o=o.next}while(o!==i);return Qa(o)}function kf(i,e,r,o,l,h){var p=i;do{for(var y=p.next.next;y!==p.prev;){if(p.i!==y.i&&Ff(p,y)){var w=Jh(p,y);return p=Qa(p,p.next),w=Qa(w,w.next),tc(p,e,r,o,l,h,0),void tc(w,e,r,o,l,h,0)}y=y.next}p=p.next}while(p!==i)}function Pf(i,e){return i.x-e.x}function zf(i,e){var r=function(l,h){var p,y=h,w=l.x,T=l.y,M=-1/0;do{if(T<=y.y&&T>=y.next.y&&y.next.y!==y.y){var z=y.x+(T-y.y)*(y.next.x-y.x)/(y.next.y-y.y);if(z<=w&&z>M&&(M=z,p=y.x=y.x&&y.x>=U&&w!==y.x&&yl(Tp.x||y.x===p.x&&Lf(p,y)))&&(p=y,$=D)),y=y.next;while(y!==V);return p}(i,e);if(!r)return e;var o=Jh(r,i);return Qa(o,o.next),Qa(r,r.next)}function Lf(i,e){return wr(i.prev,i,e.prev)<0&&wr(e.next,i,i.next)<0}function Pu(i,e,r,o,l){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=(i-r)*l|0)|i<<8))|i<<4))|i<<2))|i<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-o)*l|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Df(i){var e=i,r=i;do(e.x=(i-p)*(h-y)&&(i-p)*(o-y)>=(r-p)*(e-y)&&(r-p)*(h-y)>=(l-p)*(o-y)}function Ff(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!function(r,o){var l=r;do{if(l.i!==r.i&&l.next.i!==r.i&&l.i!==o.i&&l.next.i!==o.i&&Kh(l,l.next,r,o))return!0;l=l.next}while(l!==r);return!1}(i,e)&&(ic(i,e)&&ic(e,i)&&function(r,o){var l=r,h=!1,p=(r.x+o.x)/2,y=(r.y+o.y)/2;do l.y>y!=l.next.y>y&&l.next.y!==l.y&&p<(l.next.x-l.x)*(y-l.y)/(l.next.y-l.y)+l.x&&(h=!h),l=l.next;while(l!==r);return h}(i,e)&&(wr(i.prev,i,e.prev)||wr(i,e.prev,e))||Hc(i,e)&&wr(i.prev,i,i.next)>0&&wr(e.prev,e,e.next)>0)}function wr(i,e,r){return(e.y-i.y)*(r.x-e.x)-(e.x-i.x)*(r.y-e.y)}function Hc(i,e){return i.x===e.x&&i.y===e.y}function Kh(i,e,r,o){var l=Kc(wr(i,e,r)),h=Kc(wr(i,e,o)),p=Kc(wr(r,o,i)),y=Kc(wr(r,o,e));return l!==h&&p!==y||!(l!==0||!Xc(i,r,e))||!(h!==0||!Xc(i,o,e))||!(p!==0||!Xc(r,i,o))||!(y!==0||!Xc(r,e,o))}function Xc(i,e,r){return e.x<=Math.max(i.x,r.x)&&e.x>=Math.min(i.x,r.x)&&e.y<=Math.max(i.y,r.y)&&e.y>=Math.min(i.y,r.y)}function Kc(i){return i>0?1:i<0?-1:0}function ic(i,e){return wr(i.prev,i,i.next)<0?wr(i,e,i.next)>=0&&wr(i,i.prev,e)>=0:wr(i,e,i.prev)<0||wr(i,i.next,e)<0}function Jh(i,e){var r=new zu(i.i,i.x,i.y),o=new zu(e.i,e.x,e.y),l=i.next,h=e.prev;return i.next=e,e.prev=i,r.next=l,l.prev=r,o.next=r,r.prev=o,h.next=o,o.prev=h,o}function Yh(i,e,r,o){var l=new zu(i,e,r);return o?(l.next=o.next,l.prev=o,o.next.prev=l,o.next=l):(l.prev=l,l.next=l),l}function rc(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function zu(i,e,r){this.i=i,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Lu(i,e,r,o){for(var l=0,h=e,p=r-o;h0&&r.holes.push(o+=i[l-1].length)}return r};var Qh=N(ku.exports);function Rf(i,e,r,o,l){$h(i,e,r||0,o||i.length-1,l||Of)}function $h(i,e,r,o,l){for(;o>r;){if(o-r>600){var h=o-r+1,p=e-r+1,y=Math.log(h),w=.5*Math.exp(2*y/3),T=.5*Math.sqrt(y*w*(h-w)/h)*(p-h/2<0?-1:1);$h(i,e,Math.max(r,Math.floor(e-p*w/h+T)),Math.min(o,Math.floor(e+(h-p)*w/h+T)),l)}var M=i[e],z=r,D=o;for(nc(i,r,e),l(i[o],M)>0&&nc(i,r,o);z0;)D--}l(i[r],M)===0?nc(i,r,D):nc(i,++D,o),D<=e&&(r=D+1),e<=D&&(o=D-1)}}function nc(i,e,r){var o=i[e];i[e]=i[r],i[r]=o}function Of(i,e){return ie?1:0}function Du(i,e){const r=i.length;if(r<=1)return[i];const o=[];let l,h;for(let p=0;p1)for(let p=0;pr.id),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Qt,this.indexArray=new Xr,this.indexArray2=new kr,this.programConfigurations=new Yo(e.layers,e.zoom),this.segments=new Qi,this.segments2=new Qi,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){this.hasPattern=Fu("fill",this.layers,r);const l=this.layers[0].layout.get("fill-sort-key"),h=!l.isConstant(),p=[];for(const{feature:y,id:w,index:T,sourceLayerIndex:M}of e){const z=this.layers[0]._featureFilter.needGeometry,D=Ya(y,z);if(!this.layers[0]._featureFilter.filter(new Yi(this.zoom),D,o))continue;const V=h?l.evaluate(D,{},o,r.availableImages):void 0,U={id:w,properties:y.properties,type:y.type,sourceLayerIndex:M,index:T,geometry:z?D.geometry:Ja(y),patterns:{},sortKey:V};p.push(U)}h&&p.sort((y,w)=>y.sortKey-w.sortKey);for(const y of p){const{geometry:w,index:T,sourceLayerIndex:M}=y;if(this.hasPattern){const z=Ru("fill",this.layers,y,this.zoom,r);this.patternFeatures.push(z)}else this.addFeature(y,w,T,o,{});r.featureIndex.insert(e[T].feature,w,T,M,this.index)}}update(e,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,o)}addFeatures(e,r,o){for(const l of this.patternFeatures)this.addFeature(l,l.geometry,l.index,r,o)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Ef),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),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(e,r,o,l,h){for(const p of Du(r,500)){let y=0;for(const V of p)y+=V.length;const w=this.segments.prepareSegment(y,this.layoutVertexArray,this.indexArray),T=w.vertexLength,M=[],z=[];for(const V of p){if(V.length===0)continue;V!==p[0]&&z.push(M.length/2);const U=this.segments2.prepareSegment(V.length,this.layoutVertexArray,this.indexArray2),Z=U.vertexLength;this.layoutVertexArray.emplaceBack(V[0].x,V[0].y),this.indexArray2.emplaceBack(Z+V.length-1,Z),M.push(V[0].x),M.push(V[0].y);for(let $=1;$>3}if(l--,o===1||o===2)h+=i.readSVarint(),p+=i.readSVarint(),o===1&&(e&&y.push(e),e=[]),e.push(new Zf(h,p));else{if(o!==7)throw new Error("unknown command "+o);e&&e.push(e[0].clone())}}return e&&y.push(e),y},vl.prototype.bbox=function(){var i=this._pbf;i.pos=this._geometry;for(var e=i.readVarint()+i.pos,r=1,o=0,l=0,h=0,p=1/0,y=-1/0,w=1/0,T=-1/0;i.pos>3}if(o--,r===1||r===2)(l+=i.readSVarint())y&&(y=l),(h+=i.readSVarint())T&&(T=h);else if(r!==7)throw new Error("unknown command "+r)}return[p,w,y,T]},vl.prototype.toGeoJSON=function(i,e,r){var o,l,h=this.extent*Math.pow(2,r),p=this.extent*i,y=this.extent*e,w=this.loadGeometry(),T=vl.types[this.type];function M(V){for(var U=0;U>3;l=p===1?o.readString():p===2?o.readFloat():p===3?o.readDouble():p===4?o.readVarint64():p===5?o.readVarint():p===6?o.readSVarint():p===7?o.readBoolean():null}return l}(r))}nd.prototype.feature=function(i){if(i<0||i>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[i];var e=this._pbf.readVarint()+this._pbf.pos;return new Hf(this._pbf,e,this.extent,this._keys,this._values)};var Kf=rd;function Jf(i,e,r){if(i===3){var o=new Kf(r,r.readVarint()+r.pos);o.length&&(e[o.name]=o)}}Ca.VectorTile=function(i,e){this.layers=i.readFields(Jf,{},e)},Ca.VectorTileFeature=id,Ca.VectorTileLayer=rd;const Yf=Ca.VectorTileFeature.types,Bu=Math.pow(2,13);function oc(i,e,r,o,l,h,p,y){i.emplaceBack(e,r,2*Math.floor(o*Bu)+p,l*Bu*2,h*Bu*2,Math.round(y))}class Nu{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.layoutVertexArray=new Qe,this.centroidVertexArray=new je,this.indexArray=new Xr,this.programConfigurations=new Yo(e.layers,e.zoom),this.segments=new Qi,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){this.features=[],this.hasPattern=Fu("fill-extrusion",this.layers,r);for(const{feature:l,id:h,index:p,sourceLayerIndex:y}of e){const w=this.layers[0]._featureFilter.needGeometry,T=Ya(l,w);if(!this.layers[0]._featureFilter.filter(new Yi(this.zoom),T,o))continue;const M={id:h,sourceLayerIndex:y,index:p,geometry:w?T.geometry:Ja(l),properties:l.properties,type:l.type,patterns:{}};this.hasPattern?this.features.push(Ru("fill-extrusion",this.layers,M,this.zoom,r)):this.addFeature(M,M.geometry,p,o,{}),r.featureIndex.insert(l,M.geometry,p,y,this.index,!0)}}addFeatures(e,r,o){for(const l of this.features){const{geometry:h}=l;this.addFeature(l,h,l.index,r,o)}}update(e,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,qf),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,jf.members,!0),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(e,r,o,l,h){const p={x:0,y:0,vertexCount:0};for(const y of Du(r,500)){let w=0;for(const U of y)w+=U.length;let T=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(const U of y){if(U.length===0||$f(U))continue;let Z=0;for(let $=0;$=1){const ue=U[$-1];if(!Qf(ie,ue)){T.vertexLength+4>Qi.MAX_VERTEX_ARRAY_LENGTH&&(T=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const re=ie.sub(ue)._perp()._unit(),pe=ue.dist(ie);Z+pe>32768&&(Z=0),oc(this.layoutVertexArray,ie.x,ie.y,re.x,re.y,0,0,Z),oc(this.layoutVertexArray,ie.x,ie.y,re.x,re.y,0,1,Z),p.x+=2*ie.x,p.y+=2*ie.y,p.vertexCount+=2,Z+=pe,oc(this.layoutVertexArray,ue.x,ue.y,re.x,re.y,0,0,Z),oc(this.layoutVertexArray,ue.x,ue.y,re.x,re.y,0,1,Z),p.x+=2*ue.x,p.y+=2*ue.y,p.vertexCount+=2;const ge=T.vertexLength;this.indexArray.emplaceBack(ge,ge+2,ge+1),this.indexArray.emplaceBack(ge+1,ge+2,ge+3),T.vertexLength+=4,T.primitiveLength+=2}}}}if(T.vertexLength+w>Qi.MAX_VERTEX_ARRAY_LENGTH&&(T=this.segments.prepareSegment(w,this.layoutVertexArray,this.indexArray)),Yf[e.type]!=="Polygon")continue;const M=[],z=[],D=T.vertexLength;for(const U of y)if(U.length!==0){U!==y[0]&&z.push(M.length/2);for(let Z=0;ZEr)||i.y===e.y&&(i.y<0||i.y>Er)}function $f(i){return i.every(e=>e.x<0)||i.every(e=>e.x>Er)||i.every(e=>e.y<0)||i.every(e=>e.y>Er)}let od;tt("FillExtrusionBucket",Nu,{omit:["layers","features"]});var em={get paint(){return od=od||new xr({"fill-extrusion-opacity":new xt(Se["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Et(Se["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new xt(Se["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new xt(Se["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Ha(Se["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Et(Se["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Et(Se["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new xt(Se["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class tm extends so{constructor(e){super(e,em)}createBucket(e){return new Nu(e)}queryRadius(){return qc(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature(e,r,o,l,h,p,y,w){const T=Zc(e,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),p.angle,y),M=this.paint.get("fill-extrusion-height").evaluate(r,o),z=this.paint.get("fill-extrusion-base").evaluate(r,o),D=function(U,Z,$,ie){const ue=[];for(const re of U){const pe=[re.x,re.y,0,1];Gc(pe,pe,Z),ue.push(new ye(pe[0]/pe[3],pe[1]/pe[3]))}return ue}(T,w),V=function(U,Z,$,ie){const ue=[],re=[],pe=ie[8]*Z,ge=ie[9]*Z,Me=ie[10]*Z,lt=ie[11]*Z,pt=ie[8]*$,st=ie[9]*$,$e=ie[10]*$,Ze=ie[11]*$;for(const ht of U){const Ke=[],Re=[];for(const bt of ht){const yt=bt.x,Gt=bt.y,$i=ie[0]*yt+ie[4]*Gt+ie[12],nr=ie[1]*yt+ie[5]*Gt+ie[13],Lr=ie[2]*yt+ie[6]*Gt+ie[14],lo=ie[3]*yt+ie[7]*Gt+ie[15],Fn=Lr+Me,Cr=lo+lt,Jr=$i+pt,un=nr+st,Rn=Lr+$e,On=lo+Ze,Dr=new ye(($i+pe)/Cr,(nr+ge)/Cr);Dr.z=Fn/Cr,Ke.push(Dr);const Fr=new ye(Jr/On,un/On);Fr.z=Rn/On,Re.push(Fr)}ue.push(Ke),re.push(Re)}return[ue,re]}(l,z,M,w);return function(U,Z,$){let ie=1/0;Rh($,Z)&&(ie=sd($,Z[0]));for(let ue=0;uer.id),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(r=>{this.gradients[r.id]={}}),this.layoutVertexArray=new Ct,this.layoutVertexArray2=new gt,this.indexArray=new Xr,this.programConfigurations=new Yo(e.layers,e.zoom),this.segments=new Qi,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){this.hasPattern=Fu("line",this.layers,r);const l=this.layers[0].layout.get("line-sort-key"),h=!l.isConstant(),p=[];for(const{feature:y,id:w,index:T,sourceLayerIndex:M}of e){const z=this.layers[0]._featureFilter.needGeometry,D=Ya(y,z);if(!this.layers[0]._featureFilter.filter(new Yi(this.zoom),D,o))continue;const V=h?l.evaluate(D,{},o):void 0,U={id:w,properties:y.properties,type:y.type,sourceLayerIndex:M,index:T,geometry:z?D.geometry:Ja(y),patterns:{},sortKey:V};p.push(U)}h&&p.sort((y,w)=>y.sortKey-w.sortKey);for(const y of p){const{geometry:w,index:T,sourceLayerIndex:M}=y;if(this.hasPattern){const z=Ru("line",this.layers,y,this.zoom,r);this.patternFeatures.push(z)}else this.addFeature(y,w,T,o,{});r.featureIndex.insert(e[T].feature,w,T,M,this.index)}}update(e,r,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,o)}addFeatures(e,r,o){for(const l of this.patternFeatures)this.addFeature(l,l.geometry,l.index,r,o)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,om)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,rm),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&Object.prototype.hasOwnProperty.call(e.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(e.properties,"mapbox_clip_end"))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,r,o,l,h){const p=this.layers[0].layout,y=p.get("line-join").evaluate(e,{}),w=p.get("line-cap"),T=p.get("line-miter-limit"),M=p.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const z of r)this.addLine(z,e,y,w,T,M);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,o,h,l)}addLine(e,r,o,l,h,p){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ie=0;ie=2&&e[w-1].equals(e[w-2]);)w--;let T=0;for(;T0;if(lt&&ie>T){const Ze=D.dist(V);if(Ze>2*M){const ht=D.sub(D.sub(V)._mult(M/Ze)._round());this.updateDistance(V,ht),this.addCurrentVertex(ht,Z,0,0,z),V=ht}}const st=V&&U;let $e=st?o:y?"butt":l;if(st&&$e==="round"&&(geh&&($e="bevel"),$e==="bevel"&&(ge>2&&($e="flipbevel"),ge100)ue=$.mult(-1);else{const Ze=ge*Z.add($).mag()/Z.sub($).mag();ue._perp()._mult(Ze*(pt?-1:1))}this.addCurrentVertex(D,ue,0,0,z),this.addCurrentVertex(D,ue.mult(-1),0,0,z)}else if($e==="bevel"||$e==="fakeround"){const Ze=-Math.sqrt(ge*ge-1),ht=pt?Ze:0,Ke=pt?0:Ze;if(V&&this.addCurrentVertex(D,Z,ht,Ke,z),$e==="fakeround"){const Re=Math.round(180*Me/Math.PI/20);for(let bt=1;bt2*M){const ht=D.add(U.sub(D)._mult(M/Ze)._round());this.updateDistance(D,ht),this.addCurrentVertex(ht,$,0,0,z),D=ht}}}}addCurrentVertex(e,r,o,l,h,p=!1){const y=r.y*l-r.x,w=-r.y-r.x*l;this.addHalfVertex(e,r.x+r.y*o,r.y-r.x*o,p,!1,o,h),this.addHalfVertex(e,y,w,p,!0,-l,h),this.distance>ad/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,r,o,l,h,p))}addHalfVertex({x:e,y:r},o,l,h,p,y,w){const T=.5*(this.lineClips?this.scaledDistance*(ad-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((e<<1)+(h?1:0),(r<<1)+(p?1:0),Math.round(63*o)+128,Math.round(63*l)+128,1+(y===0?0:y<0?-1:1)|(63&T)<<2,T>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const M=w.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,M),w.primitiveLength++),p?this.e2=M:this.e1=M}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(e,r){this.distance+=e.dist(r),this.updateScaledDistance()}}let ld,cd;tt("LineBucket",Vu,{omit:["layers","patternFeatures"]});var ud={get paint(){return cd=cd||new xr({"line-opacity":new Et(Se.paint_line["line-opacity"]),"line-color":new Et(Se.paint_line["line-color"]),"line-translate":new xt(Se.paint_line["line-translate"]),"line-translate-anchor":new xt(Se.paint_line["line-translate-anchor"]),"line-width":new Et(Se.paint_line["line-width"]),"line-gap-width":new Et(Se.paint_line["line-gap-width"]),"line-offset":new Et(Se.paint_line["line-offset"]),"line-blur":new Et(Se.paint_line["line-blur"]),"line-dasharray":new ql(Se.paint_line["line-dasharray"]),"line-pattern":new Ha(Se.paint_line["line-pattern"]),"line-gradient":new Zl(Se.paint_line["line-gradient"])})},get layout(){return ld=ld||new xr({"line-cap":new xt(Se.layout_line["line-cap"]),"line-join":new Et(Se.layout_line["line-join"]),"line-miter-limit":new xt(Se.layout_line["line-miter-limit"]),"line-round-limit":new xt(Se.layout_line["line-round-limit"]),"line-sort-key":new Et(Se.layout_line["line-sort-key"])})}};class lm extends Et{possiblyEvaluate(e,r){return r=new Yi(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(e,r)}evaluate(e,r,o,l){return r=Nt({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(e,r,o,l)}}let Jc;class cm extends so{constructor(e){super(e,ud),this.gradientVersion=0,Jc||(Jc=new lm(ud.paint.properties["line-width"].specification),Jc.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(e){if(e==="line-gradient"){const r=this.gradientExpression();this.stepInterpolant=!!function(o){return o._styleExpression!==void 0}(r)&&r._styleExpression.expression instanceof ho,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(e,r){super.recalculate(e,r),this.paint._values["line-floorwidth"]=Jc.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)}createBucket(e){return new Vu(e)}queryRadius(e){const r=e,o=hd(Ql("line-width",this,r),Ql("line-gap-width",this,r)),l=Ql("line-offset",this,r);return o/2+Math.abs(l)+qc(this.paint.get("line-translate"))}queryIntersectsFeature(e,r,o,l,h,p,y){const w=Zc(e,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),p.angle,y),T=y/2*hd(this.paint.get("line-width").evaluate(r,o),this.paint.get("line-gap-width").evaluate(r,o)),M=this.paint.get("line-offset").evaluate(r,o);return M&&(l=function(z,D){const V=[];for(let U=0;U=3){for(let $=0;$0?e+2*i:i}const um=or([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),hm=or([{name:"a_projected_pos",components:3,type:"Float32"}],4);or([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const dm=or([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]);or([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const dd=or([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),pm=or([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function fm(i,e,r){return i.sections.forEach(o=>{o.text=function(l,h,p){const y=h.layout.get("text-transform").evaluate(p,{});return y==="uppercase"?l=l.toLocaleUpperCase():y==="lowercase"&&(l=l.toLocaleLowerCase()),Hn.applyArabicShaping&&(l=Hn.applyArabicShaping(l)),l}(o.text,e,r)}),i}or([{name:"triangle",components:3,type:"Uint16"}]),or([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{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"}]),or([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{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",name:"textBoxScale"},{type:"Float32",name:"collisionCircleDiameter"},{type:"Uint16",name:"textAnchorOffsetStartIndex"},{type:"Uint16",name:"textAnchorOffsetEndIndex"}]),or([{type:"Float32",name:"offsetX"}]),or([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),or([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const ac={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var zr=24,pd=Di,fd=function(i,e,r,o,l){var h,p,y=8*l-o-1,w=(1<>1,M=-7,z=r?l-1:0,D=r?-1:1,V=i[e+z];for(z+=D,h=V&(1<<-M)-1,V>>=-M,M+=y;M>0;h=256*h+i[e+z],z+=D,M-=8);for(p=h&(1<<-M)-1,h>>=-M,M+=o;M>0;p=256*p+i[e+z],z+=D,M-=8);if(h===0)h=1-T;else{if(h===w)return p?NaN:1/0*(V?-1:1);p+=Math.pow(2,o),h-=T}return(V?-1:1)*p*Math.pow(2,h-o)},md=function(i,e,r,o,l,h){var p,y,w,T=8*h-l-1,M=(1<>1,D=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,V=o?0:h-1,U=o?1:-1,Z=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(y=isNaN(e)?1:0,p=M):(p=Math.floor(Math.log(e)/Math.LN2),e*(w=Math.pow(2,-p))<1&&(p--,w*=2),(e+=p+z>=1?D/w:D*Math.pow(2,1-z))*w>=2&&(p++,w/=2),p+z>=M?(y=0,p=M):p+z>=1?(y=(e*w-1)*Math.pow(2,l),p+=z):(y=e*Math.pow(2,z-1)*Math.pow(2,l),p=0));l>=8;i[r+V]=255&y,V+=U,y/=256,l-=8);for(p=p<0;i[r+V]=255&p,V+=U,p/=256,T-=8);i[r+V-U]|=128*Z};function Di(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}Di.Varint=0,Di.Fixed64=1,Di.Bytes=2,Di.Fixed32=5;var Uu=4294967296,_d=1/Uu,gd=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Us(i){return i.type===Di.Bytes?i.readVarint()+i.pos:i.pos+1}function xl(i,e,r){return r?4294967296*e+(i>>>0):4294967296*(e>>>0)+(i>>>0)}function yd(i,e,r){var o=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(o);for(var l=r.pos-1;l>=i;l--)r.buf[l+o]=r.buf[l]}function mm(i,e){for(var r=0;r>>8,i[r+2]=e>>>16,i[r+3]=e>>>24}function vd(i,e){return(i[e]|i[e+1]<<8|i[e+2]<<16)+(i[e+3]<<24)}Di.prototype={destroy:function(){this.buf=null},readFields:function(i,e,r){for(r=r||this.length;this.pos>3,h=this.pos;this.type=7&o,i(l,e,this),this.pos===h&&this.skip(o)}return e},readMessage:function(i,e){return this.readFields(i,e,this.readVarint()+this.pos)},readFixed32:function(){var i=Yc(this.buf,this.pos);return this.pos+=4,i},readSFixed32:function(){var i=vd(this.buf,this.pos);return this.pos+=4,i},readFixed64:function(){var i=Yc(this.buf,this.pos)+Yc(this.buf,this.pos+4)*Uu;return this.pos+=8,i},readSFixed64:function(){var i=Yc(this.buf,this.pos)+vd(this.buf,this.pos+4)*Uu;return this.pos+=8,i},readFloat:function(){var i=fd(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=fd(this.buf,this.pos,!0,52,8);return this.pos+=8,i},readVarint:function(i){var e,r,o=this.buf;return e=127&(r=o[this.pos++]),r<128?e:(e|=(127&(r=o[this.pos++]))<<7,r<128?e:(e|=(127&(r=o[this.pos++]))<<14,r<128?e:(e|=(127&(r=o[this.pos++]))<<21,r<128?e:function(l,h,p){var y,w,T=p.buf;if(y=(112&(w=T[p.pos++]))>>4,w<128||(y|=(127&(w=T[p.pos++]))<<3,w<128)||(y|=(127&(w=T[p.pos++]))<<10,w<128)||(y|=(127&(w=T[p.pos++]))<<17,w<128)||(y|=(127&(w=T[p.pos++]))<<24,w<128)||(y|=(1&(w=T[p.pos++]))<<31,w<128))return xl(l,y,h);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=o[this.pos]))<<28,i,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var i=this.readVarint();return i%2==1?(i+1)/-2:i/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var i=this.readVarint()+this.pos,e=this.pos;return this.pos=i,i-e>=12&&gd?function(r,o,l){return gd.decode(r.subarray(o,l))}(this.buf,e,i):function(r,o,l){for(var h="",p=o;p239?4:M>223?3:M>191?2:1;if(p+D>l)break;D===1?M<128&&(z=M):D===2?(192&(y=r[p+1]))==128&&(z=(31&M)<<6|63&y)<=127&&(z=null):D===3?(w=r[p+2],(192&(y=r[p+1]))==128&&(192&w)==128&&((z=(15&M)<<12|(63&y)<<6|63&w)<=2047||z>=55296&&z<=57343)&&(z=null)):D===4&&(w=r[p+2],T=r[p+3],(192&(y=r[p+1]))==128&&(192&w)==128&&(192&T)==128&&((z=(15&M)<<18|(63&y)<<12|(63&w)<<6|63&T)<=65535||z>=1114112)&&(z=null)),z===null?(z=65533,D=1):z>65535&&(z-=65536,h+=String.fromCharCode(z>>>10&1023|55296),z=56320|1023&z),h+=String.fromCharCode(z),p+=D}return h}(this.buf,e,i)},readBytes:function(){var i=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,i);return this.pos=i,e},readPackedVarint:function(i,e){if(this.type!==Di.Bytes)return i.push(this.readVarint(e));var r=Us(this);for(i=i||[];this.pos127;);else if(e===Di.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Di.Fixed32)this.pos+=4;else{if(e!==Di.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(i,e){this.writeVarint(i<<3|e)},realloc:function(i){for(var e=this.length||16;e268435455||i<0?function(e,r){var o,l;if(e>=0?(o=e%4294967296|0,l=e/4294967296|0):(l=~(-e/4294967296),4294967295^(o=~(-e%4294967296))?o=o+1|0:(o=0,l=l+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");r.realloc(10),function(h,p,y){y.buf[y.pos++]=127&h|128,h>>>=7,y.buf[y.pos++]=127&h|128,h>>>=7,y.buf[y.pos++]=127&h|128,h>>>=7,y.buf[y.pos++]=127&h|128,y.buf[y.pos]=127&(h>>>=7)}(o,0,r),function(h,p){var y=(7&h)<<4;p.buf[p.pos++]|=y|((h>>>=3)?128:0),h&&(p.buf[p.pos++]=127&h|((h>>>=7)?128:0),h&&(p.buf[p.pos++]=127&h|((h>>>=7)?128:0),h&&(p.buf[p.pos++]=127&h|((h>>>=7)?128:0),h&&(p.buf[p.pos++]=127&h|((h>>>=7)?128:0),h&&(p.buf[p.pos++]=127&h)))))}(l,r)}(i,this):(this.realloc(4),this.buf[this.pos++]=127&i|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=i>>>7&127))))},writeSVarint:function(i){this.writeVarint(i<0?2*-i-1:2*i)},writeBoolean:function(i){this.writeVarint(!!i)},writeString:function(i){i=String(i),this.realloc(4*i.length),this.pos++;var e=this.pos;this.pos=function(o,l,h){for(var p,y,w=0;w55295&&p<57344){if(!y){p>56319||w+1===l.length?(o[h++]=239,o[h++]=191,o[h++]=189):y=p;continue}if(p<56320){o[h++]=239,o[h++]=191,o[h++]=189,y=p;continue}p=y-55296<<10|p-56320|65536,y=null}else y&&(o[h++]=239,o[h++]=191,o[h++]=189,y=null);p<128?o[h++]=p:(p<2048?o[h++]=p>>6|192:(p<65536?o[h++]=p>>12|224:(o[h++]=p>>18|240,o[h++]=p>>12&63|128),o[h++]=p>>6&63|128),o[h++]=63&p|128)}return h}(this.buf,i,this.pos);var r=this.pos-e;r>=128&&yd(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(i){this.realloc(4),md(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),md(this.buf,i,this.pos,!0,52,8),this.pos+=8},writeBytes:function(i){var e=i.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&yd(r,o,this),this.pos=r-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,e,r){this.writeTag(i,Di.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(i,e){e.length&&this.writeMessage(i,mm,e)},writePackedSVarint:function(i,e){e.length&&this.writeMessage(i,_m,e)},writePackedBoolean:function(i,e){e.length&&this.writeMessage(i,vm,e)},writePackedFloat:function(i,e){e.length&&this.writeMessage(i,gm,e)},writePackedDouble:function(i,e){e.length&&this.writeMessage(i,ym,e)},writePackedFixed32:function(i,e){e.length&&this.writeMessage(i,xm,e)},writePackedSFixed32:function(i,e){e.length&&this.writeMessage(i,bm,e)},writePackedFixed64:function(i,e){e.length&&this.writeMessage(i,wm,e)},writePackedSFixed64:function(i,e){e.length&&this.writeMessage(i,Sm,e)},writeBytesField:function(i,e){this.writeTag(i,Di.Bytes),this.writeBytes(e)},writeFixed32Field:function(i,e){this.writeTag(i,Di.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(i,e){this.writeTag(i,Di.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(i,e){this.writeTag(i,Di.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(i,e){this.writeTag(i,Di.Fixed64),this.writeSFixed64(e)},writeVarintField:function(i,e){this.writeTag(i,Di.Varint),this.writeVarint(e)},writeSVarintField:function(i,e){this.writeTag(i,Di.Varint),this.writeSVarint(e)},writeStringField:function(i,e){this.writeTag(i,Di.Bytes),this.writeString(e)},writeFloatField:function(i,e){this.writeTag(i,Di.Fixed32),this.writeFloat(e)},writeDoubleField:function(i,e){this.writeTag(i,Di.Fixed64),this.writeDouble(e)},writeBooleanField:function(i,e){this.writeVarintField(i,!!e)}};var ju=N(pd);const qu=3;function Tm(i,e,r){i===1&&r.readMessage(Im,e)}function Im(i,e,r){if(i===3){const{id:o,bitmap:l,width:h,height:p,left:y,top:w,advance:T}=r.readMessage(Em,{});e.push({id:o,bitmap:new ec({width:h+2*qu,height:p+2*qu},l),metrics:{width:h,height:p,left:y,top:w,advance:T}})}}function Em(i,e,r){i===1?e.id=r.readVarint():i===2?e.bitmap=r.readBytes():i===3?e.width=r.readVarint():i===4?e.height=r.readVarint():i===5?e.left=r.readSVarint():i===6?e.top=r.readSVarint():i===7&&(e.advance=r.readVarint())}const xd=qu;function bd(i){let e=0,r=0;for(const p of i)e+=p.w*p.h,r=Math.max(r,p.w);i.sort((p,y)=>y.h-p.h);const o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let l=0,h=0;for(const p of i)for(let y=o.length-1;y>=0;y--){const w=o[y];if(!(p.w>w.w||p.h>w.h)){if(p.x=w.x,p.y=w.y,h=Math.max(h,p.y+p.h),l=Math.max(l,p.x+p.w),p.w===w.w&&p.h===w.h){const T=o.pop();y=0&&o>=e&&$c[this.text.charCodeAt(o)];o--)r--;this.text=this.text.substring(e,r),this.sectionIndex=this.sectionIndex.slice(e,r)}substring(e,r){const o=new wl;return o.text=this.text.substring(e,r),o.sectionIndex=this.sectionIndex.slice(e,r),o.sections=this.sections,o}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,r)=>Math.max(e,this.sections[r].scale),0)}addTextSection(e,r){this.text+=e.text,this.sections.push(cc.forText(e.scale,e.fontStack||r));const o=this.sections.length-1;for(let l=0;l=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Qc(i,e,r,o,l,h,p,y,w,T,M,z,D,V,U,Z){const $=wl.fromFeature(i,l);let ie;z===s.ai.vertical&&$.verticalizePunctuation();const{processBidirectionalText:ue,processStyledBidirectionalText:re}=Hn;if(ue&&$.sections.length===1){ie=[];const Me=ue($.toString(),Gu($,T,h,e,o,V,U));for(const lt of Me){const pt=new wl;pt.text=lt,pt.sections=$.sections;for(let st=0;st0&&qs>Jn&&(Jn=qs)}else{const vo=pt[ni.fontStack],Qn=vo&&vo[hn];if(Qn&&Qn.rect)Qo=Qn.rect,No=Qn.metrics;else{const qs=lt[ni.fontStack],fc=qs&&qs[hn];if(!fc)continue;No=fc.metrics}Or=(Fr-ni.scale)*zr}Vo?(Me.verticalizable=!0,bn.push({glyph:hn,imageName:$o,x:$i,y:nr+Or,vertical:Vo,scale:ni.scale,fontStack:ni.fontStack,sectionIndex:wn,metrics:No,rect:Qo}),$i+=js*ni.scale+bt):(bn.push({glyph:hn,imageName:$o,x:$i,y:nr+Or,vertical:Vo,scale:ni.scale,fontStack:ni.fontStack,sectionIndex:wn,metrics:No,rect:Qo}),$i+=No.advance*ni.scale+bt)}bn.length!==0&&(Lr=Math.max($i-bt,Lr),Am(bn,0,bn.length-1,Fn,Jn)),$i=0;const Yn=Ze*Fr+Jn;Bn.lineOffset=Math.max(Jn,xn),nr+=Yn,lo=Math.max(Yn,lo),++Cr}var Jr;const un=nr-lc,{horizontalAlign:Rn,verticalAlign:On}=Wu(ht);(function(Dr,Fr,xn,Bn,bn,Jn,Yn,Rr,ni){const wn=(Fr-xn)*bn;let hn=0;hn=Jn!==Yn?-Rr*Bn-lc:(-Bn*ni+.5)*Yn;for(const Or of Dr)for(const No of Or.positionedGlyphs)No.x+=wn,No.y+=hn})(Me.positionedLines,Fn,Rn,On,Lr,lo,Ze,un,$e.length),Me.top+=-On*un,Me.bottom=Me.top+un,Me.left+=-Rn*Lr,Me.right=Me.left+Lr}(ge,e,r,o,ie,p,y,w,z,T,D,Z),!function(Me){for(const lt of Me)if(lt.positionedGlyphs.length!==0)return!1;return!0}(pe)&&ge}const $c={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Cm={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Sd(i,e,r,o,l,h){if(e.imageName){const p=o[e.imageName];return p?p.displaySize[0]*e.scale*zr/h+l:0}{const p=r[e.fontStack],y=p&&p[i];return y?y.metrics.advance*e.scale+l:0}}function Td(i,e,r,o){const l=Math.pow(i-e,2);return o?i=0;let M=0;for(let D=0;Dp.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Cu([]),this.placementViewportMatrix=Cu([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Md(this.zoom,r["text-size"]),this.iconSizeData=Md(this.zoom,r["icon-size"]);const o=this.layers[0].layout,l=o.get("symbol-sort-key"),h=o.get("symbol-z-order");this.canOverlap=Hu(o,"text-overlap","text-allow-overlap")!=="never"||Hu(o,"icon-overlap","icon-allow-overlap")!=="never"||o.get("text-ignore-placement")||o.get("icon-ignore-placement"),this.sortFeaturesByKey=h!=="viewport-y"&&!l.isConstant(),this.sortFeaturesByY=(h==="viewport-y"||h==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,o.get("symbol-placement")==="point"&&(this.writingModes=o.get("text-writing-mode").map(p=>s.ai[p])),this.stateDependentLayerIds=this.layers.filter(p=>p.isStateDependent()).map(p=>p.id),this.sourceID=e.sourceID}createArrays(){this.text=new Ku(new Yo(this.layers,this.zoom,e=>/^text/.test(e))),this.icon=new Ku(new Yo(this.layers,this.zoom,e=>/^icon/.test(e))),this.glyphOffsetArray=new ce,this.lineVertexArray=new ve,this.symbolInstances=new ee,this.textAnchorOffsets=new Ce}calculateGlyphDependencies(e,r,o,l,h){for(let p=0;p0)&&(p.value.kind!=="constant"||p.value.value.length>0),M=w.value.kind!=="constant"||!!w.value.value||Object.keys(w.parameters).length>0,z=h.get("symbol-sort-key");if(this.features=[],!T&&!M)return;const D=r.iconDependencies,V=r.glyphDependencies,U=r.availableImages,Z=new Yi(this.zoom);for(const{feature:$,id:ie,index:ue,sourceLayerIndex:re}of e){const pe=l._featureFilter.needGeometry,ge=Ya($,pe);if(!l._featureFilter.filter(Z,ge,o))continue;let Me,lt;if(pe||(ge.geometry=Ja($)),T){const st=l.getValueAndResolveTokens("text-field",ge,o,U),$e=ji.factory(st);Lm($e)&&(this.hasRTLText=!0),(!this.hasRTLText||Ul()==="unavailable"||this.hasRTLText&&Hn.isParsed())&&(Me=fm($e,l,ge))}if(M){const st=l.getValueAndResolveTokens("icon-image",ge,o,U);lt=st instanceof Ir?st:Ir.fromString(st)}if(!Me&&!lt)continue;const pt=this.sortFeaturesByKey?z.evaluate(ge,{},o):void 0;if(this.features.push({id:ie,text:Me,icon:lt,index:ue,sourceLayerIndex:re,geometry:ge.geometry,properties:$.properties,type:Pm[$.type],sortKey:pt}),lt&&(D[lt.name]=!0),Me){const st=p.evaluate(ge,{},o).join(","),$e=h.get("text-rotation-alignment")!=="viewport"&&h.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(s.ai.vertical)>=0;for(const Ze of Me.sections)if(Ze.image)D[Ze.image.name]=!0;else{const ht=wa(Me.toString()),Ke=Ze.fontStack||st,Re=V[Ke]=V[Ke]||{};this.calculateGlyphDependencies(Ze.text,Re,$e,this.allowVerticalPlacement,ht)}}}h.get("symbol-placement")==="line"&&(this.features=function($){const ie={},ue={},re=[];let pe=0;function ge(st){re.push($[st]),pe++}function Me(st,$e,Ze){const ht=ue[st];return delete ue[st],ue[$e]=ht,re[ht].geometry[0].pop(),re[ht].geometry[0]=re[ht].geometry[0].concat(Ze[0]),ht}function lt(st,$e,Ze){const ht=ie[$e];return delete ie[$e],ie[st]=ht,re[ht].geometry[0].shift(),re[ht].geometry[0]=Ze[0].concat(re[ht].geometry[0]),ht}function pt(st,$e,Ze){const ht=Ze?$e[0][$e[0].length-1]:$e[0][0];return`${st}:${ht.x}:${ht.y}`}for(let st=0;st<$.length;st++){const $e=$[st],Ze=$e.geometry,ht=$e.text?$e.text.toString():null;if(!ht){ge(st);continue}const Ke=pt(ht,Ze),Re=pt(ht,Ze,!0);if(Ke in ue&&Re in ie&&ue[Ke]!==ie[Re]){const bt=lt(Ke,Re,Ze),yt=Me(Ke,Re,re[bt].geometry);delete ie[Ke],delete ue[Re],ue[pt(ht,re[yt].geometry,!0)]=yt,re[bt].geometry=null}else Ke in ue?Me(Ke,Re,Ze):Re in ie?lt(Ke,Re,Ze):(ge(st),ie[Ke]=pe-1,ue[Re]=pe-1)}return re.filter(st=>st.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort(($,ie)=>$.sortKey-ie.sortKey)}update(e,r,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,r,this.layers,o),this.icon.programConfigurations.updatePaintArrays(e,r,this.layers,o))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(e,r){const o=this.lineVertexArray.length;if(e.segment!==void 0){let l=e.dist(r[e.segment+1]),h=e.dist(r[e.segment]);const p={};for(let y=e.segment+1;y=0;y--)p[y]={x:r[y].x,y:r[y].y,tileUnitDistanceFromAnchor:h},y>0&&(h+=r[y-1].dist(r[y]));for(let y=0;y0}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(e,r){const o=e.placedSymbolArray.get(r),l=o.vertexStartIndex+4*o.numGlyphs;for(let h=o.vertexStartIndex;hl[y]-l[w]||h[w]-h[y]),p}addToSortKeyRanges(e,r){const o=this.sortKeyRanges[this.sortKeyRanges.length-1];o&&o.sortKey===r?o.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:e,symbolInstanceEnd:e+1})}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const r of this.symbolInstanceIndexes){const o=this.symbolInstances.get(r);this.featureSortOrder.push(o.featureIndex),[o.rightJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.leftJustifiedTextSymbolIndex].forEach((l,h,p)=>{l>=0&&p.indexOf(l)===h&&this.addIndicesForPlacedSymbol(this.text,l)}),o.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,o.verticalPlacedTextSymbolIndex),o.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.placedIconSymbolIndex),o.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let Ad,kd;tt("SymbolBucket",Sl,{omit:["layers","collisionBoxArray","features","compareText"]}),Sl.MAX_GLYPHS=65535,Sl.addDynamicAttributes=Xu;var Yu={get paint(){return kd=kd||new xr({"icon-opacity":new Et(Se.paint_symbol["icon-opacity"]),"icon-color":new Et(Se.paint_symbol["icon-color"]),"icon-halo-color":new Et(Se.paint_symbol["icon-halo-color"]),"icon-halo-width":new Et(Se.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Et(Se.paint_symbol["icon-halo-blur"]),"icon-translate":new xt(Se.paint_symbol["icon-translate"]),"icon-translate-anchor":new xt(Se.paint_symbol["icon-translate-anchor"]),"text-opacity":new Et(Se.paint_symbol["text-opacity"]),"text-color":new Et(Se.paint_symbol["text-color"],{runtimeType:Vr,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new Et(Se.paint_symbol["text-halo-color"]),"text-halo-width":new Et(Se.paint_symbol["text-halo-width"]),"text-halo-blur":new Et(Se.paint_symbol["text-halo-blur"]),"text-translate":new xt(Se.paint_symbol["text-translate"]),"text-translate-anchor":new xt(Se.paint_symbol["text-translate-anchor"])})},get layout(){return Ad=Ad||new xr({"symbol-placement":new xt(Se.layout_symbol["symbol-placement"]),"symbol-spacing":new xt(Se.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new xt(Se.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Et(Se.layout_symbol["symbol-sort-key"]),"symbol-z-order":new xt(Se.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new xt(Se.layout_symbol["icon-allow-overlap"]),"icon-overlap":new xt(Se.layout_symbol["icon-overlap"]),"icon-ignore-placement":new xt(Se.layout_symbol["icon-ignore-placement"]),"icon-optional":new xt(Se.layout_symbol["icon-optional"]),"icon-rotation-alignment":new xt(Se.layout_symbol["icon-rotation-alignment"]),"icon-size":new Et(Se.layout_symbol["icon-size"]),"icon-text-fit":new xt(Se.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new xt(Se.layout_symbol["icon-text-fit-padding"]),"icon-image":new Et(Se.layout_symbol["icon-image"]),"icon-rotate":new Et(Se.layout_symbol["icon-rotate"]),"icon-padding":new Et(Se.layout_symbol["icon-padding"]),"icon-keep-upright":new xt(Se.layout_symbol["icon-keep-upright"]),"icon-offset":new Et(Se.layout_symbol["icon-offset"]),"icon-anchor":new Et(Se.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new xt(Se.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new xt(Se.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new xt(Se.layout_symbol["text-rotation-alignment"]),"text-field":new Et(Se.layout_symbol["text-field"]),"text-font":new Et(Se.layout_symbol["text-font"]),"text-size":new Et(Se.layout_symbol["text-size"]),"text-max-width":new Et(Se.layout_symbol["text-max-width"]),"text-line-height":new xt(Se.layout_symbol["text-line-height"]),"text-letter-spacing":new Et(Se.layout_symbol["text-letter-spacing"]),"text-justify":new Et(Se.layout_symbol["text-justify"]),"text-radial-offset":new Et(Se.layout_symbol["text-radial-offset"]),"text-variable-anchor":new xt(Se.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Et(Se.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Et(Se.layout_symbol["text-anchor"]),"text-max-angle":new xt(Se.layout_symbol["text-max-angle"]),"text-writing-mode":new xt(Se.layout_symbol["text-writing-mode"]),"text-rotate":new Et(Se.layout_symbol["text-rotate"]),"text-padding":new xt(Se.layout_symbol["text-padding"]),"text-keep-upright":new xt(Se.layout_symbol["text-keep-upright"]),"text-transform":new Et(Se.layout_symbol["text-transform"]),"text-offset":new Et(Se.layout_symbol["text-offset"]),"text-allow-overlap":new xt(Se.layout_symbol["text-allow-overlap"]),"text-overlap":new xt(Se.layout_symbol["text-overlap"]),"text-ignore-placement":new xt(Se.layout_symbol["text-ignore-placement"]),"text-optional":new xt(Se.layout_symbol["text-optional"])})}};class Pd{constructor(e){if(e.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=e.property.overrides?e.property.overrides.runtimeType:tn,this.defaultValue=e}evaluate(e){if(e.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(e.formattedSection))return r.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}tt("FormatSectionOverride",Pd,{omit:["defaultValue"]});class tu extends so{constructor(e){super(e,Yu)}recalculate(e,r){if(super.recalculate(e,r),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")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const o=this.layout.get("text-writing-mode");if(o){const l=[];for(const h of o)l.indexOf(h)<0&&l.push(h);this.layout._values["text-writing-mode"]=l}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(e,r,o,l){const h=this.layout.get(e).evaluate(r,{},o,l),p=this._unevaluatedLayout._values[e];return p.isDataDriven()||Zn(p.value)||!h?h:function(y,w){return w.replace(/{([^{}]+)}/g,(T,M)=>y&&M in y?String(y[M]):"")}(r.properties,h)}createBucket(e){return new Sl(e)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const e of Yu.paint.overridableProperties){if(!tu.hasPaintOverride(this.layout,e))continue;const r=this.paint.get(e),o=new Pd(r),l=new ls(o,r.property.specification);let h=null;h=r.value.kind==="constant"||r.value.kind==="source"?new cs("source",l):new ko("composite",l,r.value.zoomStops),this.paint._values[e]=new yn(r.property,h,r.parameters)}}_handleOverridablePaintPropertyUpdate(e,r,o){return!(!this.layout||r.isDataDriven()||o.isDataDriven())&&tu.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,r){const o=e.get("text-field"),l=Yu.paint.properties[r];let h=!1;const p=y=>{for(const w of y)if(l.overrides&&l.overrides.hasOverride(w))return void(h=!0)};if(o.value.kind==="constant"&&o.value.value instanceof ji)p(o.value.value.sections);else if(o.value.kind==="source"){const y=T=>{h||(T instanceof uo&&Gi(T.value)===X?p(T.value.sections):T instanceof Es?p(T.sections):T.eachChild(y))},w=o.value;w._styleExpression&&y(w._styleExpression.expression)}return h}}let zd;var Dm={get paint(){return zd=zd||new xr({"background-color":new xt(Se.paint_background["background-color"]),"background-pattern":new ql(Se.paint_background["background-pattern"]),"background-opacity":new xt(Se.paint_background["background-opacity"])})}};class Fm extends so{constructor(e){super(e,Dm)}}let Ld;var Rm={get paint(){return Ld=Ld||new xr({"raster-opacity":new xt(Se.paint_raster["raster-opacity"]),"raster-hue-rotate":new xt(Se.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new xt(Se.paint_raster["raster-brightness-min"]),"raster-brightness-max":new xt(Se.paint_raster["raster-brightness-max"]),"raster-saturation":new xt(Se.paint_raster["raster-saturation"]),"raster-contrast":new xt(Se.paint_raster["raster-contrast"]),"raster-resampling":new xt(Se.paint_raster["raster-resampling"]),"raster-fade-duration":new xt(Se.paint_raster["raster-fade-duration"])})}};class Om extends so{constructor(e){super(e,Rm)}}class Bm extends so{constructor(e){super(e,{}),this.onAdd=r=>{this.implementation.onAdd&&this.implementation.onAdd(r,r.painter.context.gl)},this.onRemove=r=>{this.implementation.onRemove&&this.implementation.onRemove(r,r.painter.context.gl)},this.implementation=e}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class Nm{constructor(e){this._callback=e,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{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(){delete this._channel,this._callback=()=>{}}}const Qu=63710088e-1;class ka{constructor(e,r){if(isNaN(e)||isNaN(r))throw new Error(`Invalid LngLat object: (${e}, ${r})`);if(this.lng=+e,this.lat=+r,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new ka(Ht(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){const r=Math.PI/180,o=this.lat*r,l=e.lat*r,h=Math.sin(o)*Math.sin(l)+Math.cos(o)*Math.cos(l)*Math.cos((e.lng-this.lng)*r);return Qu*Math.acos(Math.min(h,1))}static convert(e){if(e instanceof ka)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new ka(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new ka(Number("lng"in e?e.lng:e.lon),Number(e.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 Dd=2*Math.PI*Qu;function Fd(i){return Dd*Math.cos(i*Math.PI/180)}function Rd(i){return(180+i)/360}function Od(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function Bd(i,e){return i/Fd(e)}function Nd(i){return 360*i-180}function $u(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}class iu{constructor(e,r,o=0){this.x=+e,this.y=+r,this.z=+o}static fromLngLat(e,r=0){const o=ka.convert(e);return new iu(Rd(o.lng),Od(o.lat),Bd(r,o.lat))}toLngLat(){return new ka(Nd(this.x),$u(this.y))}toAltitude(){return this.z*Fd($u(this.y))}meterInMercatorCoordinateUnits(){return 1/Dd*(e=$u(this.y),1/Math.cos(e*Math.PI/180));var e}}function Vd(i,e,r){var o=2*Math.PI*6378137/256/Math.pow(2,r);return[i*o-2*Math.PI*6378137/2,e*o-2*Math.PI*6378137/2]}class eh{constructor(e,r,o){if(e<0||e>25||o<0||o>=Math.pow(2,e)||r<0||r>=Math.pow(2,e))throw new Error(`x=${r}, y=${o}, z=${e} outside of bounds. 0<=x<${Math.pow(2,e)}, 0<=y<${Math.pow(2,e)} 0<=z<=25 `);this.z=e,this.x=r,this.y=o,this.key=hc(0,e,e,r,o)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,r,o){const l=(p=this.y,y=this.z,w=Vd(256*(h=this.x),256*(p=Math.pow(2,y)-p-1),y),T=Vd(256*(h+1),256*(p+1),y),w[0]+","+w[1]+","+T[0]+","+T[1]);var h,p,y,w,T;const M=function(z,D,V){let U,Z="";for(let $=z;$>0;$--)U=1<<$-1,Z+=(D&U?1:0)+(V&U?2:0);return Z}(this.z,this.x,this.y);return e[(this.x+this.y)%e.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(o==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace(/{ratio}/g,r>1?"@2x":"").replace(/{quadkey}/g,M).replace(/{bbox-epsg-3857}/g,l)}isChildOf(e){const r=this.z-e.z;return r>0&&e.x===this.x>>r&&e.y===this.y>>r}getTilePoint(e){const r=Math.pow(2,this.z);return new ye((e.x*r-this.x)*Er,(e.y*r-this.y)*Er)}toString(){return`${this.z}/${this.x}/${this.y}`}}class Ud{constructor(e,r){this.wrap=e,this.canonical=r,this.key=hc(e,r.z,r.z,r.x,r.y)}}class yo{constructor(e,r,o,l,h){if(e= z; overscaledZ = ${e}; z = ${o}`);this.overscaledZ=e,this.wrap=r,this.canonical=new eh(o,+l,+h),this.key=hc(r,e,o,l,h)}clone(){return new yo(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(e){if(e>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);const r=this.canonical.z-e;return e>this.canonical.z?new yo(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new yo(e,this.wrap,e,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(e,r){if(e>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);const o=this.canonical.z-e;return e>this.canonical.z?hc(this.wrap*+r,e,this.canonical.z,this.canonical.x,this.canonical.y):hc(this.wrap*+r,e,e,this.canonical.x>>o,this.canonical.y>>o)}isChildOf(e){if(e.wrap!==this.wrap)return!1;const r=this.canonical.z-e.canonical.z;return e.overscaledZ===0||e.overscaledZ>r&&e.canonical.y===this.canonical.y>>r}children(e){if(this.overscaledZ>=e)return[new yo(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,o=2*this.canonical.x,l=2*this.canonical.y;return[new yo(r,this.wrap,r,o,l),new yo(r,this.wrap,r,o+1,l),new yo(r,this.wrap,r,o,l+1),new yo(r,this.wrap,r,o+1,l+1)]}isLessThan(e){return this.wrape.wrap)&&(this.overscaledZe.overscaledZ)&&(this.canonical.xe.canonical.x)&&this.canonical.ythis.max&&(this.max=z),z=this.dim+1||r<-1||r>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(e+1)}unpack(e,r,o){return e*this.redFactor+r*this.greenFactor+o*this.blueFactor-this.baseShift}getPixels(){return new go({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(e,r,o){if(this.dim!==e.dim)throw new Error("dem dimension mismatch");let l=r*this.dim,h=r*this.dim+this.dim,p=o*this.dim,y=o*this.dim+this.dim;switch(r){case-1:l=h-1;break;case 1:h=l+1}switch(o){case-1:p=y-1;break;case 1:y=p+1}const w=-r*this.dim,T=-o*this.dim;for(let M=p;M=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}}class Zd{constructor(e,r,o,l,h){this.type="Feature",this._vectorTileFeature=e,e._z=r,e._x=o,e._y=l,this.properties=e.properties,this.id=h}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(e){this._geometry=e}toJSON(){const e={geometry:this.geometry};for(const r in this)r!=="_geometry"&&r!=="_vectorTileFeature"&&(e[r]=this[r]);return e}}class Gd{constructor(e,r){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Lo(Er,16,0),this.grid3D=new Lo(Er,16,0),this.featureIndexArray=new Pe,this.promoteId=r}insert(e,r,o,l,h,p){const y=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(o,l,h);const w=p?this.grid3D:this.grid;for(let T=0;T=0&&z[3]>=0&&w.insert(y,z[0],z[1],z[2],z[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new Ca.VectorTile(new ju(this.rawTileData)).layers,this.sourceLayerCoder=new qd(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(e,r,o,l){this.loadVTLayers();const h=e.params||{},p=Er/e.tileSize/e.scale,y=_a(h.filter),w=e.queryGeometry,T=e.queryPadding*p,M=Hd(w),z=this.grid.query(M.minX-T,M.minY-T,M.maxX+T,M.maxY+T),D=Hd(e.cameraQueryGeometry),V=this.grid3D.query(D.minX-T,D.minY-T,D.maxX+T,D.maxY+T,($,ie,ue,re)=>function(pe,ge,Me,lt,pt){for(const $e of pe)if(ge<=$e.x&&Me<=$e.y&<>=$e.x&&pt>=$e.y)return!0;const st=[new ye(ge,Me),new ye(ge,pt),new ye(lt,pt),new ye(lt,Me)];if(pe.length>2){for(const $e of st)if(_l(pe,$e))return!0}for(let $e=0;$e(re||(re=Ja(pe)),ge.queryIntersectsFeature(w,pe,Me,re,this.z,e.transform,p,e.pixelPosMatrix)))}return U}loadMatchingFeature(e,r,o,l,h,p,y,w,T,M,z){const D=this.bucketLayerIDs[r];if(p&&!function($,ie){for(let ue=0;ue<$.length;ue++)if(ie.indexOf($[ue])>=0)return!0;return!1}(p,D))return;const V=this.sourceLayerCoder.decode(o),U=this.vtLayers[V].feature(l);if(h.needGeometry){const $=Ya(U,!0);if(!h.filter(new Yi(this.tileID.overscaledZ),$,this.tileID.canonical))return}else if(!h.filter(new Yi(this.tileID.overscaledZ),U))return;const Z=this.getId(U,V);for(let $=0;${const y=e instanceof fl?e.get(p):null;return y&&y.evaluate?y.evaluate(r,o,l):y})}function Hd(i){let e=1/0,r=1/0,o=-1/0,l=-1/0;for(const h of i)e=Math.min(e,h.x),r=Math.min(r,h.y),o=Math.max(o,h.x),l=Math.max(l,h.y);return{minX:e,minY:r,maxX:o,maxY:l}}function Vm(i,e){return e-i}function Xd(i,e,r,o,l){const h=[];for(let p=0;p=o&&z.x>=o||(M.x>=o?M=new ye(o,M.y+(o-M.x)/(z.x-M.x)*(z.y-M.y))._round():z.x>=o&&(z=new ye(o,M.y+(o-M.x)/(z.x-M.x)*(z.y-M.y))._round()),M.y>=l&&z.y>=l||(M.y>=l?M=new ye(M.x+(l-M.y)/(z.y-M.y)*(z.x-M.x),l)._round():z.y>=l&&(z=new ye(M.x+(l-M.y)/(z.y-M.y)*(z.x-M.x),l)._round()),w&&M.equals(w[w.length-1])||(w=[M],h.push(w)),w.push(z)))))}}return h}tt("FeatureIndex",Gd,{omit:["rawTileData","sourceLayerCoder"]});class Pa extends ye{constructor(e,r,o,l){super(e,r),this.angle=o,l!==void 0&&(this.segment=l)}clone(){return new Pa(this.x,this.y,this.angle,this.segment)}}function Kd(i,e,r,o,l){if(e.segment===void 0||r===0)return!0;let h=e,p=e.segment+1,y=0;for(;y>-r/2;){if(p--,p<0)return!1;y-=i[p].dist(h),h=i[p]}y+=i[p].dist(i[p+1]),p++;const w=[];let T=0;for(;yo;)T-=w.shift().angleDelta;if(T>l)return!1;p++,y+=M.dist(z)}return!0}function Jd(i){let e=0;for(let r=0;rT){const U=(T-w)/V,Z=Wr.number(z.x,D.x,U),$=Wr.number(z.y,D.y,U),ie=new Pa(Z,$,D.angleTo(z),M);return ie._round(),!p||Kd(i,ie,y,p,e)?ie:void 0}w+=V}}function jm(i,e,r,o,l,h,p,y,w){const T=Yd(o,h,p),M=Qd(o,l),z=M*p,D=i[0].x===0||i[0].x===w||i[0].y===0||i[0].y===w;return e-z=0&&pe=0&&ge=0&&D+T<=M){const Me=new Pa(pe,ge,ue,U);Me._round(),o&&!Kd(i,Me,h,o,l)||V.push(Me)}}z+=ie}return y||V.length||p||(V=$d(i,z/2,r,o,l,h,p,!0,w)),V}tt("Anchor",Pa);const Tl=Kn;function ep(i,e,r,o){const l=[],h=i.image,p=h.pixelRatio,y=h.paddedRect.w-2*Tl,w=h.paddedRect.h-2*Tl,T=i.right-i.left,M=i.bottom-i.top,z=h.stretchX||[[0,y]],D=h.stretchY||[[0,w]],V=(Ze,ht)=>Ze+ht[1]-ht[0],U=z.reduce(V,0),Z=D.reduce(V,0),$=y-U,ie=w-Z;let ue=0,re=U,pe=0,ge=Z,Me=0,lt=$,pt=0,st=ie;if(h.content&&o){const Ze=h.content;ue=ru(z,0,Ze[0]),pe=ru(D,0,Ze[1]),re=ru(z,Ze[0],Ze[2]),ge=ru(D,Ze[1],Ze[3]),Me=Ze[0]-ue,pt=Ze[1]-pe,lt=Ze[2]-Ze[0]-re,st=Ze[3]-Ze[1]-ge}const $e=(Ze,ht,Ke,Re)=>{const bt=nu(Ze.stretch-ue,re,T,i.left),yt=ou(Ze.fixed-Me,lt,Ze.stretch,U),Gt=nu(ht.stretch-pe,ge,M,i.top),$i=ou(ht.fixed-pt,st,ht.stretch,Z),nr=nu(Ke.stretch-ue,re,T,i.left),Lr=ou(Ke.fixed-Me,lt,Ke.stretch,U),lo=nu(Re.stretch-pe,ge,M,i.top),Fn=ou(Re.fixed-pt,st,Re.stretch,Z),Cr=new ye(bt,Gt),Jr=new ye(nr,Gt),un=new ye(nr,lo),Rn=new ye(bt,lo),On=new ye(yt/p,$i/p),Dr=new ye(Lr/p,Fn/p),Fr=e*Math.PI/180;if(Fr){const bn=Math.sin(Fr),Jn=Math.cos(Fr),Yn=[Jn,-bn,bn,Jn];Cr._matMult(Yn),Jr._matMult(Yn),Rn._matMult(Yn),un._matMult(Yn)}const xn=Ze.stretch+Ze.fixed,Bn=ht.stretch+ht.fixed;return{tl:Cr,tr:Jr,bl:Rn,br:un,tex:{x:h.paddedRect.x+Tl+xn,y:h.paddedRect.y+Tl+Bn,w:Ke.stretch+Ke.fixed-xn,h:Re.stretch+Re.fixed-Bn},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:On,pixelOffsetBR:Dr,minFontScaleX:lt/p/T,minFontScaleY:st/p/M,isSDF:r}};if(o&&(h.stretchX||h.stretchY)){const Ze=tp(z,$,U),ht=tp(D,ie,Z);for(let Ke=0;Ke0&&(U=Math.max(10,U),this.circleDiameter=U)}else{let z=p.top*y-w[0],D=p.bottom*y+w[2],V=p.left*y-w[3],U=p.right*y+w[1];const Z=p.collisionPadding;if(Z&&(V-=Z[0]*y,z-=Z[1]*y,U+=Z[2]*y,D+=Z[3]*y),M){const $=new ye(V,z),ie=new ye(U,z),ue=new ye(V,D),re=new ye(U,D),pe=M*Math.PI/180;$._rotate(pe),ie._rotate(pe),ue._rotate(pe),re._rotate(pe),V=Math.min($.x,ie.x,ue.x,re.x),U=Math.max($.x,ie.x,ue.x,re.x),z=Math.min($.y,ie.y,ue.y,re.y),D=Math.max($.y,ie.y,ue.y,re.y)}e.emplaceBack(r.x,r.y,V,z,U,D,o,l,h)}this.boxEndIndex=e.length}}class qm{constructor(e=[],r=Zm){if(this.data=e,this.length=this.data.length,this.compare=r,this.length>0)for(let o=(this.length>>1)-1;o>=0;o--)this._down(o)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const e=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:r,compare:o}=this,l=r[e];for(;e>0;){const h=e-1>>1,p=r[h];if(o(l,p)>=0)break;r[e]=p,e=h}r[e]=l}_down(e){const{data:r,compare:o}=this,l=this.length>>1,h=r[e];for(;e=0)break;r[e]=y,e=p}r[e]=h}}function Zm(i,e){return ie?1:0}function Gm(i,e=1,r=!1){let o=1/0,l=1/0,h=-1/0,p=-1/0;const y=i[0];for(let V=0;Vh)&&(h=U.x),(!V||U.y>p)&&(p=U.y)}const w=Math.min(h-o,p-l);let T=w/2;const M=new qm([],Wm);if(w===0)return new ye(o,l);for(let V=o;Vz.d||!z.d)&&(z=V,r&&console.log("found best %d after %d probes",Math.round(1e4*V.d)/1e4,D)),V.max-z.d<=e||(T=V.h/2,M.push(new Il(V.p.x-T,V.p.y-T,T,i)),M.push(new Il(V.p.x+T,V.p.y-T,T,i)),M.push(new Il(V.p.x-T,V.p.y+T,T,i)),M.push(new Il(V.p.x+T,V.p.y+T,T,i)),D+=4)}return r&&(console.log(`num probes: ${D}`),console.log(`best distance: ${z.d}`)),z.p}function Wm(i,e){return e.max-i.max}function Il(i,e,r,o){this.p=new ye(i,e),this.h=r,this.d=function(l,h){let p=!1,y=1/0;for(let w=0;wl.y!=U.y>l.y&&l.x<(U.x-V.x)*(l.y-V.y)/(U.y-V.y)+V.x&&(p=!p),y=Math.min(y,Oh(l,V,U))}}return(p?1:-1)*Math.sqrt(y)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}var cn;s.aq=void 0,(cn=s.aq||(s.aq={}))[cn.center=1]="center",cn[cn.left=2]="left",cn[cn.right=3]="right",cn[cn.top=4]="top",cn[cn.bottom=5]="bottom",cn[cn["top-left"]=6]="top-left",cn[cn["top-right"]=7]="top-right",cn[cn["bottom-left"]=8]="bottom-left",cn[cn["bottom-right"]=9]="bottom-right";const za=7,th=Number.POSITIVE_INFINITY;function ip(i,e){return e[1]!==th?function(r,o,l){let h=0,p=0;switch(o=Math.abs(o),l=Math.abs(l),r){case"top-right":case"top-left":case"top":p=l-za;break;case"bottom-right":case"bottom-left":case"bottom":p=-l+za}switch(r){case"top-right":case"bottom-right":case"right":h=-o;break;case"top-left":case"bottom-left":case"left":h=o}return[h,p]}(i,e[0],e[1]):function(r,o){let l=0,h=0;o<0&&(o=0);const p=o/Math.SQRT2;switch(r){case"top-right":case"top-left":h=p-za;break;case"bottom-right":case"bottom-left":h=-p+za;break;case"bottom":h=-o+za;break;case"top":h=o-za}switch(r){case"top-right":case"bottom-right":l=-p;break;case"top-left":case"bottom-left":l=p;break;case"left":l=o;break;case"right":l=-o}return[l,h]}(i,e[0])}function rp(i,e,r){var o;const l=i.layout,h=(o=l.get("text-variable-anchor-offset"))===null||o===void 0?void 0:o.evaluate(e,{},r);if(h){const y=h.values,w=[];for(let T=0;TD*zr);M.startsWith("top")?z[1]-=za:M.startsWith("bottom")&&(z[1]+=za),w[T+1]=z}return new Tr(w)}const p=l.get("text-variable-anchor");if(p){let y;y=i._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[l.get("text-radial-offset").evaluate(e,{},r)*zr,th]:l.get("text-offset").evaluate(e,{},r).map(T=>T*zr);const w=[];for(const T of p)w.push(T,ip(T,y));return new Tr(w)}return null}function ih(i){switch(i){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function Hm(i,e,r,o,l,h,p,y,w,T,M){let z=h.textMaxSize.evaluate(e,{});z===void 0&&(z=p);const D=i.layers[0].layout,V=D.get("icon-offset").evaluate(e,{},M),U=op(r.horizontal),Z=p/24,$=i.tilePixelRatio*Z,ie=i.tilePixelRatio*z/24,ue=i.tilePixelRatio*y,re=i.tilePixelRatio*D.get("symbol-spacing"),pe=D.get("text-padding")*i.tilePixelRatio,ge=function(Re,bt,yt,Gt=1){const $i=Re.get("icon-padding").evaluate(bt,{},yt),nr=$i&&$i.values;return[nr[0]*Gt,nr[1]*Gt,nr[2]*Gt,nr[3]*Gt]}(D,e,M,i.tilePixelRatio),Me=D.get("text-max-angle")/180*Math.PI,lt=D.get("text-rotation-alignment")!=="viewport"&&D.get("symbol-placement")!=="point",pt=D.get("icon-rotation-alignment")==="map"&&D.get("symbol-placement")!=="point",st=D.get("symbol-placement"),$e=re/2,Ze=D.get("icon-text-fit");let ht;o&&Ze!=="none"&&(i.allowVerticalPlacement&&r.vertical&&(ht=Cd(o,r.vertical,Ze,D.get("icon-text-fit-padding"),V,Z)),U&&(o=Cd(o,U,Ze,D.get("icon-text-fit-padding"),V,Z)));const Ke=(Re,bt)=>{bt.x<0||bt.x>=Er||bt.y<0||bt.y>=Er||function(yt,Gt,$i,nr,Lr,lo,Fn,Cr,Jr,un,Rn,On,Dr,Fr,xn,Bn,bn,Jn,Yn,Rr,ni,wn,hn,Or,No){const Qo=yt.addToLineVertexArray(Gt,$i);let $o,js,Vo,vo,Qn=0,qs=0,fc=0,cp=0,uh=-1,hh=-1;const Zs={};let up=Bs("");if(yt.allowVerticalPlacement&&nr.vertical){const Sn=Cr.layout.get("text-rotate").evaluate(ni,{},Or)+90;Vo=new su(Jr,Gt,un,Rn,On,nr.vertical,Dr,Fr,xn,Sn),Fn&&(vo=new su(Jr,Gt,un,Rn,On,Fn,bn,Jn,xn,Sn))}if(Lr){const Sn=Cr.layout.get("icon-rotate").evaluate(ni,{}),xo=Cr.layout.get("icon-text-fit")!=="none",$a=ep(Lr,Sn,hn,xo),ts=Fn?ep(Fn,Sn,hn,xo):void 0;js=new su(Jr,Gt,un,Rn,On,Lr,bn,Jn,!1,Sn),Qn=4*$a.length;const el=yt.iconSizeData;let ys=null;el.kind==="source"?(ys=[gs*Cr.layout.get("icon-size").evaluate(ni,{})],ys[0]>Aa&&Dt(`${yt.layerIds[0]}: Value for "icon-size" is >= ${uc}. Reduce your "icon-size".`)):el.kind==="composite"&&(ys=[gs*wn.compositeIconSizes[0].evaluate(ni,{},Or),gs*wn.compositeIconSizes[1].evaluate(ni,{},Or)],(ys[0]>Aa||ys[1]>Aa)&&Dt(`${yt.layerIds[0]}: Value for "icon-size" is >= ${uc}. Reduce your "icon-size".`)),yt.addSymbols(yt.icon,$a,ys,Rr,Yn,ni,s.ai.none,Gt,Qo.lineStartIndex,Qo.lineLength,-1,Or),uh=yt.icon.placedSymbolArray.length-1,ts&&(qs=4*ts.length,yt.addSymbols(yt.icon,ts,ys,Rr,Yn,ni,s.ai.vertical,Gt,Qo.lineStartIndex,Qo.lineLength,-1,Or),hh=yt.icon.placedSymbolArray.length-1)}const hp=Object.keys(nr.horizontal);for(const Sn of hp){const xo=nr.horizontal[Sn];if(!$o){up=Bs(xo.text);const ts=Cr.layout.get("text-rotate").evaluate(ni,{},Or);$o=new su(Jr,Gt,un,Rn,On,xo,Dr,Fr,xn,ts)}const $a=xo.positionedLines.length===1;if(fc+=np(yt,Gt,xo,lo,Cr,xn,ni,Bn,Qo,nr.vertical?s.ai.horizontal:s.ai.horizontalOnly,$a?hp:[Sn],Zs,uh,wn,Or),$a)break}nr.vertical&&(cp+=np(yt,Gt,nr.vertical,lo,Cr,xn,ni,Bn,Qo,s.ai.vertical,["vertical"],Zs,hh,wn,Or));const Jm=$o?$o.boxStartIndex:yt.collisionBoxArray.length,Ym=$o?$o.boxEndIndex:yt.collisionBoxArray.length,Qm=Vo?Vo.boxStartIndex:yt.collisionBoxArray.length,$m=Vo?Vo.boxEndIndex:yt.collisionBoxArray.length,e_=js?js.boxStartIndex:yt.collisionBoxArray.length,t_=js?js.boxEndIndex:yt.collisionBoxArray.length,i_=vo?vo.boxStartIndex:yt.collisionBoxArray.length,r_=vo?vo.boxEndIndex:yt.collisionBoxArray.length;let es=-1;const lu=(Sn,xo)=>Sn&&Sn.circleDiameter?Math.max(Sn.circleDiameter,xo):xo;es=lu($o,es),es=lu(Vo,es),es=lu(js,es),es=lu(vo,es);const dp=es>-1?1:0;dp&&(es*=No/zr),yt.glyphOffsetArray.length>=Sl.MAX_GLYPHS&&Dt("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),ni.sortKey!==void 0&&yt.addToSortKeyRanges(yt.symbolInstances.length,ni.sortKey);const n_=rp(Cr,ni,Or),[o_,s_]=function(Sn,xo){const $a=Sn.length,ts=xo==null?void 0:xo.values;if((ts==null?void 0:ts.length)>0)for(let el=0;el=0?Zs.right:-1,Zs.center>=0?Zs.center:-1,Zs.left>=0?Zs.left:-1,Zs.vertical||-1,uh,hh,up,Jm,Ym,Qm,$m,e_,t_,i_,r_,un,fc,cp,Qn,qs,dp,0,Dr,es,o_,s_)}(i,bt,Re,r,o,l,ht,i.layers[0],i.collisionBoxArray,e.index,e.sourceLayerIndex,i.index,$,[pe,pe,pe,pe],lt,w,ue,ge,pt,V,e,h,T,M,p)};if(st==="line")for(const Re of Xd(e.geometry,0,0,Er,Er)){const bt=jm(Re,re,Me,r.vertical||U,o,24,ie,i.overscaling,Er);for(const yt of bt)U&&Xm(i,U.text,$e,yt)||Ke(Re,yt)}else if(st==="line-center"){for(const Re of e.geometry)if(Re.length>1){const bt=Um(Re,Me,r.vertical||U,o,24,ie);bt&&Ke(Re,bt)}}else if(e.type==="Polygon")for(const Re of Du(e.geometry,0)){const bt=Gm(Re,16);Ke(Re[0],new Pa(bt.x,bt.y,0))}else if(e.type==="LineString")for(const Re of e.geometry)Ke(Re,new Pa(Re[0].x,Re[0].y,0));else if(e.type==="Point")for(const Re of e.geometry)for(const bt of Re)Ke([bt],new Pa(bt.x,bt.y,0))}function np(i,e,r,o,l,h,p,y,w,T,M,z,D,V,U){const Z=function(ue,re,pe,ge,Me,lt,pt,st){const $e=ge.layout.get("text-rotate").evaluate(lt,{})*Math.PI/180,Ze=[];for(const ht of re.positionedLines)for(const Ke of ht.positionedGlyphs){if(!Ke.rect)continue;const Re=Ke.rect||{};let bt=xd+1,yt=!0,Gt=1,$i=0;const nr=(Me||st)&&Ke.vertical,Lr=Ke.metrics.advance*Ke.scale/2;if(st&&re.verticalizable&&($i=ht.lineOffset/2-(Ke.imageName?-(zr-Ke.metrics.width*Ke.scale)/2:(Ke.scale-1)*zr)),Ke.imageName){const Rr=pt[Ke.imageName];yt=Rr.sdf,Gt=Rr.pixelRatio,bt=Kn/Gt}const lo=Me?[Ke.x+Lr,Ke.y]:[0,0];let Fn=Me?[0,0]:[Ke.x+Lr+pe[0],Ke.y+pe[1]-$i],Cr=[0,0];nr&&(Cr=Fn,Fn=[0,0]);const Jr=Ke.metrics.isDoubleResolution?2:1,un=(Ke.metrics.left-bt)*Ke.scale-Lr+Fn[0],Rn=(-Ke.metrics.top-bt)*Ke.scale+Fn[1],On=un+Re.w/Jr*Ke.scale/Gt,Dr=Rn+Re.h/Jr*Ke.scale/Gt,Fr=new ye(un,Rn),xn=new ye(On,Rn),Bn=new ye(un,Dr),bn=new ye(On,Dr);if(nr){const Rr=new ye(-Lr,Lr-lc),ni=-Math.PI/2,wn=zr/2-Lr,hn=new ye(5-lc-wn,-(Ke.imageName?wn:0)),Or=new ye(...Cr);Fr._rotateAround(ni,Rr)._add(hn)._add(Or),xn._rotateAround(ni,Rr)._add(hn)._add(Or),Bn._rotateAround(ni,Rr)._add(hn)._add(Or),bn._rotateAround(ni,Rr)._add(hn)._add(Or)}if($e){const Rr=Math.sin($e),ni=Math.cos($e),wn=[ni,-Rr,Rr,ni];Fr._matMult(wn),xn._matMult(wn),Bn._matMult(wn),bn._matMult(wn)}const Jn=new ye(0,0),Yn=new ye(0,0);Ze.push({tl:Fr,tr:xn,bl:Bn,br:bn,tex:Re,writingMode:re.writingMode,glyphOffset:lo,sectionIndex:Ke.sectionIndex,isSDF:yt,pixelOffsetTL:Jn,pixelOffsetBR:Yn,minFontScaleX:0,minFontScaleY:0})}return Ze}(0,r,y,l,h,p,o,i.allowVerticalPlacement),$=i.textSizeData;let ie=null;$.kind==="source"?(ie=[gs*l.layout.get("text-size").evaluate(p,{})],ie[0]>Aa&&Dt(`${i.layerIds[0]}: Value for "text-size" is >= ${uc}. Reduce your "text-size".`)):$.kind==="composite"&&(ie=[gs*V.compositeTextSizes[0].evaluate(p,{},U),gs*V.compositeTextSizes[1].evaluate(p,{},U)],(ie[0]>Aa||ie[1]>Aa)&&Dt(`${i.layerIds[0]}: Value for "text-size" is >= ${uc}. Reduce your "text-size".`)),i.addSymbols(i.text,Z,ie,y,h,p,T,e,w.lineStartIndex,w.lineLength,D,U);for(const ue of M)z[ue]=i.text.placedSymbolArray.length-1;return 4*Z.length}function op(i){for(const e in i)return i[e];return null}function Xm(i,e,r,o){const l=i.compareText;if(e in l){const h=l[e];for(let p=h.length-1;p>=0;p--)if(o.dist(h[p])>4;if(l!==1)throw new Error(`Got v${l} data when expected v1.`);const h=sp[15&o];if(!h)throw new Error("Unrecognized array type.");const[p]=new Uint16Array(e,2,1),[y]=new Uint32Array(e,4,1);return new rh(y,p,h,e)}constructor(e,r=64,o=Float64Array,l){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=o,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const h=sp.indexOf(this.ArrayType),p=2*e*this.ArrayType.BYTES_PER_ELEMENT,y=e*this.IndexArrayType.BYTES_PER_ELEMENT,w=(8-y%8)%8;if(h<0)throw new Error(`Unexpected typed array class: ${o}.`);l&&l instanceof ArrayBuffer?(this.data=l,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+p+y+w),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+h]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=e)}add(e,r){const o=this._pos>>1;return this.ids[o]=o,this.coords[this._pos++]=e,this.coords[this._pos++]=r,o}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return nh(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,r,o,l){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:h,coords:p,nodeSize:y}=this,w=[0,h.length-1,0],T=[];for(;w.length;){const M=w.pop()||0,z=w.pop()||0,D=w.pop()||0;if(z-D<=y){for(let $=D;$<=z;$++){const ie=p[2*$],ue=p[2*$+1];ie>=e&&ie<=o&&ue>=r&&ue<=l&&T.push(h[$])}continue}const V=D+z>>1,U=p[2*V],Z=p[2*V+1];U>=e&&U<=o&&Z>=r&&Z<=l&&T.push(h[V]),(M===0?e<=U:r<=Z)&&(w.push(D),w.push(V-1),w.push(1-M)),(M===0?o>=U:l>=Z)&&(w.push(V+1),w.push(z),w.push(1-M))}return T}within(e,r,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:l,coords:h,nodeSize:p}=this,y=[0,l.length-1,0],w=[],T=o*o;for(;y.length;){const M=y.pop()||0,z=y.pop()||0,D=y.pop()||0;if(z-D<=p){for(let $=D;$<=z;$++)lp(h[2*$],h[2*$+1],e,r)<=T&&w.push(l[$]);continue}const V=D+z>>1,U=h[2*V],Z=h[2*V+1];lp(U,Z,e,r)<=T&&w.push(l[V]),(M===0?e-o<=U:r-o<=Z)&&(y.push(D),y.push(V-1),y.push(1-M)),(M===0?e+o>=U:r+o>=Z)&&(y.push(V+1),y.push(z),y.push(1-M))}return w}}function nh(i,e,r,o,l,h){if(l-o<=r)return;const p=o+l>>1;ap(i,e,p,o,l,h),nh(i,e,r,o,p-1,1-h),nh(i,e,r,p+1,l,1-h)}function ap(i,e,r,o,l,h){for(;l>o;){if(l-o>600){const T=l-o+1,M=r-o+1,z=Math.log(T),D=.5*Math.exp(2*z/3),V=.5*Math.sqrt(z*D*(T-D)/T)*(M-T/2<0?-1:1);ap(i,e,r,Math.max(o,Math.floor(r-M*D/T+V)),Math.min(l,Math.floor(r+(T-M)*D/T+V)),h)}const p=e[2*r+h];let y=o,w=l;for(dc(i,e,o,r),e[2*l+h]>p&&dc(i,e,o,l);yp;)w--}e[2*o+h]===p?dc(i,e,o,w):(w++,dc(i,e,w,l)),w<=r&&(o=w+1),r<=w&&(l=w-1)}}function dc(i,e,r,o){oh(i,r,o),oh(e,2*r,2*o),oh(e,2*r+1,2*o+1)}function oh(i,e,r){const o=i[e];i[e]=i[r],i[r]=o}function lp(i,e,r,o){const l=i-r,h=e-o;return l*l+h*h}var sh;s.bh=void 0,(sh=s.bh||(s.bh={})).create="create",sh.load="load",sh.fullLoad="fullLoad";let au=null,pc=[];const ah=1e3/60,lh="loadTime",ch="fullLoadTime",Km={mark(i){performance.mark(i)},frame(i){const e=i;au!=null&&pc.push(e-au),au=e},clearMetrics(){au=null,pc=[],performance.clearMeasures(lh),performance.clearMeasures(ch);for(const i in s.bh)performance.clearMarks(s.bh[i])},getPerformanceMetrics(){performance.measure(lh,s.bh.create,s.bh.load),performance.measure(ch,s.bh.create,s.bh.fullLoad);const i=performance.getEntriesByName(lh)[0].duration,e=performance.getEntriesByName(ch)[0].duration,r=pc.length,o=1/(pc.reduce((h,p)=>h+p,0)/r/1e3),l=pc.filter(h=>h>ah).reduce((h,p)=>h+(p-ah)/ah,0);return{loadTime:i,fullLoadTime:e,fps:o,percentDroppedFrames:l/(r+l)*100,totalFrames:r}}};s.$=function(i,e,r){var o,l,h,p,y,w,T,M,z,D,V,U,Z=r[0],$=r[1],ie=r[2];return e===i?(i[12]=e[0]*Z+e[4]*$+e[8]*ie+e[12],i[13]=e[1]*Z+e[5]*$+e[9]*ie+e[13],i[14]=e[2]*Z+e[6]*$+e[10]*ie+e[14],i[15]=e[3]*Z+e[7]*$+e[11]*ie+e[15]):(l=e[1],h=e[2],p=e[3],y=e[4],w=e[5],T=e[6],M=e[7],z=e[8],D=e[9],V=e[10],U=e[11],i[0]=o=e[0],i[1]=l,i[2]=h,i[3]=p,i[4]=y,i[5]=w,i[6]=T,i[7]=M,i[8]=z,i[9]=D,i[10]=V,i[11]=U,i[12]=o*Z+y*$+z*ie+e[12],i[13]=l*Z+w*$+D*ie+e[13],i[14]=h*Z+T*$+V*ie+e[14],i[15]=p*Z+M*$+U*ie+e[15]),i},s.A=gl,s.B=Wr,s.C=class{constructor(i,e,r){this.receive=o=>{const l=o.data,h=l.id;if(h&&(!l.targetMapId||this.mapId===l.targetMapId))if(l.type===""){delete this.tasks[h];const p=this.cancelCallbacks[h];delete this.cancelCallbacks[h],p&&p()}else di()||l.mustQueue?(this.tasks[h]=l,this.taskQueue.push(h),this.invoker.trigger()):this.processTask(h,l)},this.process=()=>{if(!this.taskQueue.length)return;const o=this.taskQueue.shift(),l=this.tasks[o];delete this.tasks[o],this.taskQueue.length&&this.invoker.trigger(),l&&this.processTask(o,l)},this.target=i,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},this.invoker=new Nm(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=di()?i:window}send(i,e,r,o,l=!1){const h=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(this.callbacks[h]=r);const p=[],y={id:h,type:i,hasCallback:!!r,targetMapId:o,mustQueue:l,sourceMapId:this.mapId,data:Pn(e,p)};return this.target.postMessage(y,{transfer:p}),{cancel:()=>{r&&delete this.callbacks[h],this.target.postMessage({id:h,type:"",targetMapId:o,sourceMapId:this.mapId})}}}processTask(i,e){if(e.type===""){const r=this.callbacks[i];delete this.callbacks[i],r&&(e.error?r(_o(e.error)):r(null,_o(e.data)))}else{let r=!1;const o=[],l=e.hasCallback?(y,w)=>{r=!0,delete this.cancelCallbacks[i];const T={id:i,type:"",sourceMapId:this.mapId,error:y?Pn(y):null,data:Pn(w,o)};this.target.postMessage(T,{transfer:o})}:y=>{r=!0};let h=null;const p=_o(e.data);if(this.parent[e.type])h=this.parent[e.type](e.sourceMapId,p,l);else if("getWorkerSource"in this.parent){const y=e.type.split(".");h=this.parent.getWorkerSource(e.sourceMapId,y[0],p.source)[y[1]](p,l)}else l(new Error(`Could not find function ${e.type}`));!r&&h&&h.cancel&&(this.cancelCallbacks[i]=h.cancel)}}remove(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)}},s.D=xt,s.E=jo,s.F=function(i,e){const r={};for(let o=0;o{}}},s.Y=qe,s.Z=function(){var i=new gl(16);return gl!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0),i[0]=1,i[5]=1,i[10]=1,i[15]=1,i},s._=H,s.a=$r,s.a$=class extends R{},s.a0=function(i,e,r){var o=r[0],l=r[1],h=r[2];return i[0]=e[0]*o,i[1]=e[1]*o,i[2]=e[2]*o,i[3]=e[3]*o,i[4]=e[4]*l,i[5]=e[5]*l,i[6]=e[6]*l,i[7]=e[7]*l,i[8]=e[8]*h,i[9]=e[9]*h,i[10]=e[10]*h,i[11]=e[11]*h,i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15],i},s.a1=Uh,s.a2=function(){return Jt++},s.a3=K,s.a4=Sl,s.a5=function(){Hn.isLoading()||Hn.isLoaded()||Ul()!=="deferred"||Fc()},s.a6=_a,s.a7=Ya,s.a8=Yi,s.a9=Zd,s.aA=Ga,s.aB=function(i){i=i.slice();const e=Object.create(null);for(let r=0;r{o[p.source]?r.push({command:ti.removeLayer,args:[p.id]}):h.push(p)}),r=r.concat(l),function(p,y,w){y=y||[];const T=(p=p||[]).map(Cn),M=y.map(Cn),z=p.reduce($n,{}),D=y.reduce($n,{}),V=T.slice(),U=Object.create(null);let Z,$,ie,ue,re,pe,ge;for(Z=0,$=0;Z@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(r,o,l,h)=>{const p=l||h;return e[o]=!p||p.toLowerCase(),""}),e["max-age"]){const r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e},s.ab=function(i,e){const r=[];for(const o in i)o in e||r.push(o);return r},s.ac=function(i){if(Pi==null){const e=i.navigator?i.navigator.userAgent:null;Pi=!!i.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return Pi},s.ad=ei,s.ae=function(i,e,r){var o=Math.sin(r),l=Math.cos(r),h=e[0],p=e[1],y=e[2],w=e[3],T=e[4],M=e[5],z=e[6],D=e[7];return e!==i&&(i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15]),i[0]=h*l+T*o,i[1]=p*l+M*o,i[2]=y*l+z*o,i[3]=w*l+D*o,i[4]=T*l-h*o,i[5]=M*l-p*o,i[6]=z*l-y*o,i[7]=D*l-w*o,i},s.af=function(i){var e=new gl(16);return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],e},s.ag=Gc,s.ah=function(i,e){let r=0,o=0;if(i.kind==="constant")o=i.layoutSize;else if(i.kind!=="source"){const{interpolationType:l,minZoom:h,maxZoom:p}=i,y=l?ei(on.interpolationFactor(l,e,h,p),0,1):0;i.kind==="camera"?o=Wr.number(i.minSize,i.maxSize,y):r=y}return{uSizeT:r,uSize:o}},s.aj=function(i,{uSize:e,uSizeT:r},{lowerSize:o,upperSize:l}){return i.kind==="source"?o/gs:i.kind==="composite"?Wr.number(o/gs,l/gs,r):e},s.ak=Xu,s.al=function(i,e,r,o){const l=e.y-i.y,h=e.x-i.x,p=o.y-r.y,y=o.x-r.x,w=p*h-y*l;if(w===0)return null;const T=(y*(i.y-r.y)-p*(i.x-r.x))/w;return new ye(i.x+T*h,i.y+T*l)},s.am=Xd,s.an=Fh,s.ao=Cu,s.ap=zr,s.ar=Hu,s.as=function(i,e){var r=e[0],o=e[1],l=e[2],h=e[3],p=e[4],y=e[5],w=e[6],T=e[7],M=e[8],z=e[9],D=e[10],V=e[11],U=e[12],Z=e[13],$=e[14],ie=e[15],ue=r*y-o*p,re=r*w-l*p,pe=r*T-h*p,ge=o*w-l*y,Me=o*T-h*y,lt=l*T-h*w,pt=M*Z-z*U,st=M*$-D*U,$e=M*ie-V*U,Ze=z*$-D*Z,ht=z*ie-V*Z,Ke=D*ie-V*$,Re=ue*Ke-re*ht+pe*Ze+ge*$e-Me*st+lt*pt;return Re?(i[0]=(y*Ke-w*ht+T*Ze)*(Re=1/Re),i[1]=(l*ht-o*Ke-h*Ze)*Re,i[2]=(Z*lt-$*Me+ie*ge)*Re,i[3]=(D*Me-z*lt-V*ge)*Re,i[4]=(w*$e-p*Ke-T*st)*Re,i[5]=(r*Ke-l*$e+h*st)*Re,i[6]=($*pe-U*lt-ie*re)*Re,i[7]=(M*lt-D*pe+V*re)*Re,i[8]=(p*ht-y*$e+T*pt)*Re,i[9]=(o*$e-r*ht-h*pt)*Re,i[10]=(U*Me-Z*pe+ie*ue)*Re,i[11]=(z*pe-M*Me-V*ue)*Re,i[12]=(y*st-p*Ze-w*pt)*Re,i[13]=(r*Ze-o*st+l*pt)*Re,i[14]=(Z*re-U*ge-$*ue)*Re,i[15]=(M*ge-z*re+D*ue)*Re,i):null},s.at=ih,s.au=Wu,s.av=rh,s.aw=function(){const i={},e=Se.$version;for(const r in Se.$root){const o=Se.$root[r];if(o.required){let l=null;l=r==="version"?e:o.type==="array"?[]:{},l!=null&&(i[r]=l)}}return i},s.ax=ti,s.ay=Jo,s.az=Zt,s.b=function(i,e){const r=new Blob([new Uint8Array(i)],{type:"image/png"});createImageBitmap(r).then(o=>{e(null,o)}).catch(o=>{e(new Error(`Could not load image because of ${o.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})},s.b0=Xr,s.b1=function(i,e){var r=i[0],o=i[1],l=i[2],h=i[3],p=i[4],y=i[5],w=i[6],T=i[7],M=i[8],z=i[9],D=i[10],V=i[11],U=i[12],Z=i[13],$=i[14],ie=i[15],ue=e[0],re=e[1],pe=e[2],ge=e[3],Me=e[4],lt=e[5],pt=e[6],st=e[7],$e=e[8],Ze=e[9],ht=e[10],Ke=e[11],Re=e[12],bt=e[13],yt=e[14],Gt=e[15];return Math.abs(r-ue)<=Dn*Math.max(1,Math.abs(r),Math.abs(ue))&&Math.abs(o-re)<=Dn*Math.max(1,Math.abs(o),Math.abs(re))&&Math.abs(l-pe)<=Dn*Math.max(1,Math.abs(l),Math.abs(pe))&&Math.abs(h-ge)<=Dn*Math.max(1,Math.abs(h),Math.abs(ge))&&Math.abs(p-Me)<=Dn*Math.max(1,Math.abs(p),Math.abs(Me))&&Math.abs(y-lt)<=Dn*Math.max(1,Math.abs(y),Math.abs(lt))&&Math.abs(w-pt)<=Dn*Math.max(1,Math.abs(w),Math.abs(pt))&&Math.abs(T-st)<=Dn*Math.max(1,Math.abs(T),Math.abs(st))&&Math.abs(M-$e)<=Dn*Math.max(1,Math.abs(M),Math.abs($e))&&Math.abs(z-Ze)<=Dn*Math.max(1,Math.abs(z),Math.abs(Ze))&&Math.abs(D-ht)<=Dn*Math.max(1,Math.abs(D),Math.abs(ht))&&Math.abs(V-Ke)<=Dn*Math.max(1,Math.abs(V),Math.abs(Ke))&&Math.abs(U-Re)<=Dn*Math.max(1,Math.abs(U),Math.abs(Re))&&Math.abs(Z-bt)<=Dn*Math.max(1,Math.abs(Z),Math.abs(bt))&&Math.abs($-yt)<=Dn*Math.max(1,Math.abs($),Math.abs(yt))&&Math.abs(ie-Gt)<=Dn*Math.max(1,Math.abs(ie),Math.abs(Gt))},s.b2=function(i,e){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15],i},s.b3=function(i,e,r){return i[0]=e[0]*r[0],i[1]=e[1]*r[1],i[2]=e[2]*r[2],i[3]=e[3]*r[3],i},s.b4=function(i,e){return i[0]*e[0]+i[1]*e[1]+i[2]*e[2]+i[3]*e[3]},s.b5=Ht,s.b6=Ud,s.b7=Bd,s.b8=function(i,e,r,o,l){var h,p=1/Math.tan(e/2);return i[0]=p/r,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,l!=null&&l!==1/0?(i[10]=(l+o)*(h=1/(o-l)),i[14]=2*l*o*h):(i[10]=-1,i[14]=-2*o),i},s.b9=function(i,e,r){var o=Math.sin(r),l=Math.cos(r),h=e[4],p=e[5],y=e[6],w=e[7],T=e[8],M=e[9],z=e[10],D=e[11];return e!==i&&(i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15]),i[4]=h*l+T*o,i[5]=p*l+M*o,i[6]=y*l+z*o,i[7]=w*l+D*o,i[8]=T*l-h*o,i[9]=M*l-p*o,i[10]=z*l-y*o,i[11]=D*l-w*o,i},s.bA=_e,s.bB=pd,s.bC=fa,s.bD=Hn,s.ba=it,s.bb=Vt,s.bc=function(i,e){return i[0]=e[0],i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=e[1],i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=e[2],i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i},s.bd=class extends Ka{},s.be=Qu,s.bf=Nd,s.bg=Km,s.bi=He,s.bj=function(i,e,r=!1){if(zn===Rl||zn===Ol||zn===Bl)throw new Error("setRTLTextPlugin cannot be called multiple times.");ms=ze.resolveURL(i),zn=Rl,Nl=e,Vl(),r||Fc()},s.bk=Ul,s.bl=function(i,e){const r={};for(let l=0;lRe*zr)}let st=p?"center":r.get("text-justify").evaluate(T,{},i.canonical);const $e=r.get("symbol-placement"),Ze=$e==="point"?r.get("text-max-width").evaluate(T,{},i.canonical)*zr:0,ht=()=>{i.bucket.allowVerticalPlacement&&wa(pe)&&(U.vertical=Qc(Z,i.glyphMap,i.glyphPositions,i.imagePositions,M,Ze,h,lt,"left",Me,ie,s.ai.vertical,!0,$e,D,z))};if(!p&&pt){const Ke=new Set;if(st==="auto")for(let bt=0;bt{e(null,r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>{r.src=Nr})},r.onerror=()=>e(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 o=new Blob([new Uint8Array(i)],{type:"image/png"});r.src=i.byteLength?URL.createObjectURL(o):Nr},s.e=Nt,s.f=function(i,e){return _r(Nt(i,{type:"json"}),e)},s.g=ct,s.h=ze,s.i=di,s.j=wo,s.k=co,s.l=Ue,s.m=_r,s.n=function(i){return new ju(i).readFields(Tm,[])},s.o=function(i,e,r){if(!i.length)return r(null,[]);let o=i.length;const l=new Array(i.length);let h=null;i.forEach((p,y)=>{e(p,(w,T)=>{w&&(h=w),l[y]=T,--o==0&&r(h,l)})})},s.p=bd,s.q=ec,s.r=xr,s.s=Bi,s.t=Li,s.u=Xe,s.v=Se,s.w=Dt,s.x=Gn,s.y=mo,s.z=function([i,e,r]){return e+=90,e*=Math.PI/180,r*=Math.PI/180,{x:i*Math.cos(e)*Math.sin(r),y:i*Math.sin(e)*Math.sin(r),z:i*Math.cos(r)}}}),k(["./shared"],function(s){class H{constructor(L){this.keyCache={},L&&this.replace(L)}replace(L){this._layerConfigs={},this._layers={},this.update(L,[])}update(L,F){for(const J of L){this._layerConfigs[J.id]=J;const Q=this._layers[J.id]=s.aC(J);Q._featureFilter=s.a6(Q.filter),this.keyCache[J.id]&&delete this.keyCache[J.id]}for(const J of F)delete this.keyCache[J],delete this._layerConfigs[J],delete this._layers[J];this.familiesBySource={};const j=s.bl(Object.values(this._layerConfigs),this.keyCache);for(const J of j){const Q=J.map(Ie=>this._layers[Ie.id]),he=Q[0];if(he.visibility==="none")continue;const oe=he.source||"";let te=this.familiesBySource[oe];te||(te=this.familiesBySource[oe]={});const ae=he.sourceLayer||"_geojsonTileLayer";let Te=te[ae];Te||(Te=te[ae]=[]),Te.push(Q)}}}class N{constructor(L){const F={},j=[];for(const oe in L){const te=L[oe],ae=F[oe]={};for(const Te in te){const Ie=te[+Te];if(!Ie||Ie.bitmap.width===0||Ie.bitmap.height===0)continue;const Ee={x:0,y:0,w:Ie.bitmap.width+2,h:Ie.bitmap.height+2};j.push(Ee),ae[Te]={rect:Ee,metrics:Ie.metrics}}}const{w:J,h:Q}=s.p(j),he=new s.q({width:J||1,height:Q||1});for(const oe in L){const te=L[oe];for(const ae in te){const Te=te[+ae];if(!Te||Te.bitmap.width===0||Te.bitmap.height===0)continue;const Ie=F[oe][ae].rect;s.q.copy(Te.bitmap,he,{x:0,y:0},{x:Ie.x+1,y:Ie.y+1},Te.bitmap)}}this.image=he,this.positions=F}}s.bm("GlyphAtlas",N);class _e{constructor(L){this.tileID=new s.O(L.tileID.overscaledZ,L.tileID.wrap,L.tileID.canonical.z,L.tileID.canonical.x,L.tileID.canonical.y),this.uid=L.uid,this.zoom=L.zoom,this.pixelRatio=L.pixelRatio,this.tileSize=L.tileSize,this.source=L.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=L.showCollisionBoxes,this.collectResourceTiming=!!L.collectResourceTiming,this.returnDependencies=!!L.returnDependencies,this.promoteId=L.promoteId,this.inFlightDependencies=[],this.dependencySentinel=-1}parse(L,F,j,J,Q){this.status="parsing",this.data=L,this.collisionBoxArray=new s.a3;const he=new s.bn(Object.keys(L.layers).sort()),oe=new s.bo(this.tileID,this.promoteId);oe.bucketLayerIDs=[];const te={},ae={featureIndex:oe,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:j},Te=F.familiesBySource[this.source];for(const si in Te){const ii=L.layers[si];if(!ii)continue;ii.version===1&&s.w(`Vector tile source "${this.source}" layer "${si}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const Ur=he.encode(si),Ei=[];for(let ur=0;ur=yr.maxzoom||yr.visibility!=="none"&&(be(ur,this.zoom,j),(te[yr.id]=yr.createBucket({index:oe.bucketLayerIDs.length,layers:ur,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Ur,sourceID:this.source})).populate(Ei,ae,this.tileID.canonical),oe.bucketLayerIDs.push(ur.map(An=>An.id)))}}let Ie,Ee,mt,kt;const ut=s.aH(ae.glyphDependencies,si=>Object.keys(si).map(Number));this.inFlightDependencies.forEach(si=>si==null?void 0:si.cancel()),this.inFlightDependencies=[];const vt=++this.dependencySentinel;Object.keys(ut).length?this.inFlightDependencies.push(J.send("getGlyphs",{uid:this.uid,stacks:ut,source:this.source,tileID:this.tileID,type:"glyphs"},(si,ii)=>{vt===this.dependencySentinel&&(Ie||(Ie=si,Ee=ii,Ut.call(this)))})):Ee={};const Ft=Object.keys(ae.iconDependencies);Ft.length?this.inFlightDependencies.push(J.send("getImages",{icons:Ft,source:this.source,tileID:this.tileID,type:"icons"},(si,ii)=>{vt===this.dependencySentinel&&(Ie||(Ie=si,mt=ii,Ut.call(this)))})):mt={};const mi=Object.keys(ae.patternDependencies);function Ut(){if(Ie)return Q(Ie);if(Ee&&mt&&kt){const si=new N(Ee),ii=new s.bp(mt,kt);for(const Ur in te){const Ei=te[Ur];Ei instanceof s.a4?(be(Ei.layers,this.zoom,j),s.bq({bucket:Ei,glyphMap:Ee,glyphPositions:si.positions,imageMap:mt,imagePositions:ii.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Ei.hasPattern&&(Ei instanceof s.br||Ei instanceof s.bs||Ei instanceof s.bt)&&(be(Ei.layers,this.zoom,j),Ei.addFeatures(ae,this.tileID.canonical,ii.patternPositions))}this.status="done",Q(null,{buckets:Object.values(te).filter(Ur=>!Ur.isEmpty()),featureIndex:oe,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:si.image,imageAtlas:ii,glyphMap:this.returnDependencies?Ee:null,iconMap:this.returnDependencies?mt:null,glyphPositions:this.returnDependencies?si.positions:null})}}mi.length?this.inFlightDependencies.push(J.send("getImages",{icons:mi,source:this.source,tileID:this.tileID,type:"patterns"},(si,ii)=>{vt===this.dependencySentinel&&(Ie||(Ie=si,kt=ii,Ut.call(this)))})):kt={},Ut.call(this)}}function be(X,L,F){const j=new s.a8(L);for(const J of X)J.recalculate(j,F)}function ye(X,L){const F=s.l(X.request,(j,J,Q,he)=>{if(j)L(j);else if(J)try{const oe=new s.bw.VectorTile(new s.bv(J));L(null,{vectorTile:oe,rawData:J,cacheControl:Q,expires:he})}catch(oe){const te=new Uint8Array(J);let ae=`Unable to parse the tile at ${X.request.url}, `;ae+=te[0]===31&&te[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${oe.messge}`,L(new Error(ae))}});return()=>{F.cancel(),L()}}class Oe{constructor(L,F,j,J){this.actor=L,this.layerIndex=F,this.availableImages=j,this.loadVectorData=J||ye,this.fetching={},this.loading={},this.loaded={}}loadTile(L,F){const j=L.uid;this.loading||(this.loading={});const J=!!(L&&L.request&&L.request.collectResourceTiming)&&new s.bu(L.request),Q=this.loading[j]=new _e(L);Q.abort=this.loadVectorData(L,(he,oe)=>{if(delete this.loading[j],he||!oe)return Q.status="done",this.loaded[j]=Q,F(he);const te=oe.rawData,ae={};oe.expires&&(ae.expires=oe.expires),oe.cacheControl&&(ae.cacheControl=oe.cacheControl);const Te={};if(J){const Ie=J.finish();Ie&&(Te.resourceTiming=JSON.parse(JSON.stringify(Ie)))}Q.vectorTile=oe.vectorTile,Q.parse(oe.vectorTile,this.layerIndex,this.availableImages,this.actor,(Ie,Ee)=>{if(delete this.fetching[j],Ie||!Ee)return F(Ie);F(null,s.e({rawTileData:te.slice(0)},Ee,ae,Te))}),this.loaded=this.loaded||{},this.loaded[j]=Q,this.fetching[j]={rawTileData:te,cacheControl:ae,resourceTiming:Te}})}reloadTile(L,F){const j=this.loaded,J=L.uid;if(j&&j[J]){const Q=j[J];Q.showCollisionBoxes=L.showCollisionBoxes,Q.status==="parsing"?Q.parse(Q.vectorTile,this.layerIndex,this.availableImages,this.actor,(he,oe)=>{if(he||!oe)return F(he,oe);let te;if(this.fetching[J]){const{rawTileData:ae,cacheControl:Te,resourceTiming:Ie}=this.fetching[J];delete this.fetching[J],te=s.e({rawTileData:ae.slice(0)},oe,Te,Ie)}else te=oe;F(null,te)}):Q.status==="done"&&(Q.vectorTile?Q.parse(Q.vectorTile,this.layerIndex,this.availableImages,this.actor,F):F())}}abortTile(L,F){const j=this.loading,J=L.uid;j&&j[J]&&j[J].abort&&(j[J].abort(),delete j[J]),F()}removeTile(L,F){const j=this.loaded,J=L.uid;j&&j[J]&&delete j[J],F()}}class Le{constructor(){this.loaded={}}loadTile(L,F){return s._(this,void 0,void 0,function*(){const{uid:j,encoding:J,rawImageData:Q,redFactor:he,greenFactor:oe,blueFactor:te,baseShift:ae}=L,Te=Q.width+2,Ie=Q.height+2,Ee=s.a(Q)?new s.R({width:Te,height:Ie},yield s.bx(Q,-1,-1,Te,Ie)):Q,mt=new s.by(j,Ee,J,he,oe,te,ae);this.loaded=this.loaded||{},this.loaded[j]=mt,F(null,mt)})}removeTile(L){const F=this.loaded,j=L.uid;F&&F[j]&&delete F[j]}}function Be(X,L){if(X.length!==0){Ne(X[0],L);for(var F=1;F=Math.abs(oe)?F-te+oe:oe-te+F,F=te}F+j>=0!=!!L&&X.reverse()}var et=s.bz(function X(L,F){var j,J=L&&L.type;if(J==="FeatureCollection")for(j=0;j>31}function di(X,L){for(var F=X.loadGeometry(),j=X.type,J=0,Q=0,he=F.length,oe=0;oeX},zi=Math.fround||(Ti=new Float32Array(1),X=>(Ti[0]=+X,Ti[0]));var Ti;const Tt=3,pi=5,Oi=6;class ze{constructor(L){this.options=Object.assign(Object.create(Nr),L),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(L){const{log:F,minZoom:j,maxZoom:J}=this.options;F&&console.time("total time");const Q=`prepare ${L.length} points`;F&&console.time(Q),this.points=L;const he=[];for(let te=0;te=j;te--){const ae=+Date.now();oe=this.trees[te]=this._createTree(this._cluster(oe,te)),F&&console.log("z%d: %d clusters in %dms",te,oe.numItems,+Date.now()-ae)}return F&&console.timeEnd("total time"),this}getClusters(L,F){let j=((L[0]+180)%360+360)%360-180;const J=Math.max(-90,Math.min(90,L[1]));let Q=L[2]===180?180:((L[2]+180)%360+360)%360-180;const he=Math.max(-90,Math.min(90,L[3]));if(L[2]-L[0]>=360)j=-180,Q=180;else if(j>Q){const Ie=this.getClusters([j,J,180,he],F),Ee=this.getClusters([-180,J,Q,he],F);return Ie.concat(Ee)}const oe=this.trees[this._limitZoom(F)],te=oe.range(Zt(j),ct(he),Zt(Q),ct(J)),ae=oe.data,Te=[];for(const Ie of te){const Ee=this.stride*Ie;Te.push(ae[Ee+pi]>1?Pt(ae,Ee,this.clusterProps):this.points[ae[Ee+Tt]])}return Te}getChildren(L){const F=this._getOriginId(L),j=this._getOriginZoom(L),J="No cluster with the specified id.",Q=this.trees[j];if(!Q)throw new Error(J);const he=Q.data;if(F*this.stride>=he.length)throw new Error(J);const oe=this.options.radius/(this.options.extent*Math.pow(2,j-1)),te=Q.within(he[F*this.stride],he[F*this.stride+1],oe),ae=[];for(const Te of te){const Ie=Te*this.stride;he[Ie+4]===L&&ae.push(he[Ie+pi]>1?Pt(he,Ie,this.clusterProps):this.points[he[Ie+Tt]])}if(ae.length===0)throw new Error(J);return ae}getLeaves(L,F,j){const J=[];return this._appendLeaves(J,L,F=F||10,j=j||0,0),J}getTile(L,F,j){const J=this.trees[this._limitZoom(L)],Q=Math.pow(2,L),{extent:he,radius:oe}=this.options,te=oe/he,ae=(j-te)/Q,Te=(j+1+te)/Q,Ie={features:[]};return this._addTileFeatures(J.range((F-te)/Q,ae,(F+1+te)/Q,Te),J.data,F,j,Q,Ie),F===0&&this._addTileFeatures(J.range(1-te/Q,ae,1,Te),J.data,Q,j,Q,Ie),F===Q-1&&this._addTileFeatures(J.range(0,ae,te/Q,Te),J.data,-1,j,Q,Ie),Ie.features.length?Ie:null}getClusterExpansionZoom(L){let F=this._getOriginZoom(L)-1;for(;F<=this.options.maxZoom;){const j=this.getChildren(L);if(F++,j.length!==1)break;L=j[0].properties.cluster_id}return F}_appendLeaves(L,F,j,J,Q){const he=this.getChildren(F);for(const oe of he){const te=oe.properties;if(te&&te.cluster?Q+te.point_count<=J?Q+=te.point_count:Q=this._appendLeaves(L,te.cluster_id,j,J,Q):Q1;let Te,Ie,Ee;if(ae)Te=He(F,te,this.clusterProps),Ie=F[te],Ee=F[te+1];else{const ut=this.points[F[te+Tt]];Te=ut.properties;const[vt,Ft]=ut.geometry.coordinates;Ie=Zt(vt),Ee=ct(Ft)}const mt={type:1,geometry:[[Math.round(this.options.extent*(Ie*Q-j)),Math.round(this.options.extent*(Ee*Q-J))]],tags:Te};let kt;kt=ae||this.options.generateId?F[te+Tt]:this.points[F[te+Tt]].id,kt!==void 0&&(mt.id=kt),he.features.push(mt)}}_limitZoom(L){return Math.max(this.options.minZoom,Math.min(Math.floor(+L),this.options.maxZoom+1))}_cluster(L,F){const{radius:j,extent:J,reduce:Q,minPoints:he}=this.options,oe=j/(J*Math.pow(2,F)),te=L.data,ae=[],Te=this.stride;for(let Ie=0;IeF&&(vt+=te[mi+pi])}if(vt>ut&&vt>=he){let Ft,mi=Ee*ut,Ut=mt*ut,si=-1;const ii=((Ie/Te|0)<<5)+(F+1)+this.points.length;for(const Ur of kt){const Ei=Ur*Te;if(te[Ei+2]<=F)continue;te[Ei+2]=F;const ur=te[Ei+pi];mi+=te[Ei]*ur,Ut+=te[Ei+1]*ur,te[Ei+4]=ii,Q&&(Ft||(Ft=this._map(te,Ie,!0),si=this.clusterProps.length,this.clusterProps.push(Ft)),Q(Ft,this._map(te,Ei)))}te[Ie+4]=ii,ae.push(mi/vt,Ut/vt,1/0,ii,-1,vt),Q&&ae.push(si)}else{for(let Ft=0;Ft1)for(const Ft of kt){const mi=Ft*Te;if(!(te[mi+2]<=F)){te[mi+2]=F;for(let Ut=0;Ut>5}_getOriginZoom(L){return(L-this.points.length)%32}_map(L,F,j){if(L[F+pi]>1){const he=this.clusterProps[L[F+Oi]];return j?Object.assign({},he):he}const J=this.points[L[F+Tt]].properties,Q=this.options.map(J);return j&&Q===J?Object.assign({},Q):Q}}function Pt(X,L,F){return{type:"Feature",id:X[L+Tt],properties:He(X,L,F),geometry:{type:"Point",coordinates:[(j=X[L],360*(j-.5)),Zi(X[L+1])]}};var j}function He(X,L,F){const j=X[L+pi],J=j>=1e4?`${Math.round(j/1e3)}k`:j>=1e3?Math.round(j/100)/10+"k":j,Q=X[L+Oi],he=Q===-1?{}:Object.assign({},F[Q]);return Object.assign(he,{cluster:!0,cluster_id:X[L+Tt],point_count:j,point_count_abbreviated:J})}function Zt(X){return X/360+.5}function ct(X){const L=Math.sin(X*Math.PI/180),F=.5-.25*Math.log((1+L)/(1-L))/Math.PI;return F<0?0:F>1?1:F}function Zi(X){const L=(180-360*X)*Math.PI/180;return 360*Math.atan(Math.exp(L))/Math.PI-90}function _r(X,L,F,j){for(var J,Q=j,he=F-L>>1,oe=F-L,te=X[L],ae=X[L+1],Te=X[F],Ie=X[F+1],Ee=L+3;EeQ)J=Ee,Q=mt;else if(mt===Q){var kt=Math.abs(Ee-he);ktj&&(J-L>3&&_r(X,L,J,j),X[J+2]=Q,F-J>3&&_r(X,J,F,j))}function Ue(X,L,F,j,J,Q){var he=J-F,oe=Q-j;if(he!==0||oe!==0){var te=((X-F)*he+(L-j)*oe)/(he*he+oe*oe);te>1?(F=J,j=Q):te>0&&(F+=he*te,j+=oe*te)}return(he=X-F)*he+(oe=L-j)*oe}function Bi(X,L,F,j){var J={id:X===void 0?null:X,type:L,geometry:F,tags:j,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Q){var he=Q.geometry,oe=Q.type;if(oe==="Point"||oe==="MultiPoint"||oe==="LineString")gr(Q,he);else if(oe==="Polygon"||oe==="MultiLineString")for(var te=0;te0&&(he+=j?(J*ae-te*Q)/2:Math.sqrt(Math.pow(te-J,2)+Math.pow(ae-Q,2))),J=te,Q=ae}var Te=L.length-3;L[2]=1,_r(L,0,Te,F),L[Te+2]=1,L.size=Math.abs(he),L.start=0,L.end=L.size}function jo(X,L,F,j){for(var J=0;J1?1:F}function In(X,L,F,j,J,Q,he,oe){if(j/=L,Q>=(F/=L)&&he=j)return null;for(var te=[],ae=0;ae=F&&kt=j)){var ut=[];if(Ee==="Point"||Ee==="MultiPoint")Ii(Ie,ut,F,j,J);else if(Ee==="LineString")ti(Ie,ut,F,j,J,!1,oe.lineMetrics);else if(Ee==="MultiLineString")En(Ie,ut,F,j,J,!1);else if(Ee==="Polygon")En(Ie,ut,F,j,J,!0);else if(Ee==="MultiPolygon")for(var vt=0;vt=F&&he<=j&&(L.push(X[Q]),L.push(X[Q+1]),L.push(X[Q+2]))}}function ti(X,L,F,j,J,Q,he){for(var oe,te,ae=Vn(X),Te=J===0?qo:So,Ie=X.start,Ee=0;EeF&&(te=Te(ae,mt,kt,vt,Ft,F),he&&(ae.start=Ie+oe*te)):mi>j?Ut=F&&(te=Te(ae,mt,kt,vt,Ft,F),si=!0),Ut>j&&mi<=j&&(te=Te(ae,mt,kt,vt,Ft,j),si=!0),!Q&&si&&(he&&(ae.end=Ie+oe*te),L.push(ae),ae=Vn(X)),he&&(Ie+=oe)}var ii=X.length-3;mt=X[ii],kt=X[ii+1],ut=X[ii+2],(mi=J===0?mt:kt)>=F&&mi<=j&&Un(ae,mt,kt,ut),ii=ae.length-3,Q&&ii>=3&&(ae[ii]!==ae[0]||ae[ii+1]!==ae[1])&&Un(ae,ae[0],ae[1],ae[2]),ae.length&&L.push(ae)}function Vn(X){var L=[];return L.size=X.size,L.start=X.start,L.end=X.end,L}function En(X,L,F,j,J,Q){for(var he=0;hehe.maxX&&(he.maxX=Te),Ie>he.maxY&&(he.maxY=Ie)}return he}function Zo(X,L,F,j){var J=L.geometry,Q=L.type,he=[];if(Q==="Point"||Q==="MultiPoint")for(var oe=0;oe0&&L.size<(J?he:j))F.numPoints+=L.length/3;else{for(var oe=[],te=0;tehe)&&(F.numSimplified++,oe.push(L[te]),oe.push(L[te+1])),F.numPoints++;J&&function(ae,Te){for(var Ie=0,Ee=0,mt=ae.length,kt=mt-2;Ee0===Te)for(Ee=0,mt=ae.length;Ee24)throw new Error("maxZoom should be in the 0-24 range");if(L.promoteId&&L.generateId)throw new Error("promoteId and generateId cannot be used together.");var j=function(J,Q){var he=[];if(J.type==="FeatureCollection")for(var oe=0;oe1&&console.time("creation"),Ee=this.tiles[Ie]=er(X,L,F,j,te),this.tileCoords.push({z:L,x:F,y:j}),ae)){ae>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",L,F,j,Ee.numFeatures,Ee.numPoints,Ee.numSimplified),console.timeEnd("creation"));var mt="z"+L;this.stats[mt]=(this.stats[mt]||0)+1,this.total++}if(Ee.source=X,J){if(L===te.maxZoom||L===J)continue;var kt=1<1&&console.time("clipping");var ut,vt,Ft,mi,Ut,si,ii=.5*te.buffer/te.extent,Ur=.5-ii,Ei=.5+ii,ur=1+ii;ut=vt=Ft=mi=null,Ut=In(X,Te,F-ii,F+Ei,0,Ee.minX,Ee.maxX,te),si=In(X,Te,F+Ur,F+ur,0,Ee.minX,Ee.maxX,te),X=null,Ut&&(ut=In(Ut,Te,j-ii,j+Ei,1,Ee.minY,Ee.maxY,te),vt=In(Ut,Te,j+Ur,j+ur,1,Ee.minY,Ee.maxY,te),Ut=null),si&&(Ft=In(si,Te,j-ii,j+Ei,1,Ee.minY,Ee.maxY,te),mi=In(si,Te,j+Ur,j+ur,1,Ee.minY,Ee.maxY,te),si=null),ae>1&&console.timeEnd("clipping"),oe.push(ut||[],L+1,2*F,2*j),oe.push(vt||[],L+1,2*F,2*j+1),oe.push(Ft||[],L+1,2*F+1,2*j),oe.push(mi||[],L+1,2*F+1,2*j+1)}}},We.prototype.getTile=function(X,L,F){var j=this.options,J=j.extent,Q=j.debug;if(X<0||X>24)return null;var he=1<1&&console.log("drilling down to z%d-%d-%d",X,L,F);for(var te,ae=X,Te=L,Ie=F;!te&&ae>0;)ae--,Te=Math.floor(Te/2),Ie=Math.floor(Ie/2),te=this.tiles[Bt(ae,Te,Ie)];return te&&te.source?(Q>1&&console.log("found parent tile z%d-%d-%d",ae,Te,Ie),Q>1&&console.time("drilling down"),this.splitTile(te.source,ae,Te,Ie,X,L,F),Q>1&&console.timeEnd("drilling down"),this.tiles[oe]?qe(this.tiles[oe],J):null):null};class It extends Oe{constructor(L,F,j,J){super(L,F,j),this._dataUpdateable=new Map,this.loadGeoJSON=(Q,he)=>{const{promoteId:oe}=Q;if(Q.request)return s.f(Q.request,(te,ae,Te,Ie)=>{this._dataUpdateable=Vr(ae,oe)?mn(ae,oe):void 0,he(te,ae,Te,Ie)});if(typeof Q.data=="string")try{const te=JSON.parse(Q.data);this._dataUpdateable=Vr(te,oe)?mn(te,oe):void 0,he(null,te)}catch{he(new Error(`Input data given to '${Q.source}' is not a valid GeoJSON object.`))}else Q.dataDiff?this._dataUpdateable?(function(te,ae,Te){var Ie,Ee,mt,kt;if(ae.removeAll&&te.clear(),ae.remove)for(const ut of ae.remove)te.delete(ut);if(ae.add)for(const ut of ae.add){const vt=Mt(ut,Te);vt!=null&&te.set(vt,ut)}if(ae.update)for(const ut of ae.update){let vt=te.get(ut.id);if(vt==null)continue;const Ft=!ut.removeAllProperties&&(((Ie=ut.removeProperties)===null||Ie===void 0?void 0:Ie.length)>0||((Ee=ut.addOrUpdateProperties)===null||Ee===void 0?void 0:Ee.length)>0);if((ut.newGeometry||ut.removeAllProperties||Ft)&&(vt=Object.assign({},vt),te.set(ut.id,vt),Ft&&(vt.properties=Object.assign({},vt.properties))),ut.newGeometry&&(vt.geometry=ut.newGeometry),ut.removeAllProperties)vt.properties={};else if(((mt=ut.removeProperties)===null||mt===void 0?void 0:mt.length)>0)for(const mi of ut.removeProperties)Object.prototype.hasOwnProperty.call(vt.properties,mi)&&delete vt.properties[mi];if(((kt=ut.addOrUpdateProperties)===null||kt===void 0?void 0:kt.length)>0)for(const{key:mi,value:Ut}of ut.addOrUpdateProperties)vt.properties[mi]=Ut}}(this._dataUpdateable,Q.dataDiff,oe),he(null,{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())})):he(new Error(`Cannot update existing geojson data in ${Q.source}`)):he(new Error(`Input data given to '${Q.source}' is not a valid GeoJSON object.`));return{cancel:()=>{}}},this.loadVectorData=this.loadGeoJSONTile,J&&(this.loadGeoJSON=J)}loadGeoJSONTile(L,F){const j=L.tileID.canonical;if(!this._geoJSONIndex)return F(null,null);const J=this._geoJSONIndex.getTile(j.z,j.x,j.y);if(!J)return F(null,null);const Q=new class{constructor(oe){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=s.N,this.length=oe.length,this._features=oe}feature(oe){return new class{constructor(te){this._feature=te,this.extent=s.N,this.type=te.type,this.properties=te.tags,"id"in te&&!isNaN(te.id)&&(this.id=parseInt(te.id,10))}loadGeometry(){if(this._feature.type===1){const te=[];for(const ae of this._feature.geometry)te.push([new s.P(ae[0],ae[1])]);return te}{const te=[];for(const ae of this._feature.geometry){const Te=[];for(const Ie of ae)Te.push(new s.P(Ie[0],Ie[1]));te.push(Te)}return te}}toGeoJSON(te,ae,Te){return at.call(this,te,ae,Te)}}(this._features[oe])}}(J.features);let he=$r(Q);he.byteOffset===0&&he.byteLength===he.buffer.byteLength||(he=new Uint8Array(he)),F(null,{vectorTile:Q,rawData:he.buffer})}loadData(L,F){var j;(j=this._pendingRequest)===null||j===void 0||j.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});const J=!!(L&&L.request&&L.request.collectResourceTiming)&&new s.bu(L.request);this._pendingCallback=F,this._pendingRequest=this.loadGeoJSON(L,(Q,he)=>{if(delete this._pendingCallback,delete this._pendingRequest,Q||!he)return F(Q);if(typeof he!="object")return F(new Error(`Input data given to '${L.source}' is not a valid GeoJSON object.`));{et(he,!0);try{if(L.filter){const te=s.bC(L.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(te.result==="error")throw new Error(te.value.map(Te=>`${Te.key}: ${Te.message}`).join(", "));he={type:"FeatureCollection",features:he.features.filter(Te=>te.value.evaluate({zoom:0},Te))}}this._geoJSONIndex=L.cluster?new ze(function({superclusterOptions:te,clusterProperties:ae}){if(!ae||!te)return te;const Te={},Ie={},Ee={accumulated:null,zoom:0},mt={properties:null},kt=Object.keys(ae);for(const ut of kt){const[vt,Ft]=ae[ut],mi=s.bC(Ft),Ut=s.bC(typeof vt=="string"?[vt,["accumulated"],["get",ut]]:vt);Te[ut]=mi.value,Ie[ut]=Ut.value}return te.map=ut=>{mt.properties=ut;const vt={};for(const Ft of kt)vt[Ft]=Te[Ft].evaluate(Ee,mt);return vt},te.reduce=(ut,vt)=>{mt.properties=vt;for(const Ft of kt)Ee.accumulated=ut[Ft],ut[Ft]=Ie[Ft].evaluate(Ee,mt)},te}(L)).load(he.features):function(te,ae){return new We(te,ae)}(he,L.geojsonVtOptions)}catch(te){return F(te)}this.loaded={};const oe={};if(J){const te=J.finish();te&&(oe.resourceTiming={},oe.resourceTiming[L.source]=JSON.parse(JSON.stringify(te)))}F(null,oe)}})}reloadTile(L,F){const j=this.loaded;return j&&j[L.uid]?super.reloadTile(L,F):this.loadTile(L,F)}removeSource(L,F){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),F()}getClusterExpansionZoom(L,F){try{F(null,this._geoJSONIndex.getClusterExpansionZoom(L.clusterId))}catch(j){F(j)}}getClusterChildren(L,F){try{F(null,this._geoJSONIndex.getChildren(L.clusterId))}catch(j){F(j)}}getClusterLeaves(L,F){try{F(null,this._geoJSONIndex.getLeaves(L.clusterId,L.limit,L.offset))}catch(j){F(j)}}}class Mn{constructor(L){this.self=L,this.actor=new s.C(L,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:Oe,geojson:It},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(F,j)=>{if(this.workerSourceTypes[F])throw new Error(`Worker source with name "${F}" already registered.`);this.workerSourceTypes[F]=j},this.self.registerRTLTextPlugin=F=>{if(s.bD.isParsed())throw new Error("RTL text plugin already registered.");s.bD.applyArabicShaping=F.applyArabicShaping,s.bD.processBidirectionalText=F.processBidirectionalText,s.bD.processStyledBidirectionalText=F.processStyledBidirectionalText}}setReferrer(L,F){this.referrer=F}setImages(L,F,j){this.availableImages[L]=F;for(const J in this.workerSources[L]){const Q=this.workerSources[L][J];for(const he in Q)Q[he].availableImages=F}j()}setLayers(L,F,j){this.getLayerIndex(L).replace(F),j()}updateLayers(L,F,j){this.getLayerIndex(L).update(F.layers,F.removedIds),j()}loadTile(L,F,j){this.getWorkerSource(L,F.type,F.source).loadTile(F,j)}loadDEMTile(L,F,j){this.getDEMWorkerSource(L,F.source).loadTile(F,j)}reloadTile(L,F,j){this.getWorkerSource(L,F.type,F.source).reloadTile(F,j)}abortTile(L,F,j){this.getWorkerSource(L,F.type,F.source).abortTile(F,j)}removeTile(L,F,j){this.getWorkerSource(L,F.type,F.source).removeTile(F,j)}removeDEMTile(L,F){this.getDEMWorkerSource(L,F.source).removeTile(F)}removeSource(L,F,j){if(!this.workerSources[L]||!this.workerSources[L][F.type]||!this.workerSources[L][F.type][F.source])return;const J=this.workerSources[L][F.type][F.source];delete this.workerSources[L][F.type][F.source],J.removeSource!==void 0?J.removeSource(F,j):j()}loadWorkerSource(L,F,j){try{this.self.importScripts(F.url),j()}catch(J){j(J.toString())}}syncRTLPluginState(L,F,j){try{s.bD.setState(F);const J=s.bD.getPluginURL();if(s.bD.isLoaded()&&!s.bD.isParsed()&&J!=null){this.self.importScripts(J);const Q=s.bD.isParsed();j(Q?void 0:new Error(`RTL Text Plugin failed to import scripts from ${J}`),Q)}}catch(J){j(J.toString())}}getAvailableImages(L){let F=this.availableImages[L];return F||(F=[]),F}getLayerIndex(L){let F=this.layerIndexes[L];return F||(F=this.layerIndexes[L]=new H),F}getWorkerSource(L,F,j){return this.workerSources[L]||(this.workerSources[L]={}),this.workerSources[L][F]||(this.workerSources[L][F]={}),this.workerSources[L][F][j]||(this.workerSources[L][F][j]=new this.workerSourceTypes[F]({send:(J,Q,he)=>{this.actor.send(J,Q,he,L)}},this.getLayerIndex(L),this.getAvailableImages(L))),this.workerSources[L][F][j]}getDEMWorkerSource(L,F){return this.demWorkerSources[L]||(this.demWorkerSources[L]={}),this.demWorkerSources[L][F]||(this.demWorkerSources[L][F]=new Le),this.demWorkerSources[L][F]}}return s.i()&&(self.worker=new Mn(self)),Mn}),k(["./shared"],function(s){var H="3.6.2";class N{static testProp(t){if(!N.docStyle)return t[0];for(let n=0;n{window.removeEventListener("click",N.suppressClickInternal,!0)},0)}static mousePos(t,n){const a=t.getBoundingClientRect();return new s.P(n.clientX-a.left-t.clientLeft,n.clientY-a.top-t.clientTop)}static touchPos(t,n){const a=t.getBoundingClientRect(),c=[];for(let d=0;d{t=[],n=0,a=0,c={}},u.addThrottleControl=C=>{const A=a++;return c[A]=C,A},u.removeThrottleControl=C=>{delete c[C],b()},u.getImage=(C,A,P=!0)=>{_e.supported&&(C.headers||(C.headers={}),C.headers.accept="image/webp,*/*");const R={requestParameters:C,supportImageRefresh:P,callback:A,cancelled:!1,completed:!1,cancel:()=>{R.completed||R.cancelled||(R.cancelled=!0,R.innerRequest&&(R.innerRequest.cancel(),n--),b())}};return t.push(R),b(),R};const d=C=>{const{requestParameters:A,supportImageRefresh:P,callback:R}=C;return s.e(A,{type:"image"}),(P!==!1||s.i()||s.g(A.url)||A.headers&&!Object.keys(A.headers).reduce((W,G)=>W&&G==="accept",!0)?s.m:S)(A,(W,G,K,q)=>{x(C,R,W,G,K,q)})},x=(C,A,P,R,W,G)=>{P?A(P):R instanceof HTMLImageElement||s.a(R)?A(null,R):R&&((K,q)=>{typeof createImageBitmap=="function"?s.b(K,q):s.d(K,q)})(R,(K,q)=>{K!=null?A(K):q!=null&&A(null,q,{cacheControl:W,expires:G})}),C.cancelled||(C.completed=!0,n--,b())},b=()=>{const C=(()=>{const A=Object.keys(c);let P=!1;if(A.length>0){for(const R of A)if(P=c[R](),P)break}return P})()?s.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:s.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let A=n;A0;A++){const P=t.shift();if(P.cancelled){A--;continue}const R=d(P);n++,P.innerRequest=R}},S=(C,A)=>{const P=new Image,R=C.url;let W=!1;const G=C.credentials;return G&&G==="include"?P.crossOrigin="use-credentials":(G&&G==="same-origin"||!s.s(R))&&(P.crossOrigin="anonymous"),P.fetchPriority="high",P.onload=()=>{A(null,P),P.onerror=P.onload=null},P.onerror=()=>{W||A(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.")),P.onerror=P.onload=null},P.src=R,{cancel:()=>{W=!0,P.src=""}}}}(Ne||(Ne={})),Ne.resetRequestQueue(),function(u){u.Glyphs="Glyphs",u.Image="Image",u.Source="Source",u.SpriteImage="SpriteImage",u.SpriteJSON="SpriteJSON",u.Style="Style",u.Tile="Tile",u.Unknown="Unknown"}(et||(et={}));class at{constructor(t){this._transformRequestFn=t}transformRequest(t,n){return this._transformRequestFn&&this._transformRequestFn(t,n)||{url:t}}normalizeSpriteURL(t,n,a){const c=function(d){const x=d.match(nt);if(!x)throw new Error(`Unable to parse URL "${d}"`);return{protocol:x[1],authority:x[2],path:x[3]||"/",params:x[4]?x[4].split("&"):[]}}(t);return c.path+=`${n}${a}`,function(d){const x=d.params.length?`?${d.params.join("&")}`:"";return`${d.protocol}://${d.authority}${d.path}${x}`}(c)}setTransformRequest(t){this._transformRequestFn=t}}const nt=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function it(u){var t=new s.A(3);return t[0]=u[0],t[1]=u[1],t[2]=u[2],t}var Vt,ei=function(u,t,n){return u[0]=t[0]-n[0],u[1]=t[1]-n[1],u[2]=t[2]-n[2],u};Vt=new s.A(3),s.A!=Float32Array&&(Vt[0]=0,Vt[1]=0,Vt[2]=0);var Ht=function(u){var t=u[0],n=u[1];return t*t+n*n};function Nt(u){const t=[];if(typeof u=="string")t.push({id:"default",url:u});else if(u&&u.length>0){const n=[];for(const{id:a,url:c}of u){const d=`${a}${c}`;n.indexOf(d)===-1&&(n.push(d),t.push({id:a,url:c}))}}return t}function Jt(u,t,n,a,c){if(a)return void u(a);if(c!==Object.values(t).length||c!==Object.values(n).length)return;const d={};for(const x in t){d[x]={};const b=s.h.getImageCanvasContext(n[x]),S=t[x];for(const C in S){const{width:A,height:P,x:R,y:W,sdf:G,pixelRatio:K,stretchX:q,stretchY:le,content:me}=S[C];d[x][C]={data:null,pixelRatio:K,sdf:G,stretchX:q,stretchY:le,content:me,spriteData:{width:A,height:P,x:R,y:W,context:b}}}}u(null,d)}(function(){var u=new s.A(2);s.A!=Float32Array&&(u[0]=0,u[1]=0)})();class At{constructor(t,n,a,c){this.context=t,this.format=a,this.texture=t.gl.createTexture(),this.update(n,c)}update(t,n,a){const{width:c,height:d}=t,x=!(this.size&&this.size[0]===c&&this.size[1]===d||a),{context:b}=this,{gl:S}=b;if(this.useMipmap=!!(n&&n.useMipmap),S.bindTexture(S.TEXTURE_2D,this.texture),b.pixelStoreUnpackFlipY.set(!1),b.pixelStoreUnpack.set(1),b.pixelStoreUnpackPremultiplyAlpha.set(this.format===S.RGBA&&(!n||n.premultiply!==!1)),x)this.size=[c,d],t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||s.a(t)?S.texImage2D(S.TEXTURE_2D,0,this.format,this.format,S.UNSIGNED_BYTE,t):S.texImage2D(S.TEXTURE_2D,0,this.format,c,d,0,this.format,S.UNSIGNED_BYTE,t.data);else{const{x:C,y:A}=a||{x:0,y:0};t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||s.a(t)?S.texSubImage2D(S.TEXTURE_2D,0,C,A,S.RGBA,S.UNSIGNED_BYTE,t):S.texSubImage2D(S.TEXTURE_2D,0,C,A,c,d,S.RGBA,S.UNSIGNED_BYTE,t.data)}this.useMipmap&&this.isSizePowerOfTwo()&&S.generateMipmap(S.TEXTURE_2D)}bind(t,n,a){const{context:c}=this,{gl:d}=c;d.bindTexture(d.TEXTURE_2D,this.texture),a!==d.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(a=d.LINEAR),t!==this.filter&&(d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,t),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,a||t),this.filter=t),n!==this.wrap&&(d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,n),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,n),this.wrap=n)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:t}=this.context;t.deleteTexture(this.texture),this.texture=null}}function Ae(u){const{userImage:t}=u;return!!(t&&t.render&&t.render())&&(u.data.replace(new Uint8Array(t.data.buffer)),!0)}class Ge extends s.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(t){if(this.loaded!==t&&(this.loaded=t,t)){for(const{ids:n,callback:a}of this.requestors)this._notify(n,a);this.requestors=[]}}getImage(t){const n=this.images[t];if(n&&!n.data&&n.spriteData){const a=n.spriteData;n.data=new s.R({width:a.width,height:a.height},a.context.getImageData(a.x,a.y,a.width,a.height).data),n.spriteData=null}return n}addImage(t,n){if(this.images[t])throw new Error(`Image id ${t} already exist, use updateImage instead`);this._validate(t,n)&&(this.images[t]=n)}_validate(t,n){let a=!0;const c=n.data||n.spriteData;return this._validateStretch(n.stretchX,c&&c.width)||(this.fire(new s.j(new Error(`Image "${t}" has invalid "stretchX" value`))),a=!1),this._validateStretch(n.stretchY,c&&c.height)||(this.fire(new s.j(new Error(`Image "${t}" has invalid "stretchY" value`))),a=!1),this._validateContent(n.content,n)||(this.fire(new s.j(new Error(`Image "${t}" has invalid "content" value`))),a=!1),a}_validateStretch(t,n){if(!t)return!0;let a=0;for(const c of t){if(c[0]-1);S++,d[S]=b,x[S]=C,x[S+1]=Ui}for(let b=0,S=0;b{let b=this.entries[c];b||(b=this.entries[c]={glyphs:{},requests:{},ranges:{}});let S=b.glyphs[d];if(S!==void 0)return void x(null,{stack:c,id:d,glyph:S});if(S=this._tinySDF(b,c,d),S)return b.glyphs[d]=S,void x(null,{stack:c,id:d,glyph:S});const C=Math.floor(d/256);if(256*C>65535)return void x(new Error("glyphs > 65535 not supported"));if(b.ranges[C])return void x(null,{stack:c,id:d,glyph:S});if(!this.url)return void x(new Error("glyphsUrl is not set"));let A=b.requests[C];A||(A=b.requests[C]=[],Lt.loadGlyphRange(c,C,this.url,this.requestManager,(P,R)=>{if(R){for(const W in R)this._doesCharSupportLocalGlyph(+W)||(b.glyphs[+W]=R[+W]);b.ranges[C]=!0}for(const W of A)W(P,R);delete b.requests[C]})),A.push((P,R)=>{P?x(P):R&&x(null,{stack:c,id:d,glyph:R[d]||null})})},(c,d)=>{if(c)n(c);else if(d){const x={};for(const{stack:b,id:S,glyph:C}of d)(x[b]||(x[b]={}))[S]=C&&{id:C.id,bitmap:C.bitmap.clone(),metrics:C.metrics};n(null,x)}})}_doesCharSupportLocalGlyph(t){return!!this.localIdeographFontFamily&&(s.u["CJK Unified Ideographs"](t)||s.u["Hangul Syllables"](t)||s.u.Hiragana(t)||s.u.Katakana(t))}_tinySDF(t,n,a){const c=this.localIdeographFontFamily;if(!c||!this._doesCharSupportLocalGlyph(a))return;let d=t.tinySDF;if(!d){let b="400";/bold/i.test(n)?b="900":/medium/i.test(n)?b="500":/light/i.test(n)&&(b="200"),d=t.tinySDF=new Lt.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:c,fontWeight:b})}const x=d.draw(String.fromCharCode(a));return{id:a,bitmap:new s.q({width:x.width||60,height:x.height||60},x.data),metrics:{width:x.glyphWidth/2||24,height:x.glyphHeight/2||24,left:x.glyphLeft/2+.5||0,top:x.glyphTop/2-27.5||-8,advance:x.glyphAdvance/2||24,isDoubleResolution:!0}}}}Lt.loadGlyphRange=function(u,t,n,a,c){const d=256*t,x=d+255,b=a.transformRequest(n.replace("{fontstack}",u).replace("{range}",`${d}-${x}`),et.Glyphs);s.l(b,(S,C)=>{if(S)c(S);else if(C){const A={};for(const P of s.n(C))A[P.id]=P;c(null,A)}})},Lt.TinySDF=class{constructor({fontSize:u=24,buffer:t=3,radius:n=8,cutoff:a=.25,fontFamily:c="sans-serif",fontWeight:d="normal",fontStyle:x="normal"}={}){this.buffer=t,this.cutoff=a,this.radius=n;const b=this.size=u+4*t,S=this._createCanvas(b),C=this.ctx=S.getContext("2d",{willReadFrequently:!0});C.font=`${x} ${d} ${u}px ${c}`,C.textBaseline="alphabetic",C.textAlign="left",C.fillStyle="black",this.gridOuter=new Float64Array(b*b),this.gridInner=new Float64Array(b*b),this.f=new Float64Array(b),this.z=new Float64Array(b+1),this.v=new Uint16Array(b)}_createCanvas(u){const t=document.createElement("canvas");return t.width=t.height=u,t}draw(u){const{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:a,actualBoundingBoxLeft:c,actualBoundingBoxRight:d}=this.ctx.measureText(u),x=Math.ceil(n),b=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(d-c))),S=Math.min(this.size-this.buffer,x+Math.ceil(a)),C=b+2*this.buffer,A=S+2*this.buffer,P=Math.max(C*A,0),R=new Uint8ClampedArray(P),W={data:R,width:C,height:A,glyphWidth:b,glyphHeight:S,glyphTop:x,glyphLeft:0,glyphAdvance:t};if(b===0||S===0)return W;const{ctx:G,buffer:K,gridInner:q,gridOuter:le}=this;G.clearRect(K,K,b,S),G.fillText(u,K,K+x);const me=G.getImageData(K,K,b,S);le.fill(Ui,0,P),q.fill(0,0,P);for(let ee=0;ee0?Ce*Ce:0,q[xe]=Ce<0?Ce*Ce:0}}Dt(le,0,0,C,A,C,this.f,this.v,this.z),Dt(q,K,K,b,S,C,this.f,this.v,this.z);for(let ee=0;ee1&&(S=t[++b]);const A=Math.abs(C-S.left),P=Math.abs(C-S.right),R=Math.min(A,P);let W;const G=d/a*(c+1);if(S.isDash){const K=c-Math.abs(G);W=Math.sqrt(R*R+K*K)}else W=c-Math.sqrt(R*R+G*G);this.data[x+C]=Math.max(0,Math.min(255,W+128))}}}addRegularDash(t){for(let b=t.length-1;b>=0;--b){const S=t[b],C=t[b+1];S.zeroLength?t.splice(b,1):C&&C.isDash===S.isDash&&(C.left=S.left,t.splice(b,1))}const n=t[0],a=t[t.length-1];n.isDash===a.isDash&&(n.left=a.left-this.width,a.right=n.right+this.width);const c=this.width*this.nextRow;let d=0,x=t[d];for(let b=0;b1&&(x=t[++d]);const S=Math.abs(b-x.left),C=Math.abs(b-x.right),A=Math.min(S,C);this.data[c+b]=Math.max(0,Math.min(255,(x.isDash?A:-A)+128))}}addDash(t,n){const a=n?7:0,c=2*a+1;if(this.nextRow+c>this.height)return s.w("LineAtlas out of space"),null;let d=0;for(let b=0;b{c.send(t,n,d)},a=a||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(t=!0){this.actors.forEach(n=>{n.remove()}),this.actors=[],t&&this.workerPool.release(this.id)}}function Ti(u,t,n){const a=function(c,d){if(c)return n(c);if(d){const x=s.F(s.e(d,u),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);d.vector_layers&&(x.vectorLayers=d.vector_layers,x.vectorLayerIds=x.vectorLayers.map(b=>b.id)),n(null,x)}};return u.url?s.f(t.transformRequest(u.url,et.Source),a):s.h.frame(()=>a(null,u))}class Tt{constructor(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):Array.isArray(t)&&(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 s.L?new s.L(t.lng,t.lat):s.L.convert(t),this}setSouthWest(t){return this._sw=t instanceof s.L?new s.L(t.lng,t.lat):s.L.convert(t),this}extend(t){const n=this._sw,a=this._ne;let c,d;if(t instanceof s.L)c=t,d=t;else{if(!(t instanceof Tt))return Array.isArray(t)?t.length===4||t.every(Array.isArray)?this.extend(Tt.convert(t)):this.extend(s.L.convert(t)):t&&("lng"in t||"lon"in t)&&"lat"in t?this.extend(s.L.convert(t)):this;if(c=t._sw,d=t._ne,!c||!d)return this}return n||a?(n.lng=Math.min(c.lng,n.lng),n.lat=Math.min(c.lat,n.lat),a.lng=Math.max(d.lng,a.lng),a.lat=Math.max(d.lat,a.lat)):(this._sw=new s.L(c.lng,c.lat),this._ne=new s.L(d.lng,d.lat)),this}getCenter(){return new s.L((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 s.L(this.getWest(),this.getNorth())}getSouthEast(){return new s.L(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:n,lat:a}=s.L.convert(t);let c=this._sw.lng<=n&&n<=this._ne.lng;return this._sw.lng>this._ne.lng&&(c=this._sw.lng>=n&&n>=this._ne.lng),this._sw.lat<=a&&a<=this._ne.lat&&c}static convert(t){return t instanceof Tt?t:t&&new Tt(t)}static fromLngLat(t,n=0){const a=360*n/40075017,c=a/Math.cos(Math.PI/180*t.lat);return new Tt(new s.L(t.lng-c,t.lat-a),new s.L(t.lng+c,t.lat+a))}}class pi{constructor(t,n,a){this.bounds=Tt.convert(this.validateBounds(t)),this.minzoom=n||0,this.maxzoom=a||24}validateBounds(t){return Array.isArray(t)&&t.length===4?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]}contains(t){const n=Math.pow(2,t.z),a=Math.floor(s.G(this.bounds.getWest())*n),c=Math.floor(s.H(this.bounds.getNorth())*n),d=Math.ceil(s.G(this.bounds.getEast())*n),x=Math.ceil(s.H(this.bounds.getSouth())*n);return t.x>=a&&t.x=c&&t.y{this._loaded=!1,this.fire(new s.k("dataloading",{dataType:"source"})),this._tileJSONRequest=Ti(this._options,this.map._requestManager,(d,x)=>{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),d?this.fire(new s.j(d)):x&&(s.e(this,x),x.bounds&&(this.tileBounds=new pi(x.bounds,this.minzoom,this.maxzoom)),this.fire(new s.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.k("data",{dataType:"source",sourceDataType:"content"})))})},this.serialize=()=>s.e({},this._options),this.id=t,this.dispatcher=a,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,s.e(this,s.F(n,["url","scheme","tileSize","promoteId"])),this._options=s.e({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(c)}loaded(){return this._loaded}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}onAdd(t){this.map=t,this.load()}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.load()}setTiles(t){return this.setSourceProperty(()=>{this._options.tiles=t}),this}setUrl(t){return this.setSourceProperty(()=>{this.url=t,this._options.url=t}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}loadTile(t,n){const a=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),c={request:this.map._requestManager.transformRequest(a,et.Tile),uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function d(x,b){return delete t.request,t.aborted?n(null):x&&x.status!==404?n(x):(b&&b.resourceTiming&&(t.resourceTiming=b.resourceTiming),this.map._refreshExpiredTiles&&b&&t.setExpiryData(b),t.loadVectorData(b,this.map.painter),n(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}c.request.collectResourceTiming=this._collectResourceTiming,t.actor&&t.state!=="expired"?t.state==="loading"?t.reloadCallback=n:t.request=t.actor.send("reloadTile",c,d.bind(this)):(t.actor=this.dispatcher.getActor(),t.request=t.actor.send("loadTile",c,d.bind(this)))}abortTile(t){t.request&&(t.request.cancel(),delete t.request),t.actor&&t.actor.send("abortTile",{uid:t.uid,type:this.type,source:this.id},void 0)}unloadTile(t){t.unloadVectorData(),t.actor&&t.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id},void 0)}hasTransition(){return!1}}class ze extends s.E{constructor(t,n,a,c){super(),this.id=t,this.dispatcher=a,this.setEventedParent(c),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.e({type:"raster"},n),s.e(this,s.F(n,["url","scheme","tileSize"]))}load(){this._loaded=!1,this.fire(new s.k("dataloading",{dataType:"source"})),this._tileJSONRequest=Ti(this._options,this.map._requestManager,(t,n)=>{this._tileJSONRequest=null,this._loaded=!0,t?this.fire(new s.j(t)):n&&(s.e(this,n),n.bounds&&(this.tileBounds=new pi(n.bounds,this.minzoom,this.maxzoom)),this.fire(new s.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.k("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}onAdd(t){this.map=t,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.load()}setTiles(t){return this.setSourceProperty(()=>{this._options.tiles=t}),this}serialize(){return s.e({},this._options)}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t,n){const a=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.request=Ne.getImage(this.map._requestManager.transformRequest(a,et.Tile),(c,d,x)=>{if(delete t.request,t.aborted)t.state="unloaded",n(null);else if(c)t.state="errored",n(c);else if(d){this.map._refreshExpiredTiles&&x&&t.setExpiryData(x);const b=this.map.painter.context,S=b.gl;t.texture=this.map.painter.getTileTexture(d.width),t.texture?t.texture.update(d,{useMipmap:!0}):(t.texture=new At(b,d,S.RGBA,{useMipmap:!0}),t.texture.bind(S.LINEAR,S.CLAMP_TO_EDGE,S.LINEAR_MIPMAP_NEAREST),b.extTextureFilterAnisotropic&&S.texParameterf(S.TEXTURE_2D,b.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,b.extTextureFilterAnisotropicMax)),t.state="loaded",n(null)}},this.map._refreshExpiredTiles)}abortTile(t,n){t.request&&(t.request.cancel(),delete t.request),n()}unloadTile(t,n){t.texture&&this.map.painter.saveTileTexture(t.texture),n()}hasTransition(){return!1}}class Pt extends ze{constructor(t,n,a,c){super(t,n,a,c),this.type="raster-dem",this.maxzoom=22,this._options=s.e({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox",this.redFactor=n.redFactor,this.greenFactor=n.greenFactor,this.blueFactor=n.blueFactor,this.baseShift=n.baseShift}loadTile(t,n){const a=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),c=this.map._requestManager.transformRequest(a,et.Tile);function d(x,b){x&&(t.state="errored",n(x)),b&&(t.dem=b,t.needsHillshadePrepare=!0,t.needsTerrainPrepare=!0,t.state="loaded",n(null))}t.neighboringTiles=this._getNeighboringTiles(t.tileID),t.request=Ne.getImage(c,(x,b,S)=>s._(this,void 0,void 0,function*(){if(delete t.request,t.aborted)t.state="unloaded",n(null);else if(x)t.state="errored",n(x);else if(b){this.map._refreshExpiredTiles&&t.setExpiryData(S);const C=s.a(b)&&s.J()?b:yield function(P){return s._(this,void 0,void 0,function*(){if(typeof VideoFrame<"u"&&s.K()){const R=P.width+2,W=P.height+2;try{return new s.R({width:R,height:W},yield s.M(P,-1,-1,R,W))}catch{}}return s.h.getImageData(P,1)})}(b),A={uid:t.uid,coord:t.tileID,source:this.id,rawImageData:C,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};t.actor&&t.state!=="expired"||(t.actor=this.dispatcher.getActor(),t.actor.send("loadDEMTile",A,d))}}),this.map._refreshExpiredTiles)}_getNeighboringTiles(t){const n=t.canonical,a=Math.pow(2,n.z),c=(n.x-1+a)%a,d=n.x===0?t.wrap-1:t.wrap,x=(n.x+1+a)%a,b=n.x+1===a?t.wrap+1:t.wrap,S={};return S[new s.O(t.overscaledZ,d,n.z,c,n.y).key]={backfilled:!1},S[new s.O(t.overscaledZ,b,n.z,x,n.y).key]={backfilled:!1},n.y>0&&(S[new s.O(t.overscaledZ,d,n.z,c,n.y-1).key]={backfilled:!1},S[new s.O(t.overscaledZ,t.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},S[new s.O(t.overscaledZ,b,n.z,x,n.y-1).key]={backfilled:!1}),n.y+1{this._updateWorkerData()},this.serialize=()=>s.e({},this._options,{type:this.type,data:this._data}),this.id=t,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=a.getActor(),this.setEventedParent(c),this._data=n.data,this._options=s.e({},n),this._collectResourceTiming=n.collectResourceTiming,n.maxzoom!==void 0&&(this.maxzoom=n.maxzoom),n.type&&(this.type=n.type),n.attribution&&(this.attribution=n.attribution),this.promoteId=n.promoteId;const d=s.N/this.tileSize;this.workerOptions=s.e({source:this.id,cluster:n.cluster||!1,geojsonVtOptions:{buffer:(n.buffer!==void 0?n.buffer:128)*d,tolerance:(n.tolerance!==void 0?n.tolerance:.375)*d,extent:s.N,maxZoom:this.maxzoom,lineMetrics:n.lineMetrics||!1,generateId:n.generateId||!1},superclusterOptions:{maxZoom:n.clusterMaxZoom!==void 0?n.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,n.clusterMinPoints||2),extent:s.N,radius:(n.clusterRadius||50)*d,log:!1,generateId:n.generateId||!1},clusterProperties:n.clusterProperties,filter:n.filter},n.workerOptions),typeof this.promoteId=="string"&&(this.workerOptions.promoteId=this.promoteId)}onAdd(t){this.map=t,this.load()}setData(t){return this._data=t,this._updateWorkerData(),this}updateData(t){return this._updateWorkerData(t),this}setClusterOptions(t){return this.workerOptions.cluster=t.cluster,t&&(t.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=t.clusterRadius),t.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=t.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(t,n){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},n),this}getClusterChildren(t,n){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},n),this}getClusterLeaves(t,n,a,c){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:n,offset:a},c),this}_updateWorkerData(t){const n=s.e({},this.workerOptions);t?n.dataDiff=t:typeof this._data=="string"?(n.request=this.map._requestManager.transformRequest(s.h.resolveURL(this._data),et.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new s.k("dataloading",{dataType:"source"})),this.actor.send(`${this.type}.loadData`,n,(a,c)=>{if(this._pendingLoads--,this._removed||c&&c.abandoned)return void this.fire(new s.k("dataabort",{dataType:"source"}));let d=null;if(c&&c.resourceTiming&&c.resourceTiming[this.id]&&(d=c.resourceTiming[this.id].slice(0)),a)return void this.fire(new s.j(a));const x={dataType:"source"};this._collectResourceTiming&&d&&d.length>0&&s.e(x,{resourceTiming:d}),this.fire(new s.k("data",Object.assign(Object.assign({},x),{sourceDataType:"metadata"}))),this.fire(new s.k("data",Object.assign(Object.assign({},x),{sourceDataType:"content"})))})}loaded(){return this._pendingLoads===0}loadTile(t,n){const a=t.actor?"reloadTile":"loadTile";t.actor=this.actor;const c={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};t.request=this.actor.send(a,c,(d,x)=>(delete t.request,t.unloadVectorData(),t.aborted?n(null):d?n(d):(t.loadVectorData(x,this.map.painter,a==="reloadTile"),n(null))))}abortTile(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0}unloadTile(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})}onRemove(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})}hasTransition(){return!1}}var Zt=s.Q([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class ct extends s.E{constructor(t,n,a,c){super(),this.load=(d,x)=>{this._loaded=!1,this.fire(new s.k("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=Ne.getImage(this.map._requestManager.transformRequest(this.url,et.Image),(b,S)=>{this._request=null,this._loaded=!0,b?this.fire(new s.j(b)):S&&(this.image=S,d&&(this.coordinates=d),x&&x(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||!this.image)return;const d=this.map.painter.context,x=d.gl;this.boundsBuffer||(this.boundsBuffer=d.createVertexBuffer(this._boundsArray,Zt.members)),this.boundsSegments||(this.boundsSegments=s.S.simpleSegment(0,0,4,2)),this.texture||(this.texture=new At(d,this.image,x.RGBA),this.texture.bind(x.LINEAR,x.CLAMP_TO_EDGE));let b=!1;for(const S in this.tiles){const C=this.tiles[S];C.state!=="loaded"&&(C.state="loaded",C.texture=this.texture,b=!0)}b&&this.fire(new s.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))},this.serialize=()=>({type:"image",url:this.options.url,coordinates:this.coordinates}),this.id=t,this.dispatcher=a,this.coordinates=n.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(c),this.options=n}loaded(){return this._loaded}updateImage(t){return t.url?(this._request&&(this._request.cancel(),this._request=null),this.options.url=t.url,this.load(t.coordinates,()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.k("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(t){this.map=t,this.load()}onRemove(){this._request&&(this._request.cancel(),this._request=null)}setCoordinates(t){this.coordinates=t;const n=t.map(s.U.fromLngLat);this.tileID=function(c){let d=1/0,x=1/0,b=-1/0,S=-1/0;for(const R of c)d=Math.min(d,R.x),x=Math.min(x,R.y),b=Math.max(b,R.x),S=Math.max(S,R.y);const C=Math.max(b-d,S-x),A=Math.max(0,Math.floor(-Math.log(C)/Math.LN2)),P=Math.pow(2,A);return new s.W(A,Math.floor((d+b)/2*P),Math.floor((x+S)/2*P))}(n),this.minzoom=this.maxzoom=this.tileID.z;const a=n.map(c=>this.tileID.getTilePoint(c)._round());return this._boundsArray=new s.V,this._boundsArray.emplaceBack(a[0].x,a[0].y,0,0),this._boundsArray.emplaceBack(a[1].x,a[1].y,s.N,0),this._boundsArray.emplaceBack(a[3].x,a[3].y,0,s.N),this._boundsArray.emplaceBack(a[2].x,a[2].y,s.N,s.N),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new s.k("data",{dataType:"source",sourceDataType:"content"})),this}loadTile(t,n){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},n(null)):(t.state="errored",n(null))}hasTransition(){return!1}}class Zi extends ct{constructor(t,n,a,c){super(t,n,a,c),this.load=()=>{this._loaded=!1;const d=this.options;this.urls=[];for(const x of d.urls)this.urls.push(this.map._requestManager.transformRequest(x,et.Source).url);s.X(this.urls,(x,b)=>{this._loaded=!0,x?this.fire(new s.j(x)):b&&(this.video=b,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const d=this.map.painter.context,x=d.gl;this.boundsBuffer||(this.boundsBuffer=d.createVertexBuffer(this._boundsArray,Zt.members)),this.boundsSegments||(this.boundsSegments=s.S.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(x.LINEAR,x.CLAMP_TO_EDGE),x.texSubImage2D(x.TEXTURE_2D,0,0,0,x.RGBA,x.UNSIGNED_BYTE,this.video)):(this.texture=new At(d,this.video,x.RGBA),this.texture.bind(x.LINEAR,x.CLAMP_TO_EDGE));let b=!1;for(const S in this.tiles){const C=this.tiles[S];C.state!=="loaded"&&(C.state="loaded",C.texture=this.texture,b=!0)}b&&this.fire(new s.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))},this.serialize=()=>({type:"video",urls:this.urls,coordinates:this.coordinates}),this.roundZoom=!0,this.type="video",this.options=n}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(t){if(this.video){const n=this.video.seekable;tn.end(0)?this.fire(new s.j(new s.Y(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=t}}getVideo(){return this.video}onAdd(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}hasTransition(){return this.video&&!this.video.paused}}class _r extends ct{constructor(t,n,a,c){super(t,n,a,c),this.load=()=>{this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.j(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())},this.prepare=()=>{let d=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,d=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,d=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const x=this.map.painter.context,b=x.gl;this.boundsBuffer||(this.boundsBuffer=x.createVertexBuffer(this._boundsArray,Zt.members)),this.boundsSegments||(this.boundsSegments=s.S.simpleSegment(0,0,4,2)),this.texture?(d||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new At(x,this.canvas,b.RGBA,{premultiply:!0});let S=!1;for(const C in this.tiles){const A=this.tiles[C];A.state!=="loaded"&&(A.state="loaded",A.texture=this.texture,S=!0)}S&&this.fire(new s.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))},this.serialize=()=>({type:"canvas",coordinates:this.coordinates}),n.coordinates?Array.isArray(n.coordinates)&&n.coordinates.length===4&&!n.coordinates.some(d=>!Array.isArray(d)||d.length!==2||d.some(x=>typeof x!="number"))||this.fire(new s.j(new s.Y(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.j(new s.Y(`sources.${t}`,null,'missing required property "coordinates"'))),n.animate&&typeof n.animate!="boolean"&&this.fire(new s.j(new s.Y(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),n.canvas?typeof n.canvas=="string"||n.canvas instanceof HTMLCanvasElement||this.fire(new s.j(new s.Y(`sources.${t}`,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 s.j(new s.Y(`sources.${t}`,null,'missing required property "canvas"'))),this.options=n,this.animate=n.animate===void 0||n.animate}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const t of[this.canvas.width,this.canvas.height])if(isNaN(t)||t<=0)return!0;return!1}}const Ue={},Bi=u=>{switch(u){case"geojson":return He;case"image":return ct;case"raster":return ze;case"raster-dem":return Pt;case"vector":return Oi;case"video":return Zi;case"canvas":return _r}return Ue[u]};function gr(u,t){const n=s.Z();return s.$(n,n,[1,1,0]),s.a0(n,n,[.5*u.width,.5*u.height,1]),s.a1(n,n,u.calculatePosMatrix(t.toUnwrapped()))}function ci(u,t,n,a,c,d){const x=function(P,R,W){if(P)for(const G of P){const K=R[G];if(K&&K.source===W&&K.type==="fill-extrusion")return!0}else for(const G in R){const K=R[G];if(K.source===W&&K.type==="fill-extrusion")return!0}return!1}(c&&c.layers,t,u.id),b=d.maxPitchScaleFactor(),S=u.tilesIn(a,b,x);S.sort(co);const C=[];for(const P of S)C.push({wrappedTileID:P.tileID.wrapped().key,queryResults:P.tile.queryRenderedFeatures(t,n,u._state,P.queryGeometry,P.cameraQueryGeometry,P.scale,c,d,b,gr(u.transform,P.tileID))});const A=function(P){const R={},W={};for(const G of P){const K=G.queryResults,q=G.wrappedTileID,le=W[q]=W[q]||{};for(const me in K){const ee=K[me],ce=le[me]=le[me]||{},ve=R[me]=R[me]||[];for(const xe of ee)ce[xe.featureIndex]||(ce[xe.featureIndex]=!0,ve.push(xe))}}return R}(C);for(const P in A)A[P].forEach(R=>{const W=R.feature,G=u.getFeatureState(W.layer["source-layer"],W.id);W.source=W.layer.source,W.layer["source-layer"]&&(W.sourceLayer=W.layer["source-layer"]),W.state=G});return A}function co(u,t){const n=u.tileID,a=t.tileID;return n.overscaledZ-a.overscaledZ||n.canonical.y-a.canonical.y||n.wrap-a.wrap||n.canonical.x-a.canonical.x}class wo{constructor(t,n){this.timeAdded=0,this.fadeEndTime=0,this.tileID=t,this.uid=s.a2(),this.uses=0,this.tileSize=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(t){const n=t+this.timeAdded;nd.getLayer(C)).filter(Boolean);if(S.length!==0){b.layers=S,b.stateDependentLayerIds&&(b.stateDependentLayers=b.stateDependentLayerIds.map(C=>S.filter(A=>A.id===C)[0]));for(const C of S)x[C.id]=b}}return x}(t.buckets,n.style),this.hasSymbolBuckets=!1;for(const c in this.buckets){const d=this.buckets[c];if(d instanceof s.a4){if(this.hasSymbolBuckets=!0,!a)break;d.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const c in this.buckets){const d=this.buckets[c];if(d instanceof s.a4&&d.hasRTLText){this.hasRTLText=!0,s.a5();break}}this.queryPadding=0;for(const c in this.buckets){const d=this.buckets[c];this.queryPadding=Math.max(this.queryPadding,n.style.getLayer(c).queryRadius(d))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage)}else this.collisionBoxArray=new s.a3}unloadVectorData(){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(t){return this.buckets[t.id]}upload(t){for(const a in this.buckets){const c=this.buckets[a];c.uploadPending()&&c.upload(t)}const n=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new At(t,this.imageAtlas.image,n.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new At(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)}queryRenderedFeatures(t,n,a,c,d,x,b,S,C,A){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:c,cameraQueryGeometry:d,scale:x,tileSize:this.tileSize,pixelPosMatrix:A,transform:S,params:b,queryPadding:this.queryPadding*C},t,n,a):{}}querySourceFeatures(t,n){const a=this.latestFeatureIndex;if(!a||!a.rawTileData)return;const c=a.loadVTLayers(),d=n&&n.sourceLayer?n.sourceLayer:"",x=c._geojsonTileLayer||c[d];if(!x)return;const b=s.a6(n&&n.filter),{z:S,x:C,y:A}=this.tileID.canonical,P={z:S,x:C,y:A};for(let R=0;Ra)c=!1;else if(n)if(this.expirationTime{this.remove(t,d)},a)),this.data[c].push(d),this.order.push(c),this.order.length>this.max){const x=this._getAndRemoveByKey(this.order[0]);x&&this.onRemove(x)}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 n=this.data[t].shift();return n.timeout&&clearTimeout(n.timeout),this.data[t].length===0&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),n.value}getByKey(t){const n=this.data[t];return n?n[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,n){if(!this.has(t))return this;const a=t.wrapped().key,c=n===void 0?0:this.data[a].indexOf(n),d=this.data[a][c];return this.data[a].splice(c,1),d.timeout&&clearTimeout(d.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(d.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const n=this._getAndRemoveByKey(this.order[0]);n&&this.onRemove(n)}return this}filter(t){const n=[];for(const a in this.data)for(const c of this.data[a])t(c.value)||n.push(c);for(const a of n)this.remove(a.value.tileID,a)}}class Se{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(t,n,a){const c=String(n);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][c]=this.stateChanges[t][c]||{},s.e(this.stateChanges[t][c],a),this.deletedStates[t]===null){this.deletedStates[t]={};for(const d in this.state[t])d!==c&&(this.deletedStates[t][d]=null)}else if(this.deletedStates[t]&&this.deletedStates[t][c]===null){this.deletedStates[t][c]={};for(const d in this.state[t][c])a[d]||(this.deletedStates[t][c][d]=null)}else for(const d in a)this.deletedStates[t]&&this.deletedStates[t][c]&&this.deletedStates[t][c][d]===null&&delete this.deletedStates[t][c][d]}removeFeatureState(t,n,a){if(this.deletedStates[t]===null)return;const c=String(n);if(this.deletedStates[t]=this.deletedStates[t]||{},a&&n!==void 0)this.deletedStates[t][c]!==null&&(this.deletedStates[t][c]=this.deletedStates[t][c]||{},this.deletedStates[t][c][a]=null);else if(n!==void 0)if(this.stateChanges[t]&&this.stateChanges[t][c])for(a in this.deletedStates[t][c]={},this.stateChanges[t][c])this.deletedStates[t][c][a]=null;else this.deletedStates[t][c]=null;else this.deletedStates[t]=null}getState(t,n){const a=String(n),c=s.e({},(this.state[t]||{})[a],(this.stateChanges[t]||{})[a]);if(this.deletedStates[t]===null)return{};if(this.deletedStates[t]){const d=this.deletedStates[t][n];if(d===null)return{};for(const x in d)delete c[x]}return c}initializeTileState(t,n){t.setFeatureState(this.state,n)}coalesceChanges(t,n){const a={};for(const c in this.stateChanges){this.state[c]=this.state[c]||{};const d={};for(const x in this.stateChanges[c])this.state[c][x]||(this.state[c][x]={}),s.e(this.state[c][x],this.stateChanges[c][x]),d[x]=this.state[c][x];a[c]=d}for(const c in this.deletedStates){this.state[c]=this.state[c]||{};const d={};if(this.deletedStates[c]===null)for(const x in this.state[c])d[x]={},this.state[c][x]={};else for(const x in this.deletedStates[c]){if(this.deletedStates[c][x]===null)this.state[c][x]={};else for(const b of Object.keys(this.deletedStates[c][x]))delete this.state[c][x][b];d[x]=this.state[c][x]}a[c]=a[c]||{},s.e(a[c],d)}if(this.stateChanges={},this.deletedStates={},Object.keys(a).length!==0)for(const c in t)t[c].setFeatureState(a,n)}}class en extends s.E{constructor(t,n,a){super(),this.id=t,this.dispatcher=a,this.on("data",c=>{c.dataType==="source"&&c.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&c.dataType==="source"&&c.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((c,d,x,b)=>{const S=new(Bi(d.type))(c,d,x,b);if(S.id!==c)throw new Error(`Expected Source id to be ${c} instead of ${S.id}`);return S})(t,n,a,this),this._tiles={},this._cache=new jo(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new Se,this._didEmitContent=!1,this._updated=!1}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(t)}onRemove(t){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const t in this._tiles){const n=this._tiles[t];if(n.state!=="loaded"&&n.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,this.terrain)}_loadTile(t,n){return this._source.loadTile(t,n)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,()=>{})}_abortTile(t){this._source.abortTile&&this._source.abortTile(t,()=>{}),this._source.fire(new s.k("dataabort",{tile:t,coord:t.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const n in this._tiles){const a=this._tiles[n];a.upload(t),a.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(t=>t.tileID).sort(In).map(t=>t.key)}getRenderableIds(t){const n=[];for(const a in this._tiles)this._isIdRenderable(a,t)&&n.push(this._tiles[a]);return t?n.sort((a,c)=>{const d=a.tileID,x=c.tileID,b=new s.P(d.canonical.x,d.canonical.y)._rotate(this.transform.angle),S=new s.P(x.canonical.x,x.canonical.y)._rotate(this.transform.angle);return d.overscaledZ-x.overscaledZ||S.y-b.y||S.x-b.x}).map(a=>a.tileID.key):n.map(a=>a.tileID).sort(In).map(a=>a.key)}hasRenderableParent(t){const n=this.findLoadedParent(t,0);return!!n&&this._isIdRenderable(n.tileID.key)}_isIdRenderable(t,n){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(n||!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,n){const a=this._tiles[t];a&&(a.state!=="loading"&&(a.state=n),this._loadTile(a,this._tileLoaded.bind(this,a,t,n)))}_tileLoaded(t,n,a,c){if(c)return t.state="errored",void(c.status!==404?this._source.fire(new s.j(c,{tile:t})):this.update(this.transform,this.terrain));t.timeAdded=s.h.now(),a==="expired"&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(n,t),this.getSource().type==="raster-dem"&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),t.aborted||this._source.fire(new s.k("data",{dataType:"source",tile:t,coord:t.tileID}))}_backfillDEM(t){const n=this.getRenderableIds();for(let c=0;c1||(Math.abs(x)>1&&(Math.abs(x+S)===1?x+=S:Math.abs(x-S)===1&&(x-=S)),d.dem&&c.dem&&(c.dem.backfillBorder(d.dem,x,b),c.neighboringTiles&&c.neighboringTiles[C]&&(c.neighboringTiles[C].backfilled=!0)))}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,n,a,c){for(const d in this._tiles){let x=this._tiles[d];if(c[d]||!x.hasData()||x.tileID.overscaledZ<=n||x.tileID.overscaledZ>a)continue;let b=x.tileID;for(;x&&x.tileID.overscaledZ>n+1;){const C=x.tileID.scaledTo(x.tileID.overscaledZ-1);x=this._tiles[C.key],x&&x.hasData()&&(b=C)}let S=b;for(;S.overscaledZ>n;)if(S=S.scaledTo(S.overscaledZ-1),t[S.key]){c[b.key]=b;break}}}findLoadedParent(t,n){if(t.key in this._loadedParentTiles){const a=this._loadedParentTiles[t.key];return a&&a.tileID.overscaledZ>=n?a:null}for(let a=t.overscaledZ-1;a>=n;a--){const c=t.scaledTo(a),d=this._getLoadedTile(c);if(d)return d}}_getLoadedTile(t){const n=this._tiles[t.key];return n&&n.hasData()?n:this._cache.getByKey(t.wrapped().key)}updateCacheSize(t){const n=Math.ceil(t.width/this._source.tileSize)+1,a=Math.ceil(t.height/this._source.tileSize)+1,c=Math.floor(n*a*(this._maxTileCacheZoomLevels===null?s.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),d=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,c):c;this._cache.setMaxSize(d)}handleWrapJump(t){const n=Math.round((t-(this._prevLng===void 0?t:this._prevLng))/360);if(this._prevLng=t,n){const a={};for(const c in this._tiles){const d=this._tiles[c];d.tileID=d.tileID.unwrapTo(d.tileID.wrap+n),a[d.tileID.key]=d}this._tiles=a;for(const c in this._timers)clearTimeout(this._timers[c]),delete this._timers[c];for(const c in this._tiles)this._setTileReloadTimer(c,this._tiles[c])}}update(t,n){if(this.transform=t,this.terrain=n,!this._sourceLoaded||this._paused)return;let a;this.updateCacheSize(t),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?a=t.getVisibleUnwrappedCoordinates(this._source.tileID).map(A=>new s.O(A.canonical.z,A.wrap,A.canonical.z,A.canonical.x,A.canonical.y)):(a=t.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:n}),this._source.hasTile&&(a=a.filter(A=>this._source.hasTile(A)))):a=[];const c=t.coveringZoomLevel(this._source),d=Math.max(c-en.maxOverzooming,this._source.minzoom),x=Math.max(c+en.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const A={};for(const P of a)if(P.canonical.z>this._source.minzoom){const R=P.scaledTo(P.canonical.z-1);A[R.key]=R;const W=P.scaledTo(Math.max(this._source.minzoom,Math.min(P.canonical.z,5)));A[W.key]=W}a=a.concat(Object.values(A))}const b=a.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,b&&this.fire(new s.k("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const S=this._updateRetainedTiles(a,c);if(Ii(this._source.type)){const A={},P={},R=Object.keys(S),W=s.h.now();for(const G of R){const K=S[G],q=this._tiles[G];if(!q||q.fadeEndTime!==0&&q.fadeEndTime<=W)continue;const le=this.findLoadedParent(K,d);le&&(this._addTile(le.tileID),A[le.tileID.key]=le.tileID),P[G]=K}this._retainLoadedChildren(P,c,x,S);for(const G in A)S[G]||(this._coveredTiles[G]=!0,S[G]=A[G]);if(n){const G={},K={};for(const q of a)this._tiles[q.key].hasData()?G[q.key]=q:K[q.key]=q;for(const q in K){const le=K[q].children(this._source.maxzoom);this._tiles[le[0].key]&&this._tiles[le[1].key]&&this._tiles[le[2].key]&&this._tiles[le[3].key]&&(G[le[0].key]=S[le[0].key]=le[0],G[le[1].key]=S[le[1].key]=le[1],G[le[2].key]=S[le[2].key]=le[2],G[le[3].key]=S[le[3].key]=le[3],delete K[q])}for(const q in K){const le=this.findLoadedParent(K[q],this._source.minzoom);if(le){G[le.tileID.key]=S[le.tileID.key]=le.tileID;for(const me in G)G[me].isChildOf(le.tileID)&&delete G[me]}}for(const q in this._tiles)G[q]||(this._coveredTiles[q]=!0)}}for(const A in S)this._tiles[A].clearFadeHold();const C=s.ab(this._tiles,S);for(const A of C){const P=this._tiles[A];P.hasSymbolBuckets&&!P.holdingForFade()?P.setHoldDuration(this.map._fadeDuration):P.hasSymbolBuckets&&!P.symbolFadeFinished()||this._removeTile(A)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t)}_updateRetainedTiles(t,n){const a={},c={},d=Math.max(n-en.maxOverzooming,this._source.minzoom),x=Math.max(n+en.maxUnderzooming,this._source.minzoom),b={};for(const S of t){const C=this._addTile(S);a[S.key]=S,C.hasData()||nthis._source.maxzoom){const P=S.children(this._source.maxzoom)[0],R=this.getTile(P);if(R&&R.hasData()){a[P.key]=P;continue}}else{const P=S.children(this._source.maxzoom);if(a[P[0].key]&&a[P[1].key]&&a[P[2].key]&&a[P[3].key])continue}let A=C.wasRequested();for(let P=S.overscaledZ-1;P>=d;--P){const R=S.scaledTo(P);if(c[R.key])break;if(c[R.key]=!0,C=this.getTile(R),!C&&A&&(C=this._addTile(R)),C){const W=C.hasData();if((A||W)&&(a[R.key]=R),A=C.wasRequested(),W)break}}}return a}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const n=[];let a,c=this._tiles[t].tileID;for(;c.overscaledZ>0;){if(c.key in this._loadedParentTiles){a=this._loadedParentTiles[c.key];break}n.push(c.key);const d=c.scaledTo(c.overscaledZ-1);if(a=this._getLoadedTile(d),a)break;c=d}for(const d of n)this._loadedParentTiles[d]=a}}_addTile(t){let n=this._tiles[t.key];if(n)return n;n=this._cache.getAndRemove(t),n&&(this._setTileReloadTimer(t.key,n),n.tileID=t,this._state.initializeTileState(n,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,n)));const a=n;return n||(n=new wo(t,this._source.tileSize*t.overscaleFactor()),this._loadTile(n,this._tileLoaded.bind(this,n,t.key,n.state))),n.uses++,this._tiles[t.key]=n,a||this._source.fire(new s.k("dataloading",{tile:n,coord:n.tileID,dataType:"source"})),n}_setTileReloadTimer(t,n){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const a=n.getExpiryTimeout();a&&(this._timers[t]=setTimeout(()=>{this._reloadTile(t,"expired"),delete this._timers[t]},a))}_removeTile(t){const n=this._tiles[t];n&&(n.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),n.uses>0||(n.hasData()&&n.state!=="reloading"?this._cache.add(n.tileID,n,n.getExpiryTimeout()):(n.aborted=!0,this._abortTile(n),this._unloadTile(n))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(t);this._cache.reset()}tilesIn(t,n,a){const c=[],d=this.transform;if(!d)return c;const x=a?d.getCameraQueryGeometry(t):t,b=t.map(G=>d.pointCoordinate(G,this.terrain)),S=x.map(G=>d.pointCoordinate(G,this.terrain)),C=this.getIds();let A=1/0,P=1/0,R=-1/0,W=-1/0;for(const G of S)A=Math.min(A,G.x),P=Math.min(P,G.y),R=Math.max(R,G.x),W=Math.max(W,G.y);for(let G=0;G=0&&ee[1].y+me>=0){const ce=b.map(xe=>q.getTilePoint(xe)),ve=S.map(xe=>q.getTilePoint(xe));c.push({tile:K,tileID:q,queryGeometry:ce,cameraQueryGeometry:ve,scale:le})}}return c}getVisibleCoordinates(t){const n=this.getRenderableIds(t).map(a=>this._tiles[a].tileID);for(const a of n)a.posMatrix=this.transform.calculatePosMatrix(a.toUnwrapped());return n}hasTransition(){if(this._source.hasTransition())return!0;if(Ii(this._source.type)){const t=s.h.now();for(const n in this._tiles)if(this._tiles[n].fadeEndTime>=t)return!0}return!1}setFeatureState(t,n,a){this._state.updateState(t=t||"_geojsonTileLayer",n,a)}removeFeatureState(t,n,a){this._state.removeFeatureState(t=t||"_geojsonTileLayer",n,a)}getFeatureState(t,n){return this._state.getState(t=t||"_geojsonTileLayer",n)}setDependencies(t,n,a){const c=this._tiles[t];c&&c.setDependencies(n,a)}reloadTilesForDependencies(t,n){for(const a in this._tiles)this._tiles[a].hasDependency(t,n)&&this._reloadTile(a,"reloading");this._cache.filter(a=>!a.hasDependency(t,n))}}function In(u,t){const n=Math.abs(2*u.wrap)-+(u.wrap<0),a=Math.abs(2*t.wrap)-+(t.wrap<0);return u.overscaledZ-t.overscaledZ||a-n||t.canonical.y-u.canonical.y||t.canonical.x-u.canonical.x}function Ii(u){return u==="raster"||u==="image"||u==="video"}en.maxOverzooming=10,en.maxUnderzooming=3;const ti="mapboxgl_preloaded_worker_pool";class Vn{constructor(){this.active={}}acquire(t){if(!this.workers)for(this.workers=[];this.workers.length{n.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[ti]}numActive(){return Object.keys(this.active).length}}const En=Math.floor(s.h.hardwareConcurrency/2);let Un;function qo(){return Un||(Un=new Vn),Un}Vn.workerCount=s.ac(globalThis)?Math.max(Math.min(En,3),1):1;class So{constructor(t,n){this.reset(t,n)}reset(t,n){this.points=t||[],this._distances=[0];for(let a=1;a0?(c-x)/b:0;return this.points[d].mult(1-S).add(this.points[n].mult(S))}}function Cn(u,t){let n=!0;return u==="always"||u!=="never"&&t!=="never"||(n=!1),n}class $n{constructor(t,n,a){const c=this.boxCells=[],d=this.circleCells=[];this.xCellCount=Math.ceil(t/a),this.yCellCount=Math.ceil(n/a);for(let x=0;xthis.width||c<0||n>this.height)return[];const S=[];if(t<=0&&n<=0&&this.width<=a&&this.height<=c){if(d)return[{key:null,x1:t,y1:n,x2:a,y2:c}];for(let C=0;C0}hitTestCircle(t,n,a,c,d){const x=t-a,b=t+a,S=n-a,C=n+a;if(b<0||x>this.width||C<0||S>this.height)return!1;const A=[];return this._forEachCell(x,S,b,C,this._queryCellCircle,A,{hitTest:!0,overlapMode:c,circle:{x:t,y:n,radius:a},seenUids:{box:{},circle:{}}},d),A.length>0}_queryCell(t,n,a,c,d,x,b,S){const{seenUids:C,hitTest:A,overlapMode:P}=b,R=this.boxCells[d];if(R!==null){const G=this.bboxes;for(const K of R)if(!C.box[K]){C.box[K]=!0;const q=4*K,le=this.boxKeys[K];if(t<=G[q+2]&&n<=G[q+3]&&a>=G[q+0]&&c>=G[q+1]&&(!S||S(le))&&(!A||!Cn(P,le.overlapMode))&&(x.push({key:le,x1:G[q],y1:G[q+1],x2:G[q+2],y2:G[q+3]}),A))return!0}}const W=this.circleCells[d];if(W!==null){const G=this.circles;for(const K of W)if(!C.circle[K]){C.circle[K]=!0;const q=3*K,le=this.circleKeys[K];if(this._circleAndRectCollide(G[q],G[q+1],G[q+2],t,n,a,c)&&(!S||S(le))&&(!A||!Cn(P,le.overlapMode))){const me=G[q],ee=G[q+1],ce=G[q+2];if(x.push({key:le,x1:me-ce,y1:ee-ce,x2:me+ce,y2:ee+ce}),A)return!0}}}return!1}_queryCellCircle(t,n,a,c,d,x,b,S){const{circle:C,seenUids:A,overlapMode:P}=b,R=this.boxCells[d];if(R!==null){const G=this.bboxes;for(const K of R)if(!A.box[K]){A.box[K]=!0;const q=4*K,le=this.boxKeys[K];if(this._circleAndRectCollide(C.x,C.y,C.radius,G[q+0],G[q+1],G[q+2],G[q+3])&&(!S||S(le))&&!Cn(P,le.overlapMode))return x.push(!0),!0}}const W=this.circleCells[d];if(W!==null){const G=this.circles;for(const K of W)if(!A.circle[K]){A.circle[K]=!0;const q=3*K,le=this.circleKeys[K];if(this._circlesCollide(G[q],G[q+1],G[q+2],C.x,C.y,C.radius)&&(!S||S(le))&&!Cn(P,le.overlapMode))return x.push(!0),!0}}}_forEachCell(t,n,a,c,d,x,b,S){const C=this._convertToXCellCoord(t),A=this._convertToYCellCoord(n),P=this._convertToXCellCoord(a),R=this._convertToYCellCoord(c);for(let W=C;W<=P;W++)for(let G=A;G<=R;G++)if(d.call(this,t,n,a,c,this.xCellCount*G+W,x,b,S))return}_convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}_convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}_circlesCollide(t,n,a,c,d,x){const b=c-t,S=d-n,C=a+x;return C*C>b*b+S*S}_circleAndRectCollide(t,n,a,c,d,x,b){const S=(x-c)/2,C=Math.abs(t-(c+S));if(C>S+a)return!1;const A=(b-d)/2,P=Math.abs(n-(d+A));if(P>A+a)return!1;if(C<=S||P<=A)return!0;const R=C-S,W=P-A;return R*R+W*W<=a*a}}function qe(u,t,n,a,c){const d=s.Z();return t?(s.a0(d,d,[1/c,1/c,1]),n||s.ae(d,d,a.angle)):s.a1(d,a.labelPlaneMatrix,u),d}function fn(u,t,n,a,c){if(t){const d=s.af(u);return s.a0(d,d,[c,c,1]),n||s.ae(d,d,-a.angle),d}return a.glCoordMatrix}function er(u,t,n){let a;n?(a=[u.x,u.y,n(u.x,u.y),1],s.ag(a,a,t)):(a=[u.x,u.y,0,1],J(a,a,t));const c=a[3];return{point:new s.P(a[0]/c,a[1]/c),signedDistanceFromCamera:c}}function Zo(u,t){return .5+u/t*.5}function tn(u,t){const n=u[0]/u[3],a=u[1]/u[3];return n>=-t[0]&&n<=t[0]&&a>=-t[1]&&a<=t[1]}function We(u,t,n,a,c,d,x,b,S,C){const A=a?u.textSizeData:u.iconSizeData,P=s.ah(A,n.transform.zoom),R=[256/n.width*2+1,256/n.height*2+1],W=a?u.text.dynamicLayoutVertexArray:u.icon.dynamicLayoutVertexArray;W.clear();const G=u.lineVertexArray,K=a?u.text.placedSymbolArray:u.icon.placedSymbolArray,q=n.transform.width/n.transform.height;let le=!1;for(let me=0;meMath.abs(n.x-t.x)*a?{useVertical:!0}:(u===s.ai.vertical?t.yn.x)?{needsFlipping:!0}:null}function Vr(u,t,n,a,c,d,x,b,S,C,A,P,R,W,G,K){const q=t/24,le=u.lineOffsetX*q,me=u.lineOffsetY*q;let ee;if(u.numGlyphs>1){const ce=u.glyphStartIndex+u.numGlyphs,ve=u.lineStartIndex,xe=u.lineStartIndex+u.lineLength,Ce=Bt(q,b,le,me,n,A,P,u,S,d,R,G,K);if(!Ce)return{notEnoughRoom:!0};const Fe=er(Ce.first.point,x,K).point,Pe=er(Ce.last.point,x,K).point;if(a&&!n){const je=Mt(u.writingMode,Fe,Pe,W);if(je)return je}ee=[Ce.first];for(let je=u.glyphStartIndex+1;je0?Fe.point:mn(P,Ce,ve,1,c,K),je=Mt(u.writingMode,ve,Pe,W);if(je)return je}const ce=L(q*b.getoffsetX(u.glyphStartIndex),le,me,n,A,P,u.segment,u.lineStartIndex,u.lineStartIndex+u.lineLength,S,d,R,G,K);if(!ce)return{notEnoughRoom:!0};ee=[ce]}for(const ce of ee)s.ak(C,ce.point,ce.angle);return{}}function mn(u,t,n,a,c,d){const x=er(u.add(u.sub(t)._unit()),c,d).point,b=n.sub(x);return n.add(b._mult(a/b.mag()))}function It(u,t){const{projectionCache:n,lineVertexArray:a,labelPlaneMatrix:c,tileAnchorPoint:d,distanceFromAnchor:x,getElevation:b,previousVertex:S,direction:C,absOffsetX:A}=t;if(n.projections[u])return n.projections[u];const P=new s.P(a.getx(u),a.gety(u)),R=er(P,c,b);if(R.signedDistanceFromCamera>0)return n.projections[u]=R.point,R.point;const W=u-C;return mn(x===0?d:new s.P(a.getx(W),a.gety(W)),P,S,A-x+1,c,b)}function Mn(u,t,n){return u._unit()._perp()._mult(t*n)}function X(u,t,n,a,c,d,x,b){const{projectionCache:S,direction:C}=b;if(S.offsets[u])return S.offsets[u];const A=n.add(t);if(u+C=c)return S.offsets[u]=A,A;const P=It(u+C,b),R=Mn(P.sub(n),x,C),W=n.add(R),G=P.add(R);return S.offsets[u]=s.al(d,A,W,G)||A,S.offsets[u]}function L(u,t,n,a,c,d,x,b,S,C,A,P,R,W){const G=a?u-t:u+t;let K=G>0?1:-1,q=0;a&&(K*=-1,q=Math.PI),K<0&&(q+=Math.PI);let le,me,ee=K>0?b+x:b+x+1,ce=c,ve=c,xe=0,Ce=0;const Fe=Math.abs(G),Pe=[];let je;for(;xe+Ce<=Fe;){if(ee+=K,ee=S)return null;xe+=Ce,ve=ce,me=le;const Qe={projectionCache:P,lineVertexArray:C,labelPlaneMatrix:A,tileAnchorPoint:d,distanceFromAnchor:xe,getElevation:W,previousVertex:ve,direction:K,absOffsetX:Fe};if(ce=It(ee,Qe),n===0)Pe.push(ve),je=ce.sub(ve);else{let Ct;const gt=ce.sub(ve);Ct=gt.mag()===0?Mn(It(ee+K,Qe).sub(ce),n,K):Mn(gt,n,K),me||(me=ve.add(Ct)),le=X(ee,Ct,ce,b,S,me,n,Qe),Pe.push(me),je=le.sub(me)}Ce=je.mag()}const dt=je._mult((Fe-xe)/Ce)._add(me||ve),Qt=q+Math.atan2(ce.y-ve.y,ce.x-ve.x);return Pe.push(dt),{point:dt,angle:R?Qt:0,path:Pe}}const F=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function j(u,t){for(let n=0;n=1;jt--)gt.push(Qe.path[jt]);for(let jt=1;jter($t,S,G));gt=jt.some($t=>$t.signedDistanceFromCamera<=0)?[]:jt.map($t=>$t.point)}let Kt=[];if(gt.length>0){const jt=gt[0].clone(),$t=gt[0].clone();for(let pr=1;pr=je.x&&$t.x<=dt.x&&jt.y>=je.y&&$t.y<=dt.y?[gt]:$t.xdt.x||$t.ydt.y?[]:s.am([gt],je.x,je.y,dt.x,dt.y)}for(const jt of Kt){Qt.reset(jt,.25*Pe);let $t=0;$t=Qt.length<=.5*Pe?1:Math.ceil(Qt.paddedLength/Mi)+1;for(let pr=0;pr<$t;pr++){const qi=pr/Math.max($t-1,1),Xr=Qt.lerp(qi),kr=Xr.x+Q,br=Xr.y+Q;K.push(kr,br,Pe,0);const Xn=kr-Pe,Qi=br-Pe,Do=kr+Pe,Fo=br+Pe;if(Fe=Fe&&this.isOffscreen(Xn,Qi,Do,Fo),Ce=Ce||this.isInsideGrid(Xn,Qi,Do,Fo),t!=="always"&&this.grid.hitTestCircle(kr,br,Pe,t,P)&&(xe=!0,!C))return{circles:[],offscreen:!1,collisionDetected:xe}}}}return{circles:!C&&xe||!Ce||me=this.screenRightBoundary||cthis.screenBottomBoundary}isInsideGrid(t,n,a,c){return a>=0&&t=0&&na.collisionGroupID===n}}return this.collisionGroups[t]}}function kt(u,t,n,a,c){const{horizontalAlign:d,verticalAlign:x}=s.au(u);return new s.P(-(d-.5)*t+a[0]*c,-(x-.5)*n+a[1]*c)}function ut(u,t,n,a,c,d){const{x1:x,x2:b,y1:S,y2:C,anchorPointX:A,anchorPointY:P}=u,R=new s.P(t,n);return a&&R._rotate(c?d:-d),{x1:x+R.x,y1:S+R.y,x2:b+R.x,y2:C+R.y,anchorPointX:A,anchorPointY:P}}class vt{constructor(t,n,a,c,d){this.transform=t.clone(),this.terrain=n,this.collisionIndex=new he(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=a,this.retainedQueryData={},this.collisionGroups=new mt(c),this.collisionCircleArrays={},this.prevPlacement=d,d&&(d.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(t,n,a,c){const d=a.getBucket(n),x=a.latestFeatureIndex;if(!d||!x||n.id!==d.layerIds[0])return;const b=a.collisionBoxArray,S=d.layers[0].layout,C=Math.pow(2,this.transform.zoom-a.tileID.overscaledZ),A=a.tileSize/s.N,P=this.transform.calculatePosMatrix(a.tileID.toUnwrapped()),R=S.get("text-pitch-alignment")==="map",W=S.get("text-rotation-alignment")==="map",G=oe(a,1,this.transform.zoom),K=qe(P,R,W,this.transform,G);let q=null;if(R){const me=fn(P,R,W,this.transform,G);q=s.a1([],this.transform.labelPlaneMatrix,me)}this.retainedQueryData[d.bucketInstanceId]=new Ee(d.bucketInstanceId,x,d.sourceLayerIndex,d.index,a.tileID);const le={bucket:d,layout:S,posMatrix:P,textLabelPlaneMatrix:K,labelToScreenMatrix:q,scale:C,textPixelRatio:A,holdingForFade:a.holdingForFade(),collisionBoxArray:b,partiallyEvaluatedTextSize:s.ah(d.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(d.sourceID)};if(c)for(const me of d.sortKeyRanges){const{sortKey:ee,symbolInstanceStart:ce,symbolInstanceEnd:ve}=me;t.push({sortKey:ee,symbolInstanceStart:ce,symbolInstanceEnd:ve,parameters:le})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:d.symbolInstances.length,parameters:le})}attemptAnchorPlacement(t,n,a,c,d,x,b,S,C,A,P,R,W,G,K,q){const le=s.aq[t.textAnchor],me=[t.textOffset0,t.textOffset1],ee=kt(le,a,c,me,d),ce=this.collisionIndex.placeCollisionBox(ut(n,ee.x,ee.y,x,b,this.transform.angle),P,S,C,A.predicate,q);if((!K||this.collisionIndex.placeCollisionBox(ut(K,ee.x,ee.y,x,b,this.transform.angle),P,S,C,A.predicate,q).box.length!==0)&&ce.box.length>0){let ve;if(this.prevPlacement&&this.prevPlacement.variableOffsets[R.crossTileID]&&this.prevPlacement.placements[R.crossTileID]&&this.prevPlacement.placements[R.crossTileID].text&&(ve=this.prevPlacement.variableOffsets[R.crossTileID].anchor),R.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[R.crossTileID]={textOffset:me,width:a,height:c,anchor:le,textBoxScale:d,prevAnchor:ve},this.markUsedJustification(W,le,R,G),W.allowVerticalPlacement&&(this.markUsedOrientation(W,G,R),this.placedOrientations[R.crossTileID]=G),{shift:ee,placedGlyphBoxes:ce}}}placeLayerBucketPart(t,n,a){const{bucket:c,layout:d,posMatrix:x,textLabelPlaneMatrix:b,labelToScreenMatrix:S,textPixelRatio:C,holdingForFade:A,collisionBoxArray:P,partiallyEvaluatedTextSize:R,collisionGroup:W}=t.parameters,G=d.get("text-optional"),K=d.get("icon-optional"),q=s.ar(d,"text-overlap","text-allow-overlap"),le=q==="always",me=s.ar(d,"icon-overlap","icon-allow-overlap"),ee=me==="always",ce=d.get("text-rotation-alignment")==="map",ve=d.get("text-pitch-alignment")==="map",xe=d.get("icon-text-fit")!=="none",Ce=d.get("symbol-z-order")==="viewport-y",Fe=le&&(ee||!c.hasIconData()||K),Pe=ee&&(le||!c.hasTextData()||G);!c.collisionArrays&&P&&c.deserializeCollisionBoxes(P);const je=this.retainedQueryData[c.bucketInstanceId].tileID,dt=this.terrain?(Qe,Ct)=>this.terrain.getElevation(je,Qe,Ct):null,Qt=(Qe,Ct)=>{var gt,Mi;if(n[Qe.crossTileID])return;if(A)return void(this.placements[Qe.crossTileID]=new Te(!1,!1,!1));let Kt=!1,jt=!1,$t=!0,pr=null,qi={box:null,offscreen:null},Xr={box:null,offscreen:null},kr=null,br=null,Xn=null,Qi=0,Do=0,Fo=0;Ct.textFeatureIndex?Qi=Ct.textFeatureIndex:Qe.useRuntimeCollisionCircles&&(Qi=Qe.featureIndex),Ct.verticalTextFeatureIndex&&(Do=Ct.verticalTextFeatureIndex);const _s=Ct.textBox;if(_s){const ln=fr=>{let Pr=s.ai.horizontal;if(c.allowVerticalPlacement&&!fr&&this.prevPlacement){const Ln=this.prevPlacement.placedOrientations[Qe.crossTileID];Ln&&(this.placedOrientations[Qe.crossTileID]=Ln,Pr=Ln,this.markUsedOrientation(c,Pr,Qe))}return Pr},Kr=(fr,Pr)=>{if(c.allowVerticalPlacement&&Qe.numVerticalGlyphVertices>0&&Ct.verticalTextBox){for(const Ln of c.writingModes)if(Ln===s.ai.vertical?(qi=Pr(),Xr=qi):qi=fr(),qi&&qi.box&&qi.box.length)break}else qi=fr()},vn=Qe.textAnchorOffsetStartIndex,Bs=Qe.textAnchorOffsetEndIndex;if(Bs===vn){const fr=(Pr,Ln)=>{const mr=this.collisionIndex.placeCollisionBox(Pr,q,C,x,W.predicate,dt);return mr&&mr.box&&mr.box.length&&(this.markUsedOrientation(c,Ln,Qe),this.placedOrientations[Qe.crossTileID]=Ln),mr};Kr(()=>fr(_s,s.ai.horizontal),()=>{const Pr=Ct.verticalTextBox;return c.allowVerticalPlacement&&Qe.numVerticalGlyphVertices>0&&Pr?fr(Pr,s.ai.vertical):{box:null,offscreen:null}}),ln(qi&&qi.box&&qi.box.length)}else{let fr=s.aq[(Mi=(gt=this.prevPlacement)===null||gt===void 0?void 0:gt.variableOffsets[Qe.crossTileID])===null||Mi===void 0?void 0:Mi.anchor];const Pr=(mr,Ns,ml)=>{const Vc=mr.x2-mr.x1,Uc=mr.y2-mr.y1,wu=Qe.textBoxScale,Jl=xe&&me==="never"?Ns:null;let Ro={box:[],offscreen:!1},Vs=q==="never"?1:2,Oo="never";fr&&Vs++;for(let ao=0;aoPr(_s,Ct.iconBox,s.ai.horizontal),()=>{const mr=Ct.verticalTextBox;return c.allowVerticalPlacement&&!(qi&&qi.box&&qi.box.length)&&Qe.numVerticalGlyphVertices>0&&mr?Pr(mr,Ct.verticalIconBox,s.ai.vertical):{box:null,offscreen:null}}),qi&&(Kt=qi.box,$t=qi.offscreen);const Ln=ln(qi&&qi.box);if(!Kt&&this.prevPlacement){const mr=this.prevPlacement.variableOffsets[Qe.crossTileID];mr&&(this.variableOffsets[Qe.crossTileID]=mr,this.markUsedJustification(c,mr.anchor,Qe,Ln))}}}if(kr=qi,Kt=kr&&kr.box&&kr.box.length>0,$t=kr&&kr.offscreen,Qe.useRuntimeCollisionCircles){const ln=c.text.placedSymbolArray.get(Qe.centerJustifiedTextSymbolIndex),Kr=s.aj(c.textSizeData,R,ln),vn=d.get("text-padding");br=this.collisionIndex.placeCollisionCircles(q,ln,c.lineVertexArray,c.glyphOffsetArray,Kr,x,b,S,a,ve,W.predicate,Qe.collisionCircleDiameter,vn,dt),br.circles.length&&br.collisionDetected&&!a&&s.w("Collisions detected, but collision boxes are not shown"),Kt=le||br.circles.length>0&&!br.collisionDetected,$t=$t&&br.offscreen}if(Ct.iconFeatureIndex&&(Fo=Ct.iconFeatureIndex),Ct.iconBox){const ln=Kr=>{const vn=xe&&pr?ut(Kr,pr.x,pr.y,ce,ve,this.transform.angle):Kr;return this.collisionIndex.placeCollisionBox(vn,me,C,x,W.predicate,dt)};Xr&&Xr.box&&Xr.box.length&&Ct.verticalIconBox?(Xn=ln(Ct.verticalIconBox),jt=Xn.box.length>0):(Xn=ln(Ct.iconBox),jt=Xn.box.length>0),$t=$t&&Xn.offscreen}const Os=G||Qe.numHorizontalGlyphVertices===0&&Qe.numVerticalGlyphVertices===0,Ea=K||Qe.numIconVertices===0;if(Os||Ea?Ea?Os||(jt=jt&&Kt):Kt=jt&&Kt:jt=Kt=jt&&Kt,Kt&&kr&&kr.box&&this.collisionIndex.insertCollisionBox(kr.box,q,d.get("text-ignore-placement"),c.bucketInstanceId,Xr&&Xr.box&&Do?Do:Qi,W.ID),jt&&Xn&&this.collisionIndex.insertCollisionBox(Xn.box,me,d.get("icon-ignore-placement"),c.bucketInstanceId,Fo,W.ID),br&&(Kt&&this.collisionIndex.insertCollisionCircles(br.circles,q,d.get("text-ignore-placement"),c.bucketInstanceId,Qi,W.ID),a)){const ln=c.bucketInstanceId;let Kr=this.collisionCircleArrays[ln];Kr===void 0&&(Kr=this.collisionCircleArrays[ln]=new Ie);for(let vn=0;vn=0;--Ct){const gt=Qe[Ct];Qt(c.symbolInstances.get(gt),c.collisionArrays[gt])}}else for(let Qe=t.symbolInstanceStart;Qe=0&&(t.text.placedSymbolArray.get(b).crossTileID=d>=0&&b!==d?0:a.crossTileID)}markUsedOrientation(t,n,a){const c=n===s.ai.horizontal||n===s.ai.horizontalOnly?n:0,d=n===s.ai.vertical?n:0,x=[a.leftJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.rightJustifiedTextSymbolIndex];for(const b of x)t.text.placedSymbolArray.get(b).placedOrientation=c;a.verticalPlacedTextSymbolIndex&&(t.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).placedOrientation=d)}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const n=this.prevPlacement;let a=!1;this.prevZoomAdjustment=n?n.zoomAdjustment(this.transform.zoom):0;const c=n?n.symbolFadeChange(t):1,d=n?n.opacities:{},x=n?n.variableOffsets:{},b=n?n.placedOrientations:{};for(const S in this.placements){const C=this.placements[S],A=d[S];A?(this.opacities[S]=new ae(A,c,C.text,C.icon),a=a||C.text!==A.text.placed||C.icon!==A.icon.placed):(this.opacities[S]=new ae(null,c,C.text,C.icon,C.skipFade),a=a||C.text||C.icon)}for(const S in d){const C=d[S];if(!this.opacities[S]){const A=new ae(C,c,!1,!1);A.isHidden()||(this.opacities[S]=A,a=a||C.text.placed||C.icon.placed)}}for(const S in x)this.variableOffsets[S]||!this.opacities[S]||this.opacities[S].isHidden()||(this.variableOffsets[S]=x[S]);for(const S in b)this.placedOrientations[S]||!this.opacities[S]||this.opacities[S].isHidden()||(this.placedOrientations[S]=b[S]);if(n&&n.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");a?this.lastPlacementChangeTime=t:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=n?n.lastPlacementChangeTime:t)}updateLayerOpacities(t,n){const a={};for(const c of n){const d=c.getBucket(t);d&&c.latestFeatureIndex&&t.id===d.layerIds[0]&&this.updateBucketOpacities(d,a,c.collisionBoxArray)}}updateBucketOpacities(t,n,a){t.hasTextData()&&(t.text.opacityVertexArray.clear(),t.text.hasVisibleVertices=!1),t.hasIconData()&&(t.icon.opacityVertexArray.clear(),t.icon.hasVisibleVertices=!1),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const c=t.layers[0],d=c.layout,x=new ae(null,0,!1,!1,!0),b=d.get("text-allow-overlap"),S=d.get("icon-allow-overlap"),C=c._unevaluatedLayout.hasValue("text-variable-anchor")||c._unevaluatedLayout.hasValue("text-variable-anchor-offset"),A=d.get("text-rotation-alignment")==="map",P=d.get("text-pitch-alignment")==="map",R=d.get("icon-text-fit")!=="none",W=new ae(null,0,b&&(S||!t.hasIconData()||d.get("icon-optional")),S&&(b||!t.hasTextData()||d.get("text-optional")),!0);!t.collisionArrays&&a&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(a);const G=(K,q,le)=>{for(let me=0;me0,xe=this.placedOrientations[q.crossTileID],Ce=xe===s.ai.vertical,Fe=xe===s.ai.horizontal||xe===s.ai.horizontalOnly;if(le>0||me>0){const Pe=yr(ce.text);G(t.text,le,Ce?An:Pe),G(t.text,me,Fe?An:Pe);const je=ce.text.isHidden();[q.rightJustifiedTextSymbolIndex,q.centerJustifiedTextSymbolIndex,q.leftJustifiedTextSymbolIndex].forEach(Qe=>{Qe>=0&&(t.text.placedSymbolArray.get(Qe).hidden=je||Ce?1:0)}),q.verticalPlacedTextSymbolIndex>=0&&(t.text.placedSymbolArray.get(q.verticalPlacedTextSymbolIndex).hidden=je||Fe?1:0);const dt=this.variableOffsets[q.crossTileID];dt&&this.markUsedJustification(t,dt.anchor,q,xe);const Qt=this.placedOrientations[q.crossTileID];Qt&&(this.markUsedJustification(t,"left",q,Qt),this.markUsedOrientation(t,Qt,q))}if(ve){const Pe=yr(ce.icon),je=!(R&&q.verticalPlacedIconSymbolIndex&&Ce);q.placedIconSymbolIndex>=0&&(G(t.icon,q.numIconVertices,je?Pe:An),t.icon.placedSymbolArray.get(q.placedIconSymbolIndex).hidden=ce.icon.isHidden()),q.verticalPlacedIconSymbolIndex>=0&&(G(t.icon,q.numVerticalIconVertices,je?An:Pe),t.icon.placedSymbolArray.get(q.verticalPlacedIconSymbolIndex).hidden=ce.icon.isHidden())}if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const Pe=t.collisionArrays[K];if(Pe){let je=new s.P(0,0);if(Pe.textBox||Pe.verticalTextBox){let Qt=!0;if(C){const Qe=this.variableOffsets[ee];Qe?(je=kt(Qe.anchor,Qe.width,Qe.height,Qe.textOffset,Qe.textBoxScale),A&&je._rotate(P?this.transform.angle:-this.transform.angle)):Qt=!1}Pe.textBox&&Ft(t.textCollisionBox.collisionVertexArray,ce.text.placed,!Qt||Ce,je.x,je.y),Pe.verticalTextBox&&Ft(t.textCollisionBox.collisionVertexArray,ce.text.placed,!Qt||Fe,je.x,je.y)}const dt=!!(!Fe&&Pe.verticalIconBox);Pe.iconBox&&Ft(t.iconCollisionBox.collisionVertexArray,ce.icon.placed,dt,R?je.x:0,R?je.y:0),Pe.verticalIconBox&&Ft(t.iconCollisionBox.collisionVertexArray,ce.icon.placed,!dt,R?je.x:0,R?je.y:0)}}}if(t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.text.opacityVertexArray.length!==t.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${t.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${t.text.layoutVertexArray.length}) / 4`);if(t.icon.opacityVertexArray.length!==t.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${t.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${t.icon.layoutVertexArray.length}) / 4`);if(t.bucketInstanceId in this.collisionCircleArrays){const K=this.collisionCircleArrays[t.bucketInstanceId];t.placementInvProjMatrix=K.invProjMatrix,t.placementViewportMatrix=K.viewportMatrix,t.collisionCircleArray=K.circles,delete this.collisionCircleArrays[t.bucketInstanceId]}}symbolFadeChange(t){return this.fadeDuration===0?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(t){return Math.max(0,(this.transform.zoom-t)/1.5)}hasTransitions(t){return this.stale||t-this.lastPlacementChangeTimet}setStale(){this.stale=!0}}function Ft(u,t,n,a,c){u.emplaceBack(t?1:0,n?1:0,a||0,c||0),u.emplaceBack(t?1:0,n?1:0,a||0,c||0),u.emplaceBack(t?1:0,n?1:0,a||0,c||0),u.emplaceBack(t?1:0,n?1:0,a||0,c||0)}const mi=Math.pow(2,25),Ut=Math.pow(2,24),si=Math.pow(2,17),ii=Math.pow(2,16),Ur=Math.pow(2,9),Ei=Math.pow(2,8),ur=Math.pow(2,1);function yr(u){if(u.opacity===0&&!u.placed)return 0;if(u.opacity===1&&u.placed)return 4294967295;const t=u.placed?1:0,n=Math.floor(127*u.opacity);return n*mi+t*Ut+n*si+t*ii+n*Ur+t*Ei+n*ur+t}const An=0;class xs{constructor(t){this._sortAcrossTiles=t.layout.get("symbol-z-order")!=="viewport-y"&&!t.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(t,n,a,c,d){const x=this._bucketParts;for(;this._currentTileIndexb.sortKey-S.sortKey));this._currentPartIndex!this._forceFullPlacement&&s.h.now()-c>2;for(;this._currentPlacementIndex>=0;){const x=n[t[this._currentPlacementIndex]],b=this.placement.collisionIndex.transform.zoom;if(x.type==="symbol"&&(!x.minzoom||x.minzoom<=b)&&(!x.maxzoom||x.maxzoom>b)){if(this._inProgressLayer||(this._inProgressLayer=new xs(x)),this._inProgressLayer.continuePlacement(a[x.source],this.placement,this._showCollisionBoxes,x,d))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(t){return this.placement.commit(t),this.placement}}const Io=512/s.N/2;class vr{constructor(t,n,a){this.tileID=t,this.bucketInstanceId=a,this._symbolsByKey={};const c=new Map;for(let d=0;d({x:Math.floor(S.anchorX*Io),y:Math.floor(S.anchorY*Io)})),crossTileIDs:x.map(S=>S.crossTileID)};if(b.positions.length>128){const S=new s.av(b.positions.length,16,Uint16Array);for(const{x:C,y:A}of b.positions)S.add(C,A);S.finish(),delete b.positions,b.index=S}this._symbolsByKey[d]=b}}getScaledCoordinates(t,n){const{x:a,y:c,z:d}=this.tileID.canonical,{x,y:b,z:S}=n.canonical,C=Io/Math.pow(2,S-d),A=(b*s.N+t.anchorY)*C,P=c*s.N*Io;return{x:Math.floor((x*s.N+t.anchorX)*C-a*s.N*Io),y:Math.floor(A-P)}}findMatches(t,n,a){const c=this.tileID.canonical.zt)}}class gi{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class ea{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(t){const n=Math.round((t-this.lng)/360);if(n!==0)for(const a in this.indexes){const c=this.indexes[a],d={};for(const x in c){const b=c[x];b.tileID=b.tileID.unwrapTo(b.tileID.wrap+n),d[b.tileID.key]=b}this.indexes[a]=d}this.lng=t}addBucket(t,n,a){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===n.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(let d=0;dt.overscaledZ)for(const b in x){const S=x[b];S.tileID.isChildOf(t)&&S.findMatches(n.symbolInstances,t,c)}else{const b=x[t.scaledTo(Number(d)).key];b&&b.findMatches(n.symbolInstances,t,c)}}for(let d=0;d{n[a]=!0});for(const a in this.layerIndexes)n[a]||delete this.layerIndexes[a]}}const ji=(u,t)=>s.x(u,t&&t.filter(n=>n.identifier!=="source.canvas")),jr=s.F(s.ax,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setGlyphs","setSprite"]),Go=s.F(s.ax,["setCenter","setZoom","setBearing","setPitch"]),Tr=s.aw();class Ir extends s.E{constructor(t,n={}){super(),this.map=t,this.dispatcher=new zi(qo(),this,t._getMapId()),this.imageManager=new Ge,this.imageManager.setEventedParent(this),this.glyphManager=new Lt(t._requestManager,n.localIdeographFontFamily),this.lineAtlas=new Nr(256,512),this.crossTileSymbolIndex=new jn,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new s.ay,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",s.az());const a=this;this._rtlTextPluginCallback=Ir.registerForPluginStateChange(c=>{a.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:c.pluginStatus,pluginURL:c.pluginURL},(d,x)=>{if(s.aA(d),x&&x.every(b=>b))for(const b in a.sourceCaches){const S=a.sourceCaches[b].getSource().type;S!=="vector"&&S!=="geojson"||a.sourceCaches[b].reload()}})}),this.on("data",c=>{if(c.dataType!=="source"||c.sourceDataType!=="metadata")return;const d=this.sourceCaches[c.sourceId];if(!d)return;const x=d.getSource();if(x&&x.vectorLayerIds)for(const b in this._layers){const S=this._layers[b];S.source===x.id&&this._validateLayer(S)}})}loadURL(t,n={},a){this.fire(new s.k("dataloading",{dataType:"style"})),n.validate=typeof n.validate!="boolean"||n.validate;const c=this.map._requestManager.transformRequest(t,et.Style);this._request=s.f(c,(d,x)=>{this._request=null,d?this.fire(new s.j(d)):x&&this._load(x,n,a)})}loadJSON(t,n={},a){this.fire(new s.k("dataloading",{dataType:"style"})),this._request=s.h.frame(()=>{this._request=null,n.validate=n.validate!==!1,this._load(t,n,a)})}loadEmpty(){this.fire(new s.k("dataloading",{dataType:"style"})),this._load(Tr,{validate:!1})}_load(t,n,a){var c;const d=n.transformStyle?n.transformStyle(a,t):t;if(!n.validate||!ji(this,s.y(d))){this._loaded=!0,this.stylesheet=d;for(const x in d.sources)this.addSource(x,d.sources[x],{validate:!1});d.sprite?this._loadSprite(d.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(d.glyphs),this._createLayers(),this.light=new $r(this.stylesheet.light),this.map.setTerrain((c=this.stylesheet.terrain)!==null&&c!==void 0?c:null),this.fire(new s.k("data",{dataType:"style"})),this.fire(new s.k("style.load"))}}_createLayers(){const t=s.aB(this.stylesheet.layers);this.dispatcher.broadcast("setLayers",t),this._order=t.map(n=>n.id),this._layers={},this._serializedLayers=null;for(const n of t){const a=s.aC(n);a.setEventedParent(this,{layer:{id:n.id}}),this._layers[n.id]=a}}_loadSprite(t,n=!1,a=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(c,d,x,b){const S=Nt(c),C=S.length,A=x>1?"@2x":"",P={},R={},W={};for(const{id:G,url:K}of S){const q=d.transformRequest(d.normalizeSpriteURL(K,A,".json"),et.SpriteJSON),le=`${G}_${q.url}`;P[le]=s.f(q,(ce,ve)=>{delete P[le],R[G]=ve,Jt(b,R,W,ce,C)});const me=d.transformRequest(d.normalizeSpriteURL(K,A,".png"),et.SpriteImage),ee=`${G}_${me.url}`;P[ee]=Ne.getImage(me,(ce,ve)=>{delete P[ee],W[G]=ve,Jt(b,R,W,ce,C)})}return{cancel(){for(const G of Object.values(P))G.cancel()}}}(t,this.map._requestManager,this.map.getPixelRatio(),(c,d)=>{if(this._spriteRequest=null,c)this.fire(new s.j(c));else if(d)for(const x in d){this._spritesImagesIds[x]=[];const b=this._spritesImagesIds[x]?this._spritesImagesIds[x].filter(S=>!(S in d)):[];for(const S of b)this.imageManager.removeImage(S),this._changedImages[S]=!0;for(const S in d[x]){const C=x==="default"?S:`${x}:${S}`;this._spritesImagesIds[x].push(C),C in this.imageManager.images?this.imageManager.updateImage(C,d[x][S],!1):this.imageManager.addImage(C,d[x][S]),n&&(this._changedImages[C]=!0)}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),n&&(this._changed=!0),this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.k("data",{dataType:"style"})),a&&a(c)})}_unloadSprite(){for(const t of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(t),this._changedImages[t]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.k("data",{dataType:"style"}))}_validateLayer(t){const n=this.sourceCaches[t.source];if(!n)return;const a=t.sourceLayer;if(!a)return;const c=n.getSource();(c.type==="geojson"||c.vectorLayerIds&&c.vectorLayerIds.indexOf(a)===-1)&&this.fire(new s.j(new Error(`Source layer "${a}" does not exist on source "${c.id}" as specified by style layer "${t.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(t){const n=this._serializedAllLayers();if(!t||t.length===0)return Object.values(n);const a=[];for(const c of t)n[c]&&a.push(n[c]);return a}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const n=Object.keys(this._layers);for(const a of n){const c=this._layers[a];c.type!=="custom"&&(t[a]=c.serialize())}return t}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(const t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return!0;for(const t in this._layers)if(this._layers[t].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(t){if(!this._loaded)return;const n=this._changed;if(this._changed){const c=Object.keys(this._updatedLayers),d=Object.keys(this._removedLayers);(c.length||d.length)&&this._updateWorkerLayers(c,d);for(const x in this._updatedSources){const b=this._updatedSources[x];if(b==="reload")this._reloadSource(x);else{if(b!=="clear")throw new Error(`Invalid action ${b}`);this._clearSource(x)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const x in this._updatedPaintProps)this._layers[x].updateTransitions(t);this.light.updateTransitions(t),this._resetUpdates()}const a={};for(const c in this.sourceCaches){const d=this.sourceCaches[c];a[c]=d.used,d.used=!1}for(const c of this._order){const d=this._layers[c];d.recalculate(t,this._availableImages),!d.isHidden(t.zoom)&&d.source&&(this.sourceCaches[d.source].used=!0)}for(const c in a){const d=this.sourceCaches[c];a[c]!==d.used&&d.fire(new s.k("data",{sourceDataType:"visibility",dataType:"source",sourceId:c}))}this.light.recalculate(t),this.z=t.zoom,n&&this.fire(new s.k("data",{dataType:"style"}))}_updateTilesForChangedImages(){const t=Object.keys(this._changedImages);if(t.length){for(const n in this.sourceCaches)this.sourceCaches[n].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const t in this.sourceCaches)this.sourceCaches[t].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(t,n){this.dispatcher.broadcast("updateLayers",{layers:this._serializeByIds(t),removedIds:n})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(t,n={}){this._checkLoaded();const a=this.serialize();if(t=n.transformStyle?n.transformStyle(a,t):t,ji(this,s.y(t)))return!1;(t=s.aD(t)).layers=s.aB(t.layers);const c=s.aE(a,t).filter(x=>!(x.command in Go));if(c.length===0)return!1;const d=c.filter(x=>!(x.command in jr));if(d.length>0)throw new Error(`Unimplemented: ${d.map(x=>x.command).join(", ")}.`);for(const x of c)x.command!=="setTransition"&&this[x.command].apply(this,x.args);return this.stylesheet=t,this._serializedLayers=null,!0}addImage(t,n){if(this.getImage(t))return this.fire(new s.j(new Error(`An image named "${t}" already exists.`)));this.imageManager.addImage(t,n),this._afterImageUpdated(t)}updateImage(t,n){this.imageManager.updateImage(t,n)}getImage(t){return this.imageManager.getImage(t)}removeImage(t){if(!this.getImage(t))return this.fire(new s.j(new Error(`An image named "${t}" does not exist.`)));this.imageManager.removeImage(t),this._afterImageUpdated(t)}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.k("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(t,n,a={}){if(this._checkLoaded(),this.sourceCaches[t]!==void 0)throw new Error(`Source "${t}" already exists.`);if(!n.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(s.y.source,`sources.${t}`,n,null,a))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const c=this.sourceCaches[t]=new en(t,n,this.dispatcher);c.style=this,c.setEventedParent(this,()=>({isSourceLoaded:c.loaded(),source:c.serialize(),sourceId:t})),c.onAdd(this.map),this._changed=!0}removeSource(t){if(this._checkLoaded(),this.sourceCaches[t]===void 0)throw new Error("There is no source with this ID");for(const a in this._layers)if(this._layers[a].source===t)return this.fire(new s.j(new Error(`Source "${t}" cannot be removed while layer "${a}" is using it.`)));const n=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],n.fire(new s.k("data",{sourceDataType:"metadata",dataType:"source",sourceId:t})),n.setEventedParent(null),n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(t,n){if(this._checkLoaded(),this.sourceCaches[t]===void 0)throw new Error(`There is no source with this ID=${t}`);const a=this.sourceCaches[t].getSource();if(a.type!=="geojson")throw new Error(`geojsonSource.type is ${a.type}, which is !== 'geojson`);a.setData(n),this._changed=!0}getSource(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()}addLayer(t,n,a={}){this._checkLoaded();const c=t.id;if(this.getLayer(c))return void this.fire(new s.j(new Error(`Layer "${c}" already exists on this map.`)));let d;if(t.type==="custom"){if(ji(this,s.aF(t)))return;d=s.aC(t)}else{if("source"in t&&typeof t.source=="object"&&(this.addSource(c,t.source),t=s.aD(t),t=s.e(t,{source:c})),this._validate(s.y.layer,`layers.${c}`,t,{arrayIndex:-1},a))return;d=s.aC(t),this._validateLayer(d),d.setEventedParent(this,{layer:{id:c}})}const x=n?this._order.indexOf(n):this._order.length;if(n&&x===-1)this.fire(new s.j(new Error(`Cannot add layer "${c}" before non-existing layer "${n}".`)));else{if(this._order.splice(x,0,c),this._layerOrderChanged=!0,this._layers[c]=d,this._removedLayers[c]&&d.source&&d.type!=="custom"){const b=this._removedLayers[c];delete this._removedLayers[c],b.type!==d.type?this._updatedSources[d.source]="clear":(this._updatedSources[d.source]="reload",this.sourceCaches[d.source].pause())}this._updateLayer(d),d.onAdd&&d.onAdd(this.map)}}moveLayer(t,n){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new s.j(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===n)return;const a=this._order.indexOf(t);this._order.splice(a,1);const c=n?this._order.indexOf(n):this._order.length;n&&c===-1?this.fire(new s.j(new Error(`Cannot move layer "${t}" before non-existing layer "${n}".`))):(this._order.splice(c,0,t),this._layerOrderChanged=!0)}removeLayer(t){this._checkLoaded();const n=this._layers[t];if(!n)return void this.fire(new s.j(new Error(`Cannot remove non-existing layer "${t}".`)));n.setEventedParent(null);const a=this._order.indexOf(t);this._order.splice(a,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=n,delete this._layers[t],this._serializedLayers&&delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],n.onRemove&&n.onRemove(this.map)}getLayer(t){return this._layers[t]}getLayersOrder(){return[...this._order]}hasLayer(t){return t in this._layers}setLayerZoomRange(t,n,a){this._checkLoaded();const c=this.getLayer(t);c?c.minzoom===n&&c.maxzoom===a||(n!=null&&(c.minzoom=n),a!=null&&(c.maxzoom=a),this._updateLayer(c)):this.fire(new s.j(new Error(`Cannot set the zoom range of non-existing layer "${t}".`)))}setFilter(t,n,a={}){this._checkLoaded();const c=this.getLayer(t);if(c){if(!s.aG(c.filter,n))return n==null?(c.filter=void 0,void this._updateLayer(c)):void(this._validate(s.y.filter,`layers.${c.id}.filter`,n,null,a)||(c.filter=s.aD(n),this._updateLayer(c)))}else this.fire(new s.j(new Error(`Cannot filter non-existing layer "${t}".`)))}getFilter(t){return s.aD(this.getLayer(t).filter)}setLayoutProperty(t,n,a,c={}){this._checkLoaded();const d=this.getLayer(t);d?s.aG(d.getLayoutProperty(n),a)||(d.setLayoutProperty(n,a,c),this._updateLayer(d)):this.fire(new s.j(new Error(`Cannot style non-existing layer "${t}".`)))}getLayoutProperty(t,n){const a=this.getLayer(t);if(a)return a.getLayoutProperty(n);this.fire(new s.j(new Error(`Cannot get style of non-existing layer "${t}".`)))}setPaintProperty(t,n,a,c={}){this._checkLoaded();const d=this.getLayer(t);d?s.aG(d.getPaintProperty(n),a)||(d.setPaintProperty(n,a,c)&&this._updateLayer(d),this._changed=!0,this._updatedPaintProps[t]=!0):this.fire(new s.j(new Error(`Cannot style non-existing layer "${t}".`)))}getPaintProperty(t,n){return this.getLayer(t).getPaintProperty(n)}setFeatureState(t,n){this._checkLoaded();const a=t.source,c=t.sourceLayer,d=this.sourceCaches[a];if(d===void 0)return void this.fire(new s.j(new Error(`The source '${a}' does not exist in the map's style.`)));const x=d.getSource().type;x==="geojson"&&c?this.fire(new s.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):x!=="vector"||c?(t.id===void 0&&this.fire(new s.j(new Error("The feature id parameter must be provided."))),d.setFeatureState(c,t.id,n)):this.fire(new s.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(t,n){this._checkLoaded();const a=t.source,c=this.sourceCaches[a];if(c===void 0)return void this.fire(new s.j(new Error(`The source '${a}' does not exist in the map's style.`)));const d=c.getSource().type,x=d==="vector"?t.sourceLayer:void 0;d!=="vector"||x?n&&typeof t.id!="string"&&typeof t.id!="number"?this.fire(new s.j(new Error("A feature id is required to remove its specific state property."))):c.removeFeatureState(x,t.id,n):this.fire(new s.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(t){this._checkLoaded();const n=t.source,a=t.sourceLayer,c=this.sourceCaches[n];if(c!==void 0)return c.getSource().type!=="vector"||a?(t.id===void 0&&this.fire(new s.j(new Error("The feature id parameter must be provided."))),c.getFeatureState(a,t.id)):void this.fire(new s.j(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new s.j(new Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return s.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const t=s.aH(this.sourceCaches,d=>d.serialize()),n=this._serializeByIds(this._order),a=this.map.getTerrain()||void 0,c=this.stylesheet;return s.aI({version:c.version,name:c.name,metadata:c.metadata,light:c.light,center:c.center,zoom:c.zoom,bearing:c.bearing,pitch:c.pitch,sprite:c.sprite,glyphs:c.glyphs,transition:c.transition,sources:t,layers:n,terrain:a},d=>d!==void 0)}_updateLayer(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&this.sourceCaches[t.source].getSource().type!=="raster"&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(t){const n=x=>this._layers[x].type==="fill-extrusion",a={},c=[];for(let x=this._order.length-1;x>=0;x--){const b=this._order[x];if(n(b)){a[b]=x;for(const S of t){const C=S[b];if(C)for(const A of C)c.push(A)}}}c.sort((x,b)=>b.intersectionZ-x.intersectionZ);const d=[];for(let x=this._order.length-1;x>=0;x--){const b=this._order[x];if(n(b))for(let S=c.length-1;S>=0;S--){const C=c[S].feature;if(a[C.layer.id]{const Fe=le.featureSortOrder;if(Fe){const Pe=Fe.indexOf(xe.featureIndex);return Fe.indexOf(Ce.featureIndex)-Pe}return Ce.featureIndex-xe.featureIndex});for(const xe of ve)ce.push(xe)}}for(const le in G)G[le].forEach(me=>{const ee=me.feature,ce=C[b[le].source].getFeatureState(ee.layer["source-layer"],ee.id);ee.source=ee.layer.source,ee.layer["source-layer"]&&(ee.sourceLayer=ee.layer["source-layer"]),ee.state=ce});return G}(this._layers,x,this.sourceCaches,t,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(d)}querySourceFeatures(t,n){n&&n.filter&&this._validate(s.y.filter,"querySourceFeatures.filter",n.filter,null,n);const a=this.sourceCaches[t];return a?function(c,d){const x=c.getRenderableIds().map(C=>c.getTileByID(C)),b=[],S={};for(let C=0;C{Ue[c]=d})(t,n),n.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:t,url:n.workerSourceURL},a):a(null,null))}getLight(){return this.light.getLight()}setLight(t,n={}){this._checkLoaded();const a=this.light.getLight();let c=!1;for(const x in t)if(!s.aG(t[x],a[x])){c=!0;break}if(!c)return;const d={now:s.h.now(),transition:s.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(t,n),this.light.updateTransitions(d)}_validate(t,n,a,c,d={}){return(!d||d.validate!==!1)&&ji(this,t.call(s.y,s.e({key:n,style:this.serialize(),value:a,styleSpec:s.v},c)))}_remove(t=!0){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),s.aJ.off("pluginStateChange",this._rtlTextPluginCallback);for(const n in this._layers)this._layers[n].setEventedParent(null);for(const n in this.sourceCaches){const a=this.sourceCaches[n];a.setEventedParent(null),a.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove(t)}_clearSource(t){this.sourceCaches[t].clearTiles()}_reloadSource(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload()}_updateSources(t){for(const n in this.sourceCaches)this.sourceCaches[n].update(t,this.map.terrain)}_generateCollisionBoxes(){for(const t in this.sourceCaches)this._reloadSource(t)}_updatePlacement(t,n,a,c,d=!1){let x=!1,b=!1;const S={};for(const C of this._order){const A=this._layers[C];if(A.type!=="symbol")continue;if(!S[A.source]){const R=this.sourceCaches[A.source];S[A.source]=R.getRenderableIds(!0).map(W=>R.getTileByID(W)).sort((W,G)=>G.tileID.overscaledZ-W.tileID.overscaledZ||(W.tileID.isLessThan(G.tileID)?-1:1))}const P=this.crossTileSymbolIndex.addLayer(A,S[A.source],t.center.lng);x=x||P}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((d=d||this._layerOrderChanged||a===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(s.h.now(),t.zoom))&&(this.pauseablePlacement=new To(t,this.map.terrain,this._order,d,n,a,c,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,S),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(s.h.now()),b=!0),x&&this.pauseablePlacement.placement.setStale()),b||x)for(const C of this._order){const A=this._layers[C];A.type==="symbol"&&this.placement.updateLayerOpacities(A,S[A.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(s.h.now())}_releaseSymbolFadeTiles(){for(const t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles()}getImages(t,n,a){this.imageManager.getImages(n.icons,a),this._updateTilesForChangedImages();const c=this.sourceCaches[n.source];c&&c.setDependencies(n.tileID.key,n.type,n.icons)}getGlyphs(t,n,a){this.glyphManager.getGlyphs(n.stacks,a);const c=this.sourceCaches[n.source];c&&c.setDependencies(n.tileID.key,n.type,[""])}getResource(t,n,a){return s.m(n,a)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(t,n={}){this._checkLoaded(),t&&this._validate(s.y.glyphs,"glyphs",t,null,n)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=t,this.glyphManager.entries={},this.glyphManager.setURL(t))}addSprite(t,n,a={},c){this._checkLoaded();const d=[{id:t,url:n}],x=[...Nt(this.stylesheet.sprite),...d];this._validate(s.y.sprite,"sprite",x,null,a)||(this.stylesheet.sprite=x,this._loadSprite(d,!0,c))}removeSprite(t){this._checkLoaded();const n=Nt(this.stylesheet.sprite);if(n.find(a=>a.id===t)){if(this._spritesImagesIds[t])for(const a of this._spritesImagesIds[t])this.imageManager.removeImage(a),this._changedImages[a]=!0;n.splice(n.findIndex(a=>a.id===t),1),this.stylesheet.sprite=n.length>0?n:void 0,delete this._spritesImagesIds[t],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.k("data",{dataType:"style"}))}else this.fire(new s.j(new Error(`Sprite "${t}" doesn't exists on this map.`)))}getSprite(){return Nt(this.stylesheet.sprite)}setSprite(t,n={},a){this._checkLoaded(),t&&this._validate(s.y.sprite,"sprite",t,null,n)||(this.stylesheet.sprite=t,t?this._loadSprite(t,!0,a):(this._unloadSprite(),a&&a(null)))}}Ir.registerForPluginStateChange=s.aK;var ta=s.Q([{name:"a_pos",type:"Int16",components:2}]),os="attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}";const Gi={prelude:ui(`#ifdef GL_ES precision mediump float; #else diff --git a/index.html b/index.html index 24fff59..f70c54c 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ LTN from scratch - +