From b49677dcd8c0354bac8bf1c6f1c48cff7ca9f0ea Mon Sep 17 00:00:00 2001 From: dabreegster Date: Mon, 27 Nov 2023 13:04:51 +0000 Subject: [PATCH] deploy: 086a347e6cad7c556d7f7d5bf57d4b270c8a030f --- ...ers-fe4bfc4b.js => MainLayers-86931c4d.js} | 2 +- assets/{main-c3ebdbba.js => main-b760fa4d.js} | 2 +- ...{nested-5844dc17.js => nested-eefdc3fb.js} | 2 +- assets/osm2streets_js_bg.wasm | Bin 1553400 -> 1557790 bytes index.html | 4 ++-- lane_editor.html | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) rename assets/{MainLayers-fe4bfc4b.js => MainLayers-86931c4d.js} (99%) rename assets/{main-c3ebdbba.js => main-b760fa4d.js} (98%) rename assets/{nested-5844dc17.js => nested-eefdc3fb.js} (99%) diff --git a/assets/MainLayers-fe4bfc4b.js b/assets/MainLayers-86931c4d.js similarity index 99% rename from assets/MainLayers-fe4bfc4b.js rename to assets/MainLayers-86931c4d.js index 9fe64b60..f28c7f1e 100644 --- a/assets/MainLayers-fe4bfc4b.js +++ b/assets/MainLayers-86931c4d.js @@ -1,5 +1,5 @@ var Rf=Object.defineProperty;var Ff=(E,b,M)=>b in E?Rf(E,b,{enumerable:!0,configurable:!0,writable:!0,value:M}):E[b]=M;var Iu=(E,b,M)=>(Ff(E,typeof b!="symbol"?b+"":b,M),M);(function(){const b=document.createElement("link").relList;if(b&&b.supports&&b.supports("modulepreload"))return;for(const U of document.querySelectorAll('link[rel="modulepreload"]'))k(U);new MutationObserver(U=>{for(const J of U)if(J.type==="childList")for(const le of J.addedNodes)le.tagName==="LINK"&&le.rel==="modulepreload"&&k(le)}).observe(document,{childList:!0,subtree:!0});function M(U){const J={};return U.integrity&&(J.integrity=U.integrity),U.referrerPolicy&&(J.referrerPolicy=U.referrerPolicy),U.crossOrigin==="use-credentials"?J.credentials="include":U.crossOrigin==="anonymous"?J.credentials="omit":J.credentials="same-origin",J}function k(U){if(U.ep)return;U.ep=!0;const J=M(U);fetch(U.href,J)}})();function pr(){}function Bf(E,b){for(const M in b)E[M]=b[M];return E}function Fd(E){return E()}function Id(){return Object.create(null)}function ns(E){E.forEach(Fd)}function Bd(E){return typeof E=="function"}function dn(E,b){return E!=E?b==b:E!==b||E&&typeof E=="object"||typeof E=="function"}function Of(E){return Object.keys(E).length===0}function Od(E,...b){if(E==null){for(const k of b)k(void 0);return pr}const M=E.subscribe(...b);return M.unsubscribe?()=>M.unsubscribe():M}function Uf(E){let b;return Od(E,M=>b=M)(),b}function Un(E,b,M){E.$$.on_destroy.push(Od(b,M))}function Pu(E,b,M,k){if(E){const U=Ud(E,b,M,k);return E[0](U)}}function Ud(E,b,M,k){return E[1]&&k?Bf(M.ctx.slice(),E[1](k(b))):M.ctx}function ku(E,b,M,k){if(E[2]&&k){const U=E[2](k(M));if(b.dirty===void 0)return U;if(typeof U=="object"){const J=[],le=Math.max(b.dirty.length,U.length);for(let c=0;c32){const b=[],M=E.ctx.length/32;for(let k=0;kE.removeEventListener(b,M,k)}function or(E,b,M){M==null?E.removeAttribute(b):E.getAttribute(b)!==M&&E.setAttribute(b,M)}function jf(E){let b;return{p(...M){b=M,b.forEach(k=>E.push(k))},r(){b.forEach(M=>E.splice(E.indexOf(M),1))}}}function $f(E){return Array.from(E.childNodes)}function kc(E,b){b=""+b,E.data!==b&&(E.data=b)}function va(E,b){E.value=b??""}function rg(E,b,M,k){M==null?E.style.removeProperty(b):E.style.setProperty(b,M,k?"important":"")}function Pc(E,b,M){for(let k=0;k{const U=E.$$.callbacks[b];if(U){const J=Gf(b,M,{cancelable:k});return U.slice().forEach(le=>{le.call(E,J)}),!J.defaultPrevented}return!0}}const tl=[],Jr=[];let rl=[];const Du=[],qf=Promise.resolve();let Ru=!1;function Zf(){Ru||(Ru=!0,qf.then(jd))}function Wl(E){rl.push(E)}function io(E){Du.push(E)}const Cu=new Set;let Ya=0;function jd(){if(Ya!==0)return;const E=Xl;do{try{for(;YaE.indexOf(k)===-1?b.push(k):M.push(k)),M.forEach(k=>k()),rl=b}const Cc=new Set;let ya;function Hf(){ya={r:0,c:[],p:ya}}function Kf(){ya.r||ns(ya.c),ya=ya.p}function Di(E,b){E&&E.i&&(Cc.delete(E),E.i(b))}function Yi(E,b,M,k){if(E&&E.o){if(Cc.has(E))return;Cc.add(E),ya.c.push(()=>{Cc.delete(E),k&&(M&&E.d(1),k())}),E.o(b)}else k&&k()}function Cd(E){return(E==null?void 0:E.length)!==void 0?E:Array.from(E)}function ng(E,b){E.d(1),b.delete(E.key)}function og(E,b,M,k,U,J,le,c,ae,O,Me,me){let Be=E.length,dt=J.length,be=Be;const Ie={};for(;be--;)Ie[E[be].key]=be;const nt=[],et=new Map,yt=new Map,at=[];for(be=dt;be--;){const Rt=me(U,J,be),Qt=M(Rt);let Ei=le.get(Qt);Ei?k&&at.push(()=>Ei.p(Rt,b)):(Ei=O(Qt,Rt),Ei.c()),et.set(Qt,nt[be]=Ei),Qt in Ie&&yt.set(Qt,Math.abs(be-Ie[Qt]))}const Pe=new Set,St=new Set;function oi(Rt){Di(Rt,1),Rt.m(c,Me),le.set(Rt.key,Rt),Me=Rt.first,dt--}for(;Be&&dt;){const Rt=nt[dt-1],Qt=E[Be-1],Ei=Rt.key,di=Qt.key;Rt===Qt?(Me=Rt.first,Be--,dt--):et.has(di)?!le.has(Ei)||Pe.has(Ei)?oi(Rt):St.has(di)?Be--:yt.get(Ei)>yt.get(di)?(St.add(Ei),oi(Rt)):(Pe.add(di),Be--):(ae(Qt,le),Be--)}for(;Be--;){const Rt=E[Be];et.has(Rt.key)||ae(Rt,le)}for(;dt;)oi(nt[dt-1]);return ns(at),nt}function ro(E,b,M){const k=E.$$.props[b];k!==void 0&&(E.$$.bound[k]=M,M(E.$$.ctx[k]))}function Vr(E){E&&E.c()}function Cr(E,b,M){const{fragment:k,after_update:U}=E.$$;k&&k.m(b,M),Wl(()=>{const J=E.$$.on_mount.map(Fd).filter(Bd);E.$$.on_destroy?E.$$.on_destroy.push(...J):ns(J),E.$$.on_mount=[]}),U.forEach(Wl)}function Ar(E,b){const M=E.$$;M.fragment!==null&&(Wf(M.after_update),ns(M.on_destroy),M.fragment&&M.fragment.d(b),M.on_destroy=M.fragment=null,M.ctx=[])}function Jf(E,b){E.$$.dirty[0]===-1&&(tl.push(E),Zf(),E.$$.dirty.fill(0)),E.$$.dirty[b/31|0]|=1<{const be=dt.length?dt[0]:Be;return O.ctx&&U(O.ctx[me],O.ctx[me]=be)&&(!O.skip_bound&&O.bound[me]&&O.bound[me](be),Me&&Jf(E,me)),Be}):[],O.update(),Me=!0,ns(O.before_update),O.fragment=k?k(O.ctx):!1,b.target){if(b.hydrate){const me=$f(b.target);O.fragment&&O.fragment.l(me),me.forEach(Ti)}else O.fragment&&O.fragment.c();b.intro&&Di(E.$$.fragment),Cr(E,b.target,b.anchor),jd()}ql(ae)}class Mn{constructor(){Iu(this,"$$");Iu(this,"$$set")}$destroy(){Ar(this,1),this.$destroy=pr}$on(b,M){if(!Bd(M))return pr;const k=this.$$.callbacks[b]||(this.$$.callbacks[b]=[]);return k.push(M),()=>{const U=k.indexOf(M);U!==-1&&k.splice(U,1)}}$set(b){this.$$set&&!Of(b)&&(this.$$.skip_bound=!0,this.$$set(b),this.$$.skip_bound=!1)}}const Yf="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Yf);let Ne;const $d=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});$d.decode();let Vl=null;function Ac(){return(Vl===null||Vl.byteLength===0)&&(Vl=new Uint8Array(Ne.memory.buffer)),Vl}function Tr(E,b){return $d.decode(Ac().subarray(E,E+b))}const Is=new Array(128).fill(void 0);Is.push(void 0,null,!0,!1);let Zl=Is.length;function Ir(E){Zl===Is.length&&Is.push(Is.length+1);const b=Zl;return Zl=Is[b],Is[b]=E,b}function ci(E){return Is[E]}function Qf(E){E<132||(Is[E]=Zl,Zl=E)}function zc(E){const b=ci(E);return Qf(E),b}function Au(E){return E==null}let jl=null;function em(){return(jl===null||jl.byteLength===0)&&(jl=new Float64Array(Ne.memory.buffer)),jl}let $l=null;function Nt(){return($l===null||$l.byteLength===0)&&($l=new Int32Array(Ne.memory.buffer)),$l}let Ws=0;const Mc=new TextEncoder("utf-8"),tm=typeof Mc.encodeInto=="function"?function(E,b){return Mc.encodeInto(E,b)}:function(E,b){const M=Mc.encode(E);return b.set(M),{read:E.length,written:M.length}};function nl(E,b,M){if(M===void 0){const c=Mc.encode(E),ae=b(c.length);return Ac().subarray(ae,ae+c.length).set(c),Ws=c.length,ae}let k=E.length,U=b(k);const J=Ac();let le=0;for(;le127)break;J[U+le]=c}if(le!==k){le!==0&&(E=E.slice(le)),U=M(U,k,k=le+E.length*3);const c=Ac().subarray(U+le,U+k),ae=tm(E,c);le+=ae.written}return Ws=le,U}function Fu(E){const b=typeof E;if(b=="number"||b=="boolean"||E==null)return`${E}`;if(b=="string")return`"${E}"`;if(b=="symbol"){const U=E.description;return U==null?"Symbol":`Symbol(${U})`}if(b=="function"){const U=E.name;return typeof U=="string"&&U.length>0?`Function(${U})`:"Function"}if(Array.isArray(E)){const U=E.length;let J="[";U>0&&(J+=Fu(E[0]));for(let le=1;le1)k=M[1];else return toString.call(E);if(k=="Object")try{return"Object("+JSON.stringify(E)+")"}catch{return"Object"}return E instanceof Error?`${E.name}: ${E.message} -${E.stack}`:k}let Gl=null;function im(){return(Gl===null||Gl.byteLength===0)&&(Gl=new Uint32Array(Ne.memory.buffer)),Gl}function rm(E,b){const k=im().subarray(E/4,E/4+b),U=[];for(let J=0;J>>0)},E.wbg.__wbg_length_27a2afe8ab42b09f=function(b){return ci(b).length},E.wbg.__wbg_instanceof_Uint8Array_01cebe79ca606cca=function(b){let M;try{M=ci(b)instanceof Uint8Array}catch{M=!1}return M},E.wbg.__wbindgen_debug_string=function(b,M){const k=Fu(ci(M)),U=nl(k,Ne.__wbindgen_malloc,Ne.__wbindgen_realloc),J=Ws;Nt()[b/4+1]=J,Nt()[b/4+0]=U},E.wbg.__wbindgen_throw=function(b,M){throw new Error(Tr(b,M))},E.wbg.__wbindgen_memory=function(){const b=Ne.memory;return Ir(b)},E}function sm(E,b){return Ne=E.exports,am.__wbindgen_wasm_module=b,jl=null,$l=null,Gl=null,Vl=null,Ne}async function am(E){typeof E>"u"&&(E="/osm2streets/assets/osm2streets_js_bg.wasm");const b=om();(typeof E=="string"||typeof Request=="function"&&E instanceof Request||typeof URL=="function"&&E instanceof URL)&&(E=fetch(E));const{instance:M,module:k}=await nm(await E,b);return sm(M,k)}function lm(E){let b,M,k,U,J,le,c;return{c(){b=Wt("div"),M=Cn(`App: +${E.stack}`:k}let Gl=null;function im(){return(Gl===null||Gl.byteLength===0)&&(Gl=new Uint32Array(Ne.memory.buffer)),Gl}function rm(E,b){const k=im().subarray(E/4,E/4+b),U=[];for(let J=0;J>>0)},E.wbg.__wbg_length_27a2afe8ab42b09f=function(b){return ci(b).length},E.wbg.__wbg_instanceof_Uint8Array_01cebe79ca606cca=function(b){let M;try{M=ci(b)instanceof Uint8Array}catch{M=!1}return M},E.wbg.__wbindgen_debug_string=function(b,M){const k=Fu(ci(M)),U=nl(k,Ne.__wbindgen_malloc,Ne.__wbindgen_realloc),J=Ws;Nt()[b/4+1]=J,Nt()[b/4+0]=U},E.wbg.__wbindgen_throw=function(b,M){throw new Error(Tr(b,M))},E.wbg.__wbindgen_memory=function(){const b=Ne.memory;return Ir(b)},E}function sm(E,b){return Ne=E.exports,am.__wbindgen_wasm_module=b,jl=null,$l=null,Gl=null,Vl=null,Ne}async function am(E){typeof E>"u"&&(E="/osm2streets/assets/osm2streets_js_bg.wasm");const b=om();(typeof E=="string"||typeof Request=="function"&&E instanceof Request||typeof URL=="function"&&E instanceof URL)&&(E=fetch(E));const{instance:M,module:k}=await nm(await E,b);return sm(M,k)}function lm(E){let b,M,k,U,J,le,c;return{c(){b=Wt("div"),M=Cn(`App: `),k=Wt("select"),U=Wt("option"),U.textContent="Street Explorer",J=Wt("option"),J.textContent="Lane editor",U.__value="index.html",va(U,U.__value),J.__value="lane_editor.html",va(J,J.__value),E[0]===void 0&&Wl(()=>E[2].call(k))},m(ae,O){ki(ae,b,O),Ft(b,M),Ft(b,k),Ft(k,U),Ft(k,J),Pc(k,E[0],!0),le||(c=[hn(k,"change",E[2]),hn(k,"change",E[1])],le=!0)},p(ae,[O]){O&1&&Pc(k,ae[0])},i:pr,o:pr,d(ae){ae&&Ti(b),le=!1,ns(c)}}}function cm(E,b,M){let k=window.location.pathname.split("/").pop()||"index.html",U=k;function J(){U!=k&&(window.location.href=U)}function le(){U=Nd(this),M(0,U)}return[U,J,le]}class sg extends Mn{constructor(b){super(),An(this,b,cm,lm,dn,{})}}const el=[];function Cs(E,b=pr){let M;const k=new Set;function U(c){if(dn(E,c)&&(E=c,M)){const ae=!el.length;for(const O of k)O[1](),el.push(O,E);if(ae){for(let O=0;O{k.delete(O),k.size===0&&M&&(M(),M=null)}}return{set:U,update:J,subscribe:le}}const Kl=Cs(null),xa=Cs(null),Bu=Cs(null),Ou=Cs(null),Uu=Cs(null),Nu=Cs(null),Vu=Cs(null),ju=Cs(null),$u=Cs(null);xa.subscribe(E=>{Ou.set(null),Uu.set(null),Nu.set(null),Vu.set(null),ju.set(null),$u.set(null)});function Gd(E,b,M){if(E!==null)for(var k,U,J,le,c,ae,O,Me=0,me=0,Be,dt=E.type,be=dt==="FeatureCollection",Ie=dt==="Feature",nt=be?E.features.length:1,et=0;etM[0]&&(b[0]=M[0]),b[1]>M[1]&&(b[1]=M[1]),b[2]=0;U--){let J=Md[U];if(J==E){k=!0;break}b.getLayer(J)&&(M=J)}if(!k)throw new Error(`Layer ID ${E} not defined in layerZorder`);return M}const Md=["boundary-layer","lane-polygons-layer","intersection-polygons-layer","lane-markings-layer","intersection-markings-layer","movements-layer","connected-roads-layer","current-way-layer","road_label"];function hm(E,b,M){let k;Un(E,Kl,Pe=>M(8,k=Pe));let{source:U}=b,{show:J=!0}=b,{gj:le}=b,{layerStyle:c}=b,{interactive:ae=!1}=b,{hoveredFeature:O=null}=b,{clickedFeature:Me=null}=b,{clickedFeaturePosition:me=null}=b,Be,dt,be=`${U}-layer`;Zu(()=>{Ie(),k.addSource(U,{type:"geojson",data:le??Ad()}),k.addLayer({id:be,source:U,...c},um(be)),J||k.setLayoutProperty(be,"visibility","none"),ae&&(k.on("mousemove",be,nt),k.on("mouseleave",be,et),k.on("click",yt))}),Xu(()=>{ae&&(k.off("mousemove",nt),k.off("mouseleave",et),k.off("click",yt),at()),k.getLayer(be)&&k.removeLayer(be),k.removeSource(U)});function Ie(){if(le&&"features"in le)for(let[Pe,St]of le.features.entries())St.id=Pe+1}function nt(Pe){let St=Pe.features??[];St.length>0&&Be!=St[0].id&&(at(),Be=St[0].id,k.setFeatureState({source:U,id:Be},{hover:!0}),le&&"features"in le&&M(0,O=le.features.find(oi=>oi.id==Be)))}function et(){at(),M(0,O=null),Be=void 0}function yt(Pe){Me!==null&&k.setFeatureState({source:U,id:dt},{clicked:!1});let St=k.queryRenderedFeatures(Pe.point,{layers:[be]});St.length==1?(dt=St[0].id,k.setFeatureState({source:U,id:dt},{clicked:!0}),le&&"features"in le&&(M(1,Me=le.features.find(oi=>oi.id==dt)),M(2,me=Pe.lngLat))):(M(1,Me=null),M(2,me=null),dt=void 0)}function at(){Be!==void 0&&k.setFeatureState({source:U,id:Be},{hover:!1})}return E.$$set=Pe=>{"source"in Pe&&M(3,U=Pe.source),"show"in Pe&&M(4,J=Pe.show),"gj"in Pe&&M(5,le=Pe.gj),"layerStyle"in Pe&&M(6,c=Pe.layerStyle),"interactive"in Pe&&M(7,ae=Pe.interactive),"hoveredFeature"in Pe&&M(0,O=Pe.hoveredFeature),"clickedFeature"in Pe&&M(1,Me=Pe.clickedFeature),"clickedFeaturePosition"in Pe&&M(2,me=Pe.clickedFeaturePosition)},E.$$.update=()=>{if(E.$$.dirty&296){let Pe=k.getSource(U);Pe&&(console.log(`GeoJSON data for ${U} changed, updating`),Ie(),Pe.setData(le??Ad()),M(0,O=null),Be=void 0,M(1,Me=null),M(2,me=null),dt=void 0)}E.$$.dirty&272&&k.getLayer(be)&&k.setLayoutProperty(be,"visibility",J?"visible":"none")},[O,Me,me,U,J,le,c,ae,k]}class Jl extends Mn{constructor(b){super(),An(this,b,hm,null,dn,{source:3,show:4,gj:5,layerStyle:6,interactive:7,hoveredFeature:0,clickedFeature:1,clickedFeaturePosition:2})}}const dm=E=>({}),Pd=E=>({}),pm=E=>({}),kd=E=>({});function fm(E){let b,M,k,U;const J=E[1].left,le=Pu(J,E,E[0],kd),c=E[1].main,ae=Pu(c,E,E[0],Pd);return{c(){b=Wt("div"),le&&le.c(),M=sr(),k=Wt("div"),ae&&ae.c(),or(b,"class","left svelte-we0xuz"),or(k,"class","main svelte-we0xuz")},m(O,Me){ki(O,b,Me),le&&le.m(b,null),ki(O,M,Me),ki(O,k,Me),ae&&ae.m(k,null),U=!0},p(O,[Me]){le&&le.p&&(!U||Me&1)&&zu(le,J,O,O[0],U?ku(J,O[0],Me,pm):Lu(O[0]),kd),ae&&ae.p&&(!U||Me&1)&&zu(ae,c,O,O[0],U?ku(c,O[0],Me,dm):Lu(O[0]),Pd)},i(O){U||(Di(le,O),Di(ae,O),U=!0)},o(O){Yi(le,O),Yi(ae,O),U=!1},d(O){O&&(Ti(b),Ti(M),Ti(k)),le&&le.d(O),ae&&ae.d(O)}}}function mm(E,b,M){let{$$slots:k={},$$scope:U}=b;return E.$$set=J=>{"$$scope"in J&&M(0,U=J.$$scope)},[U,k]}class ag extends Mn{constructor(b){super(),An(this,b,mm,fm,dn,{})}}var il=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function gm(E){return E&&E.__esModule&&Object.prototype.hasOwnProperty.call(E,"default")?E.default:E}var Wd={exports:{}};(function(E,b){(function(M,k){E.exports=k()})(il,function(){var M,k,U;function J(c,ae){if(!M)M=ae;else if(!k)k=ae;else{var O="var sharedChunk = {}; ("+M+")(sharedChunk); ("+k+")(sharedChunk);",Me={};M(Me),U=ae(Me),typeof window<"u"&&(U.workerUrl=window.URL.createObjectURL(new Blob([O],{type:"text/javascript"})))}}J(["exports"],function(c){function ae(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var O=Me;function Me(i,e){this.x=i,this.y=e}Me.prototype={clone:function(){return new Me(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}},Me.convert=function(i){return i instanceof Me?i:Array.isArray(i)?new Me(i[0],i[1]):i};var me=ae(O),Be=dt;function dt(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}dt.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?d=r:m=r,r=.5*(m-d)+d;return r},solve:function(i,e){return this.sampleCurveY(this.solveCurveX(i,e))}};var be=ae(Be);function Ie(i,e,r,o){const l=new be(i,e,r,o);return function(h){return l.solve(h)}}const nt=Ie(.25,.1,.25,1);function et(i,e,r){return Math.min(r,Math.max(e,i))}function yt(i,e,r){const o=r-e,l=((i-e)%o+o)%o+e;return l===e?r:l}function at(i,...e){for(const r of e)for(const o in r)i[o]=r[o];return i}let Pe=1;function St(i,e){i.forEach(r=>{e[r]&&(e[r]=e[r].bind(e))})}function oi(i,e,r){const o={};for(const l in i)o[l]=e.call(r||this,i[l],l,i);return o}function Rt(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 Qt(i){return Array.isArray(i)?i.map(Qt):typeof i=="object"&&i?oi(i,Qt):i}const Ei={};function di(i){Ei[i]||(typeof console<"u"&&console.warn(i),Ei[i]=!0)}function zt(i,e,r){return(r.y-i.y)*(e.x-i.x)>(e.y-i.y)*(r.x-i.x)}function jr(i){let e=0;for(let r,o,l=0,h=i.length,d=h-1;lcancelAnimationFrame(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=>(no||(no=document.createElement("a")),no.href=i,no.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(mn==null&&(mn=matchMedia("(prefers-reduced-motion: reduce)")),mn.matches)}},qi={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};class Mr 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 Si=pi()?()=>self.worker&&self.worker.referrer:()=>(window.location.protocol==="blob:"?window.parent:window).location.href,Ii=i=>qi.REGISTERED_PROTOCOLS[i.substring(0,i.indexOf("://"))];function ar(i,e){const r=new AbortController,o=new Request(i.url,{method:i.method||"GET",body:i.body,credentials:i.credentials,headers:i.headers,referrer:Si(),signal:r.signal});let l=!1,h=!1;return i.type==="json"&&o.headers.set("Accept","application/json"),h||fetch(o).then(d=>d.ok?(m=>{(i.type==="arrayBuffer"||i.type==="image"?m.arrayBuffer():i.type==="json"?m.json():m.text()).then(_=>{h||(l=!0,e(null,_,m.headers.get("Cache-Control"),m.headers.get("Expires")))}).catch(_=>{h||e(new Error(_.message))})})(d):d.blob().then(m=>e(new Mr(d.status,d.statusText,i.url,m)))).catch(d=>{d.code!==20&&e(new Error(d.message))}),{cancel:()=>{h=!0,l||r.abort()}}}const Vn=function(i,e){if(/:\/\//.test(i.url)&&!/^https?:|^file:/.test(i.url)){if(pi()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",i,e);if(!pi())return(Ii(i.url)||ar)(i,e)}if(!(/^file:/.test(r=i.url)||/^file:/.test(Si())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return ar(i,e);if(pi()&&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 d in o.headers)h.setRequestHeader(d,o.headers[d]);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 d=h.response;if(o.type==="json")try{d=JSON.parse(h.response)}catch(m){return l(m)}l(null,d,h.getResponseHeader("Cache-Control"),h.getResponseHeader("Expires"))}else{const d=new Blob([h.response],{type:h.getResponseHeader("Content-Type")});l(new Mr(h.status,h.statusText,o.url,d))}},h.send(o.body),{cancel:()=>h.abort()}}(i,e)},Zi=function(i,e){return Vn(at(i,{type:"arrayBuffer"}),e)};function At(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 jn(i,e,r){r[i]&&r[i].indexOf(e)!==-1||(r[i]=r[i]||[],r[i].push(e))}function $n(i,e,r){if(r&&r[i]){const o=r[i].indexOf(e);o!==-1&&r[i].splice(o,1)}}class Gn{constructor(e,r={}){at(this,r),this.type=e}}class fr extends Gn{constructor(e,r={}){super("error",at({error:e},r))}}class $o{on(e,r){return this._listeners=this._listeners||{},jn(e,r,this._listeners),this}off(e,r){return $n(e,r,this._listeners),$n(e,r,this._oneTimeListeners),this}once(e,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},jn(e,r,this._oneTimeListeners),this):new Promise(o=>this.once(e,o))}fire(e,r){typeof e=="string"&&(e=new Gn(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 m of l)m.call(this,e);const h=this._oneTimeListeners&&this._oneTimeListeners[o]?this._oneTimeListeners[o].slice():[];for(const m of h)$n(o,m,this._oneTimeListeners),m.call(this,e);const d=this._eventedParent;d&&(at(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),d.fire(e))}else e instanceof fr&&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 _e={$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:{}},default:"mapbox"},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-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 qn=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function Yr(i,e){const r={};for(const o in i)o!=="ref"&&(r[o]=i[o]);return qn.forEach(o=>{o in e&&(r[o]=e[o])}),r}function si(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 os=[gn,Ue,Dt,xt,mr,Wi,_i,Qi(Tt),Er,Xn];function zn(i,e){if(e.kind==="error")return null;if(i.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!zn(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 os)if(!zn(r,e))return null}}return`Expected ${ui(i)} but found ${ui(e)} instead.`}function q(i,e){return e.some(r=>r.kind===i.kind)}function P(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 L(i,e){return i.kind==="array"&&e.kind==="array"?i.itemType.kind===e.itemType.kind&&typeof i.N=="number":i.kind===e.kind}const N=.96422,X=.82521,Y=4/29,se=6/29,ee=3*se*se,Q=se*se*se,ce=Math.PI/180,Te=180/Math.PI;function Se(i){return(i%=360)<0&&(i+=360),i}function Ce([i,e,r,o]){let l,h;const d=Et((.2225045*(i=it(i))+.7168786*(e=it(e))+.0606169*(r=it(r)))/1);i===e&&e===r?l=h=d:(l=Et((.4360747*i+.3850649*e+.1430804*r)/N),h=Et((.0139322*i+.0971045*e+.7141733*r)/X));const m=116*d-16;return[m<0?0:m,500*(l-d),200*(d-h),o]}function it(i){return i<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function Et(i){return i>Q?Math.pow(i,1/3):i/ee+Y}function st([i,e,r,o]){let l=(i+16)/116,h=isNaN(e)?l:l+e/500,d=isNaN(r)?l:l-r/200;return l=1*bt(l),h=N*bt(h),d=X*bt(d),[pt(3.1338561*h-1.6168667*l-.4906146*d),pt(-.9787684*h+1.9161415*l+.033454*d),pt(.0719453*h-.2289914*l+1.4052427*d),o]}function pt(i){return(i=i<=.00304?12.92*i:1.055*Math.pow(i,1/2.4)-.055)<0?0:i>1?1:i}function bt(i){return i>se?i*i*i:ee*(i-Y)}function Vt(i){return parseInt(i.padEnd(2,i),16)/255}function Lt(i,e){return jt(e?i/100:i,0,1)}function jt(i,e,r){return Math.min(Math.max(e,i),r)}function ti(i){return!i.some(Number.isNaN)}const zi={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 ot{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 ot)return e;if(typeof e!="string")return;const r=function(o){if((o=o.toLowerCase())==="transparent")return[0,0,0,0];const l=zi[o];if(l){const[d,m,_]=l;return[d/255,m/255,_/255,1]}if(o.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o)){const d=o.length<6?1:2;let m=1;return[Vt(o.slice(m,m+=d)),Vt(o.slice(m,m+=d)),Vt(o.slice(m,m+=d)),Vt(o.slice(m,m+d)||"ff")]}if(o.startsWith("rgb")){const d=o.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(d){const[m,_,T,S,A,z,D,B,Z,$,ne,ue]=d,te=[S||" ",D||" ",$].join("");if(te===" "||te===" /"||te===",,"||te===",,,"){const fe=[T,z,Z].join(""),ye=fe==="%%%"?100:fe===""?255:0;if(ye){const Ee=[jt(+_/ye,0,1),jt(+A/ye,0,1),jt(+B/ye,0,1),ne?Lt(+ne,ue):1];if(ti(Ee))return Ee}}return}}const h=o.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(h){const[d,m,_,T,S,A,z,D,B]=h,Z=[_||" ",S||" ",z].join("");if(Z===" "||Z===" /"||Z===",,"||Z===",,,"){const $=[+m,jt(+T,0,100),jt(+A,0,100),D?Lt(+D,B):1];if(ti($))return function([ne,ue,te,fe]){function ye(Ee){const rt=(Ee+ne/30)%12,ct=ue*Math.min(te,1-te);return te-ct*Math.max(-1,Math.min(rt-3,9-rt,1))}return ne=Se(ne),ue/=100,te/=100,[ye(0),ye(8),ye(4),fe]}($)}}}(e);return r?new ot(...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]=Ce(e),d=Math.sqrt(o*o+l*l);return[Math.round(1e4*d)?Se(Math.atan2(l,o)*Te):NaN,d,r,h]}(this.rgb))}get lab(){return this.overwriteGetter("lab",Ce(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})`}}ot.black=new ot(0,0,0,1),ot.white=new ot(1,1,1,1),ot.transparent=new ot(0,0,0,0),ot.red=new ot(1,0,0,1);class yi{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 ao{constructor(e,r,o,l,h){this.text=e,this.image=r,this.scale=o,this.fontStack=l,this.textColor=h}}class vi{constructor(e){this.sections=e}static fromString(e){return new vi([new ao(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 vi?e:vi.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}}class Li{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof Li)return e;if(typeof e=="number")return new Li([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 Li(e)}}toString(){return JSON.stringify(this.values)}}class Sr{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new Sr({name:e,available:!1}):null}}function en(i,e,r,o){return typeof i=="number"&&i>=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 Ln(i){if(i===null||typeof i=="string"||typeof i=="boolean"||typeof i=="number"||i instanceof ot||i instanceof yi||i instanceof vi||i instanceof Li||i instanceof Sr)return!0;if(Array.isArray(i)){for(const e of i)if(!Ln(e))return!1;return!0}if(typeof i=="object"){for(const e in i)if(!Ln(i[e]))return!1;return!0}return!1}function Fi(i){if(i===null)return gn;if(typeof i=="string")return Dt;if(typeof i=="boolean")return xt;if(typeof i=="number")return Ue;if(i instanceof ot)return mr;if(i instanceof yi)return Qr;if(i instanceof vi)return Wi;if(i instanceof Li)return Er;if(i instanceof Sr)return Xn;if(Array.isArray(i)){const e=i.length;let r;for(const o of i){const l=Fi(o);if(r){if(r===l)continue;r=Tt;break}r=l}return Qi(r||Tt,e)}return _i}function ss(i){const e=typeof i;return i===null?"":e==="string"||e==="number"||e==="boolean"?String(i):i instanceof ot||i instanceof vi||i instanceof Li||i instanceof Sr?i.toString():JSON.stringify(i)}class lo{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(!Ln(e[1]))return r.error("invalid value");const o=e[1];let l=Fi(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 lo(l,o)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class Bi{constructor(e){this.name="ExpressionEvaluationError",this.message=e}toJSON(){return this.message}}const as={string:Dt,number:Ue,boolean:xt,object:_i};class kr{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 m,_;if(e.length>2){const T=e[1];if(typeof T!="string"||!(T in as)||T==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);m=as[T],l++}else m=Tt;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);_=e[2],l++}o=Qi(m,_)}else{if(!as[h])throw new Error(`Types doesn't contain name = ${h}`);o=as[h]}const d=[];for(;le.outputDefined())}}const ba={"to-boolean":xt,"to-color":mr,"to-number":Ue,"to-string":Dt};class er{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 d=1;d4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:en(r[0],r[1],r[2],r[3]),!o))return new ot(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new Bi(o||`Could not parse color from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}if(this.type.kind==="padding"){let r;for(const o of this.args){r=o.evaluate(e);const l=Li.parse(r);if(l)return l}throw new Bi(`Could not parse padding from value '${typeof r=="string"?r:JSON.stringify(r)}'`)}if(this.type.kind==="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 Bi(`Could not convert ${JSON.stringify(r)} to number.`)}return this.type.kind==="formatted"?vi.fromString(ss(this.args[0].evaluate(e))):this.type.kind==="resolvedImage"?Sr.fromString(ss(this.args[0].evaluate(e))):ss(this.args[0].evaluate(e))}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}const Hs=["Unknown","Point","LineString","Polygon"];class As{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"?Hs[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]=ot.parse(e)),r}}class co{constructor(e,r,o=[],l,h=new Zn,d=[]){this.registry=e,this.path=o,this.key=o.map(m=>`[${m}]`).join(""),this.scope=h,this.errors=d,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,d){return d==="assert"?new kr(h,[l]):d==="coerce"?new er(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 d=h.parse(e,this);if(!d)return null;if(this.expectedType){const m=this.expectedType,_=d.type;if(m.kind!=="string"&&m.kind!=="number"&&m.kind!=="boolean"&&m.kind!=="object"&&m.kind!=="array"||_.kind!=="value")if(m.kind!=="color"&&m.kind!=="formatted"&&m.kind!=="resolvedImage"||_.kind!=="value"&&_.kind!=="string")if(m.kind!=="padding"||_.kind!=="value"&&_.kind!=="number"&&_.kind!=="array"){if(this.checkSubtype(m,_))return null}else d=o(d,m,r.typeAnnotation||"coerce");else d=o(d,m,r.typeAnnotation||"coerce");else d=o(d,m,r.typeAnnotation||"assert")}if(!(d instanceof lo)&&d.type.kind!=="resolvedImage"&&this._isConstant(d)){const m=new As;try{d=new lo(d.type,d.evaluate(m))}catch(_){return this.error(_.message),null}}return d}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 co(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 Xi(o,e))}checkSubtype(e,r){const o=zn(e,r);return o&&this.error(o),o}}class $t{constructor(e,r,o){this.type=Qr,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,xt);if(!l)return null;const h=r.parse(o["diacritic-sensitive"]!==void 0&&o["diacritic-sensitive"],1,xt);if(!h)return null;let d=null;return o.locale&&(d=r.parse(o.locale,1,Dt),!d)?null:new $t(l,h,d)}evaluate(e){return new yi(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 f=8192;function x(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 R(i,e){return!(i[0]<=e[0]||i[2]>=e[2]||i[1]<=e[1]||i[3]>=e[3])}function H(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*f),Math.round(o*l*f)]}function ie(i,e,r){const o=i[0]-e[0],l=i[1]-e[1],h=i[0]-r[0],d=i[1]-r[1];return o*d-h*l==0&&o*h<=0&&l*d<=0}function oe(i,e){let r=!1;for(let d=0,m=e.length;d(o=i)[1]!=(h=_[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 he(i,e){for(let r=0;r0&&m<0||d<0&&m>0}function Fe(i,e,r){for(const T of r)for(let S=0;Sr[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}x(e,i)}function Mt(i,e,r,o){const l=Math.pow(2,o.z)*f,h=[o.x*f,o.y*f],d=[];for(const m of i)for(const _ of m){const T=[_.x+h[0],_.y+h[1]];fi(T,e,r,l),d.push(T)}return d}function Oi(i,e,r,o){const l=Math.pow(2,o.z)*f,h=[o.x*f,o.y*f],d=[];for(const _ of i){const T=[];for(const S of _){const A=[S.x+h[0],S.y+h[1]];x(e,A),T.push(A)}d.push(T)}if(e[2]-e[0]<=l/2){(m=e)[0]=m[1]=1/0,m[2]=m[3]=-1/0;for(const _ of d)for(const T of _)fi(T,e,r,l)}var m;return d}class we{constructor(e,r){this.type=xt,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(Ln(e[1])){const o=e[1];if(o.type==="FeatureCollection")for(let l=0;l!Array.isArray(T)||T.length===e.length-1);let _=null;for(const[T,S]of m){_=new co(r.registry,Ui,r.path,null,r.scope);const A=[];let z=!1;for(let D=1;D{return z=A,Array.isArray(z)?`(${z.map(ui).join(", ")})`:`(${ui(z.type)}...)`;var z}).join(" | "),S=[];for(let A=1;A{r=e?r&&Ui(o):r&&o instanceof lo}),!!r&&xi(i)&&Ms(i,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function xi(i){if(i instanceof Bt&&(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 we)return!1;let e=!0;return i.eachChild(r=>{e&&!xi(r)&&(e=!1)}),e}function uo(i){if(i instanceof Bt&&i.name==="feature-state")return!1;let e=!0;return i.eachChild(r=>{e&&!uo(r)&&(e=!1)}),e}function Ms(i,e){if(i instanceof Bt&&e.indexOf(i.name)>=0)return!1;let r=!0;return i.eachChild(o=>{r&&!Ms(o,e)&&(r=!1)}),r}function ai(i,e){const r=i.length-1;let o,l,h=0,d=r,m=0;for(;h<=d;)if(m=Math.floor((h+d)/2),o=i[m],l=i[m+1],o<=e){if(m===r||ee))throw new Bi("Input is not a number.");d=m-1}return 0}class Co{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,Ue);if(!o)return null;const l=[];let h=null;r.expectedType&&r.expectedType.kind!=="value"&&(h=r.expectedType);for(let d=1;d=m)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',T);const A=r.parse(_,S,h);if(!A)return null;h=h||A.type,l.push([m,A])}return new Co(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[ai(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 qo(i,e,r){return i+r*(e-i)}function tn(i,e,r){return i.map((o,l)=>qo(o,e[l],r))}const zr={number:qo,color:function(i,e,r,o="rgb"){switch(o){case"rgb":{const[l,h,d,m]=tn(i.rgb,e.rgb,r);return new ot(l,h,d,m,!1)}case"hcl":{const[l,h,d,m]=i.hcl,[_,T,S,A]=e.hcl;let z,D;if(isNaN(l)||isNaN(_))isNaN(l)?isNaN(_)?z=NaN:(z=_,d!==1&&d!==0||(D=T)):(z=l,S!==1&&S!==0||(D=h));else{let ue=_-l;_>l&&ue>180?ue-=360:_180&&(ue+=360),z=l+r*ue}const[B,Z,$,ne]=function([ue,te,fe,ye]){return ue=isNaN(ue)?0:ue*ce,st([fe,Math.cos(ue)*te,Math.sin(ue)*te,ye])}([z,D??qo(h,T,r),qo(d,S,r),qo(m,A,r)]);return new ot(B,Z,$,ne,!1)}case"lab":{const[l,h,d,m]=st(tn(i.lab,e.lab,r));return new ot(l,h,d,m,!1)}}},array:tn,padding:function(i,e,r){return new Li(tn(i.values,e.values,r))}};class Lr{constructor(e,r,o,l,h){this.type=e,this.operator=r,this.interpolation=o,this.input=l,this.labels=[],this.outputs=[];for(const[d,m]of h)this.labels.push(d),this.outputs.push(m)}static interpolationFactor(e,r,o,l){let h=0;if(e.name==="exponential")h=Ps(r,e.base,o,l);else if(e.name==="linear")h=Ps(r,1,o,l);else if(e.name==="cubic-bezier"){const d=e.controlPoints;h=new be(d[0],d[1],d[2],d[3]).solve(Ps(r,1,o,l))}return h}static parse(e,r){let[o,l,h,...d]=e;if(!Array.isArray(l)||l.length===0)return r.error("Expected an interpolation type expression.",1);if(l[0]==="linear")l={name:"linear"};else if(l[0]==="exponential"){const T=l[1];if(typeof T!="number")return r.error("Exponential interpolation requires a numeric base.",1,1);l={name:"exponential",base:T}}else{if(l[0]!=="cubic-bezier")return r.error(`Unknown interpolation type ${String(l[0])}`,1,0);{const T=l.slice(1);if(T.length!==4||T.some(S=>typeof S!="number"||S<0||S>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,Ue),!h)return null;const m=[];let _=null;o==="interpolate-hcl"||o==="interpolate-lab"?_=mr:r.expectedType&&r.expectedType.kind!=="value"&&(_=r.expectedType);for(let T=0;T=S)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',z);const B=r.parse(A,D,_);if(!B)return null;_=_||B.type,m.push([S,B])}return L(_,Ue)||L(_,mr)||L(_,Er)||L(_,Qi(Ue))?new Lr(_,o,l,h,m):r.error(`Type ${ui(_)} 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 d=ai(r,l),m=Lr.interpolationFactor(this.interpolation,l,r[d],r[d+1]),_=o[d].evaluate(e),T=o[d+1].evaluate(e);switch(this.operator){case"interpolate":return zr[this.type.kind](_,T,m);case"interpolate-hcl":return zr.color(_,T,m,"hcl");case"interpolate-lab":return zr.color(_,T,m,"lab")}}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function Ps(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 Zo{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 m of e.slice(1)){const _=r.parse(m,1+h.length,o,void 0,{typeAnnotation:"omit"});if(!_)return null;o=o||_.type,h.push(_)}if(!o)throw new Error("No output type");const d=l&&h.some(m=>zn(l,m.type));return new Zo(d?Tt: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 Sr&&!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 ls{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 Bi(`Array index out of bounds: ${r} > ${o.length-1}.`);if(r!==Math.floor(r))throw new Bi(`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 cs{constructor(e,r){this.type=xt,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,Tt),l=r.parse(e[2],2,Tt);return o&&l?q(o.type,[xt,Dt,Ue,gn,Tt])?new cs(o,l):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${ui(o.type)} instead`):null}evaluate(e){const r=this.needle.evaluate(e),o=this.haystack.evaluate(e);if(!o)return!1;if(!P(r,["boolean","string","number","null"]))throw new Bi(`Expected first argument to be of type boolean, string, number or null, but found ${ui(Fi(r))} instead.`);if(!P(o,["string","array"]))throw new Bi(`Expected second argument to be of type array or string, but found ${ui(Fi(o))} instead.`);return o.indexOf(r)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}}class Ao{constructor(e,r,o){this.type=Ue,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,Tt),l=r.parse(e[2],2,Tt);if(!o||!l)return null;if(!q(o.type,[xt,Dt,Ue,gn,Tt]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${ui(o.type)} instead`);if(e.length===4){const h=r.parse(e[3],3,Ue);return h?new Ao(o,l,h):null}return new Ao(o,l)}evaluate(e){const r=this.needle.evaluate(e),o=this.haystack.evaluate(e);if(!P(r,["boolean","string","number","null"]))throw new Bi(`Expected first argument to be of type boolean, string, number or null, but found ${ui(Fi(r))} instead.`);if(!P(o,["string","array"]))throw new Bi(`Expected second argument to be of type array or string, but found ${ui(Fi(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 qt{constructor(e,r,o,l,h,d){this.inputType=e,this.type=r,this.input=o,this.cases=l,this.outputs=h,this.otherwise=d}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={},d=[];for(let T=2;TNumber.MAX_SAFE_INTEGER)return z.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof B=="number"&&Math.floor(B)!==B)return z.error("Numeric branch labels must be integer values.");if(o){if(z.checkSubtype(o,Fi(B)))return null}else o=Fi(B);if(h[String(B)]!==void 0)return z.error("Branch labels must be unique.");h[String(B)]=d.length}const D=r.parse(A,T,l);if(!D)return null;l=l||D.type,d.push(D)}const m=r.parse(e[1],1,Tt);if(!m)return null;const _=r.parse(e[e.length-1],e.length-1,l);return _?m.type.kind!=="value"&&r.concat(1).checkSubtype(o,m.type)?null:new qt(o,l,m,h,d,_):null}evaluate(e){const r=this.input.evaluate(e);return(Fi(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 zs{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 d=1;dr.outputDefined())&&this.otherwise.outputDefined()}}class us{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,Tt),l=r.parse(e[2],2,Ue);if(!o||!l)return null;if(!q(o.type,[Qi(Tt),Dt,Tt]))return r.error(`Expected first argument to be of type array or string, but found ${ui(o.type)} instead`);if(e.length===4){const h=r.parse(e[3],3,Ue);return h?new us(o.type,o,l,h):null}return new us(o.type,o,l)}evaluate(e){const r=this.input.evaluate(e),o=this.beginIndex.evaluate(e);if(!P(r,["string","array"]))throw new Bi(`Expected first argument to be of type array or string, but found ${ui(Fi(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 Ks(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 wa(i,e,r,o){return o.compare(e,r)===0}function Xo(i,e,r){const o=i!=="=="&&i!=="!=";return class Hd{constructor(h,d,m){this.type=xt,this.lhs=h,this.rhs=d,this.collator=m,this.hasUntypedArgument=h.type.kind==="value"||d.type.kind==="value"}static parse(h,d){if(h.length!==3&&h.length!==4)return d.error("Expected two or three arguments.");const m=h[0];let _=d.parse(h[1],1,Tt);if(!_)return null;if(!Ks(m,_.type))return d.concat(1).error(`"${m}" comparisons are not supported for type '${ui(_.type)}'.`);let T=d.parse(h[2],2,Tt);if(!T)return null;if(!Ks(m,T.type))return d.concat(2).error(`"${m}" comparisons are not supported for type '${ui(T.type)}'.`);if(_.type.kind!==T.type.kind&&_.type.kind!=="value"&&T.type.kind!=="value")return d.error(`Cannot compare types '${ui(_.type)}' and '${ui(T.type)}'.`);o&&(_.type.kind==="value"&&T.type.kind!=="value"?_=new kr(T.type,[_]):_.type.kind!=="value"&&T.type.kind==="value"&&(T=new kr(_.type,[T])));let S=null;if(h.length===4){if(_.type.kind!=="string"&&T.type.kind!=="string"&&_.type.kind!=="value"&&T.type.kind!=="value")return d.error("Cannot use collator to compare non-string types.");if(S=d.parse(h[3],3,Qr),!S)return null}return new Hd(_,T,S)}evaluate(h){const d=this.lhs.evaluate(h),m=this.rhs.evaluate(h);if(o&&this.hasUntypedArgument){const _=Fi(d),T=Fi(m);if(_.kind!==T.kind||_.kind!=="string"&&_.kind!=="number")throw new Bi(`Expected arguments for "${i}" to be (string, string) or (number, number), but found (${_.kind}, ${T.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const _=Fi(d),T=Fi(m);if(_.kind!=="string"||T.kind!=="string")return e(h,d,m)}return this.collator?r(h,d,m,this.collator.evaluate(h)):e(h,d,m)}eachChild(h){h(this.lhs),h(this.rhs),this.collator&&h(this.collator)}outputDefined(){return!0}}}const Ls=Xo("==",function(i,e,r){return e===r},wa),Js=Xo("!=",function(i,e,r){return e!==r},function(i,e,r,o){return!wa(0,e,r,o)}),Ta=Xo("<",function(i,e,r){return e",function(i,e,r){return e>r},function(i,e,r,o){return o.compare(e,r)>0}),Ea=Xo("<=",function(i,e,r){return e<=r},function(i,e,r,o){return o.compare(e,r)<=0}),Sa=Xo(">=",function(i,e,r){return e>=r},function(i,e,r,o){return o.compare(e,r)>=0});class Ys{constructor(e,r,o,l,h){this.type=Dt,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,Ue);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,Dt),!h))return null;let d=null;if(l.currency&&(d=r.parse(l.currency,1,Dt),!d))return null;let m=null;if(l["min-fraction-digits"]&&(m=r.parse(l["min-fraction-digits"],1,Ue),!m))return null;let _=null;return l["max-fraction-digits"]&&(_=r.parse(l["max-fraction-digits"],1,Ue),!_)?null:new Ys(o,h,d,m,_)}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 hs{constructor(e){this.type=Wi,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 d=1;d<=e.length-1;++d){const m=e[d];if(h&&typeof m=="object"&&!Array.isArray(m)){h=!1;let _=null;if(m["font-scale"]&&(_=r.parse(m["font-scale"],1,Ue),!_))return null;let T=null;if(m["text-font"]&&(T=r.parse(m["text-font"],1,Qi(Dt)),!T))return null;let S=null;if(m["text-color"]&&(S=r.parse(m["text-color"],1,mr),!S))return null;const A=l[l.length-1];A.scale=_,A.font=T,A.textColor=S}else{const _=r.parse(e[d],1,Tt);if(!_)return null;const T=_.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:_,scale:null,font:null,textColor:null})}}return new hs(l)}evaluate(e){return new vi(this.sections.map(r=>{const o=r.content.evaluate(e);return Fi(o)===Xn?new ao("",o,null,null,null):new ao(ss(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 Wo{constructor(e){this.type=Xn,this.input=e}static parse(e,r){if(e.length!==2)return r.error("Expected two arguments.");const o=r.parse(e[1],1,Dt);return o?new Wo(o):r.error("No image name provided.")}evaluate(e){const r=this.input.evaluate(e),o=Sr.fromString(r);return o&&e.availableImages&&(o.available=e.availableImages.indexOf(r)>-1),o}eachChild(e){e(this.input)}outputDefined(){return!1}}class Ds{constructor(e){this.type=Ue,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 ${ui(o.type)} instead.`):new Ds(o):null}evaluate(e){const r=this.input.evaluate(e);if(typeof r=="string"||Array.isArray(r))return r.length;throw new Bi(`Expected value to be of type string or array, but found ${ui(Fi(r))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}}const Mo={"==":Ls,"!=":Js,">":Dn,"<":Ta,">=":Sa,"<=":Ea,array:kr,at:ks,boolean:kr,case:zs,coalesce:Zo,collator:$t,format:hs,image:Wo,in:cs,"index-of":Ao,interpolate:Lr,"interpolate-hcl":Lr,"interpolate-lab":Lr,length:Ds,let:ls,literal:lo,match:qt,number:kr,"number-format":Ys,object:kr,slice:us,step:Co,string:kr,"to-boolean":er,"to-color":er,"to-number":er,"to-string":er,var:lt,within:we};function Ia(i,[e,r,o,l]){e=e.evaluate(i),r=r.evaluate(i),o=o.evaluate(i);const h=l?l.evaluate(i):1,d=en(e,r,o,h);if(d)throw new Bi(d);return new ot(e/255,r/255,o/255,h,!1)}function ho(i,e){return i in e}function Rs(i,e){const r=e[i];return r===void 0?null:r}function Po(i){return{type:i}}function Ca(i){return{result:"success",value:i}}function po(i){return{result:"error",value:i}}function Rn(i){return i["property-type"]==="data-driven"||i["property-type"]==="cross-faded-data-driven"}function Fs(i){return!!i.expression&&i.expression.parameters.indexOf("zoom")>-1}function ds(i){return!!i.expression&&i.expression.interpolated}function Zt(i){return i instanceof Number?"number":i instanceof String?"string":i instanceof Boolean?"boolean":Array.isArray(i)?"array":i===null?"null":typeof i}function fo(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)}function ol(i){return i}function Aa(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||(ds(e)?"exponential":"interval");if(r||e.type==="padding"){const S=r?ot.parse:Li.parse;(i=Pr({},i)).stops&&(i.stops=i.stops.map(A=>[A[0],S(A[1])])),i.default=S(i.default?i.default:e.default)}if(i.colorSpace&&(d=i.colorSpace)!=="rgb"&&d!=="hcl"&&d!=="lab")throw new Error(`Unknown color space: "${i.colorSpace}"`);var d;let m,_,T;if(h==="exponential")m=ea;else if(h==="interval")m=Qs;else if(h==="categorical"){m=sl,_=Object.create(null);for(const S of i.stops)_[S[0]]=S[1];T=typeof i.stops[0][0]}else{if(h!=="identity")throw new Error(`Unknown function type "${h}"`);m=ta}if(o){const S={},A=[];for(let B=0;BB[0]),evaluate:({zoom:B},Z)=>ea({stops:z,base:i.base},e,B).evaluate(B,Z)}}if(l){const S=h==="exponential"?{name:"exponential",base:i.base!==void 0?i.base:1}:null;return{kind:"camera",interpolationType:S,interpolationFactor:Lr.interpolationFactor.bind(void 0,S),zoomStops:i.stops.map(A=>A[0]),evaluate:({zoom:A})=>m(i,e,A,_,T)}}return{kind:"source",evaluate(S,A){const z=A&&A.properties?A.properties[i.property]:void 0;return z===void 0?ps(i.default,e.default):m(i,e,z,_,T)}}}function ps(i,e,r){return i!==void 0?i:e!==void 0?e:r!==void 0?r:void 0}function sl(i,e,r,o,l){return ps(typeof r===l?o[r]:void 0,i.default,e.default)}function Qs(i,e,r){if(Zt(r)!=="number")return ps(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=ai(i.stops.map(h=>h[0]),r);return i.stops[l][1]}function ea(i,e,r){const o=i.base!==void 0?i.base:1;if(Zt(r)!=="number")return ps(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=ai(i.stops.map(S=>S[0]),r),d=function(S,A,z,D){const B=D-z,Z=S-z;return B===0?0:A===1?Z/B:(Math.pow(A,Z)-1)/(Math.pow(A,B)-1)}(r,o,i.stops[h][0],i.stops[h+1][0]),m=i.stops[h][1],_=i.stops[h+1][1],T=zr[e.type]||ol;return typeof m.evaluate=="function"?{evaluate(...S){const A=m.evaluate.apply(void 0,S),z=_.evaluate.apply(void 0,S);if(A!==void 0&&z!==void 0)return T(A,z,d,i.colorSpace)}}:T(m,_,d,i.colorSpace)}function ta(i,e,r){switch(e.type){case"color":r=ot.parse(r);break;case"formatted":r=vi.fromString(r.toString());break;case"resolvedImage":r=Sr.fromString(r.toString());break;case"padding":r=Li.parse(r);break;default:Zt(r)===e.type||e.type==="enum"&&e.values[r]||(r=void 0)}return ps(r,i.default,e.default)}Bt.register(Mo,{error:[{kind:"error"},[Dt],(i,[e])=>{throw new Bi(e.evaluate(i))}],typeof:[Dt,[Tt],(i,[e])=>ui(Fi(e.evaluate(i)))],"to-rgba":[Qi(Ue,4),[mr],(i,[e])=>{const[r,o,l,h]=e.evaluate(i).rgb;return[255*r,255*o,255*l,h]}],rgb:[mr,[Ue,Ue,Ue],Ia],rgba:[mr,[Ue,Ue,Ue,Ue],Ia],has:{type:xt,overloads:[[[Dt],(i,[e])=>ho(e.evaluate(i),i.properties())],[[Dt,_i],(i,[e,r])=>ho(e.evaluate(i),r.evaluate(i))]]},get:{type:Tt,overloads:[[[Dt],(i,[e])=>Rs(e.evaluate(i),i.properties())],[[Dt,_i],(i,[e,r])=>Rs(e.evaluate(i),r.evaluate(i))]]},"feature-state":[Tt,[Dt],(i,[e])=>Rs(e.evaluate(i),i.featureState||{})],properties:[_i,[],i=>i.properties()],"geometry-type":[Dt,[],i=>i.geometryType()],id:[Tt,[],i=>i.id()],zoom:[Ue,[],i=>i.globals.zoom],"heatmap-density":[Ue,[],i=>i.globals.heatmapDensity||0],"line-progress":[Ue,[],i=>i.globals.lineProgress||0],accumulated:[Tt,[],i=>i.globals.accumulated===void 0?null:i.globals.accumulated],"+":[Ue,Po(Ue),(i,e)=>{let r=0;for(const o of e)r+=o.evaluate(i);return r}],"*":[Ue,Po(Ue),(i,e)=>{let r=1;for(const o of e)r*=o.evaluate(i);return r}],"-":{type:Ue,overloads:[[[Ue,Ue],(i,[e,r])=>e.evaluate(i)-r.evaluate(i)],[[Ue],(i,[e])=>-e.evaluate(i)]]},"/":[Ue,[Ue,Ue],(i,[e,r])=>e.evaluate(i)/r.evaluate(i)],"%":[Ue,[Ue,Ue],(i,[e,r])=>e.evaluate(i)%r.evaluate(i)],ln2:[Ue,[],()=>Math.LN2],pi:[Ue,[],()=>Math.PI],e:[Ue,[],()=>Math.E],"^":[Ue,[Ue,Ue],(i,[e,r])=>Math.pow(e.evaluate(i),r.evaluate(i))],sqrt:[Ue,[Ue],(i,[e])=>Math.sqrt(e.evaluate(i))],log10:[Ue,[Ue],(i,[e])=>Math.log(e.evaluate(i))/Math.LN10],ln:[Ue,[Ue],(i,[e])=>Math.log(e.evaluate(i))],log2:[Ue,[Ue],(i,[e])=>Math.log(e.evaluate(i))/Math.LN2],sin:[Ue,[Ue],(i,[e])=>Math.sin(e.evaluate(i))],cos:[Ue,[Ue],(i,[e])=>Math.cos(e.evaluate(i))],tan:[Ue,[Ue],(i,[e])=>Math.tan(e.evaluate(i))],asin:[Ue,[Ue],(i,[e])=>Math.asin(e.evaluate(i))],acos:[Ue,[Ue],(i,[e])=>Math.acos(e.evaluate(i))],atan:[Ue,[Ue],(i,[e])=>Math.atan(e.evaluate(i))],min:[Ue,Po(Ue),(i,e)=>Math.min(...e.map(r=>r.evaluate(i)))],max:[Ue,Po(Ue),(i,e)=>Math.max(...e.map(r=>r.evaluate(i)))],abs:[Ue,[Ue],(i,[e])=>Math.abs(e.evaluate(i))],round:[Ue,[Ue],(i,[e])=>{const r=e.evaluate(i);return r<0?-Math.round(-r):Math.round(r)}],floor:[Ue,[Ue],(i,[e])=>Math.floor(e.evaluate(i))],ceil:[Ue,[Ue],(i,[e])=>Math.ceil(e.evaluate(i))],"filter-==":[xt,[Dt,Tt],(i,[e,r])=>i.properties()[e.value]===r.value],"filter-id-==":[xt,[Tt],(i,[e])=>i.id()===e.value],"filter-type-==":[xt,[Dt],(i,[e])=>i.geometryType()===e.value],"filter-<":[xt,[Dt,Tt],(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":[xt,[Dt,Tt],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o>l}],"filter-id->":[xt,[Tt],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r>o}],"filter-<=":[xt,[Dt,Tt],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o<=l}],"filter-id-<=":[xt,[Tt],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r<=o}],"filter->=":[xt,[Dt,Tt],(i,[e,r])=>{const o=i.properties()[e.value],l=r.value;return typeof o==typeof l&&o>=l}],"filter-id->=":[xt,[Tt],(i,[e])=>{const r=i.id(),o=e.value;return typeof r==typeof o&&r>=o}],"filter-has":[xt,[Tt],(i,[e])=>e.value in i.properties()],"filter-has-id":[xt,[],i=>i.id()!==null&&i.id()!==void 0],"filter-type-in":[xt,[Qi(Dt)],(i,[e])=>e.value.indexOf(i.geometryType())>=0],"filter-id-in":[xt,[Qi(Tt)],(i,[e])=>e.value.indexOf(i.id())>=0],"filter-in-small":[xt,[Dt,Qi(Tt)],(i,[e,r])=>r.value.indexOf(i.properties()[e.value])>=0],"filter-in-large":[xt,[Dt,Qi(Tt)],(i,[e,r])=>function(o,l,h,d){for(;h<=d;){const m=h+d>>1;if(l[m]===o)return!0;l[m]>o?d=m-1:h=m+1}return!1}(i.properties()[e.value],r.value,0,r.value.length-1)],all:{type:xt,overloads:[[[xt,xt],(i,[e,r])=>e.evaluate(i)&&r.evaluate(i)],[Po(xt),(i,e)=>{for(const r of e)if(!r.evaluate(i))return!1;return!0}]]},any:{type:xt,overloads:[[[xt,xt],(i,[e,r])=>e.evaluate(i)||r.evaluate(i)],[Po(xt),(i,e)=>{for(const r of e)if(r.evaluate(i))return!0;return!1}]]},"!":[xt,[xt],(i,[e])=>!e.evaluate(i)],"is-supported-script":[xt,[Dt],(i,[e])=>{const r=i.globals&&i.globals.isSupportedScript;return!r||r(e.evaluate(i))}],upcase:[Dt,[Dt],(i,[e])=>e.evaluate(i).toUpperCase()],downcase:[Dt,[Dt],(i,[e])=>e.evaluate(i).toLowerCase()],concat:[Dt,Po(Tt),(i,e)=>e.map(r=>ss(r.evaluate(i))).join("")],"resolved-locale":[Dt,[Qr],(i,[e])=>e.evaluate(i).resolvedLocale()]});class Wn{constructor(e,r){var o;this.expression=e,this._warningHistory={},this._evaluator=new As,this._defaultValue=r?(o=r).type==="color"&&fo(o.default)?new ot(0,0,0,0):o.type==="color"?ot.parse(o.default)||null:o.type==="padding"?Li.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,d){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=d,this.expression.evaluate(this._evaluator)}evaluate(e,r,o,l,h,d){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=d||null;try{const m=this.expression.evaluate(this._evaluator);if(m==null||typeof m=="number"&&m!=m)return this._defaultValue;if(this._enumValues&&!(m in this._enumValues))throw new Bi(`Expected value to be one of ${Object.keys(this._enumValues).map(_=>JSON.stringify(_)).join(", ")}, but found ${JSON.stringify(m)} instead.`);return m}catch(m){return this._warningHistory[m.message]||(this._warningHistory[m.message]=!0,typeof console<"u"&&console.warn(m.message)),this._defaultValue}}}function rn(i){return Array.isArray(i)&&i.length>0&&typeof i[0]=="string"&&i[0]in Mo}function ii(i,e){const r=new co(Mo,Ui,[],e?function(l){const h={color:mr,string:Dt,number:Ue,enum:Dt,boolean:xt,formatted:Wi,padding:Er,resolvedImage:Xn};return l.type==="array"?Qi(h[l.value]||Tt,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?Ca(new Wn(o,e)):po(r.errors)}class Ho{constructor(e,r){this.kind=e,this._styleExpression=r,this.isStateDependent=e!=="constant"&&!uo(r.expression)}evaluateWithoutErrorHandling(e,r,o,l,h,d){return this._styleExpression.evaluateWithoutErrorHandling(e,r,o,l,h,d)}evaluate(e,r,o,l,h,d){return this._styleExpression.evaluate(e,r,o,l,h,d)}}class It{constructor(e,r,o,l){this.kind=e,this.zoomStops=o,this._styleExpression=r,this.isStateDependent=e!=="camera"&&!uo(r.expression),this.interpolationType=l}evaluateWithoutErrorHandling(e,r,o,l,h,d){return this._styleExpression.evaluateWithoutErrorHandling(e,r,o,l,h,d)}evaluate(e,r,o,l,h,d){return this._styleExpression.evaluate(e,r,o,l,h,d)}interpolationFactor(e,r,o){return this.interpolationType?Lr.interpolationFactor(this.interpolationType,e,r,o):0}}function Bs(i,e){const r=ii(i,e);if(r.result==="error")return r;const o=r.value.expression,l=xi(o);if(!l&&!Rn(e))return po([new Xi("","data expressions not supported")]);const h=Ms(o,["zoom"]);if(!h&&!Fs(e))return po([new Xi("","zoom expressions not supported")]);const d=Ht(o);return d||h?d instanceof Xi?po([d]):d instanceof Lr&&!ds(e)?po([new Xi("",'"interpolate" expressions cannot be used with this property')]):Ca(d?new It(l?"camera":"composite",r.value,d.labels,d instanceof Lr?d.interpolation:void 0):new Ho(l?"constant":"source",r.value)):po([new Xi("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ri{constructor(e,r){this._parameters=e,this._specification=r,Pr(this,Aa(this._parameters,this._specification))}static deserialize(e){return new ri(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function Ht(i){let e=null;if(i instanceof ls)e=Ht(i.result);else if(i instanceof Zo){for(const r of i.args)if(e=Ht(r),e)break}else(i instanceof Co||i instanceof Lr)&&i.input instanceof Bt&&i.input.name==="zoom"&&(e=i);return e instanceof Xi||i.eachChild(r=>{const o=Ht(r);o instanceof Xi?e=o:!e&&o?e=new Xi("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&o&&e!==o&&(e=new Xi("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function ko(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(!ko(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}const ia={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function ra(i){if(i==null)return{filter:()=>!0,needGeometry:!1};ko(i)||(i=fs(i));const e=ii(i,ia);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:na(i)}}function al(i,e){return ie?1:0}function na(i){if(!Array.isArray(i))return!1;if(i[0]==="within")return!0;for(let e=1;e"||e==="<="||e===">="?zo(i[1],i[2],e):e==="any"?(r=i.slice(1),["any"].concat(r.map(fs))):e==="all"?["all"].concat(i.slice(1).map(fs)):e==="none"?["all"].concat(i.slice(1).map(fs).map(nn)):e==="in"?mo(i[1],i.slice(2)):e==="!in"?nn(mo(i[1],i.slice(2))):e==="has"?oa(i[1]):e==="!has"?nn(oa(i[1])):e!=="within"||i;var r}function zo(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 mo(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(al)]]:["filter-in-small",i,["literal",e]]}}function oa(i){switch(i){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",i]}}function nn(i){return["!",i]}function ms(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+=`${ms(h)},`;return`${l}]`}const r=Object.keys(i).sort();let o="{";for(let l=0;lo.maximum?[new Oe(e,r,`${r} is greater than the maximum value ${o.maximum}`)]:[]}function la(i){const e=i.valueSpec,r=Ni(i.value.type);let o,l,h,d={};const m=r!=="categorical"&&i.value.property===void 0,_=!m,T=Zt(i.value.stops)==="array"&&Zt(i.value.stops[0])==="array"&&Zt(i.value.stops[0][0])==="object",S=Dr({key:i.key,value:i.value,valueSpec:i.styleSpec.function,validateSpec:i.validateSpec,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{stops:function(D){if(r==="identity")return[new Oe(D.key,D.value,'identity function may not have a "stops" property')];let B=[];const Z=D.value;return B=B.concat(aa({key:D.key,value:Z,valueSpec:D.valueSpec,validateSpec:D.validateSpec,style:D.style,styleSpec:D.styleSpec,arrayElementValidator:A})),Zt(Z)==="array"&&Z.length===0&&B.push(new Oe(D.key,Z,"array must have at least one stop")),B},default:function(D){return D.validateSpec({key:D.key,value:D.value,valueSpec:e,validateSpec:D.validateSpec,style:D.style,styleSpec:D.styleSpec})}}});return r==="identity"&&m&&S.push(new Oe(i.key,i.value,'missing required property "property"')),r==="identity"||i.value.stops||S.push(new Oe(i.key,i.value,'missing required property "stops"')),r==="exponential"&&i.valueSpec.expression&&!ds(i.valueSpec)&&S.push(new Oe(i.key,i.value,"exponential functions not supported")),i.styleSpec.$version>=8&&(_&&!Rn(i.valueSpec)?S.push(new Oe(i.key,i.value,"property functions not supported")):m&&!Fs(i.valueSpec)&&S.push(new Oe(i.key,i.value,"zoom functions not supported"))),r!=="categorical"&&!T||i.value.property!==void 0||S.push(new Oe(i.key,i.value,'"property" property is required')),S;function A(D){let B=[];const Z=D.value,$=D.key;if(Zt(Z)!=="array")return[new Oe($,Z,`array expected, ${Zt(Z)} found`)];if(Z.length!==2)return[new Oe($,Z,`array length 2 expected, length ${Z.length} found`)];if(T){if(Zt(Z[0])!=="object")return[new Oe($,Z,`object expected, ${Zt(Z[0])} found`)];if(Z[0].zoom===void 0)return[new Oe($,Z,"object stop key must have zoom")];if(Z[0].value===void 0)return[new Oe($,Z,"object stop key must have value")];if(h&&h>Ni(Z[0].zoom))return[new Oe($,Z[0].zoom,"stop zoom values must appear in ascending order")];Ni(Z[0].zoom)!==h&&(h=Ni(Z[0].zoom),l=void 0,d={}),B=B.concat(Dr({key:`${$}[0]`,value:Z[0],valueSpec:{zoom:{}},validateSpec:D.validateSpec,style:D.style,styleSpec:D.styleSpec,objectElementValidators:{zoom:Os,value:z}}))}else B=B.concat(z({key:`${$}[0]`,value:Z[0],valueSpec:{},validateSpec:D.validateSpec,style:D.style,styleSpec:D.styleSpec},Z));return rn(Fn(Z[1]))?B.concat([new Oe(`${$}[1]`,Z[1],"expressions are not allowed in function stops.")]):B.concat(D.validateSpec({key:`${$}[1]`,value:Z[1],valueSpec:e,validateSpec:D.validateSpec,style:D.style,styleSpec:D.styleSpec}))}function z(D,B){const Z=Zt(D.value),$=Ni(D.value),ne=D.value!==null?D.value:B;if(o){if(Z!==o)return[new Oe(D.key,ne,`${Z} stop domain type must match previous stop domain type ${o}`)]}else o=Z;if(Z!=="number"&&Z!=="string"&&Z!=="boolean")return[new Oe(D.key,ne,"stop domain value must be a number, string, or boolean")];if(Z!=="number"&&r!=="categorical"){let ue=`number expected, ${Z} found`;return Rn(e)&&r===void 0&&(ue+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Oe(D.key,ne,ue)]}return r!=="categorical"||Z!=="number"||isFinite($)&&Math.floor($)===$?r!=="categorical"&&Z==="number"&&l!==void 0&&$new Oe(`${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 Oe(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"&&!uo(r))return[new Oe(i.key,i.value,'"feature-state" data expressions are not supported with layout properties.')];if(i.expressionContext==="filter"&&!uo(r))return[new Oe(i.key,i.value,'"feature-state" data expressions are not supported with filters.')];if(i.expressionContext&&i.expressionContext.indexOf("cluster")===0){if(!Ms(r,["zoom","feature-state"]))return[new Oe(i.key,i.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(i.expressionContext==="cluster-initial"&&!xi(r))return[new Oe(i.key,i.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Ko(i){const e=i.key,r=i.value,o=i.valueSpec,l=[];return Array.isArray(o.values)?o.values.indexOf(Ni(r))===-1&&l.push(new Oe(e,r,`expected one of [${o.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(o.values).indexOf(Ni(r))===-1&&l.push(new Oe(e,r,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(r)} found`)),l}function Jo(i){return ko(Fn(i.value))?_n(Pr({},i,{expressionContext:"filter",valueSpec:{value:"boolean"}})):de(i)}function de(i){const e=i.value,r=i.key;if(Zt(e)!=="array")return[new Oe(r,e,`array expected, ${Zt(e)} found`)];const o=i.styleSpec;let l,h=[];if(e.length<1)return[new Oe(r,e,"filter array must have at least 1 element")];switch(h=h.concat(Ko({key:`${r}[0]`,value:e[0],valueSpec:o.filter_operator,style:i.style,styleSpec:i.styleSpec})),Ni(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Ni(e[1])==="$type"&&h.push(new Oe(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&h.push(new Oe(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(l=Zt(e[1]),l!=="string"&&h.push(new Oe(`${r}[1]`,e[1],`string expected, ${l} found`)));for(let d=2;d{T in r&&e.push(new Oe(o,r[T],`"${T}" is prohibited for ref layers`))}),l.layers.forEach(T=>{Ni(T.id)===m&&(_=T)}),_?_.ref?e.push(new Oe(o,r.ref,"ref cannot reference another ref layer")):d=Ni(_.type):e.push(new Oe(o,r.ref,`ref layer "${m}" not found`))}else if(d!=="background")if(r.source){const _=l.sources&&l.sources[r.source],T=_&&Ni(_.type);_?T==="vector"&&d==="raster"?e.push(new Oe(o,r.source,`layer "${r.id}" requires a raster source`)):T==="raster"&&d!=="raster"?e.push(new Oe(o,r.source,`layer "${r.id}" requires a vector source`)):T!=="vector"||r["source-layer"]?T==="raster-dem"&&d!=="hillshade"?e.push(new Oe(o,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):d!=="line"||!r.paint||!r.paint["line-gradient"]||T==="geojson"&&_.lineMetrics||e.push(new Oe(o,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new Oe(o,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new Oe(o,r.source,`source "${r.source}" not found`))}else e.push(new Oe(o,r,'missing required property "source"'));return e=e.concat(Dr({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:Jo,layout:_=>Dr({layer:r,key:_.key,value:_.value,style:_.style,styleSpec:_.styleSpec,validateSpec:_.validateSpec,objectElementValidators:{"*":T=>gt(Pr({layerType:d},T))}}),paint:_=>Dr({layer:r,key:_.key,value:_.value,style:_.style,styleSpec:_.styleSpec,validateSpec:_.validateSpec,objectElementValidators:{"*":T=>qe(Pr({layerType:d},T))}})}})),e}function Pt(i){const e=i.value,r=i.key,o=Zt(e);return o!=="string"?[new Oe(r,e,`string expected, ${o} found`)]:[]}const mi={promoteId:function({key:i,value:e}){if(Zt(e)==="string")return Pt({key:i,value:e});{const r=[];for(const o in e)r.push(...Pt({key:`${i}.${o}`,value:e[o]}));return r}}};function Ci(i){const e=i.value,r=i.key,o=i.styleSpec,l=i.style,h=i.validateSpec;if(!e.type)return[new Oe(r,e,'"type" is required')];const d=Ni(e.type);let m;switch(d){case"vector":case"raster":case"raster-dem":return m=Dr({key:r,value:e,valueSpec:o[`source_${d.replace("-","_")}`],style:i.style,styleSpec:o,objectElementValidators:mi,validateSpec:h}),m;case"geojson":if(m=Dr({key:r,value:e,valueSpec:o.source_geojson,style:l,styleSpec:o,validateSpec:h,objectElementValidators:mi}),e.cluster)for(const _ in e.clusterProperties){const[T,S]=e.clusterProperties[_],A=typeof T=="string"?[T,["accumulated"],["get",_]]:T;m.push(..._n({key:`${r}.${_}.map`,value:S,validateSpec:h,expressionContext:"cluster-map"})),m.push(..._n({key:`${r}.${_}.reduce`,value:A,validateSpec:h,expressionContext:"cluster-reduce"}))}return m;case"video":return Dr({key:r,value:e,valueSpec:o.source_video,style:l,validateSpec:h,styleSpec:o});case"image":return Dr({key:r,value:e,valueSpec:o.source_image,style:l,validateSpec:h,styleSpec:o});case"canvas":return[new Oe(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Ko({key:`${r}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:l,validateSpec:h,styleSpec:o})}}function on(i){const e=i.value,r=i.styleSpec,o=r.light,l=i.style;let h=[];const d=Zt(e);if(e===void 0)return h;if(d!=="object")return h=h.concat([new Oe("light",e,`object expected, ${d} found`)]),h;for(const m in e){const _=m.match(/^(.*)-transition$/);h=h.concat(_&&o[_[1]]&&o[_[1]].transition?i.validateSpec({key:m,value:e[m],valueSpec:r.transition,validateSpec:i.validateSpec,style:l,styleSpec:r}):o[m]?i.validateSpec({key:m,value:e[m],valueSpec:o[m],validateSpec:i.validateSpec,style:l,styleSpec:r}):[new Oe(m,e[m],`unknown property "${m}"`)])}return h}function Ai(i){const e=i.value,r=i.styleSpec,o=r.terrain,l=i.style;let h=[];const d=Zt(e);if(e===void 0)return h;if(d!=="object")return h=h.concat([new Oe("terrain",e,`object expected, ${d} found`)]),h;for(const m in e)h=h.concat(o[m]?i.validateSpec({key:m,value:e[m],valueSpec:o[m],validateSpec:i.validateSpec,style:l,styleSpec:r}):[new Oe(m,e[m],`unknown property "${m}"`)]);return h}function Vi(i){let e=[];const r=i.value,o=i.key;if(Array.isArray(r)){const l=[],h=[];for(const d in r)r[d].id&&l.includes(r[d].id)&&e.push(new Oe(o,r,`all the sprites' ids must be unique, but ${r[d].id} is duplicated`)),l.push(r[d].id),r[d].url&&h.includes(r[d].url)&&e.push(new Oe(o,r,`all the sprites' URLs must be unique, but ${r[d].url} is duplicated`)),h.push(r[d].url),e=e.concat(Dr({key:`${o}[${d}]`,value:r[d],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:i.validateSpec}));return e}return Pt({key:o,value:r})}const yn={"*":()=>[],array:aa,boolean:function(i){const e=i.value,r=i.key,o=Zt(e);return o!=="boolean"?[new Oe(r,e,`boolean expected, ${o} found`)]:[]},number:Os,color:function(i){const e=i.key,r=i.value,o=Zt(r);return o!=="string"?[new Oe(e,r,`color expected, ${o} found`)]:ot.parse(String(r))?[]:[new Oe(e,r,`color expected, "${r}" found`)]},constants:sa,enum:Ko,filter:Jo,function:la,layer:li,object:Dr,source:Ci,light:on,terrain:Ai,string:Pt,formatted:function(i){return Pt(i).length===0?[]:_n(i)},resolvedImage:function(i){return Pt(i).length===0?[]:_n(i)},padding:function(i){const e=i.key,r=i.value;if(Zt(r)==="array"){if(r.length<1||r.length>4)return[new Oe(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(sa({key:"constants",value:i.constants,style:i,styleSpec:e,validateSpec:Gr}))),go(r)}function lr(i){return function(e){return i({...e,validateSpec:Gr})}}function go(i){return[].concat(i).sort((e,r)=>e.line-r.line)}function gi(i){return function(...e){return go(i.apply(this,e))}}tr.source=gi(lr(Ci)),tr.sprite=gi(lr(Vi)),tr.glyphs=gi(lr(gr)),tr.light=gi(lr(on)),tr.terrain=gi(lr(Ai)),tr.layer=gi(lr(li)),tr.filter=gi(lr(Jo)),tr.paintProperty=gi(lr(qe)),tr.layoutProperty=gi(lr(gt));const sn=tr,Ma=sn.light,ll=sn.paintProperty,cl=sn.layoutProperty;function Kt(i,e){let r=!1;if(e&&e.length)for(const o of e)i.fire(new fr(new Error(o.message))),r=!0;return r}class Xt{constructor(e,r,o){const l=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;const d=new Int32Array(this.arrayBuffer);e=d[0],this.d=(r=d[1])+2*(o=d[2]);for(let _=0;_=A[B+0]&&l>=A[B+1])?(m[D]=!0,d.push(S[D])):m[D]=!1}}}}_forEachCell(e,r,o,l,h,d,m,_){const T=this._convertToCellCoord(e),S=this._convertToCellCoord(r),A=this._convertToCellCoord(o),z=this._convertToCellCoord(l);for(let D=T;D<=A;D++)for(let B=S;B<=z;B++){const Z=this.d*B+D;if((!_||_(this._convertFromCellCoord(D),this._convertFromCellCoord(B),this._convertFromCellCoord(D+1),this._convertFromCellCoord(B+1)))&&h.call(this,e,r,o,l,Z,d,m,_))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 d=0;d=0)continue;const d=i[h];l[h]=qr[o].shallow.indexOf(h)>=0?d:_r(d,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 cr(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||Yo(i)||Nn(i)||ArrayBuffer.isView(i)||i instanceof ImageData)return i;if(Array.isArray(i))return i.map(cr);if(typeof i=="object"){const e=i.$name||"Object";if(!qr[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:r}=qr[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]=qr[e].shallow.indexOf(l)>=0?h:cr(h)}return o}throw new Error("can't deserialize object of type "+typeof i)}class Hn{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 Do(i){for(const e of i)if(gs(e.charCodeAt(0)))return!0;return!1}function _o(i){for(const e of i)if(!yo(e.charCodeAt(0)))return!1;return!0}function yo(i){return!($e.Arabic(i)||$e["Arabic Supplement"](i)||$e["Arabic Extended-A"](i)||$e["Arabic Presentation Forms-A"](i)||$e["Arabic Presentation Forms-B"](i))}function gs(i){return!(i!==746&&i!==747&&(i<4352||!($e["Bopomofo Extended"](i)||$e.Bopomofo(i)||$e["CJK Compatibility Forms"](i)&&!(i>=65097&&i<=65103)||$e["CJK Compatibility Ideographs"](i)||$e["CJK Compatibility"](i)||$e["CJK Radicals Supplement"](i)||$e["CJK Strokes"](i)||!(!$e["CJK Symbols and Punctuation"](i)||i>=12296&&i<=12305||i>=12308&&i<=12319||i===12336)||$e["CJK Unified Ideographs Extension A"](i)||$e["CJK Unified Ideographs"](i)||$e["Enclosed CJK Letters and Months"](i)||$e["Hangul Compatibility Jamo"](i)||$e["Hangul Jamo Extended-A"](i)||$e["Hangul Jamo Extended-B"](i)||$e["Hangul Jamo"](i)||$e["Hangul Syllables"](i)||$e.Hiragana(i)||$e["Ideographic Description Characters"](i)||$e.Kanbun(i)||$e["Kangxi Radicals"](i)||$e["Katakana Phonetic Extensions"](i)||$e.Katakana(i)&&i!==12540||!(!$e["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)||!(!$e["Small Form Variants"](i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||$e["Unified Canadian Aboriginal Syllabics"](i)||$e["Unified Canadian Aboriginal Syllabics Extended"](i)||$e["Vertical Forms"](i)||$e["Yijing Hexagram Symbols"](i)||$e["Yi Syllables"](i)||$e["Yi Radicals"](i))))}function _s(i){return!(gs(i)||function(e){return!!($e["Latin-1 Supplement"](e)&&(e===167||e===169||e===174||e===177||e===188||e===189||e===190||e===215||e===247)||$e["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)||$e["Letterlike Symbols"](e)||$e["Number Forms"](e)||$e["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)||$e["Control Pictures"](e)&&e!==9251||$e["Optical Character Recognition"](e)||$e["Enclosed Alphanumerics"](e)||$e["Geometric Shapes"](e)||$e["Miscellaneous Symbols"](e)&&!(e>=9754&&e<=9759)||$e["Miscellaneous Symbols and Arrows"](e)&&(e>=11026&&e<=11055||e>=11088&&e<=11097||e>=11192&&e<=11243)||$e["CJK Symbols and Punctuation"](e)||$e.Katakana(e)||$e["Private Use Area"](e)||$e["CJK Compatibility Forms"](e)||$e["Small Form Variants"](e)||$e["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 Qo(i){return i>=1424&&i<=2303||$e["Arabic Presentation Forms-A"](i)||$e["Arabic Presentation Forms-B"](i)}function Ro(i,e){return!(!e&&Qo(i)||i>=2304&&i<=3583||i>=3840&&i<=4255||$e.Khmer(i))}function ys(i){for(const e of i)if(Qo(e.charCodeAt(0)))return!0;return!1}const Us="deferred",Fo="loading",es="loaded";let ca=null,an="unavailable",ts=null;const Ql=function(i){i&&typeof i=="string"&&i.indexOf("NetworkError")>-1&&(an="error"),ca&&ca(i)};function ul(){Pa.fire(new Gn("pluginStateChange",{pluginStatus:an,pluginURL:ts}))}const Pa=new $o,hl=function(){return an},ec=function(){if(an!==Us||!ts)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");an=Fo,ul(),ts&&Zi({url:ts},i=>{i?Ql(i):(an=es,ul())})},Bn={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>an===es||Bn.applyArabicShaping!=null,isLoading:()=>an===Fo,setState(i){if(!pi())throw new Error("Cannot set the state of the rtl-text-plugin when not in the web-worker context");an=i.pluginStatus,ts=i.pluginURL},isParsed(){if(!pi())throw new Error("rtl-text-plugin is only parsed on the worker-threads");return Bn.applyArabicShaping!=null&&Bn.processBidirectionalText!=null&&Bn.processStyledBidirectionalText!=null},getPluginURL(){if(!pi())throw new Error("rtl-text-plugin url can only be queried from the worker threads");return ts}};class Mi{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 Hn,this.transition={})}isSupportedScript(e){return function(r,o){for(const l of r)if(!Ro(l.charCodeAt(0),o))return!1;return!0}(e,Bn.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 ka{constructor(e,r){this.property=e,this.value=r,this.expression=function(o,l){if(fo(o))return new ri(o,l);if(rn(o)){const h=Bs(o,l);if(h.result==="error")throw new Error(h.value.map(d=>`${d.key}: ${d.message}`).join(", "));return h.value}{let h=o;return l.type==="color"&&typeof o=="string"?h=ot.parse(o):l.type!=="padding"||typeof o!="number"&&!Array.isArray(o)||(h=Li.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 dl{constructor(e){this.property=e,this.value=new ka(e,void 0)}transitioned(e,r){return new ua(this.property,this.value,r,at({},e.transition,this.transition),e.now)}untransitioned(){return new ua(this.property,this.value,null,{},0)}}class tc{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues)}getValue(e){return Qt(this._values[e].value.value)}setValue(e,r){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new dl(this._values[e].property)),this._values[e].value=new ka(this._values[e].property,r===null?void 0:Qt(r))}getTransition(e){return Qt(this._values[e].transition)}setTransition(e,r){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new dl(this._values[e].property)),this._values[e].transition=Qt(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 ic(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 ic(this._properties);for(const r of Object.keys(this._values))e._values[r]=this._values[r].untransitioned();return e}}class ua{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),d=this.prior;if(d){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=_*_,S=T*_;return 4*(_<.5?S:3*(_-T)+S-.75)}(m))}}return h}}class ic{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitioningPropertyValues)}possiblyEvaluate(e,r,o){const l=new za(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 pl{constructor(e){this._properties=e,this._values=Object.create(e.defaultPropertyValues)}getValue(e){return Qt(this._values[e].value)}setValue(e,r){this._values[e]=new ka(this._values[e].property,r===null?void 0:Qt(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 za(this._properties);for(const h of Object.keys(this._values))l._values[h]=this._values[h].possiblyEvaluate(e,r,o);return l}}class vo{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 za{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues)}get(e){return this._values[e]}}class ht{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=zr[this.specification.type];return l?l(e,r,o):e}}class _t{constructor(e,r){this.specification=e,this.overrides=r}possiblyEvaluate(e,r,o,l){return new vo(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 vo(this,{kind:"constant",value:void 0},e.parameters);const l=zr[this.specification.type];if(l){const h=l(e.value.value,r.value.value,o);return new vo(this,{kind:"constant",value:h},e.parameters)}return e}evaluate(e,r,o,l,h,d){return e.kind==="constant"?e.value:e.evaluate(r,o,l,h,d)}}class ha extends _t{possiblyEvaluate(e,r,o,l){if(e.value===void 0)return new vo(this,{kind:"constant",value:void 0},r);if(e.expression.kind==="constant"){const h=e.expression.evaluate(r,null,{},o,l),d=e.property.specification.type==="resolvedImage"&&typeof h!="string"?h.name:h,m=this._calculate(d,d,d,r);return new vo(this,{kind:"constant",value:m},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 vo(this,{kind:"constant",value:h},r)}return new vo(this,e.expression,r)}evaluate(e,r,o,l,h,d){if(e.kind==="source"){const m=e.evaluate(r,o,l,h,d);return this._calculate(m,m,m,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 fl{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 Mi(Math.floor(r.zoom-1),r)),e.expression.evaluate(new Mi(Math.floor(r.zoom),r)),e.expression.evaluate(new Mi(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 ml{constructor(e){this.specification=e}possiblyEvaluate(e,r,o,l){return!!e.expression.evaluate(r,null,{},o,l)}interpolate(){return!1}}class ln{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 ka(o,void 0),h=this.defaultTransitionablePropertyValues[r]=new dl(o);this.defaultTransitioningPropertyValues[r]=h.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=l.possiblyEvaluate({})}}}He("DataDrivenProperty",_t),He("DataConstantProperty",ht),He("CrossFadedDataDrivenProperty",ha),He("CrossFadedProperty",fl),He("ColorRampProperty",ml);const rc="-transition";class xo extends $o{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 pl(r.layout)),r.paint)){this._transitionablePaint=new tc(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 za(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(cl,`layers.${this.id}.layout.${e}`,e,r,o)||(e!=="visibility"?this._unevaluatedLayout.setValue(e,r):this.visibility=r)}getPaintProperty(e){return e.endsWith(rc)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,r,o={}){if(r!=null&&this._validate(ll,`layers.${this.id}.paint.${e}`,e,r,o))return!1;if(e.endsWith(rc))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",d=l.value.isDataDriven(),m=l.value;this._transitionablePaint.setValue(e,r),this._handleSpecialPaintPropertyUpdate(e);const _=this._transitionablePaint._values[e].value;return _.isDataDriven()||d||h||this._handleOverridablePaintPropertyUpdate(e,m,_)}}_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),Rt(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)&&Kt(this,e.call(sn,{key:r,layerType:this.type,objectKey:o,value:l,styleSpec:_e,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 vo&&Rn(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}}const Dc={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Bo{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 ji{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 ir(i,e=1){let r=0,o=0;return{members:i.map(l=>{const h=Dc[l.type].BYTES_PER_ELEMENT,d=r=nc(r,Math.max(e,h)),m=l.components||1;return o=Math.max(o,h),r+=h*m,{name:l.name,type:l.type,components:m,offset:d}}),size:nc(r,Math.max(o,e)),alignment:e}}function nc(i,e){return Math.ceil(i/e)*e}class Ns extends ji{_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}}Ns.prototype.bytesPerElement=4,He("StructArrayLayout2i4",Ns);class La extends ji{_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}}La.prototype.bytesPerElement=6,He("StructArrayLayout3i6",La);class gl extends ji{_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 d=4*e;return this.int16[d+0]=r,this.int16[d+1]=o,this.int16[d+2]=l,this.int16[d+3]=h,e}}gl.prototype.bytesPerElement=8,He("StructArrayLayout4i8",gl);class bo extends ji{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,d){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,o,l,h,d)}emplace(e,r,o,l,h,d,m){const _=6*e;return this.int16[_+0]=r,this.int16[_+1]=o,this.int16[_+2]=l,this.int16[_+3]=h,this.int16[_+4]=d,this.int16[_+5]=m,e}}bo.prototype.bytesPerElement=12,He("StructArrayLayout2i4i12",bo);class Da extends ji{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,d){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,o,l,h,d)}emplace(e,r,o,l,h,d,m){const _=4*e,T=8*e;return this.int16[_+0]=r,this.int16[_+1]=o,this.uint8[T+4]=l,this.uint8[T+5]=h,this.uint8[T+6]=d,this.uint8[T+7]=m,e}}Da.prototype.bytesPerElement=8,He("StructArrayLayout2i4ub8",Da);class vs extends ji{_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}}vs.prototype.bytesPerElement=8,He("StructArrayLayout2f8",vs);class Ra extends ji{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,d,m,_,T,S){const A=this.length;return this.resize(A+1),this.emplace(A,e,r,o,l,h,d,m,_,T,S)}emplace(e,r,o,l,h,d,m,_,T,S,A){const z=10*e;return this.uint16[z+0]=r,this.uint16[z+1]=o,this.uint16[z+2]=l,this.uint16[z+3]=h,this.uint16[z+4]=d,this.uint16[z+5]=m,this.uint16[z+6]=_,this.uint16[z+7]=T,this.uint16[z+8]=S,this.uint16[z+9]=A,e}}Ra.prototype.bytesPerElement=20,He("StructArrayLayout10ui20",Ra);class da extends ji{_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,d,m,_,T,S,A,z){const D=this.length;return this.resize(D+1),this.emplace(D,e,r,o,l,h,d,m,_,T,S,A,z)}emplace(e,r,o,l,h,d,m,_,T,S,A,z,D){const B=12*e;return this.int16[B+0]=r,this.int16[B+1]=o,this.int16[B+2]=l,this.int16[B+3]=h,this.uint16[B+4]=d,this.uint16[B+5]=m,this.uint16[B+6]=_,this.uint16[B+7]=T,this.int16[B+8]=S,this.int16[B+9]=A,this.int16[B+10]=z,this.int16[B+11]=D,e}}da.prototype.bytesPerElement=24,He("StructArrayLayout4i4ui4i24",da);class _l extends ji{_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}}_l.prototype.bytesPerElement=12,He("StructArrayLayout3f12",_l);class Vs extends ji{_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}}Vs.prototype.bytesPerElement=4,He("StructArrayLayout1ul4",Vs);class xs extends ji{_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,d,m,_,T){const S=this.length;return this.resize(S+1),this.emplace(S,e,r,o,l,h,d,m,_,T)}emplace(e,r,o,l,h,d,m,_,T,S){const A=10*e,z=5*e;return this.int16[A+0]=r,this.int16[A+1]=o,this.int16[A+2]=l,this.int16[A+3]=h,this.int16[A+4]=d,this.int16[A+5]=m,this.uint32[z+3]=_,this.uint16[A+8]=T,this.uint16[A+9]=S,e}}xs.prototype.bytesPerElement=20,He("StructArrayLayout6i1ul2ui20",xs);class yl extends ji{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,o,l,h,d){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,o,l,h,d)}emplace(e,r,o,l,h,d,m){const _=6*e;return this.int16[_+0]=r,this.int16[_+1]=o,this.int16[_+2]=l,this.int16[_+3]=h,this.int16[_+4]=d,this.int16[_+5]=m,e}}yl.prototype.bytesPerElement=12,He("StructArrayLayout2i2i2i12",yl);class Fa extends ji{_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 d=this.length;return this.resize(d+1),this.emplace(d,e,r,o,l,h)}emplace(e,r,o,l,h,d){const m=4*e,_=8*e;return this.float32[m+0]=r,this.float32[m+1]=o,this.float32[m+2]=l,this.int16[_+6]=h,this.int16[_+7]=d,e}}Fa.prototype.bytesPerElement=16,He("StructArrayLayout2f1f2i16",Fa);class bs extends ji{_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 d=12*e,m=3*e;return this.uint8[d+0]=r,this.uint8[d+1]=o,this.float32[m+1]=l,this.float32[m+2]=h,e}}bs.prototype.bytesPerElement=12,He("StructArrayLayout2ub2f12",bs);class Ba extends ji{_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}}Ba.prototype.bytesPerElement=6,He("StructArrayLayout3ui6",Ba);class vl extends ji{_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,d,m,_,T,S,A,z,D,B,Z,$,ne){const ue=this.length;return this.resize(ue+1),this.emplace(ue,e,r,o,l,h,d,m,_,T,S,A,z,D,B,Z,$,ne)}emplace(e,r,o,l,h,d,m,_,T,S,A,z,D,B,Z,$,ne,ue){const te=24*e,fe=12*e,ye=48*e;return this.int16[te+0]=r,this.int16[te+1]=o,this.uint16[te+2]=l,this.uint16[te+3]=h,this.uint32[fe+2]=d,this.uint32[fe+3]=m,this.uint32[fe+4]=_,this.uint16[te+10]=T,this.uint16[te+11]=S,this.uint16[te+12]=A,this.float32[fe+7]=z,this.float32[fe+8]=D,this.uint8[ye+36]=B,this.uint8[ye+37]=Z,this.uint8[ye+38]=$,this.uint32[fe+10]=ne,this.int16[te+22]=ue,e}}vl.prototype.bytesPerElement=48,He("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",vl);class Oa extends ji{_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,d,m,_,T,S,A,z,D,B,Z,$,ne,ue,te,fe,ye,Ee,rt,ct,Je,Ze,Ve,Ye){const Xe=this.length;return this.resize(Xe+1),this.emplace(Xe,e,r,o,l,h,d,m,_,T,S,A,z,D,B,Z,$,ne,ue,te,fe,ye,Ee,rt,ct,Je,Ze,Ve,Ye)}emplace(e,r,o,l,h,d,m,_,T,S,A,z,D,B,Z,$,ne,ue,te,fe,ye,Ee,rt,ct,Je,Ze,Ve,Ye,Xe){const De=34*e,mt=17*e;return this.int16[De+0]=r,this.int16[De+1]=o,this.int16[De+2]=l,this.int16[De+3]=h,this.int16[De+4]=d,this.int16[De+5]=m,this.int16[De+6]=_,this.int16[De+7]=T,this.uint16[De+8]=S,this.uint16[De+9]=A,this.uint16[De+10]=z,this.uint16[De+11]=D,this.uint16[De+12]=B,this.uint16[De+13]=Z,this.uint16[De+14]=$,this.uint16[De+15]=ne,this.uint16[De+16]=ue,this.uint16[De+17]=te,this.uint16[De+18]=fe,this.uint16[De+19]=ye,this.uint16[De+20]=Ee,this.uint16[De+21]=rt,this.uint16[De+22]=ct,this.uint32[mt+12]=Je,this.float32[mt+13]=Ze,this.float32[mt+14]=Ve,this.float32[mt+15]=Ye,this.float32[mt+16]=Xe,e}}Oa.prototype.bytesPerElement=68,He("StructArrayLayout8i15ui1ul4f68",Oa);class Ua extends ji{_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}}Ua.prototype.bytesPerElement=4,He("StructArrayLayout1f4",Ua);class Na extends ji{_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}}Na.prototype.bytesPerElement=8,He("StructArrayLayout1ul2ui8",Na);class a extends ji{_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}}a.prototype.bytesPerElement=4,He("StructArrayLayout2ui4",a);class t extends ji{_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}}t.prototype.bytesPerElement=2,He("StructArrayLayout1ui2",t);class n extends ji{_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 d=4*e;return this.float32[d+0]=r,this.float32[d+1]=o,this.float32[d+2]=l,this.float32[d+3]=h,e}}n.prototype.bytesPerElement=16,He("StructArrayLayout4f16",n);class s extends Bo{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 me(this.anchorPointX,this.anchorPointY)}}s.prototype.size=20;class u extends xs{get(e){return new s(this,e)}}He("CollisionBoxArray",u);class p extends Bo{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]}}p.prototype.size=48;class g extends vl{get(e){return new p(this,e)}}He("PlacedSymbolArray",g);class v extends Bo{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 textOffset0(){return this._structArray.float32[this._pos4+14]}get textOffset1(){return this._structArray.float32[this._pos4+15]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+16]}}v.prototype.size=68;class y extends Oa{get(e){return new v(this,e)}}He("SymbolInstanceArray",y);class w extends Ua{getoffsetX(e){return this.float32[1*e+0]}}He("GlyphOffsetArray",w);class C extends La{getx(e){return this.int16[3*e+0]}gety(e){return this.int16[3*e+1]}gettileUnitDistanceFromAnchor(e){return this.int16[3*e+2]}}He("SymbolLineVertexArray",C);class I extends Bo{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]}}I.prototype.size=8;class F extends Na{get(e){return new I(this,e)}}He("FeatureIndexArray",F);class G extends Ns{}class V extends Ns{}class j extends Ns{}class K extends bo{}class re extends Da{}class ge extends vs{}class W extends Ra{}class pe extends da{}class ve extends _l{}class Ae extends Vs{}class Le extends yl{}class Re extends bs{}class ke extends Ba{}class Qe extends a{}const ft=ir([{name:"a_pos",components:2,type:"Int16"}],4),{members:Ct}=ft;class Ge{constructor(e=[]){this.segments=e}prepareSegment(e,r,o,l){let h=this.segments[this.segments.length-1];return e>Ge.MAX_VERTEX_ARRAY_LENGTH&&di(`Max vertices per segment is ${Ge.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}`),(!h||h.vertexLength+e>Ge.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 Ge([{vertexOffset:e,primitiveOffset:r,vertexLength:o,primitiveLength:l,vaos:{},sortKey:0}])}}function vt(i,e){return 256*(i=et(Math.floor(i),0,255))+et(Math.floor(e),0,255)}Ge.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,He("SegmentVector",Ge);const tt=ir([{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 Jt={exports:{}},Hi={exports:{}};Hi.exports=function(i,e){var r,o,l,h,d,m,_,T;for(o=i.length-(r=3&i.length),l=e,d=3432918353,m=461845907,T=0;T>>16)*d&65535)<<16)&4294967295)<<15|_>>>17))*m+(((_>>>16)*m&65535)<<16)&4294967295)<<13|l>>>19))+((5*(l>>>16)&65535)<<16)&4294967295))+((58964+(h>>>16)&65535)<<16);switch(_=0,r){case 3:_^=(255&i.charCodeAt(T+2))<<16;case 2:_^=(255&i.charCodeAt(T+1))<<8;case 1:l^=_=(65535&(_=(_=(65535&(_^=255&i.charCodeAt(T)))*d+(((_>>>16)*d&65535)<<16)&4294967295)<<15|_>>>17))*m+(((_>>>16)*m&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 Yt=Hi.exports,kt={exports:{}};kt.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 $i=Yt,Zr=kt.exports;Jt.exports=$i,Jt.exports.murmur3=$i,Jt.exports.murmur2=Zr;var Ki=ae(Jt.exports);class yr{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,r,o,l){this.ids.push(vn(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=vn(e);let o=0,l=this.ids.length-1;for(;o>1;this.ids[d]>=r?l=d:o=d+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 Kn(o,l,0,o.length-1),r&&r.push(o.buffer,l.buffer),{ids:o,positions:l}}static deserialize(e){const r=new yr;return r.ids=e.ids,r.positions=e.positions,r.indexed=!0,r}}function vn(i){const e=+i;return!isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:Ki(String(i))}function Kn(i,e,r,o){for(;r>1];let h=r-1,d=o+1;for(;;){do h++;while(i[h]l);if(h>=d)break;Jn(i,h,d),Jn(e,3*h,3*d),Jn(e,3*h+1,3*d+1),Jn(e,3*h+2,3*d+2)}d-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 Rr(e,r):new wo(e,r)}}class xr{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 pa(e,r):new wo(e,r)}}class ni{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 d=this.paintVertexArray.length,m=this.expression.evaluate(new Mi(0),r,{},l,[],h);this.paintVertexArray.resize(e),this._setPaintValue(d,e,m)}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=ei(o);for(let h=e;h`u_${m}_t`),this.type=o,this.useIntegerZoom=l,this.zoom=h,this.maxValue=0,this.paintVertexAttributes=r.map(m=>({name:`a_${m}`,type:"Float32",components:o==="color"?4:2,offset:0})),this.paintVertexArray=new d}populatePaintArray(e,r,o,l,h){const d=this.expression.evaluate(new Mi(this.zoom),r,{},l,[],h),m=this.expression.evaluate(new Mi(this.zoom+1),r,{},l,[],h),_=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(_,e,d,m)}updatePaintArray(e,r,o,l){const h=this.expression.evaluate({zoom:this.zoom},o,l),d=this.expression.evaluate({zoom:this.zoom+1},o,l);this._setPaintValue(e,r,h,d)}_setPaintValue(e,r,o,l){if(this.type==="color"){const h=ei(o),d=ei(l);for(let m=e;m`#define HAS_UNIFORM_${l}`))}return e}getBinderAttributes(){const e=[];for(const r in this.binders){const o=this.binders[r];if(o instanceof ni||o instanceof hr)for(let l=0;l!0){this.programConfigurations={};for(const l of e)this.programConfigurations[l.id]=new Va(l,r,o);this.needsUpload=!1,this._featureMap=new yr,this._bufferOffset=0}populatePaintArrays(e,r,o,l,h,d){for(const m in this.programConfigurations)this.programConfigurations[m].populatePaintArrays(e,r,l,h,d);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 Rc(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 oc(i,e,r){const o={color:{source:vs,composite:n},number:{source:Ua,composite:vs}},l=function(h){return{"line-pattern":{source:W,composite:W},"fill-pattern":{source:W,composite:W},"fill-extrusion-pattern":{source:W,composite:W}}[h]}(i);return l&&l[r]||o[e][r]}He("ConstantBinder",ur),He("CrossFadedConstantBinder",xr),He("SourceExpressionBinder",ni),He("CrossFadedCompositeBinder",xn),He("CompositeExpressionBinder",hr),He("ProgramConfiguration",Va,{omit:["_buffers"]}),He("ProgramConfigurationSet",Oo);var bi=8192;const xl=Math.pow(2,14)-1,fa=-xl-1;function Uo(i){const e=bi/i.extent,r=i.loadGeometry();for(let o=0;od.x+1||_d.y+1)&&di("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return r}function ma(i,e){return{type:i.type,id:i.id,properties:i.properties,geometry:e?Uo(i):[]}}function sc(i,e,r,o,l){i.emplaceBack(2*e+(o+1)/2,2*r+(l+1)/2)}class Fc{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 V,this.indexArray=new ke,this.segments=new Ge,this.programConfigurations=new Oo(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 d=null,m=!1;l.type==="circle"&&(d=l.layout.get("circle-sort-key"),m=!d.isConstant());for(const{feature:_,id:T,index:S,sourceLayerIndex:A}of e){const z=this.layers[0]._featureFilter.needGeometry,D=ma(_,z);if(!this.layers[0]._featureFilter.filter(new Mi(this.zoom),D,o))continue;const B=m?d.evaluate(D,{},o):void 0,Z={id:T,properties:_.properties,type:_.type,sourceLayerIndex:A,index:S,geometry:z?D.geometry:Uo(_),patterns:{},sortKey:B};h.push(Z)}m&&h.sort((_,T)=>_.sortKey-T.sortKey);for(const _ of h){const{geometry:T,index:S,sourceLayerIndex:A}=_,z=e[S].feature;this.addFeature(_,T,S,o),r.featureIndex.insert(z,T,S,A,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,Ct),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 d of h){const m=d.x,_=d.y;if(m<0||m>=bi||_<0||_>=bi)continue;const T=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,e.sortKey),S=T.vertexLength;sc(this.layoutVertexArray,m,_,-1,-1),sc(this.layoutVertexArray,m,_,1,-1),sc(this.layoutVertexArray,m,_,1,1),sc(this.layoutVertexArray,m,_,-1,1),this.indexArray.emplaceBack(S,S+1,S+2),this.indexArray.emplaceBack(S,S+3,S+2),T.vertexLength+=4,T.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,o,{},l)}}function Hu(i,e){for(let r=0;r1){if(Bc(i,e))return!0;for(let o=0;o1?r:r.sub(e)._mult(l)._add(e))}function Yu(i,e){let r,o,l,h=!1;for(let d=0;de.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 ja(i,e){let r=!1;for(let o=0,l=i.length-1;oe.y!=d.y>e.y&&e.x<(d.x-h.x)*(e.y-h.y)/(d.y-h.y)+h.x&&(r=!r)}return r}function ep(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=zt(i,e,r[0]);return h!==zt(i,e,r[1])||h!==zt(i,e,r[2])||h!==zt(i,e,r[3])}function bl(i,e,r){const o=e.paint.get(i).value;return o.kind==="constant"?o.value:r.programConfigurations.get(e.id).getMaxValue(i)}function ac(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function lc(i,e,r,o,l){if(!e[0]&&!e[1])return i;const h=me.convert(e)._mult(l);r==="viewport"&&h._rotate(-o);const d=[];for(let m=0;mi.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 d=i.data,m=e.data;if(d===m)throw new Error("srcData equals dstData, so image is already copied");for(let _=0;_{e[i.evaluationKey]=_;const T=i.expression.evaluate(e);l.data[d+m+0]=Math.floor(255*T.r/T.a),l.data[d+m+1]=Math.floor(255*T.g/T.a),l.data[d+m+2]=Math.floor(255*T.b/T.a),l.data[d+m+3]=Math.floor(255*T.a)};if(i.clips)for(let d=0,m=0;d80*r){o=h=i[0],l=d=i[1];for(var B=r;Bh&&(h=m),_>d&&(d=_);T=(T=Math.max(h-o,d-l))!==0?32767/T:0}return El(z,D,r,o,l,T,0),D}function lh(i,e,r,o,l){var h,d;if(l===qc(i,e,r,o)>0)for(h=e;h=e;h-=o)d=hh(h,i[h],i[h+1],d);return d&&hc(d,d.next)&&(Il(d),d=d.next),d}function ga(i,e){if(!i)return i;e||(e=i);var r,o=i;do if(r=!1,o.steiner||!hc(o,o.next)&&Ji(o.prev,o,o.next)!==0)o=o.next;else{if(Il(o),(o=e=o.prev)===o.next)break;r=!0}while(r||o!==e);return e}function El(i,e,r,o,l,h,d){if(i){!d&&h&&function(S,A,z,D){var B=S;do B.z===0&&(B.z=$c(B.x,B.y,A,z,D)),B.prevZ=B.prev,B.nextZ=B.next,B=B.next;while(B!==S);B.prevZ.nextZ=null,B.prevZ=null,function(Z){var $,ne,ue,te,fe,ye,Ee,rt,ct=1;do{for(ne=Z,Z=null,fe=null,ye=0;ne;){for(ye++,ue=ne,Ee=0,$=0;$0||rt>0&&ue;)Ee!==0&&(rt===0||!ue||ne.z<=ue.z)?(te=ne,ne=ne.nextZ,Ee--):(te=ue,ue=ue.nextZ,rt--),fe?fe.nextZ=te:Z=te,te.prevZ=fe,fe=te;ne=ue}fe.nextZ=null,ct*=2}while(ye>1)}(B)}(i,o,l,h);for(var m,_,T=i;i.prev!==i.next;)if(m=i.prev,_=i.next,h?lp(i,o,l,h):ap(i))e.push(m.i/r|0),e.push(i.i/r|0),e.push(_.i/r|0),Il(i),i=_.next,T=_.next;else if((i=_)===T){d?d===1?El(i=cp(ga(i),e,r),e,r,o,l,h,2):d===2&&up(i,e,r,o,l,h):El(ga(i),e,r,o,l,h,1);break}}}function ap(i){var e=i.prev,r=i,o=i.next;if(Ji(e,r,o)>=0)return!1;for(var l=e.x,h=r.x,d=o.x,m=e.y,_=r.y,T=o.y,S=lh?l>d?l:d:h>d?h:d,D=m>_?m>T?m:T:_>T?_:T,B=o.next;B!==e;){if(B.x>=S&&B.x<=z&&B.y>=A&&B.y<=D&&Ga(l,m,h,_,d,T,B.x,B.y)&&Ji(B.prev,B,B.next)>=0)return!1;B=B.next}return!0}function lp(i,e,r,o){var l=i.prev,h=i,d=i.next;if(Ji(l,h,d)>=0)return!1;for(var m=l.x,_=h.x,T=d.x,S=l.y,A=h.y,z=d.y,D=m<_?m_?m>T?m:T:_>T?_:T,$=S>A?S>z?S:z:A>z?A:z,ne=$c(D,B,e,r,o),ue=$c(Z,$,e,r,o),te=i.prevZ,fe=i.nextZ;te&&te.z>=ne&&fe&&fe.z<=ue;){if(te.x>=D&&te.x<=Z&&te.y>=B&&te.y<=$&&te!==l&&te!==d&&Ga(m,S,_,A,T,z,te.x,te.y)&&Ji(te.prev,te,te.next)>=0||(te=te.prevZ,fe.x>=D&&fe.x<=Z&&fe.y>=B&&fe.y<=$&&fe!==l&&fe!==d&&Ga(m,S,_,A,T,z,fe.x,fe.y)&&Ji(fe.prev,fe,fe.next)>=0))return!1;fe=fe.nextZ}for(;te&&te.z>=ne;){if(te.x>=D&&te.x<=Z&&te.y>=B&&te.y<=$&&te!==l&&te!==d&&Ga(m,S,_,A,T,z,te.x,te.y)&&Ji(te.prev,te,te.next)>=0)return!1;te=te.prevZ}for(;fe&&fe.z<=ue;){if(fe.x>=D&&fe.x<=Z&&fe.y>=B&&fe.y<=$&&fe!==l&&fe!==d&&Ga(m,S,_,A,T,z,fe.x,fe.y)&&Ji(fe.prev,fe,fe.next)>=0)return!1;fe=fe.nextZ}return!0}function cp(i,e,r){var o=i;do{var l=o.prev,h=o.next.next;!hc(l,h)&&ch(l,o,o.next,h)&&Sl(l,h)&&Sl(h,l)&&(e.push(l.i/r|0),e.push(o.i/r|0),e.push(h.i/r|0),Il(o),Il(o.next),o=i=h),o=o.next}while(o!==i);return ga(o)}function up(i,e,r,o,l,h){var d=i;do{for(var m=d.next.next;m!==d.prev;){if(d.i!==m.i&&mp(d,m)){var _=uh(d,m);return d=ga(d,d.next),_=ga(_,_.next),El(d,e,r,o,l,h,0),void El(_,e,r,o,l,h,0)}m=m.next}d=d.next}while(d!==i)}function hp(i,e){return i.x-e.x}function dp(i,e){var r=function(l,h){var d,m=h,_=l.x,T=l.y,S=-1/0;do{if(T<=m.y&&T>=m.next.y&&m.next.y!==m.y){var A=m.x+(T-m.y)*(m.next.x-m.x)/(m.next.y-m.y);if(A<=_&&A>S&&(S=A,d=m.x=m.x&&m.x>=B&&_!==m.x&&Ga(Td.x||m.x===d.x&&pp(d,m)))&&(d=m,$=z)),m=m.next;while(m!==D);return d}(i,e);if(!r)return e;var o=uh(r,i);return ga(o,o.next),ga(r,r.next)}function pp(i,e){return Ji(i.prev,i,e.prev)<0&&Ji(e.next,i,i.next)<0}function $c(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 fp(i){var e=i,r=i;do(e.x=(i-d)*(h-m)&&(i-d)*(o-m)>=(r-d)*(e-m)&&(r-d)*(h-m)>=(l-d)*(o-m)}function mp(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&&ch(l,l.next,r,o))return!0;l=l.next}while(l!==r);return!1}(i,e)&&(Sl(i,e)&&Sl(e,i)&&function(r,o){var l=r,h=!1,d=(r.x+o.x)/2,m=(r.y+o.y)/2;do l.y>m!=l.next.y>m&&l.next.y!==l.y&&d<(l.next.x-l.x)*(m-l.y)/(l.next.y-l.y)+l.x&&(h=!h),l=l.next;while(l!==r);return h}(i,e)&&(Ji(i.prev,i,e.prev)||Ji(i,e.prev,e))||hc(i,e)&&Ji(i.prev,i,i.next)>0&&Ji(e.prev,e,e.next)>0)}function Ji(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 ch(i,e,r,o){var l=pc(Ji(i,e,r)),h=pc(Ji(i,e,o)),d=pc(Ji(r,o,i)),m=pc(Ji(r,o,e));return l!==h&&d!==m||!(l!==0||!dc(i,r,e))||!(h!==0||!dc(i,o,e))||!(d!==0||!dc(r,i,o))||!(m!==0||!dc(r,e,o))}function dc(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 pc(i){return i>0?1:i<0?-1:0}function Sl(i,e){return Ji(i.prev,i,i.next)<0?Ji(i,e,i.next)>=0&&Ji(i,i.prev,e)>=0:Ji(i,e,i.prev)<0||Ji(i,i.next,e)<0}function uh(i,e){var r=new Gc(i.i,i.x,i.y),o=new Gc(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 hh(i,e,r,o){var l=new Gc(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 Il(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 Gc(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 qc(i,e,r,o){for(var l=0,h=e,d=r-o;h0&&r.holes.push(o+=i[l-1].length)}return r};var dh=ae(jc.exports);function gp(i,e,r,o,l){ph(i,e,r||0,o||i.length-1,l||_p)}function ph(i,e,r,o,l){for(;o>r;){if(o-r>600){var h=o-r+1,d=e-r+1,m=Math.log(h),_=.5*Math.exp(2*m/3),T=.5*Math.sqrt(m*_*(h-_)/h)*(d-h/2<0?-1:1);ph(i,e,Math.max(r,Math.floor(e-d*_/h+T)),Math.min(o,Math.floor(e+(h-d)*_/h+T)),l)}var S=i[e],A=r,z=o;for(Cl(i,r,e),l(i[o],S)>0&&Cl(i,r,o);A0;)z--}l(i[r],S)===0?Cl(i,r,z):Cl(i,++z,o),z<=e&&(r=z+1),e<=z&&(o=z-1)}}function Cl(i,e,r){var o=i[e];i[e]=i[r],i[r]=o}function _p(i,e){return ie?1:0}function Zc(i,e){const r=i.length;if(r<=1)return[i];const o=[];let l,h;for(let d=0;d1)for(let d=0;dr.id),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new j,this.indexArray=new ke,this.indexArray2=new Qe,this.programConfigurations=new Oo(e.layers,e.zoom),this.segments=new Ge,this.segments2=new Ge,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){this.hasPattern=Xc("fill",this.layers,r);const l=this.layers[0].layout.get("fill-sort-key"),h=!l.isConstant(),d=[];for(const{feature:m,id:_,index:T,sourceLayerIndex:S}of e){const A=this.layers[0]._featureFilter.needGeometry,z=ma(m,A);if(!this.layers[0]._featureFilter.filter(new Mi(this.zoom),z,o))continue;const D=h?l.evaluate(z,{},o,r.availableImages):void 0,B={id:_,properties:m.properties,type:m.type,sourceLayerIndex:S,index:T,geometry:A?z.geometry:Uo(m),patterns:{},sortKey:D};d.push(B)}h&&d.sort((m,_)=>m.sortKey-_.sortKey);for(const m of d){const{geometry:_,index:T,sourceLayerIndex:S}=m;if(this.hasPattern){const A=Wc("fill",this.layers,m,this.zoom,r);this.patternFeatures.push(A)}else this.addFeature(m,_,T,o,{});r.featureIndex.insert(e[T].feature,_,T,S,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,sp),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 d of Zc(r,500)){let m=0;for(const D of d)m+=D.length;const _=this.segments.prepareSegment(m,this.layoutVertexArray,this.indexArray),T=_.vertexLength,S=[],A=[];for(const D of d){if(D.length===0)continue;D!==d[0]&&A.push(S.length/2);const B=this.segments2.prepareSegment(D.length,this.layoutVertexArray,this.indexArray2),Z=B.vertexLength;this.layoutVertexArray.emplaceBack(D[0].x,D[0].y),this.indexArray2.emplaceBack(Z+D.length-1,Z),S.push(D[0].x),S.push(D[0].y);for(let $=1;$>3}if(l--,o===1||o===2)h+=i.readSVarint(),d+=i.readSVarint(),o===1&&(e&&m.push(e),e=[]),e.push(new Tp(h,d));else{if(o!==7)throw new Error("unknown command "+o);e&&e.push(e[0].clone())}}return e&&m.push(e),m},qa.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,d=1/0,m=-1/0,_=1/0,T=-1/0;i.pos>3}if(o--,r===1||r===2)(l+=i.readSVarint())m&&(m=l),(h+=i.readSVarint())<_&&(_=h),h>T&&(T=h);else if(r!==7)throw new Error("unknown command "+r)}return[d,_,m,T]},qa.prototype.toGeoJSON=function(i,e,r){var o,l,h=this.extent*Math.pow(2,r),d=this.extent*i,m=this.extent*e,_=this.loadGeometry(),T=qa.types[this.type];function S(D){for(var B=0;B>3;l=d===1?o.readString():d===2?o.readFloat():d===3?o.readDouble():d===4?o.readVarint64():d===5?o.readVarint():d===6?o.readSVarint():d===7?o.readBoolean():null}return l}(r))}yh.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 Ip(this._pbf,e,this.extent,this._keys,this._values)};var Ap=_h;function Mp(i,e,r){if(i===3){var o=new Ap(r,r.readVarint()+r.pos);o.length&&(e[o.name]=o)}}js.VectorTile=function(i,e){this.layers=i.readFields(Mp,{},e)},js.VectorTileFeature=gh,js.VectorTileLayer=_h;const Pp=js.VectorTileFeature.types,Kc=Math.pow(2,13);function Al(i,e,r,o,l,h,d,m){i.emplaceBack(e,r,2*Math.floor(o*Kc)+d,l*Kc*2,h*Kc*2,Math.round(m))}class Jc{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 K,this.centroidVertexArray=new G,this.indexArray=new ke,this.programConfigurations=new Oo(e.layers,e.zoom),this.segments=new Ge,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){this.features=[],this.hasPattern=Xc("fill-extrusion",this.layers,r);for(const{feature:l,id:h,index:d,sourceLayerIndex:m}of e){const _=this.layers[0]._featureFilter.needGeometry,T=ma(l,_);if(!this.layers[0]._featureFilter.filter(new Mi(this.zoom),T,o))continue;const S={id:h,sourceLayerIndex:m,index:d,geometry:_?T.geometry:Uo(l),properties:l.properties,type:l.type,patterns:{}};this.hasPattern?this.features.push(Wc("fill-extrusion",this.layers,S,this.zoom,r)):this.addFeature(S,S.geometry,d,o,{}),r.featureIndex.insert(l,S.geometry,d,m,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,wp),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,bp.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 d={x:0,y:0,vertexCount:0};for(const m of Zc(r,500)){let _=0;for(const B of m)_+=B.length;let T=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(const B of m){if(B.length===0||zp(B))continue;let Z=0;for(let $=0;$=1){const ue=B[$-1];if(!kp(ne,ue)){T.vertexLength+4>Ge.MAX_VERTEX_ARRAY_LENGTH&&(T=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const te=ne.sub(ue)._perp()._unit(),fe=ue.dist(ne);Z+fe>32768&&(Z=0),Al(this.layoutVertexArray,ne.x,ne.y,te.x,te.y,0,0,Z),Al(this.layoutVertexArray,ne.x,ne.y,te.x,te.y,0,1,Z),d.x+=2*ne.x,d.y+=2*ne.y,d.vertexCount+=2,Z+=fe,Al(this.layoutVertexArray,ue.x,ue.y,te.x,te.y,0,0,Z),Al(this.layoutVertexArray,ue.x,ue.y,te.x,te.y,0,1,Z),d.x+=2*ue.x,d.y+=2*ue.y,d.vertexCount+=2;const ye=T.vertexLength;this.indexArray.emplaceBack(ye,ye+2,ye+1),this.indexArray.emplaceBack(ye+1,ye+2,ye+3),T.vertexLength+=4,T.primitiveLength+=2}}}}if(T.vertexLength+_>Ge.MAX_VERTEX_ARRAY_LENGTH&&(T=this.segments.prepareSegment(_,this.layoutVertexArray,this.indexArray)),Pp[e.type]!=="Polygon")continue;const S=[],A=[],z=T.vertexLength;for(const B of m)if(B.length!==0){B!==m[0]&&A.push(S.length/2);for(let Z=0;Zbi)||i.y===e.y&&(i.y<0||i.y>bi)}function zp(i){return i.every(e=>e.x<0)||i.every(e=>e.x>bi)||i.every(e=>e.y<0)||i.every(e=>e.y>bi)}let vh;He("FillExtrusionBucket",Jc,{omit:["layers","features"]});var Lp={get paint(){return vh=vh||new ln({"fill-extrusion-opacity":new ht(_e["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new _t(_e["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new ht(_e["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new ht(_e["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new ha(_e["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new _t(_e["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new _t(_e["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new ht(_e["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};function Ml(i,e){return i.x*e.x+i.y*e.y}function xh(i,e){if(i.length===1){let r=0;const o=e[r++];let l;for(;!l||o.equals(l);)if(l=e[r++],!l)return 1/0;for(;rr.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 re,this.layoutVertexArray2=new ge,this.indexArray=new ke,this.programConfigurations=new Oo(e.layers,e.zoom),this.segments=new Ge,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,o){this.hasPattern=Xc("line",this.layers,r);const l=this.layers[0].layout.get("line-sort-key"),h=!l.isConstant(),d=[];for(const{feature:m,id:_,index:T,sourceLayerIndex:S}of e){const A=this.layers[0]._featureFilter.needGeometry,z=ma(m,A);if(!this.layers[0]._featureFilter.filter(new Mi(this.zoom),z,o))continue;const D=h?l.evaluate(z,{},o):void 0,B={id:_,properties:m.properties,type:m.type,sourceLayerIndex:S,index:T,geometry:A?z.geometry:Uo(m),patterns:{},sortKey:D};d.push(B)}h&&d.sort((m,_)=>m.sortKey-_.sortKey);for(const m of d){const{geometry:_,index:T,sourceLayerIndex:S}=m;if(this.hasPattern){const A=Wc("line",this.layers,m,this.zoom,r);this.patternFeatures.push(A)}else this.addFeature(m,_,T,o,{});r.featureIndex.insert(e[T].feature,_,T,S,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,Bp)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Rp),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 d=this.layers[0].layout,m=d.get("line-join").evaluate(e,{}),_=d.get("line-cap"),T=d.get("line-miter-limit"),S=d.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const A of r)this.addLine(A,e,m,_,T,S);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,o,h,l)}addLine(e,r,o,l,h,d){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ne=0;ne=2&&e[_-1].equals(e[_-2]);)_--;let T=0;for(;T<_-1&&e[T].equals(e[T+1]);)T++;if(_<(m?3:2))return;o==="bevel"&&(h=1.05);const S=this.overscaling<=16?15*bi/(512*this.overscaling):0,A=this.segments.prepareSegment(10*_,this.layoutVertexArray,this.indexArray);let z,D,B,Z,$;this.e1=this.e2=-1,m&&(z=e[_-2],$=e[T].sub(z)._unit()._perp());for(let ne=T;ne<_;ne++){if(B=ne===_-1?m?e[T+1]:void 0:e[ne+1],B&&e[ne].equals(B))continue;$&&(Z=$),z&&(D=z),z=e[ne],$=B?B.sub(z)._unit()._perp():Z,Z=Z||$;let ue=Z.add($);ue.x===0&&ue.y===0||ue._unit();const te=Z.x*$.x+Z.y*$.y,fe=ue.x*$.x+ue.y*$.y,ye=fe!==0?1/fe:1/0,Ee=2*Math.sqrt(2-2*fe),rt=fe0;if(rt&&ne>T){const Ve=z.dist(D);if(Ve>2*S){const Ye=z.sub(z.sub(D)._mult(S/Ve)._round());this.updateDistance(D,Ye),this.addCurrentVertex(Ye,Z,0,0,A),D=Ye}}const Je=D&&B;let Ze=Je?o:m?"butt":l;if(Je&&Ze==="round"&&(yeh&&(Ze="bevel"),Ze==="bevel"&&(ye>2&&(Ze="flipbevel"),ye100)ue=$.mult(-1);else{const Ve=ye*Z.add($).mag()/Z.sub($).mag();ue._perp()._mult(Ve*(ct?-1:1))}this.addCurrentVertex(z,ue,0,0,A),this.addCurrentVertex(z,ue.mult(-1),0,0,A)}else if(Ze==="bevel"||Ze==="fakeround"){const Ve=-Math.sqrt(ye*ye-1),Ye=ct?Ve:0,Xe=ct?0:Ve;if(D&&this.addCurrentVertex(z,Z,Ye,Xe,A),Ze==="fakeround"){const De=Math.round(180*Ee/Math.PI/20);for(let mt=1;mt2*S){const Ye=z.add(B.sub(z)._mult(S/Ve)._round());this.updateDistance(z,Ye),this.addCurrentVertex(Ye,$,0,0,A),z=Ye}}}}addCurrentVertex(e,r,o,l,h,d=!1){const m=r.y*l-r.x,_=-r.y-r.x*l;this.addHalfVertex(e,r.x+r.y*o,r.y-r.x*o,d,!1,o,h),this.addHalfVertex(e,m,_,d,!0,-l,h),this.distance>bh/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,r,o,l,h,d))}addHalfVertex({x:e,y:r},o,l,h,d,m,_){const T=.5*(this.lineClips?this.scaledDistance*(bh-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((e<<1)+(h?1:0),(r<<1)+(d?1:0),Math.round(63*o)+128,Math.round(63*l)+128,1+(m===0?0:m<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 S=_.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,S),_.primitiveLength++),d?this.e2=S:this.e1=S}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 wh,Th;He("LineBucket",Yc,{omit:["layers","patternFeatures"]});var Eh={get paint(){return Th=Th||new ln({"line-opacity":new _t(_e.paint_line["line-opacity"]),"line-color":new _t(_e.paint_line["line-color"]),"line-translate":new ht(_e.paint_line["line-translate"]),"line-translate-anchor":new ht(_e.paint_line["line-translate-anchor"]),"line-width":new _t(_e.paint_line["line-width"]),"line-gap-width":new _t(_e.paint_line["line-gap-width"]),"line-offset":new _t(_e.paint_line["line-offset"]),"line-blur":new _t(_e.paint_line["line-blur"]),"line-dasharray":new fl(_e.paint_line["line-dasharray"]),"line-pattern":new ha(_e.paint_line["line-pattern"]),"line-gradient":new ml(_e.paint_line["line-gradient"])})},get layout(){return wh=wh||new ln({"line-cap":new ht(_e.layout_line["line-cap"]),"line-join":new _t(_e.layout_line["line-join"]),"line-miter-limit":new ht(_e.layout_line["line-miter-limit"]),"line-round-limit":new ht(_e.layout_line["line-round-limit"]),"line-sort-key":new _t(_e.layout_line["line-sort-key"])})}};class Np extends _t{possiblyEvaluate(e,r){return r=new Mi(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=at({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(e,r,o,l)}}let fc;function Sh(i,e){return e>0?e+2*i:i}const Vp=ir([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),jp=ir([{name:"a_projected_pos",components:3,type:"Float32"}],4);ir([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const $p=ir([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]);ir([{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 Ih=ir([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Gp=ir([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function qp(i,e,r){return i.sections.forEach(o=>{o.text=function(l,h,d){const m=h.layout.get("text-transform").evaluate(d,{});return m==="uppercase"?l=l.toLocaleUpperCase():m==="lowercase"&&(l=l.toLocaleLowerCase()),Bn.applyArabicShaping&&(l=Bn.applyArabicShaping(l)),l}(o.text,e,r)}),i}ir([{name:"triangle",components:3,type:"Uint16"}]),ir([{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"}]),ir([{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",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),ir([{type:"Float32",name:"offsetX"}]),ir([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);const Pl={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var br=24,Ch=hi,Ah=function(i,e,r,o,l){var h,d,m=8*l-o-1,_=(1<>1,S=-7,A=r?l-1:0,z=r?-1:1,D=i[e+A];for(A+=z,h=D&(1<<-S)-1,D>>=-S,S+=m;S>0;h=256*h+i[e+A],A+=z,S-=8);for(d=h&(1<<-S)-1,h>>=-S,S+=o;S>0;d=256*d+i[e+A],A+=z,S-=8);if(h===0)h=1-T;else{if(h===_)return d?NaN:1/0*(D?-1:1);d+=Math.pow(2,o),h-=T}return(D?-1:1)*d*Math.pow(2,h-o)},Mh=function(i,e,r,o,l,h){var d,m,_,T=8*h-l-1,S=(1<>1,z=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,D=o?0:h-1,B=o?1:-1,Z=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(m=isNaN(e)?1:0,d=S):(d=Math.floor(Math.log(e)/Math.LN2),e*(_=Math.pow(2,-d))<1&&(d--,_*=2),(e+=d+A>=1?z/_:z*Math.pow(2,1-A))*_>=2&&(d++,_/=2),d+A>=S?(m=0,d=S):d+A>=1?(m=(e*_-1)*Math.pow(2,l),d+=A):(m=e*Math.pow(2,A-1)*Math.pow(2,l),d=0));l>=8;i[r+D]=255&m,D+=B,m/=256,l-=8);for(d=d<0;i[r+D]=255&d,D+=B,d/=256,T-=8);i[r+D-B]|=128*Z};function hi(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}hi.Varint=0,hi.Fixed64=1,hi.Bytes=2,hi.Fixed32=5;var Qc=4294967296,Ph=1/Qc,kh=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function ws(i){return i.type===hi.Bytes?i.readVarint()+i.pos:i.pos+1}function Za(i,e,r){return r?4294967296*e+(i>>>0):4294967296*(e>>>0)+(i>>>0)}function zh(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 Zp(i,e){for(var r=0;r>>8,i[r+2]=e>>>16,i[r+3]=e>>>24}function Lh(i,e){return(i[e]|i[e+1]<<8|i[e+2]<<16)+(i[e+3]<<24)}hi.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=mc(this.buf,this.pos);return this.pos+=4,i},readSFixed32:function(){var i=Lh(this.buf,this.pos);return this.pos+=4,i},readFixed64:function(){var i=mc(this.buf,this.pos)+mc(this.buf,this.pos+4)*Qc;return this.pos+=8,i},readSFixed64:function(){var i=mc(this.buf,this.pos)+Lh(this.buf,this.pos+4)*Qc;return this.pos+=8,i},readFloat:function(){var i=Ah(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=Ah(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,d){var m,_,T=d.buf;if(m=(112&(_=T[d.pos++]))>>4,_<128||(m|=(127&(_=T[d.pos++]))<<3,_<128)||(m|=(127&(_=T[d.pos++]))<<10,_<128)||(m|=(127&(_=T[d.pos++]))<<17,_<128)||(m|=(127&(_=T[d.pos++]))<<24,_<128)||(m|=(1&(_=T[d.pos++]))<<31,_<128))return Za(l,m,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&&kh?function(r,o,l){return kh.decode(r.subarray(o,l))}(this.buf,e,i):function(r,o,l){for(var h="",d=o;d239?4:S>223?3:S>191?2:1;if(d+z>l)break;z===1?S<128&&(A=S):z===2?(192&(m=r[d+1]))==128&&(A=(31&S)<<6|63&m)<=127&&(A=null):z===3?(_=r[d+2],(192&(m=r[d+1]))==128&&(192&_)==128&&((A=(15&S)<<12|(63&m)<<6|63&_)<=2047||A>=55296&&A<=57343)&&(A=null)):z===4&&(_=r[d+2],T=r[d+3],(192&(m=r[d+1]))==128&&(192&_)==128&&(192&T)==128&&((A=(15&S)<<18|(63&m)<<12|(63&_)<<6|63&T)<=65535||A>=1114112)&&(A=null)),A===null?(A=65533,z=1):A>65535&&(A-=65536,h+=String.fromCharCode(A>>>10&1023|55296),A=56320|1023&A),h+=String.fromCharCode(A),d+=z}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!==hi.Bytes)return i.push(this.readVarint(e));var r=ws(this);for(i=i||[];this.pos127;);else if(e===hi.Bytes)this.pos=this.readVarint()+this.pos;else if(e===hi.Fixed32)this.pos+=4;else{if(e!==hi.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,d,m){m.buf[m.pos++]=127&h|128,h>>>=7,m.buf[m.pos++]=127&h|128,h>>>=7,m.buf[m.pos++]=127&h|128,h>>>=7,m.buf[m.pos++]=127&h|128,m.buf[m.pos]=127&(h>>>=7)}(o,0,r),function(h,d){var m=(7&h)<<4;d.buf[d.pos++]|=m|((h>>>=3)?128:0),h&&(d.buf[d.pos++]=127&h|((h>>>=7)?128:0),h&&(d.buf[d.pos++]=127&h|((h>>>=7)?128:0),h&&(d.buf[d.pos++]=127&h|((h>>>=7)?128:0),h&&(d.buf[d.pos++]=127&h|((h>>>=7)?128:0),h&&(d.buf[d.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 d,m,_=0;_55295&&d<57344){if(!m){d>56319||_+1===l.length?(o[h++]=239,o[h++]=191,o[h++]=189):m=d;continue}if(d<56320){o[h++]=239,o[h++]=191,o[h++]=189,m=d;continue}d=m-55296<<10|d-56320|65536,m=null}else m&&(o[h++]=239,o[h++]=191,o[h++]=189,m=null);d<128?o[h++]=d:(d<2048?o[h++]=d>>6|192:(d<65536?o[h++]=d>>12|224:(o[h++]=d>>18|240,o[h++]=d>>12&63|128),o[h++]=d>>6&63|128),o[h++]=63&d|128)}return h}(this.buf,i,this.pos);var r=this.pos-e;r>=128&&zh(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(i){this.realloc(4),Mh(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),Mh(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&&zh(r,o,this),this.pos=r-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,e,r){this.writeTag(i,hi.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(i,e){e.length&&this.writeMessage(i,Zp,e)},writePackedSVarint:function(i,e){e.length&&this.writeMessage(i,Xp,e)},writePackedBoolean:function(i,e){e.length&&this.writeMessage(i,Kp,e)},writePackedFloat:function(i,e){e.length&&this.writeMessage(i,Wp,e)},writePackedDouble:function(i,e){e.length&&this.writeMessage(i,Hp,e)},writePackedFixed32:function(i,e){e.length&&this.writeMessage(i,Jp,e)},writePackedSFixed32:function(i,e){e.length&&this.writeMessage(i,Yp,e)},writePackedFixed64:function(i,e){e.length&&this.writeMessage(i,Qp,e)},writePackedSFixed64:function(i,e){e.length&&this.writeMessage(i,ef,e)},writeBytesField:function(i,e){this.writeTag(i,hi.Bytes),this.writeBytes(e)},writeFixed32Field:function(i,e){this.writeTag(i,hi.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(i,e){this.writeTag(i,hi.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(i,e){this.writeTag(i,hi.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(i,e){this.writeTag(i,hi.Fixed64),this.writeSFixed64(e)},writeVarintField:function(i,e){this.writeTag(i,hi.Varint),this.writeVarint(e)},writeSVarintField:function(i,e){this.writeTag(i,hi.Varint),this.writeSVarint(e)},writeStringField:function(i,e){this.writeTag(i,hi.Bytes),this.writeString(e)},writeFloatField:function(i,e){this.writeTag(i,hi.Fixed32),this.writeFloat(e)},writeDoubleField:function(i,e){this.writeTag(i,hi.Fixed64),this.writeDouble(e)},writeBooleanField:function(i,e){this.writeVarintField(i,!!e)}};var eu=ae(Ch);const tu=3;function tf(i,e,r){i===1&&r.readMessage(rf,e)}function rf(i,e,r){if(i===3){const{id:o,bitmap:l,width:h,height:d,left:m,top:_,advance:T}=r.readMessage(nf,{});e.push({id:o,bitmap:new Tl({width:h+2*tu,height:d+2*tu},l),metrics:{width:h,height:d,left:m,top:_,advance:T}})}}function nf(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 Dh=tu;function Rh(i){let e=0,r=0;for(const d of i)e+=d.w*d.h,r=Math.max(r,d.w);i.sort((d,m)=>m.h-d.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 d of i)for(let m=o.length-1;m>=0;m--){const _=o[m];if(!(d.w>_.w||d.h>_.h)){if(d.x=_.x,d.y=_.y,h=Math.max(h,d.y+d.h),l=Math.max(l,d.x+d.w),d.w===_.w&&d.h===_.h){const T=o.pop();m=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 Wa;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(zl.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 gc(i,e,r,o,l,h,d,m,_,T,S,A,z,D,B,Z){const $=Wa.fromFeature(i,l);let ne;A===c.WritingMode.vertical&&$.verticalizePunctuation();const{processBidirectionalText:ue,processStyledBidirectionalText:te}=Bn;if(ue&&$.sections.length===1){ne=[];const Ee=ue($.toString(),ru($,T,h,e,o,D,B));for(const rt of Ee){const ct=new Wa;ct.text=rt,ct.sections=$.sections;for(let Je=0;Je0&&Es>En&&(En=Es)}else{const to=ct[Ut.fontStack],Sn=to&&to[Nr];if(Sn&&Sn.rect)No=Sn.rect,To=Sn.metrics;else{const Es=rt[Ut.fontStack],Bl=Es&&Es[Nr];if(!Bl)continue;To=Bl.metrics}Kr=(Or-Ut.scale)*br}Eo?(Ee.verticalizable=!0,Tn.push({glyph:Nr,imageName:Vo,x:wi,y:Pi+Kr,vertical:Eo,scale:Ut.scale,fontStack:Ut.fontStack,sectionIndex:On,metrics:To,rect:No}),wi+=Ts*Ut.scale+mt):(Tn.push({glyph:Nr,imageName:Vo,x:wi,y:Pi+Kr,vertical:Eo,scale:Ut.scale,fontStack:Ut.fontStack,sectionIndex:On,metrics:To,rect:No}),wi+=To.advance*Ut.scale+mt)}Tn.length!==0&&(dr=Math.max(wi-mt,dr),af(Tn,0,Tn.length-1,Fr,En)),wi=0;const Gi=Ve*Or+En;un.lineOffset=Math.max(En,Hr),Pi+=Gi,eo=Math.max(Gi,eo),++rr}var wr;const Br=Pi-kl,{horizontalAlign:Wr,verticalAlign:wn}=nu(Ye);(function(nr,Or,Hr,un,Tn,En,Gi,Ur,Ut){const On=(Or-Hr)*Tn;let Nr=0;Nr=En!==Gi?-Ur*un-kl:(-un*Ut+.5)*Gi;for(const Kr of nr)for(const To of Kr.positionedGlyphs)To.x+=On,To.y+=Nr})(Ee.positionedLines,Fr,Wr,wn,dr,eo,Ve,Br,Ze.length),Ee.top+=-wn*Br,Ee.bottom=Ee.top+Br,Ee.left+=-Wr*dr,Ee.right=Ee.left+dr}(ye,e,r,o,ne,d,m,_,A,T,z,Z),!function(Ee){for(const rt of Ee)if(rt.positionedGlyphs.length!==0)return!1;return!0}(fe)&&ye}const _c={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},of={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 Bh(i,e,r,o,l,h){if(e.imageName){const d=o[e.imageName];return d?d.displaySize[0]*e.scale*br/h+l:0}{const d=r[e.fontStack],m=d&&d[i];return m?m.metrics.advance*e.scale+l:0}}function Oh(i,e,r,o){const l=Math.pow(i-e,2);return o?i=0;let S=0;for(let z=0;zd.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=Uc([]),this.placementViewportMatrix=Uc([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=jh(this.zoom,r["text-size"]),this.iconSizeData=jh(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=ou(o,"text-overlap","text-allow-overlap")!=="never"||ou(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(d=>c.WritingMode[d])),this.stateDependentLayerIds=this.layers.filter(d=>d.isStateDependent()).map(d=>d.id),this.sourceID=e.sourceID}createArrays(){this.text=new au(new Oo(this.layers,this.zoom,e=>/^text/.test(e))),this.icon=new au(new Oo(this.layers,this.zoom,e=>/^icon/.test(e))),this.glyphOffsetArray=new w,this.lineVertexArray=new C,this.symbolInstances=new y}calculateGlyphDependencies(e,r,o,l,h){for(let d=0;d0)&&(d.value.kind!=="constant"||d.value.value.length>0),S=_.value.kind!=="constant"||!!_.value.value||Object.keys(_.parameters).length>0,A=h.get("symbol-sort-key");if(this.features=[],!T&&!S)return;const z=r.iconDependencies,D=r.glyphDependencies,B=r.availableImages,Z=new Mi(this.zoom);for(const{feature:$,id:ne,index:ue,sourceLayerIndex:te}of e){const fe=l._featureFilter.needGeometry,ye=ma($,fe);if(!l._featureFilter.filter(Z,ye,o))continue;let Ee,rt;if(fe||(ye.geometry=Uo($)),T){const Je=l.getValueAndResolveTokens("text-field",ye,o,B),Ze=vi.factory(Je);hf(Ze)&&(this.hasRTLText=!0),(!this.hasRTLText||hl()==="unavailable"||this.hasRTLText&&Bn.isParsed())&&(Ee=qp(Ze,l,ye))}if(S){const Je=l.getValueAndResolveTokens("icon-image",ye,o,B);rt=Je instanceof Sr?Je:Sr.fromString(Je)}if(!Ee&&!rt)continue;const ct=this.sortFeaturesByKey?A.evaluate(ye,{},o):void 0;if(this.features.push({id:ne,text:Ee,icon:rt,index:ue,sourceLayerIndex:te,geometry:ye.geometry,properties:$.properties,type:cf[$.type],sortKey:ct}),rt&&(z[rt.name]=!0),Ee){const Je=d.evaluate(ye,{},o).join(","),Ze=h.get("text-rotation-alignment")!=="viewport"&&h.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(c.WritingMode.vertical)>=0;for(const Ve of Ee.sections)if(Ve.image)z[Ve.image.name]=!0;else{const Ye=Do(Ee.toString()),Xe=Ve.fontStack||Je,De=D[Xe]=D[Xe]||{};this.calculateGlyphDependencies(Ve.text,De,Ze,this.allowVerticalPlacement,Ye)}}}h.get("symbol-placement")==="line"&&(this.features=function($){const ne={},ue={},te=[];let fe=0;function ye(Je){te.push($[Je]),fe++}function Ee(Je,Ze,Ve){const Ye=ue[Je];return delete ue[Je],ue[Ze]=Ye,te[Ye].geometry[0].pop(),te[Ye].geometry[0]=te[Ye].geometry[0].concat(Ve[0]),Ye}function rt(Je,Ze,Ve){const Ye=ne[Ze];return delete ne[Ze],ne[Je]=Ye,te[Ye].geometry[0].shift(),te[Ye].geometry[0]=Ve[0].concat(te[Ye].geometry[0]),Ye}function ct(Je,Ze,Ve){const Ye=Ve?Ze[0][Ze[0].length-1]:Ze[0][0];return`${Je}:${Ye.x}:${Ye.y}`}for(let Je=0;Je<$.length;Je++){const Ze=$[Je],Ve=Ze.geometry,Ye=Ze.text?Ze.text.toString():null;if(!Ye){ye(Je);continue}const Xe=ct(Ye,Ve),De=ct(Ye,Ve,!0);if(Xe in ue&&De in ne&&ue[Xe]!==ne[De]){const mt=rt(Xe,De,Ve),ut=Ee(Xe,De,te[mt].geometry);delete ne[Xe],delete ue[De],ue[ct(Ye,te[ut].geometry,!0)]=ut,te[mt].geometry=null}else Xe in ue?Ee(Xe,De,Ve):De in ne?rt(Xe,De,Ve):(ye(Je),ne[Xe]=fe-1,ue[De]=fe-1)}return te.filter(Je=>Je.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort(($,ne)=>$.sortKey-ne.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 d={};for(let m=e.segment+1;m=0;m--)d[m]={x:r[m].x,y:r[m].y,tileUnitDistanceFromAnchor:h},m>0&&(h+=r[m-1].dist(r[m]));for(let m=0;m0}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[m]-l[_]||h[_]-h[m]),d}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,d)=>{l>=0&&d.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 $h,Gh;He("SymbolBucket",Ha,{omit:["layers","collisionBoxArray","features","compareText"]}),Ha.MAX_GLYPHS=65535,Ha.addDynamicAttributes=su;var cu={get paint(){return Gh=Gh||new ln({"icon-opacity":new _t(_e.paint_symbol["icon-opacity"]),"icon-color":new _t(_e.paint_symbol["icon-color"]),"icon-halo-color":new _t(_e.paint_symbol["icon-halo-color"]),"icon-halo-width":new _t(_e.paint_symbol["icon-halo-width"]),"icon-halo-blur":new _t(_e.paint_symbol["icon-halo-blur"]),"icon-translate":new ht(_e.paint_symbol["icon-translate"]),"icon-translate-anchor":new ht(_e.paint_symbol["icon-translate-anchor"]),"text-opacity":new _t(_e.paint_symbol["text-opacity"]),"text-color":new _t(_e.paint_symbol["text-color"],{runtimeType:mr,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new _t(_e.paint_symbol["text-halo-color"]),"text-halo-width":new _t(_e.paint_symbol["text-halo-width"]),"text-halo-blur":new _t(_e.paint_symbol["text-halo-blur"]),"text-translate":new ht(_e.paint_symbol["text-translate"]),"text-translate-anchor":new ht(_e.paint_symbol["text-translate-anchor"])})},get layout(){return $h=$h||new ln({"symbol-placement":new ht(_e.layout_symbol["symbol-placement"]),"symbol-spacing":new ht(_e.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ht(_e.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new _t(_e.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ht(_e.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ht(_e.layout_symbol["icon-allow-overlap"]),"icon-overlap":new ht(_e.layout_symbol["icon-overlap"]),"icon-ignore-placement":new ht(_e.layout_symbol["icon-ignore-placement"]),"icon-optional":new ht(_e.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ht(_e.layout_symbol["icon-rotation-alignment"]),"icon-size":new _t(_e.layout_symbol["icon-size"]),"icon-text-fit":new ht(_e.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ht(_e.layout_symbol["icon-text-fit-padding"]),"icon-image":new _t(_e.layout_symbol["icon-image"]),"icon-rotate":new _t(_e.layout_symbol["icon-rotate"]),"icon-padding":new _t(_e.layout_symbol["icon-padding"]),"icon-keep-upright":new ht(_e.layout_symbol["icon-keep-upright"]),"icon-offset":new _t(_e.layout_symbol["icon-offset"]),"icon-anchor":new _t(_e.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ht(_e.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ht(_e.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ht(_e.layout_symbol["text-rotation-alignment"]),"text-field":new _t(_e.layout_symbol["text-field"]),"text-font":new _t(_e.layout_symbol["text-font"]),"text-size":new _t(_e.layout_symbol["text-size"]),"text-max-width":new _t(_e.layout_symbol["text-max-width"]),"text-line-height":new ht(_e.layout_symbol["text-line-height"]),"text-letter-spacing":new _t(_e.layout_symbol["text-letter-spacing"]),"text-justify":new _t(_e.layout_symbol["text-justify"]),"text-radial-offset":new _t(_e.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ht(_e.layout_symbol["text-variable-anchor"]),"text-anchor":new _t(_e.layout_symbol["text-anchor"]),"text-max-angle":new ht(_e.layout_symbol["text-max-angle"]),"text-writing-mode":new ht(_e.layout_symbol["text-writing-mode"]),"text-rotate":new _t(_e.layout_symbol["text-rotate"]),"text-padding":new ht(_e.layout_symbol["text-padding"]),"text-keep-upright":new ht(_e.layout_symbol["text-keep-upright"]),"text-transform":new _t(_e.layout_symbol["text-transform"]),"text-offset":new _t(_e.layout_symbol["text-offset"]),"text-allow-overlap":new ht(_e.layout_symbol["text-allow-overlap"]),"text-overlap":new ht(_e.layout_symbol["text-overlap"]),"text-ignore-placement":new ht(_e.layout_symbol["text-ignore-placement"]),"text-optional":new ht(_e.layout_symbol["text-optional"])})}};class qh{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:gn,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}}He("FormatSectionOverride",qh,{omit:["defaultValue"]});class vc extends xo{constructor(e){super(e,cu)}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),d=this._unevaluatedLayout._values[e];return d.isDataDriven()||rn(d.value)||!h?h:function(m,_){return _.replace(/{([^{}]+)}/g,(T,S)=>S in m?String(m[S]):"")}(r.properties,h)}createBucket(e){return new Ha(e)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const e of cu.paint.overridableProperties){if(!vc.hasPaintOverride(this.layout,e))continue;const r=this.paint.get(e),o=new qh(r),l=new Wn(o,r.property.specification);let h=null;h=r.value.kind==="constant"||r.value.kind==="source"?new Ho("source",l):new It("composite",l,r.value.zoomStops),this.paint._values[e]=new vo(r.property,h,r.parameters)}}_handleOverridablePaintPropertyUpdate(e,r,o){return!(!this.layout||r.isDataDriven()||o.isDataDriven())&&vc.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,r){const o=e.get("text-field"),l=cu.paint.properties[r];let h=!1;const d=m=>{for(const _ of m)if(l.overrides&&l.overrides.hasOverride(_))return void(h=!0)};if(o.value.kind==="constant"&&o.value.value instanceof vi)d(o.value.value.sections);else if(o.value.kind==="source"){const m=T=>{h||(T instanceof lo&&Fi(T.value)===Wi?d(T.value.sections):T instanceof hs?d(T.sections):T.eachChild(m))},_=o.value;_._styleExpression&&m(_._styleExpression.expression)}return h}}let Zh;var df={get paint(){return Zh=Zh||new ln({"background-color":new ht(_e.paint_background["background-color"]),"background-pattern":new fl(_e.paint_background["background-pattern"]),"background-opacity":new ht(_e.paint_background["background-opacity"])})}};let Xh;var pf={get paint(){return Xh=Xh||new ln({"raster-opacity":new ht(_e.paint_raster["raster-opacity"]),"raster-hue-rotate":new ht(_e.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new ht(_e.paint_raster["raster-brightness-min"]),"raster-brightness-max":new ht(_e.paint_raster["raster-brightness-max"]),"raster-saturation":new ht(_e.paint_raster["raster-saturation"]),"raster-contrast":new ht(_e.paint_raster["raster-contrast"]),"raster-resampling":new ht(_e.paint_raster["raster-resampling"]),"raster-fade-duration":new ht(_e.paint_raster["raster-fade-duration"])})}};class ff extends xo{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")}}const mf={circle:class extends xo{constructor(i){super(i,tp)}createBucket(i){return new Fc(i)}queryRadius(i){const e=i;return bl("circle-radius",this,e)+bl("circle-stroke-width",this,e)+ac(this.paint.get("circle-translate"))}queryIntersectsFeature(i,e,r,o,l,h,d,m){const _=lc(i,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),h.angle,d),T=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),S=this.paint.get("circle-pitch-alignment")==="map",A=S?_:function(D,B){return D.map(Z=>ih(Z,B))}(_,m),z=S?T*d:T;for(const D of o)for(const B of D){const Z=S?B:ih(B,m);let $=z;const ne=cc([],[B.x,B.y,0,1],m);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?$*=ne[3]/h.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&($*=h.cameraToCenterDistance/ne[3]),Jd(A,Z,$))return!0}return!1}},heatmap:class extends xo{createBucket(i){return new rh(i)}constructor(i){super(i,rp),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){i==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sh({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(){return 0}queryIntersectsFeature(){return!1}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}},hillshade:class extends xo{constructor(i){super(i,np)}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}},fill:class extends xo{constructor(i){super(i,vp)}recalculate(i,e){super.recalculate(i,e);const r=this.paint._values["fill-outline-color"];r.value.kind==="constant"&&r.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(i){return new Hc(i)}queryRadius(){return ac(this.paint.get("fill-translate"))}queryIntersectsFeature(i,e,r,o,l,h,d){return Ku(lc(i,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),h.angle,d),o)}isTileClipped(){return!0}},"fill-extrusion":class extends xo{constructor(i){super(i,Lp)}createBucket(i){return new Jc(i)}queryRadius(){return ac(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature(i,e,r,o,l,h,d,m){const _=lc(i,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),h.angle,d),T=this.paint.get("fill-extrusion-height").evaluate(e,r),S=this.paint.get("fill-extrusion-base").evaluate(e,r),A=function(D,B,Z,$){const ne=[];for(const ue of D){const te=[ue.x,ue.y,0,1];cc(te,te,B),ne.push(new me(te[0]/te[3],te[1]/te[3]))}return ne}(_,m),z=function(D,B,Z,$){const ne=[],ue=[],te=$[8]*B,fe=$[9]*B,ye=$[10]*B,Ee=$[11]*B,rt=$[8]*Z,ct=$[9]*Z,Je=$[10]*Z,Ze=$[11]*Z;for(const Ve of D){const Ye=[],Xe=[];for(const De of Ve){const mt=De.x,ut=De.y,Ot=$[0]*mt+$[4]*ut+$[12],wi=$[1]*mt+$[5]*ut+$[13],Pi=$[2]*mt+$[6]*ut+$[14],dr=$[3]*mt+$[7]*ut+$[15],eo=Pi+ye,Fr=dr+Ee,rr=Ot+rt,wr=wi+ct,Br=Pi+Je,Wr=dr+Ze,wn=new me((Ot+te)/Fr,(wi+fe)/Fr);wn.z=eo/Fr,Ye.push(wn);const nr=new me(rr/Wr,wr/Wr);nr.z=Br/Wr,Xe.push(nr)}ne.push(Ye),ue.push(Xe)}return[ne,ue]}(o,S,T,m);return function(D,B,Z){let $=1/0;Ku(Z,B)&&($=xh(Z,B[0]));for(let ne=0;ne=3){for(let Z=0;Z{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 uu=63710088e-1;class qs{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 qs(yt(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 uu*Math.acos(Math.min(h,1))}static convert(e){if(e instanceof qs)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new qs(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new qs(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 Wh=2*Math.PI*uu;function Hh(i){return Wh*Math.cos(i*Math.PI/180)}function Kh(i){return(180+i)/360}function Jh(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function Yh(i,e){return i/Hh(e)}function hu(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}class xc{constructor(e,r,o=0){this.x=+e,this.y=+r,this.z=+o}static fromLngLat(e,r=0){const o=qs.convert(e);return new xc(Kh(o.lng),Jh(o.lat),Yh(r,o.lat))}toLngLat(){return new qs(360*this.x-180,hu(this.y))}toAltitude(){return this.z*Hh(hu(this.y))}meterInMercatorCoordinateUnits(){return 1/Wh*(e=hu(this.y),1/Math.cos(e*Math.PI/180));var e}}function Qh(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 du{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=Dl(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=(d=this.y,m=this.z,_=Qh(256*(h=this.x),256*(d=Math.pow(2,m)-d-1),m),T=Qh(256*(h+1),256*(d+1),m),_[0]+","+_[1]+","+T[0]+","+T[1]);var h,d,m,_,T;const S=function(A,z,D){let B,Z="";for(let $=A;$>0;$--)B=1<<$-1,Z+=(z&B?1:0)+(D&B?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,S).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 me((e.x*r-this.x)*bi,(e.y*r-this.y)*bi)}toString(){return`${this.z}/${this.x}/${this.y}`}}class ed{constructor(e,r){this.wrap=e,this.canonical=r,this.key=Dl(e,r.z,r.z,r.x,r.y)}}class Qn{constructor(e,r,o,l,h){if(e= z; overscaledZ = ${e}; z = ${o}`);this.overscaledZ=e,this.wrap=r,this.canonical=new du(o,+l,+h),this.key=Dl(r,e,o,l,h)}clone(){return new Qn(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 Qn(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Qn(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?Dl(this.wrap*+r,e,this.canonical.z,this.canonical.x,this.canonical.y):Dl(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 Qn(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 Qn(r,this.wrap,r,o,l),new Qn(r,this.wrap,r,o+1,l),new Qn(r,this.wrap,r,o,l+1),new Qn(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=m),m=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)}_unpackMapbox(e,r,o){return(256*e*256+256*r+o)/10-1e4}_unpackTerrarium(e,r,o){return 256*e+r+o/256-32768}getPixels(){return new Yn({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,d=o*this.dim,m=o*this.dim+this.dim;switch(r){case-1:l=h-1;break;case 1:h=l+1}switch(o){case-1:d=m-1;break;case 1:m=d+1}const _=-r*this.dim,T=-o*this.dim;for(let S=d;S=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 rd{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 nd{constructor(e,r){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Xt(bi,16,0),this.grid3D=new Xt(bi,16,0),this.featureIndexArray=new F,this.promoteId=r}insert(e,r,o,l,h,d){const m=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(o,l,h);const _=d?this.grid3D:this.grid;for(let T=0;T=0&&A[3]>=0&&_.insert(m,A[0],A[1],A[2],A[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new js.VectorTile(new eu(this.rawTileData)).layers,this.sourceLayerCoder=new id(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(e,r,o,l){this.loadVTLayers();const h=e.params||{},d=bi/e.tileSize/e.scale,m=ra(h.filter),_=e.queryGeometry,T=e.queryPadding*d,S=sd(_),A=this.grid.query(S.minX-T,S.minY-T,S.maxX+T,S.maxY+T),z=sd(e.cameraQueryGeometry),D=this.grid3D.query(z.minX-T,z.minY-T,z.maxX+T,z.maxY+T,($,ne,ue,te)=>function(fe,ye,Ee,rt,ct){for(const Ze of fe)if(ye<=Ze.x&&Ee<=Ze.y&&rt>=Ze.x&&ct>=Ze.y)return!0;const Je=[new me(ye,Ee),new me(ye,ct),new me(rt,ct),new me(rt,Ee)];if(fe.length>2){for(const Ze of Je)if(ja(fe,Ze))return!0}for(let Ze=0;Ze(te||(te=Uo(fe)),ye.queryIntersectsFeature(_,fe,Ee,te,this.z,e.transform,d,e.pixelPosMatrix)))}return B}loadMatchingFeature(e,r,o,l,h,d,m,_,T,S,A){const z=this.bucketLayerIDs[r];if(d&&!function($,ne){for(let ue=0;ue<$.length;ue++)if(ne.indexOf($[ue])>=0)return!0;return!1}(d,z))return;const D=this.sourceLayerCoder.decode(o),B=this.vtLayers[D].feature(l);if(h.needGeometry){const $=ma(B,!0);if(!h.filter(new Mi(this.tileID.overscaledZ),$,this.tileID.canonical))return}else if(!h.filter(new Mi(this.tileID.overscaledZ),B))return;const Z=this.getId(B,D);for(let $=0;${const m=e instanceof za?e.get(d):null;return m&&m.evaluate?m.evaluate(r,o,l):m})}function sd(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 _f(i,e){return e-i}function ad(i,e,r,o,l){const h=[];for(let d=0;d=o&&A.x>=o||(S.x>=o?S=new me(o,S.y+(o-S.x)/(A.x-S.x)*(A.y-S.y))._round():A.x>=o&&(A=new me(o,S.y+(o-S.x)/(A.x-S.x)*(A.y-S.y))._round()),S.y>=l&&A.y>=l||(S.y>=l?S=new me(S.x+(l-S.y)/(A.y-S.y)*(A.x-S.x),l)._round():A.y>=l&&(A=new me(S.x+(l-S.y)/(A.y-S.y)*(A.x-S.x),l)._round()),_&&S.equals(_[_.length-1])||(_=[S],h.push(_)),_.push(A)))))}}return h}He("FeatureIndex",nd,{omit:["rawTileData","sourceLayerCoder"]});class Zs extends me{constructor(e,r,o,l){super(e,r),this.angle=o,l!==void 0&&(this.segment=l)}clone(){return new Zs(this.x,this.y,this.angle,this.segment)}}function ld(i,e,r,o,l){if(e.segment===void 0)return!0;let h=e,d=e.segment+1,m=0;for(;m>-r/2;){if(d--,d<0)return!1;m-=i[d].dist(h),h=i[d]}m+=i[d].dist(i[d+1]),d++;const _=[];let T=0;for(;mo;)T-=_.shift().angleDelta;if(T>l)return!1;d++,m+=S.dist(A)}return!0}function cd(i){let e=0;for(let r=0;rT){const B=(T-_)/D,Z=zr.number(A.x,z.x,B),$=zr.number(A.y,z.y,B),ne=new Zs(Z,$,z.angleTo(A),S);return ne._round(),!d||ld(i,ne,m,d,e)?ne:void 0}_+=D}}function vf(i,e,r,o,l,h,d,m,_){const T=ud(o,h,d),S=hd(o,l),A=S*d,z=i[0].x===0||i[0].x===_||i[0].y===0||i[0].y===_;return e-A=0&&fe<_&&ye>=0&&ye<_&&z-T>=0&&z+T<=S){const Ee=new Zs(fe,ye,ue,B);Ee._round(),o&&!ld(i,Ee,h,o,l)||D.push(Ee)}}A+=ne}return m||D.length||d||(D=dd(i,A/2,r,o,l,h,d,!0,_)),D}He("Anchor",Zs);const Ka=bn;function pd(i,e,r,o){const l=[],h=i.image,d=h.pixelRatio,m=h.paddedRect.w-2*Ka,_=h.paddedRect.h-2*Ka,T=i.right-i.left,S=i.bottom-i.top,A=h.stretchX||[[0,m]],z=h.stretchY||[[0,_]],D=(Ve,Ye)=>Ve+Ye[1]-Ye[0],B=A.reduce(D,0),Z=z.reduce(D,0),$=m-B,ne=_-Z;let ue=0,te=B,fe=0,ye=Z,Ee=0,rt=$,ct=0,Je=ne;if(h.content&&o){const Ve=h.content;ue=bc(A,0,Ve[0]),fe=bc(z,0,Ve[1]),te=bc(A,Ve[0],Ve[2]),ye=bc(z,Ve[1],Ve[3]),Ee=Ve[0]-ue,ct=Ve[1]-fe,rt=Ve[2]-Ve[0]-te,Je=Ve[3]-Ve[1]-ye}const Ze=(Ve,Ye,Xe,De)=>{const mt=wc(Ve.stretch-ue,te,T,i.left),ut=Tc(Ve.fixed-Ee,rt,Ve.stretch,B),Ot=wc(Ye.stretch-fe,ye,S,i.top),wi=Tc(Ye.fixed-ct,Je,Ye.stretch,Z),Pi=wc(Xe.stretch-ue,te,T,i.left),dr=Tc(Xe.fixed-Ee,rt,Xe.stretch,B),eo=wc(De.stretch-fe,ye,S,i.top),Fr=Tc(De.fixed-ct,Je,De.stretch,Z),rr=new me(mt,Ot),wr=new me(Pi,Ot),Br=new me(Pi,eo),Wr=new me(mt,eo),wn=new me(ut/d,wi/d),nr=new me(dr/d,Fr/d),Or=e*Math.PI/180;if(Or){const Tn=Math.sin(Or),En=Math.cos(Or),Gi=[En,-Tn,Tn,En];rr._matMult(Gi),wr._matMult(Gi),Wr._matMult(Gi),Br._matMult(Gi)}const Hr=Ve.stretch+Ve.fixed,un=Ye.stretch+Ye.fixed;return{tl:rr,tr:wr,bl:Wr,br:Br,tex:{x:h.paddedRect.x+Ka+Hr,y:h.paddedRect.y+Ka+un,w:Xe.stretch+Xe.fixed-Hr,h:De.stretch+De.fixed-un},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:wn,pixelOffsetBR:nr,minFontScaleX:rt/d/T,minFontScaleY:Je/d/S,isSDF:r}};if(o&&(h.stretchX||h.stretchY)){const Ve=fd(A,$,B),Ye=fd(z,ne,Z);for(let Xe=0;Xe0&&(B=Math.max(10,B),this.circleDiameter=B)}else{let A=d.top*m-_[0],z=d.bottom*m+_[2],D=d.left*m-_[3],B=d.right*m+_[1];const Z=d.collisionPadding;if(Z&&(D-=Z[0]*m,A-=Z[1]*m,B+=Z[2]*m,z+=Z[3]*m),S){const $=new me(D,A),ne=new me(B,A),ue=new me(D,z),te=new me(B,z),fe=S*Math.PI/180;$._rotate(fe),ne._rotate(fe),ue._rotate(fe),te._rotate(fe),D=Math.min($.x,ne.x,ue.x,te.x),B=Math.max($.x,ne.x,ue.x,te.x),A=Math.min($.y,ne.y,ue.y,te.y),z=Math.max($.y,ne.y,ue.y,te.y)}e.emplaceBack(r.x,r.y,D,A,B,z,o,l,h)}this.boxEndIndex=e.length}}class xf{constructor(e=[],r=bf){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,d=r[h];if(o(l,d)>=0)break;r[e]=d,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]=m,e=d}r[e]=h}}function bf(i,e){return ie?1:0}function wf(i,e=1,r=!1){let o=1/0,l=1/0,h=-1/0,d=-1/0;const m=i[0];for(let D=0;Dh)&&(h=B.x),(!D||B.y>d)&&(d=B.y)}const _=Math.min(h-o,d-l);let T=_/2;const S=new xf([],Tf);if(_===0)return new me(o,l);for(let D=o;DA.d||!A.d)&&(A=D,r&&console.log("found best %d after %d probes",Math.round(1e4*D.d)/1e4,z)),D.max-A.d<=e||(T=D.h/2,S.push(new Ja(D.p.x-T,D.p.y-T,T,i)),S.push(new Ja(D.p.x+T,D.p.y-T,T,i)),S.push(new Ja(D.p.x-T,D.p.y+T,T,i)),S.push(new Ja(D.p.x+T,D.p.y+T,T,i)),z+=4)}return r&&(console.log(`num probes: ${z}`),console.log(`best distance: ${A.d}`)),A.p}function Tf(i,e){return e.max-i.max}function Ja(i,e,r,o){this.p=new me(i,e),this.h=r,this.d=function(l,h){let d=!1,m=1/0;for(let _=0;_l.y!=B.y>l.y&&l.x<(B.x-D.x)*(l.y-D.y)/(B.y-D.y)+D.x&&(d=!d),m=Math.min(m,Ju(l,D,B))}}return(d?1:-1)*Math.sqrt(m)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const pu=Number.POSITIVE_INFINITY;function md(i,e){return e[1]!==pu?function(r,o,l){let h=0,d=0;switch(o=Math.abs(o),l=Math.abs(l),r){case"top-right":case"top-left":case"top":d=l-7;break;case"bottom-right":case"bottom-left":case"bottom":d=7-l}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,d]}(i,e[0],e[1]):function(r,o){let l=0,h=0;o<0&&(o=0);const d=o/Math.sqrt(2);switch(r){case"top-right":case"top-left":h=d-7;break;case"bottom-right":case"bottom-left":h=7-d;break;case"bottom":h=7-o;break;case"top":h=o-7}switch(r){case"top-right":case"bottom-right":l=-d;break;case"top-left":case"bottom-left":l=d;break;case"left":l=o;break;case"right":l=-o}return[l,h]}(i,e[0])}function fu(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 Ef(i,e,r,o,l,h,d,m,_,T,S){let A=h.textMaxSize.evaluate(e,{});A===void 0&&(A=d);const z=i.layers[0].layout,D=z.get("icon-offset").evaluate(e,{},S),B=_d(r.horizontal),Z=d/24,$=i.tilePixelRatio*Z,ne=i.tilePixelRatio*A/24,ue=i.tilePixelRatio*m,te=i.tilePixelRatio*z.get("symbol-spacing"),fe=z.get("text-padding")*i.tilePixelRatio,ye=function(De,mt,ut,Ot=1){const wi=De.get("icon-padding").evaluate(mt,{},ut),Pi=wi&&wi.values;return[Pi[0]*Ot,Pi[1]*Ot,Pi[2]*Ot,Pi[3]*Ot]}(z,e,S,i.tilePixelRatio),Ee=z.get("text-max-angle")/180*Math.PI,rt=z.get("text-rotation-alignment")!=="viewport"&&z.get("symbol-placement")!=="point",ct=z.get("icon-rotation-alignment")==="map"&&z.get("symbol-placement")!=="point",Je=z.get("symbol-placement"),Ze=te/2,Ve=z.get("icon-text-fit");let Ye;o&&Ve!=="none"&&(i.allowVerticalPlacement&&r.vertical&&(Ye=Vh(o,r.vertical,Ve,z.get("icon-text-fit-padding"),D,Z)),B&&(o=Vh(o,B,Ve,z.get("icon-text-fit-padding"),D,Z)));const Xe=(De,mt)=>{mt.x<0||mt.x>=bi||mt.y<0||mt.y>=bi||function(ut,Ot,wi,Pi,dr,eo,Fr,rr,wr,Br,Wr,wn,nr,Or,Hr,un,Tn,En,Gi,Ur,Ut,On,Nr,Kr,To){const No=ut.addToLineVertexArray(Ot,wi);let Vo,Ts,Eo,to,Sn=0,Es=0,Bl=0,bd=0,wu=-1,Tu=-1;const Ss={};let wd=Ki(""),Eu=0,Su=0;if(rr._unevaluatedLayout.getValue("text-radial-offset")===void 0?[Eu,Su]=rr.layout.get("text-offset").evaluate(Ut,{},Kr).map(In=>In*br):(Eu=rr.layout.get("text-radial-offset").evaluate(Ut,{},Kr)*br,Su=pu),ut.allowVerticalPlacement&&Pi.vertical){const In=rr.layout.get("text-rotate").evaluate(Ut,{},Kr)+90;Eo=new Ec(wr,Ot,Br,Wr,wn,Pi.vertical,nr,Or,Hr,In),Fr&&(to=new Ec(wr,Ot,Br,Wr,wn,Fr,Tn,En,Hr,In))}if(dr){const In=rr.layout.get("icon-rotate").evaluate(Ut,{}),rs=rr.layout.get("icon-text-fit")!=="none",Ol=pd(dr,In,Nr,rs),Ul=Fr?pd(Fr,In,Nr,rs):void 0;Ts=new Ec(wr,Ot,Br,Wr,wn,dr,Tn,En,!1,In),Sn=4*Ol.length;const Sd=ut.iconSizeData;let _a=null;Sd.kind==="source"?(_a=[is*rr.layout.get("icon-size").evaluate(Ut,{})],_a[0]>Gs&&di(`${ut.layerIds[0]}: Value for "icon-size" is >= ${Ll}. Reduce your "icon-size".`)):Sd.kind==="composite"&&(_a=[is*On.compositeIconSizes[0].evaluate(Ut,{},Kr),is*On.compositeIconSizes[1].evaluate(Ut,{},Kr)],(_a[0]>Gs||_a[1]>Gs)&&di(`${ut.layerIds[0]}: Value for "icon-size" is >= ${Ll}. Reduce your "icon-size".`)),ut.addSymbols(ut.icon,Ol,_a,Ur,Gi,Ut,c.WritingMode.none,Ot,No.lineStartIndex,No.lineLength,-1,Kr),wu=ut.icon.placedSymbolArray.length-1,Ul&&(Es=4*Ul.length,ut.addSymbols(ut.icon,Ul,_a,Ur,Gi,Ut,c.WritingMode.vertical,Ot,No.lineStartIndex,No.lineLength,-1,Kr),Tu=ut.icon.placedSymbolArray.length-1)}const Td=Object.keys(Pi.horizontal);for(const In of Td){const rs=Pi.horizontal[In];if(!Vo){wd=Ki(rs.text);const Ul=rr.layout.get("text-rotate").evaluate(Ut,{},Kr);Vo=new Ec(wr,Ot,Br,Wr,wn,rs,nr,Or,Hr,Ul)}const Ol=rs.positionedLines.length===1;if(Bl+=gd(ut,Ot,rs,eo,rr,Hr,Ut,un,No,Pi.vertical?c.WritingMode.horizontal:c.WritingMode.horizontalOnly,Ol?Td:[In],Ss,wu,On,Kr),Ol)break}Pi.vertical&&(bd+=gd(ut,Ot,Pi.vertical,eo,rr,Hr,Ut,un,No,c.WritingMode.vertical,["vertical"],Ss,Tu,On,Kr));const Cf=Vo?Vo.boxStartIndex:ut.collisionBoxArray.length,Af=Vo?Vo.boxEndIndex:ut.collisionBoxArray.length,Mf=Eo?Eo.boxStartIndex:ut.collisionBoxArray.length,Pf=Eo?Eo.boxEndIndex:ut.collisionBoxArray.length,kf=Ts?Ts.boxStartIndex:ut.collisionBoxArray.length,zf=Ts?Ts.boxEndIndex:ut.collisionBoxArray.length,Lf=to?to.boxStartIndex:ut.collisionBoxArray.length,Df=to?to.boxEndIndex:ut.collisionBoxArray.length;let jo=-1;const Ic=(In,rs)=>In&&In.circleDiameter?Math.max(In.circleDiameter,rs):rs;jo=Ic(Vo,jo),jo=Ic(Eo,jo),jo=Ic(Ts,jo),jo=Ic(to,jo);const Ed=jo>-1?1:0;Ed&&(jo*=To/br),ut.glyphOffsetArray.length>=Ha.MAX_GLYPHS&&di("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Ut.sortKey!==void 0&&ut.addToSortKeyRanges(ut.symbolInstances.length,Ut.sortKey),ut.symbolInstances.emplaceBack(Ot.x,Ot.y,Ss.right>=0?Ss.right:-1,Ss.center>=0?Ss.center:-1,Ss.left>=0?Ss.left:-1,Ss.vertical||-1,wu,Tu,wd,Cf,Af,Mf,Pf,kf,zf,Lf,Df,Br,Bl,bd,Sn,Es,Ed,0,nr,Eu,Su,jo)}(i,mt,De,r,o,l,Ye,i.layers[0],i.collisionBoxArray,e.index,e.sourceLayerIndex,i.index,$,[fe,fe,fe,fe],rt,_,ue,ye,ct,D,e,h,T,S,d)};if(Je==="line")for(const De of ad(e.geometry,0,0,bi,bi)){const mt=vf(De,te,Ee,r.vertical||B,o,24,ne,i.overscaling,bi);for(const ut of mt)B&&Sf(i,B.text,Ze,ut)||Xe(De,ut)}else if(Je==="line-center"){for(const De of e.geometry)if(De.length>1){const mt=yf(De,Ee,r.vertical||B,o,24,ne);mt&&Xe(De,mt)}}else if(e.type==="Polygon")for(const De of Zc(e.geometry,0)){const mt=wf(De,16);Xe(De[0],new Zs(mt.x,mt.y,0))}else if(e.type==="LineString")for(const De of e.geometry)Xe(De,new Zs(De[0].x,De[0].y,0));else if(e.type==="Point")for(const De of e.geometry)for(const mt of De)Xe([mt],new Zs(mt.x,mt.y,0))}function gd(i,e,r,o,l,h,d,m,_,T,S,A,z,D,B){const Z=function(ue,te,fe,ye,Ee,rt,ct,Je){const Ze=ye.layout.get("text-rotate").evaluate(rt,{})*Math.PI/180,Ve=[];for(const Ye of te.positionedLines)for(const Xe of Ye.positionedGlyphs){if(!Xe.rect)continue;const De=Xe.rect||{};let mt=Dh+1,ut=!0,Ot=1,wi=0;const Pi=(Ee||Je)&&Xe.vertical,dr=Xe.metrics.advance*Xe.scale/2;if(Je&&te.verticalizable&&(wi=Ye.lineOffset/2-(Xe.imageName?-(br-Xe.metrics.width*Xe.scale)/2:(Xe.scale-1)*br)),Xe.imageName){const Gi=ct[Xe.imageName];ut=Gi.sdf,Ot=Gi.pixelRatio,mt=bn/Ot}const eo=Ee?[Xe.x+dr,Xe.y]:[0,0];let Fr=Ee?[0,0]:[Xe.x+dr+fe[0],Xe.y+fe[1]-wi],rr=[0,0];Pi&&(rr=Fr,Fr=[0,0]);const wr=(Xe.metrics.left-mt)*Xe.scale-dr+Fr[0],Br=(-Xe.metrics.top-mt)*Xe.scale+Fr[1],Wr=wr+De.w*Xe.scale/Ot,wn=Br+De.h*Xe.scale/Ot,nr=new me(wr,Br),Or=new me(Wr,Br),Hr=new me(wr,wn),un=new me(Wr,wn);if(Pi){const Gi=new me(-dr,dr-kl),Ur=-Math.PI/2,Ut=br/2-dr,On=new me(5-kl-Ut,-(Xe.imageName?Ut:0)),Nr=new me(...rr);nr._rotateAround(Ur,Gi)._add(On)._add(Nr),Or._rotateAround(Ur,Gi)._add(On)._add(Nr),Hr._rotateAround(Ur,Gi)._add(On)._add(Nr),un._rotateAround(Ur,Gi)._add(On)._add(Nr)}if(Ze){const Gi=Math.sin(Ze),Ur=Math.cos(Ze),Ut=[Ur,-Gi,Gi,Ur];nr._matMult(Ut),Or._matMult(Ut),Hr._matMult(Ut),un._matMult(Ut)}const Tn=new me(0,0),En=new me(0,0);Ve.push({tl:nr,tr:Or,bl:Hr,br:un,tex:De,writingMode:te.writingMode,glyphOffset:eo,sectionIndex:Xe.sectionIndex,isSDF:ut,pixelOffsetTL:Tn,pixelOffsetBR:En,minFontScaleX:0,minFontScaleY:0})}return Ve}(0,r,m,l,h,d,o,i.allowVerticalPlacement),$=i.textSizeData;let ne=null;$.kind==="source"?(ne=[is*l.layout.get("text-size").evaluate(d,{})],ne[0]>Gs&&di(`${i.layerIds[0]}: Value for "text-size" is >= ${Ll}. Reduce your "text-size".`)):$.kind==="composite"&&(ne=[is*D.compositeTextSizes[0].evaluate(d,{},B),is*D.compositeTextSizes[1].evaluate(d,{},B)],(ne[0]>Gs||ne[1]>Gs)&&di(`${i.layerIds[0]}: Value for "text-size" is >= ${Ll}. Reduce your "text-size".`)),i.addSymbols(i.text,Z,ne,m,h,d,T,e,_.lineStartIndex,_.lineLength,z,B);for(const ue of S)A[ue]=i.text.placedSymbolArray.length-1;return 4*Z.length}function _d(i){for(const e in i)return i[e];return null}function Sf(i,e,r,o){const l=i.compareText;if(e in l){const h=l[e];for(let d=h.length-1;d>=0;d--)if(o.dist(h[d])>4;if(l!==1)throw new Error(`Got v${l} data when expected v1.`);const h=yd[15&o];if(!h)throw new Error("Unrecognized array type.");const[d]=new Uint16Array(e,2,1),[m]=new Uint32Array(e,4,1);return new mu(m,d,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=yd.indexOf(this.ArrayType),d=2*e*this.ArrayType.BYTES_PER_ELEMENT,m=e*this.IndexArrayType.BYTES_PER_ELEMENT,_=(8-m%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+m+_,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+d+m+_),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+m+_,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 gu(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:d,nodeSize:m}=this,_=[0,h.length-1,0],T=[];for(;_.length;){const S=_.pop()||0,A=_.pop()||0,z=_.pop()||0;if(A-z<=m){for(let $=z;$<=A;$++){const ne=d[2*$],ue=d[2*$+1];ne>=e&&ne<=o&&ue>=r&&ue<=l&&T.push(h[$])}continue}const D=z+A>>1,B=d[2*D],Z=d[2*D+1];B>=e&&B<=o&&Z>=r&&Z<=l&&T.push(h[D]),(S===0?e<=B:r<=Z)&&(_.push(z),_.push(D-1),_.push(1-S)),(S===0?o>=B:l>=Z)&&(_.push(D+1),_.push(A),_.push(1-S))}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:d}=this,m=[0,l.length-1,0],_=[],T=o*o;for(;m.length;){const S=m.pop()||0,A=m.pop()||0,z=m.pop()||0;if(A-z<=d){for(let $=z;$<=A;$++)xd(h[2*$],h[2*$+1],e,r)<=T&&_.push(l[$]);continue}const D=z+A>>1,B=h[2*D],Z=h[2*D+1];xd(B,Z,e,r)<=T&&_.push(l[D]),(S===0?e-o<=B:r-o<=Z)&&(m.push(z),m.push(D-1),m.push(1-S)),(S===0?e+o>=B:r+o>=Z)&&(m.push(D+1),m.push(A),m.push(1-S))}return _}}function gu(i,e,r,o,l,h){if(l-o<=r)return;const d=o+l>>1;vd(i,e,d,o,l,h),gu(i,e,r,o,d-1,1-h),gu(i,e,r,d+1,l,1-h)}function vd(i,e,r,o,l,h){for(;l>o;){if(l-o>600){const T=l-o+1,S=r-o+1,A=Math.log(T),z=.5*Math.exp(2*A/3),D=.5*Math.sqrt(A*z*(T-z)/T)*(S-T/2<0?-1:1);vd(i,e,r,Math.max(o,Math.floor(r-S*z/T+D)),Math.min(l,Math.floor(r+(T-S)*z/T+D)),h)}const d=e[2*r+h];let m=o,_=l;for(Rl(i,e,o,r),e[2*l+h]>d&&Rl(i,e,o,l);m<_;){for(Rl(i,e,m,_),m++,_--;e[2*m+h]d;)_--}e[2*o+h]===d?Rl(i,e,o,_):(_++,Rl(i,e,_,l)),_<=r&&(o=_+1),r<=_&&(l=_-1)}}function Rl(i,e,r,o){_u(i,r,o),_u(e,2*r,2*o),_u(e,2*r+1,2*o+1)}function _u(i,e,r){const o=i[e];i[e]=i[r],i[r]=o}function xd(i,e,r,o){const l=i-r,h=e-o;return l*l+h*h}var yu;c.PerformanceMarkers=void 0,(yu=c.PerformanceMarkers||(c.PerformanceMarkers={})).create="create",yu.load="load",yu.fullLoad="fullLoad";let Sc=null,Fl=[];const vu=1e3/60,xu="loadTime",bu="fullLoadTime",If={mark(i){performance.mark(i)},frame(i){const e=i;Sc!=null&&Fl.push(e-Sc),Sc=e},clearMetrics(){Sc=null,Fl=[],performance.clearMeasures(xu),performance.clearMeasures(bu);for(const i in c.PerformanceMarkers)performance.clearMarks(c.PerformanceMarkers[i])},getPerformanceMetrics(){performance.measure(xu,c.PerformanceMarkers.create,c.PerformanceMarkers.load),performance.measure(bu,c.PerformanceMarkers.create,c.PerformanceMarkers.fullLoad);const i=performance.getEntriesByName(xu)[0].duration,e=performance.getEntriesByName(bu)[0].duration,r=Fl.length,o=1/(Fl.reduce((h,d)=>h+d,0)/r/1e3),l=Fl.filter(h=>h>vu).reduce((h,d)=>h+(d-vu)/vu,0);return{loadTime:i,fullLoadTime:e,fps:o,percentDroppedFrames:l/(r+l)*100,totalFrames:r}}};c.AJAXError=Mr,c.ARRAY_TYPE=$a,c.Actor=class{constructor(i,e,r){this.target=i,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},St(["receive","process"],this),this.invoker=new gf(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=pi()?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 d=pn(this.globalScope)?void 0:[];return this.target.postMessage({id:h,type:i,hasCallback:!!r,targetMapId:o,mustQueue:l,sourceMapId:this.mapId,data:_r(e,d)},d),{cancel:()=>{r&&delete this.callbacks[h],this.target.postMessage({id:h,type:"",targetMapId:o,sourceMapId:this.mapId})}}}receive(i){const e=i.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(e.type===""){delete this.tasks[r];const o=this.cancelCallbacks[r];delete this.cancelCallbacks[r],o&&o()}else pi()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)}process(){if(!this.taskQueue.length)return;const i=this.taskQueue.shift(),e=this.tasks[i];delete this.tasks[i],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(i,e)}processTask(i,e){if(e.type===""){const r=this.callbacks[i];delete this.callbacks[i],r&&(e.error?r(cr(e.error)):r(null,cr(e.data)))}else{let r=!1;const o=pn(this.globalScope)?void 0:[],l=e.hasCallback?(m,_)=>{r=!0,delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:m?_r(m):null,data:_r(_,o)},o)}:m=>{r=!0};let h=null;const d=cr(e.data);if(this.parent[e.type])h=this.parent[e.type](e.sourceMapId,d,l);else if(this.parent.getWorkerSource){const m=e.type.split(".");h=this.parent.getWorkerSource(e.sourceMapId,m[0],d.source)[m[1]](d,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)}},c.AlphaImage=Tl,c.CanonicalTileID=du,c.CollisionBoxArray=u,c.CollisionCircleLayoutArray=class extends Fa{},c.Color=ot,c.DEMData=td,c.DataConstantProperty=ht,c.DictionaryCoder=id,c.EXTENT=bi,c.ErrorEvent=fr,c.EvaluationParameters=Mi,c.Event=Gn,c.Evented=$o,c.FeatureIndex=nd,c.FillBucket=Hc,c.FillExtrusionBucket=Jc,c.GeoJSONFeature=rd,c.ImageAtlas=Fh,c.ImagePosition=iu,c.KDBush=mu,c.LineBucket=Yc,c.LineStripIndexArray=class extends t{},c.LngLat=qs,c.MercatorCoordinate=xc,c.ONE_EM=br,c.OverscaledTileID=Qn,c.PerformanceUtils=If,c.Point=me,c.Pos3dArray=class extends La{},c.PosArray=G,c.Properties=ln,c.Protobuf=eu,c.QuadTriangleArray=class extends Ba{},c.RGBAImage=Yn,c.RasterBoundsArray=class extends gl{},c.RequestPerformance=class{constructor(i){this._marks={start:[i.url,"start"].join("#"),end:[i.url,"end"].join("#"),measure:i.url.toString()},performance.mark(this._marks.start)}finish(){performance.mark(this._marks.end);let i=performance.getEntriesByName(this._marks.measure);return i.length===0&&(performance.measure(this._marks.measure,this._marks.start,this._marks.end),i=performance.getEntriesByName(this._marks.measure),performance.clearMarks(this._marks.start),performance.clearMarks(this._marks.end),performance.clearMeasures(this._marks.measure)),i}},c.SegmentVector=Ge,c.SymbolBucket=Ha,c.Transitionable=tc,c.TriangleIndexArray=ke,c.Uniform1f=wo,c.Uniform1i=class extends Xr{constructor(i,e){super(i,e),this.current=0}set(i){this.current!==i&&(this.current=i,this.gl.uniform1i(this.location,i))}},c.Uniform2f=class extends Xr{constructor(i,e){super(i,e),this.current=[0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]||(this.current=i,this.gl.uniform2f(this.location,i[0],i[1]))}},c.Uniform3f=class extends Xr{constructor(i,e){super(i,e),this.current=[0,0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]&&i[2]===this.current[2]||(this.current=i,this.gl.uniform3f(this.location,i[0],i[1],i[2]))}},c.Uniform4f=pa,c.UniformColor=Rr,c.UniformMatrix4f=class extends Xr{constructor(i,e){super(i,e),this.current=vr}set(i){if(i[12]!==this.current[12]||i[0]!==this.current[0])return this.current=i,void this.gl.uniformMatrix4fv(this.location,!1,i);for(let e=1;e<16;e++)if(i[e]!==this.current[e]){this.current=i,this.gl.uniformMatrix4fv(this.location,!1,i);break}}},c.UnwrappedTileID=ed,c.ValidationError=Oe,c.ZoomHistory=Hn,c.addDynamicAttributes=su,c.arrayBufferToImage=function(i,e){const r=new Image;r.onload=()=>{e(null,r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>{r.src=fn})},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):fn},c.arrayBufferToImageBitmap=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.`))})},c.asyncAll=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((d,m)=>{e(d,(_,T)=>{_&&(h=_),l[m]=T,--o==0&&r(h,l)})})},c.bezier=Ie,c.bindAll=St,c.clamp=et,c.clipLine=ad,c.clone=function(i){var e=new $a(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},c.clone$1=Qt,c.collisionCircleLayout=Gp,c.config=qi,c.copy=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},c.create=function(){var i=new $a(16);return $a!=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},c.createExpression=ii,c.createFilter=ra,c.createLayout=ir,c.createStyleLayer=function(i){return i.type==="custom"?new ff(i):new mf[i.type](i)},c.deepEqual=function i(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(let o=0;o{o[d.source]?r.push({command:Gt.removeLayer,args:[d.id]}):h.push(d)}),r=r.concat(l),function(d,m,_){m=m||[];const T=(d=d||[]).map(so),S=m.map(so),A=d.reduce(kn,{}),z=m.reduce(kn,{}),D=T.slice(),B=Object.create(null);let Z,$,ne,ue,te,fe,ye;for(Z=0,$=0;Z{}}},c.groupByLayout=function(i,e){const r={};for(let l=0;l@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(r,o,l,h)=>{const d=l||h;return e[o]=!d||d.toLowerCase(),""}),e["max-age"]){const r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e},c.parseGlyphPbf=function(i){return new eu(i).readFields(tf,[])},c.pbf=Ch,c.performSymbolLayout=function(i){i.bucket.createArrays(),i.bucket.tilePixelRatio=bi/(512*i.bucket.overscaling),i.bucket.compareText={},i.bucket.iconsNeedLinear=!1;const e=i.bucket.layers[0].layout,r=i.bucket.layers[0]._unevaluatedLayout._values,o={layoutIconSize:r["icon-size"].possiblyEvaluate(new Mi(i.bucket.zoom+1),i.canonical),layoutTextSize:r["text-size"].possiblyEvaluate(new Mi(i.bucket.zoom+1),i.canonical),textMaxSize:r["text-size"].possiblyEvaluate(new Mi(18))};if(i.bucket.textSizeData.kind==="composite"){const{minZoom:_,maxZoom:T}=i.bucket.textSizeData;o.compositeTextSizes=[r["text-size"].possiblyEvaluate(new Mi(_),i.canonical),r["text-size"].possiblyEvaluate(new Mi(T),i.canonical)]}if(i.bucket.iconSizeData.kind==="composite"){const{minZoom:_,maxZoom:T}=i.bucket.iconSizeData;o.compositeIconSizes=[r["icon-size"].possiblyEvaluate(new Mi(_),i.canonical),r["icon-size"].possiblyEvaluate(new Mi(T),i.canonical)]}const l=e.get("text-line-height")*br,h=e.get("text-rotation-alignment")!=="viewport"&&e.get("symbol-placement")!=="point",d=e.get("text-keep-upright"),m=e.get("text-size");for(const _ of i.bucket.features){const T=e.get("text-font").evaluate(_,{},i.canonical).join(","),S=m.evaluate(_,{},i.canonical),A=o.layoutTextSize.evaluate(_,{},i.canonical),z=o.layoutIconSize.evaluate(_,{},i.canonical),D={horizontal:{},vertical:void 0},B=_.text;let Z,$=[0,0];if(B){const te=B.toString(),fe=e.get("text-letter-spacing").evaluate(_,{},i.canonical)*br,ye=_o(te)?fe:0,Ee=e.get("text-anchor").evaluate(_,{},i.canonical),rt=e.get("text-variable-anchor");if(!rt){const Ye=e.get("text-radial-offset").evaluate(_,{},i.canonical);$=Ye?md(Ee,[Ye*br,pu]):e.get("text-offset").evaluate(_,{},i.canonical).map(Xe=>Xe*br)}let ct=h?"center":e.get("text-justify").evaluate(_,{},i.canonical);const Je=e.get("symbol-placement"),Ze=Je==="point"?e.get("text-max-width").evaluate(_,{},i.canonical)*br:0,Ve=()=>{i.bucket.allowVerticalPlacement&&Do(te)&&(D.vertical=gc(B,i.glyphMap,i.glyphPositions,i.imagePositions,T,Ze,l,Ee,"left",ye,$,c.WritingMode.vertical,!0,Je,A,S))};if(!h&&rt){const Ye=ct==="auto"?rt.map(De=>fu(De)):[ct];let Xe=!1;for(let De=0;Dethis._layers[Se.id]),se=Y[0];if(se.visibility==="none")continue;const ee=se.source||"";let Q=this.familiesBySource[ee];Q||(Q=this.familiesBySource[ee]={});const ce=se.sourceLayer||"_geojsonTileLayer";let Te=Q[ce];Te||(Te=Q[ce]=[]),Te.push(Y)}}}class O{constructor(P){const L={},N=[];for(const ee in P){const Q=P[ee],ce=L[ee]={};for(const Te in Q){const Se=Q[+Te];if(!Se||Se.bitmap.width===0||Se.bitmap.height===0)continue;const Ce={x:0,y:0,w:Se.bitmap.width+2,h:Se.bitmap.height+2};N.push(Ce),ce[Te]={rect:Ce,metrics:Se.metrics}}}const{w:X,h:Y}=c.potpack(N),se=new c.AlphaImage({width:X||1,height:Y||1});for(const ee in P){const Q=P[ee];for(const ce in Q){const Te=Q[+ce];if(!Te||Te.bitmap.width===0||Te.bitmap.height===0)continue;const Se=L[ee][ce].rect;c.AlphaImage.copy(Te.bitmap,se,{x:0,y:0},{x:Se.x+1,y:Se.y+1},Te.bitmap)}}this.image=se,this.positions=L}}c.register("GlyphAtlas",O);class Me{constructor(P){this.tileID=new c.OverscaledTileID(P.tileID.overscaledZ,P.tileID.wrap,P.tileID.canonical.z,P.tileID.canonical.x,P.tileID.canonical.y),this.uid=P.uid,this.zoom=P.zoom,this.pixelRatio=P.pixelRatio,this.tileSize=P.tileSize,this.source=P.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=P.showCollisionBoxes,this.collectResourceTiming=!!P.collectResourceTiming,this.returnDependencies=!!P.returnDependencies,this.promoteId=P.promoteId}parse(P,L,N,X,Y){this.status="parsing",this.data=P,this.collisionBoxArray=new c.CollisionBoxArray;const se=new c.DictionaryCoder(Object.keys(P.layers).sort()),ee=new c.FeatureIndex(this.tileID,this.promoteId);ee.bucketLayerIDs=[];const Q={},ce={featureIndex:ee,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:N},Te=L.familiesBySource[this.source];for(const Lt in Te){const jt=P.layers[Lt];if(!jt)continue;jt.version===1&&c.warnOnce(`Vector tile source "${this.source}" layer "${Lt}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const ti=se.encode(Lt),zi=[];for(let ot=0;ot=yi.maxzoom||yi.visibility!=="none"&&(me(ot,this.zoom,N),(Q[yi.id]=yi.createBucket({index:ee.bucketLayerIDs.length,layers:ot,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:ti,sourceID:this.source})).populate(zi,ce,this.tileID.canonical),ee.bucketLayerIDs.push(ot.map(ao=>ao.id)))}}let Se,Ce,it,Et;const st=c.mapObject(ce.glyphDependencies,Lt=>Object.keys(Lt).map(Number));Object.keys(st).length?X.send("getGlyphs",{uid:this.uid,stacks:st,source:this.source,tileID:this.tileID,type:"glyphs"},(Lt,jt)=>{Se||(Se=Lt,Ce=jt,Vt.call(this))}):Ce={};const pt=Object.keys(ce.iconDependencies);pt.length?X.send("getImages",{icons:pt,source:this.source,tileID:this.tileID,type:"icons"},(Lt,jt)=>{Se||(Se=Lt,it=jt,Vt.call(this))}):it={};const bt=Object.keys(ce.patternDependencies);function Vt(){if(Se)return Y(Se);if(Ce&&it&&Et){const Lt=new O(Ce),jt=new c.ImageAtlas(it,Et);for(const ti in Q){const zi=Q[ti];zi instanceof c.SymbolBucket?(me(zi.layers,this.zoom,N),c.performSymbolLayout({bucket:zi,glyphMap:Ce,glyphPositions:Lt.positions,imageMap:it,imagePositions:jt.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):zi.hasPattern&&(zi instanceof c.LineBucket||zi instanceof c.FillBucket||zi instanceof c.FillExtrusionBucket)&&(me(zi.layers,this.zoom,N),zi.addFeatures(ce,this.tileID.canonical,jt.patternPositions))}this.status="done",Y(null,{buckets:Object.values(Q).filter(ti=>!ti.isEmpty()),featureIndex:ee,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:Lt.image,imageAtlas:jt,glyphMap:this.returnDependencies?Ce:null,iconMap:this.returnDependencies?it:null,glyphPositions:this.returnDependencies?Lt.positions:null})}}bt.length?X.send("getImages",{icons:bt,source:this.source,tileID:this.tileID,type:"patterns"},(Lt,jt)=>{Se||(Se=Lt,Et=jt,Vt.call(this))}):Et={},Vt.call(this)}}function me(q,P,L){const N=new c.EvaluationParameters(P);for(const X of q)X.recalculate(N,L)}function Be(q,P){const L=c.getArrayBuffer(q.request,(N,X,Y,se)=>{N?P(N):X&&P(null,{vectorTile:new c.vectorTile.VectorTile(new c.Protobuf(X)),rawData:X,cacheControl:Y,expires:se})});return()=>{L.cancel(),P()}}class dt{constructor(P,L,N,X){this.actor=P,this.layerIndex=L,this.availableImages=N,this.loadVectorData=X||Be,this.loading={},this.loaded={}}loadTile(P,L){const N=P.uid;this.loading||(this.loading={});const X=!!(P&&P.request&&P.request.collectResourceTiming)&&new c.RequestPerformance(P.request),Y=this.loading[N]=new Me(P);Y.abort=this.loadVectorData(P,(se,ee)=>{if(delete this.loading[N],se||!ee)return Y.status="done",this.loaded[N]=Y,L(se);const Q=ee.rawData,ce={};ee.expires&&(ce.expires=ee.expires),ee.cacheControl&&(ce.cacheControl=ee.cacheControl);const Te={};if(X){const Se=X.finish();Se&&(Te.resourceTiming=JSON.parse(JSON.stringify(Se)))}Y.vectorTile=ee.vectorTile,Y.parse(ee.vectorTile,this.layerIndex,this.availableImages,this.actor,(Se,Ce)=>{if(Se||!Ce)return L(Se);L(null,c.extend({rawTileData:Q.slice(0)},Ce,ce,Te))}),this.loaded=this.loaded||{},this.loaded[N]=Y})}reloadTile(P,L){const N=this.loaded,X=P.uid,Y=this;if(N&&N[X]){const se=N[X];se.showCollisionBoxes=P.showCollisionBoxes;const ee=(Q,ce)=>{const Te=se.reloadCallback;Te&&(delete se.reloadCallback,se.parse(se.vectorTile,Y.layerIndex,this.availableImages,Y.actor,Te)),L(Q,ce)};se.status==="parsing"?se.reloadCallback=ee:se.status==="done"&&(se.vectorTile?se.parse(se.vectorTile,this.layerIndex,this.availableImages,this.actor,ee):ee())}}abortTile(P,L){const N=this.loading,X=P.uid;N&&N[X]&&N[X].abort&&(N[X].abort(),delete N[X]),L()}removeTile(P,L){const N=this.loaded,X=P.uid;N&&N[X]&&delete N[X],L()}}class be{constructor(){this.loaded={}}loadTile(P,L){const{uid:N,encoding:X,rawImageData:Y}=P,se=c.isImageBitmap(Y)?this.getImageData(Y):Y,ee=new c.DEMData(N,se,X);this.loaded=this.loaded||{},this.loaded[N]=ee,L(null,ee)}getImageData(P){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(P.width,P.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=P.width,this.offscreenCanvas.height=P.height,this.offscreenCanvasContext.drawImage(P,0,0,P.width,P.height);const L=this.offscreenCanvasContext.getImageData(-1,-1,P.width+2,P.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new c.RGBAImage({width:L.width,height:L.height},L.data)}removeTile(P){const L=this.loaded,N=P.uid;L&&L[N]&&delete L[N]}}function Ie(q,P){if(q.length!==0){nt(q[0],P);for(var L=1;L=Math.abs(ee)?L-Q+ee:ee-Q+L,L=Q}L+N>=0!=!!P&&q.reverse()}var et=c.getDefaultExportFromCjs(function q(P,L){var N,X=P&&P.type;if(X==="FeatureCollection")for(N=0;N>31}function fn(q,P){for(var L=q.loadGeometry(),N=q.type,X=0,Y=0,se=L.length,ee=0;eeq},qi=Math.fround||(Mr=new Float32Array(1),q=>(Mr[0]=+q,Mr[0]));var Mr;const Si=3,Ii=5,ar=6;class Vn{constructor(P){this.options=Object.assign(Object.create(oo),P),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(P){const{log:L,minZoom:N,maxZoom:X}=this.options;L&&console.time("total time");const Y=`prepare ${P.length} points`;L&&console.time(Y),this.points=P;const se=[];for(let Q=0;Q=N;Q--){const ce=+Date.now();ee=this.trees[Q]=this._createTree(this._cluster(ee,Q)),L&&console.log("z%d: %d clusters in %dms",Q,ee.numItems,+Date.now()-ce)}return L&&console.timeEnd("total time"),this}getClusters(P,L){let N=((P[0]+180)%360+360)%360-180;const X=Math.max(-90,Math.min(90,P[1]));let Y=P[2]===180?180:((P[2]+180)%360+360)%360-180;const se=Math.max(-90,Math.min(90,P[3]));if(P[2]-P[0]>=360)N=-180,Y=180;else if(N>Y){const Se=this.getClusters([N,X,180,se],L),Ce=this.getClusters([-180,X,Y,se],L);return Se.concat(Ce)}const ee=this.trees[this._limitZoom(L)],Q=ee.range(jn(N),$n(se),jn(Y),$n(X)),ce=ee.data,Te=[];for(const Se of Q){const Ce=this.stride*Se;Te.push(ce[Ce+Ii]>1?Zi(ce,Ce,this.clusterProps):this.points[ce[Ce+Si]])}return Te}getChildren(P){const L=this._getOriginId(P),N=this._getOriginZoom(P),X="No cluster with the specified id.",Y=this.trees[N];if(!Y)throw new Error(X);const se=Y.data;if(L*this.stride>=se.length)throw new Error(X);const ee=this.options.radius/(this.options.extent*Math.pow(2,N-1)),Q=Y.within(se[L*this.stride],se[L*this.stride+1],ee),ce=[];for(const Te of Q){const Se=Te*this.stride;se[Se+4]===P&&ce.push(se[Se+Ii]>1?Zi(se,Se,this.clusterProps):this.points[se[Se+Si]])}if(ce.length===0)throw new Error(X);return ce}getLeaves(P,L,N){const X=[];return this._appendLeaves(X,P,L=L||10,N=N||0,0),X}getTile(P,L,N){const X=this.trees[this._limitZoom(P)],Y=Math.pow(2,P),{extent:se,radius:ee}=this.options,Q=ee/se,ce=(N-Q)/Y,Te=(N+1+Q)/Y,Se={features:[]};return this._addTileFeatures(X.range((L-Q)/Y,ce,(L+1+Q)/Y,Te),X.data,L,N,Y,Se),L===0&&this._addTileFeatures(X.range(1-Q/Y,ce,1,Te),X.data,Y,N,Y,Se),L===Y-1&&this._addTileFeatures(X.range(0,ce,Q/Y,Te),X.data,-1,N,Y,Se),Se.features.length?Se:null}getClusterExpansionZoom(P){let L=this._getOriginZoom(P)-1;for(;L<=this.options.maxZoom;){const N=this.getChildren(P);if(L++,N.length!==1)break;P=N[0].properties.cluster_id}return L}_appendLeaves(P,L,N,X,Y){const se=this.getChildren(L);for(const ee of se){const Q=ee.properties;if(Q&&Q.cluster?Y+Q.point_count<=X?Y+=Q.point_count:Y=this._appendLeaves(P,Q.cluster_id,N,X,Y):Y1;let Te,Se,Ce;if(ce)Te=At(L,Q,this.clusterProps),Se=L[Q],Ce=L[Q+1];else{const st=this.points[L[Q+Si]];Te=st.properties;const[pt,bt]=st.geometry.coordinates;Se=jn(pt),Ce=$n(bt)}const it={type:1,geometry:[[Math.round(this.options.extent*(Se*Y-N)),Math.round(this.options.extent*(Ce*Y-X))]],tags:Te};let Et;Et=ce||this.options.generateId?L[Q+Si]:this.points[L[Q+Si]].id,Et!==void 0&&(it.id=Et),se.features.push(it)}}_limitZoom(P){return Math.max(this.options.minZoom,Math.min(Math.floor(+P),this.options.maxZoom+1))}_cluster(P,L){const{radius:N,extent:X,reduce:Y,minPoints:se}=this.options,ee=N/(X*Math.pow(2,L)),Q=P.data,ce=[],Te=this.stride;for(let Se=0;SeL&&(pt+=Q[Vt+Ii])}if(pt>st&&pt>=se){let bt,Vt=Ce*st,Lt=it*st,jt=-1;const ti=((Se/Te|0)<<5)+(L+1)+this.points.length;for(const zi of Et){const ot=zi*Te;if(Q[ot+2]<=L)continue;Q[ot+2]=L;const yi=Q[ot+Ii];Vt+=Q[ot]*yi,Lt+=Q[ot+1]*yi,Q[ot+4]=ti,Y&&(bt||(bt=this._map(Q,Se,!0),jt=this.clusterProps.length,this.clusterProps.push(bt)),Y(bt,this._map(Q,ot)))}Q[Se+4]=ti,ce.push(Vt/pt,Lt/pt,1/0,ti,-1,pt),Y&&ce.push(jt)}else{for(let bt=0;bt1)for(const bt of Et){const Vt=bt*Te;if(!(Q[Vt+2]<=L)){Q[Vt+2]=L;for(let Lt=0;Lt>5}_getOriginZoom(P){return(P-this.points.length)%32}_map(P,L,N){if(P[L+Ii]>1){const se=this.clusterProps[P[L+ar]];return N?Object.assign({},se):se}const X=this.points[P[L+Si]].properties,Y=this.options.map(X);return N&&Y===X?Object.assign({},Y):Y}}function Zi(q,P,L){return{type:"Feature",id:q[P+Si],properties:At(q,P,L),geometry:{type:"Point",coordinates:[(N=q[P],360*(N-.5)),Gn(q[P+1])]}};var N}function At(q,P,L){const N=q[P+Ii],X=N>=1e4?`${Math.round(N/1e3)}k`:N>=1e3?Math.round(N/100)/10+"k":N,Y=q[P+ar],se=Y===-1?{}:Object.assign({},L[Y]);return Object.assign(se,{cluster:!0,cluster_id:q[P+Si],point_count:N,point_count_abbreviated:X})}function jn(q){return q/360+.5}function $n(q){const P=Math.sin(q*Math.PI/180),L=.5-.25*Math.log((1+P)/(1-P))/Math.PI;return L<0?0:L>1?1:L}function Gn(q){const P=(180-360*q)*Math.PI/180;return 360*Math.atan(Math.exp(P))/Math.PI-90}function fr(q,P,L,N){for(var X,Y=N,se=L-P>>1,ee=L-P,Q=q[P],ce=q[P+1],Te=q[L],Se=q[L+1],Ce=P+3;CeY)X=Ce,Y=it;else if(it===Y){var Et=Math.abs(Ce-se);EtN&&(X-P>3&&fr(q,P,X,N),q[X+2]=Y,L-X>3&&fr(q,X,L,N))}function $o(q,P,L,N,X,Y){var se=X-L,ee=Y-N;if(se!==0||ee!==0){var Q=((q-L)*se+(P-N)*ee)/(se*se+ee*ee);Q>1?(L=X,N=Y):Q>0&&(L+=se*Q,N+=ee*Q)}return(se=q-L)*se+(ee=P-N)*ee}function _e(q,P,L,N){var X={id:q===void 0?null:q,type:P,geometry:L,tags:N,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Y){var se=Y.geometry,ee=Y.type;if(ee==="Point"||ee==="MultiPoint"||ee==="LineString")qn(Y,se);else if(ee==="Polygon"||ee==="MultiLineString")for(var Q=0;Q0&&(se+=N?(X*ce-Q*Y)/2:Math.sqrt(Math.pow(Q-X,2)+Math.pow(ce-Y,2))),X=Q,Y=ce}var Te=P.length-3;P[2]=1,fr(P,0,Te,L),P[Te+2]=1,P.size=Math.abs(se),P.start=0,P.end=P.size}function So(q,P,L,N){for(var X=0;X1?1:L}function Ri(q,P,L,N,X,Y,se,ee){if(N/=P,Y>=(L/=P)&&se=N)return null;for(var Q=[],ce=0;ce=L&&Et=N)){var st=[];if(Ce==="Point"||Ce==="MultiPoint")$r(Se,st,L,N,X);else if(Ce==="LineString")so(Se,st,L,N,X,!1,ee.lineMetrics);else if(Ce==="MultiLineString")Oe(Se,st,L,N,X,!1);else if(Ce==="Polygon")Oe(Se,st,L,N,X,!0);else if(Ce==="MultiPolygon")for(var pt=0;pt=L&&se<=N&&(P.push(q[Y]),P.push(q[Y+1]),P.push(q[Y+2]))}}function so(q,P,L,N,X,Y,se){for(var ee,Q,ce=kn(q),Te=X===0?Xi:Zn,Se=q.start,Ce=0;CeL&&(Q=Te(ce,it,Et,pt,bt,L),se&&(ce.start=Se+ee*Q)):Vt>N?Lt=L&&(Q=Te(ce,it,Et,pt,bt,L),jt=!0),Lt>N&&Vt<=N&&(Q=Te(ce,it,Et,pt,bt,N),jt=!0),!Y&&jt&&(se&&(ce.end=Se+ee*Q),P.push(ce),ce=kn(q)),se&&(Se+=ee)}var ti=q.length-3;it=q[ti],Et=q[ti+1],st=q[ti+2],(Vt=X===0?it:Et)>=L&&Vt<=N&&Pr(ce,it,Et,st),ti=ce.length-3,Y&&ti>=3&&(ce[ti]!==ce[0]||ce[ti+1]!==ce[1])&&Pr(ce,ce[0],ce[1],ce[2]),ce.length&&P.push(ce)}function kn(q){var P=[];return P.size=q.size,P.start=q.start,P.end=q.end,P}function Oe(q,P,L,N,X,Y){for(var se=0;sese.maxX&&(se.maxX=Te),Se>se.maxY&&(se.maxY=Se)}return se}function _i(q,P,L,N){var X=P.geometry,Y=P.type,se=[];if(Y==="Point"||Y==="MultiPoint")for(var ee=0;ee0&&P.size<(X?se:N))L.numPoints+=P.length/3;else{for(var ee=[],Q=0;Qse)&&(L.numSimplified++,ee.push(P[Q]),ee.push(P[Q+1])),L.numPoints++;X&&function(ce,Te){for(var Se=0,Ce=0,it=ce.length,Et=it-2;Ce0===Te)for(Ce=0,it=ce.length;Ce24)throw new Error("maxZoom should be in the 0-24 range");if(P.promoteId&&P.generateId)throw new Error("promoteId and generateId cannot be used together.");var N=function(X,Y){var se=[];if(X.type==="FeatureCollection")for(var ee=0;ee1&&console.time("creation"),Ce=this.tiles[Se]=mr(q,P,L,N,Q),this.tileCoords.push({z:P,x:L,y:N}),ce)){ce>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",P,L,N,Ce.numFeatures,Ce.numPoints,Ce.numSimplified),console.timeEnd("creation"));var it="z"+P;this.stats[it]=(this.stats[it]||0)+1,this.total++}if(Ce.source=q,X){if(P===Q.maxZoom||P===X)continue;var Et=1<1&&console.time("clipping");var st,pt,bt,Vt,Lt,jt,ti=.5*Q.buffer/Q.extent,zi=.5-ti,ot=.5+ti,yi=1+ti;st=pt=bt=Vt=null,Lt=Ri(q,Te,L-ti,L+ot,0,Ce.minX,Ce.maxX,Q),jt=Ri(q,Te,L+zi,L+yi,0,Ce.minX,Ce.maxX,Q),q=null,Lt&&(st=Ri(Lt,Te,N-ti,N+ot,1,Ce.minY,Ce.maxY,Q),pt=Ri(Lt,Te,N+zi,N+yi,1,Ce.minY,Ce.maxY,Q),Lt=null),jt&&(bt=Ri(jt,Te,N-ti,N+ot,1,Ce.minY,Ce.maxY,Q),Vt=Ri(jt,Te,N+zi,N+yi,1,Ce.minY,Ce.maxY,Q),jt=null),ce>1&&console.timeEnd("clipping"),ee.push(st||[],P+1,2*L,2*N),ee.push(pt||[],P+1,2*L,2*N+1),ee.push(bt||[],P+1,2*L+1,2*N),ee.push(Vt||[],P+1,2*L+1,2*N+1)}}},Qr.prototype.getTile=function(q,P,L){var N=this.options,X=N.extent,Y=N.debug;if(q<0||q>24)return null;var se=1<1&&console.log("drilling down to z%d-%d-%d",q,P,L);for(var Q,ce=q,Te=P,Se=L;!Q&&ce>0;)ce--,Te=Math.floor(Te/2),Se=Math.floor(Se/2),Q=this.tiles[Wi(ce,Te,Se)];return Q&&Q.source?(Y>1&&console.log("found parent tile z%d-%d-%d",ce,Te,Se),Y>1&&console.time("drilling down"),this.splitTile(Q.source,ce,Te,Se,q,P,L),Y>1&&console.timeEnd("drilling down"),this.tiles[ee]?Dt(this.tiles[ee],X):null):null};class os extends dt{constructor(P,L,N,X){super(P,L,N,ui),this._dataUpdateable=new Map,this.loadGeoJSON=(Y,se)=>{const{promoteId:ee}=Y;if(Y.request)return c.getJSON(Y.request,(Q,ce,Te,Se)=>{this._dataUpdateable=Xn(ce,ee)?Qi(ce,ee):void 0,se(Q,ce,Te,Se)});if(typeof Y.data=="string")try{const Q=JSON.parse(Y.data);this._dataUpdateable=Xn(Q,ee)?Qi(Q,ee):void 0,se(null,Q)}catch{se(new Error(`Input data given to '${Y.source}' is not a valid GeoJSON object.`))}else Y.dataDiff?this._dataUpdateable?(function(Q,ce,Te){var Se,Ce,it,Et;if(ce.removeAll&&Q.clear(),ce.remove)for(const st of ce.remove)Q.delete(st);if(ce.add)for(const st of ce.add){const pt=Er(st,Te);pt!=null&&Q.set(pt,st)}if(ce.update)for(const st of ce.update){let pt=Q.get(st.id);if(pt==null)continue;const bt=!st.removeAllProperties&&(((Se=st.removeProperties)===null||Se===void 0?void 0:Se.length)>0||((Ce=st.addOrUpdateProperties)===null||Ce===void 0?void 0:Ce.length)>0);if((st.newGeometry||st.removeAllProperties||bt)&&(pt={...pt},Q.set(st.id,pt),bt&&(pt.properties={...pt.properties})),st.newGeometry&&(pt.geometry=st.newGeometry),st.removeAllProperties)pt.properties={};else if(((it=st.removeProperties)===null||it===void 0?void 0:it.length)>0)for(const Vt of st.removeProperties)Object.prototype.hasOwnProperty.call(pt.properties,Vt)&&delete pt.properties[Vt];if(((Et=st.addOrUpdateProperties)===null||Et===void 0?void 0:Et.length)>0)for(const{key:Vt,value:Lt}of st.addOrUpdateProperties)pt.properties[Vt]=Lt}}(this._dataUpdateable,Y.dataDiff,ee),se(null,{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())})):se(new Error(`Cannot update existing geojson data in ${Y.source}`)):se(new Error(`Input data given to '${Y.source}' is not a valid GeoJSON object.`));return{cancel:()=>{}}},X&&(this.loadGeoJSON=X)}loadData(P,L){var N;(N=this._pendingRequest)===null||N===void 0||N.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});const X=!!(P&&P.request&&P.request.collectResourceTiming)&&new c.RequestPerformance(P.request);this._pendingCallback=L,this._pendingRequest=this.loadGeoJSON(P,(Y,se)=>{if(delete this._pendingCallback,delete this._pendingRequest,Y||!se)return L(Y);if(typeof se!="object")return L(new Error(`Input data given to '${P.source}' is not a valid GeoJSON object.`));{et(se,!0);try{if(P.filter){const Q=c.createExpression(P.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(Q.result==="error")throw new Error(Q.value.map(Te=>`${Te.key}: ${Te.message}`).join(", "));se={type:"FeatureCollection",features:se.features.filter(Te=>Q.value.evaluate({zoom:0},Te))}}this._geoJSONIndex=P.cluster?new Vn(function({superclusterOptions:Q,clusterProperties:ce}){if(!ce||!Q)return Q;const Te={},Se={},Ce={accumulated:null,zoom:0},it={properties:null},Et=Object.keys(ce);for(const st of Et){const[pt,bt]=ce[st],Vt=c.createExpression(bt),Lt=c.createExpression(typeof pt=="string"?[pt,["accumulated"],["get",st]]:pt);Te[st]=Vt.value,Se[st]=Lt.value}return Q.map=st=>{it.properties=st;const pt={};for(const bt of Et)pt[bt]=Te[bt].evaluate(Ce,it);return pt},Q.reduce=(st,pt)=>{it.properties=pt;for(const bt of Et)Ce.accumulated=st[bt],st[bt]=Se[bt].evaluate(Ce,it)},Q}(P)).load(se.features):function(Q,ce){return new Qr(Q,ce)}(se,P.geojsonVtOptions)}catch(Q){return L(Q)}this.loaded={};const ee={};if(X){const Q=X.finish();Q&&(ee.resourceTiming={},ee.resourceTiming[P.source]=JSON.parse(JSON.stringify(Q)))}L(null,ee)}})}reloadTile(P,L){const N=this.loaded;return N&&N[P.uid]?super.reloadTile(P,L):this.loadTile(P,L)}removeSource(P,L){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),L()}getClusterExpansionZoom(P,L){try{L(null,this._geoJSONIndex.getClusterExpansionZoom(P.clusterId))}catch(N){L(N)}}getClusterChildren(P,L){try{L(null,this._geoJSONIndex.getChildren(P.clusterId))}catch(N){L(N)}}getClusterLeaves(P,L){try{L(null,this._geoJSONIndex.getLeaves(P.clusterId,P.limit,P.offset))}catch(N){L(N)}}}class zn{constructor(P){this.self=P,this.actor=new c.Actor(P,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:dt,geojson:os},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(L,N)=>{if(this.workerSourceTypes[L])throw new Error(`Worker source with name "${L}" already registered.`);this.workerSourceTypes[L]=N},this.self.registerRTLTextPlugin=L=>{if(c.plugin.isParsed())throw new Error("RTL text plugin already registered.");c.plugin.applyArabicShaping=L.applyArabicShaping,c.plugin.processBidirectionalText=L.processBidirectionalText,c.plugin.processStyledBidirectionalText=L.processStyledBidirectionalText}}setReferrer(P,L){this.referrer=L}setImages(P,L,N){this.availableImages[P]=L;for(const X in this.workerSources[P]){const Y=this.workerSources[P][X];for(const se in Y)Y[se].availableImages=L}N()}setLayers(P,L,N){this.getLayerIndex(P).replace(L),N()}updateLayers(P,L,N){this.getLayerIndex(P).update(L.layers,L.removedIds),N()}loadTile(P,L,N){this.getWorkerSource(P,L.type,L.source).loadTile(L,N)}loadDEMTile(P,L,N){this.getDEMWorkerSource(P,L.source).loadTile(L,N)}reloadTile(P,L,N){this.getWorkerSource(P,L.type,L.source).reloadTile(L,N)}abortTile(P,L,N){this.getWorkerSource(P,L.type,L.source).abortTile(L,N)}removeTile(P,L,N){this.getWorkerSource(P,L.type,L.source).removeTile(L,N)}removeDEMTile(P,L){this.getDEMWorkerSource(P,L.source).removeTile(L)}removeSource(P,L,N){if(!this.workerSources[P]||!this.workerSources[P][L.type]||!this.workerSources[P][L.type][L.source])return;const X=this.workerSources[P][L.type][L.source];delete this.workerSources[P][L.type][L.source],X.removeSource!==void 0?X.removeSource(L,N):N()}loadWorkerSource(P,L,N){try{this.self.importScripts(L.url),N()}catch(X){N(X.toString())}}syncRTLPluginState(P,L,N){try{c.plugin.setState(L);const X=c.plugin.getPluginURL();if(c.plugin.isLoaded()&&!c.plugin.isParsed()&&X!=null){this.self.importScripts(X);const Y=c.plugin.isParsed();N(Y?void 0:new Error(`RTL Text Plugin failed to import scripts from ${X}`),Y)}}catch(X){N(X.toString())}}getAvailableImages(P){let L=this.availableImages[P];return L||(L=[]),L}getLayerIndex(P){let L=this.layerIndexes[P];return L||(L=this.layerIndexes[P]=new ae),L}getWorkerSource(P,L,N){if(this.workerSources[P]||(this.workerSources[P]={}),this.workerSources[P][L]||(this.workerSources[P][L]={}),!this.workerSources[P][L][N]){const X={send:(Y,se,ee)=>{this.actor.send(Y,se,ee,P)}};this.workerSources[P][L][N]=new this.workerSourceTypes[L](X,this.getLayerIndex(P),this.getAvailableImages(P))}return this.workerSources[P][L][N]}getDEMWorkerSource(P,L){return this.demWorkerSources[P]||(this.demWorkerSources[P]={}),this.demWorkerSources[P][L]||(this.demWorkerSources[P][L]=new be),this.demWorkerSources[P][L]}}return c.isWorker()&&(self.worker=new zn(self)),zn}),J(["./shared"],function(c){var ae="3.1.0";class O{static testProp(t){if(!O.docStyle)return t[0];for(let n=0;n{window.removeEventListener("click",O.suppressClickInternal,!0)},0)}static mousePos(t,n){const s=t.getBoundingClientRect();return new c.Point(n.clientX-s.left-t.clientLeft,n.clientY-s.top-t.clientTop)}static touchPos(t,n){const s=t.getBoundingClientRect(),u=[];for(let p=0;p{t=[],n=0,s=0,u={}},a.addThrottleControl=w=>{const C=s++;return u[C]=w,C},a.removeThrottleControl=w=>{delete u[w],v()},a.getImage=(w,C,I=!0)=>{Me.supported&&(w.headers||(w.headers={}),w.headers.accept="image/webp,*/*");const F={requestParameters:w,supportImageRefresh:I,callback:C,cancelled:!1,completed:!1,cancel:()=>{F.completed||F.cancelled||(F.cancelled=!0,F.innerRequest&&(F.innerRequest.cancel(),n--),v())}};return t.push(F),v(),F};const p=w=>{const{requestParameters:C,supportImageRefresh:I,callback:F}=w;return c.extend(C,{type:"image"}),(I!==!1||c.isWorker()||c.getProtocolAction(C.url)||C.headers&&!Object.keys(C.headers).reduce((G,V)=>G&&V==="accept",!0)?c.makeRequest:y)(C,(G,V,j,K)=>{g(w,F,G,V,j,K)})},g=(w,C,I,F,G,V)=>{I?C(I):F instanceof HTMLImageElement||F instanceof ImageBitmap?C(null,F):F&&((j,K)=>{typeof createImageBitmap=="function"?c.arrayBufferToImageBitmap(j,K):c.arrayBufferToImage(j,K)})(F,(j,K)=>{j!=null?C(j):K!=null&&C(null,K,{cacheControl:G,expires:V})}),w.cancelled||(w.completed=!0,n--,v())},v=()=>{const w=(()=>{const C=Object.keys(u);let I=!1;if(C.length>0){for(const F of C)if(I=u[F](),I)break}return I})()?c.config.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:c.config.MAX_PARALLEL_IMAGE_REQUESTS;for(let C=n;C0;C++){const I=t.shift();if(I.cancelled){C--;continue}const F=p(I);n++,I.innerRequest=F}},y=(w,C)=>{const I=new Image,F=w.url;let G=!1;const V=w.credentials;return V&&V==="include"?I.crossOrigin="use-credentials":(V&&V==="same-origin"||!c.sameOrigin(F))&&(I.crossOrigin="anonymous"),I.fetchPriority="high",I.onload=()=>{C(null,I),I.onerror=I.onload=null},I.onerror=()=>{G||C(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.")),I.onerror=I.onload=null},I.src=F,{cancel:()=>{G=!0,I.src=""}}}}(nt||(nt={})),nt.resetRequestQueue();var et,yt=nt;(function(a){a.Glyphs="Glyphs",a.Image="Image",a.Source="Source",a.SpriteImage="SpriteImage",a.SpriteJSON="SpriteJSON",a.Style="Style",a.Tile="Tile",a.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,s){const u=function(p){const g=p.match(Pe);if(!g)throw new Error(`Unable to parse URL "${p}"`);return{protocol:g[1],authority:g[2],path:g[3]||"/",params:g[4]?g[4].split("&"):[]}}(t);return u.path+=`${n}${s}`,function(p){const g=p.params.length?`?${p.params.join("&")}`:"";return`${p.protocol}://${p.authority}${p.path}${g}`}(u)}setTransformRequest(t){this._transformRequestFn=t}}const Pe=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function St(a){var t=new c.ARRAY_TYPE(3);return t[0]=a[0],t[1]=a[1],t[2]=a[2],t}var oi,Rt=function(a,t,n){return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],a};oi=new c.ARRAY_TYPE(3),c.ARRAY_TYPE!=Float32Array&&(oi[0]=0,oi[1]=0,oi[2]=0);var Qt=function(a){var t=a[0],n=a[1];return t*t+n*n};function Ei(a){const t=[];if(typeof a=="string")t.push({id:"default",url:a});else if(a&&a.length>0){const n=[];for(const{id:s,url:u}of a){const p=`${s}${u}`;n.indexOf(p)===-1&&(n.push(p),t.push({id:s,url:u}))}}return t}function di(a,t,n,s,u){if(s)return void a(s);if(u!==Object.values(t).length||u!==Object.values(n).length)return;const p={};for(const g in t){p[g]={};const v=c.exported.getImageCanvasContext(n[g]),y=t[g];for(const w in y){const{width:C,height:I,x:F,y:G,sdf:V,pixelRatio:j,stretchX:K,stretchY:re,content:ge}=y[w];p[g][w]={data:null,pixelRatio:j,sdf:V,stretchX:K,stretchY:re,content:ge,spriteData:{width:C,height:I,x:F,y:G,context:v}}}}a(null,p)}(function(){var a=new c.ARRAY_TYPE(2);c.ARRAY_TYPE!=Float32Array&&(a[0]=0,a[1]=0)})();class zt{constructor(t,n,s,u){this.context=t,this.format=s,this.texture=t.gl.createTexture(),this.update(n,u)}update(t,n,s){const{width:u,height:p}=t,g=!(this.size&&this.size[0]===u&&this.size[1]===p||s),{context:v}=this,{gl:y}=v;if(this.useMipmap=!!(n&&n.useMipmap),y.bindTexture(y.TEXTURE_2D,this.texture),v.pixelStoreUnpackFlipY.set(!1),v.pixelStoreUnpack.set(1),v.pixelStoreUnpackPremultiplyAlpha.set(this.format===y.RGBA&&(!n||n.premultiply!==!1)),g)this.size=[u,p],t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||c.isImageBitmap(t)?y.texImage2D(y.TEXTURE_2D,0,this.format,this.format,y.UNSIGNED_BYTE,t):y.texImage2D(y.TEXTURE_2D,0,this.format,u,p,0,this.format,y.UNSIGNED_BYTE,t.data);else{const{x:w,y:C}=s||{x:0,y:0};t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||c.isImageBitmap(t)?y.texSubImage2D(y.TEXTURE_2D,0,w,C,y.RGBA,y.UNSIGNED_BYTE,t):y.texSubImage2D(y.TEXTURE_2D,0,w,C,u,p,y.RGBA,y.UNSIGNED_BYTE,t.data)}this.useMipmap&&this.isSizePowerOfTwo()&&y.generateMipmap(y.TEXTURE_2D)}bind(t,n,s){const{context:u}=this,{gl:p}=u;p.bindTexture(p.TEXTURE_2D,this.texture),s!==p.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(s=p.LINEAR),t!==this.filter&&(p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,t),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,s||t),this.filter=t),n!==this.wrap&&(p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_S,n),p.texParameteri(p.TEXTURE_2D,p.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 jr(a){const{userImage:t}=a;return!!(t&&t.render&&t.render())&&(a.data.replace(new Uint8Array(t.data.buffer)),!0)}class pi extends c.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new c.RGBAImage({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:s}of this.requestors)this._notify(n,s);this.requestors=[]}}getImage(t){const n=this.images[t];if(n&&!n.data&&n.spriteData){const s=n.spriteData;n.data=new c.RGBAImage({width:s.width,height:s.height},s.context.getImageData(s.x,s.y,s.width,s.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 s=!0;const u=n.data||n.spriteData;return this._validateStretch(n.stretchX,u&&u.width)||(this.fire(new c.ErrorEvent(new Error(`Image "${t}" has invalid "stretchX" value`))),s=!1),this._validateStretch(n.stretchY,u&&u.height)||(this.fire(new c.ErrorEvent(new Error(`Image "${t}" has invalid "stretchY" value`))),s=!1),this._validateContent(n.content,n)||(this.fire(new c.ErrorEvent(new Error(`Image "${t}" has invalid "content" value`))),s=!1),s}_validateStretch(t,n){if(!t)return!0;let s=0;for(const u of t){if(u[0]-1);y++,p[y]=v,g[y]=w,g[y+1]=Pn}for(let v=0,y=0;v{let v=this.entries[u];v||(v=this.entries[u]={glyphs:{},requests:{},ranges:{}});let y=v.glyphs[p];if(y!==void 0)return void g(null,{stack:u,id:p,glyph:y});if(y=this._tinySDF(v,u,p),y)return v.glyphs[p]=y,void g(null,{stack:u,id:p,glyph:y});const w=Math.floor(p/256);if(256*w>65535)return void g(new Error("glyphs > 65535 not supported"));if(v.ranges[w])return void g(null,{stack:u,id:p,glyph:y});if(!this.url)return void g(new Error("glyphsUrl is not set"));let C=v.requests[w];C||(C=v.requests[w]=[],fn.loadGlyphRange(u,w,this.url,this.requestManager,(I,F)=>{if(F){for(const G in F)this._doesCharSupportLocalGlyph(+G)||(v.glyphs[+G]=F[+G]);v.ranges[w]=!0}for(const G of C)G(I,F);delete v.requests[w]})),C.push((I,F)=>{I?g(I):F&&g(null,{stack:u,id:p,glyph:F[p]||null})})},(u,p)=>{if(u)n(u);else if(p){const g={};for(const{stack:v,id:y,glyph:w}of p)(g[v]||(g[v]={}))[y]=w&&{id:w.id,bitmap:w.bitmap.clone(),metrics:w.metrics};n(null,g)}})}_doesCharSupportLocalGlyph(t){return!!this.localIdeographFontFamily&&(c.unicodeBlockLookup["CJK Unified Ideographs"](t)||c.unicodeBlockLookup["Hangul Syllables"](t)||c.unicodeBlockLookup.Hiragana(t)||c.unicodeBlockLookup.Katakana(t))}_tinySDF(t,n,s){const u=this.localIdeographFontFamily;if(!u||!this._doesCharSupportLocalGlyph(s))return;let p=t.tinySDF;if(!p){let v="400";/bold/i.test(n)?v="900":/medium/i.test(n)?v="500":/light/i.test(n)&&(v="200"),p=t.tinySDF=new fn.TinySDF({fontSize:24,buffer:3,radius:8,cutoff:.25,fontFamily:u,fontWeight:v})}const g=p.draw(String.fromCharCode(s));return{id:s,bitmap:new c.AlphaImage({width:g.width||30,height:g.height||30},g.data),metrics:{width:g.glyphWidth||24,height:g.glyphHeight||24,left:g.glyphLeft||0,top:g.glyphTop-27||-8,advance:g.glyphAdvance||24}}}}fn.loadGlyphRange=function(a,t,n,s,u){const p=256*t,g=p+255,v=s.transformRequest(n.replace("{fontstack}",a).replace("{range}",`${p}-${g}`),et.Glyphs);c.getArrayBuffer(v,(y,w)=>{if(y)u(y);else if(w){const C={};for(const I of c.parseGlyphPbf(w))C[I.id]=I;u(null,C)}})},fn.TinySDF=class{constructor({fontSize:a=24,buffer:t=3,radius:n=8,cutoff:s=.25,fontFamily:u="sans-serif",fontWeight:p="normal",fontStyle:g="normal"}={}){this.buffer=t,this.cutoff=s,this.radius=n;const v=this.size=a+4*t,y=this._createCanvas(v),w=this.ctx=y.getContext("2d",{willReadFrequently:!0});w.font=`${g} ${p} ${a}px ${u}`,w.textBaseline="alphabetic",w.textAlign="left",w.fillStyle="black",this.gridOuter=new Float64Array(v*v),this.gridInner=new Float64Array(v*v),this.f=new Float64Array(v),this.z=new Float64Array(v+1),this.v=new Uint16Array(v)}_createCanvas(a){const t=document.createElement("canvas");return t.width=t.height=a,t}draw(a){const{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:s,actualBoundingBoxLeft:u,actualBoundingBoxRight:p}=this.ctx.measureText(a),g=Math.ceil(n),v=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-u))),y=Math.min(this.size-this.buffer,g+Math.ceil(s)),w=v+2*this.buffer,C=y+2*this.buffer,I=Math.max(w*C,0),F=new Uint8ClampedArray(I),G={data:F,width:w,height:C,glyphWidth:v,glyphHeight:y,glyphTop:g,glyphLeft:0,glyphAdvance:t};if(v===0||y===0)return G;const{ctx:V,buffer:j,gridInner:K,gridOuter:re}=this;V.clearRect(j,j,v,y),V.fillText(a,j,j+g);const ge=V.getImageData(j,j,v,y);re.fill(Pn,0,I),K.fill(0,0,I);for(let W=0;W0?Le*Le:0,K[Ae]=Le<0?Le*Le:0}}pn(re,0,0,w,C,w,this.f,this.v,this.z),pn(K,j,j,v,y,w,this.f,this.v,this.z);for(let W=0;W1&&(y=t[++v]);const C=Math.abs(w-y.left),I=Math.abs(w-y.right),F=Math.min(C,I);let G;const V=p/s*(u+1);if(y.isDash){const j=u-Math.abs(V);G=Math.sqrt(F*F+j*j)}else G=u-Math.sqrt(F*F+V*V);this.data[g+w]=Math.max(0,Math.min(255,G+128))}}}addRegularDash(t){for(let v=t.length-1;v>=0;--v){const y=t[v],w=t[v+1];y.zeroLength?t.splice(v,1):w&&w.isDash===y.isDash&&(w.left=y.left,t.splice(v,1))}const n=t[0],s=t[t.length-1];n.isDash===s.isDash&&(n.left=s.left-this.width,s.right=n.right+this.width);const u=this.width*this.nextRow;let p=0,g=t[p];for(let v=0;v1&&(g=t[++p]);const y=Math.abs(v-g.left),w=Math.abs(v-g.right),C=Math.min(y,w);this.data[u+v]=Math.max(0,Math.min(255,(g.isDash?C:-C)+128))}}addDash(t,n){const s=n?7:0,u=2*s+1;if(this.nextRow+u>this.height)return c.warnOnce("LineAtlas out of space"),null;let p=0;for(let v=0;v{u.send(t,n,p)},s=s||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 Ii(a,t,n){const s=function(u,p){if(u)return n(u);if(p){const g=c.pick(c.extend(p,a),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);p.vector_layers&&(g.vectorLayers=p.vector_layers,g.vectorLayerIds=g.vectorLayers.map(v=>v.id)),n(null,g)}};return a.url?c.getJSON(t.transformRequest(a.url,et.Source),s):c.exported.frame(()=>s(null,a))}Si.Actor=c.Actor;class ar{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 c.LngLat?new c.LngLat(t.lng,t.lat):c.LngLat.convert(t),this}setSouthWest(t){return this._sw=t instanceof c.LngLat?new c.LngLat(t.lng,t.lat):c.LngLat.convert(t),this}extend(t){const n=this._sw,s=this._ne;let u,p;if(t instanceof c.LngLat)u=t,p=t;else{if(!(t instanceof ar))return Array.isArray(t)?t.length===4||t.every(Array.isArray)?this.extend(ar.convert(t)):this.extend(c.LngLat.convert(t)):t&&("lng"in t||"lon"in t)&&"lat"in t?this.extend(c.LngLat.convert(t)):this;if(u=t._sw,p=t._ne,!u||!p)return this}return n||s?(n.lng=Math.min(u.lng,n.lng),n.lat=Math.min(u.lat,n.lat),s.lng=Math.max(p.lng,s.lng),s.lat=Math.max(p.lat,s.lat)):(this._sw=new c.LngLat(u.lng,u.lat),this._ne=new c.LngLat(p.lng,p.lat)),this}getCenter(){return new c.LngLat((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 c.LngLat(this.getWest(),this.getNorth())}getSouthEast(){return new c.LngLat(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:s}=c.LngLat.convert(t);let u=this._sw.lng<=n&&n<=this._ne.lng;return this._sw.lng>this._ne.lng&&(u=this._sw.lng>=n&&n>=this._ne.lng),this._sw.lat<=s&&s<=this._ne.lat&&u}static convert(t){return t instanceof ar?t:t&&new ar(t)}static fromLngLat(t,n=0){const s=360*n/40075017,u=s/Math.cos(Math.PI/180*t.lat);return new ar(new c.LngLat(t.lng-u,t.lat-s),new c.LngLat(t.lng+u,t.lat+s))}}class Vn{constructor(t,n,s){this.bounds=ar.convert(this.validateBounds(t)),this.minzoom=n||0,this.maxzoom=s||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),s=Math.floor(c.mercatorXfromLng(this.bounds.getWest())*n),u=Math.floor(c.mercatorYfromLat(this.bounds.getNorth())*n),p=Math.ceil(c.mercatorXfromLng(this.bounds.getEast())*n),g=Math.ceil(c.mercatorYfromLat(this.bounds.getSouth())*n);return t.x>=s&&t.x=u&&t.y{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),t?this.fire(new c.ErrorEvent(t)):n&&(c.extend(this,n),n.bounds&&(this.tileBounds=new Vn(n.bounds,this.minzoom,this.maxzoom)),this.fire(new c.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new c.Event("data",{dataType:"source",sourceDataType:"content"})))})}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)}serialize(){return c.extend({},this._options)}loadTile(t,n){const s=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),u={request:this.map._requestManager.transformRequest(s,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 p(g,v){return delete t.request,t.aborted?n(null):g&&g.status!==404?n(g):(v&&v.resourceTiming&&(t.resourceTiming=v.resourceTiming),this.map._refreshExpiredTiles&&v&&t.setExpiryData(v),t.loadVectorData(v,this.map.painter),n(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}u.request.collectResourceTiming=this._collectResourceTiming,t.actor&&t.state!=="expired"?t.state==="loading"?t.reloadCallback=n:t.request=t.actor.send("reloadTile",u,p.bind(this)):(t.actor=this.dispatcher.getActor(),t.request=t.actor.send("loadTile",u,p.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 At extends c.Evented{constructor(t,n,s,u){super(),this.id=t,this.dispatcher=s,this.setEventedParent(u),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=c.extend({type:"raster"},n),c.extend(this,c.pick(n,["url","scheme","tileSize"]))}load(){this._loaded=!1,this.fire(new c.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=Ii(this._options,this.map._requestManager,(t,n)=>{this._tileJSONRequest=null,this._loaded=!0,t?this.fire(new c.ErrorEvent(t)):n&&(c.extend(this,n),n.bounds&&(this.tileBounds=new Vn(n.bounds,this.minzoom,this.maxzoom)),this.fire(new c.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new c.Event("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)}serialize(){return c.extend({},this._options)}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t,n){const s=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.request=yt.getImage(this.map._requestManager.transformRequest(s,et.Tile),(u,p,g)=>{if(delete t.request,t.aborted)t.state="unloaded",n(null);else if(u)t.state="errored",n(u);else if(p){this.map._refreshExpiredTiles&&g&&t.setExpiryData(g);const v=this.map.painter.context,y=v.gl;t.texture=this.map.painter.getTileTexture(p.width),t.texture?t.texture.update(p,{useMipmap:!0}):(t.texture=new zt(v,p,y.RGBA,{useMipmap:!0}),t.texture.bind(y.LINEAR,y.CLAMP_TO_EDGE,y.LINEAR_MIPMAP_NEAREST),v.extTextureFilterAnisotropic&&y.texParameterf(y.TEXTURE_2D,v.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,v.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 jn extends At{constructor(t,n,s,u){super(t,n,s,u),this.type="raster-dem",this.maxzoom=22,this._options=c.extend({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox"}serialize(){return{type:"raster-dem",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}}loadTile(t,n){const s=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);function u(p,g){p&&(t.state="errored",n(p)),g&&(t.dem=g,t.needsHillshadePrepare=!0,t.needsTerrainPrepare=!0,t.state="loaded",n(null))}t.request=yt.getImage(this.map._requestManager.transformRequest(s,et.Tile),function(p,g){if(delete t.request,t.aborted)t.state="unloaded",n(null);else if(p)t.state="errored",n(p);else if(g){this.map._refreshExpiredTiles&&t.setExpiryData(g),delete g.cacheControl,delete g.expires;const v=c.isImageBitmap(g)&&(oo==null&&(oo=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),oo)?g:c.exported.getImageData(g,1),y={uid:t.uid,coord:t.tileID,source:this.id,rawImageData:v,encoding:this.encoding};t.actor&&t.state!=="expired"||(t.actor=this.dispatcher.getActor(),t.actor.send("loadDEMTile",y,u.bind(this)))}}.bind(this),this.map._refreshExpiredTiles),t.neighboringTiles=this._getNeighboringTiles(t.tileID)}_getNeighboringTiles(t){const n=t.canonical,s=Math.pow(2,n.z),u=(n.x-1+s)%s,p=n.x===0?t.wrap-1:t.wrap,g=(n.x+1+s)%s,v=n.x+1===s?t.wrap+1:t.wrap,y={};return y[new c.OverscaledTileID(t.overscaledZ,p,n.z,u,n.y).key]={backfilled:!1},y[new c.OverscaledTileID(t.overscaledZ,v,n.z,g,n.y).key]={backfilled:!1},n.y>0&&(y[new c.OverscaledTileID(t.overscaledZ,p,n.z,u,n.y-1).key]={backfilled:!1},y[new c.OverscaledTileID(t.overscaledZ,t.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},y[new c.OverscaledTileID(t.overscaledZ,v,n.z,g,n.y-1).key]={backfilled:!1}),n.y+1{if(this._pendingLoads--,this._removed||u&&u.abandoned)return void this.fire(new c.Event("dataabort",{dataType:"source"}));let p=null;if(u&&u.resourceTiming&&u.resourceTiming[this.id]&&(p=u.resourceTiming[this.id].slice(0)),s)return void this.fire(new c.ErrorEvent(s));const g={dataType:"source"};this._collectResourceTiming&&p&&p.length>0&&c.extend(g,{resourceTiming:p}),this.fire(new c.Event("data",{...g,sourceDataType:"metadata"})),this.fire(new c.Event("data",{...g,sourceDataType:"content"}))})}loaded(){return this._pendingLoads===0}loadTile(t,n){const s=t.actor?"reloadTile":"loadTile";t.actor=this.actor;const u={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(s,u,(p,g)=>(delete t.request,t.unloadVectorData(),t.aborted?n(null):p?n(p):(t.loadVectorData(g,this.map.painter,s==="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})}serialize(){return c.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}var Gn=c.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class fr extends c.Evented{constructor(t,n,s,u){super(),this.id=t,this.dispatcher=s,this.coordinates=n.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(u),this.options=n}load(t,n){this._loaded=!1,this.fire(new c.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=yt.getImage(this.map._requestManager.transformRequest(this.url,et.Image),(s,u)=>{this._request=null,this._loaded=!0,s?this.fire(new c.ErrorEvent(s)):u&&(this.image=u,t&&(this.coordinates=t),n&&n(),this._finishLoading())})}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 c.Event("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(c.MercatorCoordinate.fromLngLat);this.tileID=function(u){let p=1/0,g=1/0,v=-1/0,y=-1/0;for(const F of u)p=Math.min(p,F.x),g=Math.min(g,F.y),v=Math.max(v,F.x),y=Math.max(y,F.y);const w=Math.max(v-p,y-g),C=Math.max(0,Math.floor(-Math.log(w)/Math.LN2)),I=Math.pow(2,C);return new c.CanonicalTileID(C,Math.floor((p+v)/2*I),Math.floor((g+y)/2*I))}(n),this.minzoom=this.maxzoom=this.tileID.z;const s=n.map(u=>this.tileID.getTilePoint(u)._round());return this._boundsArray=new c.RasterBoundsArray,this._boundsArray.emplaceBack(s[0].x,s[0].y,0,0),this._boundsArray.emplaceBack(s[1].x,s[1].y,c.EXTENT,0),this._boundsArray.emplaceBack(s[3].x,s[3].y,0,c.EXTENT),this._boundsArray.emplaceBack(s[2].x,s[2].y,c.EXTENT,c.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new c.Event("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const t=this.map.painter.context,n=t.gl;this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,Gn.members)),this.boundsSegments||(this.boundsSegments=c.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new zt(t,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let s=!1;for(const u in this.tiles){const p=this.tiles[u];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,s=!0)}s&&this.fire(new c.Event("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}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))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}class $o extends fr{constructor(t,n,s,u){super(t,n,s,u),this.roundZoom=!0,this.type="video",this.options=n}load(){this._loaded=!1;const t=this.options;this.urls=[];for(const n of t.urls)this.urls.push(this.map._requestManager.transformRequest(n,et.Source).url);c.getVideo(this.urls,(n,s)=>{this._loaded=!0,n?this.fire(new c.ErrorEvent(n)):s&&(this.video=s,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(t){if(this.video){const n=this.video.seekable;tn.end(0)?this.fire(new c.ErrorEvent(new c.ValidationError(`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)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const t=this.map.painter.context,n=t.gl;this.boundsBuffer||(this.boundsBuffer=t.createVertexBuffer(this._boundsArray,Gn.members)),this.boundsSegments||(this.boundsSegments=c.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new zt(t,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let s=!1;for(const u in this.tiles){const p=this.tiles[u];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,s=!0)}s&&this.fire(new c.Event("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class _e extends fr{constructor(t,n,s,u){super(t,n,s,u),n.coordinates?Array.isArray(n.coordinates)&&n.coordinates.length===4&&!n.coordinates.some(p=>!Array.isArray(p)||p.length!==2||p.some(g=>typeof g!="number"))||this.fire(new c.ErrorEvent(new c.ValidationError(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new c.ErrorEvent(new c.ValidationError(`sources.${t}`,null,'missing required property "coordinates"'))),n.animate&&typeof n.animate!="boolean"&&this.fire(new c.ErrorEvent(new c.ValidationError(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),n.canvas?typeof n.canvas=="string"||n.canvas instanceof HTMLCanvasElement||this.fire(new c.ErrorEvent(new c.ValidationError(`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 c.ErrorEvent(new c.ValidationError(`sources.${t}`,null,'missing required property "canvas"'))),this.options=n,this.animate=n.animate===void 0||n.animate}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 c.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const n=this.map.painter.context,s=n.gl;this.boundsBuffer||(this.boundsBuffer=n.createVertexBuffer(this._boundsArray,Gn.members)),this.boundsSegments||(this.boundsSegments=c.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new zt(n,this.canvas,s.RGBA,{premultiply:!0});let u=!1;for(const p in this.tiles){const g=this.tiles[p];g.state!=="loaded"&&(g.state="loaded",g.texture=this.texture,u=!0)}u&&this.fire(new c.Event("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}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 qn={vector:Zi,raster:At,"raster-dem":jn,geojson:$n,video:$o,image:fr,canvas:_e};function Yr(a,t){const n=c.create();return c.translate(n,n,[1,1,0]),c.scale(n,n,[.5*a.width,.5*a.height,1]),c.multiply(n,n,a.calculatePosMatrix(t.toUnwrapped()))}function si(a,t,n,s,u,p){const g=function(I,F,G){if(I)for(const V of I){const j=F[V];if(j&&j.source===G&&j.type==="fill-extrusion")return!0}else for(const V in F){const j=F[V];if(j.source===G&&j.type==="fill-extrusion")return!0}return!1}(u&&u.layers,t,a.id),v=p.maxPitchScaleFactor(),y=a.tilesIn(s,v,g);y.sort(Gt);const w=[];for(const I of y)w.push({wrappedTileID:I.tileID.wrapped().key,queryResults:I.tile.queryRenderedFeatures(t,n,a._state,I.queryGeometry,I.cameraQueryGeometry,I.scale,u,p,v,Yr(a.transform,I.tileID))});const C=function(I){const F={},G={};for(const V of I){const j=V.queryResults,K=V.wrappedTileID,re=G[K]=G[K]||{};for(const ge in j){const W=j[ge],pe=re[ge]=re[ge]||{},ve=F[ge]=F[ge]||[];for(const Ae of W)pe[Ae.featureIndex]||(pe[Ae.featureIndex]=!0,ve.push(Ae))}}return F}(w);for(const I in C)C[I].forEach(F=>{const G=F.feature,V=a.getFeatureState(G.layer["source-layer"],G.id);G.source=G.layer.source,G.layer["source-layer"]&&(G.sourceLayer=G.layer["source-layer"]),G.state=V});return C}function Gt(a,t){const n=a.tileID,s=t.tileID;return n.overscaledZ-s.overscaledZ||n.canonical.y-s.canonical.y||n.wrap-s.wrap||n.canonical.x-s.canonical.x}class So{constructor(t,n){this.timeAdded=0,this.fadeEndTime=0,this.tileID=t,this.uid=c.uniqueId(),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;np.getLayer(w)).filter(Boolean);if(y.length!==0){v.layers=y,v.stateDependentLayerIds&&(v.stateDependentLayers=v.stateDependentLayerIds.map(w=>y.filter(C=>C.id===w)[0]));for(const w of y)g[w.id]=v}}return g}(t.buckets,n.style),this.hasSymbolBuckets=!1;for(const u in this.buckets){const p=this.buckets[u];if(p instanceof c.SymbolBucket){if(this.hasSymbolBuckets=!0,!s)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const u in this.buckets){const p=this.buckets[u];if(p instanceof c.SymbolBucket&&p.hasRTLText){this.hasRTLText=!0,c.lazyLoadRTLTextPlugin();break}}this.queryPadding=0;for(const u in this.buckets){const p=this.buckets[u];this.queryPadding=Math.max(this.queryPadding,n.style.getLayer(u).queryRadius(p))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage)}else this.collisionBoxArray=new c.CollisionBoxArray}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 s in this.buckets){const u=this.buckets[s];u.uploadPending()&&u.upload(t)}const n=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new zt(t,this.imageAtlas.image,n.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new zt(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)}queryRenderedFeatures(t,n,s,u,p,g,v,y,w,C){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:u,cameraQueryGeometry:p,scale:g,tileSize:this.tileSize,pixelPosMatrix:C,transform:y,params:v,queryPadding:this.queryPadding*w},t,n,s):{}}querySourceFeatures(t,n){const s=this.latestFeatureIndex;if(!s||!s.rawTileData)return;const u=s.loadVTLayers(),p=n&&n.sourceLayer?n.sourceLayer:"",g=u._geojsonTileLayer||u[p];if(!g)return;const v=c.createFilter(n&&n.filter),{z:y,x:w,y:C}=this.tileID.canonical,I={z:y,x:w,y:C};for(let F=0;Fs)u=!1;else if(n)if(this.expirationTime{this.remove(t,p)},s)),this.data[u].push(p),this.order.push(u),this.order.length>this.max){const g=this._getAndRemoveByKey(this.order[0]);g&&this.onRemove(g)}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 s=t.wrapped().key,u=n===void 0?0:this.data[s].indexOf(n),p=this.data[s][u];return this.data[s].splice(u,1),p.timeout&&clearTimeout(p.timeout),this.data[s].length===0&&delete this.data[s],this.onRemove(p.value),this.order.splice(this.order.indexOf(s),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 s in this.data)for(const u of this.data[s])t(u.value)||n.push(u);for(const s of n)this.remove(s.value.tileID,s)}}class Io{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(t,n,s){const u=String(n);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][u]=this.stateChanges[t][u]||{},c.extend(this.stateChanges[t][u],s),this.deletedStates[t]===null){this.deletedStates[t]={};for(const p in this.state[t])p!==u&&(this.deletedStates[t][p]=null)}else if(this.deletedStates[t]&&this.deletedStates[t][u]===null){this.deletedStates[t][u]={};for(const p in this.state[t][u])s[p]||(this.deletedStates[t][u][p]=null)}else for(const p in s)this.deletedStates[t]&&this.deletedStates[t][u]&&this.deletedStates[t][u][p]===null&&delete this.deletedStates[t][u][p]}removeFeatureState(t,n,s){if(this.deletedStates[t]===null)return;const u=String(n);if(this.deletedStates[t]=this.deletedStates[t]||{},s&&n!==void 0)this.deletedStates[t][u]!==null&&(this.deletedStates[t][u]=this.deletedStates[t][u]||{},this.deletedStates[t][u][s]=null);else if(n!==void 0)if(this.stateChanges[t]&&this.stateChanges[t][u])for(s in this.deletedStates[t][u]={},this.stateChanges[t][u])this.deletedStates[t][u][s]=null;else this.deletedStates[t][u]=null;else this.deletedStates[t]=null}getState(t,n){const s=String(n),u=c.extend({},(this.state[t]||{})[s],(this.stateChanges[t]||{})[s]);if(this.deletedStates[t]===null)return{};if(this.deletedStates[t]){const p=this.deletedStates[t][n];if(p===null)return{};for(const g in p)delete u[g]}return u}initializeTileState(t,n){t.setFeatureState(this.state,n)}coalesceChanges(t,n){const s={};for(const u in this.stateChanges){this.state[u]=this.state[u]||{};const p={};for(const g in this.stateChanges[u])this.state[u][g]||(this.state[u][g]={}),c.extend(this.state[u][g],this.stateChanges[u][g]),p[g]=this.state[u][g];s[u]=p}for(const u in this.deletedStates){this.state[u]=this.state[u]||{};const p={};if(this.deletedStates[u]===null)for(const g in this.state[u])p[g]={},this.state[u][g]={};else for(const g in this.deletedStates[u]){if(this.deletedStates[u][g]===null)this.state[u][g]={};else for(const v of Object.keys(this.deletedStates[u][g]))delete this.state[u][g][v];p[g]=this.state[u][g]}s[u]=s[u]||{},c.extend(s[u],p)}if(this.stateChanges={},this.deletedStates={},Object.keys(s).length!==0)for(const u in t)t[u].setFeatureState(s,n)}}class Ri extends c.Evented{constructor(t,n,s){super(),this.id=t,this.dispatcher=s,this.on("data",u=>{u.dataType==="source"&&u.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&u.dataType==="source"&&u.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=function(u,p,g,v){const y=new qn[p.type](u,p,g,v);if(y.id!==u)throw new Error(`Expected Source id to be ${u} instead of ${y.id}`);return c.bindAll(["load","abort","unload","serialize","prepare"],y),y}(t,n,s,this),this._tiles={},this._cache=new Go(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new Io,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 c.Event("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 s=this._tiles[n];s.upload(t),s.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(t=>t.tileID).sort($r).map(t=>t.key)}getRenderableIds(t){const n=[];for(const s in this._tiles)this._isIdRenderable(s,t)&&n.push(this._tiles[s]);return t?n.sort((s,u)=>{const p=s.tileID,g=u.tileID,v=new c.Point(p.canonical.x,p.canonical.y)._rotate(this.transform.angle),y=new c.Point(g.canonical.x,g.canonical.y)._rotate(this.transform.angle);return p.overscaledZ-g.overscaledZ||y.y-v.y||y.x-v.x}).map(s=>s.tileID.key):n.map(s=>s.tileID).sort($r).map(s=>s.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 s=this._tiles[t];s&&(s.state!=="loading"&&(s.state=n),this._loadTile(s,this._tileLoaded.bind(this,s,t,n)))}_tileLoaded(t,n,s,u){if(u)return t.state="errored",void(u.status!==404?this._source.fire(new c.ErrorEvent(u,{tile:t})):this.update(this.transform,this.terrain));t.timeAdded=c.exported.now(),s==="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 c.Event("data",{dataType:"source",tile:t,coord:t.tileID}))}_backfillDEM(t){const n=this.getRenderableIds();for(let u=0;u1||(Math.abs(g)>1&&(Math.abs(g+y)===1?g+=y:Math.abs(g-y)===1&&(g-=y)),p.dem&&u.dem&&(u.dem.backfillBorder(p.dem,g,v),u.neighboringTiles&&u.neighboringTiles[w]&&(u.neighboringTiles[w].backfilled=!0)))}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,n,s,u){for(const p in this._tiles){let g=this._tiles[p];if(u[p]||!g.hasData()||g.tileID.overscaledZ<=n||g.tileID.overscaledZ>s)continue;let v=g.tileID;for(;g&&g.tileID.overscaledZ>n+1;){const w=g.tileID.scaledTo(g.tileID.overscaledZ-1);g=this._tiles[w.key],g&&g.hasData()&&(v=w)}let y=v;for(;y.overscaledZ>n;)if(y=y.scaledTo(y.overscaledZ-1),t[y.key]){u[v.key]=v;break}}}findLoadedParent(t,n){if(t.key in this._loadedParentTiles){const s=this._loadedParentTiles[t.key];return s&&s.tileID.overscaledZ>=n?s:null}for(let s=t.overscaledZ-1;s>=n;s--){const u=t.scaledTo(s),p=this._getLoadedTile(u);if(p)return p}}_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,s=Math.ceil(t.height/this._source.tileSize)+1,u=Math.floor(n*s*(this._maxTileCacheZoomLevels===null?c.config.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),p=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,u):u;this._cache.setMaxSize(p)}handleWrapJump(t){const n=Math.round((t-(this._prevLng===void 0?t:this._prevLng))/360);if(this._prevLng=t,n){const s={};for(const u in this._tiles){const p=this._tiles[u];p.tileID=p.tileID.unwrapTo(p.tileID.wrap+n),s[p.tileID.key]=p}this._tiles=s;for(const u in this._timers)clearTimeout(this._timers[u]),delete this._timers[u];for(const u in this._tiles)this._setTileReloadTimer(u,this._tiles[u])}}update(t,n){if(this.transform=t,this.terrain=n,!this._sourceLoaded||this._paused)return;let s;this.updateCacheSize(t),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?s=t.getVisibleUnwrappedCoordinates(this._source.tileID).map(C=>new c.OverscaledTileID(C.canonical.z,C.wrap,C.canonical.z,C.canonical.x,C.canonical.y)):(s=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&&(s=s.filter(C=>this._source.hasTile(C)))):s=[];const u=t.coveringZoomLevel(this._source),p=Math.max(u-Ri.maxOverzooming,this._source.minzoom),g=Math.max(u+Ri.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const C={};for(const I of s)if(I.canonical.z>this._source.minzoom){const F=I.scaledTo(I.canonical.z-1);C[F.key]=F;const G=I.scaledTo(Math.max(this._source.minzoom,Math.min(I.canonical.z,5)));C[G.key]=G}s=s.concat(Object.values(C))}const v=s.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,v&&this.fire(new c.Event("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const y=this._updateRetainedTiles(s,u);if(so(this._source.type)){const C={},I={},F=Object.keys(y),G=c.exported.now();for(const V of F){const j=y[V],K=this._tiles[V];if(!K||K.fadeEndTime!==0&&K.fadeEndTime<=G)continue;const re=this.findLoadedParent(j,p);re&&(this._addTile(re.tileID),C[re.tileID.key]=re.tileID),I[V]=j}this._retainLoadedChildren(I,u,g,y);for(const V in C)y[V]||(this._coveredTiles[V]=!0,y[V]=C[V]);if(n){const V={},j={};for(const K of s)this._tiles[K.key].hasData()?V[K.key]=K:j[K.key]=K;for(const K in j){const re=j[K].children(this._source.maxzoom);this._tiles[re[0].key]&&this._tiles[re[1].key]&&this._tiles[re[2].key]&&this._tiles[re[3].key]&&(V[re[0].key]=y[re[0].key]=re[0],V[re[1].key]=y[re[1].key]=re[1],V[re[2].key]=y[re[2].key]=re[2],V[re[3].key]=y[re[3].key]=re[3],delete j[K])}for(const K in j){const re=this.findLoadedParent(j[K],this._source.minzoom);if(re){V[re.tileID.key]=y[re.tileID.key]=re.tileID;for(const ge in V)V[ge].isChildOf(re.tileID)&&delete V[ge]}}for(const K in this._tiles)V[K]||(this._coveredTiles[K]=!0)}}for(const C in y)this._tiles[C].clearFadeHold();const w=c.keysDifference(this._tiles,y);for(const C of w){const I=this._tiles[C];I.hasSymbolBuckets&&!I.holdingForFade()?I.setHoldDuration(this.map._fadeDuration):I.hasSymbolBuckets&&!I.symbolFadeFinished()||this._removeTile(C)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t)}_updateRetainedTiles(t,n){const s={},u={},p=Math.max(n-Ri.maxOverzooming,this._source.minzoom),g=Math.max(n+Ri.maxUnderzooming,this._source.minzoom),v={};for(const y of t){const w=this._addTile(y);s[y.key]=y,w.hasData()||nthis._source.maxzoom){const I=y.children(this._source.maxzoom)[0],F=this.getTile(I);if(F&&F.hasData()){s[I.key]=I;continue}}else{const I=y.children(this._source.maxzoom);if(s[I[0].key]&&s[I[1].key]&&s[I[2].key]&&s[I[3].key])continue}let C=w.wasRequested();for(let I=y.overscaledZ-1;I>=p;--I){const F=y.scaledTo(I);if(u[F.key])break;if(u[F.key]=!0,w=this.getTile(F),!w&&C&&(w=this._addTile(F)),w){const G=w.hasData();if((C||G)&&(s[F.key]=F),C=w.wasRequested(),G)break}}}return s}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const n=[];let s,u=this._tiles[t].tileID;for(;u.overscaledZ>0;){if(u.key in this._loadedParentTiles){s=this._loadedParentTiles[u.key];break}n.push(u.key);const p=u.scaledTo(u.overscaledZ-1);if(s=this._getLoadedTile(p),s)break;u=p}for(const p of n)this._loadedParentTiles[p]=s}}_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 s=n;return n||(n=new So(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,s||this._source.fire(new c.Event("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 s=n.getExpiryTimeout();s&&(this._timers[t]=setTimeout(()=>{this._reloadTile(t,"expired"),delete this._timers[t]},s))}_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,s){const u=[],p=this.transform;if(!p)return u;const g=s?p.getCameraQueryGeometry(t):t,v=t.map(V=>p.pointCoordinate(V,this.terrain)),y=g.map(V=>p.pointCoordinate(V,this.terrain)),w=this.getIds();let C=1/0,I=1/0,F=-1/0,G=-1/0;for(const V of y)C=Math.min(C,V.x),I=Math.min(I,V.y),F=Math.max(F,V.x),G=Math.max(G,V.y);for(let V=0;V=0&&W[1].y+ge>=0){const pe=v.map(Ae=>K.getTilePoint(Ae)),ve=y.map(Ae=>K.getTilePoint(Ae));u.push({tile:j,tileID:K,queryGeometry:pe,cameraQueryGeometry:ve,scale:re})}}return u}getVisibleCoordinates(t){const n=this.getRenderableIds(t).map(s=>this._tiles[s].tileID);for(const s of n)s.posMatrix=this.transform.calculatePosMatrix(s.toUnwrapped());return n}hasTransition(){if(this._source.hasTransition())return!0;if(so(this._source.type)){const t=c.exported.now();for(const n in this._tiles)if(this._tiles[n].fadeEndTime>=t)return!0}return!1}setFeatureState(t,n,s){this._state.updateState(t=t||"_geojsonTileLayer",n,s)}removeFeatureState(t,n,s){this._state.removeFeatureState(t=t||"_geojsonTileLayer",n,s)}getFeatureState(t,n){return this._state.getState(t=t||"_geojsonTileLayer",n)}setDependencies(t,n,s){const u=this._tiles[t];u&&u.setDependencies(n,s)}reloadTilesForDependencies(t,n){for(const s in this._tiles)this._tiles[s].hasDependency(t,n)&&this._reloadTile(s,"reloading");this._cache.filter(s=>!s.hasDependency(t,n))}}function $r(a,t){const n=Math.abs(2*a.wrap)-+(a.wrap<0),s=Math.abs(2*t.wrap)-+(t.wrap<0);return a.overscaledZ-t.overscaledZ||s-n||t.canonical.y-a.canonical.y||t.canonical.x-a.canonical.x}function so(a){return a==="raster"||a==="image"||a==="video"}Ri.maxOverzooming=10,Ri.maxUnderzooming=3;const kn="mapboxgl_preloaded_worker_pool";class Oe{constructor(){this.active={}}acquire(t){if(!this.workers)for(this.workers=[];this.workers.length{n.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[kn]}numActive(){return Object.keys(this.active).length}}const Pr=Math.floor(c.exported.hardwareConcurrency/2);let Xi;function Zn(){return Xi||(Xi=new Oe),Xi}Oe.workerCount=c.isSafari(globalThis)?Math.max(Math.min(Pr,3),1):1;class gn{constructor(t,n){this.reset(t,n)}reset(t,n){this.points=t||[],this._distances=[0];for(let s=1;s0?(u-g)/v:0;return this.points[p].mult(1-y).add(this.points[n].mult(y))}}function Ue(a,t){let n=!0;return a==="always"||a!=="never"&&t!=="never"||(n=!1),n}class Dt{constructor(t,n,s){const u=this.boxCells=[],p=this.circleCells=[];this.xCellCount=Math.ceil(t/s),this.yCellCount=Math.ceil(n/s);for(let g=0;gthis.width||u<0||n>this.height)return[];const y=[];if(t<=0&&n<=0&&this.width<=s&&this.height<=u){if(p)return[{key:null,x1:t,y1:n,x2:s,y2:u}];for(let w=0;w0}hitTestCircle(t,n,s,u,p){const g=t-s,v=t+s,y=n-s,w=n+s;if(v<0||g>this.width||w<0||y>this.height)return!1;const C=[];return this._forEachCell(g,y,v,w,this._queryCellCircle,C,{hitTest:!0,overlapMode:u,circle:{x:t,y:n,radius:s},seenUids:{box:{},circle:{}}},p),C.length>0}_queryCell(t,n,s,u,p,g,v,y){const{seenUids:w,hitTest:C,overlapMode:I}=v,F=this.boxCells[p];if(F!==null){const V=this.bboxes;for(const j of F)if(!w.box[j]){w.box[j]=!0;const K=4*j,re=this.boxKeys[j];if(t<=V[K+2]&&n<=V[K+3]&&s>=V[K+0]&&u>=V[K+1]&&(!y||y(re))&&(!C||!Ue(I,re.overlapMode))&&(g.push({key:re,x1:V[K],y1:V[K+1],x2:V[K+2],y2:V[K+3]}),C))return!0}}const G=this.circleCells[p];if(G!==null){const V=this.circles;for(const j of G)if(!w.circle[j]){w.circle[j]=!0;const K=3*j,re=this.circleKeys[j];if(this._circleAndRectCollide(V[K],V[K+1],V[K+2],t,n,s,u)&&(!y||y(re))&&(!C||!Ue(I,re.overlapMode))){const ge=V[K],W=V[K+1],pe=V[K+2];if(g.push({key:re,x1:ge-pe,y1:W-pe,x2:ge+pe,y2:W+pe}),C)return!0}}}return!1}_queryCellCircle(t,n,s,u,p,g,v,y){const{circle:w,seenUids:C,overlapMode:I}=v,F=this.boxCells[p];if(F!==null){const V=this.bboxes;for(const j of F)if(!C.box[j]){C.box[j]=!0;const K=4*j,re=this.boxKeys[j];if(this._circleAndRectCollide(w.x,w.y,w.radius,V[K+0],V[K+1],V[K+2],V[K+3])&&(!y||y(re))&&!Ue(I,re.overlapMode))return g.push(!0),!0}}const G=this.circleCells[p];if(G!==null){const V=this.circles;for(const j of G)if(!C.circle[j]){C.circle[j]=!0;const K=3*j,re=this.circleKeys[j];if(this._circlesCollide(V[K],V[K+1],V[K+2],w.x,w.y,w.radius)&&(!y||y(re))&&!Ue(I,re.overlapMode))return g.push(!0),!0}}}_forEachCell(t,n,s,u,p,g,v,y){const w=this._convertToXCellCoord(t),C=this._convertToYCellCoord(n),I=this._convertToXCellCoord(s),F=this._convertToYCellCoord(u);for(let G=w;G<=I;G++)for(let V=C;V<=F;V++)if(p.call(this,t,n,s,u,this.xCellCount*V+G,g,v,y))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,s,u,p,g){const v=u-t,y=p-n,w=s+g;return w*w>v*v+y*y}_circleAndRectCollide(t,n,s,u,p,g,v){const y=(g-u)/2,w=Math.abs(t-(u+y));if(w>y+s)return!1;const C=(v-p)/2,I=Math.abs(n-(p+C));if(I>C+s)return!1;if(w<=y||I<=C)return!0;const F=w-y,G=I-C;return F*F+G*G<=s*s}}function xt(a,t,n,s,u){const p=c.create();return t?(c.scale(p,p,[1/u,1/u,1]),n||c.rotateZ(p,p,s.angle)):c.multiply(p,s.labelPlaneMatrix,a),p}function mr(a,t,n,s,u){if(t){const p=c.clone(a);return c.scale(p,p,[u,u,1]),n||c.rotateZ(p,p,-s.angle),p}return s.glCoordMatrix}function _i(a,t,n){let s;n?(s=[a.x,a.y,n(a.x,a.y),1],c.transformMat4(s,s,t)):(s=[a.x,a.y,0,1],X(s,s,t));const u=s[3];return{point:new c.Point(s[0]/u,s[1]/u),signedDistanceFromCamera:u}}function Tt(a,t){return .5+a/t*.5}function Qr(a,t){const n=a[0]/a[3],s=a[1]/a[3];return n>=-t[0]&&n<=t[0]&&s>=-t[1]&&s<=t[1]}function Wi(a,t,n,s,u,p,g,v,y,w){const C=s?a.textSizeData:a.iconSizeData,I=c.evaluateSizeForZoom(C,n.transform.zoom),F=[256/n.width*2+1,256/n.height*2+1],G=s?a.text.dynamicLayoutVertexArray:a.icon.dynamicLayoutVertexArray;G.clear();const V=a.lineVertexArray,j=s?a.text.placedSymbolArray:a.icon.placedSymbolArray,K=n.transform.width/n.transform.height;let re=!1;for(let ge=0;geMath.abs(n.x-t.x)*s?{useVertical:!0}:(a===c.WritingMode.vertical?t.yn.x)?{needsFlipping:!0}:null}function Qi(a,t,n,s,u,p,g,v,y,w,C,I,F,G,V,j){const K=t/24,re=a.lineOffsetX*K,ge=a.lineOffsetY*K;let W;if(a.numGlyphs>1){const pe=a.glyphStartIndex+a.numGlyphs,ve=a.lineStartIndex,Ae=a.lineStartIndex+a.lineLength,Le=Er(K,v,re,ge,n,C,I,a,y,p,F,V,j);if(!Le)return{notEnoughRoom:!0};const Re=_i(Le.first.point,g,j).point,ke=_i(Le.last.point,g,j).point;if(s&&!n){const Qe=Xn(a.writingMode,Re,ke,G);if(Qe)return Qe}W=[Le.first];for(let Qe=a.glyphStartIndex+1;Qe0?Re.point:ui(I,Le,ve,1,u,j),Qe=Xn(a.writingMode,ve,ke,G);if(Qe)return Qe}const pe=P(K*v.getoffsetX(a.glyphStartIndex),re,ge,n,C,I,a.segment,a.lineStartIndex,a.lineStartIndex+a.lineLength,y,p,F,V,j);if(!pe)return{notEnoughRoom:!0};W=[pe]}for(const pe of W)c.addDynamicAttributes(w,pe.point,pe.angle);return{}}function ui(a,t,n,s,u,p){const g=_i(a.add(a.sub(t)._unit()),u,p).point,v=n.sub(g);return n.add(v._mult(s/v.mag()))}function os(a,t){const{projectionCache:n,lineVertexArray:s,labelPlaneMatrix:u,tileAnchorPoint:p,distanceFromAnchor:g,getElevation:v,previousVertex:y,direction:w,absOffsetX:C}=t;if(n.projections[a])return n.projections[a];const I=new c.Point(s.getx(a),s.gety(a)),F=_i(I,u,v);if(F.signedDistanceFromCamera>0)return n.projections[a]=F.point,F.point;const G=a-w;return ui(g===0?p:new c.Point(s.getx(G),s.gety(G)),I,y,C-g+1,u,v)}function zn(a,t,n){return a._unit()._perp()._mult(t*n)}function q(a,t,n,s,u,p,g,v){const{projectionCache:y,direction:w}=v;if(y.offsets[a])return y.offsets[a];const C=n.add(t);if(a+w=u)return y.offsets[a]=C,C;const I=os(a+w,v),F=zn(I.sub(n),g,w),G=n.add(F),V=I.add(F);return y.offsets[a]=c.findLineIntersection(p,C,G,V)||C,y.offsets[a]}function P(a,t,n,s,u,p,g,v,y,w,C,I,F,G){const V=s?a-t:a+t;let j=V>0?1:-1,K=0;s&&(j*=-1,K=Math.PI),j<0&&(K+=Math.PI);let re,ge,W=j>0?v+g:v+g+1,pe=u,ve=u,Ae=0,Le=0;const Re=Math.abs(V),ke=[];let Qe;for(;Ae+Le<=Re;){if(W+=j,W=y)return null;Ae+=Le,ve=pe,ge=re;const Ge={projectionCache:I,lineVertexArray:w,labelPlaneMatrix:C,tileAnchorPoint:p,distanceFromAnchor:Ae,getElevation:G,previousVertex:ve,direction:j,absOffsetX:Re};if(pe=os(W,Ge),n===0)ke.push(ve),Qe=pe.sub(ve);else{let vt;const tt=pe.sub(ve);vt=tt.mag()===0?zn(os(W+j,Ge).sub(pe),n,j):zn(tt,n,j),ge||(ge=ve.add(vt)),re=q(W,vt,pe,v,y,ge,n,Ge),ke.push(ge),Qe=re.sub(ge)}Le=Qe.mag()}const ft=Qe._mult((Re-Ae)/Le)._add(ge||ve),Ct=K+Math.atan2(pe.y-ve.y,pe.x-ve.x);return ke.push(ft),{point:ft,angle:F?Ct:0,path:ke}}const L=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function N(a,t){for(let n=0;n=1;Yt--)tt.push(Ge.path[Yt]);for(let Yt=1;Yt_i(kt,y,V));tt=Yt.some(kt=>kt.signedDistanceFromCamera<=0)?[]:Yt.map(kt=>kt.point)}let Hi=[];if(tt.length>0){const Yt=tt[0].clone(),kt=tt[0].clone();for(let $i=1;$i=Qe.x&&kt.x<=ft.x&&Yt.y>=Qe.y&&kt.y<=ft.y?[tt]:kt.xft.x||kt.yft.y?[]:c.clipLine([tt],Qe.x,Qe.y,ft.x,ft.y)}for(const Yt of Hi){Ct.reset(Yt,.25*ke);let kt=0;kt=Ct.length<=.5*ke?1:Math.ceil(Ct.paddedLength/Jt)+1;for(let $i=0;$i=this.screenRightBoundary||uthis.screenBottomBoundary}isInsideGrid(t,n,s,u){return s>=0&&t=0&&ns.collisionGroupID===n}}return this.collisionGroups[t]}}function Et(a,t,n,s,u){const{horizontalAlign:p,verticalAlign:g}=c.getAnchorAlignment(a),v=-(p-.5)*t,y=-(g-.5)*n,w=c.evaluateVariableOffset(a,s);return new c.Point(v+w[0]*u,y+w[1]*u)}function st(a,t,n,s,u,p){const{x1:g,x2:v,y1:y,y2:w,anchorPointX:C,anchorPointY:I}=a,F=new c.Point(t,n);return s&&F._rotate(u?p:-p),{x1:g+F.x,y1:y+F.y,x2:v+F.x,y2:w+F.y,anchorPointX:C,anchorPointY:I}}class pt{constructor(t,n,s,u,p){this.transform=t.clone(),this.terrain=n,this.collisionIndex=new se(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=s,this.retainedQueryData={},this.collisionGroups=new it(u),this.collisionCircleArrays={},this.prevPlacement=p,p&&(p.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(t,n,s,u){const p=s.getBucket(n),g=s.latestFeatureIndex;if(!p||!g||n.id!==p.layerIds[0])return;const v=s.collisionBoxArray,y=p.layers[0].layout,w=Math.pow(2,this.transform.zoom-s.tileID.overscaledZ),C=s.tileSize/c.EXTENT,I=this.transform.calculatePosMatrix(s.tileID.toUnwrapped()),F=y.get("text-pitch-alignment")==="map",G=y.get("text-rotation-alignment")==="map",V=ee(s,1,this.transform.zoom),j=xt(I,F,G,this.transform,V);let K=null;if(F){const ge=mr(I,F,G,this.transform,V);K=c.multiply([],this.transform.labelPlaneMatrix,ge)}this.retainedQueryData[p.bucketInstanceId]=new Ce(p.bucketInstanceId,g,p.sourceLayerIndex,p.index,s.tileID);const re={bucket:p,layout:y,posMatrix:I,textLabelPlaneMatrix:j,labelToScreenMatrix:K,scale:w,textPixelRatio:C,holdingForFade:s.holdingForFade(),collisionBoxArray:v,partiallyEvaluatedTextSize:c.evaluateSizeForZoom(p.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(p.sourceID)};if(u)for(const ge of p.sortKeyRanges){const{sortKey:W,symbolInstanceStart:pe,symbolInstanceEnd:ve}=ge;t.push({sortKey:W,symbolInstanceStart:pe,symbolInstanceEnd:ve,parameters:re})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:p.symbolInstances.length,parameters:re})}attemptAnchorPlacement(t,n,s,u,p,g,v,y,w,C,I,F,G,V,j,K){const re=[F.textOffset0,F.textOffset1],ge=Et(t,s,u,re,p),W=this.collisionIndex.placeCollisionBox(st(n,ge.x,ge.y,g,v,this.transform.angle),I,y,w,C.predicate,K);if((!j||this.collisionIndex.placeCollisionBox(st(j,ge.x,ge.y,g,v,this.transform.angle),I,y,w,C.predicate,K).box.length!==0)&&W.box.length>0){let pe;if(this.prevPlacement&&this.prevPlacement.variableOffsets[F.crossTileID]&&this.prevPlacement.placements[F.crossTileID]&&this.prevPlacement.placements[F.crossTileID].text&&(pe=this.prevPlacement.variableOffsets[F.crossTileID].anchor),F.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[F.crossTileID]={textOffset:re,width:s,height:u,anchor:t,textBoxScale:p,prevAnchor:pe},this.markUsedJustification(G,t,F,V),G.allowVerticalPlacement&&(this.markUsedOrientation(G,V,F),this.placedOrientations[F.crossTileID]=V),{shift:ge,placedGlyphBoxes:W}}}placeLayerBucketPart(t,n,s){const{bucket:u,layout:p,posMatrix:g,textLabelPlaneMatrix:v,labelToScreenMatrix:y,textPixelRatio:w,holdingForFade:C,collisionBoxArray:I,partiallyEvaluatedTextSize:F,collisionGroup:G}=t.parameters,V=p.get("text-optional"),j=p.get("icon-optional"),K=c.getOverlapMode(p,"text-overlap","text-allow-overlap"),re=K==="always",ge=c.getOverlapMode(p,"icon-overlap","icon-allow-overlap"),W=ge==="always",pe=p.get("text-rotation-alignment")==="map",ve=p.get("text-pitch-alignment")==="map",Ae=p.get("icon-text-fit")!=="none",Le=p.get("symbol-z-order")==="viewport-y",Re=re&&(W||!u.hasIconData()||j),ke=W&&(re||!u.hasTextData()||V);!u.collisionArrays&&I&&u.deserializeCollisionBoxes(I);const Qe=this.retainedQueryData[u.bucketInstanceId].tileID,ft=this.terrain?(Ge,vt)=>this.terrain.getElevation(Qe,Ge,vt):null,Ct=(Ge,vt)=>{if(n[Ge.crossTileID])return;if(C)return void(this.placements[Ge.crossTileID]=new Te(!1,!1,!1));let tt=!1,Jt=!1,Hi=!0,Yt=null,kt={box:null,offscreen:null},$i={box:null,offscreen:null},Zr=null,Ki=null,yr=null,vn=0,Kn=0,Jn=0;vt.textFeatureIndex?vn=vt.textFeatureIndex:Ge.useRuntimeCollisionCircles&&(vn=Ge.featureIndex),vt.verticalTextFeatureIndex&&(Kn=vt.verticalTextFeatureIndex);const Xr=vt.textBox;if(Xr){const Rr=ei=>{let ur=c.WritingMode.horizontal;if(u.allowVerticalPlacement&&!ei&&this.prevPlacement){const xr=this.prevPlacement.placedOrientations[Ge.crossTileID];xr&&(this.placedOrientations[Ge.crossTileID]=xr,ur=xr,this.markUsedOrientation(u,ur,Ge))}return ur},vr=(ei,ur)=>{if(u.allowVerticalPlacement&&Ge.numVerticalGlyphVertices>0&&vt.verticalTextBox){for(const xr of u.writingModes)if(xr===c.WritingMode.vertical?(kt=ur(),$i=kt):kt=ei(),kt&&kt.box&&kt.box.length)break}else kt=ei()};if(p.get("text-variable-anchor")){let ei=p.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[Ge.crossTileID]){const ni=this.prevPlacement.variableOffsets[Ge.crossTileID];ei.indexOf(ni.anchor)>0&&(ei=ei.filter(hr=>hr!==ni.anchor),ei.unshift(ni.anchor))}const ur=(ni,hr,xn)=>{const Va=ni.x2-ni.x1,Oo=ni.y2-ni.y1,Rc=Ge.textBoxScale,oc=Ae&&ge==="never"?hr:null;let bi={box:[],offscreen:!1};const xl=K!=="never"?2*ei.length:ei.length;for(let fa=0;fa=ei.length?K:"never",Ge,u,xn,oc,ft);if(Uo&&(bi=Uo.placedGlyphBoxes,bi&&bi.box&&bi.box.length)){tt=!0,Yt=Uo.shift;break}}return bi};vr(()=>ur(Xr,vt.iconBox,c.WritingMode.horizontal),()=>{const ni=vt.verticalTextBox;return u.allowVerticalPlacement&&!(kt&&kt.box&&kt.box.length)&&Ge.numVerticalGlyphVertices>0&&ni?ur(ni,vt.verticalIconBox,c.WritingMode.vertical):{box:null,offscreen:null}}),kt&&(tt=kt.box,Hi=kt.offscreen);const xr=Rr(kt&&kt.box);if(!tt&&this.prevPlacement){const ni=this.prevPlacement.variableOffsets[Ge.crossTileID];ni&&(this.variableOffsets[Ge.crossTileID]=ni,this.markUsedJustification(u,ni.anchor,Ge,xr))}}else{const ei=(ur,xr)=>{const ni=this.collisionIndex.placeCollisionBox(ur,K,w,g,G.predicate,ft);return ni&&ni.box&&ni.box.length&&(this.markUsedOrientation(u,xr,Ge),this.placedOrientations[Ge.crossTileID]=xr),ni};vr(()=>ei(Xr,c.WritingMode.horizontal),()=>{const ur=vt.verticalTextBox;return u.allowVerticalPlacement&&Ge.numVerticalGlyphVertices>0&&ur?ei(ur,c.WritingMode.vertical):{box:null,offscreen:null}}),Rr(kt&&kt.box&&kt.box.length)}}if(Zr=kt,tt=Zr&&Zr.box&&Zr.box.length>0,Hi=Zr&&Zr.offscreen,Ge.useRuntimeCollisionCircles){const Rr=u.text.placedSymbolArray.get(Ge.centerJustifiedTextSymbolIndex),vr=c.evaluateSizeForFeature(u.textSizeData,F,Rr),ei=p.get("text-padding");Ki=this.collisionIndex.placeCollisionCircles(K,Rr,u.lineVertexArray,u.glyphOffsetArray,vr,g,v,y,s,ve,G.predicate,Ge.collisionCircleDiameter,ei,ft),Ki.circles.length&&Ki.collisionDetected&&!s&&c.warnOnce("Collisions detected, but collision boxes are not shown"),tt=re||Ki.circles.length>0&&!Ki.collisionDetected,Hi=Hi&&Ki.offscreen}if(vt.iconFeatureIndex&&(Jn=vt.iconFeatureIndex),vt.iconBox){const Rr=vr=>{const ei=Ae&&Yt?st(vr,Yt.x,Yt.y,pe,ve,this.transform.angle):vr;return this.collisionIndex.placeCollisionBox(ei,ge,w,g,G.predicate,ft)};$i&&$i.box&&$i.box.length&&vt.verticalIconBox?(yr=Rr(vt.verticalIconBox),Jt=yr.box.length>0):(yr=Rr(vt.iconBox),Jt=yr.box.length>0),Hi=Hi&&yr.offscreen}const wo=V||Ge.numHorizontalGlyphVertices===0&&Ge.numVerticalGlyphVertices===0,pa=j||Ge.numIconVertices===0;if(wo||pa?pa?wo||(Jt=Jt&&tt):tt=Jt&&tt:Jt=tt=Jt&&tt,tt&&Zr&&Zr.box&&this.collisionIndex.insertCollisionBox(Zr.box,K,p.get("text-ignore-placement"),u.bucketInstanceId,$i&&$i.box&&Kn?Kn:vn,G.ID),Jt&&yr&&this.collisionIndex.insertCollisionBox(yr.box,ge,p.get("icon-ignore-placement"),u.bucketInstanceId,Jn,G.ID),Ki&&(tt&&this.collisionIndex.insertCollisionCircles(Ki.circles,K,p.get("text-ignore-placement"),u.bucketInstanceId,vn,G.ID),s)){const Rr=u.bucketInstanceId;let vr=this.collisionCircleArrays[Rr];vr===void 0&&(vr=this.collisionCircleArrays[Rr]=new Se);for(let ei=0;ei=0;--vt){const tt=Ge[vt];Ct(u.symbolInstances.get(tt),u.collisionArrays[tt])}}else for(let Ge=t.symbolInstanceStart;Ge=0&&(t.text.placedSymbolArray.get(v).crossTileID=p>=0&&v!==p?0:s.crossTileID)}markUsedOrientation(t,n,s){const u=n===c.WritingMode.horizontal||n===c.WritingMode.horizontalOnly?n:0,p=n===c.WritingMode.vertical?n:0,g=[s.leftJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.rightJustifiedTextSymbolIndex];for(const v of g)t.text.placedSymbolArray.get(v).placedOrientation=u;s.verticalPlacedTextSymbolIndex&&(t.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation=p)}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const n=this.prevPlacement;let s=!1;this.prevZoomAdjustment=n?n.zoomAdjustment(this.transform.zoom):0;const u=n?n.symbolFadeChange(t):1,p=n?n.opacities:{},g=n?n.variableOffsets:{},v=n?n.placedOrientations:{};for(const y in this.placements){const w=this.placements[y],C=p[y];C?(this.opacities[y]=new ce(C,u,w.text,w.icon),s=s||w.text!==C.text.placed||w.icon!==C.icon.placed):(this.opacities[y]=new ce(null,u,w.text,w.icon,w.skipFade),s=s||w.text||w.icon)}for(const y in p){const w=p[y];if(!this.opacities[y]){const C=new ce(w,u,!1,!1);C.isHidden()||(this.opacities[y]=C,s=s||w.text.placed||w.icon.placed)}}for(const y in g)this.variableOffsets[y]||!this.opacities[y]||this.opacities[y].isHidden()||(this.variableOffsets[y]=g[y]);for(const y in v)this.placedOrientations[y]||!this.opacities[y]||this.opacities[y].isHidden()||(this.placedOrientations[y]=v[y]);if(n&&n.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");s?this.lastPlacementChangeTime=t:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=n?n.lastPlacementChangeTime:t)}updateLayerOpacities(t,n){const s={};for(const u of n){const p=u.getBucket(t);p&&u.latestFeatureIndex&&t.id===p.layerIds[0]&&this.updateBucketOpacities(p,s,u.collisionBoxArray)}}updateBucketOpacities(t,n,s){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 u=t.layers[0].layout,p=new ce(null,0,!1,!1,!0),g=u.get("text-allow-overlap"),v=u.get("icon-allow-overlap"),y=u.get("text-variable-anchor"),w=u.get("text-rotation-alignment")==="map",C=u.get("text-pitch-alignment")==="map",I=u.get("icon-text-fit")!=="none",F=new ce(null,0,g&&(v||!t.hasIconData()||u.get("icon-optional")),v&&(g||!t.hasTextData()||u.get("text-optional")),!0);!t.collisionArrays&&s&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(s);const G=(V,j,K)=>{for(let re=0;re0,ve=this.placedOrientations[j.crossTileID],Ae=ve===c.WritingMode.vertical,Le=ve===c.WritingMode.horizontal||ve===c.WritingMode.horizontalOnly;if(K>0||re>0){const Re=ao(W.text);G(t.text,K,Ae?vi:Re),G(t.text,re,Le?vi:Re);const ke=W.text.isHidden();[j.rightJustifiedTextSymbolIndex,j.centerJustifiedTextSymbolIndex,j.leftJustifiedTextSymbolIndex].forEach(Ct=>{Ct>=0&&(t.text.placedSymbolArray.get(Ct).hidden=ke||Ae?1:0)}),j.verticalPlacedTextSymbolIndex>=0&&(t.text.placedSymbolArray.get(j.verticalPlacedTextSymbolIndex).hidden=ke||Le?1:0);const Qe=this.variableOffsets[j.crossTileID];Qe&&this.markUsedJustification(t,Qe.anchor,j,ve);const ft=this.placedOrientations[j.crossTileID];ft&&(this.markUsedJustification(t,"left",j,ft),this.markUsedOrientation(t,ft,j))}if(pe){const Re=ao(W.icon),ke=!(I&&j.verticalPlacedIconSymbolIndex&&Ae);j.placedIconSymbolIndex>=0&&(G(t.icon,j.numIconVertices,ke?Re:vi),t.icon.placedSymbolArray.get(j.placedIconSymbolIndex).hidden=W.icon.isHidden()),j.verticalPlacedIconSymbolIndex>=0&&(G(t.icon,j.numVerticalIconVertices,ke?vi:Re),t.icon.placedSymbolArray.get(j.verticalPlacedIconSymbolIndex).hidden=W.icon.isHidden())}if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const Re=t.collisionArrays[V];if(Re){let ke=new c.Point(0,0);if(Re.textBox||Re.verticalTextBox){let ft=!0;if(y){const Ct=this.variableOffsets[ge];Ct?(ke=Et(Ct.anchor,Ct.width,Ct.height,Ct.textOffset,Ct.textBoxScale),w&&ke._rotate(C?this.transform.angle:-this.transform.angle)):ft=!1}Re.textBox&&bt(t.textCollisionBox.collisionVertexArray,W.text.placed,!ft||Ae,ke.x,ke.y),Re.verticalTextBox&&bt(t.textCollisionBox.collisionVertexArray,W.text.placed,!ft||Le,ke.x,ke.y)}const Qe=!!(!Le&&Re.verticalIconBox);Re.iconBox&&bt(t.iconCollisionBox.collisionVertexArray,W.icon.placed,Qe,I?ke.x:0,I?ke.y:0),Re.verticalIconBox&&bt(t.iconCollisionBox.collisionVertexArray,W.icon.placed,!Qe,I?ke.x:0,I?ke.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 V=this.collisionCircleArrays[t.bucketInstanceId];t.placementInvProjMatrix=V.invProjMatrix,t.placementViewportMatrix=V.viewportMatrix,t.collisionCircleArray=V.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 bt(a,t,n,s,u){a.emplaceBack(t?1:0,n?1:0,s||0,u||0),a.emplaceBack(t?1:0,n?1:0,s||0,u||0),a.emplaceBack(t?1:0,n?1:0,s||0,u||0),a.emplaceBack(t?1:0,n?1:0,s||0,u||0)}const Vt=Math.pow(2,25),Lt=Math.pow(2,24),jt=Math.pow(2,17),ti=Math.pow(2,16),zi=Math.pow(2,9),ot=Math.pow(2,8),yi=Math.pow(2,1);function ao(a){if(a.opacity===0&&!a.placed)return 0;if(a.opacity===1&&a.placed)return 4294967295;const t=a.placed?1:0,n=Math.floor(127*a.opacity);return n*Vt+t*Lt+n*jt+t*ti+n*zi+t*ot+n*yi+t}const vi=0;class Li{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,s,u,p){const g=this._bucketParts;for(;this._currentTileIndexv.sortKey-y.sortKey));this._currentPartIndex!this._forceFullPlacement&&c.exported.now()-u>2;for(;this._currentPlacementIndex>=0;){const g=n[t[this._currentPlacementIndex]],v=this.placement.collisionIndex.transform.zoom;if(g.type==="symbol"&&(!g.minzoom||g.minzoom<=v)&&(!g.maxzoom||g.maxzoom>v)){if(this._inProgressLayer||(this._inProgressLayer=new Li(g)),this._inProgressLayer.continuePlacement(s[g.source],this.placement,this._showCollisionBoxes,g,p))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(t){return this.placement.commit(t),this.placement}}const en=512/c.EXTENT/2;class Ln{constructor(t,n,s){this.tileID=t,this.bucketInstanceId=s,this._symbolsByKey={};const u=new Map;for(let p=0;p({x:Math.floor(y.anchorX*en),y:Math.floor(y.anchorY*en)})),crossTileIDs:g.map(y=>y.crossTileID)};if(v.positions.length>128){const y=new c.KDBush(v.positions.length,16,Uint16Array);for(const{x:w,y:C}of v.positions)y.add(w,C);y.finish(),delete v.positions,v.index=y}this._symbolsByKey[p]=v}}getScaledCoordinates(t,n){const{x:s,y:u,z:p}=this.tileID.canonical,{x:g,y:v,z:y}=n.canonical,w=en/Math.pow(2,y-p),C=(v*c.EXTENT+t.anchorY)*w,I=u*c.EXTENT*en;return{x:Math.floor((g*c.EXTENT+t.anchorX)*w-s*c.EXTENT*en),y:Math.floor(C-I)}}findMatches(t,n,s){const u=this.tileID.canonical.zt)}}class Fi{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class ss{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(t){const n=Math.round((t-this.lng)/360);if(n!==0)for(const s in this.indexes){const u=this.indexes[s],p={};for(const g in u){const v=u[g];v.tileID=v.tileID.unwrapTo(v.tileID.wrap+n),p[v.tileID.key]=v}this.indexes[s]=p}this.lng=t}addBucket(t,n,s){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 p=0;pt.overscaledZ)for(const v in g){const y=g[v];y.tileID.isChildOf(t)&&y.findMatches(n.symbolInstances,t,u)}else{const v=g[t.scaledTo(Number(p)).key];v&&v.findMatches(n.symbolInstances,t,u)}}for(let p=0;p{n[s]=!0});for(const s in this.layerIndexes)n[s]||delete this.layerIndexes[s]}}const Bi=(a,t)=>c.emitValidationErrors(a,t&&t.filter(n=>n.identifier!=="source.canvas")),as=c.pick(c.operations,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setGlyphs","setSprite"]),kr=c.pick(c.operations,["setCenter","setZoom","setBearing","setPitch"]),ba=c.emptyStyle();class er extends c.Evented{constructor(t,n={}){super(),this.map=t,this.dispatcher=new Si(Zn(),this,t._getMapId()),this.imageManager=new pi,this.imageManager.setEventedParent(this),this.glyphManager=new fn(t._requestManager,n.localIdeographFontFamily),this.lineAtlas=new Mr(256,512),this.crossTileSymbolIndex=new lo,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new c.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",c.getReferrer());const s=this;this._rtlTextPluginCallback=er.registerForPluginStateChange(u=>{s.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:u.pluginStatus,pluginURL:u.pluginURL},(p,g)=>{if(c.triggerPluginCompletionEvent(p),g&&g.every(v=>v))for(const v in s.sourceCaches){const y=s.sourceCaches[v].getSource().type;y!=="vector"&&y!=="geojson"||s.sourceCaches[v].reload()}})}),this.on("data",u=>{if(u.dataType!=="source"||u.sourceDataType!=="metadata")return;const p=this.sourceCaches[u.sourceId];if(!p)return;const g=p.getSource();if(g&&g.vectorLayerIds)for(const v in this._layers){const y=this._layers[v];y.source===g.id&&this._validateLayer(y)}})}loadURL(t,n={},s){this.fire(new c.Event("dataloading",{dataType:"style"})),n.validate=typeof n.validate!="boolean"||n.validate;const u=this.map._requestManager.transformRequest(t,et.Style);this._request=c.getJSON(u,(p,g)=>{this._request=null,p?this.fire(new c.ErrorEvent(p)):g&&this._load(g,n,s)})}loadJSON(t,n={},s){this.fire(new c.Event("dataloading",{dataType:"style"})),this._request=c.exported.frame(()=>{this._request=null,n.validate=n.validate!==!1,this._load(t,n,s)})}loadEmpty(){this.fire(new c.Event("dataloading",{dataType:"style"})),this._load(ba,{validate:!1})}_load(t,n,s){const u=n.transformStyle?n.transformStyle(s,t):t;if(!n.validate||!Bi(this,c.validateStyle(u))){this._loaded=!0,this.stylesheet=u;for(const p in u.sources)this.addSource(p,u.sources[p],{validate:!1});u.sprite?this._loadSprite(u.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(u.glyphs),this._createLayers(),this.light=new qi(this.stylesheet.light),this.map.setTerrain(this.stylesheet.terrain),this.fire(new c.Event("data",{dataType:"style"})),this.fire(new c.Event("style.load"))}}_createLayers(){const t=c.derefLayers(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 s=c.createStyleLayer(n);s.setEventedParent(this,{layer:{id:n.id}}),this._layers[n.id]=s}}_loadSprite(t,n=!1,s=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(u,p,g,v){const y=Ei(u),w=y.length,C=g>1?"@2x":"",I={},F={},G={};for(const{id:V,url:j}of y){const K=p.transformRequest(p.normalizeSpriteURL(j,C,".json"),et.SpriteJSON),re=`${V}_${K.url}`;I[re]=c.getJSON(K,(pe,ve)=>{delete I[re],F[V]=ve,di(v,F,G,pe,w)});const ge=p.transformRequest(p.normalizeSpriteURL(j,C,".png"),et.SpriteImage),W=`${V}_${ge.url}`;I[W]=yt.getImage(ge,(pe,ve)=>{delete I[W],G[V]=ve,di(v,F,G,pe,w)})}return{cancel(){for(const V of Object.values(I))V.cancel()}}}(t,this.map._requestManager,this.map.getPixelRatio(),(u,p)=>{if(this._spriteRequest=null,u)this.fire(new c.ErrorEvent(u));else if(p)for(const g in p){this._spritesImagesIds[g]=[];const v=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter(y=>!(y in p)):[];for(const y of v)this.imageManager.removeImage(y),this._changedImages[y]=!0;for(const y in p[g]){const w=g==="default"?y:`${g}:${y}`;this._spritesImagesIds[g].push(w),w in this.imageManager.images?this.imageManager.updateImage(w,p[g][y],!1):this.imageManager.addImage(w,p[g][y]),n&&(this._changedImages[w]=!0)}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),n&&(this._changed=!0),this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new c.Event("data",{dataType:"style"})),s&&s(u)})}_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 c.Event("data",{dataType:"style"}))}_validateLayer(t){const n=this.sourceCaches[t.source];if(!n)return;const s=t.sourceLayer;if(!s)return;const u=n.getSource();(u.type==="geojson"||u.vectorLayerIds&&u.vectorLayerIds.indexOf(s)===-1)&&this.fire(new c.ErrorEvent(new Error(`Source layer "${s}" does not exist on source "${u.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 s=[];for(const u of t)n[u]&&s.push(n[u]);return s}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const n=Object.keys(this._layers);for(const s of n){const u=this._layers[s];u.type!=="custom"&&(t[s]=u.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 u=Object.keys(this._updatedLayers),p=Object.keys(this._removedLayers);(u.length||p.length)&&this._updateWorkerLayers(u,p);for(const g in this._updatedSources){const v=this._updatedSources[g];if(v==="reload")this._reloadSource(g);else{if(v!=="clear")throw new Error(`Invalid action ${v}`);this._clearSource(g)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const g in this._updatedPaintProps)this._layers[g].updateTransitions(t);this.light.updateTransitions(t),this._resetUpdates()}const s={};for(const u in this.sourceCaches){const p=this.sourceCaches[u];s[u]=p.used,p.used=!1}for(const u of this._order){const p=this._layers[u];p.recalculate(t,this._availableImages),!p.isHidden(t.zoom)&&p.source&&(this.sourceCaches[p.source].used=!0)}for(const u in s){const p=this.sourceCaches[u];s[u]!==p.used&&p.fire(new c.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:u}))}this.light.recalculate(t),this.z=t.zoom,n&&this.fire(new c.Event("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 s=this.serialize();if(t=n.transformStyle?n.transformStyle(s,t):t,Bi(this,c.validateStyle(t)))return!1;(t=c.clone$1(t)).layers=c.derefLayers(t.layers);const u=c.diffStyles(s,t).filter(g=>!(g.command in kr));if(u.length===0)return!1;const p=u.filter(g=>!(g.command in as));if(p.length>0)throw new Error(`Unimplemented: ${p.map(g=>g.command).join(", ")}.`);for(const g of u)g.command!=="setTransition"&&this[g.command].apply(this,g.args);return this.stylesheet=t,!0}addImage(t,n){if(this.getImage(t))return this.fire(new c.ErrorEvent(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 c.ErrorEvent(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 c.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(t,n,s={}){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(c.validateStyle.source,`sources.${t}`,n,null,s))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const u=this.sourceCaches[t]=new Ri(t,n,this.dispatcher);u.style=this,u.setEventedParent(this,()=>({isSourceLoaded:u.loaded(),source:u.serialize(),sourceId:t})),u.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 s in this._layers)if(this._layers[s].source===t)return this.fire(new c.ErrorEvent(new Error(`Source "${t}" cannot be removed while layer "${s}" is using it.`)));const n=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],n.fire(new c.Event("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 s=this.sourceCaches[t].getSource();if(s.type!=="geojson")throw new Error(`geojsonSource.type is ${s.type}, which is !== 'geojson`);s.setData(n),this._changed=!0}getSource(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()}addLayer(t,n,s={}){this._checkLoaded();const u=t.id;if(this.getLayer(u))return void this.fire(new c.ErrorEvent(new Error(`Layer "${u}" already exists on this map.`)));let p;if(t.type==="custom"){if(Bi(this,c.validateCustomStyleLayer(t)))return;p=c.createStyleLayer(t)}else{if(typeof t.source=="object"&&(this.addSource(u,t.source),t=c.clone$1(t),t=c.extend(t,{source:u})),this._validate(c.validateStyle.layer,`layers.${u}`,t,{arrayIndex:-1},s))return;p=c.createStyleLayer(t),this._validateLayer(p),p.setEventedParent(this,{layer:{id:u}})}const g=n?this._order.indexOf(n):this._order.length;if(n&&g===-1)this.fire(new c.ErrorEvent(new Error(`Cannot add layer "${u}" before non-existing layer "${n}".`)));else{if(this._order.splice(g,0,u),this._layerOrderChanged=!0,this._layers[u]=p,this._removedLayers[u]&&p.source&&p.type!=="custom"){const v=this._removedLayers[u];delete this._removedLayers[u],v.type!==p.type?this._updatedSources[p.source]="clear":(this._updatedSources[p.source]="reload",this.sourceCaches[p.source].pause())}this._updateLayer(p),p.onAdd&&p.onAdd(this.map)}}moveLayer(t,n){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new c.ErrorEvent(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===n)return;const s=this._order.indexOf(t);this._order.splice(s,1);const u=n?this._order.indexOf(n):this._order.length;n&&u===-1?this.fire(new c.ErrorEvent(new Error(`Cannot move layer "${t}" before non-existing layer "${n}".`))):(this._order.splice(u,0,t),this._layerOrderChanged=!0)}removeLayer(t){this._checkLoaded();const n=this._layers[t];if(!n)return void this.fire(new c.ErrorEvent(new Error(`Cannot remove non-existing layer "${t}".`)));n.setEventedParent(null);const s=this._order.indexOf(t);this._order.splice(s,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]}hasLayer(t){return t in this._layers}setLayerZoomRange(t,n,s){this._checkLoaded();const u=this.getLayer(t);u?u.minzoom===n&&u.maxzoom===s||(n!=null&&(u.minzoom=n),s!=null&&(u.maxzoom=s),this._updateLayer(u)):this.fire(new c.ErrorEvent(new Error(`Cannot set the zoom range of non-existing layer "${t}".`)))}setFilter(t,n,s={}){this._checkLoaded();const u=this.getLayer(t);if(u){if(!c.deepEqual(u.filter,n))return n==null?(u.filter=void 0,void this._updateLayer(u)):void(this._validate(c.validateStyle.filter,`layers.${u.id}.filter`,n,null,s)||(u.filter=c.clone$1(n),this._updateLayer(u)))}else this.fire(new c.ErrorEvent(new Error(`Cannot filter non-existing layer "${t}".`)))}getFilter(t){return c.clone$1(this.getLayer(t).filter)}setLayoutProperty(t,n,s,u={}){this._checkLoaded();const p=this.getLayer(t);p?c.deepEqual(p.getLayoutProperty(n),s)||(p.setLayoutProperty(n,s,u),this._updateLayer(p)):this.fire(new c.ErrorEvent(new Error(`Cannot style non-existing layer "${t}".`)))}getLayoutProperty(t,n){const s=this.getLayer(t);if(s)return s.getLayoutProperty(n);this.fire(new c.ErrorEvent(new Error(`Cannot get style of non-existing layer "${t}".`)))}setPaintProperty(t,n,s,u={}){this._checkLoaded();const p=this.getLayer(t);p?c.deepEqual(p.getPaintProperty(n),s)||(p.setPaintProperty(n,s,u)&&this._updateLayer(p),this._changed=!0,this._updatedPaintProps[t]=!0):this.fire(new c.ErrorEvent(new Error(`Cannot style non-existing layer "${t}".`)))}getPaintProperty(t,n){return this.getLayer(t).getPaintProperty(n)}setFeatureState(t,n){this._checkLoaded();const s=t.source,u=t.sourceLayer,p=this.sourceCaches[s];if(p===void 0)return void this.fire(new c.ErrorEvent(new Error(`The source '${s}' does not exist in the map's style.`)));const g=p.getSource().type;g==="geojson"&&u?this.fire(new c.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):g!=="vector"||u?(t.id===void 0&&this.fire(new c.ErrorEvent(new Error("The feature id parameter must be provided."))),p.setFeatureState(u,t.id,n)):this.fire(new c.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(t,n){this._checkLoaded();const s=t.source,u=this.sourceCaches[s];if(u===void 0)return void this.fire(new c.ErrorEvent(new Error(`The source '${s}' does not exist in the map's style.`)));const p=u.getSource().type,g=p==="vector"?t.sourceLayer:void 0;p!=="vector"||g?n&&typeof t.id!="string"&&typeof t.id!="number"?this.fire(new c.ErrorEvent(new Error("A feature id is required to remove its specific state property."))):u.removeFeatureState(g,t.id,n):this.fire(new c.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(t){this._checkLoaded();const n=t.source,s=t.sourceLayer,u=this.sourceCaches[n];if(u!==void 0)return u.getSource().type!=="vector"||s?(t.id===void 0&&this.fire(new c.ErrorEvent(new Error("The feature id parameter must be provided."))),u.getFeatureState(s,t.id)):void this.fire(new c.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new c.ErrorEvent(new Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return c.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const t=c.mapObject(this.sourceCaches,u=>u.serialize()),n=this._serializeByIds(this._order),s=this.stylesheet;return c.filterObject({version:s.version,name:s.name,metadata:s.metadata,light:s.light,center:s.center,zoom:s.zoom,bearing:s.bearing,pitch:s.pitch,sprite:s.sprite,glyphs:s.glyphs,transition:s.transition,sources:t,layers:n},u=>u!==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=g=>this._layers[g].type==="fill-extrusion",s={},u=[];for(let g=this._order.length-1;g>=0;g--){const v=this._order[g];if(n(v)){s[v]=g;for(const y of t){const w=y[v];if(w)for(const C of w)u.push(C)}}}u.sort((g,v)=>v.intersectionZ-g.intersectionZ);const p=[];for(let g=this._order.length-1;g>=0;g--){const v=this._order[g];if(n(v))for(let y=u.length-1;y>=0;y--){const w=u[y].feature;if(s[w.layer.id]{const Re=re.featureSortOrder;if(Re){const ke=Re.indexOf(Ae.featureIndex);return Re.indexOf(Le.featureIndex)-ke}return Le.featureIndex-Ae.featureIndex});for(const Ae of ve)pe.push(Ae)}}for(const re in V)V[re].forEach(ge=>{const W=ge.feature,pe=w[v[re].source].getFeatureState(W.layer["source-layer"],W.id);W.source=W.layer.source,W.layer["source-layer"]&&(W.sourceLayer=W.layer["source-layer"]),W.state=pe});return V}(this._layers,g,this.sourceCaches,t,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(p)}querySourceFeatures(t,n){n&&n.filter&&this._validate(c.validateStyle.filter,"querySourceFeatures.filter",n.filter,null,n);const s=this.sourceCaches[t];return s?function(u,p){const g=u.getRenderableIds().map(w=>u.getTileByID(w)),v=[],y={};for(let w=0;wF.getTileByID(G)).sort((G,V)=>V.tileID.overscaledZ-G.tileID.overscaledZ||(G.tileID.isLessThan(V.tileID)?-1:1))}const I=this.crossTileSymbolIndex.addLayer(C,y[C.source],t.center.lng);g=g||I}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((p=p||this._layerOrderChanged||s===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(c.exported.now(),t.zoom))&&(this.pauseablePlacement=new Sr(t,this.map.terrain,this._order,p,n,s,u,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,y),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(c.exported.now()),v=!0),g&&this.pauseablePlacement.placement.setStale()),v||g)for(const w of this._order){const C=this._layers[w];C.type==="symbol"&&this.placement.updateLayerOpacities(C,y[C.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(c.exported.now())}_releaseSymbolFadeTiles(){for(const t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles()}getImages(t,n,s){this.imageManager.getImages(n.icons,s),this._updateTilesForChangedImages();const u=this.sourceCaches[n.source];u&&u.setDependencies(n.tileID.key,n.type,n.icons)}getGlyphs(t,n,s){this.glyphManager.getGlyphs(n.stacks,s);const u=this.sourceCaches[n.source];u&&u.setDependencies(n.tileID.key,n.type,[""])}getResource(t,n,s){return c.makeRequest(n,s)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(t,n={}){this._checkLoaded(),t&&this._validate(c.validateStyle.glyphs,"glyphs",t,null,n)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=t,this.glyphManager.entries={},this.glyphManager.setURL(t))}addSprite(t,n,s={},u){this._checkLoaded();const p=[{id:t,url:n}],g=[...Ei(this.stylesheet.sprite),...p];this._validate(c.validateStyle.sprite,"sprite",g,null,s)||(this.stylesheet.sprite=g,this._loadSprite(p,!0,u))}removeSprite(t){this._checkLoaded();const n=Ei(this.stylesheet.sprite);if(n.find(s=>s.id===t)){if(this._spritesImagesIds[t])for(const s of this._spritesImagesIds[t])this.imageManager.removeImage(s),this._changedImages[s]=!0;n.splice(n.findIndex(s=>s.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 c.Event("data",{dataType:"style"}))}else this.fire(new c.ErrorEvent(new Error(`Sprite "${t}" doesn't exists on this map.`)))}getSprite(){return Ei(this.stylesheet.sprite)}setSprite(t,n={},s){this._checkLoaded(),t&&this._validate(c.validateStyle.sprite,"sprite",t,null,n)||(this.stylesheet.sprite=t,t?this._loadSprite(t,!0,s):(this._unloadSprite(),s&&s(null)))}}er.getSourceType=function(a){return qn[a]},er.setSourceType=function(a,t){qn[a]=t},er.registerForPluginStateChange=c.registerForPluginStateChange;var Hs=c.createLayout([{name:"a_pos",type:"Int16",components:2}]),As="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 co={prelude:$t(`#ifdef GL_ES precision mediump float; diff --git a/assets/main-c3ebdbba.js b/assets/main-b760fa4d.js similarity index 98% rename from assets/main-c3ebdbba.js rename to assets/main-b760fa4d.js index 64522bb2..f8279a7c 100644 --- a/assets/main-c3ebdbba.js +++ b/assets/main-b760fa4d.js @@ -1,4 +1,4 @@ -import{S as M,i as P,s as T,c as Y,e as g,a as O,b as $,u as x,g as ee,d as te,t as b,f as k,h as _,L as F,j as H,k as q,l as U,m as v,n as y,o as L,p as K,q as C,r as S,v as Q,w as D,x as ne,y as E,z as w,A as J,B as I,C as V,D as W,E as N,F as Z,G as X,H as se,I as re,J as oe,K as le,M as ie,N as ae,O as pe,P as ue,Q as fe,R as ce,T as me,U as de,V as $e}from"./MainLayers-fe4bfc4b.js";function _e(l){let e,r;const t=l[1].default,s=Y(t,l,l[0],null);return{c(){e=g("div"),s&&s.c(),O(e,"class","svelte-eycl9h")},m(n,i){$(n,e,i),s&&s.m(e,null),r=!0},p(n,[i]){s&&s.p&&(!r||i&1)&&x(s,t,n,n[0],r?te(t,n[0],i,null):ee(n[0]),null)},i(n){r||(b(s,n),r=!0)},o(n){k(s,n),r=!1},d(n){n&&_(e),s&&s.d(n)}}}function ge(l,e,r){let{$$slots:t={},$$scope:s}=e;return l.$$set=n=>{"$$scope"in n&&r(0,s=n.$$scope)},[s,t]}class we extends M{constructor(e){super(),P(this,e,ge,_e,T,{})}}function he(l){let e,r,t,s,n;e=new F({props:{source:"connected-roads",gj:l[0],layerStyle:l[2],show:l[1]}});function i(a){l[5](a)}let o={gj:l[0],name:"Roads connected to intersection",downloadable:!1};return l[1]!==void 0&&(o.show=l[1]),t=new H({props:o}),q.push(()=>U(t,"show",i)),{c(){v(e.$$.fragment),r=y(),v(t.$$.fragment)},m(a,p){L(e,a,p),$(a,r,p),L(t,a,p),n=!0},p(a,[p]){const m={};p&1&&(m.gj=a[0]),p&2&&(m.show=a[1]),e.$set(m);const c={};p&1&&(c.gj=a[0]),!s&&p&2&&(s=!0,c.show=a[1],K(()=>s=!1)),t.$set(c)},i(a){n||(b(e.$$.fragment,a),b(t.$$.fragment,a),n=!0)},o(a){k(e.$$.fragment,a),k(t.$$.fragment,a),n=!1},d(a){a&&_(r),C(e,a),C(t,a)}}}function ye(l,e,r){let t,s;S(l,Q,p=>r(3,t=p)),S(l,D,p=>r(4,s=p));let n,i=!0,o={type:"fill",paint:{"fill-color":"blue","fill-opacity":.5}};function a(p){i=p,r(1,i)}return l.$$.update=()=>{l.$$.dirty&24&&(s&&t?r(0,n=JSON.parse(s.debugRoadsConnectedToIntersectionGeojson(t.properties.id))):r(0,n=void 0))},[n,i,o,t,s,a]}class be extends M{constructor(e){super(),P(this,e,ye,he,T,{})}}function ke(l){let e,r,t,s,n;e=new F({props:{source:"movements",gj:l[0],layerStyle:l[2],show:l[1]}});function i(a){l[5](a)}let o={gj:l[0],name:"Movement arrows",downloadable:!1};return l[1]!==void 0&&(o.show=l[1]),t=new H({props:o}),q.push(()=>U(t,"show",i)),{c(){v(e.$$.fragment),r=y(),v(t.$$.fragment)},m(a,p){L(e,a,p),$(a,r,p),L(t,a,p),n=!0},p(a,[p]){const m={};p&1&&(m.gj=a[0]),p&2&&(m.show=a[1]),e.$set(m);const c={};p&1&&(c.gj=a[0]),!s&&p&2&&(s=!0,c.show=a[1],K(()=>s=!1)),t.$set(c)},i(a){n||(b(e.$$.fragment,a),b(t.$$.fragment,a),n=!0)},o(a){k(e.$$.fragment,a),k(t.$$.fragment,a),n=!1},d(a){a&&_(r),C(e,a),C(t,a)}}}function ve(l,e,r){let t,s;S(l,D,p=>r(3,t=p)),S(l,ne,p=>r(4,s=p));let n,i=!0,o={type:"fill",paint:{"fill-color":"blue","fill-opacity":.5}};function a(p){i=p,r(1,i)}return l.$$.update=()=>{if(l.$$.dirty&24)if(t&&s){let p=s.properties;r(0,n=JSON.parse(t.debugMovementsFromLaneGeojson(p.road,p.index)))}else r(0,n=void 0)},[n,i,o,t,s,a]}class Le extends M{constructor(e){super(),P(this,e,ve,ke,T,{})}}function Ce(l){let e,r,t,s,n,i;return{c(){e=g("div"),r=g("label"),t=g("input"),s=E(` +import{S as M,i as P,s as T,c as Y,e as g,a as O,b as $,u as x,g as ee,d as te,t as b,f as k,h as _,L as F,j as H,k as q,l as U,m as v,n as y,o as L,p as K,q as C,r as S,v as Q,w as D,x as ne,y as E,z as w,A as J,B as I,C as V,D as W,E as N,F as Z,G as X,H as se,I as re,J as oe,K as le,M as ie,N as ae,O as pe,P as ue,Q as fe,R as ce,T as me,U as de,V as $e}from"./MainLayers-86931c4d.js";function _e(l){let e,r;const t=l[1].default,s=Y(t,l,l[0],null);return{c(){e=g("div"),s&&s.c(),O(e,"class","svelte-eycl9h")},m(n,i){$(n,e,i),s&&s.m(e,null),r=!0},p(n,[i]){s&&s.p&&(!r||i&1)&&x(s,t,n,n[0],r?te(t,n[0],i,null):ee(n[0]),null)},i(n){r||(b(s,n),r=!0)},o(n){k(s,n),r=!1},d(n){n&&_(e),s&&s.d(n)}}}function ge(l,e,r){let{$$slots:t={},$$scope:s}=e;return l.$$set=n=>{"$$scope"in n&&r(0,s=n.$$scope)},[s,t]}class we extends M{constructor(e){super(),P(this,e,ge,_e,T,{})}}function he(l){let e,r,t,s,n;e=new F({props:{source:"connected-roads",gj:l[0],layerStyle:l[2],show:l[1]}});function i(a){l[5](a)}let o={gj:l[0],name:"Roads connected to intersection",downloadable:!1};return l[1]!==void 0&&(o.show=l[1]),t=new H({props:o}),q.push(()=>U(t,"show",i)),{c(){v(e.$$.fragment),r=y(),v(t.$$.fragment)},m(a,p){L(e,a,p),$(a,r,p),L(t,a,p),n=!0},p(a,[p]){const m={};p&1&&(m.gj=a[0]),p&2&&(m.show=a[1]),e.$set(m);const c={};p&1&&(c.gj=a[0]),!s&&p&2&&(s=!0,c.show=a[1],K(()=>s=!1)),t.$set(c)},i(a){n||(b(e.$$.fragment,a),b(t.$$.fragment,a),n=!0)},o(a){k(e.$$.fragment,a),k(t.$$.fragment,a),n=!1},d(a){a&&_(r),C(e,a),C(t,a)}}}function ye(l,e,r){let t,s;S(l,Q,p=>r(3,t=p)),S(l,D,p=>r(4,s=p));let n,i=!0,o={type:"fill",paint:{"fill-color":"blue","fill-opacity":.5}};function a(p){i=p,r(1,i)}return l.$$.update=()=>{l.$$.dirty&24&&(s&&t?r(0,n=JSON.parse(s.debugRoadsConnectedToIntersectionGeojson(t.properties.id))):r(0,n=void 0))},[n,i,o,t,s,a]}class be extends M{constructor(e){super(),P(this,e,ye,he,T,{})}}function ke(l){let e,r,t,s,n;e=new F({props:{source:"movements",gj:l[0],layerStyle:l[2],show:l[1]}});function i(a){l[5](a)}let o={gj:l[0],name:"Movement arrows",downloadable:!1};return l[1]!==void 0&&(o.show=l[1]),t=new H({props:o}),q.push(()=>U(t,"show",i)),{c(){v(e.$$.fragment),r=y(),v(t.$$.fragment)},m(a,p){L(e,a,p),$(a,r,p),L(t,a,p),n=!0},p(a,[p]){const m={};p&1&&(m.gj=a[0]),p&2&&(m.show=a[1]),e.$set(m);const c={};p&1&&(c.gj=a[0]),!s&&p&2&&(s=!0,c.show=a[1],K(()=>s=!1)),t.$set(c)},i(a){n||(b(e.$$.fragment,a),b(t.$$.fragment,a),n=!0)},o(a){k(e.$$.fragment,a),k(t.$$.fragment,a),n=!1},d(a){a&&_(r),C(e,a),C(t,a)}}}function ve(l,e,r){let t,s;S(l,D,p=>r(3,t=p)),S(l,ne,p=>r(4,s=p));let n,i=!0,o={type:"fill",paint:{"fill-color":"blue","fill-opacity":.5}};function a(p){i=p,r(1,i)}return l.$$.update=()=>{if(l.$$.dirty&24)if(t&&s){let p=s.properties;r(0,n=JSON.parse(t.debugMovementsFromLaneGeojson(p.road,p.index)))}else r(0,n=void 0)},[n,i,o,t,s,a]}class Le extends M{constructor(e){super(),P(this,e,ve,ke,T,{})}}function Ce(l){let e,r,t,s,n,i;return{c(){e=g("div"),r=g("label"),t=g("input"),s=E(` Clockwise ordering of roads`),O(t,"type","checkbox")},m(o,a){$(o,e,a),w(e,r),w(r,t),t.checked=l[0],w(r,s),n||(i=J(t,"change",l[5]),n=!0)},p(o,[a]){a&1&&(t.checked=o[0])},i:I,o:I,d(o){o&&_(e),n=!1,i()}}}function Se(l,e,r){let t,s,n;S(l,V,p=>r(2,t=p)),S(l,Q,p=>r(3,s=p)),S(l,D,p=>r(4,n=p));let i=[],o=!1;function a(){o=this.checked,r(0,o)}return l.$$.update=()=>{if(l.$$.dirty&31){for(let p of i)p.remove();if(r(1,i=[]),o&&s){let p=JSON.parse(n.debugClockwiseOrderingForIntersectionGeojson(s.properties.id));for(let m of p.features)i.push(new W.Popup({closeButton:!1,closeOnClick:!1,focusAfterOpen:!1}).setLngLat(m.geometry.coordinates).setHTML(m.properties.label).addTo(t))}}},[o,i,t,s,n,a]}class Oe extends M{constructor(e){super(),P(this,e,Se,Ce,T,{})}}function je(l){let e,r,t,s,n,i;return e=new Le({}),t=new Oe({}),n=new be({}),{c(){v(e.$$.fragment),r=y(),v(t.$$.fragment),s=y(),v(n.$$.fragment)},m(o,a){L(e,o,a),$(o,r,a),L(t,o,a),$(o,s,a),L(n,o,a),i=!0},p:I,i(o){i||(b(e.$$.fragment,o),b(t.$$.fragment,o),b(n.$$.fragment,o),i=!0)},o(o){k(e.$$.fragment,o),k(t.$$.fragment,o),k(n.$$.fragment,o),i=!1},d(o){o&&(_(r),_(s)),C(e,o),C(t,o),C(n,o)}}}class Ie extends M{constructor(e){super(),P(this,e,null,je,T,{})}}function A(l,e,r){const t=l.slice();return t[4]=e[r],t}function G(l){let e,r=l[4]+"",t,s,n;return{c(){e=g("a"),t=E(r),n=E(","),O(e,"href",s="https://www.openstreetmap.org/node/"+l[4]),O(e,"target","_blank")},m(i,o){$(i,e,o),w(e,t),$(i,n,o)},p(i,o){o&1&&r!==(r=i[4]+"")&&X(t,r),o&1&&s!==(s="https://www.openstreetmap.org/node/"+i[4])&&O(e,"href",s)},d(i){i&&(_(e),_(n))}}}function Me(l){let e,r,t,s,n,i,o,a,p,m=N(l[0].properties.osm_node_ids),c=[];for(let f=0;fr(3,t=o));let{intersection:s}=e,n=structuredClone(s.properties);delete n.osm_node_ids;function i(){t.collapseIntersection(s.properties.id),D.set(t)}return l.$$set=o=>{"intersection"in o&&r(0,s=o.intersection)},[s,n,i]}class Te extends M{constructor(e){super(),P(this,e,Pe,Me,T,{intersection:0})}}function B(l,e,r){const t=l.slice();return t[5]=e[r],t}function z(l){let e,r=l[5]+"",t,s,n;return{c(){e=g("a"),t=E(r),n=E(","),O(e,"href",s="https://www.openstreetmap.org/way/"+l[5]),O(e,"target","_blank")},m(i,o){$(i,e,o),w(e,t),$(i,n,o)},p(i,o){o&1&&r!==(r=i[5]+"")&&X(t,r),o&1&&s!==(s="https://www.openstreetmap.org/way/"+i[5])&&O(e,"href",s)},d(i){i&&(_(e),_(n))}}}function De(l){let e,r,t,s,n,i,o,a,p,m,c,f=N(l[0].properties.osm_way_ids),d=[];for(let u=0;ur(4,t=a));let{lane:s}=e,n=structuredClone(s.properties);delete n.osm_way_ids;function i(){t.collapseShortRoad(s.properties.road),D.set(t)}function o(){t.zipSidepath(s.properties.road),D.set(t)}return l.$$set=a=>{"lane"in a&&r(0,s=a.lane)},[s,n,i,o]}class Je extends M{constructor(e){super(),P(this,e,Ee,De,T,{lane:0})}}function Ne(l,e,r){let t,s,n,i,o;S(l,V,p=>r(0,t=p)),S(l,oe,p=>r(1,s=p)),S(l,le,p=>r(2,n=p)),S(l,ie,p=>r(3,i=p)),S(l,ae,p=>r(4,o=p));let a=new W.Popup({closeButton:!1,closeOnClick:!1,maxWidth:"none"});return re(()=>{a.remove()}),l.$$.update=()=>{if(l.$$.dirty&31)if(o){let p=document.createElement("div");new Je({target:p,props:{lane:o}}),a.setLngLat(i).setDOMContent(p).addTo(t)}else if(n){let p=document.createElement("div");new Te({target:p,props:{intersection:n}}),a.setLngLat(s).setDOMContent(p).addTo(t)}else a.remove()},[t,s,n,i,o]}class Re extends M{constructor(e){super(),P(this,e,Ne,null,T,{})}}function Ae(l){let e,r,t,s,n,i,o,a,p,m,c;return s=new fe({}),m=new ce({}),{c(){e=g("div"),r=g("h1"),r.textContent="osm2streets Street Explorer",t=y(),v(s.$$.fragment),n=y(),i=g("p"),i.innerHTML=`Understanding OSM streets & intersections with diff --git a/assets/nested-5844dc17.js b/assets/nested-eefdc3fb.js similarity index 99% rename from assets/nested-5844dc17.js rename to assets/nested-eefdc3fb.js index 56993d41..c7ca118b 100644 --- a/assets/nested-5844dc17.js +++ b/assets/nested-eefdc3fb.js @@ -1,4 +1,4 @@ -import{S as q,i as z,s as j,e as g,y as N,n as k,a as W,b as $,z as m,A as D,G as X,B as S,h,r as B,w as F,W as Z,E as G,X as K,H as P,Y as x,Z as I,_ as ee,m as C,$ as Q,o as O,a0 as U,f as w,a1 as V,t as b,q as T,k as te,L as ne,N as le,O as se,P as re,Q as ae,R as oe,T as ie,U as ue,V as fe,a2 as ce}from"./MainLayers-fe4bfc4b.js";function pe(i){let e,t=i[0].size+"",n,l,a,r,u,d;return{c(){e=g("div"),n=N(t),l=N(" ways edited"),a=k(),r=g("button"),r.textContent="Download .osc",W(r,"type","button")},m(_,p){$(_,e,p),m(e,n),m(e,l),$(_,a,p),$(_,r,p),u||(d=D(r,"click",i[1]),u=!0)},p(_,[p]){p&1&&t!==(t=_[0].size+"")&&X(n,t)},i:S,o:S,d(_){_&&(h(e),h(a),h(r)),u=!1,d()}}}function de(i,e,t){let n;B(i,F,u=>t(3,n=u));let l=new Set;function a(u){l.add(u.detail),t(0,l)}function r(){let u=` +import{S as q,i as z,s as j,e as g,y as N,n as k,a as W,b as $,z as m,A as D,G as X,B as S,h,r as B,w as F,W as Z,E as G,X as K,H as P,Y as x,Z as I,_ as ee,m as C,$ as Q,o as O,a0 as U,f as w,a1 as V,t as b,q as T,k as te,L as ne,N as le,O as se,P as re,Q as ae,R as oe,T as ie,U as ue,V as fe,a2 as ce}from"./MainLayers-86931c4d.js";function pe(i){let e,t=i[0].size+"",n,l,a,r,u,d;return{c(){e=g("div"),n=N(t),l=N(" ways edited"),a=k(),r=g("button"),r.textContent="Download .osc",W(r,"type","button")},m(_,p){$(_,e,p),m(e,n),m(e,l),$(_,a,p),$(_,r,p),u||(d=D(r,"click",i[1]),u=!0)},p(_,[p]){p&1&&t!==(t=_[0].size+"")&&X(n,t)},i:S,o:S,d(_){_&&(h(e),h(a),h(r)),u=!1,d()}}}function de(i,e,t){let n;B(i,F,u=>t(3,n=u));let l=new Set;function a(u){l.add(u.detail),t(0,l)}function r(){let u=` `;u+=` `,u+=` `;for(let d of l)u+=n.wayToXml(d),u+=` diff --git a/assets/osm2streets_js_bg.wasm b/assets/osm2streets_js_bg.wasm index 34113dcff4eed160d212e067cd120d13f5036ee1..f23552719e2ca6cc9112d922215d82d397d3267e 100644 GIT binary patch delta 286335 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

%@r~ z&nt(+3zQg+PbtopyDpBz`Vbu@6)Rs~DCR7p(O@<#%`9@x8`Pc|}(n5UZ(4(`(vPl)r=7#yDbLl-7hauur z`#5C|qWsJEbhyDSfASQETqjS5a-KMOx{m61V_b3zFD@r%V!D&2Z>QI&*Vq$fzl?f> zg*~Nu#e1YwJCEM`bC5J@C>a@$!K3eM$$C2__q`Dw{lQknPPeCjvQ;r>I(OXvSuAFu z8*||Uuf}4QxiO&!SEa4jY=wBkE4|uH`R2ji+3}u+!c9v%bOX2QfHo1s@!E|76mQ;Z2SYPi3fP>rv#Xk0WV^@jBsw7(1%TMmP}~Cipthb&{zzS zWp478Cz>+h{QAV_vG~v7{T#LEdwd-#T8ig_X-~61obC?rbFOeA zfI@_rQa00R%|MS;(~t0DTb(y&bmse?cbdH1IZ#*v)6F<$zT*sgc`*CldFAD$`qCF* ztEn#QF7jD}V=yJ4S8QKD8jUtI_`|e9TwLm`n$?W`?4-Qf!-cUy0gSd!4P`Gok=MH8 zIqbET&cUZ{?^H~(;ULR{oLR^06KrHuw|PH|v#`(7B+x3BXZ|6D{AgsuXur%Xc2<@- z|6%2&vj-+rJ|>h{vGe_F4NtA(`#Cc~ttGGb#`DnY=cKKDaXZBLERrm&6Q54+iWi-p zpx@dY^IO>!Zr}D}doQmSsZp~j%*EfE%)A@ktM~|og9ZF7uRWO7e zgAV(cj|9=AqY$*&_QGF16GA8)H}a|W)R>WPH6^cco_Vu*S``@(HH=>=kXXLWN$GuQ z{z~Ap^reV1X@OxKMt0jo(+I%W-w>GoI{_doVFAb{o=o>;Ig5+y^1=j+_YlTSpY0`? zwW0IivyqJA#bDxQ0JIqk{LvIxjR!EfcOUkB*?UQ@G4&t?6+#ds_cuh7?oVWO5JP#~BORtuQI;~#nhKQ-}ormYrm)dkc6_0gsJS2x- zX>Z1`v0EmRf2t(Et~ftT|B%qBTJk3XXa9dBa2h&EYXa=>sY1uGUc2T0PhoTViXm`N z@v8p^1kFq3|I32rMJMMC^S>f&{FPvT3P z9r|$*MC|(?iJ%@p#Beg-zQ2|zD#Flp?20Tr|Hp!*eZRO|nL}UyBe}BwPvy$c+VaGi zx26@aKSi2c`d%$*()E8JO`KluFK1JoU*GSJXYShW=2R$i&@7<7DfS#@PIbnvo!oje z&Cn2xSmnsiwcP!5=gIvl<|F&W33a5o+3EU0BWOuie(?6?>)+q0*p2M{c)3bnF-0`C zE8-D{-;+6}#v>L}L?^onFSkh58bsvUb7B!z$a(mSwq>(Ee3Q44G}Ob9!y-;w=35XidKE&dyIR267!fZI0(Z=vnr!Pi-Bqm76Y9L4c$!4e@NT zrS-tEsMy`hgMrhQp!X7JqgE&s3(>BhT?hXTua1?Ar|os-Y-!J@uW{^c=QzHve(?}0 zV_SP9Ho_^`*4M2_ZXw1ik|8}-kwk(ehU{&igWb?Ay3FxyUmaU$EMG4d8eeQ*P-B%- zrB!a+4#C(qr%7eI=7+zLOR43%C@<+_DlBOcRqbV2cIP}R&_-3vrOsWI&DbVqdgbRq zxf;RNkU6nzQ#m>+Ys_{=WMqJYU#@@3If}jP)Q4-rEkb1$#e= zLx@NSehI-Dx^Esj^Z35G1m~Ik5j@}7KL!wbf8T*crlHcHRgbnl{LmVxX1~=|z6lR9 zAO5finY$b~$kJmivUJi2ReQZ`SXr+_omqk0h%ftWyQCtv!ZA?7 zU9tHSGh*{MWLL(EmAoleT*WI+DQ2%*iKHC+7+&sJSc*)xWv^J77K@ohm1f%&1a4Vb z=%<@Fo9T@FIko=k?NIyLpp9+w?1S{Z^c$%|&iQ#Q>8vjWSrcdMFAey5;mrFbr}0sN zEGM8X!`go~7H?xQ`Zr_o7Ho(CF6szh>a-)5V#r)}WH_7XtUU5HJLt?i+WjQ1a`qi< zh)lj;yRp}t-oJiPN3IL)5}nqA2mN_i!MFPDO#rC+twMiGkM=ZQb4q{j1Xy4H-m7K} zEjct0HTs6LEZU?XQ;U^^wRi7hS0nG-W2feYO_%Z-Nfxct4dgv>>^9#r-F#gaIo()> z^Y|ZwGzvOf{^;2@*0Xj6ZES&8^}b;PC{`GR=+q=U+o&Z0^HrZY-|2JwTDHnra6C&x z@CoO`<5wUUJt2eho%2r&MeqeT_=L0J#G`E0j7!t~m;sp1wtdpflAF=&y@3S-S7M95&Rn#P)sfi7Eb z_6?t%WQ8pgq@!vsGg!0m;zAT_V^>V41&BVTt31|v6peNFUUF=RY#WTsQalLplQ4igxhgyqy$t*oBJ1>e6?RIQkNn7gNqsi>5 zh91S;*aV8}iWnMX1N^X!$Tc7&KvVHm3QMZD3@mgyLf4gqZYE_yiZt;TiE~UAsdo$= zU~a%nfhodED8JogOBtIen$%^}z@o3zWjP3aQ7u8_WNwOMPnVv*KokpJdx_Bau zHED8eixi)$x5XslItSd*#-2J0I4%?KAy4)s2seo@R05e;EECBJ~VVoSxa`s^PyBj1}kAmf-qSP#Xf`m9F{C;H$pFik`sq9lokDdy7pL4>w`ib>f64SschSCyUpcu#xc{Ba&qI z!ZI_$6tP0}?W{S3KLCbqVj^0WNH7&)P{`DE2jH z-CD(PvJ8j-*QP9u!iLR8MN%Ldf=E$EnMLInw_p#j%%WhlxuxbsvaKezaz47vpJYWW z-3ow!yIRV2ypt`PFsl`dqTkCp6cQB9{g$NN|D>h9mZp$*; zjwV91vDe`xRTijtK6@L5h;Fu*yjUiSpW3oBns`wwVkPWq5D}bKQi(z{#kuX+fOJwL zpiahzYcZG+be`W%*1x75>kTxF_N*mdIqg|Dyl$7F@)_;f#f%*l-*#a4HK{breekBS zD+75^&8ll2Bx7|U>~W-BY!MIUu$3p}sdI9ke{^K`#mAvd9(&WoR~>=IbaA{RyCky8 zA7@6=A&Oa~C%tE}NDnXf$TMQO+lY!YSWAtHi0{r|jX*==%vygCP7;k<0C+NuUaSRFi5ayIeJUip#pPbzzUT%VpJ~T{m_u zwUYLcV=dV1B0R4fYvxKZti3Nt-Qfo$PgT5<`uIAtL^SV?%|TKV#rfTtT`SK3$}8g_ADIdayyPL})!(Td0~H>9wJJ zXitV?J(I{IUB*=5V9j9NOGa-3hk+?oVRH%Ic19Gn9}3| zirdHZJo5mJNz#pXVWU!hMH}H=vjjn4t<=ny^E}L|kawb?%7Wz^&V}BUS)p3~Y<^P| zd&AHcXgkGkZv%H4=4^3MUpYnI(U%RXnWwx-7CL_;cWY0F#3#LXXJ6J86w2%e-DQUu z*pD^o{gw)+4J{wFLT$tn6Dw5{J%%kkNN|4}wKF|>naHMDb^1$pAaMQ|Iae-xoQ8r} z+>d3~i_ZoD80@3a1 zLfM>u9y>c3%h=GQMyOBrlURFXrjM(MZo3c%3OA1x!Hd{gfk_}56k2Ha{V!tAX(Y16!Hd|T zn(nJv9X7Jm2-d3xbqBhS4`SP6h_7`K-#>^ohU^LsX6MFImb)oe4Q8)GT?$_UAu>bU zbP43{SW$QhdzXz9121Ly`szoC+~q4TWgm0)YWc*=SvwwsvDt;O=1R6U7F8Xuuz|18 z2XRxrdz%gPU3#YS;-`7PIC!S}Q{bS=i>M3FU=Jy`E!j*fyo7JEuUoH^>hfpTv4Mco^m>-2Vq}W* zhO&SB8NhV$+VyN{lU-GHSPhQf_(sQYRvp1P4GOX%he zthd;IBN%j|@ZZEPw4ta2OrhT$@tCG#-0nJc*p{oQ>9Q8c7t~S`lxyq?U9PdkjGNds zY?b)&rkH4Kcrz+qB_6n$Jtmj!GjCx-T)}$nE$r$>BsANo%e~pP0<$Y%VkU=P?1+uG zuuFZUZt7y_Eo_i@=vEx%TP4Qd%GzLAT6QaY2(O&s>^exyqT#13&UZE02IV(FmbvK4 z2_%~@3p%&|+FhjQVQoKA+>yunv0dV|Ja!()bRv(ni%}?3oS!c#baOtt5IM{8S@#r3 zx>mHPm%`25B~IjHLc>aE1SbC?(PIRg!G0{?ID&Q1o2-3W^3BHC#5WjicGcTZiz0TR zwDgF`J?Q^s;-!1o`8AfesnX#tW_gV{@CB`7m3;eiVHlVNH|V$#a{E=}g@D2y2!R z)7fH6&3LDmKEkqd55QXi6J;3ZJm6p}RYRH)T~814ERyr1VlT%UU+VI3LWIFp1PWMF z$zp?MVohU=XVYS?3~R~MyG$$^&nAhHquEMGhYpXjoxMFji)xunVq3F%oCATKY>$Nr zKiRItX6FQMC1>-oJQ|>-Hdghu62+h~Yzn~b98&{s^M4=Q%(0-_bn)_7mKU=`igO-k z&3W+#aoyvrv$1&tINibwQ2aRiwEjVa?Eo7HL>TW4yWigw2 zv0MLB6WFh8n{b|BU25j0nCZK3IAHn6O$_rh5GoQsJOO!8Ci+c;Y3yzB#6w>lQwotpfFHAj7Ut^D#VSrellwy&YQ#@ClUCz_-v9K^Ft@I`@)k0)YuSh%wv80 z&17~)jFu)eS2Pgb5R(|*2R{>irm)TYNtag1bxv1-l4BbckS^ zVi;Ca%1qI978}|)Hs1h|n42D~rf`Fi=7-m3v7VT*ewoD%^qGEQtLGdbzcAhT^6ZL_ z0ZKXtcz$8WBy5tpG051-kdUD?`bCG?tXa}A*mC5~fO$+@@iZ%I>Xn`J5#e=eSdAB`MRJzc( zMRU>DpNq+JStq=Hod;cb?96#A6G#m%X6fRLdF;|tz`%7U8DOL;finpJ^ZY#4t^Vim z6^49U3UMgcUF-a`TX-teeAKkEn7wxjT$pUbE?mex33uUq)&;qD&Sz&sQ%hSQ75lRn zu$vJ%djacq3JB@J=b`3;IJ!VKt;4ekO&k9#yW9AY0bQS2A=pB8H3s#y3)yfBozM(M zRxLkTKdZK%s>=-G+l81Ri$sIxSXRv(T#?}_J526=RlsSn{L1H8TW=07e4b(dODumL zT4#|+S;X2(+eTfg-k!y=9TlJ#$T)bBr2OrRuy&g!_Ag@5RBT?+xx!R8V=`XI7cF7U zkzqgymUGiYehJHjB}wkA*(|Rsdo#mIgVm>4%Y!ozvd=G(IBzOpm$}nX0`ZBw~)er)S6aVQngoEf0OtV%}Vn$fG{zgOa ziv8yrLieStGcde&DeIU;-9i$Xx{Z3W4upS}V%2Y@D!ut75R~=J_2Q$Y?0qK0$X8h_ zvEmiB%>5o76Njt6lp}igtL!jaE4G#~_%n(dm$CJ+3{`T-m-l)N8FHscy?mV?Td{D8 z^d*G?o`T_t-8nKdi7FD5L>PBLmR}C%(&}|$VL5hNN+2BJ*!_;!TF(B3+OAj*Epdw2 zx*R&|6mfJpdoO&L#LXFY$vTPLM{lr({f|O|cH$w6TvV}YhljgOa@WYSt471}EZwu@ zmn(tS$0aa!XV-eZwU}=O!=)P~-^a9b6aBb69?}t7TPw6V9-^Gp z@lX(cZEz z87#KV&20w$i!`yatfp4f3pEgj-o~aHth;U=DkBDe%B*tp9fnI?3J+1u;*wRk?x93} zldA#zkFz2H3#Un7WQhdHVV|5nm+yVsY$VvWfk-vsz4qP5DN2qO%hv4;TAC=T43P2UM3*$|~L}gdU(=c(_Yu$eM zYz=G0j*DY!*f*B!jz}Xb3i4;gJENJ^!iva{IQ||xQ=?qvXTQ%1eS{er1$)uk;{A2Z zDsWpzwUaYoZ9HqJLTNQvQyXe1VP;F@>6-_>69b8I* zRj-M2Y1xL;aVZHIaH&cg7bNFu8W~0?k!O<=uv3v%gE`d3gjQ*k7H=bkYIwFh@;R(@ z30#`wa%pmmOHqj|D(>0Hs&%(-#Pyq4x<1Q|e|S@EuKa4#NnD90#4Gms@V}2d`$=B!GDeX%vm2@Q!q{czcrpG*e@Nb5$ zv3a`(59<^O7tXi#dU4)nmYKbIXQhHE{}D^QZzL?Nq&|~gX}(Jmc_DVqF@d0=m0}Wd z=Wau8LQJ8fxQh8vU^wiWb`8Gf_@JfbM@aA5YD5*S7Z#NY(A%+@H93P~q$~kd%>_XS zPG&x>dGxT<3+RjuQa;8S3Jaks1C_Sl!WtHg3qTuIMvbKEq8!L!6FlA|(lsQhs7ch$ zsL~&kDzm(K2>V}j?$f4r$_Fx|wcKkhR$){jy%q#9b_qOM5aqId+1h4kZkS{D6gAvG z(yatNQ0%Nki3%+9Q3kZzm1Lf^X`oj7R`jbm| z9g|n>R2&yT4>2TTk4HLSSSWnA%OyS=l5vzdE?|4TG?KcBj(eQcO%cFA3ZoUjpAIZi z51qM{MGN9Rgac0s^}5@}sB$4Fgoyl$N6Hh9vir#T`n1M-#XImq&>f2}q9;TV2nbFZ z%`ZkQ1?On;Y)TCYIT6mQ06S{PEH-Y%bzz&u?yW3$$h&arAr2&mGMqI_{FjK?1pu$v zRWU?S8`N|fU>0;=cg*E^7{Zr*v<5rPz1!GjHytF(LUip%42|6`|Uzn!JmpFpQV74wOp6~ZYM z%Ae27bjXiC0aKR+tj2Ra$iNXfStMvUc&BEt&gop(`YG)xSb4A-C( z8mGwX3KaDeA%=FK0hq20>M63^0Vtz7Fq&}h1uiNPlXtM}0x9`C5y-v%h~V%p7-K;Y zG{&;mHuCeJF+vR>n&5r{>J5p*$8O78VK>IaYyfR?EohG*ZE+`CCSLYB#8|k?0%sNI z3kU5LNiGZL266b03Rubbr2fL1eu3z_lVxWw2%0Z~3Lcvhy}+iyS|eSuslbp;4`A8t z$`Y|`C%Z5QEhfVcnue1tHSLcOJD_QC}UT<1bOerxj(hp}v z(0iJ#j7;~FNfo#wNHL!lk5saDx+}-TE0wHi0rd^0UAGThY7^KsANYHlMq-Ch}7yB_wpF`vKar#OvHZ#fyel-pcVs?8;wL=(w78cOe!YQm)heI z*UN8HQ)5{%gk(wCe258}T|Gi#S|R;dAwJY(XE%dX2Kna1y9-&glfB z7~#c^W4x~?Ady=cHny| z9#mu@1!jpz6-(6@(|56GUxiFn^u5{3L~m#uhbU8}OejBI#fGr+))PV3;z6K1G2@GM zRE)7aHi(It+B^`Y-iDajxZ4#o|J81;)yq|nue>H{u^T?w-!&6y}_ilzM8b8 z39hXqvl3(@M+_(S$Z}te;0J;u{0(6l`E(D<%8A<^>BCVPB6%-s(|j7T z!484ZOA|dxv?c#MJ6<)`wb+dwx)*y`hsEN(aHg3nj_qZ|mJ2^S1|JTICxKtFPa2l? z?PG1@zEHR}Mz#bx3tYcRemiJP2L*Sbf;jfX1ES}5?EZ7-0;zV&pr~r={a~e3lYJ>E zDY!#70k6LW^xJoAm`8+SCe=@F7h{S$3Cjofvn$c0&-b%gHBAajlAYS5iQmg6z41Nv zMyHCwKd{tLEsBo(0XvM-#4|rYgZkim>G&#%Z6Bt94}Mb{-3Ys<-{RF*po63cpdFFNOa6FR!4e>K^^ zc?Yl${it~60Bm}5#r^|qZVfTCKOsixK}n3w2U)Wor{Fp^0av%JZsitEs3um=W%cJA zVmH*-@FhxtC^S#VJDAuZ0*l1*Lu^>HEmEI`ijL6)p9Av%opN@!%xJwp1Qc@*fK~q+ zZLm&h!}NqUaBRJ8`iT|7n`Y=?)|GG4#fegXhA2DC2B&QzZy6eh?#he~SDRmn20z2E zb*`BEGkYrP4whor+}+VgjL2v-(rn|7#v#A3X5gKNe}Tio5i$E0);V0UgILHuS}Fa7 zD}P~wT$AltM_5N>z2yjdS?<6lgGNC+1IA;9Cy3SRC_91-kzd&vx-=T=;)h>ZL_CNH z#J?n8<(0pJQZB@fze~ow_ILJ{2hnet5~A)xYTro$2S)67Q`QJ zDuF0AV06RgAGq9r!b^3ek|>7d9xG=bs)5QLq&+lrY#tn(3?#xw)Xi!_n301qWv7`B zrWZ22=v|b?77DN~N+Sd@DW=*Cx?WhWoj^1?DXxk`8gIu`oEzY06$EG!O2h-#j?tYY z(3ps)Ou{LKo4MEzbscvvb%Dr6EDDA)ckX6 z3;+9@gi;f-yiZv)uP|j1yM4TOV-FW}7lwK()ri*Xt-@$-b5KeXeRX~oTJxZe+nqJ> zl+K&pBnzOw%z+km4Gf!;H2`0@`WUhZA0|$H008W^w3Vvc%78FVD0w&hAuMMqNFjOI z2k1&xds{_yIxMj%SQ?<-Mt+`Cpb_~7SXyr*mmq^)STa%dP&*?j)Gzqo2QjJ=?PHvS zN!{ff6`T|QR{#h#yhHBeU;*$B)<@_Bun;yN(Ww~me#txV1Iv#wPd4>5agITp*B!UDste}T;`W0YNl)%?i5chhv?RZZp!Cq%sT06x+FG(*dVlX)k*q=b-GOQGvlenP4qS0nQ890qRZ28dkm}aGr z?!&;LR@O<5k zte@$g6GG8kB0=>bjK%9g-cn*oiLH2_2<>tLx`m3m;7Ld7aN&(~AVq~(w~&~Ek_X1b zi|(eA29CcQ4iJKg!=ct_=pP>rq5tA=2%UB~h&f5T$8{1dI9(8P(6wkPFxJURkjUF| zoWjmUye)4hBi=S>^b<#WgO+%j7!ll_7r{mTmQK7ax`g;er(x`%G%^>^qyxnX zj{BT+t^XsmkOmEoIf(cPLlNF1wcq_G6u9}V53OE*V=m>a})REuWdFCAM z!mJQQCT~#SX0x@s&2OYNAF!Ca1OqbJd^N)wjOHW>jj~}_)#Op)c_>GTtV2?P;uq6+ z#=8VFFH$!sc@g+g^o3DLW(BZFavHvYCe2QDs2b@;(ns8u!W$Q0dDx0CWs+uYQvmuf zV%sSdESlm9If*0csk;aYEi7KZR(ft9fyfJBUppnQm7?S-K-4~nC?BFA^AH7@hf9_4 z6|I-64#&QG3JD@NZK_2O6K4VO{$34S{O8@V!5rI%^F_pYGKRT39a z+$@x9xvGNrVgX4}pE;K%FWGOg9Ju2yNz$FLqFESKEsn8Hvg8>z1?2Kl{+eOngF+xN zxj?vyC3Se6f=2EUlG-%D)@CPu4H|jI?O)5blO+(Pu5&Y> zOT7;E#tWtnx7`)-W`h>df_S?VGI-6FTx*gf0JfO)sEfkH7Q>12Bx`XS9GS>ok{@Z% zA_u2Zgb0K|4a3nS_BxHWkLY|$ft^L;l1wd0wvT33Vm#g`S2>qPO)I5Wu0oyy;9PFM zAFGR~jC+}A&5$tP$%!?l{NdolX_UWS9O|F@&s74i2%>hhtE}j;S{l|VD-Bn#fIFmC05R-ITT-x5E+-zAT28bs={XoAxQN@v z)C}PyRn`F6kg&E%#;?6#^^GdMY4j8@M@E{oLE{X=^Oc+=6uyP2a39VEU zs}T#67_Jt;Ohz#okf2biLZth2U_s2@&=LdCc>_>xLhdB#O#n$0l4~qFhK~6W#Ym(= zuaJufDgQ4?%oB*`!JH{;fi7*%1vdaA801NTl0GfCH1E&pFFs7;joa1g08$D3q_>~k zcV2=>P3O=&6MHp5i%0?rM0(O3Nn_A)9wrI%x0xSRvlQ?Xm^Xwe)fbVo8`=M`I*_}z zB-5d^(oPQM2<#f4!U_>`(4(Wnswhk6Er%Li8SLk@dSQ6M`l8^azhnhp>TQi13tk|3 z@R#jBWgScTVJFQ}l71}jT%Y?{>PnIXa>l?4lB8M4TwH!>27i$iyqS=cK}n5>ZuM#G zV`7k6MK%`CW@0|*2V`JHJ}h`^@pd54yK^IOn#(RGlmoF5$0m?&qjQB|HKB4mNUp$M)iUx4Q~y^ zX$>UXgSi}tCKkDifQrgtDs8N^2g#|nT5Ca_{7DK~x7RyzyL^KpR4Kf~&bu!!L0+_~Oeg@1OSO23t<_@f5 zz09%!gz#ArABk%E%#lk)s1u}8(fSAq2z>^j^`kogt`+YLJ?u1iW0@WkCv%t;UL@Xa z%DWf9q)&nj4hY2H=$KeZiRxjADys7^rPfR12G#p#xJo?xddmfAyzv%^z&|VMUNu2^ zvN5?AKxLt-J3+BP)#wOl%Mzo7UVO0^51dh^Z3J^Xt@SngS?Dnu?i}%EP1T(>u_|oE zvvQT$v_i!X(1H94@ihd1X3s;{NEMJE$R%$Yq!#%;$!VR$2~{#jq(pd&fy+G%z>yNe zS%it~Mru3^t;m{#c7pU256!8VG$%>GShA#oW><(uBYb*+WavuLzp^=?;fYI+Fa}U@ zAU2V45_y$Kw4pA>27yf>XEj}eH$cC&7DJxBFaE)YnLT|>C#eyjB zjx&dqQN931TZ6FdRpJ8Ruah+)!YSL9#gXJ8u(PSWqk{t%~ptCTkwIA7>Ro2p9H)Y0q+Cgx3uJ0 zsfqGChf>Z$%G{Q`d94(SQnHZp<;f`~rN9;@;1hT)+am7B<}Hl%UsjNT)Dd&C`EAB? zn-L*c#$DLjGWo=@!Q+PpsXG zL}hExp)J0A8QFA+0^{WfX1o&>7gCUx~Em+Vf$J zzkrs}4zkB{FM{iW4a;Ot!tyEti$UZzd#i_;on8{9O*GQ?7bPenIAGS_6v--ELYWMs(y+eXR>&dPg3q z8#B|w0K>71MthX+cSQ3_#LTQI{ZXyYL6FAM<<{-kgA~>&j_I=y+G&75gz=x&Z+MZ|zQqi0R$=5XAn_o!`S6 z#n85BQ2`4}g~T352619ZtY2cJ3#TXF=x)p4=6ZYaztP?DdaHH#vd^~1zKaOCWdZ?; zZL!$4Ogtm{I%Kbi7aO}0#oE}%-ae%mZpuPZj=dQ#7viLM5MkM~D$-&xhgTsc+nz(< zmWkhc@fJ7*6t($7F^Ly~#4E9RZpI=SHfxU1~HJKl|b|UTJ$}Scc~FaxPk{vKlwcV49>l_IUi%r5d+SLgqtXyKcDx?z%@va zd(u*^(t3@IpYkT8y0r_pe4SQ>Xl~I|uHy;bXJ_(gHdJN-OauPrxMI;U8eNlGs zV4jg8^PvMNErhiD2ZOG%ax9e+E5|%ad8qD{gCTgfl;e^`h&GmRItK7nv@uyOQ6mt;4-2;?Rgd zz4C2W^81+a9>dBJx|O*4Dh#)E<o8TOCX0&%%}MM;;lP*Q=C}c zdM7%uM6|t&_rmM;yZCUtzPO9G3%P2CL0+<&IM_U?zBut9inkfbTO!NgdP%9OTt|^as zd-yO!rHtYi;Wcy=eha!t{Bx8nRXhq({sZylDE=PO(5ws$0IK?}fAZH5GxA=k*i5;X zXR;;YUnBS>h^(Pcv|iV+{c?C8xfAka+i7-kq2%|X(~UC-p`wg zd++D%#iMud4yUBG{aY$$;z$5)(M0FRtamHA94w0un7D)0Yf6^MFx>;CWIU39mbxq=A+~-)%aySi={~C4z zXvT(x*(?;D$G{%FL=$WxuP+`P18K5JygY`VQKQL9?N};!Sgv6ujnz((I6emBVX?UQ zF^GscV)Em>qgeY>ASAwij1P~v)k0@>YsDl1XC>4M>1(f*wdRfG?WxwM$AZ18#M@)} zCoY(I9?sKwtn_rAP};@$qH(-AmHy{A$g3(blU}cj@^Sour0EOb{IMS%Akc`qj_3cn z(Z%IpoCJUXhhHG0#E_BOB?rCDkeD-=cM*id7t^*2Wi9jk0MUpT5TuEeCwRK(Pzd>6 zDBdaLX`w{$qO#DXaMA=U+zZ9h2|SfDP#3twSU-VB8~<$$&t?Btn<9FQ;mtswa`b6u zc0&d1G-RT|gqY1Oat83x_98Q9`(y&0y+%qScx!tHc7519^-h_R9S~d0QS91gVg58@ zzmDPE%{BEYnpni_NxV^wY!8xbhqeaU{^2A(GGTI%7jgv1SOl zMPktuUW$uWE_o6&iz6O-k{^j(8+edz!I&vVPvvwS&)lheQ9BQX(Gmp+el)8X7aEac zltIpY42T;(#@;a%7UG0EZo z!1WT}IQ(9`hD_&?W|dSs>A=v3p%KSJ*iw&abmFr0F#gE9MAL=3f%j*##RVGxcXoN{ z23`-h7L>pJ87-^U2)xtF*+w3ui&jIM_(kW+s|;e3F$gX%RV6C96v8|StrNp87-3c& z`spg2)}a`V*etY5CcwRKk9cMiZ<+4hxq1{=ueut%#87;-iNBTne6Wv#zx8!*v=^AT zZ1fABBR>BEvgXu;ZnStf=S$vFUrxZQ#Vuc=abv}aFQM;@758oCFSYmX2X=qEarrJN zsZ*;!r8RWY(188K_HZdA2+PDJTOcX+ibY%an1V@k{kc5BE5As;w`Wl{xPX_t71U(mS;c! z3jS`W=os*!ACAH=syt3#@PI;{<_DtcD}F_$cXO)S_}Z0=cdB@6WAWz|^xJR_9MyTN z8d=JLsq2VMHWw0zSkZs76>M@oU95>Z)?={24%Z6SW#|UinG5u2z&rtk0XM1V*H#D2I;`&`YRlKpCXBm|nD@a3~A}-p)>o<%6 z@k&%7(QV(CqVj8gR{gaq9U#FEu+mE-fq{)k^GR|24j2H&(<>FL8}ML}IIx4~=9~t* zDE~A3MsG^QFYPR#TtQ7Xmr)z1;uCvq)L`!ZK#|+R)zm`t47IR$llWvO2K8ETU?+4e ziB}g<@oGpDZ|~*VZC7ss>9g(qc*!vk6X~w4!G4W;rj5NEtp;1ZP{}8RmVH4KfEgAC zYekQ*d6vEcG3Gk4VIR*KuyzHAC%ILA!DA}VK1RTaTT!H@FA{s`PlyYwANdaJ%O}PB z?;u~s(+kvuk_>8o@D0!H7^7xXOX%&W@6YKeI_|wm(~P5zppMcHmli<@_g9lK-L zd(2wB8#k;IN(sJZ$3c{^(E)B9rtjij8!4&t}{Jjz$>5lz0wRP>iUZj07G@aCDv@SDS) zM=S3Y`-deKP40O=fKqYmiMNIn2RLrd7oyH#-Y%2FijF}T6(HTT}nJQwrz@t^rbOyW=c!rL|RZp$hD9MqDx<#-WGWrW!D z3(u*uwXW(bP#<9rVG~)pVT+Dm1XE`|3RC5x5!f`DUmeJRT3xf~J2HYd>cjJGjZUCK zI@>-Ii#04xa59f}QV{{SJK9NwNTekTDW`Vz-uQtUxp3OQcl*f;r?6=It#(!b`^lKd zv8g0_H1wsP4PR>f;)PwM+=0mqs{Zc)l;@ph!4=K<(2ih+R7Svoj`F!V#Ds>vroxZ% zn(?@0h)6?U>i-(xwgoS_{;Tq|Z4mM!BhTy%wFAPDR%dt^Q6-VRA|!)?e1ejIbulEevjv5(b!t2(fr#%DQ>=~=Gs+Y~VK zTpZS>3+^)Vu+v6C>9ROUx=BCHAmX32zAZAEhn65TP zcf;O;gWMDYz=kMFSL+MyJFTe-DI#D*s3)#FH_4Ym+uIp1J$M2}97#vk(qz!uGU5}4cEG+*FFF%}s60nMk zJ=%zsSYg}E%a8+SZ;2SskILcZNg?J*A!aFY#86ry20Jzt2dR-5LrgLQ5sY?lbXcF^ zV=5IOv)jC}m4jC}DZpWSvQB#K-{(QjB_83oR@ z!fjN`GjytnY2xl*`6bCe%KJ=kB866PyToU|^6{+!g(v1T;MWBxy&y+mn@vm+kNw8~ zg)1UY{Dui|m&pB{KL^CN|1J^x?RSZob&O9i0aCA3@Qq`z^X(Ozj`7#*nKX}-V2$S5 zP%971J)mS5-t0*~A0g%ZkrFE-SwJIG;il2WnOP>v36e z+6g{}$Q4XXG$J8t=pgK><40C%6G6Otf|s6qdQ`)-2l^+tCZxH@&RD88Hj2N&**DGn zX2vFUNR5tyojdFZbYtou`J20zVNcqPe17*=3~G*tLf*#~YLK;rDj8DWMmgi9T_|9f z--vXscCCTzZm$pH>Oa|n@=aXL#4Ww$hcxvNGd?6#g622n`*d|KqqBVA(do1=4tb>7 z(`n5^PA0VcgRKl38Ks8WwjoZ|st~dmXXKlUBGRdk0ZDPtQ1K&FqE|r8ZMqUXA0mT_ z5#O7R9S)@(CNVRh_B3`73LHpp52*jb&i;^~x-Zj3Bum<~R4ikne!>C=h0LktLzC1G zSe;$cJSz`Aaofr>SBlPIwLNOSHLUiDrIO#2m%74D{VuFtRg+3$PL{nqS>0XWo@BHj z?9g~hfFTXFQl`^oUZkKsK8g|17VpuBXookhmy4VUbOLrE1O`Dy zKS;3wh=n|wWY_PHIRZdoPSUM2&B-{4XCFhUCcvmyUNkjJ!MsFAFx;PG#q|`}W_JzQ zv|vxQ^j2JhXJWGg1fD<>B;ze4W2W~s0WyhXA++>||BtqJ0ko>B_W$?ZbDeYc+2^$n95@fo zfweaX2LS;^KtVZ+R3I#|hgrY6+Uq{R+f_58GB+tDbhrWO?y zrv0+3CY2ecCY6O%$kEP|Dt}5oeWNMl`9)r-BfWrKQ}X3{DeOP z#=uUCQXE?|Gl}2V?tEo|ug|x)uuf*>b`i4#@5H7fpsxpeT5eGtOUBFRPtE)PO zBMT)U8wf?c6lI|VLG(R}$lI2=4c0y zg*2cl%lOc=%zK%8z2ARXY7fxq7rR`StX z3RptR<`*_dN&pGgbCu`)I<7TUxPW_}ul0}5^H0zAU*xao*@l9j*Wm)w#^EmPP#eY+ zs=Yq?jCE5j$^jD*57So;=RQfp0NO>ZssDYGVm(9 zmX%6(=c{dmYXDL~VXr{TC->-{azS0?26D=G7NUH`2D>NEL$ScIelBnZ9lp#%n=wCm41yUG4LI9K06zH;jRK66ZMJeb zUyyXi3@UJtQ@FgM(>Q}`|7R0;!Sl^uy<2|%6oAs@Mik!3qdE-L@wA5KPgH8SuvY1B z)m69(ePPSl)1NC{*ADC zjmFnS$F(^xmoN3HikUkn+Aa^^7Uqy2Q=ky0oOXhu(7;ZLd5ut>=Fcu2zOcGbaS}#C z7T#DLzZ&`=GQWa4e|+}YXIoA=7cHq+0g^5pzos%?NPZ0n#_S2#pb?h4iJvh25C>6} zit8s~y+|Bdz$$$P3W5HQHlw?z|3$Ze!{4&FH)-|aVSJy^d%@D$dzY?z&qeDuY}~YK zUG3rp?trkJNw0*ABIW7h;pKaQR6G2?U6f;EgZz>*)A+HE5hT$sFcd1oQuY;bU75@q zn>?c&R6trEki#c*d1Y=`hJwOoxf^C)l{}IOY>$p#T{)V|;?^uH7Q|m1FqTZ@(7u ztFn5SGFfG6hsj=szueK>OiLrB=ZC$E@`5m)1=ue13lDGDc#dAq6*kS)o_V|IKhcHu zpgsCLH@y@tNLfsK$VfKjiNQAa_;UFHMniy$tP9M>be`43swN9|iazmD!DKiUt@e6G z)ew?3E^1!W*_?9)=km;IN3>O`3Yx|K3;4fV(Jd-!Gl?LQvrmLa6%FAAc7KlRsU7)& zw#c^l(-(nYaW6I%wwN}H0Kc8!NYa@MQ{ zVK|0>3!=_hQ*Du8n-W;&tFy_`cW5jWmN^TmwGO{po#&CLvD!*%5o-4!GI7VLI=VB( z!cT9N(n0@FNqo%Rqv9ldbV&OUj@g?)S`A3%B5a{W)DvgCDV{s34C2~jJL%ao5!OOm z{MnWwe0()tY6QL}NF{FA0ZK_oq(!ApjxgfMI~n6sx6vF37ed!{H!%gp@{d^!ievd7 z!m`!?OrVPJS(yq@S#s4PtG}qVTp35nR!W*EAwe4@V<{O~UF|ZB!U1xxQRu|N6jlNW zNsSVX0)>JGh>y})hee{s983g-f`BtXIRfzkrka71{pAEM3UYCZRD2lO2LkIfowIUl zqZTt?4j2Bp(%~nR%&%UN(#}ajebn9`8BVVgE0M(Cfe@BS)h>F7qV5`HnegrWYH+LU zGu0spd(5Ut&nm4Tvep`Th21kne$E+iN3x zIrQJkiQ(m)JM(}JRA&746gFVB_a)c8s{NGpkZn5QG%r1sxTn|?uok2iF>I{hG28bl zu?Or-V|Dus&DCEaIqm5Qlz}E1W;&T+d2px>Q>@Dgcw;2EZ&I$&;^oy|6ZLVrHBsNj zcL4*T_&hF@p6v&H7AuBnBsv2Yfs$a)*6LE5U-)M~2H%ZjsC)Clh~bTGQfj0^C%TzE zr+-MX(ra?zSOH#3*pCC}CR^(2e$osNQh;TTtc98ukLNE5j}2Qon}Q%{Bwxwcvq?W_ zxDDfENC_cPHcHeW8!5m@=$B18Ls5qf4kuB~0P%cqNbNr_1c-JQU*1yeYmw5-BzwXp zVBG>xm^{ILIwHWraIBUv{Ep=VXBZofi5gs?;MJ#&U{iy7M^T<#64bh=DRKZqOCs@9oT^fdPi>`l!O6rwIe>@+Fv)Pa zBlL)+fRmey$1(ySiy$)!$K+ngAHeVlhDY6U)GO9EP9elS@~jz$I7E%bDL)z~CA2A; z=Nr;( zbgiqSy<3>xpK7_al-Iy9o1&*-9SkV5buhf?yl47GllgSs+*0X^PyKuo$u=0Tzz|75 zK;66THBFOiWCh!h?`#?~W{e1-z6Tou8Hf~alK&0!equ-2mnS$-POBkJ)$4Hj%P>a- zdBrY;x^KL@yL)uw)`B%&qjlcYSCiIJgncJQwa%e1Y3rSBqgzka{H*KNLfUm+Y-k)s zaCGA}8y^uVY3tbG0LgkHqL-0V(r|?;cKR}MO`?ZXwH&%Z3$8kcnoDs&^0!u^AV5TZ z`s#^lQMjmbB_Yz?!?Gs9oSTk}_9rlgQ|o>Id31NU_uc>y}N@LSu_y1?iv#M_a5Ys}98ow3#rA+|KqzRs5xiZb z*QVhg#2YATo)W;TPt1)?si7hV6@sh*U9t2hDHxlZSt^Yr&YDZRB3$CzwBlbr)Ibf7 z{Xh+meOKV!SzkO|Ps{VhOZ>`D74x(=iSUtp#^-ISPb&D{&>KVf=K#hq-g={hxp6Rr z>x5mfGsy$Kphk%poItcyn`ble4R8X1_j!pzhVxiU(nJMmQs^BxysF?%<88=S&R8 zWNC$HRx9)k`xd`A57WCu!B?E|mA-IDRrOK&63EIP)4Q{iHr zMcHSM(M{xgf@Mv#769=Y2@jYdNJp;PtqT(&Z+gBSG0_t$6@xAIS#GK`P7Et2>JW@@ z20aTa{CPu1KAhn@2bipr6lvL4!WrkHi6a1L_q|)^MJ{4XjCU%F8Bb!r)IjLA2BJ=| z-=`&Wl04yH%y7PJf+R$fHKnF9 zIfav;1pWjkp#&GFfJEzYY4G>RUSrDd(JtO$NOz$}yTh;#Qriq7;XF86%reE%Z;z{vz@Qxf~;9 zhLK>p%z=z5OO=`IkLWrxGa-UMBB_Z!@p5k1 zP?RoVxgqBlZos7|+V^Y0m<@|!^k;ssUkp9g<^)09`pvM|Z7XVf#M;}$Ue#_ihBCTD zN2W^{rx>M6kRNPwgD%0hy~uz zTMKX~wn|NxXlxx#;1I2M)?3eXiKO*Zm&jVT7OZs|=f#Guqf3l#Jk=$#z9ae5?hT19 zQA`9+uS>Ax6QNKt;&XI~BsY~n1U{#)N|&H@624Gwx&(I|vunCUv6kq88Ir5+eP|MB z{WO6dff^vpr`Y^6QZ}s@iqW0vq}Vq$Nfb7eN=0GbQs`ib(ruY2T<=+HSfhsT8Um{S zO)8a4noU5QO0yY=Raqj2VTTa0jvdhM(IB=uwI} zFU;1`&ve1j_85JvZu4}3_6^m zBtEHDs-0LXf)U~?3`IIKySCAox@m8sNKVyKd1kv{oU8|~3B~g9uUd-ZYb_=mc$jwT zvbH+OgVcjkfUL~ctPC4v5sYo0>@$K|n}-@}`tOC>K|njiK3R*0T1R~k%+7&kA5lB6 zSi@%J$P8yTW9-lZ)}91dNUlm6r%LSmB8eJ&1hUNfn}G-%5K!VTv=n=^SvcAPN)sMT z+NZU%SK8SilW55G9c;@3508e3RZ%m$@BOfF5R3n(5K=xe!Zi(Fuae6KFKo_tcTjD%Y_09`U>M}W`8<7G+Na}8%APyHiiYBp@J9Ze zV{=o$!eOPh-D}>AWFw_3(Zl{kz_HPLaL-wb(TT%;YuaEz%&Qzr1zd3$x-=+m*xuu& zIzGh+4O>YLRYSYQyZukbHrn> ziOAK=6~Wb=PH;tNOI;BXmx`))M$k#4I1S>m`0jAw#gzq`h=a?};BtJ)*(7Oeu}UE4 zK^_QlZINJ$oZlYS%%jgi9dytR=zBfoJUk5Yw_0kI{$ihJDR0_BH=WckSW0W7(ev&*V{h~tQm=XhLZMj-gVf8jt86sUaq@_+27H?^H(UyhD8IKEw@j^@VRNKd z!ZUJO%bCIgLqef&yCl|7M)h_txr-r$QUTgCBRcm`%l3Ho&cgVboSb;ZPQkaD!eed( zPTdBhPGugMB>KkrSqX{KVhTGw3d^s^p7Zxa{2tq7^rj8l$h0V)Hfv|niDCbV=SGmr z3ABxOWcr?dvnetn9iBr2)Cu2$O+(U)(EDPA=4}MB&&gIBH)RBNEh>SIo6r_hGrxxI z7o=3)JqyiWCs`$q86D-X6Yo2{qwjhAb3hZUAn`e0DfBJyzrBA>vSz9{`S!^-2hwto zUyeC-v5H&bU0*58s%eT??Usrd->e-ZT$ktFUU}b|kV#Ig>8KMZ{kWY4vvYSB7UlYJ zL_;SfBWAWqF~BrYaHsdhWZnj%2`acJJKKOzvAXY?9N`FOAdTb*m7d8Z`i%Ly;$a$X z`L)y;Ihp>6>uafNj>qPO%FmHCN-OQ%@05l~-iy2OtjUcG=60GV$j)%7ts^RmlRVXes2 z-qzWKC}(+uvmR)h)3Yjlme&(zRYRrj5I0w=IO`^^p05>hgT&_D;>-P)3~v|Qcp`qm zmLLF8IB{mB6CV533tk0cwD-3>Au*dB%9r&`^!Jditln9(?&wGckN~{38Aui0Mn~4O z#W6uKKL&G9w6P(b+Sug7$)L?G)*c8Be^<}{?>nBOqKlS&B~qU zmwCy&d=#WW>R2e3NN-6}0M>$1^f;nJAy*UAD@h)xc5+3^NQ}9qur$5!TDj1dynjMR zKAcDy2OiMOM3MaFq|J$<_i{({Pgsw3stKkdW`3e4sl3Xf@;xAAf<}GHn_9sh1S9q# zo}}|;*<19EaWDp@Ly_cvlnk@Evx)!ZnHbDB)FV~8Un|Xit(4^Ucpl#|nqzlw@^@zv zyitN`h?X~F`d-UDb^n<{ZyF+mQCrxVTI!6f;SU{^b%^hd_|>9vQuyE) zlLUpNkCVlcd{9A)>a1u1>!lRc%u9eD)*r2!^f9oTH_96XDwqM&*r>iKHp&}1dPSWv zT4Hm|=)|WeJUJM%8C>%j zT%n^S@0X*ewbgY%X;$aWIGH(sM*%MbKqC^sJ z4F!y3lgpB^xuKHwx2hRkHk5^WhO(Sgg|KI0kw?NtFq@`YS6wpOsea^rH(XM*<5cKs^$g zLnN0KAmaNSrPgqQ{aR=H-4-4OkKDm=$Fp)AuR(B^ayJvw(7UY0(n-V{|2_35{p54n zea@G|tW()1X%6QCn12?umWHYsbTA4a`-l;?N_pa}TCr&R4H!u9BS#P)k2XQnvNgIP zldLpm3a-l}D^6@z0hZhZs6@a`FI;NbVv@1SBB)5|YI9usX5latAtoLd5z-3DMPyLN z%M>M_D@GyxiAa|I#3osomE#l#IZUX~+R`5gU1H;ujX^d}uG;wK!p3*WmW7EX*f^6n zW#XhahRkN+EMQiBlTI?oQ3bV>mh{`AyL`_VroIw|R6R{~z*Fivu5tdMy?!ebviM{HPi=7^@8fzMNEn!lzYmlc+aB-hreBbl{LR(8iJ);8a=z zM~ZqIfY#UG`EX(3i5;~Z6rj<~!NEy<&nO17&urMEl){XzplR`#5gO7A zr&v(%s-(~^!Fk%!;6x5bbNPmm!O5RzXbGwxG_(eq`8P)P_YJI8AG$|4+|w|_+oag> zj?drq=k0l)K=PbP89d~i)DAT%&*{3(CV1gFk>^ad$ia+ck!Nl*eirCgXCaq2KIXYw zt;3MkC;~{^oX{HZG@&&jF6^OqCbXu+t!NEb(Hbt$8t-1yS*JKCLn#5nil6?ph3ko( zEmZYjBqvhfd#joTb6FKAD`yMVzhn#3cN?~mycF;IKw+?E6?osr9>G&|wq?OH1@vV$ zDlOB?5MMw$7Tr!Lw!WA#Gi`suo(j>V)nNl8DquArQG#a+F4bH1&eY^ z`$K#Y#0%h!iAYUYg9_k{Spj;uak+%Sp$x!_#C^89)!Sd(=Qib=H*Ld)vw!=6emAaA z*m%qKmO=MRw|Lzxlx}QAozXEu>fym9#e+%|5`5{G^j178bVn8LyJGtr@Je*Y-TA>E zCtJ{}vMswKHZ{5`yK4@W(zmJ+Hm{ffGTdN~w$Gp9exJ{OHJ&xqy@Ja{Q{B=@_wp#3 z6Rp3DhLy=$?)2J*kFNO;B^%?PO?9glKYf*cYXo{Kr^FrhG%eA=P@6}U$YQ*~xA1S% z+@juJlO#zy=->o;bAYgR*NKH4}%I=EGZ5t z3-gqcsbPvGamwZKl*8S-D%nd(jzJO!kQCXhbJSNxw_S(3S4diGiPjvlaP#`tnZ>0 zBdZ4!cOH?qZ12uI(jDzzdh?NPI<5T2k!~RWtN1fVx)a>J&psIc`bhUr(|0S6(Y*+B zHwO~>^D>ZSzd58$xztsBbNrs8$RBalALEZ6<&>E1TSvLqwEUpiM}F6~w@-;rndio~ z@B4!i6RuMaZ;szG&rNOJ`xl0FPf-49eEmGPv?p)j<9U$^P(%Ct<@@8`&U4GHPsbna z{^@Az6CTG|Kh`(=CIT`mSO1hV+CKK*N7KJue~ABZG}CVVn-;%jzB_60{%5l;?f#v9 zZcy)JM-R&Pvi`hdLSDfggiz$8QA2oOzN_}$i;Lz1`*M&Y6zzAFYqaEdcr6 zAHQ+|@O^)bvEjm3Z~N#&xoB$i3>Tl=+9Kb3SWTO*c!+P8`NfCYxoo~(1qzqPGOZLq z<$IMXdecW}LDld%*{a_U@TYuNeA+_yT9TN3aiN>T<>7_yB`+{Cr;!!Xk>QqSBis7N z3=%iT|9T8le{X!*F>XqS4*O;@P|wQU`S`2H@TJSQ4<75r=F3lml@M*u;~nW5mn?Gq z6^|_iIsDBG3(+%FlFCLSKJV|%@rxI`$ytIt7m{Qs$=c}1+W5sq?)<;A4W{xfi`_)h z|9x<=i&tI)HYNBqdNQL;Jh4{7atJG~XQm+i`CE(tW@r z(jquOwLl~ zcTun)x-=`e>TA}F+IJ7Pa+-p`H(}n}^ugv8@q>{Y-?8&v>d%TE=ThEw z%Tjkme(`nsZ5~$ns5{!yaK~;=o@mua4}O)WB%Hx}+SGo4VsqeJ+?tz+YZFq~&_VX`=Qxt{GffF|gW!}O&fKo?b&L584+_?#~VV+&ha;<;Z4ddGgAMa75J zkba=|2l0P>KIqpl`4E7U&!9cBie=OYxz=eENIoP=!SZXXD0T{`(}XCnN<K$*s_gp zThq|B=UvU+R7JUj_Oz1=MUxa)ZVATbeM2jGih&0mDVz7+gC|n+j1SQHSq))^i^iNE zwVVU5H001(8u3q7H1*Hk>DpOg>#V3ImI1UEsR84eL`6* zYMm~~!@#UWyF2Kv(bjnROWjb*(^QI{zCS+erEcP@w&-TVN44vV!?JGfyhH+>YH*`a z2tztIVg*1Y%H!D5Mqnx1+z9YD?2oUe2 zz7iHT{fc(bMS*2oQe29*#jjiCCe^OnoOnxJKEAGkgc)I0*=vr z0a0iJY}sm+m{m>z(@*uM5MrRAhW5l5s?0WAIatfCvJuA91gwCH3Xf)GJO7B8CUFF1@{ z(j4>R`%iTik!8b^Rw(PB1 z;Se`485VIravzV`lw=4*x(rOo(dT~Z>9zLiM1(H#jZB2Ulv%g~)E&^a4>~m@Nj^yp?i#30TOdLf>aWA_noi??1mfC~^TE zT0<3{>C1!hsi(QY{9yc+)7%J`&!2`eGZ=r@-*vsp?v8ksJ^Qy;xx@2q@rPgK7WZZi z=!9;0yddm0g>CT@uX1OI6atHs6oNH}CWY-ODWtL|h3(;3xK}>x#oV*;bT=(OxP8az z?y!8kVr9pe_{mqhv8^IbObZ=vdyO0H8xUQl10CT|IaeXij;5_0JX!J@_qpzV-P0(p zeMl=R{_AU8zegVvg*nSy5Fyd1MdLJCEQn@3kVU@S8d?jiTgfWnB#eV>PBO*2w(U|9 zDN699-0&rC_VdT*1Kn~9w`Komr+#k(x9t%S(&kewT~AYNCC%kaEEbEsD0gspD*i`u zgkeQZ(Vwu4DgkMxpX>8Np{6o?Oi!zgC5FB##_(+~_mID1J(3iQ#9q(}?%_lEMbh)x zCJ>%teFtKaw{3;1Bg3mJtYbayNY;a275ruCu6nJjbX{4Z8y(Rj|IX+pU=mtKVf9Lg zlx@ff6@=QY9w|Da_dwgDG1R-`wQl<4&RMzX`m!=u@gZE?{9xLX;kB1t-1Ry)aEiu4 zf1rU337=llB-@BrU{?kPk`cO1aFbtE^i4QR)Kz||GF)L>Mm_hCZlx>VeVyyA+^5DT_{Qh zJ@T?CHbL}kTk^Tz>N@nd6d>2yQIKdgYIP#0mgU$@MKgcn8d%;33$b!JHeL3p*zt+C*=KQ z-!jeub!A!9=Ui+wne_WL>4;K2zQZR4$B#tGl%+@bT%Xg+T2{82F{GNGM6^xlF|Pb9CiwX0XS$>FL-B;yyCdtTjv|OB z$Eu1YAnIbW{+HLg>bNmWbCsq1w*-#W$#sNlZ@lUCZrpGi%fDK|e8CTdS(xaErECSl z^TasS$`i$~Cw}nt?u*4z)Vngm$s@kz4em{o$q=_3Q5@!?jAc5z+-VP4`XlC4;J~qe zlio;9+@HlSeWRPqX{qPF(XBjEn{_?2a(z|jQ-|RvF(^I6Ts*>_>2A0(qDxp=686l- zWwIxJ@{Mj>KlS7f)}!RGQ$*p+_oB?>p*Oj~nj9-E6@d=`!b6=f)zDP}1QGIGuTeHn z<&VHP9dJ0T1I`3NwnsI8)Ht=;ks`uYNE%aCWLStH#9EMQ6oM>L2N5E)uNxlNzNSL_ zE+0hHsYPEQ>v4DzGDkR8&>RaJ3QmDqma0~^ChVV3B{%&t%5%&0)8udNSainZ6f;X= z4}7<~;=jJhjek`)yqstVA%40mfiW%3y37Pb=qj?$}WrTTWK8 zftr!K+e=NA;L3B(7@O~oYj1WFYhPEYW@T5^R(%ldO>a9|wP7Db|E+>9)6DX z6|;OIIe-ZfUBWQHre?;H#OxsoFTrlM>Dk+-FHn zN-P-e=Sduu3{hIDnV2o$C8I+6KHyzdN?61h6=P`ZbSr>Srw41SPsMp`#IHih%e1_x zsjUKn(3Gy4)*i0oRpm=vwZO5Dpc2t3O`2W2qTe=KEeE&6@7 z46g8JftA*<9xZ+3Tkrkk55N1s7k+EO4ozu7So+r#)`)RX3WhOSz|B4|neKpA!;FK6 zQ@D&(yh{)+xzSQ;5TGBT1NgHjcr;Isn3>~AK52Dl%7zU!$Dp__25S&^GUf|S`= z4JXM?V0Ri0XVW9w@>Z)q$Axh3Xe`MKqqfwA%tDk_&#vWii*h6r;Q>!w<5QpFSZ9{l z*BPk94O|+O>~xYj4akF@P02}h&$K|@0#DSf#a!s?2|&Q3!D5jgaAQY)74vD$DpDQ* zn!j!fAs)%9Rqy;y(Vm&B%lA_swWNHZu!sO=bD$691z{vq?!FDLlPjEVrA_FS;VS!Y zyeU|!AyDR{n8-v3@g>I%X^%qa8fL!?L334<|=RA@Slin;iJ4DMBP zlS4?!*0@x4lMAFA>kY!Cl{$(A2}2DOrNaYwKBo~PD^%NqT9j8D0G|RBWU8Q7GbMWn zT@(u5S12qr$4|9ZlO9F40S-D{HuF9KCg zADc}~Y1P)t$Z4r7_ z2e%DiR9hMc=2)AS)};4Yqx~m_eMB(Tn1p_sMop1xkA0<)LlBH7N`_@h2TIbpJ}$Pa z)T%gAbk3!hBZ_P!^A=`8^_MS1rh@Beoah>O1SCdA3fo@Z$bFK)l7z!Qd9aq=SyV22 zO3cW?$k2cVJQG^Uz@8w@Ac$c|Rs^e3Bp71BBoTbeR5x7PrgaShx@D&_Y0XOtXObpuv$JyN=_B z7@e&e-o-fuxmlmk0C`6P zMoaT;P>HFC7a5?Do){qduos#DVB)LY9^ZPlJGKNVR2%^@bn#!#M&M&P({b|Kb!fa^ zYI0ick_6%T>2oc2N;F>ElksXu)NYcs{}!KS0W+GxD9SHZJ>bwUsDoL=GjW@p zrk?o2=eVIJ_8ST#@q4;l52q@-o)+#w%5wbJIqsO6ZZf&xX$dv9oIr^p$#4@o9PPYA zJ_cGNn5{%Sh%oU7_DB?j-daKqF6vHzEu`M&fuzk=i7u@cSm~JuKXdcrPoC>~W?Il* zhc`z-cRCm=n27^w2gFLh^qv>a+T)*{>!waK<8%j{kEgOdna^?oAaldKBskq3&v~mm zF5e!%<*lxQzr@D3x}JfLA%D@_euVx1AlVLq)Slb|k=x$tCeH5-Tft>EQlN*ebX9s5 z&hTsaxdvIRBYNCns^+?dYd=@mVP!BLbDo>Fpu{aHgbhvv+!%-~I*AsM^iN{zt0OE~ zlG;hWs@00mKF=+jjU^SxCgNg8IB37Fk;FPxO^_M>#?>pZef1)hfq6j$*j26?=5#7h8R738d z4og>41-JG(q&W;S0b3(Un_GOFZ+tucSMBlTZwIc$_{=l_iRyu zk%(1vd3BZZXFPN55iK;bE208oNh(1~Kq?W5fclCg!;16*@=G{?{DMA1Qm2w>b5qdc zBnL5B8p;G}a%8V87KO^>`0;nTN-qx-Cr&mdCI4p<#Ivi#c*?t6c=XRTnR2kfSuEO< z-r32{)n(zbH^8$w<+)g09xi_aQo@oOnVDkzj(54C>1Mx|T*!c$!XC4;O)wEh;-iWs zQBe|q^<8f9s>!@5fmS+fY7$S5!79lje&`dj>W}=PQ%azuqh*-Nl^3`PB|FlY+~;^4 zo_zruS|5uqyTHxJcg0`6z)k7uPL}^zzxLxNs50{!Ltu?r=)5_-OV6)OayAutg+}MR z+w~V7|9!mj-R|fKyOpcwD=lDLMlPY*SW_^8edOJ4N@4HszS7aJR z)I>D!xxWYqc@nlAy)iV6Q=NQ^rIqY1-|oU3-qwnCTR>=!3+B= zo@GpY(mGddznGUX?MbYz#OJMZC$#;vg^fQ<75VbT@g3{f=Kf&(%XRJ?{M%mp9(TuV zn;Y~RFXTMKZXu*?^JSRM5-w)!?T;xuz`a0NbuVO%8LT zb0}_iBdC>s6hHZ1_i6URu6>_7ypj$@4A%xCQtGrQTG?Hbv+%?3bHn+s#~qirALbv5 ze}0KOa_)T(?lRS8M?OSLBcU0@v>+P^Zntb01H4~q4M;1pyGP^Y8{C!s_w!oRS^kmI zR9zFSu1w~Ns#fWbpW1*&XJkW zvknminzSyjza(+|VSN7w+#P+7{g^5;@81*O z|L<;Y>2Xyd{J>S??kj_y`0z{JyE{~9+f*_h#@jB%#rv!AuP=3PY3dATGCeCl?ZSBd z2i=GB1M#HG+@b}gXilXS){{5N2nm(~U8q>*IRZmvs)aJjf3TIAM~;!0St-SrU*?u| zr4ts!)gvW5J!%0Fw)BrMFeGRL8_ z<=9Xn8S@1=PH|bwN9ANj|C07+Z*)se?y}f8$2VkMWU{&>c!CZ-2eK8Aih}}gUsQqg zLe5278xjL?ifjuusA?(x@OjmWp<`(Y2{}mB;Z}w5>6f!(T#Da*xm$%{fA{6? zFfPBk++EUE3dgLePEg0Lh}T_V<)6C3t*w!AS)q&8m$W^R5}Cf~Oje{s_7u^ZtO(N< z&=qY>ikNdI*pE$p!o(*zxnPzDEmo4&iA%%EqohXTe6#l zz%IL)1C2~?!mjxKE8Rf10jx5WR+zp@mEz{B-0}a*<477}lQMZ#tI*$-a<}$YppXn1i;STL;S8q`rBJ&1 zLvAiwMb)B=!=W%VJZMhwfc>C49#rRq!|AvL`0A{1YIYCQtMkHYb`Qv_$A?qW`)vM8 z8b@_VtE@RB2jeLnrNhG}vR1+tJ9LhqJs{*Ax{;?llHBxLG8{DYKx=z%B~-6=1z{)| z>U4y&p;M4a$?_Nut&nsw6py*u9nsd6OfV7T@ye^+(BRNZusejNmzm8=-)co*<5G&( zU+v~C1tW&#kKbfxBPc<-24Dpqr5DxaDnSDld+r9-LC$%_17{_R>^KZfEnv=2c7LI2`$Iihp&zTlA&|0b??< zL?&EJYZNTTbJHkP2!PJmyfDy&g=oJd1LuVYgae5UYxU;>M28Q46dW(bU;Ly-J?I|X6HW?zxiYCmH8{<|N5AF!;629@Pq*R6e5CmS|%srtlZr=AnppHO!{B| zUiw&X(ubhm5hc>qNMXbal>fBJ&7S-O0!*}@unbG=x1mtB0;C<~_T=PQ3gTNgxrK$z zKZ}36$sN_Y>nC*J#ynv|vp?=mATaB^kGo~FQl#{Ia8c-GMJ&v;4ioY6)7GEzYIFIv zc>l-U?BXry-K0;r>G_|=D?Z^S6nCbDXMKVyUrX;k`3X0TD&PKuTRHvf4%0!A2u7We zif0>Y)OZ89ZkX6<=}o-klWuY?gNY=v1M2*4TJ;V~#VGW)B?IDnf@5=gT^)$o3s0vn zgfCog{~_vC57pp(X+=K~|GF}m_)@7=;64#S5)ZGUqh3;63W8p$qWkVw(S}6$j0%y> z#2q;f=xjro-iMf$N1N7iDBm6b+YMMq9*VEO!OcGQsrzTbnV?l=ag$Yy^EV z)nxu{iOfF`Puc7~eF(w-0WHzz3jW`ZOP_X&>yrGm;tiqFUq8f0^4r z1pp0#9O442RMK^!J=ccXpRPEHO>F=0XWWB<1oHS@H@PGF{dNRKMhQ{-XhOjej}(xW zzjl**F~p{0i#xp6BqWK##F^=MRk&Xtl5+ggEpC24GFCWsLRG2&qBU}SFQl2NZHuqp z;!Z;rcxsEW=7G<;Ge$)0C4g%Kq?ham#=H>|^5KYAY~;pA1T8=0c7&KJ zzP9%1QvAcuxmh)Q-c4?7wVLfZY8g_!kZ~ii4X|%o&=?2Sgssaurc1`rpdcu0M`?d- zz{ZHbw<#ITrbUz}t%J@>M%Mc5a3~=~Q^L^yiZA}W>&9!y1hi6o-RE7U44?Cp%g0O> z{LbfHZx=mTlz+HDj|d>ySBSrTY@z@3Fq1Tf!r4jN%IWArje(OE!Wk2opf2^2`ND%n zdP2b_en3K^pAD@pjT1=~vyX(tH*IyRnb7ZTh0Ir zH;XTULfdY3+ZGOlUHld(Bn~F?Y)Lj?^MVvpeJz&K|}60`3+iX)T_Gw0aO{$}$~s`XN}$0lPs2~fbM_bAxY~e>u!_7^8&AR5m~|$=>@X@SJ7*&K+{?Gv zRd{y08y-4Di<_)P5>5XwK4FL3QK!pUi<>=N?zz=XUU`THHd+H$(EywAq%TxFF?&h~a;zeI}(}q$S4X-sLpvC`#=@`%;vX^`rQ}0#re}37W2ji!RiHaxu zms>pH5KQN6Nn__Rs&oI#eWN}q$tY%K+GHYynVAY#{Wv~rr(00GPtuMU_DwqpW4}MW zdt|2@UYFkOBB0lXa?%bJV z6ibXxP>crS6Nx57IuqlQb`K#oPkqI$s9T+O83~V1zRf-2+1LE9y4eZ)n&4^q4y?Q) z`L{V}&xKz_7%s*4e$~zEVcXEiav^GhVzlxXunz8WC-=1}IUUN@b6D59U06e}h#%ZV zmVztdzwC1Fp4vdZL>JYRc%H5;YBFI^n{HCAf zLRRsCuR%#mao-(oB0DRdsl>e9o|Hq!!&wEcew=su_cWc1_Ta?vWUl<^O7dtxjKxiwmcC$Z}8&7tqRu-)33tjz98kw>JLk zwD#hnf_WYB38El`5R9~ZllU^$pnUlfdoZP1u>Bq-%|NA@RDMWXwAaR`?QtjOZ;G$m zo`?z>jxivFD#0$Rz{4S4Q{~h;6 zHahP5j$61OBi3NVc~ujt*|w2OPrgz>6kxBE2&QVY6dO5C=-L7SocCS#s!jt!Il7^l zUH9@g;%mR_jw{^V96x(ha9VuC_uREjoY9Nuv*&v#^j+~Y-^0q)6_4NRF3MjLU%MAt zaY=mpUN<<+Ac4KYC6MSdNXQ5xn+DTVgAp)+l{a1OY!#mtL}Eoc=W*C zZYG!3@4H1q9;)O?!=Yl1C1ejIADKU2DSrL;-8=K|jUV{Fp;Xg7Zb^UkLNX0deOXY- zm&C8T$4%(8Ue?RrcMqcbzsI-T+;`>ue;ZsSiPyRG}l(a=Um5mVMF7(!J_OG9D|t@Y;!+w?_fml{((EW#q3m- zfq3r^$enWe_Q!tUHs`^NtA6O-H8!0{*&?t-nRZmY&%K5DzWhGmU)p~AeGomGdi+Q3 z7~Y!t-|oa=L_zb2t&ZFX3BilEaO#Bed*yvtXscLwkN_P^a}<9G=v z7RNiUli`d^R+;Vpa6exGqL)43K02je-Dvp7sXvN{P=aYY)`?4hyy`)BM6EL#N03vd z*kM!3pAV$GhC^QI>RLEv3n67NKSUPwz%~nGP|_JCqCp>^=$ewtIezk1Uf}__h|eNg<$ZXJ6GCaNqJ?k z;Mt0E_z>1{q;7!QPHYju<5Dj>!H`a34SA-J5ow{#I=YH(sYfrFQ2v}FUJ)WR8A&4p z3Zg=Ap1=~%+Q;_i(B3BvI=&fwg%xNG(jpuS3R)zBSb;VH-A>mCWdb1k0;qwHein zM=@|@tNvu($enyHupKW;@=x3+26&D-l09z=r@YiZ?~gbB)Lpx9Zw6517qmOGrYg}_ za|OZxli{2JTfs(MGui74r>|C#GQ4PGAQ&Fv?@($+GNKcz!KY98cF?au#7W=zpn z;GFcte*FN>B0Nft7EZA3bR8bVN$6jQ_x{Y7(a(S8<{quO07qwrcgwkRITv)T6Z{=W zE}l@v6QB$t${`-jt1Vvnu={pRxqmZ@Dk|e@T(>18CaP_-(5s)4;jBdXT9y}OvpE)w z;fh5cN2rqQ1BfZI58&lAjK4B}=HN@h8x~0+Q4|ai7HD<9EErKMQep_U{kfaK_VTSi zcbBlVqetAy`TqE_N1)Q3@#aU|>?u$@zNHhbp!!Ti(!)YHHu;57GXC=;YyoEP&HII$ z^7p-W!7p6c+aFF!ni?BUOnw2M_=~@Aryviy{cZ+bo4wz?qRy022?DT?ORhqq94|?4 z+V5VpGNpl$7q45Zcx!=_vXI;+V;>e0Bo-DGO8^$<>gymDW5Q7O*9sC9gN!=uJ#?tauAH#IePfX~_!5`Sd!q)waAs_i1yb3E^tZX2>j zTm0BBktlD9`yX>}uay+HOFEgb#F6*b$$Z3a7@f_VC@)lzl&KS2Gn0d4Nm&`15}A_M z(WE$sfj9~Lr<&F*V+fr{@lpo*abr;nLiLXTm~=nE&HyZf(|5uIq3i&7)GVj*DD)oMYvh zYp5&_=4{y|B-$$z57%AE72Bxa`#nqojQ0Pl@O%jyx>?7ZW)h#(JDloU@qx@L8&To1`6f{2W zZZ{ae^?(~+G2FBXCQ^pEY2-_m{v!U&0eEC7e&m4rO#XfG<-fMO@BG@0KrlLg<73 zGhzV!mQNy^_zJ2;=ur44?jEh3(FP1=6<~JtZ?Up=M(bE`l39H;7?hw>hf!Bqame{* zb5+p+iomYA(?@5t-xgjz${a)JlLFG*J_b~NF=&n$YzMG_7-Lv**-4XQSdrm?mQ}p; zDK}=21-H+VTyij*(3qi@B@ICSJL9vTa_2G~KYPkuu?VgT6Yz(+s8_qWv*RnR+q<~4 zR_$&FcN3DOtKjFYzay$%L9sx{C-PP_tFV#a1>>1RXg5e#K7RQ+L7Yd|_yiI>hkkkVSS6%AhD^_wlEmW&ueK zfgO_3IjhHePWhg*0vc8xvU&kuc2UFG1?rm92?uH4xFeOZH9!_57#zVd3o9e_%^P83 zv@ajk%(bo?yfN9S$OX0l&GqsQQ{Js9Po*Ws-K_wcR93Qk<~x;??4IcsaFW^XhNN=8 zFzegW^+cqUb<90N839gm4QBzl6#6BNo!DT7eX_($1Pc-;$)#Kwk!YoW0@>^@HT;1j zP_{}s0_jj7fm~oFAd{>n8m9jTxgqRQ(?r&EZVD$=13Z%AQ~utRgeecD*z=aXqew?te|0nZ~Bwj;_l(XJnON7nMXBHY-~WEz{R^>L!Dr&xL%-c z78|;$gEzsxjp$7k#0$xxHa^C9QnkSNR)tFu0SX z10%@_3?CRtimY+`j2r4TPC^g*s>oT&E^(*GeJTDnJ@|h$K_~siO-tHtgsKFC(Qtpx z%xLmQ&E3JX8{hF4SFH-*p{2Rx35yJ8op`Z?7nL{Y3 zL)h#yCG|Ohur}hU(FoxUe{~bbqtHsq07JkF#0V`60KD_B?&2AUcSN?yxm*vulX>~3 zCZtL0kEQkz)k95+S3m0prrm^VUrA(NBvg3QPuvMV+U=x6{VGCK`s16Pbw}5I`H5FM zA6o1!3quXU3X6Y~Wntl($}}tsxK>pT!?G};!LqP$lx2a?)ke$0!cmrmye;&O51kQQ zoiBap_d#`B%50@jA`}z=6}ISE`QTN(vMNxR*5Irs|L`OE;KgltF$%g+#)0@iK6uS2 zb3=E7x#8t24q-R=LBZP%CLGdkU>c8BV*Wg|MpH(R(~+fRNT~cxLqa^_f_<+UkQ##s zE#pBYH69EYH+SJ=mKw$bAcwv$pe#HK9YpfpKw>;7$ar8{m(_v|q7hTM8ExsELGW#! zq4hTw%chXp4EmVpH#Y@evR&@F-GJ^i*bR{WWHX@IaBONbARZ$ZR%mA`>^T=s4kruW zILlaj+*1tB7$P~N zj0bHAm2c8Q1<^2w3DGtdgH!8Tbc>1IJ~$_zxT3~?Ee272lPYmteran^trsSaceU2w zdW86)Qt;j``yLP^2{DvuAilX2d^g_zOV>UbeU0#E?3nkWuEHtJH5VG+)=mQTCirrB zU;MeY;5hW*$J>Gp{RiuA)WI8J4Z%GhY!6<9guT%YH|>>=gSU^P53S3nd9ReGwF{su z9nnM50$Rg~V4qZgt`KLt5!A98KM~n>C#u_>Ty?)Ax!kyD?(M&XTR7ACS^2+ZWpCfJXS3d(*(Mz10me|uNJo+9kW`0_8hg2^Oi zY%2!~`%2o9;15FE3@mP{LkSth{#Q9zg7HQMxOh`J*qDDbp4%Oqn*UsUad&V^+g$}j zI$}i2*m582X4DuP#sph&IsD3);20bb|1c(~4s5-cs6Kg4u<%&aadSxGK+4K{;-kg} zQwm!ij9)!Ac+snOL!rVPfkT|O6eR&C7^f6%vggN1v`JdtEPfg7_!-YOKK%U8*4eZ8 zcVmOe{kw0c8(-HJj9%UNHSP}Z2T!ZHJ;5sJVyh58xx6A(_J#|m%a|qO6Wk5Y7#5QD z1A(wj1r`}Os`1b^b;_J>j;6J06>oI1%Z*PPtrex5Kqz1x=rgYTA=BAN@NVigk%O}7 zgv;j2)6Fy>Gem(k%J*QtrldBLuU%dEj|h6iTs?POF!1L7gsqvJp?S~lA;j`=Ozsu8 zR4^K<&d61is~rqekRwQ+cV|p%S;x~ZVsza)E||nt;@)w=_=PN|iO<9NF=*r40_WHH zrpEZE8sleeu=O-?eDEnm(!0h7@9Z4{ZomhwL>H^N)A)zt(|Us`>^T=aM^2myn^OLK zMQ?CIji?l{Vfh%5pY032-aN#NF!p!!2i4+` zc>hsw?N9axi`a~Ks6RMwJZ!34+bE<;5m!4JL%%Wy{>wmcW^MPao~VtD_S&zq$$ZgP zS^t$Bl-r)wOHH*WUy{-vjE$b>on6^G3Z$&d0fh67k^_hUZAQZ+NN-K~&2ptUO2Hva zAALL01c3@N%-;|Mn2S^p&=fJ{_5Fk%aW<0!>__<%@nG0uT#bYMlPU3Gm?W3MSDmnl;^T@Wfn*+pi%aY;wq2|{}inPpZXgTHgB?Gm7_b4J-2|XB!>_{3jyhdcoVs#;8g1{VR zW(FX^=AbVp-$a{V4Kb4g8vP~eca`rUT;;n%!N7cdvZ^Er+L(kBX;NVZxm~*tSOSPFHC3AAl#hrh zdU_}=MOI-Qk4aBYVr^-BPgr~P+k)9F=uu89>&6_^5vr~sfnyP3=ue8K)M4iYuT=p(G#Nu zQr;YhBA1z3J-Bw1ua3!2hYTWXI+ne7X(d>IVg8+!;K*ZSKZvkdCJu>!Y;?)v-$WRl z5pCO(>`C}x&SW}%UI}JSGC@m&PeRSs@?1;B%We0>bE-k_E7N@ed^Gd~2rxh)r6yXl z;Sa!8d>xMw6Uql{FQQ$7rqFYMKEO7hN`I^quc>#7CgRsYH;`vE7fy^(BuaoKyJmP zY+(C?Q`zyzcU?Uk++Ewd+ra(+(Dz$GyKbkT5snl$C63DA{Et8}hZZ5`fb%vsXms6^xqbX+ADfl4@1}k*7vx zjl&`et$DGgD5yj>k7%xCU|N!}^Zoc#uu0ZU zAB9fRSx6-b>c*mjMKW7bx&B@-Z>-KEM&H*N)VsBYx=E>fG zEJ?f^U~|mapJxZh)%d_peZY&vo;r^Hx^0yaDQh8V&16!?+aa16JuRmPJM^KL$yG?~ zlB)ItU=vwP2IB@ z)JgJX6oY&qZ z$@X&54fmnT&47sQ)sKDrK{NZxQNg^ntEDh*M%6=MeCDX&G5qfK&kNSm&c7ZV3>|S( zAuLDxvCfvGO-;5TOtQ57LAAqXupI4WuNybOa`XT{u8nsb9lRLD+075;)drQwufn3x z)xagMc(BA+&%=)!+&4av%s7DDhhFZcRa}4#fisU8Uq$oSUWc%UOnyoo zsPRP$f+H3Yj&mNzopW-o`L}V6f|pFdxn%GxgtX4+Kd<=alofb!V8e${Le=nLk;N0~ zE`Dr5P(dG3z)sKV@~x>`A{FsZEJ|!-Pd=WxkX(tjAOo1BNQF2BlBT8sSx)m)0V+%- zdwF<#fO)t8g(b~LOVqDpeV1yIf!OT)ltorrAWMHTUL~RpM^r%$uxv~7OWrroYW6gw zPwdN)s}FB9j7jB_Y?Bhf+tvVcq|Ibyvohq!_A*+9+Bz*xcni5Fs3otXvXr?7VNwg~ zYy|3FHlsie=1dBUNkt6Z#6H&M^ul=y+?iUXHMLPK&=Z--b6TtAF9soJEbJGj;QFu^ z4^cys_Zfs1e=f{TcV{l(`1S&n%HAJ{F509+g185PqOH2Q=Hr|fbeBSEeUx<}dfd#e zV*U^Z4rH3nCxo?UqCt_$#;*oFBn7EJ1|_i#8;7KadQ#RxX<@=D1yAGy*~ag;Ge8DL z5oK=ym0DD_v_^T;j;hN;(i$;zbgJr#mT<)zz|=xK^VndWAw!fTD8iuqdnCLessQ0A)qUg&?9tILmZbI46MY^TI~kjqNM z1}VrCZOb0j60-vgP42 z#Qr}QEVHkjA|NLTPKU-D`78{A)WeNe`lXC!s@+U&8YB0XeEjia@#)YLKS{6_p|hGA z?dXY}v`1aK(eAT)DTyT=ZufW%j}Q@qK5D8NcYCGqI$g=8*)!IvvN9V+PY? zgGKMvP?EvgbNVY_G)Y6x2Fs_j!M2wF9AB_Fn9}M;)5Ptk7Y7sG(oI+CIPr^SZPeoH z<19CJljUc_Cpn=>%h2aQE}Udexfs7VREjAG8ii;Ga#MaG~+@~P`7(Ge3iqv&^ zJmMP220r zf`+sdM#?ue`+WqFL72eeQ$P5*NjKV`34-^_-}CPay- zhi7}p2dqt%xMNB1j{FnxB};QA_kgUAoFoJ7yC{VF26{J)*My@?&whG^if6 z?rv2i#}U>e?Rd)7H!28_(It9R*oNA%V`;GB}6NANb6IfiSMvHt%%dRK#w{-}aUX{FkgWkR} zzW2o7gyAQUN3pVCz~T~m;~sOrO>;k%xxX)+`;n7^cXNE}Z6^f_4*!+Cgi%p1k!Rdi zT1WH^y>u8a?FxXMN0~{>g5}+h>p>q69!^_ZyNuSJjDNo@cwN^u-{WZzU8hT1`RVu# z%Y%O?-n*AOg81Xz%Y(Pq@0P8=b&xD!kH>V$api-T*}iE=B0DMUjKuMA$4 zjAPpJ@6%JhC^KnvPx2cFtn4>>YW92a>ZMI$uK4l#WYzlsn~gu(8$YlzSTSS+z1B($-T^^rvaxid|jNwZO0D)+gmHDeWh|tN;t4L<{jL)Yz*BptM zQ8uCWQWW2IGDi}&(PT%p_y1$=%;Tdfvc=!G`&Om1cOZ~J0(3Va?3*Iu&cy{37hFbh z!F?O>i74(%f}%!6Ws^chjfxT#H7eTZprWFpqB0IMqM}B{5l2)U8O3q?eNWZxPJ+z5 zdB5NL-hx!;7DZ*;!|(-w+p zZQ@yOrXtOT!ngUvCUL&yBv9;#@lRoTUvN@id6Tp2=}0B4mzA zVBhf0$Ol0t`4dlkgz-bN5LZ-B*ozG^2;S;FVK7?cjZ}{83X@}Ys)#jX>;UseH-rw- za6z(`BbJTh{2pDU*wQF04A16hYK+7IT!@^&_lFPkpC7<$lW2bELnD2tO&rjgW9yRU zwuAgnI?$6o%(y)rkcp?J+2j1d{TW#TzS>G>G}hutqtfgKFYGIQrmOgbNY`q*Y@=r@ z#7wu)^gY;r>`+=+8TJf#OLml=Wyj!pM(whmSdSG7nW~rI;Xb@DH(P8x(k+=X51InT1h^aB}czzlq&6Kk5|= zC`X?F7*OiIi9i6BXb>yu*4&|1jpiK8OT=0)+0%6k^JM85T`5i``$RJf4)q`PY6}NO zmW#z;6`kZ#L%I_zMII>(8kB&MUpQA%;}j^KiU~}}{z3Su>706t5p*!Gd+Ye@kilo=bzS1x90YjW} ztUi7-zXhI`}Kr1PS|OqZDSQT~oqCFycIM6NXu^M=krBTMVqm~m$6QT{;2ao17)5gn!S z4icXOZ8+=*lT%`fj`pi-OPH|q_R@cen?Wu+-P<8bw;2|}Opf-ucCepqbLdIMptZzY zbTnH>LIF4|iIx9RB*I)DNyz1Lz>1Zf2pFmW_WUip`EwMBM-WG^s#;wqd)&xf7cqA>k{Pp=R}SZ%5_pB(G=tt+v;C8CsMk=|K_2kXEsY#_>XzU4L8>A2}p zTTFzp%aXlBG{bC0x*jY+bZk3K94uz1DXbUUaXW$XMFMg#Kj9ZvaK>?dm#!Roay_p^ z1Zn-|Ce1v191A_mv>fMG^7!F6zkB}@+o=JzjQl|n7SGA$B4J2S%e5A5m{G_3S5fYj ztpLF2Nmifu=gtDffDkl-gC?zpF!TtPBemP?o~jrIwaOLa@k(suOcQ?33CAV14&pe{=0?d z*c1Ji>MYt3!Pcn>Jcx9bOssNrbCso=Lf~k`-d4C0qJf~~#MDxl2zZRNd$YP>ZesZl zxvEWdoI`Art-3(;GxWA^>@3SvZOSoKP8_rh(-xsO5SfiUg{N9C?~bQ}@u&!X5iW@f z8Bvm8SSR?+;y8JCymB?CNh8yuN)QgIH(sP@ky5>woSjbg)7-{L<-)qiv)LL+;(J9L zJkhvXlEuu+9a})3J?(|=LB^7Ng9@g5k}UfP3fPz8M4St&;&OA#1rXU^ye`Qmr`U8I zl1Kya=)zoi!`gCJr-zIQe8usWH(?=H(Gjr}wOw(1L!l`-#qZm(K-h)$yp-AR6sV<~ zb{Y1dm!IbM z?u^m}154%}m!By7hqdD?G|!&qciqmWf&7wo7Zsx8V2JTac4_!y`QHAqk&a&-BXea6 zPxov4v5t^HQL{h^%3XgkVGWhQQ4zzjF`h`wET?!l=XC$U!miYKBDi%lMydUO?|+9C z1h#3SS?)X0?~NmF7pRg1wJ!|j16m@`fqOjxOaM&SEh1@I1P`pugi*^unB6IGfsVxz zxP?zlNB4@@e=U0?{_a7?yu<=8w?PJf|iyDFmL%> z1Q`ob8~Cw;AN*XdSbZx46b9?%_ez&efK`rL!@dP*kUnF>eqkf# zQHq?{@W_s+w)>6x>}IU9O^T8!%N$BKSNbUkOwKBVAtlQY>MRx+HO=|bY>;MI@%1)- zfjCa|5N4M8+%9E@?ikDV2hEV}gYe!mXQ}L*neQk0Nq8|vl}7KA=xh0SZgKtwl&#Q? z3_Zhd2xa7?dG8FrQ_*TZiRq{cp7+e_XZk&>>;Fz>uE%&*EOb+GHijR}m$Wz)?DAj! ze{qa=-+%en@)&lee|T73cXR)leno7_x9^!1XZiyUu(e$7L}nE%VS8MkA8_TQ)QJI% zt+i2V%}bykD3&$#gGFr;Yu^B;(Xnso8z1e~c~>xu9gu@{2na$XQKzTj8@){mv($9p$uNz>Yo(tjguO79>kT zknI(MWeXxzk5;Lq5O-fW7F;W30Z$1nU@!K_=LtBZ(i{*h$JDHg#N+OMI;m>`5?B!= z>cQSqL<@1ebeEu+NF=1UkI~&FSgM5_pqImLYKdl^c{Xddx@BinZroUEbFH)Vzo8P8 z@yxmYh&oqk2fB;#x#hQg;mY%1hehH}=Lsq!)^XQh2IqL?aO1*qO6)?LS=fj?76^d@ zP>f1IZZ-(WVHY}%Xwry4VVlU-E+31l(&bVe;*mM`Jik-C)X767X7+jh_C1-;hzOH% zbCqojRKxU$Z?xrau`Dzj&hx7$h;T!7gd>yoQM9-L(7NSTpRy4rxi`kvA~y2WV#NyK zk}0rk(+njK|U)5b0rE-A-1SA=d8IxKzTd0Jn(f2T%KVwv z&iD5}s>H68lX}7`&HA=~oHKMPw#HpHKQwW?aQh_XzZ7;W2E*l}+r(EC< z!IDxSp>LZ-v!M>ffJ2C8y3~d`92_oM75zu1=_^x|TQ;Vnb=vH*VE`|I)EOl%p)8wi zB)e>-77(kb9MdV2ywLC3sT8;pd9yE(0Qi9tQ2c5Rx)52FZeHkjD|g+rwdLwDcU|ZQ z9ZIDd=_-nvm^`|ge_ZI-a*r{LLYP-TKu`u<=a?C>OQf@6c@+t3uZ#Seon;+;&Mskm z?0H<<;><-B(Gwo7;z;B}bxpg%!TH03-QZ}Lx z7dE74r_lkc`0gNPI9K7$66IZji-_DPm%%TOi|`Q_+wd$B^N}eQKhMdD6+Tw+t6dl+ zt_%U&?NLDS)_6%Gru-(plFLa(L>DS)8)>P~#OwUt9oRNAB*=nAVs_7&pw6E;PR!wc zicAtrBt~$UQOM8E{G984GEnrZHWgPaN@8aLqHkAKL06gE2)MVzr0V@{g23dD6}*Kr0Yb|*jioha%A;Nt?-=|NHz|w={-e@z_uZ_6m|z-snvkQn zQMs~0fpBN&vHsgKWW)bH@j#u36qaYXPL?y7#6sOtQK>&xudKw-o*&0yFoJ9jzw^Jq zmUD@r<;ul$A8xfES?i=YTYJFKs%5|DMp-wK*c)Pv7xrC57bHJV%mD}~YK z0;WAclFiP3u;x<|ItMc(L5MmBgOT8;4ZIDLvq36k%p0MoVjcr$RuNpYUaCMb&G~_4 zb;T_TscnBSO|{u=I(DE1!VPc_l+#s0_v^hBcK0yV1?K+geoD}1m9RUdFbJVd>(bXk zfRcQfFQ)tRz3vzX`}V3LNS&*tSY#m4fN(@+?!3zX{dNV8c!_dIX1{<%lU~b8S7Pe5 z!io<|5gw)zuR_@JLbL1D9Qn;RCtr;Ya=w|%TP-uVF;v)Y2o<()5HQ|1GIaT7B`NdK z)qb*u>LtZ4&qh(wW`{68I|SP3)!>gPBj0*O-+69OuzQ8(%m#n(Fl+NH?pDAGvO=7B zu_8m6403A9jd3M6mEjLAWPs9l1PLkTaCHnI=?di3Ol() z*zPaC&QBqtJ92_lC}`IDy-;Tu*o*)Q?tER#q!2erraZ#TAhk-T1u{T_K$Ml?0O zpo>}hNk$7Wqj-ZB^oefqav%+XBTQC8bE3 zGy;PMX0ScwhBA8U-+*ajI1`)YFo+r9$!u~?73xeDhB_0cId?l9O@*M*KC&g)qMS-# zW+ID553GjI!HUh&BOXGqfLB&=X%>`|Z7GYO7`L$h<1LHN)mA~<0Rklz6QRl3#V72QUq80+1 z`)zmZa{GIXNL&BD*N-?^nb}`~8IJ|;?ou#Y0Z_Y z&6-*Mp%tj8;k(5=i2HdQ{|v(S&B1R)I~I+^cImR@$Z;%9shKd_ub_c*XZsVj7wlji zDtC%C04Ach18g`1cF1C*wI&c92#cOoF8%?#W^>>nzU~a6vr5JWVx@jK6(>lg5|a4v?*1!mW|{(cg0p*_hF`bzNixg7YvVqTjI z4J|M~&h<|;2ToO$=G>e7UWbGPX=Qc>IZ}8hGHGB${LeUDzyL>pyU#>X4a#QVcv>Ys zlHCBnBjz@u*CVly{23x1r5yC$L?;VP!90IpkIgdqU6_1MDccgNlZ68bHkdu8`<=}h z^ZXt|5NuGG{?Decf0^x1yNUaLo_}MZC|#Wvkh{N(->Y9~Ot>7lilh$J2hpjMh-NjT zGDT1t=Rhl1iRo%F{y1TUMH=)brAo~%^Zjo93(-y|v8HPsyOu~0Xw%&UfMNS%3}YwY ziurz@j=V07at2^&22}GBw8hWN_p3Y76_EBoIRMSEM_EUK?YFDA@~L$)3(Du_}XgJDiA@4}RespJ22 z?)yYryfl72S0aqb+z5NKB+Rf7`WN7JBnYW3i?cNR-V{FP^Azy6?96IR>^;tdtV1(oLv+GX zqU9Fe=AYggu~x~MyP0+y)^nekA8*5Y?g}&FcJ}3G=Cs@W9g|jWsR$OyY7P{dwiLoA zOUX~m3_NqYKlZ@T+GZqYQ$QnHbBh8!VmUJ2LfB+Q6FP4uA z9YX;-7fK;45LR4myhgvO29z5KTa*4Ok=h~2?Y!m8$VR_gm(A0y8@@!B!5-7-B*G3! zI8~h2=s(R(yuBL|bW-sRVNE#~>V{AJ!>Ox@l7@VXnt%;74uP2>1rH|BBGOUGMSF^t^}7 zHTU{sc)WElbM>$(U1T5oFY=F%&wLvlap%N3vt*IKd-PArJlo_~75hP$9VeoI5PI_- z`Q_%g->c%xu}}Nwd(L2{>q~xr8rtV2Yf5qVOW4!QHlM%bALl;r|1u)&Y%}#`{}kZ$ z-Ix85JgQduQ%Rh;(%%ym+nSYrFYh;6v-NVEFx!;A>OW7`Sugm9b`fQt=mUqLbg(Kt zB3NPkkeHp>{WVtFxkz~E!J4mNN~|7iHNS!#f`;iKka7sWK6F5cx6O#^w!3G{~A1okKkPMnG@03m1B3b$bjZ)nb^ZJYazW@JD)xWh@XggK8 zjCQL2t-V56?BAFxbjlhqw6j;pl)Ua==c}0nH(qaU|0Bm&o8QiS_eX!cj&6E8Gj6Rv zz>jWuCv(|4|J^)p*}cA!7@Uh6J`g~8)BL4U^?>jDu9EBhnk7*s-n4;^qt?^d3m(tr z{1xe+oXJo9$XEQ@pday)3~plLRkQzR{>Ym5WCR`!g|#@4l%=FhOtUKi#x?@*4hcHQ7l zAn45n8^953%^e#!ars2DM47l{8))|x^A1jVWcg`>e?+_`Tm0zH{h{8Q=K9b5ajkWJ z`Z*@Oub6_r`Mbwnz48N7Rv+zXj^DFTnX@LB`etMgmG8Z3f+?jHrr~ew%Qwx7fAf22 zJ0{PR{>|U%KPXmg&icadq~El&W?HILSMQa~yk`Ni*|{ufjTJmHB*=zsS3R;I96ixwa#&?U8@?ckCY4xz^Sxn#wR?gKOlbzx%!X znG$R-8P}c7fv2f5^XcFHqrlQ5za`2K*zM%aVCjc5FK_n$5#39&qI(lW9K@}>CY~cX z>c`kE*2V~(uv1`dGH0SpBKP>k1aDiZwem8wW~kab@-4{or3u!hi4P>{pQ)ktre zxv5-j@K%}2I;nHzT>r+-szxF51V0eFN7WRrzD43pC1EvwFb8y2+a+e)N+olm;sM~S zFenj3n{PF5byhpLubh{*{o32?UZJ{1SKn%ms!+r7Z3Q=z#h40pd-ryo5;(8F+4gb) z4b#g*E7eY1asU5_l@IHpCR_B-SQhKi7A;TMI(4A;pm_qE9o;tK_5U{z?}MhkN_7wZ z6T~Z6KPEDTY)psyRglBOA6BUO7F_+0|y~1>2Aqpn;~rIW(jP(yV@P}KKQKC?gf<-u|~knD6r_hqq)30 zfck%r?sX?9vB-KjUz8`g`k)>5Hw$|xF>mRRRHyT}I7wTdn`KG0-kWajOsVcLmdjHF zm!D&PN~u$G(kP6bFp_7b)sBdvO=-2))}Q{FRwAM9*i%g(lA|G6G%JVk9F<`FA(TX{ z8+^N^8F=+X?u7ZGr#d#efE$#1QOO$9P^0!OyEn#4c!`fu&5GL_V$R1kYNs~2j_RfM zJ=o?_ZE|rSZWVDNLsAkEp(av_P|trYv)E&D?p2f*Cfpb%xX<>@Z0@B7@BGtyS)^ls zNjHN{QvBywq%f54pd2ED!wna;`C%s1s_v(R0pVgmR8|so@!;6pWhan7{Vs_9<&^7o;`HjbF48v902f@RJaivoc5bRp)!a z#-IABi+LQ>U!C7=!#Xjn!X`f0WPc_21#Vs~-C1R(92~1WXxlkjYz}4u7bECrY0z?y+0|L0;096aApE5vIom?-2~K z*Re@}v~*WkB?1?jy1{B^Z4WZ?e5M z_YPG@5#G+*PVMb2F{8Ir$5%98EtH48444?Klizb?1H5RS*-q8>&5aLOI4>9y#>1^_ z12kyEEKWFWdv%Hb7G|X8xMAveGkTaR&%NH_e*HX5Rk&XV4Oh>aw|7uSZuKF5k3t%?HrdhtDJmD~!Fq#7E?F+Pmu~;#;g0bwMRxs8akO7(C zymX-)2`30}XHvVVJzdXE-!0p-mfe&mz5aN23*-5FsHy?KfpPJA{ueNA#_geo7PklA z8}?AWa(6z_NzP`OEM)zc_E4{S@aeMx)c`xxb(A_oFJ1#vwZY67rN)u;{wQ_OZkyq= z@WIRrmi)kv_0t4CWOKDoUz1I@5*y7dvo&RYzo&XNN>#)5QD=5?wcCx2A2MnaoRL?V z%s#3{huJ^cM-B6m3v5}*Cmt(yOU}R7vPdg9G&Q75D1+dM}7(OYa@ z+E)$hjn!Dr`RqTIjx+Z^x?P#bFi5 zl~Tj-{cQ~$4p697KXnPj6c}oOK1;?vncs=cSm-&X{ z)d@h#rsLH>9^Fq+hgAY>Vp=XJpC{TsjOvs5ApUDlQ2o7)X5i%fZazGrZ|?kAcQk`z zc_kE`@?m~YQ+*=Z*CxC`)bDw$JkeJA-HGZz-Ugj)f$^A=)N#BmJBdBfWWG5GzNqcD zN_Z&|UDunFPgec-bmPhF+9uQDN`HScCN1ktms8Ym5`$CK0CUMHFn75OkDg*ny?=^2 z$z|A&$2gTI`{3?V)egMfrt)?)iPKa~d%1fO@PNqOIkWmSRV;G%2d691jt0MHrnZv1 zbrepX)oW!mLTxFxv^Z^PPVScD8;mJTsqV@Ce)vpv zrZ*?keX=?rcGN2QZsC#BwP2mR*&PPg;NI*viD3GZtx0w)UT4@uNxg3Ww*6L|`(|D| zTdnO865KWDvYiQ4mh5m2AeeO7IjWi)3I>*AfMESIkoi>5U|o=eCK1jqo-VakeQXg9 zYQ#4yYXcccmWuHv=9Loo8g4h_Sk~L_NPRNz*JXCUL{)l;#d(4m0spUV(ezB8v@ruO7<|79=_e>9seQ@=mGv~51WsMLZZae{;) zj7h+#)>{0c68XvoCm`6iGvL06B~PM=@cy*iwy=4wPJLPNcpk=P1?Z#~qi^dUtm7f` zWV~sr6K53f)g!SyY$~SN$D!_VqkFvO9(kABZ+l+OMta!PUk>;enFlThy)8E9T%qpt znoXzas;B>`LYuPdbae{}Z(~X!2@jedr$Z(;ndw(j$tJV>N_7V-cl=fAH68=5R-f?T zc8Zle-f2*mRjmC7U|=!#27b}ux!(y~m@}_YGrR`#<2CI2$IU6%svUZK9^We>{~BHx zd3WN8SQ`_jq%fA|$!pbVdi6|;S8K0hJ2#jK*Qve;ZC78XZlsoq8LDqb3bLHAmvGc& zRz1^T4xPbjJ#KF1yZ3~7VTKw6D|zG%Ds9TI2S3j@Gp>gvoMS$_o++`9o@Vq7s?6m& zmWGzz0C}8aHr${NFWy8Kf+0bp$UsZX*c;W}rB?WXnGRZ9_wKk+?U;>(?F%7kFZq~F zH>%EELcz#~NNx4G$4u3&?AF(pqpS_?kcR}oD4yfp)M$XMtennpLyZ%xx6{-E38;pII~;jb7W5o2qg*r>rjTn3qoy^Hbq#j~lP*vE!6nBlVK6G5YNuIjYoP42zK<`lya(FF&0yHwX6 zaelc7n!W}1yJSV-qvxu<>K=CQZd}CAz(Ow;EX!r0Ee2`ZrATO{(i~mqSVbEdpCEAy_XZ zU2GK`FM^G>qTpM30KoI+sZPh`DtFNQvwZV|X%f>!3Sv*91!?9ny&!CujIeH5N@?jD z$*F@I<&iH1$c7Lo0wn0W!AzY8!uZTQFi#EX`Vc^@vK)2$v-5wDP3)kK zgsTfQtuX70CEdQ6$wqDT7G#c@4;Aqim~(Gd2l06EW_4^_N=pgT{}%N;iC^6U@>yVp z-Kvi1vRDW+uJUpe`kCVQuJSvU*ktazRULBd;zz)ZmSo2OCHrPccD~5bjHLNdzR%2u z26FdX(6}T-tsG*ueG}fb^;_$kIdXyOrd=K8k_Bp#cDc-#3t%#4n^CtR&CkxfeVh7| zU%LvbEAd|>ywWNmRRmoUL+D@)AFQ-~d9fEY-pITmX7!lDGE@C|yvFQsx9Skx_>wu} zUNvO+HTgw^_Ku=Wa1vxxBuF`(YJOQX%iOIOtbb8{RWk>6nJCfGG~TN^Mc2P<>o|fG z!e?xwj^!)=bsc44345(uuGN-YiC<%;4( zvabdAsDaTnub7?gQ9Jt-FLu3M{;IiwFOpK^QtDr`MWhLkh3$X)-ZZ~vQcRK*!6HqD zT))Z=nMQBBmqs_bSIH1}8P>d>&9MC8V(5>bsfPJCy7P&S&`@L}E>TDI$&4>4(q`AiIbDw$ys(izd z1)WXF{pupv`+7xRERfLK1CKA_IdQps4*@Ea;QWwEmNMVQ5ERB9!V zhz?Zlix`)^7lLqmt@lNke=b&COYSYOOvLIACk1yUJ~!zH5l?2!kuC}|w)jf%rpV^G^}6uE}z#+Uz1H?p1N*fyE;%-7ATBMYQQ(0r(^*KLwU4w6oMXoR>=1Jt{y&?JV8V{s;Asv}qEPcbPJ2 z<%ec->m#aXGB@!FVKZHg?Q(rUuA_3fTH7rT+ugE9;t#E>6B#LQvO4s_MzW9)fx+Bd zFIXMvMZ)!B`XgrbqpEU3$88R+W7tGZyP0nV0GbGwm?rMtx`}Y03v3fr+Zrfgn%YbU z0MXgp_ZU%x%i8p&by_<7i`r`j!P7cb=WNXEx;V|9Yq1I?qaO4tIIkZiH zK^z*g%Ty8;i`yyxO|j#;-y2VP?HB1cRrf@eiYMA+#1~yw^EVky;&G+g*7&bF+f)4L z+SVAt$8T!v$=OSo@s^wA-;@8M>7F{5G2;Ghd%%_Er^i*i&`KlN+@VJ|rBA5y3c>`O zGcq?mp-Me5_{$(J-eD#@rIr^rF0i<4*=<&!`RMC-chk63U5@d{Yk%N)J^Z}beZKQa zb2WqKWXl>}vuWNcwL>h+y6pO<+WVjd zSomV33ny64UgMDv5+}Z&GlYq<+6>Wqw6au!+FMyF&F*ADeu1On9O6f_`b~9dwt+)e ztEt|TX60%%r*fIpW?3!?6N7jV)IT99=A1vO*}1S#(UGnHG4BGPCi#~72+0xKz}`Ii z{Ykx85$cNNUeZvF{7HR|xz+r+}kA6%pUfZp@>e^zIzpJ8Vs zrpJF3cQW7nSsiZQqjM5X6?M*44qiM@EQN#3qPb2mDKtNw%7Z1g1yQRyXptkl-}G_w zwlZy9(~4{+cvH{v&RBoXF%MRHKhJ4?FlDOWRyXHPDWW5@bM(^NYAus<$6D39sKLgT z48iuTwQ8rD|ni@2I`nnEr`N zRH`Ug>57kjPhCs#x875yNB^wNS?g4lIbt2hB=4HZ>(sNqX>Pao)z5XyKd^gaOG}o{ z&;JVv$zbl=*#vB0LzC9u#i>)CX!7T*v+& zs_U}6%2yw%ifH}YCa*;e)xsDho;JI;sLEcO-WF0P0m+;HEWhMX5l&~NmRUlgK@=x; z>BTK-`{HPwtAZjK5y3 ziS8t3zOu);4iFt)iB&I3m;pK5ajxmG4m`k)uzr(B?3^e6EfxUP@Rdk~Z=MrO=(9tNXo~ znf?E!4)s{H#xKxqwg*TWZHmW`KvKv_CRi<&H+8_S-%Z;kqyVn$a zX&KECU!rpS*o^;D4H0|iq7xLW5@n5M?!`*`BrMx62f5NN579#Eg7udB}5YMr)%xI2tUHg^l-^#iEhDFbG`&ykC zLqlHwch!5y%D>5}ndp(Z`Yc$RdlOCOhTNMtXKb-==Iy_$(G>3SEhzGRGx}TXF`hAx zf2&S8a`j)W7P#SyPz!9g_3qNU-qQYJi4T>sH{z4*QAXKwq4!df(Q&p%Y6J*r87YF4}YUi(hH zv#t8_vh~5)y84EKk-q<4joZ3QnZvhm_~8O`hf%o}Kb-|g^f}JpBC8tG&gvo_G=_#4 z|9xby*1TZ^lqH<&T6kyjtf@%h?7iz^$vSme>=H~gR^v^Qhsk-KnA;B%awj2@t(sBp ztB#~=!Vt;4#8bVt`dAx&%nP^(+NlHb#93riJ^z;51Liyl)}H-@KTfda+I13RM>KxK z!;(hgqT0`sJjd|J7Cp=*?N2_6P+|<7?6o83WO>P&9f>ram#p0}cDmrdv*>W08v^%( zph>rpQ0;n^upGT0vC zs-Gl^=@cr?Lv-d3XRdMa-<7{V*}t2;Ad;v@F^`IMif9J(PB)8%pb$?4ggHa>XX zer@J2AyLMd$MSUC9q)p>U~8y`IVLKER7bERyoC8V4CYQ8)>8BqM>VF>H2tKy)om-r zZcW=5yK)EoHe$hX6-H$mU_w33)#in10WTL{x7VncjjxNpyqLkUY{MmtvHE4S`p^UK(qs)EIXCFDD2SaWF)a(R<(evYK_@2B zb_ho>E4YJUDV*v%%CqH1MGm3Dnu}VCrTU|@tD#-*sw<=eCBU-;lanBk(Uf>j%b{k% z#zrqO>wZz)>k?udEbuDn$=Wv2(Gewaz?_oIM^Xo3Bw%{nPN0RaMDh z&YGE(y3#B^qfl+%+OV9Ya+RfwL&CyOBy7&_BxRhNd1ji6)~P#gyr?ekF8BZs1G!L# z>psOpR}Ns1&N~Pw*gUm0IG-|{4%scuM8uc~yIZ5~CIhIF++@&cS7o;?z(oy^l%UIb zX)QaHS|?G8MA@`92^(ISOV$|ZCb6%1CaU{aZ8iG^t+O99eoWU6>zC|%YFZP7DqzB^ zfb@Q+@`7ceyPsVEmN{^99j%i9dns*>jp=mvvP34v0(Lp?!M13%Hd&4)f}mQr$8=>a zjss9cfp{^=A(W!5g4!m~HxA?k8onwG} ziPQ|d`N49#aRugHv+yMVv6Ag0WE~Ps7KwG9O3Kr1O1lG#-45&|$!uBXLk`&3n7pqb zXil<33<6VeKERoJvUB4S5@rDK6Sq$1;?kWGck^fn);836EM<+mB#H>m=Ev0)R+Iq> zKwTjBmY0o|Kj!$8qn+yPg_`h5lW0gJWMsswBX!*FvHnSMd`~>4En4Vk!`=%b;P}fT zf^8F0Kq4mF4cZg-3*EBpZhVK^QctLuC7*5f+X%s*AW0kT8PetU+X%PcI3*NZ=yn`4 z=CE9v>s0VEKH*6}x8FROOSj)7k^<7)l003weNm1s zO3(sJ)r2nMX~J%@Nun_ix0p1;7TZ5h53JjY!gs`n#nE`cgq8^6Y$4W0bi%Z}jyNVz zdyB~|rBB-}7|3lE9D3_Bfw0rgqi$d-f$vo(;&uhoD00E*;(U3l zt1bj_V9x$4L{>?xDnctrc&~^+Hj0c`fT4S2v~-$1<-tq|oCLp6A~wZcPQ-Gji<8Ap z?5ewRR9-_X7P|M>maA3pnQWV&Teiv`BQ0>=q2_urO~Fqw2qLS&~gQ3L$w zh~?b{w?otIwK&_V%G6GbZ)d~F7X)=;4Z+3~H3N1e)Zy=2u-73ntg z2pjN;Hd?5qM}&?@7EehRw=ZH#gp5nba28|72*x(c|CxszEQCl;0v`0Fb4U;35{}-^ zhNjmnTt#~lRWJqBl57=AqJ$cTgOD4f_JKnYp^P~us1HA6+mYbWO`8BS3T_w}iCXUi zc3OmOXv@S>JzW;mpJbJb_N4V%&aZNI#2pn;ZmZZ~@ zfe|^mvhCAp33N|75IHcCSC{>ew{rwFhJ47gXtUalo6dxIBR6hI5_(e2cz^RXOrvrZ zZbzK=SY&oFJ1Tqi6jw1Py9f_1h*8zaMw3Ydl1l{uq0!Rd58@cY*353UtfQkCT*?N@ z9T<|=s&&NR(i2BV_M&ri6zHKl$L%pnq`;m z3bFu%s{vsR3g*^j;bI&QL+=35YPJs$oCVZv!CQ`FY7e1Oek%y=gW%Q*qELS)69J;p zkbw%DHs0Z}%0WUA+`<4CAds@nRSCB9)6OryYHf)pnP=c7_!5%IjjucVMD1>#s@37K5gXZiA8 ztyFc7tRN}!X|k7Nw+T2Vq2gjP%SrIBC3fu?ssE{T$`H3Lopxjdj&@mI3)z&#V`xIV zAX?E$0*5v2BvP9(g{w(UAnh{}ECDUC5-B$LDHoOZXuNDy*c7wFUSxI^NW#|5=W zhOB66=`As&Etl(7%u!`H?a8HjK#%w&B5lFG_>+=JS(UzfMZ$lUdofRy>ME=i|5B>E zdwtD6N_EeEbfr}^1nM9*vNe$qPxMDJseRe?Y`{tBxEYnuBWvSO=h`k^pS-UKhH{j$-;!Oii4$e-)=3qbRwg3 z0Ae>R!i%}JqfXRuv-DD@9pS5>P9~yR)Qv7PcW#}BE=l4#(Im1P^C5^XZuyS9DM;X9 zR+&0RWGBk9-69POGjG))Noxp_upGAKSk6J3LJ9CY8!{Ae94Hf;x-dTns!~iuIzj#H z8^$R2-S*`&MS9=M*%>r&O-Y+t6HZ(pzB`1om5W*Wi+nJ zT;53!KHN#`jEik&16fH2rizWN5Nja}h=Rdnxsa9*XNhzl&xR4Q>R{3G`V^QLoEByp zm((V&vmQI*!%r3w|xE%yQf(HxtpD+3(jxneNO`hx{_B|8M zUSgvYCteEB6AQ#b@3=g3f6+AO_r->aKO=yYXyTDr$_I4Hk}(T^M2%(_Ak1#90O$=2 zyO5<4XFSwu>S`HZoGg;1Q-~=o(qip4b*+}_S#4`=l7p11 zu4v_R>#i7w?Xci!8$KXp3h=)v&FKno^+fi}>0l*hGP;6v6&*@evc;18A{Mlza$X^Z zFYH61_+XXcb;M1lY7a$5s}2EXKt@)^8HHs41qldEg(}N(fO%0GrTv3AJ>%E7usvA~ zDo20HE&((`mY2m41i+<5vSjFEWqrUs6J_C3bufeI>>x`W4zS3eqq`eOq!U74;UfUe z;u<Gznhfo1DS~^RMP@3xBL{>E@*|T+ZH1n(V{{60yFQsx1g;jmcSRCrS01erq)WrirN(X`-y5m8Z{Rrej zaBQPECs0)GdmwLMOC#HEqnE-9y`1YMUO>{z=7-E#-SqB>H>}f!7p#-cbfBBhbZhPA zhHkohzh?PT@gH}y2Pf{?Zc3{`C)Z8TtL>&avAaI3l8fS^!Br1ur>@d<>Z^y$8{KtZ z?+vr1yYA8ND=A+2pSJwFK~f))&}3Fnvb0VM04wy|O{(B!H>oEibtm&q4}CSO!tc}F zW0YZvE1jX5jUsFYrSu|j`+dm+o6`CxA$x^$==10|m^0U#llF z^vShaX5ji-eLUgczN*!gyXX2XR>`*C8}WY+qx&&RVKvy4bT2JT0J#$LG?=LA6E^v( z%wD~9N3XwJy9D0_p8!quz@~{t_)aP8&a@sU=1% z4(IjNcVlq4u&@5&f3doC{q>dI!^T$G#`2&N?GjAg0Da{6#-#vpJoxl!9=`a;(Cugt zrhYD|;)N2xtDz{EQUzkpef>thDsefHEgu&7F09B58K~2pe$rx`$k`X9ML2gDUi?Fn zgY_VD(?DH;sMb7`U2)hT-QBbd)Z%x>$L&q8LAndS_ZX!2$|hw7S<#N9?F^Ix?tqVvse>2>$w{>~=Y|zx)}u@6k8QzK;d}eA>J|SZ`O?kYNCDgLv)04Mc+* z$%wY@Dw&d~j7t))rXKuj+9%GDocX~Gl2csN#1{z!5a<5_juCqM|XYAogw{V+@P?5 z1n`%8;VB`U2$2ThR)~EyZbyA!T_O4usU=w$^q*7`^ZbZa;o|lQP1re7oy5FDxNBiI zBcs!Vxy{v2SXKmM`qs8?ZR-vS?0{e%5y?2rjc_LIvcg5X6uLsneoQW&W^h@;MJx0R zXeC_BLYG{z6Dv4p|)d4yb-R2;URSZt0Sp}X}i42Db+piUPC1)|X`4!DMBt0MVi zZhWkuQ=M>bGLI$9Kpn^7j5Q)0rQ>-;a%7_a-O%BPCW_ID3|fbS76oZHDnUtzE07F< zXgzWQ&lR2myK;(q+N)QYYAnmd%*Gon(2c}0h;Z!9d@qcVr3wLPMaaf z_6Jy7OYr8_FWYZgk;%8M)J?Z7x@6k2RP%5PVFRCjl(%uM6UNh@#qz=qD_ z#2qLYLqqs9^HqSGUw5U;ZVq*So9a#!`>o>a!q_d3aZGkGqze(sl--hyR$-VDM9>H@ znBvT*L-p9`&SDKK$HoJ&lI1d0YfOuWBF!Q*GXpWXDocQg|8OlLR~~=Gyw)6epzd#O z8m2pzXH9Amv*cPYU;{>{@jzXbd3%_?(i=SU#pPmJyMl)^t=&54Z?JX+Ir;?kHisFP zpV!&kIb4q_nfroGU&&`mn!?@mY`yj~5$rN|@1{3;{pWw1mGa=4z)W3;<#(e*Twn}H z*m6mDB-xoii5tyRd+5JuSHRpqQul(;tRAU%t@|aG$`cCJNB#_9nBbZOiSh#x2dQL8 zaj6&$d-4;E533lsUO1~)KiFXVByX7h1WjLMI~DuQ+tT*m=>Fl(xK+XtEX|EZ3U2s& zyJ~XZ+UI0<2U~K@d%QJlkaFguKwpM`=kcTT0p9FI4~^2E_eAF5J@uPjhbKJQFEQYs zKf>HKo0)s-i}CpX=uUir();KudMsHhPIKd6C%IxF!nPdm@&?QJfbH^%eYBy#F{6Rx zM@{``Jq)Y$$4BcsJ2a!~8HM2zPM^szy5{L)bWKUKD8;D+Fe#+PTgK>-lzeZDuI)8D z-<|I#wIH8*Vg`svhPWke=vMEw;2-aq+I`XDFEFR?s|OW7YU5W)08Odu?tS$T*O@d% zn-cbXiTQb7c!_2+a6dgr0v%3STAVg@`{|D9)l@H-8qoIftSlzh?b0FvuwI*_n z3-T@fvR;MKxj&87y-FmzrgCPbF!5+c@2^XuJIZDfma>w)h6#+_k#6^KTL=5A$nHKq z$tIOdSXGK~``80fk!@=yX4r|?w=YUQ5{7x5n!+_%l@*Cv=DyC#T?tTR{CX1kJ2OBg?2sUC_RpycK1<;x3f+EqxF->G@l-= zo4je68;${zcx|4*{+eb69IKz{(e#}7-n*^E9S^NrtCKvE%jaJPtWQzgPBA+ii@|$REt^C+Z8mKbWN_>bnmMuVkC?Ocv`dr}iKf ztd~Z_c@?l<6`9CRg*%J|ki@-sxW2&^@Oz!~Z45u~-*8>aJbaSAJBII0Y7!b98)wK* zG-S>^O+OlAI&JD5!XWtITT(C1WG3kyC1$vM>e1*vAvmIot+A>-v1a9Ta2l8W)tR1? z_0aO{N{8S9M*(!7K3Ui7p8aB(dRPe*>(St+Z{Byt*`gq7313KeP$En@_K_g&S?1Nr zdI#_Jd1vXHlk@*q2BP38q9VM?@h>q%Fd2FBEIpvhYvN18Ecuch@(h32?RuXo+uG16`s5v^`7RtUE*yv z7oTJE-G0ti`39Qfrt1B>-n*VY_GgZ89$h29SA5ETei52whVI5$+xt`X86DnqZR&hHME~3bg^FgWim`UgB%X>J`*wr3R`Zzjg*Tt80U|otX(7g(*UPXxXb!L|f zX!ANV{sMiCEGl4?bc^b9>b!Mf??Np><_BJgTI6;!|3W<{1cZ@UKp2S$Kzl$Kdyy@3 z{zZE4!(NeP?hj0`A2!SH^_QhCXk)DSZ@bn z*z;n2VBYQ4(qo)yypT9;k6f(Jlm4OM>*M+t!?_^aKfGz|gp9s~xu0#$y+qGr(u*$D zyNH+DulK_kpKz%@IOj2Uf$)x~X9N)6H7{SPr!xinU#4$PyCxdZJ4eyu#DYdS7P6`w zUR)!2br5+lTOEp|@6En-de~GtHy*dg1SKdpmT)$=|yeNR$v55;+iA0UmVU;yCjt!dy-7JvRE>-vx(f6VVgv#kQ~-V`ynDYdi6ll%!8Ebm@5TJ0#pp@B=hhUx}wtvv~t`|000Vm5q>oV)Af-x zp<>UawpZ*Wxx#}o4CLzRI>U1AaV4NV%S^gbU(eeQSL(BQJL4){>CMhuc@^KhS(!(! z2C4MeBEE66ykN$P@Ps8;z^|ZRu+k=E{@$PqJb1aEuhDCH{N-9bs7P3mBCZ2k9bsw{ z*Xj59@YQwtPduKV0V$qkzLpc3{>dvR{&)4fg6#xjQ$Dnz&WsgWx-_6nWt=ZTZS&ZGjHZxZr-kJ^D2+2lm5X-i;mE5Gy z%!N9Je25bJ+MDzghlM$=!@XS1)8~5qEZUQvhCf0?DD0P{WRKaTz(NC~UozuyW>CDW zH+6tRGz0p?s!hiQXoT-DnFa8EcbM+CA-vpS&bUn<*`eWXVb*7WVCe;#X|~DRx9L;2 zU%OD!@uh(m;Kx*+3vJR_HYXOL!=p3ht0>!7-b0hC%vrbVy^9)cg|^^z=DFK-zcO5g zv&bT3OMki@Sz{>~6E7eLGQHQC9q&M<%{Ncq!Or03t2@x-=9?{d=-QE-Atjvh5vhGN zILj&@V`7jdszGp#)pH=BgnAANREpjPSP{*bIjT`#UD5hEKfvk^HLM&?Rhn-aId_Pe z{&ym|Vn=kR9#SXHKyh%x*_aQ4j*3LlnG`Ly5FMHo4Fz-%omK(ryL6#wU~Jc7az|1m zm6y$hzCtuG@c?C2BnfAj%wyK98K0=IVz%G8WP7s!{oWt=&XbONPFYqUwTJ?AdigFM zN+QWuL<~|nXSXjKr}j`08sMadd7yWFL#_Kb;O%H|#zNu|kEHXpy z*3|=w2S*~iM0SES7TH^%M5n{0i;zGDwsT|`JDn66&Tcgq-mQDqdD09G=@O;2_C%YK zm-tu-Z^s(IN(jJnbjv{U5)WBj6^R^^OQLO_x}*u)fUt~xIG$!5-7Qo?rERCYVYyBv zA#n&h4A?8&(@jYqx8T$V5tAvzy=JgCY?lZsMlrPzWr&+EiBBC9q&Pg=V!k|dVDKiCx;wJ z>^vf^HyX|cu?OH^Ipv4J)$4?itmtUU6}e#mW(u z?MI(QL$_Ov8AmZ{_uwu`2iD{OK#Ylf4y+T8WoAF7V-nqK-V&s+C(UO|bpQQY<4M46 zw23FdNu$hvn-E=a#MH={Z!Tz;OUVmdObK($m>#;@@YtZElFJ)!CE&PHmFML@NGWS2J zkMYY_zm?S^$r-tO%XEE)_A8!}6Co5p!pEVT=o77Gj}#@$H_sBV^`vL@`Q>eM^pP9` zI28EmS^ZGEFC*m3u6$`;t~($73NVsbri&z~Wx&A+lCEvUgIHw0*+7?|w{3kZlydda zUA*6ZG^yuwXYDF6yFI77bo(plsc&rDsMx`5yw-M})6xfX&U5)gI+*#{oGvn0-RbHVT)i8+6-QytD+mOGW)O4 zK{g`9oE2!|ZZ#`c=q1r5SDDLR)O%$=t$a~WsBGe(S8T7MVOXpo{OSWbHM_l}$JB*f zWfZp7vYa`lk^TQbo~P>Q={*JM2#>1^5EJey2o-mcM1zFnvlt-8*H!sKeOMczZp>if zZc4$`wMY&*^n#{wW%HCEhFNaVLb@pBE2+WG^8<18tO5jbJQ7LVVphMMKTxkFTd>v~ z^s?@~-*Pd$$!2Cc9aauDx)zdAF=LG88Z4H@qsLGIIuwOUhIL1&d-=;cSNEN3^DFDt z#~F9n*U?y7WxFS)FVaAg8ASS%-pC(DM73g1#upm(&KCTes{#8}pu*PY3QBdh&aDb2 z)-!58jN-FxLAqdnK@)>5t|ffHII@l>zK*9NLAm?Ea=9OzRlA>N)kMGvhDi-5(Kzuyu`MWQ1S3RywA>XzaS@ZDIk^dl*rj-bS$0*FH-aZLyS zMO`^&Nj&ZcEc+yJ1qtVN|2Vr_g?cj;(RDadqwR9pz>M@2!p>Q!CURX)Ii z3$YTVFMpQct+7DVL*8p3=3mUiuj$_rHCCVdd4szs-QQ{m(F75QjL-O(lnm?^+bBvQG-?GOz)AI5HJ{3{#i9pxo9o;i4 ze9sjreu>%l9i;fxbIcX*=pS zc4oWx^&p|)Cww5Xb&Kfbq2Zg~moAG8I$eSf^$VJLFowH6)Q5!8{yUqZ7F5Csb99TA zkpBZe(!(SQJE*i>$bY;in2!rT(mQ42{4f0oiMz>s^bz)Ev&@!{^oYK#;rrPSM1-~5 zA}u~OFsZ`yW9?_-{hK2{MhD^|_nVm?Yl+q0@Cn8VVXXd#KGE++w_o+oY&3CnKtbyp z0Wn(Ng73%`baM$y%pd-$&na)s+FH;uDXkYhUor z7ucR4#j=$|!*sYELtI|G-$~n5UZCCU2^CKQ=yIfD>ghby~ zPxDA`Gd1yeJmO(JlPi~p0&ZL7H0jadt#g`}mlyF+L*@!=@`S=J751!&dcIsC6dz6Iz-Sk^sl*NbIxB<3FJEooRmf0n|OyB>$-| z+}i$f(?9i)F3Ci)^iBdClo6e)eJol&?;4#JGlPEA7naZGM!xKEe>8A!<_|yWeYDe% znY^F$sL?sqF4}iTUN8-?s#}r5ZDe_l%ziA0=GDb6bH+S**uDwBloqr6G-U<@i=B*%I z>MSusf~J8KXkLZ`=vu>4sFZXYp+dUN`FGeE0c|=Hyl35M?Pu2&kfWFwMVK>j0pXB1 z6=i6-O5ulG9ZB)=7R&HtwG7!!m{i1swQ0wk`9Xd~MQDV$btg4j(@wV z@3&c1>3*)qU`B}-1?0!fS6<#eMa+Q>h=b-$n_08s6=v{f`Kp81%UF16{n*m8utFd{ zZmy5!^%EW{_e~}bw1a&hyZ_B--hX_P%^>r~Sl$S@tp7van+I4m|NrCnoV&bU=gfAi znVP2U&TX5Tc2P)mDlL|>OOe7`lwI~^CZeHjT6iVNL^M%Mn>!JP79nIyDG5;#iV*Vl zeLP<0+-0W7`~CU+et&$wdcWt~^E$76dA^?e6Om|g)tsqPs@4IKfdqt~siy`7L>K(_ z;?v9th{ncK>cxPdE4*v_iI%EOP&CDFF9yxXpzvbQtOnG*C?tAliHZqh8E|u^szo6| z8Op|xXxxp<3kDWG0Ii3Hn4agPOGNULqF~!27Zgo!40S$)it!N&1OM-taEb`j9~@aa zMFieo_MbaNgyz=Z8cq?HTVgf!Z*H?iYjfT2YQ8NxSqFcI!tYnU@XN8ibw%SKzlR%& zCg!|@s$)Y@=za%R@?~{ySoF>HypsmWhH+h}Zas)uSfiGQ#X#-(R7}5fMLpG|mbkXF z=kL_btR0>%)R`e-i~B-N`L@!nXmu@dD?F?As4d!5*J)8V*A`2l@K9Js?7$uPKU35NS6$Oq2Q?=3{qu_(@vrO%MkwDa(m0<`mg>RnW;Kpx*p^saH5CbSY=lWcbr za1BB`=sObZ10Hi6+gphf;JvkRYjHxjSaTy0zyVkx6oj5qqg#uUl30&t-vX=$By<`D zR;YzRUN*KC-4hm5 z)kd6bboVqhJV~JEa&mRt<)m{+0;EDN{~xy}L~Tpj3JR)6wG*w{a!FvcjkzWGg4#N~ z;N{>qmJ-6>oCt!q;I7la4J%UBPSmZ>A`E7z;awIAKzD$2wk#T3-;6UQ)q0V%aLNM}H)Wg$6!(m$O40uI)6kJ?SRC*Rvdd?dnpvH?Z8}KLtPmUe*{dxEX zNltiZ&=FhJ>iO!X=^|?AX6m+bx!E9Oi2!;%CF>e`2i3INg?eYYXpr}=pHeVMQv%=- z=(npNF2KolW{8}Epwm$s9U$Z$P_0AqB^1eZ?p}zQGI~+3KaIN+R=u1;2wXU;hH<#i+7F! zoqqM+hG@NhFlA{Kk=e_>Ga~dH+>S|r)(UzU4ff5TAdr%$ngi4AnfU>iD4^3w1C!$# zZ}8@K4K_0L#L*%a7XRF+`9XC;zqH&UEQ;T0L@}XuV4)FZ>{-$TbV~%W6lMl}>lZcj z?&Yhiu@6WDc5F2R56GC=TWnN_GccbSSQT*iu}TC=t~m!5j^o5!!7*SbfxQR^mi?%!t=+8wj=^COypTXG2#o5{&+h2esbkdFp49Nl$ z9euLE4^Q+>i!jlDj2}k#?g!c-aK!W^1jl|(J33l1oi)C``1_@=?{z#9ERp$qewIG= zkh;S-A!@)dfp!YZDNX@xlI2+s_}@-a*~D!Sx5zon+~(opgFRBQNko4 z?B=J3m+<58@dRW$-L*cD_yNorvI+>e*kjOJ>@jj6?_<%dRHFs+NTo1gAXNY;Y0dDZ zc1fF(P^?X(B`VIE6$#L?0j*)0Fp-|iO*%IvK?gvDKrYPSqf)x=4$`otNlf^9`I+Xf z4*Q${bEr>SZMk4<0BX~x22YGG-|$KjR-hhkQ^K8mo=SJQ;7yf#4BtIiLcj=WMP1oZ zUuw-efwY*aPVXdg&*VjAp&-Q-8nw{KI^eB~X5`?ZF_sXvrbbEVSC6O%3)TT7s=@_f zks8m`B72lmtccrCI)Dqxl@BaA8raoT_1V!P2RG#} zM~i3TTpB7CkV`WYd;l`wpYI|Tw=bm<`BBbltt?J%_91HKo2X9S(ka$C)U2-Jytsz> zI(!K)d+u1#*`K}VS?Ju*x*vmr0fK&0{kw_wVq%5<5;Kk!NBOgty_TA9wSLq2LLa!l zf9oNxOItSKQ)~`Kp?XdYht(s(70v7^qUjqF>E8s@2uCzw7^Sd!xTk1hY*5g@X@#6e zIU;KAouJNjU&rD#ed5G;g%b>25c%HWhk1z)d)ylFp;0f9n^&3mu=jqJjc{WCAcyZ$ zgZO>@UwC6nU)uGtGKUAS3h{7sgS&eE{#Z?dRs zo2S=R?RyKm&Y?{NbospXe_39A+8cARLYU7ANe-H>_3Se(L5+XNj!B&z`en70*fF|ecMljk@MgELOH(_;4x&{U8o>NrUp$gC#n5bDo?V)Xo;rwG&dQ8@#}w1!i(Zn4L!_mfxe z3v1Fhz$n9Fn@g}JK$6G&lY|07=E^R-X%lo zsFR`YL<5f?p*Dp_kX&|-=#wN!OsW@ZEksDQ=!0J?(_k{*I!AO*&87(wN&q7! z?P3w`PV;NpoGV6x2AOfLxDPZ)W%Y6EZuZ!ZQ zr-_NFc^c5*!}Y~XxSgT=<^y6G;_V)2<&!{p0|mZ-tKY^dB9ME>E5jQC)Q`>#`V3R} zv58O`-kBW(2oR7mD%hBje*yLAcbxBZt)te;7tXi6o}|rZSyL;q0psZ6A09DzOAdBS z+6b%~iI`ih^3?gpJgb}Dy8M@mnHlt}H?9xi4&H9J}>G;Q-Vf{vE0d@oB zT;y^$bhFYgSUS^)z*AjX_c`Kz47(2>Drg3H5k@d{z;!?&6NiLpQ6rqGqoF6hsaK|1 z&5p-Ny{0%^65brKM?ASs=P{Kys@w?iub2z4lGV)NVliOrNh36S_4*Nl))jL{Xk6{B z5t?i872kjh)xKCXfE4U`SAM_i1tKrRcn;u~10B4TOo*Lw3Aj?tcnMHF1Nag^Rl2?u zT=fii&I3ZP%?FD91sqFrWZSA&|0U`i%9hnEB?Wa1D`s9QCP62It;4hy54Z9C5HLFh z&g@t`VbcnoP^@#fR(&6g6vt=GsMP7}@EN^qc$qjQSX+00`}8WGQ|QcoKugh_YsG8E zYGqvqroejD<~s3Z?4+y3W}~qOMQ3iouG8hbgi4*Dbh$Ndxwm2{cZz}Xw_Gn8Wz2jM zEf+eg@j%OuUyu30r=?@WCOjtIAof?!p(foZqM0k-2gkUbvj-0}r(V8AjHU+Y9|kB> zgsR1bmZN&!E^dZGXzUhoy?1qaX=~Jq+r(Kq$h(WP+ffL`@!bIxjSB({SCbQMh z%O`~lU1?;y@Gj9Mna%I&c;zSg2QS7nl5BI5h|L)ExhxO-(h_AeK2!WCx7(v8E+rq#t{8!UQoN z=kutEAPc6d3nq%(LTnlOwYO54k2vb|Efz)WCYSY?rrDILY@(>AmAv5o+$jetkwUTA zpxEA>=yD?uOagXTUCB#@rvP>JsS~G&EymBW{8HRLcy*?VVR)2H6$5i;Clqi1L$R5H zPU#M)Q=YS63wAX zGe^{L7nx%k_2m5&0!=g)_ zM8`~+PJ>fN&Gdgij1^p{3TBJzS|z>*`JHxrKtKT*aAt9p2DQK#SZMfdwQ9DwKcUYK zSk9V;J|gnuJAfiMlaHu79uZGtoUP`F4jAWA*%ogkHqA^3|0xI{Py5m2)S2s;*jOl0zUZ1Olrmm1r++dOfGxo4p&ohN?A0*rq`^yTY2 zPl#@OW;`i6@Y&-@aZE~v)3|g0HOhMy6V90u^YMNa@CW|la zRbdFv3mrX6lC%QHES-Eon!o~uK}aZIgpKk8YV%^zx({u2wBkfm`%rP2!UXcXBruy$ z3m|5%IYcg-)nz`DjR&R?Dg?i|=MvGesb-C9+`Azr2*^&h1B@I>O_;ENX5IPK_=|;)YJ)nc`oCh_m1M!w2F31S33s(@4zq?etg0RQ^)Yx*G)) zBu}CtVm)q^`F>zh*t{SD*e=G2(U5E9*P~*8-EoayD!ODJI<81Sy|+{}#YqpSeM?0h zIBwK_9fPj_p}*=7nS(^vfiyxpBsndH6Q$O+;SLYOs&&NKAkxoS#N~&|ioi?OQ-?(k zpQ8EJj#dQMq`ryq;0F+0mwT)?5BktQBbWqVz(YNe8YY^A95`FhagR`|%5@tFF9FenQKv80k;X8G;a02V8FBgb?nblBI5gYrASZW5J zrh6bYy8`fsv$)p>=H!6o`ik4PT(r{SGse^cVNeGn_9CwY(ZEs90fOO(4~hYIJ0frK zj!JQB;5`}sO#NOd#w30XSMRS7@42rFp7%b)@?QW{%&BP(`g_O-6sZwA0u5F81_O?N zo)#l$tWGsP>=%7m(OCV_r$vgfy0?}9=AetoN+y?b$J3%Utkkm>LgY72wOa_hc7i&6 zp_l^8=Fb*FbQ)7l7Ksi?A#1W0a*2T`vX(0r3EHgBUnI26I;e;~nzL>?tHBoVG#X9n zh?c7U&xq#Po+Q+Bt*43IX6pKtsHI#zvr<%LXl>WsgkU(JYR^hhU;X)#$X4Yqiq3IW z*w0@S``zEW)z+89RYiMVg+8qr{+h7Bi7*d=G?@@222E&;0Gy@P|*E#oMARbU_g+KW#EV)`+aM9JGsnOMPurUu4 zT`dPO)uK@<^Wv9Gi^8_Az$sG=t3*??YIDq~5+541t6)b(`CK3hG#X*A!_!s4tD=j& zmg#BmCptZL`KzM65pn|nt2wL055`_Kb+xz+##x(!Arvm_357SR?>-a7>i+e@hBev)>&1Yxk}bd*-uaOEj4;~6 z^%VXtgquJ*8<}V^5uI>8t@gHyZ?^l*bYMV%VzX7Jx5VZS?ohG&qFMTS*sBM&833@Y zZ?6#zIvM>k8Yf4*OdbC=^piHLYu^?Z)zQPLgKI>>_tSOx*-mV!`s!_*uYIxLJK_wZ z*%C}EoKR)MdN4fQ&gh7vnC%2{(}W3k+@{oR8^pgb(9brAImZ2}_+7EI-E2QSDANrq z9^lnF+B_5jGbhnsie0=nHR3&S2^M|rd!h|$`0+h4AmZ){o+>>M3_}l(tR_%z;T7uq z_r(d>Xvb{j@1LKK?(`h(eOdIr=pn1EMVel720FyF6@4H&7yiH*H94aVFx&h2rWXY6 z0I?txKbbT;)&;hGAR;MC-S?2CPDhfdL!`0(xgUxPLbG*L>sVl;_}0jqi`6KAJ9h_R zL|Ud7FmshxciJY=8*?{klQ`Pk?N|Fg5!a~$n?#*v@32b&cCaxz_!Hl_IozJXcQ1Pu zYrk2nH!@z}B0*5+T29I>;$g`oT288`w}?cX>~>qBd^1~JxmD0S@};e!S$5Jq5<+Uv zJW~Ci`3 zj*tFTRhfyZ)Z{Nj_oI^e!tkM;e9J~$kcHe%U-LB7!#DlLA*#6>ME!KAlbBAiH&4xW zh_;EHv}T96AM^Hb-mZ|b@M4_DSo}uY#%QvE# zwE|J65HR?`rAqD*4VxaWeGRPKsxZlWRlhxAf=ooL|9Fq6%1+LR9jW83F$`4%xEici_P??8KhsTzL|qI+NLnD0d$GvwB$2JI8)VU-u`6OUnKPWb`aTszgg zAAoL=```Qm9om_y*#VR-Ri_?6^QE!(4nT$tH2CLV z#YM)<*m=K+pG=M7V?!{C7d8kq9uO5rI!%@hOjU9{~MQMEsGIYBSX3$)-uSx^I+7Krk0)-50o7;kW`6B}r<~sGwxp zAQ{9TT)FZ=#y<4zwD)J%CJ26_86%R(wD$oi+9s+s?(wS$w7DRZXOv(4B^)&~LfTL> zm#mne>iI%2zY(y&nSQhhC8*KSp!OaH754$U+JMTh4CbH24k4JViH{UevEL+Z+vxc~ z{g_GI$@syTg@AW3PW9XqxlXCUzSrFVJ$ub+nXSqygY|{iuBxgG<``~6c$B>m%&Ci! zVs@zJ0(*9YB0(J41xl=u-PEuZ!Ma7T)aCq;rZyt76<7=qjdh5m&G&lf&8y}WV^JWd zAZP+_2^#XW_DX!$u9hgr0I?bGbHcZEB#>`HUPdMvuMY@HOytCE)E~?VxV+bMWr3y# zPtvAf3S<*n!&Knm3P%i0|M}AP1YuQT5Xaw+4d}-P1osWB@Kb~G#3Wamz7SnGEre5O z7myORA)t$v24xB>94^|J4gS-?IH8=Djzp8xM;sV~1Fl1t?%POMD^%S`5bOMPca=-$VUvE>lMC{t6@2iMe4X>d$4V~2=fx)U}AEo%^G;@~46R=0$ z#SFgh*+e?yH{yG~Q>?$M&KdIgjN%WFRNvWvF90FGXUJQ^8#H>0sdBb6b(b2KDf8PQ z6`5dnWWq7d)b4f2a-k*nT~apEYec$Gc%Sg#+6nGN;4&G&+9s^$K49~8`lewfenwP zq6Ss^Etb_)W*UjQ2_n<#f2hh2`~9gg77rIJDTn zp0ci)z5QKOrKtu1>m&WPTix7C9+$EAJqTsnIJ31-R=wOywms%&ll+vBzC{^4_3;xlHJv6^$xsuBKK<@b|$85{&MRp?By z{{7_F=1A97HAD{uU@;fwwd@1n$tRvNOdaXD+)!mH0sae;jBv}k`C;^ zXwccf7EuQs;>EwKhfV^LS^i_ZI(|v|n&#W4L_M^mNWQU+^29fGW7qfbTKHB{tFCy z*d8!>&_H=HzAhaoPfV@G93)Tdy=h;3&;+{cs=ZYv-u(EsEB*!|)0H4NyWG=x{~+1T z*cy9nki5ajo|$k1j&L>c9H*TwFEw6MvD4)pHDHp^(4pTM^7-tFue`1}z&o8P{ibrx zlmnaWmabZN$*P`@GXkTCv`!>E7T&GyI#b@5mJ-HA`OlKg>sD}E)_2PAaPM{U#U`lk zXUXqc%-h5*i)-&4(r%maQv5Npk#>uF^P`;gjI-s6x~_(c4J;TJ0Zs>O4hbFe&yn4= z9t(AQpePJ@P4mKQ&HEwSe7JQ20I;GSVmg~wPlFxt*$&z9uM%n z;5^yHcuT#0o}3h_*pDIXR_70qk@oYx;@wLXC1Q$1<|*BAbe8oz=hO!S=1%kFKzN6G zdWdY8fZ1+q>cb)OlvdR}lz3hsaVY`L(3*!@p!o)7z*MLI8p>9~hRSBf4s|yl_p0)t zvLS%pnxXReB2QnzRnS_oj6g02Lv$a z2Z5(niFE~j2r~(aAOkr;C~ATcA~D1qiP~);zeF?%bjur%fK7M-IAd}p<9_lZT95Pf)k86LDI@A;AR3EC&lsZ%y?=%gTu@Hgk zLq(?!H`F7P(t_N?P}|0b>I$p%662oMc5BqH;1tJY^e}N_s2s#S0vO?;(L>iZBsH=o ztlXfs4RFJS!TjQZE(0r7wa%AI&7FR=_IwbW3)H^zWuyrVry`IM5f+8D2fK)N*$1Tr z9Dg+3;R4w_o{6rbT&Htxri3#&WU8koTp-W3cWQ1z1mH=%eZFkOeeVO?B4e1`h8Fh> zlZCZk^;9dsMbP&tI@Iby*|U!JX6IHMcNnN{zfeArbm~~@YQ}UJE_&3@c9(lS!0^lCzC0NXe%uKsnc?1_8z$!ldPsMjvnNviFQxK7rCxx_8kfr!QH z1J}!gHI$U*jFEK2@ah=(03L&Gl=Yf{wT0m`qzr<2!3+-y6Z%rnu0Y5iq8pXzH^{DL z$$jdr8{}BGV0|=j`HeDKpH7Z>Q(+3glN<%6q*HM(_Ef2wccUBuQ9b*6ARYn`dKuoOUtd6$NXT*UuHG!xaSrTa=# zRAM1euOjLJ_}35mQ20%SBe;{scrjP5@)R}z3~e+j0U$tBg!7?wjQoy`%~7PPgw+tC zvrTZ6X=o1o2guV(c>QQ^L{JwRl89jrI87d@w&(Y%WH*p0N}WaBW4BY_8891wj@LKz zLHCV=(c$1|@n?cbOf@X99MQen8m;pB=V?H_9J1P+$4C*lXx#1~dIWB^_C_A8IK38i zE5y3Uh+r$Y1~>ymJpx`6+(MiIaHctYPjSqv9umb2ySFO2+n!p zg}0Zc*P($$NkWiX`&ci{(U;+cMc#eqHH8V+OXe^HbV_C#kGdCQG9xzvwe!=S3mLEy z<|Y8v$-2R1zz)*q&$FW<+KH)02c4+vqy}GMk%6ejR1z~rBMzM(xF%d?W9Ars*req! zfLh4i-{7G$>N$*h1#9=i8Uv4@`}0)H8WiqEwek6!my1rp8@`Xu*P20ktO4yWiMOUd z;ROd5JHDw4f&-EO6g9#9r9AXsa4hFJ(cTC8HT|_6T93A%=;081o zOYU<)NEGVl06B~j1c*fop{O+|!!*_VH(ITav*-^BBHB^fkQ{lS+ZIZU37{R7qJW-Z zY+QPP;)pB&Ik>0EJ{5xi7atIjshDVF<~VpMa5qwmvv@qUFVLy=1*^o%*6!Yk) ziW@=qe2H|>1<}44G7l_=@1S^4;8ZZPzQ}ju7jS&%8$Mx~^evw-68fG`NJRGWiRPt) z5ZDPg3hhlt!%+{eg450Y7#QsYIRofD^lbE8pA4|#E)(!okO;K#=HyAbuY#+buU{GK zKgNe|PDrz8ccML-0L1Il9=2E?J#4}7uTBxolym`eRGOZhi16ai{ZBUWKi1_}>_^5ycgbtvx$l*`Btsd0dY618?#J)J zyX8n=ng709cB#hP>N!p}YV3K^BcTeYszQ-?3>2WFYeTA{gGEEyKRZ|rw98s5q0p!3CejyIzcA$PI-zj;S2`Vxf z^xrsD;m_)>?wbq|+%M|;$*3fzI!uu%F_pjuBx60U;rr2W9)vdYwVN`JkMXJM%lp)Y>?E`B-f@%l6{=sz3a#x<<*Cxj+Ai*8*qlemow9 zFO8q^eAdL*XO%pm-d5B@T=zI1;;jQ2!J^L8grBl@h zkIA?*yexdfhbE89dVb&|>ip7BQ*}PxJh>!UFO*Bd+DadblE>wu|2XK+CG#MctYjRZ z0>=yb^ZGp5#;A<_JP)S~&Vf5VDRa7PgT)YSpK`SAQyPRnwZjhs4TL*5NMuBKJ1v30 z$XN$^z=6M;5BRLysP1@D4z9lrw1=~9Bif*T`6^=cP$%QqzIzh1-5e$71Jc6f*?d`? z_YrHYGPUG49-D9;$|5%5tMlbapl&nDr3sxT6<#3c;<03bTq!CZ$EEaTNR=&;1=YA1 z6g)0`N^WTSI}n&dnKMXA&xg*5E1`V!Y590_H)F&6T7VJw42ct%t_gMyI4xRSF>;~Y zc80zMq0^kOS&Fk9D(}*4m|b|dSLN)nNQgM)i3FKo*?1!Cnc8AesYSBm;RkT=pANvy z_zwo~-Y_rv$ijH^5$AA&S&y&awH!=jsu{BcrQ!qkYz&uaFKFu33LLQ+s@Y=ME$dH` zQ<`dWowZ%PSf)5@)01j}w@(s;{8Tz?ql?;)7t3Uv6>J;m+^7~y^mggHMBWI02rn*? z-?!2$QQh_vXBIS(hW2rl8@#Cxm&!5P)g1wvHV5PGq&e6$b>T8ecQBKefr|px$}-)| z+GSF^*MmbU9M`zLnRc%ScDPPZk>$EX*X6QX!pkrEio*%#HTrPgw;W0X|7k?7%b$b3 zO7+9}&U2|7yc{F|`W=elV7#tQk3nQORox$x1DpP-d2~<-tI3NDgBQ8UE%tj%-Wz_M zCl#IaIFNs;sgF4VSMSPidgB(@|0s6v6h^5C~Un8fRhckWO`@YPNO<5-&G8-jy8xk_byAuo>g{1Bq)BN_IyUuyqG`Ic&n z9>p$vPhNkdGBK1n%~02Dli}D^?{P%mZj+t=K|}AUPv4adWA}b6Up-PAdcG7^>(v;> zvdL&%ZIQWTUcySf>TY&S?^|AWPYpDoQW@8=boD}$+0{q8Q@ zqq#w?Kd(2OtNl9ZU1X_WJxd+(N4O{5EKf2^PW3GC^=~*Y@PifJDdDPLmmpV?Dz&Tm zp?0K5H@pciY#849S!+DcF6N=;DEhX?%K|=8YLax>xHRGS8Ef1gLOC|I`EATnr+V`cg{EfN z$1L<|j9QA{cWZ&Ke`dk#73nUPBHd~1=7}!?bWFWGI?FT6f_S{FCY}ZCw$v=IGYbrL zQ?tO$0<(m@x%iS<(w%*LP$U>A8s!}1%ft`x2i#+p)$@qC0RJ(y`f1GKjWyl_y3Wy4 z>dx2`%tEt*cr92{@}ivO`UAHC`Q0fc2Cw0l+SQ9_=38=eeRP6rt=j?MHdHFG3`#}U}Qx$fN!?9cmk@V2O;xuYlm!`Y`L(A}?0BF$>h!w)`Y2pB#%!*>KL|{DjXM1gc_nx@ zFaII)@c8%-S6bhC{sOtfzMzgp$AmyYj<7<>_&UIV*M214mh}8w;2JVa@PIY9a@kuS`cthztuA~U1?p0pimFqYvsgaLN&P88Ug`>reljgL#SI)x9+WHcK3(}ej!E>hQ~Sx1=%W~$%Q ztV=Md!_%#8aMso%!Q5*O2A&C~hg10lUP^a>%3ecd=0m>~C%&zF1yi;bN?y8P z>8p6#i$Czvo}Xzw3o7*8Olx)W0MFFS!q{n1E7J&k0c8O7T-fS}`Pmh=p3SCkfp#Zp z+8L#!D@ugyt!4d!41=0mokHLx07R;5>R9>eU~Q`t(%aYJBbM31I@PQ3!j={Tet(*6 zz2MbI^*y?`^lE%2$C?E0Qn$KT8DuP}XB~~lOZBWXP*JU1t36Yl`qoi+C!KYkR#&x*D3_`;C`p zp;NN)kYX?c!KV(+4m{i%XCf08YTidV@sw&_QN4vySg6a?Gaancu-pEQCwXk{7QNh5IZW)_%lvU<89#TEJShT;ptc!JrQ5yTIiv?wgY05m-I>~q_ zcIvU#?ZG~!5Fi4M>#(s>M;?Z6b60ddnEKpoLk_jdN29IU@tz2x~HIfI3db>5m&SzA1q522LqSwm{eMH{B+HTuO0G%;4g~Ui{K1@Tz&(mR(=4HrxH^D z^&`!i*J^_Z6+P0Q6KDXR6}p|Gyk3!#`KT~BIx`bqTrx6z8UBn6BO@aSblP^lWUp+P z%b%D5?K<7#oir%}Cr8G!BDuE&oV!1&!@l*rJ^Y!S%~dV#*^~` zhn$AxcdtzMFD-j>-CbZpCoeoj<`jWdMmGVu7>3?>X80Q!m0)}#nj~~d;8I#fEgS)G zyq@~-sSkZ8!)2RAr&7@N?2q3R$tU&(ZZ>TXfipvDgPIfFP(R$0!=WWDC_B3q(nyc4 ztn(#Ut+=|N-eQ6~NIwf{wD!~f3c`y???EU-jrxSaA(ZW5aHxGvA}+PNO|)iCw z1!h;C7}M!Yos%ir?z|gi;J6yKVh!TiqQ!LJG02T!7jeJfP{Y>@`lD4?v`9&7B6Pz@ zbD=T-F#r!Z++23<0!e$&smF|Pt%a=zsgqlfJeVb0wjNO6#kqZcH zj+4L|vROmGdHbAgE1nKP2JdQ(a4&1usoNO=0=ijl6A`Zo-3KfcYhXnLcAZCse{=`V zMZyGh20tiG4LB_g8b@ScLu1L&)nhifm?(EX76Yza2ctNKe3rX3bUup2{%&F)W==;@ zgG^bycEjBa^qPu%oMh}YlT2M#3LveV8GB@@+?SYcF~#@d(!ZZsULW)wlk75LL! zGJpm@6X-_Jz**oA7v2S&A^;bVBmebr+@Oymc7^S1=Sian5P&oW(zBh1c|dFPfI@f@ zKcJ-m&vduT8HpH0&Ic@J*Epb@)waH#i6iQ5hlHD0`t#uU^^xsKCo`0%AXoTFy}H*V z&Ol#D z^b95z%uXyAl%#NQoUIs1LcY#nB^K;{ELhp03kGgNkzOeD4f`*G;b2qJtr$E_(T8mP z`8e~03(>l819gnq0clXEYQs;sU%HzGZbCB#9w8T>;%dMS4))kl`C;rr*ihn#;pxIBw{$QjQ71hA>Cu<`Z z$vn=-lk5gvpieApPL#4n=~<|SQwz^h0VmCsuDTx$_alQ_q~T)`g4d&Esy(r2cogSM z`_EN4Jj#P#lUZMA_coh zcNRwp^QR{hlimhlay$S}6~3ZKm_6aj!Eat9EAaxA?DWJ7;Cov9g|pYwg}j(=4Ro4~ z3U4t8CnLNt`6E{ws|Ugp_346@I%WkIv(y&|zQZ*H7;DH^M5aBNYMPVeO&viq7lLE- zCYV?blXigzz$s2yuDwXAg`||_I)J21B;_X8rWoNa>P5U-O7N1aFAjJK^rmUMHv)Z! zG;}Xdz;%oP8wNw;<;fmnE)nMvLT=2%c7rnqg-T4SH$N8fuv&>1)R38YiHwTWOS}|} zisTlUMc!5GYWziD*9e*zJCbJn#HMl80)DaK+i|MtO%9U)5fSFbQ(6Y7;8_GF7QYOs zc?4O%3+EB}1E+`+?5+}bzvuAAO6ha_iqNR{e}6-4*Ea;XySfU< z%01+gOYDyn5rs`6u+$%j4=tqos{U$xN9t73 zq2mLS`+uoZxP(3QJB66g#0~Fzy%a^7o^aRVNPRuDtAZQN#Vp)Dfbxeh6%g~yD^RzY2p$jPGX;%9-4!bn?Pz1?T8x}P9Ts7)*&=lNfyC| zjmR3Ki37MG(SZuO#s>Wkpg~PS0sEq@uf+5SMW;;DL~yUl(+fC6%FAC0_xLkGDDrm+ zewR|jiX-l)ldq^5F5`ua%UDw$5!6>|WCjC)fDZbLF3yAH^$JWg3K4=N=G z(;0O8ADerQ)!Ja_$|-e&%`6zOb;hjjct-tpuGK;AUj(GR5CJ?p4Yr0E&}|!R&1^jH z86-xXb$Gapv8{-Q>=Zg5fISU1d%yFnOS)8ID`LW7W>oo>HcI;7ZE&B-m_x@g%@Dx# zlDt$6r{Y682*8Zum-_rXi=iQ#4zUK+FrId`QtugJ-D^~;^r2Q>{vkEfA1-$YRr`!l z;c=?pQ0o@d_R3JJ3mBun4z>EE`k=9@`=B}d0;{y)C&2NcTn^xZhjs}IcZH1m9&p}J z#xSdHeeH|}8y2fiSeE$wmg+Ff>H#swHN&ii@Cq_%7#dxx)(o?*PUyzEWU?x{&}y3Z z_ScKQ(1b96Yl7C$tR{YMpDY6{erUd|ywGYfqC81?7|uMrxO5{`k`q`)|yX>4lE zu$k5Rr66$(P;Z*V!NI6ePW2vcwa8kLY$o6=|6JWX+`5Vp-?5_2KsRZcSI3#bIl!(1 z1JE2{waI!WSgw;K=42d4%kJ~QMWvn(7^nDoE!y~Mwb#!;)R}4BBg8tIG zBdk`&2kQ3`R@;n?OCiRL>--O~zKZ(*w50ar2tS}Cle zH(Jf4S)^@C3^njZs}Zj+H5wKe4c@_SY3q|jY@xq93Q$EGa9A+lP|I($MqSK`aWBEt zgc(MoT3x9VfcLrx=zsc7%_3aOny(=?AUMq~cA*og>gyP`HoG_wPiN?0qt~ zNM!Oq1OGSmugpw8o&h)v!-=za89;<~o84b~h2VL}};xmt?HoN~` zeF8T+YS8LnFgEIPoXu=cj_dl;AxHxCq8g`Xc2es{SIE=W;V(_X5ud>d?e6`h#VB~76O_PcRRq%5Q;^cXFZ`H=`0G}}?BCvb-dG*5805aw3$E(57FIU~K z(bb)O4Ip}XtoRx<1t)yVueF{sXM75iN$Xggr-!ezF0Jor)a%Q+nnu0KyB@+eL-oDh zYTWu&251EKvDG)K7bzfz9*l6zGz-nCDy6RlaL1gV18Va1&<4IwJ$pTRV5qg%Tdmq` zPkeWC4#qTVqC0$_h20N^EW*JMJ;|+Qs0L%Kd=xxkjMY54CteUSjL5q4T1qLe#*MMs z)Jb%Jont=qW9AK3ll1+lz-wxW`fd!C+)!yZ{IivWEj?y&~p+JuO^o;tCkRiHNCV>SN=!tU7o z@zzo!!_z8oW6G$J_gNc)KL-qdkve@qT1)lwM5~K=m#NxMvTkpV;AOzeaH;rksTd$# zflniN8B)XEC(y@g?)kx^)QbbsMl;yiU*=c$PqywqOb#y`8ft{eg>@O^VGm8Qror%} zO{vwU+mqBf@L>l5-N&ZskJ!eU+mBq%ZySSsom=BQq1UX z^+&07YFF=M1<3BfJyP9R<+}hJphI{;>AuSw?ZArx;R8!zcTKhG8<7%y%bpd#WfAik z9t05`i9`TgE|#blrdh2`#E#lI4FbjwRoCfO=dSU)pLa~+lE)PCR^_GL85a{CT>&v& zHY9E#e4ZMcH{CkcB<}a=1J=E@56+`{0mHn?E?5q~vtMnSX?3?YAl-S|02cVtgHQpO zs;*Mj%z9oNa6dR*sd3U(qnTFAzpnD9|Dwv+xLMYBW)3_i@Ki(4fw4q1G6J6o;~%kF zRR08~C^-4}^y(wlt<^t)jS7dA_;mUlt7!(}5`c}US2g^i8av0T1JAY(%&|^8#A`g< zVc?3#&CFR-=A+ipeSyZaFzG4!a!B?J{9N$8TsIaVl(d438)(49RME|w%d%nP>F|NNN8BwxoXRtnPTi%EF~G=?UuzBQ!&! zQ>yEHYguTX`}>Fa)^|nw;eJQ!gQfi%FhbnvJ#nG|7wKSw*3Y~`VA=#iDXK|gAB|eU z{>9k?wSe1&+Y2HhNC*|t zbq9S_BlF+a@<&Q7AWR$|yxn9I1mP^eGJ@JoZmbDF`nX^T-^f+QaUqW$Z`hBH?|hf3 zj}n0>K9NU_M>C3)Z~)1dAom)%$3WC@q7 zWX9`*fo;vR^twMqolDOLT2SZJ_18j&sMeLH3vhcwn`d{qRbtFlh0W}IHS8&?xvE^i z8%OP2V4aQh@4fUhLnW_(Cfu!JPgy@rIEZ&Z@^kz3B!mgkBRcu6EB@ zZ4BITL!Y(!<1z19>ptU6)vm%SO<$v9OjCUp8j5dJSe?vu2Jel0)nu`CgMSSqgr}X9 z)}xQqG#PW7eVW zQQ;&3SS;P6!d_XsM;#fnMr8kHV0pQ5amQgTz$$?w_N_7KNd2xdE3NU_1kx@<07ald z_O}6b?EO}scAJ3IV&iL41UmtP)0i`HGT=?z-PlvkW-pieaSMWwAma8jQTOS(BW4+f{@0-TLSiN;PgGEW-hn(+{ zuW{aYks=L2l^tlFQ<+F1f-^JmhMnY;C*Jri)nOrON;oWJ&I1X5gVo;F`c>(AT(8^I zt~acgjQ7>mZ&^Flr?bbcKcb^YVGnuD zfyr!!$J;>*DxzCe(FwYGvUam{47%}1#OPIrr9(g7Vx5`ZZ#a7&KAFG^CtX&N>v;*s21C+Q$&VlWkS)98~b1vR}$!-f&V(K>QENYg6_bTa) zg*;fgo3tX-EdOI0SQC3xt4}qXq~E95q=>%#DR7HLs*I0v_0Fe29;T|@p8~ZlSGBiW z5A%k2cDvO%df-Qz{R0j<`{DJ2_!~S88^2ZRH|6ZGTGfXSRUV#T_$BuT zrR11SxKzD+hjnylotyQg9oFT*$qK%-o@l-o`Y(}m93tt=n+nr;0h<-vNo2Z7=V_({ z;J59EFL8}8Q!T%;hPEdohv310Vr4Q5xc+GnZ{uvCAi976ncyFeM%l$Egmr;?0j@TD z3Y>)pJPD8qwy!YF^CQsVYAX+j%)Xs^f#FAB0CJsrli66^y~{cVzpn`Uo2hNPtZs7Q z`&Bftny#X|t)@w`&2;HtU~cF;X#qxJzi2nuVt1=ayRFIKiZ%S&S{^5gXf3N=&H!3KFyz5R{V?~p}homf=dVc4dCMN`!=d!VU4OPx|1mg{r&SZBpOW01T% zxCf_UdTh?O)~|t#^_y_v<~w`w01%z`gEh^14u_RMvZt#0(Q2=*`q6U0MXUJHD#oMZ zeruJS{TR9w4nL|6?uXiZRc!xH)=$;#94G1!zp=>gmM|N8F2T2Jm*Bug94}#m=ObKa z@>rXdZ&tZX)3_bvOr7A>HVQhg8D`xLN=SNMe?#C`mC$um!`QW|+8-sKzE5)`nGscpA$_uvo>W#cRcnkuNthCL}ZGKaHvghj>b1kEF5 za#!l_Yf??>+b0_pYIJ@3o}4AYa0SilATy_qmkIX@;ZIdC&pxF^Vp_CoWQ$ZLMrFVi zEdV~mq0}}FPf|DK+0DVXdjv(AxwTOZ8k8@zaHy_InY2elX}`y@j0SdrnNcm;bj%%` zXWMr0QyxMd5HDe?PVh2)PyuqO(Am4#lPWk~!gieyE6KOB4!4Qbf~NLZm+~D0dbg~Z zJnB&i#_yt)0k38u>_1$HCAyio=Ai+C$&rQiCtvTx4&#?y%c&fW*ZANMVp z>^<@8Db=I39aXwn+c;Q94eoCD#YT9vyG^&%E4$nO2J-RB z^J#S?IPgFnz%Sp}0|mjWw|m-mCOPY5GHG6YlCvJ0*VE23l4fDMG?-IwIrcW!D(u-_ z08rD^)?W7YXzaA!b`Bnw_O?rq_wco(E5Bu7k@v!@0Pfv@r?q_R@uOa<)P2>AxpH7Qy=x=wR#g}oC z4T~>T_ays$*We2(Le9b%z=5_ST903_BN|s3hYt+EtYIn;+?0%XOLtZ#iWM(Ku|j9! zvO|hF<;(F2o@()MAF^{VMq5Kc+xL?V#R)|2gBhGD8T zr`j`(@6^I>d@4vWg zF)Mrh>Y9syZ|ph8c8+wrsgnoWQ*lH-84L)zTm3%RrVwcIdG^yziaUK&iUE^lLLRV* zON$~A6Qly@RgYz2lAB#kwxezxVxNTC)(o+a$HN$EJDI8SBVgU94YlXs)AvK|d^~EM zZ}+O1W5oG(-@La0I_ZlC$UT_8n&C&aq7dSezjD646h&{iz&>wa1-U(iIEIkEXwFZ` zBy6uWDK)rfj#164632xnsb(?$}DenpMB&|Ze{ z4XuXTEz&;;kjAAEeE5^t(BS|~E-Fc*5*)Gvb#$yVK>06<9@^M8Tg}z2l#c!$9ejrdhu%eXxJ|Qc(vUk0As{76_KI3s#`3O zu6kT!UkLc{=rwjzGI3X3Ys1PpR&brI;|4aq!A^-AsJRaaQU<0|h<1u;I6c}<5!Z1d zZs3R;>~n%^Ojui}?@&7S-VOFTvsQfHn>}F?pqUs?-)xV^NjvHmyA>W6++q(g#;eL( z?7?tRSnF21OICG&u~XgADvieSe@WOTwL6M$v#H$ysy3=#yA3xR=-}IMU)`l5x7#b~ zmV<*1PQx{5U_1`_RF zseQ)+>zk&=jJ2n0i)se9&`}1lJ+zH>gS!BJrzv?iFH}`_TxBZ-3<&)#|E&a|oTP3P=&Avl!mABqwUk)Sf9rvIYsLURZ5h3i-c;J%LVporM zuk1%lbb~LK*dvkJ@;-ZtQ8zv&ilShn=j_!(Q|s@ye{?T!Se`f==xtG7;Ct~47kD{5 zy}8#doFt@N;E9a-0^gn}<{j;_m4_5_{@SBL!eV&WC{BdDAZyfMa$XeF% z3!(v#is2;?NcHjYzwN_&hPTV`V)f@FyFu;L^eQ*K&1Cz6`c=@4rZg30`^xu3h()R+Z~IR+K8Ef#M%*gou(E%WFKX0SD!p&pAUiGakGH%ZCBULvM-GXO!0KgO`tLG z6TL9ap8-WZgCSFB?dz&clmI9i&RVDv;+mqpCxufb26UV?%I@n$g=GRtsCCl^FuqQp zg*318_P+a!;|)k23e1T{K5n)Gv(x~Cx(GjJKs1fYpsJ(!(X^TIQnW4B9*u``?4)8xq=upQ=RXjDMITz*Rl$u)jnII zG$^)QV=E+~a-YGrhvV~Sm`6!@8!{ImH+a?%_t7qkr6Z6sY%=i7>f+msCmO{cSRIA8 z-8Plu>Jnn>n5=yu7Z-R!+0oH?w+iT3vz|TS?uoi@b zD$)W;7lFk6=7TLXaK}J+KJU9o_*lpkwW2N2R-6PDiQA7rnB*!HhvEvw1vFFQ20%1S z^mo3IRC0~DP!UW#43PC=q`k%!7Z<@c!R*OVQy<)*X&C-?pdCPbsc4$T1=Ex@5okTE zf-e64TqrIQIIsogSyAaO2yBzI6MIY?`X!6jN%7@NcbAVjQkO04E*k{Y?mS}E zxpGBlK$|zEt{XJ^+;wAr+-0NenHU9k;Az!Xkj-G}o$c--QYFD%M894{zq^Qj)&rJ) z%|$FCuRFe60CSkgo>2cpQa38O8{zx3YDhP&E~?wl*M7ZWJA4uI)4|z%Ih|8Sy|hVzL@h z!?i9nonkZxNaD;exF~SI9}X; zGv()6)r?idr&F5+a88*I4QUNnO{F7&%nqc?H1f0ft-TRA-e=(#&Ur2#uuaIu1Cd|K z?8avYvGV{7UHFKj1QwI2_q3K*=@A^%AcDOB;o*s~vb0TswgV?%E#u^*z2--xiHHyK zlG$ZoO^tiZF3&!AP_xh%{(;NmK@wB^-1Bk!orZ^ek!h<_D|kI#c7M&X5bw{mpUv

tn!l1@FRi_Tz9R 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

fMZcg* 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

Uo^Xa4KaGj^W~0?p#M*m4RAgE?RdxW}5I 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 diff --git a/index.html b/index.html index 830b941c..4f2072a8 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,8 @@ StreetExplorer - - + + diff --git a/lane_editor.html b/lane_editor.html index 3172b3d4..18071773 100644 --- a/lane_editor.html +++ b/lane_editor.html @@ -4,8 +4,8 @@ osm2streets lane editor - - + +