@protobase/ui 0.15.5 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/account/two-factor-setup.js +6 -5
  2. package/dist/app/app.js +1 -1
  3. package/dist/app/create/create-page.js +1 -0
  4. package/dist/app/create/create-record-form.js +1 -0
  5. package/dist/app/current-address.d.ts +5 -1
  6. package/dist/app/current-address.js +2 -1
  7. package/dist/app/displays/map-display.js +50 -34
  8. package/dist/app/displays/map-groups.js +12 -3
  9. package/dist/app/displays/measured-heights.js +23 -0
  10. package/dist/app/displays/record-card.js +29 -17
  11. package/dist/app/displays/virtual-cards.js +12 -14
  12. package/dist/app/embedded-list/embedded-display.js +7 -3
  13. package/dist/app/embedded-list/embedded-list.js +5 -4
  14. package/dist/app/field-editor.js +9 -1
  15. package/dist/app/list-page.js +5 -3
  16. package/dist/app/map/approximate-position.js +76 -0
  17. package/dist/app/map/area-features.js +80 -0
  18. package/dist/app/map/maplibre.js +11 -0
  19. package/dist/app/map/position-areas.js +78 -0
  20. package/dist/app/map/record-map.js +2 -7
  21. package/dist/app/map/record-position.js +5 -4
  22. package/dist/app/map/records-map.js +24 -7
  23. package/dist/app/map/theme-color.js +23 -0
  24. package/dist/app/nav-recent.js +1 -1
  25. package/dist/app/pages/blocks/card-frame.js +2 -2
  26. package/dist/app/pages/blocks/grid.js +10 -2
  27. package/dist/app/pages/blocks/link.js +1 -1
  28. package/dist/app/pages/blocks/record-row.js +51 -0
  29. package/dist/app/pages/blocks/stat.js +9 -5
  30. package/dist/app/pages/field-value.js +1 -1
  31. package/dist/app/pages/render-node.js +2 -0
  32. package/dist/app/record-page.js +5 -1
  33. package/dist/app/record-row/record-row-body.js +114 -0
  34. package/dist/app/record-row/record-row.js +93 -0
  35. package/dist/app/record-row/row-window.js +20 -0
  36. package/dist/app/record-row/saved-record-row.js +42 -0
  37. package/dist/app/record-row/use-row-scroll.js +51 -0
  38. package/dist/app/router.js +7 -8
  39. package/dist/app/saved/saved-records.js +1 -1
  40. package/dist/app/search/search-model.js +1 -1
  41. package/dist/app/searches/filter-chip-list.js +28 -0
  42. package/dist/app/searches/save-search-button.js +72 -8
  43. package/dist/app/searches/saved-search-rows.js +73 -0
  44. package/dist/app/searches/saved-search-section.js +91 -73
  45. package/dist/app/searches/saved-search.js +7 -3
  46. package/dist/app/searches/saved-searches.js +3 -5
  47. package/dist/app/searches/search-controls.js +13 -2
  48. package/dist/app/searches/search-diff.js +97 -0
  49. package/dist/app/searches/search-name-dialog.js +62 -0
  50. package/dist/app/searches/update-search-dialog.js +196 -0
  51. package/dist/app/searches/use-opened-search.js +15 -0
  52. package/dist/app/searches/use-save-search.js +68 -21
  53. package/dist/app/searches/use-search-row.js +56 -0
  54. package/dist/app/use-record-editor.js +5 -3
  55. package/dist/app-shell/app-shell.d.ts +1 -0
  56. package/dist/app-shell/app-shell.js +4 -3
  57. package/dist/app-shell/page-scroll.js +17 -1
  58. package/dist/app-shell/sidebar.d.ts +1 -0
  59. package/dist/app-shell/sidebar.js +4 -4
  60. package/dist/app-shell/top-bar.js +4 -4
  61. package/dist/auth/auth-gate.js +18 -9
  62. package/dist/auth/auth-provider.js +1 -0
  63. package/dist/auth/code-form.js +77 -0
  64. package/dist/auth/email-code-form.js +18 -77
  65. package/dist/auth/forgot-password-form.js +10 -10
  66. package/dist/auth/forgot-password-page.js +2 -2
  67. package/dist/auth/resend-code-button.js +29 -0
  68. package/dist/auth/sign-in-form.js +7 -8
  69. package/dist/auth/sign-in-page.js +3 -3
  70. package/dist/auth/sign-in-prompt.js +13 -9
  71. package/dist/auth/sign-up-code-form.js +22 -0
  72. package/dist/auth/sign-up-details-form.js +81 -111
  73. package/dist/auth/sign-up-page.js +17 -8
  74. package/dist/auth/two-factor-form.js +3 -3
  75. package/dist/auth/use-sign-in-address.js +21 -8
  76. package/dist/index.d.ts +2 -1
  77. package/dist/index.js +2 -1
  78. package/dist/lib/flip-guard.js +43 -0
  79. package/dist/lib/page-scroll-lock.js +20 -0
  80. package/dist/lib/use-focus-trap.js +4 -4
  81. package/dist/organizations/invitation-page.js +7 -6
  82. package/dist/package.js +1 -1
  83. package/dist/primitives/dialog.js +3 -2
  84. package/dist/primitives/otp-input.d.ts +21 -0
  85. package/dist/primitives/otp-input.js +117 -0
  86. package/dist/primitives/otp-value.js +23 -0
  87. package/dist/primitives/responsive-dialog.d.ts +3 -1
  88. package/dist/primitives/responsive-dialog.js +2 -1
  89. package/dist/primitives/route-link.d.ts +1 -0
  90. package/dist/primitives/route-link.js +20 -0
  91. package/dist/primitives/textarea.js +36 -0
  92. package/dist/record-view/field.js +56 -53
  93. package/dist/shell/assets/app-sDEk9LFu.js +66 -0
  94. package/dist/shell/assets/index-D0AzKE47.css +2 -0
  95. package/dist/shell/assets/{index-DxmdRnr8.js → index-L7nXyA_7.js} +1 -1
  96. package/dist/shell/assets/maplibre-AOh9A0NP.js +814 -0
  97. package/dist/shell/assets/record-map-DbwHSPf3.js +1 -0
  98. package/dist/shell/assets/records-map-2U_CQ4RG.js +1 -0
  99. package/dist/shell/assets/shared-protobase-ui-BMcStVNP.js +1 -0
  100. package/dist/shell/index.html +4 -4
  101. package/dist/shell/protobase.shell.json +1 -1
  102. package/dist/styles.css +15 -0
  103. package/dist/toasts/toast.js +22 -6
  104. package/package.json +4 -4
  105. package/dist/auth/code-input.js +0 -17
  106. package/dist/auth/sign-in-address.js +0 -47
  107. package/dist/shell/assets/app-BdEV1_xI.js +0 -66
  108. package/dist/shell/assets/index-ibaHR5wQ.css +0 -2
  109. package/dist/shell/assets/maplibre-gl-DFcSGTFJ.js +0 -1
  110. package/dist/shell/assets/record-map-CL9bBLic.js +0 -814
  111. package/dist/shell/assets/records-map-DgtD0cK5.js +0 -1
  112. package/dist/shell/assets/shared-protobase-ui-ibIDwOpE.js +0 -1
  113. /package/dist/shell/assets/{record-map-DBE96hFo.css → maplibre-DBE96hFo.css} +0 -0
@@ -1,814 +0,0 @@
1
- import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{t as n}from"./react-Cvdyeg_0.js";import{t as r}from"./react-dom-B-VxWsjA.js";import{k as i,q as a}from"./app-BdEV1_xI.js";import{t as o}from"./jsx-runtime-NZYk81nU.js";var s={name:`map-pin`,size:24,node:[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]};s.node;var c=a(s),l=e({AJAXError:()=>Kn,AttributionControl:()=>UP,BoxZoomHandler:()=>YN,CanvasSource:()=>Sx,CooperativeGesturesHandler:()=>NP,DoubleClickZoomHandler:()=>DP,DragPanHandler:()=>AP,DragRotateHandler:()=>jP,EXTENT:()=>M,EdgeInsets:()=>pO,ErrorEvent:()=>I,Event:()=>or,Evented:()=>sr,FullscreenControl:()=>IF,FullscreenEvent:()=>FF,GPUInitializationError:()=>FN,GeoJSONSource:()=>ix,GeolocateControl:()=>OF,GeolocateErrorEvent:()=>DF,GeolocateEvent:()=>TF,GeolocatePositionEvent:()=>EF,GlobeControl:()=>RF,Hash:()=>LN,ImageSource:()=>hx,KeyboardHandler:()=>CP,LngLat:()=>Q,LngLatBounds:()=>kb,LogoControl:()=>WP,Map:()=>iF,MapBoxZoomEvent:()=>hr,MapContextEvent:()=>vr,MapLibreEvent:()=>cr,MapLibreMap:()=>iF,MapMouseEvent:()=>fr,MapMovementEvent:()=>R,MapProjectionEvent:()=>_r,MapSourceDataEvent:()=>dr,MapStyleDataEvent:()=>ur,MapStyleImageMissingEvent:()=>yr,MapStyleLoadEvent:()=>lr,MapTerrainEvent:()=>gr,MapTouchEvent:()=>pr,MapWheelEvent:()=>mr,Marker:()=>xF,MarkerClickEvent:()=>bF,MarkerDragEvent:()=>yF,MercatorCoordinate:()=>Wm,NavigationControl:()=>oF,Point:()=>b,Popup:()=>HF,PopupEvent:()=>VF,RasterDEMTileSource:()=>Wb,RasterTileSource:()=>Mb,ScaleControl:()=>AF,ScrollZoomHandler:()=>EP,Style:()=>Ak,TerrainControl:()=>LF,TwoFingersTouchPitchHandler:()=>xP,TwoFingersTouchRotateHandler:()=>yP,TwoFingersTouchZoomHandler:()=>_P,TwoFingersTouchZoomRotateHandler:()=>MP,VectorTileSource:()=>jb,VideoSource:()=>xx,addProtocol:()=>Un,addSourceType:()=>Dx,clearPrewarmedResources:()=>mb,config:()=>Vn,createTileMesh:()=>mx,getGlobalDispatcher:()=>_b,getMaxParallelImageRequests:()=>ZF,getRTLTextPluginStatus:()=>qF,getVersion:()=>JF,getWorkerCount:()=>YF,getWorkerUrl:()=>$F,importScriptInWorkers:()=>tI,isTimeFrozen:()=>Pn,now:()=>jn,prewarm:()=>pb,removeProtocol:()=>Wn,restoreNow:()=>Nn,setMaxParallelImageRequests:()=>QF,setNow:()=>Mn,setRTLTextPlugin:()=>KF,setWorkerCount:()=>XF,setWorkerUrl:()=>eI}),u=Object.create,d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,g=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),_=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=p(t),a=0,o=i.length,s;a<o;a++)s=i[a],!h.call(e,s)&&s!==n&&d(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=f(t,s))||r.enumerable});return e},v=(e,t,n)=>(n=e==null?{}:u(m(e)),_(t||!e||!e.__esModule||!h.call(e,`default`)?d(n,`default`,{value:e,enumerable:!0}):n,e)),y=`6.14.0`;function b(e,t){this.x=e,this.y=t}b.prototype={clone(){return new b(this.x,this.y)},add(e){return this.clone()._add(e)},sub(e){return this.clone()._sub(e)},multByPoint(e){return this.clone()._multByPoint(e)},divByPoint(e){return this.clone()._divByPoint(e)},mult(e){return this.clone()._mult(e)},div(e){return this.clone()._div(e)},rotate(e){return this.clone()._rotate(e)},rotateAround(e,t){return this.clone()._rotateAround(e,t)},matMult(e){return this.clone()._matMult(e)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(e){return this.x===e.x&&this.y===e.y},dist(e){return Math.sqrt(this.distSqr(e))},distSqr(e){let t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle(){return Math.atan2(this.y,this.x)},angleTo(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith(e){return this.angleWithSep(e.x,e.y)},angleWithSep(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult(e){let t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add(e){return this.x+=e.x,this.y+=e.y,this},_sub(e){return this.x-=e.x,this.y-=e.y,this},_mult(e){return this.x*=e,this.y*=e,this},_div(e){return this.x/=e,this.y/=e,this},_multByPoint(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint(e){return this.x/=e.x,this.y/=e.y,this},_unit(){return this._div(this.mag()),this},_perp(){let e=this.y;return this.y=this.x,this.x=-e,this},_rotate(e){let t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,i=n*this.x+t*this.y;return this.x=r,this.y=i,this},_rotateAround(e,t){let n=Math.cos(e),r=Math.sin(e),i=t.x+n*(this.x-t.x)-r*(this.y-t.y),a=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=i,this.y=a,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:b},b.convert=function(e){if(e instanceof b)return e;if(Array.isArray(e))return new b(+e[0],+e[1]);if(e.x!==void 0&&e.y!==void 0)return new b(+e.x,+e.y);throw Error(`Expected [x, y] or {x, y} point format`)};function x(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5}return((l*n+c)*n+s)*n}}var S;function C(){return S??=typeof OffscreenCanvas<`u`&&!!new OffscreenCanvas(1,1).getContext(`2d`)&&typeof createImageBitmap==`function`,S}var w;function T(){if(w==null&&(w=!1,C())){let e=new OffscreenCanvas(5,5).getContext(`2d`,{willReadFrequently:!0});if(e){for(let t=0;t<25;t++){let n=t*4;e.fillStyle=`rgb(${n},${n+1},${n+2})`,e.fillRect(t%5,Math.floor(t/5),1,1)}let t=e.getImageData(0,0,5,5).data;for(let e=0;e<100;e++)if(e%4!=3&&t[e]!==e){w=!0;break}}}return w||!1}var E=typeof Float32Array<`u`?Float32Array:Array;function D(){var e=new E(4);return E!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function O(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*a-i*r;return o?(o=1/o,e[0]=a*o,e[1]=-r*o,e[2]=-i*o,e[3]=n*o,e):null}function k(e){return e[0]*e[3]-e[2]*e[1]}function A(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(n),c=Math.cos(n);return e[0]=r*c+a*s,e[1]=i*c+o*s,e[2]=r*-s+a*c,e[3]=i*-s+o*c,e}function ee(){var e=new E(9);return E!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function te(e){var t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],s=e[6],c=e[7],l=e[8];return t*(l*a-o*c)+n*(-l*i+o*s)+r*(c*i-a*s)}function ne(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function re(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n+n,s=r+r,c=i+i,l=n*o,u=r*o,d=r*s,f=i*o,p=i*s,m=i*c,h=a*o,g=a*s,_=a*c;return e[0]=1-d-m,e[3]=u-_,e[6]=f+g,e[1]=u+_,e[4]=1-l-m,e[7]=p-h,e[2]=f-g,e[5]=p+h,e[8]=1-l-d,e}function ie(){var e=new E(16);return E!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function ae(e){var t=new E(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function oe(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function se(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ce(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],d=t[9],f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],_=t[15],v=n*s-r*o,y=n*c-i*o,b=n*l-a*o,x=r*c-i*s,S=r*l-a*s,C=i*l-a*c,w=u*h-d*m,T=u*g-f*m,E=u*_-p*m,D=d*g-f*h,O=d*_-p*h,k=f*_-p*g,A=v*k-y*O+b*D+x*E-S*T+C*w;return A?(A=1/A,e[0]=(s*k-c*O+l*D)*A,e[1]=(i*O-r*k-a*D)*A,e[2]=(h*C-g*S+_*x)*A,e[3]=(f*S-d*C-p*x)*A,e[4]=(c*E-o*k-l*T)*A,e[5]=(n*k-i*E+a*T)*A,e[6]=(g*b-m*C-_*y)*A,e[7]=(u*C-f*b+p*y)*A,e[8]=(o*O-s*E+l*w)*A,e[9]=(r*E-n*O-a*w)*A,e[10]=(m*S-h*b+_*v)*A,e[11]=(d*b-u*S-p*v)*A,e[12]=(s*T-o*D-c*w)*A,e[13]=(n*D-r*T+i*w)*A,e[14]=(h*y-m*x-g*v)*A,e[15]=(u*x-d*y+f*v)*A,e):null}function le(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=t[9],p=t[10],m=t[11],h=t[12],g=t[13],_=t[14],v=t[15],y=n[0],b=n[1],x=n[2],S=n[3];return e[0]=y*r+b*s+x*d+S*h,e[1]=y*i+b*c+x*f+S*g,e[2]=y*a+b*l+x*p+S*_,e[3]=y*o+b*u+x*m+S*v,y=n[4],b=n[5],x=n[6],S=n[7],e[4]=y*r+b*s+x*d+S*h,e[5]=y*i+b*c+x*f+S*g,e[6]=y*a+b*l+x*p+S*_,e[7]=y*o+b*u+x*m+S*v,y=n[8],b=n[9],x=n[10],S=n[11],e[8]=y*r+b*s+x*d+S*h,e[9]=y*i+b*c+x*f+S*g,e[10]=y*a+b*l+x*p+S*_,e[11]=y*o+b*u+x*m+S*v,y=n[12],b=n[13],x=n[14],S=n[15],e[12]=y*r+b*s+x*d+S*h,e[13]=y*i+b*c+x*f+S*g,e[14]=y*a+b*l+x*p+S*_,e[15]=y*o+b*u+x*m+S*v,e}function ue(e,t,n){var r=n[0],i=n[1],a=n[2],o,s,c,l,u,d,f,p,m,h,g,_;return t===e?(e[12]=t[0]*r+t[4]*i+t[8]*a+t[12],e[13]=t[1]*r+t[5]*i+t[9]*a+t[13],e[14]=t[2]*r+t[6]*i+t[10]*a+t[14],e[15]=t[3]*r+t[7]*i+t[11]*a+t[15]):(o=t[0],s=t[1],c=t[2],l=t[3],u=t[4],d=t[5],f=t[6],p=t[7],m=t[8],h=t[9],g=t[10],_=t[11],e[0]=o,e[1]=s,e[2]=c,e[3]=l,e[4]=u,e[5]=d,e[6]=f,e[7]=p,e[8]=m,e[9]=h,e[10]=g,e[11]=_,e[12]=o*r+u*i+m*a+t[12],e[13]=s*r+d*i+h*a+t[13],e[14]=c*r+f*i+g*a+t[14],e[15]=l*r+p*i+_*a+t[15]),e}function de(e,t,n){var r=n[0],i=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function fe(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[4],o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*i+l*r,e[5]=o*i+u*r,e[6]=s*i+d*r,e[7]=c*i+f*r,e[8]=l*i-a*r,e[9]=u*i-o*r,e[10]=d*i-s*r,e[11]=f*i-c*r,e}function pe(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[0],o=t[1],s=t[2],c=t[3],l=t[8],u=t[9],d=t[10],f=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i-l*r,e[1]=o*i-u*r,e[2]=s*i-d*r,e[3]=c*i-f*r,e[8]=a*r+l*i,e[9]=o*r+u*i,e[10]=s*r+d*i,e[11]=c*r+f*i,e}function me(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[0],o=t[1],s=t[2],c=t[3],l=t[4],u=t[5],d=t[6],f=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i+l*r,e[1]=o*i+u*r,e[2]=s*i+d*r,e[3]=c*i+f*r,e[4]=l*i-a*r,e[5]=u*i-o*r,e[6]=d*i-s*r,e[7]=f*i-c*r,e}function he(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ge(e,t,n,r,i){var a=1/Math.tan(t/2);if(e[0]=a/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){var o=1/(r-i);e[10]=(i+r)*o,e[14]=2*i*r*o}else e[10]=-1,e[14]=-2*r;return e}var _e=ge;function ve(e,t,n,r,i,a,o){var s=1/(t-n),c=1/(r-i),l=1/(a-o);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(t+n)*s,e[13]=(i+r)*c,e[14]=(o+a)*l,e[15]=1,e}var ye=ve;function be(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function xe(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],c=e[6],l=e[7],u=e[8],d=e[9],f=e[10],p=e[11],m=e[12],h=e[13],g=e[14],_=e[15],v=t[0],y=t[1],b=t[2],x=t[3],S=t[4],C=t[5],w=t[6],T=t[7],E=t[8],D=t[9],O=t[10],k=t[11],A=t[12],ee=t[13],te=t[14],ne=t[15];return Math.abs(n-v)<=1e-6*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-b)<=1e-6*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(a-x)<=1e-6*Math.max(1,Math.abs(a),Math.abs(x))&&Math.abs(o-S)<=1e-6*Math.max(1,Math.abs(o),Math.abs(S))&&Math.abs(s-C)<=1e-6*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(c-w)<=1e-6*Math.max(1,Math.abs(c),Math.abs(w))&&Math.abs(l-T)<=1e-6*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(u-E)<=1e-6*Math.max(1,Math.abs(u),Math.abs(E))&&Math.abs(d-D)<=1e-6*Math.max(1,Math.abs(d),Math.abs(D))&&Math.abs(f-O)<=1e-6*Math.max(1,Math.abs(f),Math.abs(O))&&Math.abs(p-k)<=1e-6*Math.max(1,Math.abs(p),Math.abs(k))&&Math.abs(m-A)<=1e-6*Math.max(1,Math.abs(m),Math.abs(A))&&Math.abs(h-ee)<=1e-6*Math.max(1,Math.abs(h),Math.abs(ee))&&Math.abs(g-te)<=1e-6*Math.max(1,Math.abs(g),Math.abs(te))&&Math.abs(_-ne)<=1e-6*Math.max(1,Math.abs(_),Math.abs(ne))}function Se(){var e=new E(3);return E!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ce(e){var t=new E(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function we(e){var t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function Te(e,t,n){var r=new E(3);return r[0]=e,r[1]=t,r[2]=n,r}function Ee(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function De(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Oe(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function ke(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Ae(e,t){var n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(n*n+r*r+i*i)}function je(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Me(e,t){var n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function Ne(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Pe(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}function Fe(e,t,n,r){var i=t[0],a=t[1],o=t[2];return e[0]=i+r*(n[0]-i),e[1]=a+r*(n[1]-a),e[2]=o+r*(n[2]-o),e}function Ie(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[3]*r+n[7]*i+n[11]*a+n[15];return o||=1,e[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/o,e[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/o,e[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/o,e}function Le(e,t,n){var r=t[0],i=t[1],a=t[2];return e[0]=r*n[0]+i*n[3]+a*n[6],e[1]=r*n[1]+i*n[4]+a*n[7],e[2]=r*n[2]+i*n[5]+a*n[8],e}function Re(e,t,n){var r=n[0],i=n[1],a=n[2],o=n[3],s=t[0],c=t[1],l=t[2],u=i*l-a*c,d=a*s-r*l,f=r*c-i*s;return u+=u,d+=d,f+=f,e[0]=s+o*u+i*f-a*d,e[1]=c+o*d+a*u-r*f,e[2]=l+o*f+r*d-i*u,e}function ze(e,t,n,r){var i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function Be(e,t,n,r){var i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function Ve(e,t,n,r){var i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function He(e){return e[0]=0,e[1]=0,e[2]=0,e}var Ue=De,We=we;(function(){var e=Se();return function(t,n,r,i,a,o){var s,c;for(n||=3,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}})();function Ge(){var e=new E(4);return E!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Ke(e,t,n,r){var i=new E(4);return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i}function qe(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e[3]=t[3]*n[3],e}function Je(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function Ye(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*n+r*r+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=i*o,e[3]=a*o,e}function Xe(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3];return e[0]=n[0]*r+n[4]*i+n[8]*a+n[12]*o,e[1]=n[1]*r+n[5]*i+n[9]*a+n[13]*o,e[2]=n[2]*r+n[6]*i+n[10]*a+n[14]*o,e[3]=n[3]*r+n[7]*i+n[11]*a+n[15]*o,e}var Ze=qe;(function(){var e=Ge();return function(t,n,r,i,a,o){var s,c;for(n||=4,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],e[3]=t[s+3],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2],t[s+3]=e[3];return t}})();function Qe(){var e=new E(4);return E!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function j(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function $e(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=n[0],c=n[1],l=n[2],u=n[3];return e[0]=r*u+o*s+i*l-a*c,e[1]=i*u+o*c+a*s-r*l,e[2]=a*u+o*l+r*c-i*s,e[3]=o*u-r*s-i*c-a*l,e}function et(e,t,n,r){var i=t[0],a=t[1],o=t[2],s=t[3],c=n[0],l=n[1],u=n[2],d=n[3],f,p=i*c+a*l+o*u+s*d,m,h,g;return p<0&&(p=-p,c=-c,l=-l,u=-u,d=-d),1-p>1e-6?(f=Math.acos(p),m=Math.sin(f),h=Math.sin((1-r)*f)/m,g=Math.sin(r*f)/m):(h=1-r,g=r),e[0]=h*i+g*c,e[1]=h*a+g*l,e[2]=h*o+g*u,e[3]=h*s+g*d,e}function tt(e,t){var n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[a*3+a]-t[o*3+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[a*3+o]-t[o*3+a])*r,e[a]=(t[a*3+i]+t[i*3+a])*r,e[o]=(t[o*3+i]+t[i*3+o])*r}return e}function nt(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`zyx`,a=Math.PI/360;t*=a,r*=a,n*=a;var o=Math.sin(t),s=Math.cos(t),c=Math.sin(n),l=Math.cos(n),u=Math.sin(r),d=Math.cos(r);switch(i){case`xyz`:e[0]=o*l*d+s*c*u,e[1]=s*c*d-o*l*u,e[2]=s*l*u+o*c*d,e[3]=s*l*d-o*c*u;break;case`xzy`:e[0]=o*l*d-s*c*u,e[1]=s*c*d-o*l*u,e[2]=s*l*u+o*c*d,e[3]=s*l*d+o*c*u;break;case`yxz`:e[0]=o*l*d+s*c*u,e[1]=s*c*d-o*l*u,e[2]=s*l*u-o*c*d,e[3]=s*l*d+o*c*u;break;case`yzx`:e[0]=o*l*d+s*c*u,e[1]=s*c*d+o*l*u,e[2]=s*l*u-o*c*d,e[3]=s*l*d-o*c*u;break;case`zxy`:e[0]=o*l*d-s*c*u,e[1]=s*c*d+o*l*u,e[2]=s*l*u+o*c*d,e[3]=s*l*d-o*c*u;break;case`zyx`:e[0]=o*l*d-s*c*u,e[1]=s*c*d+o*l*u,e[2]=s*l*u-o*c*d,e[3]=s*l*d+o*c*u;break;default:throw Error(`Unknown angle order `+i)}return e}var rt=Ke,it=Ye;(function(){var e=Se(),t=Te(1,0,0),n=Te(0,1,0);return function(r,i,a){var o=Ne(i,a);return o<-.999999?(Pe(e,t,i),We(e)<1e-6&&Pe(e,n,i),Me(e,e),j(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Pe(e,i,a),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,it(r,r))}})(),function(){var e=Qe(),t=Qe();return function(n,r,i,a,o,s){return et(e,r,o,s),et(t,i,a,s),et(n,e,t,2*s*(1-s)),n}}(),function(){var e=ee();return function(t,n,r,i){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],it(t,tt(t,e))}}();function at(){var e=new E(2);return E!=Float32Array&&(e[0]=0,e[1]=0),e}function ot(e,t){var n=new E(2);return n[0]=e,n[1]=t,n}function st(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function ct(e){var t=e[0],n=e[1];return Math.sqrt(t*t+n*n)}function lt(e){var t=e[0],n=e[1];return t*t+n*n}function ut(e,t){return e[0]*t[0]+e[1]*t[1]}function dt(e){return e[0]=0,e[1]=0,e}var ft=lt;(function(){var e=at();return function(t,n,r,i,a,o){var s,c;for(n||=2,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],a(e,e,o),t[s]=e[0],t[s+1]=e[1];return t}})();var M=8192;function pt(e,t,n){return t*(M/(e.tileSize*2**(n-e.tileID.overscaledZ)))}function mt(e){return e instanceof Error?e:Error(typeof e==`string`?e:String(e))}function ht(){return new Float64Array(4)}function gt(){return new Float64Array(3)}function _t(){return new Float64Array(16)}function vt(){let e=new Float64Array(16);return se(e),e}function yt(){let e=new Float32Array(16);return se(e),e}function bt(e,t,n,r,i=!1){if(!n[0]&&!n[1])return[0,0];let a=i?r===`map`?-e.bearingInRadians:0:r===`viewport`?e.bearingInRadians:0;if(a){let e=Math.sin(a),t=Math.cos(a);n=[n[0]*t-n[1]*e,n[0]*e+n[1]*t]}return[i?n[0]:pt(t,n[0],e.zoom),i?n[1]:pt(t,n[1],e.zoom)]}function xt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]}function St(e,t,n){let r=te([e[0],e[1],e[2],t[0],t[1],t[2],n[0],n[1],n[2]]);if(r===0)return null;let i=Pe([],[t[0],t[1],t[2]],[n[0],n[1],n[2]]),a=Pe([],[n[0],n[1],n[2]],[e[0],e[1],e[2]]),o=Pe([],[e[0],e[1],e[2]],[t[0],t[1],t[2]]),s=Oe([],i,-e[3]);return Ee(s,s,Oe([],a,-t[3])),Ee(s,s,Oe([],o,-n[3])),Oe(s,s,1/r),s}function Ct(e,t,n){let r=e[0]*n[0]+e[1]*n[1]+e[2]*n[2],i=t[0]*n[0]+t[1]*n[1]+t[2]*n[2];return i===0?null:(-r-n[3])/i}function wt(e,t,n,r){let i=Math.sqrt(e*e+t*t),a=Math.sqrt(n*n+r*r);e/=i,t/=i,n/=a,r/=a;let o=e*n+t*r,s=Math.acos(o);return-t*n+e*r>0?s:-s}function Tt(e,t){let n=Dt(e,360),r=Dt(t,360),i=r-n,a=r>n?i-360:i+360;return Math.abs(i)<Math.abs(a)?i:a}function Et(e,t){let n=Dt(e,Math.PI*2),r=Dt(t,Math.PI*2);return Math.min(Math.abs(n-r),Math.abs(n-r+Math.PI*2),Math.abs(n-r-Math.PI*2))}function Dt(e,t){return(e%t+t)%t}function Ot(e,t,n,r,i){return kt(r,i,N((e-t)/(n-t),0,1))}function kt(e,t,n){return e*(1-n)+t*n}function At(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x),i=Math.max(i,a.y);return[t,n,r,i]}function jt(e){if(!e.length)return new Set;let t=Math.max(...e.map(e=>e.canonical.z)),n=1/0,r=-1/0,i=1/0,a=-1/0,o=[];for(let s of e){let{x:e,y:c,z:l}=s.canonical,u=2**(t-l),d=e*u,f=c*u;o.push({id:s,x:d,y:f}),d<n&&(n=d),d>r&&(r=d),f<i&&(i=f),f>a&&(a=f)}let s=new Set;for(let e of o)(e.x===n||e.x===r||e.y===i||e.y===a)&&s.add(e.id);return s}function Mt(e){if(e<=0)return 0;if(e>=1)return 1;let t=e*e,n=t*e;return 4*(e<.5?n:3*(e-t)+n-.75)}function Nt(e,t,n,r){return x(e,t,n,r)}var Pt=Nt(.25,.1,.25,1);function N(e,t,n){return Math.min(n,Math.max(t,e))}function Ft(e,t,n){let r=n-t,i=((e-t)%r+r)%r+t;return i===t?n:i}function P(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function It(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}var Lt=1;function Rt(){return Lt++}function zt(e){return Math.log(e)/Math.LN2%1==0}function Bt(e){return e<=1?1:2**Math.ceil(Math.log(e)/Math.LN2)}function Vt(e){return 2**e}function Ht(e){return Math.log(e)/Math.LN2}function Ut(e,t,n){if(t<=0)return e;let r=1/t;return n===void 0||Math.abs(n)<1e-10?Math.round(e*r)/r:(n>0?Math.ceil(e*r-1e-9):Math.floor(e*r+1e-10))/r}function Wt(e,t,n){let r={};for(let i in e)r[i]=t.call(n||this,e[i],i,e);return r}function Gt(e,t,n){let r={};for(let i in e)t.call(n||this,e[i],i,e)&&(r[i]=e[i]);return r}function Kt(e,t){if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Kt(e[n],t[n]))return!1;return!0}if(typeof e==`object`&&e&&t!==null){if(typeof t!=`object`||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(!Kt(e[n],t[n]))return!1;return!0}return e===t}function qt(e){return Array.isArray(e)?e.map(qt):typeof e==`object`&&e?Wt(e,qt):e}var Jt={};function Yt(e){Jt[e]||(typeof console<`u`&&console.warn(e),Jt[e]=!0)}function Xt(e,t,n){return(n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function Zt(e,t,n,r){let i=t.y-e.y,a=t.x-e.x,o=r.y-n.y,s=r.x-n.x,c=o*a-s*i;if(c===0)return null;let l=e.y-n.y,u=e.x-n.x,d=(s*l-o*u)/c;return new b(e.x+d*a,e.y+d*i)}function Qt([e,t,n]){return t+=90,t*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(t)*Math.sin(n),e*Math.sin(t)*Math.sin(n),e*Math.cos(n)]}function $t(e){return typeof WorkerGlobalScope<`u`&&e!==void 0&&e instanceof WorkerGlobalScope}function en(e){let t=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,n={};if(e.replace(t,(e,t,r,i)=>{let a=r||i;return n[t]=!a||a.toLowerCase(),``}),n[`max-age`]){let e=parseInt(n[`max-age`],10);isNaN(e)?delete n[`max-age`]:n[`max-age`]=e}return n}var tn=null;function nn(e){if(tn==null){let t=e.navigator?e.navigator.userAgent:null;tn=!!e.safari||!!(t&&(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match(`Safari`)&&!t.match(`Chrome`)))}return tn}function rn(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap}var an=async(e,t)=>{let n=new Blob([new Uint8Array(e)],{type:`image/png`});try{return createImageBitmap(n,t)}catch(e){throw Error(`Could not load image because of ${mt(e).message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}},on=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>{t(r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>r.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=`)},r.onerror=()=>n(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.`));let i=new Blob([new Uint8Array(e)],{type:`image/png`});r.src=URL.createObjectURL(i)});function sn(e,t,n,r,i){let a=Math.max(-t,0)*4,o=(Math.max(0,n)-n)*r*4+a,s=r*4,c=Math.max(0,t),l=Math.max(0,n),u=Math.min(e.width,t+r),d=Math.min(e.height,n+i);return{rect:{x:c,y:l,width:u-c,height:d-l},layout:[{offset:o,stride:s}]}}async function cn(e,t,n,r,i){if(typeof VideoFrame>`u`)throw Error(`VideoFrame not supported`);let a=new VideoFrame(e,{timestamp:0});try{let o=a?.format;if(!o||!(o.startsWith(`BGR`)||o.startsWith(`RGB`)))throw Error(`Unrecognized format ${o}`);let s=o.startsWith(`BGR`),c=new Uint8ClampedArray(r*i*4);if(await a.copyTo(c,sn(e,t,n,r,i)),s)for(let e=0;e<c.length;e+=4){let t=c[e];c[e]=c[e+2],c[e+2]=t}return c}finally{a.close()}}function ln(e,t,n,r){return e.addEventListener(t,n,r),{unsubscribe:()=>{e.removeEventListener(t,n,r)}}}function un(e){return e*Math.PI/180}function dn(e){return e/Math.PI*180}function fn(e,t){return e.roll==t.roll&&e.pitch==t.pitch&&e.bearing==t.bearing}function pn(e){let t=new Float64Array(9);re(t,e);let n=dn(-Math.asin(N(t[2],-1,1))),r,i;return Math.hypot(t[5],t[8])<.001?(r=0,i=-dn(Math.atan2(t[3],t[4]))):(r=dn(t[5]===0&&t[8]===0?0:Math.atan2(t[5],t[8])),i=dn(t[1]===0&&t[0]===0?0:Math.atan2(t[1],t[0]))),{roll:r,pitch:n+90,bearing:i}}function mn(e,t,n){let r=ot(t.x-n.x,t.y-n.y),i=ot(e.x-n.x,e.y-n.y),a=r[0]*i[1]-r[1]*i[0];return dn(Math.atan2(a,ut(r,i)))}function hn(e,t,n){let r=new Float64Array(4);return nt(r,e,t-90,n),r}var gn=85.051129,_n={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},vn={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0};function yn(e,t){return _n[t]&&`touches`in e}function bn(e,t){if(!vn[t])return!1;let n=e,r=(n?.target)?.ownerDocument?.defaultView||window;return n instanceof r.MouseEvent||n instanceof r.WheelEvent}function xn(e){return _n[e]||vn[e]}var Sn=`AbortError`,Cn=class extends Error{constructor(e=Sn){super(e instanceof Error?e.message:e),this.name=Sn,e instanceof Error&&e.stack&&(this.stack=e.stack)}};function wn(e){return e instanceof Error&&e.name===`AbortError`}function Tn(e){if(e.aborted)throw new Cn(e.reason)}var En,Dn,On,kn={frame(e,t,n,r){let i=r||window,a=i.requestAnimationFrame(e=>{o(),t(e)}),{unsubscribe:o}=ln(e.signal,`abort`,()=>{o(),i.cancelAnimationFrame(a),n(new Cn(e.signal.reason))},!1)},frameAsync(e,t){return new Promise((n,r)=>{this.frame(e,n,r,t)})},getImageData(e,t=0){return this.getImageCanvasContext(e).getImageData(-t,-t,e.width+2*t,e.height+2*t)},getImageCanvasContext(e){let t;if(C()&&!T())t=new OffscreenCanvas(e.width,e.height).getContext(`2d`,{willReadFrequently:!0});else{let n=window.document.createElement(`canvas`);n.width=e.width,n.height=e.height,t=n.getContext(`2d`,{willReadFrequently:!0})}if(!t)throw Error(`failed to create canvas 2d context`);return t.drawImage(e,0,0,e.width,e.height),t},resolveURL(e){return En||=document.createElement(`a`),En.href=e,En.href},get hardwareConcurrency(){return typeof navigator<`u`&&navigator.hardwareConcurrency||4},get prefersReducedMotion(){return On===void 0?matchMedia?(Dn??=matchMedia(`(prefers-reduced-motion: reduce)`),Dn.matches):!1:On},set prefersReducedMotion(e){On=e}},An=new class{constructor(){this._frozenAt=null}getCurrentTime(){return this._frozenAt===null?performance.now():this._frozenAt}setNow(e){this._frozenAt=e}restoreNow(){this._frozenAt=null}isFrozen(){return this._frozenAt!==null}};function jn(){return An.getCurrentTime()}function Mn(e){An.setNow(e)}function Nn(){An.restoreNow()}function Pn(){return An.isFrozen()}var Fn=new Set(`a.abbr.b.bdi.bdo.br.cite.code.del.div.em.i.img.ins.kbd.li.mark.ol.p.q.s.samp.small.span.strong.sub.sup.time.u.ul.var.wbr`.split(`.`)),In=new Set([`alt`,`class`,`datetime`,`dir`,`height`,`href`,`hreflang`,`lang`,`referrerpolicy`,`rel`,`role`,`src`,`target`,`title`,`translate`,`type`,`width`]),Ln=new Set([`href`,`src`]),Rn=new Set([`http:`,`https:`,`mailto:`]),zn;function Bn(){return zn??={getAttribute:Element.prototype.getAttribute,getAttributeNames:Element.prototype.getAttributeNames,querySelectorAll:Element.prototype.querySelectorAll,remove:Element.prototype.remove,removeAttribute:Element.prototype.removeAttribute,localName:Object.getOwnPropertyDescriptor(Element.prototype,`localName`).get,namespaceURI:Object.getOwnPropertyDescriptor(Element.prototype,`namespaceURI`).get},zn}var F=class e{static{this.docStyle=typeof window<`u`&&window.document?.documentElement.style}static{this.selectProp=!e.docStyle||`userSelect`in e.docStyle?`userSelect`:`webkitUserSelect`}static create(e,t,n){let r=window.document.createElement(e);return t!==void 0&&(r.className=t),n&&n.appendChild(r),r}static createNS(e,t){return window.document.createElementNS(e,t)}static disableDrag(){e.docStyle&&e.selectProp&&(e.userSelect=e.docStyle[e.selectProp],e.docStyle[e.selectProp]=`none`)}static enableDrag(){e.docStyle&&e.selectProp&&(e.docStyle[e.selectProp]=e.userSelect)}static suppressClickInternal(t){t.preventDefault(),t.stopPropagation(),window.removeEventListener(`click`,e.suppressClickInternal,!0)}static suppressClick(){window.addEventListener(`click`,e.suppressClickInternal,!0),window.setTimeout(()=>{window.removeEventListener(`click`,e.suppressClickInternal,!0)},0)}static getScale(e){let t=e.getBoundingClientRect();return{x:t.width/e.offsetWidth||1,y:t.height/e.offsetHeight||1,boundingClientRect:t}}static getPoint(e,t,n){let r=t.boundingClientRect;return new b((n.clientX-r.left)/t.x-e.clientLeft,(n.clientY-r.top)/t.y-e.clientTop)}static mousePos(t,n){let r=e.getScale(t);return e.getPoint(t,r,n)}static touchPos(t,n){let r=[],i=e.getScale(t);for(let a of n)r.push(e.getPoint(t,i,a));return r}static sanitize(t){let n=new DOMParser().parseFromString(t,`text/html`).body,{querySelectorAll:r,remove:i}=Bn();for(let t of Array.from(r.call(n,`*`)))e.isAllowedElement(t)?e.removeDisallowedAttributes(t):i.call(t);let a=document.createDocumentFragment();return a.append(...n.childNodes),a}static isAllowedElement(e){let{namespaceURI:t,localName:n}=Bn();return t.call(e)===`http://www.w3.org/1999/xhtml`&&Fn.has(n.call(e))}static removeDisallowedAttributes(t){let{getAttributeNames:n,getAttribute:r,removeAttribute:i}=Bn();for(let a of n.call(t))e.isAllowedAttribute(a,r.call(t,a))||i.call(t,a)}static isAllowedAttribute(e,t){if(!In.has(e)&&!e.startsWith(`aria-`))return!1;if(!Ln.has(e))return!0;try{return Rn.has(new URL(t,`https://maplibre.invalid/`).protocol)}catch{return!1}}},Vn={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:``};function Hn(e){return Vn.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf(`://`))]}function Un(e,t){Vn.REGISTERED_PROTOCOLS[e]=t}function Wn(e){delete Vn.REGISTERED_PROTOCOLS[e]}var Gn=`global-dispatcher`,Kn=class extends Error{constructor(e,t,n,r){super(`AJAXError: ${t} (${e}): ${n}`),this.status=e,this.statusText=t,this.url=n,this.body=r}};function qn(){if($t(self))return self.worker?.referrer;if(window.location.protocol===`blob:`)try{return window.parent.location.href}catch{}return window.location.href}var Jn=e=>e.startsWith(`file:`)||qn()?.startsWith(`file:`)&&!/^\w+:/.test(e);async function Yn(e,t){let n=new Request(e.url,{method:e.method||`GET`,body:e.body,credentials:e.credentials,headers:e.headers,cache:e.cache,referrer:qn(),referrerPolicy:e.referrerPolicy,signal:t.signal});e.type===`json`&&!n.headers.has(`Accept`)&&n.headers.set(`Accept`,`application/json`);let r;try{r=await fetch(n)}catch(t){throw wn(t)?t:new Kn(0,mt(t).message,e.url,new Blob)}if(!r.ok){let t=await r.blob();throw new Kn(r.status,r.statusText,e.url,t)}let i;i=e.type===`arrayBuffer`||e.type===`image`?r.arrayBuffer():e.type===`json`?r.json():r.text();let a=await i;return Tn(t.signal),{data:a,cacheControl:r.headers.get(`Cache-Control`),expires:r.headers.get(`Expires`),etag:r.headers.get(`ETag`)}}function Xn(e,t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(e.method||`GET`,e.url,!0),(e.type===`arrayBuffer`||e.type===`image`)&&(i.responseType=`arraybuffer`);for(let t in e.headers)i.setRequestHeader(t,e.headers[t]);e.type===`json`&&(i.responseType=`text`,e.headers?.Accept||i.setRequestHeader(`Accept`,`application/json`)),i.withCredentials=e.credentials===`include`,i.onerror=()=>{r(Error(i.statusText))},i.onload=()=>{if(!t.signal.aborted){if((i.status>=200&&i.status<300||i.status===0)&&i.response!==null){let t=i.response;if(e.type===`json`)try{t=JSON.parse(i.response)}catch(e){r(e);return}n({data:t,cacheControl:i.getResponseHeader(`Cache-Control`),expires:i.getResponseHeader(`Expires`),etag:i.getResponseHeader(`ETag`)})}else{let t=new Blob([i.response],{type:i.getResponseHeader(`Content-Type`)});r(new Kn(i.status,i.statusText,e.url,t))}}},t.signal.addEventListener(`abort`,()=>{i.abort(),r(new Cn(t.signal.reason))}),i.send(e.body)})}var Zn=async function(e,t){if(e.url.includes(`://`)&&!/^https?:|^file:/.test(e.url)){let n=Hn(e.url);if(n){let r=await n(e,t);return!r.data&&e.type===`arrayBuffer`?P(r,{data:new ArrayBuffer(0)}):r}if($t(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,targetMapId:Gn},t)}if(!Jn(e.url)){if(fetch&&Request&&AbortController&&Object.hasOwn(Request.prototype,`signal`))return Yn(e,t);if($t(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,mustQueue:!0,targetMapId:Gn},t)}return Xn(e,t)},Qn=(e,t)=>Zn(P(e,{type:`json`}),t),$n=(e,t)=>Zn(P(e,{type:`arrayBuffer`}),t);function er(e){if(!e||e.startsWith(`data:image/`))return!0;if(e.startsWith(`blob:`)&&(e=e.slice(5),e.startsWith(`null`)))return!1;if(e.indexOf(`://`)<=0)return!0;let t=new URL(e),n=window.location;return t.protocol===n.protocol&&t.host===n.host}var tr=e=>{let t=window.document.createElement(`video`);return t.muted=!0,new Promise(n=>{t.onloadstart=()=>{n(t)};for(let n of e){let e=window.document.createElement(`source`);er(n)||(t.crossOrigin=`Anonymous`),e.src=n,t.appendChild(e)}})},nr;(function(e){let t,n,r,i;e.resetRequestQueue=()=>{t=[],n=0,r=0,i={}},e.addThrottleControl=e=>{let t=r++;return i[t]=e,t},e.removeThrottleControl=e=>{delete i[e],l()};let a=()=>{for(let e of Object.keys(i))if(i[e]())return!0;return!1};async function o(e,t,n,r,i=!0,a){let o=await e.transformRequest(t,n);return Tn(r.signal),nr.getImage(o,r,i,a)}e.transformAndGetImage=o,e.getImage=(e,n,r=!0,i)=>new Promise((a,o)=>{e.headers||={},e.headers.accept=`image/webp,*/*`,P(e,{type:`image`});let s={abortController:n,requestParameters:e,supportImageRefresh:r,imageBitmapOptions:i,state:`queued`,onError:e=>{o(e)},onSuccess:e=>{a(e)}};t.push(s),l()});let s=(e,t)=>typeof createImageBitmap==`function`?an(e,t):on(e),c=async e=>{e.state=`running`;let{requestParameters:t,supportImageRefresh:r,imageBitmapOptions:i,onError:a,onSuccess:o,abortController:c}=e,d=r===!1&&!i&&!$t(self)&&!Hn(t.url)&&(!t.headers||Object.keys(t.headers).reduce((e,t)=>e&&t===`accept`,!0));n++;let f=d?u(t,c):Zn(t,c);try{let t=await f;delete e.abortController,e.state=`completed`,t.data instanceof HTMLImageElement||rn(t.data)?o(t):!t.data||t.data.byteLength===0?o({data:null,cacheControl:t.cacheControl,expires:t.expires}):o({data:await s(t.data,i),cacheControl:t.cacheControl,expires:t.expires})}catch(t){delete e.abortController,a(mt(t))}finally{n--,l()}},l=()=>{let e=a()?Vn.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:Vn.MAX_PARALLEL_IMAGE_REQUESTS;for(let r=n;r<e&&t.length>0;r++){let e=t.shift();if(e.abortController.signal.aborted){r--;continue}c(e)}},u=(e,t)=>new Promise((n,r)=>{let i=new Image,a=e.url,o=e.credentials;o&&o===`include`?i.crossOrigin=`use-credentials`:(o&&o===`same-origin`||!er(a))&&(i.crossOrigin=`anonymous`),t.signal.addEventListener(`abort`,()=>{i.src=``,r(new Cn(t.signal.reason))}),i.fetchPriority=`high`,i.onload=()=>{i.onerror=i.onload=null,n({data:i})},i.onerror=()=>{i.onerror=i.onload=null,!t.signal.aborted&&r(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.src=a})})(nr||={}),nr.resetRequestQueue();var rr=class{constructor(e){this._transformRequestFn=e??null}transformRequest(e,t){return this._transformRequestFn&&this._transformRequestFn(e,t)||{url:e}}setTransformRequest(e){this._transformRequestFn=e}};function ir(e,t,n){n[e]?.includes(t)||(n[e]||=[],n[e].push(t))}function ar(e,t,n){if(n?.[e]){let r=n[e].indexOf(t);r!==-1&&n[e].splice(r,1)}}var or=class{constructor(e,t={}){P(this,t),this.type=e}},I=class extends or{constructor(e,t={}){super(`error`,P({error:e},t))}},sr=class{on(e,t){return this._listeners||={},ir(e,t,this._listeners),{unsubscribe:()=>{this.off(e,t)}}}off(e,t){return ar(e,t,this._listeners),ar(e,t,this._oneTimeListeners),this}once(e,t){return t?(this._oneTimeListeners||={},ir(e,t,this._oneTimeListeners),this):new Promise(t=>this.once(e,t))}fire(e,t){let n=typeof e==`string`?new or(e,t||{}):e,r=n.type;if(this.listens(r)){n.target=this;let e=this._listeners?.[r]?.slice()??[];for(let t of e)t.call(this,n);let t=this._oneTimeListeners?.[r]?.slice()??[];for(let e of t)ar(r,e,this._oneTimeListeners),e.call(this,n);let i=this._eventedParent;i&&(P(n,typeof this._eventedParentData==`function`?this._eventedParentData():this._eventedParentData),i.fire(n))}else n instanceof I&&console.error(n.error);return this}listens(e){return!!(this._listeners?.[e]?.length||this._oneTimeListeners?.[e]?.length||this._eventedParent?.listens(e))}setEventedParent(e,t){return this._eventedParent=e,this._eventedParentData=t,this}},cr=class extends or{},R=class extends cr{},lr=class extends cr{constructor(e={}){super(`style.load`,e)}},ur=class extends cr{constructor(e,t={}){super(e,t),this.dataType=`style`}},dr=class extends cr{constructor(e,t={}){super(e,t),this.dataType=`source`}},fr=class extends cr{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,n,r={}){n=n instanceof MouseEvent?n:new MouseEvent(e,n);let i=F.mousePos(t.getCanvas(),n),a=t.unproject(i);super(e,P({point:i,lngLat:a,originalEvent:n},r)),this._defaultPrevented=!1,this.target=t}},pr=class extends cr{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,n){let r=e===`touchend`?n.changedTouches:n.touches,i=F.touchPos(t.getCanvasContainer(),r),a=i.map(e=>t.unproject(e)),o=i.reduce((e,t,n,r)=>e.add(t.div(r.length)),new b(0,0)),s=t.unproject(o);super(e,{points:i,point:o,lngLats:a,lngLat:s,originalEvent:n}),this._defaultPrevented=!1}},mr=class extends cr{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,t){super(`wheel`,{originalEvent:t}),this._defaultPrevented=!1}},hr=class extends cr{},gr=class extends cr{constructor(e={}){super(`terrain`,e)}},_r=class extends cr{constructor(e={}){super(`projectiontransition`,e)}},vr=class extends cr{},yr=class extends cr{constructor(e={}){super(`styleimagemissing`,e)}},br={$version:8,$root:{version:{required:!0,type:`enum`,values:[8]},name:{type:`string`},metadata:{type:`*`},center:{type:`array`,value:`number`,length:2},centerAltitude:{type:`number`},zoom:{type:`number`},bearing:{type:`number`,default:0,period:360,units:`degrees`},pitch:{type:`number`,default:0,units:`degrees`},roll:{type:`number`,default:0,units:`degrees`},state:{type:`state`,default:{}},light:{type:`light`},sky:{type:`sky`},projection:{type:`projection`},terrain:{type:`terrain`},sources:{required:!0,type:`sources`},sprite:{type:`sprite`},glyphs:{type:`string`},"font-faces":{type:`fontFaces`},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},encoding:{type:`enum`,values:{mvt:{},mlt:{}},default:`mvt`},"*":{type:`*`}},source_raster:{type:{required:!0,type:`enum`,values:{raster:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},attribution:{type:`string`},volatile:{type:`boolean`,default:!1},"*":{type:`*`}},source_raster_dem:{type:{required:!0,type:`enum`,values:{"raster-dem":{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},attribution:{type:`string`},encoding:{type:`enum`,values:{terrarium:{},mapbox:{},custom:{}},default:`mapbox`},redFactor:{type:`number`,default:1},blueFactor:{type:`number`,default:1},greenFactor:{type:`number`,default:1},baseShift:{type:`number`,default:0},volatile:{type:`boolean`,default:!1},"*":{type:`*`}},source_geojson:{type:{required:!0,type:`enum`,values:{geojson:{}}},data:{required:!0,type:`*`},maxzoom:{type:`number`,default:18},attribution:{type:`string`},buffer:{type:`number`,default:128,maximum:512,minimum:0},filter:{type:`filter`},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:{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:{},"color-relief":{},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_color-relief`,`layout_background`],layout_background:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-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`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-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`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`}},layout_heatmap:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_fill-extrusion":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`},"fill-extrusion-rounded-corner-distance":{type:`number`,default:0,minimum:0,units:`meters`,"property-type":`constant`}},layout_line:{"line-cap":{type:`enum`,values:{butt:{},round:{},square:{}},default:`butt`,expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"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`,`feature`]},"property-type":`data-driven`},"line-round-limit":{type:`number`,default:1.05,requires:[{"line-join":`round`}],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-sort-key":{type:`number`,expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-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`,`feature`]},"property-type":`data-driven`},"icon-size":{type:`number`,default:1,minimum:0,units:`factor of the original icon size`,requires:[`icon-image`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-text-fit":{type:`enum`,values:{none:{},width:{},height:{},both:{}},default:`none`,requires:[`icon-image`,`text-field`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"icon-text-fit-padding":{type:`array`,value:`number`,length:4,default:[0,0,0,0],units:`pixels`,requires:[`icon-image`,`text-field`,{"icon-text-fit":[`both`,`width`,`height`]}],expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"icon-image":{type:`resolvedImage`,tokens:!0,expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`icon-image`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-padding":{type:`padding`,default:[2],units:`pixels`,requires:[`icon-image`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-keep-upright":{type:`boolean`,default:!1,requires:[`icon-image`,{"icon-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"icon-offset":{type:`array`,value:`number`,length:2,default:[0,0],requires:[`icon-image`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`icon-image`],expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-field":{type:`formatted`,default:``,tokens:!0,expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-font":{type:`array`,value:`string`,default:[`Open Sans Regular`,`Arial Unicode MS Regular`],requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-size":{type:`number`,default:16,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-width":{type:`number`,default:10,minimum:0,units:`ems`,requires:[`text-field`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-line-height":{type:`number`,default:1.2,units:`ems`,requires:[`text-field`],expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"text-letter-spacing":{type:`number`,default:0,units:`ems`,requires:[`text-field`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-justify":{type:`enum`,values:{auto:{},left:{},center:{},right:{}},default:`center`,requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-radial-offset":{type:`number`,units:`ems`,default:0,requires:[`text-field`],"property-type":`data-driven`,expression:{interpolated:!0,parameters:[`zoom`,`feature`]}},"text-variable-anchor":{type:`array`,value:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-variable-anchor-offset":{type:`variableAnchorOffsetCollection`,requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`text-field`,{"!":`text-variable-anchor`}],expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-angle":{type:`number`,default:45,units:`degrees`,requires:[`text-field`,{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"text-writing-mode":{type:`array`,value:`enum`,values:{horizontal:{},vertical:{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`text-field`],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-padding":{type:`number`,default:2,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"text-keep-upright":{type:`boolean`,default:!0,requires:[`text-field`,{"text-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-transform":{type:`enum`,values:{none:{},uppercase:{},lowercase:{}},default:`none`,requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-offset":{type:`array`,value:`number`,units:`ems`,length:2,default:[0,0],requires:[`text-field`,{"!":`text-radial-offset`}],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-allow-overlap":{type:`boolean`,default:!1,requires:[`text-field`,{"!":`text-overlap`}],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-ignore-placement":{type:`boolean`,default:!1,requires:[`text-field`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"text-optional":{type:`boolean`,default:!1,requires:[`text-field`,`icon-image`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-height-offset":{type:`number`,default:0,units:`meters`,requires:[{"symbol-placement":[`point`]}],expression:{interpolated:!0,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-height-anchor":{type:`enum`,values:{ground:{},absolute:{}},default:`ground`,requires:[`symbol-height-offset`],expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`}},layout_raster:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`}},layout_hillshade:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_color-relief":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:!1,parameters:[`global-state`]},"property-type":`data-constant`}},filter:{type:`boolean`,expression:{interpolated:!1,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},filter_operator:{type:`enum`,values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},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:`expression_name`,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}},sky:{"sky-color":{type:`color`,"property-type":`data-constant`,default:`#88C6FC`,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0},"horizon-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0},"fog-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0},"fog-ground-blend":{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0},"horizon-fog-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0},"sky-horizon-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0},"atmosphere-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[`zoom`]},transition:!0}},terrain:{source:{type:`string`,required:!0},exaggeration:{type:`number`,minimum:0,default:1}},projection:{type:{type:`projectionDefinition`,default:`mercator`,"property-type":`data-constant`,transition:!1,expression:{interpolated:!0,parameters:[`zoom`]}}},paint:[`paint_fill`,`paint_line`,`paint_circle`,`paint_heatmap`,`paint_fill-extrusion`,`paint_symbol`,`paint_raster`,`paint_hillshade`,`paint_color-relief`,`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-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"fill-color":{type:`color`,default:`#000000`,transition:!0,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,units:`meters`,transition:!0,expression:{interpolated:!0,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-base":{type:`number`,default: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-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"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`,`feature`]},"property-type":`cross-faded-data-driven`},"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`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:!1,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:`numberArray`,default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-altitude":{type:`numberArray`,default:45,minimum:0,maximum:90,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:`colorArray`,default:`#000000`,transition:!0,expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-highlight-color":{type:`colorArray`,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`},"hillshade-method":{type:`enum`,values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:`standard`,expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:!1,parameters:[`zoom`]},"property-type":`data-constant`}},"paint_color-relief":{"color-relief-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[`zoom`]},"property-type":`data-constant`},"color-relief-color":{type:`color`,transition:!1,expression:{interpolated:!0,parameters:[`elevation`]},"property-type":`color-ramp`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:!1,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`}},interpolation:{type:`array`,value:`interpolation_name`,minimum:1},interpolation_name:{type:`enum`,values:{linear:{syntax:{overloads:[{parameters:[],"output-type":`interpolation`}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:[`base`],"output-type":`interpolation`}],parameters:[{name:`base`,type:`number literal`}]}},"cubic-bezier":{syntax:{overloads:[{parameters:[`x1`,`y1`,`x2`,`y2`],"output-type":`interpolation`}],parameters:[{name:`x1`,type:`number literal`},{name:`y1`,type:`number literal`},{name:`x2`,type:`number literal`},{name:`y2`,type:`number literal`}]}}}}},z=br,xr=[`type`,`source`,`source-layer`,`minzoom`,`maxzoom`,`filter`,`layout`];function Sr(e,t){let n={};for(let t in e)t!==`ref`&&(n[t]=e[t]);return xr.forEach(e=>{e in t&&(n[e]=t[e])}),n}function Cr(e){e=e.slice();let t=Object.create(null);for(let n=0;n<e.length;n++)t[e[n].id]=e[n];for(let n=0;n<e.length;n++)`ref`in e[n]&&(e[n]=Sr(e[n],t[e[n].ref]));return e}function wr(e,t){if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!wr(e[n],t[n]))return!1;return!0}if(typeof e==`object`&&e&&t!==null){if(typeof t!=`object`||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(!wr(e[n],t[n]))return!1;return!0}return e===t}function Tr(e,t){e.push(t)}function Er(e,t,n){Tr(n,{command:`addSource`,args:[e,t[e]]})}function Dr(e,t,n){Tr(t,{command:`removeSource`,args:[e]}),n[e]=!0}function Or(e,t,n,r){Dr(e,n,r),Er(e,t,n)}function kr(e,t,n){let r;for(r in e[n])if(Object.prototype.hasOwnProperty.call(e[n],r)&&r!==`data`&&!wr(e[n][r],t[n][r]))return!1;for(r in t[n])if(Object.prototype.hasOwnProperty.call(t[n],r)&&r!==`data`&&!wr(e[n][r],t[n][r]))return!1;return!0}function Ar(e,t,n,r){e||={},t||={};let i;for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&(Object.prototype.hasOwnProperty.call(t,i)||Dr(i,n,r));for(i in t)Object.prototype.hasOwnProperty.call(t,i)&&(Object.prototype.hasOwnProperty.call(e,i)?wr(e[i],t[i])||(e[i].type===`geojson`&&t[i].type===`geojson`&&kr(e,t,i)?Tr(n,{command:`setGeoJSONSourceData`,args:[i,t[i].data]}):Or(i,t,n,r)):Er(i,t,n))}function jr(e,t,n,r,i){Tr(t,{command:i,args:[n,r,e[r]]})}function Mr(e,t,n,r,i){e||={},t||={};for(let a in e)Object.prototype.hasOwnProperty.call(e,a)&&(wr(e[a],t[a])||jr(t,n,r,a,i));for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&!Object.prototype.hasOwnProperty.call(e,a)&&(wr(e[a],t[a])||jr(t,n,r,a,i))}function Nr(e){return e.id}function Pr(e,t){return e[t.id]=t,e}function Fr(e,t,n){e||=[],t||=[];let r=e.map(Nr),i=t.map(Nr),a=e.reduce(Pr,{}),o=t.reduce(Pr,{}),s=r.slice(),c=Object.create(null),l,u,d,f,p;for(let e=0,t=0;e<r.length;e++)l=r[e],Object.prototype.hasOwnProperty.call(o,l)?t++:(Tr(n,{command:`removeLayer`,args:[l]}),s.splice(s.indexOf(l,t),1));for(let e=0,t=0;e<i.length;e++)l=i[i.length-1-e],s[s.length-1-e]!==l&&(Object.prototype.hasOwnProperty.call(a,l)?(Tr(n,{command:`removeLayer`,args:[l]}),s.splice(s.lastIndexOf(l,s.length-t),1)):t++,f=s[s.length-e],Tr(n,{command:`addLayer`,args:[o[l],f]}),s.splice(s.length-e,0,l),c[l]=!0);for(let e=0;e<i.length;e++)if(l=i[e],u=a[l],d=o[l],!(c[l]||wr(u,d))){if(!wr(u.source,d.source)||!wr(u[`source-layer`],d[`source-layer`])||!wr(u.type,d.type)){Tr(n,{command:`removeLayer`,args:[l]}),f=s[s.lastIndexOf(l)+1],Tr(n,{command:`addLayer`,args:[d,f]});continue}for(p in Mr(u.layout,d.layout,n,l,`setLayoutProperty`),Mr(u.paint,d.paint,n,l,`setPaintProperty`),wr(u.filter,d.filter)||Tr(n,{command:`setFilter`,args:[l,d.filter]}),(!wr(u.minzoom,d.minzoom)||!wr(u.maxzoom,d.maxzoom))&&Tr(n,{command:`setLayerZoomRange`,args:[l,d.minzoom,d.maxzoom]}),u)Object.prototype.hasOwnProperty.call(u,p)&&p!==`layout`&&p!==`paint`&&p!==`filter`&&p!==`metadata`&&p!==`minzoom`&&p!==`maxzoom`&&(p.indexOf(`paint.`)===0?Mr(u[p],d[p],n,l,`setPaintProperty`):wr(u[p],d[p])||Tr(n,{command:`setLayerProperty`,args:[l,p,d[p]]}));for(p in d)Object.prototype.hasOwnProperty.call(d,p)&&!Object.prototype.hasOwnProperty.call(u,p)&&p!==`layout`&&p!==`paint`&&p!==`filter`&&p!==`metadata`&&p!==`minzoom`&&p!==`maxzoom`&&(p.indexOf(`paint.`)===0?Mr(u[p],d[p],n,l,`setPaintProperty`):wr(u[p],d[p])||Tr(n,{command:`setLayerProperty`,args:[l,p,d[p]]}))}}function Ir(e,t){if(!e)return[{command:`setStyle`,args:[t]}];let n=[];try{if(!wr(e.version,t.version))return[{command:`setStyle`,args:[t]}];wr(e.center,t.center)||n.push({command:`setCenter`,args:[t.center]}),wr(e.state,t.state)||n.push({command:`setGlobalState`,args:[t.state]}),wr(e.centerAltitude,t.centerAltitude)||n.push({command:`setCenterAltitude`,args:[t.centerAltitude]}),wr(e.zoom,t.zoom)||n.push({command:`setZoom`,args:[t.zoom]}),wr(e.bearing,t.bearing)||n.push({command:`setBearing`,args:[t.bearing]}),wr(e.pitch,t.pitch)||n.push({command:`setPitch`,args:[t.pitch]}),wr(e.roll,t.roll)||n.push({command:`setRoll`,args:[t.roll]}),wr(e.sprite,t.sprite)||n.push({command:`setSprite`,args:[t.sprite]}),wr(e.glyphs,t.glyphs)||n.push({command:`setGlyphs`,args:[t.glyphs]}),wr(e[`font-faces`],t[`font-faces`])||n.push({command:`setFontFaces`,args:[t[`font-faces`]]}),wr(e.transition,t.transition)||n.push({command:`setTransition`,args:[t.transition]}),wr(e.light,t.light)||n.push({command:`setLight`,args:[t.light]});let r=!wr(e.terrain,t.terrain);r&&!t.terrain&&n.push({command:`setTerrain`,args:[void 0]}),wr(e.sky,t.sky)||n.push({command:`setSky`,args:[t.sky]}),wr(e.projection,t.projection)||n.push({command:`setProjection`,args:[t.projection]});let i={},a=[];Ar(e.sources,t.sources,a,i);let o=[];e.layers&&e.layers.forEach(e=>{`source`in e&&i[e.source]?n.push({command:`removeLayer`,args:[e.id]}):o.push(e)}),n=n.concat(a),Fr(o,t.layers,n),r&&t.terrain&&n.push({command:`setTerrain`,args:[t.terrain]})}catch(e){console.warn(`Unable to compute style diff:`,e),n=[{command:`setStyle`,args:[t]}]}return n}var B=class{constructor(e,t,n,r,i=`error`){this.message=(e?`${e}: `:``)+n,r&&(this.identifier=r),this.severity=i,t!=null&&t.__line__&&(this.line=t.__line__)}},Lr={kind:`null`},V={kind:`number`},H={kind:`string`},Rr={kind:`boolean`},zr={kind:`color`},Br={kind:`projectionDefinition`},Vr={kind:`object`},U={kind:`value`},Hr={kind:`error`},Ur={kind:`collator`},Wr={kind:`formatted`},Gr={kind:`padding`},Kr={kind:`colorArray`},qr={kind:`numberArray`},Jr={kind:`resolvedImage`},Yr={kind:`variableAnchorOffsetCollection`};function Xr(e,t){return{kind:`array`,itemType:e,N:t}}function Zr(e){if(e.kind===`array`){let t=Zr(e.itemType);return typeof e.N==`number`?`array<${t}, ${e.N}>`:e.itemType.kind===`value`?`array`:`array<${t}>`}return e.kind}var Qr=[Lr,V,H,Rr,zr,Br,Wr,Vr,Xr(U),Gr,qr,Kr,Jr,Yr];function $r(e,t){if(t.kind===`error`)return null;if(e.kind===`array`){if(t.kind===`array`&&(t.N===0&&t.itemType.kind===`value`||!$r(e.itemType,t.itemType))&&(typeof e.N!=`number`||e.N===t.N))return null}else if(e.kind===t.kind)return null;else if(e.kind===`value`){for(let e of Qr)if(!$r(e,t))return null}return`Expected ${Zr(e)} but found ${Zr(t)} instead.`}function ei(e,t){return t.some(t=>t.kind===e.kind)}function ti(e,t){return t.some(t=>t===`null`?e===null:t===`array`?Array.isArray(e):t===`object`?e&&!Array.isArray(e)&&typeof e==`object`:t===typeof e)}function ni(e,t){return e.kind===`array`&&t.kind===`array`?e.itemType.kind===t.itemType.kind&&typeof e.N==`number`:e.kind===t.kind}var ri=.96422,ii=.82521,ai=4/29,oi=6/29,si=3*oi*oi,ci=Math.PI/180,li=180/Math.PI;function ui(e){return e%=360,e<0&&(e+=360),e}function di([e,t,n,r]){e=fi(e),t=fi(t),n=fi(n);let i,a,o=pi((.2225045*e+.7168786*t+.0606169*n)/1);e===t&&t===n?i=a=o:(i=pi((.4360747*e+.3850649*t+.1430804*n)/ri),a=pi((.0139322*e+.0971045*t+.7141733*n)/ii));let s=116*o-16;return[s<0?0:s,500*(i-o),200*(o-a),r]}function fi(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function pi(e){return e>.008856451679035631?e**(1/3):e/si+ai}function mi([e,t,n,r]){let i=(e+16)/116,a=isNaN(t)?i:i+t/500,o=isNaN(n)?i:i-n/200;return i=1*gi(i),a=ri*gi(a),o=ii*gi(o),[hi(3.1338561*a-1.6168667*i-.4906146*o),hi(-.9787684*a+1.9161415*i+.033454*o),hi(.0719453*a-.2289914*i+1.4052427*o),r]}function hi(e){return e=e<=.00304?12.92*e:1.055*e**(1/2.4)-.055,e<0?0:e>1?1:e}function gi(e){return e>oi?e*e*e:si*(e-ai)}function _i(e){let[t,n,r,i]=di(e),a=Math.sqrt(n*n+r*r);return[Math.round(a*1e4)?ui(Math.atan2(r,n)*li):NaN,a,t,i]}function vi([e,t,n,r]){return e=isNaN(e)?0:e*ci,mi([n,Math.cos(e)*t,Math.sin(e)*t,r])}function yi([e,t,n,r]){e=ui(e),t/=100,n/=100;function i(r){let i=(r+e/30)%12,a=t*Math.min(n,1-n);return n-a*Math.max(-1,Math.min(i-3,9-i,1))}return[i(0),i(8),i(4),r]}var bi=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};function xi(e,t){return bi(e,t)?e[t]:void 0}function Si(e){if(e=e.toLowerCase().trim(),e===`transparent`)return[0,0,0,0];let t=xi(Di,e);if(t){let[e,n,r]=t;return[e/255,n/255,r/255,1]}if(e.startsWith(`#`)&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(e)){let t=e.length<6?1:2,n=1;return[Ci(e.slice(n,n+=t)),Ci(e.slice(n,n+=t)),Ci(e.slice(n,n+=t)),Ci(e.slice(n,n+t)||`ff`)]}if(e.startsWith(`rgb`)){let t=e.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(t){let[e,n,r,i,a,o,s,c,l,u,d,f]=t,p=[i||` `,s||` `,u].join(``);if(p===` `||p===` /`||p===`,,`||p===`,,,`){let e=[r,o,l].join(``),t=e===`%%%`?100:e===``?255:0;if(t){let e=[Ti(+n/t,0,1),Ti(+a/t,0,1),Ti(+c/t,0,1),d?wi(+d,f):1];if(Ei(e))return e}}return}}let n=e.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){let[e,t,r,i,a,o,s,c,l]=n,u=[r||` `,a||` `,s].join(``);if(u===` `||u===` /`||u===`,,`||u===`,,,`){let e=[+t,Ti(+i,0,100),Ti(+o,0,100),c?wi(+c,l):1];if(Ei(e))return yi(e)}}}function Ci(e){return parseInt(e.padEnd(2,e),16)/255}function wi(e,t){return Ti(t?e/100:e,0,1)}function Ti(e,t,n){return Math.min(Math.max(t,e),n)}function Ei(e){return!e.some(Number.isNaN)}var Di={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]};function Oi(e,t,n){return e+n*(t-e)}function ki(e,t,n){return e.map((e,r)=>Oi(e,t[r],n))}function Ai(e){return e===`rgb`||e===`hcl`||e===`lab`}var W=class e{constructor(e,t,n,r=1,i=!0){this.r=e,this.g=t,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter(`rgb`,[e,t,n,r]))}static{this.black=new e(0,0,0,1)}static{this.white=new e(1,1,1,1)}static{this.transparent=new e(0,0,0,0)}static{this.red=new e(1,0,0,1)}static parse(t){if(t instanceof e)return t;if(typeof t!=`string`)return;let n=Si(t);if(n)return new e(...n,!1)}get rgb(){let{r:e,g:t,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter(`rgb`,[e/i,t/i,n/i,r])}get hcl(){return this.overwriteGetter(`hcl`,_i(this.rgb))}get lab(){return this.overwriteGetter(`lab`,di(this.rgb))}overwriteGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}toString(){let[e,t,n,r]=this.rgb;return`rgba(${[e,t,n].map(e=>Math.round(e*255)).join(`,`)},${r})`}static interpolate(t,n,r,i=`rgb`){switch(i){case`rgb`:{let[i,a,o,s]=ki(t.rgb,n.rgb,r);return new e(i,a,o,s,!1)}case`hcl`:{let[i,a,o,s]=t.hcl,[c,l,u,d]=n.hcl,f,p;if(!isNaN(i)&&!isNaN(c)){let e=c-i;c>i&&e>180?e-=360:c<i&&i-c>180&&(e+=360),f=i+r*e}else isNaN(i)?isNaN(c)?f=NaN:(f=c,(o===1||o===0)&&(p=l)):(f=i,(u===1||u===0)&&(p=a));let[m,h,g,_]=vi([f,p??Oi(a,l,r),Oi(o,u,r),Oi(s,d,r)]);return new e(m,h,g,_,!1)}case`lab`:{let[i,a,o,s]=mi(ki(t.lab,n.lab,r));return new e(i,a,o,s,!1)}}}},ji=[`bottom`,`center`,`top`],Mi=class{constructor(e,t,n,r,i,a){this.text=e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=a}},Ni=class e{constructor(e){this.sections=e}static fromString(t){return new e([new Mi(t,null,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(t){return t instanceof e?t:e.fromString(t)}toString(){return this.sections.length===0?``:this.sections.map(e=>e.text).join(``)}},Pi=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(let e of t)if(typeof e!=`number`)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]]}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ki(t.values,n.values,r))}},Fi=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t]);if(Array.isArray(t)){for(let e of t)if(typeof e!=`number`)return;return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ki(t.values,n.values,r))}},Ii=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if(typeof t==`string`){let n=W.parse(t);return n?new e([n]):void 0}if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`string`)return;let t=W.parse(e);if(!t)return;n.push(t)}return new e(n)}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i=`rgb`){let a=[];if(t.values.length!=n.values.length)throw Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let e=0;e<t.values.length;e++)a.push(W.interpolate(t.values[e],n.values[e],r,i));return new e(a)}},Li=class extends Error{constructor(e,t){super(e),this.name=`RuntimeError`,this.path=t}toJSON(){return this.message}},Ri=new Set([`center`,`left`,`right`,`top`,`bottom`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]),zi=class e{constructor(e){this.values=e.slice()}static parse(t){if(t instanceof e)return t;if(!(!Array.isArray(t)||t.length<1||t.length%2!=0)){for(let e=0;e<t.length;e+=2){let n=t[e],r=t[e+1];if(typeof n!=`string`||!Ri.has(n)||!Array.isArray(r)||r.length!==2||typeof r[0]!=`number`||typeof r[1]!=`number`)return}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i){let a=t.values,o=n.values;if(a.length!==o.length)throw new Li(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${n.toString()}`,i);let s=[];for(let e=0;e<a.length;e+=2){if(a[e]!==o[e])throw new Li(`Cannot interpolate values containing mismatched anchors. from[${e}]: ${a[e]}, to[${e}]: ${o[e]}`,i);s.push(a[e]);let[t,n]=a[e+1],[c,l]=o[e+1];s.push([Oi(t,c,r),Oi(n,l,r)])}return new e(s)}},Bi=class e{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(t){return t?new e({name:t,available:!1}):null}},Vi=class e{constructor(e,t,n){this.from=e,this.to=t,this.transition=n}toString(){return this.from===this.to&&this.transition===1?this.from:JSON.stringify([this.from,this.to,this.transition])}static interpolate(t,n,r){return new e(t,n,r)}static parse(t){if(t instanceof e)return t;if(Array.isArray(t)&&t.length===3&&typeof t[0]==`string`&&typeof t[1]==`string`&&typeof t[2]==`number`)return new e(t[0],t[1],t[2]);if(typeof t==`object`&&typeof t.from==`string`&&typeof t.to==`string`&&typeof t.transition==`number`)return new e(t.from,t.to,t.transition);if(typeof t==`string`)return new e(t,t,1)}},Hi=class{constructor(e,t,n){this.sensitivity=e?t?`variant`:`case`:t?`accent`:`base`,this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:`search`})}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}};function Ui(e,t,n,r){return typeof e==`number`&&e>=0&&e<=255&&typeof t==`number`&&t>=0&&t<=255&&typeof n==`number`&&n>=0&&n<=255?r===void 0||typeof r==`number`&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(`, `)}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof r==`number`?[e,t,n,r]:[e,t,n]).join(`, `)}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Wi(e){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||e instanceof Vi||e instanceof W||e instanceof Hi||e instanceof Ni||e instanceof Pi||e instanceof Fi||e instanceof Ii||e instanceof zi||e instanceof Bi)return!0;if(Array.isArray(e)){for(let t of e)if(!Wi(t))return!1;return!0}if(typeof e==`object`){for(let t in e)if(!Wi(e[t]))return!1;return!0}return!1}function Gi(e){if(e===null)return Lr;if(typeof e==`string`)return H;if(typeof e==`boolean`)return Rr;if(typeof e==`number`)return V;if(e instanceof W)return zr;if(e instanceof Vi)return Br;if(e instanceof Hi)return Ur;if(e instanceof Ni)return Wr;if(e instanceof Pi)return Gr;if(e instanceof Fi)return qr;if(e instanceof Ii)return Kr;if(e instanceof zi)return Yr;if(e instanceof Bi)return Jr;if(Array.isArray(e)){let t=e.length,n;for(let t of e){let e=Gi(t);if(!n)n=e;else if(n===e)continue;else{n=U;break}}return Xr(n||U,t)}return Vr}function Ki(e){let t=typeof e;return e===null?``:t===`string`||t===`number`||t===`boolean`?String(e):e instanceof W||e instanceof Vi||e instanceof Ni||e instanceof Pi||e instanceof Fi||e instanceof Ii||e instanceof zi||e instanceof Bi?e.toString():JSON.stringify(e)}var qi=class e{constructor(e,t){this.type=e,this.value=t}static parse(t,n){if(t.length!==2)return n.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Wi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=Gi(r),a=n.expectedType;return i.kind===`array`&&i.N===0&&a&&a.kind===`array`&&(typeof a.N!=`number`||a.N===0)&&(i=a),new e(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}},Ji=[`Unknown`,`Point`,`LineString`,`Polygon`],Yi=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,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`?Ji[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 t=this._parseColorCache.get(e);return t||(t=W.parse(e),this._parseColorCache.set(e,t)),t}};function Xi(e,t,n){let r=e.length-1,i=0,a=r,o=0,s,c;for(;i<=a;)if(o=Math.floor((i+a)/2),s=e[o],c=e[o+1],s<=t){if(o===r||t<c)return o;i=o+1}else if(s>t)a=o-1;else throw new Li(`Input is not a number.`,n);return 0}var Zi=class e{constructor(e,t,n,r){this.type=e,this.input=t,this.key=r,this.labels=[],this.outputs=[];for(let[e,t]of n)this.labels.push(e),this.outputs.push(t)}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);let r=n.parse(t[1],1,V);if(!r)return null;let i=[],a=null;n.expectedType&&n.expectedType.kind!==`value`&&(a=n.expectedType);for(let e=1;e<t.length;e+=2){let r=e===1?-1/0:t[e],o=t[e+1],s=e,c=e+1;if(typeof r!=`number`)return n.error(`Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,s);if(i.length&&i[i.length-1][0]>=r)return n.error(`Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.`,s);let l=n.parse(o,c,a);if(!l)return null;a||=l.type,i.push([r,l])}return new e(a,r,i,n.key)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[Xi(t,r,this.key)].evaluate(e)}eachChild(e){e(this.input);for(let t of this.outputs)e(t)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function Qi(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5}return((l*n+c)*n+s)*n}}var $i=class e{constructor(e,t,n,r,i,a){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.key=a,this.labels=[],this.outputs=[];for(let[e,t]of i)this.labels.push(e),this.outputs.push(t)}static interpolationFactor(e,t,n,r){let i=0;if(e.name===`exponential`)i=ea(t,e.base,n,r);else if(e.name===`linear`)i=ea(t,1,n,r);else if(e.name===`cubic-bezier`){let a=e.controlPoints;i=Qi(a[0],a[1],a[2],a[3])(ea(t,1,n,r))}return i}static parse(t,n){let[r,i,a,...o]=t;if(!Array.isArray(i)||i.length===0)return n.error(`Expected an interpolation type expression.`,1);if(i[0]===`linear`)i={name:`linear`};else if(i[0]===`exponential`){let e=i[1];if(typeof e!=`number`)return n.error(`Exponential interpolation requires a numeric base.`,1,1);i={name:`exponential`,base:e}}else if(i[0]===`cubic-bezier`){let e=i.slice(1);if(e.length!==4||e.some(e=>typeof e!=`number`||e<0||e>1))return n.error(`Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.`,1);i={name:`cubic-bezier`,controlPoints:e}}else return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);if(a=n.parse(a,2,V),!a)return null;let s=[],c=null;(r===`interpolate-hcl`||r===`interpolate-lab`)&&n.expectedType!=Kr?c=zr:n.expectedType&&n.expectedType.kind!==`value`&&(c=n.expectedType);for(let e=0;e<o.length;e+=2){let t=o[e],r=o[e+1],i=e+3,a=e+4;if(typeof t!=`number`)return n.error(`Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,i);if(s.length&&s[s.length-1][0]>=t)return n.error(`Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.`,i);let l=n.parse(r,a,c);if(!l)return null;c||=l.type,s.push([t,l])}return!ni(c,V)&&!ni(c,Br)&&!ni(c,zr)&&!ni(c,Gr)&&!ni(c,qr)&&!ni(c,Kr)&&!ni(c,Yr)&&!ni(c,Xr(V))?n.error(`Type ${Zr(c)} is not interpolatable.`):new e(c,r,i,a,s,n.key)}evaluate(t){let n=this.labels,r=this.outputs;if(n.length===1)return r[0].evaluate(t);let i=this.input.evaluate(t);if(i<=n[0])return r[0].evaluate(t);let a=n.length;if(i>=n[a-1])return r[a-1].evaluate(t);let o=Xi(n,i,this.key),s=n[o],c=n[o+1],l=e.interpolationFactor(this.interpolation,i,s,c),u=r[o].evaluate(t),d=r[o+1].evaluate(t);switch(this.operator){case`interpolate`:switch(this.type.kind){case`number`:return Oi(u,d,l);case`color`:return W.interpolate(u,d,l);case`padding`:return Pi.interpolate(u,d,l);case`colorArray`:return Ii.interpolate(u,d,l);case`numberArray`:return Fi.interpolate(u,d,l);case`variableAnchorOffsetCollection`:return zi.interpolate(u,d,l,this.key);case`array`:return ki(u,d,l);case`projectionDefinition`:return Vi.interpolate(u,d,l)}case`interpolate-hcl`:switch(this.type.kind){case`color`:return W.interpolate(u,d,l,`hcl`);case`colorArray`:return Ii.interpolate(u,d,l,`hcl`)}case`interpolate-lab`:switch(this.type.kind){case`color`:return W.interpolate(u,d,l,`lab`);case`colorArray`:return Ii.interpolate(u,d,l,`lab`)}}}eachChild(e){e(this.input);for(let t of this.outputs)e(t)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function ea(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}var ta={color:W.interpolate,number:Oi,padding:Pi.interpolate,numberArray:Fi.interpolate,colorArray:Ii.interpolate,variableAnchorOffsetCollection:zi.interpolate,array:ki},na=class e{constructor(e){this.type=Wr,this.sections=e}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[1];if(!Array.isArray(r)&&typeof r==`object`)return n.error(`First argument must be an image or text section.`);let i=[],a=!1;for(let e=1;e<=t.length-1;++e){let r=t[e];if(a&&typeof r==`object`&&!Array.isArray(r)){a=!1;let e=null;if(r[`font-scale`]&&(e=n.parse(r[`font-scale`],1,V),!e))return null;let t=null;if(r[`text-font`]&&(t=n.parse(r[`text-font`],1,Xr(H)),!t))return null;let o=null;if(r[`text-color`]&&(o=n.parse(r[`text-color`],1,zr),!o))return null;let s=null;if(r[`vertical-align`]){if(typeof r[`vertical-align`]==`string`&&!ji.includes(r[`vertical-align`]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r[`vertical-align`]}' instead.`);if(s=n.parse(r[`vertical-align`],1,H),!s)return null}let c=i[i.length-1];c.scale=e,c.font=t,c.textColor=o,c.verticalAlign=s}else{let r=n.parse(t[e],1,U);if(!r)return null;let o=r.type.kind;if(o!==`string`&&o!==`value`&&o!==`null`&&o!==`resolvedImage`)return n.error(`Formatted text type must be 'string', 'value', 'image' or 'null'.`);a=!0,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null})}}return new e(i)}evaluate(e){return new Ni(this.sections.map(t=>{let n=t.content.evaluate(e);return Gi(n)===Jr?new Mi(``,n,null,null,null,t.verticalAlign?t.verticalAlign.evaluate(e):null):new Mi(Ki(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(`,`):null,t.textColor?t.textColor.evaluate(e):null,t.verticalAlign?t.verticalAlign.evaluate(e):null)}))}eachChild(e){for(let t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor),t.verticalAlign&&e(t.verticalAlign)}outputDefined(){return!1}};function ra(e,t,n=0,r=e.length-1,i=aa){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);ra(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i)}let a=e[t],o=n,s=r;for(ia(e,n,t),i(e[r],a)>0&&ia(e,n,r);o<s;){for(ia(e,o,s),o++,s--;i(e[o],a)<0;)o++;for(;i(e[s],a)>0;)s--}i(e[n],a)===0?ia(e,n,s):(s++,ia(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}}function ia(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function aa(e,t){return e<t?-1:+(e>t)}function oa(e,t){if(e.length<=1)return[e];let n=[],r,i;for(let t of e){let e=ca(t);e!==0&&(t.area=Math.abs(e),i===void 0&&(i=e<0),i===e<0?(r&&n.push(r),r=[t]):r.push(t))}if(r&&n.push(r),t>1)for(let e=0;e<n.length;e++)n[e].length<=t||(ra(n[e],t,1,n[e].length-1,sa),n[e]=n[e].slice(0,t));return n}function sa(e,t){return t.area-e.area}function ca(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}var la={string:H,number:V,boolean:Rr,object:Vr},ua=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=1,i,a=t[0];if(a===`array`){let e;if(t.length>2){let i=t[1];if(typeof i!=`string`||!(i in la)||i===`object`)return n.error(`The item type argument of "array" must be one of string, number, boolean`,1);e=la[i],r++}else e=U;let a;if(t.length>3){if(t[2]!==null&&(typeof t[2]!=`number`||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(`The length argument to "array" must be a positive integer literal`,2);a=t[2],r++}i=Xr(e,a)}else{if(!la[a])throw Error(`Types doesn't contain name = ${a}`);i=la[a]}let o=[];for(;r<t.length;r++){let e=n.parse(t[r],r,U);if(!e)return null;o.push(e)}return new e(i,o,n.key)}evaluate(e){for(let t=0;t<this.args.length;t++){let n=this.args[t].evaluate(e);if(!$r(this.type,Gi(n)))return n;if(t===this.args.length-1)throw new Li(`Expected value to be of type ${Zr(this.type)}, but found ${Zr(Gi(n))} instead.`,this.key)}throw Error()}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}},da={"to-boolean":Rr,"to-color":zr,"to-number":V,"to-string":H},fa=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[0];if(!da[r])throw Error(`Can't parse ${r} as it is not part of the known types`);if((r===`to-boolean`||r===`to-string`)&&t.length!==2)return n.error(`Expected one argument.`);let i=da[r],a=[];for(let e=1;e<t.length;e++){let r=n.parse(t[e],e,U);if(!r)return null;a.push(r)}return new e(i,a,n.key)}evaluate(e){switch(this.type.kind){case`boolean`:return!!this.args[0].evaluate(e);case`color`:{let t,n;for(let r of this.args){if(t=r.evaluate(e),n=null,t instanceof W)return t;if(typeof t==`string`){let n=e.parseColor(t);if(n)return n}else if(Array.isArray(t)&&(n=t.length<3||t.length>4?`Invalid rgba value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:Ui(t[0],t[1],t[2],t[3]),!n))return new W(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new Li(n||`Could not parse color from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case`padding`:{let t;for(let n of this.args){t=n.evaluate(e);let r=Pi.parse(t);if(r)return r}throw new Li(`Could not parse padding from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case`numberArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=Fi.parse(t);if(r)return r}throw new Li(`Could not parse numberArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case`colorArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=Ii.parse(t);if(r)return r}throw new Li(`Could not parse colorArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case`variableAnchorOffsetCollection`:{let t;for(let n of this.args){t=n.evaluate(e);let r=zi.parse(t);if(r)return r}throw new Li(`Could not parse variableAnchorOffsetCollection from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case`number`:{let t=null;for(let n of this.args){if(t=n.evaluate(e),t===null)return 0;let r=Number(t);if(!isNaN(r))return r}throw new Li(`Could not convert ${JSON.stringify(t)} to number.`,this.key)}case`formatted`:return Ni.fromString(Ki(this.args[0].evaluate(e)));case`resolvedImage`:return Bi.fromString(Ki(this.args[0].evaluate(e)));case`projectionDefinition`:{let t=this.args[0].evaluate(e);if(Vi.parse(t))return t;throw new Li(`Could not parse projectionDefinition from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}default:return Ki(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}},pa=class e{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(let t of this.bindings)e(t[1]);e(this.result)}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);let r=[];for(let e=1;e<t.length-1;e+=2){let i=t[e];if(typeof i!=`string`)return n.error(`Expected string, but found ${typeof i} instead.`,e);if(/[^a-zA-Z0-9_]/.test(i))return n.error(`Variable names must contain only alphanumeric characters or '_'.`,e);let a=n.parse(t[e+1],e+1);if(!a)return null;r.push([i,a])}let i=n.parse(t[t.length-1],t.length-1,n.expectedType,r);return i?new e(r,i):null}outputDefined(){return this.result.outputDefined()}},ma=class e{constructor(e,t){this.type=t.type,this.name=e,this.boundExpression=t}static parse(t,n){if(t.length!==2||typeof t[1]!=`string`)return n.error(`'var' expression requires exactly one string literal argument.`);let r=t[1];return n.scope.has(r)?new e(r,n.scope.get(r)):n.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}},ha=class e{constructor(e,t,n,r){this.type=e,this.index=t,this.input=n,this.key=r}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,V),i=n.parse(t[2],2,Xr(n.expectedType||U));if(!r||!i)return null;let a=i.type;return new e(a.itemType,r,i,n.key)}evaluate(e){let t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new Li(`Array index out of bounds: ${t} < 0.`,this.key);if(t>=n.length)throw new Li(`Array index out of bounds: ${t} > ${n.length-1}.`,this.key);if(t!==Math.floor(t))throw new Li(`Array index must be an integer, but found ${t} instead.`,this.key);return n[t]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}},ga=class e{constructor(e,t,n){this.needle=e,this.haystack=t,this.key=n,this.type=Rr}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,U),i=n.parse(t[2],2,U);return!r||!i?null:ei(r.type,[Rr,H,V,Lr,U])?new e(r,i,n.key):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Zr(r.type)} instead`)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return!1;if(!ti(t,[`boolean`,`string`,`number`,`null`]))throw new Li(`Expected first argument to be of type boolean, string, number or null, but found ${Zr(Gi(t))} instead.`,this.key);if(!ti(n,[`string`,`array`]))throw new Li(`Expected second argument to be of type array or string, but found ${Zr(Gi(n))} instead.`,this.key);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}},_a=class e{constructor(e,t,n,r){this.needle=e,this.haystack=t,this.key=n,this.fromIndex=r,this.type=V}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,U),i=n.parse(t[2],2,U);if(!r||!i)return null;if(!ei(r.type,[Rr,H,V,Lr,U]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Zr(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,V);return a?new e(r,i,n.key,a):null}return new e(r,i,n.key)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!ti(t,[`boolean`,`string`,`number`,`null`]))throw new Li(`Expected first argument to be of type boolean, string, number or null, but found ${Zr(Gi(t))} instead.`,this.key);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(e)),ti(n,[`string`])){let e=n.indexOf(t,r);return e===-1?-1:[...n.slice(0,e)].length}if(ti(n,[`array`]))return n.indexOf(t,r);throw new Li(`Expected second argument to be of type array or string, but found ${Zr(Gi(n))} instead.`,this.key)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}},va=class e{constructor(e,t,n,r,i,a){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=a}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error(`Expected an even number of arguments.`);let r,i;n.expectedType&&n.expectedType.kind!==`value`&&(i=n.expectedType);let a={},o=[];for(let e=2;e<t.length-1;e+=2){let s=t[e],c=t[e+1];Array.isArray(s)||(s=[s]);let l=n.concat(e);if(s.length===0)return l.error(`Expected at least one branch label.`);for(let e of s){if(typeof e!=`number`&&typeof e!=`string`)return l.error(`Branch labels must be numbers or strings.`);if(typeof e==`number`&&Math.abs(e)>2**53-1)return l.error(`Branch labels must be integers no larger than ${2**53-1}.`);if(typeof e==`number`&&Math.floor(e)!==e)return l.error(`Numeric branch labels must be integer values.`);if(!r)r=Gi(e);else if(l.checkSubtype(r,Gi(e)))return null;if(a[String(e)]!==void 0)return l.error(`Branch labels must be unique.`);a[String(e)]=o.length}let u=n.parse(c,e,i);if(!u)return null;i||=u.type,o.push(u)}let s=n.parse(t[1],1,U);if(!s)return null;let c=n.parse(t[t.length-1],t.length-1,i);return!c||s.type.kind!==`value`&&n.concat(1).checkSubtype(r,s.type)?null:new e(r,i,s,a,o,c)}evaluate(e){let t=this.input.evaluate(e);return(Gi(t)===this.inputType&&this.outputs[this.cases[t]]||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()}},ya=class e{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error(`Expected an odd number of arguments.`);let r;n.expectedType&&n.expectedType.kind!==`value`&&(r=n.expectedType);let i=[];for(let e=1;e<t.length-1;e+=2){let a=n.parse(t[e],e,Rr);if(!a)return null;let o=n.parse(t[e+1],e+1,r);if(!o)return null;i.push([a,o]),r||=o.type}let a=n.parse(t[t.length-1],t.length-1,r);if(!a)return null;if(!r)throw Error(`Can't infer output type`);return new e(r,i,a)}evaluate(e){for(let[t,n]of this.branches)if(t.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(let[t,n]of this.branches)e(t),e(n);e(this.otherwise)}outputDefined(){return this.branches.every(([e,t])=>t.outputDefined())&&this.otherwise.outputDefined()}},ba=class e{constructor(e,t,n,r,i){this.type=e,this.input=t,this.beginIndex=n,this.key=r,this.endIndex=i}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,U),i=n.parse(t[2],2,V);if(!r||!i)return null;if(!ei(r.type,[Xr(U),H,U]))return n.error(`Expected first argument to be of type array or string, but found ${Zr(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,V);return a?new e(r.type,r,i,n.key,a):null}return new e(r.type,r,i,n.key)}evaluate(e){let t=this.input.evaluate(e),n=this.beginIndex.evaluate(e),r;if(this.endIndex&&(r=this.endIndex.evaluate(e)),ti(t,[`string`]))return[...t].slice(n,r).join(``);if(ti(t,[`array`]))return t.slice(n,r);throw new Li(`Expected first argument to be of type array or string, but found ${Zr(Gi(t))} instead.`,this.key)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}},xa=class e{constructor(e,t){this.type=e,this.args=t}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=null,i=n.expectedType;i&&i.kind!==`value`&&(r=i);let a=[];for(let e of t.slice(1)){let t=n.parse(e,1+a.length,r,void 0,{typeAnnotation:`omit`});if(!t)return null;r||=t.type,a.push(t)}if(!r)throw Error(`No output type`);return i&&a.some(e=>$r(i,e.type))?new e(U,a):new e(r,a)}evaluate(e){let t=null,n=0,r;for(let i of this.args)if(n++,t=i.evaluate(e),t&&t instanceof Bi&&!t.available&&(r||=t.name,t=null,n===this.args.length&&(t=r)),t!==null)break;return t}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}};function Sa(e,t){return e===`==`||e===`!=`?t.kind===`boolean`||t.kind===`string`||t.kind===`number`||t.kind===`null`||t.kind===`value`:t.kind===`string`||t.kind===`number`||t.kind===`value`}function Ca(e,t,n){return t===n}function wa(e,t,n){return t!==n}function Ta(e,t,n){return t<n}function Ea(e,t,n){return t>n}function Da(e,t,n){return t<=n}function Oa(e,t,n){return t>=n}function ka(e,t,n,r){return r.compare(t,n)===0}function Aa(e,t,n,r){return!ka(e,t,n,r)}function ja(e,t,n,r){return r.compare(t,n)<0}function Ma(e,t,n,r){return r.compare(t,n)>0}function Na(e,t,n,r){return r.compare(t,n)<=0}function Pa(e,t,n,r){return r.compare(t,n)>=0}function Fa(e,t,n){let r=e!==`==`&&e!==`!=`;return class i{constructor(e,t,n,r){this.lhs=e,this.rhs=t,this.key=n,this.collator=r,this.type=Rr,this.hasUntypedArgument=e.type.kind===`value`||t.type.kind===`value`}static parse(e,t){if(e.length!==3&&e.length!==4)return t.error(`Expected two or three arguments.`);let n=e[0],a=t.parse(e[1],1,U);if(!a)return null;if(!Sa(n,a.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${Zr(a.type)}'.`);let o=t.parse(e[2],2,U);if(!o)return null;if(!Sa(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${Zr(o.type)}'.`);if(a.type.kind!==o.type.kind&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot compare types '${Zr(a.type)}' and '${Zr(o.type)}'.`);r&&(a.type.kind===`value`&&o.type.kind!==`value`?a=new ua(o.type,[a],t.key):a.type.kind!==`value`&&o.type.kind===`value`&&(o=new ua(a.type,[o],t.key)));let s=null;if(e.length===4){if(a.type.kind!==`string`&&o.type.kind!==`string`&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot use collator to compare non-string types.`);if(s=t.parse(e[3],3,Ur),!s)return null}return new i(a,o,t.key,s)}evaluate(i){let a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){let t=Gi(a),n=Gi(o);if(t.kind!==n.kind||t.kind!==`string`&&t.kind!==`number`)throw new Li(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`,this.key)}if(this.collator&&!r&&this.hasUntypedArgument){let e=Gi(a),n=Gi(o);if(e.kind!==`string`||n.kind!==`string`)return t(i,a,o)}return this.collator?n(i,a,o,this.collator.evaluate(i)):t(i,a,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator)}outputDefined(){return!0}}}var Ia=Fa(`==`,Ca,ka),La=Fa(`!=`,wa,Aa),Ra=Fa(`<`,Ta,ja),za=Fa(`>`,Ea,Ma),Ba=Fa(`<=`,Da,Na),Va=Fa(`>=`,Oa,Pa),Ha=class e{constructor(e,t,n){this.type=Ur,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t}static parse(t,n){if(t.length!==2)return n.error(`Expected one argument.`);let r=t[1];if(typeof r!=`object`||Array.isArray(r))return n.error(`Collator options argument must be an object.`);let i=n.parse(r[`case-sensitive`]!==void 0&&r[`case-sensitive`],1,Rr);if(!i)return null;let a=n.parse(r[`diacritic-sensitive`]!==void 0&&r[`diacritic-sensitive`],1,Rr);if(!a)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,H),!o)?null:new e(i,a,o)}evaluate(e){return new Hi(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}},Ua=class e{constructor(e,t,n,r,i,a){this.type=H,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=a}static parse(t,n){if(t.length!==3)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,V);if(!r)return null;let i=t[2];if(typeof i!=`object`||Array.isArray(i))return n.error(`NumberFormat options argument must be an object.`);let a=null;if(i.locale&&(a=n.parse(i.locale,1,H),!a))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,H),!o))return null;let s=null;if(i.unit&&(s=n.parse(i.unit,1,H),!s))return null;if(o&&s)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let c=null;if(i[`min-fraction-digits`]&&(c=n.parse(i[`min-fraction-digits`],1,V),!c))return null;let l=null;return i[`max-fraction-digits`]&&(l=n.parse(i[`max-fraction-digits`],1,V),!l)?null:new e(r,a,o,s,c,l)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?`currency`:this.unit?`unit`:`decimal`,currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.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.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}},Wa=class e{constructor(e){this.type=Jr,this.input=e}static parse(t,n){if(t.length!==2)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,H);return r?new e(r):n.error(`No image name provided.`)}evaluate(e){let t=this.input.evaluate(e),n=Bi.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input)}outputDefined(){return!1}},Ga=class e{constructor(e,t){this.input=e,this.key=t,this.type=V}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=n.parse(t[1],1);return r?r.type.kind!==`array`&&r.type.kind!==`string`&&r.type.kind!==`value`?n.error(`Expected argument of type string or array, but found ${Zr(r.type)} instead.`):new e(r,n.key):null}evaluate(e){let t=this.input.evaluate(e);if(typeof t==`string`)return[...t].length;if(Array.isArray(t))return t.length;throw new Li(`Expected value to be of type string or array, but found ${Zr(Gi(t))} instead.`,this.key)}eachChild(e){e(this.input)}outputDefined(){return!1}},Ka=8192;function qa(e,t){let n=Ya(e[0]),r=Za(e[1]),i=2**t.z;return[Math.round(n*i*Ka),Math.round(r*i*Ka)]}function Ja(e,t){let n=2**t.z,r=(e[0]/Ka+t.x)/n,i=(e[1]/Ka+t.y)/n;return[Xa(r),Qa(i)]}function Ya(e){return(180+e)/360}function Xa(e){return e*360-180}function Za(e){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function Qa(e){return 360/Math.PI*Math.atan(Math.exp((180-e*360)*Math.PI/180))-90}function $a(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1])}function eo(e,t){return!(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function to(e,t,n){return t[1]>e[1]!=n[1]>e[1]&&e[0]<(n[0]-t[0])*(e[1]-t[1])/(n[1]-t[1])+t[0]}function no(e,t,n){let r=e[0]-t[0],i=e[1]-t[1],a=e[0]-n[0],o=e[1]-n[1];return r*o-a*i===0&&r*a<=0&&i*o<=0}function ro(e,t,n,r){let i=[t[0]-e[0],t[1]-e[1]];return lo([r[0]-n[0],r[1]-n[1]],i)!==0&&!!(uo(e,t,n,r)&&uo(n,r,e,t))}function io(e,t,n){for(let r of n)for(let n=0;n<r.length-1;++n)if(ro(e,t,r[n],r[n+1]))return!0;return!1}function ao(e,t,n=!1){let r=!1;for(let i of t)for(let t=0;t<i.length-1;t++){if(no(e,i[t],i[t+1]))return n;to(e,i[t],i[t+1])&&(r=!r)}return r}function oo(e,t){for(let n of t)if(ao(e,n))return!0;return!1}function so(e,t){for(let n of e)if(!ao(n,t))return!1;for(let n=0;n<e.length-1;++n)if(io(e[n],e[n+1],t))return!1;return!0}function co(e,t){for(let n of t)if(so(e,n))return!0;return!1}function lo(e,t){return e[0]*t[1]-e[1]*t[0]}function uo(e,t,n,r){let i=e[0]-n[0],a=e[1]-n[1],o=t[0]-n[0],s=t[1]-n[1],c=r[0]-n[0],l=r[1]-n[1],u=i*l-c*a,d=o*l-c*s;return u>0&&d<0||u<0&&d>0}function fo(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=[];for(let r=0;r<e[i].length;r++){let o=qa(e[i][r],n);$a(t,o),a.push(o)}r.push(a)}return r}function po(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=fo(e[i],t,n);r.push(a)}return r}function mo(e,t,n,r){if(e[0]<n[0]||e[0]>n[2]){let t=r*.5,i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;i===0&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i}$a(t,e)}function ho(e){e[0]=e[1]=1/0,e[2]=e[3]=-1/0}function go(e,t,n,r){let i=2**r.z*Ka,a=[r.x*Ka,r.y*Ka],o=[];for(let r of e)for(let e of r){let r=[e.x+a[0],e.y+a[1]];mo(r,t,n,i),o.push(r)}return o}function _o(e,t,n,r){let i=2**r.z*Ka,a=[r.x*Ka,r.y*Ka],o=[];for(let n of e){let e=[];for(let r of n){let n=[r.x+a[0],r.y+a[1]];$a(t,n),e.push(n)}o.push(e)}if(t[2]-t[0]<=i/2){ho(t);for(let e of o)for(let r of e)mo(r,t,n,i)}return o}function vo(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=fo(t.coordinates,r,i),o=go(e.geometry(),n,r,i);if(!eo(n,r))return!1;for(let e of o)if(!ao(e,a))return!1}if(t.type===`MultiPolygon`){let a=po(t.coordinates,r,i),o=go(e.geometry(),n,r,i);if(!eo(n,r))return!1;for(let e of o)if(!oo(e,a))return!1}return!0}function yo(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=fo(t.coordinates,r,i),o=_o(e.geometry(),n,r,i);if(!eo(n,r))return!1;for(let e of o)if(!so(e,a))return!1}if(t.type===`MultiPolygon`){let a=po(t.coordinates,r,i),o=_o(e.geometry(),n,r,i);if(!eo(n,r))return!1;for(let e of o)if(!co(e,a))return!1}return!0}var bo=class e{constructor(e,t){this.type=Rr,this.geojson=e,this.geometries=t}static parse(t,n){if(t.length!==2)return n.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Wi(t[1])){let n=t[1];if(n.type===`FeatureCollection`){let t=[];for(let e of n.features){let{type:n,coordinates:r}=e.geometry;n===`Polygon`&&t.push(r),n===`MultiPolygon`&&t.push(...r)}if(t.length)return new e(n,{type:`MultiPolygon`,coordinates:t})}else if(n.type===`Feature`){let t=n.geometry.type;if(t===`Polygon`||t===`MultiPolygon`)return new e(n,n.geometry)}else if(n.type===`Polygon`||n.type===`MultiPolygon`)return new e(n,n)}return n.error(`'within' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return vo(e,this.geometries);if(e.geometryType()===`LineString`)return yo(e,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}},xo=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i}t[e]=r}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r}t[e]=i}},So=Math.PI/180,Co=class{constructor(e){let t=So*6378.137*1e3,n=Math.cos(e*So),r=1/(1-.0066943799901413165*(1-n*n)),i=Math.sqrt(r);this.kx=t*i*n,this.ky=t*i*r*.9933056200098587}distance(e,t){let n=this.wrap(e[0]-t[0])*this.kx,r=(e[1]-t[1])*this.ky;return Math.sqrt(n*n+r*r)}pointOnLine(e,t){let n=1/0,r,i,a,o;for(let s=0;s<e.length-1;s++){let c=e[s][0],l=e[s][1],u=this.wrap(e[s+1][0]-c)*this.kx,d=(e[s+1][1]-l)*this.ky,f=0;(u!==0||d!==0)&&(f=(this.wrap(t[0]-c)*this.kx*u+(t[1]-l)*this.ky*d)/(u*u+d*d),f>1?(c=e[s+1][0],l=e[s+1][1]):f>0&&(c+=u/this.kx*f,l+=d/this.ky*f)),u=this.wrap(t[0]-c)*this.kx,d=(t[1]-l)*this.ky;let p=u*u+d*d;p<n&&(n=p,r=c,i=l,a=s,o=f)}return{point:[r,i],index:a,t:Math.max(0,Math.min(1,o))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};function wo(e,t){return t[0]-e[0]}function To(e){return e[1]-e[0]+1}function Eo(e,t){return e[1]>=e[0]&&e[1]<t}function Do(e,t){if(e[0]>e[1])return[null,null];let n=To(e);if(t){if(n===2)return[e,null];let t=Math.floor(n/2);return[[e[0],e[0]+t],[e[0]+t,e[1]]]}if(n===1)return[e,null];let r=Math.floor(n/2)-1;return[[e[0],e[0]+r],[e[0]+r+1,e[1]]]}function Oo(e,t){if(!Eo(t,e.length))return[1/0,1/0,-1/0,-1/0];let n=[1/0,1/0,-1/0,-1/0];for(let r=t[0];r<=t[1];++r)$a(n,e[r]);return n}function ko(e){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)for(let e of n)$a(t,e);return t}function Ao(e){return e[0]!==-1/0&&e[1]!==-1/0&&e[2]!==1/0&&e[3]!==1/0}function jo(e,t,n){if(!Ao(e)||!Ao(t))return NaN;let r=0,i=0;return e[2]<t[0]&&(r=t[0]-e[2]),e[0]>t[2]&&(r=e[0]-t[2]),e[1]>t[3]&&(i=e[1]-t[3]),e[3]<t[1]&&(i=t[1]-e[3]),n.distance([0,0],[r,i])}function Mo(e,t,n){let r=n.pointOnLine(t,e);return n.distance(e,r.point)}function No(e,t,n,r,i){let a=Math.min(Mo(e,[n,r],i),Mo(t,[n,r],i)),o=Math.min(Mo(n,[e,t],i),Mo(r,[e,t],i));return Math.min(a,o)}function Po(e,t,n,r,i){if(!(Eo(t,e.length)&&Eo(r,n.length)))return 1/0;let a=1/0;for(let o=t[0];o<t[1];++o){let t=e[o],s=e[o+1];for(let e=r[0];e<r[1];++e){let r=n[e],o=n[e+1];if(ro(t,s,r,o))return 0;a=Math.min(a,No(t,s,r,o,i))}}return a}function Fo(e,t,n,r,i){if(!(Eo(t,e.length)&&Eo(r,n.length)))return NaN;let a=1/0;for(let o=t[0];o<=t[1];++o)for(let t=r[0];t<=r[1];++t)if(a=Math.min(a,i.distance(e[o],n[t])),a===0)return a;return a}function Io(e,t,n){if(ao(e,t,!0))return 0;let r=1/0;for(let i of t){let t=i[0],a=i[i.length-1];if(t!==a&&(r=Math.min(r,Mo(e,[a,t],n)),r===0))return r;let o=n.pointOnLine(i,e);if(r=Math.min(r,n.distance(e,o.point)),r===0)return r}return r}function Lo(e,t,n,r){if(!Eo(t,e.length))return NaN;for(let r=t[0];r<=t[1];++r)if(ao(e[r],n,!0))return 0;let i=1/0;for(let a=t[0];a<t[1];++a){let t=e[a],o=e[a+1];for(let e of n)for(let n=0,a=e.length,s=a-1;n<a;s=n++){let a=e[s],c=e[n];if(ro(t,o,a,c))return 0;i=Math.min(i,No(t,o,a,c,r))}}return i}function Ro(e,t){for(let n of e)for(let e of n)if(ao(e,t,!0))return!0;return!1}function zo(e,t,n,r=1/0){let i=ko(e),a=ko(t);if(r!==1/0&&jo(i,a,n)>=r)return r;if(eo(i,a)){if(Ro(e,t))return 0}else if(Ro(t,e))return 0;let o=1/0;for(let r of e)for(let e=0,i=r.length,a=i-1;e<i;a=e++){let i=r[a],s=r[e];for(let e of t)for(let t=0,r=e.length,a=r-1;t<r;a=t++){let r=e[a],c=e[t];if(ro(i,s,r,c))return 0;o=Math.min(o,No(i,s,r,c,n))}}return o}function Bo(e,t,n,r,i,a){if(!a)return;let o=jo(Oo(r,a),i,n);o<t&&e.push([o,a,[0,0]])}function Vo(e,t,n,r,i,a,o){if(!a||!o)return;let s=jo(Oo(r,a),Oo(i,o),n);s<t&&e.push([s,a,o])}function Ho(e,t,n,r,i=1/0){let a=Math.min(r.distance(e[0],n[0][0]),i);if(a===0)return a;let o=new xo([[0,[0,e.length-1],[0,0]]],wo),s=ko(n);for(;o.length>0;){let i=o.pop();if(i[0]>=a)continue;let c=i[1],l=t?50:100;if(To(c)<=l){if(!Eo(c,e.length))return NaN;if(t){let t=Lo(e,c,n,r);if(isNaN(t)||t===0)return t;a=Math.min(a,t)}else for(let t=c[0];t<=c[1];++t){let i=Io(e[t],n,r);if(a=Math.min(a,i),a===0)return 0}}else{let n=Do(c,t);Bo(o,a,r,e,s,n[0]),Bo(o,a,r,e,s,n[1])}}return a}function Uo(e,t,n,r,i,a=1/0){let o=Math.min(a,i.distance(e[0],n[0]));if(o===0)return o;let s=new xo([[0,[0,e.length-1],[0,n.length-1]]],wo);for(;s.length>0;){let a=s.pop();if(a[0]>=o)continue;let c=a[1],l=a[2],u=t?50:100,d=r?50:100;if(To(c)<=u&&To(l)<=d){if(!Eo(c,e.length)&&Eo(l,n.length))return NaN;let a;if(t&&r)a=Po(e,c,n,l,i),o=Math.min(o,a);else if(t&&!r){let t=e.slice(c[0],c[1]+1);for(let e=l[0];e<=l[1];++e)if(a=Mo(n[e],t,i),o=Math.min(o,a),o===0)return o}else if(!t&&r){let t=n.slice(l[0],l[1]+1);for(let n=c[0];n<=c[1];++n)if(a=Mo(e[n],t,i),o=Math.min(o,a),o===0)return o}else a=Fo(e,c,n,l,i),o=Math.min(o,a)}else{let a=Do(c,t),u=Do(l,r);Vo(s,o,i,e,n,a[0],u[0]),Vo(s,o,i,e,n,a[0],u[1]),Vo(s,o,i,e,n,a[1],u[0]),Vo(s,o,i,e,n,a[1],u[1])}}return o}function Wo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ja([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Co(r[0][1]),a=1/0;for(let e of t){switch(e.type){case`Point`:a=Math.min(a,Uo(r,!1,[e.coordinates],!1,i,a));break;case`LineString`:a=Math.min(a,Uo(r,!1,e.coordinates,!0,i,a));break;case`Polygon`:a=Math.min(a,Ho(r,!1,e.coordinates,i,a))}if(a===0)return a}return a}function Go(e,t){let n=e.geometry(),r=n.flat().map(t=>Ja([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Co(r[0][1]),a=1/0;for(let e of t){switch(e.type){case`Point`:a=Math.min(a,Uo(r,!0,[e.coordinates],!1,i,a));break;case`LineString`:a=Math.min(a,Uo(r,!0,e.coordinates,!0,i,a));break;case`Polygon`:a=Math.min(a,Ho(r,!0,e.coordinates,i,a))}if(a===0)return a}return a}function Ko(e,t){let n=e.geometry();if(n.length===0||n[0].length===0)return NaN;let r=oa(n,0).map(t=>t.map(t=>t.map(t=>Ja([t.x,t.y],e.canonical)))),i=new Co(r[0][0][0][1]),a=1/0;for(let e of t)for(let t of r){switch(e.type){case`Point`:a=Math.min(a,Ho([e.coordinates],!1,t,i,a));break;case`LineString`:a=Math.min(a,Ho(e.coordinates,!0,t,i,a));break;case`Polygon`:a=Math.min(a,zo(t,e.coordinates,i,a))}if(a===0)return a}return a}function qo(e){return e.type===`MultiPolygon`?e.coordinates.map(e=>({type:`Polygon`,coordinates:e})):e.type===`MultiLineString`?e.coordinates.map(e=>({type:`LineString`,coordinates:e})):e.type===`MultiPoint`?e.coordinates.map(e=>({type:`Point`,coordinates:e})):[e]}var Jo=class e{constructor(e,t){this.type=V,this.geojson=e,this.geometries=t}static parse(t,n){if(t.length!==2)return n.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Wi(t[1])){let n=t[1];if(n.type===`FeatureCollection`)return new e(n,n.features.map(e=>qo(e.geometry)).flat());if(n.type===`Feature`)return new e(n,qo(n.geometry));if(`type`in n&&`coordinates`in n)return new e(n,qo(n))}return n.error(`'distance' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return Wo(e,this.geometries);if(e.geometryType()===`LineString`)return Go(e,this.geometries);if(e.geometryType()===`Polygon`)return Ko(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}},Yo=class e{constructor(e){let t=null;for(let n of e)if(!t)t=n.type;else if(t===n.type)continue;else{t=U;break}this.type=Xr(t??U,e.length),this.arr=e}static parse(t,n){if(t.length!==2)return n.error(`'semiliteral' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Wi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=Gi(r);if(i.kind===`array`){let t=r,i=n.concat(1),a=[];for(let e=0;e<t.length;e++){let n=i.parse(t[e],e,U);if(!n)return null;a.push(n)}return new e(a)}return new qi(i,r)}evaluate(e){return this.arr.map(t=>t.evaluate(e))}eachChild(e){this.arr.forEach(e)}outputDefined(){return this.arr.every(e=>e.outputDefined())}},Xo=class e{constructor(e){this.key=e,this.type=U}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=t[1];return r==null?n.error(`Global state property must be defined.`):typeof r==`string`?new e(r):n.error(`Global state property must be string, but found ${typeof t[1]} instead.`)}evaluate(e){let t=e.globals?.globalState;return!t||Object.keys(t).length===0?null:xi(t,this.key)??null}eachChild(){}outputDefined(){return!1}},Zo={"==":Ia,"!=":La,">":za,"<":Ra,">=":Va,"<=":Ba,array:ua,at:ha,boolean:ua,case:ya,coalesce:xa,collator:Ha,format:na,image:Wa,in:ga,"index-of":_a,interpolate:$i,"interpolate-hcl":$i,"interpolate-lab":$i,length:Ga,let:pa,literal:qi,match:va,number:ua,"number-format":Ua,object:ua,semiliteral:Yo,slice:ba,step:Zi,string:ua,"to-boolean":fa,"to-color":fa,"to-number":fa,"to-string":fa,var:ma,within:bo,distance:Jo,"global-state":Xo},Qo=class extends Error{constructor(e,t){super(t),this.message=t,this.key=e}},$o=class e{constructor(e,t=[]){this.parent=e,this.bindings={};for(let[e,n]of t)this.bindings[e]=n}concat(t){return new e(this,t)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw Error(`${e} not found in scope.`)}has(e){return this.bindings[e]?!0:this.parent?this.parent.has(e):!1}},es=class e{constructor(e,t,n=[],r,i=new $o,a=[]){this.registry=e,this.path=n,this.key=n.map(e=>`[${e}]`).join(``),this.scope=i,this.errors=a,this.expectedType=r,this._isConstant=t}parse(e,t,n,r,i={}){return t==null?this._parse(e,i):this.concat(t,n,r)._parse(e,i)}_parse(e,t){(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`)&&(e=[`literal`,e]);let n=this.key;function r(e,t,r){return r===`assert`?new ua(t,[e],n):r===`coerce`?new fa(t,[e],n):e}if(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", []].`);let n=e[0];if(typeof n!=`string`)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let i=this.registry[n];if(i){let n=i.parse(e,this);if(!n)return null;if(this.expectedType){let e=this.expectedType,i=n.type;if((e.kind===`string`||e.kind===`number`||e.kind===`boolean`||e.kind===`object`||e.kind===`array`)&&i.kind===`value`)n=r(n,e,t.typeAnnotation||`assert`);else if(e.kind===`projectionDefinition`&&[`string`,`array`,`value`].includes(i.kind)||[`color`,`formatted`,`resolvedImage`].includes(e.kind)&&[`value`,`string`].includes(i.kind)||[`padding`,`numberArray`].includes(e.kind)&&[`value`,`number`,`array`].includes(i.kind)||e.kind===`colorArray`&&[`value`,`string`,`array`].includes(i.kind)||e.kind===`variableAnchorOffsetCollection`&&[`value`,`array`].includes(i.kind))n=r(n,e,t.typeAnnotation||`coerce`);else if(this.checkSubtype(e,i))return null}if(!(n instanceof qi)&&n.type.kind!==`resolvedImage`&&this._isConstant(n)){let e=new Yi;try{n=new qi(n.type,n.evaluate(e))}catch(e){return this.error(e.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return e===void 0?this.error(`'undefined' value invalid. Use null instead.`):typeof e==`object`?this.error(`Bare objects invalid. Use ["literal", {...}] instead.`):this.error(`Expected an array, but found ${typeof e} instead.`)}concat(t,n,r){let i=typeof t==`number`?this.path.concat(t):this.path,a=r?this.scope.concat(r):this.scope;return new e(this.registry,this._isConstant,i,n||null,a,this.errors)}error(e,...t){let n=`${this.key}${t.map(e=>`[${e}]`).join(``)}`;this.errors.push(new Qo(n,e))}checkSubtype(e,t){let n=$r(e,t);return n&&this.error(n),n}},ts=class e{constructor(e,t,n,r,i){this.name=e,this.type=t,this._evaluate=n,this.args=r,this.key=i}evaluate(e){return this._evaluate(e,this.args,this.key)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}static parse(t,n){let r=t[0],i=e.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);let a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1),c=null;for(let[i,o]of s){c=new es(n.registry,cs,n.path,null,n.scope);let s=[],l=!1;for(let e=1;e<t.length;e++){let n=t[e],r=Array.isArray(i)?i[e-1]:i.type,a=c.parse(n,1+s.length,r);if(!a){l=!0;break}s.push(a)}if(!l){if(Array.isArray(i)&&i.length!==s.length){c.error(`Expected ${i.length} arguments, but found ${s.length} instead.`);continue}for(let e=0;e<s.length;e++){let t=Array.isArray(i)?i[e]:i.type,n=s[e];c.concat(e+1).checkSubtype(t,n.type)}if(c.errors.length===0)return new e(r,a,o,s,n.key)}}if(s.length===1)n.errors.push(...c.errors);else{let e=(s.length?s:o).map(([e])=>ss(e)).join(` | `),r=[];for(let e=1;e<t.length;e++){let i=n.parse(t[e],1+r.length);if(!i)return null;r.push(Zr(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(`, `)}) instead.`)}return null}static register(t,n){e.definitions=n;for(let r in n)t[r]=e}};function ns(e,[t,n,r,i],a){t=t.evaluate(e),n=n.evaluate(e),r=r.evaluate(e);let o=i?i.evaluate(e):1,s=Ui(t,n,r,o);if(s)throw new Li(s,a);return new W(t/255,n/255,r/255,o,!1)}function rs(e,t){return e in t&&t[e]!==void 0}function is(e,t){let n=t[e];return n===void 0?null:n}function as(e,t,n,r){for(;n<=r;){let i=n+r>>1;if(t[i]===e)return!0;t[i]>e?r=i-1:n=i+1}return!1}function os(e){return{type:e}}ts.register(Zo,{error:[Hr,[H],(e,[t],n)=>{throw new Li(t.evaluate(e),n)}],typeof:[H,[U],(e,[t])=>Zr(Gi(t.evaluate(e)))],"to-rgba":[Xr(V,4),[zr],(e,[t])=>{let[n,r,i,a]=t.evaluate(e).rgb;return[n*255,r*255,i*255,a]}],rgb:[zr,[V,V,V],ns],rgba:[zr,[V,V,V,V],ns],has:{type:Rr,overloads:[[[H],(e,[t])=>rs(t.evaluate(e),e.properties())],[[H,Vr],(e,[t,n])=>rs(t.evaluate(e),n.evaluate(e))]]},get:{type:U,overloads:[[[H],(e,[t])=>is(t.evaluate(e),e.properties())],[[H,Vr],(e,[t,n])=>is(t.evaluate(e),n.evaluate(e))]]},"feature-state":[U,[H],(e,[t])=>is(t.evaluate(e),e.featureState||{})],properties:[Vr,[],e=>e.properties()],"geometry-type":[H,[],e=>e.geometryType()],id:[U,[],e=>e.id()],zoom:[V,[],e=>e.globals.zoom],"heatmap-density":[V,[],e=>e.globals.heatmapDensity||0],elevation:[V,[],e=>e.globals.elevation||0],"line-progress":[V,[],e=>e.globals.lineProgress||0],accumulated:[U,[],e=>e.globals.accumulated===void 0?null:e.globals.accumulated],"+":[V,os(V),(e,t)=>{let n=0;for(let r of t)n+=r.evaluate(e);return n}],"*":[V,os(V),(e,t)=>{let n=1;for(let r of t)n*=r.evaluate(e);return n}],"-":{type:V,overloads:[[[V,V],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[V],(e,[t])=>-t.evaluate(e)]]},"/":[V,[V,V],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[V,[V,V],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[V,[],()=>Math.LN2],pi:[V,[],()=>Math.PI],e:[V,[],()=>Math.E],"^":[V,[V,V],(e,[t,n])=>t.evaluate(e)**+n.evaluate(e)],sqrt:[V,[V],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[V,[V],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[V,[V],(e,[t])=>Math.log(t.evaluate(e))],log2:[V,[V],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[V,[V],(e,[t])=>Math.sin(t.evaluate(e))],cos:[V,[V],(e,[t])=>Math.cos(t.evaluate(e))],tan:[V,[V],(e,[t])=>Math.tan(t.evaluate(e))],asin:[V,[V],(e,[t])=>Math.asin(t.evaluate(e))],acos:[V,[V],(e,[t])=>Math.acos(t.evaluate(e))],atan:[V,[V],(e,[t])=>Math.atan(t.evaluate(e))],min:[V,os(V),(e,t)=>Math.min(...t.map(t=>t.evaluate(e)))],max:[V,os(V),(e,t)=>Math.max(...t.map(t=>t.evaluate(e)))],abs:[V,[V],(e,[t])=>Math.abs(t.evaluate(e))],round:[V,[V],(e,[t])=>{let n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[V,[V],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[V,[V],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[Rr,[H,U],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[Rr,[U],(e,[t])=>e.id()===t.value],"filter-type-==":[Rr,[H],(e,[t])=>e.geometryType()===t.value],"filter-<":[Rr,[H,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Rr,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<r}],"filter->":[Rr,[H,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[Rr,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[Rr,[H,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Rr,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[Rr,[H,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Rr,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[Rr,[U],(e,[t])=>{let n=t.value,r=e.properties();return n in r&&r[n]!==void 0}],"filter-has-id":[Rr,[],e=>e.id()!==null&&e.id()!==void 0],"filter-type-in":[Rr,[Xr(H)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[Rr,[Xr(U)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[Rr,[H,Xr(U)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[Rr,[H,Xr(U)],(e,[t,n])=>as(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:Rr,overloads:[[[Rr,Rr],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[os(Rr),(e,t)=>{for(let n of t)if(!n.evaluate(e))return!1;return!0}]]},any:{type:Rr,overloads:[[[Rr,Rr],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[os(Rr),(e,t)=>{for(let n of t)if(n.evaluate(e))return!0;return!1}]]},"!":[Rr,[Rr],(e,[t])=>!t.evaluate(e)],"is-supported-script":[Rr,[H],(e,[t])=>{let n=e.globals&&e.globals.isSupportedScript;return!n||n(t.evaluate(e))}],upcase:[H,[H],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[H,[H],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[H,os(U),(e,t)=>t.map(t=>Ki(t.evaluate(e))).join(``)],split:[Xr(H),[H,H],(e,[t,n])=>t.evaluate(e).split(n.evaluate(e))],join:[H,[Xr(H),H],(e,[t,n])=>t.evaluate(e).join(n.evaluate(e))],"resolved-locale":[H,[Ur],(e,[t])=>t.evaluate(e).resolvedLocale()]});function ss(e){return Array.isArray(e)?`(${e.map(Zr).join(`, `)})`:`(${Zr(e.type)}...)`}function cs(e){if(e instanceof ma)return cs(e.boundExpression);if(e instanceof ts&&e.name===`error`||e instanceof Ha||e instanceof bo||e instanceof Jo||e instanceof Xo)return!1;let t=e instanceof fa||e instanceof ua,n=!0;return e.eachChild(e=>{n&&=t?cs(e):e instanceof qi}),n?ls(e)&&ds(e,[`zoom`,`heatmap-density`,`elevation`,`line-progress`,`accumulated`,`is-supported-script`]):!1}function ls(e){if(e instanceof ts&&(e.name===`get`&&e.args.length===1||e.name===`feature-state`||e.name===`has`&&e.args.length===1||e.name===`properties`||e.name===`geometry-type`||e.name===`id`||/^filter-/.test(e.name))||e instanceof bo||e instanceof Jo)return!1;let t=!0;return e.eachChild(e=>{t&&!ls(e)&&(t=!1)}),t}function us(e){if(e instanceof ts&&e.name===`feature-state`)return!1;let t=!0;return e.eachChild(e=>{t&&!us(e)&&(t=!1)}),t}function ds(e,t){if(e instanceof ts&&t.indexOf(e.name)>=0)return!1;let n=!0;return e.eachChild(e=>{n&&!ds(e,t)&&(n=!1)}),n}function fs(e){return e[`property-type`]===`data-driven`||e[`property-type`]===`cross-faded-data-driven`}function ps(e){return!!e.expression&&e.expression.parameters.indexOf(`zoom`)>-1}function ms(e){return!!e.expression&&e.expression.interpolated}var hs=/^(.*)-transition$/;function gs(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function G(e){return e instanceof Number?`number`:e instanceof String?`string`:e instanceof Boolean?`boolean`:Array.isArray(e)?`array`:e===null?`null`:typeof e}function _s(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Gi(e)===Vr}function vs(e){return e}function ys(e){switch(e.type){case`color`:return W.parse;case`padding`:return Pi.parse;case`numberArray`:return Fi.parse;case`colorArray`:return Ii.parse;default:return null}}function bs(e){switch(e){case`exponential`:return Ts;case`interval`:return ws;case`categorical`:return Cs;case`identity`:return Es;default:throw Error(`Unknown function type "${e}"`)}}function xs(e,t){let n=e.stops&&typeof e.stops[0][0]==`object`,r=n||e.property!==void 0,i=n||!r,a=e.type||(ms(t)?`exponential`:`interval`),o=ys(t);if(o&&(e=gs({},e),e.stops&&(e.stops=e.stops.map(e=>[e[0],o(e[1])])),e.default?e.default=o(e.default):e.default=o(t.default)),e.colorSpace&&!Ai(e.colorSpace))throw Error(`Unknown color space: "${e.colorSpace}"`);let s=bs(a),c,l;if(a===`categorical`){c=Object.create(null);for(let t of e.stops)c[t[0]]=t[1];l=typeof e.stops[0][0]}if(n){let n={},r=[];for(let t=0;t<e.stops.length;t++){let i=e.stops[t],a=i[0].zoom;n[a]===void 0&&(n[a]={zoom:a,type:e.type,property:e.property,default:e.default,stops:[]},r.push(a)),n[a].stops.push([i[0].value,i[1]])}let i=[];for(let e of r)i.push([n[e].zoom,xs(n[e],t)]);let a={name:`linear`};return{kind:`composite`,interpolationType:a,interpolationFactor:$i.interpolationFactor.bind(void 0,a),zoomStops:i.map(e=>e[0]),evaluate({zoom:n},r){return Ts({stops:i,base:e.base},t,n).evaluate(n,r)}}}if(i){let n=a===`exponential`?{name:`exponential`,base:e.base===void 0?1:e.base}:null;return{kind:`camera`,interpolationType:n,interpolationFactor:$i.interpolationFactor.bind(void 0,n),zoomStops:e.stops.map(e=>e[0]),evaluate:({zoom:n})=>s(e,t,n,c,l)}}return{kind:`source`,evaluate(n,r){let i=r&&r.properties?r.properties[e.property]:void 0;return i===void 0?Ss(e.default,t.default):s(e,t,i,c,l)}}}function Ss(e,t,n){if(e!==void 0)return e;if(t!==void 0)return t;if(n!==void 0)return n}function Cs(e,t,n,r,i){return Ss(typeof n===i?r[n]:void 0,e.default,t.default)}function ws(e,t,n){if(G(n)!==`number`)return Ss(e.default,t.default);let r=e.stops.length;if(r===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[r-1][0])return e.stops[r-1][1];let i=Xi(e.stops.map(e=>e[0]),n,``);return e.stops[i][1]}function Ts(e,t,n){let r=e.base===void 0?1:e.base;if(G(n)!==`number`)return Ss(e.default,t.default);let i=e.stops.length;if(i===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[i-1][0])return e.stops[i-1][1];let a=Xi(e.stops.map(e=>e[0]),n,``),o=Ds(n,r,e.stops[a][0],e.stops[a+1][0]),s=e.stops[a][1],c=e.stops[a+1][1],l=ta[t.type]||vs;return typeof s.evaluate==`function`?{evaluate(...t){let n=s.evaluate.apply(void 0,t),r=c.evaluate.apply(void 0,t);if(n!==void 0&&r!==void 0)return l(n,r,o,e.colorSpace)}}:l(s,c,o,e.colorSpace)}function Es(e,t,n){switch(t.type){case`color`:n=W.parse(n);break;case`formatted`:n=Ni.fromString(n.toString());break;case`resolvedImage`:n=Bi.fromString(n.toString());break;case`padding`:n=Pi.parse(n);break;case`colorArray`:n=Ii.parse(n);break;case`numberArray`:n=Fi.parse(n);break;default:G(n)!==t.type&&(t.type!==`enum`||!t.values[n])&&(n=void 0)}return Ss(n,e.default,t.default)}function Ds(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}function Os(e){return{result:`success`,value:e}}function ks(e){return{result:`error`,value:e}}var As=class{constructor(e,t,n,r){this.expression=e,this._warningHistory={},this._evaluator=new Yi,this._defaultValue=n?Ws(n):null,this._enumValues=n&&n.type===`enum`?n.values:null,this._globalState=r,this._rootKey=t}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=Gs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,a){this._globalState&&(e=Gs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{let e=this.expression.evaluate(this._evaluator);if(e==null||typeof e==`number`&&e!==e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new Li(`Expected value to be one of ${Object.keys(this._enumValues).map(e=>JSON.stringify(e)).join(`, `)}, but found ${JSON.stringify(e)} instead.`,``);return e}catch(e){let t=e instanceof Li?e.path:``,n=`${t}|${e.message}`;return this._warningHistory[n]||(this._warningHistory[n]=!0,typeof console<`u`&&console.warn(js(this._rootKey,t,e.message,this._defaultValue))),this._defaultValue}}};function js(e,t,n,r){return`${e}${t}: ${n}${r==null?``:` Falling back to ${String(r)}.`}`}function Ms(e){if(!e)throw Error(`rootKey must identify the location of the expression in the style JSON, e.g. "layers[3].paint.line-width".`)}function Ns(e){return Array.isArray(e)&&e.length>0&&typeof e[0]==`string`&&e[0]in Zo}function Ps(e,t,n,r){Ms(t);let i=new es(Zo,cs,[],n?Us(n):void 0),a=i.parse(e,void 0,void 0,void 0,n&&n.type===`string`?{typeAnnotation:`coerce`}:void 0);return a?Os(new As(a,t,n,r)):ks(i.errors)}var Fs=class{constructor(e,t,n){this.kind=e,this._styleExpression=t,this.isStateDependent=e!==`constant`&&!us(t.expression),this.globalStateRefs=Hs(t.expression),this._globalState=n}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=Gs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=Gs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}},Is=class{constructor(e,t,n,r,i){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent=e!==`camera`&&!us(t.expression),this.globalStateRefs=Hs(t.expression),this.interpolationType=r,this._globalState=i}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=Gs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=Gs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}interpolationFactor(e,t,n){return this.interpolationType?$i.interpolationFactor(this.interpolationType,e,t,n):0}};function Ls(e){return e._styleExpression!==void 0}function Rs(e,t,n,r){let i=Ps(e,t,n,r);if(i.result===`error`)return i;let a=i.value.expression,o=ls(a);if(!o&&!fs(n))return ks([new Qo(``,`data expressions not supported`)]);let s=ds(a,[`zoom`]);if(!s&&!ps(n))return ks([new Qo(``,`zoom expressions not supported`)]);let c=Vs(a);if(!c&&!s)return ks([new Qo(``,`"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.`)]);if(c instanceof Qo)return ks([c]);if(c instanceof $i&&!ms(n))return ks([new Qo(``,`"interpolate" expressions cannot be used with this property`)]);if(!c)return Os(o?new Fs(`constant`,i.value,r):new Fs(`source`,i.value,r));let l=c instanceof $i?c.interpolation:void 0;return Os(o?new Is(`camera`,i.value,c.labels,l,r):new Is(`composite`,i.value,c.labels,l,r))}var zs=class e{constructor(e,t,n){this.isStateDependent=!1,this.globalStateRefs=new Set,this._globalState=null,Ms(t),this._parameters=e,this._specification=n,this._rootKey=t,this._defaultValue=Ws(n),this._warningHistory={};let r=xs(this._parameters,this._specification);this.kind=r.kind,this.interpolationFactor=r.interpolationFactor,this.zoomStops=r.zoomStops,this.interpolationType=r.interpolationType,this._innerEvaluate=r.evaluate}evaluate(e,t){try{return this._innerEvaluate(e,t)}catch(e){let t=e instanceof Error?e.message:String(e),n=`|${t}`;return this._warningHistory[n]||(this._warningHistory[n]=!0,typeof console<`u`&&console.warn(js(this._rootKey,``,t,this._defaultValue))),this._defaultValue}}static deserialize(t){return new e(t._parameters,t._rootKey,t._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification,_rootKey:e._rootKey}}};function Bs(e,t,n,r){if(_s(e))return new zs(e,t,n);if(Ns(e)){let i=Rs(e,t,n,r);if(i.result===`error`)throw Error(i.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return i.value}{let t=e;return n.type===`color`&&typeof e==`string`?t=W.parse(e):n.type===`padding`&&(typeof e==`number`||Array.isArray(e))?t=Pi.parse(e):n.type===`numberArray`&&(typeof e==`number`||Array.isArray(e))?t=Fi.parse(e):n.type===`colorArray`&&(typeof e==`string`||Array.isArray(e))?t=Ii.parse(e):n.type===`variableAnchorOffsetCollection`&&Array.isArray(e)?t=zi.parse(e):n.type===`projectionDefinition`&&typeof e==`string`&&(t=Vi.parse(e)),{globalStateRefs:new Set,_globalState:null,kind:`constant`,evaluate:()=>t}}}function Vs(e){let t=null;if(e instanceof pa)t=Vs(e.result);else if(e instanceof xa){for(let n of e.args)if(t=Vs(n),t)break}else(e instanceof Zi||e instanceof $i)&&e.input instanceof ts&&e.input.name===`zoom`&&(t=e);return t instanceof Qo||e.eachChild(e=>{let n=Vs(e);n instanceof Qo?t=n:!t&&n?t=new Qo(``,`"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.`):t&&n&&t!==n&&(t=new Qo(``,`Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.`))}),t}function Hs(e,t=new Set){return e instanceof Xo&&t.add(e.key),e.eachChild(e=>{Hs(e,t)}),t}function Us(e){let t={color:zr,string:H,number:V,enum:H,boolean:Rr,formatted:Wr,padding:Gr,numberArray:qr,colorArray:Kr,projectionDefinition:Br,resolvedImage:Jr,variableAnchorOffsetCollection:Yr};return e.type===`array`?Xr(t[e.value]||U,e.length):t[e.type]}function Ws(e){if(e.type===`color`&&_s(e.default))return new W(0,0,0,0);switch(e.type){case`color`:return W.parse(e.default)||null;case`padding`:return Pi.parse(e.default)||null;case`numberArray`:return Fi.parse(e.default)||null;case`colorArray`:return Ii.parse(e.default)||null;case`variableAnchorOffsetCollection`:return zi.parse(e.default)||null;case`projectionDefinition`:return Vi.parse(e.default)||null;default:return e.default===void 0?null:e.default}}function Gs(e,t){let{zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s}=e??{};return{zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s,globalState:t}}function Ks(e){let t=!1;for(let n of e){let e=qs(n);if(e===`expression`)return`expression`;e===`legacy`&&(t=!0)}return t?`legacy`:`neutral`}function qs(e){if(typeof e==`boolean`)return`neutral`;if(!Array.isArray(e)||e.length===0)return`legacy`;switch(e[0]){case`has`:return e.length<2||e[1]===`$id`||e[1]===`$type`?`legacy`:e.length===2?`neutral`:`expression`;case`in`:return e.length>=3&&(typeof e[1]!=`string`||Array.isArray(e[2]))?`expression`:`legacy`;case`!in`:case`!has`:return`legacy`;case`==`:case`!=`:case`>`:case`>=`:case`<`:case`<=`:return e.length!==3||Array.isArray(e[1])||Array.isArray(e[2])?`expression`:`legacy`;case`none`:return`legacy`;case`any`:case`all`:return Ks(e.slice(1));default:return`expression`}}function Js(e){return qs(e)!==`legacy`}function Ys(e){return e===`$type`?[`geometry-type`]:e===`$id`?[`id`]:[`get`,e]}function Xs(e){switch(e[0]){case`==`:case`!=`:case`<`:case`<=`:case`>`:case`>=`:return e.length!==3||typeof e[1]!=`string`?null:[e[0],Ys(e[1]),e[2]];case`in`:case`!in`:{if(e.length<2||typeof e[1]!=`string`)return null;let t=[`in`,Ys(e[1]),[`literal`,e.slice(2)]];return e[0]===`!in`?[`!`,t]:t}case`has`:case`!has`:{if(e.length!==2||typeof e[1]!=`string`||e[1]===`$type`||e[1]===`$id`)return null;let t=[`has`,e[1]];return e[0]===`!has`?[`!`,t]:t}default:return null}}function Zs(e){if((e[0]===`<`||e[0]===`<=`||e[0]===`>`||e[0]===`>=`)&&e[1]===`$type`)return`"$type" cannot be use with operator "${e[0]}"`;let t=Xs(e);return t?`Mixing deprecated filter syntax with expression syntax is not supported. Replace ${JSON.stringify(e)} with ${JSON.stringify(t)}.`:`Mixing deprecated filter syntax with expression syntax is not supported. Convert ${JSON.stringify(e)} to expression syntax.`}function Qs(e,t,n){let r=n[e];return Array.isArray(r)?Js(r)?$s(r,t.concat(e)):{path:t.concat(e),legacyFilter:r}:null}function $s(e,t=[]){if(!Array.isArray(e)||e.length<1)return null;switch(e[0]){case`all`:case`any`:case`none`:for(let n=1;n<e.length;n++){let r=Qs(n,t,e);if(r)return r}break;case`!`:{let n=Qs(1,t,e);if(n)return n;break}case`case`:for(let n=1;n<e.length-1;n+=2){let r=Qs(n,t,e);if(r)return r}}return null}function ec(e,t){let n=$s(e);if(!n||typeof console>`u`)return;let r=n.path.map(e=>`[${e}]`).join(``);console.warn(`${t}${r}: ${Zs(n.legacyFilter)}`)}var tc={type:`boolean`,default:!1,transition:!1,"property-type":`data-driven`,expression:{interpolated:!1,parameters:[`zoom`,`feature`]}};function nc(e,t,n){if(e==null)return{filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};Js(e)?ec(e,t):e=ac(e);let r=Ps(e,t,tc,n);if(r.result===`error`)throw Error(r.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return{filter:(e,t,n)=>r.value.evaluate(e,t,{},n),needGeometry:ic(e),getGlobalStateRefs:()=>Hs(r.value.expression)}}function rc(e,t){return e<t?-1:+(e>t)}function ic(e){if(!Array.isArray(e))return!1;if(e[0]===`within`||e[0]===`distance`)return!0;for(let t=1;t<e.length;t++)if(ic(e[t]))return!0;return!1}function ac(e){if(!e)return!0;let t=e[0];return e.length<=1?t!==`any`:t===`==`?oc(e[1],e[2],`==`):t===`!=`?uc(oc(e[1],e[2],`==`)):t===`<`||t===`>`||t===`<=`||t===`>=`?oc(e[1],e[2],t):t===`any`?sc(e.slice(1)):t===`all`?[`all`].concat(e.slice(1).map(ac)):t===`none`?[`all`].concat(e.slice(1).map(ac).map(uc)):t===`in`?cc(e[1],e.slice(2)):t===`!in`?uc(cc(e[1],e.slice(2))):t===`has`?lc(e[1]):t!==`!has`||uc(lc(e[1]))}function oc(e,t,n){switch(e){case`$type`:return[`filter-type-${n}`,t];case`$id`:return[`filter-id-${n}`,t];default:return[`filter-${n}`,e,t]}}function sc(e){return[`any`].concat(e.map(ac))}function cc(e,t){if(t.length===0)return!1;switch(e){case`$type`:return[`filter-type-in`,[`literal`,t]];case`$id`:return[`filter-id-in`,[`literal`,t]];default:return t.length>200&&!t.some(e=>typeof e!=typeof t[0])?[`filter-in-large`,e,[`literal`,t.sort(rc)]]:[`filter-in-small`,e,[`literal`,t]]}}function lc(e){switch(e){case`$type`:return!0;case`$id`:return[`filter-has-id`];default:return[`filter-has`,e]}}function uc(e){return[`!`,e]}function dc(){let e={},t=z.$version;for(let n in z.$root){let r=z.$root[n];if(r.required){let i=null;i=n===`version`?t:r.type===`array`?[]:{},i!=null&&(e[n]=i)}}return e}function fc(e){let t=e.key,n=e.value;return n?[new B(t,n,`constants have been deprecated as of v8`)]:[]}function pc(e){return e instanceof Number||e instanceof String||e instanceof Boolean?e.valueOf():e}function mc(e){if(Array.isArray(e))return e.map(mc);if(e instanceof Object&&!(e instanceof Number||e instanceof String||e instanceof Boolean)){let t={};for(let n in e)t[n]=mc(e[n]);return t}return pc(e)}function hc(e){let t=e.key,n=e.value,r=e.valueSpec||{},i=e.objectElementValidators||{},a=e.style,o=e.styleSpec,s=e.validateSpec,c=[],l=G(n);if(l!==`object`)return[new B(t,n,`object expected, ${l} found`)];for(let e in n){let l=e.split(`.`)[0],u=xi(r,l)||r[`*`],d;if(xi(i,l))d=i[l];else if(xi(r,l)){if(n[e]===void 0)continue;d=s}else if(i[`*`])d=i[`*`];else if(r[`*`])d=s;else{c.push(new B(t,n[e],`unknown property "${e}"`));continue}c=c.concat(d({key:(t&&`${t}.`)+e,value:n[e],valueSpec:u,style:a,styleSpec:o,object:n,objectKey:e,validateSpec:s},n))}for(let e in r)i[e]||r[e].required&&r[e].default===void 0&&n[e]===void 0&&c.push(new B(t,n,`missing required property "${e}"`));return c}function gc(e){let t=e.value,n=e.valueSpec,r=e.validateSpec,i=e.style,a=e.styleSpec,o=e.key,s=e.arrayElementValidator||r;if(G(t)!==`array`)return[new B(o,t,`array expected, ${G(t)} found`)];if(n.length&&t.length!==n.length)return[new B(o,t,`array length ${n.length} expected, length ${t.length} found`)];let c={type:n.value,values:n.values};a.$version<7&&(c.function=n.function),G(n.value)===`object`&&(c=n.value);let l=[];for(let n=0;n<t.length;n++)l=l.concat(s({array:t,arrayIndex:n,value:t[n],valueSpec:c,validateSpec:e.validateSpec,style:i,styleSpec:a,key:`${o}[${n}]`}));return l}function _c(e){let t=e.key,n=e.value,r=e.valueSpec,i=G(n);return i===`number`&&n!==n&&(i=`NaN`),i===`number`?`minimum`in r&&n<r.minimum?[new B(t,n,`${n} is less than the minimum value ${r.minimum}`)]:`maximum`in r&&n>r.maximum?[new B(t,n,`${n} is greater than the maximum value ${r.maximum}`)]:[]:[new B(t,n,`number expected, ${i} found`)]}function vc(e){let t=e.valueSpec,n=pc(e.value.type),r,i={},a,o,s=n!==`categorical`&&e.value.property===void 0,c=!s,l=G(e.value.stops)===`array`&&G(e.value.stops[0])===`array`&&G(e.value.stops[0][0])===`object`,u=hc({key:e.key,value:e.value,valueSpec:e.styleSpec.function,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{stops:d,default:m}});return n===`identity`&&s&&u.push(new B(e.key,e.value,`missing required property "property"`)),n!==`identity`&&!e.value.stops&&u.push(new B(e.key,e.value,`missing required property "stops"`)),n===`exponential`&&e.valueSpec.expression&&!ms(e.valueSpec)&&u.push(new B(e.key,e.value,`exponential functions not supported`)),e.styleSpec.$version>=8&&(c&&!fs(e.valueSpec)?u.push(new B(e.key,e.value,`property functions not supported`)):s&&!ps(e.valueSpec)&&u.push(new B(e.key,e.value,`zoom functions not supported`))),(n===`categorical`||l)&&e.value.property===void 0&&u.push(new B(e.key,e.value,`"property" property is required`)),u;function d(e){if(n===`identity`)return[new B(e.key,e.value,`identity function may not have a "stops" property`)];let t=[],r=e.value;return t=t.concat(gc({key:e.key,value:r,valueSpec:e.valueSpec,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,arrayElementValidator:f})),G(r)===`array`&&r.length===0&&t.push(new B(e.key,r,`array must have at least one stop`)),t}function f(e){let n=[],r=e.value,s=e.key;if(G(r)!==`array`)return[new B(s,r,`array expected, ${G(r)} found`)];if(r.length!==2)return[new B(s,r,`array length 2 expected, length ${r.length} found`)];if(l){if(G(r[0])!==`object`)return[new B(s,r,`object expected, ${G(r[0])} found`)];if(r[0].zoom===void 0)return[new B(s,r,`object stop key must have zoom`)];if(r[0].value===void 0)return[new B(s,r,`object stop key must have value`)];if(o&&o>pc(r[0].zoom))return[new B(s,r[0].zoom,`stop zoom values must appear in ascending order`)];pc(r[0].zoom)!==o&&(o=pc(r[0].zoom),a=void 0,i={}),n=n.concat(hc({key:`${s}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:_c,value:p}}))}else n=n.concat(p({key:`${s}[0]`,value:r[0],valueSpec:{},validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec},r));return Ns(mc(r[1]))?n.concat([new B(`${s}[1]`,r[1],`expressions are not allowed in function stops.`)]):n.concat(e.validateSpec({key:`${s}[1]`,value:r[1],valueSpec:t,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec}))}function p(e,o){let s=G(e.value),c=pc(e.value),l=e.value===null?o:e.value;if(!r)r=s;else if(s!==r)return[new B(e.key,l,`${s} stop domain type must match previous stop domain type ${r}`)];if(s!==`number`&&s!==`string`&&s!==`boolean`)return[new B(e.key,l,`stop domain value must be a number, string, or boolean`)];if(s!==`number`&&n!==`categorical`){let r=`number expected, ${s} found`;return fs(t)&&n===void 0&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new B(e.key,l,r)]}return n===`categorical`&&s===`number`&&(!isFinite(c)||Math.floor(c)!==c)?[new B(e.key,l,`integer expected, found ${c}`)]:n!==`categorical`&&s===`number`&&a!==void 0&&c<a?[new B(e.key,l,`stop domain values must appear in ascending order`)]:(a=c,n===`categorical`&&c in i?[new B(e.key,l,`stop domain values must be unique`)]:(i[c]=!0,[]))}function m(e){return e.validateSpec({key:e.key,value:e.value,valueSpec:t,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec})}}function yc(e){let t=(e.expressionContext===`property`?Rs:Ps)(mc(e.value),e.key,e.valueSpec);if(t.result===`error`)return t.value.map(t=>new B(`${e.key}${t.key}`,e.value,t.message));let n=t.value.expression||t.value._styleExpression.expression;if(e.expressionContext===`property`&&e.propertyKey===`text-font`&&!n.outputDefined())return[new B(e.key,e.value,`Invalid data expression for "${e.propertyKey}". Output values must be contained as literals within the expression.`)];if(e.expressionContext===`property`&&e.propertyType===`layout`&&!us(n))return[new B(e.key,e.value,`"feature-state" data expressions are not supported with layout properties.`)];if(e.expressionContext===`filter`&&!us(n))return[new B(e.key,e.value,`"feature-state" data expressions are not supported with filters.`)];if(e.expressionContext&&e.expressionContext.indexOf(`cluster`)===0){if(!ds(n,[`zoom`,`feature-state`]))return[new B(e.key,e.value,`"zoom" and "feature-state" expressions are not supported with cluster properties.`)];if(e.expressionContext===`cluster-initial`&&!ls(n))return[new B(e.key,e.value,`Feature data expressions are not supported with initial expression part of cluster properties.`)]}return[]}function bc(e){let t=e.value,n=e.key,r=G(t);return r===`boolean`?[]:[new B(n,t,`boolean expected, ${r} found`)]}function xc(e){let t=e.key,n=e.value,r=G(n);return r===`string`?W.parse(String(n))?[]:[new B(t,n,`color expected, "${n}" found`)]:[new B(t,n,`color expected, ${r} found`)]}function Sc(e){let t=e.key,n=e.value,r=e.valueSpec,i=[];return Array.isArray(r.values)?r.values.indexOf(pc(n))===-1&&i.push(new B(t,n,`expected one of [${r.values.join(`, `)}], ${JSON.stringify(n)} found`)):Object.keys(r.values).indexOf(pc(n))===-1&&i.push(new B(t,n,`expected one of [${Object.keys(r.values).join(`, `)}], ${JSON.stringify(n)} found`)),i}function Cc(e,t){let n=e;for(let e of t)n=n[e];return n}function wc(e,t){let n=$s(t);return n?[new B(`${e.key}${n.path.map(e=>`[${e}]`).join(``)}`,Cc(e.value,n.path),Zs(n.legacyFilter),null,`warning`)]:[]}function Tc(e){let t=mc(e.value);return Js(t)?[...wc(e,t),...yc(gs({},e,{expressionContext:`filter`,valueSpec:{value:`boolean`}}))]:Ec(e)}function Ec(e){let t=e.value,n=e.key;if(G(t)!==`array`)return[new B(n,t,`array expected, ${G(t)} found`)];let r=e.styleSpec,i,a=[];if(t.length<1)return[new B(n,t,`filter array must have at least 1 element`)];switch(a=a.concat(Sc({key:`${n}[0]`,value:t[0],valueSpec:r.filter_operator,style:e.style,styleSpec:e.styleSpec})),pc(t[0])){case`<`:case`<=`:case`>`:case`>=`:t.length>=2&&pc(t[1])===`$type`&&a.push(new B(n,t,`"$type" cannot be use with operator "${t[0]}"`));case`==`:case`!=`:t.length!==3&&a.push(new B(n,t,`filter array for operator "${t[0]}" must have 3 elements`));case`in`:case`!in`:t.length>=2&&(i=G(t[1]),i!==`string`&&a.push(new B(`${n}[1]`,t[1],`string expected, ${i} found`)));for(let o=2;o<t.length;o++)i=G(t[o]),pc(t[1])===`$type`?a=a.concat(Sc({key:`${n}[${o}]`,value:t[o],valueSpec:r.geometry_type,style:e.style,styleSpec:e.styleSpec})):i!==`string`&&i!==`number`&&i!==`boolean`&&a.push(new B(`${n}[${o}]`,t[o],`string, number, or boolean expected, ${i} found`));break;case`any`:case`all`:case`none`:for(let r=1;r<t.length;r++)a=a.concat(Ec({key:`${n}[${r}]`,value:t[r],style:e.style,styleSpec:e.styleSpec}));break;case`has`:case`!has`:i=G(t[1]),t.length===2?i!==`string`&&a.push(new B(`${n}[1]`,t[1],`string expected, ${i} found`)):a.push(new B(n,t,`filter array for "${t[0]}" operator must have 2 elements`))}return a}function Dc(e,t){let n=e.key,r=e.validateSpec,i=e.style,a=e.styleSpec,o=e.value,s=e.objectKey,c=a[`${t}_${e.layerType}`];if(!c)return[];let l=s.match(hs);if(t===`paint`&&l&&c[l[1]]&&c[l[1]].transition)return r({key:n,value:o,valueSpec:a.transition,style:i,styleSpec:a});let u=e.valueSpec||c[s];if(!u)return[new B(n,o,`unknown property "${s}"`)];let d;if(G(o)===`string`&&fs(u)&&!u.tokens&&(d=/^{([^}]+)}$/.exec(o)))return[new B(n,o,`"${s}" does not support interpolation syntax\nUse an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(d[1])} }\`.`)];let f=[];return e.layerType===`symbol`&&s===`text-font`&&_s(mc(o))&&pc(o.type)===`identity`&&f.push(new B(n,o,`"text-font" does not support identity functions`)),f.concat(r({key:e.key,value:o,valueSpec:u,style:i,styleSpec:a,expressionContext:`property`,propertyType:t,propertyKey:s}))}function Oc(e){return Dc(e,`paint`)}function kc(e){return Dc(e,`layout`)}function Ac(e){let t=[],n=e.value,r=e.key,i=e.style,a=e.styleSpec;if(G(n)!==`object`)return[new B(r,n,`object expected, ${G(n)} found`)];!n.type&&!n.ref&&t.push(new B(r,n,`either "type" or "ref" is required`));let o=pc(n.type),s=pc(n.ref);if(n.id){let a=pc(n.id);for(let o=0;o<e.arrayIndex;o++){let e=i.layers[o];pc(e.id)===a&&t.push(new B(r,n.id,`duplicate layer id "${n.id}", previously used at line ${e.id.__line__}`))}}if(`ref`in n){[`type`,`source`,`source-layer`,`filter`,`layout`].forEach(e=>{e in n&&t.push(new B(r,n[e],`"${e}" is prohibited for ref layers`))});let e;i.layers.forEach(t=>{pc(t.id)===s&&(e=t)}),e?e.ref?t.push(new B(r,n.ref,`ref cannot reference another ref layer`)):o=pc(e.type):t.push(new B(r,n.ref,`ref layer "${s}" not found`))}else if(o!==`background`){if(!n.source)t.push(new B(r,n,`missing required property "source"`));else{let e=i.sources&&i.sources[n.source],a=e&&pc(e.type);e?a===`vector`&&o===`raster`?t.push(new B(r,n.source,`layer "${n.id}" requires a raster source`)):a!==`raster-dem`&&o===`hillshade`||a!==`raster-dem`&&o===`color-relief`?t.push(new B(r,n.source,`layer "${n.id}" requires a raster-dem source`)):a===`raster`&&o!==`raster`?t.push(new B(r,n.source,`layer "${n.id}" requires a vector source`)):a===`vector`&&!n[`source-layer`]?t.push(new B(r,n,`layer "${n.id}" must specify a "source-layer"`)):a===`raster-dem`&&o!==`hillshade`&&o!==`color-relief`?t.push(new B(r,n.source,`raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.`)):o===`line`&&n.paint&&n.paint[`line-gradient`]&&(a!==`geojson`||!e.lineMetrics)&&t.push(new B(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new B(r,n.source,`source "${n.source}" not found`))}}return o===`raster`&&n.paint?.resampling&&n.paint?.[`raster-resampling`]&&t.push(new B(r,n.paint,`layer "${n.id}" redundantly specifies "resampling" and "raster-resampling" paint properties, but only one is allowed. It is advised to use "resampling".`)),t=t.concat(hc({key:r,value:n,valueSpec:a.layer,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*"(){return[]},type(){return e.validateSpec({key:`${r}.type`,value:n.type,valueSpec:a.layer.type,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,object:n,objectKey:`type`})},filter:Tc,layout(e){return hc({layer:n,key:e.key,value:e.value,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*"(e){return kc(gs({layerType:o},e))}}})},paint(e){return hc({layer:n,key:e.key,value:e.value,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*"(e){return Oc(gs({layerType:o},e))}}})}}})),t}function jc(e){let t=e.value,n=e.key,r=G(t);return r===`string`?[]:[new B(n,t,`string expected, ${r} found`)]}function Mc(e){let t=e.sourceName??``,n=e.value,r=e.styleSpec,i=r.source_raster_dem,a=e.style,o=[],s=G(n);if(n===void 0)return o;if(s!==`object`)return o.push(new B(`source_raster_dem`,n,`object expected, ${s} found`)),o;let c=pc(n.encoding)===`custom`,l=[`redFactor`,`greenFactor`,`blueFactor`,`baseShift`],u=e.value.encoding?`"${e.value.encoding}"`:`Default`;for(let s in n)!c&&l.includes(s)?o.push(new B(s,n[s],`In "${t}": "${s}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):i[s]?o=o.concat(e.validateSpec({key:s,value:n[s],valueSpec:i[s],validateSpec:e.validateSpec,style:a,styleSpec:r})):o.push(new B(s,n[s],`unknown property "${s}"`));return o}var Nc={promoteId:Fc};function Pc(e){let t=e.value,n=e.key,r=e.styleSpec,i=e.style,a=e.validateSpec;if(!t.type)return[new B(n,t,`"type" is required`)];let o=pc(t.type),s;switch(o){case`vector`:case`raster`:return s=hc({key:n,value:t,valueSpec:r[`source_${o.replace(`-`,`_`)}`],style:e.style,styleSpec:r,objectElementValidators:Nc,validateSpec:a}),s;case`raster-dem`:return s=Mc({sourceName:n,value:t,style:e.style,styleSpec:r,validateSpec:a}),s;case`geojson`:if(s=hc({key:n,value:t,valueSpec:r.source_geojson,style:i,styleSpec:r,validateSpec:a,objectElementValidators:Nc}),t.cluster)for(let e in t.clusterProperties){let[r,i]=t.clusterProperties[e],o=typeof r==`string`?[r,[`accumulated`],[`get`,e]]:r;s.push(...yc({key:`${n}.${e}.map`,value:i,validateSpec:a,expressionContext:`cluster-map`})),s.push(...yc({key:`${n}.${e}.reduce`,value:o,validateSpec:a,expressionContext:`cluster-reduce`}))}return s;case`video`:return hc({key:n,value:t,valueSpec:r.source_video,style:i,validateSpec:a,styleSpec:r});case`image`:return hc({key:n,value:t,valueSpec:r.source_image,style:i,validateSpec:a,styleSpec:r});case`canvas`:return[new B(n,null,`Please use runtime APIs to add canvas sources, rather than including them in stylesheets.`,`source.canvas`)];default:return Sc({key:`${n}.type`,value:t.type,valueSpec:{values:[`vector`,`raster`,`raster-dem`,`geojson`,`video`,`image`]},style:i,validateSpec:a,styleSpec:r})}}function Fc({key:e,value:t}){if(G(t)===`string`)return jc({key:e,value:t});{let n=[];for(let r in t)n.push(...jc({key:`${e}.${r}`,value:t[r]}));return n}}function Ic(e){let t=e.value,n=e.styleSpec,r=n.light,i=e.style,a=[],o=G(t);if(t===void 0)return a;if(o!==`object`)return a=a.concat([new B(`light`,t,`object expected, ${o} found`)]),a;for(let o in t){let s=o.match(hs);a=s&&r[s[1]]&&r[s[1]].transition?a.concat(e.validateSpec({key:o,value:t[o],valueSpec:n.transition,validateSpec:e.validateSpec,style:i,styleSpec:n})):r[o]?a.concat(e.validateSpec({key:o,value:t[o],valueSpec:r[o],validateSpec:e.validateSpec,style:i,styleSpec:n})):a.concat([new B(o,t[o],`unknown property "${o}"`)])}return a}function Lc(e){let t=e.value,n=e.styleSpec,r=n.sky,i=e.style,a=G(t);if(t===void 0)return[];if(a!==`object`)return[new B(`sky`,t,`object expected, ${a} found`)];let o=[];for(let a in t){let s=a.match(hs);o=s&&r[s[1]]&&r[s[1]].transition?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:n.transition,style:i,styleSpec:n})):r[a]?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new B(a,t[a],`unknown property "${a}"`)])}return o}function Rc(e){let t=e.value,n=e.styleSpec,r=n.terrain,i=e.style,a=[],o=G(t);if(t===void 0)return a;if(o!==`object`)return a=a.concat([new B(`terrain`,t,`object expected, ${o} found`)]),a;for(let o in t)a=r[o]?a.concat(e.validateSpec({key:o,value:t[o],valueSpec:r[o],validateSpec:e.validateSpec,style:i,styleSpec:n})):a.concat([new B(o,t[o],`unknown property "${o}"`)]);return a}function zc(e){return jc(e).length===0?[]:yc(e)}function Bc(e){return jc(e).length===0?[]:yc(e)}function Vc(e){let t=e.key,n=e.value;if(G(n)===`array`){if(n.length<1||n.length>4)return[new B(t,n,`padding requires 1 to 4 values; ${n.length} values found`)];let r={type:`number`},i=[];for(let a=0;a<n.length;a++)i=i.concat(e.validateSpec({key:`${t}[${a}]`,value:n[a],validateSpec:e.validateSpec,valueSpec:r}));return i}return _c({key:t,value:n,valueSpec:{}})}function Hc(e){let t=e.key,n=e.value;if(G(n)===`array`){let r={type:`number`};if(n.length<1)return[new B(t,n,`array length at least 1 expected, length 0 found`)];let i=[];for(let a=0;a<n.length;a++)i=i.concat(e.validateSpec({key:`${t}[${a}]`,value:n[a],validateSpec:e.validateSpec,valueSpec:r}));return i}return _c({key:t,value:n,valueSpec:{}})}function Uc(e){let t=e.key,n=e.value;if(G(n)===`array`){if(n.length<1)return[new B(t,n,`array length at least 1 expected, length 0 found`)];let e=[];for(let r=0;r<n.length;r++)e=e.concat(xc({key:`${t}[${r}]`,value:n[r],valueSpec:{}}));return e}return xc({key:t,value:n,valueSpec:{}})}function Wc(e){let t=e.key,n=e.value,r=G(n),i=e.styleSpec;if(r!==`array`||n.length<1||n.length%2!=0)return[new B(t,n,`variableAnchorOffsetCollection requires a non-empty array of even length`)];let a=[];for(let r=0;r<n.length;r+=2)a=a.concat(Sc({key:`${t}[${r}]`,value:n[r],valueSpec:i.layout_symbol[`text-anchor`]})),a=a.concat(gc({key:`${t}[${r+1}]`,value:n[r+1],valueSpec:{length:2,value:`number`},validateSpec:e.validateSpec,style:e.style,styleSpec:i}));return a}function Gc(e){let t=[],n=e.value,r=e.key;if(Array.isArray(n)){let i=[],a=[];for(let o in n)n[o].id&&i.includes(n[o].id)&&t.push(new B(r,n,`all the sprites' ids must be unique, but ${n[o].id} is duplicated`)),i.push(n[o].id),n[o].url&&a.includes(n[o].url)&&t.push(new B(r,n,`all the sprites' URLs must be unique, but ${n[o].url} is duplicated`)),a.push(n[o].url),t=t.concat(hc({key:`${r}[${o}]`,value:n[o],valueSpec:{id:{type:`string`,required:!0},url:{type:`string`,required:!0}},validateSpec:e.validateSpec}));return t}return jc({key:r,value:n})}function Kc(e){let t=e.value,n=e.styleSpec,r=n.projection,i=e.style,a=G(t);if(t===void 0)return[];if(a!==`object`)return[new B(`projection`,t,`object expected, ${a} found`)];let o=[];for(let a in t)o=r[a]?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new B(a,t[a],`unknown property "${a}"`)]);return o}function qc(e){let t=e.key,n=e.value;n=n instanceof String?n.valueOf():n;let r=G(n);return r===`array`&&!Yc(n)&&!Jc(n)?[new B(t,n,`projection expected, invalid array ${JSON.stringify(n)} found`)]:[`array`,`string`].includes(r)?[]:[new B(t,n,`projection expected, invalid type "${r}" found`)]}function Jc(e){return!![`interpolate`,`step`,`literal`].includes(e[0])}function Yc(e){return Array.isArray(e)&&e.length===3&&typeof e[0]==`string`&&typeof e[1]==`string`&&typeof e[2]==`number`}function Xc(e){return!!e&&e.constructor===Object}function Zc(e){return Xc(e.value)?[]:[new B(e.key,e.value,`object expected, ${G(e.value)} found`)]}var Qc=1114111,$c=/^u\+(?:([0-9a-f]{1,6})(?:-([0-9a-f]{1,6}))?|([0-9a-f]{0,5}\?{1,6}))$/i;function el(e,t){if(G(t)!==`string`)return[];let n=`${t}`,r=()=>[new B(e,t,`invalid unicode range, expected a value such as "U+26", "U+0-10FFFF" or "U+4??"`)],i=n.match($c);if(!i)return r();let[,a,o,s]=i;if(s!==void 0)return s.length>6?r():[];let c=parseInt(a,16),l=o===void 0?c:parseInt(o,16);return c>Qc||l>Qc?[new B(e,t,`unicode range is out of bounds, the maximum code point is U+10FFFF`)]:c>l?[new B(e,t,`unicode range start must not be greater than its end, but ${n} is`)]:[]}function tl(e){let t=e.key??`font-faces`,n=e.value,r=e.validateSpec,i=e.styleSpec??br,a=e.style;if(!Xc(n))return[new B(t,n,`object expected, ${G(n)} found`)];let o=[];for(let e in n){let s=n[e],c=G(s);if(c===`string`)o.push(...jc({key:`${t}.${e}`,value:s}));else if(c===`array`){let n={url:{type:`string`,required:!0},"unicode-range":{type:`array`,value:`string`}};for(let[c,l]of s.entries()){let s=`${t}.${e}[${c}]`;o.push(...hc({key:s,value:l,valueSpec:n,styleSpec:i,style:a,validateSpec:r}));let u=Xc(l)?l[`unicode-range`]:void 0;if(G(u)===`array`)for(let[e,t]of u.entries())o.push(...el(`${s}.unicode-range[${e}]`,t))}}else o.push(new B(`${t}.${e}`,s,`string or array expected, ${c} found`))}return o}var nl={"*"(){return[]},array:gc,boolean:bc,number:_c,color:xc,constants:fc,enum:Sc,filter:Tc,function:vc,layer:Ac,object:hc,source:Pc,light:Ic,sky:Lc,terrain:Rc,projection:Kc,projectionDefinition:qc,string:jc,formatted:zc,resolvedImage:Bc,padding:Vc,numberArray:Hc,colorArray:Uc,variableAnchorOffsetCollection:Wc,sprite:Gc,state:Zc,fontFaces:tl};function rl(e){let t=e.value,n=e.valueSpec,r=e.styleSpec;return e.validateSpec=rl,n.expression&&_s(pc(t))?vc(e):n.expression&&Ns(mc(t))?yc(e):n.type&&nl[n.type]?nl[n.type](e):hc(gs({},e,{valueSpec:n.type?r[n.type]:n}))}function il(e){let t=e.value,n=e.key,r=jc(e);return r.length?r:(t.indexOf(`{fontstack}`)===-1&&r.push(new B(n,t,`"glyphs" url must include a "{fontstack}" token`)),t.indexOf(`{range}`)===-1&&r.push(new B(n,t,`"glyphs" url must include a "{range}" token`)),r)}function al(e,t=z){let n=[];return n=n.concat(rl({key:``,value:e,valueSpec:t.$root,styleSpec:t,style:e,validateSpec:rl,objectElementValidators:{glyphs:il,"*"(){return[]}}})),e.constants&&(n=n.concat(fc({key:`constants`,value:e.constants,style:e,styleSpec:t,validateSpec:rl}))),sl(n)}al.source=cl(ol(Pc)),al.sprite=cl(ol(Gc)),al.glyphs=cl(ol(il)),al.fontFaces=cl(ol(tl)),al.light=cl(ol(Ic)),al.sky=cl(ol(Lc)),al.terrain=cl(ol(Rc)),al.state=cl(ol(Zc)),al.layer=cl(ol(Ac)),al.filter=cl(ol(Tc)),al.paintProperty=cl(ol(Oc)),al.layoutProperty=cl(ol(kc));function ol(e){return function(t){return e(Object.assign({},t,{validateSpec:rl}))}}function sl(e){return[].concat(e).sort((e,t)=>e.line-t.line)}function cl(e){return function(...t){return sl(e.apply(this,t))}}var ll={type:`enum`,"property-type":`data-constant`,expression:{interpolated:!1,parameters:[`global-state`]},values:{visible:{},none:{}},transition:!1,default:`visible`},ul=class{constructor(e,t,n){this._rootKey=t,this._globalState=n,this.setValue(e)}evaluate(){return this._literalValue??this._compiledValue.evaluate({})}setValue(e){if(e==null||e===`visible`||e===`none`){this._literalValue=e===`none`?`none`:`visible`,this._compiledValue=void 0,this._globalStateRefs=new Set;return}let t=Ps(e,this._rootKey,ll,this._globalState);if(t.result===`error`)throw this._literalValue=`visible`,this._compiledValue=void 0,Error(t.value.map(e=>`${e.key}: ${e.message}`).join(`, `));this._literalValue=void 0,this._compiledValue=t.value,this._globalStateRefs=Hs(t.value.expression)}getGlobalStateRefs(){return this._globalStateRefs}};function dl(e,t,n){return new ul(e,t,n)}var fl=al,pl=new Set(Object.keys(z).filter(e=>e.startsWith(`source_`)).map(e=>e.slice(7).replaceAll(`_`,`-`)));function ml(e){return Object.entries(e.sources??{}).filter(([,e])=>!pl.has(e.type)).map(([e])=>`sources.${e}`)}function hl(e,t){let n=ml(t);return gl(e,fl(t).filter(({message:e})=>!n.some(t=>e.startsWith(`${t}:`)||e.startsWith(`${t}.`))))}function gl(e,t){let n=!1;for(let r of t){if(r.severity===`warning`){Yt(r.message);continue}e.fire(new I(Error(r.message))),n=!0}return n}function _l(e,t,n,r){return r?.validate!==!1&&gl(e,t({styleSpec:z,...n}))}var vl=class e{constructor(e,t,n){let r=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;let i=new Int32Array(this.arrayBuffer);e=i[0],t=i[1],n=i[2],this.d=t+2*n;for(let e=0;e<this.d*this.d;e++){let t=i[3+e],n=i[3+e+1];r.push(t===n?null:i.subarray(t,n))}let a=i[3+r.length],o=i[3+r.length+1];this.keys=i.subarray(a,o),this.bboxes=i.subarray(o),this.insert=this._insertReadonly}else{this.d=t+2*n;for(let e=0;e<this.d*this.d;e++)r.push([]);this.keys=[],this.bboxes=[]}this.n=t,this.extent=e,this.padding=n,this.scale=t/e,this.uid=0;let i=n/t*e;this.min=-i,this.max=e+i}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertCell,this.uid++,void 0,void 0),this.keys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i)}_insertReadonly(){throw Error(`Cannot insert into a GridIndex created from an ArrayBuffer.`)}_insertCell(e,t,n,r,i,a){this.cells[i].push(a)}query(e,t,n,r,i){let a=this.min,o=this.max;if(e<=a&&t<=a&&o<=n&&o<=r&&!i)return[...this.keys];{let a=[];return this._forEachCell(e,t,n,r,this._queryCell,a,{},i),a}}_queryCell(e,t,n,r,i,a,o,s){let c=this.cells[i];if(c!==null){let i=this.keys,l=this.bboxes;for(let u of c)if(o[u]===void 0){let c=u*4;(s?s(l[c+0],l[c+1],l[c+2],l[c+3]):e<=l[c+2]&&t<=l[c+3]&&n>=l[c+0]&&r>=l[c+1])?(o[u]=!0,a.push(i[u])):o[u]=!1}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToCellCoord(e),l=this._convertToCellCoord(t),u=this._convertToCellCoord(n),d=this._convertToCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.d*c+f;if((!s||s(this._convertFromCellCoord(f),this._convertFromCellCoord(c),this._convertFromCellCoord(f+1),this._convertFromCellCoord(c+1)))&&i.call(this,e,t,n,r,l,a,o,s))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;let e=this.cells,t=3+this.cells.length+1+1,n=0;for(let e of this.cells)n+=e.length;let r=new Int32Array(t+n+this.keys.length+this.bboxes.length);r[0]=this.extent,r[1]=this.n,r[2]=this.padding;let i=t;for(let t=0;t<e.length;t++){let n=e[t];r[3+t]=i,r.set(n,i),i+=n.length}return r[3+e.length]=i,r.set(this.keys,i),i+=this.keys.length,r[3+e.length+1]=i,r.set(this.bboxes,i),i+=this.bboxes.length,r.buffer}static serialize(e,t){let n=e.toArrayBuffer();return t&&t.push(n),{buffer:n}}static deserialize(t){return new e(t.buffer)}},yl={};function K(e,t,n={}){if(yl[e])throw Error(`${e} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:e,writeable:!1}),yl[e]={klass:t,omit:n.omit||[],shallow:n.shallow||[]}}K(`Object`,Object),K(`Set`,Set),K(`TransferableGridIndex`,vl),K(`Color`,W),K(`Error`,Error),K(`AJAXError`,Kn),K(`ResolvedImage`,Bi),K(`StylePropertyFunction`,zs),K(`StyleExpression`,As,{omit:[`_evaluator`]}),K(`ZoomDependentExpression`,Is),K(`ZoomConstantExpression`,Fs),K(`CompoundExpression`,ts,{omit:[`_evaluate`]});for(let e in Zo)Zo[e]._classRegistryKey||K(`Expression_${e}`,Zo[e]);function bl(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor?.name===`ArrayBuffer`)}function xl(e){let t=e.constructor;return e.$name||t._classRegistryKey}function Sl(e){if(typeof e!=`object`||!e)return!1;let t=xl(e);return t&&t!==`Object`}function Cl(e){return!Sl(e)&&(e==null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof Date||e instanceof RegExp||e instanceof Blob||e instanceof Error||bl(e)||rn(e)||ArrayBuffer.isView(e)||e instanceof ImageData)}function wl(e,t){if(Cl(e))return(bl(e)||rn(e))&&t&&t.push(e),ArrayBuffer.isView(e)&&t&&t.push(e.buffer),e instanceof ImageData&&t&&t.push(e.data.buffer),e;if(Array.isArray(e)){let n=[];for(let r of e)n.push(wl(r,t));return n}if(typeof e!=`object`)throw Error(`can't serialize object of type ${typeof e}`);let n=xl(e);if(!n)throw Error(`can't serialize object of unregistered class ${e.constructor.name}`);if(!yl[n])throw Error(`${n} is not registered.`);let{klass:r}=yl[n],i=r.serialize?r.serialize(e,t):{};if(!r.serialize){for(let r in e){if(!e.hasOwnProperty(r)||yl[n].omit.includes(r))continue;let a=e[r];a!==void 0&&(i[r]=yl[n].shallow.includes(r)?a:wl(a,t))}e instanceof Error&&(i.message=e.message)}else if(i===t?.[t.length-1])throw Error(`statically serialized object won't survive transfer of $name property`);if(i.$name)throw Error(`$name property is reserved for worker serialization logic.`);return n!==`Object`&&(i.$name=n),i}function Tl(e){if(Cl(e))return e;if(Array.isArray(e))return e.map(Tl);if(typeof e!=`object`)throw Error(`can't deserialize object of type ${typeof e}`);let t=xl(e)||`Object`;if(!yl[t])throw Error(`can't deserialize unregistered class ${t}`);let{klass:n}=yl[t];if(!n)throw Error(`can't deserialize unregistered class ${t}`);if(n.deserialize)return n.deserialize(e);let r=Object.create(n.prototype);for(let n of Object.keys(e)){if(n===`$name`)continue;let i=e[n];r[n]=yl[t].shallow.includes(n)?i:Tl(i)}return r}var El=class{constructor(){this.first=!0}update(e,t){let n=Math.floor(e);return this.first?(this.first=!1,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=n,!0):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=t):this.lastFloorZoom<n&&(this.lastIntegerZoom=n,this.lastIntegerZoomTime=t),e!==this.lastZoom&&(this.lastZoom=e,this.lastFloorZoom=n,!0))}},Dl=class{constructor(e,t){this.zoom=e,t?(this.now=t.now||0,this.fadeDuration=t.fadeDuration||0,this.zoomHistory=t.zoomHistory||new El,this.transition=t.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new El,this.transition={})}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let e=this.zoom,t=e-Math.floor(e),n=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:t+(1-t)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*t}}},Ol=class{constructor(e,t,n,r){this.property=e,this.value=t,this.expression=Bs(t===void 0?e.specification.default:t,n,e.specification,r)}isDataDriven(){return this.expression.kind===`source`||this.expression.kind===`composite`}getGlobalStateRefs(){return this.expression.globalStateRefs||new Set}readsGlobalState(e){let t=this.getGlobalStateRefs();return e.some(e=>t.has(e))}possiblyEvaluate(e,t,n){return this.property.possiblyEvaluate(this,e,t,n)}},kl=class{constructor(e,t,n){this.property=e,this.value=new Ol(e,void 0,t,n)}transitioned(e,t){return t.value===this.value?t:new jl(this.property,this.value,t,P({},e.transition,this.transition),e.now)}untransitioned(){return new jl(this.property,this.value,null,{},0)}},Al=class{constructor(e,t,n){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues),this._globalState=n,this._rootKey=t}_propertyRootKey(e){return`${this._rootKey}.${String(e)}`}hasProperty(e){return e in this._properties.defaultTransitionablePropertyValues}getValue(e){return qt(this._values[e].value.value)}setValue(e,t){Object.hasOwn(this._values,e)||(this._values[e]=new kl(this._values[e].property,this._propertyRootKey(e),this._globalState)),this._values[e].value=new Ol(this._values[e].property,t===null?void 0:qt(t),this._propertyRootKey(e),this._globalState)}setValues(e){for(let t in e){let n=e[t];t.endsWith(`-transition`)?this.setTransition(t.slice(0,-11),n):Kt(this._values[t].value.value,n)||this.setValue(t,n)}}getTransition(e){return qt(this._values[e].transition)}setTransition(e,t){Object.hasOwn(this._values,e)||(this._values[e]=new kl(this._values[e].property,this._propertyRootKey(e),this._globalState)),this._values[e].transition=qt(t)||void 0}retainPriorGlobalState(e,t,n){for(let r of Object.keys(n._values))for(let i=n._values[r];i;i=i.prior){let{value:n}=i;n.property.specification.transition&&!n.isDataDriven()&&n.expression._globalState===this._globalState&&n.readsGlobalState(e)&&(i.value=new Ol(n.property,n.value,this._propertyRootKey(r),t))}}applyGlobalStateChange(e,t,n,r){this.retainPriorGlobalState(e,t,n);let i=!1;for(let t of Object.keys(this._values)){let{value:n}=this._values[t];n.readsGlobalState(e)&&(this.setValue(t,n.value),i=!0)}return i?this.transitioned(r,n):n}serialize(){let e={};for(let t of Object.keys(this._values)){let n=this.getValue(t);n!==void 0&&(e[t]=n);let r=this.getTransition(t);r!==void 0&&(e[`${t}-transition`]=r)}return e}transitioned(e,t){let n=new Ml(this._properties);for(let r of Object.keys(this._values))n._values[r]=this._values[r].transitioned(e,t._values[r]);return n}untransitioned(){let e=new Ml(this._properties);for(let t of Object.keys(this._values))e._values[t]=this._values[t].untransitioned();return e}},jl=class{constructor(e,t,n,r,i){this.property=e,this.value=t,this.begin=i+r.delay||0,this.end=this.begin+r.duration||0,e.specification.transition&&(r.delay||r.duration)&&(this.prior=n)}possiblyEvaluate(e,t,n){let r=e.now||0,i=this.value.possiblyEvaluate(e,t,n),a=this.prior;if(!a)return i;if(r>this.end||this.value.isDataDriven())return this.prior=null,i;if(r<this.begin)return a.possiblyEvaluate(e,t,n);{let o=(r-this.begin)/(this.end-this.begin);return this.property.interpolate(a.possiblyEvaluate(e,t,n),i,Mt(o))}}},Ml=class{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitioningPropertyValues)}possiblyEvaluate(e,t,n){let r=new Fl(this._properties);for(let i of Object.keys(this._values))r._values[i]=this._values[i].possiblyEvaluate(e,t,n);return r}hasTransition(){for(let e of Object.keys(this._values))if(this._values[e].prior)return!0;return!1}},Nl=class{constructor(e,t,n){this._properties=e,this._values=Object.create(e.defaultPropertyValues),this._globalState=n,this._rootKey=t}_propertyRootKey(e){return`${this._rootKey}.${String(e)}`}hasValue(e){return this._values[e].value!==void 0}hasProperty(e){return e in this._properties.defaultPropertyValues}getValue(e){return qt(this._values[e].value)}setValue(e,t){this._values[e]=new Ol(this._values[e].property,t===null?void 0:qt(t),this._propertyRootKey(e),this._globalState)}serialize(){let e={};for(let t of Object.keys(this._values)){let n=this.getValue(t);n!==void 0&&(e[t]=n)}return e}possiblyEvaluate(e,t,n){let r=new Fl(this._properties);for(let i of Object.keys(this._values))r._values[i]=this._values[i].possiblyEvaluate(e,t,n);return r}},Pl=class{constructor(e,t,n){this.property=e,this.value=t,this.parameters=n}isConstant(){return this.value.kind===`constant`}constantOr(e){return this.value.kind===`constant`?this.value.value:e}evaluate(e,t,n,r){return this.property.evaluate(this.value,this.parameters,e,t,n,r)}},Fl=class{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues)}get(e){return this._values[e]}};function Il(e){if(Array.isArray(e))return e.length;let t=e?.values;return Array.isArray(t)?t.length:void 0}function Ll(e,t){let n=Il(e),r=Il(t);return n!==void 0&&r!==void 0&&n!==r}var q=class{constructor(e,t){this.specification=e,this.name=t}possiblyEvaluate(e,t){if(e.isDataDriven())throw Error(`Value should not be data driven`);return e.expression.evaluate(t)}interpolate(e,t,n){if(Ll(e,t))return Yt(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=ta[this.specification.type];return r?r(e,t,n):e}},J=class{constructor(e,t,n){this.specification=e,this.name=t,this.overrides=n}possiblyEvaluate(e,t,n,r){return e.expression.kind===`constant`||e.expression.kind===`camera`?new Pl(this,{kind:`constant`,value:e.expression.evaluate(t,null,{},n,r)},t):new Pl(this,e.expression,t)}interpolate(e,t,n){if(e.value.kind!==`constant`||t.value.kind!==`constant`)return e;if(e.value.value===void 0||t.value.value===void 0)return new Pl(this,{kind:`constant`,value:void 0},e.parameters);if(Ll(e.value.value,t.value.value))return Yt(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=ta[this.specification.type];if(r){let i=r(e.value.value,t.value.value,n);return new Pl(this,{kind:`constant`,value:i},e.parameters)}return e}evaluate(e,t,n,r,i,a){return e.kind===`constant`?e.value:e.evaluate(t,n,r,i,a)}},Rl=class extends J{possiblyEvaluate(e,t,n,r){if(e.value===void 0)return new Pl(this,{kind:`constant`,value:void 0},t);if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r),a=e.property.specification.type===`resolvedImage`&&typeof i!=`string`?i.name:i,o=this._calculate(a,a,a,t);return new Pl(this,{kind:`constant`,value:o},t)}if(e.expression.kind===`camera`){let n=this._calculate(e.expression.evaluate({zoom:t.zoom-1}),e.expression.evaluate({zoom:t.zoom}),e.expression.evaluate({zoom:t.zoom+1}),t);return new Pl(this,{kind:`constant`,value:n},t)}return new Pl(this,e.expression,t)}evaluate(e,t,n,r,i,a){if(e.kind===`source`){let o=e.evaluate(t,n,r,i,a);return this._calculate(o,o,o,t)}return e.kind===`composite`?this._calculate(e.evaluate({zoom:Math.floor(t.zoom)-1},n,r),e.evaluate({zoom:Math.floor(t.zoom)},n,r),e.evaluate({zoom:Math.floor(t.zoom)+1},n,r),t):e.value}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},zl=class{constructor(e,t){this.specification=e,this.name=t}possiblyEvaluate(e,t,n,r){if(e.value!==void 0){if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r);return this._calculate(i,i,i,t)}return this._calculate(e.expression.evaluate(new Dl(Math.floor(t.zoom-1),t)),e.expression.evaluate(new Dl(Math.floor(t.zoom),t)),e.expression.evaluate(new Dl(Math.floor(t.zoom+1),t)),t)}}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Bl=class{constructor(e,t){this.specification=e,this.name=t}possiblyEvaluate(e,t,n,r){return!!e.expression.evaluate(t,null,{},n,r)}interpolate(){return!1}},Vl=class{constructor(e){this.properties=e,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let t in e){let n=e[t];n.specification.overridable&&this.overridableProperties.push(t);let r=this.defaultPropertyValues[t]=new Ol(n,void 0,n.name,void 0),i=this.defaultTransitionablePropertyValues[t]=new kl(n,n.name,void 0);this.defaultTransitioningPropertyValues[t]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[t]=r.possiblyEvaluate({})}}};K(`DataDrivenProperty`,J),K(`DataConstantProperty`,q),K(`CrossFadedDataDrivenProperty`,Rl),K(`CrossFadedProperty`,zl),K(`ColorRampProperty`,Bl);var Hl=` is a PAINT property not a LAYOUT property. Use get/setPaintProperty instead?`,Ul=` is a LAYOUT property not a PAINT property. Use get/setLayoutProperty instead?`,Wl=class extends sr{constructor(e,t,n){if(super(),this.id=e.id,this.type=e.type,this._globalState=n,this._featureFilter={filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set},this._visibilityExpression=dl(this.visibility,`layers[${this.id}].layout.visibility`,n),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,this._featureFilter=nc(e.filter,`layers[${this.id}].filter`,n)),t.layout&&(this._unevaluatedLayout=new Nl(t.layout,`layers[${this.id}].layout`,n)),t.paint)){this._transitionablePaint=new Al(t.paint,`layers[${this.id}].paint`,n);for(let t in e.paint)this.setPaintProperty(t,e.paint[t],{validate:!1});for(let t in e.layout)this.setLayoutProperty(t,e.layout[t],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Fl(t.paint)}}setFilter(e){this.filter=e,this._featureFilter=nc(e,`layers[${this.id}].filter`,this._globalState)}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(e){if(e===`visibility`)return this.visibility;if(this._transitionablePaint?.hasProperty(e))throw Error(e+Hl);if(!this._unevaluatedLayout)throw Error(`Cannot get layout property "${e}" on layer type "${this.type}" which has no layout properties.`);return this._unevaluatedLayout.getValue(e)}getLayoutAffectingGlobalStateRefs(){let e=new Set;for(let t of this._visibilityExpression.getGlobalStateRefs())e.add(t);if(this._unevaluatedLayout)for(let t in this._unevaluatedLayout._values){let n=this._unevaluatedLayout._values[t];for(let t of n.getGlobalStateRefs())e.add(t)}for(let t of this._featureFilter.getGlobalStateRefs())e.add(t);return e}getPaintAffectingGlobalStateRefs(){let e=new globalThis.Map;if(this._transitionablePaint)for(let t in this._transitionablePaint._values){let n=this._transitionablePaint._values[t].value;for(let r of n.getGlobalStateRefs()){let i=e.get(r)??[];i.push({name:t,value:n.value}),e.set(r,i)}}return e}getVisibilityAffectingGlobalStateRefs(){return this._visibilityExpression.getGlobalStateRefs()}setLayoutProperty(e,t,n={}){if(e===`visibility`){this.visibility=t,this._visibilityExpression.setValue(t),this.recalculateVisibility();return}if(this._transitionablePaint?.hasProperty(e)){this.fire(new I(Error(e+Hl)));return}t!=null&&this._validate(fl.layoutProperty,`layers.${this.id}.layout.${e}`,e,t,n)||this._unevaluatedLayout.setValue(e,t)}getPaintProperty(e){if(e.endsWith(`-transition`)){let t=e.slice(0,-11);if(t===`visibility`||this._unevaluatedLayout?.hasProperty(t))throw Error(e+Ul);return this._transitionablePaint.getTransition(t)}if(e===`visibility`||this._unevaluatedLayout?.hasProperty(e))throw Error(e+Ul);return this._transitionablePaint.getValue(e)}setPaintProperty(e,t,n={}){if(e===`visibility`||this._unevaluatedLayout?.hasProperty(e))return this.fire(new I(Error(e+Ul))),!1;if(t!=null&&this._validate(fl.paintProperty,`layers.${this.id}.paint.${e}`,e,t,n))return!1;if(e.endsWith(`-transition`))return this._transitionablePaint.setTransition(e.slice(0,-11),t||void 0),!1;{let n=this._transitionablePaint._values[e],r=n.property.specification[`property-type`]===`cross-faded-data-driven`,i=n.value.isDataDriven(),a=n.value;this._transitionablePaint.setValue(e,t),this._handleSpecialPaintPropertyUpdate(e);let o=this._transitionablePaint._values[e].value;return o.isDataDriven()||i||r||this._handleOverridablePaintPropertyUpdate(e,a,o)}}_handleSpecialPaintPropertyUpdate(e){}_handleOverridablePaintPropertyUpdate(e,t,n){return!1}isHidden(e=this.minzoom,t=!1){return this.minzoom&&e<(t?Math.floor(this.minzoom):this.minzoom)||this.maxzoom&&e>=this.maxzoom?!0:this._evaluatedVisibility===`none`}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}retainPriorGlobalState(e,t){this._transitionablePaint?.retainPriorGlobalState(e,t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculateVisibility(){this._evaluatedVisibility=this._visibilityExpression.evaluate()}recalculate(e,t){e.getCrossfadeParameters&&(this._crossfadeParameters=e.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,t)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,t)}serialize(){let 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?.serialize(),paint:this._transitionablePaint?.serialize()};return this.visibility&&(e.layout||={},e.layout.visibility=this.visibility),Gt(e,(e,t)=>e!==void 0&&!(t===`layout`&&!Object.keys(e).length)&&!(t===`paint`&&!Object.keys(e).length))}_validate(e,t,n,r,i={}){return _l(this,e,{key:t,layerType:this.type,objectKey:n,value:r},i)}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let e in this.paint._values){let t=this.paint.get(e);if(t instanceof Pl&&fs(t.property.specification)&&(t.value.kind===`source`||t.value.kind===`composite`)&&t.value.isStateDependent)return!0}return!1}},Gl,Kl=()=>Gl||=new Vl({"raster-opacity":new q(z.paint_raster[`raster-opacity`],`raster-opacity`),"raster-hue-rotate":new q(z.paint_raster[`raster-hue-rotate`],`raster-hue-rotate`),"raster-brightness-min":new q(z.paint_raster[`raster-brightness-min`],`raster-brightness-min`),"raster-brightness-max":new q(z.paint_raster[`raster-brightness-max`],`raster-brightness-max`),"raster-saturation":new q(z.paint_raster[`raster-saturation`],`raster-saturation`),"raster-contrast":new q(z.paint_raster[`raster-contrast`],`raster-contrast`),resampling:new q(z.paint_raster.resampling,`resampling`),"raster-resampling":new q(z.paint_raster[`raster-resampling`],`raster-resampling`),"raster-fade-duration":new q(z.paint_raster[`raster-fade-duration`],`raster-fade-duration`)}),ql={get paint(){return Kl()}},Jl=e=>e.type===`raster`,Yl=class extends Wl{constructor(e,t){super(e,ql,t)}},Xl={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Zl=class{constructor(e,t){this._structArray=e,this._pos1=t*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}},Ql=class{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(e,t){return e._trim(),t&&(e.isTransferred=!0,t.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){let t=Object.create(this.prototype);return t.arrayBuffer=e.arrayBuffer,t.length=e.length,t.capacity=e.arrayBuffer.byteLength/t.bytesPerElement,t._refreshViews(),t}_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(this.capacity*5),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let t=this.uint8;this._refreshViews(),t&&this.uint8.set(t)}}_refreshViews(){throw Error(`_refreshViews() must be implemented by each concrete StructArray layout`)}freeBufferAfterUpload(){this.arrayBuffer=new ArrayBuffer(0),this._refreshViews()}};function $l(e,t=1){let n=0,r=0;return{members:e.map(e=>{let i=eu(e.type),a=n=tu(n,Math.max(t,i)),o=e.components||1;return r=Math.max(r,i),n+=i*o,{name:e.name,type:e.type,components:o,offset:a}}),size:tu(n,Math.max(r,t)),alignment:t}}function eu(e){return Xl[e].BYTES_PER_ELEMENT}function tu(e,t){return Math.ceil(e/t)*t}var nu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.int16[r+0]=t,this.int16[r+1]=n,e}};nu.prototype.bytesPerElement=4,K(`StructArrayLayout2i4`,nu);var ru=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.int16[i+0]=t,this.int16[i+1]=n,this.int16[i+2]=r,e}};ru.prototype.bytesPerElement=6,K(`StructArrayLayout3i6`,ru);var iu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.int16[a+0]=t,this.int16[a+1]=n,this.int16[a+2]=r,this.int16[a+3]=i,e}};iu.prototype.bytesPerElement=8,K(`StructArrayLayout4i8`,iu);var au=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};au.prototype.bytesPerElement=12,K(`StructArrayLayout2i4i12`,au);var ou=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.int8=new Int8Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*5,u=e*10;return this.int16[l+0]=t,this.int16[l+1]=n,this.uint8[u+4]=r,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,this.int8[u+8]=s,this.int8[u+9]=c,e}};ou.prototype.bytesPerElement=10,K(`StructArrayLayout2i4ub2b10`,ou);var su=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.float32[r+0]=t,this.float32[r+1]=n,e}};su.prototype.bytesPerElement=8,K(`StructArrayLayout2f8`,su);var cu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s,c,l){let u=this.length;return this.resize(u+1),this.emplace(u,e,t,n,r,i,a,o,s,c,l)}emplace(e,t,n,r,i,a,o,s,c,l,u){let d=e*10;return this.uint16[d+0]=t,this.uint16[d+1]=n,this.uint16[d+2]=r,this.uint16[d+3]=i,this.uint16[d+4]=a,this.uint16[d+5]=o,this.uint16[d+6]=s,this.uint16[d+7]=c,this.uint16[d+8]=l,this.uint16[d+9]=u,e}};cu.prototype.bytesPerElement=20,K(`StructArrayLayout10ui20`,cu);var lu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*8;return this.uint16[l+0]=t,this.uint16[l+1]=n,this.uint16[l+2]=r,this.uint16[l+3]=i,this.uint16[l+4]=a,this.uint16[l+5]=o,this.uint16[l+6]=s,this.uint16[l+7]=c,e}};lu.prototype.bytesPerElement=16,K(`StructArrayLayout8ui16`,lu);var uu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=this.length;return this.resize(p+1),this.emplace(p,e,t,n,r,i,a,o,s,c,l,u,d,f)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=e*14,h=e*7;return this.int16[m+0]=t,this.int16[m+1]=n,this.int16[m+2]=r,this.int16[m+3]=i,this.uint16[m+4]=a,this.uint16[m+5]=o,this.uint16[m+6]=s,this.uint16[m+7]=c,this.int16[m+8]=l,this.int16[m+9]=u,this.int16[m+10]=d,this.int16[m+11]=f,this.float32[h+6]=p,e}};uu.prototype.bytesPerElement=28,K(`StructArrayLayout4i4ui4i1f28`,uu);var du=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.float32[i+0]=t,this.float32[i+1]=n,this.float32[i+2]=r,e}};du.prototype.bytesPerElement=12,K(`StructArrayLayout3f12`,du);var fu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint32[n+0]=t,e}};fu.prototype.bytesPerElement=4,K(`StructArrayLayout1ul4`,fu);var pu=class extends Ql{_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,t,n,r,i,a,o,s,c){let l=this.length;return this.resize(l+1),this.emplace(l,e,t,n,r,i,a,o,s,c)}emplace(e,t,n,r,i,a,o,s,c,l){let u=e*10,d=e*5;return this.int16[u+0]=t,this.int16[u+1]=n,this.int16[u+2]=r,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[d+3]=s,this.uint16[u+8]=c,this.uint16[u+9]=l,e}};pu.prototype.bytesPerElement=20,K(`StructArrayLayout6i1ul2ui20`,pu);var mu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};mu.prototype.bytesPerElement=12,K(`StructArrayLayout2i2i2i12`,mu);var hu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=e*4,s=e*8;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.int16[s+6]=i,this.int16[s+7]=a,e}};hu.prototype.bytesPerElement=16,K(`StructArrayLayout2f1f2i16`,hu);var gu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*16,c=e*4,l=e*8;return this.uint8[s+0]=t,this.uint8[s+1]=n,this.float32[c+1]=r,this.float32[c+2]=i,this.int16[l+6]=a,this.int16[l+7]=o,e}};gu.prototype.bytesPerElement=16,K(`StructArrayLayout2ub2f2i16`,gu);var _u=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.uint16[i+0]=t,this.uint16[i+1]=n,this.uint16[i+2]=r,e}};_u.prototype.bytesPerElement=6,K(`StructArrayLayout3ui6`,_u);var vu=class extends Ql{_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,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=this.length;return this.resize(v+1),this.emplace(v,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=e*26,b=e*13,x=e*52;return this.int16[y+0]=t,this.int16[y+1]=n,this.uint16[y+2]=r,this.uint16[y+3]=i,this.uint32[b+2]=a,this.uint32[b+3]=o,this.uint32[b+4]=s,this.uint16[y+10]=c,this.uint16[y+11]=l,this.uint16[y+12]=u,this.float32[b+7]=d,this.float32[b+8]=f,this.uint8[x+36]=p,this.uint8[x+37]=m,this.uint8[x+38]=h,this.uint32[b+10]=g,this.int16[y+22]=_,this.float32[b+12]=v,e}};vu.prototype.bytesPerElement=52,K(`StructArrayLayout2i2ui3ul3ui2f3ub1ul1i1f52`,vu);var yu=class extends Ql{_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,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O){let k=this.length;return this.resize(k+1),this.emplace(k,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k){let A=e*34,ee=e*17;return this.int16[A+0]=t,this.int16[A+1]=n,this.int16[A+2]=r,this.int16[A+3]=i,this.int16[A+4]=a,this.int16[A+5]=o,this.int16[A+6]=s,this.int16[A+7]=c,this.uint16[A+8]=l,this.uint16[A+9]=u,this.uint16[A+10]=d,this.uint16[A+11]=f,this.uint16[A+12]=p,this.uint16[A+13]=m,this.uint16[A+14]=h,this.uint16[A+15]=g,this.uint16[A+16]=_,this.uint16[A+17]=v,this.uint16[A+18]=y,this.uint16[A+19]=b,this.uint16[A+20]=x,this.uint16[A+21]=S,this.uint16[A+22]=C,this.uint32[ee+12]=w,this.float32[ee+13]=T,this.float32[ee+14]=E,this.uint16[A+30]=D,this.uint16[A+31]=O,this.float32[ee+16]=k,e}};yu.prototype.bytesPerElement=68,K(`StructArrayLayout8i15ui1ul2f2ui1f68`,yu);var bu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.float32[n+0]=t,e}};bu.prototype.bytesPerElement=4,K(`StructArrayLayout1f4`,bu);var xu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*6,a=e*3;return this.uint16[i+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,e}};xu.prototype.bytesPerElement=12,K(`StructArrayLayout1ui2f12`,xu);var Su=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*2,a=e*4;return this.uint32[i+0]=t,this.uint16[a+2]=n,this.uint16[a+3]=r,e}};Su.prototype.bytesPerElement=8,K(`StructArrayLayout1ul2ui8`,Su);var Cu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.uint16[r+0]=t,this.uint16[r+1]=n,e}};Cu.prototype.bytesPerElement=4,K(`StructArrayLayout2ui4`,Cu);var wu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint16[n+0]=t,e}};wu.prototype.bytesPerElement=2,K(`StructArrayLayout1ui2`,wu);var Tu=class extends Ql{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.float32[a+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,this.float32[a+3]=i,e}};Tu.prototype.bytesPerElement=16,K(`StructArrayLayout4f16`,Tu);var Eu=class extends Zl{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 b(this.anchorPointX,this.anchorPointY)}};Eu.prototype.size=20;var Du=class extends pu{get(e){return new Eu(this,e)}};K(`CollisionBoxArray`,Du);var Ou=class extends Zl{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]}get heightOffset(){return this._structArray.float32[this._pos4+12]}};Ou.prototype.size=52;var ku=class extends vu{get(e){return new Ou(this,e)}};K(`PlacedSymbolArray`,ku);var Au=class extends Zl{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}get heightOffset(){return this._structArray.float32[this._pos4+16]}};Au.prototype.size=68;var ju=class extends yu{get(e){return new Au(this,e)}};K(`SymbolInstanceArray`,ju);var Mu=class extends bu{getoffsetX(e){return this.float32[e*1+0]}};K(`GlyphOffsetArray`,Mu);var Nu=class extends ru{getx(e){return this.int16[e*3+0]}gety(e){return this.int16[e*3+1]}gettileUnitDistanceFromAnchor(e){return this.int16[e*3+2]}};K(`SymbolLineVertexArray`,Nu);var Pu=class extends Zl{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}};Pu.prototype.size=12;var Fu=class extends xu{get(e){return new Pu(this,e)}};K(`TextAnchorOffsetArray`,Fu);var Iu=class extends Zl{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]}};Iu.prototype.size=8;var Lu=class extends Su{get(e){return new Iu(this,e)}};K(`FeatureIndexArray`,Lu);var Ru=class extends nu{},zu=class extends ru{},Bu=class extends iu{},Vu=class extends nu{},Hu=class extends nu{},Uu=class extends au{},Wu=class extends ou{},Gu=class extends su{},Ku=class extends cu{},qu=class extends lu{},Ju=class extends uu{},Yu=class extends du{},Xu=class extends fu{},Zu=class extends mu{},Qu=class extends hu{},$u=class extends gu{},ed=class extends _u{},td=class extends _u{},nd=class extends Cu{},rd=class extends wu{},id=$l([{name:`a_pos`,components:2,type:`Int16`}],4),ad=id.members;id.size,id.alignment;var od=class e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=e}prepareSegment(t,n,r,i){let a=this.segments[this.segments.length-1];return t>e.MAX_VERTEX_ARRAY_LENGTH&&Yt(`Max vertices per segment is ${e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!a||a.vertexLength+t>e.MAX_VERTEX_ARRAY_LENGTH||a.sortKey!==i?this.createNewSegment(n,r,i):a}createNewSegment(e,t,n){let r={vertexOffset:e.length,primitiveOffset:t.length,vertexLength:0,primitiveLength:0,vaos:{}};return n!==void 0&&(r.sortKey=n),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(r),r}getOrCreateLatestSegment(e,t,n){return this.prepareSegment(0,e,t,n)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(let e of this.segments)for(let t in e.vaos)e.vaos[t].destroy()}static simpleSegment(t,n,r,i){return new e([{vertexOffset:t,primitiveOffset:n,vertexLength:r,primitiveLength:i,vaos:{},sortKey:0}])}};od.MAX_VERTEX_ARRAY_LENGTH=2**16-1,K(`SegmentVector`,od);function sd(e,t){return e=N(Math.floor(e),0,255),t=N(Math.floor(t),0,255),256*e+t}var cd=$l([{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`}]),ld=$l([{name:`a_dasharray_from`,components:4,type:`Uint16`},{name:`a_dasharray_to`,components:4,type:`Uint16`}]),ud=g(((e,t)=>{function n(e,t){for(var n=e.length&3,r=e.length-n,i=t,a,o=3432918353,s=461845907,c,l=0;l<r;)c=e.charCodeAt(l)&255|(e.charCodeAt(++l)&255)<<8|(e.charCodeAt(++l)&255)<<16|(e.charCodeAt(++l)&255)<<24,++l,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)&4294967295,i^=c,i=i<<13|i>>>19,a=(i&65535)*5+(((i>>>16)*5&65535)<<16)&4294967295,i=(a&65535)+27492+(((a>>>16)+58964&65535)<<16);switch(c=0,n){case 3:c^=(e.charCodeAt(l+2)&255)<<16;case 2:c^=(e.charCodeAt(l+1)&255)<<8;case 1:c^=e.charCodeAt(l)&255,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)&4294967295,i^=c}return i^=e.length,i^=i>>>16,i=(i&65535)*2246822507+(((i>>>16)*2246822507&65535)<<16)&4294967295,i^=i>>>13,i=(i&65535)*3266489909+(((i>>>16)*3266489909&65535)<<16)&4294967295,i^=i>>>16,i>>>0}t!==void 0&&(t.exports=n)})),dd=g(((e,t)=>{function n(e,t){for(var n=e.length,r=t^n,i=0,a;n>=4;)a=e.charCodeAt(i)&255|(e.charCodeAt(++i)&255)<<8|(e.charCodeAt(++i)&255)<<16|(e.charCodeAt(++i)&255)<<24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),a^=a>>>24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16)^a,n-=4,++i;switch(n){case 3:r^=(e.charCodeAt(i+2)&255)<<16;case 2:r^=(e.charCodeAt(i+1)&255)<<8;case 1:r^=e.charCodeAt(i)&255,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16)}return r^=r>>>13,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),r^=r>>>15,r>>>0}t.exports=n})),fd=v(g(((e,t)=>{var n=ud(),r=dd();t.exports=n,t.exports.murmur3=n,t.exports.murmur2=r}))(),1),pd=class e{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,t,n,r){this.ids.push(md(e)),this.positions.push(t,n,r)}getPositions(e){if(!this.indexed)throw Error(`Trying to get index, but feature positions are not indexed`);let t=md(e),n=0,r=this.ids.length-1;for(;n<r;){let e=n+r>>1;this.ids[e]>=t?r=e:n=e+1}let i=[];for(;this.ids[n]===t;){let e=this.positions[3*n],t=this.positions[3*n+1],r=this.positions[3*n+2];i.push({index:e,start:t,end:r}),n++}return i}static serialize(e,t){let n=new Float64Array(e.ids),r=new Uint32Array(e.positions);return hd(n,r,0,n.length-1),t&&t.push(n.buffer,r.buffer),{ids:n,positions:r}}static deserialize(t){let n=new e;return n.ids=t.ids,n.positions=t.positions,n.indexed=!0,n}};function md(e){let t=+e;return!isNaN(t)&&t<=2**53-1?t:(0,fd.default)(String(e))}function hd(e,t,n,r){for(;n<r;){let i=e[n+r>>1],a=n-1,o=r+1;for(;;){do a++;while(e[a]<i);do o--;while(e[o]>i);if(a>=o)break;gd(e,a,o),gd(t,3*a,3*o),gd(t,3*a+1,3*o+1),gd(t,3*a+2,3*o+2)}o-n<r-o?(hd(e,t,n,o),n=o+1):(hd(e,t,o+1,r),r=o)}}function gd(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}K(`FeaturePositionMap`,pd);var _d=class{constructor(e,t){this.gl=e.gl,this.location=t}},Y=class extends _d{constructor(e,t){super(e,t),this.current=0}set(e){this.current!==e&&(this.current=e,this.gl.uniform1i(this.location,e))}},X=class extends _d{constructor(e,t){super(e,t),this.current=0}set(e){this.current!==e&&(this.current=e,this.gl.uniform1f(this.location,e))}},Z=class extends _d{constructor(e,t){super(e,t),this.current=[0,0]}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1])&&(this.current=e,this.gl.uniform2f(this.location,e[0],e[1]))}},vd=class extends _d{constructor(e,t){super(e,t),this.current=[0,0,0]}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2])&&(this.current=e,this.gl.uniform3f(this.location,e[0],e[1],e[2]))}},yd=class extends _d{constructor(e,t){super(e,t),this.current=[0,0,0,0]}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2]||e[3]!==this.current[3])&&(this.current=e,this.gl.uniform4f(this.location,e[0],e[1],e[2],e[3]))}},bd=class extends _d{constructor(e,t){super(e,t),this.current=W.transparent}set(e){(e.r!==this.current.r||e.g!==this.current.g||e.b!==this.current.b||e.a!==this.current.a)&&(this.current=e,this.gl.uniform4f(this.location,e.r,e.g,e.b,e.a))}},xd=class extends _d{constructor(e,t){super(e,t),this.current=[]}set(e){if(e!=this.current){this.current=e;let t=new Float32Array(e.length*4);for(let n=0;n<e.length;n++)t[4*n]=e[n].r,t[4*n+1]=e[n].g,t[4*n+2]=e[n].b,t[4*n+3]=e[n].a;this.gl.uniform4fv(this.location,t)}}},Sd=class extends _d{constructor(e,t){super(e,t),this.current=[]}set(e){if(e!=this.current){this.current=e;let t=new Float32Array(e);this.gl.uniform1fv(this.location,t)}}},Cd=new Float32Array(16),wd=class extends _d{constructor(e,t){super(e,t),this.current=Cd}set(e){if(e[12]!==this.current[12]||e[0]!==this.current[0]){this.current=e,this.gl.uniformMatrix4fv(this.location,!1,e);return}for(let t=1;t<16;t++)if(e[t]!==this.current[t]){this.current=e,this.gl.uniformMatrix4fv(this.location,!1,e);break}}};function Td(e){return[sd(255*e.r,255*e.g),sd(255*e.b,255*e.a)]}var Ed=class{constructor(e,t,n){this.value=e,this.uniformNames=t.map(e=>`u_${e}`),this.type=n}setUniform(e,t,n){e.set(n.constantOr(this.value))}getBinding(e,t,n){return this.type===`color`?new bd(e,t):new X(e,t)}},Dd=class{constructor(e,t){this.uniformNames=t.map(e=>`u_${e}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(e,t){this.pixelRatioFrom=t.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=t.tlbr,this.patternTo=e.tlbr}setConstantDashPositions(e,t){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,t.y,t.height,t.width]}setUniform(e,t,n,r){let i=null;r===`u_pattern_to`?i=this.patternTo:r===`u_pattern_from`?i=this.patternFrom:r===`u_dasharray_to`?i=this.dashTo:r===`u_dasharray_from`?i=this.dashFrom:r===`u_pixel_ratio_to`?i=this.pixelRatioTo:r===`u_pixel_ratio_from`&&(i=this.pixelRatioFrom),i!==null&&e.set(i)}getBinding(e,t,n){return n.startsWith(`u_pattern`)||n.startsWith(`u_dasharray_`)?new yd(e,t):new X(e,t)}},Od=class{constructor(e,t,n,r){this.expression=e,this.type=n,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?2:1,offset:0})),this.paintVertexArray=new r}populatePaintArray(e,t,n){let r=this.paintVertexArray.length,i=this.expression.evaluate(new Dl(0,n),t,{},n.canonical,[],n.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(r,e,i)}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Dl(0,i),n,r);this._setPaintValue(e,t,a)}_setPaintValue(e,t,n){if(this.type===`color`){let r=Td(n);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,r[0],r[1])}else{for(let r=e;r<t;r++)this.paintVertexArray.emplace(r,n);this.maxValue=Math.max(this.maxValue,Math.abs(n))}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}},kd=class{constructor(e,t,n,r,i,a){this.expression=e,this.uniformNames=t.map(e=>`u_${e}_t`),this.type=n,this.useIntegerZoom=r,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?4:2,offset:0})),this.paintVertexArray=new a}populatePaintArray(e,t,n){let r=this.expression.evaluate(new Dl(this.zoom,n),t,{},n.canonical,[],n.formattedSection),i=this.expression.evaluate(new Dl(this.zoom+1,n),t,{},n.canonical,[],n.formattedSection),a=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(a,e,r,i)}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Dl(this.zoom,i),n,r),o=this.expression.evaluate(new Dl(this.zoom+1,i),n,r);this._setPaintValue(e,t,a,o)}_setPaintValue(e,t,n,r){if(this.type===`color`){let i=Td(n),a=Td(r);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,i[0],i[1],a[0],a[1])}else{for(let i=e;i<t;i++)this.paintVertexArray.emplace(i,n,r);this.maxValue=Math.max(this.maxValue,Math.abs(n),Math.abs(r))}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(e,t){let n=this.useIntegerZoom?Math.floor(t.zoom):t.zoom,r=N(this.expression.interpolationFactor(n,this.zoom,this.zoom+1),0,1);e.set(r)}getBinding(e,t,n){return new X(e,t)}},Ad=class{constructor(e,t,n,r,i,a){this.expression=e,this.type=t,this.useIntegerZoom=n,this.zoom=r,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i}populatePaintArray(e,t,n){let r=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(e),this.zoomOutPaintVertexArray.resize(e),this._setPaintValues(r,e,this.getPositionIds(t),n)}updatePaintArray(e,t,n,r,i){this._setPaintValues(e,t,this.getPositionIds(n),i)}_setPaintValues(e,t,n,r){let i=this.getPositions(r);if(!i||!n)return;let a=i[n.min],o=i[n.mid],s=i[n.max];if(a&&o&&s)for(let n=e;n<t;n++)this.emplace(this.zoomInPaintVertexArray,n,a,o),this.emplace(this.zoomOutPaintVertexArray,n,s,o)}upload(e){if(this.zoomInPaintVertexArray?.arrayBuffer.byteLength&&this.zoomOutPaintVertexArray?.arrayBuffer.byteLength){let t=this.getVertexAttributes();this.zoomInPaintVertexBuffer=e.createVertexBuffer(this.zoomInPaintVertexArray,t,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=e.createVertexBuffer(this.zoomOutPaintVertexArray,t,this.expression.isStateDependent)}}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()}},jd=class extends Ad{getPositions(e){return e.imagePositions}getPositionIds(e){return e.patterns?.[this.layerId]}getVertexAttributes(){return cd.members}emplace(e,t,n,r){e.emplace(t,n.tlbr[0],n.tlbr[1],n.tlbr[2],n.tlbr[3],r.tlbr[0],r.tlbr[1],r.tlbr[2],r.tlbr[3],n.pixelRatio,r.pixelRatio)}},Md=class extends Ad{getPositions(e){return e.dashPositions}getPositionIds(e){return e.dashes?.[this.layerId]}getVertexAttributes(){return ld.members}emplace(e,t,n,r){e.emplace(t,0,n.y,n.height,n.width,0,r.y,r.height,r.width)}},Nd=class{constructor(e,t,n){this.binders={},this._buffers=[];let r=[];for(let i in e.paint._values){if(!n(i))continue;let a=e.paint.get(i);if(!(a instanceof Pl)||!fs(a.property.specification))continue;let o=Fd(i,e.type),s=a.value,c=a.property.specification.type,l=a.property.useIntegerZoom,u=a.property.specification[`property-type`],d=u===`cross-faded`||u===`cross-faded-data-driven`;if(s.kind===`constant`)this.binders[i]=d?new Dd(s.value,o):new Ed(s.value,o,c),r.push(`/u_${i}`);else if(s.kind===`source`||d){let n=Ld(i,c,`source`);this.binders[i]=d?i===`line-dasharray`?new Md(s,c,l,t,n,e.id):new jd(s,c,l,t,n,e.id):new Od(s,o,c,n),r.push(`/a_${i}`)}else{let e=Ld(i,c,`composite`);this.binders[i]=new kd(s,o,c,l,t,e),r.push(`/z_${i}`)}}this.cacheKey=r.sort().join(``)}getMaxValue(e){let t=this.binders[e];return t instanceof Od||t instanceof kd?t.maxValue:0}populatePaintArrays(e,t,n){for(let r in this.binders){let i=this.binders[r];(i instanceof Od||i instanceof kd||i instanceof Ad)&&i.populatePaintArray(e,t,n)}}setConstantPatternPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Dd&&r.setConstantPatternPositions(e,t)}}setConstantDashPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Dd&&r.setConstantDashPositions(e,t)}}updatePaintArrays(e,t,n,r,i){let a=!1;for(let o of e){let e=t.getPositions(o.id);for(let t of e){let e=n.feature(t.index);for(let n in this.binders){let s=this.binders[n];(s instanceof Od||s instanceof kd||s instanceof Ad)&&s.expression.isStateDependent===!0&&(s.expression=r.paint.get(n).value,s.updatePaintArray(t.start,t.end,e,o.state,i),a=!0)}}}return a}defines(){let e=[];for(let t in this.binders){let n=this.binders[t];(n instanceof Ed||n instanceof Dd)&&e.push(...n.uniformNames.map(e=>`#define HAS_UNIFORM_${e}`))}return e}getBinderAttributes(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof Od||n instanceof kd)for(let t of n.paintVertexAttributes)e.push(t.name);else if(n instanceof Ad){let t=n.getVertexAttributes();for(let n of t)e.push(n.name)}}return e}getBinderUniforms(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof Ed||n instanceof Dd||n instanceof kd)for(let t of n.uniformNames)e.push(t)}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e,t){let n=[];for(let r in this.binders){let i=this.binders[r];if(i instanceof Ed||i instanceof Dd||i instanceof kd){for(let a of i.uniformNames)if(t[a]){let o=i.getBinding(e,t[a],a);n.push({name:a,property:r,binding:o})}}}return n}setUniforms(e,t,n,r){for(let{name:e,property:i,binding:a}of t)this.binders[i].setUniform(a,r,n.get(i),e)}updatePaintBuffers(e){this._buffers=[];for(let t in this.binders){let n=this.binders[t];if(e&&n instanceof Ad){let t=e.fromScale===2?n.zoomInPaintVertexBuffer:n.zoomOutPaintVertexBuffer;t&&this._buffers.push(t)}else(n instanceof Od||n instanceof kd)&&n.paintVertexBuffer&&this._buffers.push(n.paintVertexBuffer)}}upload(e){for(let t in this.binders){let n=this.binders[t];(n instanceof Od||n instanceof kd||n instanceof Ad)&&n.upload(e)}this.updatePaintBuffers()}destroy(){for(let e in this.binders){let t=this.binders[e];(t instanceof Od||t instanceof kd||t instanceof Ad)&&t.destroy()}}},Pd=class{constructor(e,t,n=()=>!0){this.programConfigurations={};for(let r of e)this.programConfigurations[r.id]=new Nd(r,t,n);this.needsUpload=!1,this._featureMap=new pd,this._bufferOffset=0}populatePaintArrays(e,t,n,r){for(let n in this.programConfigurations)this.programConfigurations[n].populatePaintArrays(e,t,r);t.id!==void 0&&this._featureMap.add(t.id,n,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,t,n,r){for(let i of n)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(e,this._featureMap,t,i,r)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(let t in this.programConfigurations)this.programConfigurations[t].upload(e);this.needsUpload=!1}}destroy(){for(let e in this.programConfigurations)this.programConfigurations[e].destroy()}};function Fd(e,t){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-dasharray":[`dasharray_to`,`dasharray_from`],"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`]}[e]||[e.replace(`${t}-`,``).replace(/-/g,`_`)]}function Id(e){return{"line-pattern":{source:Ku,composite:Ku},"fill-pattern":{source:Ku,composite:Ku},"fill-extrusion-pattern":{source:Ku,composite:Ku},"line-dasharray":{source:qu,composite:qu}}[e]}function Ld(e,t,n){let r={color:{source:su,composite:Tu},number:{source:bu,composite:su}};return Id(e)?.[n]||r[t][n]}K(`ConstantBinder`,Ed),K(`CrossFadedConstantBinder`,Dd),K(`SourceExpressionBinder`,Od),K(`CrossFadedPatternBinder`,jd),K(`CrossFadedDasharrayBinder`,Md),K(`CompositeExpressionBinder`,kd),K(`ProgramConfiguration`,Nd,{omit:[`_buffers`]}),K(`ProgramConfigurationSet`,Pd);var Rd=2**14-1,zd=-Rd-1;function Bd(e){let t=M/e.extent,n=e.loadGeometry();for(let e of n)for(let n of e){let e=Math.round(n.x*t),r=Math.round(n.y*t);n.x=N(e,zd,Rd),n.y=N(r,zd,Rd),(e<n.x||e>n.x+1||r<n.y||r>n.y+1)&&Yt(`Geometry exceeds allowed extent, reduce your vector tile buffer size`)}return n}function Vd(e,t){return{type:e.type,id:e.id,properties:e.properties,geometry:t?Bd(e):[]}}var Hd=-32768;function Ud(e,t,n,r,i){e.emplaceBack(Hd+t*8+r,Hd+n*8+i)}var Wd=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=!1,this.layoutVertexArray=new Vu,this.indexArray=new td,this.segments=new od,this.programConfigurations=new Pd(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id)}populate(e,t,n){let r=this.layers[0],i=[],a=null,o=!1,s=r.type===`heatmap`;if(r.type===`circle`){let e=r;a=e.layout.get(`circle-sort-key`),o=!a.isConstant(),s||=e.paint.get(`circle-pitch-alignment`)===`map`}let c=s?t.subdivisionGranularity.circle:1,l=new Dl(this.zoom),u=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:r,index:s,sourceLayerIndex:c}of e){let e=Vd(t,u);if(!this.layers[0]._featureFilter.filter(l,e,n))continue;let d=o?a.evaluate(e,{},n):void 0,f={id:r,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:u?e.geometry:Bd(t),patterns:{},sortKey:d};i.push(f)}o&&i.sort((e,t)=>e.sortKey-t.sortKey);for(let r of i){let{geometry:i,index:a,sourceLayerIndex:o}=r,s=e[a].feature;this.addFeature(r,i,a,n,c),t.featureIndex.insert(s,i,a,o,this.index)}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n})}addFeatures(e){}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,ad),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,t,n,r,i=1){let a;switch(i){case 1:a=[0,7];break;case 3:a=[0,2,5,7];break;case 5:a=[0,1,3,4,6,7];break;case 7:a=[0,1,2,3,4,5,6,7];break;default:throw Error(`Invalid circle bucket granularity: ${i}; valid values are 1, 3, 5, 7.`)}let o=a.length;for(let n of t)for(let t of n){let n=t.x,r=t.y;if(n<0||n>=8192||r<0||r>=8192)continue;let i=this.segments.prepareSegment(o*o,this.layoutVertexArray,this.indexArray,e.sortKey),s=i.vertexLength;for(let e=0;e<o;e++)for(let t=0;t<o;t++)Ud(this.layoutVertexArray,n,r,a[t],a[e]);for(let e=0;e<o-1;e++)for(let t=0;t<o-1;t++){let n=s+e*o+t,r=s+(e+1)*o+t;this.indexArray.emplaceBack(n,r+1,n+1),this.indexArray.emplaceBack(n,r,r+1)}i.vertexLength+=o*o,i.primitiveLength+=(o-1)*(o-1)*2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:{},canonical:r})}};K(`CircleBucket`,Wd,{omit:[`layers`]});function Gd(e,t){for(let n of e)if(tf(t,n))return!0;for(let n of t)if(tf(e,n))return!0;return Xd(e,t)}function Kd(e,t,n){return tf(e,t)?!0:Qd(t,e,n)}function qd(e,t){if(e.length===1)return ef(t,e[0]);for(let n of t)for(let t of n)if(tf(e,t))return!0;for(let n of e)if(ef(t,n))return!0;for(let n of t)if(Xd(e,n))return!0;return!1}function Jd(e,t,n){for(let r of t){if(e.length>=3){for(let t of r)if(tf(e,t))return!0}if(Yd(e,r,n))return!0}return!1}function Yd(e,t,n){if(e.length>1){if(Xd(e,t))return!0;for(let r of t)if(Qd(r,e,n))return!0}for(let r of e)if(Qd(r,t,n))return!0;return!1}function Xd(e,t){if(e.length===0||t.length===0)return!1;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1];for(let e=0;e<t.length-1;e++){let n=t[e],a=t[e+1];if(Zd(r,i,n,a))return!0}}return!1}function Zd(e,t,n,r){return Xt(e,n,r)!==Xt(t,n,r)&&Xt(e,t,n)!==Xt(e,t,r)}function Qd(e,t,n){let r=n*n;if(t.length===1)return e.distSqr(t[0])<r;for(let n=1;n<t.length;n++){let i=t[n-1],a=t[n];if($d(e,i,a)<r)return!0}return!1}function $d(e,t,n){let r=t.distSqr(n);if(r===0)return e.distSqr(t);let i=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/r;return i<0?e.distSqr(t):i>1?e.distSqr(n):e.distSqr(n.sub(t)._mult(i)._add(t))}function ef(e,t){let n=!1,r,i,a;for(let o of e){r=o;for(let e=0,o=r.length-1;e<r.length;o=e++)i=r[e],a=r[o],i.y>t.y!=a.y>t.y&&t.x<(a.x-i.x)*(t.y-i.y)/(a.y-i.y)+i.x&&(n=!n)}return n}function tf(e,t){let n=!1;for(let r=0,i=e.length-1;r<e.length;i=r++){let a=e[r],o=e[i];a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n)}return n}function nf(e,t,n,r,i){for(let a of e)if(t<=a.x&&n<=a.y&&r>=a.x&&i>=a.y)return!0;let a=[new b(t,n),new b(t,i),new b(r,i),new b(r,n)];if(e.length>2){for(let t of a)if(tf(e,t))return!0}for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(rf(n,r,a))return!0}return!1}function rf(e,t,n){let r=n[0],i=n[2];if(e.x<r.x&&t.x<r.x||e.x>i.x&&t.x>i.x||e.y<r.y&&t.y<r.y||e.y>i.y&&t.y>i.y)return!1;let a=Xt(e,t,n[0]);return a!==Xt(e,t,n[1])||a!==Xt(e,t,n[2])||a!==Xt(e,t,n[3])}function af(e,t,n){let r=t.paint.get(e).value;return r.kind===`constant`?r.value:n.programConfigurations.get(t.id).getMaxValue(e)}function of(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function sf(e,t,n,r,i){if(!t[0]&&!t[1])return e;let a=b.convert(t)._mult(i);n===`viewport`&&a._rotate(-r);let o=[];for(let t of e)o.push(t.sub(a));return o}function cf(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n],i=t.at(-1);(n===0||i&&!r.equals(i))&&t.push(r)}return t}function lf(e,t){let n=[];for(let r of e){let e=cf(r),i=[];for(let n=0;n<e.length;n++){let r=e[n],a=e[n-1],o=e[n+1],s=n===0?new b(0,0):r.sub(a)._unit()._perp(),c=n===e.length-1?new b(0,0):o.sub(r)._unit()._perp(),l=s._add(c)._unit(),u=l.x*c.x+l.y*c.y;u!==0&&l._mult(1/u),i.push(l._mult(t)._add(r))}n.push(i)}return n}function uf({queryGeometry:e,size:t},n){return Kd(e,n,t)}function df({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i},a){return Kd(e,a,t*(n.projectTileCoordinates(a.x,a.y,r,i?.(a.x,a.y)).signedDistanceFromCamera/n.cameraToCenterDistance))}function ff({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i},a){let o=n.projectTileCoordinates(a.x,a.y,r,i?.(a.x,a.y)).signedDistanceFromCamera,s=t*(n.cameraToCenterDistance/o);return Kd(e,hf(a,n,r,i),s)}function pf({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i},a){return Kd(e,hf(a,n,r,i),t)}function mf({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i,pitchAlignment:a=`map`,pitchScale:o=`map`},s){let c=a===`map`?o===`map`?uf:df:o===`map`?ff:pf,l={queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i};for(let e of s)for(let t of e)if(c(l,t))return!0;return!1}function hf(e,t,n,r){let i=t.projectTileCoordinates(e.x,e.y,n,r?.(e.x,e.y)).point;return new b((i.x*.5+.5)*t.width,(-i.y*.5+.5)*t.height)}function gf(e,t,n,r){return e.map(e=>hf(e,t,n,r))}var _f,vf=()=>_f||=new Vl({"circle-sort-key":new J(z.layout_circle[`circle-sort-key`],`circle-sort-key`)}),yf,bf=()=>yf||=new Vl({"circle-radius":new J(z.paint_circle[`circle-radius`],`circle-radius`),"circle-color":new J(z.paint_circle[`circle-color`],`circle-color`),"circle-blur":new J(z.paint_circle[`circle-blur`],`circle-blur`),"circle-opacity":new J(z.paint_circle[`circle-opacity`],`circle-opacity`),"circle-translate":new q(z.paint_circle[`circle-translate`],`circle-translate`),"circle-translate-anchor":new q(z.paint_circle[`circle-translate-anchor`],`circle-translate-anchor`),"circle-pitch-scale":new q(z.paint_circle[`circle-pitch-scale`],`circle-pitch-scale`),"circle-pitch-alignment":new q(z.paint_circle[`circle-pitch-alignment`],`circle-pitch-alignment`),"circle-stroke-width":new J(z.paint_circle[`circle-stroke-width`],`circle-stroke-width`),"circle-stroke-color":new J(z.paint_circle[`circle-stroke-color`],`circle-stroke-color`),"circle-stroke-opacity":new J(z.paint_circle[`circle-stroke-opacity`],`circle-stroke-opacity`)}),xf={get paint(){return bf()},get layout(){return vf()}},Sf=e=>e.type===`circle`,Cf=class extends Wl{constructor(e,t){super(e,xf,t)}createBucket(e){return new Wd(e)}queryRadius(e){let t=e;return af(`circle-radius`,this,t)+af(`circle-stroke-width`,this,t)+of(this.paint.get(`circle-translate`))}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a,unwrappedTileID:o,getElevation:s}){let c=sf(e,this.paint.get(`circle-translate`),this.paint.get(`circle-translate-anchor`),-i.bearingInRadians,a),l=this.paint.get(`circle-radius`).evaluate(t,n)+this.paint.get(`circle-stroke-width`).evaluate(t,n),u=this.paint.get(`circle-pitch-scale`),d=this.paint.get(`circle-pitch-alignment`),f,p;return d===`map`?(f=c,p=l*a):(f=gf(c,i,o,s),p=l),mf({queryGeometry:f,size:p,transform:i,unwrappedTileID:o,getElevation:s,pitchAlignment:d,pitchScale:u},r)}},wf=class extends Wd{};K(`HeatmapBucket`,wf,{omit:[`layers`]});var Tf,Ef=()=>Tf||=new Vl({"heatmap-radius":new J(z.paint_heatmap[`heatmap-radius`],`heatmap-radius`),"heatmap-weight":new J(z.paint_heatmap[`heatmap-weight`],`heatmap-weight`),"heatmap-intensity":new q(z.paint_heatmap[`heatmap-intensity`],`heatmap-intensity`),"heatmap-color":new Bl(z.paint_heatmap[`heatmap-color`],`heatmap-color`),"heatmap-opacity":new q(z.paint_heatmap[`heatmap-opacity`],`heatmap-opacity`)}),Df={get paint(){return Ef()}};function Of(e,{width:t,height:n},r,i){if(!i)i=new Uint8Array(t*n*r);else if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==t*n*r)throw RangeError(`mismatched image size. expected: ${i.length} but got: ${t*n*r}`);return e.width=t,e.height=n,e.data=i,e}function kf(e,{width:t,height:n},r){if(t===e.width&&n===e.height)return;let i=Of({},{width:t,height:n},r);Af(e,i,{x:0,y:0},{x:0,y:0},{width:Math.min(e.width,t),height:Math.min(e.height,n)},r),e.width=t,e.height=n,e.data=i.data}function Af(e,t,n,r,i,a){if(i.width===0||i.height===0)return t;if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw RangeError(`out of range source coordinates for image copy`);if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw RangeError(`out of range destination coordinates for image copy`);let o=e.data,s=t.data;if(o===s)throw Error(`srcData equals dstData, so image is already copied`);for(let c=0;c<i.height;c++){let l=((n.y+c)*e.width+n.x)*a,u=((r.y+c)*t.width+r.x)*a;for(let e=0;e<i.width*a;e++)s[u+e]=o[l+e]}return t}var jf=class e{constructor(e,t){Of(this,e,1,t)}resize(e){kf(this,e,1)}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Af(e,t,n,r,i,1)}},Mf=class e{constructor(e,t){Of(this,e,4,t)}resize(e){kf(this,e,4)}replace(e,t){t?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Af(e,t,n,r,i,4)}setPixel(e,t,n){let r=(e*this.width+t)*4;this.data[r+0]=Math.round(n.r*255/n.a),this.data[r+1]=Math.round(n.g*255/n.a),this.data[r+2]=Math.round(n.b*255/n.a),this.data[r+3]=Math.round(n.a*255)}};function Nf(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n+=4){let r=e[n+3];t[n+0]=Math.round(e[n+0]*r/255),t[n+1]=Math.round(e[n+1]*r/255),t[n+2]=Math.round(e[n+2]*r/255),t[n+3]=r}return t}K(`AlphaImage`,jf),K(`RGBAImage`,Mf);function Pf(e){let t={},n=e.resolution||256,r=e.clips?e.clips.length:1,i=e.image||new Mf({width:n,height:r});if(!zt(n))throw Error(`width is not a power of 2 - ${n}`);let a=(r,a,o)=>{t[e.evaluationKey]=o;let s=e.expression.evaluate(t);i.setPixel(r/4/n,a/4,s)};if(e.clips)for(let t=0,i=0;t<r;++t,i+=n*4)for(let r=0,o=0;r<n;r++,o+=4){let s=r/(n-1),{start:c,end:l}=e.clips[t],u=c*(1-s)+l*s;a(i,o,u)}else for(let e=0,t=0;e<n;e++,t+=4){let r=e/(n-1);a(0,t,r)}return i}var Ff=`big-fb`,If=e=>e.type===`heatmap`,Lf=class extends Wl{createBucket(e){return new wf(e)}constructor(e,t){super(e,Df,t),this.heatmapFbos=new Map,this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(e){e===`heatmap-color`&&this._updateColorRamp()}_updateColorRamp(){let e=this._transitionablePaint._values[`heatmap-color`].value.expression;this.colorRamp=Pf({expression:e,evaluationKey:`heatmapDensity`,image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbos.has(`big-fb`)&&this.heatmapFbos.delete(Ff)}queryRadius(e){return af(`heatmap-radius`,this,e)}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a,unwrappedTileID:o,getElevation:s}){return mf({queryGeometry:e,size:this.paint.get(`heatmap-radius`).evaluate(t,n)*a,transform:i,unwrappedTileID:o,getElevation:s},r)}hasOffscreenPass(){return this.paint.get(`heatmap-opacity`)!==0&&!this.isHidden()}},Rf,zf=()=>Rf||=new Vl({"hillshade-illumination-direction":new q(z.paint_hillshade[`hillshade-illumination-direction`],`hillshade-illumination-direction`),"hillshade-illumination-altitude":new q(z.paint_hillshade[`hillshade-illumination-altitude`],`hillshade-illumination-altitude`),"hillshade-illumination-anchor":new q(z.paint_hillshade[`hillshade-illumination-anchor`],`hillshade-illumination-anchor`),"hillshade-exaggeration":new q(z.paint_hillshade[`hillshade-exaggeration`],`hillshade-exaggeration`),"hillshade-shadow-color":new q(z.paint_hillshade[`hillshade-shadow-color`],`hillshade-shadow-color`),"hillshade-highlight-color":new q(z.paint_hillshade[`hillshade-highlight-color`],`hillshade-highlight-color`),"hillshade-accent-color":new q(z.paint_hillshade[`hillshade-accent-color`],`hillshade-accent-color`),"hillshade-method":new q(z.paint_hillshade[`hillshade-method`],`hillshade-method`),resampling:new q(z.paint_hillshade.resampling,`resampling`)}),Bf={get paint(){return zf()}},Vf=e=>e.type===`hillshade`,Hf=class extends Wl{constructor(e,t){super(e,Bf,t),this.recalculate({zoom:0,zoomHistory:{}},void 0)}getIlluminationProperties(){let e=this.paint.get(`hillshade-illumination-direction`).values,t=this.paint.get(`hillshade-illumination-altitude`).values,n=this.paint.get(`hillshade-highlight-color`).values,r=this.paint.get(`hillshade-shadow-color`).values,i=Math.max(e.length,t.length,n.length,r.length);e=e.concat(Array(i-e.length).fill(e.at(-1))),t=t.concat(Array(i-t.length).fill(t.at(-1))),n=n.concat(Array(i-n.length).fill(n.at(-1))),r=r.concat(Array(i-r.length).fill(r.at(-1)));let a=t.map(un);return{directionRadians:e.map(un),altitudeRadians:a,shadowColor:r,highlightColor:n}}hasOffscreenPass(){return this.paint.get(`hillshade-exaggeration`)!==0&&!this.isHidden()}},Uf,Wf=()=>Uf||=new Vl({"color-relief-opacity":new q(z[`paint_color-relief`][`color-relief-opacity`],`color-relief-opacity`),"color-relief-color":new Bl(z[`paint_color-relief`][`color-relief-color`],`color-relief-color`),resampling:new q(z[`paint_color-relief`].resampling,`resampling`)}),Gf={get paint(){return Wf()}};function Kf(e){return`data`in e}var qf=class{constructor(e,t,n,r){this.context=e,this.format=n,this.texture=e.gl.createTexture(),this._ownedHandle=this.texture,this.update(t,r)}update(e,t,n){let{width:r,height:i}=e,a=(this.size?.[0]!==r||this.size[1]!==i)&&!n,{context:o}=this,{gl:s}=o;this.useMipmap=!!t?.useMipmap,a&&this.size&&this.format===s.RGBA&&(s.deleteTexture(this.texture),this.texture=s.createTexture(),this._ownedHandle=this.texture,this.magFilter=void 0,this.minFilter=void 0,this.wrap=void 0),s.bindTexture(s.TEXTURE_2D,this.texture),o.pixelStoreUnpackFlipY.set(!1),o.pixelStoreUnpack.set(1);let c=this.format===s.RGBA&&t?.premultiply!==!1;if(a){if(this.size=[r,i],this.format===s.RGBA&&r>0&&i>0){let t=this.useMipmap?Math.floor(Math.log2(Math.max(r,i)))+1:1;if(s.texStorage2D(s.TEXTURE_2D,t,s.RGBA8,r,i),Kf(e)){o.pixelStoreUnpackPremultiplyAlpha.set(!1);let{data:t}=e;c&&t&&(t=Nf(t)),t&&s.texSubImage2D(s.TEXTURE_2D,0,0,0,r,i,s.RGBA,s.UNSIGNED_BYTE,t)}else o.pixelStoreUnpackPremultiplyAlpha.set(c),s.texSubImage2D(s.TEXTURE_2D,0,0,0,s.RGBA,s.UNSIGNED_BYTE,e)}else Kf(e)?(o.pixelStoreUnpackPremultiplyAlpha.set(!1),this._uploadRawData(e,c,r,i,s)):(o.pixelStoreUnpackPremultiplyAlpha.set(c),this._uploadDomImage(e,s))}else{let{x:t,y:a}=n||{x:0,y:0};Kf(e)?(o.pixelStoreUnpackPremultiplyAlpha.set(!1),this._updateRawData(e,c,t,a,r,i,s)):(o.pixelStoreUnpackPremultiplyAlpha.set(c),this._updateDomImage(e,t,a,s))}this.useMipmap&&!(Kf(e)&&e.data===null)&&s.generateMipmap(s.TEXTURE_2D),o.pixelStoreUnpackFlipY.setDefault(),o.pixelStoreUnpack.setDefault(),o.pixelStoreUnpackPremultiplyAlpha.setDefault()}_uploadDomImage(e,t){t.texImage2D(t.TEXTURE_2D,0,this.format,this.format,t.UNSIGNED_BYTE,e)}_uploadRawData(e,t,n,r,i){let{data:a}=e;t&&a&&(a=Nf(a)),i.texImage2D(i.TEXTURE_2D,0,this.format,n,r,0,this.format,i.UNSIGNED_BYTE,a)}_updateDomImage(e,t,n,r){r.texSubImage2D(r.TEXTURE_2D,0,t,n,r.RGBA,r.UNSIGNED_BYTE,e)}_updateRawData(e,t,n,r,i,a,o){let{data:s}=e;t&&s&&(s=Nf(s)),o.texSubImage2D(o.TEXTURE_2D,0,n,r,i,a,o.RGBA,o.UNSIGNED_BYTE,s)}bind(e,t,n){let{context:r}=this,{gl:i}=r;this.texture!==this._ownedHandle&&(this.texture=this._ownedHandle),i.bindTexture(i.TEXTURE_2D,this.texture),(n===i.LINEAR_MIPMAP_NEAREST||n===i.LINEAR_MIPMAP_LINEAR)&&!this.useMipmap&&(n=i.LINEAR);let a=n||e;e!==this.magFilter&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,e),this.magFilter=e),a!==this.minFilter&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,a),this.minFilter=a),t!==this.wrap&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,t),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,t),this.wrap=t)}generateMipmap(){if(!this.useMipmap)return;let{gl:e}=this.context;e.bindTexture(e.TEXTURE_2D,this.texture),e.generateMipmap(e.TEXTURE_2D)}destroy(){let{gl:e}=this.context;e.deleteTexture(this.texture),this.texture=null,this._ownedHandle=null}},Jf=class e{static{this.byteViewCache=new WeakMap}constructor(t,n,r,i=1,a=1,o=1,s=0){if(this.uid=t,n.height!==n.width)throw RangeError(`DEM tiles must be square`);if(r&&![`mapbox`,`terrarium`,`custom`].includes(r)){Yt(`"${r}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);return}this.stride=n.height;let c=this.dim=n.height-4;switch(this.data=new Uint32Array(n.data.buffer),e.byteViewCache.set(this,new Uint8Array(this.data.buffer)),r){case`terrarium`:this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case`custom`:this.redFactor=i,this.greenFactor=a,this.blueFactor=o,this.baseShift=s;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4}for(let e=-2;e<c+2;e++){let t=this._idx(0,Math.max(0,Math.min(c-1,e)));(e<0||e>=c)&&this.data.copyWithin(this._idx(0,e),t,t+c),this.data.fill(this.data[t],this._idx(-2,e),this._idx(0,e)),this.data.fill(this.data[t+c-1],this._idx(c,e),this._idx(c+1,e)+1)}let l=this._getByteView();this.min=2**53-1,this.max=-(2**53-1);for(let e=0;e<c;e++)for(let t=0;t<c;t++){let n=this._idx(e,t)*4,r=this._unpackAtIndex(l,n);r>this.max&&(this.max=r),r<this.min&&(this.min=r)}}get(e,t){let n=this._getByteView(),r=this._idx(e,t)*4;return this._unpackAtIndex(n,r)}sampleBilinear(e,t){let n=Math.floor(e),r=Math.floor(t);if(n<-1||n>=this.dim||r<-1||r>=this.dim)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);let i=this._getByteView(),a=((r+2)*this.stride+n+2)*4,o=this.stride*4,s=e-n,c=t-r,l=this._unpackAtIndex(i,a),u=this._unpackAtIndex(i,a+4),d=this._unpackAtIndex(i,a+o),f=this._unpackAtIndex(i,a+o+4);return l*(1-s)*(1-c)+u*s*(1-c)+d*(1-s)*c+f*s*c}getUnpackVector(){return[this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(e,t){if(e<-2||e>=this.dim+2||t<-2||t>=this.dim+2)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);return(t+2)*this.stride+(e+2)}unpack(e,t,n){return e*this.redFactor+t*this.greenFactor+n*this.blueFactor-this.baseShift}pack(e){return Yf(e,this.getUnpackVector())}getPixels(){return new Mf({width:this.stride,height:this.stride},this._getByteView())}backfillBorder(e,t,n){if(this.dim!==e.dim)throw Error(`dem dimension mismatch`);let r=t*this.dim,i=t*this.dim+this.dim,a=n*this.dim,o=n*this.dim+this.dim;switch(t){case-1:r=i-2;break;case 1:i=r+2}switch(n){case-1:a=o-2;break;case 1:o=a+2}let s=-t*this.dim,c=-n*this.dim;for(let t=a;t<o;t++)for(let n=r;n<i;n++)this.data[this._idx(n,t)]=e.data[this._idx(n+s,t+c)]}_getByteView(){let t=e.byteViewCache.get(this);return t?.buffer!==this.data.buffer&&(t=new Uint8Array(this.data.buffer),e.byteViewCache.set(this,t)),t}_unpackAtIndex(e,t){return this.unpack(e[t],e[t+1],e[t+2])}};function Yf(e,t){let n=t[0],r=t[1],i=t[2],a=t[3],o=[n,r,i].filter(e=>e!==0);if(o.length===0)return{r:0,g:0,b:0};let s=Math.min(...o),c=Math.round((e+a)/s),l=e=>e===0?0:Math.floor(c*s/e)%256;return{r:l(n),g:l(r),b:l(i)}}K(`DEMData`,Jf);var Xf=e=>e.type===`color-relief`,Zf=class extends Wl{constructor(e,t){super(e,Gf,t)}_createColorRamp(e){let t={elevationStops:[],colorStops:[]},n=this._transitionablePaint._values[`color-relief-color`].value.expression;if(n instanceof Fs&&n._styleExpression.expression instanceof $i){this.colorRampExpression=n;let e=n._styleExpression.expression;t.elevationStops=e.labels,t.colorStops=[];for(let n of t.elevationStops)t.colorStops.push(e.evaluate({globals:{elevation:n}}))}if(t.elevationStops.length<1&&(t.elevationStops=[0],t.colorStops=[W.transparent]),t.elevationStops.length<2&&(t.elevationStops.push(t.elevationStops[0]+1),t.colorStops.push(t.colorStops[0])),t.elevationStops.length<=e)return t;let r={elevationStops:[],colorStops:[]},i=(t.elevationStops.length-1)/(e-1);for(let e=0;e<t.elevationStops.length-.5;e+=i)r.elevationStops.push(t.elevationStops[Math.round(e)]),r.colorStops.push(t.colorStops[Math.round(e)]);return Yt(`Too many colors in specification of ${this.id} color-relief layer, may not render properly. Max possible colors: ${e}, provided: ${t.elevationStops.length}`),r}_colorRampChanged(){return this.colorRampExpression!=this._transitionablePaint._values[`color-relief-color`].value.expression}getColorRampTextures(e,t,n){if(this.colorRampTextures&&!this._colorRampChanged())return this.colorRampTextures;let r=this._createColorRamp(t),i=new Mf({width:r.colorStops.length,height:1}),a=new Mf({width:r.colorStops.length,height:1});for(let e=0;e<r.elevationStops.length;e++){let t=Yf(r.elevationStops[e],n);a.setPixel(0,e,new W(t.r/255,t.g/255,t.b/255,1)),i.setPixel(0,e,r.colorStops[e])}return this.colorRampTextures={elevationTexture:new qf(e,a,e.gl.RGBA),colorTexture:new qf(e,i,e.gl.RGBA)},this.colorRampTextures}hasOffscreenPass(){return!this.isHidden()&&!!this.colorRampTextures}},Qf=$l([{name:`a_pos`,components:2,type:`Int16`}],4),$f=Qf.members;Qf.size,Qf.alignment;function ep(e,t,n){let r=n.patternDependencies,i=!1;for(let n of t){let t=n.paint.get(`${e}-pattern`);t.isConstant()||(i=!0);let a=t.constantOr(null);a&&(i=!0,r[a.to]=!0,r[a.from]=!0)}return i}function tp(e,t,n,r,i){let{zoom:a}=r,o=i.patternDependencies;for(let r of t){let t=r.paint.get(`${e}-pattern`).value;if(t.kind!==`constant`){let e=t.evaluate({zoom:a-1},n,{},i.availableImages),s=t.evaluate({zoom:a},n,{},i.availableImages),c=t.evaluate({zoom:a+1},n,{},i.availableImages);e=e?.name?e.name:e,s=s?.name?s.name:s,c=c?.name?c.name:c,o[e]=!0,o[s]=!0,o[c]=!0,n.patterns[r.id]={min:e,mid:s,max:c}}}return n}var np=new Set,rp=!1;function ip(e,t,n=2){let r=t&&t.length,i=r?t[0]*n:e.length;np.size&&np.clear();let a=ap(e,0,i,n,!0),o=[];if(!a||a.next===a.prev)return o;let s=0,c=0,l=0;if(r&&(a=pp(e,t,a,n)),e.length>80*n){s=e[0],c=e[1];let t=s,r=c;for(let a=n;a<i;a+=n){let n=e[a],i=e[a+1];n<s&&(s=n),i<c&&(c=i),n>t&&(t=n),i>r&&(r=i)}l=Math.max(t-s,r-c),l=l===0?0:32767/l}return sp(a,o,s,c,l),o}function ap(e,t,n,r,i){let a=null;if(i===Xp(e,t,n,r)>0)for(let i=t;i<n;i+=r)a=qp(i/r|0,e[i],e[i+1],a);else for(let i=n-r;i>=t;i-=r)a=qp(i/r|0,e[i],e[i+1],a);return a&&Bp(a,a.next)&&(Jp(a),a=a.next),a}function op(e,t=e){let n=t===e,r=e,i;do i=!1,r!==r.next&&(np.size===0||!np.has(r))&&(Bp(r,r.next)||zp(r.prev,r,r.next)===0)?((n||r===t)&&(t=r.prev),rp=!0,Jp(r),r=r.prev,i=!0):(n||r!==t)&&(r=r.next,i=!n);while(i||r!==t);return t}function sp(e,t,n,r,i){i&&Mp(e,n,r,i);let a=e,o=!1;for(;e.prev!==e.next;){let s=e.prev,c=e.next;if(zp(s,e,c)<0&&(i?lp(e,n,r,i):cp(e))){t.push(s.i,e.i,c.i),Jp(e),e=c,a=c;continue}if(e=c,e===a){if(rp=!1,e=op(e),rp){a=e;continue}if(!o){e=up(e,t),a=e,o=!0;continue}dp(e,t,n,r,i);break}}}function cp(e){let t=e.prev,n=e,r=e.next,i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=Math.min(i,a,o),d=Math.min(s,c,l),f=Math.max(i,a,o),p=Math.max(s,c,l),m=r.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&(i!==m.x||s!==m.y)&&Lp(i,s,a,c,o,l,m.x,m.y)&&zp(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function lp(e,t,n,r){let i=e.prev,a=e,o=e.next,s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=Math.min(s,c,l),m=Math.min(u,d,f),h=Math.max(s,c,l),g=Math.max(u,d,f),_=Fp(p,m,t,n,r),v=Fp(h,g,t,n,r),y=e.prevZ;for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==o&&(s!==y.x||u!==y.y)&&Lp(s,u,c,d,l,f,y.x,y.y)&&zp(y.prev,y,y.next)>=0)return!1;y=y.prevZ}let b=e.nextZ;for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==o&&(s!==b.x||u!==b.y)&&Lp(s,u,c,d,l,f,b.x,b.y)&&zp(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function up(e,t){let n=e,r=!1;do{let i=n.prev,a=n.next.next;Vp(i,n,n.next,a,!1)&&Wp(i,a)&&Wp(a,i)&&(t.push(i.i,n.i,a.i),Jp(n),Jp(n.next),n=e=a,r=!0),n=n.next}while(n!==e);return r?op(n):n}function dp(e,t,n,r,i){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Rp(a,e)){let o=Kp(a,e);a=op(a,a.next),o=op(o,o.next),sp(a,t,n,r,i),sp(o,t,n,r,i);return}e=e.next}a=a.next}while(a!==e)}var fp=!1;function pp(e,t,n,r){let i=[];for(let n=0,a=t.length;n<a;n++){let o=ap(e,t[n]*r,n<a-1?t[n+1]*r:e.length,r,!1);o===o.next&&np.add(o),i.push(Ip(o))}i.sort(mp),bp(e.length/r,t.length),xp(n,n),fp=!0;for(let e=0;e<i.length;e++)n=hp(i[e],n);return fp=!1,op(n)}function mp(e,t){return e.x-t.x||e.y-t.y||(e.next.y-e.y)/(e.next.x-e.x)-(t.next.y-t.y)/(t.next.x-t.x)}function hp(e,t){let n=Tp(e,t);if(!n)return t;let r=Kp(n,e),i=r.next;return xp(n,i.next),op(r,r.next),op(n,n.next)}var gp=new Float64Array,_p=0,vp=[],yp=[];function bp(e,t){let n=Math.ceil((e+2*t)/16)+t+2;gp.length<n*4&&(gp=new Float64Array(n*4)),_p=0}function xp(e,t){let n=e;do{let e=_p++;vp[e]=n;let r=n.x,i=n.y,a=n.x,o=n.y,s=0;do{let t=n.next;n.z=e,t.x<r&&(r=t.x),t.x>a&&(a=t.x),t.y<i&&(i=t.y),t.y>o&&(o=t.y),n=t}while(++s<16&&n!==t);yp[e]=n;let c=e*4;gp[c]=r,gp[c+1]=i,gp[c+2]=a,gp[c+3]=o}while(n!==t)}function Sp(e,t){let n=e.z*4;t.x<gp[n]&&(gp[n]=t.x),t.y<gp[n+1]&&(gp[n+1]=t.y),t.x>gp[n+2]&&(gp[n+2]=t.x),t.y>gp[n+3]&&(gp[n+3]=t.y)}function Cp(e){let t=yp[e];for(;t.prev.next!==t;)t=t.next;return yp[e]=t,t}function wp(e){let t=vp[e];for(;t.prev.next!==t;)t=t.next;return vp[e]=t,t}function Tp(e,t){let n=t,r=e.x,i=e.y,a=-1/0,o;if(Bp(e,n))return n;for(let t=0,s=0;t<_p;t++,s+=4){if(i<gp[s+1]||i>gp[s+3]||gp[s]>r||gp[s+2]<=a)continue;let c=Cp(t);n=wp(t);do{if(n.prev.next===n){if(Bp(e,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a&&(a=e,o=n.x<n.next.x?n:n.next,e===r))return o}}n=n.next}while(n!==c)}if(!o)return null;let s=o.x,c=o.y,l=Math.min(i,c),u=Math.max(i,c),d=1/0;for(let t=0,f=0;t<_p;t++,f+=4){if(gp[f+2]<s||gp[f]>r||gp[f+3]<l||gp[f+1]>u)continue;let p=Cp(t);n=wp(t);do{if(n.prev.next===n&&r>=n.x&&n.x>=s&&r!==n.x&&Lp(i<c?r:a,i,s,c,i<c?a:r,i,n.x,n.y)){let t=Math.abs(i-n.y)/(r-n.x);(Wp(n,e)||n.y===i&&n.next.y===i&&n.next.x>r)&&(t<d||t===d&&(n.x>o.x||n.x===o.x&&Ep(o,n)))&&(o=n,d=t)}n=n.next}while(n!==p)}return o}function Ep(e,t){return zp(e.prev,e,t.prev)<0&&zp(t.next,e,e.next)<0}var Dp=[],Op=[],kp=new Uint32Array,Ap=new Uint32Array,jp=new Uint32Array(256);function Mp(e,t,n,r){let i=e,a=0;do i.z=Fp(i.x,i.y,t,n,r),Dp[a++]=i,i=i.next;while(i!==e);Np(a);let o=null;for(let e=0;e<a;e++){let t=Dp[e];t.prevZ=o,o&&(o.nextZ=t),o=t}o.nextZ=null,Dp.fill(null,0,a),Op.fill(null,0,a)}function Np(e){if(e<=32){for(let t=1;t<e;t++){let e=Dp[t],n=e.z,r=t-1;for(;r>=0&&Dp[r].z>n;)Dp[r+1]=Dp[r],r--;Dp[r+1]=e}return}kp.length<e&&(kp=new Uint32Array(e),Ap=new Uint32Array(e),Op=Array(e));for(let t=0;t<e;t++)kp[t]=Dp[t].z;Pp(e,Dp,kp,Op,Ap,0),Pp(e,Op,Ap,Dp,kp,8),Pp(e,Dp,kp,Op,Ap,16),Pp(e,Op,Ap,Dp,kp,24)}function Pp(e,t,n,r,i,a){jp.fill(0);for(let t=0;t<e;t++)jp[n[t]>>>a&255]++;let o=0;for(let e=0;e<256;e++){let t=jp[e];jp[e]=o,o+=t}for(let o=0;o<e;o++){let e=n[o],s=jp[e>>>a&255]++;r[s]=t[o],i[s]=e}}function Fp(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Ip(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function Lp(e,t,n,r,i,a,o,s){return(i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function Rp(e,t){let n=Bp(e,t)&&zp(e.prev,e,e.next)>0&&zp(t.prev,t,t.next)>0;return e.next.i!==t.i&&(n||Wp(e,t)&&Wp(t,e)&&(zp(e.prev,e,t.prev)!==0||zp(e,t.prev,t)!==0))&&!Up(e,t)&&(n||Gp(e,t))}function zp(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function Bp(e,t){return e.x===t.x&&e.y===t.y}function Vp(e,t,n,r,i=!0){let a=zp(e,t,n),o=zp(e,t,r),s=zp(n,r,e),c=zp(n,r,t);return(a>0&&o<0||a<0&&o>0)&&(s>0&&c<0||s<0&&c>0)?!0:i?!!(a===0&&Hp(e,n,t)||o===0&&Hp(e,r,t)||s===0&&Hp(n,e,r)||c===0&&Hp(n,t,r)):!1}function Hp(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Up(e,t){let n=Math.min(e.x,t.x),r=Math.max(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.y,t.y),o=e;do{let s=o.next;if(o.x>r&&s.x>r||o.x<n&&s.x<n||o.y>a&&s.y>a||o.y<i&&s.y<i){o=s;continue}if(o.i!==e.i&&s.i!==e.i&&o.i!==t.i&&s.i!==t.i&&Vp(o,s,e,t))return!0;o=s}while(o!==e);return!1}function Wp(e,t){return zp(e.prev,e,e.next)<0?zp(e,t,e.next)>=0&&zp(e,e.prev,t)>=0:zp(e,t,e.prev)<0||zp(e,e.next,t)<0}function Gp(e,t){let n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{let e=n.next;n.y>a!=e.y>a&&i<(e.x-n.x)*(a-n.y)/(e.y-n.y)+n.x&&(r=!r),n=e}while(n!==e);return r}function Kp(e,t){let n=Yp(e.i,e.x,e.y),r=Yp(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function qp(e,t,n,r){let i=Yp(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Jp(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ),fp&&Sp(e.prev,e.next)}function Yp(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function Xp(e,t,n,r){let i=0;for(let a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}var Zp=class{constructor(e,t){if(t>e)throw Error(`Min granularity must not be greater than base granularity.`);this._baseZoomGranularity=e,this._minGranularity=t}getGranularityForZoomLevel(e){let t=1<<e;return Math.max(Math.floor(this._baseZoomGranularity/t),this._minGranularity,1)}},Qp=class e{constructor(e){this.fill=e.fill,this.line=e.line,this.tile=e.tile,this.stencil=e.stencil,this.circle=e.circle}static{this.noSubdivision=new e({fill:new Zp(0,0),line:new Zp(0,0),tile:new Zp(0,0),stencil:new Zp(0,0),circle:1})}};K(`SubdivisionGranularityExpression`,Zp),K(`SubdivisionGranularitySetting`,Qp);var $p=-32768,em=32767,tm=class{constructor(e,t){this._vertexBuffer=[],this._vertexDictionary=new Map,this._used=!1,this._granularity=e,this._granularityCellSize=M/e,this._canonical=t}_getKey(e,t){return e+=32768,t+=32768,e<<16|t<<0}_vertexToIndex(e,t){if(e<-32768||t<-32768||e>32767||t>32767)throw Error(`Vertex coordinates are out of signed 16 bit integer range.`);let n=Math.round(e)|0,r=Math.round(t)|0,i=this._getKey(n,r),a=this._vertexDictionary.get(i);if(a!==void 0)return a;let o=this._vertexBuffer.length/2;return this._vertexDictionary.set(i,o),this._vertexBuffer.push(n,r),o}_subdivideTrianglesScanline(e,t){if(this._granularity<2)return sm(this._vertexBuffer,om(e,t));let n=[],r=e.length;for(let i=0;i<r;i+=3){let r=[t[e[i+0]],t[e[i+1]],t[e[i+2]]],a=[this._vertexBuffer[r[0]*2+0],this._vertexBuffer[r[0]*2+1],this._vertexBuffer[r[1]*2+0],this._vertexBuffer[r[1]*2+1],this._vertexBuffer[r[2]*2+0],this._vertexBuffer[r[2]*2+1]],o=1/0,s=1/0,c=-1/0,l=-1/0;for(let e=0;e<3;e++){let t=a[e*2],n=a[e*2+1];o=Math.min(o,t),c=Math.max(c,t),s=Math.min(s,n),l=Math.max(l,n)}if(o===c||s===l)continue;let u=Math.floor(o/this._granularityCellSize),d=Math.ceil(c/this._granularityCellSize),f=Math.floor(s/this._granularityCellSize),p=Math.ceil(l/this._granularityCellSize);if(u===d&&f===p){n.push(...r);continue}for(let e=f;e<p;e++){let t=this._scanlineGenerateVertexRingForCellRow(e,a,r);cm(this._vertexBuffer,t,n)}}return n}_scanlineGenerateVertexRingForCellRow(e,t,n){let r=e*this._granularityCellSize,i=r+this._granularityCellSize,a=[];for(let e=0;e<3;e++){let o=t[e*2],s=t[e*2+1],c=t[(e+1)*2%6],l=t[((e+1)*2+1)%6],u=t[(e+2)*2%6],d=t[((e+2)*2+1)%6],f=c-o,p=l-s,m=f===0,h=p===0,g=(r-s)/p,_=(i-s)/p,v=Math.min(g,_),y=Math.max(g,_);if(!h&&(v>=1||y<=0)||h&&(s<r||s>i)){l>=r&&l<=i&&a.push(n[(e+1)%3]);continue}if(!h&&v>0){let e=o+f*v,t=s+p*v;a.push(this._vertexToIndex(e,t))}let b=o+f*Math.max(v,0),x=o+f*Math.min(y,1);if(m||this._generateIntraEdgeVertices(a,o,s,c,l,b,x),!h&&y<1){let e=o+f*y,t=s+p*y;a.push(this._vertexToIndex(e,t))}(h||l>=r&&l<=i)&&a.push(n[(e+1)%3]),!h&&(l<=r||l>=i)&&this._generateInterEdgeVertices(a,o,s,c,l,u,d,x,r,i)}return a}_generateIntraEdgeVertices(e,t,n,r,i,a,o){let s=r-t,c=i-n,l=c===0,u=l?Math.min(t,r):Math.min(a,o),d=l?Math.max(t,r):Math.max(a,o),f=Math.floor(u/this._granularityCellSize)+1,p=Math.ceil(d/this._granularityCellSize)-1;if(l?t<r:a<o)for(let r=f;r<=p;r++){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a))}else for(let r=p;r>=f;r--){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a))}}_generateInterEdgeVertices(e,t,n,r,i,a,o,s,c,l){let u=i-n,d=a-r,f=o-i,p=(c-i)/f,m=(l-i)/f,h=Math.min(p,m),g=Math.max(p,m),_=r+d*h,v=Math.floor(Math.min(_,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(_,s)/this._granularityCellSize)-1,b=s<_,x=f===0;if(x&&(o===c||o===l))return;if(x||h>=1||g<=0){let e=t-a,r=n-o,i=(c-o)/r,u=(l-o)/r,d=a+e*Math.min(i,u);v=Math.floor(Math.min(d,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(d,s)/this._granularityCellSize)-1,b=s<d}let S=u>0?l:c;if(b)for(let t=v;t<=y;t++){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S))}else for(let t=y;t>=v;t--){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S))}}_generateOutline(e,t){let n=[],r=0;for(let i of e){let e=this._granularity<2?this._ringPathIndices(i,r,t):this._pointArrayToIndices(rm(i,this._granularity,!0));r+=i.length;let a=[];for(let t=1;t<e.length;t++)a.push(e[t-1]),a.push(e[t]);n.push(a)}return n}_ringPathIndices(e,t,n){let r=n.slice(t,t+e.length);return r.length>=2&&im(e)&&r.push(r[0]),r}_handlePoles(e){let t=!1,n=!1;this._canonical&&(this._canonical.y===0&&(t=!0),this._canonical.y===(1<<this._canonical.z)-1&&(n=!0)),(t||n)&&this._fillPoles(e,t,n)}_ensureNoPoleVertices(){let e=this._vertexBuffer;for(let t=0;t<e.length;t+=2){let n=e[t+1];n===-32768&&(e[t+1]=-32767),n===32767&&(e[t+1]=32766)}}_generatePoleQuad(e,t,n,r,i,a){r>i==(a===-32768)?(e.push(n),e.push(t),e.push(this._vertexToIndex(r,a)),e.push(this._vertexToIndex(i,a)),e.push(n),e.push(this._vertexToIndex(r,a))):(e.push(t),e.push(n),e.push(this._vertexToIndex(r,a)),e.push(n),e.push(this._vertexToIndex(i,a)),e.push(this._vertexToIndex(r,a)))}_fillPoles(e,t,n){let r=this._vertexBuffer,i=M,a=e.length;for(let o=2;o<a;o+=3){let a=e[o-2],s=e[o-1],c=e[o],l=r[a*2],u=r[a*2+1],d=r[s*2],f=r[s*2+1],p=r[c*2],m=r[c*2+1];t&&(u===0&&f===0&&this._generatePoleQuad(e,a,s,l,d,$p),f===0&&m===0&&this._generatePoleQuad(e,s,c,d,p,$p),m===0&&u===0&&this._generatePoleQuad(e,c,a,p,l,$p)),n&&(u===i&&f===i&&this._generatePoleQuad(e,a,s,l,d,em),f===i&&m===i&&this._generatePoleQuad(e,s,c,d,p,em),m===i&&u===i&&this._generatePoleQuad(e,c,a,p,l,em))}}_initializeVertices(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(this._vertexToIndex(e[n],e[n+1]));return t}subdividePolygonInternal(e,t){if(this._used)throw Error(`Subdivision: multiple use not allowed.`);this._used=!0;let{flattened:n,holeIndices:r}=am(e),i=this._initializeVertices(n),a;try{let e=ip(n,r);a=this._subdivideTrianglesScanline(e,i)}catch(e){console.error(e)}let o=[];return t&&(o=this._generateOutline(e,i)),this._ensureNoPoleVertices(),this._handlePoles(a),this._granularity>=2&&this._canonical?.z===0&&(a=this._removeTrianglesOutsideTileX(a),o=o.map(e=>this._removeLinesOutsideTileX(e))),{verticesFlattened:this._vertexBuffer,indicesTriangles:a,indicesLineList:o}}_vertexOutsideTileX(e){let t=this._vertexBuffer[e*2];return t<0||t>8192}_removeTrianglesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=3)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||this._vertexOutsideTileX(e[n+2])||t.push(e[n],e[n+1],e[n+2]);return t}_removeLinesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=2)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||t.push(e[n],e[n+1]);return t}_pointArrayToIndices(e){let t=[];for(let n of e)t.push(this._vertexToIndex(n.x,n.y));return t}};function nm(e,t,n,r=!0){return new tm(n,t).subdividePolygonInternal(e,r)}function rm(e,t,n=!1){if(!e||e.length<1||e.length<2)return[];let r=n&&im(e);if(t<2)return r?[...e,e[0]]:[...e];let i=Math.floor(M/t),a=[];a.push(new b(e[0].x,e[0].y));let o=e.length,s=r?o:o-1;for(let t=0;t<s;t++){let n=e[t],r=t<o-1?e[t+1]:e[0],s=n.x,c=n.y,l=r.x,u=r.y,d=s!==l,f=c!==u;if(!d&&!f)continue;let p=l-s,m=u-c,h=Math.abs(p),g=Math.abs(m),_=s,v=c;for(;;){let e=p>0?(Math.floor(_/i)+1)*i:(Math.ceil(_/i)-1)*i,t=m>0?(Math.floor(v/i)+1)*i:(Math.ceil(v/i)-1)*i,n=Math.abs(_-e),r=Math.abs(v-t),o=Math.abs(_-l),s=Math.abs(v-u),c=d?n/h:1/0,y=f?r/g:1/0;if((o<=n||!d)&&(s<=r||!f))break;if(c<y&&d||!f){_=e,v+=m*c;let t=new b(_,Math.round(v));(a[a.length-1].x!==t.x||a[a.length-1].y!==t.y)&&a.push(t)}else{_+=p*y,v=t;let e=new b(Math.round(_),v);(a[a.length-1].x!==e.x||a[a.length-1].y!==e.y)&&a.push(e)}}let y=new b(l,u);(a[a.length-1].x!==y.x||a[a.length-1].y!==y.y)&&a.push(y)}return a}function im(e){return!e[0].equals(e[e.length-1])}function am(e){let t=[],n=[];for(let r of e)if(r.length!==0){r!==e[0]&&t.push(n.length/2);for(let e of r)n.push(e.x),n.push(e.y)}return{flattened:n,holeIndices:t}}function om(e,t){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=t[e[r]];return n}function sm(e,t){let n=[];for(let r=0;r<t.length;r+=3){let i=t[r],a=t[r+1],o=t[r+2],s=e[i*2],c=e[i*2+1],l=e[a*2],u=e[a*2+1],d=e[o*2],f=e[o*2+1],p=l-s,m=u-c,h=d-s;p*(f-c)-m*h>0?(n.push(i),n.push(o),n.push(a)):(n.push(i),n.push(a),n.push(o))}return n}function cm(e,t,n){if(t.length===0)throw Error(`Subdivision vertex ring is empty.`);let r=0,i=e[t[0]*2];for(let n=1;n<t.length;n++){let a=e[t[n]*2];a<i&&(i=a,r=n)}let a=t.length,o=r,s=(o+1)%a;for(;;){let r=o-1>=0?o-1:a-1,i=(s+1)%a,c=e[t[r]*2],l=e[t[r]*2+1],u=e[t[i]*2],d=e[t[i]*2+1],f=e[t[o]*2],p=e[t[o]*2+1],m=e[t[s]*2],h=e[t[s]*2+1],g=!1;if(c<u)g=!0;else if(c>u)g=!1;else{let e=h-p,t=-(m-f),n=p<h?1:-1;((c-f)*e+(l-p)*t)*n>((u-f)*e+(d-p)*t)*n&&(g=!0)}if(g){let e=t[r],i=t[o],c=t[s];e!==i&&e!==c&&i!==c&&n.push(c,i,e),o--,o<0&&(o=a-1)}else{let e=t[i],r=t[o],c=t[s];e!==r&&e!==c&&r!==c&&n.push(c,r,e),s++,s>=a&&(s=0)}if(r===i)break}}function lm(e,t,n,r,i,a,o,s,c){let l=i.length/2,u=o&&s&&c;if(l<od.MAX_VERTEX_ARRAY_LENGTH){let d=t.prepareSegment(l,n,r),f=d.vertexLength;for(let e=0;e<a.length;e+=3)r.emplaceBack(f+a[e],f+a[e+1],f+a[e+2]);d.vertexLength+=l,d.primitiveLength+=a.length/3;let p,m;u&&(m=o.prepareSegment(l,n,s),p=m.vertexLength,m.vertexLength+=l);for(let t=0;t<i.length;t+=2)e(i[t],i[t+1]);if(u)for(let e of c){for(let t=1;t<e.length;t+=2)s.emplaceBack(p+e[t-1],p+e[t]);m.primitiveLength+=e.length/2}}else dm(t,n,r,i,a,e),u&&fm(o,n,s,i,c,e),t.forceNewSegmentOnNextPrepare(),o?.forceNewSegmentOnNextPrepare()}function um(e,t,n,r,i,a,o){if(a){let a=r.count;return n(t[i*2],t[i*2+1]),e[i]=r.count,r.count++,o.vertexLength++,a}return e[i]}function dm(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d=2;d<i.length;d+=3){let f=i[d-2],p=i[d-1],m=i[d],h=o[f]<c,g=o[p]<c,_=o[m]<c,v=+!!h+ +!!g+ +!!_;l.vertexLength+v>od.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,h=!0,g=!0,_=!0,u=0);let y=um(o,r,a,s,f,h,l),b=um(o,r,a,s,p,g,l),x=um(o,r,a,s,m,_,l);n.emplaceBack(u+y-c,u+b-c,u+x-c),l.primitiveLength++}}function fm(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d of i)for(let i=1;i<d.length;i+=2){let f=d[i-1],p=d[i],m=o[f]<c,h=o[p]<c,g=+!!m+ +!!h;l.vertexLength+g>od.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,m=!0,h=!0,u=0);let _=um(o,r,a,s,f,m,l),v=um(o,r,a,s,p,h,l);n.emplaceBack(u+_-c,u+v-c),l.primitiveLength++}}var pm=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=!1,this.sdfPatterns={},this.patternFeatures=[],this.layoutVertexArray=new Hu,this.indexArray=new td,this.indexArray2=new nd,this.programConfigurations=new Pd(e.layers,e.zoom),this.segments=new od,this.segments2=new od,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id)}populate(e,t,n){this.hasDependencies=ep(`fill`,this.layers,t);let r=this.layers[0].layout.get(`fill-sort-key`),i=!r.isConstant(),a=[],o=new Dl(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:c,id:l,index:u,sourceLayerIndex:d}of e){let e=Vd(c,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let f=i?r.evaluate(e,{},n,t.availableImages):void 0,p={id:l,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:s?e.geometry:Bd(c),patterns:{},sortKey:f};a.push(p)}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;if(this.hasDependencies){let e=tp(`fill`,this.layers,r,{zoom:this.zoom},t);this.patternFeatures.push(e)}else this.addFeature(r,i,a,n,{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index)}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n})}addFeatures({options:e,canonical:t,patternPositions:n,patternMap:r}){this.detectSdfPatterns(r);for(let r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,t,n,e.subdivisionGranularity)}detectSdfPatterns(e){for(let t of this.patternFeatures)for(let n in t.patterns){let r=t.patterns[n];this.recordSdfPattern(n,e[r.min]),this.recordSdfPattern(n,e[r.mid]),this.recordSdfPattern(n,e[r.max])}for(let t of this.layers){let n=t.paint.get(`fill-pattern`).constantOr(null);n&&(this.recordSdfPattern(t.id,e[n.from.toString()]),this.recordSdfPattern(t.id,e[n.to.toString()]))}}recordSdfPattern(e,t){if(!t)return;let n=t.sdf===!0,r=this.sdfPatterns[e];r===void 0?this.sdfPatterns[e]=n:r!==n&&Yt(`Style sheet warning: Cannot mix SDF and non-SDF fill patterns in layer "${e}"`)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,$f),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,t,n,r,i,a){for(let e of oa(t,500)){let t=nm(e,r,a.fill.getGranularityForZoomLevel(r.z)),n=this.layoutVertexArray;lm((e,t)=>{n.emplaceBack(e,t)},this.segments,this.layoutVertexArray,this.indexArray,t.verticesFlattened,t.indicesTriangles,this.segments2,this.indexArray2,t.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r})}};K(`FillBucket`,pm,{omit:[`layers`,`patternFeatures`]});var mm,hm=()=>mm||=new Vl({"fill-sort-key":new J(z.layout_fill[`fill-sort-key`],`fill-sort-key`)}),gm,_m=()=>gm||=new Vl({"fill-antialias":new q(z.paint_fill[`fill-antialias`],`fill-antialias`),"fill-opacity":new J(z.paint_fill[`fill-opacity`],`fill-opacity`),"fill-layer-opacity":new q(z.paint_fill[`fill-layer-opacity`],`fill-layer-opacity`),"fill-color":new J(z.paint_fill[`fill-color`],`fill-color`),"fill-outline-color":new J(z.paint_fill[`fill-outline-color`],`fill-outline-color`),"fill-translate":new q(z.paint_fill[`fill-translate`],`fill-translate`),"fill-translate-anchor":new q(z.paint_fill[`fill-translate-anchor`],`fill-translate-anchor`),"fill-pattern":new Rl(z.paint_fill[`fill-pattern`],`fill-pattern`)}),vm={get paint(){return _m()},get layout(){return hm()}},ym=e=>e.type===`fill`,bm=class extends Wl{constructor(e,t){super(e,vm,t)}recalculate(e,t){super.recalculate(e,t);let n=this.paint._values[`fill-outline-color`];n.value.kind===`constant`&&n.value.value===void 0&&(this.paint._values[`fill-outline-color`]=this.paint._values[`fill-color`])}createBucket(e){return new pm(e)}queryRadius(){return of(this.paint.get(`fill-translate`))}queryIntersectsFeature({queryGeometry:e,geometry:t,transform:n,pixelsToTileUnits:r}){return qd(sf(e,this.paint.get(`fill-translate`),this.paint.get(`fill-translate-anchor`),-n.bearingInRadians,r),t)}isTileClipped(){return!0}},xm=$l([{name:`a_pos`,components:2,type:`Int16`},{name:`a_normal_ed`,components:4,type:`Int16`}],4),Sm=$l([{name:`a_centroid`,components:2,type:`Int16`}],4),Cm=xm.members;xm.size,xm.alignment;var wm=class e{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(t){let n=new e;return n.extend(t(new b(this.minX,this.minY))),n.extend(t(new b(this.maxX,this.minY))),n.extend(t(new b(this.minX,this.maxY))),n.extend(t(new b(this.maxX,this.maxY))),n}static fromPoints(t){let n=new e;for(let e of t)n.extend(e);return n}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return!this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return!this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}},Tm=wm.fromPoints([new b(0,0),new b(M,M)]);function Em(e,t){return e.x===t.x&&(e.x<0||e.x>8192)||e.y===t.y&&(e.y<0||e.y>8192)}function Dm(e){return e.every(e=>e.x<0)||e.every(e=>e.x>8192)||e.every(e=>e.y<0)||e.every(e=>e.y>8192)}var Om=class{constructor(e,t,n,r,i){for(this.properties=Object.create(null),this.extent=n,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=r,this._values=i;e.pos<t;){let t=e.readVarint();if(t===8)this.id=e.readVarint();else if(t===18){let t=e.readVarint()+e.pos;for(;e.pos<t;){let t=r[e.readVarint()],n=i[e.readVarint()];this.properties[t]=n}}else t===24?this.type=e.readVarint():(t===34&&(this._geometry=e.pos),e.skip(t))}}loadGeometry(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=[],r,i=1,a=0,o=0,s=0;for(;e.pos<t;){if(a<=0){let t=e.readVarint();if(i=t&7,a=t>>3,a===0)continue}if(a--,i===1)o+=e.readSVarint(),s+=e.readSVarint(),r&&n.push(r),r=[new b(o,s)];else if(i===2)o+=e.readSVarint(),s+=e.readSVarint(),r&&r.push(new b(o,s));else if(i===7)r&&r.push(r[0].clone());else throw Error(`unknown command ${i}`)}return r&&n.push(r),n}bbox(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=1,r=0,i=0,a=0,o=1/0,s=-1/0,c=1/0,l=-1/0;for(;e.pos<t;){if(r<=0){let t=e.readVarint();if(n=t&7,r=t>>3,r===0)continue}if(r--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),i<o&&(o=i),i>s&&(s=i),a<c&&(c=a),a>l&&(l=a);else if(n!==7)throw Error(`unknown command ${n}`)}return[o,c,s,l]}toGeoJSON(e,t,n){let r=this.extent*2**n,i=this.extent*e,a=this.extent*t,o=this.loadGeometry();function s(e){return[(e.x+i)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+a)*2/r)*Math.PI))-90]}function c(e){return e.map(s)}let l;if(this.type===1){let e=[];for(let t of o)e.push(t[0]);let t=c(e);l=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t}}else if(this.type===2){let e=o.map(c);l=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e}}else if(this.type===3){let e=km(o),t=[];for(let n of e)t.push(n.map(c));l=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t}}else throw Error(`unknown feature type`);let u={type:`Feature`,geometry:l,properties:this.properties};return this.id!=null&&(u.id=this.id),u}};Om.types=[`Unknown`,`Point`,`LineString`,`Polygon`];function km(e){let t=e.length;if(t<=1)return[e];let n=[],r,i;for(let a=0;a<t;a++){let t=Am(e[a]);t!==0&&(i===void 0&&(i=t<0),i===t<0?(r&&n.push(r),r=[e[a]]):r&&r.push(e[a]))}return r&&n.push(r),n}function Am(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}var jm=class{constructor(e,t){for(this.version=1,this.name=``,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],t===void 0&&(t=e.length);e.pos<t;){let t=e.readVarint();t===10?this.name=e.readString():t===18?(this._features.push(e.pos),e.skip(t)):t===26?this._keys.push(e.readString()):t===34?this._values.push(Mm(e)):t===40?this.extent=e.readVarint():t===120?this.version=e.readVarint():e.skip(t)}this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let t=this._pbf.readVarint()+this._pbf.pos;return new Om(this._pbf,t,this.extent,this._keys,this._values)}};function Mm(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let n=e.readVarint();t=n===10?e.readString():n===21?e.readFloat():n===25?e.readDouble():n===32?e.readVarint(!0):n===40?e.readVarint():n===48?e.readSVarint():n===56?e.readBoolean():(e.skip(n),null)}if(t==null)throw Error(`unknown feature value`);return t}var Nm=class{constructor(e,t=e.length){let n=Object.create(null);for(;e.pos<t;){let t=e.readVarint();if(t===26){let t=new jm(e,e.readVarint()+e.pos);t.length&&(n[t.name]=t)}else e.skip(t)}this.layers=n}},Pm=6371008.8,Q=class e{constructor(e,t){if(isNaN(e)||isNaN(t))throw Error(`Invalid LngLat object: (${e}, ${t})`);if(this.lng=+e,this.lat=+t,this.lat>90||this.lat<-90)throw Error(`Invalid LngLat latitude value: must be between -90 and 90`)}wrap(){return new e(Ft(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){let t=Math.PI/180,n=this.lat*t,r=e.lat*t,i=Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos((e.lng-this.lng)*t);return Pm*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof e)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new e(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t==`object`&&t)return new e(Number(`lng`in t?t.lng:t.lon),Number(t.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}},Fm=2*Math.PI*Pm;function Im(e){return Fm*Math.cos(e*Math.PI/180)}function Lm(e){return(180+e)/360}function Rm(e){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function zm(e,t){return e/Im(t)}function Bm(e){return e*360-180}function Vm(e){let t=180-e*360;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}function Hm(e,t){return e*Im(Vm(t))}function Um(e){return 1/Math.cos(e*Math.PI/180)}var Wm=class e{constructor(e,t,n=0){this.x=+e,this.y=+t,this.z=+n}static fromLngLat(t,n=0){let r=Q.convert(t);return new e(Lm(r.lng),Rm(r.lat),zm(n,r.lat))}toLngLat(){return new Q(Bm(this.x),Vm(this.y))}toAltitude(){return Hm(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Fm*Um(Vm(this.y))}},Gm=89.25;function Km(e,t,n){let r=1/(1<<n.z);return new Wm(e/M*r+n.x*r,t/M*r+n.y*r)}function qm(e,t,n){return Km(e,t,n).toLngLat()}function Jm(e,t){let n=N(t.lat,-85.051129,gn);return new b(Lm(t.lng)*e,Rm(n)*e)}function Ym(e,t){return new Wm(t.x/e,t.y/e).toLngLat()}function Xm(e){return e.cameraToCenterDistance*Math.min(Math.tan(un(90-e.pitch))*.85,Math.tan(un(Gm-e.pitch)))}function Zm(e,t){let n=e.canonical,r=t/Vt(n.z),i=n.x+2**n.z*e.wrap,a=new Float64Array(16);return se(a),ue(a,a,[i*r,n.y*r,0]),de(a,a,[r/M,r/M,1]),a}function Qm(e,t,n,r,i){let a=Wm.fromLngLat(e,t),o=i*zm(1,e.lat),{x:s,y:c,z:l}=eh(n,r),u=o*-s,d=o*-c,f=o*l;return new Wm(a.x+u,a.y+d,a.z+f)}function $m(e,t=e.center){let n=zm(1,t.lat)*e.worldSize;return Qm(t,e.elevation,e.pitch,e.bearing,e.cameraToCenterDistance/n)}function eh(e,t){let n=un(e),r=un(t),i=Math.cos(-n),a=Math.sin(n);return{x:a*Math.sin(r),y:-a*Math.cos(r),z:i}}function th(e,t){return t<=0||!e||e.length===0?e:e.map(e=>oh(e,t))}function nh(e,t){let n=qm(M/2,M/2,t),r=Wm.fromLngLat(n).meterInMercatorCoordinateUnits(),i=(1<<t.z)*M;return e*r*i}var rh=Math.cos(35*Math.PI/180);function ih(e){let t=[null];for(let n=1;n<e.length;n++){let r=e[n].sub(e[n-1]),i=!Em(e[n],e[n-1])&&r.mag()>0;t.push(i?r._perp():null)}let n=e.length-1,r=n>1&&e[0].equals(e[n]),i=[null];for(let e=1;e<=n;e++){let a=t[e];if(!a){i.push(null);continue}let o=r&&e===1?t[n]:t[e-1],s=r&&e===n?t[1]:t[e+1];i.push({start:ah(a,o),end:ah(a,s)})}return i}function ah(e,t){if(!t)return e.unit();let n=e.mag(),r=t.mag();return e.x*t.x+e.y*t.y<rh*n*r||n>=2*r?e.unit():r>=2*n?t.unit():e.add(t)._unit()}function oh(e,t){if(!e||e.length<3)return e;let n=e[0].x===e[e.length-1].x&&e[0].y===e[e.length-1].y,r=n?e.length-1:e.length;if(r<3)return e;let i=[],a=Em(e[r-1],e[0]);for(let n=0;n<r;n++){let o=e[(n-1+r)%r],s=e[n],c=e[(n+1)%r],l=Em(s,c);a||l?i.push(s.clone()):ch(i,o,s,c,t),a=l}let o=sh(i);return o.length<3?e:(n&&o.push(o[0].clone()),o)}function sh(e){let t=[];for(let n of e){let e=n.round(),r=t[t.length-1];(r?.x!==e.x||r?.y!==e.y)&&t.push(e)}for(;t.length>1&&t[0].x===t[t.length-1].x&&t[0].y===t[t.length-1].y;)t.pop();return t}function ch(e,t,n,r,i){let a=t.sub(n),o=r.sub(n),s=a.mag(),c=o.mag();if(s<1e-6||c<1e-6){e.push(n.clone());return}a._div(s),o._div(c);let l=a.x*o.x+a.y*o.y;if(Math.abs(l)>Math.cos(5*Math.PI/180)){e.push(n.clone());return}let u=.2,d=Math.min(i,s*u,c*u),f=n.add(a.mult(d)),p=n.add(o.mult(d)),m=Math.sqrt((1+l)/2),h=n.add(a.add(o)._unit()._mult(d/m)),g=f.sub(h).angleWith(p.sub(h)),_=Math.max(2,Math.ceil(Math.abs(g)/(Math.PI/6)-1e-6));for(let t=0;t<=_;t++)e.push(f.rotateAround(t/_*g,h))}var lh=8192;function uh(e,t,n,r,i,a,o,s){e.emplaceBack(t,n,Math.floor(r*lh)*2+o,i*lh*2,a*lh*2,Math.round(s))}var dh=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=!1,this.layoutVertexArray=new Uu,this.centroidVertexArray=new Ru,this.indexArray=new td,this.programConfigurations=new Pd(e.layers,e.zoom),this.segments=new od,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id)}populate(e,t,n){this.features=[],this.hasDependencies=ep(`fill-extrusion`,this.layers,t);let r=new Dl(this.zoom),i=this.layers[0],a=i.layout.get(`fill-extrusion-rounded-corner-distance`),o=a>0?nh(a,n):0,s=i._featureFilter.needGeometry;for(let{feature:a,id:c,index:l,sourceLayerIndex:u}of e){let e=Vd(a,s);if(!i._featureFilter.filter(r,e,n))continue;let d={id:c,sourceLayerIndex:u,index:l,geometry:th(s?e.geometry:Bd(a),o),properties:a.properties,type:a.type,patterns:{}};this.hasDependencies?this.features.push(tp(`fill-extrusion`,this.layers,d,{zoom:this.zoom},t)):this.addFeature(d,d.geometry,l,n,{},t.subdivisionGranularity),t.featureIndex.insert(a,d.geometry,l,u,this.index,!0)}}addFeatures({options:e,canonical:t,patternPositions:n}){for(let r of this.features){let{geometry:i}=r;this.addFeature(r,i,r.index,t,n,e.subdivisionGranularity)}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n})}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,Cm),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,Sm.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,t,n,r,i,a){for(let n of oa(t,500)){let t={x:0,y:0,sampleCount:0},i=this.layoutVertexArray.length;this.processPolygon(t,r,e,n,a);let o=this.layoutVertexArray.length-i,s=Math.floor(t.x/t.sampleCount),c=Math.floor(t.y/t.sampleCount);for(let e=0;e<o;e++)this.centroidVertexArray.emplaceBack(s,c)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r})}processPolygon(e,t,n,r,i){if(r.length<1||Dm(r[0]))return;for(let t of r)t.length!==0&&fh(e,t);let a={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},o=i.fill.getGranularityForZoomLevel(t.z),s=Om.types[n.type]===`Polygon`;for(let e of r){if(e.length===0||Dm(e))continue;let t=rm(e,o,s);this._generateSideFaces(t,a)}if(!s)return;let c=nm(r,t,o,!1),l=this.layoutVertexArray;lm((e,t)=>{uh(l,e,t,0,0,1,1,0)},this.segments,this.layoutVertexArray,this.indexArray,c.verticesFlattened,c.indicesTriangles)}_generateSideFaces(e,t){let n=0,r=this.layers[0].layout.get(`fill-extrusion-rounded-corner-distance`)>0?ih(e):null;for(let i=1;i<e.length;i++){let a=e[i],o=e[i-1];if(Em(a,o)||r&&!r[i])continue;t.segment.vertexLength+4>od.MAX_VERTEX_ARRAY_LENGTH&&(t.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let s=a.sub(o)._perp()._unit(),{start:c,end:l}=r?r[i]:{start:s,end:s},u=o.dist(a);n+u>32768&&(n=0),uh(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,0,n),uh(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,1,n),n+=u,uh(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,0,n),uh(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,1,n);let d=t.segment.vertexLength;this.indexArray.emplaceBack(d,d+2,d+1),this.indexArray.emplaceBack(d+1,d+2,d+3),t.segment.vertexLength+=4,t.segment.primitiveLength+=2}}};function fh(e,t){for(let n=0;n<t.length;n++){let r=t[n];(n!==t.length-1||t[0].x!==r.x||t[0].y!==r.y)&&(e.x+=r.x,e.y+=r.y,e.sampleCount++)}}K(`FillExtrusionBucket`,dh,{omit:[`layers`,`features`]});var ph,mh=()=>ph||=new Vl({"fill-extrusion-rounded-corner-distance":new q(z[`layout_fill-extrusion`][`fill-extrusion-rounded-corner-distance`],`fill-extrusion-rounded-corner-distance`)}),hh,gh=()=>hh||=new Vl({"fill-extrusion-opacity":new q(z[`paint_fill-extrusion`][`fill-extrusion-opacity`],`fill-extrusion-opacity`),"fill-extrusion-color":new J(z[`paint_fill-extrusion`][`fill-extrusion-color`],`fill-extrusion-color`),"fill-extrusion-translate":new q(z[`paint_fill-extrusion`][`fill-extrusion-translate`],`fill-extrusion-translate`),"fill-extrusion-translate-anchor":new q(z[`paint_fill-extrusion`][`fill-extrusion-translate-anchor`],`fill-extrusion-translate-anchor`),"fill-extrusion-pattern":new Rl(z[`paint_fill-extrusion`][`fill-extrusion-pattern`],`fill-extrusion-pattern`),"fill-extrusion-height":new J(z[`paint_fill-extrusion`][`fill-extrusion-height`],`fill-extrusion-height`),"fill-extrusion-base":new J(z[`paint_fill-extrusion`][`fill-extrusion-base`],`fill-extrusion-base`),"fill-extrusion-vertical-gradient":new q(z[`paint_fill-extrusion`][`fill-extrusion-vertical-gradient`],`fill-extrusion-vertical-gradient`)}),_h={get paint(){return gh()},get layout(){return mh()}},vh=e=>e.type===`fill-extrusion`,yh=class extends Wl{constructor(e,t){super(e,_h,t)}createBucket(e){return new dh(e)}queryRadius(){return of(this.paint.get(`fill-extrusion-translate`))}is3D(){return!0}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a,pixelPosMatrix:o}){let s=sf(e,this.paint.get(`fill-extrusion-translate`),this.paint.get(`fill-extrusion-translate-anchor`),-i.bearingInRadians,a),c=this.paint.get(`fill-extrusion-height`).evaluate(t,n),l=this.paint.get(`fill-extrusion-base`).evaluate(t,n),u=wh(s,o,0),d=Ch(r,l,c,o),f=d[0],p=d[1];return Sh(f,p,u)}};function bh(e,t){return e.x*t.x+e.y*t.y}function xh(e,t){if(e.length===1){let n=0,r=t[n++],i;for(;!i||r.equals(i);)if(i=t[n++],!i)return 1/0;for(;n<t.length;n++){let a=t[n],o=e[0],s=i.sub(r),c=a.sub(r),l=o.sub(r),u=bh(s,s),d=bh(s,c),f=bh(c,c),p=bh(l,s),m=bh(l,c),h=u*f-d*d,g=(f*p-d*m)/h,_=(u*m-d*p)/h,v=1-g-_,y=r.z*v+i.z*g+a.z*_;if(isFinite(y))return y}return 1/0}{let e=1/0;for(let n of t)e=Math.min(e,n.z);return e}}function Sh(e,t,n){let r=1/0;qd(n,t)&&(r=xh(n,t[0]));for(let i=0;i<t.length;i++){let a=t[i],o=e[i];for(let e=0;e<a.length-1;e++){let t=a[e],i=a[e+1],s=o[e],c=[t,i,o[e+1],s,t];Gd(n,c)&&(r=Math.min(r,xh(n,c)))}}return r!==1/0&&r}function Ch(e,t,n,r){let i=[],a=[],o=r[8]*t,s=r[9]*t,c=r[10]*t,l=r[11]*t,u=r[8]*n,d=r[9]*n,f=r[10]*n,p=r[11]*n;for(let t of e){let e=[],n=[];for(let i of t){let t=i.x,a=i.y,m=r[0]*t+r[4]*a+r[12],h=r[1]*t+r[5]*a+r[13],g=r[2]*t+r[6]*a+r[14],_=r[3]*t+r[7]*a+r[15],v=m+o,y=h+s,x=g+c,S=_+l,C=m+u,w=h+d,T=g+f,E=_+p,D=new b(v/S,y/S);D.z=x/S,e.push(D);let O=new b(C/E,w/E);O.z=T/E,n.push(O)}i.push(e),a.push(n)}return[i,a]}function wh(e,t,n){let r=[];for(let i of e){let e=[i.x,i.y,n,1];Xe(e,e,t),r.push(new b(e[0]/e[3],e[1]/e[3]))}return r}var Th=$l([{name:`a_pos_normal`,components:2,type:`Int16`},{name:`a_data`,components:4,type:`Uint8`},{name:`a_offset_normal`,components:2,type:`Int8`}],2),Eh=Th.members;Th.size,Th.alignment;var Dh=$l([{name:`a_uv_x`,components:1,type:`Float32`},{name:`a_split_index`,components:1,type:`Float32`}]),Oh=Dh.members;Dh.size,Dh.alignment;var kh=Math.cos(75/2*(Math.PI/180)),Ah=1/2,jh=2**14/Ah,Mh=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={};for(let e of this.layers)this.gradients[e.id]={};this.layoutVertexArray=new Wu,this.layoutVertexArray2=new Gu,this.indexArray=new td,this.programConfigurations=new Pd(e.layers,e.zoom),this.segments=new od,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id)}populate(e,t,n){this.hasDependencies=ep(`line`,this.layers,t)||this.hasLineDasharray(this.layers);let r=this.layers[0].layout.get(`line-sort-key`),i=!r.isConstant(),a=[],o=new Dl(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:c,index:l,sourceLayerIndex:u}of e){let e=Vd(t,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let d=i?r.evaluate(e,{},n):void 0,f={id:c,properties:t.properties,type:t.type,sourceLayerIndex:u,index:l,geometry:s?e.geometry:Bd(t),patterns:{},dashes:{},sortKey:d};a.push(f)}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;this.hasDependencies?(ep(`line`,this.layers,t)?tp(`line`,this.layers,r,{zoom:this.zoom},t):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,r,this.zoom,t),this.patternFeatures.push(r)):this.addFeature(r,i,a,n,{},{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index)}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n,dashPositions:r})}addFeatures({options:e,canonical:t,patternPositions:n,dashPositions:r}){for(let i of this.patternFeatures)this.addFeature(i,i.geometry,i.index,t,n,r,e.subdivisionGranularity)}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,Oh)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Eh),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.hasOwn(e.properties,`geojsonvt_clip_start`)&&Object.hasOwn(e.properties,`geojsonvt_clip_end`))return{start:+e.properties.geojsonvt_clip_start,end:+e.properties.geojsonvt_clip_end}}addFeature(e,t,n,r,i,a,o){let s=this.layers[0].layout,c=s.get(`line-join`).evaluate(e,{}),l=s.get(`line-cap`).evaluate(e,{}),u=s.get(`line-miter-limit`).evaluate(e,{}),d=s.get(`line-round-limit`).evaluate(e,{});this.lineClips=this.lineFeatureClips(e);for(let n of t)this.addLine(n,e,c,l,u,d,r,o);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,dashPositions:a,canonical:r})}addLine(e,t,n,r,i,a,o,s){this.distance=0,this.scaledDistance=0,this.totalDistance=0;let c=o?s.line.getGranularityForZoomLevel(o.z):1;if(e=rm(e,c),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let t=0;t<e.length-1;t++)this.totalDistance+=e[t].dist(e[t+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}let l=Om.types[t.type]===`Polygon`,u=e.length;for(;u>=2&&e[u-1].equals(e[u-2]);)u--;let d=0;for(;d<u-1&&e[d].equals(e[d+1]);)d++;if(u-d<(l?3:2))return;n===`bevel`&&(i=1.05);let f=this.overscaling<=16?15*M/(512*this.overscaling):0,p=this.segments.prepareSegment(u*10,this.layoutVertexArray,this.indexArray),m,h,g,_,v;this.e1=this.e2=-1,l&&(m=e[u-2],v=e[d].sub(m)._unit()._perp());for(let t=d;t<u;t++){if(g=t===u-1?l?e[d+1]:void 0:e[t+1],g&&e[t].equals(g))continue;v&&(_=v),m&&(h=m),m=e[t],v=g?g.sub(m)._unit()._perp():_,_||=v;let o=_.add(v);(o.x!==0||o.y!==0)&&o._unit();let s=_.x*v.x+_.y*v.y,c=o.x*v.x+o.y*v.y,y=c===0?1/0:1/c,b=2*Math.sqrt(2-2*c),x=c<kh&&h&&g,S=_.x*v.y-_.y*v.x>0,C=o.mult(Math.min(y,2)),w=N((y-3)/5,0,1);if(x&&t>d){let e=m.dist(h);if(e>2*f){let t=m.sub(m.sub(h)._mult(f/e)._round());this.updateDistance(h,t),this.addCurrentVertex(t,_,0,0,p),h=t}}let T=h&&g,E=T?n:l?`butt`:r;if(T&&E===`round`&&(y<a?E=`miter`:y<=2&&(E=`fakeround`)),E===`miter`&&y>i&&(E=`bevel`),E===`bevel`&&(y>2&&(E=`flipbevel`),y<i&&(E=`miter`)),h&&this.updateDistance(h,m),E===`miter`)o._mult(y),this.addCurrentVertex(m,o,0,0,p,!1,C);else if(E===`flipbevel`){if(y>100)o=v.mult(-1);else{let e=y*_.add(v).mag()/_.sub(v).mag();o._perp()._mult(e*(S?-1:1))}this.addCurrentVertex(m,o,0,0,p,!1,C,w),this.addCurrentVertex(m,o.mult(-1),0,0,p,!1,C,w)}else if(E===`bevel`||E===`fakeround`){let e=-Math.sqrt(y*y-1),t=S?e:0,n=S?0:e;if(h&&this.addCurrentVertex(m,_,t,n,p,!1,C),E===`fakeround`){let e=Math.round(b*180/Math.PI/20);for(let t=1;t<e;t++){let n=t/e;if(n!==.5){let e=n-.5,t=1.0904+s*(-3.2452+s*(3.55645-s*1.43519)),r=.848013+s*(-1.06021+s*.215638);n+=n*e*(n-1)*(t*e*e+r)}let r=v.sub(_)._mult(n)._add(_)._unit()._mult(S?-1:1);this.addHalfVertex(m,r.x,r.y,S?-C.x:C.x,S?-C.y:C.y,!1,S,p)}}g&&this.addCurrentVertex(m,v,-t,-n,p,!1,C)}else if(E===`butt`)this.addCurrentVertex(m,o,0,0,p,!1,C);else if(E===`square`){let e=h?1:-1;this.addCurrentVertex(m,o,e,e,p,!1,C)}else E===`round`&&(h&&(this.addCurrentVertex(m,_,0,0,p,!1,C,w),this.addCurrentVertex(m,_,1,1,p,!0,C,w)),g&&(this.addCurrentVertex(m,v,-1,-1,p,!0,C,w),this.addCurrentVertex(m,v,0,0,p,!1,C,w)));if(x&&t<u-1){let e=m.dist(g);if(e>2*f){let t=m.add(g.sub(m)._mult(f/e)._round());this.updateDistance(m,t),this.addCurrentVertex(t,v,0,0,p),m=t}}}}addCurrentVertex(e,t,n,r,i,a=!1,o=t,s=0){let c=t.x+t.y*n,l=t.y-t.x*n,u=-t.x+t.y*r,d=-t.y-t.x*r,f=o.x+(t.x-o.x)*s,p=o.y+(t.y-o.y)*s;this.addHalfVertex(e,c,l,f,p,a,!1,i),this.addHalfVertex(e,u,d,-f,-p,a,!0,i),this.distance>jh/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,t,n,r,i,a,o,s))}addHalfVertex({x:e,y:t},n,r,i,a,o,s,c){let l=(this.lineClips?this.scaledDistance*(jh-1):this.scaledDistance)*Ah;if(this.layoutVertexArray.emplaceBack((e<<1)+ +!!o,(t<<1)+ +!!s,Math.round(63*n)+128,Math.round(63*r)+128,(l&63)<<2,l>>6,Math.round(63*i),Math.round(63*a)),this.lineClips){let e=(this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start);this.layoutVertexArray2.emplaceBack(e,this.lineClipsArray.length)}let u=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,u,this.e2),c.primitiveLength++),s?this.e2=u:this.e1=u}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(e,t){this.distance+=e.dist(t),this.updateScaledDistance()}hasLineDasharray(e){for(let t of e){let e=t.paint.get(`line-dasharray`);if(e&&!e.isConstant())return!0}return!1}addLineDashDependencies(e,t,n,r){for(let i of e){let e=i.paint.get(`line-dasharray`);if(!e||e.value.kind===`constant`)continue;let a=i.layout.get(`line-cap`).evaluate(t,{})===`round`,o={dasharray:e.value.evaluate({zoom:n-1},t,{}),round:a},s={dasharray:e.value.evaluate({zoom:n},t,{}),round:a},c={dasharray:e.value.evaluate({zoom:n+1},t,{}),round:a},l=`${o.dasharray.join(`,`)},${o.round}`,u=`${s.dasharray.join(`,`)},${s.round}`,d=`${c.dasharray.join(`,`)},${c.round}`;r.dashDependencies[l]=o,r.dashDependencies[u]=s,r.dashDependencies[d]=c,t.dashes[i.id]={min:l,mid:u,max:d}}}};K(`LineBucket`,Mh,{omit:[`layers`,`patternFeatures`]});var Nh,Ph=()=>Nh||=new Vl({"line-cap":new J(z.layout_line[`line-cap`],`line-cap`),"line-join":new J(z.layout_line[`line-join`],`line-join`),"line-miter-limit":new J(z.layout_line[`line-miter-limit`],`line-miter-limit`),"line-round-limit":new J(z.layout_line[`line-round-limit`],`line-round-limit`),"line-sort-key":new J(z.layout_line[`line-sort-key`],`line-sort-key`)}),Fh,Ih=()=>Fh||=new Vl({"line-opacity":new J(z.paint_line[`line-opacity`],`line-opacity`),"line-layer-opacity":new q(z.paint_line[`line-layer-opacity`],`line-layer-opacity`),"line-color":new J(z.paint_line[`line-color`],`line-color`),"line-translate":new q(z.paint_line[`line-translate`],`line-translate`),"line-translate-anchor":new q(z.paint_line[`line-translate-anchor`],`line-translate-anchor`),"line-width":new J(z.paint_line[`line-width`],`line-width`),"line-gap-width":new J(z.paint_line[`line-gap-width`],`line-gap-width`),"line-offset":new J(z.paint_line[`line-offset`],`line-offset`),"line-blur":new J(z.paint_line[`line-blur`],`line-blur`),"line-dasharray":new Rl(z.paint_line[`line-dasharray`],`line-dasharray`),"line-pattern":new Rl(z.paint_line[`line-pattern`],`line-pattern`),"line-gradient":new Bl(z.paint_line[`line-gradient`],`line-gradient`)}),Lh={get paint(){return Ih()},get layout(){return Ph()}},Rh=class extends J{possiblyEvaluate(e,t){return t=new Dl(Math.floor(t.zoom),{now:t.now,fadeDuration:t.fadeDuration,zoomHistory:t.zoomHistory,transition:t.transition}),super.possiblyEvaluate(e,t)}evaluate(e,t,n,r){return t=P({},t,{zoom:Math.floor(t.zoom)}),super.evaluate(e,t,n,r)}},zh,Bh=e=>e.type===`line`,Vh=class extends Wl{constructor(e,t){super(e,Lh,t),this.gradientVersion=0,zh||(zh=new Rh(Lh.paint.properties[`line-width`].specification,`line-floorwidth`),zh.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(e){if(e===`line-gradient`){let e=this.gradientExpression();this.stepInterpolant=Ls(e)?e._styleExpression.expression instanceof Zi:!1,this.gradientVersion=(this.gradientVersion+1)%(2**53-1)}}gradientExpression(){return this._transitionablePaint._values[`line-gradient`].value.expression}recalculate(e,t){super.recalculate(e,t),this.paint._values[`line-floorwidth`]=zh.possiblyEvaluate(this._transitioningPaint._values[`line-width`].value,e)}createBucket(e){return new Mh(e)}queryRadius(e){let t=e,n=Hh(af(`line-width`,this,t),af(`line-gap-width`,this,t)),r=af(`line-offset`,this,t);return n/2+Math.abs(r)+of(this.paint.get(`line-translate`))}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a}){let o=sf(e,this.paint.get(`line-translate`),this.paint.get(`line-translate-anchor`),-i.bearingInRadians,a),s=a/2*Hh(this.paint.get(`line-width`).evaluate(t,n),this.paint.get(`line-gap-width`).evaluate(t,n)),c=this.paint.get(`line-offset`).evaluate(t,n);return c&&(r=lf(r,c*a)),Jd(o,r,s)}isTileClipped(){return!0}};function Hh(e,t){return t>0?t+2*e:e}var Uh=$l([{name:`a_pos_offset`,components:4,type:`Int16`},{name:`a_data`,components:4,type:`Uint16`},{name:`a_pixeloffset`,components:4,type:`Int16`},{name:`a_height_offset`,components:1,type:`Float32`}],4),Wh=$l([{name:`a_projected_pos`,components:3,type:`Float32`}],4);$l([{name:`a_fade_opacity`,components:1,type:`Uint32`}],4);var Gh=$l([{name:`a_placed`,components:2,type:`Uint8`},{name:`a_shift`,components:2,type:`Float32`},{name:`a_box_real`,components:2,type:`Int16`}]);$l([{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`}]);var Kh=$l([{name:`a_pos`,components:2,type:`Int16`},{name:`a_anchor_pos`,components:2,type:`Int16`},{name:`a_extrude`,components:2,type:`Int16`}],4),qh=$l([{name:`a_pos`,components:2,type:`Float32`},{name:`a_radius`,components:1,type:`Float32`},{name:`a_flags`,components:2,type:`Int16`}],4);$l([{name:`triangle`,components:3,type:`Uint16`}]),$l([{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`},{type:`Float32`,name:`heightOffset`}]);var Jh=$l([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Int16`,name:`rightJustifiedTextSymbolIndex`},{type:`Int16`,name:`centerJustifiedTextSymbolIndex`},{type:`Int16`,name:`leftJustifiedTextSymbolIndex`},{type:`Int16`,name:`verticalPlacedTextSymbolIndex`},{type:`Int16`,name:`placedIconSymbolIndex`},{type:`Int16`,name:`verticalPlacedIconSymbolIndex`},{type:`Uint16`,name:`key`},{type:`Uint16`,name:`textBoxStartIndex`},{type:`Uint16`,name:`textBoxEndIndex`},{type:`Uint16`,name:`verticalTextBoxStartIndex`},{type:`Uint16`,name:`verticalTextBoxEndIndex`},{type:`Uint16`,name:`iconBoxStartIndex`},{type:`Uint16`,name:`iconBoxEndIndex`},{type:`Uint16`,name:`verticalIconBoxStartIndex`},{type:`Uint16`,name:`verticalIconBoxEndIndex`},{type:`Uint16`,name:`featureIndex`},{type:`Uint16`,name:`numHorizontalGlyphVertices`},{type:`Uint16`,name:`numVerticalGlyphVertices`},{type:`Uint16`,name:`numIconVertices`},{type:`Uint16`,name:`numVerticalIconVertices`},{type:`Uint16`,name:`useRuntimeCollisionCircles`},{type:`Uint32`,name:`crossTileID`},{type:`Float32`,name:`textBoxScale`},{type:`Float32`,name:`collisionCircleDiameter`},{type:`Uint16`,name:`textAnchorOffsetStartIndex`},{type:`Uint16`,name:`textAnchorOffsetEndIndex`},{type:`Float32`,name:`heightOffset`}]);$l([{type:`Float32`,name:`offsetX`}]),$l([{type:`Int16`,name:`x`},{type:`Int16`,name:`y`},{type:`Int16`,name:`tileUnitDistanceFromAnchor`}]),$l([{type:`Uint16`,name:`textAnchor`},{type:`Float32`,components:2,name:`textOffset`}]);var Yh=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus=`unavailable`,this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(e){this.pluginStatus=e.pluginStatus,this.pluginURL=e.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(e){if(Yh.isParsed())throw Error(`RTL text plugin already registered.`);this.applyArabicShaping=e.applyArabicShaping,this.processBidirectionalText=e.processBidirectionalText,this.processStyledBidirectionalText=e.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}async syncState(e,t){if(this.isParsed())return this.getState();if(e.pluginStatus!==`loading`)return this.setState(e),e;let n=e.pluginURL,r=new Promise(e=>{this.loadScriptResolve=e}),i=new Promise(e=>setTimeout(()=>e(),this.TIMEOUT));if(await t(n),await Promise.race([r,i]),this.isParsed()){let e={pluginStatus:`loaded`,pluginURL:n};return this.setState(e),e}throw this.setState({pluginStatus:`error`,pluginURL:``}),Error(`RTL Text Plugin failed to import scripts from ${n}`)}};function Xh(e){return/[\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u077F\u07C0-\u07FA\u07FD-\u07FF\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\u1800\u1801\u1804\u1806-\u1819\u1820-\u1878\u1880-\u18AA\uA840-\uA877\uFB50-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDD00-\uDD27\uDD30-\uDD39\uDE60-\uDE7E\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDEFF\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB]|\uD805[\uDE60-\uDE6C]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]|\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function Zh(e){return/[\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u07FD-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC57-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD1F-\uDD39\uDD3F-\uDD59\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58\uDE60-\uDE9F\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF00-\uDF35\uDF39-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD85\uDD8E\uDD8F\uDE60-\uDE7E\uDE80-\uDEA9\uDEAB-\uDEAD\uDEB0\uDEB1\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDF27\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function Qh(e){return/[\u02EA\u02EB\u1100-\u11FF\u2E80-\u2FDF\u3000-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function $h(e){return/[\u02EA\u02EB\u2E80-\u2FDF\u2FF0-\u303F\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FD-\u30FF\u3105-\u312F\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function eg(e){return/[\u02EA\u02EB\u1100-\u11FF\u1401-\u167F\u18B0-\u18FF\u2065\u20DD-\u20E0\u20E2-\u20E4\u2B97\u2BF0-\u2BFF\u2E50\u2E51\u2E80-\u3007\u3012\u3013\u3020-\u302F\u3031-\u30FB\u30FD-\uA4CF\uA960-\uA97F\uAC00-\uD7FF\uF900-\uFAFF\uFE10-\uFE1F\uFE30-\uFE48\uFE50-\uFE57\uFE5F-\uFE62\uFE67-\uFE6F\uFF00-\uFF07\uFF0A-\uFF0C\uFF0E-\uFF19\uFF1F-\uFF3A\uFF3C\uFF3E\uFF40-\uFF5A\uFFE0-\uFFE2\uFFE4-\uFFE7\uFFF0-\uFFF8]|\uD802[\uDD80-\uDD9F]|\uD805[\uDD80-\uDDFF]|\uD806[\uDE00-\uDEBF]|[\uD80C-\uD810\uD81C-\uD822\uD83C\uD83D\uD840-\uD87E\uD880-\uD8BE][\uDC00-\uDFFF]|\uD811[\uDC00-\uDE7F]|\uD81B[\uDFE0-\uDFFF]|\uD823[\uDC00-\uDDFF]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFF]|\uD833[\uDEC0-\uDFCF]|\uD834[\uDC00-\uDDFF\uDEE0-\uDF7F]|\uD836[\uDC00-\uDEAF]|\uD83E[\uDD00-\uDEFF]|[\uD87F\uD8BF][\uDC00-\uDFFD]/gim.test(String.fromCodePoint(e))}function tg(e){return/[\xA7\xA9\xAE\xB1\xBC-\xBE\xD7\xF7\u2016\u2020\u2021\u2030\u2031\u203B\u203C\u2042\u2047-\u2049\u2051\u2100-\u218F\u221E\u2234\u2235\u2300-\u2307\u230C-\u231F\u2324-\u2328\u232B\u237D-\u239A\u23BE-\u23CD\u23CF\u23D1-\u23DB\u23E2-\u2422\u2424-\u24FF\u25A0-\u2619\u2620-\u2767\u2776-\u2793\u2B12-\u2B2F\u2B50-\u2B59\u2BB8-\u2BEB\u3000-\u303F\u30A0-\u30FF\uE000-\uF8FF\uFE30-\uFE6F\uFF00-\uFFEF\uFFFC\uFFFD]|[\uDB80-\uDBFF][\uDC00-\uDFFF]/gim.test(String.fromCodePoint(e))}function ng(e){return/[\r\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0600-\u0605\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DD\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0890\u0891\u0897-\u089F\u08CA-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E33-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB3-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1037\u1039-\u103E\u1056-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1084-\u1086\u108D\u109D\u1100-\u11FF\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60\u1A62\u1A65-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA960-\uA97C\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD69-\uDD6D\uDEAB\uDEAC\uDEFA-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCBD\uDCC2\uDCCD\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC2\uDDC3\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDFB8-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD2\uDFE1\uDFE2]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF1F\uDF22-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE84-\uDE99\uDF60-\uDF67]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6\uDF00-\uDF03\uDF34-\uDF3A\uDF3E-\uDF42\uDF5A]|\uD80D[\uDC40\uDC47-\uDC55]|\uD818[\uDD1E-\uDD2F]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDD63\uDD67-\uDD6A\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF\uDDEE\uDDEF\uDEE3\uDEE6\uDEEE\uDEEF\uDEF5]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDDE6-\uDDFF\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF]/.test(e)}function rg(e){return/[\u0E01-\u0E3A\u0E40-\u0E4E\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA\u1000-\u103F\u1050-\u108F\u109A-\u109F\u1780-\u17D3\u17D7\u17DC\u17DD\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19DE\u19DF\u1A20-\u1A5E\u1A60-\u1A7C\u1AA0-\u1AAD\u1B00-\u1B4C\u1B4E-\u1B7F\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE-\uA9EF\uA9FA-\uA9FE\uAA60-\uAAC2\uAADB-\uAADF]|\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF3A\uDF3B\uDF3F-\uDF46]/gim.test(String.fromCodePoint(e))}function ig(e,t){return/(?:[\u1039\u17D2\u1A60\u1BAB\u200D\uAAF6]|\uD802\uDE3F|\uD804[\uDD33\uDFD0]|\uD806[\uDD3E\uDE47\uDE99]|\uD807[\uDD45\uDD97\uDF42])$/.test(e)||/^\p{gc=Mc}/u.test(t)}var ag={C:`18g,1;g2,3;4nb,1`,D:`17k,1;5,1;1,1;1,5;4,d;1,7;1,2;z,2;8,g;i,12;1,2;9,1;1,1;1,2;14,3;2,1;28,9;3,f;2,4;1,1;2,3;2,6;7a,1;2,5;1,1;g,a;5,2;2,6;1,f`,R:`17m,4;1,1;1,1;5,4;l,1;14,3;1,3;g,i;12,1;2,9;1,1;1,1;2,2;1,1;o,2;2x,3;f,2;4,1;1,2;3,2;6u,j;b,1;r,3;1,1;2,2;6,1`,T:`174,b;1,1;1a,l;g,1;2t,7;2,6;2,2;1,4;bt,9;16,o;1,t;1clb,1`},og={1569:[65152,0,0,0],1570:[65153,65154,0,0],1571:[65155,65156,0,0],1572:[65157,65158,0,0],1573:[65159,65160,0,0],1574:[65161,65162,65163,65164],1575:[65165,65166,0,0],1576:[65167,65168,65169,65170],1577:[65171,65172,0,0],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194,0,0],1584:[65195,65196,0,0],1585:[65197,65198,0,0],1586:[65199,65200,0,0],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262,0,0],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1611:[65136,0,0,65137],1612:[65138,0,0,0],1613:[65140,0,0,0],1614:[65142,0,0,65143],1615:[65144,0,0,65145],1616:[65146,0,0,65147],1617:[65148,0,0,65149],1618:[65150,0,0,65151],1649:[64336,64337,0,0],1655:[64477,0,0,0],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393,0,0],1676:[64388,64389,0,0],1677:[64386,64387,0,0],1678:[64390,64391,0,0],1681:[64396,64397,0,0],1688:[64394,64395,0,0],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415,0,0],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421,0,0],1729:[64422,64423,64424,64425],1733:[64480,64481,0,0],1734:[64473,64474,0,0],1735:[64471,64472,0,0],1736:[64475,64476,0,0],1737:[64482,64483,0,0],1739:[64478,64479,0,0],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431,0,0],1747:[64432,64433,0,0]},sg={لآ:[65269,65270],لأ:[65271,65272],لإ:[65273,65274],لا:[65275,65276]},cg=1604,lg=/[\u0600-\u06ff\u0750-\u077f\u0870-\u089f\u08a0-\u08ff\ufb50-\ufdff\ufe70-\ufeff]/;function ug(e,t,n){let r=0;for(let i of e.split(`;`)){let[e,a]=i.split(`,`).map(e=>parseInt(e,36)),o=r+e;for(let e=o;e<o+a;e++)n.set(e,t);r=o+a}}var dg=new Map;for(let[e,t]of Object.entries(ag))ug(t,e,dg);function fg(e){return dg.get(e)??`U`}function pg(e){return e===`D`||e===`L`||e===`C`}function mg(e){return e===`D`||e===`R`||e===`C`}function hg(e,t,n){return e===`D`?t&&n?3:t?1:n?2:0:e===`R`?+!!t:e===`L`?n?2:0:null}function gg(e){return[...e].map(e=>{let t=e.codePointAt(0);return{codePoint:t,type:fg(t),form:null}})}function _g(e){let t=e.filter(e=>e.type!==`T`);for(let e=0;e<t.length;e++){let n=t[e],r=e>0&&pg(t[e-1].type),i=e+1<t.length&&mg(t[e+1].type);n.form=hg(n.type,r,i)}}function vg(e){let t=!1;for(let n of e)n.type===`T`?n.form=t?3:0:t=n.form===2||n.form===3}function yg(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r.codePoint!==cg){t.push(r);continue}let i=n+1;for(;i<e.length&&e[i].type===`T`;)i++;let a=e[i],o=a&&sg[String.fromCodePoint(cg,a.codePoint)];if(!o){t.push(r);continue}let s=r.form===3||r.form===1;t.push({codePoint:o[+!!s],type:`R`,form:0}),t.push(...e.slice(n+1,i)),n=i}return t}function bg(e){if(e.form===null)return e.codePoint;let t=og[e.codePoint];return t&&(t[e.form]||t[0])||e.codePoint}function xg(e){if(!lg.test(e))return e;let t=gg(e);return _g(t),vg(t),yg(t).map(e=>String.fromCodePoint(bg(e))).join(``)}function Sg(e,t,n){let r=t.layout.get(`text-transform`).evaluate(n,{});return r===`uppercase`?e=e.toLocaleUpperCase():r===`lowercase`&&(e=e.toLocaleLowerCase()),(Yh.applyArabicShaping??xg)(e)}function Cg(e,t,n){for(let r of e.sections)r.text=Sg(r.text,t,n);return e}function wg(e,t,n){let r=n?t.last.points:t.first.points,i=n?r[r.length-1]:r[0];return`${e}:${i.x}:${i.y}`}function Tg(e){let t=e.first.points,n=t.length;for(let t=e.first.next;t;t=t.next)n+=t.points.length-1;let r=Array(n);for(let e=0;e<t.length;e++)r[e]=t[e];let i=t.length;for(let t=e.first.next;t;t=t.next){let e=t.points;for(let t=1;t<e.length;t++)r[i++]=e[t]}return r}function Eg(e,t,n,r,i){let a=t[n];delete t[n],t[r]=a;let o=e[a];return o.last.next=i.first,o.last=i.last,a}function Dg(e,t,n,r,i){let a=t[r];delete t[r],t[n]=a;let o=e[a];return i.last.next=o.first,o.first=i.first,a}function Og(e){let t={},n={},r=[];for(let i of e){let e=i.text?i.text.toString():null,a={points:i.geometry[0],next:null},o={feature:i,first:a,last:a};if(!e){r.push(o);continue}let s=wg(e,o),c=wg(e,o,!0);if(s in n&&c in t&&n[s]!==t[c]){let i=Dg(r,t,s,c,o),a=Eg(r,n,s,c,r[i]);delete t[s],delete n[c],n[wg(e,r[a],!0)]=a,r[i].feature.geometry=null}else if(s in n)Eg(r,n,s,c,o);else if(c in t)Dg(r,t,s,c,o);else{let e=r.push(o)-1;t[s]=e,n[c]=e}}let i=[];for(let e of r){let t=e.feature;t.geometry&&(e.first.next&&(t.geometry[0]=Tg(e)),i.push(t))}return i}var kg=typeof Intl<`u`&&`Segmenter`in Intl,Ag,jg;function Mg(e){if(!kg||!ng(e))return[...e];Ag??=new Intl.Segmenter(void 0,{granularity:`grapheme`});let t=[];for(let{segment:n}of Ag.segment(e)){let e=t.length-1;e>=0&&ig(t[e],n)?t[e]+=n:t.push(n)}return t}function Ng(e){let t=new Set;if(kg){jg??=new Intl.Segmenter(void 0,{granularity:`word`});for(let{index:n}of jg.segment(e))t.add(n);return t}let n=0;for(let r of e.split(/\b|(?=\p{Ideo})/u))t.add(n),n+=r.length;return t}function Pg(e){let t=e.codePointAt(0);return e.length>(t>65535?2:1)}function Fg(e){return/\s/u.test(String.fromCodePoint(e))}function Ig(e){for(let t of e)if(eg(t.codePointAt(0)))return!0;return!1}function Lg(e){for(let t of e)if(!Rg(t.codePointAt(0)))return!1;return!0}function Rg(e){return!Xh(e)}function zg(e){return!(eg(e)||tg(e))}function Bg(e){return/\p{sc=Arab}/u.test(String.fromCodePoint(e))}function Vg(e){return Zh(e)}function Hg(e){for(let t of e)if(Vg(t.codePointAt(0)))return!0;return!1}var Ug={"!":`︕`,"#":`#`,$:`$`,"%":`%`,"&":`&`,"(":`︵`,")":`︶`,"*":`*`,"+":`+`,",":`︐`,"-":`︲`,".":`・`,"/":`/`,":":`︓`,";":`︔`,"<":`︿`,"=":`=`,">":`﹀`,"?":`︖`,"@":`@`,"[":`﹇`,"\\":`\`,"]":`﹈`,"^":`^`,_:`︳`,"`":```,"{":`︷`,"|":`―`,"}":`︸`,"~":`~`,"¢":`¢`,"£":`£`,"¥":`¥`,"¦":`¦`,"¬":`¬`,"¯":` ̄`,"–":`︲`,"—":`︱`,"‘":`﹃`,"’":`﹄`,"“":`﹁`,"”":`﹂`,"…":`︙`,"⋯":`︙`,"‧":`・`,"₩":`₩`,"、":`︑`,"。":`︒`,"〈":`︿`,"〉":`﹀`,"《":`︽`,"》":`︾`,"「":`﹁`,"」":`﹂`,"『":`﹃`,"』":`﹄`,"【":`︻`,"】":`︼`,"〔":`︹`,"〕":`︺`,"〖":`︗`,"〗":`︘`,"!":`︕`,"(":`︵`,")":`︶`,",":`︐`,"-":`︲`,".":`・`,":":`︓`,";":`︔`,"<":`︿`,">":`﹀`,"?":`︖`,"[":`﹇`,"]":`﹈`,"_":`︳`,"{":`︷`,"|":`―`,"}":`︸`,"⦅":`︵`,"⦆":`︶`,"。":`︒`,"「":`﹁`,"」":`﹂`};function Wg(e){let t=``,n={premature:!0,value:void 0},r=e[Symbol.iterator](),i=r.next(),a=e[Symbol.iterator]();a.next();let o=a.next();for(;!i.done;)(o.done||!zg(o.value.codePointAt(0))||Ug[o.value])&&(n.premature||!zg(n.value.codePointAt(0))||Ug[n.value])&&Ug[i.value]?t+=Ug[i.value]:t+=i.value,n={value:i.value,premature:!1},i=r.next(),o=a.next();return t}var Gg={10:!0,13:!0,32:!0,38:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0},Kg={40:!0};function qg(e,t,n,r,i,a){if(`fontStack`in t){let r=n[t.fontStack]?.default,a=r?.[e];if(a)return a.metrics.advance*t.scale+i;let o=0;for(let n of e){let e=r?.[n];e&&(o+=e.metrics.advance*t.scale+i)}return o}{let e=r[t.imageName];return e?e.displaySize[0]*t.scale*24/a+i:0}}function Jg(e,t,n,r){let i=(e-t)**2;return r?e<t?i/2:i*2:i+Math.abs(n)*n}function Yg(e){return/^\s+$/u.test(e)}function Xg(e,t,n){let r=0;return(e===10||e===13)&&(r-=1e4),n&&(r+=150),(e===40||e===65288)&&(r+=50),(t===41||t===65289)&&(r+=50),r}function Zg(e,t,n,r,i,a){let o=null,s=Jg(t,n,i,a);for(let e of r){let r=Jg(t-e.x,n,i,a)+e.badness;r<=s&&(o=e,s=r)}return{index:e,x:t,priorBreak:o,badness:s}}function Qg(e){return e?Qg(e.priorBreak).concat(e.index):[]}var $g=class e{constructor(e=``,t=[],n=[]){this.text=e,this.sections=t,this.sectionIndex=n,this.imageSectionID=null,this._graphemes=null}graphemes(){return this._graphemes??=Mg(this.text),this._graphemes}static fromFeature(t,n){let r=new e;for(let e of t.sections)e.image?r.addImageSection(e):r.addTextSection(e,n);return r}length(){return this.graphemes().length}getSection(e){return this.sections[this.sectionIndex[e]]}getSectionIndex(e){return this.sectionIndex[e]}verticalizePunctuation(){this.text=Wg(this.text),this._graphemes=null}hasZeroWidthSpaces(){return this.text.includes(`​`)}trim(){let e=this.graphemes(),t=0;for(;t<e.length&&Yg(e[t]);)t++;let n=e.length;for(;n>t&&Yg(e[n-1]);)n--;this.text=e.slice(t,n).join(``),this.sectionIndex=this.sectionIndex.slice(t,n),this._graphemes=null}substring(t,n){let r=this.graphemes().slice(t,n).join(``),i=this.sectionIndex.slice(t,n);return new e(r,this.sections,i)}toCodeUnitIndex(e){return this.graphemes().slice(0,e).join(``).length}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,t)=>Math.max(e,this.sections[t].scale),0)}getMaxImageSize(e){let t=0,n=0;for(let r=0;r<this.length();r++){let i=this.getSection(r);if(`imageName`in i){let r=e[i.imageName];if(!r)continue;let a=r.displaySize;t=Math.max(t,a[0]),n=Math.max(n,a[1])}}return{maxImageWidth:t,maxImageHeight:n}}_appendSection(e,t){let n=this.graphemes(),r=n.length>0?n[n.length-1]:``,i=Mg(r+e);this.text+=e,this._graphemes=n.slice(0,r?-1:void 0).concat(i);let a=i.length-+!!r;for(let e=0;e<a;e++)this.sectionIndex.push(t)}addTextSection(e,t){this.sections.push({scale:e.scale||1,verticalAlign:e.verticalAlign||`bottom`,fontStack:e.fontStack||t}),this._appendSection(e.text,this.sections.length-1)}addImageSection(e){let t=e.image?e.image.name:``;if(t.length===0){Yt(`Can't add FormattedSection with an empty image.`);return}let n=this.getNextImageSectionCharCode();if(!n){Yt(`Reached maximum number of images 6401`);return}this.sections.push({scale:1,verticalAlign:e.verticalAlign||`bottom`,imageName:t}),this._appendSection(String.fromCharCode(n),this.sections.length-1)}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}determineLineBreaks(e,t,n,r,i){let a=this.determineTotalWidth(e,n,r,i);if(e>=0&&a>0&&a<=t&&!/[\n\r]/.test(this.text))return[this.length()];let o=[],s=a/Math.max(1,Math.ceil(a/t)),c=this.hasZeroWidthSpaces(),l=this.graphemes(),u=null,d=0,f=0;for(let t=0;t<l.length;t++){let a=l[t];if(t>0){let e=l[t-1].codePointAt(0),n=a.codePointAt(0),r=$h(e),i=rg(e)&&rg(n);(Gg[e]||r||`imageName`in this.getSection(t-1)||l[t+1]!==void 0&&Kg[n]||i&&(u??=Ng(this.text)).has(f))&&o.push(Zg(t,d,s,o,Xg(e,n,r&&c),!1))}Fg(a.codePointAt(0))||(d+=qg(a,this.getSection(t),n,r,e,i)),f+=a.length}return Qg(Zg(this.length(),d,s,o,0,!0))}determineTotalWidth(e,t,n,r){let i=0,a=0;for(let o of this.graphemes()){let s=this.getSection(a);i+=qg(o,s,t,n,e,r),a++}return i}};function e_(){return(function(e){var t={R:`13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73`,EN:`1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9`,ES:`17,2,6dp+1,f+1,av,16vr,mx+1,4o,2`,ET:`z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj`,AN:`16o+5,2j+9,2+1,35,ed,1ff2+9,87+u`,CS:`18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b`,B:`a,3,f+2,2v,690`,S:`9,2,k`,WS:`c,k,4f4,1vk+a,u,1j,335`,ON:`x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i`,BN:`0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1`,NSM:`lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n`,AL:`16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d`,LRO:`6ct`,RLO:`6cu`,LRE:`6cq`,RLE:`6cr`,PDF:`6cs`,LRI:`6ee`,RLI:`6ef`,FSI:`6eg`,PDI:`6eh`},n={},r={};n.L=1,r[1]=`L`,Object.keys(t).forEach(function(e,t){n[e]=1<<t+1,r[n[e]]=e}),Object.freeze(n);var i=n.LRI|n.RLI|n.FSI,a=n.L|n.R|n.AL,o=n.B|n.S|n.WS|n.ON|n.FSI|n.LRI|n.RLI|n.PDI,s=n.BN|n.RLE|n.LRE|n.RLO|n.LRO|n.PDF,c=n.S|n.WS|n.B|i|n.PDI|s,l=null;function u(){if(!l){l=new Map;var e=0;for(var r in t)if(t.hasOwnProperty(r))for(var i=t[r],a=``,o=void 0,s=!1,c=0,u=0;u<=i.length+1;u+=1){var d=i[u];if(d!==`,`&&u!==i.length)d===`+`?(s=!0,c=e=c+parseInt(a,36),a=``):a+=d;else{s?o=e+parseInt(a,36):(c=e=c+parseInt(a,36),o=e),s=!1,a=``,c=o;for(var f=e;f<o+1;f+=1)l.set(f,n[r])}}}}function d(e){return u(),l.get(e.codePointAt(0))||n.L}function f(e){return r[d(e)]}var p={pairs:`14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1`,canonical:`6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye`};function m(e,t){var n=0,r=new Map,i=t&&new Map,a;return e.split(`,`).forEach(function e(o){if(o.indexOf(`+`)!==-1)for(var s=+o;s--;)e(a);else{a=o;var c=o.split(`>`),l=c[0],u=c[1];l=String.fromCodePoint(n+=parseInt(l,36)),u=String.fromCodePoint(n+=parseInt(u,36)),r.set(l,u),t&&i.set(u,l)}}),{map:r,reverseMap:i}}var h,g,_;function v(){if(!h){var e=m(p.pairs,!0),t=e.map,n=e.reverseMap;h=t,g=n,_=m(p.canonical,!1).map}}function y(e){return v(),h.get(e)||null}function b(e){return v(),g.get(e)||null}function x(e){return v(),_.get(e)||null}var S=n.L,C=n.R,w=n.EN,T=n.ES,E=n.ET,D=n.AN,O=n.CS,k=n.B,A=n.S,ee=n.ON,te=n.BN,ne=n.NSM,re=n.AL,ie=n.LRO,ae=n.RLO,oe=n.LRE,se=n.RLE,ce=n.PDF,le=n.LRI,ue=n.RLI,de=n.FSI,fe=n.PDI;function pe(e,t){for(var n=125,r=new Uint32Array(e.length),l=0;l<e.length;l++)r[l]=d(e[l]);var u=new Map;function f(e,t){var n=r[e];r[e]=t,u.set(n,u.get(n)-1),n&o&&u.set(o,u.get(o)-1),u.set(t,(u.get(t)||0)+1),t&o&&u.set(o,(u.get(o)||0)+1)}for(var p=new Uint8Array(e.length),m=new Map,h=[],g=null,_=0;_<e.length;_++)g||h.push(g={start:_,end:e.length-1,level:t===`rtl`?1:t===`ltr`?0:sn(_,!1)}),r[_]&k&&(g.end=_,g=null);for(var v=se|oe|ae|ie|i|fe|ce|k,pe=function(e){return e+(e&1?1:2)},me=function(e){return e+(e&1?2:1)},he=0;he<h.length;he++){g=h[he];var ge=[{_level:g.level,_override:0,_isolate:0}],_e=void 0,ve=0,ye=0,be=0;u.clear();for(var xe=g.start;xe<=g.end;xe++){var Se=r[xe];if(_e=ge[ge.length-1],u.set(Se,(u.get(Se)||0)+1),Se&o&&u.set(o,(u.get(o)||0)+1),Se&v){if(Se&(se|oe)){p[xe]=_e._level;var Ce=(Se===se?me:pe)(_e._level);Ce<=n&&!ve&&!ye?ge.push({_level:Ce,_override:0,_isolate:0}):ve||ye++}else if(Se&(ae|ie)){p[xe]=_e._level;var we=(Se===ae?me:pe)(_e._level);we<=n&&!ve&&!ye?ge.push({_level:we,_override:Se&ae?C:S,_isolate:0}):ve||ye++}else if(Se&i){Se&de&&(Se=sn(xe+1,!0)===1?ue:le),p[xe]=_e._level,_e._override&&f(xe,_e._override);var Te=(Se===ue?me:pe)(_e._level);Te<=n&&ve===0&&ye===0?(be++,ge.push({_level:Te,_override:0,_isolate:1,_isolInitIndex:xe})):ve++}else if(Se&fe){if(ve>0)ve--;else if(be>0){for(ye=0;!ge[ge.length-1]._isolate;)ge.pop();var Ee=ge[ge.length-1]._isolInitIndex;Ee!=null&&(m.set(Ee,xe),m.set(xe,Ee)),ge.pop(),be--}_e=ge[ge.length-1],p[xe]=_e._level,_e._override&&f(xe,_e._override)}else Se&ce?(ve===0&&(ye>0?ye--:!_e._isolate&&ge.length>1&&(ge.pop(),_e=ge[ge.length-1])),p[xe]=_e._level):Se&k&&(p[xe]=g.level)}else p[xe]=_e._level,_e._override&&Se!==te&&f(xe,_e._override)}for(var De=[],Oe=null,ke=g.start;ke<=g.end;ke++){var Ae=r[ke];if(!(Ae&s)){var je=p[ke],Me=Ae&i,Ne=Ae===fe;Oe&&je===Oe._level?(Oe._end=ke,Oe._endsWithIsolInit=Me):De.push(Oe={_start:ke,_end:ke,_level:je,_startsWithPDI:Ne,_endsWithIsolInit:Me})}}for(var Pe=[],Fe=0;Fe<De.length;Fe++){var Ie=De[Fe];if(!Ie._startsWithPDI||Ie._startsWithPDI&&!m.has(Ie._start)){for(var Le=[Oe=Ie],Re=void 0;Oe&&Oe._endsWithIsolInit&&(Re=m.get(Oe._end))!=null;)for(var ze=Fe+1;ze<De.length;ze++)if(De[ze]._start===Re){Le.push(Oe=De[ze]);break}for(var Be=[],Ve=0;Ve<Le.length;Ve++)for(var He=Le[Ve],Ue=He._start;Ue<=He._end;Ue++)Be.push(Ue);for(var We=p[Be[0]],Ge=g.level,Ke=Be[0]-1;Ke>=0;Ke--)if(!(r[Ke]&s)){Ge=p[Ke];break}var qe=Be[Be.length-1],Je=p[qe],Ye=g.level;if(!(r[qe]&i)){for(var Xe=qe+1;Xe<=g.end;Xe++)if(!(r[Xe]&s)){Ye=p[Xe];break}}Pe.push({_seqIndices:Be,_sosType:Math.max(Ge,We)%2?C:S,_eosType:Math.max(Ye,Je)%2?C:S})}}for(var Ze=0;Ze<Pe.length;Ze++){var Qe=Pe[Ze],j=Qe._seqIndices,$e=Qe._sosType,et=Qe._eosType,tt=p[j[0]]&1?C:S;if(u.get(ne))for(var nt=0;nt<j.length;nt++){var rt=j[nt];if(r[rt]&ne){for(var it=$e,at=nt-1;at>=0;at--)if(!(r[j[at]]&s)){it=r[j[at]];break}f(rt,it&(i|fe)?ee:it)}}if(u.get(w))for(var ot=0;ot<j.length;ot++){var st=j[ot];if(r[st]&w)for(var ct=ot-1;ct>=-1;ct--){var lt=ct===-1?$e:r[j[ct]];if(lt&a){lt===re&&f(st,D);break}}}if(u.get(re))for(var ut=0;ut<j.length;ut++){var dt=j[ut];r[dt]&re&&f(dt,C)}if(u.get(T)||u.get(O))for(var ft=1;ft<j.length-1;ft++){var M=j[ft];if(r[M]&(T|O)){for(var pt=0,mt=0,ht=ft-1;ht>=0&&(pt=r[j[ht]],pt&s);ht--);for(var gt=ft+1;gt<j.length&&(mt=r[j[gt]],mt&s);gt++);pt===mt&&(r[M]===T?pt===w:pt&(w|D))&&f(M,pt)}}if(u.get(w)){for(var _t=0;_t<j.length;_t++)if(r[j[_t]]&w){for(var vt=_t-1;vt>=0&&r[j[vt]]&(E|s);vt--)f(j[vt],w);for(_t++;_t<j.length&&r[j[_t]]&(E|s|w);_t++)r[j[_t]]!==w&&f(j[_t],w)}}if(u.get(E)||u.get(T)||u.get(O))for(var yt=0;yt<j.length;yt++){var bt=j[yt];if(r[bt]&(E|T|O)){f(bt,ee);for(var xt=yt-1;xt>=0&&r[j[xt]]&s;xt--)f(j[xt],ee);for(var St=yt+1;St<j.length&&r[j[St]]&s;St++)f(j[St],ee)}}if(u.get(w))for(var Ct=0,wt=$e;Ct<j.length;Ct++){var Tt=j[Ct],Et=r[Tt];Et&w?wt===S&&f(Tt,S):Et&a&&(wt=Et)}if(u.get(o)){for(var Dt=C|w|D,Ot=Dt|S,kt=[],At=[],jt=0;jt<j.length;jt++)if(r[j[jt]]&o){var Mt=e[j[jt]],Nt=void 0;if(y(Mt)!==null){if(At.length<63)At.push({char:Mt,seqIndex:jt});else break}else if((Nt=b(Mt))!==null)for(var Pt=At.length-1;Pt>=0;Pt--){var N=At[Pt].char;if(N===Nt||N===b(x(Mt))||y(x(N))===Mt){kt.push([At[Pt].seqIndex,jt]),At.length=Pt;break}}}kt.sort(function(e,t){return e[0]-t[0]});for(var Ft=0;Ft<kt.length;Ft++){for(var P=kt[Ft],It=P[0],Lt=P[1],Rt=!1,zt=0,Bt=It+1;Bt<Lt;Bt++){var Vt=j[Bt];if(r[Vt]&Ot){Rt=!0;var Ht=r[Vt]&Dt?C:S;if(Ht===tt){zt=Ht;break}}}if(Rt&&!zt){zt=$e;for(var Ut=It-1;Ut>=0;Ut--){var Wt=j[Ut];if(r[Wt]&Ot){var Gt=r[Wt]&Dt?C:S;zt=Gt===tt?tt:Gt;break}}}if(zt){if(r[j[It]]=r[j[Lt]]=zt,zt!==tt){for(var Kt=It+1;Kt<j.length;Kt++)if(!(r[j[Kt]]&s)){d(e[j[Kt]])&ne&&(r[j[Kt]]=zt);break}}if(zt!==tt){for(var qt=Lt+1;qt<j.length;qt++)if(!(r[j[qt]]&s)){d(e[j[qt]])&ne&&(r[j[qt]]=zt);break}}}}for(var Jt=0;Jt<j.length;Jt++)if(r[j[Jt]]&o){for(var Yt=Jt,Xt=Jt,Zt=$e,Qt=Jt-1;Qt>=0;Qt--)if(r[j[Qt]]&s)Yt=Qt;else{Zt=r[j[Qt]]&Dt?C:S;break}for(var $t=et,en=Jt+1;en<j.length;en++)if(r[j[en]]&(o|s))Xt=en;else{$t=r[j[en]]&Dt?C:S;break}for(var tn=Yt;tn<=Xt;tn++)r[j[tn]]=Zt===$t?Zt:tt;Jt=Xt}}}for(var nn=g.start;nn<=g.end;nn++){var rn=p[nn],an=r[nn];if(rn&1?an&(S|w|D)&&p[nn]++:an&C?p[nn]++:an&(D|w)&&(p[nn]+=2),an&s&&(p[nn]=nn===0?g.level:p[nn-1]),nn===g.end||d(e[nn])&(A|k))for(var on=nn;on>=0&&d(e[on])&c;on--)p[on]=g.level}}return{levels:p,paragraphs:h};function sn(t,n){for(var a=t;a<e.length;a++){var o=r[a];if(o&(C|re))return 1;if(o&(k|S)||n&&o===fe)return 0;if(o&i){var s=cn(a);a=s===-1?e.length:s}}return 0}function cn(t){for(var n=1,a=t+1;a<e.length;a++){var o=r[a];if(o&k)break;if(o&fe){if(--n===0)return a}else o&i&&n++}return-1}}var me=`14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1`,he;function ge(){if(!he){var e=m(me,!0),t=e.map;e.reverseMap.forEach(function(e,n){t.set(n,e)}),he=t}}function _e(e){return ge(),he.get(e)||null}function ve(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);for(var a=new Map,o=n;o<=r;o++)if(t[o]&1){var s=_e(e[o]);s!==null&&a.set(o,s)}return a}function ye(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);var a=[];return t.paragraphs.forEach(function(i){var o=Math.max(n,i.start),s=Math.min(r,i.end);if(o<s){for(var l=t.levels.slice(o,s+1),u=s;u>=o&&d(e[u])&c;u--)l[u]=i.level;for(var f=i.level,p=1/0,m=0;m<l.length;m++){var h=l[m];h>f&&(f=h),h<p&&(p=h|1)}for(var g=f;g>=p;g--)for(var _=0;_<l.length;_++)if(l[_]>=g){for(var v=_;_+1<l.length&&l[_+1]>=g;)_++;_>v&&a.push([v+o,_+o])}}}),a}function be(e,t,n,r){var i=xe(e,t,n,r),a=[].concat(e);return i.forEach(function(n,r){a[r]=(t.levels[n]&1?_e(e[n]):null)||e[n]}),a.join(``)}function xe(e,t,n,r){for(var i=ye(e,t,n,r),a=[],o=0;o<e.length;o++)a[o]=o;return i.forEach(function(e){for(var t=e[0],n=e[1],r=a.slice(t,n+1),i=r.length;i--;)a[n-i]=r[i]}),a}return e.closingToOpeningBracket=b,e.getBidiCharType=d,e.getBidiCharTypeName=f,e.getCanonicalBracket=x,e.getEmbeddingLevels=pe,e.getMirroredCharacter=_e,e.getMirroredCharactersMap=ve,e.getReorderSegments=ye,e.getReorderedIndices=xe,e.getReorderedString=be,e.openingToClosingBracket=y,Object.defineProperty(e,"__esModule",{value:!0}),e})({})}var t_=e_(),n_=/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/,r_=new Set([`WS`,`FSI`,`LRI`,`RLI`,`PDI`]),i_=new Set([`S`,`B`]);function a_(e,t,n,r){let i=[],a=n;for(let o of Mg(e.slice(n,r)))i.push({index:a,text:o,level:t[a]}),a+=o.length;return i}function o_(e,t){let n=!0;for(let r=e.length-1;r>=0;r--){let i=t_.getBidiCharTypeName(e[r].text[0]);i_.has(i)?(e[r].level=t,n=!0):n&&r_.has(i)?e[r].level=t:n=!1}}function s_(e,t){let n=t,r=1/0;for(let{level:t}of e)t>n&&(n=t),(t|1)<r&&(r=t|1);let i=e.slice();for(let e=n;e>=r;e--)for(let t=0;t<i.length;t++){if(i[t].level<e)continue;let n=t;for(;n+1<i.length&&i[n+1].level>=e;)n++;for(let e=t,r=n;e<r;e++,r--)[i[e],i[r]]=[i[r],i[e]];t=n}return i}function c_(e){return e.level%2==0?e.text:t_.getMirroredCharacter(e.text)??e.text}function l_(e,t){return e.find(e=>t>=e.start&&t<=e.end)?.level??0}function u_(e,t,n,r,i){let a=a_(e,t,r,i);o_(a,n);let o=``,s=[];for(let e of s_(a,n)){if(n_.test(e.text))continue;let t=c_(e);o+=t,s.push(...Array(t.length).fill(e.index))}return{text:o,sourceIndices:s}}function d_(e,t){let n=t.filter(t=>t>0&&t<e.length),r=[...new Set([0,...n,e.length])].sort((e,t)=>e-t),i=[];for(let e=0;e+1<r.length;e++)i.push([r[e],r[e+1]]);return i}function f_(e,t){let{levels:n,paragraphs:r}=t_.getEmbeddingLevels(e);return d_(e,t.concat(r.map(e=>e.start))).map(([t,i])=>u_(e,n,l_(r,t),t,i))}function p_(e,t){return f_(e,t).map(e=>e.text)}function m_(e,t,n){return f_(e,n).map(e=>[e.text,e.sourceIndices.map(e=>t[e]??0)])}var h_=4294967296,g_=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`),__=class{constructor(e){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length}readFields(e,t,n=this.length){let r;for(;r=this.nextField(n);)e(r,t,this);return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,!0);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*h_;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*h_;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,e}readVarint(e){let t=this.buf,n=t[this.pos++];if(n<128)return n;let r=n&127,i;return i=t[this.pos++],r|=(i&127)<<7,i<128||(i=t[this.pos++],r|=(i&127)<<14,i<128)||(i=t[this.pos++],r|=(i&127)<<21,i<128)?r:(i=t[this.pos],r|=(i&15)<<28,v_(r,e,this))}readSVarint(){let e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return!!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&g_?g_.decode(this.buf.subarray(t,e)):b_(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos<n;)e.push(this.readVarint(t));return e}readPackedSVarint(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSVarint());return e}readPackedBoolean(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readBoolean());return e}readPackedFloat(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFloat());return e}readPackedDouble(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readDouble());return e}readPackedFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed32());return e}readPackedSFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed32());return e}readPackedFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed64());return e}readPackedSFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed64());return e}readPackedEnd(){return this.type===2?this.readVarint()+this.pos:this.pos+1}nextField(e=this.length){if(this.pos===this._valueStart&&this.skip(this.type),this.pos>=e)return 0;let t=this.readVarint();return this.type=t&7,this._valueStart=this.pos,t>>>3}skip(e){let t=e&7;if(t===0)for(;this.buf[this.pos++]>127;);else if(t===2)this.pos=this.readVarint()+this.pos;else if(t===5)this.pos+=4;else if(t===1)this.pos+=8;else throw Error(`Unimplemented type: ${t}`)}};function v_(e,t,n){let r=n.buf,i,a;if(a=r[n.pos++],i=(a&112)>>4,a<128||(a=r[n.pos++],i|=(a&127)<<3,a<128)||(a=r[n.pos++],i|=(a&127)<<10,a<128)||(a=r[n.pos++],i|=(a&127)<<17,a<128)||(a=r[n.pos++],i|=(a&127)<<24,a<128)||(a=r[n.pos++],i|=(a&1)<<31,a<128))return y_(e,i,t);throw Error(`Expected varint not more than 10 bytes`)}function y_(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function b_(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o}return r}function x_(e,t,n){e===1&&n.readMessage(S_,t)}function S_(e,t,n){if(e===3){let{id:e,bitmap:r,width:i,height:a,left:o,top:s,advance:c}=n.readMessage(C_,{});t.push({id:e,bitmap:new jf({width:i+6,height:a+6},r),metrics:{width:i,height:a,left:o,top:s,advance:c}})}}function C_(e,t,n){e===1?t.id=n.readVarint():e===2?t.bitmap=n.readBytes():e===3?t.width=n.readVarint():e===4?t.height=n.readVarint():e===5?t.left=n.readSVarint():e===6?t.top=n.readSVarint():e===7&&(t.advance=n.readVarint())}function w_(e){return new __(e).readFields(x_,[])}function T_(e){return typeof e?.renderWithWebGL==`function`}function E_(e){let{userImage:t}=e;return!t?.render||!t.render()?!1:(T_(t.data)||e.data.replace(new Uint8Array(t.data.buffer)),!0)}function D_(e){let t=0,n=0;for(let r of e)t+=r.w*r.h,n=Math.max(n,r.w);e.sort((e,t)=>t.h-e.h);let r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}],i=0,a=0;for(let t of e)for(let e=r.length-1;e>=0;e--){let n=r[e];if(!(t.w>n.w||t.h>n.h)){if(t.x=n.x,t.y=n.y,a=Math.max(a,t.y+t.h),i=Math.max(i,t.x+t.w),t.w===n.w&&t.h===n.h){let t=r.pop();t&&e<r.length&&(r[e]=t)}else t.h===n.h?(n.x+=t.w,n.w-=t.w):t.w===n.w?(n.y+=t.h,n.h-=t.h):(r.push({x:n.x+t.w,y:n.y,w:n.w-t.w,h:t.h}),n.y+=t.h,n.h-=t.h);break}}return{w:i,h:a,fill:t/(i*a)||0}}var O_=class{constructor(e,{pixelRatio:t,version:n,isWebGLImage:r=!1,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c}){this.paddedRect=e,this.pixelRatio=t,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n,this.needsFirstWebGLRender=r,this.textFitWidth=s,this.textFitHeight=c}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}},k_=class{constructor(e,t){let n={},r={};this.haveRenderCallbacks=[],this.patchedUpdateVersion=-1;let i=[];this.addImages(e,n,i),this.addImages(t,r,i);let{w:a,h:o}=D_(i),s=new Mf({width:a||1,height:o||1});for(let t in e){let r=e[t];if(r.isWebGLImage)continue;let i=n[t].paddedRect;Mf.copy(r.data,s,{x:0,y:0},{x:i.x+1,y:i.y+1},r.data)}for(let e in t){let n=t[e],i=r[e].paddedRect,a=i.x+1,o=i.y+1,c=n.data.width,l=n.data.height;Mf.copy(n.data,s,{x:0,y:0},{x:a,y:o},n.data),Mf.copy(n.data,s,{x:0,y:l-1},{x:a,y:o-1},{width:c,height:1}),Mf.copy(n.data,s,{x:0,y:0},{x:a,y:o+l},{width:c,height:1}),Mf.copy(n.data,s,{x:c-1,y:0},{x:a-1,y:o},{width:1,height:l}),Mf.copy(n.data,s,{x:0,y:0},{x:a+c,y:o},{width:1,height:l})}this.image=s,this.iconPositions=n,this.patternPositions=r}addImages(e,t,n){for(let r in e){let i=e[r],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};n.push(a),t[r]=new O_(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(r)}}patchUpdatedImages(e,t){if(e.dispatchRenderCallbacks(this.haveRenderCallbacks),this.patchedUpdateVersion!==e.updateVersion){this.patchedUpdateVersion=e.updateVersion;for(let n in this.iconPositions)this.patchUpdatedImage(this.iconPositions[n],e.getImage(n),t);for(let n in this.patternPositions)this.patchUpdatedImage(this.patternPositions[n],e.getImage(n),t)}}patchUpdatedImage(e,t,n){if(!e||!t||!e.needsFirstWebGLRender&&e.version===t.version)return;e.needsFirstWebGLRender=!1,e.version=t.version;let[r,i]=e.tl,a=t.userImage?.data;if(!T_(a)){n.update(t.data,void 0,{x:r,y:i});return}let{width:o,height:s}=t.data;n.context.setCustomLayerDefaults(),a.renderWithWebGL({gl:n.context.gl,texture:n.texture,x:r,y:i,width:o,height:s}),n.context.setDirty()}};K(`ImagePosition`,O_),K(`ImageAtlas`,k_);var A_=function(e){return e[e.none=0]=`none`,e[e.horizontal=1]=`horizontal`,e[e.vertical=2]=`vertical`,e[e.horizontalOnly=3]=`horizontalOnly`,e}(A_||{});function j_(e){for(let t of e)if(t.positionedGlyphs.length!==0)return!1;return!0}function M_(e,t){let n=[],r=0;for(let i of t)n.push(e.substring(r,i)),r=i;return r<e.length()&&n.push(e.substring(r,e.length())),n}var N_=/^\p{gc=M}$/u;function P_(e){let t=[],n=0;for(;n<e.length;){if(!N_.test(e[n])){t.push(n),n++;continue}let r=n;for(;r<e.length&&N_.test(e[r]);)r++;let i=e[r];if(i!==void 0&&Vg(i.codePointAt(0))){t.push(r);for(let e=r-1;e>=n;e--)t.push(e);n=r+1}else{for(let e=n;e<r;e++)t.push(e);n=r}}return t}function F_(e){let t=[],n=0;for(let r of e.graphemes())t.push(...Array(r.length).fill(e.sectionIndex[n])),n++;return t}function I_(e,t){let n=t.map(t=>e.toCodeUnitIndex(t)),r=Yh.isParsed()?Yh:null;if(e.sections.length===1)return r?r.processBidirectionalText(e.toString(),n).map(t=>z_(t,e.sections,[...t].map(()=>0))):p_(e.toString(),n).map(t=>L_([...t],e.sections,[...t].map(()=>0)));let i=F_(e);return r?r.processStyledBidirectionalText(e.text,i,n).map(([t,n])=>z_(t,e.sections,n)):m_(e.text,i,n).map(([t,n])=>{let r=[...t];return L_(r,e.sections,R_(r).map(e=>n[e]??0))})}function L_(e,t,n){let r=new $g(e.join(``),t,[]),i=0;for(let e of r.graphemes())r.sectionIndex.push(n[i]??0),i+=[...e].length;return r}function R_(e){let t=[],n=0;for(let r of e)t.push(n),n+=r.length;return t}function z_(e,t,n){let r=[...e],i=R_(r),a=P_(r);return L_(a.map(e=>r[e]),t,a.map(e=>n[i[e]]??0))}function B_(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=$g.fromFeature(e,i);d===2&&h.verticalizePunctuation();let g=h.determineLineBreaks(l,a,t,r,p),_=Hg(h.text)?I_(h,g):M_(h,g),v=[],y={positionedLines:v,text:h.toString(),top:u[1],bottom:u[1],left:u[0],right:u[0],writingMode:d,iconsInText:!1,verticalizable:!1};return $_(y,t,n,r,_,o,s,c,d,l,f,m),!j_(v)&&y}function V_(e){let t=.5,n=.5;switch(e){case`right`:case`top-right`:case`bottom-right`:t=1;break;case`left`:case`top-left`:case`bottom-left`:t=0}switch(e){case`bottom`:case`bottom-right`:case`bottom-left`:n=1;break;case`top`:case`top-right`:case`top-left`:n=0}return{horizontalAlign:t,verticalAlign:n}}function H_(e,t,n){let r=t.getMaxScale()*24,{maxImageWidth:i,maxImageHeight:a}=t.getMaxImageSize(e),o=Math.max(r,a*n);return{verticalLineContentWidth:Math.max(r,i*n),horizontalLineContentHeight:o}}function U_(e){switch(e){case`top`:return 0;case`center`:return .5;default:return 1}}function W_(e,t,n,r){if(e?.rect)return e;let i=t[n.fontStack]?.default?.[r];return i?{rect:null,metrics:i.metrics}:null}function G_(e,t,n){return!(e===1||!t&&!eg(n)||t&&(Fg(n)||Bg(n)))}function K_(e){return/\p{Nd}/u.test(String.fromCodePoint(e))}function q_(e){return/\p{Lu}/u.test(String.fromCodePoint(e))}function J_(e){return/[\p{P}\p{S}]/u.test(String.fromCodePoint(e))}function Y_(e){let t=e.some(K_)&&e.every(e=>K_(e)||J_(e)),n=e.length<=3&&e.every(e=>q_(e)||K_(e));return t||n}function X_(e){return(K_(e)||q_(e))&&!Bg(e)}function Z_(e,t){let n=!1;for(let r=0;r<e.length;r++){if(t[r])continue;let i=Ug[e[r]];i&&(r===0||t[r-1])&&(r===e.length-1||t[r+1])&&(e[r]=i,t[r]=!0,n=!0)}return n}function Q_(e){let t=e.graphemes().slice(),n=t.map(e=>e.codePointAt(0)),r=n.map(eg),i=t=>!r[t]&&!Fg(n[t])&&!(`imageName`in e.getSection(t));for(let e=0;e<n.length;e++){if(!i(e))continue;let t=e;for(;t+1<n.length&&i(t+1);)t++;if(Y_(n.slice(e,t+1)))for(let i=e;i<=t;i++)r[i]=X_(n[i]);e=t}return Z_(t,r)&&(e.text=t.join(``),e._graphemes=null),r}function $_(e,t,n,r,i,a,o,s,c,l,u,d){let f=0,p=0,m=0,h=0,g=s===`right`?1:s===`left`?0:.5,_=24/d,v=0;for(let o of i){o.trim();let i=o.getMaxScale(),s={positionedGlyphs:[],lineOffset:0};e.positionedLines[v]=s;let d=s.positionedGlyphs,y=0;if(!o.length()){p+=a,++v;continue}let b=H_(r,o,_),x=c===2&&!u?Q_(o):null,S=o.graphemes();for(let a=0;a<S.length;a++){let s=o.getSection(a),m=S[a],h=m.codePointAt(0),g=x?x[a]:G_(c,u,h),v=`fontStack`in s&&Pg(m)&&!t[s.fontStack]?.default?.[m]?[...m]:[m];for(let c of v){let u={glyph:c.codePointAt(0),grapheme:c,imageName:null,x:f,y:p+-17,vertical:g,scale:1,fontStack:``,sectionIndex:o.getSectionIndex(a),metrics:null,rect:null},m;if(`fontStack`in s){if(m=ev(s,c,g,b,t,n),!m)continue;u.fontStack=s.fontStack}else{if(e.iconsInText=!0,s.scale*=_,m=tv(s,g,i,b,r),!m)continue;y=Math.max(y,m.imageOffset),u.imageName=s.imageName}let{rect:h,metrics:v,baselineOffset:x}=m;if(u.y+=x,u.scale=s.scale,u.metrics=v,u.rect=h,d.push(u),!g)f+=v.advance*s.scale+l;else{e.verticalizable=!0;let t=`imageName`in s?v.advance:24;f+=t*s.scale+l}}}if(d.length!==0){let e=f-l;m=Math.max(e,m),nv(d,0,d.length-1,g)}f=0;let C=(i-1)*24;s.lineOffset=Math.max(y,C);let w=a*i+y;p+=w,h=Math.max(w,h),++v}let{horizontalAlign:y,verticalAlign:b}=V_(o);rv(e.positionedLines,g,y,b,m,h,a,p,i.length),e.top+=-b*p,e.bottom=e.top+p,e.left+=-y*m,e.right=e.left+m}function ev(e,t,n,r,i,a){let o=a[e.fontStack]?.default?.[t],s=W_(o,i,e,t);if(s===null)return null;let c;if(n)c=r.verticalLineContentWidth-e.scale*24;else{let t=U_(e.verticalAlign);c=(r.horizontalLineContentHeight-e.scale*24)*t}return{rect:s.rect,metrics:s.metrics,baselineOffset:c}}function tv(e,t,n,r,i){let a=i[e.imageName];if(!a)return null;let o=a.paddedRect,s=a.displaySize,c={width:s[0],height:s[1],left:1,top:-3,advance:t?s[1]:s[0]},l;if(t)l=r.verticalLineContentWidth-s[1]*e.scale;else{let t=U_(e.verticalAlign);l=(r.horizontalLineContentHeight-s[1]*e.scale)*t}let u=(t?s[0]:s[1])*e.scale-24*n;return{rect:o,metrics:c,baselineOffset:l,imageOffset:u}}function nv(e,t,n,r){if(r===0)return;let i=e[n],a=i.metrics.advance*i.scale,o=(e[n].x+a)*r;for(let r=t;r<=n;r++)e[r].x-=o}function rv(e,t,n,r,i,a,o,s,c){let l=(t-n)*i,u=0;u=a===o?-r*c*o+.5*o:-s*r- -17;for(let t of e)for(let e of t.positionedGlyphs)e.x+=l,e.y+=u}function iv(e,t,n){let{horizontalAlign:r,verticalAlign:i}=V_(n),a=t[0],o=t[1],s=a-e.displaySize[0]*r,c=s+e.displaySize[0],l=o-e.displaySize[1]*i;return{image:e,top:l,bottom:l+e.displaySize[1],left:s,right:c}}function av(e){let t=e.left,n=e.top,r=e.right-t,i=e.bottom-n,a=e.image.content[2]-e.image.content[0],o=e.image.content[3]-e.image.content[1],s=e.image.textFitWidth??`stretchOrShrink`,c=e.image.textFitHeight??`stretchOrShrink`,l=a/o;if(c===`proportional`){if(s===`stretchOnly`&&r/i<l||s===`proportional`){let e=Math.ceil(i*l);t*=e/r,r=e}}else if(s===`proportional`&&c===`stretchOnly`&&l!==0&&r/i>l){let e=Math.ceil(r/l);n*=e/i,i=e}return{x1:t,y1:n,x2:t+r,y2:n+i}}function ov(e,t,n,r,i,a){let o=e.image,s;if(o.content){let e=o.content,t=o.pixelRatio||1;s=[e[0]/t,e[1]/t,o.displaySize[0]-e[2]/t,o.displaySize[1]-e[3]/t]}let c=t.left*a,l=t.right*a,u,d,f,p;n===`width`||n===`both`?(p=i[0]+c-r[3],d=i[0]+l+r[1]):(p=i[0]+(c+l-o.displaySize[0])/2,d=p+o.displaySize[0]);let m=t.top*a,h=t.bottom*a;return n===`height`||n===`both`?(u=i[1]+m-r[0],f=i[1]+h+r[2]):(u=i[1]+(m+h-o.displaySize[1])/2,f=u+o.displaySize[1]),{image:o,top:u,right:d,bottom:f,left:p,collisionPadding:s}}var sv=32640;function cv(e,t){let{expression:n}=t;if(n.kind===`constant`)return{kind:`constant`,layoutSize:n.evaluate(new Dl(e+1))};if(n.kind===`source`)return{kind:`source`};if(n.kind===`composite`){let{minZoom:t,maxZoom:r}=lv(n.zoomStops,e);return{kind:`composite`,minZoom:t,maxZoom:r,interpolationType:n.interpolationType}}{let t=uv(n),r=n.evaluate(new Dl(e+1));return{kind:`camera`,zoomStops:n.zoomStops,sizes:t,layoutSize:r,interpolationType:n.interpolationType}}}function lv(e,t){let n=0;for(;n<e.length&&e[n]<=t;)n++;n=Math.max(0,n-1);let r=n;for(;r<e.length&&e[r]<t+1;)r++;return r=Math.min(e.length-1,r),{minZoom:e[n],maxZoom:e[r]}}function uv(e){return e.zoomStops.map(t=>e.evaluate(new Dl(t===-1/0?e.zoomStops[1]-1:t)))}function dv(e,{uSize:t,uSizeT:n},{lowerSize:r,upperSize:i}){return e.kind===`source`?r/128:e.kind===`composite`?ta.number(r/128,i/128,n):t}function fv(e,t){let n=0,r=0;return e.kind===`constant`?r=e.layoutSize:e.kind===`camera`?r=pv(e,t):e.kind===`composite`&&(n=mv(e,t)),{uSizeT:n,uSize:r}}function pv({zoomStops:e,sizes:t,layoutSize:n,interpolationType:r},i){let a=e.length-1;for(;a>0&&e[a]>i;)a--;let o=Math.min(a+1,e.length-1),s=r?N($i.interpolationFactor(r,i,e[a],e[o]),0,1):0;return Math.min(ta.number(t[a],t[o],s),n)}function mv({interpolationType:e,minZoom:t,maxZoom:n},r){return e?N($i.interpolationFactor(e,r,t,n),0,1):0}var hv=class e extends b{constructor(e,t,n,r){super(e,t),this.angle=n,r!==void 0&&(this.segment=r)}clone(){return new e(this.x,this.y,this.angle,this.segment)}};K(`Anchor`,hv);function gv(e,t,n,r,i){if(t.segment===void 0||n===0)return!0;let a=t,o=t.segment+1,s=0;for(;s>-n/2;){if(o--,o<0)return!1;s-=e[o].dist(a),a=e[o]}s+=e[o].dist(e[o+1]),o++;let c=[],l=0;for(;s<n/2;){let t=e[o-1],n=e[o],a=e[o+1];if(!a)return!1;let u=t.angleTo(n)-n.angleTo(a);for(u=Math.abs((u+3*Math.PI)%(Math.PI*2)-Math.PI),c.push({distance:s,angleDelta:u}),l+=u;s-c[0].distance>r;)l-=c.shift().angleDelta;if(l>i)return!1;o++,s+=n.dist(a)}return!0}function _v(e){let t=0;for(let n=0;n<e.length-1;n++)t+=e[n].dist(e[n+1]);return t}function vv(e,t,n){return e?3/5*t*n:0}function yv(e,t){return Math.max(e?e.right-e.left:0,t?t.right-t.left:0)}function bv(e,t,n,r,i,a){let o=vv(n,i,a),s=yv(n,r)*a,c=0,l=_v(e)/2;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1],a=r.dist(i);if(c+a>l){let u=(l-c)/a,d=new hv(ta.number(r.x,i.x,u),ta.number(r.y,i.y,u),i.angleTo(r),n);return d._round(),!o||gv(e,d,s,o,t)?d:void 0}c+=a}}function xv(e,t,n,r,i,a,o,s,c){let l=vv(r,a,o),u=yv(r,i),d=u*o,f=e[0].x===0||e[0].x===c||e[0].y===0||e[0].y===c;t-d<t/4&&(t=d+t/4);let p=a*2;return Sv(e,f?t/2*s%t:(u/2+p)*o*s%t,t,l,n,d,f,!1,c)}function Sv(e,t,n,r,i,a,o,s,c){let l=a/2,u=_v(e),d=0,f=t-n,p=[];for(let t=0;t<e.length-1;t++){let o=e[t],s=e[t+1],m=o.dist(s),h=s.angleTo(o);for(;f+n<d+m;){f+=n;let g=(f-d)/m,_=ta.number(o.x,s.x,g),v=ta.number(o.y,s.y,g);if(_>=0&&_<c&&v>=0&&v<c&&f-l>=0&&f+l<=u){let n=new hv(_,v,h,t);n._round(),(!r||gv(e,n,a,r,i))&&p.push(n)}}d+=m}return!s&&!p.length&&!o&&(p=Sv(e,d/2,n,r,i,a,o,!0,c)),p}function Cv(e,t,n,r,i){let a=[];for(let o of e){let e;for(let s=0;s<o.length-1;s++){let c=o[s],l=o[s+1];c.x<t&&l.x<t||(c.x<t?c=new b(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round():l.x<t&&(l=new b(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round()),!(c.y<n&&l.y<n)&&(c.y<n?c=new b(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round():l.y<n&&(l=new b(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round()),!(c.x>=r&&l.x>=r)&&(c.x>=r?c=new b(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round():l.x>=r&&(l=new b(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round()),!(c.y>=i&&l.y>=i)&&(c.y>=i?c=new b(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round():l.y>=i&&(l=new b(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round()),(!e||!c.equals(e[e.length-1]))&&(e=[c],a.push(e)),e.push(l)))))}}return a}function wv(e,t,n,r){let i=[],a=e.image,o=a.pixelRatio,s=a.paddedRect.w-2,c=a.paddedRect.h-2,l={x1:e.left,y1:e.top,x2:e.right,y2:e.bottom},u=a.stretchX||[[0,s]],d=a.stretchY||[[0,c]],f=(e,t)=>e+t[1]-t[0],p=u.reduce(f,0),m=d.reduce(f,0),h=s-p,g=c-m,_=0,v=p,y=0,x=m,S=0,C=h,w=0,T=g;if(a.content&&r){let t=a.content,n=t[2]-t[0],r=t[3]-t[1];(a.textFitWidth||a.textFitHeight)&&(l=av(e)),_=Tv(u,0,t[0]),y=Tv(d,0,t[1]),v=Tv(u,t[0],t[2]),x=Tv(d,t[1],t[3]),S=t[0]-_,w=t[1]-y,C=n-v,T=r-x}let E=l.x1,D=l.y1,O=l.x2-E,k=l.y2-D,A=(e,r,i,s)=>{let c=Dv(e.stretch-_,v,O,E),l=Ov(e.fixed-S,C,e.stretch,p),u=Dv(r.stretch-y,x,k,D),d=Ov(r.fixed-w,T,r.stretch,m),f=Dv(i.stretch-_,v,O,E),h=Ov(i.fixed-S,C,i.stretch,p),g=Dv(s.stretch-y,x,k,D),A=Ov(s.fixed-w,T,s.stretch,m),ee=new b(c,u),te=new b(f,u),ne=new b(f,g),re=new b(c,g),ie=new b(l/o,d/o),ae=new b(h/o,A/o),oe=t*Math.PI/180;if(oe){let e=Math.sin(oe),t=Math.cos(oe),n=[t,-e,e,t];ee._matMult(n),te._matMult(n),re._matMult(n),ne._matMult(n)}let se=e.stretch+e.fixed,ce=i.stretch+i.fixed,le=r.stretch+r.fixed,ue=s.stretch+s.fixed;return{tl:ee,tr:te,bl:re,br:ne,tex:{x:a.paddedRect.x+1+se,y:a.paddedRect.y+1+le,w:ce-se,h:ue-le},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:ie,pixelOffsetBR:ae,minFontScaleX:C/o/O,minFontScaleY:T/o/k,isSDF:n}};if(!r||!a.stretchX&&!a.stretchY)i.push(A({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:s+1},{fixed:0,stretch:c+1}));else{let e=Ev(u,h,p),t=Ev(d,g,m);for(let n=0;n<e.length-1;n++){let r=e[n],a=e[n+1];for(let e=0;e<t.length-1;e++){let n=t[e],o=t[e+1];i.push(A(r,n,a,o))}}}return i}function Tv(e,t,n){let r=0;for(let i of e)r+=Math.max(t,Math.min(n,i[1]))-Math.max(t,Math.min(n,i[0]));return r}function Ev(e,t,n){let r=[{fixed:-1,stretch:0}];for(let[t,n]of e){let e=r[r.length-1];r.push({fixed:t-e.stretch,stretch:e.stretch}),r.push({fixed:t-e.stretch,stretch:e.stretch+(n-t)})}return r.push({fixed:t+1,stretch:n}),r}function Dv(e,t,n,r){return e/t*n+r}function Ov(e,t,n,r){return e-t*n/r}function kv(e,t,n,r,i,a,o,s){let c=r.layout.get(`text-rotate`).evaluate(a,{})*Math.PI/180,l=[];for(let e of t.positionedLines)for(let r of e.positionedGlyphs){if(!r.rect)continue;let a=r.rect||{},u=4,d=!0,f=1,p=0,m=(i||s)&&r.vertical,h=r.metrics.advance*r.scale/2;if(s&&t.verticalizable){let t=(r.scale-1)*24,n=(24-r.metrics.width*r.scale)/2;p=e.lineOffset/2-(r.imageName?-n:t)}if(r.imageName){let e=o[r.imageName];d=e.sdf,f=e.pixelRatio,u=1/f}let g=i?[r.x+h,r.y]:[0,0],_=i?[0,0]:[r.x+h+n[0],r.y+n[1]-p],v=[0,0];m&&(v=_,_=[0,0]);let y=r.metrics.isDoubleResolution?2:1,x=(r.metrics.left-u)*r.scale-h+_[0],S=(-r.metrics.top-u)*r.scale+_[1],C=x+a.w/y*r.scale/f,w=S+a.h/y*r.scale/f,T=new b(x,S),E=new b(C,S),D=new b(x,w),O=new b(C,w);if(m){let e=new b(-h,h- -17),t=-Math.PI/2,n=12-h,i=r.imageName?n:0,a=new b(22-n,-i),o=new b(...v);T._rotateAround(t,e)._add(a)._add(o),E._rotateAround(t,e)._add(a)._add(o),D._rotateAround(t,e)._add(a)._add(o),O._rotateAround(t,e)._add(a)._add(o)}if(c){let e=Math.sin(c),t=Math.cos(c),n=[t,-e,e,t];T._matMult(n),E._matMult(n),D._matMult(n),O._matMult(n)}let k=new b(0,0),A=new b(0,0);l.push({tl:T,tr:E,bl:D,br:O,tex:a,writingMode:t.writingMode,glyphOffset:g,sectionIndex:r.sectionIndex,isSDF:d,pixelOffsetTL:k,pixelOffsetBR:A,minFontScaleX:0,minFontScaleY:0})}return l}var Av=class{constructor(e,t,n,r,i,a,o,s,c,l){if(this.boxStartIndex=e.length,c){let e=a.top,t=a.bottom,n=a.collisionPadding;n&&(e-=n[1],t+=n[3]);let r=t-e;r>0&&(r=Math.max(10,r),this.circleDiameter=r)}else{let c=a.image?.content&&(a.image.textFitWidth||a.image.textFitHeight)?av(a):{x1:a.left,y1:a.top,x2:a.right,y2:a.bottom};c.y1=c.y1*o-s[0],c.y2=c.y2*o+s[2],c.x1=c.x1*o-s[3],c.x2=c.x2*o+s[1];let u=a.collisionPadding;if(u&&(c.x1-=u[0]*o,c.y1-=u[1]*o,c.x2+=u[2]*o,c.y2+=u[3]*o),l){let e=new b(c.x1,c.y1),t=new b(c.x2,c.y1),n=new b(c.x1,c.y2),r=new b(c.x2,c.y2),i=l*Math.PI/180;e._rotate(i),t._rotate(i),n._rotate(i),r._rotate(i),c.x1=Math.min(e.x,t.x,n.x,r.x),c.x2=Math.max(e.x,t.x,n.x,r.x),c.y1=Math.min(e.y,t.y,n.y,r.y),c.y2=Math.max(e.y,t.y,n.y,r.y)}e.emplaceBack(t.x,t.y,c.x1,c.y1,c.x2,c.y2,n,r,i)}this.boxEndIndex=e.length}},jv=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i}t[e]=r}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r}t[e]=i}};function Mv(e,t=1){let n=wm.fromPoints(e[0]),r=Math.min(n.width(),n.height()),i=r/2,a=new jv([],Nv),{minX:o,minY:s,maxX:c,maxY:l}=n;if(r===0)return new b(o,s);for(let t=o;t<c;t+=r)for(let n=s;n<l;n+=r)a.push(new Pv(t+i,n+i,i,e));let u=Iv(e),d=u;for(;a.length;){let n=a.pop();(n.d>d.d||!d.d)&&(d=n),!(n.max-d.d<=t)&&(i=n.h/2,a.push(new Pv(n.p.x-i,n.p.y-i,i,e)),a.push(new Pv(n.p.x+i,n.p.y-i,i,e)),a.push(new Pv(n.p.x-i,n.p.y+i,i,e)),a.push(new Pv(n.p.x+i,n.p.y+i,i,e)))}return u.d>0&&d.d-u.d<=t?u.p:d.p}function Nv(e,t){return t.max-e.max}var Pv=class{constructor(e,t,n,r){this.p=new b(e,t),this.h=n,this.d=Fv(this.p,r),this.max=this.d+this.h*Math.SQRT2}};function Fv(e,t){let n=!1,r=1/0;for(let i of t)for(let t=0,a=i.length,o=a-1;t<a;o=t++){let a=i[t],s=i[o];a.y>e.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(n=!n),r=Math.min(r,$d(e,a,s))}return(n?1:-1)*Math.sqrt(r)}function Iv(e){let t=0,n=0,r=0,i=e[0];for(let e=0,a=i.length,o=a-1;e<a;o=e++){let a=i[e],s=i[o],c=a.x*s.y-s.x*a.y;n+=(a.x+s.x)*c,r+=(a.y+s.y)*c,t+=c*3}return new Pv(n/t,r/t,0,e)}var Lv=function(e){return e[e.center=1]=`center`,e[e.left=2]=`left`,e[e.right=3]=`right`,e[e.top=4]=`top`,e[e.bottom=5]=`bottom`,e[e[`top-left`]=6]=`top-left`,e[e[`top-right`]=7]=`top-right`,e[e[`bottom-left`]=8]=`bottom-left`,e[e[`bottom-right`]=9]=`bottom-right`,e}({}),Rv=1/0;function zv(e,t){function n(e,t){let n=0,r=0;t<0&&(t=0);let i=t/Math.SQRT2;switch(e){case`top-right`:case`top-left`:r=i-7;break;case`bottom-right`:case`bottom-left`:r=-i+7;break;case`bottom`:r=-t+7;break;case`top`:r=t-7}switch(e){case`top-right`:case`bottom-right`:n=-i;break;case`top-left`:case`bottom-left`:n=i;break;case`left`:n=t;break;case`right`:n=-t}return[n,r]}function r(e,t,n){let r=0,i=0;switch(t=Math.abs(t),n=Math.abs(n),e){case`top-right`:case`top-left`:case`top`:i=n-7;break;case`bottom-right`:case`bottom-left`:case`bottom`:i=-n+7}switch(e){case`top-right`:case`bottom-right`:case`right`:r=-t;break;case`top-left`:case`bottom-left`:case`left`:r=t}return[r,i]}return t[1]===Rv?n(e,t[0]):r(e,t[0],t[1])}function Bv(e,t,n){let r=e.layout,i=r.get(`text-variable-anchor-offset`)?.evaluate(t,{},n);if(i){let e=i.values,t=[];for(let n=0;n<e.length;n+=2){let r=t[n]=e[n],i=e[n+1].map(e=>e*24);r.startsWith(`top`)?i[1]-=7:r.startsWith(`bottom`)&&(i[1]+=7),t[n+1]=i}return new zi(t)}let a=r.get(`text-variable-anchor`);if(a){let i;i=e._unevaluatedLayout.getValue(`text-radial-offset`)===void 0?r.get(`text-offset`).evaluate(t,{},n).map(e=>e*24):[r.get(`text-radial-offset`).evaluate(t,{},n)*24,Rv];let o=[];for(let e of a)o.push(e,zv(e,i));return new zi(o)}return null}function Vv(e){e.bucket.createArrays();let t=512*e.bucket.overscaling;e.bucket.tilePixelRatio=M/t,e.bucket.compareText={},e.bucket.iconsNeedLinear=!1;let n=e.bucket.layers[0],r=n.layout,i=n._unevaluatedLayout._values,a={layoutIconSize:i[`icon-size`].possiblyEvaluate(new Dl(e.bucket.zoom+1),e.canonical),layoutTextSize:i[`text-size`].possiblyEvaluate(new Dl(e.bucket.zoom+1),e.canonical),textMaxSize:i[`text-size`].possiblyEvaluate(new Dl(18))};if(e.bucket.textSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.textSizeData;a.compositeTextSizes=[i[`text-size`].possiblyEvaluate(new Dl(t),e.canonical),i[`text-size`].possiblyEvaluate(new Dl(n),e.canonical)]}if(e.bucket.iconSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.iconSizeData;a.compositeIconSizes=[i[`icon-size`].possiblyEvaluate(new Dl(t),e.canonical),i[`icon-size`].possiblyEvaluate(new Dl(n),e.canonical)]}let o=r.get(`text-line-height`)*24,s=r.get(`text-rotation-alignment`)!==`viewport`&&r.get(`symbol-placement`)!==`point`,c=r.get(`text-keep-upright`),l=r.get(`text-size`);for(let t of e.bucket.features){let i=r.get(`text-font`).evaluate(t,{},e.canonical).join(`,`),u=l.evaluate(t,{},e.canonical),d=a.layoutTextSize.evaluate(t,{},e.canonical),f=a.layoutIconSize.evaluate(t,{},e.canonical),p={horizontal:{},vertical:void 0},m=t.text,h=[0,0];if(m){let a=m.toString(),l=r.get(`text-letter-spacing`).evaluate(t,{},e.canonical)*24,f=Lg(a)?l:0,g=r.get(`text-anchor`).evaluate(t,{},e.canonical),_=Bv(n,t,e.canonical);if(!_){let n=r.get(`text-radial-offset`).evaluate(t,{},e.canonical);h=n?zv(g,[n*24,Rv]):r.get(`text-offset`).evaluate(t,{},e.canonical).map(e=>e*24)}let v=s?`center`:r.get(`text-justify`).evaluate(t,{},e.canonical),y=r.get(`symbol-placement`)===`point`?r.get(`text-max-width`).evaluate(t,{},e.canonical)*24:1/0,b=()=>{e.bucket.allowVerticalPlacement&&Ig(a)&&(p.vertical=B_(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,`left`,f,h,2,!0,d,u))};if(!s&&_){let t=new Set;if(v===`auto`)for(let e=0;e<_.values.length;e+=2)t.add(Hv(_.values[e]));else t.add(v);let n=!1;for(let r of t)if(!p.horizontal[r]){if(n)p.horizontal[r]=p.horizontal[0];else{let t=B_(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,`center`,r,f,h,1,!1,d,u);t&&(p.horizontal[r]=t,n=t.positionedLines.length===1)}}b()}else{v===`auto`&&(v=Hv(g));let t=B_(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,1,!1,d,u);t&&(p.horizontal[v]=t),b(),Ig(a)&&s&&c&&(p.vertical=B_(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,2,!1,d,u))}}let g,_=!1;if(t.icon?.name){let n=e.imageMap[t.icon.name];n&&(g=iv(e.imagePositions[t.icon.name],r.get(`icon-offset`).evaluate(t,{},e.canonical),r.get(`icon-anchor`).evaluate(t,{},e.canonical)),_=!!n.sdf,e.bucket.sdfIcons===void 0?e.bucket.sdfIcons=_:e.bucket.sdfIcons!==_&&Yt(`Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer`),n.pixelRatio===e.bucket.pixelRatio?r.get(`icon-rotate`).constantOr(1)!==0&&(e.bucket.iconsNeedLinear=!0):e.bucket.iconsNeedLinear=!0)}let v=Kv(p.horizontal)||p.vertical;e.bucket.iconsInText||=v?v.iconsInText:!1,(v||g)&&Uv(e.bucket,t,p,g,e.imageMap,a,d,f,h,_,e.canonical,e.subdivisionGranularity,e.hasPromoteId)}e.showCollisionBoxes&&e.bucket.generateCollisionDebugBuffers()}function Hv(e){switch(e){case`right`:case`top-right`:case`bottom-right`:return`right`;case`left`:case`top-left`:case`bottom-left`:return`left`}return`center`}function Uv(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=a.textMaxSize.evaluate(t,{});p===void 0&&(p=o);let m=e.layers[0].layout,h=m.get(`icon-offset`).evaluate(t,{},u),g=Kv(n.horizontal),_=o/24,v=e.tilePixelRatio*_,y=e.tilePixelRatio*p/24,b=e.tilePixelRatio*s,x=e.tilePixelRatio*m.get(`symbol-spacing`),S=m.get(`text-padding`)*e.tilePixelRatio,C=py(m,t,u,e.tilePixelRatio),w=m.get(`text-max-angle`)/180*Math.PI,T=m.get(`text-rotation-alignment`)!==`viewport`&&m.get(`symbol-placement`)!==`point`,E=m.get(`icon-rotation-alignment`).constantOr(`viewport`)===`map`&&m.get(`symbol-placement`)!==`point`,D=m.get(`symbol-placement`),O=x/2,k=m.get(`icon-text-fit`),A;r&&k!==`none`&&(e.allowVerticalPlacement&&n.vertical&&(A=ov(r,n.vertical,k,m.get(`icon-text-fit-padding`),h,_)),g&&(r=ov(r,g,k,m.get(`icon-text-fit-padding`),h,_)));let ee=u?d.line.getGranularityForZoomLevel(u.z):1,te=(s,d)=>{d.x<0||d.x>=8192||d.y<0||d.y>=8192||qv(e,d,s,n,r,i,A,e.layers[0],e.collisionBoxArray,t.index,t.sourceLayerIndex,e.index,v,[S,S,S,S],T,c,b,C,E,h,t,a,l,u,o,f)};if(D===`line`)for(let i of Cv(t.geometry,0,0,M,M)){let t=rm(i,ee),a=xv(t,x,w,n.vertical||g,r,24,y,e.overscaling,M);for(let n of a){let r=g;(!r||!Jv(e,r.text,O,n))&&te(t,n)}}else if(D===`line-center`){for(let e of t.geometry)if(e.length>1){let t=rm(e,ee),i=bv(t,w,n.vertical||g,r,24,y);i&&te(t,i)}}else if(t.type===`Polygon`)for(let e of oa(t.geometry,0)){let t=Mv(e,16);te(rm(e[0],ee,!0),new hv(t.x,t.y,0))}else if(t.type===`LineString`)for(let e of t.geometry){let t=rm(e,ee);te(t,new hv(t[0].x,t[0].y,0))}else if(t.type===`Point`)for(let e of t.geometry)for(let t of e)te([t],new hv(t.x,t.y,0))}function Wv(e,t){let n=e.length,r=t?.values;if(r?.length>0)for(let t=0;t<r.length;t+=2){let n=Lv[r[t]],i=r[t+1];e.emplaceBack(n,i[0],i[1])}return[n,e.length]}function Gv(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let g=kv(t,n,s,i,a,o,r,e.allowVerticalPlacement),_=e.textSizeData,v=null;_.kind===`source`?(v=[128*i.layout.get(`text-size`).evaluate(o,{})],v[0]>32640&&Yt(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):_.kind===`composite`&&(v=[128*m.compositeTextSizes[0].evaluate(o,{},h),128*m.compositeTextSizes[1].evaluate(o,{},h)],(v[0]>32640||v[1]>32640)&&Yt(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),e.addSymbols(e.text,g,v,s,a,o,u,t,l.lineStartIndex,l.lineLength,p,h,c);for(let t of d)f[t]=e.text.placedSymbolArray.length-1;return g.length*4}function Kv(e){for(let t in e)return e[t];return null}function qv(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T){let E=e.addToLineVertexArray(t,n),D=s.layout.get(`symbol-height-offset`).evaluate(b,{},C);D>e.maxHeightOffset&&(e.maxHeightOffset=D);let O,k,A,ee,te=0,ne=0,re=0,ie=0,ae=-1,oe=-1,se={},ce=(0,fd.default)(``);if(e.allowVerticalPlacement&&r.vertical){let e=s.layout.get(`text-rotate`).evaluate(b,{},C)+90,n=r.vertical;A=new Av(c,t,l,u,d,n,f,p,m,e),o&&(ee=new Av(c,t,l,u,d,o,g,_,m,e))}if(i){let n=s.layout.get(`icon-rotate`).evaluate(b,{}),r=s.layout.get(`icon-text-fit`)!==`none`,a=wv(i,n,S,r),f=o?wv(o,n,S,r):void 0;k=new Av(c,t,l,u,d,i,g,_,!1,n),te=a.length*4;let p=e.iconSizeData,m=null;p.kind===`source`?(m=[128*s.layout.get(`icon-size`).evaluate(b,{})],m[0]>32640&&Yt(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):p.kind===`composite`&&(m=[128*x.compositeIconSizes[0].evaluate(b,{},C),128*x.compositeIconSizes[1].evaluate(b,{},C)],(m[0]>32640||m[1]>32640)&&Yt(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),e.addSymbols(e.icon,a,m,y,v,b,0,t,E.lineStartIndex,E.lineLength,-1,C,D),ae=e.icon.placedSymbolArray.length-1,f&&(ne=f.length*4,e.addSymbols(e.icon,f,m,y,v,b,2,t,E.lineStartIndex,E.lineLength,-1,C,D),oe=e.icon.placedSymbolArray.length-1)}let le=Object.keys(r.horizontal);for(let n of le){let i=r.horizontal[n];O||=(ce=(0,fd.default)(i.text),new Av(c,t,l,u,d,i,f,p,m,s.layout.get(`text-rotate`).evaluate(b,{},C)));let o=i.positionedLines.length===1;if(re+=Gv(e,t,i,a,s,m,b,h,D,E,r.vertical?1:3,o?le:[n],se,ae,x,C),o)break}r.vertical&&(ie+=Gv(e,t,r.vertical,a,s,m,b,h,D,E,2,[`vertical`],se,oe,x,C));let ue=O?O.boxStartIndex:e.collisionBoxArray.length,de=O?O.boxEndIndex:e.collisionBoxArray.length,fe=A?A.boxStartIndex:e.collisionBoxArray.length,pe=A?A.boxEndIndex:e.collisionBoxArray.length,me=k?k.boxStartIndex:e.collisionBoxArray.length,he=k?k.boxEndIndex:e.collisionBoxArray.length,ge=ee?ee.boxStartIndex:e.collisionBoxArray.length,_e=ee?ee.boxEndIndex:e.collisionBoxArray.length,ve=-1,ye=(e,t)=>e?.circleDiameter?Math.max(e.circleDiameter,t):t;ve=ye(O,ve),ve=ye(A,ve),ve=ye(k,ve),ve=ye(ee,ve);let be=+(ve>-1);be&&(ve*=w/24),e.glyphOffsetArray.length>=e.maxGlyphs&&Yt(`Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907`),b.sortKey!==void 0&&e.addToSortKeyRanges(e.symbolInstances.length,b.sortKey);let xe=Bv(s,b,C),[Se,Ce]=Wv(e.textAnchorOffsets,xe);T&&(ce=Yv(ce,b)),e.symbolInstances.emplaceBack(t.x,t.y,se.right>=0?se.right:-1,se.center>=0?se.center:-1,se.left>=0?se.left:-1,se.vertical||-1,ae,oe,ce,ue,de,fe,pe,me,he,ge,_e,l,re,ie,te,ne,be,0,f,ve,Se,Ce,D)}function Jv(e,t,n,r){let i=e.compareText;if(!(t in i))i[t]=[];else{let e=i[t];for(let t=e.length-1;t>=0;t--)if(r.dist(e[t])<n)return!0}return i[t].push(r),!1}function Yv(e,t){return t.id==null||t.properties?.cluster?e:(0,fd.default)(String(t.id),e)}function Xv(e,t,n){let r=`never`,i=e.get(t);return i?r=i:e.get(n)&&(r=`always`),r}var Zv=[{name:`a_fade_opacity`,components:1,type:`Uint8`,offset:0}];function Qv(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=s?Math.min(sv,Math.round(s[0])):0,h=s?Math.min(sv,Math.round(s[1])):0;e.emplaceBack(t,n,Math.round(r*32),Math.round(i*32),a,o,(m<<1)+ +!!c,h,l*16,u*16,d*256,f*256,p)}function $v(e,t,n){e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n)}function ey(e){for(let t of e.sections)if(Hg(t.text))return!0;return!1}var ty=class{constructor(e){this.layoutVertexArray=new Ju,this.indexArray=new td,this.programConfigurations=e,this.segments=new od,this.dynamicLayoutVertexArray=new Yu,this.opacityVertexArray=new Xu,this.hasVisibleVertices=!1,this.placedSymbolArray=new ku}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,t,n,r){this.isEmpty()||(n&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Uh.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,t),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,Wh.members,!0),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,Zv,!0),this.opacityVertexBuffer.itemSize=1),(n||r)&&this.programConfigurations.upload(e))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}};K(`SymbolBuffers`,ty);var ny=class{constructor(e,t,n){this.layoutVertexArray=new e,this.layoutAttributes=t,this.indexArray=new n,this.segments=new od,this.collisionVertexArray=new $u}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,Gh.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())}};K(`CollisionBuffers`,ny);var ry=class{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=!0,this.hasRTLText=!1,this.maxHeightOffset=0,this.sortKeyRanges=[],this.collisionCircleArray=[],this.maxGlyphs=65535;let t=this.layers[0]._unevaluatedLayout._values;this.textSizeData=cv(this.zoom,t[`text-size`]),this.iconSizeData=cv(this.zoom,t[`icon-size`]);let n=this.layers[0].layout,r=n.get(`symbol-sort-key`),i=n.get(`symbol-z-order`);this.canOverlap=Xv(n,`text-overlap`,`text-allow-overlap`)!==`never`||Xv(n,`icon-overlap`,`icon-allow-overlap`)!==`never`||n.get(`text-ignore-placement`)||n.get(`icon-ignore-placement`),this.sortFeaturesByKey=i!==`viewport-y`&&!r.isConstant();let a=i===`viewport-y`||i===`auto`&&!this.sortFeaturesByKey;this.sortFeaturesByY=a&&this.canOverlap,n.get(`symbol-placement`)===`point`&&(this.writingModes=n.get(`text-writing-mode`).map(e=>A_[e])),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id),this.sourceID=e.sourceID}createArrays(){this.text=new ty(new Pd(this.layers,this.zoom,e=>e.startsWith(`text`))),this.icon=new ty(new Pd(this.layers,this.zoom,e=>e.startsWith(`icon`))),this.glyphOffsetArray=new Mu,this.lineVertexArray=new Nu,this.symbolInstances=new ju,this.textAnchorOffsets=new Fu}calculateGlyphDependencies(e,t,n,r,i){let a=(r||this.allowVerticalPlacement)&&i,o=$g.fromFeature(e,n),s=o.graphemes();for(let e=0;e<s.length;e++){let n=o.getSection(e);if(`imageName`in n)continue;let r=(t[n.fontStack]||={default:{}}).default,i=s[e];Pg(i)&&(r[i]=!0);for(let e of i){if(r[e]=!0,!a)continue;let t=Ug[e];t&&(r[t]=!0)}}}populate(e,t,n){let r=this.layers[0],i=r.layout,a=i.get(`text-font`),o=i.get(`text-field`),s=i.get(`icon-image`),c=(o.value.kind!==`constant`||o.value.value instanceof Ni&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&(a.value.kind!==`constant`||a.value.value.length>0),l=s.value.kind!==`constant`||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get(`symbol-sort-key`);if(this.features=[],!c&&!l)return;let d=t.iconDependencies,f=t.glyphDependencies,p=t.availableImages,m=new Dl(this.zoom);for(let{feature:t,id:o,index:s,sourceLayerIndex:h}of e){let e=r._featureFilter.needGeometry,g=Vd(t,e);if(!r._featureFilter.filter(m,g,n))continue;e||(g.geometry=Bd(t));let _;if(c){let e=r.getValueAndResolveTokens(`text-field`,g,n,p),t=Ni.factory(e);this.hasRTLText||=ey(t),_=Cg(t,r,g)}let v;if(l){let e=r.getValueAndResolveTokens(`icon-image`,g,n,p);v=e instanceof Bi?e:Bi.fromString(e)}if(!_&&!v)continue;let y=this.sortFeaturesByKey?u.evaluate(g,{},n):void 0,b={id:o,text:_,icon:v,index:s,sourceLayerIndex:h,geometry:g.geometry,properties:t.properties,type:Om.types[t.type],sortKey:y};if(this.features.push(b),v&&(d[v.name]=!0),_){let e=a.evaluate(g,{},n).join(`,`),t=i.get(`text-rotation-alignment`)!==`viewport`&&i.get(`symbol-placement`)!==`point`;this.allowVerticalPlacement=this.writingModes?.includes(2);let r=Ig(_.toString());this.calculateGlyphDependencies(_,f,e,t,r);for(let e of _.sections)e.image&&(d[e.image.name]=!0)}}i.get(`symbol-placement`)===`line`&&(this.features=Og(this.features)),this.sortFeaturesByKey&&this.features.sort((e,t)=>e.sortKey-t.sortKey)}update(e,t,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}),this.icon.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}))}addFeatures({options:e,canonical:t,glyphMap:n,glyphPositions:r,iconMap:i,iconPositions:a,showCollisionBoxes:o}){Vv({bucket:this,glyphMap:n,glyphPositions:r,imageMap:i,imagePositions:a,showCollisionBoxes:o,canonical:t,subdivisionGranularity:e.subdivisionGranularity,hasPromoteId:e.featureIndex.promoteId!=null})}isEmpty(){return this.symbolInstances.length===0}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,t){let n=this.lineVertexArray.length;if(e.segment!==void 0){let n=e.dist(t[e.segment+1]),r=e.dist(t[e.segment]),i={};for(let r=e.segment+1;r<t.length;r++)i[r]={x:t[r].x,y:t[r].y,tileUnitDistanceFromAnchor:n},r<t.length-1&&(n+=t[r+1].dist(t[r]));for(let n=e.segment||0;n>=0;n--)i[n]={x:t[n].x,y:t[n].y,tileUnitDistanceFromAnchor:r},n>0&&(r+=t[n-1].dist(t[n]));for(let e=0;e<t.length;e++){let t=i[e];this.lineVertexArray.emplaceBack(t.x,t.y,t.tileUnitDistanceFromAnchor)}}return{lineStartIndex:n,lineLength:this.lineVertexArray.length-n}}addSymbols(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e.indexArray,m=e.layoutVertexArray,h=e.segments.prepareSegment(4*t.length,m,p,this.canOverlap?a.sortKey:void 0),g=this.glyphOffsetArray.length,_=h.vertexLength,v=this.allowVerticalPlacement&&o===2?Math.PI/2:0,y=a.text&&a.text.sections;for(let r=0;r<t.length;r++){let{tl:i,tr:o,bl:c,br:l,tex:u,pixelOffsetTL:g,pixelOffsetBR:_,minFontScaleX:b,minFontScaleY:x,glyphOffset:S,isSDF:C,sectionIndex:w}=t[r],T=h.vertexLength,E=S[1];Qv(m,s.x,s.y,i.x,E+i.y,u.x,u.y,n,C,g.x,g.y,b,x,f),Qv(m,s.x,s.y,o.x,E+o.y,u.x+u.w,u.y,n,C,_.x,g.y,b,x,f),Qv(m,s.x,s.y,c.x,E+c.y,u.x,u.y+u.h,n,C,g.x,_.y,b,x,f),Qv(m,s.x,s.y,l.x,E+l.y,u.x+u.w,u.y+u.h,n,C,_.x,_.y,b,x,f),$v(e.dynamicLayoutVertexArray,s,v),p.emplaceBack(T,T+2,T+1),p.emplaceBack(T+1,T+2,T+3),h.vertexLength+=4,h.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(S[0]),(r===t.length-1||w!==t[r+1].sectionIndex)&&e.programConfigurations.populatePaintArrays(m.length,a,a.index,{imagePositions:{},canonical:d,formattedSection:y?.[w]})}e.placedSymbolArray.emplaceBack(s.x,s.y,g,this.glyphOffsetArray.length-g,_,c,l,s.segment,n?n[0]:0,n?n[1]:0,r[0],r[1],o,0,!1,0,u,f)}_addCollisionDebugVertex(e,t,n,r,i,a){return t.emplaceBack(0,0),e.emplaceBack(n.x,n.y,r,i,Math.round(a.x),Math.round(a.y))}addCollisionDebugVertices(e,t,n,r,i,a,o){let s=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),c=s.vertexLength,l=i.layoutVertexArray,u=i.collisionVertexArray,d=o.anchorX,f=o.anchorY;this._addCollisionDebugVertex(l,u,a,d,f,new b(e,t)),this._addCollisionDebugVertex(l,u,a,d,f,new b(n,t)),this._addCollisionDebugVertex(l,u,a,d,f,new b(n,r)),this._addCollisionDebugVertex(l,u,a,d,f,new b(e,r)),s.vertexLength+=4;let p=i.indexArray;p.emplaceBack(c,c+1),p.emplaceBack(c+1,c+2),p.emplaceBack(c+2,c+3),p.emplaceBack(c+3,c),s.primitiveLength+=4}addDebugCollisionBoxes(e,t,n,r){for(let i=e;i<t;i++){let e=this.collisionBoxArray.get(i),t=e.x1,a=e.y1,o=e.x2,s=e.y2;this.addCollisionDebugVertices(t,a,o,s,r?this.textCollisionBox:this.iconCollisionBox,e.anchorPoint,n)}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new ny(Zu,Kh.members,nd),this.iconCollisionBox=new ny(Zu,Kh.members,nd);for(let e=0;e<this.symbolInstances.length;e++){let t=this.symbolInstances.get(e);this.addDebugCollisionBoxes(t.textBoxStartIndex,t.textBoxEndIndex,t,!0),this.addDebugCollisionBoxes(t.verticalTextBoxStartIndex,t.verticalTextBoxEndIndex,t,!0),this.addDebugCollisionBoxes(t.iconBoxStartIndex,t.iconBoxEndIndex,t,!1),this.addDebugCollisionBoxes(t.verticalIconBoxStartIndex,t.verticalIconBoxEndIndex,t,!1)}}_deserializeCollisionBoxesForSymbol(e,t,n,r,i,a,o,s,c){let l={};for(let r=t;r<n;r++){let t=e.get(r);l.textBox={x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,anchorPointX:t.anchorPointX,anchorPointY:t.anchorPointY},l.textFeatureIndex=t.featureIndex;break}for(let t=r;t<i;t++){let n=e.get(t);l.verticalTextBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalTextFeatureIndex=n.featureIndex;break}for(let t=a;t<o;t++){let n=e.get(t);l.iconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.iconFeatureIndex=n.featureIndex;break}for(let t=s;t<c;t++){let n=e.get(t);l.verticalIconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalIconFeatureIndex=n.featureIndex;break}return l}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let t=0;t<this.symbolInstances.length;t++){let n=this.symbolInstances.get(t);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,n.textBoxStartIndex,n.textBoxEndIndex,n.verticalTextBoxStartIndex,n.verticalTextBoxEndIndex,n.iconBoxStartIndex,n.iconBoxEndIndex,n.verticalIconBoxStartIndex,n.verticalIconBoxEndIndex))}}hasTextData(){return this.text.segments.get().length>0}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,t){let n=e.placedSymbolArray.get(t),r=n.vertexStartIndex+n.numGlyphs*4;for(let t=n.vertexStartIndex;t<r;t+=4)e.indexArray.emplaceBack(t,t+2,t+1),e.indexArray.emplaceBack(t+1,t+2,t+3)}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;let t=Math.sin(e),n=Math.cos(e),r=[],i=[],a=[];for(let e=0;e<this.symbolInstances.length;++e){a.push(e);let o=this.symbolInstances.get(e);r.push(Math.round(t*o.anchorX+n*o.anchorY)|0),i.push(o.featureIndex)}return a.sort((e,t)=>r[e]-r[t]||i[t]-i[e]),a}addToSortKeyRanges(e,t){let n=this.sortKeyRanges[this.sortKeyRanges.length-1];n?.sortKey===t?n.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:t,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(let e of this.symbolInstanceIndexes){let t=this.symbolInstances.get(e);this.featureSortOrder.push(t.featureIndex);let n=[t.rightJustifiedTextSymbolIndex,t.centerJustifiedTextSymbolIndex,t.leftJustifiedTextSymbolIndex];for(let e=0;e<n.length;e++){let t=n[e];t>=0&&n.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t)}t.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,t.verticalPlacedTextSymbolIndex),t.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.placedIconSymbolIndex),t.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}};K(`SymbolBucket`,ry,{omit:[`layers`,`collisionBoxArray`,`features`,`compareText`]});function iy(e,t){return t.replace(/{([^{}]+)}/g,(t,n)=>e&&n in e?String(e[n]):``)}var ay,oy=()=>ay||=new Vl({"symbol-placement":new q(z.layout_symbol[`symbol-placement`],`symbol-placement`),"symbol-spacing":new q(z.layout_symbol[`symbol-spacing`],`symbol-spacing`),"symbol-avoid-edges":new q(z.layout_symbol[`symbol-avoid-edges`],`symbol-avoid-edges`),"symbol-sort-key":new J(z.layout_symbol[`symbol-sort-key`],`symbol-sort-key`),"symbol-z-order":new q(z.layout_symbol[`symbol-z-order`],`symbol-z-order`),"icon-allow-overlap":new q(z.layout_symbol[`icon-allow-overlap`],`icon-allow-overlap`),"icon-overlap":new q(z.layout_symbol[`icon-overlap`],`icon-overlap`),"icon-ignore-placement":new q(z.layout_symbol[`icon-ignore-placement`],`icon-ignore-placement`),"icon-optional":new q(z.layout_symbol[`icon-optional`],`icon-optional`),"icon-rotation-alignment":new J(z.layout_symbol[`icon-rotation-alignment`],`icon-rotation-alignment`),"icon-size":new J(z.layout_symbol[`icon-size`],`icon-size`),"icon-text-fit":new q(z.layout_symbol[`icon-text-fit`],`icon-text-fit`),"icon-text-fit-padding":new q(z.layout_symbol[`icon-text-fit-padding`],`icon-text-fit-padding`),"icon-image":new J(z.layout_symbol[`icon-image`],`icon-image`),"icon-rotate":new J(z.layout_symbol[`icon-rotate`],`icon-rotate`),"icon-padding":new J(z.layout_symbol[`icon-padding`],`icon-padding`),"icon-keep-upright":new q(z.layout_symbol[`icon-keep-upright`],`icon-keep-upright`),"icon-offset":new J(z.layout_symbol[`icon-offset`],`icon-offset`),"icon-anchor":new J(z.layout_symbol[`icon-anchor`],`icon-anchor`),"icon-pitch-alignment":new q(z.layout_symbol[`icon-pitch-alignment`],`icon-pitch-alignment`),"text-pitch-alignment":new q(z.layout_symbol[`text-pitch-alignment`],`text-pitch-alignment`),"text-rotation-alignment":new q(z.layout_symbol[`text-rotation-alignment`],`text-rotation-alignment`),"text-field":new J(z.layout_symbol[`text-field`],`text-field`),"text-font":new J(z.layout_symbol[`text-font`],`text-font`),"text-size":new J(z.layout_symbol[`text-size`],`text-size`),"text-max-width":new J(z.layout_symbol[`text-max-width`],`text-max-width`),"text-line-height":new q(z.layout_symbol[`text-line-height`],`text-line-height`),"text-letter-spacing":new J(z.layout_symbol[`text-letter-spacing`],`text-letter-spacing`),"text-justify":new J(z.layout_symbol[`text-justify`],`text-justify`),"text-radial-offset":new J(z.layout_symbol[`text-radial-offset`],`text-radial-offset`),"text-variable-anchor":new q(z.layout_symbol[`text-variable-anchor`],`text-variable-anchor`),"text-variable-anchor-offset":new J(z.layout_symbol[`text-variable-anchor-offset`],`text-variable-anchor-offset`),"text-anchor":new J(z.layout_symbol[`text-anchor`],`text-anchor`),"text-max-angle":new q(z.layout_symbol[`text-max-angle`],`text-max-angle`),"text-writing-mode":new q(z.layout_symbol[`text-writing-mode`],`text-writing-mode`),"text-rotate":new J(z.layout_symbol[`text-rotate`],`text-rotate`),"text-padding":new q(z.layout_symbol[`text-padding`],`text-padding`),"text-keep-upright":new q(z.layout_symbol[`text-keep-upright`],`text-keep-upright`),"text-transform":new J(z.layout_symbol[`text-transform`],`text-transform`),"text-offset":new J(z.layout_symbol[`text-offset`],`text-offset`),"text-allow-overlap":new q(z.layout_symbol[`text-allow-overlap`],`text-allow-overlap`),"text-overlap":new q(z.layout_symbol[`text-overlap`],`text-overlap`),"text-ignore-placement":new q(z.layout_symbol[`text-ignore-placement`],`text-ignore-placement`),"text-optional":new q(z.layout_symbol[`text-optional`],`text-optional`),"symbol-height-offset":new J(z.layout_symbol[`symbol-height-offset`],`symbol-height-offset`),"symbol-height-anchor":new q(z.layout_symbol[`symbol-height-anchor`],`symbol-height-anchor`)}),sy,cy=()=>sy||=new Vl({"icon-opacity":new J(z.paint_symbol[`icon-opacity`],`icon-opacity`),"icon-color":new J(z.paint_symbol[`icon-color`],`icon-color`),"icon-halo-color":new J(z.paint_symbol[`icon-halo-color`],`icon-halo-color`),"icon-halo-width":new J(z.paint_symbol[`icon-halo-width`],`icon-halo-width`),"icon-halo-blur":new J(z.paint_symbol[`icon-halo-blur`],`icon-halo-blur`),"icon-translate":new q(z.paint_symbol[`icon-translate`],`icon-translate`),"icon-translate-anchor":new q(z.paint_symbol[`icon-translate-anchor`],`icon-translate-anchor`),"text-opacity":new J(z.paint_symbol[`text-opacity`],`text-opacity`),"text-color":new J(z.paint_symbol[`text-color`],`text-color`,{runtimeType:zr,getOverride:e=>e.textColor,hasOverride:e=>!!e.textColor}),"text-halo-color":new J(z.paint_symbol[`text-halo-color`],`text-halo-color`),"text-halo-width":new J(z.paint_symbol[`text-halo-width`],`text-halo-width`),"text-halo-blur":new J(z.paint_symbol[`text-halo-blur`],`text-halo-blur`),"text-translate":new q(z.paint_symbol[`text-translate`],`text-translate`),"text-translate-anchor":new q(z.paint_symbol[`text-translate-anchor`],`text-translate-anchor`)}),ly={get paint(){return cy()},get layout(){return oy()}},uy=class{constructor(e){if(e.property.overrides===void 0)throw Error(`overrides must be provided to instantiate FormatSectionOverride class`);this.type=e.property.overrides?e.property.overrides.runtimeType:Lr,this.defaultValue=e}evaluate(e){if(e.formattedSection){let t=this.defaultValue.property.overrides;if(t?.hasOverride(e.formattedSection))return t.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){if(!this.defaultValue.isConstant()){let t=this.defaultValue.value;e(t._styleExpression.expression)}}outputDefined(){return!1}serialize(){return null}};K(`FormatSectionOverride`,uy,{omit:[`defaultValue`]});var dy=e=>e.type===`symbol`,fy=class e extends Wl{constructor(e,t){super(e,ly,t)}recalculate(e,t){super.recalculate(e,t);let n=this.layout.get(`icon-rotation-alignment`);if((n.value.kind!==`constant`||n.value.value===`auto`)&&(this.layout._values[`icon-rotation-alignment`]=new Pl(n.property,{kind:`constant`,value:this.layout.get(`symbol-placement`)===`point`?`viewport`:`map`},n.parameters)),this.layout.get(`text-rotation-alignment`)===`auto`&&(this.layout.get(`symbol-placement`)===`point`?this.layout._values[`text-rotation-alignment`]=`viewport`:this.layout._values[`text-rotation-alignment`]=`map`),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`).constantOr(`viewport`)),this.layout.get(`symbol-placement`)===`point`){let e=this.layout.get(`text-writing-mode`);if(e){let t=[];for(let n of e)t.includes(n)||t.push(n);this.layout._values[`text-writing-mode`]=t}else this.layout._values[`text-writing-mode`]=[`horizontal`]}this._setPaintOverrides()}getValueAndResolveTokens(e,t,n,r){let i=this.layout.get(e).evaluate(t,{},n,r),a=this._unevaluatedLayout._values[e];return!a.isDataDriven()&&!Ns(a.value)&&i?iy(t.properties,i):i}createBucket(e){return new ry(e)}queryRadius(){return 0}queryIntersectsFeature(){throw Error(`Should take a different path in FeatureIndex`)}_setPaintOverrides(){for(let t of ly.paint.overridableProperties){if(!e.hasPaintOverride(this.layout,t))continue;let n=this.paint.get(t),r=new As(new uy(n),`layers[${this.id}].paint.${n.property.name}`,n.property.specification),i=null;i=n.value.kind===`constant`||n.value.kind===`source`?new Fs(`source`,r):new Is(`composite`,r,n.value.zoomStops),this.paint._values[t]=new Pl(n.property,i,n.parameters)}}_handleOverridablePaintPropertyUpdate(t,n,r){return!this.layout||n.isDataDriven()||r.isDataDriven()?!1:e.hasPaintOverride(this.layout,t)}static hasPaintOverride(e,t){let n=e.get(`text-field`),r=ly.paint.properties[t],i=!1,a=e=>{for(let t of e)if(r.overrides?.hasOverride(t)){i=!0;return}};if(n.value.kind===`constant`&&n.value.value instanceof Ni)a(n.value.value.sections);else if(n.value.kind===`source`||n.value.kind===`composite`){let e=t=>{if(!i){if(t instanceof qi&&Gi(t.value)===Wr){let e=t.value;a(e.sections)}else t instanceof na?a(t.sections):t.eachChild(e)}},t=n.value;t._styleExpression&&e(t._styleExpression.expression)}return i}};function py(e,t,n,r=1){let i=e.get(`icon-padding`).evaluate(t,{},n)?.values;return[i[0]*r,i[1]*r,i[2]*r,i[3]*r]}var my,hy=()=>my||=new Vl({"background-color":new q(z.paint_background[`background-color`],`background-color`),"background-pattern":new zl(z.paint_background[`background-pattern`],`background-pattern`),"background-opacity":new q(z.paint_background[`background-opacity`],`background-opacity`)}),gy={get paint(){return hy()}},_y=e=>e.type===`background`,vy=class extends Wl{constructor(e,t){super(e,gy,t)}};function yy(e){let t=[],n=e.id;return n===void 0&&t.push(new B(`layers.${n}`,null,`missing required property "id"`)),e.render===void 0&&t.push(new B(`layers.${n}`,null,`missing required method "render"`)),e.renderingMode&&e.renderingMode!==`2d`&&e.renderingMode!==`3d`&&t.push(new B(`layers.${n}`,null,`property "renderingMode" must be either "2d" or "3d"`)),t}var by=e=>e.type===`custom`,xy=class extends Wl{constructor(e,t){super(e,{},t),this.onAdd=e=>{this.implementation.onAdd&&this.implementation.onAdd(e,e.painter.context.gl)},this.onRemove=e=>{this.implementation.onRemove&&this.implementation.onRemove(e,e.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 Error(`Custom layers cannot be serialized`)}};function Sy(e,t){if(e.type===`custom`)return new xy(e,t);switch(e.type){case`background`:return new vy(e,t);case`circle`:return new Cf(e,t);case`color-relief`:return new Zf(e,t);case`fill`:return new bm(e,t);case`fill-extrusion`:return new yh(e,t);case`heatmap`:return new Lf(e,t);case`hillshade`:return new Hf(e,t);case`line`:return new Vh(e,t);case`raster`:return new Yl(e,t);case`symbol`:return new fy(e,t)}}function Cy(e){let t=[];if(typeof e==`string`)t.push({id:`default`,url:e});else if(e&&e.length>0){let n=[];for(let{id:r,url:i}of e){let e=`${r}${i}`;n.includes(e)||(n.push(e),t.push({id:r,url:i}))}}return t}function wy(e,t,n){try{let r=new URL(e);return r.pathname+=`${t}${n}`,r.toString()}catch{throw Error(`Invalid sprite URL "${e}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}async function Ty(e,t,n,r){let i=Cy(e),a=n>1?`@2x`:``,o={},s={};for(let{id:e,url:n}of i){o[e]=Qn(await t.transformRequest(wy(n,a,`.json`),`SpriteJSON`),r);let i=await t.transformRequest(wy(n,a,`.png`),`SpriteImage`);s[e]=nr.getImage(i,r)}return await Promise.all([...Object.values(o),...Object.values(s)]),Ey(o,s)}async function Ey(e,t){let n={};for(let r in e){n[r]={};let i=(await t[r]).data;if(!i)throw Error(`Could not load sprite image for ${r}: the response is empty`);let a=kn.getImageCanvasContext(i),o=(await e[r]).data;for(let e in o){let{width:t,height:i,x:s,y:c,sdf:l,pixelRatio:u,stretchX:d,stretchY:f,content:p,textFitWidth:m,textFitHeight:h}=o[e],g={width:t,height:i,x:s,y:c,context:a};n[r][e]={data:null,pixelRatio:u,sdf:l,stretchX:d,stretchY:f,content:p,textFitWidth:m,textFitHeight:h,spriteData:g}}}return n}var Dy=class extends sr{constructor(){super(),this.images={},this.updateVersion=0,this.loaded=!1,this.requestors=[],this.missingImageResolver=null,this._spriteImagesIds={},this._imagesIds=null,this._renderCallbacksDispatchedThisFrame={}}destroy(){for(let e of Object.keys(this.images))this.removeImage(e);this._spriteImagesIds={}}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(let{ids:e,promiseResolve:t}of this.requestors)t(this._getImagesForIds(e));this.requestors=[]}}getImage(e){let t=this.images[e];if(t&&!t.data&&t.spriteData){let e=t.spriteData;t.data=new Mf({width:e.width,height:e.height},e.context.getImageData(e.x,e.y,e.width,e.height).data),t.spriteData=null}return t}addImage(e,t){if(this.images[e])throw Error(`Image id ${e} already exist, use updateImage instead`);this._validate(e,t)&&(this.images[e]=t,this._imagesIds=null,t.isWebGLImage&&this.updateImage(e,t,!1))}_validate(e,t){let n=!0,r=t.data||t.spriteData;return this._validateStretch(t.stretchX,r?.width)||(this.fire(new I(Error(`Image "${e}" has invalid "stretchX" value`))),n=!1),this._validateStretch(t.stretchY,r?.height)||(this.fire(new I(Error(`Image "${e}" has invalid "stretchY" value`))),n=!1),this._validateContent(t.content,t)||(this.fire(new I(Error(`Image "${e}" has invalid "content" value`))),n=!1),n}_validateStretch(e,t){if(!e)return!0;let n=0;for(let r of e){if(r[0]<n||r[1]<r[0]||t<r[1])return!1;n=r[1]}return!0}_validateContent(e,t){if(!e)return!0;if(e.length!==4)return!1;let n=t.spriteData,r=n?.width||t.data.width,i=n?.height||t.data.height;return e[0]<0||r<e[0]||e[1]<0||i<e[1]||e[2]<0||r<e[2]||e[3]<0||i<e[3]||e[2]<e[0]?!1:e[3]>=e[1]}updateImage(e,t,n=!0){let r=this.images[e];if(n){let e=r.data||r.spriteData;if(e.width!==t.data.width||e.height!==t.data.height)throw Error(`size mismatch between old image (${e.width}x${e.height}) and new image (${t.data.width}x${t.data.height}).`)}t.version=(r.version??0)+1,this.images[e]=t,this.updateVersion++}removeImage(e){let t=this.images[e];t&&(delete this.images[e],this._imagesIds=null,t.userImage?.onRemove&&t.userImage.onRemove())}listImages(){return this._imagesIds??=Object.keys(this.images),this._imagesIds}_getSpriteImageId(e,t){return e==="default"?t:`${e}:${t}`}setSpriteImages(e,t){let n=this._spriteImagesIds[e]??[],r=[];for(let n in t){let i=this._getSpriteImageId(e,n);r.push(i),i in this.images?this.updateImage(i,t[n],!1):this.addImage(i,t[n])}let i=new Set(r),a=n.filter(e=>!i.has(e));for(let e of a)this.removeImage(e);return this._spriteImagesIds[e]=r,{loaded:r,removed:a}}removeSpriteImages(e){let t=this._spriteImagesIds[e]??[];for(let e of t)this.removeImage(e);return delete this._spriteImagesIds[e],t}removeAllSpriteImages(){let e=Object.values(this._spriteImagesIds).flat();for(let t of e)this.removeImage(t);return this._spriteImagesIds={},e}setMissingImageResolver(e){this.missingImageResolver=e}getImages(e){return new Promise((t,n)=>{let r=!0;if(!this.isLoaded())for(let t of e)this.images[t]||(r=!1);this.isLoaded()||r?t(this._getImagesForIds(e)):this.requestors.push({ids:e,promiseResolve:t})})}async _getImagesForIds(e){let t=new Set(e.filter(e=>!this.getImage(e))),n=this.missingImageResolver;n&&await Promise.allSettled(Array.from(t,e=>n(e)));let r={};for(let n of e){let e=this.getImage(n);e&&(t.delete(n),r[n]={data:e.data.clone(),pixelRatio:e.pixelRatio,sdf:e.sdf,version:e.version,stretchX:e.stretchX,stretchY:e.stretchY,content:e.content,textFitWidth:e.textFitWidth,textFitHeight:e.textFitHeight,hasRenderCallback:!!e.userImage?.render,isWebGLImage:e.isWebGLImage})}for(let e of t)this.fire(new yr({id:e})),Yt(`Image "${e}" could not be loaded. Please make sure you have added the image before it is needed with map.addImage(), resolved it with map.setMissingStyleImageResolver(), or included it in a "sprite" property in your style.`);return r}beginFrame(){this._renderCallbacksDispatchedThisFrame={}}dispatchRenderCallbacks(e){for(let t of e){if(this._renderCallbacksDispatchedThisFrame[t])continue;this._renderCallbacksDispatchedThisFrame[t]=!0;let e=this.getImage(t);e||Yt(`Image with ID: "${t}" was not found`),E_(e)&&this.updateImage(t,e)}}cloneImages(){let e={};for(let t in this.images){let n=this.images[t];e[t]={...n,data:n.data?n.data.clone():null}}return e}},Oy=class{constructor(e){this._imageManager=e,this._entries={},this._image=new Mf({width:1,height:1}),this._dirty=!0}destroy(){this._texture&&=(this._texture.destroy(),null),this._entries={},this._image=new Mf({width:1,height:1}),this._dirty=!0}getPixelSize(){let{width:e,height:t}=this._image;return{width:e,height:t}}getPattern(e){let t=this._imageManager.getImage(e);if(!t)return null;let n=this._entries[e];if(n?.image!==t){let n={w:t.data.width+2,h:t.data.height+2,x:0,y:0};this._entries[e]={bin:n,position:new O_(n,t),image:t}}else if(n.position.version!==t.version)n.position.version=t.version;else return n.position;return this._update(),this._entries[e].position}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;let t=this.getPattern(e.from.toString()),n=this.getPattern(e.to.toString());return!t||!n}bind(e){let t=e.gl;this._texture?this._dirty&&=(this._texture.update(this._image),!1):(this._texture=new qf(e,this._image,t.RGBA),this._dirty=!1),this._texture.bind(t.LINEAR,t.CLAMP_TO_EDGE)}_update(){for(let e in this._entries)this._imageManager.getImage(e)||delete this._entries[e];let e=[];for(let t in this._entries)e.push(this._entries[t].bin);let{w:t,h:n}=D_(e),r=this._image;r.resize({width:t||1,height:n||1});for(let e in this._entries){let{bin:t}=this._entries[e],n=t.x+1,i=t.y+1,a=this._entries[e].image.data,o=a.width,s=a.height;Mf.copy(a,r,{x:0,y:0},{x:n,y:i},{width:o,height:s}),Mf.copy(a,r,{x:0,y:s-1},{x:n,y:i-1},{width:o,height:1}),Mf.copy(a,r,{x:0,y:0},{x:n,y:i+s},{width:o,height:1}),Mf.copy(a,r,{x:o-1,y:0},{x:n-1,y:i},{width:1,height:s}),Mf.copy(a,r,{x:0,y:0},{x:n+o,y:i},{width:1,height:s})}this._dirty=!0}},ky=1114111,Ay={start:0,end:ky},jy=0;function My(e){let t=/^u\+([0-9a-f]*)(\?+)$/i.exec(e);if(t){let[,e,n]=t;return e.length+n.length>6?null:Ny(parseInt(`${e}${`0`.repeat(n.length)}`,16),parseInt(`${e}${`f`.repeat(n.length)}`,16))}let n=/^u\+([0-9a-f]{1,6})(?:-([0-9a-f]{1,6}))?$/i.exec(e);if(!n)return null;let r=parseInt(n[1],16);return Ny(r,n[2]===void 0?r:parseInt(n[2],16))}function Ny(e,t){return e>t||e>ky?null:{start:e,end:Math.min(t,ky)}}function Py(e,t){return e.ranges.some(({start:e,end:n})=>t>=e&&t<=n)}var Fy=class{constructor(e){this.requestManager=e,this._faces={},this._registered=new Set}setFontFaces(e){this._unregisterAll(),this._faces={};for(let[t,n]of Object.entries(e??{})){let e=Array.isArray(n)?n:[n];this._faces[t]=e.map(e=>this._declareFontFace(t,e)).filter(e=>e!==null)}}hasFontFaces(){return Object.keys(this._faces).length>0}async getFontFamily(e,t){for(let n of e.split(`,`))for(let e of this._faces[n.trim()]??[])if(Py(e,t)&&(e.loaded??=this._loadFontFace(e),await e.loaded))return e.family;return null}_declareFontFace(e,t){let n=typeof t==`string`?{url:t}:t;if(typeof n?.url!=`string`)return Yt(`Ignoring the font face declared for "${e}": it has no URL.`),null;let r=`maplibre-gl-font-face-${jy++}`,i=n[`unicode-range`];if(!i?.length)return{url:n.url,ranges:[Ay],family:r};let a=[];for(let e of i){let t=My(e);if(!t){Yt(`Ignoring the unicode range "${e}" of the font face at ${n.url}: it is not a valid range.`);continue}a.push(t)}return a.length?{url:n.url,ranges:a,family:r}:null}async _loadFontFace(e){if(typeof FontFace>`u`||typeof document>`u`||!document.fonts)return Yt(`Ignoring the font face at ${e.url}: this environment has no CSS Font Loading API.`),!1;let t;try{return t=new FontFace(e.family,await this._downloadFontFile(e.url)),Object.values(this._faces).some(t=>t.includes(e))?(document.fonts.add(t),this._registered.add(t),await t.load(),!0):!1}catch(n){return t&&this._unregister(t),Yt(`Ignoring the font face at ${e.url}: ${mt(n).message}`),!1}}async _downloadFontFile(e){let t=await $n(await this.requestManager.transformRequest(e,`Glyphs`),new AbortController);if(!t?.data)throw Error(`the response was empty for the font file at ${e}`);return t.data}_unregister(e){document.fonts?.delete(e),this._registered.delete(e)}_unregisterAll(){for(let e of this._registered)document.fonts?.delete(e);this._registered.clear()}destroy(){this._unregisterAll(),this._faces={}}},Iy=0x56bc75e2d63100000,Ly=new Float64Array(256);for(let e=0;e<256;e++){let t=.5-(e/255)**(1/2.2);Ly[e]=t*Math.abs(t)}Ly[255]=-0x56bc75e2d63100000;var Ry=class{constructor({fontSize:e=24,buffer:t=3,radius:n=8,cutoff:r=.25,fontFamily:i=`sans-serif`,fontWeight:a=`normal`,fontStyle:o=`normal`,lang:s=null}={}){this.buffer=t,this.radius=n,this.cutoff=r,this.lang=s;let c=this.size=e+t*4,l=this._createCanvas(c),u=this.ctx=l.getContext(`2d`,{willReadFrequently:!0});u.font=`${o} ${a} ${e}px ${i}`,u.textBaseline=`alphabetic`,u.textAlign=`left`,u.fillStyle=`black`,this.gridOuter=new Float64Array(c*c),this.gridInner=new Float64Array(c*c),this.f=new Float64Array(c),this.z=new Float64Array(c+1),this.v=new Uint16Array(c)}_createCanvas(e){if(typeof OffscreenCanvas<`u`)return new OffscreenCanvas(e,e);let t=document.createElement(`canvas`);return t.width=t.height=e,t}draw(e){let{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:r,actualBoundingBoxLeft:i,actualBoundingBoxRight:a}=this.ctx.measureText(e),o=Math.ceil(n),s=Math.floor(-i),c=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(a)-s)),l=Math.max(0,Math.min(this.size-this.buffer,o+Math.ceil(r))),u=c+2*this.buffer,d=l+2*this.buffer,f=Math.max(u*d,0),p=new Uint8ClampedArray(f),m={data:p,width:u,height:d,glyphWidth:c,glyphHeight:l,glyphTop:o,glyphLeft:s,glyphAdvance:t};if(c===0||l===0)return m;let{ctx:h,buffer:g,gridInner:_,gridOuter:v}=this;this.lang&&(h.lang=this.lang),h.clearRect(g,g,c,l),h.fillText(e,g-s,g+o);let y=h.getImageData(g,g,c,l);v.fill(Iy,0,f),_.fill(0,0,f);let b=3;for(let e=0;e<l;e++){let t=(e+g)*u+g;for(let e=0;e<c;e++,b+=4,t++){let e=y.data[b];if(e===0)continue;let n=Ly[e];v[t]=Math.max(0,n),_[t]=Math.max(0,-n)}}zy(v,0,0,u,d,u,this.f,this.v,this.z);let x=Math.min(g,1);zy(_,g-x,g-x,c+2*x,l+2*x,u,this.f,this.v,this.z);let S=255/this.radius,C=255*(1-this.cutoff);for(let e=0;e<f;e++){let t=Math.sqrt(v[e])-Math.sqrt(_[e]);p[e]=Math.round(C-S*t)}return m}};function zy(e,t,n,r,i,a,o,s,c){for(let l=t;l<t+r;l++)By(e,n*a+l,a,i,o,s,c);for(let l=n;l<n+i;l++)By(e,l*a+t,1,r,o,s,c)}function By(e,t,n,r,i,a,o){a[0]=0,o[0]=-0x56bc75e2d63100000,o[1]=Iy,i[0]=e[t];for(let s=1,c=0,l=0;s<r;s++){i[s]=e[t+s*n];let r=s*s;do{let e=a[c];l=(i[s]-i[e]+r-e*e)/(s-e)/2}while(l<=o[c]&&--c>-1);c++,a[c]=s,o[c]=l,o[c+1]=Iy}for(let s=0,c=0;s<r;s++){for(;o[c+1]<s;)c++;let r=a[c],l=s-r;e[t+s*n]=i[r]+l*l}}var Vy=z.layout_symbol[`text-font`].default.join(`,`),Hy=(e,t)=>{let n=new Ry(e);return n.buffer=t,n},Uy=class{constructor(e,t,n,r=Hy){this.requestManager=e,this.localIdeographFontFamily=t,this.entries={},this.lang=n,this.fontFaceManager=new Fy(e),this.createRasterizer=r}setURL(e){this.url=e}setFontFaces(e){this.fontFaceManager.setFontFaces(e),this.entries={}}async getGlyphs(e){let t=[];for(let n in e)for(let r in e[n])for(let i of e[n][r])t.push(this._getAndCacheGlyphsPromise(n,i,r));let n=await Promise.all(t),r={};for(let{stack:e,id:t,variant:i,glyph:a}of n)r[e]||={},r[e][i]||={},r[e][i][t]=a&&{id:a.id,bitmap:a.bitmap.clone(),metrics:a.metrics};return r}async _getAndCacheGlyphsPromise(e,t,n){this.entries[e]??={glyphs:{default:{}},requests:{},ranges:{}};let r=this.entries[e],i=r.glyphs[n]||={},a=i[t];if(a!==void 0)return{stack:e,id:t,variant:n,glyph:a};if(n!=="default")return i[t]=null,{stack:e,id:t,variant:n,glyph:null};let o=t.codePointAt(0),s=this.fontFaceManager.hasFontFaces()?await this.fontFaceManager.getFontFamily(e,o):null;return s?(a=i[t]=await this._drawGlyph(r,e,t,s),{stack:e,id:t,variant:n,glyph:a}):!this.url||Pg(t)||this._charUsesLocalIdeographFontFamily(o)?(a=i[t]=await this._drawGlyph(r,e,t),{stack:e,id:t,variant:n,glyph:a}):{...await this._downloadAndCacheRangePromise(e,t),variant:n}}async _downloadAndCacheRangePromise(e,t){let n=t.codePointAt(0),r=this.entries[e],i=Math.floor(n/256);if(r.ranges[i])return{stack:e,id:t,glyph:null};r.requests[i]||=this._loadGlyphRange(e,i);try{let a=await r.requests[i];for(let e in a)r.glyphs.default[String.fromCodePoint(+e)]=a[+e];return r.ranges[i]=!0,{stack:e,id:t,glyph:a[n]||null}}catch(a){let o=r.glyphs.default[t]=await this._drawGlyph(r,e,t);return this._warnOnMissingGlyphRange(o,i,n,mt(a)),{stack:e,id:t,glyph:o}}}async _loadGlyphRange(e,t){let n=t*256,r=n+255,i=await $n(await this.requestManager.transformRequest(this.url.replace(`{fontstack}`,e).replace(`{range}`,`${n}-${r}`),`Glyphs`),new AbortController);if(!i?.data)throw Error(`Could not load glyph range. range: ${t}, ${n}-${r}`);let a={};for(let e of w_(i.data))a[e.id]=e;return a}_warnOnMissingGlyphRange(e,t,n,r){let i=t*256;Yt(`Unable to load glyph range ${t}, ${i}-${i+255}. Rendering codepoint U+${n.toString(16).padStart(4,`0`).toUpperCase()} locally instead. ${r}`)}_charUsesLocalIdeographFontFamily(e){return!!this.localIdeographFontFamily&&Qh(e)}async _drawGlyph(e,t,n,r){let i=(await this._getTinySDF(e,t,n,r)).draw(n),a=/^\p{gc=Cf}+$/u.test(n);return{id:n.codePointAt(0),bitmap:new jf({width:i.width||60,height:i.height||60},i.data),metrics:{width:a?0:i.glyphWidth/2||24,height:i.glyphHeight/2||24,left:i.glyphLeft/2+.5||0,top:i.glyphTop/2-27.5||-8,advance:a?0:i.glyphAdvance/2||24,isDoubleResolution:!0}}}_getTinySDF(e,t,n,r){let i=Pg(n);if(r){let t=i?`clusterTinySDFs`:`fontFaceTinySDFs`;return e[t]??={},e[t][r]||=this._createTinySDF(r,!1,i?3:1),e[t][r]}let a=t===Vy&&this.localIdeographFontFamily!==``&&this._charUsesLocalIdeographFontFamily(n.codePointAt(0)),o=a?this.localIdeographFontFamily:t;if(i)return e.clusterTinySDFs??={},e.clusterTinySDFs[o]||=this._createTinySDF(o,!0,3),e.clusterTinySDFs[o];let s=a?`ideographTinySDF`:`tinySDF`;return e[s]||=this._createTinySDF(o),e[s]}async _createTinySDF(e,t=!0,n=1){let r=e?e.split(`,`):[];r.push(`sans-serif`);let i=r.map(e=>/[-\w]+/.test(e)?e:`'${CSS.escape(e)}'`).join(`,`),a=t?this._fontWeight(r[0]):void 0,o=t?this._fontStyle(r[0]):`normal`;if(typeof document<`u`&&document.fonts?.load)try{await document.fonts.load(`${o} ${a||`normal`} 48px ${i}`)}catch(e){Yt(`Failed to load font "${i}": ${mt(e).message}`)}return this.createRasterizer({fontSize:48,buffer:Math.max(6,Math.ceil(48*(n-1)/4)),radius:16,cutoff:.25,fontFamily:i,fontWeight:a,fontStyle:o,lang:this.lang},6)}_fontStyle(e){return/italic/i.test(e)?`italic`:/oblique/i.test(e)?`oblique`:`normal`}_fontWeight(e){let t={thin:100,hairline:100,"extra light":200,"ultra light":200,light:300,normal:400,regular:400,medium:500,semibold:600,demibold:600,bold:700,"extra bold":800,"ultra bold":800,black:900,heavy:900,"extra black":950,"ultra black":950},n;for(let[r,i]of Object.entries(t))RegExp(`\\b${r}\\b`,`i`).test(e)&&(n=`${i}`);return n}destroy(){for(let e in this.entries){let t=this.entries[e];t.tinySDF=null,t.ideographTinySDF=null,t.fontFaceTinySDFs={},t.glyphs={default:{}},t.requests={},t.ranges={}}this.entries={},this.fontFaceManager.destroy()}},Wy,Gy=()=>Wy||=new Vl({anchor:new q(z.light.anchor,`anchor`),position:new q(z.light.position,`position`),color:new q(z.light.color,`color`),intensity:new q(z.light.intensity,`intensity`)}),Ky=class extends sr{constructor(e,t){super(),this._transitionable=new Al(Gy(),`light`,t),this.setLight(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new Dl(0))}getLight(){return this._transitionable.serialize()}getEvaluated(){return{anchor:this.properties.get(`anchor`),position:this.properties.get(`position`),color:this.properties.get(`color`),intensity:this.properties.get(`intensity`)}}setLight(e,t={}){this._validate(fl.light,e,t)||this._transitionable.setValues(e)}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}applyGlobalStateChange(e,t,n){this._transitioning=this._transitionable.applyGlobalStateChange(e,t,this._transitioning,n)}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(e,t,n){return _l(this,e,{value:t},n)}},qy,Jy=()=>qy||=new Vl({"sky-color":new q(z.sky[`sky-color`],`sky-color`),"horizon-color":new q(z.sky[`horizon-color`],`horizon-color`),"fog-color":new q(z.sky[`fog-color`],`fog-color`),"fog-ground-blend":new q(z.sky[`fog-ground-blend`],`fog-ground-blend`),"horizon-fog-blend":new q(z.sky[`horizon-fog-blend`],`horizon-fog-blend`),"sky-horizon-blend":new q(z.sky[`sky-horizon-blend`],`sky-horizon-blend`),"atmosphere-blend":new q(z.sky[`atmosphere-blend`],`atmosphere-blend`)}),Yy=class extends sr{constructor(e,t){super(),this._transitionable=new Al(Jy(),`sky`,t),this.setSky(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new Dl(0))}setSky(e,t={}){return!this._validate(fl.sky,e,t)&&(e||={"sky-color":`transparent`,"horizon-color":`transparent`,"fog-color":`transparent`,"fog-ground-blend":1,"atmosphere-blend":0},this._transitionable.setValues(e),!0)}getSky(){return this._transitionable.serialize()}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}applyGlobalStateChange(e,t,n){this._transitioning=this._transitionable.applyGlobalStateChange(e,t,this._transitioning,n)}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(e,t,n={}){return _l(this,e,{value:t},n)}getEvaluated(){return{"sky-color":this.properties.get(`sky-color`),"horizon-color":this.properties.get(`horizon-color`),"fog-color":this.properties.get(`fog-color`),"fog-ground-blend":this.properties.get(`fog-ground-blend`),"horizon-fog-blend":this.properties.get(`horizon-fog-blend`),"sky-horizon-blend":this.properties.get(`sky-horizon-blend`),"atmosphere-blend":this.properties.get(`atmosphere-blend`)}}};function Xy(e){return e<60?0:e<70?(e-60)/10:1}var Zy=class{constructor(e,t){this.width=e,this.height=t,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}}getDash(e,t){let n=e.join(`,`)+String(t);return this.dashEntry[n]||=this.addDash(e,t),this.dashEntry[n]}getDashRanges(e,t,n){let r=e.length%2==1,i=[],a=r?-e[e.length-1]*n:0,o=e[0]*n,s=!0;i.push({left:a,right:o,isDash:s,zeroLength:e[0]===0});let c=e[0];for(let t=1;t<e.length;t++){s=!s;let r=e[t];a=c*n,c+=r,o=c*n,i.push({left:a,right:o,isDash:s,zeroLength:r===0})}return i}addRoundDash(e,t,n){let r=t/2;for(let t=-n;t<=n;t++){let i=this.nextRow+n+t,a=this.width*i,o=0,s=e[o];for(let i=0;i<this.width;i++){i/s.right>1&&(s=e[++o]);let c=Math.abs(i-s.left),l=Math.abs(i-s.right),u=Math.min(c,l),d,f=t/n*(r+1);if(s.isDash){let e=r-Math.abs(f);d=Math.sqrt(u*u+e*e)}else d=r-Math.sqrt(u*u+f*f);this.data[a+i]=Math.max(0,Math.min(255,d+128))}}}addRegularDash(e){for(let t=e.length-1;t>=0;--t){let n=e[t],r=e[t+1];n.zeroLength?e.splice(t,1):r?.isDash===n.isDash&&(r.left=n.left,e.splice(t,1))}let t=e[0],n=e[e.length-1];t.isDash===n.isDash&&(t.left=n.left-this.width,n.right=t.right+this.width);let r=this.width*this.nextRow,i=0,a=e[i];for(let t=0;t<this.width;t++){t/a.right>1&&(a=e[++i]);let n=Math.abs(t-a.left),o=Math.abs(t-a.right),s=Math.min(n,o),c=a.isDash?s:-s;this.data[r+t]=Math.max(0,Math.min(255,c+128))}}addDash(e,t){let n=t?7:0,r=2*n+1;if(this.nextRow+r>this.height)return Yt(`LineAtlas out of space`),null;let i=0;for(let t of e)i+=t;if(i!==0){let r=this.width/i,a=this.getDashRanges(e,this.width,r);t?this.addRoundDash(a,r,n):this.addRegularDash(a)}let a={y:this.nextRow+n,height:2*n,width:i};return this.nextRow+=r,this.dirty=!0,a}bind(e){let t=e.gl;this.texture?(t.bindTexture(t.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,t.texSubImage2D(t.TEXTURE_2D,0,0,0,this.width,this.height,t.ALPHA,t.UNSIGNED_BYTE,this.data))):(this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texImage2D(t.TEXTURE_2D,0,t.ALPHA,this.width,this.height,0,t.ALPHA,t.UNSIGNED_BYTE,this.data))}},Qy=class{constructor(e){this._methodToThrottle=e,this._triggered=!1,this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()}}trigger(){this._triggered||(this._triggered=!0,this._channel?.port1.postMessage(!0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}},$y={once:!0},eb=class{constructor(e,t){this.target=e,this.mapId=t,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new Qy(()=>this.process()),this.subscription=ln(this.target,`message`,e=>this.receive(e),!1),this.globalScope=$t(self)?e:window}registerMessageHandler(e,t){this.messageHandlers[e]=t}unregisterMessageHandler(e){delete this.messageHandlers[e]}sendAsync(e,t){return new Promise((n,r)=>{let i=Math.round(Math.random()*0xde0b6b3a7640000).toString(36).substring(0,10),a=t?ln(t.signal,`abort`,()=>{a?.unsubscribe(),delete this.resolveRejects[i];let n={id:i,type:`<cancel>`,origin:location.origin,targetMapId:e.targetMapId,sourceMapId:this.mapId};this.target.postMessage(n),r(new Cn(t.signal.reason))},$y):null;this.resolveRejects[i]={resolve:e=>{a?.unsubscribe(),n(e)},reject:e=>{a?.unsubscribe(),r(e)}};let o=[],s={...e,id:i,sourceMapId:this.mapId,origin:location.origin,data:wl(e.data,o)};this.target.postMessage(s,{transfer:o})})}receive(e){let t=e.data,n=t.id,r=[`file://`,`resource://android`,`null`],i=[t.origin,location.origin],a=t.origin===location.origin,o=i.some(e=>r.includes(e));if((a||o)&&!(t.targetMapId&&this.mapId!==t.targetMapId)){if(t.type===`<cancel>`){delete this.tasks[n];let e=this.abortControllers[n];delete this.abortControllers[n],e&&e.abort();return}if($t(self)||t.mustQueue){this.tasks[n]=t,this.taskQueue.push(n),this.invoker.trigger();return}this.processTask(n,t)}}process(){if(this.taskQueue.length===0)return;let e=this.taskQueue.shift(),t=this.tasks[e];delete this.tasks[e],this.taskQueue.length>0&&this.invoker.trigger(),t&&this.processTask(e,t)}async processTask(e,t){if(t.type===`<response>`){let n=this.resolveRejects[e];if(delete this.resolveRejects[e],!n)return;t.error?n.reject(mt(Tl(t.error))):n.resolve(Tl(t.data));return}if(!this.messageHandlers[t.type]){this.completeTask(e,null,null);return}let n=Tl(t.data),r=new AbortController;this.abortControllers[e]=r;try{let i=await this.messageHandlers[t.type](t.sourceMapId,n,r);this.completeTask(e,null,i)}catch(t){this.completeTask(e,mt(t))}}completeTask(e,t,n){let r=[];delete this.abortControllers[e];let i={id:e,type:`<response>`,sourceMapId:this.mapId,origin:location.origin,error:t?wl(t):null,data:wl(n,r)};this.target.postMessage(i,{transfer:r})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}};function tb(e){if(!e)return!1;let t=globalThis.location;if(!t)return!1;try{return new URL(e,t.href).origin!==t.origin}catch{return!1}}function nb(){let e=import.meta.url;if(!/^https?:/.test(e))return``;let t=e.endsWith(`-dev.mjs`)?`maplibre-gl-worker-dev.mjs`:`maplibre-gl-worker.mjs`,n=new URL(`./${t}`,e);return n.searchParams.set(`v`,y),n.href}function rb(e){return e.split(/[?#]/)[0].endsWith(`.cjs`)}function ib(e,t){if(t)try{return new Worker(e,{type:`module`})}catch(e){console.warn(`Module worker not supported, falling back to classic worker`,e)}return new Worker(e)}async function ab(e){let t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch worker script (${t.status}): ${e}`);let n=await t.text(),r=new Blob([n],{type:`text/javascript`});return URL.createObjectURL(r)}function ob(e){let t=new Blob([`import ${JSON.stringify(new URL(e,import.meta.url).href)}`],{type:`text/javascript`});return URL.createObjectURL(t)}async function sb(){let e=Vn.WORKER_URL||nb(),t=!rb(e);if(!tb(e))return ib(e,t);if(t){let n=ob(e);try{return ib(n,t)}finally{URL.revokeObjectURL(n)}}let n=await ab(e);try{return ib(n,t)}finally{URL.revokeObjectURL(n)}}var cb=`maplibre_preloaded_worker_pool`,lb=class e{constructor(){this.active={},this.workersPromise=null}async acquire(t){if(this.active[t]=!0,!this.workersPromise){let t=[];for(;t.length<e.workerCount;)t.push(sb());this.workersPromise=Promise.all(t)}return(await this.workersPromise).slice()}release(e){if(delete this.active[e],this.numActive()===0&&this.workersPromise){let e=this.workersPromise;this.workersPromise=null,e.then(e=>{for(let t of e)t.terminate()})}}isPreloaded(){return!!this.active[cb]}numActive(){return Object.keys(this.active).length}},ub=Math.floor(kn.hardwareConcurrency/2);lb.workerCount=nn(globalThis)?Math.max(Math.min(ub,3),1):1;var db;function fb(){return db||=new lb,db}function pb(){fb().acquire(cb)}function mb(){let e=db;e&&(e.isPreloaded()&&e.numActive()===1?(e.release(cb),db=null):console.warn(`Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()`))}var hb=class extends sr{constructor(e,t){super(),this.workerPool=e,this.actors=[],this.currentActor=0,this.id=t,this.removed=!1,this.workerErrorSubscriptions=[],this.actorsPromise=this.initActors(t)}async initActors(e){let t=await this.workerPool.acquire(e);if(this.removed)return[];if(this.actors=t.map((t,n)=>{this.workerErrorSubscriptions.push(ln(t,`error`,()=>{this.fire(new I(Error(`Worker failed to load. Check that the worker URL is correct.`)))},!1));let r=new eb(t,e);return r.name=`Worker ${n}`,r}),!this.actors.length)throw Error(`No actors found`);return this.actors}async broadcast(e,t){let n=await this.actorsPromise;return Promise.all(n.map(n=>n.sendAsync({type:e,data:t})))}async getActor(){let e=await this.actorsPromise;return this.currentActor=(this.currentActor+1)%e.length,e[this.currentActor]}async waitForInitComplete(){this.actors.length===0&&await this.actorsPromise}getReadyActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(e=!0){this.removed=!0;for(let e of this.actors)e.remove();for(let e of this.workerErrorSubscriptions)e.unsubscribe();this.actors=[],this.workerErrorSubscriptions=[],this.setEventedParent(null),e&&this.workerPool.release(this.id)}async registerMessageHandler(e,t){let n=await this.actorsPromise;for(let r of n)r.registerMessageHandler(e,t)}async unregisterMessageHandler(e){let t=await this.actorsPromise;for(let n of t)n.unregisterMessageHandler(e)}},gb;function _b(){return gb||(gb=new hb(fb(),Gn),gb.registerMessageHandler(`GR`,(e,t,n)=>Zn(t,n))),gb}function vb(e,t){let n=ie();ue(n,n,[1,1,0]),de(n,n,[e.width*.5,e.height*.5,1]);let r=e.getFastPathSimpleProjectionMatrix(t);return r?le(n,n,r):n}function yb(e,t,n){if(e)for(let r of e){let e=t[r];if(e?.source===n&&e.type===`fill-extrusion`)return!0}else for(let e in t){let r=t[e];if(r.source===n&&r.type===`fill-extrusion`)return!0}return!1}function bb(e,t,n,r,i,a,o){let s=yb(i?.layers??null,t,e.id),c=a.maxPitchScaleFactor(),l=e.tilesIn(r,c,s);l.sort(Cb);let u=[];for(let r of l)u.push({wrappedTileID:r.tileID.wrapped().key,queryResults:r.tile.queryRenderedFeatures(t,n,e.getState(),r.queryGeometry,r.cameraQueryGeometry,r.scale,i,a,c,vb(a,r.tileID),o?(e,t)=>o(r.tileID,e,t):void 0)});return Tb(wb(u),e)}function xb(e,t,n,r,i,a,o){let s={},c=a.queryRenderedSymbols(r),l=[];for(let e of Object.keys(c).map(Number))l.push(o[e]);l.sort(Cb);for(let n of l){let r=n.featureIndex.lookupSymbolFeatures(c[n.bucketInstanceId],t,n.bucketIndex,n.sourceLayerIndex,{filterSpec:i.filter,globalState:i.globalState},i.layers,i.availableImages,e);for(let e in r){s[e]||=[];let t=r[e];t.sort((e,t)=>{let r=n.featureSortOrder;if(r){let n=r.indexOf(e.featureIndex);return r.indexOf(t.featureIndex)-n}return t.featureIndex-e.featureIndex});for(let n of t)s[e].push(n)}}return Eb(s,e,n)}function Sb(e,t){let n=e.getRenderableIds().map(t=>e.getTileByID(t)),r=[],i={};for(let e of n){let n=e.tileID.canonical.key;i[n]||(i[n]=!0,e.querySourceFeatures(r,t))}return r}function Cb(e,t){let n=e.tileID,r=t.tileID;return n.overscaledZ-r.overscaledZ||n.canonical.y-r.canonical.y||n.wrap-r.wrap||n.canonical.x-r.canonical.x}function wb(e){let t={},n={};for(let{queryResults:r,wrappedTileID:i}of e){n[i]||={};let e=n[i];for(let n in r){let i=r[n];e[n]||={};let a=e[n];t[n]||=[];for(let e of i)a[e.featureIndex]||(a[e.featureIndex]=!0,t[n].push(e))}}return t}function Tb(e,t){for(let n in e)for(let r of e[n])Db(r,t);return e}function Eb(e,t,n){for(let r in e)for(let i of e[r]){let e=n[t[r].source];Db(i,e)}return e}function Db(e,t){let n=e.feature,r=t.getFeatureState(n.layer[`source-layer`],n.id);n.source=n.layer.source,n.layer[`source-layer`]&&(n.sourceLayer=n.layer[`source-layer`]),n.state=r}async function Ob(e,t,n,r){let i=e;if(e.url?i=(await Qn(await t.transformRequest(e.url,`Source`),n)).data:await kn.frameAsync(n,r),!i)return null;let a=It(P(i,e),[`tiles`,`minzoom`,`maxzoom`,`attribution`,`bounds`,`scheme`,`tileSize`,`encoding`]);return`vector_layers`in i&&i.vector_layers&&(a.vectorLayerIds=i.vector_layers.map(e=>e.id)),a}var kb=class e{constructor(e,t){e&&(t?this.setSouthWest(e).setNorthEast(t):Array.isArray(e)&&(e.length===4?this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]):this.setSouthWest(e[0]).setNorthEast(e[1])))}setNorthEast(e){return this._ne=e instanceof Q?new Q(e.lng,e.lat):Q.convert(e),this}setSouthWest(e){return this._sw=e instanceof Q?new Q(e.lng,e.lat):Q.convert(e),this}extend(t){let n=this._sw,r=this._ne,i,a;if(t instanceof Q)i=t,a=t;else if(t instanceof e){if(i=t._sw,a=t._ne,!i||!a)return this}else{if(Array.isArray(t)){if(t.length===4||t.every(Array.isArray)){let n=t;return this.extend(e.convert(n))}{let e=t;return this.extend(Q.convert(e))}}return t&&(`lng`in t||`lon`in t)&&`lat`in t?this.extend(Q.convert(t)):this}return!n&&!r?(this._sw=new Q(i.lng,i.lat),this._ne=new Q(a.lng,a.lat)):(n.lng=Math.min(i.lng,n.lng),n.lat=Math.min(i.lat,n.lat),r.lng=Math.max(a.lng,r.lng),r.lat=Math.max(a.lat,r.lat)),this}getCenter(){return new Q((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 Q(this.getWest(),this.getNorth())}getSouthEast(){return new Q(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(e){let{lng:t,lat:n}=Q.convert(e),r=this._sw.lat<=n&&n<=this._ne.lat,i=this._sw.lng<=t&&t<=this._ne.lng;return this._sw.lng>this._ne.lng&&(i=this._sw.lng>=t&&t>=this._ne.lng),r&&i}intersects(t){if(t=e.convert(t),!(t.getNorth()>=this.getSouth()&&t.getSouth()<=this.getNorth()))return!1;let n=Math.abs(this.getEast()-this.getWest()),r=Math.abs(t.getEast()-t.getWest());if(n>=360||r>=360)return!0;let i=Ft(this.getWest(),-180,180),a=Ft(this.getEast(),-180,180),o=Ft(t.getWest(),-180,180),s=Ft(t.getEast(),-180,180),c=i>a,l=o>s;return c&&l?!0:c?s>=i||o<=a:l?a>=o||i<=s:o<=a&&s>=i}static convert(t){return t instanceof e||!t?t:new e(t)}static fromLngLat(t,n=0){let r=360*n/40075017,i=r/Math.cos(Math.PI/180*t.lat);return new e(new Q(t.lng-i,t.lat-r),new Q(t.lng+i,t.lat+r))}adjustAntiMeridian(){let t=new Q(this._sw.lng,this._sw.lat),n=new Q(this._ne.lng,this._ne.lat);return t.lng>n.lng?new e(t,new Q(n.lng+360,n.lat)):new e(t,n)}},Ab=class{constructor(e,t,n){this.bounds=kb.convert(this.validateBounds(e)),this.minzoom=t||0,this.maxzoom=n||24}validateBounds(e){return!Array.isArray(e)||e.length!==4?[-180,-90,180,90]:[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]}contains(e){let t=2**e.z,n={minX:Math.floor(Lm(this.bounds.getWest())*t),minY:Math.floor(Rm(this.bounds.getNorth())*t),maxX:Math.ceil(Lm(this.bounds.getEast())*t),maxY:Math.ceil(Rm(this.bounds.getSouth())*t)};return e.x>=n.minX&&e.x<n.maxX&&e.y>=n.minY&&e.y<n.maxY}},jb=class extends sr{constructor(e,t,n,r){if(super(),this.id=e,this.dispatcher=n,this.type=`vector`,this.minzoom=0,this.maxzoom=22,this.scheme=`xyz`,this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,P(this,It(t,[`url`,`scheme`,`tileSize`,`promoteId`,`encoding`])),this._options=P({type:`vector`},t),this._collectResourceTiming=t.collectResourceTiming,this.tileSize!==512)throw Error(`vector tile sources must have a tileSize of 512`);this.setEventedParent(r)}async load(e=!1){this._loaded=!1,this.fire(new dr(`dataloading`)),this._tileJSONRequest=new AbortController;try{let t=await Ob(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=!0,t&&(P(this,t),t.bounds&&(this.tileBounds=new Ab(t.bounds,this.minzoom,this.maxzoom)),this.fire(new dr(`data`,{sourceDataType:`metadata`})),this.fire(new dr(`data`,{sourceDataType:`content`,sourceDataChanged:e})))}catch(e){this._tileJSONRequest=null,this._loaded=!0,wn(e)||this.fire(new I(mt(e)))}}loaded(){return this._loaded}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load()}setSourceProperty(e){this._tileJSONRequest&&this._tileJSONRequest.abort(),e(),this.load(!0)}setTiles(e){return this.setSourceProperty(()=>{this.tiles=e,this._options.tiles=e}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e}),this}onRemove(){this._tileJSONRequest&&=(this._tileJSONRequest.abort(),null)}serialize(){return P({},this._options)}async loadTile(e){let t=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),n={request:await this.map._requestManager.transformRequest(t,`Tile`),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,encoding:this.encoding,overzoomParameters:await this._getOverzoomParameters(e),etag:e.etag};if(n.request.collectResourceTiming=this._collectResourceTiming,await this.dispatcher.waitForInitComplete(),e.aborted)return;let r=`RT`;if(!e.actor||e.state===`expired`)e.actor=this.dispatcher.getReadyActor(),r=`LT`;else if(e.state===`loading`)return new Promise((t,n)=>{e.reloadPromise={resolve:t,reject:n}});e.abortController=new AbortController;try{let t=await e.actor.sendAsync({type:r,data:n},e.abortController);if(delete e.abortController,e.aborted)return;this._afterTileLoadWorkerResponse(e,t);let i={};return t?.etagUnmodified&&(i.unmodified=!0),i}catch(t){if(delete e.abortController,e.aborted||wn(t))return;if(t&&t.status!==404)throw t;this._afterTileLoadWorkerResponse(e,null)}}async _getOverzoomParameters(e){if(e.tileID.canonical.z<=this.maxzoom||this.map._zoomLevelsToOverscale===void 0)return;let t=e.tileID.scaledTo(this.maxzoom).canonical,n=t.url(this.tiles,this.map.getPixelRatio(),this.scheme);return{maxZoomTileID:t,overzoomRequest:await this.map._requestManager.transformRequest(n,`Tile`)}}_afterTileLoadWorkerResponse(e,t){if(t?.resourceTiming&&(e.resourceTiming=t.resourceTiming),t&&this.map._refreshExpiredTiles&&e.setExpiryData(t),e.etag=t?.etag,e.loadVectorData(t,this.map.style),e.reloadPromise){let t=e.reloadPromise;e.reloadPromise=null,this.loadTile(e).then(t.resolve).catch(t.reject)}}async abortTile(e){e.abortController&&(e.abortController.abort(),delete e.abortController),e.actor&&await e.actor.sendAsync({type:`AT`,data:{uid:e.uid,type:this.type,source:this.id}})}async unloadTile(e){e.unloadVectorData(),e.actor&&await e.actor.sendAsync({type:`RMT`,data:{uid:e.uid,type:this.type,source:this.id}})}hasTransition(){return!1}},Mb=class extends sr{constructor(e,t,n,r){super(),this.id=e,this.dispatcher=n,this.setEventedParent(r),this.type=`raster`,this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=`xyz`,this.tileSize=512,this._loaded=!1,this._premultiplyAlpha=!0,this._options=P({type:`raster`},t),P(this,It(t,[`url`,`scheme`,`tileSize`]))}async load(e=!1){this._loaded=!1,this.fire(new dr(`dataloading`)),this._tileJSONRequest=new AbortController;try{let t=await Ob(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=!0,t&&(P(this,t),t.bounds&&(this.tileBounds=new Ab(t.bounds,this.minzoom,this.maxzoom)),this.fire(new dr(`data`,{sourceDataType:`metadata`})),this.fire(new dr(`data`,{sourceDataType:`content`,sourceDataChanged:e})))}catch(e){this._tileJSONRequest=null,this._loaded=!0,wn(e)||this.fire(new I(mt(e)))}}loaded(){return this._loaded}onAdd(e){this.map=e,this.load()}onRemove(){this._tileJSONRequest&&=(this._tileJSONRequest.abort(),null)}setSourceProperty(e){this._tileJSONRequest&&=(this._tileJSONRequest.abort(),null),e(),this.load(!0)}setTiles(e){return this.setSourceProperty(()=>{this.tiles=e,this._options.tiles=e}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e}),this}serialize(){return P({},this._options)}setPremultiplyAlpha(e){return this._premultiplyAlpha===e||this.setSourceProperty(()=>{this._premultiplyAlpha=e}),this}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}async loadTile(e){let t=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),n=this._premultiplyAlpha,r=n?void 0:{premultiplyAlpha:`none`};e.abortController=new AbortController;try{let i=await nr.transformAndGetImage(this.map._requestManager,t,`Tile`,e.abortController,this.map._refreshExpiredTiles,r);if(delete e.abortController,e.aborted){e.state=`unloaded`;return}if(i){this.map._refreshExpiredTiles&&(i.cacheControl||i.expires)&&e.setExpiryData({cacheControl:i.cacheControl,expires:i.expires});let t=this.map.painter.context,r=t.gl,a=i.data??new Mf({width:1,height:1},new Uint8Array(4));e.texture=this.map.painter.getTileTexture(a.width),e.texture?e.texture.update(a,{useMipmap:!0,premultiply:n}):(e.texture=new qf(t,a,r.RGBA,{useMipmap:!0,premultiply:n}),e.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE,r.LINEAR_MIPMAP_NEAREST)),e.state=`loaded`}}catch(t){if(delete e.abortController,e.aborted)e.state=`unloaded`;else if(t)throw e.state=`errored`,t}}async abortTile(e){e.abortController&&(e.abortController.abort(),delete e.abortController)}async unloadTile(e){e.texture&&this.map.painter.saveTileTexture(e.texture)}hasTransition(){return!1}};function Nb(e,t,n){return!(e<0||e>25||n<0||n>=2**e||t<0||t>=2**e)}function Pb(e,t){let{x:n,y:r}=Wm.fromLngLat(t);return!(e<0||e>25||r<0||r>=1||n<0||n>=1)}var Fb=class{constructor(e,t,n){if(!Nb(e,t,n))throw Error(`x=${t}, y=${n}, z=${e} outside of bounds. 0<=x<${2**e}, 0<=y<${2**e} 0<=z<=25 `);this.z=e,this.x=t,this.y=n,this.key=Rb(0,e,e,t,n)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,t,n){let r=Bb(this.x,this.y,this.z),i=Hb(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(n===`tms`?2**this.z-this.y-1:this.y)).replace(/{ratio}/g,t>1?`@2x`:``).replace(/{quadkey}/g,i).replace(/{bbox-epsg-3857}/g,r)}isChildOf(e){let t=this.z-e.z;return t>0&&e.x===this.x>>t&&e.y===this.y>>t}getTilePoint(e){let t=2**this.z;return new b((e.x*t-this.x)*M,(e.y*t-this.y)*M)}toString(){return`${this.z}/${this.x}/${this.y}`}},Ib=class{constructor(e,t){this.wrap=e,this.canonical=t,this.key=Rb(e,t.z,t.z,t.x,t.y)}},Lb=class e{constructor(e,t,n,r,i){if(this.terrainRttPosMatrix32f=null,e<n)throw Error(`overscaledZ should be >= z; overscaledZ = ${e}; z = ${n}`);this.overscaledZ=e,this.wrap=t,this.canonical=new Fb(n,+r,+i),this.key=Rb(t,e,n,r,i)}clone(){return new e(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(t){if(t>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-t;return t>this.canonical.z?new e(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new e(t,this.wrap,t,this.canonical.x>>n,this.canonical.y>>n)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,t){if(e>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-e;return e>this.canonical.z?Rb(this.wrap*+t,e,this.canonical.z,this.canonical.x,this.canonical.y):Rb(this.wrap*+t,e,e,this.canonical.x>>n,this.canonical.y>>n)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return!1;if(e.overscaledZ===0)return this.overscaledZ>0;let t=this.canonical.z-e.canonical.z;return t<0?!1:e.canonical.x===this.canonical.x>>t&&e.canonical.y===this.canonical.y>>t}children(t){if(this.overscaledZ>=t)return[new e(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let n=this.canonical.z+1,r=this.canonical.x*2,i=this.canonical.y*2;return[new e(n,this.wrap,n,r,i),new e(n,this.wrap,n,r+1,i),new e(n,this.wrap,n,r,i+1),new e(n,this.wrap,n,r+1,i+1)]}isLessThan(e){return this.wrap<e.wrap?!0:this.wrap>e.wrap?!1:this.overscaledZ<e.overscaledZ?!0:this.overscaledZ>e.overscaledZ?!1:this.canonical.x<e.canonical.x?!0:this.canonical.x>e.canonical.x?!1:this.canonical.y<e.canonical.y}wrapped(){return new e(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new e(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return 2**(this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Ib(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(e){return this.canonical.getTilePoint(new Wm(e.x-this.wrap,e.y))}normalizeCoordinates(t,n,r=M){if(t>=0&&t<r&&n>=0&&n<r)return{tileID:this,x:t,y:n};let i=Math.floor(t/r),a=Math.floor(n/r),o=t-i*r,s=n-a*r,c=this.canonical.z,l=1<<c,u=this.canonical.y+a;if(u<0||u>=l)return null;let d=this.canonical.x+i,f=this.wrap;return d<0?(f-=Math.ceil(-d/l),d=(d%l+l)%l):d>=l&&(f+=Math.floor(d/l),d%=l),{tileID:new e(this.overscaledZ,f,c,d,u),x:o,y:s}}};function Rb(e,t,n,r,i){e*=2,e<0&&(e=e*-1-1);let a=1<<n;return(a*a*e+a*i+r).toString(36)+n.toString(36)+t.toString(36)}var zb=Math.PI*6378137;function Bb(e,t,n){t=2**n-t-1;let r=Vb(e*256,t*256,n),i=Vb((e+1)*256,(t+1)*256,n);return`${r[0]},${r[1]},${i[0]},${i[1]}`}function Vb(e,t,n){let r=2*zb/256/2**n;return[e*r-zb,t*r-zb]}function Hb(e,t,n){let r=``;for(let i=e;i>0;i--){let e=1<<i-1;r+=(t&e?1:0)+(n&e?2:0)}return r}function Ub(e,t){let n=Math.abs(e.wrap*2)-+(e.wrap<0),r=Math.abs(t.wrap*2)-+(t.wrap<0);return e.overscaledZ-t.overscaledZ||r-n||t.canonical.y-e.canonical.y||t.canonical.x-e.canonical.x}K(`CanonicalTileID`,Fb),K(`OverscaledTileID`,Lb,{omit:[`terrainRttPosMatrix32f`]});var Wb=class extends Mb{constructor(e,t,n,r){super(e,t,n,r),this.type=`raster-dem`,this.maxzoom=22,this._options=P({type:`raster-dem`},t),this.encoding=t.encoding||`mapbox`,this.redFactor=t.redFactor,this.greenFactor=t.greenFactor,this.blueFactor=t.blueFactor,this.baseShift=t.baseShift}async loadTile(e){let t=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.abortController=new AbortController;try{let n=await nr.transformAndGetImage(this.map._requestManager,t,`Tile`,e.abortController,this.map._refreshExpiredTiles,{colorSpaceConversion:`none`});if(delete e.abortController,e.aborted){e.state=`unloaded`;return}if(n){if(this.map._refreshExpiredTiles&&(n.cacheControl||n.expires)&&e.setExpiryData({cacheControl:n.cacheControl,expires:n.expires}),!n.data){e.state=`loaded`;return}let t=n.data,r=rn(t)&&C()?t:await this.readImageNow(t),i={type:this.type,uid:e.uid,source:this.id,rawImageData:r,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(e.actor&&e.state!==`expired`&&e.state!==`reloading`)return;await this.dispatcher.waitForInitComplete(),(!e.actor||e.state===`expired`)&&(e.actor=this.dispatcher.getReadyActor()),e.dem=await e.actor.sendAsync({type:`LDT`,data:i}),e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.needsColorReliefPrepare=!0,e.state=`loaded`}}catch(t){if(delete e.abortController,e.aborted)e.state=`unloaded`;else if(t)throw e.state=`errored`,t}}async readImageNow(e){if(typeof VideoFrame<`u`&&T()){let t=e.width+4,n=e.height+4;try{return new Mf({width:t,height:n},await cn(e,-2,-2,t,n))}catch{}}return kn.getImageData(e,2)}_getNeighboringTiles(e){let t=e.canonical,n=2**t.z,r=(t.x-1+n)%n,i=t.x===0?e.wrap-1:e.wrap,a=(t.x+1+n)%n,o=t.x+1===n?e.wrap+1:e.wrap,s={};return s[new Lb(e.overscaledZ,i,t.z,r,t.y).key]={backfilled:!1},s[new Lb(e.overscaledZ,o,t.z,a,t.y).key]={backfilled:!1},t.y>0&&(s[new Lb(e.overscaledZ,i,t.z,r,t.y-1).key]={backfilled:!1},s[new Lb(e.overscaledZ,e.wrap,t.z,t.x,t.y-1).key]={backfilled:!1},s[new Lb(e.overscaledZ,o,t.z,a,t.y-1).key]={backfilled:!1}),t.y+1<n&&(s[new Lb(e.overscaledZ,i,t.z,r,t.y+1).key]={backfilled:!1},s[new Lb(e.overscaledZ,e.wrap,t.z,t.x,t.y+1).key]={backfilled:!1},s[new Lb(e.overscaledZ,o,t.z,a,t.y+1).key]={backfilled:!1}),s}async unloadTile(e){e.demTexture&&this.map.painter.saveTileTexture(e.demTexture),e.fbo&&(e.fbo.destroy(),delete e.fbo),e.dem&&delete e.dem,delete e.neighboringTiles,e.state=`unloaded`,e.actor&&await e.actor.sendAsync({type:`RDT`,data:{type:this.type,uid:e.uid,source:this.id}})}};function Gb(e,t){return t?e.properties[t]:e.id}function Kb(e,t){let n=new Map;if(e==null||e.type==null)return n;if(e.type===`Feature`){let r=Gb(e,t);return r==null?void 0:(n.set(r,e),n)}if(e.type===`FeatureCollection`){let r=new Set;for(let i of e.features){let e=Gb(i,t);if(e==null||r.has(e))return;r.add(e),n.set(e,i)}return n}}function qb(e,t,n){let r=[];if(t.removeAll)e.clear();else if(t.remove)for(let n of t.remove){let t=e.get(n);t&&(r.push(t.geometry),e.delete(n))}if(t.add)for(let i of t.add){let t=Gb(i,n);if(t==null)continue;let a=e.get(t);a&&r.push(a.geometry),r.push(i.geometry),e.set(t,i)}if(t.update)for(let n of t.update){let t=e.get(n.id);if(!t)continue;let i=!!n.newGeometry,a=n.removeAllProperties||n.removeProperties?.length>0||n.addOrUpdateProperties?.length>0;if(!i&&!a)continue;r.push(t.geometry);let o={...t};if(e.set(n.id,o),i&&(r.push(n.newGeometry),o.geometry=n.newGeometry),a){if(o.properties=n.removeAllProperties?{}:{...o.properties||{}},n.removeProperties)for(let e of n.removeProperties)delete o.properties[e];if(n.addOrUpdateProperties)for(let{key:e,value:t}of n.addOrUpdateProperties)o.properties[e]=t}}return r}function Jb(e,t,n){if(!e)return t||{};if(!t)return e||{};let r=Zb(e,n),i=Zb(t,n);Yb(r,i);let a={};if((r.removeAll||i.removeAll)&&(a.removeAll=!0),a.remove=new Set([...r.remove,...i.remove]),a.add=new Map([...r.add,...i.add]),a.update=new Map([...r.update,...i.update]),a.remove.size&&a.add.size)for(let e of a.add.keys())a.remove.delete(e);return Qb(a)}function Yb(e,t){t.removeAll&&(e.add.clear(),e.update.clear(),e.remove.clear(),t.remove.clear());for(let n of t.remove)e.add.delete(n),e.update.delete(n);for(let[n,r]of t.update){let i=e.update.get(n);i&&(t.update.set(n,Xb(i,r)),e.update.delete(n))}}function Xb(e,t){let n={id:e.id};if(t.removeAllProperties&&(delete e.removeProperties,delete e.addOrUpdateProperties,delete t.removeProperties),t.removeProperties&&e.addOrUpdateProperties){let n=new Set(t.removeProperties);e.addOrUpdateProperties=e.addOrUpdateProperties.filter(e=>!n.has(e.key))}return(e.removeAllProperties||t.removeAllProperties)&&(n.removeAllProperties=!0),(e.removeProperties||t.removeProperties)&&(n.removeProperties=[...e.removeProperties||[],...t.removeProperties||[]]),(e.addOrUpdateProperties||t.addOrUpdateProperties)&&(n.addOrUpdateProperties=[...e.addOrUpdateProperties||[],...t.addOrUpdateProperties||[]]),(e.newGeometry||t.newGeometry)&&(n.newGeometry=t.newGeometry||e.newGeometry),n}function Zb(e,t){if(!e)return{};let n={};return n.removeAll=e.removeAll,n.remove=new Set(e.remove||[]),n.add=new Map(e.add?.map(e=>[Gb(e,t),e])),n.update=new Map(e.update?.map(e=>[e.id,e])),n}function Qb(e){let t={};return e.removeAll&&(t.removeAll=e.removeAll),e.remove&&(t.remove=Array.from(e.remove)),e.add&&(t.add=Array.from(e.add.values())),e.update&&(t.update=Array.from(e.update.values())),t}function $b(e){return!e||e.length===0?[]:typeof e[0]==`number`?[e]:e.flatMap(e=>$b(e))}function ex(e){return e.type===`GeometryCollection`?e.geometries.flatMap(e=>ex(e)):$b(e.coordinates)}function tx(e){let t=new kb,n;switch(e.type){case`FeatureCollection`:n=e.features.flatMap(e=>ex(e.geometry));break;case`Feature`:n=ex(e.geometry);break;default:n=ex(e)}if(n.length===0)return t;for(let e of n){let[n,r]=e;t.extend([n,r])}return t}function nx({x:e,y:t,z:n},r=0){let i=Bm((e-r)/2**n),a=Vm((t+1+r)/2**n),o=Bm((e+1+r)/2**n),s=Vm((t-r)/2**n);return new kb([i,a],[o,s])}var rx=class{constructor(e){this._waiting=[],this._sending=!1,this._replacedWhileSending=!1,this._handlers=e}isIdle(){return!this._sending&&this._waiting.length===0}top(){return this._waiting.length?this._waiting[this._waiting.length-1]:void 0}some(e){return this._waiting.some(e)}enqueue(e){this._waiting.push(e)}replace(e){this._waiting=[e],this._replacedWhileSending=this._sending}clear(){this._waiting=[]}flush(){if(this.isIdle())return Promise.resolve();if(!this._flushing){let e,t=new Promise(t=>{e=t});this._flushing={promise:t,resolve:e}}let{promise:e}=this._flushing;return this._next(),e}_next(){if(this._sending)return;let e=this._waiting.shift();if(e===void 0){this._flushing?.resolve(),this._flushing=void 0;return}this._sending=!0,this._replacedWhileSending=!1,this._send(e).finally(()=>this._next())}async _send(e){let t;try{t=await this._handlers.send(e)}catch(t){this._sending=!1,this._handlers.onError(e,t);return}this._sending=!1;try{this._handlers.onResult(e,t,this._replacedWhileSending)}catch(t){this._handlers.onError(e,t)}}},ix=class extends sr{constructor(e,t,n,r){super(),this.id=e,this.type=`geojson`,this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._workerUpdates=new rx({send:e=>this._sendWorkerUpdate(e),onResult:(e,t,n)=>this._onWorkerUpdateResult(e,t,n),onError:(e,t)=>this._onWorkerUpdateError(t)}),t.data!==void 0&&this._workerUpdates.enqueue({data:t.data}),this.actorPromise=n.getActor(),this.setEventedParent(r),this._data=typeof t.data==`string`?{url:t.data}:{geojson:t.data},this._options=P({},t),this._collectResourceTiming=t.collectResourceTiming,t.maxzoom!==void 0&&(this.maxzoom=t.maxzoom),t.type&&(this.type=t.type),t.attribution&&(this.attribution=t.attribution),this.promoteId=t.promoteId,t.clusterMaxZoom!==void 0&&this.maxzoom<=t.clusterMaxZoom&&Yt(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${t.clusterMaxZoom}".`),this.workerOptions=P({source:this.id,geojsonVtOptions:{buffer:this._pixelsToTileUnits(t.buffer===void 0?128:t.buffer),tolerance:this._pixelsToTileUnits(t.tolerance===void 0?.375:t.tolerance),extent:M,maxZoom:this.maxzoom,lineMetrics:t.lineMetrics||!1,generateId:t.generateId||!1,promoteId:this._promoteIdKey,cluster:t.cluster||!1,clusterOptions:{maxZoom:this._getClusterMaxZoom(t.clusterMaxZoom),minPoints:Math.max(2,t.clusterMinPoints||2),extent:M,radius:this._pixelsToTileUnits(t.clusterRadius||50),log:!1,generateId:t.generateId||!1}},clusterProperties:t.clusterProperties,filter:t.filter},t.workerOptions)}get _promoteIdKey(){return typeof this.promoteId==`string`?this.promoteId:void 0}_pixelsToTileUnits(e){return e*(M/this.tileSize)}_tileUnitsToPixels(e){return e/(M/this.tileSize)}_getClusterMaxZoom(e){let t=e?Math.round(e):this.maxzoom-1;return Number.isInteger(e)||e===void 0||Yt(`Integer expected for option 'clusterMaxZoom': provided value "${e}" rounded to "${t}"`),t}async load(){if(this._workerUpdates.isIdle()){Yt(`No pending worker updates for GeoJSONSource ${this.id}.`);return}await this._workerUpdates.flush()}onAdd(e){this.map=e,this.load()}setData(e){return this._data=typeof e==`string`?{url:e}:{geojson:e},this._workerUpdates.replace({data:e}),this._workerUpdates.flush()}updateData(e){let t=this._getWaitingWorkerChange();return t?t.diff=Jb(t.diff,e,this._promoteIdKey):this._workerUpdates.enqueue({diff:e}),this._workerUpdates.flush()}async getData(){for(;this._data.url;)await this.once(`data`);return this._data.geojson?this._data.geojson:{type:`FeatureCollection`,features:Array.from(this._data.updateable.values())}}async getBounds(){return tx(await this.getData())}setClusterOptions(e){if(this.workerOptions.geojsonVtOptions.cluster=e.cluster,e.clusterRadius!==void 0&&(this.workerOptions.geojsonVtOptions.clusterOptions.radius=this._pixelsToTileUnits(e.clusterRadius)),e.clusterMaxZoom!==void 0&&(this.workerOptions.geojsonVtOptions.clusterOptions.maxZoom=this._getClusterMaxZoom(e.clusterMaxZoom)),!this._workerUpdates.some(e=>`data`in e)){let e=this._getWaitingWorkerChange();e?e.updateCluster=!0:this._workerUpdates.enqueue({updateCluster:!0})}return this._workerUpdates.flush()}_getWaitingWorkerChange(){let e=this._workerUpdates.top();return e&&!(`data`in e)?e:void 0}getClusterOptions(){let{cluster:e,clusterOptions:t}=this.workerOptions.geojsonVtOptions;return{cluster:e,clusterMaxZoom:t.maxZoom,clusterRadius:this._tileUnitsToPixels(t.radius)}}async getClusterExpansionZoom(e){return(await this.actorPromise).sendAsync({type:`GCEZ`,data:{type:this.type,clusterId:e,source:this.id}})}async getClusterChildren(e){return(await this.actorPromise).sendAsync({type:`GCC`,data:{type:this.type,clusterId:e,source:this.id}})}async getClusterLeaves(e,t,n){return(await this.actorPromise).sendAsync({type:`GCL`,data:{type:this.type,source:this.id,clusterId:e,limit:t,offset:n}})}async _getLoadGeoJSONParameters(e){let t=P({type:this.type,source:this.id},this.workerOptions);return`data`in e?typeof e.data==`string`?(t.request=await this.map._requestManager.transformRequest(kn.resolveURL(e.data),`Source`),t.request.collectResourceTiming=this._collectResourceTiming,t):(t.data=e.data,t):(e.diff&&(t.dataDiff=e.diff),e.updateCluster&&(t.updateCluster=!0),t)}async _sendWorkerUpdate(e){this.fire(new dr(`dataloading`));let t=await this._getLoadGeoJSONParameters(e);return(await this.actorPromise).sendAsync({type:`LD`,data:t})}_onWorkerUpdateResult(e,t,n){if(this._removed||t.abandoned){this.fire(new dr(`dataabort`));return}t.data&&!n&&(this._data={geojson:t.data});let r=`data`in e||n?void 0:e.diff,i=this._applyDiffToSource(r),a=!(`data`in e)&&e.updateCluster?void 0:this._getShouldReloadTileOptions(i),o={};this._applyResourceTiming(o,t),this.fire(new dr(`data`,{...o,sourceDataType:`metadata`})),this.fire(new dr(`data`,{...o,sourceDataType:`content`,shouldReloadTileOptions:a}))}_onWorkerUpdateError(e){if(this._removed){this.fire(new dr(`dataabort`));return}this.fire(new I(mt(e)))}_applyResourceTiming(e,t){if(!this._collectResourceTiming)return;let n=t.resourceTiming?.[this.id];if(!n)return;let r=n.slice(0);r?.length&&P(e,{resourceTiming:r})}_applyDiffToSource(e){if(!e)return;let t=this._promoteIdKey;if(!this._data.url&&!this._data.updateable){let e=Kb(this._data.geojson,t);if(!e)throw Error(`GeoJSONSource "${this.id}": GeoJSON data is not compatible with updateData`);this._data={updateable:e}}if(!this._data.updateable)return;let n=qb(this._data.updateable,e,t);if(!(e.removeAll||this.workerOptions.geojsonVtOptions.cluster))return n}_getShouldReloadTileOptions(e){if(e)return{affectedBounds:e.filter(Boolean).map(e=>tx(e))}}shouldReloadTile(e,{affectedBounds:t}){if(e.state===`loading`)return!0;if(e.state===`unloaded`)return!1;let{buffer:n,extent:r}=this.workerOptions.geojsonVtOptions,i=nx(e.tileID.canonical,n/r);for(let e of t)if(i.intersects(e))return!0;return!1}loaded(){return this._workerUpdates.isIdle()}async loadTile(e){let t=e.actor?`RT`:`LT`;e.actor=await this.actorPromise;let n={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};e.abortController=new AbortController;try{let r=await(await this.actorPromise).sendAsync({type:t,data:n},e.abortController);delete e.abortController,e.unloadVectorData(),e.aborted||e.loadVectorData(r,this.map.style,t===`RT`)}catch(t){if(delete e.abortController,e.aborted||wn(t))return;throw t}}async abortTile(e){e.abortController&&(e.abortController.abort(),delete e.abortController),e.aborted=!0}async unloadTile(e){e.unloadVectorData(),await(await this.actorPromise).sendAsync({type:`RMT`,data:{uid:e.uid,type:this.type,source:this.id}})}onRemove(){this._removed=!0,this._workerUpdates.clear(),this.actorPromise.then(e=>e.sendAsync({type:`RS`,data:{type:this.type,source:this.id}}))}serialize(){return P({},this._options,{type:this.type,data:this._data.updateable?{type:`FeatureCollection`,features:Array.from(this._data.updateable.values())}:this._data.url||this._data.geojson})}hasTransition(){return!1}},ax=[0,0,1],ox=(e,t)=>({u_tl_parent:new Z(e,t.u_tl_parent),u_scale_parent:new X(e,t.u_scale_parent),u_buffer_scale:new X(e,t.u_buffer_scale),u_image_warp:new vd(e,t.u_image_warp),u_fade_t:new X(e,t.u_fade_t),u_opacity:new X(e,t.u_opacity),u_image0:new Y(e,t.u_image0),u_image1:new Y(e,t.u_image1),u_brightness_low:new X(e,t.u_brightness_low),u_brightness_high:new X(e,t.u_brightness_high),u_saturation_factor:new X(e,t.u_saturation_factor),u_contrast_factor:new X(e,t.u_contrast_factor),u_spin_weights:new vd(e,t.u_spin_weights),u_coords_top:new yd(e,t.u_coords_top),u_coords_bottom:new yd(e,t.u_coords_bottom)}),sx=(e,t,n,r,i,a)=>({u_tl_parent:e,u_scale_parent:t,u_buffer_scale:1,u_image_warp:a,u_fade_t:n.mix,u_opacity:n.opacity*r.paint.get(`raster-opacity`),u_image0:0,u_image1:1,u_brightness_low:r.paint.get(`raster-brightness-min`),u_brightness_high:r.paint.get(`raster-brightness-max`),u_saturation_factor:ux(r.paint.get(`raster-saturation`)),u_contrast_factor:lx(r.paint.get(`raster-contrast`)),u_spin_weights:cx(r.paint.get(`raster-hue-rotate`)),u_coords_top:[i[0].x,i[0].y,i[1].x,i[1].y],u_coords_bottom:[i[3].x,i[3].y,i[2].x,i[2].y]});function cx(e){e*=Math.PI/180;let t=Math.sin(e),n=Math.cos(e);return[(2*n+1)/3,(-Math.sqrt(3)*t-n+1)/3,(Math.sqrt(3)*t-n+1)/3]}function lx(e){return e>0?1/(1-e):1+e}function ux(e){return e>0?1-1/(1.001-e):-e}var dx=class{constructor(e,t,n){this.vertexBuffer=e,this.indexBuffer=t,this.segments=n}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}},fx=$l([{name:`a_pos`,type:`Int16`,components:2}]);function px(e,t){let n=mx(t,`16bit`),r=Ru.deserialize({arrayBuffer:n.vertices,length:n.vertices.byteLength/2/2}),i=td.deserialize({arrayBuffer:n.indices,length:n.indices.byteLength/2/3});return new dx(e.createVertexBuffer(r,fx.members),e.createIndexBuffer(i),od.simpleSegment(0,0,r.length,i.length))}function mx(e,t){let n=e.granularity===void 0?1:Math.max(e.granularity,1),r=n+(e.generateBorders?2:0),i=n+(e.extendToNorthPole||e.generateBorders?1:0)+(e.extendToSouthPole||e.generateBorders?1:0),a=r+1,o=i+1,s=e.generateBorders?-1:0,c=e.generateBorders||e.extendToNorthPole?-1:0,l=n+ +!!e.generateBorders,u=n+(e.generateBorders||e.extendToSouthPole?1:0),d=a*o,f=r*i*6,p=a*o>65536;if(p&&t===`16bit`)throw Error(`Granularity is too large and meshes would not fit inside 16 bit vertex indices.`);let m=p||t===`32bit`,h=new Int16Array(d*2),g=0;for(let t=c;t<=u;t++)for(let r=s;r<=l;r++){let i=r/n*M;r===-1&&(i=-64),r===n+1&&(i=8256);let a=t/n*M;t===-1&&(a=e.extendToNorthPole?$p:-64),t===n+1&&(a=e.extendToSouthPole?em:8256),h[g++]=i,h[g++]=a}let _=m?new Uint32Array(f):new Uint16Array(f),v=0;for(let e=0;e<i;e++)for(let t=0;t<r;t++){let n=t+e*a,r=t+1+e*a,i=t+(e+1)*a,o=t+1+(e+1)*a;_[v++]=n,_[v++]=i,_[v++]=r,_[v++]=r,_[v++]=i,_[v++]=o}return{vertices:h.buffer.slice(0),indices:_.buffer.slice(0),uses32bitIndices:m}}var hx=class extends sr{constructor(e,t,n,r){super(),this.imageWarp=ax,this.flippedWindingOrder=!1,this._warp=`auto`,this._imageDirty=!1,this._subdividedQuad=!1,this._subdividedMesh=null,this.id=e,this.dispatcher=n,this.coordinates=t.coordinates,this.type=`image`,this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=t}async load(e){if(this.options.url===void 0){this._loaded=!0,this._finishLoading();return}this._loaded=!1,this.fire(new dr(`dataloading`)),this.url=this.options.url,this._abortController=new AbortController;try{let t=await nr.transformAndGetImage(this.map._requestManager,this.url,`Image`,this._abortController);this._abortController=null,this._loaded=!0,t?.data?(this._setImage(t.data),e&&(this.coordinates=e),this._finishLoading()):this.fire(new I(Error(`Could not load image ${this.url}: the response is empty`)))}catch(e){if(wn(e))return;this._abortController=null,this._loaded=!0,this.fire(new I(mt(e)))}}loaded(){return this._loaded}updateImage(e){return this._abortController&&=(this._abortController.abort(),null),`image`in e?(this._loaded=!0,this._setImage(e.image),e.coordinates&&(this.coordinates=e.coordinates),this._finishLoading(),this):e.url?(this.options.url=e.url,this.load(e.coordinates),this):this}_setImage(e){this.image=e,this._imageDirty=!0}getMesh(e,t){return!this._subdividedQuad||t?null:(this._subdividedMesh??=px(e,{granularity:16}),this._subdividedMesh)}_disposeTexture(){this.texture?.destroy(),this.texture=null}_finishLoading(){if(this.map)try{this.setCoordinates(this.coordinates),this.fire(new dr(`data`,{sourceDataType:`metadata`}))}catch(e){this.fire(new I(mt(e)))}}onAdd(e){this.map=e,this.load()}onRemove(){this._abortController&&=(this._abortController.abort(),null),this._disposeTexture(),this._subdividedMesh?.destroy(),this._subdividedMesh=null,this.image=null,this.tiles={}}setWarp(e){return this._warp===e?this:(this._warp=e,this.tileCoords&&this.setCoordinates(this.coordinates),this)}getWarp(){return this._warp}setCoordinates(e){this.coordinates=e;let t=e.map(Wm.fromLngLat);return this.tileID=gx(t),this.terrainTileRanges=this._getOverlappingTileRanges(t),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=t.map(e=>this.tileID.getTilePoint(e)._round()),this.imageWarp=vx(this.tileCoords,this._warp),this._subdividedQuad=this.imageWarp[2]>0&&!bx(this.tileCoords),this.flippedWindingOrder=_x(this.tileCoords),this.fire(new dr(`data`,{sourceDataType:`content`})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;let e=this.map.painter.context,t=e.gl;this.texture?this._imageDirty&&(this.texture.update(this.image),this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE)):(this.texture=new qf(e,this.image,t.RGBA),this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE)),this._imageDirty=!1;let n=!1;for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture,n=!0)}n&&this.fire(new dr(`data`,{sourceDataType:`idle`,sourceId:this.id}))}async loadTile(e){this.tileID?.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={}):e.state=`errored`}serialize(){let e={type:`image`,coordinates:this.coordinates};return this.options.url!==void 0&&(e.url=this.options.url),e}hasTransition(){return!1}_getOverlappingTileRanges(e){let{minX:t,minY:n,maxX:r,maxY:i}=wm.fromPoints(e),a={};for(let e=0;e<=25;e++){let o=2**e,s=Math.floor(t*o),c=Math.floor(n*o),l=Math.floor(r*o),u=Math.floor(i*o),d=(s%o+o)%o,f=l%o,p=Math.floor(s/o),m=Math.floor(l/o);a[e]={minWrap:p,maxWrap:m,minTileXWrapped:d,maxTileXWrapped:f,minTileY:c,maxTileY:u}}return a}};function gx(e){let t=wm.fromPoints(e),n=t.width(),r=t.height(),i=Math.max(0,Math.floor(-Math.log(Math.max(n,r))/Math.LN2)),a=2**i;return new Fb(i,Math.floor((t.minX+t.maxX)/2*a),Math.floor((t.minY+t.maxY)/2*a))}function _x(e){let t=e[1].x-e[0].x,n=e[1].y-e[0].y,r=e[2].x-e[0].x;return t*(e[2].y-e[0].y)-n*r<0}function vx(e,t){if(t===`flat`||bx(e))return ax;let[n,r,i,a]=e,o=n.x-r.x+i.x-a.x,s=n.y-r.y+i.y-a.y,c=[r.x-i.x,r.y-i.y,a.x-i.x,a.y-i.y],[l,u,d,f]=c,p=k(c),m=(o*f-d*s)/p,h=(l*s-o*u)/p,g=[1,1+m,1+m+h,1+h],_=Math.max(...g)/Math.min(...g),v=t===`perspective`?0:yx(_);return!(_>=1&&_<=512)||v>=1?ax:[m,h,v]}function yx(e){let t=(1-4/e)/(1-4/512);return Math.max(0,t)}function bx(e){let[t,n,r,i]=e;return t.x+r.x===n.x+i.x&&t.y+r.y===n.y+i.y}var xx=class extends hx{constructor(e,t,n,r){super(e,t,n,r),this._onPlayingHandler=()=>{this.map?.triggerRepaint()},this.roundZoom=!0,this.type=`video`,this.options=t}async load(){this._loaded=!1;let e=this.options;this.urls=[];for(let t of e.urls)this.urls.push((await this.map._requestManager.transformRequest(t,`Source`)).url);try{let e=await tr(this.urls);if(this._loaded=!0,!e)return;this.video=e,this.video.loop=!0,this.video.addEventListener(`playing`,this._onPlayingHandler),this.map&&this.video.play(),this._finishLoading()}catch(e){this.fire(new I(mt(e)))}}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(e){if(this.video){let t=this.video.seekable;e<t.start(0)||e>t.end(0)?this.fire(new I(new B(`sources.${this.id}`,null,`Playback for this video can be set only between the ${t.start(0)} and ${t.end(0)}-second mark.`))):this.video.currentTime=e}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}onRemove(){super.onRemove(),this.video&&(this.video.removeEventListener(`playing`,this._onPlayingHandler),this.video.pause())}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let e=this.map.painter.context,t=e.gl;this.texture?this.video.paused||(this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE),t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,this.video)):(this.texture=new qf(e,this.video,t.RGBA),this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE));let n=!1;for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture,n=!0)}n&&this.fire(new dr(`data`,{sourceDataType:`idle`,sourceId:this.id}))}serialize(){return{type:`video`,urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},Sx=class extends hx{constructor(e,t,n,r){super(e,t,n,r),t.coordinates?(!Array.isArray(t.coordinates)||t.coordinates.length!==4||t.coordinates.some(e=>!Array.isArray(e)||e.length!==2||e.some(e=>typeof e!=`number`)))&&this.fire(new I(new B(`sources.${e}`,null,`"coordinates" property must be an array of 4 longitude/latitude array pairs`))):this.fire(new I(new B(`sources.${e}`,null,`missing required property "coordinates"`))),t.animate&&typeof t.animate!=`boolean`&&this.fire(new I(new B(`sources.${e}`,null,`optional "animate" property must be a boolean value`))),t.canvas?typeof t.canvas!=`string`&&!(t.canvas instanceof HTMLCanvasElement)&&this.fire(new I(new B(`sources.${e}`,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 I(new B(`sources.${e}`,null,`missing required property "canvas"`))),this.options=t,this.animate=t.animate===void 0||t.animate}async load(){if(this._loaded=!0,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 I(Error(`Canvas dimensions cannot be less than or equal to zero.`)));return}this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&=(this.prepare(),!1)},this._finishLoading()}getCanvas(){return this.canvas}onAdd(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this._playing=!1,super.onRemove()}prepare(){let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let t=this.map.painter.context,n=t.gl;this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):(this.texture=new qf(t,this.canvas,n.RGBA,{premultiply:!0}),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let r=!1;for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture,r=!0)}r&&this.fire(new dr(`data`,{sourceDataType:`idle`,sourceId:this.id}))}serialize(){return{type:`canvas`,animate:this.animate,canvas:this.options.canvas,coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let e of[this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return!0;return!1}},Cx={},wx=(e,t,n,r)=>{let i=new(Tx(t.type))(e,t,n,r);if(i.id!==e)throw Error(`Expected Source id to be ${e} instead of ${i.id}`);return i},Tx=e=>{switch(e){case`geojson`:return ix;case`image`:return hx;case`raster`:return Mb;case`raster-dem`:return Wb;case`vector`:return jb;case`video`:return xx;case`canvas`:return Sx}return Cx[e]},Ex=(e,t)=>{Cx[e]=t},Dx=async(e,t)=>{if(Tx(e))throw Error(`A source type called "${e}" already exists.`);Ex(e,t)};function Ox(e,t){let n={};if(!t)return n;for(let r of e){let e=r.layerIds.map(e=>t.getLayer(e)).filter(Boolean);if(e.length!==0){r.layers=e,r.stateDependentLayerIds&&(r.stateDependentLayers=r.stateDependentLayerIds.map(t=>e.filter(e=>e.id===t)[0]));for(let t of e)n[t.id]=r}}return n}var kx=`_geojsonTileLayer`,Ax=class{constructor(e){this._stringToNumber={},this._numberToString=[];for(let t=0;t<e.length;t++){let n=e[t];this._stringToNumber[n]=t,this._numberToString[t]=n}}encode(e){return this._stringToNumber[e]}decode(e){if(e>=this._numberToString.length)throw Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}},jx=class{constructor(e,t,n,r,i){this.type=`Feature`,this._vectorTileFeature=e,this._x=n,this._y=r,this._z=t;for(let t in e.properties)typeof e.properties[t]==`string`&&e.properties[t].startsWith(`__$json__:`)&&(e.properties[t]=JSON.parse(e.properties[t].slice(10)));this.properties=e.properties,this.id=i}projectPoint(e,t,n,r){return[(e.x+t)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+n)*2/r)*Math.PI))-90]}projectLine(e,t,n,r){return e.map(e=>this.projectPoint(e,t,n,r))}get geometry(){if(this._geometry)return this._geometry;let e=this._vectorTileFeature,t=e.extent*2**this._z,n=e.extent*this._x,r=e.extent*this._y,i=e.loadGeometry();switch(e.type){case 1:{let e=[];for(let t of i)e.push(t[0]);let a=this.projectLine(e,n,r,t);this._geometry=e.length===1?{type:`Point`,coordinates:a[0]}:{type:`MultiPoint`,coordinates:a};break}case 2:{let e=i.map(e=>this.projectLine(e,n,r,t));this._geometry=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};break}case 3:{let e=km(i),a=[];for(let i of e)a.push(i.map(e=>this.projectLine(e,n,r,t)));this._geometry=a.length===1?{type:`Polygon`,coordinates:a[0]}:{type:`MultiPolygon`,coordinates:a};break}default:throw Error(`unknown feature type: ${e.type}`)}return this._geometry}set geometry(e){this._geometry=e}toJSON(){let e={geometry:this.geometry};for(let t in this)t!==`_geometry`&&t!==`_vectorTileFeature`&&t!==`_x`&&t!==`_y`&&t!==`_z`&&(e[t]=this[t]);return e}},Mx=class{constructor(e,t,n){this._name=e,this.dataBuffer=t,typeof n==`number`?this._size=n:(this.nullabilityBuffer=n,this._size=n.size())}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer?.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}},Nx=class extends Mx{},Px=class extends Nx{getValueFromBuffer(e){return this.dataBuffer[e]}},Fx=class extends Nx{getValueFromBuffer(e){return this.dataBuffer[e]}},Ix=class extends Mx{constructor(e,t,n,r){super(e,t,r),this.delta=n}},Lx=class extends Ix{constructor(e,t,n,r,i){super(e,i?Int32Array.of(t):Uint32Array.of(t),n,r)}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}},Rx=class extends Mx{constructor(e,t,n,r){super(e,r?Int32Array.of(t):Uint32Array.of(t),n)}getValueFromBuffer(e){return this.dataBuffer[0]}},zx=class{constructor(e,t,n,r,i=4096){if(this._name=e,this._geometryVector=t,this._idVector=n,this._propertyVectors=r,this._extent=i,e.length===0)throw Error(`Missing layer name`)}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors??[]}getPropertyVector(e){return this.propertyVectorsMap||=new Map(this.propertyVectors.map(e=>[e.name,e])),this.propertyVectorsMap.get(e)}get numFeatures(){return this.geometryVector.numGeometries}get extent(){return this._extent}getFeatures(){let e=[],t=this.geometryVector.getGeometries();for(let n=0;n<this.numFeatures;n++){let r;if(this.idVector){let e=this.idVector.getValue(n);e!==null&&(r=this.containsMaxSafeIntegerValues(this.idVector)?Number(e):e)}let i={coordinates:t[n],type:this.geometryVector.geometryType(n)},a={};for(let e of this.propertyVectors){if(!e)continue;let t=e.name,r=e.getValue(n);r!==null&&(a[t]=r)}e.push({id:r,geometry:i,properties:a})}return e}containsMaxSafeIntegerValues(e){return e instanceof Px||e instanceof Rx||e instanceof Lx||e instanceof Fx}},Bx={FEATURE:0,VERTEX:1},Vx={BOOLEAN:0,INT_8:1,UINT_8:2,INT_32:3,UINT_32:4,INT_64:5,UINT_64:6,FLOAT:7,DOUBLE:8,STRING:9},Hx={GEOMETRY:0,STRUCT:1,MAP:2},Ux={ID:0},Wx=class{constructor(e){this.value=e}get(){return this.value}set(e){this.value=e}increment(){return this.value++}add(e){this.value+=e}},$;(function(e){e.NONE=`NONE`,e.DELTA=`DELTA`,e.COMPONENTWISE_DELTA=`COMPONENTWISE_DELTA`,e.RLE=`RLE`,e.MORTON=`MORTON`})($||={});var Gx;(function(e){e.NONE=`NONE`,e.FAST_PFOR=`FAST_PFOR`,e.VARINT=`VARINT`})(Gx||={});var Kx=new Uint32Array(33);Kx[0]=0;for(let e=1;e<=32;e++)Kx[e]=e===32?4294967295:4294967295>>>32-e;var qx=Kx,Jx=65536;function Yx(e,t){return e-e%t}function Xx(e){return Yx(e+31,32)}function Zx(e){if(!Number.isFinite(e)||e<=0)return Jx;let t=Yx(Math.floor(e),256);return t===0?256:t}function Qx(e){let t=e>>>0;return((t&255)<<24|(t&65280)<<8|t>>>8&65280|t>>>24&255)>>>0}function $x(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0;n[i++]=a>>>0&3,n[i++]=a>>>2&3,n[i++]=a>>>4&3,n[i++]=a>>>6&3,n[i++]=a>>>8&3,n[i++]=a>>>10&3,n[i++]=a>>>12&3,n[i++]=a>>>14&3,n[i++]=a>>>16&3,n[i++]=a>>>18&3,n[i++]=a>>>20&3,n[i++]=a>>>22&3,n[i++]=a>>>24&3,n[i++]=a>>>26&3,n[i++]=a>>>28&3,n[i++]=a>>>30&3,n[i++]=o>>>0&3,n[i++]=o>>>2&3,n[i++]=o>>>4&3,n[i++]=o>>>6&3,n[i++]=o>>>8&3,n[i++]=o>>>10&3,n[i++]=o>>>12&3,n[i++]=o>>>14&3,n[i++]=o>>>16&3,n[i++]=o>>>18&3,n[i++]=o>>>20&3,n[i++]=o>>>22&3,n[i++]=o>>>24&3,n[i++]=o>>>26&3,n[i++]=o>>>28&3,n[i]=o>>>30&3}function eS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0;n[i++]=a>>>0&7,n[i++]=a>>>3&7,n[i++]=a>>>6&7,n[i++]=a>>>9&7,n[i++]=a>>>12&7,n[i++]=a>>>15&7,n[i++]=a>>>18&7,n[i++]=a>>>21&7,n[i++]=a>>>24&7,n[i++]=a>>>27&7,n[i++]=(a>>>30|(o&1)<<2)&7,n[i++]=o>>>1&7,n[i++]=o>>>4&7,n[i++]=o>>>7&7,n[i++]=o>>>10&7,n[i++]=o>>>13&7,n[i++]=o>>>16&7,n[i++]=o>>>19&7,n[i++]=o>>>22&7,n[i++]=o>>>25&7,n[i++]=o>>>28&7,n[i++]=(o>>>31|(s&3)<<1)&7,n[i++]=s>>>2&7,n[i++]=s>>>5&7,n[i++]=s>>>8&7,n[i++]=s>>>11&7,n[i++]=s>>>14&7,n[i++]=s>>>17&7,n[i++]=s>>>20&7,n[i++]=s>>>23&7,n[i++]=s>>>26&7,n[i]=s>>>29&7}function tS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0;n[i++]=a>>>0&15,n[i++]=a>>>4&15,n[i++]=a>>>8&15,n[i++]=a>>>12&15,n[i++]=a>>>16&15,n[i++]=a>>>20&15,n[i++]=a>>>24&15,n[i++]=a>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15,n[i++]=c>>>0&15,n[i++]=c>>>4&15,n[i++]=c>>>8&15,n[i++]=c>>>12&15,n[i++]=c>>>16&15,n[i++]=c>>>20&15,n[i++]=c>>>24&15,n[i]=c>>>28&15}function nS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0;n[i++]=a>>>0&31,n[i++]=a>>>5&31,n[i++]=a>>>10&31,n[i++]=a>>>15&31,n[i++]=a>>>20&31,n[i++]=a>>>25&31,n[i++]=(a>>>30|(o&7)<<2)&31,n[i++]=o>>>3&31,n[i++]=o>>>8&31,n[i++]=o>>>13&31,n[i++]=o>>>18&31,n[i++]=o>>>23&31,n[i++]=(o>>>28|(s&1)<<4)&31,n[i++]=s>>>1&31,n[i++]=s>>>6&31,n[i++]=s>>>11&31,n[i++]=s>>>16&31,n[i++]=s>>>21&31,n[i++]=s>>>26&31,n[i++]=(s>>>31|(c&15)<<1)&31,n[i++]=c>>>4&31,n[i++]=c>>>9&31,n[i++]=c>>>14&31,n[i++]=c>>>19&31,n[i++]=c>>>24&31,n[i++]=(c>>>29|(l&3)<<3)&31,n[i++]=l>>>2&31,n[i++]=l>>>7&31,n[i++]=l>>>12&31,n[i++]=l>>>17&31,n[i++]=l>>>22&31,n[i]=l>>>27&31}function rS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0;n[i++]=a>>>0&63,n[i++]=a>>>6&63,n[i++]=a>>>12&63,n[i++]=a>>>18&63,n[i++]=a>>>24&63,n[i++]=(a>>>30|(o&15)<<2)&63,n[i++]=o>>>4&63,n[i++]=o>>>10&63,n[i++]=o>>>16&63,n[i++]=o>>>22&63,n[i++]=(o>>>28|(s&3)<<4)&63,n[i++]=s>>>2&63,n[i++]=s>>>8&63,n[i++]=s>>>14&63,n[i++]=s>>>20&63,n[i++]=s>>>26&63,n[i++]=c>>>0&63,n[i++]=c>>>6&63,n[i++]=c>>>12&63,n[i++]=c>>>18&63,n[i++]=c>>>24&63,n[i++]=(c>>>30|(l&15)<<2)&63,n[i++]=l>>>4&63,n[i++]=l>>>10&63,n[i++]=l>>>16&63,n[i++]=l>>>22&63,n[i++]=(l>>>28|(u&3)<<4)&63,n[i++]=u>>>2&63,n[i++]=u>>>8&63,n[i++]=u>>>14&63,n[i++]=u>>>20&63,n[i]=u>>>26&63}function iS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0;n[i++]=a>>>0&127,n[i++]=a>>>7&127,n[i++]=a>>>14&127,n[i++]=a>>>21&127,n[i++]=(a>>>28|(o&7)<<4)&127,n[i++]=o>>>3&127,n[i++]=o>>>10&127,n[i++]=o>>>17&127,n[i++]=o>>>24&127,n[i++]=(o>>>31|(s&63)<<1)&127,n[i++]=s>>>6&127,n[i++]=s>>>13&127,n[i++]=s>>>20&127,n[i++]=(s>>>27|(c&3)<<5)&127,n[i++]=c>>>2&127,n[i++]=c>>>9&127,n[i++]=c>>>16&127,n[i++]=c>>>23&127,n[i++]=(c>>>30|(l&31)<<2)&127,n[i++]=l>>>5&127,n[i++]=l>>>12&127,n[i++]=l>>>19&127,n[i++]=(l>>>26|(u&1)<<6)&127,n[i++]=u>>>1&127,n[i++]=u>>>8&127,n[i++]=u>>>15&127,n[i++]=u>>>22&127,n[i++]=(u>>>29|(d&15)<<3)&127,n[i++]=d>>>4&127,n[i++]=d>>>11&127,n[i++]=d>>>18&127,n[i]=d>>>25&127}function aS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0;n[i++]=a>>>0&255,n[i++]=a>>>8&255,n[i++]=a>>>16&255,n[i++]=a>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255,n[i++]=f>>>0&255,n[i++]=f>>>8&255,n[i++]=f>>>16&255,n[i]=f>>>24&255}function oS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0;n[i++]=a>>>0&511,n[i++]=a>>>9&511,n[i++]=a>>>18&511,n[i++]=(a>>>27|(o&15)<<5)&511,n[i++]=o>>>4&511,n[i++]=o>>>13&511,n[i++]=o>>>22&511,n[i++]=(o>>>31|(s&255)<<1)&511,n[i++]=s>>>8&511,n[i++]=s>>>17&511,n[i++]=(s>>>26|(c&7)<<6)&511,n[i++]=c>>>3&511,n[i++]=c>>>12&511,n[i++]=c>>>21&511,n[i++]=(c>>>30|(l&127)<<2)&511,n[i++]=l>>>7&511,n[i++]=l>>>16&511,n[i++]=(l>>>25|(u&3)<<7)&511,n[i++]=u>>>2&511,n[i++]=u>>>11&511,n[i++]=u>>>20&511,n[i++]=(u>>>29|(d&63)<<3)&511,n[i++]=d>>>6&511,n[i++]=d>>>15&511,n[i++]=(d>>>24|(f&1)<<8)&511,n[i++]=f>>>1&511,n[i++]=f>>>10&511,n[i++]=f>>>19&511,n[i++]=(f>>>28|(p&31)<<4)&511,n[i++]=p>>>5&511,n[i++]=p>>>14&511,n[i]=p>>>23&511}function sS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0;n[i++]=a>>>0&1023,n[i++]=a>>>10&1023,n[i++]=a>>>20&1023,n[i++]=(a>>>30|(o&255)<<2)&1023,n[i++]=o>>>8&1023,n[i++]=o>>>18&1023,n[i++]=(o>>>28|(s&63)<<4)&1023,n[i++]=s>>>6&1023,n[i++]=s>>>16&1023,n[i++]=(s>>>26|(c&15)<<6)&1023,n[i++]=c>>>4&1023,n[i++]=c>>>14&1023,n[i++]=(c>>>24|(l&3)<<8)&1023,n[i++]=l>>>2&1023,n[i++]=l>>>12&1023,n[i++]=l>>>22&1023,n[i++]=u>>>0&1023,n[i++]=u>>>10&1023,n[i++]=u>>>20&1023,n[i++]=(u>>>30|(d&255)<<2)&1023,n[i++]=d>>>8&1023,n[i++]=d>>>18&1023,n[i++]=(d>>>28|(f&63)<<4)&1023,n[i++]=f>>>6&1023,n[i++]=f>>>16&1023,n[i++]=(f>>>26|(p&15)<<6)&1023,n[i++]=p>>>4&1023,n[i++]=p>>>14&1023,n[i++]=(p>>>24|(m&3)<<8)&1023,n[i++]=m>>>2&1023,n[i++]=m>>>12&1023,n[i]=m>>>22&1023}function cS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0;n[i++]=a>>>0&2047,n[i++]=a>>>11&2047,n[i++]=(a>>>22|(o&1)<<10)&2047,n[i++]=o>>>1&2047,n[i++]=o>>>12&2047,n[i++]=(o>>>23|(s&3)<<9)&2047,n[i++]=s>>>2&2047,n[i++]=s>>>13&2047,n[i++]=(s>>>24|(c&7)<<8)&2047,n[i++]=c>>>3&2047,n[i++]=c>>>14&2047,n[i++]=(c>>>25|(l&15)<<7)&2047,n[i++]=l>>>4&2047,n[i++]=l>>>15&2047,n[i++]=(l>>>26|(u&31)<<6)&2047,n[i++]=u>>>5&2047,n[i++]=u>>>16&2047,n[i++]=(u>>>27|(d&63)<<5)&2047,n[i++]=d>>>6&2047,n[i++]=d>>>17&2047,n[i++]=(d>>>28|(f&127)<<4)&2047,n[i++]=f>>>7&2047,n[i++]=f>>>18&2047,n[i++]=(f>>>29|(p&255)<<3)&2047,n[i++]=p>>>8&2047,n[i++]=p>>>19&2047,n[i++]=(p>>>30|(m&511)<<2)&2047,n[i++]=m>>>9&2047,n[i++]=m>>>20&2047,n[i++]=(m>>>31|(h&1023)<<1)&2047,n[i++]=h>>>10&2047,n[i]=h>>>21&2047}function lS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0;n[i++]=a>>>0&4095,n[i++]=a>>>12&4095,n[i++]=(a>>>24|(o&15)<<8)&4095,n[i++]=o>>>4&4095,n[i++]=o>>>16&4095,n[i++]=(o>>>28|(s&255)<<4)&4095,n[i++]=s>>>8&4095,n[i++]=s>>>20&4095,n[i++]=c>>>0&4095,n[i++]=c>>>12&4095,n[i++]=(c>>>24|(l&15)<<8)&4095,n[i++]=l>>>4&4095,n[i++]=l>>>16&4095,n[i++]=(l>>>28|(u&255)<<4)&4095,n[i++]=u>>>8&4095,n[i++]=u>>>20&4095,n[i++]=d>>>0&4095,n[i++]=d>>>12&4095,n[i++]=(d>>>24|(f&15)<<8)&4095,n[i++]=f>>>4&4095,n[i++]=f>>>16&4095,n[i++]=(f>>>28|(p&255)<<4)&4095,n[i++]=p>>>8&4095,n[i++]=p>>>20&4095,n[i++]=m>>>0&4095,n[i++]=m>>>12&4095,n[i++]=(m>>>24|(h&15)<<8)&4095,n[i++]=h>>>4&4095,n[i++]=h>>>16&4095,n[i++]=(h>>>28|(g&255)<<4)&4095,n[i++]=g>>>8&4095,n[i]=g>>>20&4095}function uS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0,_=e[t+12]>>>0,v=e[t+13]>>>0,y=e[t+14]>>>0,b=e[t+15]>>>0;n[i++]=a>>>0&65535,n[i++]=a>>>16&65535,n[i++]=o>>>0&65535,n[i++]=o>>>16&65535,n[i++]=s>>>0&65535,n[i++]=s>>>16&65535,n[i++]=c>>>0&65535,n[i++]=c>>>16&65535,n[i++]=l>>>0&65535,n[i++]=l>>>16&65535,n[i++]=u>>>0&65535,n[i++]=u>>>16&65535,n[i++]=d>>>0&65535,n[i++]=d>>>16&65535,n[i++]=f>>>0&65535,n[i++]=f>>>16&65535,n[i++]=p>>>0&65535,n[i++]=p>>>16&65535,n[i++]=m>>>0&65535,n[i++]=m>>>16&65535,n[i++]=h>>>0&65535,n[i++]=h>>>16&65535,n[i++]=g>>>0&65535,n[i++]=g>>>16&65535,n[i++]=_>>>0&65535,n[i++]=_>>>16&65535,n[i++]=v>>>0&65535,n[i++]=v>>>16&65535,n[i++]=y>>>0&65535,n[i++]=y>>>16&65535,n[i++]=b>>>0&65535,n[i]=b>>>16&65535}function dS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0;n[i++]=t>>>0&1,n[i++]=t>>>1&1,n[i++]=t>>>2&1,n[i++]=t>>>3&1,n[i++]=t>>>4&1,n[i++]=t>>>5&1,n[i++]=t>>>6&1,n[i++]=t>>>7&1,n[i++]=t>>>8&1,n[i++]=t>>>9&1,n[i++]=t>>>10&1,n[i++]=t>>>11&1,n[i++]=t>>>12&1,n[i++]=t>>>13&1,n[i++]=t>>>14&1,n[i++]=t>>>15&1,n[i++]=t>>>16&1,n[i++]=t>>>17&1,n[i++]=t>>>18&1,n[i++]=t>>>19&1,n[i++]=t>>>20&1,n[i++]=t>>>21&1,n[i++]=t>>>22&1,n[i++]=t>>>23&1,n[i++]=t>>>24&1,n[i++]=t>>>25&1,n[i++]=t>>>26&1,n[i++]=t>>>27&1,n[i++]=t>>>28&1,n[i++]=t>>>29&1,n[i++]=t>>>30&1,n[i++]=t>>>31&1}}function fS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0;n[i++]=t>>>0&3,n[i++]=t>>>2&3,n[i++]=t>>>4&3,n[i++]=t>>>6&3,n[i++]=t>>>8&3,n[i++]=t>>>10&3,n[i++]=t>>>12&3,n[i++]=t>>>14&3,n[i++]=t>>>16&3,n[i++]=t>>>18&3,n[i++]=t>>>20&3,n[i++]=t>>>22&3,n[i++]=t>>>24&3,n[i++]=t>>>26&3,n[i++]=t>>>28&3,n[i++]=t>>>30&3,n[i++]=r>>>0&3,n[i++]=r>>>2&3,n[i++]=r>>>4&3,n[i++]=r>>>6&3,n[i++]=r>>>8&3,n[i++]=r>>>10&3,n[i++]=r>>>12&3,n[i++]=r>>>14&3,n[i++]=r>>>16&3,n[i++]=r>>>18&3,n[i++]=r>>>20&3,n[i++]=r>>>22&3,n[i++]=r>>>24&3,n[i++]=r>>>26&3,n[i++]=r>>>28&3,n[i++]=r>>>30&3}}function pS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0;n[i++]=t>>>0&7,n[i++]=t>>>3&7,n[i++]=t>>>6&7,n[i++]=t>>>9&7,n[i++]=t>>>12&7,n[i++]=t>>>15&7,n[i++]=t>>>18&7,n[i++]=t>>>21&7,n[i++]=t>>>24&7,n[i++]=t>>>27&7,n[i++]=(t>>>30|(r&1)<<2)&7,n[i++]=r>>>1&7,n[i++]=r>>>4&7,n[i++]=r>>>7&7,n[i++]=r>>>10&7,n[i++]=r>>>13&7,n[i++]=r>>>16&7,n[i++]=r>>>19&7,n[i++]=r>>>22&7,n[i++]=r>>>25&7,n[i++]=r>>>28&7,n[i++]=(r>>>31|(o&3)<<1)&7,n[i++]=o>>>2&7,n[i++]=o>>>5&7,n[i++]=o>>>8&7,n[i++]=o>>>11&7,n[i++]=o>>>14&7,n[i++]=o>>>17&7,n[i++]=o>>>20&7,n[i++]=o>>>23&7,n[i++]=o>>>26&7,n[i++]=o>>>29&7}}function mS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0;n[i++]=t>>>0&15,n[i++]=t>>>4&15,n[i++]=t>>>8&15,n[i++]=t>>>12&15,n[i++]=t>>>16&15,n[i++]=t>>>20&15,n[i++]=t>>>24&15,n[i++]=t>>>28&15,n[i++]=r>>>0&15,n[i++]=r>>>4&15,n[i++]=r>>>8&15,n[i++]=r>>>12&15,n[i++]=r>>>16&15,n[i++]=r>>>20&15,n[i++]=r>>>24&15,n[i++]=r>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15}}function hS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0;n[i++]=t>>>0&31,n[i++]=t>>>5&31,n[i++]=t>>>10&31,n[i++]=t>>>15&31,n[i++]=t>>>20&31,n[i++]=t>>>25&31,n[i++]=(t>>>30|(r&7)<<2)&31,n[i++]=r>>>3&31,n[i++]=r>>>8&31,n[i++]=r>>>13&31,n[i++]=r>>>18&31,n[i++]=r>>>23&31,n[i++]=(r>>>28|(o&1)<<4)&31,n[i++]=o>>>1&31,n[i++]=o>>>6&31,n[i++]=o>>>11&31,n[i++]=o>>>16&31,n[i++]=o>>>21&31,n[i++]=o>>>26&31,n[i++]=(o>>>31|(s&15)<<1)&31,n[i++]=s>>>4&31,n[i++]=s>>>9&31,n[i++]=s>>>14&31,n[i++]=s>>>19&31,n[i++]=s>>>24&31,n[i++]=(s>>>29|(c&3)<<3)&31,n[i++]=c>>>2&31,n[i++]=c>>>7&31,n[i++]=c>>>12&31,n[i++]=c>>>17&31,n[i++]=c>>>22&31,n[i++]=c>>>27&31}}function gS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0;n[i++]=t>>>0&63,n[i++]=t>>>6&63,n[i++]=t>>>12&63,n[i++]=t>>>18&63,n[i++]=t>>>24&63,n[i++]=(t>>>30|(r&15)<<2)&63,n[i++]=r>>>4&63,n[i++]=r>>>10&63,n[i++]=r>>>16&63,n[i++]=r>>>22&63,n[i++]=(r>>>28|(o&3)<<4)&63,n[i++]=o>>>2&63,n[i++]=o>>>8&63,n[i++]=o>>>14&63,n[i++]=o>>>20&63,n[i++]=o>>>26&63,n[i++]=s>>>0&63,n[i++]=s>>>6&63,n[i++]=s>>>12&63,n[i++]=s>>>18&63,n[i++]=s>>>24&63,n[i++]=(s>>>30|(c&15)<<2)&63,n[i++]=c>>>4&63,n[i++]=c>>>10&63,n[i++]=c>>>16&63,n[i++]=c>>>22&63,n[i++]=(c>>>28|(l&3)<<4)&63,n[i++]=l>>>2&63,n[i++]=l>>>8&63,n[i++]=l>>>14&63,n[i++]=l>>>20&63,n[i++]=l>>>26&63}}function _S(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0;n[i++]=t>>>0&127,n[i++]=t>>>7&127,n[i++]=t>>>14&127,n[i++]=t>>>21&127,n[i++]=(t>>>28|(r&7)<<4)&127,n[i++]=r>>>3&127,n[i++]=r>>>10&127,n[i++]=r>>>17&127,n[i++]=r>>>24&127,n[i++]=(r>>>31|(o&63)<<1)&127,n[i++]=o>>>6&127,n[i++]=o>>>13&127,n[i++]=o>>>20&127,n[i++]=(o>>>27|(s&3)<<5)&127,n[i++]=s>>>2&127,n[i++]=s>>>9&127,n[i++]=s>>>16&127,n[i++]=s>>>23&127,n[i++]=(s>>>30|(c&31)<<2)&127,n[i++]=c>>>5&127,n[i++]=c>>>12&127,n[i++]=c>>>19&127,n[i++]=(c>>>26|(l&1)<<6)&127,n[i++]=l>>>1&127,n[i++]=l>>>8&127,n[i++]=l>>>15&127,n[i++]=l>>>22&127,n[i++]=(l>>>29|(u&15)<<3)&127,n[i++]=u>>>4&127,n[i++]=u>>>11&127,n[i++]=u>>>18&127,n[i++]=u>>>25&127}}function vS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0,d=e[a++]>>>0;n[i++]=t>>>0&255,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=r>>>0&255,n[i++]=r>>>8&255,n[i++]=r>>>16&255,n[i++]=r>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255}}function yS(e,t,n,r){let i=r,a=t;for(let t=0;t<128;t++){let t=e[a++]>>>0;n[i++]=t&65535,n[i++]=t>>>16&65535}}function bS(e,t,n,r,i){let a=qx[i]>>>0,o=t,s=0,c=e[o]>>>0,l=r;for(let t=0;t<8;t++){for(let t=0;t<32;t++)if(s+i<=32){let r=c>>>s&a;n[l+t]=r|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0))}else{let r=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=i-r,f=-1>>>32-d>>>0,p=(u|(c&f)<<r)&a;n[l+t]=p|0,s=d}l+=32,s=0,t<7&&(c=e[o]>>>0)}}var xS=Zx(Jx),SS=3*xS/256+xS|0;function CS(){let e=new Uint8Array(SS);return{dataToBePacked:Array(33),dataPointers:new Int32Array(33),byteContainer:e,byteContainerI32:new Int32Array(e.buffer,e.byteOffset,e.byteLength>>>2),exceptionSizes:new Int32Array(33)}}function wS(e=16){if(e<0)throw RangeError(`initialEncodedWordCapacity must be >= 0, got ${e}`);let t=Math.max(16,e|0);return{encodedWords:new Uint32Array(t),decoderWorkspace:CS()}}function TS(e,t){if(t<=e.encodedWords.length)return e.encodedWords;let n=new Uint32Array(Math.max(16,t*2));return e.encodedWords=n,n}function ES(e,t,n,r){r.byteContainer.length<n&&(r.byteContainer=new Uint8Array(n*2),r.byteContainerI32=void 0);let i=r.byteContainer,a=n>>>2;if(i.byteOffset&3)for(let n=0;n<a;n=n+1|0){let r=e[t+n|0]|0,a=n<<2;i[a]=r&255,i[a+1|0]=r>>>8&255,i[a+2|0]=r>>>16&255,i[a+3|0]=r>>>24&255}else{let n=r.byteContainerI32;(!n||n.buffer!==i.buffer||n.byteOffset!==i.byteOffset||n.length<a)&&(n=r.byteContainerI32=new Int32Array(i.buffer,i.byteOffset,i.byteLength>>>2)),n.set(e.subarray(t,t+a))}let o=n&3;if(o>0){let n=e[t+a|0]|0,r=a<<2;for(let e=0;e<o;e=e+1|0)i[r+e|0]=n>>>(e<<3)&255}return i}function DS(e,t,n){let r=e[t++]|0,i=n.dataToBePacked;for(let a=2;a<=32;a=a+1|0){if(!(r>>>a-1&1))continue;if(t>=e.length)throw Error(`FastPFOR decode: truncated exception stream header (bitWidth=${a}, streamWordIndex=${t}, needWords=1, availableWords=${e.length-t}, encodedWords=${e.length})`);let o=e[t++]>>>0,s=Xx(o),c=o*a+31>>>5;if(t+c>e.length)throw Error(`FastPFOR decode: truncated exception stream (bitWidth=${a}, size=${o}, streamWordIndex=${t}, needWords=${c}, availableWords=${e.length-t}, encodedWords=${e.length})`);let l=i[a];(!l||l.length<s)&&(l=i[a]=new Uint32Array(s));let u=0;for(;u<o;u=u+32|0)LS(e,t,l,u,a),t=t+a|0;let d=u-o|0;t=t-(d*a>>>5)|0,n.exceptionSizes[a]=o}return t}function OS(e,t,n,r,i){switch(i){case 1:dS(e,t,n,r);break;case 2:fS(e,t,n,r);break;case 3:pS(e,t,n,r);break;case 4:mS(e,t,n,r);break;case 5:hS(e,t,n,r);break;case 6:gS(e,t,n,r);break;case 7:_S(e,t,n,r);break;case 8:vS(e,t,n,r);break;case 16:yS(e,t,n,r);break;default:bS(e,t,n,r,i)}return t+(i<<3)|0}function kS(e,t,n,r){if(n+2>t)throw Error(`FastPFOR decode: byteContainer underflow at block=${r} (need 2 bytes for [bitWidth, exceptionCount], bytePos=${n}, byteSize=${t})`);let i=e[n++],a=e[n++];if(i>32)throw Error(`FastPFOR decode: invalid bitWidth=${i} at block=${r} (expected 0..32). This likely indicates corrupted or truncated input.`);return{bitWidth:i,exceptionCount:a,bytePosIn:n}}function AS(e,t,n,r,i,a){if(n+1>t)throw Error(`FastPFOR decode: exception header underflow at block=${a} (need 1 byte for maxBits, bytePos=${n}, byteSize=${t})`);let o=e[n++];if(o<r||o>32)throw Error(`FastPFOR decode: invalid maxBits=${o} at block=${a} (bitWidth=${r}, expected ${r}..32)`);let s=o-r|0;if(s<1||s>32)throw Error(`FastPFOR decode: invalid exceptionBitWidth=${s} at block=${a} (bitWidth=${r}, maxBits=${o})`);if(n+i>t)throw Error(`FastPFOR decode: exception positions underflow at block=${a} (need=${i}, have=${t-n})`);return{maxBits:o,exceptionBitWidth:s,bytePosIn:n}}function jS(e,t,n,r,i,a,o,s,c){let{maxBits:l,exceptionBitWidth:u,bytePosIn:d}=AS(i,a,o,n,r,c);if(o=d,u===1){let a=1<<n;for(let n=0;n<r;n=n+1|0){let n=i[o++];e[n+t|0]|=a}return o}let f=s.dataToBePacked[u];if(!f)throw Error(`FastPFOR decode: missing exception stream for exceptionBitWidth=${u} (bitWidth=${n}, maxBits=${l}) at block ${c}`);let p=s.dataPointers,m=p[u]|0,h=s.exceptionSizes[u]|0;if(m+r>h)throw Error(`FastPFOR decode: exception stream overflow for exceptionBitWidth=${u} (ptr=${m}, need ${r}, size=${h}) at block ${c}`);for(let a=0;a<r;a=a+1|0){let r=i[o++],a=f[m++]|0;e[r+t|0]|=a<<n}return p[u]=m,o}function MS(e,t,n,r,i,a,o,s,c,l){let u=n|0,d=0;for(let t=0;t<o;t=t+1|0){let n=kS(s,c,d,t);d=n.bytePosIn;let r=n.bitWidth,o=n.exceptionCount,f=a+t*256|0;switch(r){case 0:i.fill(0,f,f+256);break;case 32:for(let t=0;t<256;t=t+1|0)i[f+t|0]=e[u+t|0]|0;u=u+256|0;break;default:u=OS(e,u,i,f,r)}o>0&&(d=jS(i,f,r,o,s,c,d,l,t))}if(u!==r)throw Error(`FastPFOR decode: packed region mismatch (pageStart=${t}, packedStart=${n}, consumedPackedEnd=${u}, expectedPackedEnd=${r}, packedWords=${r-n}, encoded.length=${e.length})`)}function NS(e,t,n,r,i,a){let o=n|0,s=e[o]|0;if(s<=0||o+s>e.length-1)throw Error(`FastPFOR decode: invalid whereMeta=${s} at pageStart=${o} (expected > 0 and pageStart+whereMeta < encoded.length=${e.length})`);let c=o+1|0,l=o+s|0,u=e[l]>>>0,d=u+3>>>2,f=l+1,p=f+d;if(p>=e.length)throw Error(`FastPFOR decode: invalid byteSize=${u} (metaInts=${d}, pageStart=${o}, packedEnd=${l}, byteContainerStart=${f}) causes bitmapPos=${p} out of bounds (encoded.length=${e.length})`);let m=ES(e,f,u,a),h=u,g=DS(e,p,a);return a.dataPointers.fill(0),MS(e,o,c,l,t,r|0,i/256|0,m,h,a),g}function PS(e,t,n,r,i,a){let o=r+Yx(i,256),s=r,c=n;for(;s!==o;){let n=Math.min(xS,o-s);c=NS(e,t,c,s,n,a),s=s+n|0}return c}function FS(e,t,n,r,i,a){if(a===0)return t;let o=0,s=t,c=t+n,l=i,u=i,d=i+a,f=0,p=0;for(;s<c&&u<d;){let t=e[s]>>>o&255;if(o+=8,s+=o>>>5,o&=31,f|=(t&127)<<p,t&128)r[u++]=f|0,f=0,p=0;else if(p+=7,p>28)throw Error(`FastPFOR VByte: unterminated value (expected MSB=1 terminator within 5 bytes; shift=${p}, partial=${f}, decoded=${u-l}/${a}, inPos=${s}, inEnd=${c})`)}if(u!==d)throw Error(`FastPFOR VByte: truncated stream (decoded=${u-l}, expected=${a}, consumedWords=${s-t}/${n}, vbyteStart=${t}, vbyteEnd=${c})`);return s}function IS(e,t,n){let r=0,i=0,a=new Uint32Array(t),o=n??CS();if(e.length>0){let t=e[r]|0;if(r=r+1|0,t&255)throw Error(`FastPFOR decode: invalid alignedLength=${t} (expected multiple of 256)`);if(i+t>a.length)throw Error(`FastPFOR decode: output buffer too small (outPos=${i}, alignedLength=${t}, out.length=${a.length})`);r=PS(e,a,r,i,t,o),i=i+t|0}let s=e.length-r|0,c=t-i|0;return FS(e,r,s,a,i,c),a}function LS(e,t,n,r,i){switch(i){case 2:$x(e,t,n,r);return;case 3:eS(e,t,n,r);return;case 4:tS(e,t,n,r);return;case 5:nS(e,t,n,r);return;case 6:rS(e,t,n,r);return;case 7:iS(e,t,n,r);return;case 8:aS(e,t,n,r);return;case 9:oS(e,t,n,r);return;case 10:sS(e,t,n,r);return;case 11:cS(e,t,n,r);return;case 12:lS(e,t,n,r);return;case 16:uS(e,t,n,r);return;case 32:for(let i=0;i<32;i=i+1|0)n[r+i|0]=e[t+i|0]|0;return}let a=qx[i]>>>0,o=t,s=0,c=e[o]>>>0;for(let t=0;t<32;t++)if(s+i<=32){let l=c>>>s&a;n[r+t]=l|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0))}else{let l=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=qx[i-l]>>>0,f=(u|(c&d)<<l)&a;n[r+t]=f|0,s=i-l}}function RS(e,t,n,r){if(t<0||n<0||t+n>e.length)throw RangeError(`decodeBigEndianInt32sInto: out of bounds (offset=${t}, byteLength=${n}, bytes.length=${e.length})`);let i=Math.floor(n/4),a=n%4!=0,o=a?i+1:i;if(r.length<o)throw RangeError(`decodeBigEndianInt32sInto: out.length=${r.length} < ${o}`);if(i>0){let n=e.byteOffset+t;if(n&3)for(let n=0;n<i;n++){let i=t+n*4;r[n]=e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3]|0}else{let t=new Uint32Array(e.buffer,n,i);for(let e=0;e<i;e++)r[e]=Qx(t[e])|0}}if(a){let a=t+i*4,o=n-i*4,s=0;for(let t=0;t<o;t++)s|=e[a+t]<<24-t*8;r[i]=s|0}return o}function zS(e,t,n){let r=new Uint32Array(n),i=0,a=t.get();for(let t=0;t<r.length;t++){let t=e[a++],n=t&127;if(t<128){r[i++]=n;continue}if(t=e[a++],n|=(t&127)<<7,t<128){r[i++]=n;continue}if(t=e[a++],n|=(t&127)<<14,t<128){r[i++]=n;continue}if(t=e[a++],n|=(t&127)<<21,t<128){r[i++]=n;continue}t=e[a++],n|=(t&15)<<28,r[i++]=n}return t.set(a),r}function BS(e,t,n){let r=new BigUint64Array(n);for(let n=0;n<r.length;n++)r[n]=VS(e,t);return r}function VS(e,t){let n=0n,r=0,i=t.get();for(;i<e.length;){let t=e[i++];if(n|=BigInt(t&127)<<BigInt(r),!(t&128))break;if(r+=7,r>=64)throw Error(`Varint too long`)}return t.set(i),n}function HS(e,t,n){let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=US(e,t);return r}function US(e,t){let n,r;return r=e[t.get()],t.increment(),n=r&127,r<128||(r=e[t.get()],t.increment(),n|=(r&127)<<7,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<14,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<21,r<128)?n:(r=e[t.get()],n|=(r&15)<<28,WS(n,e,t))}function WS(e,t,n){let r,i;if(i=t[n.get()],n.increment(),r=(i&112)>>4,i<128||(i=t[n.get()],n.increment(),r|=(i&127)<<3,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<10,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<17,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<24,i<128)||(i=t[n.get()],n.increment(),r|=(i&1)<<31,i<128))return r*4294967296+(e>>>0);throw Error(`Expected varint not more than 10 bytes`)}function GS(e,t,n,r){return KS(e,t,n,r,wS(n>>>2))}function KS(e,t,n,r,i){let a=r.get();if(n&3)throw Error(`FastPFOR: invalid encodedByteLength=${n} at offset=${a} (encodedBytes.length=${e.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`);let o=n>>>2,s=TS(i,o);RS(e,a,n,s);let c=IS(s.subarray(0,o),t,i.decoderWorkspace);return r.add(n),c}function qS(e){return e>>>1^-(e&1)}function JS(e){return e>>1n^-(e&1n)}function YS(e){return e%2==1?(e+1)/-2:e/2}function XS(e){let t=new Int32Array(e.length);for(let n=0;n<e.length;n++)t[n]=qS(e[n]);return t}function ZS(e){let t=new BigInt64Array(e.length);for(let n=0;n<e.length;n++)t[n]=JS(e[n]);return t}function QS(e){for(let t=0;t<e.length;t++)e[t]=YS(e[t])}function $S(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r]}let r=new Uint32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a}return r}function eC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r])}let r=new BigUint64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];r.fill(o,i,i+a),i+=a}return r}function tC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a}return r}function nC(e){let t=new Int32Array(e.length);t[0]=qS(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=qS(n)+t[r-1],t[r+1]=qS(i)+t[r],t[r+2]=qS(a)+t[r+1],t[r+3]=qS(o)+t[r+2]}for(;r!==e.length;++r)t[r]=qS(e[r])+t[r-1];return t}function rC(e){let t=new BigInt64Array(e.length);t[0]=JS(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=JS(n)+t[r-1],t[r+1]=JS(i)+t[r],t[r+2]=JS(a)+t[r+1],t[r+3]=JS(o)+t[r+2]}for(;r!==t.length;++r)t[r]=JS(e[r])+t[r-1];return t}function iC(e){e[0]=YS(e[0]);let t=e.length/4*4,n=1;if(t>=4)for(;n<t-4;n+=4){let t=e[n],r=e[n+1],i=e[n+2],a=e[n+3];e[n]=YS(t)+e[n-1],e[n+1]=YS(r)+e[n],e[n+2]=YS(i)+e[n+1],e[n+3]=YS(a)+e[n+2]}for(;n!==e.length;++n)e[n]=YS(e[n])+e[n-1]}function aC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r]}let r=new Int32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=qS(o),r.fill(o,i,i+a),i+=a}return r}function oC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r])}let r=new BigInt64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];o=JS(o),r.fill(o,i,i+a),i+=a}return r}function sC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=YS(o),r.fill(o,i,i+a),i+=a}return r}function cC(e){let t=e.length/4*4,n=1;if(t>=4)for(let r=e[0];n<t-4;n+=4)r=e[n]+=r,r=e[n+1]+=r,r=e[n+2]+=r,r=e[n+3]+=r;for(;n!==e.length;)e[n]+=e[n-1],++n}function lC(e){let t=0;for(let n=0;n<e.length;n++)e[n]+=t,t=e[n]}function uC(e){if(e.length<2)return new Int32Array(e);let t=new Int32Array(e.length);t[0]=qS(e[0]),t[1]=qS(e[1]);let n=e.length/4*4,r=2;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=qS(n)+t[r-2],t[r+1]=qS(i)+t[r-1],t[r+2]=qS(a)+t[r],t[r+3]=qS(o)+t[r+1]}for(;r!==e.length;r+=2)t[r]=qS(e[r])+t[r-2],t[r+1]=qS(e[r+1])+t[r-1];return t}function dC(e,t,n,r){if(e.length<2)return new Int32Array(e);let i=new Int32Array(e.length),a=qS(e[0]),o=qS(e[1]);i[0]=fC(Math.round(a*t),n,r),i[1]=fC(Math.round(o*t),n,r);let s=e.length/16,c=2;if(s>=4)for(;c<s-4;c+=4){let s=e[c],l=e[c+1],u=qS(s)+a,d=qS(l)+o;i[c]=fC(Math.round(u*t),n,r),i[c+1]=fC(Math.round(d*t),n,r);let f=e[c+2],p=e[c+3];a=qS(f)+u,o=qS(p)+d,i[c+2]=fC(Math.round(a*t),n,r),i[c+3]=fC(Math.round(o*t),n,r)}for(;c!==e.length;c+=2)a+=qS(e[c]),o+=qS(e[c+1]),i[c]=fC(Math.round(a*t),n,r),i[c+1]=fC(Math.round(o*t),n,r);return i}function fC(e,t,n){return Math.min(n,Math.max(t,e))}function pC(e){let t=new Int32Array(e.length+1);t[0]=0,t[1]=qS(e[0]);let n=t[1];for(let r=2;r!==t.length;++r){let i=e[r-1],a=qS(i);n+=a,t[r]=t[r-1]+n}return new Uint32Array(t)}function mC(e,t,n){let r=new Int32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];s=qS(s);for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o}return r}function hC(e,t,n){let r=new Uint32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o}return r}function gC(e,t,n){let r=new Int32Array(n),i=0,a=0;for(let n=0;n<t;n++){let o=e[n],s=e[n+t],c=qS(s);for(let e=0;e<o;e++)a+=c,r[i++]=a}return r}function _C(e,t,n){let r=new BigInt64Array(n),i=0,a=0n;for(let n=0;n<t;n++){let o=Number(e[n]),s=e[n+t],c=JS(s);for(let e=0;e<o;e++)a+=c,r[i++]=a}return r}function vC(e){let t=new Uint32Array(e.length);t[0]=qS(e[0])>>>0;for(let n=1;n<e.length;n++)t[n]=t[n-1]+qS(e[n])>>>0;return t}function yC(e){let t=new BigUint64Array(e.length);t[0]=BigInt.asUintN(64,JS(e[0]));for(let n=1;n<e.length;n++)t[n]=BigInt.asUintN(64,t[n-1]+JS(e[n]));return t}function bC(e){if(e.length<2)return new Uint32Array(e);let t=new Uint32Array(e.length);t[0]=qS(e[0])>>>0,t[1]=qS(e[1])>>>0;for(let n=2;n<e.length;n+=2)t[n]=t[n-2]+qS(e[n])>>>0,t[n+1]=t[n-1]+qS(e[n+1])>>>0;return t}function xC(e,t,n,r){let i=dC(e,t,n,r);return new Uint32Array(i)}function SC(e){return e[1]}function CC(e){return qS(e[1])}function wC(e){if(e.length===2){let t=qS(e[1]);return[t,t]}return[qS(e[2]),qS(e[3])]}function TC(e){return e[1]}function EC(e){return JS(e[1])}function DC(e){if(e.length===2){let t=JS(e[1]);return[t,t]}return[JS(e[2]),JS(e[3])]}var OC;(function(e){e.PRESENT=`PRESENT`,e.DATA=`DATA`,e.OFFSET=`OFFSET`,e.LENGTH=`LENGTH`})(OC||={});var kC;(function(e){e.NONE=`NONE`,e.SINGLE=`SINGLE`,e.SHARED=`SHARED`,e.VERTEX=`VERTEX`,e.MORTON=`MORTON`,e.FSST=`FSST`})(kC||={});var AC;(function(e){e.VERTEX=`VERTEX`,e.INDEX=`INDEX`,e.STRING=`STRING`,e.KEY=`KEY`})(AC||={});var jC;(function(e){e.VAR_BINARY=`VAR_BINARY`,e.GEOMETRIES=`GEOMETRIES`,e.PARTS=`PARTS`,e.RINGS=`RINGS`,e.TRIANGLES=`TRIANGLES`,e.SYMBOL=`SYMBOL`,e.DICTIONARY=`DICTIONARY`})(jC||={});var MC=[OC.PRESENT,OC.DATA,OC.OFFSET,OC.LENGTH],NC=[$.NONE,$.DELTA,$.COMPONENTWISE_DELTA,$.RLE,$.MORTON],PC=[Gx.NONE,Gx.FAST_PFOR,Gx.VARINT],FC=[kC.NONE,kC.SINGLE,kC.SHARED,kC.VERTEX,kC.MORTON,kC.FSST],IC=[AC.VERTEX,AC.INDEX,AC.STRING,AC.KEY],LC=[jC.VAR_BINARY,jC.GEOMETRIES,jC.PARTS,jC.RINGS,jC.TRIANGLES,jC.SYMBOL,jC.DICTIONARY];function RC(e,t){let n=VC(e,t);return n.logicalLevelTechnique1===$.MORTON?zC(n,e,t):($.RLE===n.logicalLevelTechnique1||$.RLE===n.logicalLevelTechnique2)&&Gx.NONE!==n.physicalLevelTechnique?BC(n,e,t):n}function zC(e,t,n){let r=zS(t,n,2);return{physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:e.decompressedCount,numBits:r[0],coordinateShift:r[1]}}function BC(e,t,n){let r=zS(t,n,2);return{physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:r[1],runs:r[0],numRleValues:r[1]}}function VC(e,t){let n=e[t.get()],r=MC[n>>4],i={};switch(r){case OC.DATA:i={dictionaryType:FC[n&15]};break;case OC.OFFSET:i={offsetType:IC[n&15]};break;case OC.LENGTH:i={lengthType:LC[n&15]}}t.increment();let a=e[t.get()],o=NC[a>>5],s=NC[a>>2&7],c=PC[a&3];t.increment();let l=zS(e,t,2),u=l[0],d=l[1];return{physicalStreamType:r,logicalStreamType:i,logicalLevelTechnique1:o,logicalLevelTechnique2:s,physicalLevelTechnique:c,numValues:u,byteLength:d,decompressedCount:u}}var HC;(function(e){e[e.FLAT=0]=`FLAT`,e[e.CONST=1]=`CONST`,e[e.SEQUENCE=2]=`SEQUENCE`,e[e.DICTIONARY=3]=`DICTIONARY`,e[e.FSST_DICTIONARY=4]=`FSST_DICTIONARY`})(HC||={});var UC=class{constructor(e,t){this.values=e,this._size=t}get(e){let t=Math.floor(e/8),n=e%8;return(this.values[t]>>n&1)==1}set(e,t){let n=Math.floor(e/8),r=e%8;this.values[n]=this.values[n]|+!!t<<r}getInt(e){let t=Math.floor(e/8),n=e%8;return this.values[t]>>n&1}size(){return this._size}getBuffer(){return this.values}};function WC(e,t,n){if(!t)return e;let r=t.size(),i=e.constructor,a=new i(r),o=0;for(let i=0;i<r;i++)a[i]=t.get(i)?e[o++]:n;return a}function GC(e,t,n){if(!n)return e;let r=n.size(),i=new UC(e,t),a=new UC(new Uint8Array(Math.ceil(r/8)),r),o=0;for(let e=0;e<r;e++){let t=n.get(e)?i.get(o++):!1;a.set(e,t)}return a.getBuffer()}function KC(e,t,n){for(let r=0;r<e;r++){let e=RC(t,n);n.add(e.byteLength)}}function qC(e,t,n,r,i){let a=JC(e,Math.ceil(t/8),n,r);return i?GC(a,t,i):a}function JC(e,t,n,r){let i=new Uint8Array(t),a=0,o=r.get()+n;for(;a<t&&!(r.get()>=o);){let n=e[r.increment()];if(n<=127){let o=n+3,s=e[r.increment()],c=Math.min(a+o,t);i.fill(s,a,c),a=c}else{let o=256-n;for(let n=0;n<o&&a<t;n++)i[a++]=e[r.increment()]}}return r.set(o),i}function YC(e,t,n,r){let i=t.get(),a=i+n*Float32Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float32Array(o);return t.set(a),r?WC(s,r,0):s}function XC(e,t,n,r){let i=t.get(),a=i+n*Float64Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float64Array(o);return t.set(a),r?WC(s,r,0):s}function ZC(e,t,n){let r=t.get(),i=n*Uint32Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new Uint32Array(n);for(let e=0;e<n;e++)o[e]=a.getUint32(r+e*Uint32Array.BYTES_PER_ELEMENT,!0);return t.add(i),o}function QC(e,t,n){let r=t.get(),i=n*BigUint64Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new BigUint64Array(n);for(let e=0;e<n;e++)o[e]=a.getBigUint64(r+e*BigUint64Array.BYTES_PER_ELEMENT,!0);return t.add(i),o}var $C=new TextDecoder;function ew(e,t,n){return n-t>=12?$C.decode(e.subarray(t,n)):tw(e,t,n)}function tw(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o}return r}function nw(e,t,n,r,i){return _w(aw(e,t,n),n,r,i)}function rw(e,t,n,r,i){return vw(aw(e,t,n),n,r,i)}function iw(e,t,n){return Sw(aw(e,t,n),n)}function aw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case Gx.FAST_PFOR:return GS(e,n.numValues,n.byteLength,t);case Gx.VARINT:return zS(e,t,n.numValues);case Gx.NONE:return ZC(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function ow(e,t,n){let r=n.physicalLevelTechnique;switch(r){case Gx.VARINT:return BS(e,t,n.numValues);case Gx.NONE:return QC(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function sw(e,t,n){let r=aw(e,t,n);return r.length===1?qS(r[0]):CC(r)}function cw(e,t,n){let r=aw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?qS(r[0]):r[0]:SC(r)}function lw(e,t,n){return wC(aw(e,t,n))}function uw(e,t,n){return DC(BS(e,t,n.numValues))}function dw(e,t,n,r){return yw(ow(e,t,n),n,r)}function fw(e,t,n,r){return bw(ow(e,t,n),n,r)}function pw(e,t,n,r){let i=mw(e,t,n,!1);return r?WC(i,r,0):i}function mw(e,t,n,r){if(n.physicalLevelTechnique===Gx.VARINT)return xw(HS(e,t,n.numValues),n,r);let i=ow(e,t,n),a=r?yw(i,n):bw(i,n);return Float64Array.from(a,Number)}function hw(e,t,n){let r=ow(e,t,n);return r.length===1?JS(r[0]):EC(r)}function gw(e,t,n){let r=ow(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?JS(r[0]):r[0]:TC(r)}function _w(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;if(!r)return gC(e,n.runs,n.numRleValues);e=$S(e,n.runs,n.numRleValues),i=nC(e)}else i=nC(e);break;case $.RLE:i=aC(e,t.runs,t.numRleValues);break;case $.MORTON:cC(e),i=new Int32Array(e);break;case $.COMPONENTWISE_DELTA:if(n&&!r)return dC(e,n.scale,n.min,n.max);i=uC(e);break;case $.NONE:i=XS(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?WC(i,r,0):i}function vw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;i=vC($S(e,n.runs,n.numRleValues))}else i=vC(e);break;case $.RLE:i=$S(e,t.runs,t.numRleValues);break;case $.MORTON:cC(e),i=e;break;case $.COMPONENTWISE_DELTA:i=n&&!r?xC(e,n.scale,n.min,n.max):bC(e);break;case $.NONE:i=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?WC(i,r,0):i}function yw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let i=t;if(!n)return _C(e,i.runs,i.numRleValues);e=eC(e,i.runs,i.numRleValues),r=rC(e)}else r=rC(e);break;case $.RLE:r=oC(e,t.runs,t.numRleValues);break;case $.NONE:r=ZS(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?WC(r,n,0n):r}function bw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;r=yC(eC(e,n.runs,n.numRleValues))}else r=yC(e);break;case $.RLE:r=eC(e,t.runs,t.numRleValues);break;case $.NONE:r=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?WC(r,n,0n):r}function xw(e,t,n){switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;e=tC(e,n.runs,n.numRleValues)}return iC(e),e;case $.RLE:return Tw(e,t,n);case $.NONE:return n&&QS(e),e;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}}function Sw(e,t){if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.NONE)return pC(e);if(t.logicalLevelTechnique1===$.RLE&&t.logicalLevelTechnique2===$.NONE){let n=t;return hC(e,n.runs,n.numRleValues)}if(t.logicalLevelTechnique1===$.NONE&&t.logicalLevelTechnique2===$.NONE){lC(e);let n=new Uint32Array(t.numValues+1);return n[0]=0,n.set(e,1),n}if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.RLE){let n=t,r=mC(e,n.runs,n.numRleValues);return cC(r),new Uint32Array(r)}throw Error(`Only delta encoding is supported for transforming length to offset streams yet.`)}function Cw(e,t,n,r,i=`int32`){let a=e.logicalLevelTechnique1;if(a===$.RLE)return e.runs===1?HC.CONST:HC.FLAT;if(a!==$.DELTA||e.logicalLevelTechnique2!==$.RLE)return e.numValues===1?HC.CONST:HC.FLAT;let o=t instanceof UC?t.size():t,s=e;if(s.numRleValues!==o)return HC.FLAT;if(s.runs===1)return HC.SEQUENCE;if(s.runs!==2)return e.numValues===1?HC.CONST:HC.FLAT;let c=r.get();if(e.physicalLevelTechnique===Gx.VARINT)return ww(n,r,i)?HC.SEQUENCE:e.numValues===1?HC.CONST:HC.FLAT;let l=r.get(),u=new Int32Array(n.buffer,n.byteOffset+l,4);return r.set(c),u[2]===2&&u[3]===2?HC.SEQUENCE:e.numValues===1?HC.CONST:HC.FLAT}function ww(e,t,n){let r=new Wx(t.get());if(n===`int64`){let t=BS(e,r,4);return t[2]===2n&&t[3]===2n}let i=zS(e,r,4);return i[2]===2&&i[3]===2}function Tw(e,t,n){return n?sC(e,t.runs,t.numRleValues):tC(e,t.runs,t.numRleValues)}var Ew=class extends Nx{getValueFromBuffer(e){return this.dataBuffer[e]}},Dw=class extends Ix{constructor(e,t,n,r,i){super(e,i?BigInt64Array.of(t):BigUint64Array.of(t),n,r)}getValueFromBuffer(e){return this.dataBuffer[0]+BigInt(e)*this.delta}};function Ow(e,t,n){return{x:kw(e,t)-n,y:kw(e>>1,t)-n}}function kw(e,t){let n=0;for(let r=0;r<t;r++)n|=(e&1<<2*r)>>r;return n}var Aw;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`,e[e.MULTIPOINT=3]=`MULTIPOINT`,e[e.MULTILINESTRING=4]=`MULTILINESTRING`,e[e.MULTIPOLYGON=5]=`MULTIPOLYGON`})(Aw||={});var jw;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`})(jw||={});var Mw;(function(e){e[e.MORTON=0]=`MORTON`,e[e.VEC_2=1]=`VEC_2`,e[e.VEC_3=2]=`VEC_3`})(Mw||={});function Nw(e){let t=Array(e.numGeometries),n=1,r=1,i=1,a=0,o=0,s=0,c=e.mortonSettings,l=e.topologyVector,u=l.geometryOffsets,d=l.partOffsets,f=l.ringOffsets,p=e.vertexOffsets,m=!p||p.length===0,h=e.containsPolygonGeometry(),g=e.vertexBuffer;for(let l=0;l<e.numGeometries;l++){let _=e.geometryType(l);switch(_){case Aw.POINT:{let l,h;if(m)l=g[o++],h=g[o++];else if(e.vertexBufferType===Mw.MORTON){let e=g[p[s++]],t=Ow(e,c.numBits,c.coordinateShift);l=t.x,h=t.y}else{let e=p[s++]*2;l=g[e],h=g[e+1]}t[a++]=[[new b(l,h)]],u&&i++,d&&n++,f&&r++}break;case Aw.MULTIPOINT:{let l=u[i]-u[i-1];i++;let d;if(m){d=Array(l);for(let e=0;e<l;e++){let t=g[o++],n=g[o++];d[e]=new b(t,n)}}else d=Pw(e.vertexBufferType,g,p,s,l,!1,c),s+=l;t[a++]=d.map(e=>[e]),n+=l,r+=l}break;case Aw.LINESTRING:{let l;h?(l=f[r]-f[r-1],r++):l=d[n]-d[n-1],n++;let _;m?(_=Fw(g,o,l,!1),o+=l*2):(_=Pw(e.vertexBufferType,g,p,s,l,!1,c),s+=l),t[a++]=[_],u&&i++}break;case Aw.POLYGON:{let l=d[n]-d[n-1];n++;let h=Array(l-1),_,v=f[r]-f[r-1];if(r++,m){_=Fw(g,o,v,!0),o+=v*2;for(let e=0;e<h.length;e++)v=f[r]-f[r-1],r++,h[e]=Fw(g,o,v,!0),o+=v*2}else{_=Pw(e.vertexBufferType,g,p,s,v,!0,c),s+=v;for(let t=0;t<h.length;t++)v=f[r]-f[r-1],r++,h[t]=Pw(e.vertexBufferType,g,p,s,v,!0,c),s+=v}t[a++]=[_].concat(h),u&&i++}break;case Aw.MULTILINESTRING:{let l=u[i]-u[i-1];i++;let _=Array(l);for(let t=0;t<l;t++){let i;if(h?(i=f[r]-f[r-1],r++):i=d[n]-d[n-1],n++,m)_[t]=Fw(g,o,i,!1),o+=i*2;else{let n=Pw(e.vertexBufferType,g,p,s,i,!1,c);_[t]=n,s+=i}}t[a++]=_}break;case Aw.MULTIPOLYGON:{let l=u[i]-u[i-1];i++;let h=Array(l);for(let t=0;t<l;t++){let i=d[n]-d[n-1];n++;let a,l=Array(i-1),u=f[r]-f[r-1];r++,m?(a=Fw(g,o,u,!0),o+=u*2):(a=Pw(e.vertexBufferType,g,p,s,u,!0,c),s+=u);for(let t=0;t<l.length;t++){let n=f[r]-f[r-1];r++,m?(l[t]=Fw(g,o,n,!0),o+=n*2):(l[t]=Pw(e.vertexBufferType,g,p,s,n,!0,c),s+=n)}h[t]=[a].concat(l)}t[a++]=h.flat()}break;default:throw Error(`The specified geometry type (${_}) is currently not supported.`)}}return t}function Pw(e,t,n,r,i,a,o){return e===Mw.MORTON?Lw(t,n,r,i,a,o):Iw(t,n,r,i,a)}function Fw(e,t,n,r){let i=Array(r?n+1:n);for(let r=0;r<n*2;r+=2){let n=e[t+r],a=e[t+r+1];i[r/2]=new b(n,a)}return r&&(i[i.length-1]=i[0]),i}function Iw(e,t,n,r,i){let a=Array(i?r+1:r);for(let i=0;i<r*2;i+=2){let r=t[n+i/2]*2,o=e[r],s=e[r+1];a[i/2]=new b(o,s)}return i&&(a[a.length-1]=a[0]),a}function Lw(e,t,n,r,i,a){let o=Array(i?r+1:r);for(let i=0;i<r;i++){let r=e[t[n+i]],s=Ow(r,a.numBits,a.coordinateShift);o[i]=new b(s.x,s.y)}return i&&(o[o.length-1]=o[0]),o}var Rw=class{constructor(e,t,n,r,i){this._vertexBufferType=e,this._topologyVector=t,this._vertexOffsets=n,this._vertexBuffer=r,this._mortonSettings=i}get vertexBufferType(){return this._vertexBufferType}get topologyVector(){return this._topologyVector}get vertexOffsets(){return this._vertexOffsets}get vertexBuffer(){return this._vertexBuffer}getSimpleEncodedVertex(e){let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return[this.vertexBuffer[t],this.vertexBuffer[t+1]]}getVertex(e){if(this.vertexOffsets&&this.mortonSettings){let t=this.vertexOffsets[e],n=this.vertexBuffer[t],r=Ow(n,this.mortonSettings.numBits,this.mortonSettings.coordinateShift);return[r.x,r.y]}let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return[this.vertexBuffer[t],this.vertexBuffer[t+1]]}getGeometries(){return Nw(this)}get mortonSettings(){return this._mortonSettings}};function zw(e,t,n,r,i){return new Vw(e,t,Mw.VEC_2,n,r,i)}function Bw(e,t,n,r,i,a){return new Vw(e,t,Mw.MORTON,n,r,i,a)}var Vw=class extends Rw{constructor(e,t,n,r,i,a,o){super(n,r,i,a,o),this._numGeometries=e,this._geometryType=t}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsPolygonGeometry(){return this._geometryType===Aw.POLYGON||this._geometryType===Aw.MULTIPOLYGON}containsSingleGeometryType(){return!0}};function Hw(e,t,n,r){return new Ww(Mw.VEC_2,e,t,n,r)}function Uw(e,t,n,r,i){return new Ww(Mw.MORTON,e,t,n,r,i)}var Ww=class extends Rw{constructor(e,t,n,r,i,a){super(e,n,r,i,a),this._geometryTypes=t}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsPolygonGeometry(){for(let e=0;e<this.numGeometries;e++)if(this.geometryType(e)===Aw.POLYGON||this.geometryType(e)===Aw.MULTIPOLYGON)return!0;return!1}containsSingleGeometryType(){return!1}},Gw=class{constructor(e,t,n,r){this._triangleOffsets=e,this._indexBuffer=t,this._vertexBuffer=n,this._topologyVector=r}get triangleOffsets(){return this._triangleOffsets}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}get topologyVector(){return this._topologyVector}getGeometries(){if(!this._topologyVector)throw Error(`Cannot convert GpuVector to coordinates without topology information`);let e=new Uint32Array(this.numGeometries);for(let t=0;t<this.numGeometries;t++)e[t]=this.geometryType(t);return Hw(e,this._topologyVector,void 0,this._vertexBuffer).getGeometries()}[Symbol.iterator](){return null}};function Kw(e,t,n,r,i,a){return new qw(e,t,n,r,i,a)}var qw=class extends Gw{constructor(e,t,n,r,i,a){super(n,r,i,a),this._numGeometries=e,this._geometryType=t}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return!0}};function Jw(e,t,n,r,i){return new Yw(e,t,n,r,i)}var Yw=class extends Gw{constructor(e,t,n,r,i){super(t,n,r,i),this._geometryTypes=e}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return!1}};function Xw(e,t,n,r,i){let a=RC(e,n),o=Cw(a,r,e,n),s,c,l,u;if(o===HC.CONST){let o=cw(e,n,a),d,f,p,m;for(let r=0;r<t-1;r++){let t=RC(e,n);switch(t.physicalStreamType){case OC.LENGTH:switch(t.logicalStreamType.lengthType){case jC.GEOMETRIES:d=iw(e,n,t);break;case jC.PARTS:f=iw(e,n,t);break;case jC.RINGS:p=iw(e,n,t);break;case jC.TRIANGLES:m=iw(e,n,t)}break;case OC.OFFSET:switch(t.logicalStreamType.offsetType){case AC.VERTEX:s=rw(e,n,t);break;case AC.INDEX:u=rw(e,n,t)}break;case OC.DATA:if(kC.VERTEX===t.logicalStreamType.dictionaryType)c=nw(e,n,t,i);else{let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=rw(e,n,t,i)}}}return u?d!==void 0||f!==void 0?Kw(r,o,m,u,c,{geometryOffsets:d,partOffsets:f,ringOffsets:p}):Kw(r,o,m,u,c):l===void 0?zw(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c):Bw(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c,l)}let d=rw(e,n,a),f,p,m,h;for(let r=0;r<t-1;r++){let t=RC(e,n);switch(t.physicalStreamType){case OC.LENGTH:switch(t.logicalStreamType.lengthType){case jC.GEOMETRIES:f=rw(e,n,t);break;case jC.PARTS:p=rw(e,n,t);break;case jC.RINGS:m=rw(e,n,t);break;case jC.TRIANGLES:h=iw(e,n,t)}break;case OC.OFFSET:switch(t.logicalStreamType.offsetType){case AC.VERTEX:s=rw(e,n,t);break;case AC.INDEX:u=rw(e,n,t)}break;case OC.DATA:if(kC.VERTEX===t.logicalStreamType.dictionaryType)c=nw(e,n,t,i);else{let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=rw(e,n,t,i)}}}let g,_,v;return f?(g=Zw(d,f,2),p&&m?(_=Qw(d,g,p,!1),v=eT(d,g,_,m)):p&&(_=$w(d,g,p))):p&&m?(_=Zw(d,p,1),v=Qw(d,_,m,!0)):p&&(_=Zw(d,p,0)),u&&!_?Jw(d,h,u,c):u?Jw(d,h,u,c,{geometryOffsets:g,partOffsets:_,ringOffsets:v}):l===void 0?Hw(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c):Uw(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c,l)}function Zw(e,t,n){let r=new Uint32Array(e.length+1),i=0;r[0]=i;let a=0;for(let o=0;o<e.length;o++)i=r[o+1]=i+(e[o]>n?t[a++]:1);return r}function Qw(e,t,n,r){let i=new Uint32Array(t[t.length-1]+1),a=0;i[0]=a;let o=1,s=0;for(let c=0;c<e.length;c++){let l=e[c],u=t[c+1]-t[c];if(l===5||l===2||r&&(l===4||l===1))for(let e=0;e<u;e++)a=i[o++]=a+n[s++];else for(let e=0;e<u;e++)i[o++]=++a}return i}function $w(e,t,n){let r=new Uint32Array(t[t.length-1]+1),i=0;r[0]=i;let a=1,o=0;for(let s=0;s<e.length;s++){let c=e[s],l=t[s+1]-t[s];if(c===4||c===1)for(let e=0;e<l;e++)i=r[a++]=i+n[o++];else for(let e=0;e<l;e++)r[a++]=++i}return r}function eT(e,t,n,r){let i=new Uint32Array(n[n.length-1]+1),a=0;i[0]=a;let o=1,s=1,c=0;for(let l=0;l<e.length;l++){let u=e[l],d=t[l+1]-t[l];if(u!==0&&u!==3)for(let e=0;e<d;e++){let e=n[o]-n[o-1];o++;for(let t=0;t<e;t++)a=i[s++]=a+r[c++]}else for(let e=0;e<d;e++)i[s++]=++a,o++}return i}var tT=class extends Mx{constructor(e,t,n){super(e,t.getBuffer(),n),this.dataVector=t}getValueFromBuffer(e){return this.dataVector.get(e)}},nT=class extends Nx{getValueFromBuffer(e){return this.dataBuffer[e]}},rT=class extends Mx{constructor(e,t,n,r){super(e,r?BigInt64Array.of(t):BigUint64Array.of(t),n)}getValueFromBuffer(e){return this.dataBuffer[0]}},iT=class extends Mx{constructor(e,t,n,r){super(e,n,r),this.offsetBuffer=t}},aT=class extends iT{constructor(e,t,n,r){super(e,t,n,r??t.length-1)}getValueFromBuffer(e){let t=this.offsetBuffer[e],n=this.offsetBuffer[e+1];return ew(this.dataBuffer,t,n)}},oT=class extends iT{constructor(e,t,n,r,i){super(e,n,r,i??t.length),this.indexBuffer=t,this.indexBuffer=t}getValueFromBuffer(e){let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return ew(this.dataBuffer,n,r)}};function sT(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];i===255?(n++,r++):n+=e[i]}return n}function cT(e,t,n){let r=new Uint32Array(t.length);for(let e=1;e<t.length;e++)r[e]=r[e-1]+t[e-1];let i=new Uint8Array(sT(t,n)),a=0;for(let o=0;o<n.length;o++){let s=n[o];if(s===255)o++,i[a++]=n[o];else{let n=t[s],o=r[s];for(;n-->0;)i[a++]=e[o++]}}return i}var lT=class extends iT{constructor(e,t,n,r,i,a,o,s){super(e,n,r,o??t.length),this.indexBuffer=t,this.symbolOffsetBuffer=i,this.symbolTableBuffer=a,this.sharedDictionaryCache=s}getValueFromBuffer(e){this.decodedDictionary??(this.decodedDictionary=this.sharedDictionaryCache?.decodedDictionary,this.decodedDictionary??(this.decodedDictionary=this.decodeDictionary(),this.sharedDictionaryCache&&(this.sharedDictionaryCache.decodedDictionary=this.decodedDictionary)));let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return ew(this.decodedDictionary,n,r)}decodeDictionary(){return this.symbolLengthBuffer??=this.offsetToLengthBuffer(this.symbolOffsetBuffer),cT(this.symbolTableBuffer,this.symbolLengthBuffer,this.dataBuffer)}offsetToLengthBuffer(e){let t=new Uint32Array(e.length-1),n=e[0];for(let r=1;r<e.length;r++){let i=e[r];t[r-1]=i-n,n=i}return t}};function uT(e,t,n,r,i){let a,o,s,c,l,u=i,d,f;for(let e=0;e<r;e++){let e=RC(t,n);switch(e.physicalStreamType){case OC.PRESENT:{let r=new UC(qC(t,e.numValues,e.byteLength,n),e.numValues);u=i??r;break}case OC.OFFSET:o=rw(t,n,e,void 0,u);break;case OC.LENGTH:{let r=iw(t,n,e);jC.DICTIONARY===e.logicalStreamType.lengthType?a=r:jC.SYMBOL===e.logicalStreamType.lengthType?c=r:d=r;break}case OC.DATA:{let r=t.subarray(n.get(),n.get()+e.byteLength);n.add(e.byteLength);let i=e.logicalStreamType.dictionaryType;kC.FSST===i?l=r:kC.SINGLE===i||kC.SHARED===i?s=r:kC.NONE===i&&(f=r);break}}}return dT(e,l,o,a,s,c,u)??fT(e,s,o,a,u)??pT(e,d,f,o,u)}function dT(e,t,n,r,i,a,o){if(t){if(!n||!r||!i||!a)throw Error(`Incomplete FSST dictionary string column "${e}"`);return new lT(e,n,r,i,a,t,o)}}function fT(e,t,n,r,i){if(t){if(!n||!r)throw Error(`Incomplete dictionary string column "${e}"`);return i?new oT(e,n,r,t,i):new oT(e,n,r,t)}}function pT(e,t,n,r,i){if(t&&n){if(r)return i?new oT(e,r,t,n,i):new oT(e,r,t,n);if(i&&i.size()!==t.length-1){let r=new Uint32Array(i.size()),a=0;for(let e=0;e<i.size();e++)i.get(e)?r[e]=a++:r[e]=0;return new oT(e,r,t,n,i)}return i?new aT(e,t,n,i):new aT(e,t,n)}}function mT(e,t,n,r){let i,a,o,s,c=!1;for(;!c;){let n=RC(e,t);switch(n.physicalStreamType){case OC.LENGTH:jC.DICTIONARY===n.logicalStreamType.lengthType?i=iw(e,t,n):o=iw(e,t,n);break;case OC.DATA:kC.SINGLE===n.logicalStreamType.dictionaryType||kC.SHARED===n.logicalStreamType.dictionaryType?(a=e.subarray(t.get(),t.get()+n.byteLength),c=!0):s=e.subarray(t.get(),t.get()+n.byteLength),t.add(n.byteLength)}}if(n.type!==`complexType`)throw Error(`Shared dictionary column ${n.name} must be a complex (struct) column.`);if(!i||!a)throw Error(`Incomplete shared dictionary for column "${n.name}"`);let l=n.complexType.children,u=[],d=s?{}:void 0,f=0;for(let c of l){let l=zS(e,t,1)[0];if(l===0)continue;let p=c.name?`${n.name}${c.name}`:n.name;if(r&&!r.has(p)){KC(l,e,t);continue}if(c.type!==`scalarField`||c.scalarField.physicalType!==Vx.STRING)throw Error(`Currently only scalar string fields are implemented for a struct.`);if(l>1&&!c.nullable||l===1&&c.nullable)throw Error(`The number of streams for the child field ${c.name} does not match its nullability. nullibilty: ${c.nullable}, numStreams: ${l}`);let m;if(c.nullable){let n=RC(e,t);m=new UC(qC(e,n.numValues,n.byteLength,t),n.numValues)}let h=rw(e,t,RC(e,t),void 0,m);if(s){if(!o)throw Error(`Incomplete shared FSST dictionary for column "${p}"`);u[f++]=new lT(p,h,i,a,o,s,m,d)}else u[f++]=new oT(p,h,i,a,m)}return u}var hT=class extends Mx{constructor(e,t,n){super(e,new Uint8Array,n??t.length),this.values=t}getValueFromBuffer(e){return this.values[e]}},gT;(function(e){e[e.STRING=1]=`STRING`,e[e.INT32=2]=`INT32`,e[e.UINT32=4]=`UINT32`,e[e.INT64=8]=`INT64`,e[e.UINT64=16]=`UINT64`,e[e.FLOAT=32]=`FLOAT`,e[e.DOUBLE=64]=`DOUBLE`,e[e.PRESENCE=128]=`PRESENCE`})(gT||={});var _T;(function(e){e[e.FALSE=0]=`FALSE`,e[e.TRUE=1]=`TRUE`,e[e.START_MAP=2]=`START_MAP`,e[e.START_LIST=3]=`START_LIST`,e[e.COUNT=4]=`COUNT`})(_T||={});function vT(e,t,n,r){let i=yT(n);if(r===0)return i.map(e=>new hT(e,[]));let a=bT(e,t,r),o=(a.presentStream?a.presentCount:a.lengthStream.length)/i.length,s=[],c=0,l=0;for(let e=0;e<i.length;e++){let t=TT(a,e,o,c,l);s.push(new hT(i[e],t.value,t.nullabilityBuffer)),c=t.countsEnd,l=t.valuesEnd}return s}function yT(e){let t=e.type===`complexType`?e.complexType.children:void 0;return!t||t.length===0?[e.name]:t.map(t=>e.name+(t.name??``))}function bT(e,t,n){let r=e[t.get()];t.add(1);let i=rw(e,t,RC(e,t)),a=n-1,o=[];r&gT.STRING&&(a-=xT(e,t,o)),a-=ST(e,t,r,o),a-=CT(e,t,r,o);let s,c=0;if(r&gT.PRESENCE){let n=wT(e,t);s=n.value,c=n.count,a--}let l=new Uint32Array;if(a>0&&(l=rw(e,t,RC(e,t)),a--),a!==0)throw Error(`Unexpected number of remaining streams while decoding map column: ${a}`);return{lengthStream:i,dictionary:o,presentStream:s,presentCount:c,flattenedValues:l}}function xT(e,t,n){let r=e[t.get()];t.add(1);let i=uT(``,e,t,r);if(i)for(let e=0;e<i.size;e++)n.push(i.getValue(e));return r}function ST(e,t,n,r){let i=0;return n&gT.INT32?(jT(r,nw(e,t,RC(e,t))),i++):n&gT.INT64&&(jT(r,dw(e,t,RC(e,t))),i++),n&gT.UINT32?(jT(r,rw(e,t,RC(e,t))),i++):n&gT.UINT64&&(jT(r,fw(e,t,RC(e,t))),i++),i}function CT(e,t,n,r){let i=0;return n&gT.FLOAT&&(jT(r,YC(e,t,RC(e,t).numValues)),i++),n&gT.DOUBLE&&(jT(r,XC(e,t,RC(e,t).numValues)),i++),i}function wT(e,t){let n=RC(e,t);if(n.physicalStreamType!==OC.PRESENT)throw Error(`Expected PRESENT stream for map column but found: ${n.physicalStreamType}`);let r=n.numValues,i=t.get(),a=new UC(qC(e,r,n.byteLength,t),r);return t.set(i+n.byteLength),{value:a,count:r}}function TT(e,t,n,r,i){let{lengthStream:a,flattenedValues:o,presentStream:s,dictionary:c}=e,l=t*n,u=n,d;if(s){d=new UC(new Uint8Array(Math.ceil(n/8)),n),u=0;for(let e=0;e<n;e++)s.get(l+e)&&(d.set(e,!0),u++)}let f=r+u;if(f>a.length)throw Error(`Merged map counts underflow while decoding child streams`);let p=Array(n),m=r,h=i;for(let e=0;e<n;e++){if(s&&!s.get(l+e)){p[e]=null;continue}let t=h+a[m++];if(t>o.length)throw Error(`Map value stream underflow while decoding feature payload`);let n=ET(o,h,t,c);p[e]=n.value,h=n.nextIndex}let g=0;for(let e=r;e<f;e++)g+=a[e];let _=i+g;if(h!==_)throw Error(`Unused flattened map values remain after decode`);return{value:p,nullabilityBuffer:d,countsEnd:f,valuesEnd:_}}function ET(e,t,n,r){return n-t===1||e[t]===_T.START_LIST?OT(e,t,n,r):DT(e,t,n,r)}function DT(e,t,n,r){let i=Object.create(null),a=t;for(;a<n;){let t=AT(e[a++],r);if(typeof t!=`string`)throw Error(`Map key dictionary index does not resolve to a string: ${t}`);let o=OT(e,a,n,r);i[t]=o.value,a=o.nextIndex}return{value:i,nextIndex:a}}function OT(e,t,n,r){if(t>=n)throw Error(`Unexpected end of map value stream`);let i=e[t];if(i===_T.FALSE)return{value:!1,nextIndex:t+1};if(i===_T.TRUE)return{value:!0,nextIndex:t+1};if(i===_T.START_MAP){let i=kT(e,t,n);return{value:DT(e,t+2,i,r).value,nextIndex:i}}if(i===_T.START_LIST){let i=kT(e,t,n),a=[],o=t+2;for(;o<i;){let t=OT(e,o,i,r);a.push(t.value),o=t.nextIndex}return{value:a,nextIndex:i}}return{value:AT(i,r),nextIndex:t+1}}function kT(e,t,n){if(t+1>=n)throw Error(`Missing length for nested map/list payload`);let r=e[t+1];if(r<2)throw Error(`Invalid nested payload length: ${r}`);let i=t+r;if(i>n)throw Error(`Nested payload exceeds containing payload bounds`);return i}function AT(e,t){let n=e-_T.COUNT;if(n<0||n>=t.length)throw Error(`Scalar dictionary index out of range: ${e}`);return t[n]}function jT(e,t){for(let n of t)e.push(n)}function MT(e,t,n,r,i,a){return n.type===`scalarType`?a&&!a.has(n.name)?(KC(r,e,t),null):NT(r,e,t,i,n.scalarType,n):n.complexType?.physicalType===Hx.MAP?vT(e,t,n,r):r===0?null:mT(e,t,n,a)}function NT(e,t,n,r,i,a){let o;if(e===0)return null;if(a.nullable){let e=RC(t,n),r=e.numValues,i=n.get(),a=qC(t,r,e.byteLength,n);n.set(i+e.byteLength),o=new UC(a,e.numValues)}let s=o??r;switch(i.physicalType){case Vx.UINT_32:case Vx.INT_32:return RT(t,n,a,i,s);case Vx.STRING:{let r=a.nullable?e-1:e;return uT(a.name,t,n,r,o)??null}case Vx.BOOLEAN:return PT(t,n,a,r,s);case Vx.UINT_64:case Vx.INT_64:return LT(t,n,a,s,i);case Vx.FLOAT:return FT(t,n,a,s);case Vx.DOUBLE:return IT(t,n,a,s);default:throw Error(`The specified data type for the field is currently not supported: ${i}`)}}function PT(e,t,n,r,i){let a=RC(e,t),o=a.numValues,s=t.get(),c=zT(i)?i:void 0,l=qC(e,o,a.byteLength,t,c);t.set(s+a.byteLength);let u=new UC(l,o);return new tT(n.name,u,i)}function FT(e,t,n,r){let i=RC(e,t),a=zT(r)?r:void 0,o=YC(e,t,i.numValues,a);return new nT(n.name,o,r)}function IT(e,t,n,r){let i=RC(e,t),a=zT(r)?r:void 0,o=XC(e,t,i.numValues,a);return new Fx(n.name,o,r)}function LT(e,t,n,r,i){let a=RC(e,t),o=Cw(a,r,e,t,`int64`),s=i.physicalType===Vx.INT_64;if(o===HC.FLAT){let i=zT(r)?r:void 0,o=s?dw(e,t,a,i):fw(e,t,a,i);return new Ew(n.name,o,r)}if(o===HC.SEQUENCE){let r=uw(e,t,a);return new Dw(n.name,r[0],r[1],a.numRleValues,s)}let c=s?hw(e,t,a):gw(e,t,a);return new rT(n.name,c,r,s)}function RT(e,t,n,r,i){let a=RC(e,t),o=Cw(a,i,e,t),s=r.physicalType===Vx.INT_32;if(o===HC.FLAT){let r=zT(i)?i:void 0,o=s?nw(e,t,a,void 0,r):rw(e,t,a,void 0,r);return new Px(n.name,o,i)}if(o===HC.SEQUENCE){let r=lw(e,t,a);return new Lx(n.name,r[0],r[1],a.numRleValues,s)}let c=s?sw(e,t,a):cw(e,t,a);return new Rx(n.name,c,i,s)}function zT(e){return e instanceof UC}var BT={ID:0,ID_NULLABLE:1,ID_LONG:2,GEOMETRY:4,SCALAR_BASE:10,STRUCT:30,MAP:31};function VT(e){switch(e){case BT.ID:case BT.ID|BT.ID_NULLABLE:case BT.ID|BT.ID_LONG:case BT.ID|BT.ID_LONG|BT.ID_NULLABLE:return{nullable:(e&BT.ID_NULLABLE)!==0,columnScope:Bx.FEATURE,type:`scalarType`,scalarType:{longID:(e&BT.ID_LONG)!==0,type:`logicalType`,logicalType:Ux.ID}};case BT.GEOMETRY:return{nullable:!1,columnScope:Bx.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:Hx.GEOMETRY,children:[]}};case BT.STRUCT:return{nullable:!1,columnScope:Bx.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:Hx.STRUCT,children:[]}};case BT.MAP:return{nullable:!0,columnScope:Bx.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:Hx.MAP,children:[]}};default:return qT(e)}}function HT(e){return e>=BT.SCALAR_BASE}function UT(e){return e===BT.STRUCT||e===BT.MAP}function WT(e){if(e.type===`scalarType`){let t=e.scalarType;if(t.type===`physicalType`)switch(t.physicalType){case Vx.BOOLEAN:case Vx.INT_8:case Vx.UINT_8:case Vx.INT_32:case Vx.UINT_32:case Vx.INT_64:case Vx.UINT_64:case Vx.FLOAT:case Vx.DOUBLE:return!1;case Vx.STRING:return!0;default:return!1}if(t.type===`logicalType`)return!1}else if(e.type===`complexType`){let t=e.complexType;if(t.type===`physicalType`)switch(t.physicalType){case Hx.GEOMETRY:case Hx.STRUCT:case Hx.MAP:return!0;default:return!1}}return console.warn(`Unexpected column type in hasStreamCount`,e),!1}function GT(e){return e.type===`scalarType`&&e.scalarType?.type===`logicalType`&&e.scalarType.logicalType===Ux.ID}function KT(e){return e.type===`complexType`&&e.complexType?.type===`physicalType`&&e.complexType.physicalType===Hx.GEOMETRY}function qT(e){let t;switch(e){case 10:case 11:t=Vx.BOOLEAN;break;case 12:case 13:t=Vx.INT_8;break;case 14:case 15:t=Vx.UINT_8;break;case 16:case 17:t=Vx.INT_32;break;case 18:case 19:t=Vx.UINT_32;break;case 20:case 21:t=Vx.INT_64;break;case 22:case 23:t=Vx.UINT_64;break;case 24:case 25:t=Vx.FLOAT;break;case 26:case 27:t=Vx.DOUBLE;break;case 28:case 29:t=Vx.STRING;break;default:return null}return{nullable:!!(e&1),columnScope:Bx.FEATURE,type:`scalarType`,scalarType:{longID:!1,type:`physicalType`,physicalType:t}}}var JT=new TextDecoder,YT=`0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT), 31(MAP)`;function XT(e,t){let n=zS(e,t,1)[0];if(n===0)return``;let r=t.get(),i=r+n,a=e.subarray(r,i);return t.add(n),JT.decode(a)}function ZT(e){let t=e.name,n=e.nullable;return e.type===`scalarType`?{type:`scalarField`,scalarField:e.scalarType,name:t,nullable:n}:{type:`complexField`,complexField:e.complexType,name:t,nullable:n}}function QT(e,t){let n=zS(e,t,1)[0]>>>0,r=n>=BT.SCALAR_BASE?VT(n):null;if(!r)throw Error(`Unsupported field type code ${n}. Supported: 10-29(scalars), 30(STRUCT), 31(MAP)`);let i={...r,name:XT(e,t)};if(i.type===`complexType`&&UT(n)){let n=i.complexType,r=zS(e,t,1)[0]>>>0;n.children=Array(r);for(let i=0;i<r;i++)n.children[i]=QT(e,t)}return ZT(i)}function $T(e,t){let n=zS(e,t,1)[0]>>>0,r=VT(n);if(!r)throw Error(`Unsupported column type code ${n}. Supported: ${YT}`);let i;if(HT(n))i=XT(e,t);else if(n<BT.GEOMETRY)i=`id`;else if(n===BT.GEOMETRY)i=`geometry`;else throw Error(`Unsupported column type code ${n}. Supported: ${YT}`);let a={...r,name:i};if(a.type===`complexType`&&UT(n)){let n=zS(e,t,1)[0]>>>0,r=a.complexType;r.children=Array(n);for(let i=0;i<n;i++)r.children[i]=QT(e,t)}return a}function eE(e,t){let n={};n.featureTables=[];let r={};if(r.name=XT(e,t),r.name.length===0)throw Error(`Missing layer name`);let i=zS(e,t,1)[0]>>>0,a=zS(e,t,1)[0]>>>0;r.columns=Array(a);for(let n=0;n<a;n++)r.columns[n]=$T(e,t);return n.featureTables.push(r),[n,i]}function tE(e,t,n=!0){let r=new Wx(0),i=[];for(;r.get()<e.length;){let a=zS(e,r,1)[0]>>>0,o=r.get()+a;if(o>e.length)throw Error(`Block overruns tile: ${o} > ${e.length}`);let s=zS(e,r,1)[0]>>>0;if(s!==1&&s!==2){r.set(o);continue}let[c,l]=eE(e,r),u=c.featureTables[0],d=null,f=null,p=[],m=0;for(let i of u.columns){let a=i.name;if(GT(i)){let t=null;if(i.nullable){let n=RC(e,r),i=r.get(),a=qC(e,n.numValues,n.byteLength,r);r.set(i+n.byteLength),t=new UC(a,n.numValues)}let o=RC(e,r);m=t?t.size():o.decompressedCount,d=nE(e,i,r,a,o,t??m,n)}else if(KT(i)){let n=zS(e,r,1)[0];if(m===0){let t=r.get();m=RC(e,r).decompressedCount,r.set(t)}t&&(t.scale=t.extent/l),f=Xw(e,n,r,m,t)}else{let t=WT(i)?zS(e,r,1)[0]:1;if(t===0)continue;let n=MT(e,r,i,t,m,void 0);if(n){if(Array.isArray(n))for(let e of n)p.push(e);else p.push(n)}}}let h=new zx(u.name,f,d,p,l);i.push(h),r.set(o)}return i}function nE(e,t,n,r,i,a,o=!1){let s=t.scalarType?.longID?Vx.UINT_64:Vx.UINT_32,c=typeof a==`number`?void 0:a,l=Cw(i,a,e,n,s===Vx.UINT_64?`int64`:`int32`);if(s===Vx.UINT_32)switch(l){case HC.FLAT:return new Px(r,rw(e,n,i,void 0,c),a);case HC.SEQUENCE:{let t=lw(e,n,i);return new Lx(r,t[0],t[1],i.numRleValues,!1)}case HC.CONST:return new Rx(r,cw(e,n,i),a,!1)}switch(l){case HC.FLAT:return o?new Fx(r,pw(e,n,i,c),a):new Ew(r,fw(e,n,i,c),a);case HC.SEQUENCE:{let t=uw(e,n,i);return new Dw(r,t[0],t[1],i.numRleValues,!1)}case HC.CONST:return new rT(r,gw(e,n,i),a,!1)}throw Error(`Vector type not supported for id column.`)}var rE=Zx(Jx);rE/32*4,3*rE/256+rE|0;var iE=class{constructor(e,t){switch(this._featureData=e,this.properties=this._featureData.properties||{},this._featureData.geometry?.type){case Aw.POINT:case Aw.MULTIPOINT:this.type=1;break;case Aw.LINESTRING:case Aw.MULTILINESTRING:this.type=2;break;case Aw.POLYGON:case Aw.MULTIPOLYGON:this.type=3;break;default:this.type=0}this.extent=t,this.id=Number(this._featureData.id)}loadGeometry(){let e=[];for(let t of this._featureData.geometry.coordinates){let n=[];for(let e of t)n.push(new b(e.x,e.y));e.push(n)}return e}},aE=class{constructor(e){this.features=[],this.featureTable=e,this.name=e.name,this.extent=e.extent,this.version=2,this.features=e.getFeatures(),this.length=this.features.length}feature(e){return new iE(this.features[e],this.extent)}},oE=class{constructor(e){this.layers={};let t=tE(new Uint8Array(e));this.layers=t.reduce((e,t)=>({...e,[t.name]:new aE(t)}),{})}};K(`FeatureIndex`,class{constructor(e,t){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new vl(M,16,0),this.grid3D=new vl(M,16,0),this.featureIndexArray=new Lu,this.promoteId=t}insert(e,t,n,r,i,a){let o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(n,r,i);let s=a?this.grid3D:this.grid;for(let e of t){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)t[0]=Math.min(t[0],n.x),t[1]=Math.min(t[1],n.y),t[2]=Math.max(t[2],n.x),t[3]=Math.max(t[3],n.y);t[0]<8192&&t[1]<8192&&t[2]>=0&&t[3]>=0&&s.insert(o,t[0],t[1],t[2],t[3])}}loadVTLayers(){if(!this.vtLayers){switch(this.encoding){case`mlt`:this.vtLayers=new oE(this.rawTileData).layers;break;default:this.vtLayers=new Nm(new __(this.rawTileData)).layers}this.sourceLayerCoder=new Ax(this.vtLayers?Object.keys(this.vtLayers).sort():[kx])}return this.vtLayers}query(e,t,n,r){this.loadVTLayers();let i=e.params,a=M/e.tileSize/e.scale,o=nc(i.filter,`queryRenderedFeatures filter`,i.globalState),s=e.queryGeometry,c=e.queryPadding*a,l=wm.fromPoints(s),u=this.grid.query(l.minX-c,l.minY-c,l.maxX+c,l.maxY+c),d=wm.fromPoints(e.cameraQueryGeometry).expandBy(c),f=this.grid3D.query(d.minX,d.minY,d.maxX,d.maxY,(t,n,r,i)=>nf(e.cameraQueryGeometry,t-c,n-c,r+c,i+c));for(let e of f)u.push(e);u.sort(lE);let p={},m;for(let c of u){if(c===m)continue;m=c;let l=this.featureIndexArray.get(c),u=null;this.loadMatchingFeature(p,l.bucketIndex,l.sourceLayerIndex,l.featureIndex,o,i.layers,i.availableImages,t,n,r,(t,n,r)=>(u||=Bd(t),n.queryIntersectsFeature({queryGeometry:s,feature:t,featureState:r,geometry:u,zoom:this.z,transform:e.transform,pixelsToTileUnits:a,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation})))}return p}loadMatchingFeature(e,t,n,r,i,a,o,s,c,l,u){let d=this.bucketLayerIDs[t];if(a&&!d.some(e=>a.has(e)))return;let f=this.sourceLayerCoder.decode(n),p=this.vtLayers[f].feature(r);if(i.needGeometry){let e=Vd(p,!0);if(!i.filter(new Dl(this.tileID.overscaledZ),e,this.tileID.canonical))return}else if(!i.filter(new Dl(this.tileID.overscaledZ),p))return;let m=this.getId(p,f);for(let t of d){if(a&&!a.has(t))continue;let n=s[t];if(!n)continue;let i={};m&&l&&(i=l.getState(n.sourceLayer||`_geojsonTileLayer`,m));let d=P({},c[t]);d.paint=cE(d.paint,n.paint,p,i,o),d.layout=cE(d.layout,n.layout,p,i,o);let f=!u||u(p,n,i);if(!f)continue;let h=new jx(p,this.z,this.x,this.y,m);h.layer=d;let g=e[t];g===void 0&&(g=e[t]=[]),g.push({featureIndex:r,feature:h,intersectionZ:f})}}lookupSymbolFeatures(e,t,n,r,i,a,o,s){let c={};this.loadVTLayers();let l=nc(i.filterSpec,`queryRenderedFeatures symbol filter`,i.globalState);for(let i of e)this.loadMatchingFeature(c,n,r,i,l,a,o,s,t);return c}hasLayer(e){for(let t of this.bucketLayerIDs)for(let n of t)if(e===n)return!0;return!1}getId(e,t){let n=e.id;if(this.promoteId){let r=typeof this.promoteId==`string`?this.promoteId:this.promoteId[t];n=e.properties[r],typeof n==`boolean`&&(n=Number(n)),n===void 0&&e.properties?.cluster&&this.promoteId&&(n=Number(e.properties.cluster_id))}return n}},{omit:[`rawTileData`,`sourceLayerCoder`]});function sE(e){return typeof e==`object`&&!!e&&`evaluate`in e}function cE(e,t,n,r,i){return Wt(e,(e,a)=>{let o=t instanceof Fl?t.get(a):null;return sE(o)?o.evaluate(n,r,void 0,i):o})}function lE(e,t){return t-e}var uE=`RTLPluginLoaded`,dE=class extends sr{constructor(...e){super(...e),this.status=`unavailable`,this.url=null,this.dispatcher=_b()}_syncState(e){return this.status=e,this.dispatcher.broadcast(`SRPS`,{pluginStatus:e,pluginURL:this.url}).catch(e=>{throw this.status=`error`,e})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status=`unavailable`,this.url=null}async setRTLTextPlugin(e,t=!1){if(this.url)throw Error(`setRTLTextPlugin cannot be called multiple times.`);if(this.url=kn.resolveURL(e),!this.url)throw Error(`requested url ${e} is invalid`);if(this.status===`unavailable`){if(t)this.status=`deferred`,this._syncState(this.status);else return this._requestImport()}else if(this.status===`requested`)return this._requestImport()}async _requestImport(){await this._syncState(`loading`),this.status=`loaded`,this.fire(new or(uE))}lazyLoad(){this.status===`unavailable`?this.status=`requested`:this.status===`deferred`&&this._requestImport()}},fE=null;function pE(){return fE||=new dE,fE}var mE=class{constructor(e,t){this.timeAdded=0,this.fadeEndTime=0,this.fadeOpacity=1,this.tileID=e,this.uid=Rt(),this.uses=0,this.tileSize=t,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rttObjects=[],this.rttFingerprint={},this.expiredRequestCount=0,this.state=`loading`,this.featureStateRevision=-1}isRenderable(e){return this.hasData()&&(!this.fadeEndTime||this.fadingDirection!==0||this.fadeOpacity>0)&&(e||!this.holdingForSymbolFade())}setCrossFadeLogic({fadingRole:e,fadingDirection:t,fadingParentID:n,fadeEndTime:r}){this.resetFadeLogic(),this.fadingRole=e,this.fadingDirection=t,this.fadingParentID=n,this.fadeEndTime=r}setSelfFadeLogic(e){this.resetFadeLogic(),this.selfFading=!0,this.fadeEndTime=e}resetFadeLogic(){this.fadingRole=null,this.fadingDirection=null,this.fadingParentID=null,this.selfFading=!1,this.timeAdded=jn(),this.fadeEndTime=0,this.fadeOpacity=1}wasRequested(){return this.state===`errored`||this.state===`loaded`||this.state===`reloading`}clearTextures(e){this.demTexture&&e.saveTileTexture(this.demTexture),this.demTexture=null}getRTT(e){return this.rttObjects[e]}acquireRTT(e,t,n){return this.rttObjects[t]=e.acquireRTT(n)}releaseRTT(e){if(this.rttObjects.length!==0){for(let t of this.rttObjects)t&&e.releaseRTT(t);this.rttObjects.length=0}}loadVectorData(e,t,n){if(e?.etagUnmodified===!0){this.state=`loaded`;return}if(this.hasData()&&this.unloadVectorData(),this.state=`loaded`,!e){this.collisionBoxArray=new Du;return}e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestEncoding=e.encoding,this.latestFeatureIndex.rawTileData=e.rawTileData,this.latestFeatureIndex.encoding=e.encoding):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData,this.latestFeatureIndex.encoding=this.latestEncoding)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=Ox(e.buckets,t),this.hasSymbolBuckets=!1;for(let e in this.buckets){let t=this.buckets[e];if(t instanceof ry){if(this.hasSymbolBuckets=!0,n)t.justReloaded=!0;else break}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let e in this.buckets){let t=this.buckets[e];if(t instanceof ry&&t.hasRTLText){this.hasRTLText=!0,pE().lazyLoad();break}}this.queryPadding=0;for(let e in this.buckets){let n=this.buckets[e];this.queryPadding=Math.max(this.queryPadding,t.getLayer(e).queryRadius(n))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage),this.dashPositions=e.dashPositions}unloadVectorData(){for(let e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.imageAtlas=null,this.dashPositions=null,this.latestFeatureIndex=null,this.state=`unloaded`}getBucket(e){return this.buckets[e.id]}upload(e){for(let t in this.buckets){let n=this.buckets[t];n.uploadPending()&&n.upload(e)}let t=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new qf(e,this.imageAtlas.image,t.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&=(this.glyphAtlasTexture=new qf(e,this.glyphAtlasImage,t.ALPHA),null)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,t,n,r,i,a,o,s,c,l,u){return this.latestFeatureIndex?.rawTileData?this.latestFeatureIndex.query({queryGeometry:r,cameraQueryGeometry:i,scale:a,tileSize:this.tileSize,pixelPosMatrix:l,transform:s,params:o,queryPadding:this.queryPadding*c,getElevation:u},e,t,n):{}}querySourceFeatures(e,t){let n=this.latestFeatureIndex;if(!n?.rawTileData)return;let r=n.loadVTLayers(),i=t?.sourceLayer?t.sourceLayer:``,a=r._geojsonTileLayer||r[i];if(!a)return;let o=nc(t?.filter,`querySourceFeatures[${i}].filter`,t?.globalState),{z:s,x:c,y:l}=this.tileID.canonical,u={z:s,x:c,y:l};for(let t=0;t<a.length;t++){let r=a.feature(t);if(o.needGeometry){let e=Vd(r,!0);if(!o.filter(new Dl(this.tileID.overscaledZ),e,this.tileID.canonical))continue}else if(!o.filter(new Dl(this.tileID.overscaledZ),r))continue;let d=new jx(r,s,c,l,n.getId(r,i));d.tile=u,e.push(d)}}hasData(){return this.state===`loaded`||this.state===`reloading`||this.state===`expired`}patternsLoaded(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(e){let t=this.expirationTime;if(e.cacheControl){let t=en(e.cacheControl);t[`max-age`]&&(this.expirationTime=Date.now()+t[`max-age`]*1e3)}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){let e=Date.now(),n=!1;if(this.expirationTime>e)n=!1;else if(!t)n=!0;else if(this.expirationTime<t)n=!0;else{let r=this.expirationTime-t;r?this.expirationTime=e+Math.max(r,3e4):n=!0}n?(this.expiredRequestCount++,this.state=`expired`):this.expiredRequestCount=0}}getExpiryTimeout(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-new Date().getTime(),2**31-1)}setFeatureState(e,t,n){if(!this.latestFeatureIndex?.rawTileData||Object.keys(e).length===0||this.featureStateRevision===n)return;this.featureStateRevision=n;let r=this.latestFeatureIndex.loadVTLayers();for(let n in this.buckets){if(!t.hasLayer(n))continue;let i=this.buckets[n],a=i.layers[0].sourceLayer||`_geojsonTileLayer`,o=r[a],s=e[a];if(!o||!s||s.length===0)continue;i.update(s,o,this.imageAtlas?.patternPositions||{},this.dashPositions||{});let c=t.getLayer(n);c&&(this.queryPadding=Math.max(this.queryPadding,c.queryRadius(i)))}}holdingForSymbolFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<jn()}clearSymbolFadeHold(){this.symbolFadeHoldUntil=void 0}setSymbolHoldDuration(e){this.symbolFadeHoldUntil=jn()+e}setDependencies(e,t){let n={};for(let e of t)n[e]=!0;this.dependencies[e]=n}hasDependency(e,t){for(let n of e){let e=this.dependencies[n];if(e){for(let n of t)if(e[n])return!0}}return!1}},hE=class{constructor(e,t){this.max=e,this.onRemove=t,this.reset()}reset(){for(let e in this.data)for(let t of this.data[e])t.timeout&&clearTimeout(t.timeout),this.onRemove(t.value);return this.data={},this.order=[],this}add(e,t,n){let r=e.wrapped().key;this.data[r]===void 0&&(this.data[r]=[]);let i={value:t,timeout:void 0};if(n!==void 0&&(i.timeout=setTimeout(()=>{this.remove(e,i)},n)),this.data[r].push(i),this.order.push(r),this.order.length>this.max){let e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){let t=this.data[e].shift();return t.timeout&&clearTimeout(t.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),t.value}getByKey(e){let t=this.data[e];return t?t[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,t){if(!this.has(e))return this;let n=e.wrapped().key,r=t===void 0?0:this.data[n].indexOf(t),i=this.data[n][r];return this.data[n].splice(r,1),i.timeout&&clearTimeout(i.timeout),this.data[n].length===0&&delete this.data[n],this.onRemove(i.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){let e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this}filter(e){let t=[];for(let n in this.data)for(let r of this.data[n])e(r.value)||t.push(r);for(let e of t)this.remove(e.value.tileID,e)}};function gE(e){let t=[];for(let n in e)t.push({id:n,state:e[n]});return t}var _E=class{constructor(){this.state={},this.stateChanges={},this.deletedStates={},this.revision=0}updateState(e,t,n){let r=String(t);if(this.stateChanges[e]||={},this.stateChanges[e][r]||={},P(this.stateChanges[e][r],n),this.deletedStates[e]===null){this.deletedStates[e]={};for(let t in this.state[e])if(t===r){this.deletedStates[e][r]={};for(let i in this.state[e][t])n[i]===void 0&&(this.deletedStates[e][r][i]=null)}else this.deletedStates[e][t]=null}else if(this.deletedStates[e]?.[r]===null){this.deletedStates[e][r]={};for(let t in this.state[e][r])n[t]===void 0&&(this.deletedStates[e][r][t]=null)}else for(let t in n)this.deletedStates[e]?.[r]?.[t]===null&&delete this.deletedStates[e][r][t]}removeFeatureState(e,t,n){if(this.deletedStates[e]===null)return;let r=String(t);if(this.deletedStates[e]||={},n&&t!==void 0)this.deletedStates[e][r]!==null&&(this.deletedStates[e][r]||={},this.deletedStates[e][r][n]=null);else if(t!==void 0){if(this.stateChanges[e]?.[r])for(n in this.deletedStates[e][r]={},this.stateChanges[e][r])this.deletedStates[e][r][n]=null;else this.deletedStates[e][r]=null}else this.deletedStates[e]=null}getState(e,t){let n=String(t),r=this.state[e]||{},i=this.stateChanges[e]||{},a=P({},r[n],i[n]);if(this.deletedStates[e]===null)return{};if(this.deletedStates[e]){let n=this.deletedStates[e][t];if(n===null)return{};for(let e in n)delete a[e]}return a}initializeTileState(e,t){let n={};for(let e in this.state)n[e]=gE(this.state[e]);e.setFeatureState(n,t,this.revision)}coalesceChanges(e,t){let n={};for(let e in this.stateChanges){this.state[e]||={},n[e]||={};for(let t in this.stateChanges[e])this.state[e][t]||={},P(this.state[e][t],this.stateChanges[e][t]),n[e][t]=this.state[e][t]}for(let e in this.deletedStates)if(this.state[e]||={},n[e]||={},this.deletedStates[e]===null)for(let t in this.state[e])this.state[e][t]={},n[e][t]={};else for(let t in this.deletedStates[e]){if(this.deletedStates[e][t]===null)this.state[e][t]={};else if(this.state[e][t])for(let n of Object.keys(this.deletedStates[e][t]))delete this.state[e][t][n];else continue;n[e][t]=this.state[e][t]}if(this.stateChanges={},this.deletedStates={},Object.keys(n).length===0)return;this.revision++;let r={};for(let e in n)r[e]=gE(n[e]);e.setFeatureState(r,t,this.revision)}},vE=class e{constructor(e,t){this.min=e,this.max=t,this.center=Oe([],Ee([],this.min,this.max),.5)}quadrant(t){let n=[t%2==0,t<2],r=Ce(this.min),i=Ce(this.max);for(let e=0;e<n.length;e++)r[e]=n[e]?this.min[e]:this.center[e],i[e]=n[e]?this.center[e]:this.max[e];return i[2]=this.max[2],new e(r,i)}distanceX(e){return Math.max(Math.min(this.max[0],e[0]),this.min[0])-e[0]}distanceY(e){return Math.max(Math.min(this.max[1],e[1]),this.min[1])-e[1]}intersectsFrustum(e){let t=!0;for(let n of e.planes){let e=this.intersectsPlane(n);if(e===0)return 0;e===1&&(t=!1)}return t?2:e.aabb.min[0]>this.max[0]||e.aabb.min[1]>this.max[1]||e.aabb.min[2]>this.max[2]||e.aabb.max[0]<this.min[0]||e.aabb.max[1]<this.min[1]||e.aabb.max[2]<this.min[2]?0:1}intersectsPlane(e){let t=e[3],n=e[3];for(let r=0;r<3;r++)e[r]>0?(t+=e[r]*this.min[r],n+=e[r]*this.max[r]):(n+=e[r]*this.min[r],t+=e[r]*this.max[r]);return t>=0?2:n<0?0:1}},yE=class e{constructor(e,t,n){this.points=e,this.planes=t,this.aabb=n}static fromInvProjectionMatrix(t,n=1,r=0,i,a){let o=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]],s=a?[[6,5,4],[0,1,2],[0,3,7],[2,1,5],[3,2,6],[0,4,5]]:[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],c=2**r,l=o.map(e=>bE(e,t,n,c));i&&xE(l,s[0],i,a);let u=s.map(e=>{let t=Me([],Pe([],Ue([],l[e[0]],l[e[1]]),Ue([],l[e[2]],l[e[1]]))),n=-Ne(t,l[e[1]]);return t.concat(n)}),d=[1/0,1/0,1/0],f=[-1/0,-1/0,-1/0];for(let e of l)for(let t=0;t<3;t++)d[t]=Math.min(d[t],e[t]),f[t]=Math.max(f[t],e[t]);return new e(l,u,new vE(d,f))}};function bE(e,t,n,r){let i=Xe([],e,t),a=1/i[3]/n*r;return Ze(i,i,[a,a,1/i[3],a])}function xE(e,t,n,r){let i=r?4:0,a=r?0:4,o=0,s=[],c=[];for(let t=0;t<4;t++){let n=Ue([],e[t+a],e[t+i]),r=we(n);Oe(n,n,1/r),s.push(r),c.push(n)}for(let t=0;t<4;t++){let r=Ct(e[t+i],c[t],n);o=r!==null&&r>=0?Math.max(o,r):Math.max(o,s[t])}let l=SE(e,t),u=CE(n,l);if(u!==null){let e=u/Ne(c[0],l);o=Math.min(o,e)}for(let t=0;t<4;t++){let n=Math.min(o,s[t]);e[t+a]=[e[t+i][0]+c[t][0]*n,e[t+i][1]+c[t][1]*n,e[t+i][2]+c[t][2]*n,1]}}function SE(e,t){let n=Ue([],e[t[0]],e[t[1]]),r=Ue([],e[t[2]],e[t[1]]),i=[0,0,0,0];return Me(i,Pe([],n,r)),i[3]=-Ne(i,e[t[0]]),i}function CE(e,t){let n=Je([],e,1/We(e)),r=Ue([],t,Oe([],n,Ne(t,n))),i=We(r);if(i>0){let e=Math.sqrt(1-n[3]*n[3]);return xt(t,Ee([],Oe([],n,-n[3]),Oe([],r,e/i)))}return null}function wE(e,t,n){let r=t.intersectsFrustum(e);if(!n||r===0)return r;let i=t.intersectsPlane(n);return i===0?0:r===2&&i===2?2:1}function TE(e,t,n){let r=0,i=(n-t)/10;for(let a=0;a<10;a++){let o=t+(a+.5)/10*(n-t);r+=i*Math.cos(o)**+e}return r}function EE(e,t){return function(n,r,i,a,o){let s=2*((e-1)/Ht(Math.cos(un(Gm-o))/Math.cos(un(Gm)))-1),c=Math.acos(i/a),l=2*TE(s-1,0,un(o/2)),u=Math.min(un(Gm),c+un(o/2)),d=Math.min(u,c-un(o/2)),f=TE(s-1,d,u),p=Math.atan(r/i),m=Math.hypot(r,i),h=n;return h+=Ht(a/m/Math.max(.5,Math.cos(un(o/2)))),h+=s*Ht(Math.cos(p))/2,h-=Ht(Math.max(1,f/l/t))/2,h}}var DE=EE(9.314,3);function OE(e,t){let n=(t.roundZoom?Math.round:Math.floor)(e.zoom+Ht(e.tileSize/t.tileSize));return Math.max(0,n)}function kE(e,t){let n=N((15-(Gm-e.pitch-e.fov/2))/15,0,1),r=Math.max(500,t??0);return e.elevation+n*r}function AE(e,t,n){let r=e.planes[1],i=e.points.map(e=>{let i=r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3];if(Math.abs(i)>1e-6)return e;let a=[e[0]-n[0],e[1]-n[1],e[2]-n[2]],o=r[0]*a[0]+r[1]*a[1]+r[2]*a[2];if(o>=-1e-9)return e;let s=t/-o;return[e[0]+a[0]*s,e[1]+a[1]*s,e[2]+a[2]*s,e[3]]}),a=e.planes.map((e,n)=>n===1?[e[0],e[1],e[2],e[3]+t]:e),o=[1/0,1/0,1/0],s=[-1/0,-1/0,-1/0];for(let e of i)for(let t=0;t<3;t++)o[t]=Math.min(o[t],e[t]),s[t]=Math.max(s[t],e[t]);return new yE(i,a,new vE(o,s))}function jE(e,t,n,r){let i=Math.hypot(t[0],t[1],t[2]);if(i===0)return{frustum:e,plane:t};let a=1+r/Pm,o=N(-t[3]/i,-1,1),s=Math.cos(Math.acos(o)+Math.acos(1/a));return{frustum:AE(e,Math.sqrt(a*a-1),n),plane:[t[0],t[1],t[2],-s*i]}}function ME(e,t){let n=e.getCameraFrustum(),r=e.getClippingPlane();r&&t.maxContentElevation>0&&({frustum:n,plane:r}=jE(n,r,e.cameraPosition,t.maxContentElevation));let i=e.getCoveringTilesDetailsProvider(),a=i.getCenter(e),o=$m(e,a),s=Wm.fromLngLat(a,e.elevation),c=kE(e,t.maxContentElevation),l=i.allowVariableZoom(e,t),u=OE(e,t),d=t.minzoom||0,f=t.maxzoom===void 0?e.maxZoom:t.maxzoom,p=Math.min(Math.max(0,u),f),m=2**p,h=[m*o.x,m*o.y,0],g=[m*s.x,m*s.y,0],_=Math.hypot(s.x-o.x,s.y-o.y),v=Math.abs(s.z-o.z),y=Math.hypot(_,v),b=e=>({zoom:0,x:0,y:0,wrap:e,fullyVisible:!1}),x=[],S=[];if(e.renderWorldCopies&&i.allowWorldCopies())for(let e=1;e<=3;e++)x.push(b(-e)),x.push(b(e));for(x.push(b(0));x.length>0;){let a=x.pop(),m=a.x,_=a.y,b=a.fullyVisible,C={x:m,y:_,z:a.zoom},w=i.getTileBoundingVolume(C,a.wrap,c,t);if(!b){let e=wE(n,w,r);if(e===0)continue;b=e===2}let T=i.distanceToTile2d(o.x,o.y,C,w),E=u;l&&(E=(t.calculateTileZoom||DE)(e.zoom+Ht(e.tileSize/t.tileSize),T,v,y,e.fov)),E=(t.roundZoom?Math.round:Math.floor)(E),E=Math.max(0,E);let D=Math.min(E,f);if(a.wrap=i.getWrap(s,C,a.wrap),a.zoom>=D){if(a.zoom<d)continue;let e=p-a.zoom,n=h[0]-.5-(m<<e),r=h[1]-.5-(_<<e),i=t.reparseOverscaled?Math.max(a.zoom,E):a.zoom;S.push({tileID:new Lb(a.zoom===f?i:a.zoom,a.wrap,a.zoom,m,_),distanceSq:ft([g[0]-.5-m,g[1]-.5-_]),tileDistanceToCamera:Math.sqrt(n*n+r*r)});continue}for(let e=0;e<4;e++){let t=(m<<1)+e%2,n=(_<<1)+(e>>1),r=a.zoom+1;x.push({zoom:r,x:t,y:n,wrap:a.wrap,fullyVisible:b})}}return S.sort((e,t)=>e.distanceSq-t.distanceSq).map(e=>e.tileID)}function NE(e){return e===`raster`||e===`image`||e===`video`}function PE(e,t,n,r,i,a,o){let s=jn(),c=jt(t);for(let l of t){let t=e.getTileById(l.key);(t.fadingDirection===0||t.fadeOpacity===0)&&t.resetFadeLogic(),!FE(e,t,n,s,r,i,o)&&(IE(e,t,n,s,a,o)||RE(t,c,s,o)||t.resetFadeLogic())}}function FE(e,t,n,r,i,a,o){if(!t.hasData())return!1;let{tileID:s,fadingRole:c,fadingDirection:l,fadingParentID:u}=t;if(c===0&&l===1&&u)return n[u.key]=u,!0;let d=Math.max(s.overscaledZ-i,a);for(let i=s.overscaledZ-1;i>=d;i--){let a=s.scaledTo(i),c=e.getLoadedTile(a);if(c)return t.setCrossFadeLogic({fadingRole:0,fadingDirection:1,fadingParentID:c.tileID,fadeEndTime:r+o}),c.setCrossFadeLogic({fadingRole:1,fadingDirection:0,fadeEndTime:r+o}),n[a.key]=a,!0}return!1}function IE(e,t,n,r,i,a){if(!t.hasData())return!1;let o=t.tileID.children(i),s=LE(e,t,o,n,r,i,a);if(s)return!0;for(let c of o)LE(e,t,c.children(i),n,r,i,a)&&(s=!0);return s}function LE(e,t,n,r,i,a,o){if(n[0].overscaledZ>a)return!1;let s=!1;for(let a of n){let n=e.getLoadedTile(a);if(!n)continue;let{fadingRole:c,fadingDirection:l,fadingParentID:u}=n;(c!==0||l!==0||!u)&&(n.setCrossFadeLogic({fadingRole:0,fadingDirection:0,fadingParentID:t.tileID,fadeEndTime:i+o}),t.setCrossFadeLogic({fadingRole:1,fadingDirection:1,fadeEndTime:i+o})),r[a.key]=a,s=!0}return s}function RE(e,t,n,r){let i=e.tileID;if(e.selfFading)return!0;if(e.hasData())return!1;if(t.has(i)){let t=n+r;return e.setSelfFadeLogic(t),!0}return!1}function zE(e,t){if(t<=0)return!1;let n=jn();for(let t of e.getAllTiles())if(t.fadeEndTime>=n)return!0;return!1}function BE(e,t){let n=t.getRenderableIds();for(let r of n){if(!e.neighboringTiles?.[r])continue;let n=t.getTileById(r);e.neighboringTiles[r].backfilled||VE(e,n),!n.neighboringTiles?.[e.tileID.key]?.backfilled&&VE(n,e)}}function VE(e,t){e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.needsColorReliefPrepare=!0;let n=t.tileID.canonical.x-e.tileID.canonical.x,r=t.tileID.canonical.y-e.tileID.canonical.y,i=2**e.tileID.canonical.z,a=t.tileID.key;(n!==0||r!==0)&&(Math.abs(r)>1||(Math.abs(n)>1&&(Math.abs(n+i)===1?n+=i:Math.abs(n-i)===1&&(n-=i)),t.dem&&e.dem&&(e.dem.backfillBorder(t.dem,n,r),e.neighboringTiles?.[a]&&(e.neighboringTiles[a].backfilled=!0))))}var HE=class{constructor(){this._tiles={}}handleWrapJump(e){let t={};for(let n in this._tiles){let r=this._tiles[n];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+e),t[r.tileID.key]=r}this._tiles=t}setFeatureState(e,t,n){for(let r in this._tiles)this._tiles[r].setFeatureState(e,t,n)}getAllTiles(){return Object.values(this._tiles)}getAllIds(e=!1){return e?Object.values(this._tiles).map(e=>e.tileID).sort(Ub).map(e=>e.key):Object.keys(this._tiles)}getTileById(e){return this._tiles[e]}setTile(e,t){this._tiles[e]=t}deleteTileById(e){delete this._tiles[e]}getLoadedTile(e){let t=this.getTileById(e.key);return t?.hasData()?t:null}isIdRenderable(e,t=!1){return this.getTileById(e)?.isRenderable(t)}getRenderableIds(e=0,t){let n=[];for(let e of this.getAllIds())this.isIdRenderable(e,t)&&n.push(this.getTileById(e));return t?n.sort((t,n)=>{let r=t.tileID,i=n.tileID,a=new b(r.canonical.x,r.canonical.y)._rotate(-e),o=new b(i.canonical.x,i.canonical.y)._rotate(-e);return r.overscaledZ-i.overscaledZ||o.y-a.y||o.x-a.x}).map(e=>e.tileID.key):n.map(e=>e.tileID).sort(Ub).map(e=>e.key)}},UE=class e extends sr{static{this.maxUnderzooming=10}static{this.maxOverzooming=3}constructor(e,t,n){super(),this._maxContentElevationSeen=0,this.id=e,this.dispatcher=n,this.on(`data`,e=>{this._dataHandler(e)}),this.on(`dataloading`,()=>{this._sourceErrored=!1}),this.on(`error`,()=>{this._sourceErrored=this._source.loaded()}),this._source=wx(e,t,n,this),this._inViewTiles=new HE,this._outOfViewCache=new hE(0,e=>this._unloadTile(e)),this._timers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._rasterFadeDuration=0,this._maxFadingAncestorLevels=5,this._state=new _E,this._didEmitContent=!1,this._updated=!1}onAdd(e){this.map=e,this._maxTileCacheSize=e?e._maxTileCacheSize:null,this._maxTileCacheZoomLevels=e?e._maxTileCacheZoomLevels:null,this._source?.onAdd&&this._source.onAdd(e)}onRemove(e){for(let e of this._inViewTiles.getAllTiles())e.unloadVectorData();this.clearTiles(),this._source?.onRemove&&this._source.onRemove(e),this._inViewTiles=new HE}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(let e of this._inViewTiles.getAllTiles())if(e.state!==`loaded`&&e.state!==`errored`)return!1;return!0}getSource(){return this._source}getState(){return this._state}pause(){this._paused=!0}resume(){if(!this._paused)return;let e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}async _loadTile(e,t,n,r){try{let i=await this._source.loadTile(e);this._tileLoaded(e,t,n,r,i)}catch(t){e.state=`errored`,t.status===404?this.update(this.transform,this.terrain):this._source.fire(new I(mt(t),{tile:e}))}}_unloadTile(e){this._source.unloadTile&&this._source.unloadTile(e)}_abortTile(e){this._source.abortTile&&this._source.abortTile(e),this._source.fire(new dr(`dataabort`,{tile:e,coord:e.tileID}))}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._inViewTiles,this.style);for(let t of this._inViewTiles.getAllTiles())t.upload(e),t.prepare(this.map.style.imageManager)}getIds(){return this._inViewTiles.getAllIds(!0)}getRenderableIds(e){return this._inViewTiles.getRenderableIds(this.transform?.bearingInRadians,e)}hasRenderableParent(e){let t=e.overscaledZ-1;if(t>=this._source.minzoom){let n=this.getLoadedTile(e.scaledTo(t));if(n)return this._inViewTiles.isIdRenderable(n.tileID.key)}return!1}reload(e,t=void 0){if(this._paused){this._shouldReloadOnResume=!0;return}this._outOfViewCache.reset();for(let n of this._inViewTiles.getAllIds()){let r=this._inViewTiles.getTileById(n);(!t||this._source.shouldReloadTile(r,t))&&(e?this._reloadTile(n,r.state===`errored`?`loading`:`expired`):r.state!==`errored`&&this._reloadTile(n,`reloading`))}}async _reloadTile(e,t){let n=this._inViewTiles.getTileById(e);if(!n)return;let r=n.hasData();n.state!==`loading`&&(n.state=t),await this._loadTile(n,e,t,r)}_tileLoaded(e,t,n,r,i){r||(e.timeAdded=jn(),e.selfFading&&(e.fadeEndTime=e.timeAdded+this._rasterFadeDuration)),n===`expired`&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(t,e),!i?.unmodified&&(this.getSource().type===`raster-dem`&&e.dem&&BE(e,this._inViewTiles),e.featureStateRevision=-1,this._state.initializeTileState(e,this.style),e.aborted||this._source.fire(new dr(`data`,{tile:e,coord:e.tileID})))}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._inViewTiles.getTileById(e)}_retainLoadedChildren(t,n){let r=this._getLoadedDescendents(n),i=new Set;for(let a of n){let n=r[a.key];if(!n?.length){i.add(a);continue}let o=a.overscaledZ+e.maxOverzooming,s=n.filter(e=>e.tileID.overscaledZ<=o);if(!s.length){i.add(a);continue}let c=Math.min(...s.map(e=>e.tileID.overscaledZ)),l=s.filter(e=>e.tileID.overscaledZ===c).map(e=>e.tileID);for(let e of l)t[e.key]=e;this._areDescendentsComplete(l,c,a.overscaledZ)||i.add(a)}return i}_getLoadedDescendents(e){let t={};for(let n of this._inViewTiles.getAllTiles().filter(e=>e.hasData()))for(let r of e)n.tileID.isChildOf(r)&&(t[r.key]||=[],t[r.key].push(n));return t}_areDescendentsComplete(e,t,n){return e.length===1&&e[0].isOverscaled()?e[0].overscaledZ===t:4**(t-n)===e.length}getLoadedTile(e){return this._inViewTiles.getLoadedTile(e)}updateCacheSize(e){let t=(Math.ceil(e.width/this._source.tileSize)+1)*(Math.ceil(e.height/this._source.tileSize)+1),n=this._maxTileCacheZoomLevels===null?Vn.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels,r=Math.floor(t*n),i=typeof this._maxTileCacheSize==`number`?Math.min(this._maxTileCacheSize,r):r;this._outOfViewCache.setMaxSize(i)}handleWrapJump(e){let t=(e-(this._prevLng===void 0?e:this._prevLng))/360,n=Math.round(t);this._prevLng=e,n&&(this._inViewTiles.handleWrapJump(n),this._resetTileReloadTimers())}_updateMaxContentElevation(){let e=this._maxContentElevationSeen,t=this.map?.style?._layers;if(!t)return e;let n=this._inViewTiles.getAllTiles();for(let r in t){let i=t[r];if(i.type!==`symbol`||i.source!==this.id||i.isHidden(this.transform.zoom))continue;let a=i;if(!a.layout)continue;let o=a.layout.get(`symbol-height-offset`);if(e=Math.max(e,o.constantOr(0)),!o.isConstant())for(let t of n){let n=t.getBucket(i);n&&n.maxHeightOffset>e&&(e=n.maxHeightOffset)}}return this._maxContentElevationSeen=e,e}update(e,t){if(!this._sourceLoaded||this._paused)return;this.transform=e,this.terrain=t,this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng);let n;!this.used&&!this.usedForTerrain?n=[]:this._source.tileID?n=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(e=>new Lb(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)):(n=ME(e,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.type===`vector`&&this.map._zoomLevelsToOverscale!==void 0?Math.max(this._source.maxzoom,e.maxZoom-this.map._zoomLevelsToOverscale):this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:t,calculateTileZoom:this._source.calculateTileZoom,maxContentElevation:this._updateMaxContentElevation()}),this._source.hasTile&&(n=n.filter(e=>this._source.hasTile(e)))),this.usedForTerrain&&(n=this._addTerrainIdealTiles(n));let r=n.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,r&&this.fire(new dr(`data`,{sourceDataType:`idle`,sourceId:this.id}));let i=OE(e,this._source),a=this._updateRetainedTiles(n,i),o=NE(this._source.type);o&&this._rasterFadeDuration>0&&!t&&PE(this._inViewTiles,n,a,this._maxFadingAncestorLevels,this._source.minzoom,this._source.maxzoom,this._rasterFadeDuration),o?this._cleanUpRasterTiles(a):this._cleanUpVectorTiles(a)}_cleanUpRasterTiles(e){for(let t of this._inViewTiles.getAllIds())e[t]||this._removeTile(t)}_cleanUpVectorTiles(e){for(let t of this._inViewTiles.getAllIds()){let n=this._inViewTiles.getTileById(t);if(e[t]){n.clearSymbolFadeHold();continue}if(!n.hasSymbolBuckets){this._removeTile(t);continue}n.holdingForSymbolFade()?n.symbolFadeFinished()&&this._removeTile(t):n.setSymbolHoldDuration(this.map._fadeDuration)}}_addTerrainIdealTiles(e){let t=[];for(let n of e)if(n.canonical.z>this._source.minzoom){let e=n.scaledTo(n.canonical.z-1);t.push(e);let r=n.scaledTo(Math.max(this._source.minzoom,Math.min(n.canonical.z,5)));t.push(r)}return e.concat(t)}releaseSymbolFadeTiles(){for(let e of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(e).holdingForSymbolFade()&&this._removeTile(e)}_updateRetainedTiles(t,n){let r=new Set;for(let e of t)this._addTile(e).hasData()||r.add(e);let i=t.reduce((e,t)=>(e[t.key]=t,e),{}),a=this._retainLoadedChildren(i,r),o={},s=Math.max(n-e.maxUnderzooming,this._source.minzoom);for(let e of a){let t=this._inViewTiles.getTileById(e.key),n=t?.wasRequested();for(let r=e.overscaledZ-1;r>=s;--r){let a=e.scaledTo(r);if(o[a.key])break;if(o[a.key]=!0,t=this.getTile(a),!t&&n&&(t=this._addTile(a)),t){let e=t.hasData();if((e||!this.map?.cancelPendingTileRequestsWhileZooming||n)&&(i[a.key]=a),n=t.wasRequested(),e)break}}}return i}_addTile(e){let t=this._inViewTiles.getTileById(e.key);if(t)return t;t=this._outOfViewCache.getAndRemove(e),t&&(t.resetFadeLogic(),this._setTileReloadTimer(e.key,t),t.tileID=e,this._state.initializeTileState(t,this.style));let n=t;return t||(t=new mE(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(t,e.key,t.state,!1)),t.uses++,this._inViewTiles.setTile(e.key,t),n||this._source.fire(new dr(`dataloading`,{tile:t,coord:t.tileID})),t}_setTileReloadTimer(e,t){this._clearTileReloadTimer(e);let n=t.getExpiryTimeout();if(n){let t=()=>{this._reloadTile(e,`expired`),delete this._timers[e]};this._timers[e]=setTimeout(t,n)}}_clearTileReloadTimer(e){let t=this._timers[e];t&&(clearTimeout(t),delete this._timers[e])}_resetTileReloadTimers(){for(let e in this._timers)clearTimeout(this._timers[e]),delete this._timers[e];for(let e of this._inViewTiles.getAllIds()){let t=this._inViewTiles.getTileById(e);this._setTileReloadTimer(e,t)}}refreshTiles(e){for(let t of this._inViewTiles.getAllIds()){let n=this._inViewTiles.getTileById(t);(this._inViewTiles.isIdRenderable(t)||n.state==`errored`)&&e.some(e=>e.equals(n.tileID.canonical))&&this._reloadTile(t,`expired`)}}_removeTile(e){let t=this._inViewTiles.getTileById(e);t&&(t.uses--,this._inViewTiles.deleteTileById(e),this._clearTileReloadTimer(e),!(t.uses>0)&&(t.hasData()&&t.state!==`reloading`?this._outOfViewCache.add(t.tileID,t,t.getExpiryTimeout()):(t.aborted=!0,this._abortTile(t),this._unloadTile(t))))}_dataHandler(e){if(e.dataType===`source`){if(e.sourceDataType===`metadata`){this._sourceLoaded=!0;return}e.sourceDataType===`content`&&this._sourceLoaded&&!this._paused&&(this.reload(e.sourceDataChanged,e.shouldReloadTileOptions),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}}resetMaxContentElevation(){this._maxContentElevationSeen=0}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1,this.resetMaxContentElevation();for(let e of this._inViewTiles.getAllIds())this._removeTile(e);this._outOfViewCache.reset()}tilesIn(e,t,n){let r=[],i=this.transform;if(!i)return r;let a=i.getCoveringTilesDetailsProvider().allowWorldCopies(),o=n?i.getCameraQueryGeometry(e):e,s=e=>i.screenPointToMercatorCoordinate(e,this.terrain),c=this.transformBbox(e,s,!a),l=this.transformBbox(o,s,!a),u=this.getIds(),d=wm.fromPoints(l);for(let e of u){let n=this._inViewTiles.getTileById(e);if(n.holdingForSymbolFade())continue;let o=a?[n.tileID]:[n.tileID.unwrapTo(-1),n.tileID.unwrapTo(0)],s=2**(i.zoom-n.tileID.overscaledZ),u=t*n.queryPadding*M/n.tileSize/s;for(let e of o){let t=d.map(t=>e.getTilePoint(new Wm(t.x,t.y)));if(t.expandBy(u),t.intersects(Tm)){let t=c.map(t=>e.getTilePoint(t)),i=l.map(t=>e.getTilePoint(t));r.push({tile:n,tileID:a?e:e.unwrapTo(0),queryGeometry:t,cameraQueryGeometry:i,scale:s})}}}return r}transformBbox(e,t,n){let r=e.map(t);if(n){let n=wm.fromPoints(e);n.shrinkBy(Math.min(n.width(),n.height())*.001);let i=n.map(t);wm.fromPoints(r).covers(i)||(r=r.map(e=>e.x>.5?new Wm(e.x-1,e.y,e.z):e))}return r}getVisibleCoordinates(e){let t=this.getRenderableIds(e).map(e=>this._inViewTiles.getTileById(e).tileID);return this.transform&&this.transform.populateCache(t),t}hasTransition(){return this._source.hasTransition()?!0:NE(this._source.type)&&zE(this._inViewTiles,this._rasterFadeDuration)}setRasterFadeDuration(e){this._rasterFadeDuration=e}setFeatureState(e,t,n){e||=kx,this._state.updateState(e,t,n)}removeFeatureState(e,t,n){e||=kx,this._state.removeFeatureState(e,t,n)}getFeatureState(e,t){return e||=kx,this._state.getState(e,t)}setDependencies(e,t,n){let r=this._inViewTiles.getTileById(e);r&&r.setDependencies(t,n)}reloadTilesForDependencies(e,t){for(let n of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(n).hasDependency(e,t)&&this._reloadTile(n,`reloading`);this._outOfViewCache.filter(n=>!n.hasDependency(e,t))}areTilesLoaded(){for(let e of this._inViewTiles.getAllTiles())if(e.state!==`loaded`&&e.state!==`errored`)return!1;return!0}},WE=class{constructor(e,t){this.reset(e,t)}reset(e,t){this.points=e||[],this._distances=[0];for(let e=1;e<this.points.length;e++)this._distances[e]=this._distances[e-1]+this.points[e].dist(this.points[e-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(t||0,this.length*.5),this.paddedLength=this.length-this.padding*2}lerp(e){if(this.points.length===1)return this.points[0];e=N(e,0,1);let t=1,n=this._distances[t],r=e*this.paddedLength+this.padding;for(;n<r&&t<this._distances.length;)n=this._distances[++t];let i=t-1,a=this._distances[i],o=n-a,s=o>0?(r-a)/o:0;return this.points[i].mult(1-s).add(this.points[t].mult(s))}};function GE(e,t,n,r,i){return i?e?e(t,n)+r:r===0?void 0:r:r}function KE(e,t){let n=!0;return e===`always`||(e===`never`||t===`never`)&&(n=!1),n}var qE=class{constructor(e,t,n){let r=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(e/n),this.yCellCount=Math.ceil(t/n);for(let e=0;e<this.xCellCount*this.yCellCount;e++)r.push([]),i.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=e,this.height=t,this.xScale=this.xCellCount/e,this.yScale=this.yCellCount/t,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i)}insertCircle(e,t,n,r){this._forEachCell(t-r,n-r,t+r,n+r,this._insertCircleCell,this.circleUid++),this.circleKeys.push(e),this.circles.push(t),this.circles.push(n),this.circles.push(r)}_insertBoxCell(e,t,n,r,i,a){this.boxCells[i].push(a)}_insertCircleCell(e,t,n,r,i,a){this.circleCells[i].push(a)}_query(e,t,n,r,i,a,o){if(n<0||e>this.width||r<0||t>this.height)return[];let s=[];if(e<=0&&t<=0&&this.width<=n&&this.height<=r){if(i)return[{key:null,x1:e,y1:t,x2:n,y2:r}];for(let e=0;e<this.boxKeys.length;e++)s.push({key:this.boxKeys[e],x1:this.bboxes[e*4],y1:this.bboxes[e*4+1],x2:this.bboxes[e*4+2],y2:this.bboxes[e*4+3]});for(let e=0;e<this.circleKeys.length;e++){let t=this.circles[e*3],n=this.circles[e*3+1],r=this.circles[e*3+2];s.push({key:this.circleKeys[e],x1:t-r,y1:n-r,x2:t+r,y2:n+r})}}else{let c={hitTest:i,overlapMode:a,seenUids:{box:{},circle:{}}};this._forEachCell(e,t,n,r,this._queryCell,s,c,o)}return s}query(e,t,n,r){return this._query(e,t,n,r,!1,null)}hitTest(e,t,n,r,i,a){return this._query(e,t,n,r,!0,i,a).length>0}hitTestCircle(e,t,n,r,i){let a=e-n,o=e+n,s=t-n,c=t+n;if(o<0||a>this.width||c<0||s>this.height)return!1;let l=[],u={hitTest:!0,overlapMode:r,circle:{x:e,y:t,radius:n},seenUids:{box:{},circle:{}}};return this._forEachCell(a,s,o,c,this._queryCellCircle,l,u,i),l.length>0}_queryCell(e,t,n,r,i,a,o,s){let{seenUids:c,hitTest:l,overlapMode:u}=o,d=this.boxCells[i],f=1e-6;if(d!==null){let i=this.bboxes;for(let o of d)if(!c.box[o]){c.box[o]=!0;let d=o*4,p=this.boxKeys[o];if(e<=i[d+2]+f&&t<=i[d+3]+f&&n>=i[d+0]-f&&r>=i[d+1]-f&&(!s||s(p))&&(!l||!KE(u,p.overlapMode))&&(a.push({key:p,x1:i[d],y1:i[d+1],x2:i[d+2],y2:i[d+3]}),l))return!0}}let p=this.circleCells[i];if(p!==null){let i=this.circles;for(let o of p)if(!c.circle[o]){c.circle[o]=!0;let d=o*3,f=this.circleKeys[o];if(this._circleAndRectCollide(i[d],i[d+1],i[d+2],e,t,n,r)&&(!s||s(f))&&(!l||!KE(u,f.overlapMode))){let e=i[d],t=i[d+1],n=i[d+2];if(a.push({key:f,x1:e-n,y1:t-n,x2:e+n,y2:t+n}),l)return!0}}}return!1}_queryCellCircle(e,t,n,r,i,a,o,s){let{circle:c,seenUids:l,overlapMode:u}=o,d=this.boxCells[i];if(d!==null){let e=this.bboxes;for(let t of d)if(!l.box[t]){l.box[t]=!0;let n=t*4,r=this.boxKeys[t];if(this._circleAndRectCollide(c.x,c.y,c.radius,e[n+0],e[n+1],e[n+2],e[n+3])&&(!s||s(r))&&!KE(u,r.overlapMode))return a.push(!0),!0}}let f=this.circleCells[i];if(f!==null){let e=this.circles;for(let t of f)if(!l.circle[t]){l.circle[t]=!0;let n=t*3,r=this.circleKeys[t];if(this._circlesCollide(e[n],e[n+1],e[n+2],c.x,c.y,c.radius)&&(!s||s(r))&&!KE(u,r.overlapMode))return a.push(!0),!0}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToXCellCoord(e),l=this._convertToYCellCoord(t),u=this._convertToXCellCoord(n),d=this._convertToYCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.xCellCount*c+f;if(i.call(this,e,t,n,r,l,a,o,s))return}}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,t,n,r,i,a){let o=r-e,s=i-t,c=n+a;return c*c>o*o+s*s}_circleAndRectCollide(e,t,n,r,i,a,o){let s=(a-r)/2,c=Math.abs(e-(r+s));if(c>s+n)return!1;let l=(o-i)/2,u=Math.abs(t-(i+l));if(u>l+n)return!1;if(c<=s||u<=l)return!0;let d=c-s,f=u-l;return d*d+f*f<=n*n}};function JE(e,t){let n=1/(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),r=1/(t[8]*t[8]+t[9]*t[9]+t[10]*t[10]),i=t[0]*n,a=t[4]*n,o=t[8]*r,s=t[1]*n,c=t[5]*n,l=t[9]*r,u=t[2]*n,d=t[6]*n,f=t[10]*r;e[0]=i,e[1]=a,e[2]=o,e[4]=s,e[5]=c,e[6]=l,e[8]=u,e[9]=d,e[10]=f;let p=t[12],m=t[13],h=t[14];return e[12]=-i*p-s*m-u*h,e[13]=-a*p-c*m-d*h,e[14]=-o*p-l*m-f*h,e[3]=0,e[7]=0,e[11]=0,e[15]=1,e}function YE(e,t){return e[0]=1/t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1/t[5],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=0,e[11]=1/t[14],e[12]=0,e[13]=0,e[14]=-1,e[15]=t[10]/t[14],e}function XE(e,t){let n=1/(t[0]*t[5]-t[1]*t[4]);return e[0]=t[5]*n,e[1]=-t[1]*n,e[2]=0,e[3]=0,e[4]=-t[4]*n,e[5]=t[0]*n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1/t[10],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1/t[15],e}var ZE=ie();function QE(e,t,n){let r=ie();if(!e){let{vecSouth:e,vecEast:n}=eD(t),i=D();i[0]=n[0],i[1]=n[1],i[2]=e[0],i[3]=e[1],O(i,i),r[0]=i[0],r[1]=i[1],r[4]=i[2],r[5]=i[3]}return de(r,r,[1/n,1/n,1]),r}function $E(e,t,n,r){if(e){let e=ie();if(!t){let{vecSouth:t,vecEast:r}=eD(n);e[0]=r[0],e[1]=r[1],e[4]=t[0],e[5]=t[1]}return de(e,e,[r,r,1]),e}return n.pixelsToClipSpaceMatrix}function eD(e){let t=Math.cos(e.rollInRadians),n=Math.sin(e.rollInRadians),r=Math.cos(e.pitchInRadians),i=Math.cos(e.bearingInRadians),a=Math.sin(e.bearingInRadians),o=at();o[0]=-i*r*n-a*t,o[1]=-a*r*n+i*t;let s=ct(o);s<1e-9?dt(o):st(o,o,1/s);let c=at();c[0]=i*r*t-a*n,c[1]=a*r*t+i*n;let l=ct(c);return l<1e-9?dt(c):st(c,c,1/l),{vecEast:c,vecSouth:o}}function tD(e,t,n){return GE(e.getElevation,t,n,e.heightOffset??0,e.heightAnchorGround??!0)}function nD(e,t,n,r){let i;r==null?(i=[e,t,0,1],yD(i,i,n)):(i=[e,t,r,1],Xe(i,i,n));let a=i[3];return{point:new b(i[0]/a,i[1]/a),signedDistanceFromCamera:a,isOccluded:!1}}function rD(e,t){return .5+e/t*.5}function iD(e,t){return e.x>=-t[0]&&e.x<=t[0]&&e.y>=-t[1]&&e.y<=t[1]}function aD(e,t,n,r,i,a,o,s,c,l,u,d){let f=r?e.textSizeData:e.iconSizeData,p=fv(f,n.zoom),m=[256/t.width*2+1,256/t.height*2+1],h=r?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();let g=e.lineVertexArray,_=r?e.text.placedSymbolArray:e.icon.placedSymbolArray,v=n.width/n.height,y=!1;for(let t=0;t<_.length;t++){let r=_.get(t);if(r.hidden||r.writingMode===2&&!y){vD(r.numGlyphs,h);continue}y=!1;let x={getElevation:d,pitchedLabelPlaneMatrix:i,lineVertexArray:g,pitchWithMap:o,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:n,tileAnchorPoint:new b(r.anchorX,r.anchorY),unwrappedTileID:l,width:n.width,height:n.height,translation:u},S=pD(r.anchorX,r.anchorY,x);if(!iD(S.point,m)){vD(r.numGlyphs,h);continue}let C=S.signedDistanceFromCamera,w=rD(n.cameraToCenterDistance,C),T=dv(f,p,r),E=o?T*n.getPitchedTextCorrection(r.anchorX,r.anchorY,l)/w:T*w,D=cD({projectionContext:x,pitchedLabelPlaneMatrixInverse:a,symbol:r,fontSize:E,flip:!1,keepUpright:s,glyphOffsetArray:e.glyphOffsetArray,dynamicLayoutVertexArray:h,aspectRatio:v,rotateToLine:c});y=D.useVertical,(D.notEnoughRoom||y||D.needsFlipping&&cD({projectionContext:x,pitchedLabelPlaneMatrixInverse:a,symbol:r,fontSize:E,flip:!0,keepUpright:s,glyphOffsetArray:e.glyphOffsetArray,dynamicLayoutVertexArray:h,aspectRatio:v,rotateToLine:c}).notEnoughRoom)&&vD(r.numGlyphs,h)}r?e.text.dynamicLayoutVertexBuffer.updateData(h):e.icon.dynamicLayoutVertexBuffer.updateData(h)}function oD(e,t,n,r,i,a,o,s){let c=a.glyphStartIndex+a.numGlyphs,l=a.lineStartIndex,u=a.lineStartIndex+a.lineLength,d=t.getoffsetX(a.glyphStartIndex),f=t.getoffsetX(c-1),p=gD(e*d,n,r,i,a.segment,l,u,s,o);if(!p)return null;let m=gD(e*f,n,r,i,a.segment,l,u,s,o);return!m||s.projectionCache.anyProjectionOccluded?null:{first:p,last:m}}function sD(e,t,n,r){return e===1&&Math.abs(n.y-t.y)>Math.abs(n.x-t.x)*r?{useVertical:!0}:(e===2?t.y<n.y:t.x>n.x)?{needsFlipping:!0}:null}function cD(e){let{projectionContext:t,pitchedLabelPlaneMatrixInverse:n,symbol:r,fontSize:i,flip:a,keepUpright:o,glyphOffsetArray:s,dynamicLayoutVertexArray:c,aspectRatio:l,rotateToLine:u}=e,d=i/24,f=r.lineOffsetX*d,p=r.lineOffsetY*d,m;if(r.numGlyphs>1){let e=r.glyphStartIndex+r.numGlyphs,i=r.lineStartIndex,c=r.lineStartIndex+r.lineLength,h=oD(d,s,f,p,a,r,u,t);if(!h)return{notEnoughRoom:!0};let g=fD(h.first.point.x,h.first.point.y,t,n),_=fD(h.last.point.x,h.last.point.y,t,n);if(o&&!a){let e=sD(r.writingMode,g,_,l);if(e)return e}m=[h.first];for(let n=r.glyphStartIndex+1;n<e-1;n++){let e=gD(d*s.getoffsetX(n),f,p,a,r.segment,i,c,t,u);if(!e)return{notEnoughRoom:!0};m.push(e)}m.push(h.last)}else{if(o&&!a){let e=dD(t.tileAnchorPoint.x,t.tileAnchorPoint.y,t).point,i=r.lineStartIndex+r.segment+1,a=new b(t.lineVertexArray.getx(i),t.lineVertexArray.gety(i)),o=dD(a.x,a.y,t),s=o.signedDistanceFromCamera>0?o.point:lD(t.tileAnchorPoint,a,e,1,t),c=fD(e.x,e.y,t,n),u=fD(s.x,s.y,t,n),d=sD(r.writingMode,c,u,l);if(d)return d}let e=gD(d*s.getoffsetX(r.glyphStartIndex),f,p,a,r.segment,r.lineStartIndex,r.lineStartIndex+r.lineLength,t,u);if(!e||t.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};m=[e]}for(let e of m)$v(c,e.point,e.angle);return{}}function lD(e,t,n,r,i){let a=e.add(e.sub(t)._unit()),o=dD(a.x,a.y,i).point,s=n.sub(o);return n.add(s._mult(r/s.mag()))}function uD(e,t,n){let r=t.projectionCache;if(r.projections[e])return r.projections[e];let i=new b(t.lineVertexArray.getx(e),t.lineVertexArray.gety(e)),a=dD(i.x,i.y,t);if(a.signedDistanceFromCamera>0)return r.projections[e]=a.point,r.anyProjectionOccluded||=a.isOccluded,a.point;let o=e-n.direction,s=n.distanceFromAnchor===0?t.tileAnchorPoint:new b(t.lineVertexArray.getx(o),t.lineVertexArray.gety(o)),c=n.absOffsetX-n.distanceFromAnchor+1;return lD(s,i,n.previousVertex,c,t)}function dD(e,t,n){let r=e+n.translation[0],i=t+n.translation[1],a;return n.pitchWithMap?(a=nD(r,i,n.pitchedLabelPlaneMatrix,tD(n,r,i)),a.isOccluded=!1):(a=n.transform.projectTileCoordinates(r,i,n.unwrappedTileID,tD(n,r,i)),a.point.x=(a.point.x*.5+.5)*n.width,a.point.y=(-a.point.y*.5+.5)*n.height),a}function fD(e,t,n,r){if(n.pitchWithMap){let i=[e,t,0,1];Xe(i,i,r);let a=i[0]/i[3],o=i[1]/i[3];return n.transform.projectTileCoordinates(a,o,n.unwrappedTileID,tD(n,a,o)).point}return{x:e/n.width*2-1,y:1-t/n.height*2}}function pD(e,t,n){return n.transform.projectTileCoordinates(e,t,n.unwrappedTileID,tD(n,e,t))}function mD(e,t,n){return e._unit()._perp()._mult(t*n)}function hD(e,t,n,r,i,a,o,s,c){if(s.projectionCache.offsets[e])return s.projectionCache.offsets[e];let l=n.add(t);if(e+c.direction<r||e+c.direction>=i)return s.projectionCache.offsets[e]=l,l;let u=uD(e+c.direction,s,c),d=mD(u.sub(n),o,c.direction),f=n.add(d),p=u.add(d);return s.projectionCache.offsets[e]=Zt(a,l,f,p)||l,s.projectionCache.offsets[e]}function gD(e,t,n,r,i,a,o,s,c){let l=r?e-t:e+t,u=l>0?1:-1,d=0;r&&(u*=-1,d=Math.PI),u<0&&(d+=Math.PI);let f=u>0?a+i:a+i+1,p;s.projectionCache.cachedAnchorPoint?p=s.projectionCache.cachedAnchorPoint:(p=dD(s.tileAnchorPoint.x,s.tileAnchorPoint.y,s).point,s.projectionCache.cachedAnchorPoint=p);let m=p,h=p,g,_,v=0,y=0,b=Math.abs(l),x=[],S;for(;v+y<=b;){if(f+=u,f<a||f>=o)return null;v+=y,h=m,_=g;let e={absOffsetX:b,direction:u,distanceFromAnchor:v,previousVertex:h};if(m=uD(f,s,e),n===0)x.push(h),S=m.sub(h);else{let t,r=m.sub(h);t=r.mag()===0?mD(uD(f+u,s,e).sub(m),n,u):mD(r,n,u),_||=h.add(t),g=hD(f,t,m,a,o,_,n,s,e),x.push(_),S=g.sub(_)}y=S.mag()}let C=(b-v)/y,w=S._mult(C)._add(_||h),T=d+Math.atan2(m.y-h.y,m.x-h.x);return x.push(w),{point:w,angle:c?T:0,path:x}}var _D=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function vD(e,t){for(let n=0;n<e;n++){let e=t.length;t.resize(e+4),t.float32.set(_D,e*3)}}function yD(e,t,n){let r=t[0],i=t[1];return e[0]=n[0]*r+n[4]*i+n[12],e[1]=n[1]*r+n[5]*i+n[13],e[3]=n[3]*r+n[7]*i+n[15],e}function bD(e,t){let n=ZE;return XE(n,t.pitchedLabelPlaneMatrix),e.map(e=>{let r=nD(e.x,e.y,n,tD(t,e.x,e.y)),i=t.transform.projectTileCoordinates(r.point.x,r.point.y,t.unwrappedTileID,tD(t,r.point.x,r.point.y));return i.point.x=(i.point.x*.5+.5)*t.width,i.point.y=(-i.point.y*.5+.5)*t.height,i})}function xD(e){let t=0,n=0,r=0,i=0;for(let a=0;a<e.length;a++)e[a].isOccluded?(r=a+1,i=0):(i++,i>n&&(n=i,t=r));return e.slice(t,t+n)}var SD=class{constructor(e,t=new qE(e.width+200,e.height+200,25),n=new qE(e.width+200,e.height+200,25)){this.transform=e,this.grid=t,this.ignoredGrid=n,this.pitchFactor=Math.cos(e.pitch*Math.PI/180)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+100,this.screenBottomBoundary=e.height+100,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.perspectiveRatioCutoff=.6}placeCollisionBox(e,t,n,r,i,a,o,s,c,l,u,d,f=0,p=!0){let m=e.anchorPointX+s[0],h=e.anchorPointY+s[1],g=this.projectAndGetPerspectiveRatio(m,h,i,GE(l,m,h,f,p),d),_=n*g.perspectiveRatio,v;if(!a&&!o){let t=g.x+(u?u.x*_:0),n=g.y+(u?u.y*_:0);v={allPointsOccluded:!1,box:[t+e.x1*_,n+e.y1*_,t+e.x2*_,n+e.y2*_]}}else v=this._projectCollisionBox(e,_,r,i,a,o,s,g,l,u,d,f,p);let[y,b,x,S]=v.box,C=a?v.allPointsOccluded:g.isOccluded,w=C;return w||=g.perspectiveRatio<this.perspectiveRatioCutoff,w||=!this.isInsideGrid(y,b,x,S),w||t!==`always`&&this.grid.hitTest(y,b,x,S,t,c)?{box:[y,b,x,S],placeable:!1,offscreen:!1,occluded:C}:{box:[y,b,x,S],placeable:!0,offscreen:this.isOffscreen(y,b,x,S),occluded:C}}placeCollisionCircles(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=[],h=new b(t.anchorX,t.anchorY),g=this.getPerspectiveRatio(h.x,h.y,a,p?.(h.x,h.y)),_=(c?i*this.transform.getPitchedTextCorrection(t.anchorX,t.anchorY,a)/g:i*g)/24,v={projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},y=t.lineOffsetX*_,x=t.lineOffsetY*_,S={getElevation:p,pitchedLabelPlaneMatrix:o,lineVertexArray:n,pitchWithMap:c,projectionCache:v,transform:this.transform,tileAnchorPoint:h,unwrappedTileID:a,width:this.transform.width,height:this.transform.height,translation:f},C=oD(_,r,y,x,!1,t,!1,S),w=!1,T=!1,E=!0;if(C){let t=u*.5*g+d,n=new b(-100,-100),r=new b(this.screenRightBoundary,this.screenBottomBoundary),i=new WE,a=C.first,o=C.last,f=[];for(let e=a.path.length-1;e>=1;e--)f.push(a.path[e]);for(let e=1;e<o.path.length;e++)f.push(o.path[e]);let p=t*2.5;if(c){let e=this.projectPathToScreenSpace(f,S);f=e.some(e=>e.signedDistanceFromCamera<=0)?[]:e.map(e=>e.point)}let h=[];if(f.length>0){let e=f[0].clone(),t=f[0].clone();for(let n=1;n<f.length;n++)e.x=Math.min(e.x,f[n].x),e.y=Math.min(e.y,f[n].y),t.x=Math.max(t.x,f[n].x),t.y=Math.max(t.y,f[n].y);h=e.x>=n.x&&t.x<=r.x&&e.y>=n.y&&t.y<=r.y?[f]:t.x<n.x||e.x>r.x||t.y<n.y||e.y>r.y?[]:Cv([f],n.x,n.y,r.x,r.y)}for(let n of h){i.reset(n,t*.25);let r=0;r=i.length<=.5*t?1:Math.ceil(i.paddedLength/p)+1;for(let n=0;n<r;n++){let a=n/Math.max(r-1,1),o=i.lerp(a),c=o.x+100,u=o.y+100;m.push(c,u,t,0);let d=c-t,f=u-t,p=c+t,h=u+t;if(E&&=this.isOffscreen(d,f,p,h),T||=this.isInsideGrid(d,f,p,h),e!==`always`&&this.grid.hitTestCircle(c,u,t,e,l)&&(w=!0,!s))return{circles:[],offscreen:!1,collisionDetected:w}}}}return{circles:!s&&w||!T||g<this.perspectiveRatioCutoff?[]:m,offscreen:E,collisionDetected:w}}projectPathToScreenSpace(e,t){return xD(bD(e,t))}queryRenderedSymbols(e){if(e.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};let t=[],n=new wm;for(let r of e){let e=new b(r.x+100,r.y+100);n.extend(e),t.push(e)}let{minX:r,minY:i,maxX:a,maxY:o}=n,s=this.grid.query(r,i,a,o).concat(this.ignoredGrid.query(r,i,a,o)),c={},l={};for(let e of s){let n=e.key;c[n.bucketInstanceId]===void 0&&(c[n.bucketInstanceId]={}),!c[n.bucketInstanceId][n.featureIndex]&&Gd(t,[new b(e.x1,e.y1),new b(e.x2,e.y1),new b(e.x2,e.y2),new b(e.x1,e.y2)])&&(c[n.bucketInstanceId][n.featureIndex]=!0,l[n.bucketInstanceId]===void 0&&(l[n.bucketInstanceId]=[]),l[n.bucketInstanceId].push(n.featureIndex))}return l}insertCollisionBox(e,t,n,r,i,a){let o=n?this.ignoredGrid:this.grid,s={bucketInstanceId:r,featureIndex:i,collisionGroupID:a,overlapMode:t};o.insert(s,e[0],e[1],e[2],e[3])}insertCollisionCircles(e,t,n,r,i,a){let o=n?this.ignoredGrid:this.grid,s={bucketInstanceId:r,featureIndex:i,collisionGroupID:a,overlapMode:t};for(let t=0;t<e.length;t+=4)o.insertCircle(s,e[t],e[t+1],e[t+2])}projectAndGetPerspectiveRatio(e,t,n,r,i){if(i){let n;r==null?(n=[e,t,0,1],yD(n,n,i)):(n=[e,t,r,1],Xe(n,n,i));let a=n[3];return{x:(n[0]/a+1)/2*this.transform.width+100,y:(-n[1]/a+1)/2*this.transform.height+100,perspectiveRatio:.5+.5*(this.transform.cameraToCenterDistance/a),isOccluded:!1,signedDistanceFromCamera:a}}{let i=this.transform.projectTileCoordinates(e,t,n,r);return{x:(i.point.x+1)/2*this.transform.width+100,y:(-i.point.y+1)/2*this.transform.height+100,perspectiveRatio:.5+.5*(this.transform.cameraToCenterDistance/i.signedDistanceFromCamera),isOccluded:i.isOccluded,signedDistanceFromCamera:i.signedDistanceFromCamera}}}getPerspectiveRatio(e,t,n,r){let i=this.transform.projectTileCoordinates(e,t,n,r);return .5+.5*(this.transform.cameraToCenterDistance/i.signedDistanceFromCamera)}isOffscreen(e,t,n,r){return n<100||e>=this.screenRightBoundary||r<100||t>this.screenBottomBoundary}isInsideGrid(e,t,n,r){return n>=0&&e<this.gridRightBoundary&&r>=0&&t<this.gridBottomBoundary}getViewportMatrix(){let e=se([]);return ue(e,e,[-100,-100,0]),e}_projectCollisionBox(e,t,n,r,i,a,o,s,c,l,u,d=0,f=!0){let p=1,m=0,h=0,g=1,_=e.anchorPointX+o[0],v=e.anchorPointY+o[1];if(a&&!i){let e=this.projectAndGetPerspectiveRatio(_+1,v,r,GE(c,_+1,v,d,f),u),t=e.x-s.x,n=e.y-s.y,i=Math.atan(n/t)+(t<0?Math.PI:0),a=Math.sin(i),o=Math.cos(i);p=o,m=a,h=-a,g=o}else if(!a&&i){let e=eD(this.transform);p=e.vecEast[0],m=e.vecEast[1],h=e.vecSouth[0],g=e.vecSouth[1]}let y=s.x,x=s.y,S=t;if(i&&(y=_,x=v,S=2**-(this.transform.zoom-n.overscaledZ),S*=this.transform.getPitchedTextCorrection(_,v,r),!l)){let e=N(.5+.5*(s.signedDistanceFromCamera/this.transform.cameraToCenterDistance),0,4);S*=e}l&&(y+=p*l.x*S+h*l.y*S,x+=m*l.x*S+g*l.y*S);let C=e.x1*S,w=e.x2*S,T=(C+w)/2,E=e.y1*S,D=e.y2*S,O=(E+D)/2,k=[{offsetX:C,offsetY:E},{offsetX:T,offsetY:E},{offsetX:w,offsetY:E},{offsetX:w,offsetY:O},{offsetX:w,offsetY:D},{offsetX:T,offsetY:D},{offsetX:C,offsetY:D},{offsetX:C,offsetY:O}],A=[];for(let{offsetX:e,offsetY:t}of k)A.push(new b(y+p*e+h*t,x+m*e+g*t));let ee=!1;if(i){let e=A.map(e=>this.projectAndGetPerspectiveRatio(e.x,e.y,r,GE(c,e.x,e.y,d,f),u));ee=e.some(e=>!e.isOccluded),A=e.map(e=>new b(e.x,e.y))}else ee=!0;return{box:At(A),allPointsOccluded:!ee}}},CD=class{constructor(e,t,n,r){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?t:-t))):r&&n?1:0,this.placed=n}isHidden(){return this.opacity===0&&!this.placed}},wD=class{constructor(e,t,n,r,i){this.text=new CD(e?e.text:null,t,n,i),this.icon=new CD(e?e.icon:null,t,r,i)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}},TD=class{constructor(e,t,n){this.text=e,this.icon=t,this.skipFade=n}},ED=class{constructor(e,t,n,r,i){this.bucketInstanceId=e,this.featureIndex=t,this.sourceLayerIndex=n,this.bucketIndex=r,this.tileID=i}},DD=class{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={}}get(e){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[e]){let t=++this.maxGroupID;this.collisionGroups[e]={ID:t,predicate:e=>e.collisionGroupID===t}}return this.collisionGroups[e]}};function OD(e,t,n,r,i){let{horizontalAlign:a,verticalAlign:o}=V_(e),s=-(a-.5)*t,c=-(o-.5)*n;return new b(s+r[0]*i,c+r[1]*i)}var kD=Jh.members.find(e=>e.name===`crossTileID`).offset/4,AD=class{constructor(e,t,n,r,i){this.transform=e.clone(),this.terrain=t,this.collisionIndex=new SD(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=n,this.retainedQueryData={},this.collisionGroups=new DD(r),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.lastOpacityInputs=new WeakMap,this.prevPlacement=i,i&&(i.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(e){let t=this.terrain;if(t)return(n,r)=>t.getElevation(e,n,r)}getBucketParts(e,t,n,r){let i=n.getBucket(t),a=n.latestFeatureIndex;if(!i||!a||t.id!==i.layerIds[0])return;let o=n.collisionBoxArray,s=i.layers[0].layout,c=i.layers[0].paint,l=2**(this.transform.zoom-n.tileID.overscaledZ),u=n.tileSize/M,d=n.tileID.toUnwrapped(),f=s.get(`text-rotation-alignment`)===`map`,p=pt(n,1,this.transform.zoom),m=bt(this.collisionIndex.transform,n,c.get(`text-translate`),c.get(`text-translate-anchor`)),h=bt(this.collisionIndex.transform,n,c.get(`icon-translate`),c.get(`icon-translate-anchor`)),g=QE(f,this.transform,p);this.retainedQueryData[i.bucketInstanceId]=new ED(i.bucketInstanceId,a,i.sourceLayerIndex,i.index,n.tileID);let _={bucket:i,layout:s,translationText:m,translationIcon:h,unwrappedTileID:d,pitchedLabelPlaneMatrix:g,scale:l,textPixelRatio:u,holdingForFade:n.holdingForSymbolFade(),collisionBoxArray:o,partiallyEvaluatedTextSize:fv(i.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(i.sourceID)};if(r)for(let t of i.sortKeyRanges){let{sortKey:n,symbolInstanceStart:r,symbolInstanceEnd:i}=t;e.push({sortKey:n,symbolInstanceStart:r,symbolInstanceEnd:i,parameters:_})}else e.push({symbolInstanceStart:0,symbolInstanceEnd:i.symbolInstances.length,parameters:_})}attemptAnchorPlacement(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=Lv[e.textAnchor],C=[e.textOffset0,e.textOffset1],w=OD(S,n,r,C,i),T=this.collisionIndex.placeCollisionBox(t,d,s,c,l,o,a,h,u.predicate,v,w,y,b,x);if((!_||this.collisionIndex.placeCollisionBox(_,d,s,c,l,o,a,g,u.predicate,v,w,y,b,x).placeable)&&T.placeable){let e;if(this.prevPlacement?.variableOffsets[f.crossTileID]&&this.prevPlacement?.placements[f.crossTileID]?.text&&(e=this.prevPlacement.variableOffsets[f.crossTileID].anchor),f.crossTileID===0)throw Error(`symbolInstance.crossTileID can't be 0`);return this.variableOffsets[f.crossTileID]={textOffset:C,width:n,height:r,anchor:S,textBoxScale:i,prevAnchor:e},this.markUsedJustification(p,S,f,m),p.allowVerticalPlacement&&(this.markUsedOrientation(p,m,f),this.placedOrientations[f.crossTileID]=m),{shift:w,placedGlyphBoxes:T}}}placeLayerBucketPart(e,t,n){let{bucket:r,layout:i,translationText:a,translationIcon:o,unwrappedTileID:s,pitchedLabelPlaneMatrix:c,textPixelRatio:l,holdingForFade:u,collisionBoxArray:d,partiallyEvaluatedTextSize:f,collisionGroup:p}=e.parameters,m=i.get(`text-optional`),h=i.get(`icon-optional`),g=Xv(i,`text-overlap`,`text-allow-overlap`),_=g===`always`,v=Xv(i,`icon-overlap`,`icon-allow-overlap`),y=v===`always`,b=i.get(`text-rotation-alignment`)===`map`,x=i.get(`text-pitch-alignment`)===`map`,S=i.get(`icon-text-fit`)!==`none`,C=i.get(`symbol-z-order`)===`viewport-y`,w=i.get(`symbol-height-anchor`)===`ground`,T=_&&(y||!r.hasIconData()||h),E=y&&(_||!r.hasTextData()||m);!r.collisionArrays&&d&&r.deserializeCollisionBoxes(d);let D=this.retainedQueryData[r.bucketInstanceId].tileID,O=this._getTerrainElevationFunc(D),k=this.transform.getFastPathSimpleProjectionMatrix(D),A=(e,d,y)=>{if(t[e.crossTileID])return;if(u){this.placements[e.crossTileID]=new TD(!1,!1,!1);return}let C=e.heightOffset,A=!1,ee=!1,te=!0,ne=null,re={box:null,placeable:!1,offscreen:null,occluded:!1},ie={box:null,placeable:!1,offscreen:null},ae=null,oe=null,se=null,ce=0,le=0,ue=0;d.textFeatureIndex?ce=d.textFeatureIndex:e.useRuntimeCollisionCircles&&(ce=e.featureIndex),d.verticalTextFeatureIndex&&(le=d.verticalTextFeatureIndex);let de=d.textBox;if(de){let t=t=>{let n=1;if(r.allowVerticalPlacement&&!t&&this.prevPlacement){let t=this.prevPlacement.placedOrientations[e.crossTileID];t&&(this.placedOrientations[e.crossTileID]=t,n=t,this.markUsedOrientation(r,n,e))}return n},i=(t,n)=>{if(r.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&d.verticalTextBox){for(let e of r.writingModes)if(e===2?(re=n(),ie=re):re=t(),re?.placeable)break}else re=t()},c=e.textAnchorOffsetStartIndex,u=e.textAnchorOffsetEndIndex;if(u===c){let n=(t,n)=>{let i=this.collisionIndex.placeCollisionBox(t,g,l,D,s,x,b,a,p.predicate,O,void 0,k,C,w);return i?.placeable&&(this.markUsedOrientation(r,n,e),this.placedOrientations[e.crossTileID]=n),i};i(()=>n(de,1),()=>{let t=d.verticalTextBox;return r.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&t?n(t,2):{box:null,offscreen:null}}),t(re?.placeable)}else{let f=Lv[this.prevPlacement?.variableOffsets[e.crossTileID]?.anchor],m=(t,i,d)=>{let m=t.x2-t.x1,h=t.y2-t.y1,_=e.textBoxScale,y=S&&v===`never`?i:null,T=null,E=g===`never`?1:2,ee=`never`;f&&E++;for(let n=0;n<E;n++){for(let n=c;n<u;n++){let i=r.textAnchorOffsets.get(n);if(f&&i.textAnchor!==f)continue;let c=this.attemptAnchorPlacement(i,t,m,h,_,b,x,l,D,s,p,ee,e,r,d,a,o,y,O,k,C,w);if(c&&(T=c.placedGlyphBoxes,T?.placeable))return A=!0,ne=c.shift,T}f?f=null:ee=g}return n&&!T&&(T={box:this.collisionIndex.placeCollisionBox(de,`always`,l,D,s,x,b,a,p.predicate,O,void 0,k,C,w).box,offscreen:!1,placeable:!1,occluded:!1}),T};i(()=>m(de,d.iconBox,1),()=>{let t=d.verticalTextBox,n=re?.placeable;return r.allowVerticalPlacement&&!n&&e.numVerticalGlyphVertices>0&&t?m(t,d.verticalIconBox,2):{box:null,occluded:!0,offscreen:null}}),re&&(A=re.placeable,te=re.offscreen);let h=t(re?.placeable);if(!A&&this.prevPlacement){let t=this.prevPlacement.variableOffsets[e.crossTileID];t&&(this.variableOffsets[e.crossTileID]=t,this.markUsedJustification(r,t.anchor,e,h))}}}if(ae=re,A=ae?.placeable,te=ae?.offscreen,e.useRuntimeCollisionCircles&&e.centerJustifiedTextSymbolIndex>=0){let t=r.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),o=dv(r.textSizeData,f,t),l=i.get(`text-padding`),u=e.collisionCircleDiameter;oe=this.collisionIndex.placeCollisionCircles(g,t,r.lineVertexArray,r.glyphOffsetArray,o,s,c,n,x,p.predicate,u,l,a,O),oe.circles.length&&oe.collisionDetected&&!n&&Yt(`Collisions detected, but collision boxes are not shown`),A=_||oe.circles.length>0&&!oe.collisionDetected,te&&=oe.offscreen}if(d.iconFeatureIndex&&(ue=d.iconFeatureIndex),d.iconBox){let e=e=>this.collisionIndex.placeCollisionBox(e,v,l,D,s,x,b,o,p.predicate,O,S&&ne?ne:void 0,k,C,w);ie&&ie.placeable&&d.verticalIconBox?(se=e(d.verticalIconBox),ee=se.placeable):(se=e(d.iconBox),ee=se.placeable),te&&=se.offscreen}let fe=m||e.numHorizontalGlyphVertices===0&&e.numVerticalGlyphVertices===0,pe=h||e.numIconVertices===0;!fe&&!pe?ee=A=ee&&A:pe?fe||(ee&&=A):A=ee&&A;let me=A&&ae.placeable,he=ee&&se.placeable;if(me&&(ie&&ie.placeable&&le?this.collisionIndex.insertCollisionBox(ae.box,g,i.get(`text-ignore-placement`),r.bucketInstanceId,le,p.ID):this.collisionIndex.insertCollisionBox(ae.box,g,i.get(`text-ignore-placement`),r.bucketInstanceId,ce,p.ID)),he&&this.collisionIndex.insertCollisionBox(se.box,v,i.get(`icon-ignore-placement`),r.bucketInstanceId,ue,p.ID),oe&&A&&this.collisionIndex.insertCollisionCircles(oe.circles,g,i.get(`text-ignore-placement`),r.bucketInstanceId,ce,p.ID),n&&this.storeCollisionData(r.bucketInstanceId,y,d,ae,se,oe),e.crossTileID===0)throw Error(`symbolInstance.crossTileID can't be 0`);if(r.bucketInstanceId===0)throw Error(`bucket.bucketInstanceId can't be 0`);let ge=(A||T)&&!ae?.occluded,_e=(ee||E)&&!se?.occluded;this.placements[e.crossTileID]=new TD(ge,_e,te||r.justReloaded),t[e.crossTileID]=!0};if(C){if(e.symbolInstanceStart!==0)throw Error(`bucket.bucketInstanceId should be 0`);let t=r.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let e=t.length-1;e>=0;--e){let n=t[e];A(r.symbolInstances.get(n),r.collisionArrays[n],n)}}else for(let t=e.symbolInstanceStart;t<e.symbolInstanceEnd;t++)A(r.symbolInstances.get(t),r.collisionArrays[t],t);r.justReloaded=!1}storeCollisionData(e,t,n,r,i,a){if(n.textBox||n.iconBox){let a;this.collisionBoxArrays.has(e)?a=this.collisionBoxArrays.get(e):(a=new Map,this.collisionBoxArrays.set(e,a));let o;a.has(t)?o=a.get(t):(o={text:null,icon:null},a.set(t,o)),n.textBox&&(o.text=r.box),n.iconBox&&(o.icon=i.box)}if(a){let t=this.collisionCircleArrays[e];t===void 0&&(t=this.collisionCircleArrays[e]=[]);for(let e=0;e<a.circles.length;e+=4)t.push(a.circles[e+0]-100),t.push(a.circles[e+1]-100),t.push(a.circles[e+2]),t.push(+!!a.collisionDetected)}}markUsedJustification(e,t,n,r){let i={left:n.leftJustifiedTextSymbolIndex,center:n.centerJustifiedTextSymbolIndex,right:n.rightJustifiedTextSymbolIndex},a;a=r===2?n.verticalPlacedTextSymbolIndex:i[Hv(t)];let o=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex,n.verticalPlacedTextSymbolIndex];for(let t of o)t>=0&&(a>=0&&t!==a?e.text.placedSymbolArray.get(t).crossTileID=0:e.text.placedSymbolArray.get(t).crossTileID=n.crossTileID)}markUsedOrientation(e,t,n){let r=t===1||t===3?t:0,i=t===2?t:0,a=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];for(let t of a)e.text.placedSymbolArray.get(t).placedOrientation=r;n.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(n.verticalPlacedTextSymbolIndex).placedOrientation=i)}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;let t=this.prevPlacement,n=!1;this.prevZoomAdjustment=t?t.zoomAdjustment(this.transform.zoom):0;let r=t?t.symbolFadeChange(e):1,i=t?t.opacities:{},a=t?t.variableOffsets:{},o=t?t.placedOrientations:{};for(let e in this.placements){let t=this.placements[e],a=i[e];a?(this.opacities[e]=new wD(a,r,t.text,t.icon),n||=t.text!==a.text.placed,n||=t.icon!==a.icon.placed):(this.opacities[e]=new wD(null,r,t.text,t.icon,t.skipFade),n||=t.text||t.icon)}for(let e in i){let t=i[e];if(!this.opacities[e]){let i=new wD(t,r,!1,!1);i.isHidden()||(this.opacities[e]=i,n||=t.text.placed,n||=t.icon.placed)}}for(let e in a)!this.variableOffsets[e]&&this.opacities[e]&&!this.opacities[e].isHidden()&&(this.variableOffsets[e]=a[e]);for(let e in o)!this.placedOrientations[e]&&this.opacities[e]&&!this.opacities[e].isHidden()&&(this.placedOrientations[e]=o[e]);if(t&&t.lastPlacementChangeTime===void 0)throw Error(`Last placement time for previous placement is not defined`);n?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!=`number`&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e)}updateLayerOpacities(e,t){let n={};for(let r of t){let t=r.getBucket(e);if(!t||!r.latestFeatureIndex||e.id!==t.layerIds[0])continue;let{duplicates:i,changed:a}=this._markDuplicates(t,n),o=!!t.hasDebugData()||t.bucketInstanceId in this.collisionCircleArrays;(a||o)&&this.updateBucketOpacities(t,r.tileID,i,r.collisionBoxArray),t.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder)}}_markDuplicates(e,t){let n=e.symbolInstances.length,r=this.lastOpacityInputs.get(e),i=!1;r||(r={crossTileIDs:Array(n).fill(0),duplicates:Array(n).fill(!1)},this.lastOpacityInputs.set(e,r),i=!0);let{crossTileIDs:a,duplicates:o}=r,s=e.symbolInstances.uint32,c=e.symbolInstances.bytesPerElement/4;for(let e=0;e<n;e++){let n=s[e*c+kD],r=!!t[n];t[n]=!0,(a[e]!==n||o[e]!==r)&&(a[e]=n,o[e]=r,i=!0)}return{duplicates:o,changed:i}}updateBucketOpacities(e,t,n,r){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();let i=e.layers[0],a=i.layout,o=new wD(null,0,!1,!1,!0),s=a.get(`text-allow-overlap`),c=a.get(`icon-allow-overlap`),l=i._unevaluatedLayout.hasValue(`text-variable-anchor`)||i._unevaluatedLayout.hasValue(`text-variable-anchor-offset`),u=a.get(`text-rotation-alignment`)===`map`,d=a.get(`text-pitch-alignment`)===`map`,f=a.get(`icon-text-fit`)!==`none`,p=new wD(null,0,s&&(c||!e.hasIconData()||a.get(`icon-optional`)),c&&(s||!e.hasTextData()||a.get(`text-optional`)),!0);!e.collisionArrays&&r&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(r);let m=(e,t,n)=>{for(let r=0;r<t/4;r++)e.opacityVertexArray.emplaceBack(n);e.hasVisibleVertices||=n!==0},h=this.collisionBoxArrays.get(e.bucketInstanceId);for(let t=0;t<e.symbolInstances.length;t++){let r=e.symbolInstances.get(t),{numHorizontalGlyphVertices:i,numVerticalGlyphVertices:a,crossTileID:s}=r,c=n[t],g=this.opacities[s];c?g=o:g||(g=p,this.opacities[s]=g);let _=i>0||a>0,v=r.numIconVertices>0,y=this.placedOrientations[r.crossTileID],x=y===2,S=y===1||y===3;if(_){let t=ID(g.text),n=x?0:t;m(e.text,i,n);let o=S?0:t;m(e.text,a,o);let s=g.text.isHidden(),c=[r.rightJustifiedTextSymbolIndex,r.centerJustifiedTextSymbolIndex,r.leftJustifiedTextSymbolIndex];for(let t of c)t>=0&&(e.text.placedSymbolArray.get(t).hidden=s||x?1:0);r.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(r.verticalPlacedTextSymbolIndex).hidden=s||S?1:0);let l=this.variableOffsets[r.crossTileID];l&&this.markUsedJustification(e,l.anchor,r,y);let u=this.placedOrientations[r.crossTileID];u&&(this.markUsedJustification(e,`left`,r,u),this.markUsedOrientation(e,u,r))}if(v){let t=ID(g.icon),n=!(f&&r.verticalPlacedIconSymbolIndex&&x);if(r.placedIconSymbolIndex>=0){let i=n?t:0;m(e.icon,r.numIconVertices,i),e.icon.placedSymbolArray.get(r.placedIconSymbolIndex).hidden=g.icon.isHidden()}if(r.verticalPlacedIconSymbolIndex>=0){let i=n?0:t;m(e.icon,r.numVerticalIconVertices,i),e.icon.placedSymbolArray.get(r.verticalPlacedIconSymbolIndex).hidden=g.icon.isHidden()}}let C=h?.has(t)?h.get(t):{text:null,icon:null};if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){let n=e.collisionArrays[t];if(n){let t=new b(0,0);if(n.textBox||n.verticalTextBox){let r=!0;if(l){let e=this.variableOffsets[s];e?(t=OD(e.anchor,e.width,e.height,e.textOffset,e.textBoxScale),u&&t._rotate(d?-this.transform.bearingInRadians:this.transform.bearingInRadians)):r=!1}if(n.textBox||n.verticalTextBox){let i;n.textBox&&(i=x),n.verticalTextBox&&(i=S),jD(e.textCollisionBox.collisionVertexArray,g.text.placed,!r||i,C.text,t.x,t.y)}}if(n.iconBox||n.verticalIconBox){let r=!(S||!n.verticalIconBox),i;n.iconBox&&(i=r),n.verticalIconBox&&(i=!r),jD(e.iconCollisionBox.collisionVertexArray,g.icon.placed,i,C.icon,f?t.x:0,f?t.y:0)}}}}if(e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);e.bucketInstanceId in this.collisionCircleArrays&&(e.collisionCircleArray=this.collisionCircleArrays[e.bucketInstanceId],delete this.collisionCircleArrays[e.bucketInstanceId])}symbolFadeChange(e){return this.fadeDuration===0?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(e,t){let n=this.zoomAtLastRecencyCheck===t?1-this.zoomAdjustment(t):1;return this.zoomAtLastRecencyCheck=t,this.commitTime+this.fadeDuration*n>e}setStale(){this.stale=!0}};function jD(e,t,n,r,i,a){(!r||r.length===0)&&(r=[0,0,0,0]);let o=r[0]-100,s=r[1]-100,c=r[2]-100,l=r[3]-100;e.emplaceBack(+!!t,+!!n,i||0,a||0,o,s),e.emplaceBack(+!!t,+!!n,i||0,a||0,c,s),e.emplaceBack(+!!t,+!!n,i||0,a||0,c,l),e.emplaceBack(+!!t,+!!n,i||0,a||0,o,l)}var MD=2**25,ND=2**24,PD=2**17,FD=2**16;function ID(e){if(e.opacity===0&&!e.placed)return 0;if(e.opacity===1&&e.placed)return LD;let t=+!!e.placed,n=Math.floor(e.opacity*127);return n*MD+t*ND+n*PD+t*FD+n*512+t*256+n*2+t}var LD=4294967295,RD=class{constructor(e){this._sortAcrossTiles=e.layout.get(`symbol-z-order`)!==`viewport-y`&&!e.layout.get(`symbol-sort-key`).isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(e,t,n,r,i){let a=this._bucketParts;for(;this._currentTileIndex<e.length;){let n=e[this._currentTileIndex];if(t.getBucketParts(a,r,n,this._sortAcrossTiles),this._currentTileIndex++,i())return!0}for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,a.sort((e,t)=>e.sortKey-t.sortKey));this._currentPartIndex<a.length;){let e=a[this._currentPartIndex];if(t.placeLayerBucketPart(e,this._seenCrossTileIDs,n),this._currentPartIndex++,i())return!0}return!1}},zD=class{constructor(e,t,n,r,i,a,o,s){this.placement=new AD(e,t,a,o,s),this._currentPlacementIndex=n.length-1,this._forceFullPlacement=r,this._showCollisionBoxes=i,this._done=!1}isDone(){return this._done}continuePlacement(e,t,n){let r=jn(),i=()=>!this._forceFullPlacement&&jn()-r>2;for(;this._currentPlacementIndex>=0;){let r=t[e[this._currentPlacementIndex]],a=this.placement.collisionIndex.transform.zoom;if(dy(r)&&r.layout&&(!r.minzoom||r.minzoom<=a)&&(!r.maxzoom||r.maxzoom>a)){if(this._inProgressLayer||=new RD(r),this._inProgressLayer.continuePlacement(n[r.source],this.placement,this._showCollisionBoxes,r,i))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(e){return this.placement.commit(e),this.placement}},BD=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],VD=new Uint32Array(96),HD=class e{static from(t){if(!t||t.byteLength===void 0||t.buffer)throw Error(`Data must be an instance of ArrayBuffer or SharedArrayBuffer.`);let[n,r]=new Uint8Array(t,0,2);if(n!==219)throw Error(`Data does not appear to be in a KDBush format.`);let i=r>>4;if(i!==1)throw Error(`Got v${i} data when expected v1.`);let a=BD[r&15];if(!a)throw Error(`Unrecognized array type.`);let[o]=new Uint16Array(t,2,1),[s]=new Uint32Array(t,4,1);return new e(s,o,a,void 0,t)}constructor(e,t=64,n=Float64Array,r=ArrayBuffer,i){if(isNaN(e)||e<0)throw Error(`Unexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=n,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;let a=BD.indexOf(this.ArrayType),o=e*2*this.ArrayType.BYTES_PER_ELEMENT,s=e*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-s%8)%8;if(a<0)throw Error(`Unexpected typed array class: ${n}.`);if(i)this.data=i,this.ids=new this.IndexArrayType(i,8,e),this.coords=new n(i,8+s+c,e*2),this._pos=e*2,this._finished=!0;else{let i=this.data=new r(8+o+s+c);this.ids=new this.IndexArrayType(i,8,e),this.coords=new n(i,8+s+c,e*2),this._pos=0,this._finished=!1,new Uint8Array(i,0,2).set([219,16+a]),new Uint16Array(i,2,1)[0]=t,new Uint32Array(i,4,1)[0]=e}}add(e,t){let n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=e,this.coords[this._pos++]=t,n}finish(){let e=this._pos>>1;if(e!==this.numItems)throw Error(`Added ${e} items when expected ${this.numItems}.`);return UD(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,n,r){if(!this._finished)throw Error(`Data not yet indexed - call index.finish().`);let{ids:i,coords:a,nodeSize:o}=this;VD[0]=0,VD[1]=i.length-1,VD[2]=0;let s=3,c=[];for(;s>0;){let l=VD[--s],u=VD[--s],d=VD[--s];if(u-d<=o){for(let o=d;o<=u;o++){let s=a[2*o],l=a[2*o+1];s>=e&&s<=n&&l>=t&&l<=r&&c.push(i[o])}continue}let f=d+u>>1,p=a[2*f],m=a[2*f+1];p>=e&&p<=n&&m>=t&&m<=r&&c.push(i[f]),(l===0?e<=p:t<=m)&&(VD[s++]=d,VD[s++]=f-1,VD[s++]=1-l),(l===0?n>=p:r>=m)&&(VD[s++]=f+1,VD[s++]=u,VD[s++]=1-l)}return c}within(e,t,n){let r=[];return this.withinInto(e,t,n,r),r}withinInto(e,t,n,r){if(!this._finished)throw Error(`Data not yet indexed - call index.finish().`);let{ids:i,coords:a,nodeSize:o}=this;VD[0]=0,VD[1]=i.length-1,VD[2]=0;let s=3,c=0,l=n*n;for(;s>0;){let u=VD[--s],d=VD[--s],f=VD[--s];if(d-f<=o){for(let n=f;n<=d;n++)qD(a[2*n],a[2*n+1],e,t)<=l&&(r[c++]=i[n]);continue}let p=f+d>>1,m=a[2*p],h=a[2*p+1];qD(m,h,e,t)<=l&&(r[c++]=i[p]),(u===0?e-n<=m:t-n<=h)&&(VD[s++]=f,VD[s++]=p-1,VD[s++]=1-u),(u===0?e+n>=m:t+n>=h)&&(VD[s++]=p+1,VD[s++]=d,VD[s++]=1-u)}return c}};function UD(e,t,n,r,i,a){if(i-r<=n)return;let o=r+i>>1;WD(e,t,o,r,i,a),UD(e,t,n,r,o-1,1-a),UD(e,t,n,o+1,i,1-a)}function WD(e,t,n,r,i,a){for(;i>r;){if(i-r>600){let o=i-r+1,s=n-r+1,c=Math.log(o),l=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*l*(o-l)/o)*(s-o/2<0?-1:1);WD(e,t,n,Math.max(r,Math.floor(n-s*l/o+u)),Math.min(i,Math.floor(n+(o-s)*l/o+u)),a)}let o=t[2*n+a],s=r,c=i;for(GD(e,t,r,n),t[2*i+a]>o&&GD(e,t,r,i);s<c;){for(GD(e,t,s,c),s++,c--;t[2*s+a]<o;)s++;for(;t[2*c+a]>o;)c--}t[2*r+a]===o?GD(e,t,r,c):(c++,GD(e,t,c,i)),c<=n&&(r=c+1),n<=c&&(i=c-1)}}function GD(e,t,n,r){KD(e,n,r),KD(t,2*n,2*r),KD(t,2*n+1,2*r+1)}function KD(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function qD(e,t,n,r){let i=e-n,a=t-r;return i*i+a*a}var JD=512/M/2,YD=class{constructor(e,t,n){this.tileID=e,this.bucketInstanceId=n,this._symbolsByKey={};let r=new Map;for(let e=0;e<t.length;e++){let n=t.get(e),i=n.key,a=r.get(i);a?a.push(n):r.set(i,[n])}for(let[e,t]of r){let n={positions:t.map(e=>({x:Math.floor(e.anchorX*JD),y:Math.floor(e.anchorY*JD)})),crossTileIDs:t.map(e=>e.crossTileID)};if(n.positions.length>128){let e=new HD(n.positions.length,16,Uint16Array);for(let{x:t,y:r}of n.positions)e.add(t,r);e.finish(),delete n.positions,n.index=e}this._symbolsByKey[e]=n}}getScaledCoordinates(e,t){let{x:n,y:r,z:i}=this.tileID.canonical,{x:a,y:o,z:s}=t.canonical,c=JD/2**(s-i),l=(a*M+e.anchorX)*c,u=(o*M+e.anchorY)*c,d=n*M*JD,f=r*M*JD;return{x:Math.floor(l-d),y:Math.floor(u-f)}}findMatches(e,t,n){let r=this.tileID.canonical.z<t.canonical.z?1:2**(this.tileID.canonical.z-t.canonical.z);for(let i=0;i<e.length;i++){let a=e.get(i);if(a.crossTileID)continue;let o=this._symbolsByKey[a.key];if(!o)continue;let s=this.getScaledCoordinates(a,t);o.index?this.findMatchesForIndexedEntry(o,a,s,r,n):o.positions&&this.findMatchesForNonIndexedEntry(o,a,s,r,n)}}findMatchesForIndexedEntry(e,t,n,r,i){let a=e.index.range(n.x-r,n.y-r,n.x+r,n.y+r),o=1/0;for(let t of a)t<o&&!i[e.crossTileIDs[t]]&&(o=t);if(o!==1/0){let n=e.crossTileIDs[o];i[n]=!0,t.crossTileID=n}}findMatchesForNonIndexedEntry(e,t,n,r,i){for(let a=0;a<e.positions.length;a++){let o=e.positions[a],s=e.crossTileIDs[a];if(Math.abs(o.x-n.x)<=r&&Math.abs(o.y-n.y)<=r&&!i[s]){i[s]=!0,t.crossTileID=s;break}}}getCrossTileIDsLists(){return Object.values(this._symbolsByKey).map(({crossTileIDs:e})=>e)}},XD=class{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}},ZD=class{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(e){let t=Math.round((e-this.lng)/360);if(t!==0)for(let e in this.indexes){let n=this.indexes[e],r={};for(let e in n){let i=n[e];i.tileID=i.tileID.unwrapTo(i.tileID.wrap+t),r[i.tileID.key]=i}this.indexes[e]=r}this.lng=e}addBucket(e,t,n){if(this.indexes[e.overscaledZ]?.[e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===t.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key])}for(let e=0;e<t.symbolInstances.length;e++){let n=t.symbolInstances.get(e);n.crossTileID=0}this.usedCrossTileIDs[e.overscaledZ]||={};let r=this.usedCrossTileIDs[e.overscaledZ];for(let n in this.indexes){let i=this.indexes[n];if(Number(n)>e.overscaledZ)for(let n in i){let a=i[n];a.tileID.isChildOf(e)&&a.findMatches(t.symbolInstances,e,r)}else{let a=i[e.scaledTo(Number(n)).key];a&&a.findMatches(t.symbolInstances,e,r)}}for(let e=0;e<t.symbolInstances.length;e++){let i=t.symbolInstances.get(e);i.crossTileID||(i.crossTileID=n.generate(),r[i.crossTileID]=!0)}return this.indexes[e.overscaledZ]===void 0&&(this.indexes[e.overscaledZ]={}),this.indexes[e.overscaledZ][e.key]=new YD(e,t.symbolInstances,t.bucketInstanceId),!0}removeBucketCrossTileIDs(e,t){for(let n of t.getCrossTileIDsLists())for(let t of n)delete this.usedCrossTileIDs[e][t]}removeStaleBuckets(e){let t=!1;for(let n in this.indexes){let r=this.indexes[n];for(let i in r)e[r[i].bucketInstanceId]||(this.removeBucketCrossTileIDs(n,r[i]),delete r[i],t=!0)}return t}},QD=class{constructor(){this.layerIndexes={},this.crossTileIDs=new XD,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(e,t,n){let r=this.layerIndexes[e.id];r===void 0&&(r=this.layerIndexes[e.id]=new ZD);let i=!1,a={};r.handleWrapJump(n);for(let n of t){let t=n.getBucket(e);e.id===t?.layerIds[0]&&(t.bucketInstanceId||=(this.maxBucketInstanceId+=1,this.maxBucketInstanceId),r.addBucket(n.tileID,t,this.crossTileIDs)&&(i=!0),a[t.bucketInstanceId]=!0)}return r.removeStaleBuckets(a)&&(i=!0),i}pruneUnusedLayers(e){let t={};for(let n of e)t[n]=!0;for(let e in this.layerIndexes)t[e]||delete this.layerIndexes[e]}},$D=`#ifdef GL_ES
2
- precision mediump float;
3
- #else
4
- #if !defined(lowp)
5
- #define lowp
6
- #endif
7
- #if !defined(mediump)
8
- #define mediump
9
- #endif
10
- #if !defined(highp)
11
- #define highp
12
- #endif
13
- #endif
14
- out highp vec4 fragColor;layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,eO=`#ifdef GL_ES
15
- precision highp float;
16
- #else
17
- #if !defined(lowp)
18
- #define lowp
19
- #endif
20
- #if !defined(mediump)
21
- #define mediump
22
- #endif
23
- #if !defined(highp)
24
- #define highp
25
- #endif
26
- #endif
27
- vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const uint packedOpacity) {return vec2(float(packedOpacity >> 1u)/127.0,float(packedOpacity & 1u));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
28
- );}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c
29
- );}
30
- #ifdef TERRAIN3D
31
- uniform sampler2D u_terrain;uniform highp sampler2D u_depth;layout(std140) uniform TerrainUBO {highp mat4 u_terrain_matrix;highp vec4 u_terrain_unpack;highp float u_terrain_dim;highp float u_terrain_exaggeration;};
32
- #endif
33
- const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {
34
- #ifdef TERRAIN3D
35
- highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
36
- #else
37
- return 1.0;
38
- #endif
39
- }float calculate_visibility(vec4 pos) {
40
- #ifdef TERRAIN3D
41
- vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;
42
- #else
43
- return 1.0;
44
- #endif
45
- }float ele(ivec2 pos) {
46
- #ifdef TERRAIN3D
47
- vec4 rgb=(texelFetch(u_terrain,pos,0)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
48
- #else
49
- return 0.0;
50
- #endif
51
- }float get_elevation(vec2 pos) {
52
- #ifdef TERRAIN3D
53
- #ifdef GLOBE
54
- if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
55
- #endif
56
- vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.5;vec2 f=fract(coord);ivec2 c=ivec2(floor(coord));ivec2 hi=textureSize(u_terrain,0)-1;float tl=ele(clamp(c,ivec2(0),hi));float tr=ele(clamp(c+ivec2(1,0),ivec2(0),hi));float bl=ele(clamp(c+ivec2(0,1),ivec2(0),hi));float br=ele(clamp(c+ivec2(1,1),ivec2(0),hi));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
57
- #else
58
- return 0.0;
59
- #endif
60
- }const float PI=3.141592653589793;
61
- #define PROJECTION_UBO
62
- layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,tO=`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
63
- #ifdef OVERDRAW_INSPECTOR
64
- fragColor=vec4(1.0);
65
- #endif
66
- }`,nO=`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`,rO=`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;
67
- #ifdef OVERDRAW_INSPECTOR
68
- fragColor=vec4(1.0);
69
- #endif
70
- }`,iO=`uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}`,aO=`in vec3 v_data;in float v_visibility;
71
- #pragma maplibre: define highp vec4 color
72
- #pragma maplibre: define mediump float radius
73
- #pragma maplibre: define lowp float blur
74
- #pragma maplibre: define lowp float opacity
75
- #pragma maplibre: define highp vec4 stroke_color
76
- #pragma maplibre: define mediump float stroke_width
77
- #pragma maplibre: define lowp float stroke_opacity
78
- void main() {
79
- #pragma maplibre: initialize highp vec4 color
80
- #pragma maplibre: initialize mediump float radius
81
- #pragma maplibre: initialize lowp float blur
82
- #pragma maplibre: initialize lowp float opacity
83
- #pragma maplibre: initialize highp vec4 stroke_color
84
- #pragma maplibre: initialize mediump float stroke_width
85
- #pragma maplibre: initialize lowp float stroke_opacity
86
- vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}
87
- #ifdef OVERDRAW_INSPECTOR
88
- fragColor=vec4(1.0);
89
- #endif
90
- }`,oO=`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform vec2 u_translate;layout(location=0) in ivec2 a_pos;out vec3 v_data;out float v_visibility;
91
- #pragma maplibre: define highp vec4 color
92
- #pragma maplibre: define mediump float radius
93
- #pragma maplibre: define lowp float blur
94
- #pragma maplibre: define lowp float opacity
95
- #pragma maplibre: define highp vec4 stroke_color
96
- #pragma maplibre: define mediump float stroke_width
97
- #pragma maplibre: define lowp float stroke_opacity
98
- void main(void) {
99
- #pragma maplibre: initialize highp vec4 color
100
- #pragma maplibre: initialize mediump float radius
101
- #pragma maplibre: initialize lowp float blur
102
- #pragma maplibre: initialize lowp float opacity
103
- #pragma maplibre: initialize highp vec4 stroke_color
104
- #pragma maplibre: initialize mediump float stroke_width
105
- #pragma maplibre: initialize lowp float stroke_opacity
106
- ivec2 pos_raw=a_pos+32768;vec2 extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;vec2 circle_center=vec2(pos_raw >> 3)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
107
- #ifdef GLOBE
108
- vec3 center_vector=projectToSphere(circle_center);
109
- #endif
110
- float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {
111
- #ifdef GLOBE
112
- vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
113
- #else
114
- vec4 projected_center=projectTileWithElevation(circle_center,ele);
115
- #endif
116
- corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}
117
- #ifdef GLOBE
118
- vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
119
- #else
120
- gl_Position=projectTileWithElevation(corner_position,ele);
121
- #endif
122
- } else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`,sO=`void main() {fragColor=vec4(1.0);}`,cO={prelude:lO($D,eO),projectionMercator:lO(`
123
- void clipAntimeridian() {}`,`float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}`),projectionGlobe:lO(`in highp float v_projection_tile_x;void clipAntimeridian() {if (u_projection_clip_antimeridian !=0 && (v_projection_tile_x < 0.0 || v_projection_tile_x >=8192.0)) {discard;}}`,`#define GLOBE_RADIUS 6371008.8
124
- #ifndef PROJECTION_UBO
125
- uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;
126
- #endif
127
- out highp float v_projection_tile_x;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos
128
- );}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float t=exp(PI-(mercator_pos_y*PI*2.0));return (2.0*t)/(t*t+1.0);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;float spherical_x=mercator_pos.x*PI*2.0+PI;float t=exp(PI-(mercator_pos.y*PI*2.0));float t2=t*t;float denom=t2+1.0;float sin_sy=(t2-1.0)/denom;float cos_sy=(2.0*t)/denom;vec3 pos=vec3(sin(spherical_x)*cos_sy,sin_sy,cos(spherical_x)*cos_sy
129
- );if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:lO(tO,nO),backgroundPattern:lO(rO,iO),circle:lO(aO,oO),clippingMask:lO(sO,`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`),heatmap:lO(`uniform highp float u_intensity;in vec2 v_extrude;
130
- #pragma maplibre: define highp float weight
131
- #define GAUSS_COEF 0.3989422804014327
132
- void main() {
133
- #pragma maplibre: initialize highp float weight
134
- float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);
135
- #ifdef OVERDRAW_INSPECTOR
136
- fragColor=vec4(1.0);
137
- #endif
138
- }`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;layout(location=0) in ivec2 a_pos;out vec2 v_extrude;
139
- #pragma maplibre: define highp float weight
140
- #pragma maplibre: define mediump float radius
141
- const highp float ZERO=1.0/255.0/16.0;
142
- #define GAUSS_COEF 0.3989422804014327
143
- void main(void) {
144
- #pragma maplibre: initialize highp float weight
145
- #pragma maplibre: initialize mediump float radius
146
- ivec2 pos_raw=a_pos+32768;vec2 unscaled_extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=vec2(pos_raw >> 3);
147
- #ifdef GLOBE
148
- vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);
149
- #else
150
- gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
151
- #endif
152
- }`),heatmapTexture:lO(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;
153
- #ifdef OVERDRAW_INSPECTOR
154
- fragColor=vec4(0.0);
155
- #endif
156
- }`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world_size,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),collisionBox:lO(`in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}`,`layout(location=0) in vec2 a_anchor_pos;layout(location=1) in vec2 a_placed;layout(location=2) in vec2 a_box_real;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:lO(`in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}`,`layout(location=0) in vec2 a_pos;layout(location=1) in float a_radius;layout(location=2) in vec2 a_flags;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),colorRelief:lO(`#ifdef GL_ES
157
- precision highp float;
158
- #endif
159
- uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {vec4 data=texelFetch(u_elevation_stops,ivec2(stop,0),0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else
160
- {l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0));
161
- #ifdef OVERDRAW_INSPECTOR
162
- fragColor=vec4(1.0);
163
- #endif
164
- }`,`uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=2.0/u_dimension;float scale=(u_dimension.x-4.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),debug:lO(`uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}`,`layout(location=0) in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}`),depth:lO(sO,`layout(location=0) in vec2 a_pos;void main() {
165
- #ifdef GLOBE
166
- gl_Position=projectTileFor3D(a_pos,0.0);
167
- #else
168
- gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
169
- #endif
170
- }`),fill:lO(`#pragma maplibre: define highp vec4 color
171
- #pragma maplibre: define lowp float opacity
172
- void main() {
173
- #pragma maplibre: initialize highp vec4 color
174
- #pragma maplibre: initialize lowp float opacity
175
- fragColor=color*opacity;
176
- #ifdef OVERDRAW_INSPECTOR
177
- fragColor=vec4(1.0);
178
- #endif
179
- }`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;
180
- #pragma maplibre: define highp vec4 color
181
- #pragma maplibre: define lowp float opacity
182
- void main() {
183
- #pragma maplibre: initialize highp vec4 color
184
- #pragma maplibre: initialize lowp float opacity
185
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:lO(`in vec2 v_pos;
186
- #ifdef GLOBE
187
- in float v_depth;
188
- #endif
189
- #pragma maplibre: define highp vec4 outline_color
190
- #pragma maplibre: define lowp float opacity
191
- void main() {
192
- #pragma maplibre: initialize highp vec4 outline_color
193
- #pragma maplibre: initialize lowp float opacity
194
- float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
195
- #ifdef GLOBE
196
- if (v_depth > 1.0) {discard;}
197
- #endif
198
- #ifdef OVERDRAW_INSPECTOR
199
- fragColor=vec4(1.0);
200
- #endif
201
- }`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos;
202
- #ifdef GLOBE
203
- out float v_depth;
204
- #endif
205
- #pragma maplibre: define highp vec4 outline_color
206
- #pragma maplibre: define lowp float opacity
207
- void main() {
208
- #pragma maplibre: initialize highp vec4 outline_color
209
- #pragma maplibre: initialize lowp float opacity
210
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
211
- #ifdef GLOBE
212
- v_depth=gl_Position.z/gl_Position.w;
213
- #endif
214
- }`),fillOutlinePattern:lO(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;uniform bool u_sdf_pattern;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
215
- #ifdef GLOBE
216
- in float v_depth;
217
- #endif
218
- #pragma maplibre: define lowp float opacity
219
- #pragma maplibre: define highp vec4 color
220
- #pragma maplibre: define lowp vec4 pattern_from
221
- #pragma maplibre: define lowp vec4 pattern_to
222
- void main() {
223
- #pragma maplibre: initialize lowp float opacity
224
- #pragma maplibre: initialize highp vec4 color
225
- #pragma maplibre: initialize mediump vec4 pattern_from
226
- #pragma maplibre: initialize mediump vec4 pattern_to
227
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*alpha*opacity;} else {fragColor=mix(color1,color2,u_fade)*alpha*opacity;}
228
- #ifdef GLOBE
229
- if (v_depth > 1.0) {discard;}
230
- #endif
231
- #ifdef OVERDRAW_INSPECTOR
232
- fragColor=vec4(1.0);
233
- #endif
234
- }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
235
- #ifdef GLOBE
236
- out float v_depth;
237
- #endif
238
- #pragma maplibre: define lowp float opacity
239
- #pragma maplibre: define highp vec4 color
240
- #pragma maplibre: define lowp vec4 pattern_from
241
- #pragma maplibre: define lowp vec4 pattern_to
242
- #pragma maplibre: define lowp float pixel_ratio_from
243
- #pragma maplibre: define lowp float pixel_ratio_to
244
- void main() {
245
- #pragma maplibre: initialize lowp float opacity
246
- #pragma maplibre: initialize highp vec4 color
247
- #pragma maplibre: initialize mediump vec4 pattern_from
248
- #pragma maplibre: initialize mediump vec4 pattern_to
249
- #pragma maplibre: initialize lowp float pixel_ratio_from
250
- #pragma maplibre: initialize lowp float pixel_ratio_to
251
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
252
- #ifdef GLOBE
253
- v_depth=gl_Position.z/gl_Position.w;
254
- #endif
255
- }`),fillPattern:lO(`#ifdef GL_ES
256
- precision highp float;
257
- #endif
258
- uniform vec2 u_texsize;uniform float u_fade;uniform bool u_sdf_pattern;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
259
- #pragma maplibre: define lowp float opacity
260
- #pragma maplibre: define highp vec4 color
261
- #pragma maplibre: define lowp vec4 pattern_from
262
- #pragma maplibre: define lowp vec4 pattern_to
263
- void main() {
264
- #pragma maplibre: initialize lowp float opacity
265
- #pragma maplibre: initialize highp vec4 color
266
- #pragma maplibre: initialize mediump vec4 pattern_from
267
- #pragma maplibre: initialize mediump vec4 pattern_to
268
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*opacity;} else {fragColor=mix(color1,color2,u_fade)*opacity;}
269
- #ifdef OVERDRAW_INSPECTOR
270
- fragColor=vec4(1.0);
271
- #endif
272
- }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
273
- #pragma maplibre: define lowp float opacity
274
- #pragma maplibre: define highp vec4 color
275
- #pragma maplibre: define lowp vec4 pattern_from
276
- #pragma maplibre: define lowp vec4 pattern_to
277
- #pragma maplibre: define lowp float pixel_ratio_from
278
- #pragma maplibre: define lowp float pixel_ratio_to
279
- void main() {
280
- #pragma maplibre: initialize lowp float opacity
281
- #pragma maplibre: initialize highp vec4 color
282
- #pragma maplibre: initialize mediump vec4 pattern_from
283
- #pragma maplibre: initialize mediump vec4 pattern_to
284
- #pragma maplibre: initialize lowp float pixel_ratio_from
285
- #pragma maplibre: initialize lowp float pixel_ratio_to
286
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:lO(`in vec4 v_color;void main() {fragColor=v_color;
287
- #ifdef OVERDRAW_INSPECTOR
288
- fragColor=vec4(1.0);
289
- #endif
290
- }`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
291
- #ifdef TERRAIN3D
292
- layout(location=2) in vec2 a_centroid;
293
- #endif
294
- out vec4 v_color;
295
- #pragma maplibre: define highp float base
296
- #pragma maplibre: define highp float height
297
- #pragma maplibre: define highp vec4 color
298
- void main() {
299
- #pragma maplibre: initialize highp float base
300
- #pragma maplibre: initialize highp float height
301
- #pragma maplibre: initialize highp vec4 color
302
- vec3 normal=vec3(a_normal_ed.xyz);float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
303
- #ifdef TERRAIN3D
304
- float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
305
- #else
306
- float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
307
- #endif
308
- base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
309
- #ifdef GLOBE
310
- vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
311
- #else
312
- gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
313
- #endif
314
- float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);
315
- #ifdef GLOBE
316
- mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
317
- #endif
318
- directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:lO(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;
319
- #pragma maplibre: define lowp float base
320
- #pragma maplibre: define lowp float height
321
- #pragma maplibre: define lowp vec4 pattern_from
322
- #pragma maplibre: define lowp vec4 pattern_to
323
- #pragma maplibre: define lowp float pixel_ratio_from
324
- #pragma maplibre: define lowp float pixel_ratio_to
325
- void main() {
326
- #pragma maplibre: initialize lowp float base
327
- #pragma maplibre: initialize lowp float height
328
- #pragma maplibre: initialize mediump vec4 pattern_from
329
- #pragma maplibre: initialize mediump vec4 pattern_to
330
- #pragma maplibre: initialize lowp float pixel_ratio_from
331
- #pragma maplibre: initialize lowp float pixel_ratio_to
332
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;
333
- #ifdef OVERDRAW_INSPECTOR
334
- fragColor=vec4(1.0);
335
- #endif
336
- }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
337
- #ifdef TERRAIN3D
338
- layout(location=2) in vec2 a_centroid;
339
- #endif
340
- #ifdef GLOBE
341
- out vec3 v_sphere_pos;
342
- #endif
343
- out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
344
- #pragma maplibre: define lowp float base
345
- #pragma maplibre: define lowp float height
346
- #pragma maplibre: define lowp vec4 pattern_from
347
- #pragma maplibre: define lowp vec4 pattern_to
348
- #pragma maplibre: define lowp float pixel_ratio_from
349
- #pragma maplibre: define lowp float pixel_ratio_to
350
- void main() {
351
- #pragma maplibre: initialize lowp float base
352
- #pragma maplibre: initialize lowp float height
353
- #pragma maplibre: initialize mediump vec4 pattern_from
354
- #pragma maplibre: initialize mediump vec4 pattern_to
355
- #pragma maplibre: initialize lowp float pixel_ratio_from
356
- #pragma maplibre: initialize lowp float pixel_ratio_to
357
- vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=vec3(a_normal_ed.xyz);float edgedistance=float(a_normal_ed.w);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
358
- #ifdef TERRAIN3D
359
- float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
360
- #else
361
- float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
362
- #endif
363
- base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
364
- #ifdef GLOBE
365
- vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
366
- #else
367
- gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
368
- #endif
369
- vec2 pos=a_normal_ed.x==1 && a_normal_ed.y==0 && a_normal_ed.z==16384
370
- ? a_pos
371
- : vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:lO(`#ifdef GL_ES
372
- precision highp float;
373
- #endif
374
- uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(ivec2 texel) {vec4 data=texelFetch(u_image,texel,0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {ivec2 pos=ivec2(gl_FragCoord.xy)+ivec2(1);float tileSize=u_dimension.x-4.0;float a=getElevation(pos+ivec2(-1,-1));float b=getElevation(pos+ivec2(0,-1));float c=getElevation(pos+ivec2(1,-1));float d=getElevation(pos+ivec2(-1,0));float e=getElevation(pos);float f=getElevation(pos+ivec2(1,0));float g=getElevation(pos+ivec2(-1,1));float h=getElevation(pos+ivec2(0,1));float i=getElevation(pos+ivec2(1,1));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+128.0/255.0,deriv.y/8.0+128.0/255.0,1.0,1.0),0.0,1.0);
375
- #ifdef OVERDRAW_INSPECTOR
376
- fragColor=vec4(1.0);
377
- #endif
378
- }`,`uniform mat4 u_matrix;uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;layout(location=1) in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}`),hillshade:lO(`uniform sampler2D u_image;in highp vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES];
379
- #define PI 3.141592653589793
380
- #define STANDARD 0
381
- #define COMBINED 1
382
- #define IGOR 2
383
- #define MULTIDIRECTIONAL 3
384
- #define BASIC 4
385
- float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else
386
- {fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else
387
- {fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {highp vec2 size=vec2(textureSize(u_image,0));highp vec2 texturePos=(v_pos*(size-2.0)+1.0)/size;vec4 pixel=texture(u_image,texturePos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=(pixel.rg-128.0/255.0)*8.0/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);}
388
- #ifdef OVERDRAW_INSPECTOR
389
- fragColor=vec4(1.0);
390
- #endif
391
- }`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),line:lO(`in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
392
- #ifdef GLOBE
393
- in float v_depth;
394
- #endif
395
- #pragma maplibre: define highp vec4 color
396
- #pragma maplibre: define lowp float blur
397
- #pragma maplibre: define lowp float opacity
398
- void main() {
399
- #pragma maplibre: initialize highp vec4 color
400
- #pragma maplibre: initialize lowp float blur
401
- #pragma maplibre: initialize lowp float opacity
402
- clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);fragColor=color*(alpha*opacity);
403
- #ifdef GLOBE
404
- if (v_depth > 1.0) {discard;}
405
- #endif
406
- #ifdef OVERDRAW_INSPECTOR
407
- fragColor=vec4(1.0);
408
- #endif
409
- }`,`
410
- #define scale 0.015873016
411
- layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
412
- #ifdef GLOBE
413
- out float v_depth;
414
- #endif
415
- #pragma maplibre: define highp vec4 color
416
- #pragma maplibre: define lowp float blur
417
- #pragma maplibre: define lowp float opacity
418
- #pragma maplibre: define mediump float gapwidth
419
- #pragma maplibre: define lowp float offset
420
- #pragma maplibre: define mediump float width
421
- void main() {
422
- #pragma maplibre: initialize highp vec4 color
423
- #pragma maplibre: initialize lowp float blur
424
- #pragma maplibre: initialize lowp float opacity
425
- #pragma maplibre: initialize mediump float gapwidth
426
- #pragma maplibre: initialize lowp float offset
427
- #pragma maplibre: initialize mediump float width
428
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);v_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*2.0;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
429
- #ifdef GLOBE
430
- v_depth=gl_Position.z/gl_Position.w;
431
- #endif
432
- #ifdef TERRAIN3D
433
- v_gamma_scale=1.0;
434
- #else
435
- float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
436
- #endif
437
- v_width2=vec2(outset,inset);}`),lineGradient:lO(`uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
438
- #ifdef GLOBE
439
- in float v_depth;
440
- #endif
441
- #pragma maplibre: define lowp float blur
442
- #pragma maplibre: define lowp float opacity
443
- void main() {
444
- #pragma maplibre: initialize lowp float blur
445
- #pragma maplibre: initialize lowp float opacity
446
- clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity);
447
- #ifdef GLOBE
448
- if (v_depth > 1.0) {discard;}
449
- #endif
450
- #ifdef OVERDRAW_INSPECTOR
451
- fragColor=vec4(1.0);
452
- #endif
453
- }`,`
454
- #define scale 0.015873016
455
- layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
456
- #ifdef GLOBE
457
- out float v_depth;
458
- #endif
459
- #pragma maplibre: define lowp float blur
460
- #pragma maplibre: define lowp float opacity
461
- #pragma maplibre: define mediump float gapwidth
462
- #pragma maplibre: define lowp float offset
463
- #pragma maplibre: define mediump float width
464
- void main() {
465
- #pragma maplibre: initialize lowp float blur
466
- #pragma maplibre: initialize lowp float opacity
467
- #pragma maplibre: initialize mediump float gapwidth
468
- #pragma maplibre: initialize lowp float offset
469
- #pragma maplibre: initialize mediump float width
470
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
471
- #ifdef GLOBE
472
- v_depth=gl_Position.z/gl_Position.w;
473
- #endif
474
- #ifdef TERRAIN3D
475
- v_gamma_scale=1.0;
476
- #else
477
- float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
478
- #endif
479
- v_width2=vec2(outset,inset);}`),linePattern:lO(`#ifdef GL_ES
480
- precision highp float;
481
- #endif
482
- uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width;
483
- #ifdef GLOBE
484
- in float v_depth;
485
- #endif
486
- #pragma maplibre: define lowp vec4 pattern_from
487
- #pragma maplibre: define lowp vec4 pattern_to
488
- #pragma maplibre: define lowp float pixel_ratio_from
489
- #pragma maplibre: define lowp float pixel_ratio_to
490
- #pragma maplibre: define lowp float blur
491
- #pragma maplibre: define lowp float opacity
492
- void main() {
493
- #pragma maplibre: initialize mediump vec4 pattern_from
494
- #pragma maplibre: initialize mediump vec4 pattern_to
495
- #pragma maplibre: initialize lowp float pixel_ratio_from
496
- #pragma maplibre: initialize lowp float pixel_ratio_to
497
- #pragma maplibre: initialize lowp float blur
498
- #pragma maplibre: initialize lowp float opacity
499
- clipAntimeridian();vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;
500
- #ifdef GLOBE
501
- if (v_depth > 1.0) {discard;}
502
- #endif
503
- #ifdef OVERDRAW_INSPECTOR
504
- fragColor=vec4(1.0);
505
- #endif
506
- }`,`
507
- #define scale 0.015873016
508
- #define LINE_DISTANCE_SCALE 2.0
509
- layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;
510
- #ifdef GLOBE
511
- out float v_depth;
512
- #endif
513
- #pragma maplibre: define lowp float blur
514
- #pragma maplibre: define lowp float opacity
515
- #pragma maplibre: define lowp float offset
516
- #pragma maplibre: define mediump float gapwidth
517
- #pragma maplibre: define mediump float width
518
- #pragma maplibre: define lowp float floorwidth
519
- #pragma maplibre: define lowp vec4 pattern_from
520
- #pragma maplibre: define lowp vec4 pattern_to
521
- #pragma maplibre: define lowp float pixel_ratio_from
522
- #pragma maplibre: define lowp float pixel_ratio_to
523
- void main() {
524
- #pragma maplibre: initialize lowp float blur
525
- #pragma maplibre: initialize lowp float opacity
526
- #pragma maplibre: initialize lowp float offset
527
- #pragma maplibre: initialize mediump float gapwidth
528
- #pragma maplibre: initialize mediump float width
529
- #pragma maplibre: initialize lowp float floorwidth
530
- #pragma maplibre: initialize mediump vec4 pattern_from
531
- #pragma maplibre: initialize mediump vec4 pattern_to
532
- #pragma maplibre: initialize lowp float pixel_ratio_from
533
- #pragma maplibre: initialize lowp float pixel_ratio_to
534
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
535
- #ifdef GLOBE
536
- v_depth=gl_Position.z/gl_Position.w;
537
- #endif
538
- #ifdef TERRAIN3D
539
- v_gamma_scale=1.0;
540
- #else
541
- float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
542
- #endif
543
- v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:lO(`uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;
544
- #ifdef GLOBE
545
- in float v_depth;
546
- #endif
547
- #pragma maplibre: define highp vec4 color
548
- #pragma maplibre: define lowp float blur
549
- #pragma maplibre: define lowp float opacity
550
- #pragma maplibre: define mediump float width
551
- #pragma maplibre: define lowp float floorwidth
552
- #pragma maplibre: define mediump vec4 dasharray_from
553
- #pragma maplibre: define mediump vec4 dasharray_to
554
- void main() {
555
- #pragma maplibre: initialize highp vec4 color
556
- #pragma maplibre: initialize lowp float blur
557
- #pragma maplibre: initialize lowp float opacity
558
- #pragma maplibre: initialize mediump float width
559
- #pragma maplibre: initialize lowp float floorwidth
560
- #pragma maplibre: initialize mediump vec4 dasharray_from
561
- #pragma maplibre: initialize mediump vec4 dasharray_to
562
- clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
563
- #ifdef GLOBE
564
- if (v_depth > 1.0) {discard;}
565
- #endif
566
- #ifdef OVERDRAW_INSPECTOR
567
- fragColor=vec4(1.0);
568
- #endif
569
- }`,`
570
- #define scale 0.015873016
571
- #define LINE_DISTANCE_SCALE 2.0
572
- layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
573
- #ifdef GLOBE
574
- out float v_depth;
575
- #endif
576
- #pragma maplibre: define highp vec4 color
577
- #pragma maplibre: define lowp float blur
578
- #pragma maplibre: define lowp float opacity
579
- #pragma maplibre: define mediump float gapwidth
580
- #pragma maplibre: define lowp float offset
581
- #pragma maplibre: define mediump float width
582
- #pragma maplibre: define lowp float floorwidth
583
- #pragma maplibre: define mediump vec4 dasharray_from
584
- #pragma maplibre: define mediump vec4 dasharray_to
585
- void main() {
586
- #pragma maplibre: initialize highp vec4 color
587
- #pragma maplibre: initialize lowp float blur
588
- #pragma maplibre: initialize lowp float opacity
589
- #pragma maplibre: initialize mediump float gapwidth
590
- #pragma maplibre: initialize lowp float offset
591
- #pragma maplibre: initialize mediump float width
592
- #pragma maplibre: initialize lowp float floorwidth
593
- #pragma maplibre: initialize mediump vec4 dasharray_from
594
- #pragma maplibre: initialize mediump vec4 dasharray_to
595
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
596
- #ifdef GLOBE
597
- v_depth=gl_Position.z/gl_Position.w;
598
- #endif
599
- #ifdef TERRAIN3D
600
- v_gamma_scale=1.0;
601
- #else
602
- float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
603
- #endif
604
- float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:lO(`uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv;
605
- #ifdef GLOBE
606
- in float v_depth;
607
- #endif
608
- #pragma maplibre: define lowp float blur
609
- #pragma maplibre: define lowp float opacity
610
- #pragma maplibre: define mediump float width
611
- #pragma maplibre: define lowp float floorwidth
612
- #pragma maplibre: define mediump vec4 dasharray_from
613
- #pragma maplibre: define mediump vec4 dasharray_to
614
- void main() {
615
- #pragma maplibre: initialize lowp float blur
616
- #pragma maplibre: initialize lowp float opacity
617
- #pragma maplibre: initialize mediump float width
618
- #pragma maplibre: initialize lowp float floorwidth
619
- #pragma maplibre: initialize mediump vec4 dasharray_from
620
- #pragma maplibre: initialize mediump vec4 dasharray_to
621
- clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity);
622
- #ifdef GLOBE
623
- if (v_depth > 1.0) {discard;}
624
- #endif
625
- #ifdef OVERDRAW_INSPECTOR
626
- fragColor=vec4(1.0);
627
- #endif
628
- }`,`
629
- #define scale 0.015873016
630
- #define LINE_DISTANCE_SCALE 2.0
631
- layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b;
632
- #ifdef GLOBE
633
- out float v_depth;
634
- #endif
635
- #pragma maplibre: define lowp float blur
636
- #pragma maplibre: define lowp float opacity
637
- #pragma maplibre: define mediump float gapwidth
638
- #pragma maplibre: define lowp float offset
639
- #pragma maplibre: define mediump float width
640
- #pragma maplibre: define lowp float floorwidth
641
- #pragma maplibre: define mediump vec4 dasharray_from
642
- #pragma maplibre: define mediump vec4 dasharray_to
643
- void main() {
644
- #pragma maplibre: initialize lowp float blur
645
- #pragma maplibre: initialize lowp float opacity
646
- #pragma maplibre: initialize mediump float gapwidth
647
- #pragma maplibre: initialize lowp float offset
648
- #pragma maplibre: initialize mediump float width
649
- #pragma maplibre: initialize lowp float floorwidth
650
- #pragma maplibre: initialize mediump vec4 dasharray_from
651
- #pragma maplibre: initialize mediump vec4 dasharray_to
652
- if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;float texel_height=1.0/u_image_height;float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
653
- #ifdef GLOBE
654
- v_depth=gl_Position.z/gl_Position.w;
655
- #endif
656
- #ifdef TERRAIN3D
657
- v_gamma_scale=1.0;
658
- #else
659
- float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
660
- #endif
661
- float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),layerOpacity:lO(`uniform sampler2D u_image;uniform float u_opacity;in vec2 v_pos;void main() {fragColor=texture(u_image,v_pos)*u_opacity;
662
- #ifdef OVERDRAW_INSPECTOR
663
- fragColor=vec4(0.0);
664
- #endif
665
- }`,`layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos.x*2.0-1.0,1.0-a_pos.y*2.0,0.0,1.0);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),raster:lO(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec3 v_pos0;in vec3 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0.xy/v_pos0.z);vec4 color1=texture(u_image1,v_pos1.xy/v_pos1.z);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
666
- #ifdef OVERDRAW_INSPECTOR
667
- fragColor=vec4(1.0);
668
- #endif
669
- }`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec3 u_image_warp;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;layout(location=0) in vec2 a_pos;out vec3 v_pos0;out vec3 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 topLeft=u_coords_top.xy;vec2 topRight=u_coords_top.zw;vec2 bottomLeft=u_coords_bottom.xy;vec2 bottomRight=u_coords_bottom.zw;vec2 bilinearPos=mix(mix(topLeft,topRight,fractionalPos.x),mix(bottomLeft,bottomRight,fractionalPos.x),fractionalPos.y);float denominator=dot(u_image_warp.xy,fractionalPos)+1.0;vec2 acrossTop=topRight-topLeft+u_image_warp.x*topRight;vec2 downLeft=bottomLeft-topLeft+u_image_warp.y*bottomLeft;vec2 projectivePos=(acrossTop*fractionalPos.x+downLeft*fractionalPos.y+topLeft)/denominator;vec2 position=mix(projectivePos,bilinearPos,u_image_warp.z);gl_Position=projectTile(position,position);vec2 texturePos=((fractionalPos-0.5)/u_buffer_scale)+0.5;
670
- #ifdef GLOBE
671
- if (a_pos.y <-32767.5) {texturePos.y=0.0;}if (a_pos.y > 32766.5) {texturePos.y=1.0;}
672
- #endif
673
- float perspectiveRatio=mix(1.0/denominator,1.0,u_image_warp.z);v_pos0=vec3(texturePos*perspectiveRatio,perspectiveRatio);vec2 parentPos=(texturePos*u_scale_parent)+u_tl_parent;v_pos1=vec3(parentPos*perspectiveRatio,perspectiveRatio);}`),symbolIcon:lO(`uniform sampler2D u_texture;in vec2 v_tex;in float v_total_opacity;void main() {fragColor=texture(u_texture,v_tex)*v_total_opacity;
674
- #ifdef OVERDRAW_INSPECTOR
675
- fragColor=vec4(1.0);
676
- #endif
677
- }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform bool u_rotate_symbol;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_tex;out float v_total_opacity;
678
- #pragma maplibre: define lowp float opacity
679
- void main() {
680
- #pragma maplibre: initialize lowp float opacity
681
- vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float visibility=calculate_visibility(projectedPoint);v_total_opacity=opacity*max(0.0,min(visibility,fade_opacity[0]+fade_change));if (v_total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
682
- camera_to_anchor_distance/u_camera_to_center_distance :
683
- u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
684
- #ifdef GLOBE
685
- if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
686
- #endif
687
- vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;}`),symbolSDF:lO(`#define SDF_PX 8.0
688
- uniform bool u_is_halo;uniform bool u_is_plain;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;
689
- #pragma maplibre: define highp vec4 fill_color
690
- #pragma maplibre: define highp vec4 halo_color
691
- #pragma maplibre: define lowp float halo_width
692
- #pragma maplibre: define lowp float halo_blur
693
- void main() {
694
- #pragma maplibre: initialize highp vec4 fill_color
695
- #pragma maplibre: initialize highp vec4 halo_color
696
- #pragma maplibre: initialize lowp float halo_width
697
- #pragma maplibre: initialize lowp float halo_blur
698
- float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float total_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out_text,color_alpha_out_halo;if (u_is_plain){highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);color_alpha_out_text=total_opacity*alpha*fill_color;}if (u_is_halo) {float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);float inner_edge_halo=inner_edge+gamma_halo*gamma_scale;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(inner_edge_halo-gamma_scaled_halo,inner_edge_halo+gamma_scaled_halo,dist);highp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha_halo= min(smoothstep(halo_edge-gamma_scaled_halo,halo_edge+gamma_scaled_halo,dist),1.0-alpha_halo);color_alpha_out_halo=total_opacity*alpha_halo*halo_color;}if (u_is_plain && u_is_halo) {fragColor=color_alpha_out_text+(1.-color_alpha_out_text.a)*color_alpha_out_halo;} else if (u_is_halo){fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out_text;}
699
- #ifdef OVERDRAW_INSPECTOR
700
- fragColor=vec4(1.0);
701
- #endif
702
- }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_data0;out vec3 v_data1;
703
- #pragma maplibre: define highp vec4 fill_color
704
- #pragma maplibre: define highp vec4 halo_color
705
- #pragma maplibre: define lowp float opacity
706
- #pragma maplibre: define lowp float halo_width
707
- #pragma maplibre: define lowp float halo_blur
708
- void main() {
709
- #pragma maplibre: initialize highp vec4 fill_color
710
- #pragma maplibre: initialize highp vec4 halo_color
711
- #pragma maplibre: initialize lowp float opacity
712
- #pragma maplibre: initialize lowp float halo_width
713
- #pragma maplibre: initialize lowp float halo_blur
714
- vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy/16.0;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
715
- camera_to_anchor_distance/u_camera_to_center_distance :
716
- u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
717
- #ifdef GLOBE
718
- if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
719
- #endif
720
- vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,total_opacity);}`),symbolTextAndIcon:lO(`#define SDF_PX 8.0
721
- #define SDF 1.0
722
- #define ICON 0.0
723
- uniform bool u_is_halo;uniform bool u_is_text;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;in vec4 v_data0;in vec3 v_data1;in float v_is_sdf;
724
- #pragma maplibre: define highp vec4 fill_color
725
- #pragma maplibre: define highp vec4 halo_color
726
- #pragma maplibre: define lowp float halo_width
727
- #pragma maplibre: define lowp float halo_blur
728
- void main() {
729
- #pragma maplibre: initialize highp vec4 fill_color
730
- #pragma maplibre: initialize highp vec4 halo_color
731
- #pragma maplibre: initialize lowp float halo_width
732
- #pragma maplibre: initialize lowp float halo_blur
733
- float total_opacity=v_data1[2];if (v_is_sdf==ICON) {vec2 tex_icon=v_data0.zw;fragColor=texture(u_texture_icon,tex_icon)*total_opacity;
734
- #ifdef OVERDRAW_INSPECTOR
735
- fragColor=vec4(1.0);
736
- #endif
737
- return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out,color_alpha_out_halo;if (u_is_text) {highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);color_alpha_out=fill_color*(alpha*total_opacity);}if (u_is_halo) {highp float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);lowp float buff_halo=(6.0-halo_width/fontScale)/SDF_PX;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(buff_halo-gamma_scaled_halo,buff_halo+gamma_scaled_halo,dist);color_alpha_out_halo=halo_color*(alpha_halo*total_opacity);}if (u_is_text && u_is_halo) {fragColor=color_alpha_out+(1.-color_alpha_out.a)*color_alpha_out_halo;} else if (u_is_halo) {fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out;}
738
- #ifdef OVERDRAW_INSPECTOR
739
- fragColor=vec4(1.0);
740
- #endif
741
- }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec3 a_projected_pos;layout(location=3) in uint a_fade_opacity;layout(location=4) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec4 v_data0;out vec3 v_data1;out float v_is_sdf;
742
- #pragma maplibre: define highp vec4 fill_color
743
- #pragma maplibre: define highp vec4 halo_color
744
- #pragma maplibre: define lowp float opacity
745
- #pragma maplibre: define lowp float halo_width
746
- #pragma maplibre: define lowp float halo_blur
747
- void main() {
748
- #pragma maplibre: initialize highp vec4 fill_color
749
- #pragma maplibre: initialize highp vec4 halo_color
750
- #pragma maplibre: initialize lowp float opacity
751
- #pragma maplibre: initialize lowp float halo_width
752
- #pragma maplibre: initialize lowp float halo_blur
753
- vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);float is_sdf=float(a_data.z & 1u);float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
754
- camera_to_anchor_distance/u_camera_to_center_distance :
755
- u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
756
- #ifdef GLOBE
757
- if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
758
- #endif
759
- vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec3(gamma_scale,size,total_opacity);v_is_sdf=is_sdf;}`),terrain:lO(`uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && u_fog_ground_blend_opacity > 0.0 && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}`,`layout(location=0) in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}`),terrainDepth:lO(`in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}`,`layout(location=0) in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}`),terrainHeight:lO(`in highp float v_elevation;void main() {fragColor=vec4(v_elevation,0.0,0.0,1.0);}`,`layout(location=0) in vec3 a_pos3d;uniform vec4 u_tile_bounds;out highp float v_elevation;void main() {v_elevation=get_elevation(a_pos3d.xy);vec2 position=u_tile_bounds.xy+a_pos3d.xy/8192.0*u_tile_bounds.zw;gl_Position=vec4(position.x*2.0-1.0,1.0-position.y*2.0,0.0,1.0);}`),atmosphere:lO(`#ifdef GL_ES
760
- precision highp float;
761
- #endif
762
- in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758
763
- );color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}`),sky:lO(`uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;in vec3 v_view_direction;const float ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS=100000.0/6371000.0;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;float opacity=1.0;if (u_sky_blend > 0.0) {vec3 ray=normalize(v_view_direction);float globe_distance=length(u_globe_position);float angle_to_globe_center=acos(clamp(dot(ray,u_globe_position)/globe_distance,-1.0,1.0));float horizon_angle=asin(min(u_globe_radius/globe_distance,1.0));blend=mix(blend,((angle_to_globe_center-horizon_angle)*u_camera_to_center_distance+1.0)*u_device_pixel_ratio,u_sky_blend);float closest_approach=max(dot(ray,u_globe_position),0.0);float lowest_altitude=sqrt(max(globe_distance*globe_distance-closest_approach*closest_approach,0.0))-u_globe_radius;float atmosphere_height=u_globe_radius*ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS;float inside_atmosphere=1.0-smoothstep(atmosphere_height,10.0*atmosphere_height,globe_distance-u_globe_radius);float through_atmosphere=1.0-smoothstep(0.0,atmosphere_height,lowest_altitude);opacity=inside_atmosphere*through_atmosphere*(1.0-u_atmosphere_blend);}if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor*=mix(1.0,opacity,u_sky_blend);}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 v_view_direction;void main() {v_view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,1.0,1.0);}`)};function lO(e,t){let n=/#pragma maplibre: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=t.match(/in ([\w]+) ([\w]+)/g),i=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),a=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=a?a.concat(i):i,s=r?r.length:0,c={};return e=e.replace(n,(e,t,n,r,i)=>(c[i]=!0,t===`define`?`
764
- #ifndef HAS_UNIFORM_u_${i}
765
- in ${n} ${r} ${i};
766
- #else
767
- uniform ${n} ${r} u_${i};
768
- #endif
769
- `:`
770
- #ifdef HAS_UNIFORM_u_${i}
771
- ${n} ${r} ${i} = u_${i};
772
- #endif
773
- `)),t=t.replace(n,(e,t,n,r,i)=>{let a=r===`float`?`vec2`:`vec4`,o=i.match(/color/)?`color`:a;return c[i]?t===`define`?`
774
- #ifndef HAS_UNIFORM_u_${i}
775
- uniform lowp float u_${i}_t;
776
- layout(location = ${s++}) in ${n} ${a} a_${i};
777
- out ${n} ${r} ${i};
778
- #else
779
- uniform ${n} ${r} u_${i};
780
- #endif
781
- `:o===`vec4`?`
782
- #ifndef HAS_UNIFORM_u_${i}
783
- ${i} = a_${i};
784
- #else
785
- ${n} ${r} ${i} = u_${i};
786
- #endif
787
- `:`
788
- #ifndef HAS_UNIFORM_u_${i}
789
- ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
790
- #else
791
- ${n} ${r} ${i} = u_${i};
792
- #endif
793
- `:t===`define`?`
794
- #ifndef HAS_UNIFORM_u_${i}
795
- uniform lowp float u_${i}_t;
796
- layout(location = ${s++}) in ${n} ${a} a_${i};
797
- #else
798
- uniform ${n} ${r} u_${i};
799
- #endif
800
- `:o===`vec4`?`
801
- #ifndef HAS_UNIFORM_u_${i}
802
- ${n} ${r} ${i} = a_${i};
803
- #else
804
- ${n} ${r} ${i} = u_${i};
805
- #endif
806
- `:`
807
- #ifndef HAS_UNIFORM_u_${i}
808
- ${n} ${r} ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
809
- #else
810
- ${n} ${r} ${i} = u_${i};
811
- #endif
812
- `}),{fragmentSource:e,vertexSource:t,staticAttributes:r,staticUniforms:o}}var uO=`#define PROJECTION_MERCATOR`,dO=`mercator`,fO=class{constructor(){this._cachedMesh=null}get name(){return`mercator`}get useSubdivision(){return!1}get shaderVariantName(){return dO}get shaderDefine(){return uO}get shaderPreludeCode(){return cO.projectionMercator}get vertexShaderPreludeCode(){return cO.projectionMercator.vertexSource}get subdivisionGranularity(){return Qp.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}destroy(){}getMeshFromTileID(e,t,n,r,i){if(this._cachedMesh)return this._cachedMesh;let a=new Ru;a.emplaceBack(0,0),a.emplaceBack(M,0),a.emplaceBack(0,M),a.emplaceBack(M,M);let o=e.createVertexBuffer(a,fx.members),s=od.simpleSegment(0,0,4,2),c=new td;c.emplaceBack(1,0,2),c.emplaceBack(1,2,3);let l=e.createIndexBuffer(c);return this._cachedMesh=new dx(o,l,s),this._cachedMesh}recalculate(){}hasTransition(){return!1}},pO=class e{constructor(e=0,t=0,n=0,r=0){if(isNaN(e)||e<0||isNaN(t)||t<0||isNaN(n)||n<0||isNaN(r)||r<0)throw Error(`Invalid value for edge-insets, top, bottom, left and right must all be numbers`);this.top=e,this.bottom=t,this.left=n,this.right=r}interpolate(e,t,n){return t.top!=null&&e.top!=null&&(this.top=ta.number(e.top,t.top,n)),t.bottom!=null&&e.bottom!=null&&(this.bottom=ta.number(e.bottom,t.bottom,n)),t.left!=null&&e.left!=null&&(this.left=ta.number(e.left,t.left,n)),t.right!=null&&e.right!=null&&(this.right=ta.number(e.right,t.right,n)),this}getCenter(e,t){return new b(N((this.left+e-this.right)/2,0,e),N((this.top+t-this.bottom)/2,0,t))}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new e(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}};function mO(e,t){if(!e.renderWorldCopies||e.lngRange)return;let n=t.lng-e.center.lng;t.lng+=n>180?-360:n<-180?360:0}function hO(e){return Math.max(0,Math.floor(e))}var gO=class{constructor(e,t){this.applyConstrain=(e,t)=>this._constrainOverride===null?this._callbacks.defaultConstrain(e,t):this._constrainOverride(e,t),this._callbacks=e,this._tileSize=512,this._renderWorldCopies=t?.renderWorldCopies===void 0||!!t?.renderWorldCopies,this._minZoom=t?.minZoom||0,this._maxZoom=t?.maxZoom||22,this._minPitch=t?.minPitch===void 0||t?.minPitch===null?0:t?.minPitch,this._maxPitch=t?.maxPitch===void 0||t?.maxPitch===null?60:t?.maxPitch,this._constrainOverride=t?.constrainOverride??null,this.setMaxBounds(),this._width=0,this._height=0,this._center=new Q(0,0),this._elevation=0,this._zoom=0,this._tileZoom=hO(this._zoom),this._scale=Vt(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new pO,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(e,t){this._constrainOverride=e.constrainOverride,this._latRange=e.latRange,this._lngRange=e.lngRange,this._width=e.width,this._height=e.height,this._center=e.center,this._elevation=e.elevation,this._minElevationForCurrentTile=e.minElevationForCurrentTile,this._zoom=e.zoom,this._tileZoom=hO(this._zoom),this._scale=Vt(this._zoom),this._bearingInRadians=e.bearingInRadians,this._fovInRadians=e.fovInRadians,this._pitchInRadians=e.pitchInRadians,this._rollInRadians=e.rollInRadians,this._unmodified=e.unmodified,this._edgeInsets=new pO(e.padding.top,e.padding.bottom,e.padding.left,e.padding.right),this._minZoom=e.minZoom,this._maxZoom=e.maxZoom,this._minPitch=e.minPitch,this._maxPitch=e.maxPitch,this._renderWorldCopies=e.renderWorldCopies,this._cameraToCenterDistance=e.cameraToCenterDistance,this._nearZ=e.nearZ,this._farZ=e.farZ,this._autoCalculateNearFarZ=e.autoCalculateNearFarZ,t&&this.constrainInternal(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(e){e!==this._minElevationForCurrentTile&&(this._minElevationForCurrentTile=e,this._calcMatrices())}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(e){if(this._minZoom===e)return;this._minZoom=e;let t=this._unmodified;this.setZoom(this.applyConstrain(this._center,this.zoom).zoom),this._unmodified=t}get maxZoom(){return this._maxZoom}setMaxZoom(e){if(this._maxZoom===e)return;this._maxZoom=e;let t=this._unmodified;this.setZoom(this.applyConstrain(this._center,this.zoom).zoom),this._unmodified=t}get minPitch(){return this._minPitch}setMinPitch(e){if(this._minPitch===e)return;this._minPitch=e;let t=this._unmodified;this.setPitch(Math.max(this.pitch,e)),this._unmodified=t}get maxPitch(){return this._maxPitch}setMaxPitch(e){if(this._maxPitch===e)return;this._maxPitch=e;let t=this._unmodified;this.setPitch(Math.min(this.pitch,e)),this._unmodified=t}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(e){e===void 0?e=!0:e===null&&(e=!1),this._renderWorldCopies=e}get constrainOverride(){return this._constrainOverride}setConstrainOverride(e){e===void 0&&(e=null),this._constrainOverride!==e&&(this._constrainOverride=e,this.constrainInternal(),this._calcMatrices())}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new b(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(e){let t=Ft(e,-180,180)*Math.PI/180;this._bearingInRadians!==t&&(this._unmodified=!1,this._bearingInRadians=t,this._calcMatrices(),this._rotationMatrix=D(),A(this._rotationMatrix,this._rotationMatrix,-this._bearingInRadians))}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(e){let t=N(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==t&&(this._unmodified=!1,this._pitchInRadians=t,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(e){let t=e/180*Math.PI;this._rollInRadians!==t&&(this._unmodified=!1,this._rollInRadians=t,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return dn(this._fovInRadians)}setFov(e){e=N(e,.1,150),this.fov!==e&&(this._unmodified=!1,this._fovInRadians=un(e),this._calcMatrices())}get zoom(){return this._zoom}setZoom(e){let t=this.applyConstrain(this._center,e).zoom;this._zoom!==t&&(this._unmodified=!1,this._zoom=t,this._tileZoom=Math.max(0,Math.floor(t)),this._scale=Vt(t),this.constrainInternal(),this._calcMatrices())}get center(){return this._center}setCenter(e){(e.lat!==this._center.lat||e.lng!==this._center.lng)&&(this._unmodified=!1,this._center=e,this.constrainInternal(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(e){e!==this._elevation&&(this._elevation=e,this.constrainInternal(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,1),this.constrainInternal(),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(e,t){this._autoCalculateNearFarZ=!1,this._nearZ=e,this._farZ=t,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,t,n){this._unmodified=!1,this._edgeInsets.interpolate(e,t,n),this.constrainInternal(),this._calcMatrices()}resize(e,t,n=!0){this._width=e,this._height=t,n&&this.constrainInternal(),this._calcMatrices()}getMaxBounds(){return this._latRange?.length!==2||this._lngRange?.length!==2?null:new kb([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]])}setMaxBounds(e){e?(this._lngRange=[e.getWest(),e.getEast()],this._latRange=[e.getSouth(),e.getNorth()],this.constrainInternal()):(this._lngRange=null,this._latRange=[-85.051129,gn])}getCameraQueryGeometry(e,t){if(t.length===1)return[t[0],e];{let{minX:n,minY:r,maxX:i,maxY:a}=wm.fromPoints(t).extend(e);return[new b(n,r),new b(i,r),new b(i,a),new b(n,a),new b(n,r)]}}constrainInternal(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;let e=this._unmodified,{center:t,zoom:n}=this.applyConstrain(this.center,this.zoom);this.setCenter(t),this.setZoom(n),this._unmodified=e,this._constraining=!1}_calcMatrices(){if(this._pixelPerMeter=zm(1,this.center.lat)*this.worldSize,!this._width||!this._height)return;this._pixelsToGLUnits=[2/this._width,-2/this._height];let e=se(new Float64Array(16));de(e,e,[this._width/2,-this._height/2,1]),ue(e,e,[1,-1,0]),this._clipSpaceToPixelsMatrix=e,e=se(new Float64Array(16)),de(e,e,[1,-1,1]),ue(e,e,[-1,-1,0]),de(e,e,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=e;let t=this.fovInRadians/2;this._cameraToCenterDistance=.5/Math.tan(t)*this._height,this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(e,t,n,r){let i=n===void 0?this.bearing:n,a=r=r===void 0?this.pitch:r,{distanceToCenter:o,clampedElevation:s}=this._distanceToCenterFromAltElevationPitch(t,this.elevation,a),{x:c,y:l}=eh(a,i),u=Wm.fromLngLat(e,t),{centerMercator:d,dMercator:f}=this._centerAlongView(u,c,l,o,Hm(1,u.y));return{center:d.toLngLat(),elevation:s,zoom:Ht(this.height/2/Math.tan(this.fovInRadians/2)/f/this.tileSize)}}recalculateZoomAndCenter(e){if(this.elevation-e===0)return;let t=this.pitch,n=this.bearing,{x:r,y:i,z:a}=eh(t,n),o=Wm.fromLngLat(this.center,this.elevation),s=1/zm(1,this.center.lat),c=this.cameraToCenterDistance/this.worldSize,l=new Wm(o.x-r*c,o.y-i*c,o.z+a*c),{distanceToCenter:u,clampedElevation:d}=this._distanceToCenterFromAltElevationPitch(l.z*s,e,t),{centerMercator:f,dMercator:p}=this._centerAlongView(l,r,i,u,s),m=f.toLngLat(),h=Ht(this.cameraToCenterDistance/p/this.tileSize);this._elevation=d,this._center=m;let g=this._zoom;this.setZoom(h),this._zoom===g&&(this._unmodified=!1,this.constrainInternal(),this._calcMatrices())}_centerAlongView(e,t,n,r,i){let a=r/i,o=new Wm(e.x+t*a,e.y+n*a),s=1/0;for(let c=1;c<10;c++){let c=1/o.meterInMercatorCoordinateUnits(),l=Math.abs(c-i);if(l<=1e-12*i||l>=s)break;s=l,i=c,a=r/i,o=new Wm(e.x+t*a,e.y+n*a)}return{centerMercator:o,dMercator:a}}_distanceToCenterFromAltElevationPitch(e,t,n){let r=-Math.cos(un(n)),i=e-t,a,o=t;return r*i>=0||Math.abs(r)<Math.cos(un(89.25))?(a=1e4,o=e+a*r):a=-i/r,{distanceToCenter:a,clampedElevation:o}}getCameraPoint(){let e=this.pitchInRadians,t=Math.tan(e)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new b(t*Math.sin(this.rollInRadians),t*Math.cos(this.rollInRadians)))}getMercatorTileCoordinates(e){if(!e)return[0,0,1,1];let t=e.canonical.z>=0?1<<e.canonical.z:2**e.canonical.z;return[e.canonical.x/t,e.canonical.y/t,1/t/M,1/t/M]}},_O=class{getCenter(e){return e.center}distanceToTile2d(e,t,n,r){let i=r,a=i.distanceX([e,t]),o=i.distanceY([e,t]);return Math.hypot(a,o)}getWrap(e,t,n){return n}getTileBoundingVolume(e,t,n,r){let i=Math.min(0,n),a=Math.max(0,n);if(r?.terrain){let n=new Lb(e.z,t,e.z,e.x,e.y),o=r.terrain.getMinMaxElevation(n);i=o.minElevation??i,a=o.maxElevation??a}let o=1<<e.z;return new vE([t+e.x/o,e.y/o,i],[t+(e.x+1)/o,(e.y+1)/o,a])}allowVariableZoom(e,t){let n=N(78.5-e.fov*(Math.abs(Math.cos(e.rollInRadians))*e.height+Math.abs(Math.sin(e.rollInRadians))*e.width)/e.height/2,0,60);return!!t.terrain||e.pitch>n}allowWorldCopies(){return!0}prepareNextFrame(){}},vO=M*(1-1e-12),yO=-.5,bO={covered:!1,demLoaded:!1,elevation:0},xO=class{constructor(e,t){this.tileManager=e,this.exaggeration=t,this._samplerCache=new Map}reset(){this._samplerCache.clear(),this._index=void 0,this._ownDemIndex=void 0}getIndex(e=!1){return e?(this._ownDemIndex===void 0&&(this._ownDemIndex=this._build(!0)),this._ownDemIndex):(this._index===void 0&&(this._index=this._build(!1)),this._index)}sample(e,t=!1){let n=this.getIndex(t);if(!n)return;let r=Wm.fromLngLat(e),i=SO(n,this.exaggeration,r.x,r.y);return i.demLoaded?i.elevation:void 0}getSampler(e){let t=e.key,n=this._samplerCache.get(t);if(n)return n;let r=this._createElevationSampler(e);return r&&this._samplerCache.set(t,r),r}_createElevationSampler(e){let t=this.tileManager.getSourceTile(e,!0),n=t?.dem;if(!t||!n)return null;let r=e.canonical.z-t.tileID.canonical.z,i=1<<r,a=n.dim/(M*i),o=(e.canonical.x-(e.canonical.x>>r<<r))/i*n.dim+yO,s=(e.canonical.y-(e.canonical.y>>r<<r))/i*n.dim+yO;return(e,t,r)=>{let i=r===8192?1:M/r;return n.sampleBilinear(e*i*a+o,t*i*a+s)}}_build(e){let{tileManager:t}=this,n=[],r=new Map,i=0,a=0;for(let o of t.getRenderableTiles()){if(!o)continue;let{canonical:s,wrap:c}=o.tileID;n.includes(s.z)||n.push(s.z);let l=e&&!t.getSourceTile(o.tileID)?.dem?null:this.getSampler(o.tileID);r.set(`${c}/${s.z}/${s.x}/${s.y}`,l);let u=t.getSourceTile(o.tileID,!0)?.dem;i=Math.min(i,(u?.min??0)*this.exaggeration),a=Math.max(a,(u?.max??0)*this.exaggeration)}return r.size===0?null:(n.sort((e,t)=>t-e),{zooms:n,samplerPerTile:r,minElevation:i-10,maxElevation:a+10})}};function SO(e,t,n,r){if(r<0||r>=1)return bO;let i=Math.floor(n),a=n-i;for(let n of e.zooms){let o=1<<n,s=a*o,c=r*o,l=Math.floor(s),u=Math.floor(c),d=`${i}/${n}/${l}/${u}`;if(!e.samplerPerTile.has(d))continue;let f=e.samplerPerTile.get(d);return f?{covered:!0,demLoaded:!0,elevation:f(Math.min((s-l)*M,vO),Math.min((c-u)*M,vO),M)*t}:{covered:!0,demLoaded:!1,elevation:0}}return bO}function CO(e,t){return e.covered&&t<=e.elevation+1e-6}function wO(e,t,n,r,i){for(let a=0;a<40&&r-n>i;a++){let i=(n+r)/2;t(e,i)?r=i:n=i}return{lo:n,hi:r}}var TO=class e{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,t,n){this._helper.interpolatePadding(e,t,n)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,t,n=!0){this._helper.resize(e,t,n)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}setConstrainOverride(e){this._helper.setConstrainOverride(e)}overrideNearFarZ(e,t){this._helper.overrideNearFarZ(e,t)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e){}constructor(e,t){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this.defaultConstrain=(e,t)=>{t=N(+t,this.minZoom,this.maxZoom);let n={center:new Q(e.lng,e.lat),zoom:t},r=this._helper._lngRange;!this._helper._renderWorldCopies&&r===null&&(r=[-179.9999999999,180-1e-10]);let i=this.tileSize*Vt(n.zoom),a=0,o=i,s=0,c=i,l=0,u=0,{top:d=0,bottom:f=0,left:p=0,right:m=0}=this.padding,h=this.width-p-m,g=this.height-d-f;if(this._helper._latRange){let e=this._helper._latRange;a=Rm(e[1])*i,o=Rm(e[0])*i,o-a<g&&(l=g/(o-a))}r&&(s=Ft(Lm(r[0])*i,0,i),c=Ft(Lm(r[1])*i,0,i),c<s&&(c+=i),c-s<h&&(u=h/(c-s)));let{x:_,y:v}=Jm(i,e),y,x,S=Math.max(u||0,l||0);if(S)return n.center=Ym(i,new b(u?(c+s)/2:_,l?(o+a)/2:v)).wrap(),n.zoom+=Ht(S),n;if(this._helper._latRange){let e=g/2;v-e<a&&(x=a+e),v+e>o&&(x=o-e)}if(r){let e=(s+c)/2,t=_;this._helper._renderWorldCopies&&(t=Ft(_,e-i/2,e+i/2));let n=h/2;t-n<s&&(y=s+n),t+n>c&&(y=c-n)}return(y!==void 0||x!==void 0)&&(n.center=Ym(i,new b(y??_,x??v)).wrap()),n},this.applyConstrain=(e,t)=>this._helper.applyConstrain(e,t),this._helper=t??new gO({calcMatrices:()=>this._calcMatrices(),defaultConstrain:(e,t)=>this.defaultConstrain(e,t)},e),this._coveringTilesDetailsProvider=new _O}clone(){let t=new e;return t.apply(this,!1),t}apply(e,t){this._helper.apply(e,t)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(e){let t=[new Ib(0,e)];if(this._helper._renderWorldCopies){let n=this.screenPointToMercatorCoordinate(new b(0,0)),r=this.screenPointToMercatorCoordinate(new b(this._helper._width,0)),i=this.screenPointToMercatorCoordinate(new b(this._helper._width,this._helper._height)),a=this.screenPointToMercatorCoordinate(new b(0,this._helper._height)),o=Math.floor(Math.min(n.x,r.x,i.x,a.x)),s=Math.floor(Math.max(n.x,r.x,i.x,a.x));for(let n=o-1;n<=s+1;n++)n!==0&&t.push(new Ib(n,e))}return t}getCameraFrustum(){return yE.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){for(let t=0;t<3;t++){let t=e&&this._terrainPointPastMaxZoom(e)||this.screenPointToLocation(this.centerPoint,e),n=e?e.getElevationForLngLat(t,this):0;if(this.pitch<90&&n>=this.getCameraAltitude()||(this._helper.recalculateZoomAndCenter(n),!e||Math.abs(e.getElevationForLngLat(this.center,this)-this.elevation)<=1e-4))return}}setLocationAtPoint(e,t,n=this.elevation){let r=n-this.elevation,i=this.screenPointToMercatorCoordinateAtZ(t,r),a=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,0),o=Wm.fromLngLat(e),s=new Wm(o.x-(i.x-a.x),o.y-(i.y-a.y));this.setCenter(s?.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(e,t){return t?this.coordinatePoint(Wm.fromLngLat(e),t.getElevationForLngLat(e,this),this._pixelMatrix3D):this.coordinatePoint(Wm.fromLngLat(e))}screenPointToLocation(e,t){return this.screenPointToMercatorCoordinate(e,t)?.toLngLat()}screenPointToLocationAtElevation(e,t){return this.screenPointToMercatorCoordinateAtZ(e,t-this.elevation)?.toLngLat()}screenPointToMercatorCoordinate(e,t){if(t){let n=this.screenTerrainPointToMercatorCoordinate(e,t);if(n!=null)return n}return this.screenPointToMercatorCoordinateAtZ(e)}_terrainPointPastMaxZoom(e){let t=e.getCoverageIndex();if(!t)return null;let{near:n,far:r}=this.getRaySegmentFromPixel(this.centerPoint,-1),i=this.cameraToCenterDistance*Vt(this.zoom-this.maxZoom),a=Fe([],n,r,Math.max(0,(i-this.nearZ)/(this.farZ-this.nearZ)));return CO(SO(t,e.exaggeration,a[0]/this.worldSize,a[1]/this.worldSize),a[2])?null:this._raycastTerrain(a,r,e)?.toLngLat()??null}screenTerrainPointToMercatorCoordinate(e,t){let{near:n,far:r}=this.getRaySegmentFromPixel(e,-1);return this._raycastTerrain(n,r,t)}_raycastTerrain(e,t,n){let r=n.getCoverageIndex();if(!r)return null;let i=this.worldSize,a=t[0]-e[0],o=t[1]-e[1],s=t[2]-e[2],c={index:r,exaggeration:n.exaggeration,near:e,dx:a,dy:o,dz:s,worldSize:i},l=0,u=1;if(s===0){if(e[2]>r.maxElevation||e[2]<r.minElevation)return null}else{let t=(r.maxElevation-e[2])/s,n=(r.minElevation-e[2])/s;if(l=Math.max(l,Math.min(t,n)),u=Math.min(u,Math.max(t,n)),l>u)return null}let d=Math.hypot(a,o),f=N(Math.ceil(d*(u-l)/4),1,512),p=0,m=!OO(c,0);for(let t=0;t<=f;t++){let n=l+(u-l)*t/f;if(!m)m=!OO(c,n);else if(OO(c,n)){let{lo:t,hi:r}=wO(c,OO,p,n,.001/d),l=DO(c,t),u=DO(c,r),f=e[2]+t*s-l.elevation,m=e[2]+r*s-u.elevation,h=l.covered&&f>m?N(t+f*(r-t)/(f-m),t,r):r;return new Wm((e[0]+h*a)/i,(e[1]+h*o)/i,DO(c,h).elevation)}p=n}return null}getRaySegmentFromPixel(e,t=0){let n=[e.x,e.y,t,1],r=[e.x,e.y,1,1];Xe(n,n,this._pixelMatrixInverse),Xe(r,r,this._pixelMatrixInverse);let i=n[3],a=r[3],o=this.elevation;return{near:[n[0]/i,n[1]/i,n[2]/i+o],far:[r[0]/a,r[1]/a,r[2]/a+o]}}screenPointToMercatorCoordinateAtZ(e,t){let n=t||0,{near:r,far:i}=this.getRaySegmentFromPixel(e),a=r[2]===i[2]?0:(n+this.elevation-r[2])/(i[2]-r[2]);return new Wm(ta.number(r[0],i[0],a)/this.worldSize,ta.number(r[1],i[1],a)/this.worldSize,n)}coordinatePoint(e,t=0,n=this._pixelMatrix){let r=this._coordinateClipPoint(e,t,n),i=r[3];return i>0?new b(r[0]/i,r[1]/i):this._offScreenPointBehindCamera(r[0],r[1],i)}_coordinateClipPoint(e,t,n){let r=[e.x*this.worldSize,e.y*this.worldSize,t,1];return Xe(r,r,n)}_offScreenPointBehindCamera(e,t,n){let r=this.width/2,i=this.height/2,a=e-r*n,o=t-i*n;a===0&&o===0&&(o=1);let s=r+this.width,c=i+this.height,l=Math.min(a===0?1/0:s/Math.abs(a),o===0?1/0:c/Math.abs(o));return new b(r+a*l,i+o*l)}getBounds(){let e=Math.max(0,this._helper._height/2-Xm(this));return new kb().extend(this.screenPointToLocation(new b(0,e))).extend(this.screenPointToLocation(new b(this._helper._width,e))).extend(this.screenPointToLocation(new b(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new b(0,this._helper._height)))}isPointOnMapSurface(e,t){return t?this.screenTerrainPointToMercatorCoordinate(e,t)!=null:e.y>this.centerPoint.y-Xm(this)}calculatePosMatrix(e,t=!1,n=!1){let r=e.key??Rb(e.wrap,e.canonical.z,e.canonical.z,e.canonical.x,e.canonical.y),i=t?this._alignedPosMatrixCache:this._posMatrixCache;if(i.has(r)){let e=i.get(r);return n?e.f32:e.f64}let a=Zm(e,this.worldSize);le(a,t?this._alignedProjMatrix:this._viewProjMatrix,a);let o={f64:a,f32:new Float32Array(a)};return i.set(r,o),n?o.f32:o.f64}calculateFogMatrix(e){let t=e.key,n=this._fogMatrixCacheF32;if(n.has(t))return n.get(t);let r=Zm(e,this.worldSize);return le(r,this._fogMatrix,r),n.set(t,new Float32Array(r)),n.get(t)}calculateCenterFromCameraLngLatAlt(e,t,n,r){return this._helper.calculateCenterFromCameraLngLatAlt(e,t,n,r)}calculateCameraOptionsFromTo(e,t,n,r){let i=Wm.fromLngLat(e,t),a=Wm.fromLngLat(n,r),o=a.x-i.x,s=a.y-i.y,c=a.z-i.z,l=Math.hypot(o,s,c);if(l===0)throw Error(`Can't calculate camera options with same From and To`);let u=Math.hypot(o,s),d=Ht(this.cameraToCenterDistance/l/this.tileSize),f=dn(Math.atan2(o,-s)),p=dn(Math.acos(u/l));return p=c<0?90-p:90+p,{center:a.toLngLat(),elevation:r,zoom:d,pitch:p,bearing:f}}_calculateNearFarZ(e,t,n){let r=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),i=e-r*this._helper._pixelPerMeter/Math.cos(t),a=r<0?i:e,o=Math.PI/2+this.pitchInRadians,s=un(this.fov)*(Math.abs(Math.cos(un(this.roll)))*this.height+Math.abs(Math.sin(un(this.roll)))*this.width)/this.height*(.5+n.y/this.height),c=Math.sin(s)*a/Math.sin(N(Math.PI-o-s,.01,Math.PI-.01)),l=Xm(this),u=Math.atan(l/this._helper.cameraToCenterDistance),d=un(.75),f=u>d?2*u*(.5+n.y/(l*2)):d,p=Math.sin(f)*a/Math.sin(N(Math.PI-o-f,.01,Math.PI-.01)),m=Math.min(c,p);this._helper._farZ=(Math.cos(Math.PI/2-t)*m+a)*1.01,this._helper._nearZ=this._helper._height/50}_calcMatrices(e=this._helper.autoCalculateNearFarZ){let t=this.centerOffset,n=Jm(this.worldSize,this.center),r=n.x,i=n.y,a=un(Math.min(this.pitch,Gm)),o=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(a));e&&this._calculateNearFarZ(o,a,t);let s;s=new Float64Array(16),_e(s,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),YE(this._invProjMatrix,s),s[8]=-t.x*2/this._helper._width,s[9]=t.y*2/this._helper._height,this._projectionMatrix=ae(s),de(s,s,[1,-1,1]),ue(s,s,[0,0,-this._helper.cameraToCenterDistance]),me(s,s,-this.rollInRadians),fe(s,s,this.pitchInRadians),me(s,s,-this.bearingInRadians),ue(s,s,[-r,-i,0]),this._mercatorMatrix=de([],s,[this.worldSize,this.worldSize,this.worldSize]),de(s,s,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=le(new Float64Array(16),this.clipSpaceToPixelsMatrix,s),ue(s,s,[0,0,-this.elevation]),this._viewProjMatrix=s,this._invViewProjMatrix=ce([],s);let c=[0,0,-1,1];Xe(c,c,this._invViewProjMatrix),this._cameraPosition=[c[0]/c[3],c[1]/c[3],c[2]/c[3]],this._fogMatrix=new Float64Array(16),_e(this._fogMatrix,this.fovInRadians,this.width/this.height,o,this._helper._farZ),this._fogMatrix[8]=-t.x*2/this.width,this._fogMatrix[9]=t.y*2/this.height,de(this._fogMatrix,this._fogMatrix,[1,-1,1]),ue(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),me(this._fogMatrix,this._fogMatrix,-this.rollInRadians),fe(this._fogMatrix,this._fogMatrix,this.pitchInRadians),me(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),ue(this._fogMatrix,this._fogMatrix,[-r,-i,0]),de(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),ue(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=le(new Float64Array(16),this.clipSpaceToPixelsMatrix,s);let l=this._helper._width%2/2,u=this._helper._height%2/2,d=Math.cos(this.bearingInRadians),f=Math.sin(-this.bearingInRadians),p=r-Math.round(r)+d*l+f*u,m=i-Math.round(i)+d*u+f*l,h=new Float64Array(s);if(ue(h,h,[p>.5?p-1:p,m>.5?m-1:m,0]),this._alignedProjMatrix=h,s=ce(new Float64Array(16),this._pixelMatrix),!s)throw Error(`failed to invert matrix`);this._pixelMatrixInverse=s,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;let e=this.screenPointToMercatorCoordinate(new b(0,0)),t=[e.x*this.worldSize,e.y*this.worldSize,0,1];return Xe(t,t,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this.cameraToCenterDistance/this.pixelsPerMeter+this.elevation}getCameraLngLat(){let e=zm(1,this.center.lat)*this.worldSize,t=this._helper.cameraToCenterDistance/e;return Qm(this.center,this.elevation,this.pitch,this.bearing,t).toLngLat()}getProjectionData(e){let{overscaledTileID:t,aligned:n,applyTerrainMatrix:r}=e,i=this._helper.getMercatorTileCoordinates(t),a=t?this.calculatePosMatrix(t,n,!0):null,o;return o=t?.terrainRttPosMatrix32f&&r?t.terrainRttPosMatrix32f:a||yt(),{mainMatrix:o,tileMercatorCoords:i,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:o,clipAntimeridian:!1}}isLocationOccluded(e,t,n){if(!t?.getCoverageIndex())return!1;let r=Wm.fromLngLat(e);n??=t.getElevationForLngLat(e,this);let i=this._coordinateClipPoint(r,n,this._pixelMatrix3D),a=i[3];if(a<=0||i[2]>a)return!0;let o=new b(i[0]/a,i[1]/a),s=this.screenTerrainPointToMercatorCoordinate(o,t);if(s==null)return!1;let c=this.getRaySegmentFromPixel(o,-1),l=kO(c,r.x*this.worldSize,r.y*this.worldSize,n);return kO(c,s.x*this.worldSize,s.y*this.worldSize,s.z)<l*.99}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(e,t,n){return 1}transformLightDirection(e){return Ce(e)}getRayDirectionFromPixel(e){throw Error(`Not implemented.`)}projectTileCoordinates(e,t,n,r){let i=this.calculatePosMatrix(n),a;r==null?(a=[e,t,0,1],yD(a,a,i)):(a=[e,t,r,1],Xe(a,a,i));let o=a[3];return{point:new b(a[0]/o,a[1]/o),signedDistanceFromCamera:o,isOccluded:!1}}populateCache(e){for(let t of e)this.calculatePosMatrix(t)}getProjectionDataForCustomLayer(e=!0){let t=new Lb(0,0,0,0,0),n=this.getProjectionData({overscaledTileID:t,applyGlobeMatrix:e}),r=Zm(t,this.worldSize);le(r,this._viewProjMatrix,r);let i=[M,M,this.worldSize/this._helper.pixelsPerMeter],a=_t();return de(a,r,i),{...n,tileMercatorCoords:[0,0,1,1],fallbackMatrix:a,mainMatrix:a}}getFastPathSimpleProjectionMatrix(e){return this.calculatePosMatrix(e)}};function EO(e){return new TO(e)}function DO(e,t){return SO(e.index,e.exaggeration,(e.near[0]+t*e.dx)/e.worldSize,(e.near[1]+t*e.dy)/e.worldSize)}function OO(e,t){return CO(DO(e,t),e.near[2]+t*e.dz)}function kO({near:e,far:t},n,r,i){let a=t[0]-e[0],o=t[1]-e[1],s=t[2]-e[2];return((n-e[0])*a+(r-e[1])*o+(i-e[2])*s)/(a*a+o*o+s*s)}function AO(){Yt(`Map cannot fit within canvas with the given bounds, padding, and/or offset.`)}function jO(e){if(e.useSlerp){if(e.k<1){let t=hn(e.startEulerAngles.roll,e.startEulerAngles.pitch,e.startEulerAngles.bearing),n=hn(e.endEulerAngles.roll,e.endEulerAngles.pitch,e.endEulerAngles.bearing),r=new Float64Array(4);et(r,t,n,e.k);let i=pn(r);e.tr.setRoll(i.roll),e.tr.setPitch(i.pitch),e.tr.setBearing(i.bearing)}else e.tr.setRoll(e.endEulerAngles.roll),e.tr.setPitch(e.endEulerAngles.pitch),e.tr.setBearing(e.endEulerAngles.bearing)}else e.tr.setRoll(ta.number(e.startEulerAngles.roll,e.endEulerAngles.roll,e.k)),e.tr.setPitch(ta.number(e.startEulerAngles.pitch,e.endEulerAngles.pitch,e.k)),e.tr.setBearing(ta.number(e.startEulerAngles.bearing,e.endEulerAngles.bearing,e.k))}function MO(e,t,n,r,i,a){let o=Jm(a.worldSize,r.getNorthWest()),s=Jm(a.worldSize,r.getNorthEast()),c=Jm(a.worldSize,r.getSouthEast()),l=Jm(a.worldSize,r.getSouthWest()),u=un(-i),d=o.rotate(u),f=s.rotate(u),p=c.rotate(u),m=l.rotate(u),h=new b(Math.max(d.x,f.x,m.x,p.x),Math.max(d.y,f.y,m.y,p.y)),g=new b(Math.min(d.x,f.x,m.x,p.x),Math.min(d.y,f.y,m.y,p.y)),_=h.sub(g),v=a.width-(n.left+n.right+t.left+t.right),y=a.height-(n.top+n.bottom+t.top+t.bottom),x=v/_.x,S=y/_.y;if(S<0||x<0){AO();return}let C=Math.min(Ht(a.scale*Math.min(x,S)),e.maxZoom),w=b.convert(e.offset),T=new b((t.left-t.right)/2,(t.top-t.bottom)/2).rotate(un(i)),E=w.add(T).mult(a.scale/Vt(C));return{center:Ym(a.worldSize,o.add(c).div(2).sub(E)),zoom:C,bearing:i}}var NO=class{get useGlobeControls(){return!1}handlePanInertia(e,t){let n=e.mag(),r=Math.abs(Xm(t));return{easingOffset:e.mult(Math.min(r*.75/n,1)),easingCenter:t.center}}handleMapControlsRollPitchBearingZoom(e,t){e.bearingDelta&&t.setBearing(t.bearing+e.bearingDelta),e.pitchDelta&&t.setPitch(t.pitch+e.pitchDelta),e.rollDelta&&t.setRoll(t.roll+e.rollDelta),e.zoomDelta&&t.setZoom(t.zoom+e.zoomDelta)}handleMapControlsPan(e,t,n){e.around.distSqr(t.centerPoint)<.01||t.setLocationAtPoint(n,e.around,e.aroundElevation)}cameraForBoxAndBearing(e,t,n,r,i,a){return MO(e,t,n,r,i,a)}handleJumpToCenterZoom(e,t){let n=t.zoom===void 0?e.zoom:+t.zoom;e.zoom!==n&&e.setZoom(+t.zoom),t.center!==void 0&&e.setCenter(Q.convert(t.center))}handleEaseTo(e,t){let n=e.zoom,r=e.padding,i={roll:e.roll,pitch:e.pitch,bearing:e.bearing},a={roll:t.roll===void 0?e.roll:t.roll,pitch:t.pitch===void 0?e.pitch:t.pitch,bearing:t.bearing===void 0?e.bearing:t.bearing},o=t.zoom!==void 0,s=!e.isPaddingEqual(t.padding),c=!1,l=o?+t.zoom:e.zoom,u=e.centerPoint.add(t.offsetAsPoint),d=e.screenPointToLocation(u),{center:f,zoom:p}=e.applyConstrain(Q.convert(t.center||d),l??n);mO(e,f);let m=Jm(e.worldSize,d),h=Jm(e.worldSize,f).sub(m),g=Vt(p-n);c=p!==n;let _=o=>{if(c&&e.setZoom(ta.number(n,p,o)),fn(i,a)||jO({startEulerAngles:i,endEulerAngles:a,tr:e,k:o,useSlerp:i.roll!=a.roll}),s&&(e.interpolatePadding(r,t.padding,o),u=e.centerPoint.add(t.offsetAsPoint)),t.around)e.setLocationAtPoint(t.around,t.aroundPoint);else{let t=Vt(e.zoom-n),r=(p>n?Math.min(2,g):Math.max(.5,g))**(1-o),i=Ym(e.worldSize,m.add(h.mult(o*r)).mult(t));e.setLocationAtPoint(e.renderWorldCopies?i.wrap():i,u)}},v=this._transformAtAnimationEnd(e,p,a,t.padding);return t.around?v.setLocationAtPoint(t.around,t.aroundPoint):v.setLocationAtPoint(f,v.centerPoint.add(t.offsetAsPoint)),{easeFunc:_,isZooming:c,elevationCenter:v.center}}handleFlyTo(e,t){let n=t.zoom!==void 0,r=e.zoom,i=e.applyConstrain(Q.convert(t.center||t.locationAtOffset),n?+t.zoom:r),a=i.center,o=i.zoom;mO(e,a);let s=e.worldSize,c=Jm(s,t.locationAtOffset),l=Jm(s,a).sub(c),u=l.mag(),d=Vt(o-r),f=t.minZoom===void 0?e.minZoom:+t.minZoom,p=Math.max(f,e.minZoom),m=Math.min(p,r,o),h=e.applyConstrain(a,m).zoom,g=Vt(h-r),_=(t,n,i,u)=>{e.setZoom(t===1?o:r+Ht(n));let d=t===1?a:Ym(s,c.add(l.mult(i)));e.setLocationAtPoint(e.renderWorldCopies?d.wrap():d,u)},v=this._transformAtAnimationEnd(e,o,{roll:t.roll,pitch:t.pitch,bearing:t.bearing},t.padding);return v.setLocationAtPoint(a,v.centerPoint.add(t.offsetAsPoint)),{easeFunc:_,scaleOfZoom:d,targetCenter:v.center,scaleOfMinZoom:g,pixelPathLength:u}}_transformAtAnimationEnd(e,t,n,r){let i=e.clone();return i.setZoom(t),i.setRoll(n.roll),i.setPitch(n.pitch),i.setBearing(n.bearing),i.setPadding(r),i}},PO,FO=()=>PO||=new Vl({type:new q(z.projection.type,`type`)}),IO=new Qp({fill:new Zp(128,2),line:new Zp(512,0),tile:new Zp(128,32),stencil:new Zp(128,1),circle:3}),LO=class{constructor(){this._tileMeshCache={}}get name(){return`vertical-perspective`}get transitionState(){return 1}get useSubdivision(){return!0}get shaderVariantName(){return`globe`}get shaderDefine(){return`#define GLOBE`}get shaderPreludeCode(){return cO.projectionGlobe}get vertexShaderPreludeCode(){return cO.projectionMercator.vertexSource}get subdivisionGranularity(){return IO}get useGlobeControls(){return!0}destroy(){}_getMeshKey(e){return`${e.granularity.toString(36)}_${e.generateBorders?`b`:``}${e.extendToNorthPole?`n`:``}${e.extendToSouthPole?`s`:``}`}getMeshFromTileID(e,t,n,r,i){let a=(i===`stencil`?IO.stencil:IO.tile).getGranularityForZoomLevel(t.z),o=t.y===0&&r,s=t.y===(1<<t.z)-1&&r;return this._getMesh(e,{granularity:a,generateBorders:n,extendToNorthPole:o,extendToSouthPole:s})}_getMesh(e,t){let n=this._getMeshKey(t);if(n in this._tileMeshCache)return this._tileMeshCache[n];let r=px(e,t);return this._tileMeshCache[n]=r,r}recalculate(e){}hasTransition(){return!1}},RO=class extends sr{constructor(e,t){super(),this._transitionable=new Al(FO(),`projection`,t),this.setProjection(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new Dl(0)),this._mercatorProjection=new fO,this._verticalPerspectiveProjection=new LO}get transitionState(){let e=this.properties.get(`type`);if(typeof e==`string`&&e===`mercator`)return 0;if(typeof e==`string`&&e===`vertical-perspective`)return 1;if(e instanceof Vi){if(e.from===e.to)return e.from===`mercator`?0:1;if(e.from===`vertical-perspective`&&e.to===`mercator`)return 1-e.transition;if(e.from===`mercator`&&e.to===`vertical-perspective`)return e.transition}return 1}get useGlobeRendering(){return this.transitionState>0}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return`globe`}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}getMeshFromTileID(e,t,n,r,i){return this.currentProjection.getMeshFromTileID(e,t,n,r,i)}setProjection(e){this._transitionable.setValue(`type`,e?.type||`mercator`)}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}};function zO(e){let t=GO(e.worldSize,e.center.lat);return 2*Math.PI*t}function BO(e,t,n){let r=N(Ne(WO(t),WO(n)),-1,1),i=Math.acos(r),a=zO(e);return i/(2*Math.PI)*a}function VO(e,t){return[Dt(e*Math.PI*2+Math.PI,Math.PI*2),2*Math.atan(Math.exp(Math.PI-t*Math.PI*2))-Math.PI*.5]}function HO(e,t){let n=Math.cos(t),r=new Float64Array(3);return r[0]=Math.sin(e)*n,r[1]=Math.sin(t),r[2]=Math.cos(e)*n,r}function UO(e,t,n,r,i){let a=1/(1<<i),o=e/M*a+n*a,s=t/M*a+r*a,c=Dt(o*Math.PI*2+Math.PI,Math.PI*2),l=2*Math.atan(Math.exp(Math.PI-s*Math.PI*2))-Math.PI*.5,u=Math.cos(l),d=new Float64Array(3);return d[0]=Math.sin(c)*u,d[1]=Math.sin(l),d[2]=Math.cos(c)*u,d}function WO(e){return HO(e.lng*Math.PI/180,e.lat*Math.PI/180)}function GO(e,t){return e/(2*Math.PI)/rk(t)}function KO(e){let t=Xe(ht(),[0,0,0,1],e.modelViewProjectionMatrix);return Xe(t,t,e.inverseProjectionMatrix),[t[0]/t[3],t[1]/t[3],t[2]/t[3]]}function qO(e){let t=Math.asin(e[1])/Math.PI*180,n=Math.sqrt(e[0]*e[0]+e[2]*e[2]);if(n>1e-6){let r=e[0]/n,i=e[2]/n,a=Math.acos(i);return new Q(Ft((r>0?a:-a)/Math.PI*180,-180,180),t)}return new Q(0,t)}function JO(e,t){return nt(ht(),-e.lng,-e.lat,t)}function YO(e){let t=e[0],n=e[1],r=e[2],i=e[3];return{lng:-Math.atan2(2*(i*t+n*r),1-2*(t*t+n*n))*180/Math.PI,lat:-Math.asin(N(2*(i*n-r*t),-1,1))*180/Math.PI,bearing:Math.atan2(2*(i*r+t*n),1-2*(n*n+r*r))*180/Math.PI}}var XO=Math.PI*.98;function ZO(e,t){let n=e.cameraPosition,r=we(n);if(r<=1)return e.screenPointToLocation(t);let i=gt();Me(i,n);let a=e.getRayDirectionFromPixel(t),o=-Ne(a,i),s=gt();ke(s,a,i,o);let c=we(s);if(c<1e-9)return e.screenPointToLocation(t);let l=Math.atan2(c,o),u=Math.asin(1/r)*.9;if(l<u)return e.screenPointToLocation(t);let d=r*Math.sin(u),f=Math.asin(N(d,-1,1))-u,p=r*Math.cos(u)/Math.sqrt(Math.max(1-d*d,1e-12))-1,m=XO-f,h=l-u,g=f+p*h*m/(m+p*h),_=gt();Oe(_,s,1/c);let v=gt();return Oe(v,i,Math.cos(N(g,0,XO))),ke(v,v,_,Math.sin(N(g,0,XO))),Me(v,v),qO(v)}function QO(e,t,n,r,i=!0){let a=ZO(e,n),o=t;if(r)o=ZO(e,n.sub(r));else if(!e.isPointOnMapSurface(n))return;let s=WO(a),c=WO(o),l=JO(e.center,e.bearing),u=Pe(gt(),c,s),d=Math.sqrt(Ne(u,u)),f=Math.acos(N(Ne(c,s),-1,1))/2,p=Math.sin(f),m=d?rt(u[1]/d*p,-u[0]/d*p,u[2]/d*p,Math.cos(f)):rt(0,0,0,1),{lng:h,lat:g,bearing:_}=YO($e(ht(),l,m)),v=e.center.lat,y=e.zoom,b=i?$O(e,g,_):g,x=i?ek(e,n,r,h):h;e.setCenter(new Q(Ft(x,-180,180),b)),i||e.setBearing(_),e.setZoom(y+ik(v,e.center.lat))}function $O(e,t,n){return Math.abs(Tt(e.bearing,n))<=90?t:t>0?90:-90}function ek(e,t,n,r){let i=e.center.lng,a=e.center.lat,o=a>=0?90:-90,s=e.locationToScreenPoint(new Q(0,o)),c=t.x-s.x,l=t.y-s.y,u=c*c+l*l,d=N(1-(gn-Math.abs(a))/12,0,1),f=d*d*(3-2*d),p=Dt(r-i+180,360)-180,m=0;if(f>0&&n){let e=(c*n.y-l*n.x)/Math.max(u,400);m=(o>0?1:-1)*e*180/Math.PI}return i+(1-f)*p+f*m}function tk(e){let t=gt();return t[0]=e[0]*-e[3],t[1]=e[1]*-e[3],t[2]=e[2]*-e[3],{center:t,radius:Math.sqrt(1-e[3]*e[3])}}function nk(e,t,n){let r=gt();Ue(r,n,e);let i=gt();return ke(i,e,r,t/We(r)),i}function rk(e){return Math.cos(Math.min(Math.abs(e),gn)*Math.PI/180)}function ik(e,t){let n=rk(e);return Ht(rk(t)/n)}function ak(e,t){return 360/zO({worldSize:e,center:{lat:t}})}function ok(e,t){let n=e.rotate(t.bearingInRadians),r=t.zoom+ik(t.center.lat,0),i=kt(1/rk(t.center.lat),1/rk(Math.min(Math.abs(t.center.lat),60)),Ot(r,7,3,0,1)),a=ak(t.worldSize,t.center.lat);return new Q(t.center.lng-n.x*a*i,N(t.center.lat+n.y*a,-90,90))}function sk(e){let t=.5*e,n=Math.sin(t),r=Math.cos(t);return Math.log(n+r)-Math.log(r-n)}function ck(e,t,n,r){let i=N(e.lat+n*r,-90,90),a=N(e.lat,-85.051129,gn),o=N(e.lat+n,-85.051129,gn);if(Math.abs(o-a)>1){let n=(Math.sign(o)===Math.sign(a)?Math.abs(a):-Math.abs(a))*Math.PI/180,s=Math.abs(o)*Math.PI/180,c=sk(n+r*(s-n)),l=sk(n),u=sk(s),d=(c-l)/(u-l);return new Q(e.lng+t*d,i)}return new Q(e.lng+t*r,i)}function lk(e,t,n=1){let r=Ne(e,t),i=n*n,a=gt(),o=gt();Oe(o,t,r),Ue(a,e,o);let s=i-Ne(a,a);if(s<0)return null;let c=Ne(e,e)-i,l=-r+(r<0?1:-1)*Math.sqrt(s),u=c/l,d=l,f=Math.max(u,d);return f<0?null:{tMin:Math.min(u,d),tMax:f}}function uk(e,t){let n=t*.01569612305760477,r=N((e-n)/(9*n),0,1);return r*r*(3-2*r)}var dk=class{constructor(e){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._boundingVolumeFactory=e}swapBuffers(){if(!this._hadAnyChanges)return;let e=this._cachePrevious;this._cachePrevious=this._cache,this._cache=e,this._cache.clear(),this._hadAnyChanges=!1}getTileBoundingVolume(e,t,n,r){let i=`${e.z}_${e.x}_${e.y}_${r?.terrain?`t`:``}_${Math.round(n)}`,a=this._cache.get(i);if(a)return a;let o=this._cachePrevious.get(i);if(o)return this._cache.set(i,o),o;let s=this._boundingVolumeFactory(e,t,n,r);return this._cache.set(i,s),this._hadAnyChanges=!0,s}},fk=class e{constructor(e,t,n,r){this.min=n,this.max=r,this.points=e,this.planes=t}static fromAabb(t,n){let r=[];for(let e=0;e<8;e++)r.push([(e>>0&1)==1?n[0]:t[0],(e>>1&1)==1?n[1]:t[1],(e>>2&1)==1?n[2]:t[2]]);return new e(r,[[-1,0,0,n[0]],[1,0,0,-t[0]],[0,-1,0,n[1]],[0,1,0,-t[1]],[0,0,-1,n[2]],[0,0,1,-t[2]]],t,n)}static fromCenterSizeAngles(t,n,r){let i=nt([],r[0],r[1],r[2]),a=Re([],[n[0],0,0],i),o=Re([],[0,n[1],0],i),s=Re([],[0,0,n[2]],i),c=[...t],l=[...t];for(let e=0;e<8;e++)for(let n=0;n<3;n++){let r=t[n]+a[n]*((e>>0&1)==1?1:-1)+o[n]*((e>>1&1)==1?1:-1)+s[n]*((e>>2&1)==1?1:-1);c[n]=Math.min(c[n],r),l[n]=Math.max(l[n],r)}let u=[];for(let e=0;e<8;e++){let n=[...t];Ee(n,n,Oe([],a,(e>>0&1)==1?1:-1)),Ee(n,n,Oe([],o,(e>>1&1)==1?1:-1)),Ee(n,n,Oe([],s,(e>>2&1)==1?1:-1)),u.push(n)}return new e(u,[[...a,-Ne(a,u[0])],[...o,-Ne(o,u[0])],[...s,-Ne(s,u[0])],[-a[0],-a[1],-a[2],-Ne(a,u[7])],[-o[0],-o[1],-o[2],-Ne(o,u[7])],[-s[0],-s[1],-s[2],-Ne(s,u[7])]],c,l)}intersectsFrustum(e){let t=!0,n=this.points.length,r=this.planes.length,i=e.planes.length,a=e.points.length;for(let r=0;r<i;r++){let i=e.planes[r],a=0;for(let e=0;e<n;e++){let t=this.points[e];i[0]*t[0]+i[1]*t[1]+i[2]*t[2]+i[3]>=0&&a++}if(a===0)return 0;a<n&&(t=!1)}if(t)return 2;for(let t=0;t<r;t++){let n=this.planes[t],r=0;for(let t=0;t<a;t++){let i=e.points[t];n[0]*i[0]+n[1]*i[1]+n[2]*i[2]+n[3]>=0&&r++}if(r===0)return 0}return 1}intersectsPlane(e){let t=this.points.length,n=0;for(let r=0;r<t;r++){let t=this.points[r];e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]>=0&&n++}return n===t?2:n===0?0:1}};function pk(e,t,n){let r=e-t;return r<0?-r:Math.max(0,r-n)}function mk(e,t,n,r,i){let a=e-n,o;return o=a<0?Math.min(-a,1+a-i):a>i?Math.min(Math.max(a-i,0),1-a):0,Math.max(o,pk(t,r,i))}var hk=class{constructor(){this._boundingVolumeCache=new dk(this._computeTileBoundingVolume)}getCenter(e){return new Q(e.center.lng,N(e.center.lat,-85.051129,gn))}prepareNextFrame(){this._boundingVolumeCache.swapBuffers()}distanceToTile2d(e,t,n,r){let i=1<<n.z,a=1/i,o=n.x/i,s=n.y/i,c=.5,l=2;return l=Math.min(l,mk(e,t,o,s,a)),l=Math.min(l,mk(e,t,o+c,-s-a,a)),l=Math.min(l,mk(e,t,o+c,2-s-a,a)),l}getWrap(e,t,n){let r=1<<t.z,i=1/r,a=t.x/r,o=pk(e.x,a,i),s=pk(e.x,a-1,i),c=pk(e.x,a+1,i),l=Math.min(o,s,c);return l===c?1:l===s?-1:0}allowVariableZoom(e,t){return OE(e,t)>4}allowWorldCopies(){return!1}getTileBoundingVolume(e,t,n,r){return this._boundingVolumeCache.getTileBoundingVolume(e,t,n,r)}_computeTileBoundingVolume(e,t,n,r){let i=Math.min(0,n),a=Math.max(0,n);if(r?.terrain){let n=new Lb(e.z,t,e.z,e.x,e.y),o=r.terrain.getMinMaxElevation(n);i=o.minElevation??i,a=Math.max(o.maxElevation??a,a)}if(i/=Pm,a/=Pm,i+=1,a+=1,e.z<=0)return fk.fromAabb([-a,-a,-a],[a,a,a]);if(e.z===1)return fk.fromAabb([e.x===0?-a:0,e.y===0?0:-a,-a],[e.x===0?0:a,e.y===0?a:0,a]);{let t=[UO(0,0,e.x,e.y,e.z),UO(M,0,e.x,e.y,e.z),UO(M,M,e.x,e.y,e.z),UO(0,M,e.x,e.y,e.z)],n=[];for(let e of t)n.push(Oe([],e,a));if(a!==i)for(let e of t)n.push(Oe([],e,i));e.y===0&&n.push([0,1,0]),e.y===(1<<e.z)-1&&n.push([0,-1,0]);let r=[1,1,1],o=[-1,-1,-1];for(let e of n)for(let t=0;t<3;t++)r[t]=Math.min(r[t],e[t]),o[t]=Math.max(o[t],e[t]);let s=UO(M/2,M/2,e.x,e.y,e.z),c=Pe([],[0,1,0],s);Me(c,c);let l=Pe([],s,c);Me(l,l);let u=Pe([],t[2],t[1]);Me(u,u);let d=Pe([],t[0],t[3]);Me(d,d),n.push(Oe([],s,a)),e.y>=(1<<e.z)/2&&n.push(Oe([],UO(4096,0,e.x,e.y,e.z),a)),e.y<(1<<e.z)/2&&n.push(Oe([],UO(4096,8192,e.x,e.y,e.z),a));let f=gk(s,n),p=gk(l,n),m=[-s[0],-s[1],-s[2],f.max],h=[s[0],s[1],s[2],-f.min],g=[-l[0],-l[1],-l[2],p.max],_=[l[0],l[1],l[2],-p.min],v=[...u,0],y=[...d,0],b=[];return e.y===0?b.push(St(y,v,m),St(y,v,h)):b.push(St(g,v,m),St(g,v,h),St(g,y,m),St(g,y,h)),e.y===(1<<e.z)-1?b.push(St(y,v,m),St(y,v,h)):b.push(St(_,v,m),St(_,v,h),St(_,y,m),St(_,y,h)),new fk(b,[m,h,g,_,v,y],r,o)}}};function gk(e,t){let n=1/0,r=-1/0;for(let i of t){let t=Ne(e,i);n=Math.min(n,t),r=Math.max(r,t)}return{min:n,max:r}}var _k=1e-12,vk=class e{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,t,n){this._helper.interpolatePadding(e,t,n)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,t,n=!0){this._helper.resize(e,t,n)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}setConstrainOverride(e){this._helper.setConstrainOverride(e)}overrideNearFarZ(e,t){this._helper.overrideNearFarZ(e,t)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e){}constructor(e,t){this._cachedClippingPlane=ht(),this._projectionMatrix=vt(),this._globeViewProjMatrix32f=yt(),this._globeViewProjMatrixF64=vt(),this._globeViewProjMatrixF64Inverted=vt(),this._globeProjMatrixInverted=vt(),this._cameraPosition=gt(),this.defaultConstrain=(e,t)=>{let n=N(+t,this.minZoom+ik(0,e.lat),this.maxZoom),r=this._getMaxLatitude(n);return{center:new Q(e.lng,N(e.lat,-r,r)),zoom:n}},this.applyConstrain=(e,t)=>this._helper.applyConstrain(e,t),this._helper=t??new gO({calcMatrices:()=>this._calcMatrices(),defaultConstrain:(e,t)=>this.defaultConstrain(e,t)},e),this._coveringTilesDetailsProvider=new hk}clone(){let t=new e;return t.apply(this,!1),t}apply(e,t){this._helper.apply(e,t)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixF64}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){let e=gt();return e[0]=this._cameraPosition[0],e[1]=this._cameraPosition[1],e[2]=this._cameraPosition[2],e}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(e){let{overscaledTileID:t,applyGlobeMatrix:n}=e,r=this._helper.getMercatorTileCoordinates(t);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:r,clippingPlane:this._cachedClippingPlane,projectionTransition:+!!n,fallbackMatrix:this._globeViewProjMatrix32f,clipAntimeridian:t?.canonical.z===0}}_computeClippingPlane(e){let t=this.pitchInRadians,n=this.cameraToCenterDistance/e,r=Math.sin(t)*n,i=Math.cos(t)*n+1,a=1/Math.sqrt(r*r+i*i)*1,o=-r,s=i,c=Math.sqrt(o*o+s*s);o/=c,s/=c;let l=[0,o,s];Ve(l,l,[0,0,0],-this.bearingInRadians),ze(l,l,[0,0,0],-1*this.center.lat*Math.PI/180),Be(l,l,[0,0,0],this.center.lng*Math.PI/180);let u=1/we(l);return Oe(l,l,u),[...l,-a*u]}isLocationOccluded(e,t,n){let r=t?.getCoverageIndex();n??=r?t.getElevationForLngLat(e,this):0;let i=Sk(e,n);if(!this.isSurfacePointVisible(i))return!0;if(!r)return!1;let a=this._projectSurfacePointToScreen(i),o=this.cameraPosition,s=this.getRayDirectionFromPixel(a),c=Ck(o,s,i);if(c<=0)return!0;let l=this.screenTerrainPointToMercatorCoordinate(a,t);return l!=null&&Ck(o,s,Sk(l.toLngLat(),l.z))<c*.99}transformLightDirection(e){let t=this._helper._center.lng*Math.PI/180,n=this._helper._center.lat*Math.PI/180,r=Math.cos(n),i=[Math.sin(t)*r,Math.sin(n),Math.cos(t)*r],a=[i[2],0,-i[0]],o=[0,0,0];Pe(o,a,i),Me(a,a),Me(o,o);let s=[a[0]*e[0]+o[0]*e[1]+i[0]*e[2],a[1]*e[0]+o[1]*e[1]+i[1]*e[2],a[2]*e[0]+o[2]*e[1]+i[2]*e[2]],c=[0,0,0];return Me(c,s),c}getPixelScale(){return 1/rk(this._helper._center.lat)}getCircleRadiusCorrection(){return rk(this._helper._center.lat)}getPitchedTextCorrection(e,t,n){let r=Km(e,t,n.canonical),i=VO(r.x,r.y);return this.getCircleRadiusCorrection()/Math.cos(i[1])}projectTileCoordinates(e,t,n,r){let i=n.canonical,a=UO(e,t,i.x,i.y,i.z),o=1+(r??0)/Pm,s=a[0]*o,c=a[1]*o,l=a[2]*o,u=[s,c,l,1];Xe(u,u,this._globeViewProjMatrixF64);let d;if(o<=1){let e=this._cachedClippingPlane;d=e[0]*a[0]+e[1]*a[1]+e[2]*a[2]+e[3]<0}else d=this._isLineOfSightBlocked(s,c,l);return{point:new b(u[0]/u[3],u[1]/u[3]),signedDistanceFromCamera:u[3],isOccluded:d}}_isLineOfSightBlocked(e,t,n){let r=this._cameraPosition,i=e-r[0],a=t-r[1],o=n-r[2],s=i*i+a*a+o*o;if(s===0)return!1;let c=N(-(r[0]*i+r[1]*a+r[2]*o)/s,0,1),l=r[0]+c*i,u=r[1]+c*a,d=r[2]+c*o;return l*l+u*u+d*d<1}_calcMatrices(e=this._helper.autoCalculateNearFarZ){let t=GO(this.worldSize,this.center.lat),n=_t();e&&(this._helper._nearZ=.5,this._helper._farZ=this.cameraToCenterDistance+t*2),_e(n,this.fovInRadians,this.width/this.height,this._helper._nearZ,this._helper._farZ);let r=this.centerOffset;n[8]=-r.x*2/this._helper._width,n[9]=r.y*2/this._helper._height,this._projectionMatrix=ae(n),this._globeProjMatrixInverted=_t(),ce(this._globeProjMatrixInverted,n),ue(n,n,[0,0,-this.cameraToCenterDistance]),me(n,n,this.rollInRadians),fe(n,n,-this.pitchInRadians),me(n,n,this.bearingInRadians),ue(n,n,[0,0,-t]);let i=gt();i[0]=t,i[1]=t,i[2]=t,fe(n,n,this.center.lat*Math.PI/180),pe(n,n,-this.center.lng*Math.PI/180),de(n,n,i),this._globeViewProjMatrixF64=n,this._globeViewProjMatrix32f=new Float32Array(n),this._globeViewProjMatrixF64Inverted=_t(),ce(this._globeViewProjMatrixF64Inverted,n);let a=gt();this._cameraPosition=gt(),this._cameraPosition[2]=this.cameraToCenterDistance/t,Ve(this._cameraPosition,this._cameraPosition,a,-this.rollInRadians),ze(this._cameraPosition,this._cameraPosition,a,this.pitchInRadians),Ve(this._cameraPosition,this._cameraPosition,a,-this.bearingInRadians),Ee(this._cameraPosition,this._cameraPosition,[0,0,1]),ze(this._cameraPosition,this._cameraPosition,a,-this.center.lat*Math.PI/180),Be(this._cameraPosition,this._cameraPosition,a,this.center.lng*Math.PI/180),this._cachedClippingPlane=this._computeClippingPlane(t);let o=ae(this._globeViewProjMatrixF64Inverted);de(o,o,[1,1,-1]),this._cachedFrustum=yE.fromInvProjectionMatrix(o,1,0,this._cachedClippingPlane,!0)}calculateFogMatrix(e){Yt(`calculateFogMatrix is not supported on globe projection.`);let t=_t();return se(t),t}getVisibleUnwrappedCoordinates(e){return[new Ib(0,e)]}getCameraFrustum(){return this._cachedFrustum}getClippingPlane(){return this._cachedClippingPlane}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){if(e){Yt(`terrain is not fully supported on vertical perspective projection.`);return}this._helper.recalculateZoomAndCenter(0)}maxPitchScaleFactor(){return 1}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return(we(this._cameraPosition)-1)*Pm}getCameraLngLat(){let e=gt();return Me(e,this._cameraPosition),qO(e)}populateCache(e){}getBounds(){let e=this.width*.5,t=this.height*.5,n=[new b(0,0),new b(e,0),new b(this.width,0),new b(this.width,t),new b(this.width,this.height),new b(e,this.height),new b(0,this.height),new b(0,t)],r=[];for(let e of n)r.push(this.unprojectScreenPoint(e));let i=0,a=0,o=0,s=0,c=this.center;for(let e of r){let t=Tt(c.lng,e.lng),n=Tt(c.lat,e.lat);t<a&&(a=t),t>i&&(i=t),n<s&&(s=n),n>o&&(o=n)}let l=[c.lng+a,c.lat+s,c.lng+i,c.lat+o];return this.isSurfacePointOnScreen([0,1,0])&&(l[3]=90,l[0]=-180,l[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(l[1]=-90,l[0]=-180,l[2]=180),new kb(l)}_getMaxLatitude(e){let t=un(4.948870999999997),n=GO(this.tileSize*Vt(e),gn)*t,r=Math.min(this.width,this.height)/2;return gn+dn(t*(Math.min(n,r)*Ot(n,r,r*4,1,0))/n)}calculateCenterFromCameraLngLatAlt(e,t,n,r){return this._helper.calculateCenterFromCameraLngLatAlt(e,t,n,r)}calculateCameraOptionsFromTo(e,t,n,r){let i=Q.convert(n),a=WO(Q.convert(e));Oe(a,a,1+t/Pm);let o=WO(i),s=Oe(gt(),o,1+r/Pm),c=De(gt(),a,o),l=we(c);if(l<_k||Ae(a,s)<_k)throw Error(`Can't calculate camera options with same From and To`);let u=gt();Be(c,c,u,-un(i.lng)),ze(c,c,u,un(i.lat));let d=dn(Math.acos(N(c[2]/l,-1,1))),f=Math.hypot(c[0],c[1])<l*1e-9?this.bearing:dn(Math.atan2(-c[0],-c[1]));return{center:i,elevation:r,zoom:Ht(this.cameraToCenterDistance/l/GO(this.tileSize,i.lat)),pitch:d,bearing:f}}setLocationAtPoint(e,t,n){let r=WO(this.unprojectScreenPoint(t)),i=WO(e),a=gt();He(a);let o=gt();Be(o,r,a,-this.center.lng*Math.PI/180),ze(o,o,a,this.center.lat*Math.PI/180);let s=i[0]*i[0]+i[2]*i[2],c=o[0]*o[0];if(s<c)return;let l=Math.sqrt(s-c),u=-l,d=wt(i[0],i[2],o[0],l),f=wt(i[0],i[2],o[0],u),p=gt();Be(p,i,a,-d);let m=wt(p[1],p[2],o[1],o[2]),h=gt();Be(h,i,a,-f);let g=wt(h[1],h[2],o[1],o[2]),_=Math.PI*.5,v=m>=-_&&m<=_,y=g>=-_&&g<=_,b,x;if(v&&y){let e=this.center.lng*Math.PI/180,t=this.center.lat*Math.PI/180,n=Et(d,e),r=Et(m,t),i=Et(f,e),a=Et(g,t);n+r<i+a?(b=d,x=m):(b=f,x=g)}else if(v)b=d,x=m;else if(y)b=f,x=g;else return;let S=b/Math.PI*180,C=x/Math.PI*180,w=this.center.lat;this.setCenter(new Q(S,N(C,-90,90))),this.setZoom(this.zoom+ik(w,this.center.lat))}locationToScreenPoint(e,t){let n=WO(e);return t&&Oe(n,n,1+t.getElevationForLngLat(e,this)/Pm),this._projectSurfacePointToScreen(n)}_projectSurfacePointToScreen(e){let t=ht();return Xe(t,[...e,1],this._globeViewProjMatrixF64),t[0]/=t[3],t[1]/=t[3],new b((t[0]*.5+.5)*this.width,(-t[1]*.5+.5)*this.height)}screenPointToMercatorCoordinate(e,t){if(t){let n=this.screenTerrainPointToMercatorCoordinate(e,t);if(n)return n}return Wm.fromLngLat(this.unprojectScreenPoint(e))}screenTerrainPointToMercatorCoordinate(e,t){let n=t.getCoverageIndex();if(!n)return null;let r=this.cameraPosition,i=this.getRayDirectionFromPixel(e),a=lk(r,i,1+n.maxElevation/Pm);if(!a)return null;let o=lk(r,i,1+n.minElevation/Pm),s=Math.max(a.tMin,0),c=o?o.tMin:a.tMax;if(c<=s)return null;let l={index:n,exaggeration:t.exaggeration,origin:r,direction:i},u=0;for(let e=0;e<=256;e++){let t=s+(c-s)*e/256;if(xk(l,t)){let{hi:e}=wO(l,xk,u,t,1e-12),{sample:n,mercator:r}=bk(l,e);return new Wm(r.x,r.y,n.elevation)}u=t}return null}screenPointToLocation(e,t){return this.screenPointToMercatorCoordinate(e,t)?.toLngLat()}screenPointToLocationAtElevation(e,t){return this.screenPointToLocation(e)}isPointOnMapSurface(e,t){let n=this._cameraPosition;return!!lk(n,this.getRayDirectionFromPixel(e))}getRayDirectionFromPixel(e){let t=ht();t[0]=e.x/this.width*2-1,t[1]=(e.y/this.height*2-1)*-1,t[2]=1,t[3]=1,Xe(t,t,this._globeViewProjMatrixF64Inverted),t[0]/=t[3],t[1]/=t[3],t[2]/=t[3];let n=gt();n[0]=t[0]-this._cameraPosition[0],n[1]=t[1]-this._cameraPosition[1],n[2]=t[2]-this._cameraPosition[2];let r=gt();return Me(r,n),r}isSurfacePointVisible(e){let t=this._cachedClippingPlane;return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]>=0}isSurfacePointOnScreen(e){if(!this.isSurfacePointVisible(e))return!1;let t=ht();return Xe(t,[...e,1],this._globeViewProjMatrixF64),t[0]/=t[3],t[1]/=t[3],t[2]/=t[3],t[0]>-1&&t[0]<1&&t[1]>-1&&t[1]<1&&t[2]>-1&&t[2]<1}unprojectScreenPoint(e){let t=this._cameraPosition,n=this.getRayDirectionFromPixel(e),r=lk(t,n);if(r){let e=gt();Ee(e,t,[n[0]*r.tMin,n[1]*r.tMin,n[2]*r.tMin]);let i=gt();return Me(i,e),qO(i)}let i=this._cachedClippingPlane,a=i[0]*n[0]+i[1]*n[1]+i[2]*n[2],o=-xt(i,t)/a,s=gt();if(o>0)Ee(s,t,[n[0]*o,n[1]*o,n[2]*o]);else{let e=gt();Ee(e,t,[n[0]*2,n[1]*2,n[2]*2]);let r=xt(this._cachedClippingPlane,e);Ue(s,e,[this._cachedClippingPlane[0]*r,this._cachedClippingPlane[1]*r,this._cachedClippingPlane[2]*r])}let c=tk(i);return qO(nk(c.center,c.radius,s))}getProjectionDataForCustomLayer(e=!0){let t=this.getProjectionData({overscaledTileID:new Lb(0,0,0,0,0),applyGlobeMatrix:e});return t.tileMercatorCoords=[0,0,1,1],t}getFastPathSimpleProjectionMatrix(e){}};function yk(e){return new vk(e)}function bk(e,t){let n=gt();ke(n,e.origin,e.direction,t);let r=we(n),i=gt();Oe(i,n,1/r);let a=qO(i),o=Wm.fromLngLat(a),s=new Wm(o.x,N(o.y,0,.999999999)),c=SO(e.index,e.exaggeration,s.x,s.y),l=Math.abs(a.lat)>85.051129?0:c.elevation;return{sample:{...c,elevation:l},radius:r,mercator:s}}function xk(e,t){let{sample:n,radius:r}=bk(e,t);return CO(n,(r-1)*Pm)}function Sk(e,t){let n=WO(e);return Oe(n,n,1+t/Pm)}function Ck(e,t,n){return Ne(De(gt(),n,e),t)}var wk=class e{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,t,n){this._helper.interpolatePadding(e,t,n)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,t,n=!0){this._helper.resize(e,t,n)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}setConstrainOverride(e){this._helper.setConstrainOverride(e)}overrideNearFarZ(e,t){this._helper.overrideNearFarZ(e,t)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(e){this._globeness=e,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(),this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(e){this._globeness=1,this.defaultConstrain=(e,t)=>this.currentTransform.defaultConstrain(e,t),this.applyConstrain=(e,t)=>this._helper.applyConstrain(e,t),this._helper=new gO({calcMatrices:()=>this._calcMatrices(),defaultConstrain:(e,t)=>this.defaultConstrain(e,t)},e),this._globeness=1,this._mercatorTransform=new TO(void 0,this._helper),this._verticalPerspectiveTransform=new vk(void 0,this._helper)}clone(){let t=new e;return t._globeness=this._globeness,t.apply(this,!1),t}apply(e,t){this._helper.apply(e,t)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(e){let t=this._mercatorTransform.getProjectionData(e),n=this._verticalPerspectiveTransform.getProjectionData(e);return{mainMatrix:this.isGlobeRendering?n.mainMatrix:t.mainMatrix,clippingPlane:n.clippingPlane,tileMercatorCoords:n.tileMercatorCoords,projectionTransition:e.applyGlobeMatrix?this._globeness:0,fallbackMatrix:t.fallbackMatrix,clipAntimeridian:n.clipAntimeridian}}isLocationOccluded(e,t,n){return this.currentTransform.isLocationOccluded(e,t,n)}transformLightDirection(e){return this.currentTransform.transformLightDirection(e)}getPixelScale(){return kt(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return this.currentTransform.getCircleRadiusCorrection()}getPitchedTextCorrection(e,t,n){return kt(this._mercatorTransform.getPitchedTextCorrection(e,t,n),this._verticalPerspectiveTransform.getPitchedTextCorrection(e,t,n),this._globeness)}projectTileCoordinates(e,t,n,r){return this.currentTransform.projectTileCoordinates(e,t,n,r)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform._calcMatrices(),this._mercatorTransform._calcMatrices(this.autoCalculateNearFarZ&&!this.isGlobeRendering))}calculateFogMatrix(e){return this.currentTransform.calculateFogMatrix(e)}getVisibleUnwrappedCoordinates(e){return this.currentTransform.getVisibleUnwrappedCoordinates(e)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(e){this.currentTransform.recalculateZoomAndCenter(e)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this.currentTransform.getCameraAltitude()}getCameraLngLat(){return this.currentTransform.getCameraLngLat()}populateCache(e){this._mercatorTransform.populateCache(e),this._verticalPerspectiveTransform.populateCache(e)}getBounds(){return this.currentTransform.getBounds()}calculateCenterFromCameraLngLatAlt(e,t,n,r){return this._helper.calculateCenterFromCameraLngLatAlt(e,t,n,r)}calculateCameraOptionsFromTo(e,t,n,r){return this.currentTransform.calculateCameraOptionsFromTo(e,t,n,r)}setLocationAtPoint(e,t,n){this.currentTransform.setLocationAtPoint(e,t,n)}locationToScreenPoint(e,t){return this.currentTransform.locationToScreenPoint(e,t)}screenPointToMercatorCoordinate(e,t){return this.currentTransform.screenPointToMercatorCoordinate(e,t)}screenTerrainPointToMercatorCoordinate(e,t){return this.currentTransform.screenTerrainPointToMercatorCoordinate(e,t)}screenPointToLocation(e,t){return this.currentTransform.screenPointToLocation(e,t)}screenPointToLocationAtElevation(e,t){return this.currentTransform.screenPointToLocationAtElevation(e,t)}isPointOnMapSurface(e,t){return this.currentTransform.isPointOnMapSurface(e,t)}getRayDirectionFromPixel(e){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e)}getProjectionDataForCustomLayer(e=!0){let t=this._mercatorTransform.getProjectionDataForCustomLayer(e);if(!this.isGlobeRendering)return t;let n=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e);return n.fallbackMatrix=t.mainMatrix,n.projectionTransition=this._globeness,n}getFastPathSimpleProjectionMatrix(e){return this.currentTransform.getFastPathSimpleProjectionMatrix(e)}};function Tk(e){return new wk(e)}var Ek=class e{get useGlobeControls(){return!0}handlePanInertia(e,t){let n=ok(e,t);return Math.abs(n.lng-t.center.lng)>180&&(n.lng=t.center.lng+179.5*Math.sign(n.lng-t.center.lng)),{easingCenter:n,easingOffset:new b(0,0)}}handleMapControlsRollPitchBearingZoom(e,t){let n=e.around,r=t.screenPointToLocation(n);e.bearingDelta&&t.setBearing(t.bearing+e.bearingDelta),e.pitchDelta&&t.setPitch(t.pitch+e.pitchDelta),e.rollDelta&&t.setRoll(t.roll+e.rollDelta);let i=t.zoom;e.zoomDelta&&t.setZoom(t.zoom+e.zoomDelta);let a=t.zoom-i;if(a===0)return;let o=Tt(t.center.lng,r.lng),s=o/(Math.abs(o/180)+1),c=Tt(t.center.lat,r.lat),l=t.getRayDirectionFromPixel(n),u=t.cameraPosition,d=Ne(u,l)*-1,f=gt();Ee(f,u,[l[0]*d,l[1]*d,l[2]*d]);let p=we(f),m=p-1,h=Math.exp(-Math.max(m-.3,0)*.5),g=Ot(p,.95,.999,0,1),_=Ot(GO(t.worldSize,t.center.lat)/Math.min(t.width,t.height),.9,.5,1,.25),v=Math.min(h,kt(1,_,g)),y=(1-Vt(-a))*v,b=t.center.lat,x=t.zoom,S=new Q(t.center.lng+s*y,N(t.center.lat+c*y,-90,90));t.setLocationAtPoint(r,n);let C=t.center,w=Ot(Math.abs(o),45,85,0,1),T=Math.max(w,g)**.25,E=Tt(C.lng,S.lng),D=Tt(C.lat,S.lat);t.setCenter(new Q(C.lng+E*T,N(C.lat+D*T,-90,90)).wrap()),t.setZoom(x+ik(b,t.center.lat))}handleMapControlsPan(e,t,n){e.panDelta&&QO(t,n,t.isPointOnMapSurface(e.around)?e.around:t.centerPoint,e.panDelta)}cameraForBoxAndBearing(t,n,r,i,a,o){let s=MO(t,n,r,i,a,o);if(!s)return;let c=n.left/o.width*2-1,l=(o.width-n.right)/o.width*2-1,u=n.top/o.height*-2+1,d=(o.height-n.bottom)/o.height*-2+1,f=Tt(i.getWest(),i.getEast())<0,p=f?i.getEast():i.getWest(),m=f?i.getWest():i.getEast(),h=Math.max(i.getNorth(),i.getSouth()),g=Math.min(i.getNorth(),i.getSouth()),_=p+Tt(p,m)*.5,v=h+Tt(h,g)*.5,y=o.clone();y.setCenter(s.center),y.setPadding(r),y.setBearing(s.bearing),y.setPitch(0),y.setRoll(0),y.setZoom(s.zoom);let b=y.modelViewProjectionMatrix,x=[WO(i.getNorthWest()),WO(i.getNorthEast()),WO(i.getSouthWest()),WO(i.getSouthEast()),WO(new Q(m,v)),WO(new Q(p,v)),WO(new Q(_,h)),WO(new Q(_,g))],S=WO(s.center),C=1/0;for(let t of x)c<0&&(C=e.getLesserNonNegativeNonNull(C,e.solveVectorScale(t,S,b,`x`,c))),l>0&&(C=e.getLesserNonNegativeNonNull(C,e.solveVectorScale(t,S,b,`x`,l))),u>0&&(C=e.getLesserNonNegativeNonNull(C,e.solveVectorScale(t,S,b,`y`,u))),d<0&&(C=e.getLesserNonNegativeNonNull(C,e.solveVectorScale(t,S,b,`y`,d)));if(!Number.isFinite(C)||C===0){AO();return}return s.zoom=Math.min(y.zoom+Ht(C),t.maxZoom),s}handleJumpToCenterZoom(e,t){let n=e.center.lat,r=t.center?Q.convert(t.center):e.center;e.setCenter(e.applyConstrain(r,e.zoom).center.wrap());let i=t.zoom===void 0?e.zoom+ik(n,e.center.lat):+t.zoom;e.zoom!==i&&(e.setZoom(i),e.setCenter(e.applyConstrain(r,e.zoom).center.wrap()))}handleEaseTo(e,t){let n=e.zoom,r=e.center,i=e.padding,a={roll:e.roll,pitch:e.pitch,bearing:e.bearing},o={roll:t.roll===void 0?e.roll:t.roll,pitch:t.pitch===void 0?e.pitch:t.pitch,bearing:t.bearing===void 0?e.bearing:t.bearing},s=t.zoom!==void 0,c=!e.isPaddingEqual(t.padding),l=!1,u=t.center?Q.convert(t.center):r,d=e.applyConstrain(u,s?+t.zoom:n).center;mO(e,d);let f=e.clone();f.setCenter(d),f.setZoom(s?+t.zoom:n+ik(r.lat,u.lat)),f.setBearing(t.bearing);let p=new b(N(e.centerPoint.x+t.offsetAsPoint.x,0,e.width),N(e.centerPoint.y+t.offsetAsPoint.y,0,e.height));f.setLocationAtPoint(d,p);let m=(t.offset&&t.offsetAsPoint.mag())>0?f.center:d,h=s?+t.zoom:n+ik(r.lat,m.lat),g=n+ik(r.lat,0),_=h+ik(m.lat,0),v=Tt(r.lng,m.lng),y=Tt(r.lat,m.lat),x=Vt(_-g);return l=h!==n,{easeFunc:n=>{if(fn(a,o)||jO({startEulerAngles:a,endEulerAngles:o,tr:e,k:n,useSlerp:a.roll!=o.roll}),c&&e.interpolatePadding(i,t.padding,n),t.around)Yt(`Easing around a point is not supported under globe projection.`),e.setLocationAtPoint(t.around,t.aroundPoint);else{let t=n*(_>g?Math.min(2,x):Math.max(.5,x))**(1-n),i=ck(r,v,y,t);e.setCenter(i.wrap())}if(l){let t=ta.number(g,_,n)+ik(0,e.center.lat);e.setZoom(t)}n===1&&!t.around&&e.setCenter(m.wrap())},isZooming:l,elevationCenter:m}}handleFlyTo(e,t){let n=t.zoom!==void 0,r=e.center,i=e.zoom,a=e.padding,o=!e.isPaddingEqual(t.padding),s=e.applyConstrain(Q.convert(t.center||t.locationAtOffset),n?+t.zoom:i).center,c=n?+t.zoom:e.zoom+ik(e.center.lat,s.lat),l=e.clone();l.setCenter(s),l.setZoom(c),l.setBearing(t.bearing);let u=new b(N(e.centerPoint.x+t.offsetAsPoint.x,0,e.width),N(e.centerPoint.y+t.offsetAsPoint.y,0,e.height));l.setLocationAtPoint(s,u);let d=l.center;mO(e,d);let f=BO(e,r,d),p=i+ik(r.lat,0),m=c+ik(d.lat,0),h=Vt(m-p),g=typeof t.minZoom==`number`?+t.minZoom:e.minZoom,_=Math.max(g,e.minZoom)+ik(d.lat,0),v=Math.min(_,p,m)+ik(0,d.lat),y=Vt(e.applyConstrain(d,v).zoom+ik(d.lat,0)-p),x=Tt(r.lng,d.lng),S=Tt(r.lat,d.lat);return{easeFunc:(n,i,s,l)=>{let u=ck(r,x,S,s);o&&e.interpolatePadding(a,t.padding,n);let f=n===1?d:u;e.setCenter(f.wrap());let m=p+Ht(i);e.setZoom(n===1?c:m+ik(0,f.lat)),n===1&&e.setCenter(d.wrap())},scaleOfZoom:h,targetCenter:d,scaleOfMinZoom:y,pixelPathLength:f}}static solveVectorScale(e,t,n,r,i){let a=i,o=r===`x`?[n[0],n[4],n[8],n[12]]:[n[1],n[5],n[9],n[13]],s=[n[3],n[7],n[11],n[15]],c=e[0]*o[0]+e[1]*o[1]+e[2]*o[2],l=e[0]*s[0]+e[1]*s[1]+e[2]*s[2],u=t[0]*o[0]+t[1]*o[1]+t[2]*o[2],d=t[0]*s[0]+t[1]*s[1]+t[2]*s[2],f=(u+o[3]-a*d-a*s[3])/(u-c-a*d+a*l);return u+a*l===c+a*d||s[3]*(c-u)+o[3]*(d-l)+c*d===u*l?null:f}static getLesserNonNegativeNonNull(e,t){return t!==null&&t>=0&&t<e?t:e}},Dk=class{constructor(e){this._globe=e,this._mercatorCameraHelper=new NO,this._verticalPerspectiveCameraHelper=new Ek}get useGlobeControls(){return this._globe.useGlobeRendering}get currentHelper(){return this.useGlobeControls?this._verticalPerspectiveCameraHelper:this._mercatorCameraHelper}handlePanInertia(e,t){return this.currentHelper.handlePanInertia(e,t)}handleMapControlsRollPitchBearingZoom(e,t){this.currentHelper.handleMapControlsRollPitchBearingZoom(e,t)}handleMapControlsPan(e,t,n){this.currentHelper.handleMapControlsPan(e,t,n)}cameraForBoxAndBearing(e,t,n,r,i,a){return this.currentHelper.cameraForBoxAndBearing(e,t,n,r,i,a)}handleJumpToCenterZoom(e,t){this.currentHelper.handleJumpToCenterZoom(e,t)}handleEaseTo(e,t){return this.currentHelper.handleEaseTo(e,t)}handleFlyTo(e,t){return this.currentHelper.handleFlyTo(e,t)}};function Ok(e,t,n){let r={constrainOverride:t};if(Array.isArray(e)){let t=new RO({type:e},n);return{projection:t,transform:Tk(r),cameraHelper:new Dk(t)}}switch(e){case`mercator`:return{projection:new fO,transform:EO(r),cameraHelper:new NO};case`globe`:{let e=new RO({type:[`interpolate`,[`linear`],[`zoom`],11,`vertical-perspective`,12,`mercator`]},{});return{projection:e,transform:Tk(r),cameraHelper:new Dk(e)}}case`vertical-perspective`:return{projection:new LO,transform:yk(r),cameraHelper:new Ek};default:return Yt(`Unknown projection name: ${e}. Falling back to mercator projection.`),{projection:new fO,transform:EO(r),cameraHelper:new NO}}}var kk=dc(),Ak=class extends sr{constructor(e,t={}){super(),this._rtlPluginLoaded=()=>{for(let e in this.tileManagers){let t=this.tileManagers[e].getSource().type;(t===`vector`||t===`geojson`)&&this.tileManagers[e].reload()}},this.map=e,this.dispatcher=new hb(fb(),e._getMapId()).setEventedParent(this),this.dispatcher.registerMessageHandler(`GG`,(e,t)=>this.getGlyphs(e,t)),this.dispatcher.registerMessageHandler(`GI`,(e,t)=>this.getImages(e,t)),this.dispatcher.registerMessageHandler(`GDA`,(e,t)=>this.getDashes(e,t)),this.imageManager=new Dy,this.imageManager.setEventedParent(this),this.imageManager.setMissingImageResolver(e._missingStyleImageResolver),this.patternAtlas=new Oy(this.imageManager);let n=e._container?.lang||typeof document<`u`&&document.documentElement?.lang||void 0;this.glyphManager=new Uy(e._requestManager,t.localIdeographFontFamily,n),this.lineAtlas=new Zy(256,512),this.crossTileSymbolIndex=new QD,this._setInitialValues(),this._initialGlobalState=t.globalState??{},this._resetUpdates(),this.dispatcher.broadcast(`SR`,qn()),pE().on(uE,this._rtlPluginLoaded),this.on(`data`,e=>{if(e.dataType!==`source`||e.sourceDataType!==`metadata`)return;let t=this.tileManagers[e.sourceId];if(!t)return;let n=t.getSource();if(n?.vectorLayerIds)for(let e in this._layers){let t=this._layers[e];t.source===n.id&&this._validateLayer(t)}})}_setInitialValues(){this._layers={},this._order=[],this.tileManagers={},this.zoomHistory=new El,this._imagesListDirty=!1,this._initialGlobalState={},this._globalState={},this._serializedLayers={},this.stylesheet=null,this.light=null,this.sky=null,this.projection&&(this.projection.destroy(),delete this.projection),this._loaded=!1,this._changed=!1,this._updatedLayers={},this._updatedSources={},this._changedImages={},this._glyphsDidChange=!1,this._updatedPaintProps={},this._layerOrderChanged=!1,this._symbolPlacementTriggered=!1,this._placedProjectionTransition=void 0,this.crossTileSymbolIndex=new((this.crossTileSymbolIndex?.constructor)||Object),this.pauseablePlacement=void 0,this.placement=void 0,this.z=0}setGlobalStateProperty(e,t){this._checkLoaded();let n=t===null?this.stylesheet.state?.[e]?.default??null:t;return this._setGlobalStateValues({[e]:n}),this}getGlobalState(){return this._globalState}setGlobalState(e){this._checkLoaded();let t={},n=new Set([...Object.keys(e??{}),...Object.keys(this._initialGlobalState)]);for(let r of n)t[r]=this._initialGlobalState[r]??e[r]?.default??null;this._setGlobalStateValues(t)}_setGlobalStateValues(e){let t=[];for(let n in e)Kt(e[n],this._globalState[n])||t.push(n);if(t.length===0)return;let n={...this._globalState};for(let n of t)this._globalState[n]=e[n];this._applyGlobalStateChanges(t,n)}_applyGlobalStateChanges(e,t){let n=new Set,r={};for(let t of e)r[t]=this._globalState[t];for(let r in this._layers){let i=this._layers[r];i.retainPriorGlobalState(e,t);let a=i.getLayoutAffectingGlobalStateRefs(),o=i.getPaintAffectingGlobalStateRefs(),s=i.getVisibilityAffectingGlobalStateRefs();for(let t of e){if(a.has(t)&&n.add(i.source),o.has(t))for(let{name:e,value:n}of o.get(t))this._updatePaintProperty(i,e,n,{validate:!1});s?.has(t)&&(i.recalculateVisibility(),this._updateLayer(i))}}let i={now:jn(),transition:this.getTransition()};this.light?.applyGlobalStateChange(e,t,i),this.sky?.applyGlobalStateChange(e,t,i),this.dispatcher.broadcast(`UGS`,r);for(let e in this.tileManagers)n.has(e)&&(this._reloadSource(e),this._changed=!0)}async loadURL(e,t={},n){this.fire(new ur(`dataloading`)),t.validate=typeof t.validate!=`boolean`||t.validate,this._loadStyleRequest=new AbortController;let r=this._loadStyleRequest;try{let i=await this.map._requestManager.transformRequest(e,`Style`);Tn(r.signal);let a=await Qn(i,r);this._loadStyleRequest===r&&(this._loadStyleRequest=null),this._load(a.data,t,n)}catch(e){this._loadStyleRequest===r&&(this._loadStyleRequest=null),e&&!r.signal.aborted&&this.fire(new I(mt(e)))}}loadJSON(e,t={},n){this.fire(new ur(`dataloading`)),this._frameRequest=new AbortController,kn.frameAsync(this._frameRequest,this.map._ownerWindow).then(()=>{this._frameRequest=null,t.validate=t.validate!==!1,this._load(e,t,n)}).catch(()=>{})}loadEmpty(){this.fire(new ur(`dataloading`)),this._load(kk,{validate:!1})}_load(e,t,n){let r=t.transformStyle?t.transformStyle(n,e):e;if(!(t.validate&&hl(this,r))){r={...r},this._loaded=!0,this.stylesheet=r;for(let e in r.sources)this.addSource(e,r.sources[e],{validate:!1});r.sprite?this._loadSprite(r.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(r.glyphs),this.glyphManager.setFontFaces(r[`font-faces`]),this._createLayers(),this.light=new Ky(this.stylesheet.light??{},this._globalState),this._setProjectionInternal(this.stylesheet.projection?.type||`mercator`),this.sky=new Yy(this.stylesheet.sky,this._globalState),this.sky.setEventedParent(this),this.map.setTerrain(this.stylesheet.terrain??null,{validate:!1}),this.fire(new ur(`data`)),this.fire(new lr)}}_createLayers(){let e=Cr(this.stylesheet.layers);this.setGlobalState(this.stylesheet.state??null),this.dispatcher.broadcast(`SL`,e),this._order=e.map(e=>e.id),this._layers={},this._serializedLayers=null;for(let t of e){let e=Sy(t,this._globalState);if(e.setEventedParent(this,{layer:{id:t.id}}),this._layers[t.id]=e,Jl(e)&&this.tileManagers[e.source]){let n=t.paint?.[`raster-fade-duration`]??e.paint.get(`raster-fade-duration`);this.tileManagers[e.source].setRasterFadeDuration(n)}}}async _loadSprite(e,t=!1,n=void 0){this.imageManager.setLoaded(!1);let r=new AbortController;this._spriteRequest=r;let i;try{let n=await Ty(e,this.map._requestManager,this.map.getPixelRatio(),r);if(!n)return;for(let e in n){let{loaded:r,removed:i}=this.imageManager.setSpriteImages(e,n[e]);this._markImagesChanged(i),t&&this._markImagesChanged(r)}}catch(e){i=e,r.signal.aborted||this.fire(new I(i))}finally{this._spriteRequest=null,this.imageManager.setLoaded(!0),t&&(this._changed=!0),this.dispatcher.broadcast(`SI`,this.imageManager.listImages()),this.fire(new ur(`data`)),n?.(i)}}_unloadSprite(){this._markImagesChanged(this.imageManager.removeAllSpriteImages()),this._imagesListDirty=!0,this._changed=!0,this.fire(new ur(`data`))}_validateLayer(e){let t=this.tileManagers[e.source];if(!t)return;let n=e.sourceLayer;if(!n)return;let r=t.getSource();(r.type===`geojson`||r.vectorLayerIds&&!r.vectorLayerIds.includes(n))&&this.fire(new I(Error(`Source layer "${n}" does not exist on source "${r.id}" as specified by style layer "${e.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let e in this.tileManagers)if(!this.tileManagers[e].loaded())return!1;return this.imageManager.isLoaded()}_serializeByIds(e,t=!1){let n=this._serializedAllLayers();if(!e||e.length===0)return Object.values(t?qt(n):n);let r=[];for(let i of e)if(n[i]){let e=t?qt(n[i]):n[i];r.push(e)}return r}_serializedAllLayers(){let e=this._serializedLayers;if(e)return e;e=this._serializedLayers={};let t=Object.keys(this._layers);for(let n of t){let t=this._layers[n];t.type!==`custom`&&(e[n]=t.serialize())}return e}hasTransitions(){if(this.light?.hasTransition()||this.sky?.hasTransition()||this.projection?.hasTransition())return!0;for(let e in this.tileManagers)if(this.tileManagers[e].hasTransition())return!0;for(let e in this._layers)if(this._layers[e].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw Error(`Style is not done loading.`)}update(e){if(!this._loaded)return;let t=this._changed;if(t){this._imagesListDirty&&=(this.dispatcher.broadcast(`SI`,this.imageManager.listImages()),!1);let t=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);(t.length||n.length)&&this._updateWorkerLayers(t,n);for(let e in this._updatedSources){let t=this._updatedSources[e];if(t===`reload`)this._reloadSource(e);else if(t===`clear`)this._clearSource(e);else throw Error(`Invalid action ${t}`)}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let t in this._updatedPaintProps)this._layers[t].updateTransitions(e);this._resetUpdates()}let n={};for(let e in this.tileManagers){let t=this.tileManagers[e];n[e]=t.used,t.used=!1}let r=this.imageManager.listImages();for(let t of this._order){let n=this._layers[t];n.recalculate(e,r),!n.isHidden(e.zoom)&&n.source&&(this.tileManagers[n.source].used=!0)}for(let e in n){let t=this.tileManagers[e];!!n[e]!=!!t.used&&t.fire(new dr(`data`,{sourceDataType:`visibility`,sourceId:e}))}this.light.recalculate(e),this.sky.recalculate(e),this.projection.recalculate(e),this.z=e.zoom,t&&this.fire(new ur(`data`))}_updateTilesForChangedImages(){let e=Object.keys(this._changedImages);if(e.length){for(let t in this.tileManagers)this.tileManagers[t].reloadTilesForDependencies([`icons`,`patterns`],e);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let e in this.tileManagers)this.tileManagers[e].reloadTilesForDependencies([`glyphs`],[``]);this._glyphsDidChange=!1}}_updateWorkerLayers(e,t){this.dispatcher.broadcast(`UL`,{layers:this._serializeByIds(e,!1),removedIds:t})}resize(){for(let e of this._order)this._layers[e].resize()}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(e,t={}){this._checkLoaded();let n=this.serialize();if(e=t.transformStyle?t.transformStyle(n,e):e,(t.validate??!0)&&hl(this,e))return!1;e=qt(e),e.layers=Cr(e.layers);let r=Ir(n,e),i=this._getOperationsToPerform(r);if(i.unimplemented.length>0)throw Error(`Unimplemented: ${i.unimplemented.join(`, `)}.`);if(i.operations.length===0)return!1;this._initialGlobalState=t.globalState??{};for(let e of i.operations)e();return this.stylesheet=e,this._serializedLayers=null,this.fire(new lr({style:this})),!0}_getOperationsToPerform(e){let t=[],n=[];for(let r of e)switch(r.command){case`setCenter`:case`setZoom`:case`setBearing`:case`setPitch`:case`setRoll`:continue;case`addLayer`:{let[e,n]=r.args;t.push(()=>this.addLayer(e,n));break}case`removeLayer`:{let[e]=r.args;t.push(()=>this.removeLayer(e));break}case`setPaintProperty`:{let[e,n,i]=r.args;t.push(()=>this.setPaintProperty(e,n,i));break}case`setLayoutProperty`:{let[e,n,i]=r.args;t.push(()=>this.setLayoutProperty(e,n,i));break}case`setFilter`:{let[e,n]=r.args;t.push(()=>this.setFilter(e,n));break}case`addSource`:{let[e,n]=r.args;t.push(()=>this.addSource(e,n));break}case`removeSource`:{let[e]=r.args;t.push(()=>this.removeSource(e));break}case`setLayerZoomRange`:{let[e,n,i]=r.args;t.push(()=>this.setLayerZoomRange(e,n,i));break}case`setLight`:{let[e]=r.args;t.push(()=>this.setLight(e));break}case`setGeoJSONSourceData`:{let[e,n]=r.args;t.push(()=>this.setGeoJSONSourceData(e,n));break}case`setGlyphs`:{let[e]=r.args;t.push(()=>this.setGlyphs(e));break}case`setFontFaces`:{let[e]=r.args;t.push(()=>this.setFontFaces(e));break}case`setSprite`:{let[e]=r.args;t.push(()=>this.setSprite(e));break}case`setTerrain`:{let[e]=r.args;t.push(()=>this.map.setTerrain(e));break}case`setSky`:{let[e]=r.args;t.push(()=>this.setSky(e));break}case`setProjection`:{let[e]=r.args;t.push(()=>this.setProjection(e));break}case`setGlobalState`:{let[e]=r.args;t.push(()=>this.setGlobalState(e));break}case`setTransition`:t.push(()=>{});break;default:n.push(r.command)}return{operations:t,unimplemented:n}}addImage(e,t){if(this.getImage(e)){this.fire(new I(Error(`An image named "${e}" already exists.`)));return}this.imageManager.addImage(e,t),this._afterImageUpdated(e)}updateImage(e,t){this.imageManager.updateImage(e,t)}getImage(e){return this.imageManager.getImage(e)}setMissingImageResolver(e){this.imageManager.setMissingImageResolver(e)}removeImage(e){if(!this.getImage(e)){this.fire(new I(Error(`An image named "${e}" does not exist.`)));return}this.imageManager.removeImage(e),this._afterImageUpdated(e)}_markImagesChanged(e){for(let t of e)this._changedImages[t]=!0}_afterImageUpdated(e){this._changedImages[e]=!0,this._imagesListDirty=!0,this._changed=!0,this.fire(new ur(`data`))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,t,n={}){if(this._checkLoaded(),this.tileManagers[e]!==void 0)throw Error(`Source "${e}" already exists.`);if(!t.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(t).join(`, `)}.`);if(pl.has(t.type)&&this._validate(fl.source,`sources.${e}`,t,null,n))return;this.map?._collectResourceTiming&&(t.collectResourceTiming=!0);let r=this.tileManagers[e]=new UE(e,t,this.dispatcher);r.style=this,r.setEventedParent(this,()=>({isSourceLoaded:r.loaded(),source:r.serialize(),sourceId:e})),r.onAdd(this.map),this._changed=!0}removeSource(e){if(this._checkLoaded(),this.tileManagers[e]===void 0)throw Error(`There is no source with this ID=${e}`);for(let t in this._layers)if(this._layers[t].source===e)return this.fire(new I(Error(`Source "${e}" cannot be removed while layer "${t}" is using it.`)));let t=this.tileManagers[e];delete this.tileManagers[e],delete this._updatedSources[e],t.fire(new dr(`data`,{sourceDataType:`metadata`,sourceId:e})),t.setEventedParent(null),t.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(e,t){if(this._checkLoaded(),this.tileManagers[e]===void 0)throw Error(`There is no source with this ID=${e}`);let n=this.tileManagers[e].getSource();if(n.type!==`geojson`)throw Error(`geojsonSource.type is ${n.type}, which is !== 'geojson`);n.setData(t),this._changed=!0}getSource(e){return this.tileManagers[e]?.getSource()}addLayer(e,t,n={}){this._checkLoaded();let r=e.id;if(this.getLayer(r)){this.fire(new I(Error(`Layer "${r}" already exists on this map.`)));return}let i;if(e.type===`custom`){if(gl(this,yy(e)))return;i=Sy(e,this._globalState)}else{if(`source`in e&&typeof e.source==`object`&&(this.addSource(r,e.source),e=qt(e),e=P(e,{source:r})),this._validate(fl.layer,`layers.${r}`,e,{arrayIndex:-1},n))return;i=Sy(e,this._globalState),this._validateLayer(i),i.setEventedParent(this,{layer:{id:r}})}let a=t?this._order.indexOf(t):this._order.length;if(t&&a===-1){this.fire(new I(Error(`Cannot add layer "${r}" before non-existing layer "${t}".`)));return}if(this._order.splice(a,0,r),this._layerOrderChanged=!0,this._layers[r]=i,this._removedLayers[r]&&i.source&&i.type!==`custom`){let e=this._removedLayers[r];delete this._removedLayers[r],e.type===i.type?(this._updatedSources[i.source]=`reload`,this.tileManagers[i.source].pause()):this._updatedSources[i.source]=`clear`}this._updateLayer(i),i.onAdd&&i.onAdd(this.map)}moveLayer(e,t){if(this._checkLoaded(),this._changed=!0,!this._layers[e]){this.fire(new I(Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));return}if(e===t)return;if(t&&!this._order.includes(t)){this.fire(new I(Error(`Cannot move layer "${e}" before non-existing layer "${t}".`)));return}let n=this._order.indexOf(e);this._order.splice(n,1);let r=t?this._order.indexOf(t):this._order.length;this._order.splice(r,0,e),this._layerOrderChanged=!0}removeLayer(e){this._checkLoaded();let t=this._layers[e];if(!t){this.fire(new I(Error(`Cannot remove non-existing layer "${e}".`)));return}t.setEventedParent(null);let n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=t,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],t.type===`symbol`&&t.source&&this.tileManagers[t.source]?.resetMaxContentElevation(),t.onRemove&&t.onRemove(this.map)}getLayer(e){return this._layers[e]}getLayersOrder(){return[...this._order]}hasLayer(e){return e in this._layers}setLayerZoomRange(e,t,n){this._checkLoaded();let r=this.getLayer(e);if(!r){this.fire(new I(Error(`Cannot set the zoom range of non-existing layer "${e}".`)));return}(r.minzoom!==t||r.maxzoom!==n)&&(t!=null&&(r.minzoom=t),n!=null&&(r.maxzoom=n),this._updateLayer(r))}setFilter(e,t,n={}){this._checkLoaded();let r=this.getLayer(e);if(!r){this.fire(new I(Error(`Cannot filter non-existing layer "${e}".`)));return}if(!Kt(r.filter,t)){if(t==null){r.setFilter(void 0),this._updateLayer(r);return}this._validate(fl.filter,`layers.${r.id}.filter`,t,null,n)||(r.setFilter(qt(t)),this._updateLayer(r))}}getFilter(e){return qt(this.getLayer(e).filter)}setLayoutProperty(e,t,n,r={}){this._checkLoaded();let i=this.getLayer(e);if(!i){this.fire(new I(Error(`Cannot style non-existing layer "${e}".`)));return}Kt(i.getLayoutProperty(t),n)||(i.setLayoutProperty(t,n,r),this._updateLayer(i))}getLayoutProperty(e,t){let n=this.getLayer(e);if(!n){this.fire(new I(Error(`Cannot get style of non-existing layer "${e}".`)));return}return n.getLayoutProperty(t)}setPaintProperty(e,t,n,r={}){this._checkLoaded();let i=this.getLayer(e);if(!i){this.fire(new I(Error(`Cannot style non-existing layer "${e}".`)));return}Kt(i.getPaintProperty(t),n)||this._updatePaintProperty(i,t,n,r)}_updatePaintProperty(e,t,n,r={}){e.setPaintProperty(t,n,r)&&this._updateLayer(e),Jl(e)&&t===`raster-fade-duration`&&this.tileManagers[e.source].setRasterFadeDuration(n),this._changed=!0,this._updatedPaintProps[e.id]=!0,e.type===`symbol`&&this.triggerSymbolPlacement(),this._serializedLayers=null}getPaintProperty(e,t){return this.getLayer(e).getPaintProperty(t)}setFeatureState(e,t){this._checkLoaded();let n=e.source,r=e.sourceLayer,i=this.tileManagers[n];if(i===void 0){this.fire(new I(Error(`The source '${n}' does not exist in the map's style.`)));return}let a=i.getSource().type;if(a===`geojson`&&r){this.fire(new I(Error(`GeoJSON sources cannot have a sourceLayer parameter.`)));return}if(a===`vector`&&!r){this.fire(new I(Error(`The sourceLayer parameter must be provided for vector source types.`)));return}if(e.id===void 0){this.fire(new I(Error(`The feature id parameter must be provided.`)));return}let o=[`__proto__`,`constructor`,`prototype`];if(t&&Object.keys(t).some(e=>o.includes(e))){this.fire(new I(Error(`The feature state should not include one of the following keys: ${o}`)));return}i.setFeatureState(r,e.id,t)}removeFeatureState(e,t){this._checkLoaded();let n=e.source,r=this.tileManagers[n];if(r===void 0){this.fire(new I(Error(`The source '${n}' does not exist in the map's style.`)));return}let i=r.getSource().type,a=i===`vector`?e.sourceLayer:void 0;if(i===`vector`&&!a){this.fire(new I(Error(`The sourceLayer parameter must be provided for vector source types.`)));return}if(t&&typeof e.id!=`string`&&typeof e.id!=`number`){this.fire(new I(Error(`A feature id is required to remove its specific state property.`)));return}r.removeFeatureState(a,e.id,t)}getFeatureState(e){this._checkLoaded();let t=e.source,n=e.sourceLayer,r=this.tileManagers[t];if(r===void 0){this.fire(new I(Error(`The source '${t}' does not exist in the map's style.`)));return}if(r.getSource().type===`vector`&&!n){this.fire(new I(Error(`The sourceLayer parameter must be provided for vector source types.`)));return}return e.id===void 0&&this.fire(new I(Error(`The feature id parameter must be provided.`))),r.getFeatureState(n,e.id)}getTransition(){return P({duration:300,delay:0},this.stylesheet?.transition)}serialize(){if(!this._loaded)return;let e=Wt(this.tileManagers,e=>e.serialize()),t=this._serializeByIds(this._order,!0),n=this.map.getTerrain()||void 0,r=this.stylesheet;return Gt({version:r.version,name:r.name,metadata:r.metadata,light:r.light,sky:r.sky,center:r.center,zoom:r.zoom,bearing:r.bearing,pitch:r.pitch,sprite:r.sprite,glyphs:r.glyphs,"font-faces":r[`font-faces`],transition:r.transition,projection:r.projection,state:r.state,sources:e,layers:t,terrain:n},e=>e!==void 0)}_updateLayer(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&this.tileManagers[e.source].getSource().type!==`raster`&&(this._updatedSources[e.source]=`reload`,this.tileManagers[e.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(e){let t=e=>this._layers[e].type===`fill-extrusion`,n={},r=[];for(let i=this._order.length-1;i>=0;i--){let a=this._order[i];if(t(a)){n[a]=i;for(let t of e){let e=t[a];if(e)for(let t of e)r.push(t)}}}r.sort((e,t)=>t.intersectionZ-e.intersectionZ);let i=[];for(let a=this._order.length-1;a>=0;a--){let o=this._order[a];if(t(o))for(let e=r.length-1;e>=0;e--){let t=r[e].feature;if(n[t.layer.id]<a)break;i.push(t),r.pop()}else for(let t of e){let e=t[o];if(e)for(let t of e)i.push(t.feature)}}return i}queryRenderedFeatures(e,t,n){t?.filter&&this._validate(fl.filter,`queryRenderedFeatures.filter`,t.filter,null,t);let r={};if(t?.layers){if(!(Array.isArray(t.layers)||t.layers instanceof Set))return this.fire(new I(Error(`parameters.layers must be an Array or a Set of strings`))),[];for(let e of t.layers){let t=this._layers[e];if(!t)return this.fire(new I(Error(`The layer '${e}' does not exist in the map's style and cannot be queried for features.`))),[];r[t.source]=!0}}let i=[];t.availableImages=this.imageManager.listImages();let a=this._serializedAllLayers(),o=t.layers instanceof Set?t.layers:Array.isArray(t.layers)?new Set(t.layers):null,s={...t,layers:o,globalState:this._globalState};for(let o in this.tileManagers)(!t.layers||r[o])&&i.push(bb(this.tileManagers[o],this._layers,a,e,s,n,this.map.terrain?(e,t,n)=>this.map.terrain.getElevation(e,t,n):void 0));return this.placement&&i.push(xb(this._layers,a,this.tileManagers,e,s,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(i)}querySourceFeatures(e,t){t?.filter&&this._validate(fl.filter,`querySourceFeatures.filter`,t.filter,null,t);let n=this.tileManagers[e];return n?Sb(n,t?{...t,globalState:this._globalState}:{globalState:this._globalState}):[]}getLight(){return this.light.getLight()}setLight(e,t={}){this._checkLoaded();let n=this.light.getLight(),r=!1;for(let t in e)if(!Kt(e[t],n[t])){r=!0;break}if(!r)return;let i={now:jn(),transition:P({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,t),this.light.updateTransitions(i)}getProjection(){return this.stylesheet?.projection}setProjection(e){this._checkLoaded();let t=e??{type:`mercator`};if(this.stylesheet.projection=e,this.projection){if(this.projection.name===t.type)return;this.projection.destroy(),delete this.projection}this._setProjectionInternal(t.type)}getSky(){return this.stylesheet?.sky}setSky(e,t={}){this._checkLoaded();let n=this.getSky(),r=!1;if(!e&&!n)return;if(e&&!n)r=!0;else if(!e&&n)r=!0;else for(let t in e)if(!Kt(e[t],n[t])){r=!0;break}if(!r)return;let i={now:jn(),transition:P({duration:300,delay:0},this.stylesheet.transition)};this.sky.setSky(e,t)&&(this.stylesheet.sky=e,this.sky.updateTransitions(i))}_setProjectionInternal(e){let t=Ok(e,this.map._camera?.transform.constrainOverride,this._globalState);this.projection=t.projection,this.map.migrateProjection(t.transform,t.cameraHelper);for(let e in this.tileManagers)this.tileManagers[e].reload()}_validate(e,t,n,r,i={}){return i.validate!==!1&&_l(this,e,{key:t,style:this.serialize(),value:n,...r},i)}_remove(e=!0){this._frameRequest&&=(this._frameRequest.abort(),null),this._loadStyleRequest&&=(this._loadStyleRequest.abort(),null),this._spriteRequest&&=(this._spriteRequest.abort(),null),pE().off(uE,this._rtlPluginLoaded);for(let e in this._layers)this._layers[e].setEventedParent(null);for(let e in this.tileManagers){let t=this.tileManagers[e];t.setEventedParent(null),t.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),e&&this.dispatcher.broadcast(`RM`,void 0),this.dispatcher.remove(e)}_clearSource(e){this.tileManagers[e].clearTiles()}_reloadSource(e){this.tileManagers[e].resume(),this.tileManagers[e].reload()}_updateSources(e){for(let t in this.tileManagers)this.tileManagers[t].update(e,this.map.terrain)}_generateCollisionBoxes(){for(let e in this.tileManagers)this._reloadSource(e)}triggerSymbolPlacement(){this._symbolPlacementTriggered=!0}_placementInputsChanged(e,t,n){let r=this.pauseablePlacement;return!r||this._symbolPlacementTriggered||this._placedProjectionTransition!==this.projection?.transitionState||r._showCollisionBoxes!==t||r.placement.collisionGroups.crossSourceCollisions!==n||r.placement.transform.renderWorldCopies!==e.renderWorldCopies||!be(r.placement.transform.modelViewProjectionMatrix,e.modelViewProjectionMatrix)}_updatePlacement(e,t,n,r,i=!1){let a=!1,o=!1,s={};for(let t of this._order){let n=this._layers[t];if(n.type!==`symbol`)continue;if(!s[n.source]){let e=this.tileManagers[n.source];s[n.source]=e.getRenderableIds(!0).map(t=>e.getTileByID(t)).sort((e,t)=>t.tileID.overscaledZ-e.tileID.overscaledZ||(e.tileID.isLessThan(t.tileID)?-1:1))}let r=this.crossTileSymbolIndex.addLayer(n,s[n.source],e.center.lng);a||=r}this.crossTileSymbolIndex.pruneUnusedLayers(this._order),i||=this._layerOrderChanged||n===0;let c=a||this._placementInputsChanged(e,t,r),l=this.pauseablePlacement?.isDone()&&!this.placement.stillRecent(jn(),e.zoom);if((i||!this.pauseablePlacement||l&&(c||this.placement.stale))&&(this._symbolPlacementTriggered=!1,this._placedProjectionTransition=this.projection?.transitionState,this.pauseablePlacement=new zD(e,this.map.terrain,this._order,i,t,n,r,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?c&&this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,s),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(jn()),o=!0),a&&this.pauseablePlacement.placement.setStale()),o||a)for(let e of this._order){let t=this._layers[e];t.type===`symbol`&&this.placement.updateLayerOpacities(t,s[t.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(jn())}_releaseSymbolFadeTiles(){for(let e in this.tileManagers)this.tileManagers[e].releaseSymbolFadeTiles()}async getImages(e,t){let n=await this.imageManager.getImages(t.icons);this._updateTilesForChangedImages();let r=this.tileManagers[t.source];return r&&r.setDependencies(t.tileID.key,t.type,t.icons),n}async getGlyphs(e,t){let n=await this.glyphManager.getGlyphs(t.stacks),r=this.tileManagers[t.source];return r&&r.setDependencies(t.tileID.key,t.type,[``]),n}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,t={}){this._checkLoaded(),!(e&&this._validate(fl.glyphs,`glyphs`,e,null,t))&&(this._changed=!0,this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e))}getFontFaces(){return this.stylesheet[`font-faces`]||null}setFontFaces(e){this._checkLoaded(),this._changed=!0,this._glyphsDidChange=!0,this.stylesheet[`font-faces`]=e,this.glyphManager.setFontFaces(e)}async getDashes(e,t){let n={};for(let[e,r]of Object.entries(t.dashes))n[e]=this.lineAtlas.getDash(r.dasharray,r.round);return n}addSprite(e,t,n={},r){this._checkLoaded();let i=[{id:e,url:t}],a=[...Cy(this.stylesheet.sprite),...i];this._validate(fl.sprite,`sprite`,a,null,n)||(this.stylesheet.sprite=a,this._loadSprite(i,!0,r))}removeSprite(e){this._checkLoaded();let t=Cy(this.stylesheet.sprite);if(!t.find(t=>t.id===e)){this.fire(new I(Error(`Sprite "${e}" doesn't exists on this map.`)));return}let n=this.imageManager.removeSpriteImages(e);this._markImagesChanged(n),t.splice(t.findIndex(t=>t.id===e),1),this.stylesheet.sprite=t.length>0?t:void 0,this._imagesListDirty=!0,this._changed=!0,this.fire(new ur(`data`))}getSprite(){return Cy(this.stylesheet.sprite)}setSprite(e,t={},n){this._checkLoaded(),!(e&&this._validate(fl.sprite,`sprite`,e,null,t))&&(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,n):(this._unloadSprite(),n&&n(null)))}destroy(){this._frameRequest&&=(this._frameRequest.abort(),null),this._loadStyleRequest&&=(this._loadStyleRequest.abort(),null),this._spriteRequest&&=(this._spriteRequest.abort(),null);for(let e in this.tileManagers){let t=this.tileManagers[e];t.setEventedParent(null),t.onRemove(this.map)}this.tileManagers={},this.imageManager&&(this.imageManager.setEventedParent(null),this.imageManager.destroy(),this.patternAtlas.destroy()),this.glyphManager&&this.glyphManager.destroy();for(let e in this._layers){let t=this._layers[e];t.setEventedParent(null),t.onRemove&&t.onRemove(this.map)}this._setInitialValues(),this.setEventedParent(null),this.dispatcher.unregisterMessageHandler(`GG`),this.dispatcher.unregisterMessageHandler(`GI`),this.dispatcher.unregisterMessageHandler(`GDA`),this.dispatcher.remove(!0),this._listeners={},this._oneTimeListeners={}}},jk=$l([{name:`a_pos`,type:`Int16`,components:2},{name:`a_texture_pos`,type:`Int16`,components:2}]),Mk=class{constructor(e,t,n){this.context=e;let r=e.gl;this.buffer=r.createBuffer(),this.dynamicDraw=!!n,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?r.DYNAMIC_DRAW:r.STATIC_DRAW),this.dynamicDraw||t.freeBufferAfterUpload()}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){let t=this.context.gl;if(!this.dynamicDraw)throw Error(`Attempted to update data while not in dynamic mode.`);this.context.unbindVAO(),this.bind(),t.bufferSubData(t.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){let e=this.context.gl;this.buffer&&(e.deleteBuffer(this.buffer),delete this.buffer)}},Nk={Int8:`BYTE`,Uint8:`UNSIGNED_BYTE`,Int16:`SHORT`,Uint16:`UNSIGNED_SHORT`,Int32:`INT`,Uint32:`UNSIGNED_INT`,Float32:`FLOAT`},Pk=class{constructor(e,t,n,r){this.length=t.length,this.attributes=n,this.itemSize=t.bytesPerElement,this.dynamicDraw=r,this.context=e;let i=e.gl;this.buffer=i.createBuffer(),e.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||t.freeBufferAfterUpload()}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){if(e.length!==this.length)throw Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);let t=this.context.gl;this.bind(),t.bufferSubData(t.ARRAY_BUFFER,0,e.arrayBuffer)}enableAttributes(e,t){for(let n of this.attributes){let r=t.attributes[n.name];r!==void 0&&e.enableVertexAttribArray(r.location)}}setVertexAttribPointers(e,t,n){for(let r of this.attributes){let i=t.attributes[r.name];if(i!==void 0){let t=r.offset+this.itemSize*(n||0);i.isInteger?e.vertexAttribIPointer(i.location,r.components,e[Nk[r.type]],this.itemSize,t):e.vertexAttribPointer(i.location,r.components,e[Nk[r.type]],!1,this.itemSize,t)}}}destroy(){let e=this.context.gl;this.buffer&&(e.deleteBuffer(this.buffer),delete this.buffer)}},Fk=class{constructor(e){this.gl=e.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(e){}getDefault(){return this.default}setDefault(){this.set(this.default)}},Ik=class extends Fk{getDefault(){return W.transparent}set(e){let t=this.current;(e.r!==t.r||e.g!==t.g||e.b!==t.b||e.a!==t.a||this.dirty)&&(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}},Lk=class extends Fk{getDefault(){return 1}set(e){(e!==this.current||this.dirty)&&(this.gl.clearDepth(e),this.current=e,this.dirty=!1)}},Rk=class extends Fk{getDefault(){return 0}set(e){(e!==this.current||this.dirty)&&(this.gl.clearStencil(e),this.current=e,this.dirty=!1)}},zk=class extends Fk{getDefault(){return[!0,!0,!0,!0]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}},Bk=class extends Fk{getDefault(){return!0}set(e){(e!==this.current||this.dirty)&&(this.gl.depthMask(e),this.current=e,this.dirty=!1)}},Vk=class extends Fk{getDefault(){return 255}set(e){(e!==this.current||this.dirty)&&(this.gl.stencilMask(e),this.current=e,this.dirty=!1)}},Hk=class extends Fk{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(e){let t=this.current;(e.func!==t.func||e.ref!==t.ref||e.mask!==t.mask||this.dirty)&&(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=!1)}},Uk=class extends Fk{getDefault(){let e=this.gl;return[e.KEEP,e.KEEP,e.KEEP]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||this.dirty)&&(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=!1)}},Wk=class extends Fk{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),this.current=e,this.dirty=!1}},Gk=class extends Fk{getDefault(){return[0,1]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||this.dirty)&&(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=!1)}},Kk=class extends Fk{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.DEPTH_TEST):t.disable(t.DEPTH_TEST),this.current=e,this.dirty=!1}},qk=class extends Fk{getDefault(){return this.gl.LESS}set(e){(e!==this.current||this.dirty)&&(this.gl.depthFunc(e),this.current=e,this.dirty=!1)}},Jk=class extends Fk{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.BLEND):t.disable(t.BLEND),this.current=e,this.dirty=!1}},Yk=class extends Fk{getDefault(){let e=this.gl;return[e.ONE,e.ZERO]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||this.dirty)&&(this.gl.blendFunc(e[0],e[1]),this.current=e,this.dirty=!1)}},Xk=class extends Fk{getDefault(){return W.transparent}set(e){let t=this.current;(e.r!==t.r||e.g!==t.g||e.b!==t.b||e.a!==t.a||this.dirty)&&(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}},Zk=class extends Fk{getDefault(){return this.gl.FUNC_ADD}set(e){(e!==this.current||this.dirty)&&(this.gl.blendEquation(e),this.current=e,this.dirty=!1)}},Qk=class extends Fk{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.CULL_FACE):t.disable(t.CULL_FACE),this.current=e,this.dirty=!1}},$k=class extends Fk{getDefault(){return this.gl.BACK}set(e){(e!==this.current||this.dirty)&&(this.gl.cullFace(e),this.current=e,this.dirty=!1)}},eA=class extends Fk{getDefault(){return this.gl.CCW}set(e){(e!==this.current||this.dirty)&&(this.gl.frontFace(e),this.current=e,this.dirty=!1)}},tA=class extends Fk{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.useProgram(e),this.current=e,this.dirty=!1)}},nA=class extends Fk{getDefault(){return this.gl.TEXTURE0}set(e){(e!==this.current||this.dirty)&&(this.gl.activeTexture(e),this.current=e,this.dirty=!1)}},rA=class extends Fk{getDefault(){let e=this.gl;return[0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}},iA=class extends Fk{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,e),this.current=e,this.dirty=!1}},aA=class extends Fk{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindRenderbuffer(t.RENDERBUFFER,e),this.current=e,this.dirty=!1}},oA=class extends Fk{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindTexture(t.TEXTURE_2D,e),this.current=e,this.dirty=!1}},sA=class extends Fk{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,e),this.current=e,this.dirty=!1}},cA=class extends Fk{getDefault(){return null}set(e){let t=this.gl;t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=!1}},lA=class extends Fk{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.bindVertexArray(e),this.current=e,this.dirty=!1)}},uA=class extends Fk{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=!1}},dA=class extends Fk{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=!1}},fA=class extends Fk{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=!1}},pA=class extends Fk{constructor(e,t){super(e),this.context=e,this.parent=t}getDefault(){return null}},mA=class extends pA{setDirty(){this.dirty=!0}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),this.current=e,this.dirty=!1}},hA=class extends pA{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e),this.current=e,this.dirty=!1}},gA=class extends pA{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e),this.current=e,this.dirty=!1}},_A=class{constructor(e,t,n,r,i){this.context=e,this.width=t,this.height=n;let a=e.gl,o=this.framebuffer=a.createFramebuffer();if(this.colorAttachment=new mA(e,o),r)this.depthAttachment=i?new gA(e,o):new hA(e,o);else if(i)throw Error(`Stencil cannot be set without depth`)}destroy(){let e=this.context.gl,t=this.colorAttachment.get();if(t&&e.deleteTexture(t),this.depthAttachment){let t=this.depthAttachment.get();t&&e.deleteRenderbuffer(t)}e.deleteFramebuffer(this.framebuffer)}},vA={ProjectionUBO:0,TerrainUBO:1,FrameUBO:2};function yA(e,t){for(let[n,r]of Object.entries(vA)){let i=e.getUniformBlockIndex(t,n);i!==e.INVALID_INDEX&&e.uniformBlockBinding(t,i,r)}}var bA={float:[1,1],int:[1,1],vec2:[2,2],vec4:[4,4],mat4:[16,4]};function xA(e){let t={},n=0;for(let{name:r,type:i}of e){let[e,a]=bA[i];n=Math.ceil(n/a)*a,t[r]=n,n+=e}return{offsets:t,contentWords:n,sizeWords:Math.ceil(n/4)*4}}var SA=class{constructor(e,t,n){this.context=e,this.binding=t,this.contentWords=n.contentWords;let r=e.gl;this.buffer=r.createBuffer(),r.bindBuffer(r.UNIFORM_BUFFER,this.buffer),r.bufferData(r.UNIFORM_BUFFER,n.sizeWords*4,r.DYNAMIC_DRAW),this.uploaded=new Float32Array(n.sizeWords),this.pending=new Float32Array(n.sizeWords),this.uploadedWords=new Uint32Array(this.uploaded.buffer),this.pendingWords=new Uint32Array(this.pending.buffer),this.hasData=!1}upload(){let e=this.context.gl,t=!this.hasData;if(!t){let e=this.pendingWords,n=this.uploadedWords;for(let r=0;r<this.contentWords;r++)if(e[r]!==n[r]){t=!0;break}}if(!t){this.bind();return}e.bindBufferBase(e.UNIFORM_BUFFER,this.binding,this.buffer),this.context.boundUniformBuffers[this.binding]=this.buffer,e.bufferData(e.UNIFORM_BUFFER,this.pending,e.DYNAMIC_DRAW),this.uploaded.set(this.pending),this.hasData=!0}bind(){let e=this.context.boundUniformBuffers;if(e[this.binding]===this.buffer)return;let t=this.context.gl;t.bindBufferBase(t.UNIFORM_BUFFER,this.binding,this.buffer),e[this.binding]=this.buffer}destroy(){let e=this.context.gl;this.buffer&&(e.deleteBuffer(this.buffer),delete this.buffer)}},CA=xA([{name:`u_projection_matrix`,type:`mat4`},{name:`u_projection_fallback_matrix`,type:`mat4`},{name:`u_projection_tile_mercator_coords`,type:`vec4`},{name:`u_projection_clipping_plane`,type:`vec4`},{name:`u_projection_transition`,type:`float`},{name:`u_projection_clip_antimeridian`,type:`int`}]),wA=CA.offsets;function TA(e){return new SA(e,vA.ProjectionUBO,CA)}function EA(e,t){let n=e.pending;n.set(t.mainMatrix,wA.u_projection_matrix),n.set(t.fallbackMatrix,wA.u_projection_fallback_matrix),n.set(t.tileMercatorCoords,wA.u_projection_tile_mercator_coords),n.set(t.clippingPlane,wA.u_projection_clipping_plane),n[wA.u_projection_transition]=t.projectionTransition,e.pendingWords[wA.u_projection_clip_antimeridian]=+!!t.clipAntimeridian,e.upload()}function DA(e,t){if(!t){e.projectionUniformBuffer.bind();return}let n=t.uniformBufferKey;if(n===void 0){EA(e.projectionUniformBuffer,t);return}let r=e.keyedProjectionUniformBuffers.get(n);if(r){r.bind();return}let i=e.freeProjectionUniformBuffers.pop()??TA(e);e.keyedProjectionUniformBuffers.set(n,i),EA(i,t)}function OA(e){e.freeProjectionUniformBuffers.push(...e.keyedProjectionUniformBuffers.values()),e.keyedProjectionUniformBuffers.clear()}function kA(e){e.projectionUniformBuffer.destroy();for(let t of e.keyedProjectionUniformBuffers.values())t.destroy();for(let t of e.freeProjectionUniformBuffers)t.destroy()}var AA=xA([{name:`u_units_to_pixels`,type:`vec2`},{name:`u_world_size`,type:`vec2`},{name:`u_camera_to_center_distance`,type:`float`},{name:`u_symbol_fade_change`,type:`float`},{name:`u_aspect_ratio`,type:`float`},{name:`u_device_pixel_ratio`,type:`float`},{name:`u_viewport_size`,type:`vec2`},{name:`u_pixel_extrude_scale`,type:`vec2`},{name:`u_pitch`,type:`float`}]),jA=AA.offsets;function MA(e){return new SA(e,vA.FrameUBO,AA)}function NA(e,t,n){let r=e.pending,i=e.context.gl;r[jA.u_units_to_pixels]=1/t.pixelsToGLUnits[0],r[jA.u_units_to_pixels+1]=1/t.pixelsToGLUnits[1],r[jA.u_world_size]=i.drawingBufferWidth,r[jA.u_world_size+1]=i.drawingBufferHeight,r[jA.u_camera_to_center_distance]=t.cameraToCenterDistance,r[jA.u_symbol_fade_change]=n.fadeDuration?n.symbolFadeChange:1,r[jA.u_aspect_ratio]=t.width/t.height,r[jA.u_device_pixel_ratio]=n.pixelRatio,r[jA.u_viewport_size]=t.width,r[jA.u_viewport_size+1]=t.height,r[jA.u_pixel_extrude_scale]=1/t.width,r[jA.u_pixel_extrude_scale+1]=1/t.height,r[jA.u_pitch]=t.pitch/360*2*Math.PI,e.upload()}function PA(e,t,n){let r=e.pending;r[jA.u_world_size]=t,r[jA.u_world_size+1]=n,e.upload()}var FA=xA([{name:`u_terrain_matrix`,type:`mat4`},{name:`u_terrain_unpack`,type:`vec4`},{name:`u_terrain_dim`,type:`float`},{name:`u_terrain_exaggeration`,type:`float`}]),IA=FA.offsets;function LA(e){return new SA(e,vA.TerrainUBO,FA)}function RA(e,t){let n=e.pending;n.set(t.u_terrain_matrix,IA.u_terrain_matrix),n.set(t.u_terrain_unpack,IA.u_terrain_unpack),n[IA.u_terrain_dim]=t.u_terrain_dim,n[IA.u_terrain_exaggeration]=t.u_terrain_exaggeration,e.upload()}var zA=class{constructor(e,t,n){this.blendFunction=e,this.blendColor=t,this.mask=n}};zA.Replace=[1,0],zA.disabled=new zA(zA.Replace,W.transparent,[!1,!1,!1,!1]),zA.unblended=new zA(zA.Replace,W.transparent,[!0,!0,!0,!0]),zA.alphaBlended=new zA([1,771],W.transparent,[!0,!0,!0,!0]);var BA=class{constructor(e){this.gl=e,this.clearColor=new Ik(this),this.clearDepth=new Lk(this),this.clearStencil=new Rk(this),this.colorMask=new zk(this),this.depthMask=new Bk(this),this.stencilMask=new Vk(this),this.stencilFunc=new Hk(this),this.stencilOp=new Uk(this),this.stencilTest=new Wk(this),this.depthRange=new Gk(this),this.depthTest=new Kk(this),this.depthFunc=new qk(this),this.blend=new Jk(this),this.blendFunc=new Yk(this),this.blendColor=new Xk(this),this.blendEquation=new Zk(this),this.cullFace=new Qk(this),this.cullFaceSide=new $k(this),this.frontFace=new eA(this),this.program=new tA(this),this.activeTexture=new nA(this),this.viewport=new rA(this),this.bindFramebuffer=new iA(this),this.bindRenderbuffer=new aA(this),this.bindTexture=new oA(this),this.bindVertexBuffer=new sA(this),this.bindElementBuffer=new cA(this),this.bindVertexArray=new lA(this),this.pixelStoreUnpack=new uA(this),this.pixelStoreUnpackPremultiplyAlpha=new dA(this),this.pixelStoreUnpackFlipY=new fA(this),this.extTextureFilterAnisotropic=e.getExtension(`EXT_texture_filter_anisotropic`),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),e.getExtension(`EXT_color_buffer_half_float`),e.getExtension(`EXT_color_buffer_float`),this.boundUniformBuffers=[],this.projectionUniformBuffer=TA(this),this.keyedProjectionUniformBuffers=new Map,this.freeProjectionUniformBuffers=[],this.terrainUniformBuffer=LA(this),this.frameUniformBuffer=MA(this)}destroy(){kA(this),this.terrainUniformBuffer.destroy(),this.frameUniformBuffer.destroy()}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()}setDirty(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.bindVertexArray.dirty=!0,this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0,this.boundUniformBuffers=[]}setCustomLayerDefaults(){this.unbindVAO(),this.cullFace.setDefault(),this.activeTexture.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()}createIndexBuffer(e,t){return new Mk(this,e,t)}createVertexBuffer(e,t,n){return new Pk(this,e,t,n)}createRenderbuffer(e,t,n){let r=this.gl,i=r.createRenderbuffer();return this.bindRenderbuffer.set(i),r.renderbufferStorage(r.RENDERBUFFER,e,t,n),this.bindRenderbuffer.set(null),i}createFramebuffer(e,t,n,r){return new _A(this,e,t,n,r)}clear({color:e,depth:t,stencil:n}){let r=this.gl,i=0;e&&(i|=r.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),t!==void 0&&(i|=r.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(t),this.depthMask.set(!0)),n!==void 0&&(i|=r.STENCIL_BUFFER_BIT,this.clearStencil.set(n),this.stencilMask.set(255)),r.clear(i)}setCullFace(e){e.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(e.mode),this.frontFace.set(e.frontFace))}setDepthMode(e){e.func===this.gl.ALWAYS&&!e.mask?this.depthTest.set(!1):(this.depthTest.set(!0),this.depthFunc.set(e.func),this.depthMask.set(e.mask),this.depthRange.set(e.range))}setStencilMode(e){e.test.func===this.gl.ALWAYS&&!e.mask?this.stencilTest.set(!1):(this.stencilTest.set(!0),this.stencilMask.set(e.mask),this.stencilOp.set([e.fail,e.depthFail,e.pass]),this.stencilFunc.set({func:e.test.func,ref:e.ref,mask:e.test.mask}))}setColorMode(e){Kt(e.blendFunction,zA.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)}createVertexArray(){return this.gl.createVertexArray()}deleteVertexArray(e){this.gl.deleteVertexArray(e)}unbindVAO(){this.bindVertexArray.set(null)}},VA=class{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(e,t,n,r,i,a,o,s,c){this.context=e;let l=this.boundPaintVertexBuffers.length!==r.length;for(let e=0;!l&&e<r.length;e++)this.boundPaintVertexBuffers[e]!==r[e]&&(l=!0);!this.vao||this.boundProgram!==t||this.boundLayoutVertexBuffer!==n||l||this.boundIndexBuffer!==i||this.boundVertexOffset!==a||this.boundDynamicVertexBuffer!==o||this.boundDynamicVertexBuffer2!==s||this.boundDynamicVertexBuffer3!==c?this.freshBind(t,n,r,i,a,o,s,c):e.bindVertexArray.set(this.vao)}freshBind(e,t,n,r,i,a,o,s){let c=e.numAttributes,l=this.context,u=l.gl;this.vao&&this.destroy(),this.vao=l.createVertexArray(),l.bindVertexArray.set(this.vao),this.boundProgram=e,this.boundLayoutVertexBuffer=t,this.boundPaintVertexBuffers=n,this.boundIndexBuffer=r,this.boundVertexOffset=i,this.boundDynamicVertexBuffer=a,this.boundDynamicVertexBuffer2=o,this.boundDynamicVertexBuffer3=s,t.enableAttributes(u,e);for(let t of n)t.enableAttributes(u,e);a&&a.enableAttributes(u,e),o&&o.enableAttributes(u,e),s&&s.enableAttributes(u,e),t.bind(),t.setVertexAttribPointers(u,e,i);for(let t of n)t.bind(),t.setVertexAttribPointers(u,e,i);a&&(a.bind(),a.setVertexAttribPointers(u,e,i)),r&&r.bind(),o&&(o.bind(),o.setVertexAttribPointers(u,e,i)),s&&(s.bind(),s.setVertexAttribPointers(u,e,i)),l.currentNumAttributes=c}destroy(){this.vao&&=(this.context.deleteVertexArray(this.vao),null)}},HA=(e,t)=>({u_depth:new Y(e,t.u_depth),u_terrain:new Y(e,t.u_terrain)}),UA=(e,t)=>({u_texture:new Y(e,t.u_texture),u_ele_delta:new X(e,t.u_ele_delta),u_fog_matrix:new wd(e,t.u_fog_matrix),u_fog_color:new bd(e,t.u_fog_color),u_fog_ground_blend:new X(e,t.u_fog_ground_blend),u_fog_ground_blend_opacity:new X(e,t.u_fog_ground_blend_opacity),u_horizon_color:new bd(e,t.u_horizon_color),u_horizon_fog_blend:new X(e,t.u_horizon_fog_blend),u_is_globe_mode:new X(e,t.u_is_globe_mode)}),WA=(e,t)=>({u_ele_delta:new X(e,t.u_ele_delta)}),GA=(e,t)=>({u_tile_bounds:new yd(e,t.u_tile_bounds)}),KA=(e,t,n,r,i)=>({u_texture:0,u_ele_delta:e,u_fog_matrix:t,u_fog_color:n?n[`fog-color`]:W.white,u_fog_ground_blend:n?n[`fog-ground-blend`]:1,u_fog_ground_blend_opacity:i?0:n?Xy(r):0,u_horizon_color:n?n[`horizon-color`]:W.white,u_horizon_fog_blend:n?n[`horizon-fog-blend`]:1,u_is_globe_mode:+!!i}),qA=e=>({u_ele_delta:e}),JA=e=>({u_tile_bounds:e});function YA(e){let t=[];for(let n of e){if(n===null)continue;let e=n.split(` `);t.push(e.pop())}return t}function XA(e,t){let n=new Set([e.INT,e.INT_VEC2,e.INT_VEC3,e.INT_VEC4,e.UNSIGNED_INT,e.UNSIGNED_INT_VEC2,e.UNSIGNED_INT_VEC3,e.UNSIGNED_INT_VEC4]),r=new Set,i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let a=0;a<i;a++){let i=e.getActiveAttrib(t,a);i&&n.has(i.type)&&r.add(i.name)}return r}var ZA=class{constructor(e,t,n,r,i,a,o,s,c=[]){let l=e.gl;this.program=l.createProgram();let u=YA(t.staticAttributes),d=n?n.getBinderAttributes():[],f=u.concat(d),p=cO.prelude.staticUniforms?YA(cO.prelude.staticUniforms):[],m=t.staticUniforms?YA(t.staticUniforms):[],h=n?n.getBinderUniforms():[],g=p.concat(m).concat(h),_=[];for(let e of g)_.includes(e)||_.push(e);let v=n?n.defines():[];v.unshift(`#version 300 es`),i&&v.push(`#define OVERDRAW_INSPECTOR;`),a&&v.push(`#define TERRAIN3D;`),s&&v.push(s),c&&v.push(...c);let y=v.concat(cO.prelude.fragmentSource,o.fragmentSource,t.fragmentSource).join(`
813
- `),b=v.concat(cO.prelude.vertexSource,o.vertexSource,t.vertexSource).join(`
814
- `),x=l.createShader(l.FRAGMENT_SHADER);if(l.isContextLost()){this.failedToCreate=!0;return}l.shaderSource(x,y),l.compileShader(x),l.attachShader(this.program,x);let S=l.createShader(l.VERTEX_SHADER);if(l.isContextLost()){this.failedToCreate=!0;return}l.shaderSource(S,b),l.compileShader(S),l.attachShader(this.program,S),this.attributes={};let C={};if(this.numAttributes=f.length,l.linkProgram(this.program),!l.getProgramParameter(this.program,l.LINK_STATUS)){if(l.isContextLost()||l.getProgramParameter(this.program,l.ATTACHED_SHADERS)===0){this.failedToCreate=!0;return}throw l.getShaderParameter(x,l.COMPILE_STATUS)?l.getShaderParameter(S,l.COMPILE_STATUS)?Error(`Program failed to link: ${l.getProgramInfoLog(this.program)}`):Error(`Could not compile vertex shader: ${l.getShaderInfoLog(S)}`):Error(`Could not compile fragment shader: ${l.getShaderInfoLog(x)}`)}yA(l,this.program);let w=XA(l,this.program);for(let e of f){if(!e)continue;let t=l.getAttribLocation(this.program,e);t>=0&&(this.attributes[e]={location:t,isInteger:w.has(e)})}l.deleteShader(S),l.deleteShader(x);for(let e of _)if(e&&!C[e]){let t=l.getUniformLocation(this.program,e);t&&(C[e]=t)}this.fixedUniforms=r(e,C),this.terrainUniforms=HA(e,C),this.binderUniforms=n?n.getUniforms(e,C):[]}draw(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.terrainUniformBuffer.bind(),e.frameUniformBuffer.bind(),e.setDepthMode(n),e.setStencilMode(r),e.setColorMode(i),e.setCullFace(a),s){e.activeTexture.set(y.TEXTURE2),y.bindTexture(y.TEXTURE_2D,s.depthTexture),e.activeTexture.set(y.TEXTURE3),y.bindTexture(y.TEXTURE_2D,s.texture);for(let e in this.terrainUniforms)this.terrainUniforms[e].set(s[e]);RA(e.terrainUniformBuffer,s)}if(DA(e,c),o)for(let e in this.fixedUniforms)this.fixedUniforms[e].set(o[e]);h&&h.setUniforms(e,this.binderUniforms,p,{zoom:m});let b=0;switch(t){case y.LINES:b=2;break;case y.TRIANGLES:b=3;break;case y.LINE_STRIP:b=1}for(let n of f.get())n.vaos||={},n.vaos[l]||=new VA,n.vaos[l].bind(e,this,u,h?h.getPaintVertexBuffers():[],d,n.vertexOffset,g,_,v),y.drawElements(t,n.primitiveLength*b,y.UNSIGNED_SHORT,n.primitiveOffset*b*2)}};function QA(e,t,n){let r=1/pt(n,1,t.tileZoom),i=2**n.tileID.overscaledZ,a=n.tileSize*2**t.tileZoom/i,o=a*(n.tileID.canonical.x+n.tileID.wrap*i),s=a*n.tileID.canonical.y;return{u_image:0,u_texsize:n.imageAtlasTexture.size,u_scale:[r,e.fromScale,e.toScale],u_fade:e.t,u_pixel_coord_upper:[o>>16,s>>16],u_pixel_coord_lower:[o&65535,s&65535]}}function $A(e,t,n,r,i){let a=n.getPattern(e.from.toString()),o=n.getPattern(e.to.toString()),{width:s,height:c}=n.getPixelSize(),l=2**i.tileID.overscaledZ,u=i.tileSize*2**r.tileZoom/l,d=u*(i.tileID.canonical.x+i.tileID.wrap*l),f=u*i.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:a.tl,u_pattern_br_a:a.br,u_pattern_tl_b:o.tl,u_pattern_br_b:o.br,u_texsize:[s,c],u_mix:t.t,u_pattern_size_a:a.displaySize,u_pattern_size_b:o.displaySize,u_scale_a:t.fromScale,u_scale_b:t.toScale,u_tile_units_to_pixels:1/pt(i,1,r.tileZoom),u_pixel_coord_upper:[d>>16,f>>16],u_pixel_coord_lower:[d&65535,f&65535]}}var ej=(e,t)=>({u_lightpos:new vd(e,t.u_lightpos),u_lightpos_globe:new vd(e,t.u_lightpos_globe),u_lightintensity:new X(e,t.u_lightintensity),u_lightcolor:new vd(e,t.u_lightcolor),u_vertical_gradient:new X(e,t.u_vertical_gradient),u_opacity:new X(e,t.u_opacity),u_fill_translate:new Z(e,t.u_fill_translate)}),tj=(e,t)=>({u_lightpos:new vd(e,t.u_lightpos),u_lightpos_globe:new vd(e,t.u_lightpos_globe),u_lightintensity:new X(e,t.u_lightintensity),u_lightcolor:new vd(e,t.u_lightcolor),u_vertical_gradient:new X(e,t.u_vertical_gradient),u_height_factor:new X(e,t.u_height_factor),u_opacity:new X(e,t.u_opacity),u_fill_translate:new Z(e,t.u_fill_translate),u_image:new Y(e,t.u_image),u_texsize:new Z(e,t.u_texsize),u_pixel_coord_upper:new Z(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new Z(e,t.u_pixel_coord_lower),u_scale:new vd(e,t.u_scale),u_fade:new X(e,t.u_fade)}),nj=(e,t,n,r,i)=>{let a=Qt(t.position),o=ee();t.anchor===`viewport`&&ne(o,e.bearingInRadians),Le(a,a,o);let s=e.transformLightDirection(a),c=t.color;return{u_lightpos:a,u_lightpos_globe:s,u_lightintensity:t.intensity,u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+n,u_opacity:r,u_fill_translate:i}},rj=(e,t,n,r,i,a,o,s)=>P(nj(e,t,n,r,i),QA(o,e,s),{u_height_factor:-(2**a.overscaledZ)/s.tileSize/8}),ij=(e,t)=>({u_fill_translate:new Z(e,t.u_fill_translate)}),aj=(e,t)=>({u_image:new Y(e,t.u_image),u_texsize:new Z(e,t.u_texsize),u_pixel_coord_upper:new Z(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new Z(e,t.u_pixel_coord_lower),u_scale:new vd(e,t.u_scale),u_fade:new X(e,t.u_fade),u_sdf_pattern:new Y(e,t.u_sdf_pattern),u_fill_translate:new Z(e,t.u_fill_translate)}),oj=(e,t)=>({u_fill_translate:new Z(e,t.u_fill_translate)}),sj=(e,t)=>({u_image:new Y(e,t.u_image),u_texsize:new Z(e,t.u_texsize),u_pixel_coord_upper:new Z(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new Z(e,t.u_pixel_coord_lower),u_scale:new vd(e,t.u_scale),u_fade:new X(e,t.u_fade),u_sdf_pattern:new Y(e,t.u_sdf_pattern),u_fill_translate:new Z(e,t.u_fill_translate)}),cj=(e,t,n,r,i)=>P(QA(t,e,n),{u_fill_translate:r,u_sdf_pattern:+!!i}),lj=e=>({u_fill_translate:e}),uj=e=>({u_fill_translate:e}),dj=(e,t,n,r,i)=>cj(e,t,n,r,i),fj=(e,t)=>({u_scale_with_map:new Y(e,t.u_scale_with_map),u_pitch_with_map:new Y(e,t.u_pitch_with_map),u_extrude_scale:new Z(e,t.u_extrude_scale),u_globe_extrude_scale:new X(e,t.u_globe_extrude_scale),u_translate:new Z(e,t.u_translate)}),pj=(e,t,n,r,i)=>{let a,o,s=0;if(n.paint.get(`circle-pitch-alignment`)===`map`){let n=pt(t,1,e.zoom);a=!0,o=[n,n],s=n/(M*2**t.tileID.overscaledZ)*2*Math.PI*i}else a=!1,o=e.pixelsToGLUnits;return{u_scale_with_map:+(n.paint.get(`circle-pitch-scale`)===`map`),u_pitch_with_map:+a,u_extrude_scale:o,u_globe_extrude_scale:s,u_translate:r}},mj=(e,t)=>({u_color:new bd(e,t.u_color),u_overlay:new Y(e,t.u_overlay),u_overlay_scale:new X(e,t.u_overlay_scale)}),hj=(e,t=1)=>({u_color:e,u_overlay:0,u_overlay_scale:t}),gj=(e,t)=>({u_extrude_scale:new X(e,t.u_extrude_scale),u_intensity:new X(e,t.u_intensity),u_globe_extrude_scale:new X(e,t.u_globe_extrude_scale)}),_j=(e,t)=>({u_matrix:new wd(e,t.u_matrix),u_image:new Y(e,t.u_image),u_color_ramp:new Y(e,t.u_color_ramp),u_opacity:new X(e,t.u_opacity)}),vj=(e,t,n,r)=>{let i=pt(e,1,t)/(M*2**e.tileID.overscaledZ)*2*Math.PI*r;return{u_extrude_scale:pt(e,1,t),u_intensity:n,u_globe_extrude_scale:i}},yj=(e,t,n,r)=>{let i=ie();return ye(i,0,e.width,e.height,0,0,1),{u_matrix:i,u_image:n,u_color_ramp:r,u_opacity:t.paint.get(`heatmap-opacity`)}},bj=(e,t)=>({u_image:new Y(e,t.u_image),u_latrange:new Z(e,t.u_latrange),u_exaggeration:new X(e,t.u_exaggeration),u_altitudes:new Sd(e,t.u_altitudes),u_azimuths:new Sd(e,t.u_azimuths),u_accent:new bd(e,t.u_accent),u_method:new Y(e,t.u_method),u_shadows:new xd(e,t.u_shadows),u_highlights:new xd(e,t.u_highlights)}),xj=(e,t)=>({u_matrix:new wd(e,t.u_matrix),u_image:new Y(e,t.u_image),u_dimension:new Z(e,t.u_dimension),u_zoom:new X(e,t.u_zoom),u_unpack:new yd(e,t.u_unpack)}),Sj=(e,t,n)=>{let r=n.paint.get(`hillshade-accent-color`),i;switch(n.paint.get(`hillshade-method`)){case`basic`:i=4;break;case`combined`:i=1;break;case`igor`:i=2;break;case`multidirectional`:i=3;break;default:i=0}let a=n.getIlluminationProperties();for(let t=0;t<a.directionRadians.length;t++)n.paint.get(`hillshade-illumination-anchor`)===`viewport`&&(a.directionRadians[t]+=e.bearingInRadians);return{u_image:0,u_latrange:wj(t.tileID),u_exaggeration:n.paint.get(`hillshade-exaggeration`),u_altitudes:a.altitudeRadians,u_azimuths:a.directionRadians,u_accent:r,u_method:i,u_highlights:a.highlightColor,u_shadows:a.shadowColor}},Cj=(e,t)=>{let n=t.stride,r=ie();return ye(r,0,M,-8192,0,0,1),ue(r,r,[0,-8192,0]),{u_matrix:r,u_image:1,u_dimension:[n,n],u_zoom:e.overscaledZ,u_unpack:t.getUnpackVector()}};function wj(e){let t=2**e.canonical.z,n=e.canonical.y;return[new Wm(0,n/t).toLngLat().lat,new Wm(0,(n+1)/t).toLngLat().lat]}var Tj=(e,t)=>({u_image:new Y(e,t.u_image),u_unpack:new yd(e,t.u_unpack),u_dimension:new Z(e,t.u_dimension),u_elevation_stops:new Y(e,t.u_elevation_stops),u_color_stops:new Y(e,t.u_color_stops),u_color_ramp_size:new Y(e,t.u_color_ramp_size),u_opacity:new X(e,t.u_opacity)}),Ej=(e,t,n=0)=>({u_image:0,u_unpack:t.getUnpackVector(),u_dimension:[t.stride,t.stride],u_elevation_stops:1,u_color_stops:4,u_color_ramp_size:n,u_opacity:e.paint.get(`color-relief-opacity`)}),Dj=(e,t)=>({u_translation:new Z(e,t.u_translation),u_ratio:new X(e,t.u_ratio)}),Oj=(e,t)=>({u_translation:new Z(e,t.u_translation),u_ratio:new X(e,t.u_ratio),u_image:new Y(e,t.u_image),u_image_height:new X(e,t.u_image_height)}),kj=(e,t)=>({u_translation:new Z(e,t.u_translation),u_texsize:new Z(e,t.u_texsize),u_ratio:new X(e,t.u_ratio),u_image:new Y(e,t.u_image),u_scale:new vd(e,t.u_scale),u_fade:new X(e,t.u_fade)}),Aj=(e,t)=>({u_translation:new Z(e,t.u_translation),u_ratio:new X(e,t.u_ratio),u_image:new Y(e,t.u_image),u_mix:new X(e,t.u_mix),u_tileratio:new X(e,t.u_tileratio),u_crossfade_from:new X(e,t.u_crossfade_from),u_crossfade_to:new X(e,t.u_crossfade_to),u_lineatlas_width:new X(e,t.u_lineatlas_width),u_lineatlas_height:new X(e,t.u_lineatlas_height)}),jj=(e,t)=>({u_translation:new Z(e,t.u_translation),u_ratio:new X(e,t.u_ratio),u_image:new Y(e,t.u_image),u_image_height:new X(e,t.u_image_height),u_tileratio:new X(e,t.u_tileratio),u_crossfade_from:new X(e,t.u_crossfade_from),u_crossfade_to:new X(e,t.u_crossfade_to),u_image_dash:new Y(e,t.u_image_dash),u_mix:new X(e,t.u_mix),u_lineatlas_width:new X(e,t.u_lineatlas_width),u_lineatlas_height:new X(e,t.u_lineatlas_height)}),Mj=(e,t,n,r)=>({u_translation:Rj(e,t,n),u_ratio:r/pt(t,1,e.zoom)}),Nj=(e,t,n,r,i)=>P(Mj(e,t,n,r),{u_image:0,u_image_height:i}),Pj=(e,t,n,r,i)=>{let a=Lj(t,e);return{u_translation:Rj(e,t,n),u_texsize:t.imageAtlasTexture.size,u_ratio:r/pt(t,1,e.zoom),u_image:0,u_scale:[a,i.fromScale,i.toScale],u_fade:i.t}},Fj=(e,t,n,r,i,a)=>{let o=Lj(n,e);return P(Mj(e,n,r,i),{u_tileratio:o,u_crossfade_from:a.fromScale,u_crossfade_to:a.toScale,u_image:0,u_mix:a.t,u_lineatlas_width:t.width,u_lineatlas_height:t.height})},Ij=(e,t,n,r,i,a,o)=>{let s=Lj(n,e);return P(Mj(e,n,r,i),{u_image:0,u_image_height:o,u_tileratio:s,u_crossfade_from:a.fromScale,u_crossfade_to:a.toScale,u_image_dash:1,u_mix:a.t,u_lineatlas_width:t.width,u_lineatlas_height:t.height})};function Lj(e,t){return 1/pt(e,1,t.tileZoom)}function Rj(e,t,n){return bt(e,t,n.paint.get(`line-translate`),n.paint.get(`line-translate-anchor`))}var zj=(e,t)=>({u_image:new Y(e,t.u_image),u_opacity:new X(e,t.u_opacity)}),Bj=(e,t)=>({u_image:t,u_opacity:e}),Vj=(e,t)=>({u_is_size_zoom_constant:new Y(e,t.u_is_size_zoom_constant),u_is_size_feature_constant:new Y(e,t.u_is_size_feature_constant),u_size_t:new X(e,t.u_size_t),u_size:new X(e,t.u_size),u_rotate_symbol:new Y(e,t.u_rotate_symbol),u_label_plane_matrix:new wd(e,t.u_label_plane_matrix),u_coord_matrix:new wd(e,t.u_coord_matrix),u_is_text:new Y(e,t.u_is_text),u_pitch_with_map:new Y(e,t.u_pitch_with_map),u_is_along_line:new Y(e,t.u_is_along_line),u_is_variable_anchor:new Y(e,t.u_is_variable_anchor),u_texsize:new Z(e,t.u_texsize),u_texture:new Y(e,t.u_texture),u_translation:new Z(e,t.u_translation),u_pitched_scale:new X(e,t.u_pitched_scale),u_is_offset:new Y(e,t.u_is_offset),u_height_anchor_ground:new Y(e,t.u_height_anchor_ground)}),Hj=(e,t)=>({u_is_size_zoom_constant:new Y(e,t.u_is_size_zoom_constant),u_is_size_feature_constant:new Y(e,t.u_is_size_feature_constant),u_size_t:new X(e,t.u_size_t),u_size:new X(e,t.u_size),u_rotate_symbol:new Y(e,t.u_rotate_symbol),u_label_plane_matrix:new wd(e,t.u_label_plane_matrix),u_coord_matrix:new wd(e,t.u_coord_matrix),u_is_text:new Y(e,t.u_is_text),u_pitch_with_map:new Y(e,t.u_pitch_with_map),u_is_along_line:new Y(e,t.u_is_along_line),u_is_variable_anchor:new Y(e,t.u_is_variable_anchor),u_texsize:new Z(e,t.u_texsize),u_texture:new Y(e,t.u_texture),u_gamma_scale:new X(e,t.u_gamma_scale),u_is_halo:new Y(e,t.u_is_halo),u_is_plain:new Y(e,t.u_is_plain),u_translation:new Z(e,t.u_translation),u_pitched_scale:new X(e,t.u_pitched_scale),u_is_offset:new Y(e,t.u_is_offset),u_height_anchor_ground:new Y(e,t.u_height_anchor_ground)}),Uj=(e,t)=>({u_is_size_zoom_constant:new Y(e,t.u_is_size_zoom_constant),u_is_size_feature_constant:new Y(e,t.u_is_size_feature_constant),u_size_t:new X(e,t.u_size_t),u_size:new X(e,t.u_size),u_rotate_symbol:new Y(e,t.u_rotate_symbol),u_label_plane_matrix:new wd(e,t.u_label_plane_matrix),u_coord_matrix:new wd(e,t.u_coord_matrix),u_is_text:new Y(e,t.u_is_text),u_pitch_with_map:new Y(e,t.u_pitch_with_map),u_is_along_line:new Y(e,t.u_is_along_line),u_is_variable_anchor:new Y(e,t.u_is_variable_anchor),u_texsize:new Z(e,t.u_texsize),u_texsize_icon:new Z(e,t.u_texsize_icon),u_texture:new Y(e,t.u_texture),u_texture_icon:new Y(e,t.u_texture_icon),u_gamma_scale:new X(e,t.u_gamma_scale),u_is_halo:new Y(e,t.u_is_halo),u_translation:new Z(e,t.u_translation),u_pitched_scale:new X(e,t.u_pitched_scale),u_is_offset:new Y(e,t.u_is_offset),u_height_anchor_ground:new Y(e,t.u_height_anchor_ground)}),Wj=(e,t,n,r,i,a,o,s,c,l,u,d,f,p)=>({u_is_size_zoom_constant:+(e===`constant`||e===`source`),u_is_size_feature_constant:+(e===`constant`||e===`camera`),u_size_t:t?t.uSizeT:0,u_size:t?t.uSize:0,u_rotate_symbol:+n,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+r,u_is_along_line:i,u_is_variable_anchor:a,u_texsize:u,u_texture:0,u_translation:c,u_pitched_scale:d,u_is_offset:f,u_height_anchor_ground:+p}),Gj=(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h)=>P(Wj(e,t,n,r,i,a,s,c,l,u,d,p,m,h),{u_gamma_scale:r?Math.cos(o.pitch*Math.PI/180)*o.cameraToCenterDistance:1,u_is_halo:+!!f,u_is_plain:1}),Kj=(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m)=>P(Gj(e,t,n,r,i,a,o,s,c,l,!0,u,!0,f,p,m),{u_texsize_icon:d,u_texture_icon:1}),qj=(e,t)=>({u_opacity:new X(e,t.u_opacity),u_color:new bd(e,t.u_color)}),Jj=(e,t)=>({u_opacity:new X(e,t.u_opacity),u_image:new Y(e,t.u_image),u_pattern_tl_a:new Z(e,t.u_pattern_tl_a),u_pattern_br_a:new Z(e,t.u_pattern_br_a),u_pattern_tl_b:new Z(e,t.u_pattern_tl_b),u_pattern_br_b:new Z(e,t.u_pattern_br_b),u_texsize:new Z(e,t.u_texsize),u_mix:new X(e,t.u_mix),u_pattern_size_a:new Z(e,t.u_pattern_size_a),u_pattern_size_b:new Z(e,t.u_pattern_size_b),u_scale_a:new X(e,t.u_scale_a),u_scale_b:new X(e,t.u_scale_b),u_pixel_coord_upper:new Z(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new Z(e,t.u_pixel_coord_lower),u_tile_units_to_pixels:new X(e,t.u_tile_units_to_pixels)}),Yj=(e,t)=>({u_opacity:e,u_color:t}),Xj=(e,t,n,r,i,a)=>P($A(r,a,t,n,i),{u_opacity:e}),Zj=(e,t)=>({u_sun_pos:new vd(e,t.u_sun_pos),u_atmosphere_blend:new X(e,t.u_atmosphere_blend),u_globe_position:new vd(e,t.u_globe_position),u_globe_radius:new X(e,t.u_globe_radius),u_inv_proj_matrix:new wd(e,t.u_inv_proj_matrix)}),Qj=(e,t,n,r,i)=>({u_sun_pos:e,u_atmosphere_blend:t,u_globe_position:n,u_globe_radius:r,u_inv_proj_matrix:i}),$j=(e,t)=>({u_sky_color:new bd(e,t.u_sky_color),u_horizon_color:new bd(e,t.u_horizon_color),u_horizon:new Z(e,t.u_horizon),u_horizon_normal:new Z(e,t.u_horizon_normal),u_sky_horizon_blend:new X(e,t.u_sky_horizon_blend),u_sky_blend:new X(e,t.u_sky_blend),u_inv_proj_matrix:new wd(e,t.u_inv_proj_matrix),u_globe_position:new vd(e,t.u_globe_position),u_globe_radius:new X(e,t.u_globe_radius),u_atmosphere_blend:new X(e,t.u_atmosphere_blend)}),eM=(e,t,n)=>{let r=Math.cos(t.rollInRadians),i=Math.sin(t.rollInRadians),a=Xm(t),o=t.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition,s=KO(t),c=GO(t.worldSize,t.center.lat);return{u_sky_color:e[`sky-color`],u_horizon_color:e[`horizon-color`],u_horizon:[(t.width/2-a*i)*n,(t.height/2+a*r)*n],u_horizon_normal:[-i,r],u_sky_horizon_blend:e[`sky-horizon-blend`]*t.height/2*n,u_sky_blend:o,u_inv_proj_matrix:t.inverseProjectionMatrix,u_globe_position:s,u_globe_radius:c,u_atmosphere_blend:e[`atmosphere-blend`]*uk(we(s)-c,c)}},tM=(e,t)=>({}),nM={fillExtrusion:ej,fillExtrusionPattern:tj,fill:ij,fillPattern:aj,fillOutline:oj,fillOutlinePattern:sj,circle:fj,collisionBox:tM,collisionCircle:tM,debug:mj,depth:tM,clippingMask:tM,heatmap:gj,heatmapTexture:_j,hillshade:bj,hillshadePrepare:xj,colorRelief:Tj,line:Dj,lineGradient:Oj,linePattern:kj,lineSDF:Aj,lineGradientSDF:jj,layerOpacity:zj,raster:ox,symbolIcon:Vj,symbolSDF:Hj,symbolTextAndIcon:Uj,background:qj,backgroundPattern:Jj,terrain:UA,terrainDepth:WA,terrainHeight:GA,atmosphere:Zj,sky:$j},rM=class{constructor(e){this.programs={},this.context=e}getProgram(e){let t=e.programConfiguration?e.programConfiguration.cacheKey:``,n=`/${e.projectionShaderVariant.name}`,r=e.showOverdrawInspector?`/overdraw`:``,i=e.useTerrain?`/terrain`:``,a=e.defines?`/${e.defines.join(`/`)}`:``,o=e.name+t+n+r+i+a;return this.programs[o]||=new ZA(this.context,cO[e.name],e.programConfiguration,nM[e.name],e.showOverdrawInspector,e.useTerrain,e.projectionShaderVariant.prelude,e.projectionShaderVariant.define,e.defines),this.programs[o]}destroy(){for(let e of Object.values(this.programs))e.program&&this.context.gl.deleteProgram(e.program);this.programs={}}},iM=7680,aM=class{constructor(e,t,n,r,i,a){this.test=e,this.ref=t,this.mask=n,this.fail=r,this.depthFail=i,this.pass=a}};aM.disabled=new aM({func:519,mask:0},0,0,iM,iM,iM);var oM=1029,sM=2305,cM=class{constructor(e,t,n){this.enable=e,this.mode=t,this.frontFace=n}};cM.disabled=new cM(!1,oM,sM),cM.backCCW=new cM(!0,oM,sM),cM.frontCCW=new cM(!0,1028,sM);var lM=class{constructor(e,t,n){this.func=e,this.mask=t,this.range=n}};lM.ReadOnly=!1,lM.ReadWrite=!0,lM.disabled=new lM(519,lM.ReadOnly,[0,1]);var uM;function dM(e,t,n,r,i){let a=i.context,o=a.gl,s=i.useProgram(`collisionBox`),c=[],l=0,u=0;for(let d of n){let n=e.getTile(d).getBucket(t);if(!n)continue;let f=r?n.textCollisionBox:n.iconCollisionBox,p=n.collisionCircleArray;p.length>0&&(c.push({circleArray:p,circleOffset:u,coord:d}),l+=p.length/4,u=l),f&&s.draw(a,o.LINES,lM.disabled,aM.disabled,i.colorModeForRenderPass(),cM.disabled,null,i.getTerrainDataForTile(d),i.getProjectionDataForTile(d),t.id,f.layoutVertexBuffer,f.indexBuffer,f.segments,null,i.transform.zoom,null,null,f.collisionVertexBuffer)}if(!r||!c.length)return;let d=i.useProgram(`collisionCircle`),f=new Qu;f.resize(l*4),f._trim();let p=0;for(let e of c)for(let t=0;t<e.circleArray.length/4;t++){let n=t*4,r=e.circleArray[n+0],i=e.circleArray[n+1],a=e.circleArray[n+2],o=e.circleArray[n+3];f.emplace(p++,r,i,a,o,0),f.emplace(p++,r,i,a,o,1),f.emplace(p++,r,i,a,o,2),f.emplace(p++,r,i,a,o,3)}(!uM||uM.length<l*2)&&(uM=fM(l));let m=a.createIndexBuffer(uM,!0),h=a.createVertexBuffer(f,qh.members,!0);for(let e of c)d.draw(a,o.TRIANGLES,lM.disabled,aM.disabled,i.colorModeForRenderPass(),cM.disabled,null,i.getTerrainDataForTile(e.coord),null,t.id,h,m,od.simpleSegment(0,e.circleOffset*2,e.circleArray.length,e.circleArray.length/2),null,i.transform.zoom,null,null,null);h.destroy(),m.destroy()}function fM(e){let t=e*2,n=new ed;n.resize(t),n._trim();for(let e=0;e<t;e++){let t=e*6;n.uint16[t+0]=e*4+0,n.uint16[t+1]=e*4+1,n.uint16[t+2]=e*4+2,n.uint16[t+3]=e*4+2,n.uint16[t+4]=e*4+3,n.uint16[t+5]=e*4+0}return n}var pM=se(new Float32Array(16));function mM(e,t,n,r,i){if(i.currentPass!==`translucent`)return;let a=aM.disabled,o=i.colorModeForRenderPass();(n._unevaluatedLayout.hasValue(`text-variable-anchor`)||n._unevaluatedLayout.hasValue(`text-variable-anchor-offset`))&&gM(r,n,t,n.layout.get(`text-rotation-alignment`),n.layout.get(`text-pitch-alignment`),n.paint.get(`text-translate`),n.paint.get(`text-translate-anchor`),i),n.paint.get(`icon-opacity`).constantOr(1)!==0&&bM(e,t,n,r,!1,n.paint.get(`icon-translate`),n.paint.get(`icon-translate-anchor`),n.layout.get(`icon-rotation-alignment`).constantOr(`viewport`),n.layout.get(`icon-pitch-alignment`),n.layout.get(`icon-keep-upright`),a,o,i),n.paint.get(`text-opacity`).constantOr(1)!==0&&bM(e,t,n,r,!0,n.paint.get(`text-translate`),n.paint.get(`text-translate-anchor`),n.layout.get(`text-rotation-alignment`),n.layout.get(`text-pitch-alignment`),n.layout.get(`text-keep-upright`),a,o,i),t.map.showCollisionBoxes&&(dM(t,n,r,!0,i),dM(t,n,r,!1,i))}function hM(e,t,n,r,i,a){let{horizontalAlign:o,verticalAlign:s}=V_(e),c=-(o-.5)*t,l=-(s-.5)*n;return new b((c/i+r[0])*a,(l/i+r[1])*a)}function gM(e,t,n,r,i,a,o,s){let c=s.transform,l=s.terrain,u=s.data.variableOffsets,d=r===`map`,f=i===`map`;for(let r of e){let e=n.getTile(r),i=e.getBucket(t);if(!i?.text?.segments.get().length)continue;let s=i.textSizeData,p=fv(s,c.zoom),m=QE(d,c,pt(e,1,c.zoom)),h=t.layout.get(`icon-text-fit`)!==`none`&&i.hasIconData();if(p){let n=2**(c.zoom-e.tileID.overscaledZ),s=l?(e,t)=>l.getElevation(r,e,t):void 0;vM(i,d,f,u,c,m,n,p,h,bt(c,e,a,o),r.toUnwrapped(),s,t.layout.get(`symbol-height-anchor`)===`ground`)}}}function _M(e,t,n,r,i,a){let o=t.tileAnchorPoint.add(new b(t.translation[0],t.translation[1]));if(t.pitchWithMap){let e=r.mult(a);n||(e=e.rotate(-i));let s=o.add(e);return nD(s.x,s.y,t.pitchedLabelPlaneMatrix,tD(t,s.x,s.y)).point}if(n){let n=dD(t.tileAnchorPoint.x+1,t.tileAnchorPoint.y,t).point.sub(e),i=Math.atan(n.y/n.x)+(n.x<0?Math.PI:0);return e.add(r.rotate(i))}return e.add(r)}function vM(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e.text.placedSymbolArray,m=e.text.dynamicLayoutVertexArray,h=e.icon.dynamicLayoutVertexArray,g={};m.clear();for(let h=0;h<p.length;h++){let _=p.get(h),v=e.allowVerticalPlacement&&!_.placedOrientation,y=!_.hidden&&_.crossTileID&&!v?r[_.crossTileID]:null;if(!y)vD(_.numGlyphs,m);else{let r=new b(_.anchorX,_.anchorY),p={getElevation:d,heightOffset:_.heightOffset,heightAnchorGround:f,width:i.width,height:i.height,pitchedLabelPlaneMatrix:a,lineVertexArray:null,pitchWithMap:n,transform:i,projectionCache:null,tileAnchorPoint:r,translation:l,unwrappedTileID:u},h=n?pD(r.x,r.y,p):dD(r.x,r.y,p),v=rD(i.cameraToCenterDistance,h.signedDistanceFromCamera),x=dv(e.textSizeData,s,_)*v/24;n&&(x*=e.tilePixelRatio/o);let{width:S,height:C,anchor:w,textOffset:T,textBoxScale:E}=y,D=hM(w,S,C,T,E,x),O=i.getPitchedTextCorrection(r.x+l[0],r.y+l[1],u),k=_M(h.point,p,t,D,-i.bearingInRadians,O),A=e.allowVerticalPlacement&&_.placedOrientation===2?Math.PI/2:0;for(let e=0;e<_.numGlyphs;e++)$v(m,k,A);c&&_.associatedIconIndex>=0&&(g[_.associatedIconIndex]={shiftedAnchor:k,angle:A})}}if(c){h.clear();let t=e.icon.placedSymbolArray;for(let e=0;e<t.length;e++){let n=t.get(e);if(n.hidden)vD(n.numGlyphs,h);else{let t=g[e];if(!t)vD(n.numGlyphs,h);else for(let e=0;e<n.numGlyphs;e++)$v(h,t.shiftedAnchor,t.angle)}}e.icon.dynamicLayoutVertexBuffer.updateData(h)}e.text.dynamicLayoutVertexBuffer.updateData(m)}function yM(e,t,n){return n.iconsInText&&t?`symbolTextAndIcon`:e?`symbolSDF`:`symbolIcon`}function bM(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=f.context,m=p.gl,h=f.transform,g=s===`map`,_=c===`map`,v=s!==`viewport`&&n.layout.get(`symbol-placement`)!==`point`,y=g&&!_&&!v,b=!n.layout.get(`symbol-sort-key`).isConstant(),x=!1,S=f.getDepthModeForSublayer(0,lM.ReadOnly),C=n._unevaluatedLayout.hasValue(`text-variable-anchor`)||n._unevaluatedLayout.hasValue(`text-variable-anchor-offset`),w=[],T=h.getCircleRadiusCorrection();for(let s of r){let r=t.getTile(s),c=r.getBucket(n);if(!c)continue;let u=i?c.text:c.icon;if(!u?.segments.get().length||!u.hasVisibleVertices)continue;let d=u.programConfigurations.get(n.id),p=i||c.sdfIcons,S=i?c.textSizeData:c.iconSizeData,E=_||h.pitch!==0,D=f.useProgram(yM(p,i,c),d),O=fv(S,h.zoom),k=f.getTerrainDataForTile(s),A,ee=[0,0],te,ne,re=null,ae;if(i){if(te=r.glyphAtlasTexture,ne=m.LINEAR,A=r.glyphAtlasTexture.size,c.iconsInText){ee=r.imageAtlasTexture.size,re=r.imageAtlasTexture;let e=S.kind===`composite`||S.kind===`camera`;ae=E||f.data.rotating||f.data.zooming||e?m.LINEAR:m.NEAREST}}else{let e=n.layout.get(`icon-size`).constantOr(0)!==1||c.iconsNeedLinear;te=r.imageAtlasTexture,ne=p||f.data.rotating||f.data.zooming||e||E?m.LINEAR:m.NEAREST,A=r.imageAtlasTexture.size}let oe=pt(r,1,f.transform.zoom),se=QE(g,f.transform,oe),ce=$E(_,g,f.transform,oe),le=bt(h,r,a,o),ue=f.getProjectionDataForTile(s),de=C&&c.hasTextData(),fe=n.layout.get(`icon-text-fit`)!==`none`&&de&&c.hasIconData(),pe=n._unevaluatedLayout.hasValue(`icon-offset`),me=n.layout.get(`symbol-height-anchor`)===`ground`;if(v){let t=ie();JE(t,se);let r=f.terrain?(e,t)=>f.terrain.getElevation(s,e,t):void 0;aD(c,e,h,i,se,t,_,l,n.layout.get(`text-rotation-alignment`)===`map`,s.toUnwrapped(),le,r)}let he=i&&C||fe,ge=_?se:f.transform.clipSpaceToPixelsMatrix,_e=v||he?pM:ge,ve=p&&n.paint.get(i?`text-halo-width`:`icon-halo-width`).constantOr(1)!==0,ye;ye=p?c.iconsInText?Kj(S.kind,O,y,_,v,he,h,_e,ce,le,A,ee,T,pe,me):Gj(S.kind,O,y,_,v,he,h,_e,ce,le,i,A,ve,T,pe,me):Wj(S.kind,O,y,_,v,he,_e,ce,le,i,A,T,pe,me);let be={program:D,buffers:u,uniformValues:ye,projectionData:ue,atlasTexture:te,atlasTextureIcon:re,atlasInterpolation:ne,atlasInterpolationIcon:ae,isSDF:p,hasHalo:ve};if(b&&c.canOverlap){x=!0;let e=u.segments.get();for(let t of e)w.push({segments:new od([t]),sortKey:t.sortKey,state:be,terrainData:k})}else w.push({segments:u.segments,sortKey:0,state:be,terrainData:k})}x&&w.sort((e,t)=>e.sortKey-t.sortKey);let E=n.paint.get(i?`text-halo-width`:`icon-halo-width`).constantOr(null)??1/0,D=n.layout.get(`text-letter-spacing`).constantOr(0)*24<0||E>1;for(let e of w){let t=e.state;p.activeTexture.set(m.TEXTURE0),t.atlasTexture.bind(t.atlasInterpolation,m.CLAMP_TO_EDGE),t.atlasTextureIcon&&(p.activeTexture.set(m.TEXTURE1),t.atlasTextureIcon&&t.atlasTextureIcon.bind(t.atlasInterpolationIcon,m.CLAMP_TO_EDGE));let r=t.isSDF&&t.hasHalo;if(r){let r=t.uniformValues;r.u_is_halo=1,D&&(r.u_is_plain=0,xM(t.buffers,e.segments,n,f,t.program,S,u,d,r,t.projectionData,e.terrainData),r.u_is_halo=0,r.u_is_plain=1)}xM(t.buffers,e.segments,n,f,t.program,S,u,d,t.uniformValues,t.projectionData,e.terrainData),r&&!D&&(t.uniformValues.u_is_halo=0)}}function xM(e,t,n,r,i,a,o,s,c,l,u){let d=r.context,f=d.gl;i.draw(d,f.TRIANGLES,a,o,s,cM.backCCW,c,u,l,n.id,e.layoutVertexBuffer,e.indexBuffer,t,n.paint,r.transform.zoom,e.programConfigurations.get(n.id),e.dynamicLayoutVertexBuffer,e.opacityVertexBuffer)}function SM(e,t,n,r){if(r.currentPass!==`translucent`)return;let i=t.paint.get(`circle-opacity`),a=t.paint.get(`circle-stroke-width`),o=t.paint.get(`circle-stroke-opacity`),s=!t.layout.get(`circle-sort-key`).isConstant();if(i.constantOr(1)===0&&(a.constantOr(1)===0||o.constantOr(1)===0))return;let c=r.context,l=c.gl,u=r.transform,d=r.getDepthModeForSublayer(0,lM.ReadOnly),f=aM.disabled,p=r.colorModeForRenderPass(),m=[],h=u.getCircleRadiusCorrection();for(let i of n){let n=e.getTile(i),a=n.getBucket(t);if(!a)continue;let o=bt(u,n,t.paint.get(`circle-translate`),t.paint.get(`circle-translate-anchor`)),c=a.programConfigurations.get(t.id),l=r.useProgram(`circle`,c),d=a.layoutVertexBuffer,f=a.indexBuffer,p=r.getTerrainDataForTile(i),g={programConfiguration:c,program:l,layoutVertexBuffer:d,indexBuffer:f,uniformValues:pj(u,n,t,o,h),terrainData:p,projectionData:r.getProjectionDataForTile(i)};if(s){let e=a.segments.get();for(let t of e)m.push({segments:new od([t]),sortKey:t.sortKey,state:g})}else m.push({segments:a.segments,sortKey:0,state:g})}s&&m.sort((e,t)=>e.sortKey-t.sortKey);for(let e of m){let{programConfiguration:n,program:i,layoutVertexBuffer:a,indexBuffer:o,uniformValues:s,terrainData:u,projectionData:m}=e.state,h=e.segments;i.draw(c,l.TRIANGLES,d,f,p,cM.backCCW,s,u,m,t.id,a,o,h,t.paint,r.transform.zoom,n)}}function CM(e,t,n,r,i){if(n.paint.get(`heatmap-opacity`)===0)return;let a=i.context;if(i.terrain){for(let a of r){let r=t.getTile(a);t.hasRenderableParent(a)||(i.currentPass===`offscreen`?EM(r,n,a,i):i.currentPass===`translucent`&&DM(e,n,a,i))}a.viewport.set([0,0,e.width,e.height])}else i.currentPass===`offscreen`?wM(e,t,n,r,i):i.currentPass===`translucent`&&TM(e,n,i)}function wM(e,t,n,r,i){let a=i.context,o=a.gl,s=i.transform,c=aM.disabled,l=new zA([o.ONE,o.ONE],W.transparent,[!0,!0,!0,!0]);OM(a,e,n),a.clear({color:W.transparent});for(let e of r){if(t.hasRenderableParent(e))continue;let r=t.getTile(e),u=r.getBucket(n);if(!u)continue;let d=u.programConfigurations.get(n.id),f=i.useProgram(`heatmap`,d),p=i.getProjectionDataForTile(e,{applyTerrainMatrix:!1}),m=s.getCircleRadiusCorrection();f.draw(a,o.TRIANGLES,lM.disabled,c,l,cM.backCCW,vj(r,s.zoom,n.paint.get(`heatmap-intensity`),m),null,p,n.id,u.layoutVertexBuffer,u.indexBuffer,u.segments,n.paint,s.zoom,d)}a.viewport.set([0,0,e.width,e.height])}function TM(e,t,n){let r=n.context,i=r.gl;r.setColorMode(n.colorModeForRenderPass());let a=t.heatmapFbos.get(Ff);a&&(r.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,a.colorAttachment.get()),r.activeTexture.set(i.TEXTURE1),AM(r,t).bind(i.LINEAR,i.CLAMP_TO_EDGE),n.useProgram(`heatmapTexture`).draw(r,i.TRIANGLES,lM.disabled,aM.disabled,n.colorModeForRenderPass(),cM.disabled,yj(e,t,0,1),null,null,t.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,t.paint,n.transform.zoom))}function EM(e,t,n,r){let i=r.context,a=i.gl,o=aM.disabled,s=new zA([a.ONE,a.ONE],W.transparent,[!0,!0,!0,!0]),c=e.getBucket(t);if(!c)return;let l=n.key,u=t.heatmapFbos.get(l);u||(u=kM(i,e.tileSize,e.tileSize),t.heatmapFbos.set(l,u)),i.bindFramebuffer.set(u.framebuffer),i.viewport.set([0,0,e.tileSize,e.tileSize]),i.clear({color:W.transparent});let d=c.programConfigurations.get(t.id),f=r.useProgram(`heatmap`,d,!r.data.isRenderingGlobe),p=r.getProjectionDataForTile(e.tileID),m=r.getTerrainDataForTile(n);f.draw(i,a.TRIANGLES,lM.disabled,o,s,cM.disabled,vj(e,r.transform.zoom,t.paint.get(`heatmap-intensity`),1),m,p,t.id,c.layoutVertexBuffer,c.indexBuffer,c.segments,t.paint,r.transform.zoom,d)}function DM(e,t,n,r){let i=r.context,a=i.gl,o=r.transform;i.setColorMode(r.colorModeForRenderPass());let s=AM(i,t),c=n.key,l=t.heatmapFbos.get(c);if(!l)return;i.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,l.colorAttachment.get()),i.activeTexture.set(a.TEXTURE1),s.bind(a.LINEAR,a.CLAMP_TO_EDGE);let u=r.getProjectionDataForTile(n,{applyTerrainMatrix:r.data.isRenderingGlobe});r.useProgram(`heatmapTexture`).draw(i,a.TRIANGLES,lM.disabled,aM.disabled,r.colorModeForRenderPass(),cM.disabled,yj(e,t,0,1),null,u,t.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments,t.paint,o.zoom),l.destroy(),t.heatmapFbos.delete(c)}function OM(e,t,n){let r=e.gl;e.activeTexture.set(r.TEXTURE1),e.viewport.set([0,0,t.width/4,t.height/4]);let i=n.heatmapFbos.get(Ff);i?(r.bindTexture(r.TEXTURE_2D,i.colorAttachment.get()),e.bindFramebuffer.set(i.framebuffer)):(i=kM(e,t.width/4,t.height/4),n.heatmapFbos.set(Ff,i))}function kM(e,t,n){let r=e.gl,i=r.createTexture();r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texStorage2D(r.TEXTURE_2D,1,r.RGBA16F,t,n);let a=e.createFramebuffer(t,n,!1,!1);return a.colorAttachment.set(i),a}function AM(e,t){return t.colorRampTexture||=new qf(e,t.colorRamp,e.gl.RGBA),t.colorRampTexture}function jM(e,t,n,r){let i=r.context,a=i.bindFramebuffer.get(),o=i.viewport.get(),[,,s,c]=o;return MM(e,s,c),i.viewport.set([0,0,s,c]),i.clear({color:W.transparent,depth:1,stencil:0}),r.invalidateTileClippingMasks(),r.renderTileClippingMasks(t,n),{compositeTarget:a,compositeViewport:o}}function MM(e,t,n){let r=e.context.gl;if(!e.layerOpacityFbo){let i=e.context.createFramebuffer(t,n,!0,!0),a=r.createTexture();r.bindTexture(r.TEXTURE_2D,a),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t,n,0,r.RGBA,r.UNSIGNED_BYTE,null),i.colorAttachment.set(a),i.depthAttachment.set(e.context.createRenderbuffer(r.DEPTH_STENCIL,t,n)),e.layerOpacityFbo=i,e.context.bindFramebuffer.set(e.layerOpacityFbo.framebuffer);return}if(e.layerOpacityFbo.width===t&&e.layerOpacityFbo.height===n){e.context.bindFramebuffer.set(e.layerOpacityFbo.framebuffer);return}let i=e.layerOpacityFbo;r.bindTexture(r.TEXTURE_2D,i.colorAttachment.get()),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t,n,0,r.RGBA,r.UNSIGNED_BYTE,null),e.context.bindRenderbuffer.set(i.depthAttachment.get()),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,t,n),e.context.bindRenderbuffer.set(null),i.width=t,i.height=n,e.context.bindFramebuffer.set(i.framebuffer)}function NM(e,t,n,r,i){let a=i.context,o=a.gl;a.bindFramebuffer.set(n.compositeTarget),a.viewport.set(n.compositeViewport),a.activeTexture.set(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,e.layerOpacityFbo.colorAttachment.get()),i.useProgram(`layerOpacity`).draw(a,o.TRIANGLES,lM.disabled,aM.disabled,i.colorModeForRenderPass(),cM.disabled,Bj(t,0),null,null,r.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,r.paint,i.transform.zoom),i.invalidateTileClippingMasks()}function PM(e,t,n,r,i,a,o,s){let c=256;if(r.stepInterpolant){let n=e.getSource().maxzoom,r=a.canonical.z===n?Math.ceil(1<<s.transform.maxZoom-a.canonical.z):1;c=N(Bt(i.maxLineLength/M*1024*r),256,t.maxTextureSize)}return o.gradient=Pf({expression:r.gradientExpression(),evaluationKey:`lineProgress`,resolution:c,image:o.gradient||void 0,clips:i.lineClipsArray}),o.texture?o.texture.update(o.gradient):o.texture=new qf(t,o.gradient,n.RGBA),o.version=r.gradientVersion,o.texture}function FM(e,t,n,r,i){e.activeTexture.set(t.TEXTURE0),n.imageAtlasTexture.bind(t.LINEAR,t.CLAMP_TO_EDGE),r.updatePaintBuffers(i)}function IM(e,t,n,r,i,a){(i||e.lineAtlas.dirty)&&(t.activeTexture.set(n.TEXTURE0),e.lineAtlas.bind(t)),r.updatePaintBuffers(a)}function LM(e,t,n,r,i,a,o){let s=i.gradients[r.id],c=s.texture;r.gradientVersion!==s.version&&(c=PM(e,t,n,r,i,a,s,o)),t.activeTexture.set(n.TEXTURE0),c.bind(r.stepInterpolant?n.NEAREST:n.LINEAR,n.CLAMP_TO_EDGE)}function RM(e,t,n,r,i,a,o,s,c,l){let u=a.gradients[i.id],d=u.texture;i.gradientVersion!==u.version&&(d=PM(t,n,r,i,a,o,u,l)),n.activeTexture.set(r.TEXTURE0),d.bind(i.stepInterpolant?r.NEAREST:r.LINEAR,r.CLAMP_TO_EDGE),n.activeTexture.set(r.TEXTURE1),e.lineAtlas.bind(n),s.updatePaintBuffers(c)}function zM(e,t,n,r,i){if(i.currentPass!==`translucent`)return;let a=n.paint.get(`line-opacity`),o=n.paint.get(`line-width`),s=n.paint.get(`line-layer-opacity`);if(a.constantOr(1)!==0&&o.constantOr(1)!==0&&s!==0){if(s<1){let a=jM(e,n,r,i);BM(e,t,n,r,i),NM(e,s,a,n,i);return}BM(e,t,n,r,i)}}function BM(e,t,n,r,i){let a=i.getDepthModeForSublayer(0,lM.ReadOnly),o=i.colorModeForRenderPass(),s=n.paint.get(`line-dasharray`),c=s.constantOr(1),l=n.paint.get(`line-pattern`),u=l.constantOr(1),d=n.paint.get(`line-gradient`),f=n.getCrossfadeParameters(),p;p=u?`linePattern`:c&&d?`lineGradientSDF`:c?`lineSDF`:d?`lineGradient`:`line`;let m=i.context,h=m.gl,g=i.transform,_=!0;for(let v of r){let r=t.getTile(v);if(u&&!r.patternsLoaded())continue;let y=r.getBucket(n);if(!y)continue;let b=y.programConfigurations.get(n.id),x=m.program.get(),S=i.useProgram(p,b),C=_||S.program!==x,w=i.getTerrainDataForTile(v),T=l.constantOr(null),E=s?.constantOr(null);if(T&&r.imageAtlas){let e=r.imageAtlas,t=e.patternPositions[T.to.toString()],n=e.patternPositions[T.from.toString()];t&&n&&b.setConstantPatternPositions(t,n)}else if(E){let t=n.layout.get(`line-cap`).constantOr(null)===`round`,r=e.lineAtlas.getDash(E.to,t),i=e.lineAtlas.getDash(E.from,t);b.setConstantDashPositions(r,i)}let D=i.getProjectionDataForTile(v),O=g.getPixelScale(),k;u?(k=Pj(g,r,n,O,f),FM(m,h,r,b,f)):c&&d?(k=Ij(g,e.lineAtlas,r,n,O,f,y.lineClipsArray.length),RM(e,t,m,h,n,y,v,b,f,i)):c?(k=Fj(g,e.lineAtlas,r,n,O,f),IM(e,m,h,b,C,f)):d?(k=Nj(g,r,n,O,y.lineClipsArray.length),LM(t,m,h,n,y,v,i)):k=Mj(g,r,n,O);let A=i.stencilModeForClipping(v);S.draw(m,h.TRIANGLES,a,A,o,cM.disabled,k,w,D,n.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,n.paint,i.transform.zoom,b,y.layoutVertexBuffer2),_=!1}}function VM(e,t,n,r,i){if(!n||!r?.imageAtlas)return;let a=r.imageAtlas.patternPositions,o=a[n.to.toString()],s=a[n.from.toString()];if(!o&&s&&(o=s),!s&&o&&(s=o),!o||!s){let e=i.getPaintProperty(t);o=a[e],s=a[e]}o&&s&&e.setConstantPatternPositions(o,s)}function HM(e,t,n,r,i){let a=n.paint.get(`fill-color`),o=n.paint.get(`fill-opacity`),s=n.paint.get(`fill-layer-opacity`);if(o.constantOr(1)===0||s===0)return;if(s<1){if(i.currentPass!==`translucent`)return;let a=jM(e,n,r,i);UM(t,n,r,i),NM(e,s,a,n,i);return}let c=n.paint.get(`fill-pattern`),l=i.opaquePassEnabledForLayer()&&!c.constantOr(1)&&a.constantOr(W.transparent).a===1&&o.constantOr(0)===1;if(l&&i.currentPass===`opaque`){let e=i.colorModeForRenderPass();GM(t,n,r,i.getDepthModeForSublayer(1,lM.ReadWrite),e,!1,i);return}if(l&&i.currentPass===`translucent`){WM(t,n,r,i);return}i.currentPass===`translucent`&&UM(t,n,r,i)}function UM(e,t,n,r){let i=r.colorModeForRenderPass();GM(e,t,n,r.getDepthModeForSublayer(1,lM.ReadOnly),i,!1,r),WM(e,t,n,r)}function WM(e,t,n,r){if(!t.paint.get(`fill-antialias`))return;let i=r.colorModeForRenderPass();GM(e,t,n,r.getDepthModeForSublayer(t.getPaintProperty(`fill-outline-color`)?2:0,lM.ReadOnly),i,!0,r)}function GM(e,t,n,r,i,a,o){let s=o.context,c=s.gl,l=`fill-pattern`,u=t.paint.get(l),d=u?.constantOr(1),f=t.getCrossfadeParameters(),p,m,h,g,_,v=o.transform,y=t.paint.get(`fill-translate`),b=t.paint.get(`fill-translate-anchor`);a?(m=d&&!t.getPaintProperty(`fill-outline-color`)?`fillOutlinePattern`:`fillOutline`,p=c.LINES):(m=d?`fillPattern`:`fill`,p=c.TRIANGLES);let x=u.constantOr(null);for(let u of n){let n=e.getTile(u);if(d&&!n.patternsLoaded())continue;let S=n.getBucket(t);if(!S)continue;let C=S.sdfPatterns[t.id]??!1,w=S.programConfigurations.get(t.id),T=o.useProgram(m,w),E=o.getTerrainDataForTile(u);d&&(s.activeTexture.set(c.TEXTURE0),n.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),w.updatePaintBuffers(f)),VM(w,l,x,n,t);let D=o.getProjectionDataForTile(u),O=bt(v,n,y,b);a?(g=S.indexBuffer2,_=S.segments2,h=m===`fillOutlinePattern`&&d?dj(v,f,n,O,C):uj(O)):(g=S.indexBuffer,_=S.segments,h=d?cj(v,f,n,O,C):lj(O));let k=o.stencilModeForClipping(u);T.draw(s,p,r,k,i,cM.backCCW,h,E,D,t.id,S.layoutVertexBuffer,g,_,t.paint,o.transform.zoom,w)}}function KM(e,t,n,r){let i=t.paint.get(`fill-extrusion-opacity`);if(i!==0&&r.currentPass===`translucent`){let a=new lM(r.context.gl.LEQUAL,lM.ReadWrite,r.depthRangeFor3D);if(i===1&&!t.paint.get(`fill-extrusion-pattern`).constantOr(1)){let i=r.colorModeForRenderPass();qM(e,t,n,a,aM.disabled,i,r)}else qM(e,t,n,a,aM.disabled,zA.disabled,r),qM(e,t,n,a,r.stencilModeFor3D(),r.colorModeForRenderPass(),r)}}function qM(e,t,n,r,i,a,o){let s=o.context,c=s.gl,l=`fill-extrusion-pattern`,u=t.paint.get(l),d=u.constantOr(1),f=t.getCrossfadeParameters(),p=t.paint.get(`fill-extrusion-opacity`),m=u.constantOr(null),h=o.transform;for(let u of n){let n=e.getTile(u),g=n.getBucket(t);if(!g)continue;let _=o.getTerrainDataForTile(u),v=g.programConfigurations.get(t.id),y=o.useProgram(d?`fillExtrusionPattern`:`fillExtrusion`,v);d&&(s.activeTexture.set(c.TEXTURE0),n.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),v.updatePaintBuffers(f));let b=o.getProjectionDataForTile(u);VM(v,l,m,n,t);let x=bt(h,n,t.paint.get(`fill-extrusion-translate`),t.paint.get(`fill-extrusion-translate-anchor`)),S=t.paint.get(`fill-extrusion-vertical-gradient`),C=d?rj(h,o.data.light,S,p,x,u,f,n):nj(h,o.data.light,S,p,x);y.draw(s,s.gl.TRIANGLES,r,i,a,cM.backCCW,C,_,b,t.id,g.layoutVertexBuffer,g.indexBuffer,g.segments,t.paint,o.transform.zoom,v,o.terrain&&g.centroidVertexBuffer)}}function JM(e,t,n,r,i){if(i.currentPass!==`offscreen`&&i.currentPass!==`translucent`)return;let a=i.context,{useSubdivision:o}=i.data,s=i.getDepthModeForSublayer(0,lM.ReadOnly),c=i.colorModeForRenderPass();if(i.currentPass===`offscreen`)XM(e,t,r,n,s,aM.disabled,c,i),a.viewport.set([0,0,e.width,e.height]);else if(i.currentPass===`translucent`){if(o){let[e,a,o]=i.stencilConfigForOverlapTwoPass(r);YM(t,n,o,e,s,c,!1,i),YM(t,n,o,a,s,c,!0,i)}else{let[e,a]=i.getStencilConfigForOverlapAndUpdateStencilID(r);YM(t,n,a,e,s,c,!1,i)}}}function YM(e,t,n,r,i,a,o,s){let c=s.context,l=c.gl,u=[`#define NUM_ILLUMINATION_SOURCES ${t.paint.get(`hillshade-highlight-color`).values.length}`],d=s.useProgram(`hillshade`,null,!1,u),f=!s.data.moving;for(let u of n){let n=e.getTile(u),p=n.fbo;if(!p)continue;let m=s.getMeshFromTileID(u.canonical,o,!0,`raster`),h=s.getTerrainDataForTile(u);c.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,p.colorAttachment.get());let g=s.getProjectionDataForTile(u,{aligned:f});d.draw(c,l.TRIANGLES,i,r[u.overscaledZ],a,cM.backCCW,Sj(s.transform,n,t),h,g,t.id,m.vertexBuffer,m.indexBuffer,m.segments)}}function XM(e,t,n,r,i,a,o,s){let c=s.context,l=c.gl,u=r.paint.get(`resampling`)===`nearest`?l.NEAREST:l.LINEAR;for(let d of n){let n=t.getTile(d),f=n.dem;if(!f?.data||!n.needsHillshadePrepare)continue;let p=f.dim+2,m=f.stride,h=f.getPixels();if(c.activeTexture.set(l.TEXTURE1),c.pixelStoreUnpackPremultiplyAlpha.set(!1),n.demTexture||=e.getTileTexture(m),n.demTexture){let e=n.demTexture;e.update(h,{premultiply:!1}),e.bind(l.NEAREST,l.CLAMP_TO_EDGE)}else n.demTexture=new qf(c,h,l.RGBA,{premultiply:!1}),n.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);c.activeTexture.set(l.TEXTURE0);let g=n.fbo;if(!g){let e=new qf(c,{width:p,height:p,data:null},l.RGBA);e.bind(u,l.CLAMP_TO_EDGE),g=n.fbo=c.createFramebuffer(p,p,!0,!1),g.colorAttachment.set(e.texture)}c.bindFramebuffer.set(g.framebuffer),c.viewport.set([0,0,p,p]),s.useProgram(`hillshadePrepare`).draw(c,l.TRIANGLES,i,a,o,cM.disabled,Cj(n.tileID,f),null,null,r.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),n.needsHillshadePrepare=!1}}function ZM(e,t,n,r,i){if(i.currentPass!==`translucent`||!r.length)return;let{useSubdivision:a}=i.data,o=i.getDepthModeForSublayer(0,lM.ReadOnly),s=i.colorModeForRenderPass();if(a){let[a,c,l]=i.stencilConfigForOverlapTwoPass(r);$M(e,t,n,l,a,o,s,!1,i),$M(e,t,n,l,c,o,s,!0,i)}else{let[a,c]=i.getStencilConfigForOverlapAndUpdateStencilID(r);$M(e,t,n,c,a,o,s,!1,i)}}var QM=0;function $M(e,t,n,r,i,a,o,s,c){let l=c.context,u=l.gl,d=c.useProgram(`colorRelief`),f=!c.data.moving,p=n.paint.get(`resampling`)===`nearest`?u.NEAREST:u.LINEAR,m=!0,h=0;for(let g of r){let r=t.getTile(g),_=r.dem;if(!_?.data)continue;if(m){QM||=u.getParameter(u.MAX_TEXTURE_SIZE);let e=QM,{elevationTexture:t,colorTexture:r}=n.getColorRampTextures(l,e,_.getUnpackVector());l.activeTexture.set(u.TEXTURE1),t.bind(u.NEAREST,u.CLAMP_TO_EDGE),l.activeTexture.set(u.TEXTURE4),r.bind(u.LINEAR,u.CLAMP_TO_EDGE),m=!1,h=t.size[0]}let v=_.stride;l.activeTexture.set(u.TEXTURE0),(!r.demTexture||r.needsColorReliefPrepare)&&(l.pixelStoreUnpackPremultiplyAlpha.set(!1),r.demTexture||=e.getTileTexture(v)??new qf(l,{width:v,height:v,data:null},u.RGBA),r.demTexture.update(_.getPixels(),{premultiply:!1}),r.needsColorReliefPrepare=!1),r.demTexture.bind(p,u.CLAMP_TO_EDGE);let y=c.getMeshFromTileID(g.canonical,s,!0,`raster`),b=c.getTerrainDataForTile(g),x=c.getProjectionDataForTile(g,{aligned:f});d.draw(l,u.TRIANGLES,a,i[g.overscaledZ],o,cM.backCCW,Ej(n,r.dem,h),b,x,n.id,y.vertexBuffer,y.indexBuffer,y.segments)}}var eN=[new b(0,0),new b(M,0),new b(M,M),new b(0,M)];function tN(e,t,n,r){if(r.currentPass!==`translucent`||t.paint.get(`raster-opacity`)===0||!n.length)return;let i=e.getSource(),{useSubdivision:a}=r.data;if(i instanceof hx)nN(e,t,n,null,!1,!1,i.tileCoords,i.imageWarp,i.flippedWindingOrder,r,i.getMesh(r.context,a));else if(a){let[i,a,o]=r.stencilConfigForOverlapTwoPass(n);nN(e,t,o,i,!1,!0,eN,ax,!1,r),nN(e,t,o,a,!0,!0,eN,ax,!1,r)}else{let[i,a]=r.getStencilConfigForOverlapAndUpdateStencilID(n);nN(e,t,a,i,!1,!0,eN,ax,!1,r)}}function nN(e,t,n,r,i,a,o,s,c=!1,l,u=null){let d=n[n.length-1].overscaledZ,f=l.context,p=f.gl,m=l.useProgram(`raster`),h=l.colorModeForRenderPass(),g=!l.data.moving,_=t.paint.get(`raster-opacity`),v=t.paint.get(`resampling`)===`nearest`||t.paint.get(`raster-resampling`)===`nearest`?p.NEAREST:p.LINEAR,y=t.paint.get(`raster-fade-duration`),b=!!l.terrain;for(let x of n){let n=l.getDepthModeForSublayer(x.overscaledZ-d,_===1?lM.ReadWrite:lM.ReadOnly,p.LESS),S=e.getTile(x);f.activeTexture.set(p.TEXTURE0),S.texture.bind(v,p.CLAMP_TO_EDGE,p.LINEAR_MIPMAP_NEAREST),f.activeTexture.set(p.TEXTURE1);let{parentTile:C,parentScaleBy:w,parentTopLeft:T,fadeValues:E}=rN(S,e,y,b);S.fadeOpacity=E.tileOpacity,C?(C.fadeOpacity=E.parentTileOpacity,C.texture.bind(v,p.CLAMP_TO_EDGE,p.LINEAR_MIPMAP_NEAREST)):S.texture.bind(v,p.CLAMP_TO_EDGE,p.LINEAR_MIPMAP_NEAREST),S.texture.useMipmap&&f.extTextureFilterAnisotropic&&l.transform.pitch>l.data.anisotropicFilterPitch&&p.texParameterf(p.TEXTURE_2D,f.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,f.extTextureFilterAnisotropicMax);let D=l.getTerrainDataForTile(x),O=l.getProjectionDataForTile(x,{aligned:g}),k=sx(T,w,E.fadeMix,t,o,s),A=u??l.getMeshFromTileID(x.canonical,i,a,`raster`),ee=r?r[x.overscaledZ]:aM.disabled;m.draw(f,p.TRIANGLES,n,ee,h,c?cM.frontCCW:cM.backCCW,k,D,O,t.id,A.vertexBuffer,A.indexBuffer,A.segments)}}function rN(e,t,n,r){let i={parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:{tileOpacity:1,parentTileOpacity:1,fadeMix:{opacity:1,mix:0}}};if(n===0||r)return i;if(e.fadingParentID){let r=t.getLoadedTile(e.fadingParentID);if(!r)return i;let a=2**(r.tileID.overscaledZ-e.tileID.overscaledZ);return{parentTile:r,parentScaleBy:a,parentTopLeft:[e.tileID.canonical.x*a%1,e.tileID.canonical.y*a%1],fadeValues:iN(e,r,n)}}return e.selfFading?{parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:aN(e,n)}:i}function iN(e,t,n){let r=jn(),i=(r-e.timeAdded)/n,a=(r-t.timeAdded)/n,o=e.fadingDirection===1,s=N(i,0,1),c=N(1-a,0,1),l=o?s:c;return{tileOpacity:l,parentTileOpacity:o?c:s,fadeMix:{opacity:1,mix:1-l}}}function aN(e,t){let n=N((jn()-e.timeAdded)/t,0,1);return{tileOpacity:n,fadeMix:{opacity:n,mix:0}}}function oN(e,t,n,r,i){let a=n.paint.get(`background-color`),o=n.paint.get(`background-opacity`);if(o===0)return;let s=i.context,c=s.gl,l=i.transform,u=l.tileSize,d=n.paint.get(`background-pattern`);if(e.patternAtlas.isPatternMissing(d))return;let f=!d&&a.a===1&&o===1&&i.opaquePassEnabledForLayer()?`opaque`:`translucent`;if(i.currentPass!==f)return;let p=aM.disabled,m=i.getDepthModeForSublayer(0,f===`opaque`?lM.ReadWrite:lM.ReadOnly),h=i.colorModeForRenderPass(),g=i.useProgram(d?`backgroundPattern`:`background`),_=r||ME(l,{tileSize:u,terrain:i.terrain});d&&(s.activeTexture.set(c.TEXTURE0),e.patternAtlas.bind(s));let v=n.getCrossfadeParameters();for(let t of _){let r=i.getProjectionDataForTile(t),f=d?Xj(o,e.patternAtlas,l,d,{tileID:t,tileSize:u},v):Yj(o,a),_=i.getTerrainDataForTile(t),y=i.getMeshFromTileID(t.canonical,!1,!0,`raster`);g.draw(s,c.TRIANGLES,m,p,h,cM.backCCW,f,_,r,n.id,y.vertexBuffer,y.indexBuffer,y.segments)}}var sN=new W(1,0,0,1),cN=new W(0,1,0,1),lN=new W(0,0,1,1),uN=new W(1,0,1,1),dN=new W(0,1,1,1);function fN(e){let t=e.transform.padding;mN(e,e.transform.height-(t.top||0),3,sN),mN(e,t.bottom||0,3,cN),hN(e,t.left||0,3,lN),hN(e,e.transform.width-(t.right||0),3,uN);let n=e.transform.centerPoint;pN(e,n.x,e.transform.height-n.y,dN)}function pN(e,t,n,r){gN(e,t-1,n-10,2,20,r),gN(e,t-10,n-1,20,2,r)}function mN(e,t,n,r){gN(e,0,t+n/2,e.transform.width,n,r)}function hN(e,t,n,r){gN(e,t-n/2,0,n,e.transform.height,r)}function gN(e,t,n,r,i,a){let o=e.context,s=o.gl,c=e.data.pixelRatio;s.enable(s.SCISSOR_TEST),s.scissor(t*c,n*c,r*c,i*c),o.clear({color:a}),s.disable(s.SCISSOR_TEST)}function _N(e,t,n,r){for(let i of n)vN(e,t,i,r)}function vN(e,t,n,r){let i=r.context,a=i.gl,o=r.useProgram(`debug`),s=lM.disabled,c=aM.disabled,l=r.colorModeForRenderPass(),u=`$debug`,d=r.getTerrainDataForTile(n);i.activeTexture.set(a.TEXTURE0);let f=t.getTileByID(n.key).latestRawTileData?.byteLength||0,p=Math.floor(f/1024),m=t.getTile(n).tileSize,h=512/Math.min(m,512)*(n.overscaledZ/r.transform.zoom)*.5,g=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(g+=` => ${n.overscaledZ}`),yN(e,`${g} ${p}kB`);let _=r.getProjectionDataForTile(n);o.draw(i,a.TRIANGLES,s,c,zA.alphaBlended,cM.disabled,hj(W.transparent,h),null,_,u,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments),o.draw(i,a.LINE_STRIP,s,c,l,cM.disabled,hj(W.red),d,_,u,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments)}function yN(e,t){e.initDebugOverlayCanvas();let n=e.debugOverlayCanvas,r=e.context.gl,i=e.debugOverlayCanvas.getContext(`2d`);i.clearRect(0,0,n.width,n.height),i.shadowColor=`white`,i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle=`white`,i.textBaseline=`top`,i.font=`bold 36px Open Sans, sans-serif`,i.fillText(t,5,5),i.strokeText(t,5,5),e.debugOverlayTexture.update(n),e.debugOverlayTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE)}function bN(e,t){let n=null,r=Object.values(e._layers).flatMap(n=>n.source&&!n.isHidden(t)?[e.tileManagers[n.source]]:[]),i=r.filter(e=>e.getSource().type===`vector`),a=r.filter(e=>e.getSource().type!==`vector`),o=e=>{(!n||n.getSource().maxzoom<e.getSource().maxzoom)&&(n=e)};for(let e of i)o(e);if(!n)for(let e of a)o(e);return n}function xN(e,t,n){let r=n.context,i=r.gl,a=n.transform,o=zA.unblended,s=new lM(i.LEQUAL,lM.ReadWrite,[0,1]),c=t.tileManager.getRenderableTiles(),l=n.useProgram(`terrainDepth`);r.bindFramebuffer.set(t.getFramebuffer().framebuffer),r.viewport.set([0,0,e.width/devicePixelRatio,e.height/devicePixelRatio]),r.clear({color:W.white,depth:1});for(let e of c){let c=t.getTerrainMesh(e.tileID,n.data.isRenderingGlobe),u=t.getTerrainData(e.tileID),d=a.getProjectionData({overscaledTileID:e.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0}),f=qA(t.getSkirtLength(a.zoom));l.draw(r,i.TRIANGLES,s,aM.disabled,o,cM.backCCW,f,u,d,`terrain`,c.vertexBuffer,c.indexBuffer,c.segments)}r.bindFramebuffer.set(null),r.viewport.set([0,0,e.width,e.height])}function SN(e,t,n,r){let{isRenderingGlobe:i}=r.data,a=r.context,o=a.gl,s=r.transform,c=r.colorModeForRenderPass(),l=r.getDepthModeFor3D(),u=r.useProgram(`terrain`);a.bindFramebuffer.set(null),a.viewport.set([0,0,e.width,e.height]);for(let d of n){let n=t.getTerrainMesh(d.tileID,i),f=e.renderToTexture.getTexture(d),p=t.getTerrainData(d.tileID);a.activeTexture.set(o.TEXTURE0),f.bind(o.LINEAR,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_LINEAR);let m=KA(t.getSkirtLength(s.zoom),s.calculateFogMatrix(d.tileID.toUnwrapped()),r.data.sky,s.pitch,i),h=r.getProjectionDataForTile(d.tileID,{applyTerrainMatrix:!1});u.draw(a,o.TRIANGLES,l,aM.disabled,c,cM.backCCW,m,p,h,`terrain`,n.vertexBuffer,n.indexBuffer,n.segments)}}function CN(e,t,n){let r=e.context,i=r.gl,[a,o,s,c]=n.bounds;r.setDirty();let l=t.getHeightMapFramebuffer(n.texture);r.viewport.set([0,0,n.width,n.height]),r.clear({color:W.transparent});let u=e.useProgram(`terrainHeight`,null,!0);for(let n of t.tileManager.getRenderableTiles()){let l=t.getTerrainData(n.tileID);if(!l.tile?.dem)continue;let{canonical:d,wrap:f}=n.tileID,p=1/(1<<d.z),m=JA([(d.x*p+f-a)/(s-a),(d.y*p-o)/(c-o),p/(s-a),p/(c-o)]),h=t.getTerrainMesh(n.tileID,e.data.isRenderingGlobe);u.draw(r,i.TRIANGLES,lM.disabled,aM.disabled,zA.unblended,cM.disabled,m,l,null,`terrain`,h.vertexBuffer,h.indexBuffer,h.segments)}l.colorAttachment.set(null)}function wN(e,t,n,r,i){if(i.isRenderingToTexture){TN(e,n,r[0],i);return}let{isRenderingGlobe:a,projectionShaderVariant:o}=i.data,{terrain:s}=i,c=i.context,l=n.implementation,u=i.transform,d=u.getProjectionDataForCustomLayer(a),f={farZ:u.farZ,nearZ:u.nearZ,fov:u.fov*Math.PI/180,modelViewProjectionMatrix:u.modelViewProjectionMatrix,projectionMatrix:u.projectionMatrix,shaderData:{variantName:o.name,vertexShaderPrelude:`const float PI = 3.141592653589793;\nuniform mat4 u_projection_matrix;\n${o.prelude.vertexSource}`,define:o.define},defaultProjectionData:d,getProjectionData:e=>u.getProjectionData({overscaledTileID:new Lb(e.tileID.canonical.z,e.tileID.wrap??0,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),aligned:e.aligned,applyGlobeMatrix:e.applyGlobeMatrix,applyTerrainMatrix:e.applyTerrainMatrix}),renderTerrainHeightMap:s&&i.currentPass===`offscreen`?e=>CN(i,s,e):void 0},p=l.renderingMode?l.renderingMode:`2d`;if(i.currentPass===`offscreen`){let t=l.prerender;t&&(c.setCustomLayerDefaults(),c.setColorMode(i.colorModeForRenderPass()),t.call(l,c.gl,f),c.setDirty(),e.setBaseState())}else if(i.currentPass===`translucent`){c.setCustomLayerDefaults(),c.setColorMode(i.colorModeForRenderPass()),c.setStencilMode(aM.disabled);let t=p===`3d`?i.getDepthModeFor3D():i.getDepthModeForSublayer(0,lM.ReadOnly);c.setDepthMode(t),l.render(c.gl,f),c.setDirty(),e.setBaseState(),c.bindFramebuffer.set(null)}}function TN(e,t,n,r){let i=r.context,a=i.bindFramebuffer.get(),o=i.viewport.get();i.setCustomLayerDefaults(),i.setColorMode(r.colorModeForRenderPass()),i.setDepthMode(lM.disabled),i.setStencilMode(aM.disabled),t.implementation.renderToTerrainTile(i.gl,{tileID:{canonical:n.canonical,wrap:n.wrap},width:o[2],height:o[3]}),i.setDirty(),e.setBaseState(),i.bindFramebuffer.set(a),i.viewport.set(o)}function EN(e,t){let n=t.context,r=n.gl,{sky:i,pixelRatio:a}=t.data,o=eM(i,t.transform,a),s=new lM(r.LEQUAL,lM.ReadWrite,[0,1]),c=aM.disabled,l=t.colorModeForRenderPass();t.useProgram(`sky`).draw(n,r.TRIANGLES,s,c,l,cM.disabled,o,null,void 0,`sky`,e.vertexBuffer,e.indexBuffer,e.segments)}function DN(e,t){let n=Qt(e.position);je(n,n);let r=se(new Float64Array(16));return e.anchor===`map`&&(me(r,r,t.rollInRadians),fe(r,r,-t.pitchInRadians),me(r,r,t.bearingInRadians),fe(r,r,t.center.lat*Math.PI/180),pe(r,r,-t.center.lng*Math.PI/180)),Ie(n,n,r),n}function ON(e,t){let n=t.context,r=n.gl,{sky:i,light:a}=t.data,o=t.useProgram(`atmosphere`),s=new lM(r.LEQUAL,lM.ReadOnly,[0,1]),c=t.transform,l=DN(a,c),u=c.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),d=GO(c.worldSize,c.center.lat),f=KO(c),p=uk(we(f)-d,d),m=i[`atmosphere-blend`]*u.projectionTransition*p;if(m===0)return;let h=Qj(l,m,f,d,c.inverseProjectionMatrix);o.draw(n,r.TRIANGLES,s,aM.disabled,zA.alphaBlended,cM.disabled,h,null,null,`atmosphere`,e.vertexBuffer,e.indexBuffer,e.segments)}var kN={symbol:mM,circle:SM,heatmap:CM,line:zM,fill:HM,fillExtrusion:KM,hillshade:JM,colorRelief:ZM,raster:tN,background:oN,sky:EN,atmosphere:ON,custom:wN,debug:_N,debugPadding:fN,terrainDepth:xN},AN=UE.maxOverzooming+UE.maxUnderzooming+1,jN=1/2**16,MN={name:dO,define:uO,prelude:cO.projectionMercator},NN=class{constructor(e){this.currentLayer=0,this.opaquePassCutoff=1/0,this.depthRangeFor3D=[0,1],this.isRenderingToTexture=!1,this.nextStencilID=1,this.tileClippingMaskIDs={},this.transform=e.transform,this.terrain=e.terrain,this.data=e.data,this.context=e.context,this.programCache=e.programCache,this.currentPass=e.currentPass,this.projection=e.projection}getProjectionDataForTile(e,t={}){let n=this.transform.getProjectionData({overscaledTileID:e,aligned:t.aligned,applyGlobeMatrix:!this.isRenderingToTexture,applyTerrainMatrix:t.applyTerrainMatrix??!0});return this.isRenderingToTexture||(n.uniformBufferKey=t.aligned?`${e.key}/aligned`:e.key),n}getTerrainDataForTile(e){return this.isRenderingToTexture?null:this.terrain?.getTerrainData(e)??null}getMeshFromTileID(e,t,n,r){return this.projection.getMeshFromTileID(this.context,e,t,n,r)}useProgram(e,t,n=!1,r=[]){return this.programCache.getProgram({name:e,programConfiguration:t,projectionShaderVariant:n?MN:this.data.projectionShaderVariant,showOverdrawInspector:this.data.showOverdrawInspector,useTerrain:this.terrain!==null,defines:r})}colorModeForRenderPass(){let e=this.context.gl;if(this.data.showOverdrawInspector){let t=1/8;return new zA([e.CONSTANT_COLOR,e.ONE],new W(t,t,t,0),[!0,!0,!0,!0])}return this.currentPass===`opaque`?zA.unblended:zA.alphaBlended}getDepthModeForSublayer(e,t,n){if(!this.opaquePassEnabledForLayer())return lM.disabled;let r=1-((1+this.currentLayer)*AN+e)*jN;return new lM(n||this.context.gl.LEQUAL,t,[r,r])}getDepthModeFor3D(){return new lM(this.context.gl.LEQUAL,lM.ReadWrite,this.depthRangeFor3D)}setDepthRangeFor3D(e){this.depthRangeFor3D=[0,1-(e+2)*AN*jN]}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}clearStencil(){this.nextStencilID=1,this.currentStencilSource=void 0,this.context.clear({stencil:0})}invalidateTileClippingMasks(){this.currentStencilSource=void 0}renderTileClippingMasks(e,t){if(this.currentStencilSource===e.source||!e.isTileClipped()||!t?.length)return;this.currentStencilSource=e.source,this.nextStencilID+t.length>256&&this.clearStencil();let n=this.context;n.setColorMode(zA.disabled),n.setDepthMode(lM.disabled);let r={};for(let e of t)r[e.key]=this.nextStencilID++;this.data.useSubdivision&&this.renderTileMasks(r,t,!0),this.renderTileMasks(r,t,!1),this.tileClippingMaskIDs=r}renderTileMasks(e,t,n){let r=this.context,i=r.gl,a=this.useProgram(`clippingMask`);for(let o of t){let t=e[o.key],s=this.getTerrainDataForTile(o),c=this.getMeshFromTileID(o.canonical,n,!0,`stencil`),l=this.getProjectionDataForTile(o);a.draw(r,i.TRIANGLES,lM.disabled,new aM({func:i.ALWAYS,mask:0},t,255,i.KEEP,i.KEEP,i.REPLACE),zA.disabled,this.isRenderingToTexture?cM.disabled:cM.backCCW,null,s,l,`$clipping`,c.vertexBuffer,c.indexBuffer,c.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let e=this.nextStencilID++,t=this.context.gl;return new aM({func:t.NOTEQUAL,mask:255},e,255,t.KEEP,t.KEEP,t.REPLACE)}stencilModeForClipping(e){let t=this.context.gl;return new aM({func:t.EQUAL,mask:255},this.tileClippingMaskIDs[e.key],0,t.KEEP,t.KEEP,t.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){let t=this.context.gl,n=e.sort((e,t)=>t.overscaledZ-e.overscaledZ),r=n[n.length-1].overscaledZ,i=n[0].overscaledZ-r+1;if(i>1){this.currentStencilSource=void 0,this.nextStencilID+i>256&&this.clearStencil();let e={};for(let n=0;n<i;n++)e[n+r]=new aM({func:t.GEQUAL,mask:255},n+this.nextStencilID,255,t.KEEP,t.KEEP,t.REPLACE);return this.nextStencilID+=i,[e,n]}return[{[r]:aM.disabled},n]}stencilConfigForOverlapTwoPass(e){let t=this.context.gl,n=e.sort((e,t)=>t.overscaledZ-e.overscaledZ),r=n[n.length-1].overscaledZ,i=n[0].overscaledZ-r+1;if(this.clearStencil(),i>1){let e={},a={};for(let n=0;n<i;n++)e[n+r]=new aM({func:t.GREATER,mask:255},i+1+n,255,t.KEEP,t.KEEP,t.REPLACE),a[n+r]=new aM({func:t.GREATER,mask:255},1+n,255,t.KEEP,t.KEEP,t.REPLACE);return this.nextStencilID=i*2+1,[e,a,n]}return this.nextStencilID=3,[{[r]:new aM({func:t.GREATER,mask:255},2,255,t.KEEP,t.KEEP,t.REPLACE)},{[r]:new aM({func:t.GREATER,mask:255},1,255,t.KEEP,t.KEEP,t.REPLACE)},n]}},PN=class e{constructor(e){this.drawFunctions=kN,this.context=new BA(e),this.programCache=new rM(this.context),this.layerOpacityFbo=null,this._tileTextures={},this._rttObjectRecyclePool=[],this._rttSharedFbo=null,this.terrainFacilitator={depthDirty:!0,matrix:se(new Float64Array(16)),renderTime:0},this.setup()}resize(e,t,n){this.width=Math.round(e*n),this.height=Math.round(t*n),this.context.viewport.set([0,0,this.width,this.height])}setup(){let e=this.context,t=new Ru;t.emplaceBack(0,0),t.emplaceBack(M,0),t.emplaceBack(0,M),t.emplaceBack(M,M),this.tileExtentBuffer=e.createVertexBuffer(t,fx.members),this.tileExtentSegments=od.simpleSegment(0,0,4,2);let n=new Ru;n.emplaceBack(0,0),n.emplaceBack(M,0),n.emplaceBack(0,M),n.emplaceBack(M,M),this.debugBuffer=e.createVertexBuffer(n,fx.members),this.debugSegments=od.simpleSegment(0,0,4,5);let r=new Bu;r.emplaceBack(0,0,0,0),r.emplaceBack(M,0,M,0),r.emplaceBack(0,M,0,M),r.emplaceBack(M,M,M,M),this.rasterBoundsBuffer=e.createVertexBuffer(r,jk.members),this.rasterBoundsSegments=od.simpleSegment(0,0,4,2);let i=new Ru;i.emplaceBack(0,0),i.emplaceBack(1,0),i.emplaceBack(0,1),i.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(i,fx.members),this.viewportSegments=od.simpleSegment(0,0,4,2);let a=new rd;a.emplaceBack(0),a.emplaceBack(1),a.emplaceBack(3),a.emplaceBack(2),a.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(a);let o=new td;o.emplaceBack(1,0,2),o.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(o),this.tileExtentMesh=new dx(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments);let s=new Ru;s.emplaceBack(-1,-1),s.emplaceBack(1,-1),s.emplaceBack(1,1),s.emplaceBack(-1,1);let c=new td;c.emplaceBack(0,1,2),c.emplaceBack(0,2,3),this.skyMesh=new dx(e.createVertexBuffer(s,fx.members),e.createIndexBuffer(c),od.simpleSegment(0,0,s.length,c.length))}_renderTilesDepthBuffer(e){let t=this.context,n=t.gl,r=e.transform,i=e.useProgram(`depth`),a=e.getDepthModeFor3D(),o=ME(r,{tileSize:r.tileSize});for(let r of o){let o=e.getTerrainDataForTile(r),s=e.getMeshFromTileID(r.canonical,!0,!0,`raster`),c=e.getProjectionDataForTile(r);i.draw(t,n.TRIANGLES,a,aM.disabled,zA.disabled,cM.backCCW,null,o,c,`$clipping`,s.vertexBuffer,s.indexBuffer,s.segments)}}render(e,t,n){if(this.context.gl.isContextLost())return;let r=new NN({transform:t,terrain:e.map.terrain??null,data:n,context:this.context,programCache:this.programCache,currentPass:`offscreen`,projection:e.projection});this.lineAtlas=e.lineAtlas,this.patternAtlas=e.patternAtlas,NA(this.context.frameUniformBuffer,t,n),e.imageManager.beginFrame(),OA(this.context);let i=e._order,a=e.tileManagers,o={},s={},c={};for(let e in a){let t=a[e];t.used&&t.prepare(this.context),o[e]=t.getVisibleCoordinates(!1),s[e]=o[e].slice().reverse(),c[e]=t.getVisibleCoordinates(!0).reverse()}r.opaquePassCutoff=1/0;for(let t=0;t<i.length;t++){let n=i[t];if(e._layers[n].is3D()){r.opaquePassCutoff=t;break}}this.maybeDrawDepth(r),this.renderToTexture&&(this.renderToTexture.prepareForRender(e,t.zoom,n.moving),r.opaquePassCutoff=0),r.currentPass=`offscreen`;for(let n of i){let i=e._layers[n];if(!i.hasOffscreenPass()||i.isHidden(t.zoom))continue;let o=s[i.source];(i.type===`custom`||o.length)&&this.renderLayer(this,a[i.source],i,o,r)}if(this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:n.showOverdrawInspector?W.black:W.transparent,depth:1}),r.clearStencil(),n.sky&&this.drawFunctions.sky(this.skyMesh,r),r.setDepthRangeFor3D(e._order.length),!this.renderToTexture)for(r.currentPass=`opaque`,r.currentLayer=i.length-1;r.currentLayer>=0;r.currentLayer--){let n=e._layers[i[r.currentLayer]];if(n.isHidden(t.zoom))continue;let s=a[n.source],c=o[n.source];r.renderTileClippingMasks(n,c),this.renderLayer(this,s,n,c,r)}r.currentPass=`translucent`;let l=!1;for(r.currentLayer=0;r.currentLayer<i.length;r.currentLayer++){let u=e._layers[i[r.currentLayer]];if(u.isHidden(t.zoom))continue;let d=a[u.source];if(this.renderToTexture?.renderLayer(u,e,r))continue;!r.opaquePassEnabledForLayer()&&!l&&(l=!0,n.isRenderingGlobe&&!r.terrain&&this._renderTilesDepthBuffer(r));let f=(u.type===`symbol`?c:s)[u.source];r.renderTileClippingMasks(u,o[u.source]),this.renderLayer(this,d,u,f,r)}if(n.isRenderingGlobe&&this.drawFunctions.atmosphere(this.skyMesh,r),n.showTileBoundaries){let n=bN(e,t.zoom);n&&this.drawFunctions.debug(this,n,n.getVisibleCoordinates(),r)}n.showPadding&&this.drawFunctions.debugPadding(r),this.renderToTexture&&!n.moving&&this.clearRTTPool(),this.context.setDefault()}markTerrainDepthDirty(){this.terrainFacilitator.depthDirty=!0}maybeDrawDepth(e){if(!e.data.projectionShaderVariant||!e.terrain)return;let t=this.terrainFacilitator.matrix,n=e.transform.modelViewProjectionMatrix,r=this.terrainFacilitator.depthDirty;r||=!xe(t,n),r||=e.terrain.tileManager.anyTilesAfterTime(this.terrainFacilitator.renderTime),r&&(oe(t,n),this.terrainFacilitator.renderTime=jn(),this.terrainFacilitator.depthDirty=!1,this.drawFunctions.terrainDepth(this,e.terrain,e))}renderLayer(e,t,n,r,i){if(n.isHidden(i.transform.zoom)||n.type!==`background`&&n.type!==`custom`&&!(r||[]).length)return;let a=this.drawFunctions;dy(n)?a.symbol(e,t,n,r,i):Sf(n)?a.circle(t,n,r,i):If(n)?a.heatmap(e,t,n,r,i):Bh(n)?a.line(e,t,n,r,i):ym(n)?a.fill(e,t,n,r,i):vh(n)?a.fillExtrusion(t,n,r,i):Vf(n)?a.hillshade(e,t,n,r,i):Xf(n)?a.colorRelief(e,t,n,r,i):Jl(n)?a.raster(t,n,r,i):_y(n)?a.background(e,t,n,r,i):by(n)&&a.custom(e,t,n,r,i)}static{this.MAX_TEXTURE_POOL_SIZE_PER_BUCKET=50}saveTileTexture(t){let n=this._tileTextures[t.size[0]];n?n.length<e.MAX_TEXTURE_POOL_SIZE_PER_BUCKET?n.push(t):t.destroy():this._tileTextures[t.size[0]]=[t]}getTileTexture(e){let t=this._tileTextures[e];return t&&t.length>0?t.pop():null}acquireRTT(e){let t=this.context.gl,n=this._rttObjectRecyclePool.pop();if(n)return n.size!==e&&(n.texture.update({width:e,height:e,data:null},{premultiply:!1,useMipmap:!0}),n.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE,t.LINEAR_MIPMAP_LINEAR),this.context.extTextureFilterAnisotropic&&t.texParameterf(t.TEXTURE_2D,this.context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this.context.extTextureFilterAnisotropicMax),n.size=e),n;let r=new qf(this.context,{width:e,height:e,data:null},t.RGBA,{premultiply:!1,useMipmap:!0});return r.bind(t.LINEAR,t.CLAMP_TO_EDGE,t.LINEAR_MIPMAP_LINEAR),this.context.extTextureFilterAnisotropic&&t.texParameterf(t.TEXTURE_2D,this.context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this.context.extTextureFilterAnisotropicMax),{texture:r,size:e}}bindRTT(e){let t=this.context.gl,n=e.size;if(!this._rttSharedFbo){let e=this.context.createFramebuffer(n,n,!0,!0),r=this.context.createRenderbuffer(t.DEPTH_STENCIL,n,n);e.depthAttachment.set(r),this._rttSharedFbo={fbo:e,depthRenderbuffer:r,size:n}}this._rttSharedFbo.size!==n&&(this.context.bindRenderbuffer.set(this._rttSharedFbo.depthRenderbuffer),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n,n),this.context.bindRenderbuffer.set(null),this._rttSharedFbo.fbo.width=n,this._rttSharedFbo.fbo.height=n,this._rttSharedFbo.size=n),this._rttSharedFbo.fbo.colorAttachment.set(e.texture.texture),this.context.bindFramebuffer.set(this._rttSharedFbo.fbo.framebuffer)}releaseRTT(e){this._rttObjectRecyclePool.push(e)}clearRTTPool(){for(let e of this._rttObjectRecyclePool)e.texture.destroy();this._rttObjectRecyclePool.length=0}destroyRTTResources(){if(this.clearRTTPool(),!this._rttSharedFbo)return;this._rttSharedFbo.fbo.colorAttachment.set(null),this._rttSharedFbo.fbo.depthAttachment.set(null);let e=this.context.gl;e.deleteRenderbuffer(this._rttSharedFbo.depthRenderbuffer),e.deleteFramebuffer(this._rttSharedFbo.fbo.framebuffer),this._rttSharedFbo=null}setBaseState(){let e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){if(this.debugOverlayCanvas==null){this.debugOverlayCanvas=document.createElement(`canvas`),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;let e=this.context.gl;this.debugOverlayTexture=new qf(this.context,this.debugOverlayCanvas,e.RGBA)}}destroy(){if(this._tileTextures){for(let e in this._tileTextures){let t=this._tileTextures[e];if(t)for(let e of t)e.destroy()}this._tileTextures={}}this.destroyRTTResources(),this.layerOpacityFbo?.destroy(),this.layerOpacityFbo=null,this.tileExtentBuffer&&this.tileExtentBuffer.destroy(),this.debugBuffer&&this.debugBuffer.destroy(),this.rasterBoundsBuffer&&this.rasterBoundsBuffer.destroy(),this.viewportBuffer&&this.viewportBuffer.destroy(),this.tileBorderIndexBuffer&&this.tileBorderIndexBuffer.destroy(),this.quadTriangleIndexBuffer&&this.quadTriangleIndexBuffer.destroy(),this.tileExtentMesh&&this.tileExtentMesh.vertexBuffer?.destroy(),this.tileExtentMesh&&this.tileExtentMesh.indexBuffer?.destroy(),this.skyMesh?.destroy(),this.skyMesh=null,this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.context.destroy(),this.programCache.destroy(),this.context&&this.context.setDefault()}overLimit(){let{drawingBufferWidth:e,drawingBufferHeight:t}=this.context.gl;return this.width!==e||this.height!==t}},FN=class extends Error{constructor(e,t){super(`WebGL2 is required to display this map. We are sorry, but it seems that your browser does not support WebGL2, a technology for rendering 3D graphics on the web. Read more on https://wiki.openstreetmap.org/wiki/This_map_requires_WebGL`),this.name=`GPUInitializationError`,this.requestedAttributes=e,this.statusMessage=t?.statusMessage??null}};function IN(e,t){let n=!1,r=null,i,a=()=>{r=null,n&&=(e(...i),r=setTimeout(a,t),!1)};return(...e)=>(n=!0,i=e,r||a(),r)}var LN=class{constructor(e){this._getHashParams=()=>new URLSearchParams(window.location.hash.replace(`#`,``)),this._getCurrentHash=()=>{let e=this._getHashParams();return this._hashName?(e.get(this._hashName)||``).split(`/`):([...e.keys()][0]??``).split(`/`)},this._onHashChange=()=>{let e=this._getCurrentHash();if(!this._isValidHash(e))return!1;let t=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(e[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+e[2],+e[1]],zoom:+e[0],bearing:t,pitch:+(e[4]||0)}),!0},this._updateHashUnthrottled=()=>{let e=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,e)},this._removeHash=()=>{let e=this._getHashParams();if(this._hashName)e.delete(this._hashName);else{let t=Array.from(e.keys());t.length>0&&e.delete(t[0])}let t=decodeURIComponent(e.toString()).replace(/=&/g,`&`).replace(/=$/g,``),n=t?`#${t}`:``,r=window.location.href.replace(/(#.+)?$/,n);r=r.replace(`&&`,`&`),window.history.replaceState(window.history.state,null,r)},this._updateHash=IN(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,addEventListener(`hashchange`,this._onHashChange,!1),this._map.on(`moveend`,this._updateHash),this}remove(){return removeEventListener(`hashchange`,this._onHashChange,!1),this._map.off(`moveend`,this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){let t=this._map.getCenter(),n=Math.round(this._map.getZoom()*100)/100,r=10**Math.ceil((n*Math.LN2+Math.log(512/360/.5))/Math.LN10),i=Math.round(t.lng*r)/r,a=Math.round(t.lat*r)/r,o=this._map.getBearing(),s=this._map.getPitch(),c=``;if(c+=e?`/${i}/${a}/${n}`:`${n}/${a}/${i}`,(o||s)&&(c+=`/${Math.round(o*10)/10}`),s&&(c+=`/${Math.round(s)}`),this._hashName){let e=this._getHashParams();return e.set(this._hashName,c),`#${decodeURIComponent(e.toString()).replace(/=&/g,`&`).replace(/=$/g,``)}`}return`#${c}`}_isValidHash(e){if(e.length<3||e.some(e=>isNaN(+e)))return!1;try{new Q(+e[2],+e[1])}catch{return!1}let t=+e[0],n=+(e[3]||0),r=+(e[4]||0);return t>=this._map.getMinZoom()&&t<=this._map.getMaxZoom()&&n>=-180&&n<=180&&r>=this._map.getMinPitch()&&r<=this._map.getMaxPitch()}},RN={linearity:.3,easing:Nt(0,0,.3,1)},zN=P({deceleration:2500,maxSpeed:1400},RN),BN=P({deceleration:20,maxSpeed:1400},RN),VN=P({deceleration:1e3,maxSpeed:360},RN),HN=P({deceleration:1e3,maxSpeed:90},RN),UN=P({deceleration:1e3,maxSpeed:360},RN),WN=class{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:jn(),settings:e})}_drainInertiaBuffer(){let e=this._inertiaBuffer,t=jn();for(;e.length>0&&t-e[0].time>160;)e.shift()}_getVelocityEntries(){let e=this._inertiaBuffer,t=jn()-60,n=Math.max(0,e.length-2);for(;n>0&&e[n-1].time>=t;)n--;return e.slice(n)}_onMoveEnd(e){this._drainInertiaBuffer();let t=this._getVelocityEntries();if(t.length<2){this.clear();return}let n={zoom:0,bearing:0,pitch:0,roll:0,pan:new b(0,0),pinchAround:void 0,around:void 0};for(let{settings:e}of t)e.around&&(n.around=e.around),e.pinchAround&&(n.pinchAround=e.pinchAround);for(let{settings:e}of t.slice(1))n.zoom+=e.zoomDelta||0,n.bearing+=e.bearingDelta||0,n.pitch+=e.pitchDelta||0,n.roll+=e.rollDelta||0,e.panDelta&&n.pan._add(e.panDelta);if(!n.pan.mag()&&!n.zoom&&!n.bearing&&!n.pitch&&!n.roll){this.clear();return}let r=jn()-t[0].time,i={};if(n.pan.mag()){let t=KN(n.pan.mag(),r,P({},zN,e||{})),a=n.pan.mult(t.amount/n.pan.mag()),o=this._map._camera.cameraHelper.handlePanInertia(a,this._map._camera.transform);i.center=o.easingCenter,i.offset=o.easingOffset,GN(i,t)}if(n.zoom){let e=KN(n.zoom,r,BN);i.zoom=Ut(this._map.getZoom()+e.amount,this._map.getZoomSnap(),e.amount),GN(i,e)}if(n.bearing){let e=KN(n.bearing,r,VN);i.bearing=this._map.getBearing()+N(e.amount,-179,179),GN(i,e)}if(n.pitch){let e=KN(n.pitch,r,HN);i.pitch=this._map.getPitch()+e.amount,GN(i,e)}if(n.roll){let e=KN(n.roll,r,UN);i.roll=this._map.getRoll()+N(e.amount,-179,179),GN(i,e)}if(i.zoom||i.bearing){let e=n.pinchAround===void 0?n.around:n.pinchAround;i.around=e?this._map.unproject(e):this._map.getCenter()}return this.clear(),P(i,{noMoveStart:!0})}};function GN(e,t){(!e.duration||e.duration<t.duration)&&(e.duration=t.duration,e.easing=t.easing)}function KN(e,t,n){let{maxSpeed:r,linearity:i,deceleration:a}=n,o=N(e*i/(t/1e3),-r,r),s=Math.abs(o)/(a*i);return{easing:n.easing,duration:s*1e3,amount:s/2*o}}var qN=class{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new mr(this._map,e))}mousedown(e,t){return this._mousedownPos=t,this._firePreventable(new fr(e.type,this._map,e))}mouseup(e){this._map.fire(new fr(e.type,this._map,e))}click(e,t){this._mousedownPos&&this._mousedownPos.dist(t)>=this._clickTolerance||this._map.fire(new fr(e.type,this._map,e))}dblclick(e){return this._firePreventable(new fr(e.type,this._map,e))}mouseover(e){this._map.fire(new fr(e.type,this._map,e))}mouseout(e){this._map.fire(new fr(e.type,this._map,e))}touchstart(e){return this._firePreventable(new pr(e.type,this._map,e))}touchmove(e){this._map.fire(new pr(e.type,this._map,e))}touchend(e){this._map.fire(new pr(e.type,this._map,e))}touchcancel(e){this._map.fire(new pr(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}},JN=class{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent,this._clearLongPress(),this._touchActive=!1}mousemove(e){this._map.fire(new fr(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new fr(`contextmenu`,this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}touchstart(e,t,n){if(this._clearLongPress(),this._touchActive=n.length>0,n.length!==1)return;this._longPressStart=t[0];let r=n[0];this._longPressTimer=setTimeout(()=>{this._longPressTimer=void 0;let e=new MouseEvent(`contextmenu`,{clientX:r.clientX,clientY:r.clientY,button:2,bubbles:!0,cancelable:!0});this._map.fire(new fr(`contextmenu`,this._map,e))},500)}touchmove(e,t,n){this._longPressTimer&&(n.length!==1||!this._longPressStart||t[0].dist(this._longPressStart)>this._clickTolerance)&&this._clearLongPress()}touchend(){this._touchActive=!1,this._clearLongPress()}touchcancel(){this._touchActive=!1,this._clearLongPress()}_clearLongPress(){this._longPressTimer&&=(clearTimeout(this._longPressTimer),void 0),this._longPressStart=void 0}contextmenu(e){if(this._touchActive){e.preventDefault();return}this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new fr(e.type,this._map,e)),this._map.listens(`contextmenu`)&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}},YN=class{constructor(e,t,n){this._map=e,this._tr=n,this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=t.clickTolerance||1,t.boxZoom&&typeof t.boxZoom==`object`&&(this._boxZoomEnd=t.boxZoom.boxZoomEnd)}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,t){this.isEnabled()&&e.shiftKey&&e.button===0&&(F.disableDrag(),this._startPos=this._lastPos=t,this._active=!0)}mousemoveWindow(e,t){if(!this._active)return;let n=t;if(this._lastPos.equals(n)||!this._box&&n.dist(this._startPos)<this._clickTolerance)return;let r=this._startPos;this._lastPos=n,this._box||(this._box=F.create(`div`,`maplibregl-boxzoom`,this._container),this._container.classList.add(`maplibregl-crosshair`),this._fireEvent(`boxzoomstart`,e));let i=Math.min(r.x,n.x),a=Math.max(r.x,n.x),o=Math.min(r.y,n.y),s=Math.max(r.y,n.y);this._box.style.transform=`translate(${i}px,${o}px)`,this._box.style.width=`${a-i}px`,this._box.style.height=`${s-o}px`}mouseupWindow(e,t){if(!this._active||e.button!==0)return;let n=this._startPos,r=t;if(this.reset(),F.suppressClick(),n.x===r.x&&n.y===r.y)this._fireEvent(`boxzoomcancel`,e);else{if(this._map.fire(new hr(`boxzoomend`,{originalEvent:e})),this._boxZoomEnd){this._boxZoomEnd(this._map,n,r,e);return}return{cameraAnimation:e=>e.fitScreenCoordinates(n,r,this._tr.bearing,{linear:!0})}}}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent(`boxzoomcancel`,e))}reset(){this._active=!1,this._container.classList.remove(`maplibregl-crosshair`),this._box&&=(this._box.remove(),null),F.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,t){return this._map.fire(new hr(e,{originalEvent:t}))}};function XN(e,t){if(e.length!==t.length)throw Error(`The number of touches and points are not equal - touches ${e.length}, points ${t.length}`);let n={};for(let r=0;r<e.length;r++)n[e[r].identifier]=t[r];return n}function ZN(e){let t=new b(0,0);for(let n of e)t._add(n);return t.div(e.length)}var QN=class{constructor(e){this.reset(),this.numTouches=e.numTouches}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1}touchstart(e,t,n){(this.centroid||n.length>this.numTouches)&&(this.aborted=!0),!this.aborted&&(this.startTime===void 0&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=ZN(t),this.touches=XN(n,t)))}touchmove(e,t,n){if(this.aborted||!this.centroid)return;let r=XN(n,t);for(let e in this.touches){let t=this.touches[e],n=r[e];(!n||n.dist(t)>30)&&(this.aborted=!0)}}touchend(e,t,n){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),n.length===0){let e=!this.aborted&&this.centroid;if(this.reset(),e)return e}}},$N=class{constructor(e){this.singleTap=new QN(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,t,n){this.singleTap.touchstart(e,t,n)}touchmove(e,t,n){this.singleTap.touchmove(e,t,n)}touchend(e,t,n){let r=this.singleTap.touchend(e,t,n);if(r){let t=e.timeStamp-this.lastTime<500,n=!this.lastTap||this.lastTap.dist(r)<30;if((!t||!n)&&this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=r,this.count===this.numTaps)return this.reset(),r}}},eP=class{constructor(e,t){this._tr=t,this._zoomIn=new $N({numTouches:1,numTaps:2}),this._zoomOut=new $N({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,t,n){this._zoomIn.touchstart(e,t,n),this._zoomOut.touchstart(e,t,n)}touchmove(e,t,n){this._zoomIn.touchmove(e,t,n),this._zoomOut.touchmove(e,t,n)}touchend(e,t,n){let r=this._zoomIn.touchend(e,t,n),i=this._zoomOut.touchend(e,t,n),a=this._tr;if(r)return this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:Ut(a.zoom+1,t.getZoomSnap()),around:a.transform.isPointOnMapSurface(r)?a.unproject(r):void 0},{originalEvent:e})};if(i)return this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:Ut(a.zoom-1,t.getZoomSnap()),around:a.transform.isPointOnMapSurface(i)?a.unproject(i):void 0},{originalEvent:e})}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}},tP=class{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){let t=this._moveFunction(...e);if(t.bearingDelta||t.pitchDelta||t.rollDelta||t.around||t.panDelta)return this._active=!0,t}dragStart(e,t){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(t)?t[0]:t,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,t){if(!this.isEnabled())return;let n=this._lastPoint;if(!n)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e)){this.reset(e);return}let r=Array.isArray(t)?t[0]:t;if(!(!this._moved&&r.dist(n)<this._clickTolerance))return this._moved=!0,this._lastPoint=r,this._move(n,r)}dragEnd(e){this.isEnabled()&&this._lastPoint&&this._moveStateManager.isValidEndEvent(e)&&(this._moved&&F.suppressClick(),this.reset(e))}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}},nP={0:1,2:2};function rP(e,t){let n=nP[t];return e.buttons===void 0||(e.buttons&n)!==n}var iP=class{constructor(e){this._correctEvent=e.checkCorrectEvent}startMove(e){this._eventButton=e.button}endMove(e){delete this._eventButton}isValidStartEvent(e){return this._correctEvent(e)}isValidMoveEvent(e){return!rP(e,this._eventButton)}isValidEndEvent(e){return e.button===this._eventButton}},aP=class{constructor(){this._firstTouch=void 0}_isOneFingerTouch(e){return e.targetTouches.length===1}_isSameTouchEvent(e){return e.targetTouches[0].identifier===this._firstTouch}startMove(e){this._firstTouch=e.targetTouches[0].identifier}endMove(e){delete this._firstTouch}isValidStartEvent(e){return this._isOneFingerTouch(e)}isValidMoveEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}isValidEndEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}},oP=class{constructor(e=new iP({checkCorrectEvent:()=>!0}),t=new aP){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=t}_executeRelevantHandler(e,t,n){if(e instanceof MouseEvent)return t(e);if(typeof TouchEvent<`u`&&e instanceof TouchEvent)return n(e)}startMove(e){this._executeRelevantHandler(e,e=>{this.mouseMoveStateManager.startMove(e)},e=>{this.oneFingerTouchMoveStateManager.startMove(e)})}endMove(e){this._executeRelevantHandler(e,e=>{this.mouseMoveStateManager.endMove(e)},e=>{this.oneFingerTouchMoveStateManager.endMove(e)})}isValidStartEvent(e){return!!this._executeRelevantHandler(e,e=>this.mouseMoveStateManager.isValidStartEvent(e),e=>this.oneFingerTouchMoveStateManager.isValidStartEvent(e))}isValidMoveEvent(e){return!!this._executeRelevantHandler(e,e=>this.mouseMoveStateManager.isValidMoveEvent(e),e=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(e))}isValidEndEvent(e){return!!this._executeRelevantHandler(e,e=>this.mouseMoveStateManager.isValidEndEvent(e),e=>this.oneFingerTouchMoveStateManager.isValidEndEvent(e))}},sP=e=>{e.mousedown=e.dragStart,e.mousemoveWindow=e.dragMove,e.mouseup=e.dragEnd,e.contextmenu=e=>{e.preventDefault()}};function cP({enable:e,clickTolerance:t}){return new tP({clickTolerance:t,move:(e,t)=>({around:t,panDelta:t.sub(e)}),activateOnStart:!0,moveStateManager:new iP({checkCorrectEvent:e=>e.button===0&&!e.ctrlKey}),enable:e,assignEvents:sP})}function lP({enable:e,clickTolerance:t,aroundCenter:n=!0,minPixelCenterThreshold:r=100,rotateSpeed:i=.8},a){return new tP({clickTolerance:t,move:(e,t)=>{let o=a();if(n&&Math.abs(o.y-e.y)>r)return{bearingDelta:mn(new b(e.x,t.y),t,o)};let s=(t.x-e.x)*i;return n&&t.y<o.y&&(s=-s),{bearingDelta:s}},moveStateManager:new iP({checkCorrectEvent:e=>e.button===0&&e.ctrlKey||e.button===2&&!e.ctrlKey}),enable:e,assignEvents:sP})}function uP({enable:e,clickTolerance:t,pitchSpeed:n=-.5}){return new tP({clickTolerance:t,move:(e,t)=>({pitchDelta:(t.y-e.y)*n}),moveStateManager:new iP({checkCorrectEvent:e=>e.button===0&&e.ctrlKey||e.button===2}),enable:e,assignEvents:sP})}function dP({enable:e,clickTolerance:t,rollDegreesPerPixelMoved:n=.3},r){return new tP({clickTolerance:t,move:(e,t)=>{let i=r(),a=(t.x-e.x)*n;return t.y<i.y&&(a=-a),{rollDelta:a}},moveStateManager:new iP({checkCorrectEvent:e=>e.button===2&&e.ctrlKey}),enable:e,assignEvents:sP})}var fP=class{constructor(e,t){this._clickTolerance=e.clickTolerance||1,this._map=t,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new b(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,t,n){return this._calculateTransform(e,t,n)}touchmove(e,t,n){if(this._active){if(this._shouldBePrevented(n.length)){this._map.cooperativeGestures.notifyGestureBlocked(`touch_pan`,e);return}return e.preventDefault(),this._calculateTransform(e,t,n)}}touchend(e,t,n){this._calculateTransform(e,t,n),this._active&&this._shouldBePrevented(n.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,t,n){n.length>0&&(this._active=!0);let r=XN(n,t),i=new b(0,0),a=new b(0,0),o=0;for(let e in r){let t=r[e],n=this._touches[e];n&&(i._add(t),a._add(t.sub(n)),o++,r[e]=t)}if(this._touches=r,this._shouldBePrevented(o)||!a.mag())return;let s=a.div(o);if(this._sum._add(s),!(this._sum.mag()<this._clickTolerance))return{around:i.div(o),panDelta:s}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}},pP=class{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}touchstart(e,t,n){this._firstTwoTouches||n.length<2||(this._firstTwoTouches=[n[0].identifier,n[1].identifier],this._start([t[0],t[1]]))}touchmove(e,t,n){if(!this._firstTwoTouches)return;e.preventDefault();let[r,i]=this._firstTwoTouches,a=mP(n,t,r),o=mP(n,t,i);if(!a||!o)return;let s=this._aroundCenter?null:a.add(o).div(2);return this._move([a,o],s,e)}touchend(e,t,n){if(!this._firstTwoTouches)return;let[r,i]=this._firstTwoTouches,a=mP(n,t,r),o=mP(n,t,i);a&&o||(this._active&&F.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(e){this._enabled=!0,this._aroundCenter=!!e&&e.around===`center`}disable(){this._enabled=!1,this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}};function mP(e,t,n){for(let r=0;r<e.length;r++)if(e[r].identifier===n)return t[r]}var hP=.1;function gP(e,t){return Math.log(e/t)/Math.LN2}var _P=class extends pP{constructor(){super(),this._zoomRate=1,this._zoomThreshold=hP}setZoomRate(e){this._zoomRate=e??1}setZoomThreshold(e){this._zoomThreshold=e??hP}reset(){super.reset(),delete this._distance,delete this._startDistance}_start(e){this._startDistance=this._distance=e[0].dist(e[1])}_move(e,t){let n=this._distance;if(this._distance=e[0].dist(e[1]),!(!this._active&&Math.abs(gP(this._distance,this._startDistance))<this._zoomThreshold))return this._active=!0,{zoomDelta:gP(this._distance,n)*this._zoomRate,pinchAround:t}}};function vP(e,t){return e.angleWith(t)*180/Math.PI}var yP=class extends pP{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1])}_move(e,t,n){let r=this._vector;if(this._vector=e[0].sub(e[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:vP(this._vector,r),pinchAround:t}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());let t=25/(Math.PI*this._minDiameter)*360,n=vP(e,this._startVector);return Math.abs(n)<t}};function bP(e){return Math.abs(e.y)>Math.abs(e.x)}var xP=class extends pP{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,t,n){super.touchstart(e,t,n),this._currentTouchCount=n.length}_start(e){this._lastPoints=e,bP(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,t,n){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;let r=e[0].sub(this._lastPoints[0]),i=e[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(r,i,n.timeStamp),this._valid)return this._lastPoints=e,this._active=!0,{pitchDelta:(r.y+i.y)/2*-.5}}gestureBeginsVertically(e,t,n){if(this._valid!==void 0)return this._valid;let r=e.mag()>=2,i=t.mag()>=2;if(!r&&!i)return;if(!r||!i)return this._firstMove===void 0&&(this._firstMove=n),n-this._firstMove<100&&void 0;let a=e.y>0==t.y>0;return bP(e)&&bP(t)&&a}},SP={panStep:100,bearingStep:15,pitchStep:10},CP=class{constructor(e,t){this._tr=t;let n=SP;this._panStep=n.panStep,this._bearingStep=n.bearingStep,this._pitchStep=n.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let t=0,n=0,r=0,i=0,a=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?r=1:(e.preventDefault(),a=-1);break;case 40:e.shiftKey?r=-1:(e.preventDefault(),a=1);break;default:return}return this._rotationDisabled&&(n=0,r=0),{cameraAnimation:o=>{let s=this._tr;o.easeTo({duration:300,easeId:`keyboardHandler`,easing:wP,zoom:t?Ut(s.zoom+t*(e.shiftKey?2:1),o.getZoomSnap()):s.zoom,bearing:s.bearing+n*this._bearingStep,pitch:s.pitch+r*this._pitchStep,offset:[-i*this._panStep,-a*this._panStep],center:s.center},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}};function wP(e){return e*(2-e)}var TP=4.000244140625,EP=class{constructor(e,t,n){this._onTimeout=e=>{this._type=`wheel`,this._delta-=this._lastValue,this._active||this._start(e)},this._map=e,this._tr=n,this._triggerRenderFrame=t,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around===`center`)}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return this._map.cooperativeGestures.isEnabled()?!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e)):!1}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e)){this._map.cooperativeGestures.notifyGestureBlocked(`wheel_zoom`,e);return}let t=e.deltaMode===WheelEvent.DOM_DELTA_LINE?e.deltaY*40:e.deltaY,n=jn(),r=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,t!==0&&t%TP==0?this._type=`wheel`:t!==0&&Math.abs(t)<4?this._type=`trackpad`:r>400?(this._type=null,this._lastValue=t,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(r*t)<200?`trackpad`:`wheel`,this._timeout&&(clearTimeout(this._timeout),this._timeout=null,t+=this._lastValue)),e.shiftKey&&t&&(t/=4),this._type&&(this._lastWheelEvent=e,this._delta-=t,this._active||this._start(e)),e.preventDefault()}_start(e){if(!this._delta)return;this._needsRerender=!1,this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let t=F.mousePos(this._map.getCanvas(),e),n=this._tr;this._aroundPoint=this._aroundCenter?n.transform.locationToScreenPoint(Q.convert(n.center)):t,this._needsRerender||(this._needsRerender=!0,this._triggerRenderFrame())}renderFrame(){if(!this._needsRerender||(this._needsRerender=!1,!this.isActive()))return;let e=this._tr.transform;if(typeof this._lastExpectedZoom==`number`){let t=e.zoom-this._lastExpectedZoom;typeof this._startZoom==`number`&&(this._startZoom+=t),typeof this._targetZoom==`number`&&(this._targetZoom+=t)}if(this._delta!==0){let t=this._type===`wheel`&&Math.abs(this._delta)>TP?this._wheelZoomRate:this._defaultZoomRate,n=2/(1+Math.exp(-Math.abs(this._delta*t)));this._delta<0&&n!==0&&(n=1/n);let r=typeof this._targetZoom==`number`?Vt(this._targetZoom):e.scale,i=e.applyConstrain(e.getCameraLngLat(),Ht(r*n)).zoom,a=this._map.getZoomSnap();if(this._type===`wheel`&&a>0){let t=Ut(e.zoom,a);this._targetZoom=Ut(i,a,i-t)}else this._targetZoom=i;this._type===`wheel`&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}let t=typeof this._targetZoom==`number`?this._targetZoom:e.zoom,n=this._startZoom,r=this._easing,i=!1,a;if(this._type===`wheel`&&n&&r){let e=jn()-this._lastWheelEventTime,o=Math.min((e+5)/200,1),s=r(o);a=ta.number(n,t,s),o<1?this._needsRerender=!0:i=!0}else a=t,i=!0;return this._active=!0,i&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout},200)),this._lastExpectedZoom=a,{noInertia:!0,needsRenderFrame:!i,zoomDelta:a-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let t=Pt;if(this._prevEase){let e=this._prevEase,n=(jn()-e.start)/e.duration,r=e.easing(n+.01)-e.easing(n),i=.27/Math.sqrt(r*r+1e-4)*.01;t=Nt(i,Math.sqrt(.0729-i*i),.25,1)}return this._prevEase={start:jn(),duration:e,easing:t},t}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}},DP=class{constructor(e,t){this._clickZoom=e,this._tapZoom=t}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}},OP=class{constructor(e,t){this._tr=t,this.reset()}reset(){this._active=!1}dblclick(e,t){return e.preventDefault(),{cameraAnimation:n=>{n.easeTo({duration:300,zoom:Ut(this._tr.zoom+(e.shiftKey?-1:1),n.getZoomSnap()),around:this._tr.transform.isPointOnMapSurface(t)?this._tr.unproject(t):void 0},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}},kP=class{constructor(){this._tap=new $N({numTouches:1,numTaps:1}),this._zoomRate=1,this.reset()}setZoomRate(e){this._zoomRate=e??1}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(e,t,n){if(!this._swipePoint){if(!this._tapTime)this._tap.touchstart(e,t,n);else{let r=t[0],i=e.timeStamp-this._tapTime<500,a=this._tapPoint.dist(r)<30;!i||!a?this.reset():n.length>0&&(this._swipePoint=r,this._swipeTouch=n[0].identifier)}}}touchmove(e,t,n){if(!this._tapTime)this._tap.touchmove(e,t,n);else if(this._swipePoint){if(n[0].identifier!==this._swipeTouch)return;let r=t[0],i=r.y-this._swipePoint.y;return this._swipePoint=r,e.preventDefault(),this._active=!0,{zoomDelta:i/128*this._zoomRate}}}touchend(e,t,n){if(this._tapTime)this._swipePoint&&n.length===0&&this.reset();else{let r=this._tap.touchend(e,t,n);r&&(this._tapTime=e.timeStamp,this._tapPoint=r)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}},AP=class{constructor(e,t,n){this._el=e,this._mousePan=t,this._touchPan=n}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(`maplibregl-touch-drag-pan`)}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(`maplibregl-touch-drag-pan`)}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}},jP=class{constructor(e,t,n,r){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=t,this._mousePitch=n,this._mouseRoll=r}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}},MP=class{constructor(e,t,n,r){this._el=e,this._touchZoom=t,this._touchRotate=n,this._tapDragZoom=r,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add(`maplibregl-touch-zoom-rotate`)}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(`maplibregl-touch-zoom-rotate`)}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}setZoomRate(e){this._touchZoom.setZoomRate(e),this._tapDragZoom.setZoomRate(e)}setZoomThreshold(e){this._touchZoom.setZoomThreshold(e)}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}},NP=class{constructor(e,t){this._bypassKey=navigator.userAgent.includes(`Mac`)?`metaKey`:`ctrlKey`,this._map=e,this._options=t,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;let e=this._map.getCanvasContainer();e.classList.add(`maplibregl-cooperative-gestures`),this._container=F.create(`div`,`maplibregl-cooperative-gesture-screen`,e);let t=this._map._getUIString(`CooperativeGesturesHandler.WindowsHelpText`);this._bypassKey===`metaKey`&&(t=this._map._getUIString(`CooperativeGesturesHandler.MacHelpText`));let n=this._map._getUIString(`CooperativeGesturesHandler.MobileHelpText`),r=document.createElement(`div`);r.className=`maplibregl-desktop-message`,r.textContent=t,this._container.appendChild(r);let i=document.createElement(`div`);i.className=`maplibregl-mobile-message`,i.textContent=n,this._container.appendChild(i),this._container.setAttribute(`aria-hidden`,`true`)}_destroyUI(){this._container&&(this._container.remove(),this._map.getCanvasContainer().classList.remove(`maplibregl-cooperative-gestures`)),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,t){this._enabled&&(this._map.fire(new cr(`cooperativegestureprevented`,{gestureType:e,originalEvent:t})),this._container.classList.add(`maplibregl-show`),setTimeout(()=>{this._container.classList.remove(`maplibregl-show`)},100))}},PP=class{constructor(e){this._camera=e}get transform(){return this._camera._requestedCameraState||this._camera.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.screenPointToLocation(b.convert(e),this._camera.terrain)}},FP=e=>e.zoom||e.drag||e.roll||e.pitch||e.rotate,IP=class extends or{};function LP(e){return e.panDelta?.mag()||e.zoomDelta||e.bearingDelta||e.pitchDelta||e.rollDelta}var RP=class{get _ownerDocument(){return this._el?.ownerDocument||document}get _ownerWindow(){return this._el?.ownerDocument?.defaultView||window}constructor(e,t,n){this._terrainGesture={inFlight:!1,anchorElevation:null,anchorCenterElevation:null},this.handleWindowEvent=e=>{this.handleEvent(e,`${e.type}Window`)},this.handleEvent=(e,t)=>{if(e.type===`blur`){this.stop(!0);return}this._updatingCamera=!0;let n=e.type===`renderFrame`?void 0:e,r={needsRenderFrame:!1},i={},a={};for(let{handlerName:o,handler:s,allowed:c}of this._handlers){if(!s.isEnabled())continue;let l;if(this._blockedByActive(a,c,o))s.reset();else if(s[t||e.type]){if(bn(e,t||e.type)){let n=F.mousePos(this._map.getCanvas(),e);l=s[t||e.type](e,n)}else if(yn(e,t||e.type)){let n=e.touches,r=this._getMapTouches(n),i=F.touchPos(this._map.getCanvas(),r);l=s[t||e.type](e,i,r)}else xn(t||e.type)||(l=s[t||e.type](e));this.mergeHandlerResult(r,i,l,o,n),l?.needsRenderFrame&&this._triggerRenderFrame()}(l||s.isActive())&&(a[o]=s)}let o={};for(let e in this._previousActiveHandlers)a[e]||(o[e]=n);this._previousActiveHandlers=a,(Object.keys(o).length||LP(r))&&(this._changes.push([r,i,o]),this._triggerRenderFrame()),(Object.keys(a).length||LP(r))&&this._camera.stop(!0),this._updatingCamera=!1;let{cameraAnimation:s}=r;s&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],s(this._map))},this._map=e,this._camera=t,this._transformProvider=new PP(this._camera),this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new WN(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n);let r=this._el;this._listeners=[[r,`touchstart`,{passive:!0}],[r,`touchmove`,{passive:!1}],[r,`touchend`,void 0],[r,`touchcancel`,void 0],[r,`mousedown`,void 0],[r,`mousemove`,void 0],[r,`mouseup`,void 0],[this._ownerDocument,`mousemove`,{capture:!0}],[this._ownerDocument,`mouseup`,void 0],[r,`mouseover`,void 0],[r,`mouseout`,void 0],[r,`dblclick`,void 0],[r,`click`,void 0],[r,`keydown`,{capture:!1}],[r,`keyup`,void 0],[r,`wheel`,{passive:!1}],[r,`contextmenu`,void 0],[this._ownerWindow,`blur`,void 0]];for(let[e,t,n]of this._listeners)e.addEventListener(t,e===this._ownerDocument?this.handleWindowEvent:this.handleEvent,n)}destroy(){for(let[e,t,n]of this._listeners)e.removeEventListener(t,e===this._ownerDocument?this.handleWindowEvent:this.handleEvent,n)}_addDefaultHandlers(e){let t=this._map,n=t.getCanvasContainer();this._add(`mapEvent`,new qN(t,e));let r=t.boxZoom=new YN(t,e,this._transformProvider);this._add(`boxZoom`,r),e.interactive&&e.boxZoom&&r.enable();let i=t.cooperativeGestures=new NP(t,e.cooperativeGestures);this._add(`cooperativeGestures`,i),e.cooperativeGestures&&i.enable();let a=new eP(t,this._transformProvider),o=new OP(t,this._transformProvider);t.doubleClickZoom=new DP(o,a),this._add(`tapZoom`,a),this._add(`clickZoom`,o),e.interactive&&e.doubleClickZoom&&t.doubleClickZoom.enable();let s=new kP;this._add(`tapDragZoom`,s);let c=t.touchPitch=new xP(t);this._add(`touchPitch`,c),e.interactive&&e.touchPitch&&t.touchPitch.enable(e.touchPitch);let l=()=>this._camera.transform.centerPoint,u=lP(e,l),d=uP(e),f=dP(e,l);t.dragRotate=new jP(e,u,d,f),this._add(`mouseRotate`,u,[`mousePitch`]),this._add(`mousePitch`,d,[`mouseRotate`,`mouseRoll`]),this._add(`mouseRoll`,f,[`mousePitch`]),e.interactive&&e.dragRotate&&t.dragRotate.enable();let p=cP(e),m=new fP(e,t);t.dragPan=new AP(n,p,m),this._add(`mousePan`,p),this._add(`touchPan`,m,[`touchZoom`,`touchRotate`]),e.interactive&&e.dragPan&&t.dragPan.enable(e.dragPan);let h=new yP,g=new _P;t.touchZoomRotate=new MP(n,g,h,s),this._add(`touchRotate`,h,[`touchPan`,`touchZoom`]),this._add(`touchZoom`,g,[`touchPan`,`touchRotate`]),e.interactive&&e.touchZoomRotate&&t.touchZoomRotate.enable(e.touchZoomRotate),this._add(`blockableMapEvent`,new JN(t,e),[`touchPan`]);let _=t.scrollZoom=new EP(t,()=>this._triggerRenderFrame(),this._transformProvider);this._add(`scrollZoom`,_,[`mousePan`]),e.interactive&&e.scrollZoom&&t.scrollZoom.enable(e.scrollZoom);let v=t.keyboard=new CP(t,this._transformProvider);this._add(`keyboard`,v),e.interactive&&e.keyboard&&t.keyboard.enable()}_add(e,t,n){this._handlers.push({handlerName:e,handler:t,allowed:n}),this._handlersById[e]=t}stop(e){if(!this._updatingCamera){for(let{handler:e}of this._handlers)e.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(let{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!FP(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,t,n){for(let r in e)if(r!==n&&!t?.includes(r))return!0;return!1}_getMapTouches(e){let t=[];for(let n of e){let e=n.target;this._el.contains(e)&&t.push(n)}return t}mergeHandlerResult(e,t,n,r,i){if(!n)return;P(e,n);let a={handlerName:r,originalEvent:n.originalEvent||i};n.zoomDelta!==void 0&&(t.zoom=a),n.panDelta!==void 0&&(t.drag=a),n.rollDelta!==void 0&&(t.roll=a),n.pitchDelta!==void 0&&(t.pitch=a),n.bearingDelta!==void 0&&(t.rotate=a)}_applyChanges(){let e={},t={},n={};for(let[r,i,a]of this._changes)r.panDelta&&(e.panDelta=(e.panDelta||new b(0,0))._add(r.panDelta)),r.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+r.zoomDelta),r.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+r.bearingDelta),r.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+r.pitchDelta),r.rollDelta&&(e.rollDelta=(e.rollDelta||0)+r.rollDelta),r.around!==void 0&&(e.around=r.around),r.pinchAround!==void 0&&(e.pinchAround=r.pinchAround),r.noInertia&&(e.noInertia=r.noInertia),P(t,i),P(n,a);this._updateMapTransform(e,t,n),this._changes=[]}_updateMapTransform(e,t,n){let r=this._map.terrain;if(!LP(e)){this._fireEvents(t,n,!0);return}let i=this._camera.getTransformForUpdate();this._camera.stop(!0);let{panDelta:a,zoomDelta:o,bearingDelta:s,pitchDelta:c,rollDelta:l}=e;o>0&&this._terrainGesture.inFlight&&this._camera.moveCenterOntoTerrain(i,o);let{around:u,aroundOnSurface:d}=this._resolveAround(e,r,i),f=r?this._terrainGestureElevation(r,u,d,i,t):void 0,p={panDelta:a,zoomDelta:o,rollDelta:l,pitchDelta:c,bearingDelta:s,around:u,aroundElevation:f};this._camera.cameraHelper.useGlobeControls&&!i.isPointOnMapSurface(u)&&(u=i.centerPoint);let m=this._computePreZoomAroundLoc(i,u,a,f);this._handleMapControls({terrain:r,tr:i,deltasForHelper:p,preZoomAroundLoc:m,combinedEventsInProgress:t,panDelta:a}),this._camera.applyUpdatedTransform(i),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(t,n,!0)}_resolveAround(e,t,n){let r=e.pinchAround===void 0?e.around:e.pinchAround;return r||=this._camera.transform.centerPoint,t&&!n.isPointOnMapSurface(r)?{around:n.centerPoint,aroundOnSurface:!1}:{around:r,aroundOnSurface:!0}}_terrainGestureElevation(e,t,n,r,i){if(!n)return;if(this._terrainGesture.anchorCenterElevation!==r.elevation&&(i.drag||i.zoom)){let n=r.screenTerrainPointToMercatorCoordinate(t,e);this._terrainGesture.anchorElevation=n?n.z:void 0,this._terrainGesture.anchorCenterElevation=r.elevation}let a=this._terrainGesture.anchorElevation;if(a!=null&&!(t.distSqr(r.centerPoint)<.01)&&!(a-r.elevation>=.9*(r.getCameraAltitude()-r.elevation)))return a}_computePreZoomAroundLoc(e,t,n,r){if(t.distSqr(e.centerPoint)<.01)return e.center;let i=n?t.sub(n):t;return r===void 0?e.screenPointToLocation(i):e.screenPointToLocationAtElevation(i,r)}_handleMapControls({terrain:e,tr:t,deltasForHelper:n,preZoomAroundLoc:r,combinedEventsInProgress:i,panDelta:a}){let o=this._camera.cameraHelper;if(o.handleMapControlsRollPitchBearingZoom(n,t),!e&&!o.useGlobeControls&&!t.isPointOnMapSurface(n.around)){a&&t.setCenter(t.screenPointToLocation(t.centerPoint.sub(a)));return}if(!e){o.handleMapControlsPan(n,t,r);return}if(!this._terrainGesture.inFlight){this._terrainGesture.inFlight=!0,this._camera.holdElevation(t,`gesture`),o.handleMapControlsPan(n,t,r);return}if(!o.useGlobeControls&&n.aroundElevation===void 0&&i.drag&&a){t.setCenter(t.screenPointToLocation(t.centerPoint.sub(a)));return}o.handleMapControlsPan(n,t,r)}_fireEvents(e,t,n){let r=FP(this._eventsInProgress),i=FP(e),a={};for(let t in e){let{originalEvent:n}=e[t];this._eventsInProgress[t]||(a[`${t}start`]=n),this._eventsInProgress[t]=e[t]}!r&&i&&this._fireEvent(`movestart`,i.originalEvent);for(let e in a)this._fireEvent(e,a[e]);i&&this._fireEvent(`move`,i.originalEvent);for(let t in e){let{originalEvent:n}=e[t];this._fireEvent(t,n)}let o={},s;for(let e in this._eventsInProgress){let{handlerName:n,originalEvent:r}=this._eventsInProgress[e];this._handlersById[n].isActive()||(delete this._eventsInProgress[e],s=t[n]||r,o[`${e}end`]=s)}for(let e in o)this._fireEvent(e,o[e]);let c=FP(this._eventsInProgress),l=(r||i)&&!c;if(l&&this._terrainGesture.inFlight){let e=this._camera.releaseElevation();this._terrainGesture={inFlight:!1,anchorElevation:null,anchorCenterElevation:null},this._camera.applyTransformChange(t=>{this._map.getCenterClampedToGround()&&(this._map.terrain?this._camera.putCenterBackOnTerrain(t,this._map.terrain,e):t.setElevation(0))})}if(n&&l){this._updatingCamera=!0;let e=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),t=e=>e!==0&&-this._bearingSnap<e&&e<this._bearingSnap;e&&(e.essential||!kn.prefersReducedMotion)?(t(e.bearing||this._map.getBearing())&&(e.bearing=0),e.freezeElevation=!0,this._map.easeTo(e,{originalEvent:s})):(this._fireEvent(`moveend`,s),t(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1}}_fireEvent(e,t){this._camera.fire(new R(e,t?{originalEvent:t}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(e=>{delete this._frameId,this.handleEvent(new IP(`renderFrame`,{timeStamp:e})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}},zP=class{constructor(e,t,n){this.holder=e,this.lift=null,this._terrainChanged=!1,this._dem=t?`awaiting`:`loaded`,this.keepsTerrainBelowMaxZoomForCenter=n}get tookDem(){return this._dem===`taken`}noteTerrainChange(){this._terrainChanged=!0}take(e,t){let n=!1;if(this._terrainChanged&&(this._terrainChanged=!1,t.hasElevationForLngLat(e.center,e)||(e.setElevation(0),this._dem=`awaiting`,n=!0)),this._dem!==`awaiting`)return n;let r=t.getDrawnElevationForLngLat(e.center,!0);if(r!==void 0)return e.setElevation(r),this._dem=`taken`,!0;let i=t.getDrawnElevationForLngLat(e.center);return i===void 0||i===e.elevation?n:(e.setElevation(i),!0)}},BP=.01,VP=class extends sr{constructor(e){super(),this._elevationHold=null,this._renderFrameCallback=()=>{let e=Math.min((jn()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this.transform=EO(),this.cameraHelper=new NO,e.minZoom!==void 0&&this.transform.setMinZoom(e.minZoom),e.maxZoom!==void 0&&this.transform.setMaxZoom(e.maxZoom),e.minPitch!==void 0&&this.transform.setMinPitch(e.minPitch),e.maxPitch!==void 0&&this.transform.setMaxPitch(e.maxPitch),e.renderWorldCopies!==void 0&&this.transform.setRenderWorldCopies(e.renderWorldCopies),e.transformConstrain!==null&&this.transform.setConstrainOverride(e.transformConstrain),this._moving=!1,this._zooming=!1,this._bearingSnap=e.bearingSnap,this._zoomSnap=e.zoomSnap,this._requestRenderFrame=e.requestRenderFrame,this._cancelRenderFrame=e.cancelRenderFrame,this.terrain=e.terrain,this._centerClampedToGround=e.centerClampedToGround??!0,this.transformCameraUpdate=e.transformCameraUpdate??null,this._stopHandlers=e.stopHandlers??(()=>{}),this.on(`moveend`,()=>{delete this._requestedCameraState})}setTerrain(e){this.terrain=e,e&&this._elevationHold?.noteTerrainChange(),this.applyTerrainChange()}migrateProjection(e,t){if(e.apply(this.transform,!0),this.transform=e,this.cameraHelper=t,this._requestedCameraState){let t=e.clone();t.apply(this._requestedCameraState,!0),this._requestedCameraState=t}}getCenter(){return new Q(this.transform.center.lng,this.transform.center.lat)}setCenter(e,t){return this.jumpTo({center:e},t)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,t){return this.jumpTo({elevation:e},t),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,t,n){return e=b.convert(e).mult(-1),this.panTo(this.transform.center,P({offset:e},t),n)}panTo(e,t,n){return this.easeTo(P({center:e},t),n)}getZoom(){return this.transform.zoom}setZoom(e,t){return this.jumpTo({zoom:e},t),this}zoomTo(e,t,n){return this.easeTo(P({zoom:e},t),n)}zoomIn(e,t){return this.zoomTo(Ut(this.getZoom()+1,this._zoomSnap),e,t),this}zoomOut(e,t){return this.zoomTo(Ut(this.getZoom()-1,this._zoomSnap),e,t),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,t){return e!=this.transform.fov&&(this.applyTransformChange(t=>t.setFov(e)),this.fire(new R(`movestart`,t)).fire(new R(`move`,t)).fire(new R(`moveend`,t))),this}getBearing(){return this.transform.bearing}setZoomSnap(e){return this._zoomSnap=e,this}getZoomSnap(){return this._zoomSnap}setBearing(e,t){return this.jumpTo({bearing:e},t),this}getPadding(){return this.transform.padding}setPadding(e,t){return this.jumpTo({padding:e},t),this}rotateTo(e,t,n){return this.easeTo(P({bearing:e},t),n)}resetNorth(e,t){return this.rotateTo(0,P({duration:1e3},e),t),this}resetNorthPitch(e,t){return this.easeTo(P({bearing:0,pitch:0,roll:0,duration:1e3},e),t),this}snapToNorth(e,t){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,t):this}getPitch(){return this.transform.pitch}setPitch(e,t){return this.jumpTo({pitch:e},t),this}getRoll(){return this.transform.roll}setRoll(e,t){return this.jumpTo({roll:e},t),this}cameraForBounds(e,t){e=kb.convert(e).adjustAntiMeridian();let n=t?.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),n,t)}_cameraForBoxAndBearing(e,t,n,r){let i={top:0,bottom:0,right:0,left:0};if(r=P({padding:i,offset:[0,0],maxZoom:this.transform.maxZoom},r),typeof r.padding==`number`){let e=r.padding;r.padding={top:e,bottom:e,right:e,left:e}}let a=P(i,r.padding);r.padding=a;let o=this.transform,s=new kb(e,t),c={top:0,bottom:0,right:0,left:0},l=r.absolutePadding?c:a,u=r.absolutePadding?a:P(c,o.padding),d=this.cameraHelper.cameraForBoxAndBearing(r,l,u,s,n,o);if(d)return this._zoomSnap&&(d.zoom=Ut(d.zoom,this._zoomSnap,-1)),r.absolutePadding?{...d,padding:a}:d}fitBounds(e,t,n){return this._fitInternal(this.cameraForBounds(e,t),t,n)}fitScreenCoordinates(e,t,n,r,i){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(b.convert(e)),this.transform.screenPointToLocation(b.convert(t)),n,r),r,i)}_fitInternal(e,t,n){return e?(t=P(e,t),t.absolutePadding?(t.padding=e.padding,delete t.absolutePadding):delete t.padding,t.linear?this.easeTo(t,n):this.flyTo(t,n)):this}jumpTo(e,t){this.stop(),e.zoom!==void 0&&this._zoomSnap&&(e.zoom=Ut(e.zoom,this._zoomSnap));let n=this.getTransformForUpdate(),r=!1,i=!1,a=!1,o=n.zoom;this.terrain&&this.getCenterClampedToGround()&&n.setElevation(this.terrain.getElevationForLngLat(e.center?Q.convert(e.center):n.center,n)),this.cameraHelper.handleJumpToCenterZoom(n,e);let s=n.zoom!==o;return e.elevation!==void 0&&n.elevation!==+e.elevation&&n.setElevation(+e.elevation),e.bearing!==void 0&&n.bearing!==+e.bearing&&(r=!0,n.setBearing(+e.bearing)),e.pitch!==void 0&&n.pitch!==+e.pitch&&(i=!0,n.setPitch(+e.pitch)),e.roll!==void 0&&n.roll!==+e.roll&&(a=!0,n.setRoll(+e.roll)),e.padding!=null&&!n.isPaddingEqual(e.padding)&&n.setPadding(e.padding),this.applyUpdatedTransform(n),this.fire(new R(`movestart`,t)).fire(new R(`move`,t)),s&&this.fire(new R(`zoomstart`,t)).fire(new R(`zoom`,t)).fire(new R(`zoomend`,t)),r&&this.fire(new R(`rotatestart`,t)).fire(new R(`rotate`,t)).fire(new R(`rotateend`,t)),i&&this.fire(new R(`pitchstart`,t)).fire(new R(`pitch`,t)).fire(new R(`pitchend`,t)),a&&this.fire(new R(`rollstart`,t)).fire(new R(`roll`,t)).fire(new R(`rollend`,t)),this.fire(new R(`moveend`,t))}calculateAnchoredCameraOptions(e){let t=this.transform.clone(),n=Q.convert(e.anchorLocation),r=b.convert(e.anchorScreenPoint),i={panDelta:r.sub(this.transform.locationToScreenPoint(n,this.terrain)),zoomDelta:e.zoom===void 0?0:e.zoom-t.zoom,bearingDelta:0,pitchDelta:0,rollDelta:0,around:r,aroundElevation:this.terrain?.getElevationForLngLat(n,t)};return this.cameraHelper.handleMapControlsRollPitchBearingZoom(i,t),this.cameraHelper.handleMapControlsPan(i,t,n),{center:t.center,zoom:t.zoom}}calculateCameraOptionsFromCameraLngLatAltRotation(e,t,n,r,i){let a=this.transform.calculateCenterFromCameraLngLatAlt(e,t,n,r);return{center:a.center,elevation:a.elevation,zoom:a.zoom,bearing:n,pitch:r,roll:i}}easeTo(e,t){this._stop(!1,e.easeId),e=P({offset:[0,0],duration:500,easing:Pt},e),e.zoom!==void 0&&this._zoomSnap&&(e.zoom=Ut(e.zoom,this._zoomSnap)),(e.animate===!1||!e.essential&&kn.prefersReducedMotion)&&(e.duration=0);let n=this.getTransformForUpdate(),r=this.getBearing(),i=n.pitch,a=n.roll,o=e.bearing===void 0?r:this._normalizeBearing(e.bearing,r),s=e.pitch===void 0?i:+e.pitch,c=e.roll===void 0?a:this._normalizeBearing(e.roll,a),l=e.padding===void 0?n.padding:e.padding,u=b.convert(e.offset),d,f;e.around&&(d=Q.convert(e.around),f=n.locationToScreenPoint(d));let p={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},m=this.cameraHelper.handleEaseTo(n,{bearing:o,pitch:s,roll:c,padding:l,around:d,aroundPoint:f,offsetAsPoint:u,offset:e.offset,zoom:e.zoom,center:e.center});return this._rotating||=r!==o,this._pitching||=s!==i,this._rolling||=c!==a,this._padding=!n.isPaddingEqual(l),this._zooming||=m.isZooming,this._easeId=e.easeId,this._prepareEase(t,e.noMoveStart,p,{tr:n,center:m.elevationCenter,freeze:e.freezeElevation}),this._ease(r=>{m.easeFunc(r),this.terrain&&!e.freezeElevation&&this._updateElevation(r,n),this.applyUpdatedTransform(n),this._fireMoveEvents(t)},n=>{this._afterEase(t,n,e.freezeElevation)},e),this}_prepareEase(e,t,n={},r){this._moving=!0,this.terrain&&r&&(this._prepareElevation(r.center,r.tr),r.freeze&&this.holdElevation(r.tr,`animation`)),!t&&!n.moving&&this.fire(new R(`movestart`,e)),this._zooming&&!n.zooming&&this.fire(new R(`zoomstart`,e)),this._rotating&&!n.rotating&&this.fire(new R(`rotatestart`,e)),this._pitching&&!n.pitching&&this.fire(new R(`pitchstart`,e)),this._rolling&&!n.rolling&&this.fire(new R(`rollstart`,e))}_prepareElevation(e,t){this._elevationCenter=e,this._elevationStart=t.elevation,this._elevationTarget=this.terrain.getElevationForLngLat(e,t),this.elevationFreeze=!0}_updateElevation(e,t){(this._elevationStart===void 0||this._elevationCenter===void 0)&&this._prepareElevation(t.center,t),t.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,t.tileZoom));let n=this.terrain.getElevationForLngLat(this._elevationCenter,t);if(e<1&&n!==this._elevationTarget){let t=this._elevationTarget-this._elevationStart,r=(n-(t*e+this._elevationStart))/(1-e);this._elevationStart+=e*(t-r),this._elevationTarget=n}this.getCenterClampedToGround()&&t.setElevation(ta.number(this._elevationStart,this._elevationTarget,e))}holdElevation(e,t){this.elevationFreeze=!0;let n=!!this.terrain&&this.getCenterClampedToGround()&&!this.terrain.hasElevationForLngLat(e.center,e),r=this.terrain?this._terrainHeightAboveMaxZoomForCenter(e):void 0;this._elevationHold=new zP(t,n,r!==void 0&&r<=BP)}releaseElevation(){let e=this._elevationHold?.tookDem??!1;return this.elevationFreeze=!1,this._elevationHold=null,e}putCenterBackOnTerrain(e,t,n){if(n&&t.getDrawnElevationForLngLat(e.center,!0)===void 0){e.setElevation(t.getElevationForLngLat(e.center,e));let n=this._raiseCameraByPitchAndZoom(e);n!==e&&e.apply(n,!1)}else e.recalculateZoomAndCenter(t)}_takeLandedElevation(e){return!this._elevationHold||!this.terrain||!this.getCenterClampedToGround()?!1:this._elevationHold.take(e,this.terrain)}applyTerrainChange(){if(this.elevationFreeze){let e=this._requestedCameraState;this._elevationHold?.holder===`gesture`&&e&&this._takeLandedElevation(e)&&this.applyUpdatedTransform(e);return}let e=this.transform;e.setMinElevationForCurrentTile(this.terrain?this.terrain.getMinTileElevationForLngLatZoom(e.center,e.tileZoom):0),this.getCenterClampedToGround()&&e.setElevation(this.terrain?this.terrain.getElevationForLngLat(e.center,e):0)}getTransformForUpdate(){return!this.transformCameraUpdate&&!this.terrain?this.transform:(this._requestedCameraState||=this.transform.clone(),this._requestedCameraState)}_keepCameraAboveTerrain(e){let t=this._elevationHold;if(!this.terrain||!t||e.pitch>=90||!this.getCenterClampedToGround()||e.getClippingPlane())return this._raiseCameraByPitchAndZoom(e);let n=t.holder===`gesture`,r=t.lift&&t.lift.heldElevation+t.lift.height===e.elevation?t.lift:{heldElevation:e.elevation,height:0},i=this._terrainHeightAboveMaxZoomForCenter(e);i!==void 0&&i<=BP&&(t.keepsTerrainBelowMaxZoomForCenter=!0);let a=t.keepsTerrainBelowMaxZoomForCenter&&i!==void 0?i:-1/0,o=n?this._terrainHeightAboveCamera(e):-1/0,s=Math.max(0,Math.max(o,a)+r.height);return s!==r.height&&e.setElevation(r.heldElevation+s),t.lift=s>0?{heldElevation:r.heldElevation,height:s}:null,n?e:this._raiseCameraByPitchAndZoom(e)}_raiseCameraByPitchAndZoom(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90||e.getClippingPlane())return e;let t=e.getCameraLngLat(),n=this.terrain?this._terrainHeightAboveCamera(e):-e.getCameraAltitude();if(n<=0)return e;let r=e.clone();for(let e=0;e<3&&n>0;e++){let{zoom:e,pitch:i}=r.calculateCameraOptionsFromTo(t,r.getCameraAltitude()+n,r.center,r.elevation);r.setZoom(e),r.setPitch(i),n=this.terrain?this._terrainHeightAboveCamera(r):-r.getCameraAltitude()}return r}_terrainHeightAboveCamera(e){let t=this.terrain.getElevationForLngLat(e.getCameraLngLat(),e)-e.getCameraAltitude(),n=e.getClippingPlane()?null:this.terrain.getCoverageIndex();if(!n)return t;let[r,i,a,o]=e.getCameraFrustum().points;for(let e=0;e<=2;e++){let s=e/2;for(let e=0;e<=2;e++){let c=e/2,l=(1-c)*(1-s),u=c*(1-s),d=c*s,f=(1-c)*s,p=l*r[0]+u*i[0]+d*a[0]+f*o[0],m=l*r[1]+u*i[1]+d*a[1]+f*o[1],h=l*r[2]+u*i[2]+d*a[2]+f*o[2],g=SO(n,this.terrain.exaggeration,p,m);g.covered&&(t=Math.max(t,g.elevation-h))}}return t}_terrainHeightAboveMaxZoomForCenter(e){let t=this.terrain.getCoverageIndex();if(!t)return;let n=Wm.fromLngLat(e.getCameraLngLat()),r=Wm.fromLngLat(e.center),i=Vt(e.zoom-e.maxZoom),a=SO(t,this.terrain.exaggeration,kt(n.x,r.x,i),kt(n.y,r.y,i));return a.covered?a.elevation-kt(e.getCameraAltitude(),e.elevation,i):void 0}moveCenterOntoTerrain(e,t){if(!this.terrain||!this.getCenterClampedToGround()||e.getClippingPlane())return;let{center:n,elevation:r,zoom:i}=e;e.recalculateZoomAndCenter(this.terrain),(!(e.zoom>i-t&&e.zoom<e.maxZoom)||Math.abs(this.terrain.getElevationForLngLat(e.center,e)-e.elevation)>=1)&&(e.setZoom(i),e.setCenter(n),e.setElevation(r))}applyUpdatedTransform(e){this._takeLandedElevation(e);let t=this._keepCameraAboveTerrain(e);if(!this.transformCameraUpdate){t!==this.transform&&this.transform.apply(t,!1);return}let n=t.clone(),{center:r,zoom:i,roll:a,pitch:o,bearing:s,elevation:c}=this.transformCameraUpdate(n);r&&n.setCenter(r),c!==void 0&&n.setElevation(c),i!==void 0&&n.setZoom(i),a!==void 0&&n.setRoll(a),o!==void 0&&n.setPitch(o),s!==void 0&&n.setBearing(s),this.transform.apply(c===void 0?n:this._raiseCameraByPitchAndZoom(n),!1)}applyTransformChange(e){let t=this._requestedCameraState!==void 0,n=this.getTransformForUpdate();e(n),this.applyUpdatedTransform(n),t||delete this._requestedCameraState}_fireMoveEvents(e){this.fire(new R(`move`,e)),this._zooming&&this.fire(new R(`zoom`,e)),this._rotating&&this.fire(new R(`rotate`,e)),this._pitching&&this.fire(new R(`pitch`,e)),this._rolling&&this.fire(new R(`roll`,e))}_afterEase(e,t,n=!1){this._takeLandedElevation(this.transform);let r=this.releaseElevation();if(this.terrain&&n&&this.getCenterClampedToGround()&&this.putCenterBackOnTerrain(this.transform,this.terrain,r),this._easeId&&t&&this._easeId===t)return;delete this._easeId;let i=this._zooming,a=this._rotating,o=this._pitching,s=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,i&&this.fire(new R(`zoomend`,e)),a&&this.fire(new R(`rotateend`,e)),o&&this.fire(new R(`pitchend`,e)),s&&this.fire(new R(`rollend`,e)),this.fire(new R(`moveend`,e))}flyTo(e,t){if(!e.essential&&kn.prefersReducedMotion)return this.easeTo(e,t);this.stop(),e=P({offset:[0,0],speed:1.2,curve:1.42,easing:Pt},e),e.zoom!==void 0&&this._zoomSnap&&(e.zoom=Ut(e.zoom,this._zoomSnap));let n=this.getTransformForUpdate(),r=n.bearing,i=n.pitch,a=n.roll,o=n.padding,s=e.bearing===void 0?r:this._normalizeBearing(e.bearing,r),c=e.pitch===void 0?i:+e.pitch,l=e.roll===void 0?a:this._normalizeBearing(e.roll,a),u=e.padding===void 0?n.padding:e.padding,d=b.convert(e.offset),f=n.centerPoint.add(d),p=n.screenPointToLocation(f),m=this.cameraHelper.handleFlyTo(n,{bearing:s,pitch:c,roll:l,padding:u,locationAtOffset:p,offsetAsPoint:d,center:e.center,minZoom:e.minZoom,zoom:e.zoom}),h=e.curve,g=Math.max(n.width,n.height),_=g/m.scaleOfZoom,v=m.pixelPathLength,y=g/m.scaleOfMinZoom;h=Math.min(h,Math.sqrt(y/v*2));let x=h*h;function S(e){let t=(_*_-g*g+(e?-1:1)*x*x*v*v)/(2*(e?_:g)*x*v);return Math.log(Math.sqrt(t*t+1)-t)}function C(e){return(Math.exp(e)-Math.exp(-e))/2}function w(e){return(Math.exp(e)+Math.exp(-e))/2}function T(e){return C(e)/w(e)}let E=S(!1),D=function(e){return w(E)/w(E+h*e)},O=function(e){return g*((w(E)*T(E+h*e)-C(E))/x)/v},k=(S(!0)-E)/h;if(Math.abs(v)<2e-6||!isFinite(k)){if(Math.abs(g-_)<1e-6)return this.easeTo(e,t);let n=_<g?-1:1;k=Math.abs(Math.log(_/g))/h,O=()=>0,D=e=>Math.exp(n*h*e)}if(e.duration!==void 0)e.duration=+e.duration;else{let t=e.screenSpeed===void 0?+e.speed:+e.screenSpeed/h;e.duration=1e3*k/t}return e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=r!==s,this._pitching=c!==i,this._rolling=l!==a,this._padding=!n.isPaddingEqual(u),this._prepareEase(t,!1,{},{tr:n,center:m.targetCenter,freeze:e.freezeElevation}),this._ease(p=>{let h=p*k,g=1/D(h),_=O(h);this._rotating&&n.setBearing(ta.number(r,s,p)),this._pitching&&n.setPitch(ta.number(i,c,p)),this._rolling&&n.setRoll(ta.number(a,l,p)),this._padding&&(n.interpolatePadding(o,u,p),f=n.centerPoint.add(d)),m.easeFunc(p,g,_,f),this.terrain&&!e.freezeElevation&&this._updateElevation(p,n),this.applyUpdatedTransform(n),this._fireMoveEvents(t)},()=>{this._afterEase(t,void 0,e.freezeElevation)},e),this}isEasing(){return!!this._easeFrameId}stop(e){return this._stop(e)}_stop(e,t){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){let e=this._onEaseEnd;delete this._onEaseEnd,e.call(this,t)}return e||this._stopHandlers(),this}_ease(e,t,n){n.animate===!1||n.duration===0?(e(1),t()):(this._easeStart=jn(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=t,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,t){e=Ft(e,-180,180);let n=Math.abs(e-t);return Math.abs(e-360-t)<n&&(e-=360),Math.abs(e+360-t)<n&&(e+=360),e}isMoving(){return this._moving}isZooming(){return this._zooming}isRotating(){return this._rotating}},HP={compact:!0,customAttribution:`<a href="https://maplibre.org/" target="_blank">MapLibre</a>`},UP=class{constructor(e=HP){this._toggleAttribution=()=>{this._container.classList.contains(`maplibregl-compact`)&&(this._container.classList.contains(`maplibregl-compact-show`)?(this._container.setAttribute(`open`,``),this._container.classList.remove(`maplibregl-compact-show`)):(this._container.classList.add(`maplibregl-compact-show`),this._container.removeAttribute(`open`)))},this._updateData=e=>{e&&(e.type===`terrain`||e.dataType===`style`||e.dataType===`source`&&(e.sourceDataType===`metadata`||e.sourceDataType===`visibility`))&&this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute(`open`,``):!this._container.classList.contains(`maplibregl-compact`)&&!this._container.classList.contains(`maplibregl-attrib-empty`)&&(this._container.setAttribute(`open`,``),this._container.classList.add(`maplibregl-compact`,`maplibregl-compact-show`)):(this._container.setAttribute(`open`,``),this._container.classList.contains(`maplibregl-compact`)&&this._container.classList.remove(`maplibregl-compact`,`maplibregl-compact-show`))},this._updateCompactMinimize=()=>{this._container.classList.contains(`maplibregl-compact`)&&this._container.classList.contains(`maplibregl-compact-show`)&&this._container.classList.remove(`maplibregl-compact-show`)},this.options=e}getDefaultPosition(){return`bottom-right`}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=F.create(`details`,`maplibregl-ctrl maplibregl-ctrl-attrib`),this._compactButton=F.create(`summary`,`maplibregl-ctrl-attrib-button`,this._container),this._compactButton.addEventListener(`click`,this._toggleAttribution),this._setElementTitle(this._compactButton,`ToggleAttribution`),this._innerContainer=F.create(`div`,`maplibregl-ctrl-attrib-inner`,this._container),this._updateAttributions(),this._updateCompact(),this._map.on(`styledata`,this._updateData),this._map.on(`sourcedata`,this._updateData),this._map.on(`terrain`,this._updateData),this._map.on(`resize`,this._updateCompact),this._map.on(`drag`,this._updateCompactMinimize),this._container}onRemove(){this._container.remove(),this._map.off(`styledata`,this._updateData),this._map.off(`sourcedata`,this._updateData),this._map.off(`terrain`,this._updateData),this._map.off(`resize`,this._updateCompact),this._map.off(`drag`,this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(e,t){let n=this._map._getUIString(`AttributionControl.${t}`);e.title=n,e.setAttribute(`aria-label`,n)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map(e=>typeof e==`string`?e:``)):typeof this.options.customAttribution==`string`&&e.push(this.options.customAttribution)),this._map.style.stylesheet){let e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id}let t=this._map.style.tileManagers;for(let n in t){let r=t[n];if(r.used||r.usedForTerrain){let t=r.getSource();t.attribution&&!e.includes(t.attribution)&&e.push(t.attribution)}}e=e.filter(e=>String(e).trim()),e.sort((e,t)=>e.length-t.length),e=e.filter((t,n)=>{for(let r=n+1;r<e.length;r++)if(e[r].includes(t))return!1;return!0});let n=e.join(` | `);if(n!==this._attribHTML){if(this._attribHTML=n,e.length){let t=document.createDocumentFragment(),n=!0;for(let r of e){let e=F.sanitize(r);e.hasChildNodes()&&(n||t.append(` | `),t.append(e),n=!1)}this._innerContainer.replaceChildren(t),this._container.classList.remove(`maplibregl-attrib-empty`)}else this._container.classList.add(`maplibregl-attrib-empty`);this._updateCompact(),this._editLink=null}}},WP=class{constructor(e={}){this._updateCompact=()=>{let e=this._container.children;if(e.length){let t=e[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&t.classList.add(`maplibregl-compact`):t.classList.remove(`maplibregl-compact`)}},this.options=e}getDefaultPosition(){return`bottom-left`}onAdd(e){this._map=e,this._compact=this.options?.compact,this._container=F.create(`div`,`maplibregl-ctrl`);let t=F.create(`a`,`maplibregl-ctrl-logo`);return t.target=`_blank`,t.rel=`noopener nofollow`,t.href=`https://maplibre.org/`,t.setAttribute(`aria-label`,this._map._getUIString(`LogoControl.Title`)),t.setAttribute(`rel`,`noopener nofollow`),this._container.appendChild(t),this._container.style.display=`block`,this._map.on(`resize`,this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off(`resize`,this._updateCompact),this._map=void 0,this._compact=void 0}},GP=class{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){let t=++this._id;return this._queue.push({callback:e,id:t,cancelled:!1}),t}remove(e){let t=this._currentlyRunning,n=t?this._queue.concat(t):this._queue;for(let t of n)if(t.id===e){t.cancelled=!0;return}}run(e=0){if(this._currentlyRunning)throw Error(`Attempting to run(), but is already running.`);let t=this._currentlyRunning=this._queue;this._queue=[];let n=!1,r;for(let i of t)if(!i.cancelled){try{i.callback(e)}catch(e){n||(n=!0,r=e)}if(this._cleared)break}if(this._cleared=!1,this._currentlyRunning=!1,n)throw r}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}},KP=$l([{name:`a_pos3d`,type:`Int16`,components:3}]),qP=class extends sr{constructor(e){super(),this._lastTilesetChange=jn(),this.tileManager=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.tileManager.usedForTerrain=!1,this.tileManager.tileSize=null,this.releaseAllRTT()}getSource(){return this.tileManager._source}update(e,t){this.tileManager.update(e,t),this._renderableTilesKeys=[];let n={},r=!1;for(let i of ME(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:t}))n[i.key]=!0,this._renderableTilesKeys.push(i.key),this._tiles[i.key]||(i.terrainRttPosMatrix32f=new Float32Array(16),ye(i.terrainRttPosMatrix32f,0,8192,8192,0,0,1),this._tiles[i.key]=new mE(i,this.tileSize),this._lastTilesetChange=jn(),r=!0);for(let e in this._tiles)n[e]||(this._tiles[e].releaseRTT(this.tileManager.map.painter),delete this._tiles[e],r=!0);return r}releaseRTT(e){for(let t in this._tiles){let n=this._tiles[t];(n.tileID.equals(e)||n.tileID.isChildOf(e)||e.isChildOf(n.tileID))&&n.releaseRTT(this.tileManager.map.painter)}}releaseAllRTT(){for(let e in this._tiles)this._tiles[e].releaseRTT(this.tileManager.map.painter)}getRenderableTiles(){return this._renderableTilesKeys.map(e=>this.getTileByID(e))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,t){return t?this._getTerrainCoordsForTileRanges(e,t):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){let t={};for(let n of this._renderableTilesKeys){let r=this._tiles[n].tileID,i=e.clone(),a=_t();if(r.canonical.equals(e.canonical))ye(a,0,M,M,0,0,1);else if(r.canonical.isChildOf(e.canonical)){let t=r.canonical.z-e.canonical.z,n=r.canonical.x-(r.canonical.x>>t<<t),i=r.canonical.y-(r.canonical.y>>t<<t),o=M>>t;ye(a,0,o,o,0,0,1),ue(a,a,[-n*o,-i*o,0])}else if(e.canonical.isChildOf(r.canonical)){let t=e.canonical.z-r.canonical.z,n=e.canonical.x-(e.canonical.x>>t<<t),i=e.canonical.y-(e.canonical.y>>t<<t),o=M>>t;ye(a,0,M,M,0,0,1),ue(a,a,[n*o,i*o,0]),de(a,a,[1/2**t,1/2**t,0])}else continue;i.terrainRttPosMatrix32f=new Float32Array(a),t[n]=i}return t}_getTerrainCoordsForTileRanges(e,t){let n={};for(let r of this._renderableTilesKeys){let i=this._tiles[r].tileID;if(!this._isWithinTileRanges(i,t))continue;let a=e.clone(),o=_t();if(i.canonical.z===e.canonical.z){let t=e.canonical.x-i.canonical.x+e.wrap*(1<<e.canonical.z),n=e.canonical.y-i.canonical.y;ye(o,0,M,M,0,0,1),ue(o,o,[t*M,n*M,0])}else if(i.canonical.z>e.canonical.z){let t=i.canonical.z-e.canonical.z,n=i.canonical.x-(i.canonical.x>>t<<t)+e.wrap*(1<<i.canonical.z),r=i.canonical.y-(i.canonical.y>>t<<t),a=e.canonical.x-(i.canonical.x>>t),s=e.canonical.y-(i.canonical.y>>t),c=M>>t;ye(o,0,c,c,0,0,1),ue(o,o,[-n*c+a*M,-r*c+s*M,0])}else{let t=e.canonical.z-i.canonical.z,n=e.canonical.x-(e.canonical.x>>t<<t)+e.wrap*(1<<e.canonical.z),r=e.canonical.y-(e.canonical.y>>t<<t),a=(e.canonical.x>>t)-i.canonical.x,s=(e.canonical.y>>t)-i.canonical.y,c=M<<t;ye(o,0,c,c,0,0,1),ue(o,o,[n*M+a*c,r*M+s*c,0])}a.terrainRttPosMatrix32f=new Float32Array(o),n[r]=a}return n}getSourceTile(e,t){let n=this.tileManager._source,r=e.overscaledZ-this.deltaZoom;if(r>n.maxzoom&&(r=n.maxzoom),r<n.minzoom)return;this._sourceTileCache[e.key]||=e.scaledTo(r).key;let i=this.findTileInCaches(this._sourceTileCache[e.key]);if(!i?.dem&&t)for(;r>=n.minzoom&&!i?.dem;)i=this.findTileInCaches(e.scaledTo(r--).key);return i}findTileInCaches(e){let t=this.tileManager.getTileByID(e);return t||(t=this.tileManager._outOfViewCache.getByKey(e),t)}anyTilesAfterTime(e=jn()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,t){let n=t[e.canonical.z];return!!n&&(e.wrap>n.minWrap||e.wrap<n.maxWrap||e.canonical.x>=n.minTileXWrapped&&e.canonical.x<=n.maxTileXWrapped&&e.canonical.y>=n.minTileY&&e.canonical.y<=n.maxTileY)}},JP=class{constructor(e,t,n,r=`auto`){this._meshCache={},this.painter=e,this.tileManager=new qP(t),this.options=n,this.exaggeration=typeof n.exaggeration==`number`?n.exaggeration:1,this._terrainSkirtLength=r,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache=new Map,this.coverage=new xO(this.tileManager,this.exaggeration)}destroy(){this._fbo&&=(this._fbo.destroy(),null),this._heightMapFbo&&=(this._heightMapFbo.destroy(),null),this._fboDepthTexture&&=(this._fboDepthTexture.destroy(),null),this._emptyDemTexture&&=(this._emptyDemTexture.destroy(),null),this._emptyDepthTexture&&=(this._emptyDepthTexture.destroy(),null);for(let e in this._meshCache)this._meshCache[e].destroy();this._meshCache={},this.tileManager.destruct()}getDEMElevation(e,t,n,r=M){let i=e.normalizeCoordinates(t,n,r);if(!i)return 0;let a=this.coverage.getSampler(i.tileID);return a?a(i.x,i.y,r):0}getElevationForLngLatZoom(e,t){if(!Pb(t,e.wrap()))return 0;let{tileID:n,mercatorX:r,mercatorY:i}=this._getOverscaledTileIDFromLngLatZoom(e,t);return this.getElevation(n,r%M,i%M,M)}getElevationForLngLat(e,t){let n=this.getDrawnElevationForLngLat(e);return n===void 0?this.getElevationForLngLatZoom(e,this._getFallbackZoom(t)):n}getDrawnElevationForLngLat(e,t=!1){return this.coverage.sample(e,t)}hasElevationForLngLat(e,t){if(this.getDrawnElevationForLngLat(e)!==void 0)return!0;let n=this._getFallbackZoom(t);if(!Pb(n,e.wrap()))return!1;let{tileID:r}=this._getOverscaledTileIDFromLngLatZoom(e,n);return!!this.tileManager.getSourceTile(r,!0)?.dem}_getFallbackZoom(e){return Math.min(e.tileZoom,this.tileManager.maxzoom)}getElevation(e,t,n,r=M){return this.getDEMElevation(e,t,n,r)*this.exaggeration}resetElevationCache(){this.coverage.reset()}getCoverageIndex(){return this.coverage.getIndex()}_getDEMTileMatrix(e,t){let n=`${t.tileID.key}/${e.key}`,r=this._demMatrixCache.get(n);if(r)return r;let i=e.canonical.z-t.tileID.canonical.z,a=e.canonical.x-(e.canonical.x>>i<<i),o=e.canonical.y-(e.canonical.y>>i<<i),s=he(new Float64Array(16),[1/(M<<i),1/(M<<i),0]);return ue(s,s,[a*M,o*M,0]),this._demMatrixCache.set(n,s),s}getTerrainData(e){if(!this._emptyDemTexture){let e=this.painter.context,t=new Mf({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new qf(e,t,e.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new qf(e,new Mf({width:1,height:1}),e.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=se([])}let t=this.tileManager.getSourceTile(e,!0);if(t?.dem&&(!t.demTexture||t.needsTerrainPrepare)){let e=this.painter.context;t.demTexture||=this.painter.getTileTexture(t.dem.stride),t.demTexture?t.demTexture.update(t.dem.getPixels(),{premultiply:!1}):t.demTexture=new qf(e,t.dem.getPixels(),e.gl.RGBA,{premultiply:!1}),t.demTexture.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),t.needsTerrainPrepare=!1}let n=t?this._getDEMTileMatrix(e,t):this._emptyDemMatrix;return{u_depth:2,u_terrain:3,u_terrain_dim:t?.dem?.dim||1,u_terrain_matrix:n,u_terrain_unpack:t?.dem?.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(t?.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:t}}getFramebuffer(){let e=this.painter,t=e.width/devicePixelRatio,n=e.height/devicePixelRatio;return this._fbo&&(this._fbo.width!==t||this._fbo.height!==n)&&(this._fbo.destroy(),this._fboDepthTexture.destroy(),delete this._fbo,delete this._fboDepthTexture),this._fboDepthTexture||(this._fboDepthTexture=new qf(e.context,{width:t,height:n,data:null},e.context.gl.RGBA,{premultiply:!1}),this._fboDepthTexture.bind(e.context.gl.NEAREST,e.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=e.context.createFramebuffer(t,n,!0,!1),this._fbo.depthAttachment.set(e.context.createRenderbuffer(e.context.gl.DEPTH_COMPONENT16,t,n))),this._fbo.colorAttachment.set(this._fboDepthTexture.texture),this._fbo}getHeightMapFramebuffer(e){return this._heightMapFbo||=this.painter.context.createFramebuffer(1,1,!1,!1),this._heightMapFbo.colorAttachment.set(e),this._heightMapFbo}getTerrainMesh(e,t){let n=t&&e.canonical.y===0,r=t&&e.canonical.y===(1<<e.canonical.z)-1,i=`m_${n?`n`:``}_${r?`s`:``}`;if(this._meshCache[i])return this._meshCache[i];let a=this.painter.context,o=new zu,s=new td,c=this.meshSize,l=M/c,u=c*c;for(let e=0;e<=c;e++)for(let t=0;t<=c;t++)o.emplaceBack(t*l,e*l,0);for(let e=0;e<u;e+=c+1)for(let t=0;t<c;t++)s.emplaceBack(t+e,c+t+e+1,c+t+e+2),s.emplaceBack(t+e,c+t+e+2,t+e+1);this._terrainSkirtLength!==`none`&&this._buildSkirts(o,s,c,l,n,r);let d=new dx(a.createVertexBuffer(o,KP.members),a.createIndexBuffer(s),od.simpleSegment(0,0,o.length,s.length));return this._meshCache[i]=d,d}getSkirtLength(e){return 2*Math.PI*Pm/2**Math.max(e,0)/5}getMinTileElevationForLngLatZoom(e,t){if(!Pb(t,e.wrap()))return 0;let{tileID:n}=this._getOverscaledTileIDFromLngLatZoom(e,t);return this.getMinMaxElevation(n).minElevation??0}getMinMaxElevation(e){let t=this.tileManager.getSourceTile(e,!0),n={minElevation:null,maxElevation:null};return t?.dem&&(n.minElevation=t.dem.min*this.exaggeration,n.maxElevation=t.dem.max*this.exaggeration),n}_getOverscaledTileIDFromLngLatZoom(e,t){let n=Wm.fromLngLat(e.wrap()),r=(1<<t)*M,i=n.x*r,a=n.y*r;return{tileID:new Lb(t,0,t,Math.floor(i/M),Math.floor(a/M)),mercatorX:i,mercatorY:a}}_buildSkirts(e,t,n,r,i,a){let o=e.length,s=o+(n+1),c=(n+1)*n,l=i?$p:0,u=+!i,d=a?em:M,f=+!a;for(let t=0;t<=n;t++)e.emplaceBack(t*r,l,u);for(let t=0;t<=n;t++)e.emplaceBack(t*r,d,f);for(let e=0;e<n;e++)t.emplaceBack(c+e,s+e,s+e+1),t.emplaceBack(c+e,s+e+1,c+e+1),t.emplaceBack(0+e,o+e+1,o+e),t.emplaceBack(0+e,0+e+1,o+e+1);let p=e.length,m=p+(n+1)*2;for(let t of[0,1])for(let i=0;i<=n;i++)for(let n of[0,1])e.emplaceBack(t*M,i*r,n);for(let e=0;e<n*2;e+=2)t.emplaceBack(p+e,p+e+1,p+e+3),t.emplaceBack(p+e,p+e+3,p+e+2),t.emplaceBack(m+e,m+e+3,m+e+1),t.emplaceBack(m+e,m+e+2,m+e+3)}},YP=[`none`,`zoom`,`sourceTiles`,`visibleLayers`,`revision`],XP=class{constructor(e,t,n,r){this._tileKeys=e.map(e=>e.key).sort().join(),this._revision=t,this._zoom=n,this._visibleLayerIds=r}difference(e){return this._revision===e?._revision?this._visibleLayerIds===e._visibleLayerIds?this._tileKeys===e._tileKeys?this._zoom===e._zoom?`none`:`zoom`:`sourceTiles`:`visibleLayers`:`revision`}},ZP={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0,"color-relief":!0};function QP(e){return by(e)?`custom-layer:${e.id}`:e.source}function $P(e){return by(e)?e.implementation.renderToTerrainTile!==void 0:ZP[e.type]===!0}var eF=class{constructor(e,t){this.needsFollowUpFrame=!1,this.painter=e,this.terrain=t,this.rttSize=t.tileManager.tileSize*t.qualityFactor}getTexture(e){return e.getRTT(this._stacks.length-1).texture}prepareForRender(e,t,n){let r=t!==this._lastPrepareZoom;this._lastPrepareZoom=t,this._stacks=[],this._prevRenderedToTexture=!1,this._rttTiles=[],this._renderableTiles=this.terrain.tileManager.getRenderableTiles(),this._renderableLayerIds=e._order.filter(n=>!e._layers[n].isHidden(t));let i=this._renderableLayerIds.join(),a=new Set;for(let t of this._renderableLayerIds){let n=e._layers[t],r=n.source;r&&ZP[n.type]&&a.add(r)}this._coordsAscending={},this._rttFingerprints={};for(let n of a){let r=e.tileManagers[n];if(!r)continue;this._coordsAscending[n]={};let a=this._coordsAscending[n],o=r.getSource(),s=o instanceof hx?o.terrainTileRanges:null;for(let e of r.getVisibleCoordinates()){let t=this.terrain.tileManager.getTerrainCoords(e,s);for(let e in t)a[e]||=[],a[e].push(t[e])}this._rttFingerprints[n]={};let c=this._rttFingerprints[n],l=r.getState().revision;for(let e in a)c[e]=new XP(a[e],l,t,i)}for(let n of this._renderableLayerIds){let r=e._layers[n];if(!by(r)||!$P(r))continue;let a=r.implementation.terrainTileRevision??0,o={};for(let e of this._renderableTiles)o[e.tileID.key]=new XP([e.tileID],a,t,i);this._rttFingerprints[QP(r)]=o}this.needsFollowUpFrame=!1;let o=r||n,s=!1;for(let e of this._renderableTiles){let t=this._textureDifference(e);t!==`none`&&(t===`zoom`&&o||t===`visibleLayers`&&r?this.needsFollowUpFrame=!0:t===`zoom`||t===`sourceTiles`?(s?this.needsFollowUpFrame=!0:e.releaseRTT(this.painter),s=!0):e.releaseRTT(this.painter))}}_textureDifference(e){let t=`none`;for(let n in this._rttFingerprints){let r=this._rttFingerprints[n][e.tileID.key];if(!r)continue;let i=r.difference(e.rttFingerprint[n]);YP.indexOf(i)>YP.indexOf(t)&&(t=i)}return t}renderLayer(e,t,n){if(e.isHidden(n.transform.zoom))return!1;let r=$P(e),i=this.painter,a=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(r&&(this._prevRenderedToTexture||this._stacks.push([]),this._prevRenderedToTexture=!0,this._stacks[this._stacks.length-1].push(e.id),!a))return!0;if(this._prevRenderedToTexture||r&&a){this._prevRenderedToTexture=r;let e=this._stacks.length-1,a=this._stacks[e]||[];n.isRenderingToTexture=!0,PA(i.context.frameUniformBuffer,this.rttSize,this.rttSize);for(let r of this._renderableTiles){if(this._rttTiles.push(r),r.getRTT(e))continue;let o=r.acquireRTT(i,e,this.rttSize);i.bindRTT(o),i.context.clear({color:W.transparent,stencil:0}),n.invalidateTileClippingMasks();for(let e of a){let a=t._layers[e],o=a.source?this._coordsAscending[a.source][r.tileID.key]:[r.tileID];i.context.viewport.set([0,0,this.rttSize,this.rttSize]),n.renderTileClippingMasks(a,o),i.renderLayer(i,t.tileManagers[a.source],a,o,n);let s=QP(a);s&&(r.rttFingerprint[s]=this._rttFingerprints[s][r.tileID.key])}o.texture.generateMipmap()}return n.isRenderingToTexture=!1,PA(i.context.frameUniformBuffer,i.context.gl.drawingBufferWidth,i.context.gl.drawingBufferHeight),SN(this.painter,this.terrain,this._rttTiles,n),this._rttTiles=[],r}return!1}},tF={"AttributionControl.ToggleAttribution":`Toggle attribution`,"AttributionControl.MapFeedback":`Map feedback`,"FullscreenControl.Enter":`Enter fullscreen`,"FullscreenControl.Exit":`Exit fullscreen`,"GeolocateControl.FindMyLocation":`Find my location`,"GeolocateControl.LocationNotAvailable":`Location not available`,"LogoControl.Title":`MapLibre logo`,"Map.Title":`Map`,"Marker.Title":`Map marker`,"NavigationControl.ResetBearing":`Drag to rotate map, click to reset north`,"NavigationControl.ZoomIn":`Zoom in`,"NavigationControl.ZoomOut":`Zoom out`,"Popup.Close":`Close popup`,"ScaleControl.Feet":`ft`,"ScaleControl.Meters":`m`,"ScaleControl.Kilometers":`km`,"ScaleControl.Miles":`mi`,"ScaleControl.NauticalMiles":`nm`,"GlobeControl.Enable":`Enable globe`,"GlobeControl.Disable":`Disable globe`,"TerrainControl.Enable":`Enable terrain`,"TerrainControl.Disable":`Disable terrain`,"CooperativeGesturesHandler.WindowsHelpText":`Use Ctrl + scroll to zoom the map`,"CooperativeGesturesHandler.MacHelpText":`Use ⌘ + scroll to zoom the map`,"CooperativeGesturesHandler.MobileHelpText":`Use two fingers to move the map`},nF=y,rF={hash:!1,interactive:!0,bearingSnap:7,zoomSnap:0,attributionControl:HP,maplibreLogo:!1,refreshExpiredTiles:!0,canvasContextAttributes:{antialias:!1,preserveDrawingBuffer:!1,powerPreference:`high-performance`,failIfMajorPerformanceCaveat:!1,desynchronized:!1,contextType:void 0},scrollZoom:!0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,trackResize:!0,center:[0,0],elevation:0,zoom:0,bearing:0,pitch:0,roll:0,renderWorldCopies:!0,maxTileCacheSize:null,maxTileCacheZoomLevels:Vn.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,transformConstrain:null,fadeDuration:300,crossSourceCollisions:!0,clickTolerance:3,localIdeographFontFamily:`sans-serif`,pitchWithRotate:!0,rollEnabled:!1,rotateSpeed:.8,pitchSpeed:-.5,reduceMotion:void 0,validateStyle:!0,globalState:void 0,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:!0,centerClampedToGround:!0,terrainSkirtLength:`auto`,zoomLevelsToOverscale:4,anisotropicFilterPitch:20},iF=class extends sr{get _ownerWindow(){return this._container?.ownerDocument?.defaultView||window}constructor(e){super(),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new GP,this._controls=[],this._mapId=Rt(),this._styleUrl=null,this._missingStyleImageResolver=null,this._lostContextStyle={style:null,images:null},this._contextLost=e=>{if(e.preventDefault(),this._frameRequest&&=(this._frameRequest.abort(),null),this.painter.destroy(),this._lostContextStyle=this._getStyleAndImages(),!this.style){this.fire(new vr(`webglcontextlost`,{originalEvent:e}));return}for(let e of Object.values(this.style._layers))if(e.type===`custom`&&console.warn(`Custom layer with id '${e.id}' cannot be restored after WebGL context loss. You will need to re-add it manually after context restoration.`),e._listeners)for(let[t]of Object.entries(e._listeners))console.warn(`Custom layer with id '${e.id}' had event listeners for event '${t}' which cannot be restored after WebGL context loss. You will need to re-add them manually after context restoration.`);this.style.off(`error`,this._onStyleError),this.style.destroy(),this.style=null,this.fire(new vr(`webglcontextlost`,{originalEvent:e}))},this._contextRestored=e=>{if(this._lostContextStyle.style&&this.setStyle(this._lostContextStyle.style,{diff:!1}),this._lostContextStyle.images&&this.style){this.style.imageManager.images=this._lostContextStyle.images;for(let e in this._lostContextStyle.images){let t=this._lostContextStyle.images[e];t.isWebGLImage&&this.style.imageManager.updateImage(e,t,!1)}}this._lostContextStyle={style:null,images:null};try{this._setupPainter()}catch(e){this.fire(new I(e));return}this.resize(),this._update(),this._resizeInternal(),this.fire(new vr(`webglcontextrestored`,{originalEvent:e}))},this._onMapScroll=e=>{if(e.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onStyleError=e=>{e.tile&&this.triggerRepaint()},this._onWindowOnline=()=>{this._update()};let t={...rF,...e,canvasContextAttributes:{...rF.canvasContextAttributes,...e.canvasContextAttributes}};if(t.minZoom!=null&&t.maxZoom!=null&&t.minZoom>t.maxZoom)throw Error(`maxZoom must be greater than or equal to minZoom`);if(t.minPitch!=null&&t.maxPitch!=null&&t.minPitch>t.maxPitch)throw Error(`maxPitch must be greater than or equal to minPitch`);if(t.minPitch!=null&&t.minPitch<0)throw Error(`minPitch must be greater than or equal to 0`);if(t.maxPitch!=null&&t.maxPitch>180)throw Error(`maxPitch must be less than or equal to 180`);this._camera=new VP({minZoom:t.minZoom,maxZoom:t.maxZoom,minPitch:t.minPitch,maxPitch:t.maxPitch,bearingSnap:t.bearingSnap,zoomSnap:t.zoomSnap,renderWorldCopies:t.renderWorldCopies,centerClampedToGround:t.centerClampedToGround,terrain:this.terrain,transformConstrain:t.transformConstrain,requestRenderFrame:e=>this._requestRenderFrame(e),cancelRenderFrame:e=>this._cancelRenderFrame(e),transformCameraUpdate:t.transformCameraUpdate,stopHandlers:()=>this._handlers?.stop(!1)}),this._camera.setEventedParent(this),this._interactive=t.interactive,this._maxTileCacheSize=t.maxTileCacheSize,this._maxTileCacheZoomLevels=t.maxTileCacheZoomLevels,this._canvasContextAttributes={...t.canvasContextAttributes},this._trackResize=t.trackResize===!0,this._terrainSkirtLength=t.terrainSkirtLength,this._refreshExpiredTiles=t.refreshExpiredTiles===!0,this._fadeDuration=t.fadeDuration,this._crossSourceCollisions=t.crossSourceCollisions===!0,this._collectResourceTiming=t.collectResourceTiming===!0,this._locale={...tF,...t.locale},this._clickTolerance=t.clickTolerance,this._overridePixelRatio=t.pixelRatio,this._maxCanvasSize=t.maxCanvasSize,this._zoomLevelsToOverscale=t.zoomLevelsToOverscale,this.cancelPendingTileRequestsWhileZooming=t.cancelPendingTileRequestsWhileZooming===!0,this.setAnisotropicFilterPitch(t.anisotropicFilterPitch),t.reduceMotion!==void 0&&(kn.prefersReducedMotion=t.reduceMotion),this._requestManager=new rr(t.transformRequest),this._container=this._resolveContainer(t.container),t.maxBounds&&this.setMaxBounds(t.maxBounds),this._setupContainer();try{this._setupPainter()}catch(e){throw this._cleanupContainer(),e}this._imageQueueHandle=nr.addThrottleControl(()=>this.isMoving()),this.on(`move`,()=>this._update(!1)),this.on(`moveend`,()=>this._update(!1)),this.on(`zoom`,()=>this._update(!0)),this.on(`terrain`,()=>{this.painter.markTerrainDepthDirty(),this._update(!0)}),this.once(`idle`,()=>this._idleTriggered=!0),this._handlers=new RP(this,this._camera,t),typeof window<`u`&&(this._ownerWindow.addEventListener(`online`,this._onWindowOnline,!1),this._setupResizeObserver());let n=typeof t.hash==`string`&&t.hash||void 0;this._hash=t.hash?new LN(n).addTo(this):void 0,this._hash?._onHashChange()||(this.jumpTo({center:t.center,elevation:t.elevation,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch,roll:t.roll}),t.bounds&&(this.resize(),this.fitBounds(t.bounds,P({},t.fitBoundsOptions,{duration:0}))));let r=typeof t.style==`string`||t.style?.projection?.type!==`globe`;this.resize(null,r),this._localIdeographFontFamily=t.localIdeographFontFamily,this._validateStyle=t.validateStyle,this._initialGlobalState=t.globalState,t.style&&this.setStyle(t.style,{localIdeographFontFamily:t.localIdeographFontFamily}),t.attributionControl&&this.addControl(new UP(typeof t.attributionControl==`boolean`?void 0:t.attributionControl)),t.maplibreLogo&&this.addControl(new WP,t.logoPosition),this.on(`style.load`,()=>{if(r||this._resizeTransform(),this._camera.transform.unmodified){let e=It(this.style.stylesheet,[`center`,`zoom`,`bearing`,`pitch`,`roll`]);this.jumpTo(e)}}),this.on(`data`,e=>{this._update(e.dataType===`style`),this.fire(e.dataType===`style`?new ur(`styledata`,e):new dr(`sourcedata`,e))}),this.on(`dataloading`,e=>{this.fire(e.dataType===`style`?new ur(`styledataloading`,e):new dr(`sourcedataloading`,e))}),this.on(`dataabort`,e=>{this.fire(new dr(`sourcedataabort`,e))})}_getMapId(){return this._mapId}setGlobalStateProperty(e,t){return this.style.setGlobalStateProperty(e,t),this._update(!0)}getGlobalState(){return this.style.getGlobalState()}addControl(e,t){if(t===void 0&&(t=e.getDefaultPosition?e.getDefaultPosition():`top-right`),!e?.onAdd)return this.fire(new I(Error(`Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.`)));let n=e.onAdd(this);this._controls.push(e);let r=this._controlPositions[t];return t.includes(`bottom`)?r.insertBefore(n,r.firstChild):r.appendChild(n),this}removeControl(e){if(!e?.onRemove)return this.fire(new I(Error(`Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.`)));let t=this._controls.indexOf(e);return t>-1&&this._controls.splice(t,1),e.onRemove(this),this}hasControl(e){return this._controls.includes(e)}coveringTiles(e){return ME(this._camera.transform,e)}setTransformCameraUpdate(e){this._camera.transformCameraUpdate=e}getCenter(){return new Q(this._camera.transform.center.lng,this._camera.transform.center.lat)}setCenter(e,t){return this._camera.setCenter(e,t),this}getCenterElevation(){return this._camera.transform.elevation}setCenterElevation(e,t){return this._camera.setCenterElevation(e,t),this}setCenterClampedToGround(e){this._camera.setCenterClampedToGround(e)}panBy(e,t,n){return this._camera.panBy(e,t,n),this}panTo(e,t,n){return this._camera.panTo(e,t,n),this}getZoom(){return this._camera.transform.zoom}setZoom(e,t){return this._camera.setZoom(e,t),this}zoomTo(e,t,n){return this._camera.zoomTo(e,t,n),this}zoomIn(e,t){return this._camera.zoomIn(e,t),this}zoomOut(e,t){return this._camera.zoomOut(e,t),this}getVerticalFieldOfView(){return this._camera.transform.fov}setVerticalFieldOfView(e,t){return this._camera.setVerticalFieldOfView(e,t),this}getBearing(){return this._camera.transform.bearing}setBearing(e,t){return this._camera.setBearing(e,t),this}getZoomSnap(){return this._camera.getZoomSnap()}setZoomSnap(e){return this._camera.setZoomSnap(e),this}getPadding(){return this._camera.transform.padding}setPadding(e,t){return this._camera.setPadding(e,t),this}rotateTo(e,t,n){return this._camera.rotateTo(e,t,n),this}resetNorth(e,t){return this._camera.resetNorth(e,t),this}resetNorthPitch(e,t){return this._camera.resetNorthPitch(e,t),this}snapToNorth(e,t){return this._camera.snapToNorth(e,t),this}getPitch(){return this._camera.transform.pitch}setPitch(e,t){return this._camera.setPitch(e,t),this}getRoll(){return this._camera.transform.roll}setRoll(e,t){return this._camera.setRoll(e,t),this}cameraForBounds(e,t){return this._camera.cameraForBounds(e,t)}fitBounds(e,t,n){return this._camera.fitBounds(e,t,n),this}fitScreenCoordinates(e,t,n,r,i){return this._camera.fitScreenCoordinates(e,t,n,r,i),this}jumpTo(e,t){return this._camera.jumpTo(e,t),this}calculateAnchoredCameraOptions(e){return this._camera.calculateAnchoredCameraOptions(e)}calculateCameraOptionsFromCameraLngLatAltRotation(e,t,n,r,i){return this._camera.calculateCameraOptionsFromCameraLngLatAltRotation(e,t,n,r,i)}easeTo(e,t){return this._camera.easeTo(e,t),this}flyTo(e,t){return this._camera.flyTo(e,t),this}stop(){return this._camera.stop(),this}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLat(Q.convert(e),this._camera.transform):null}getCenterClampedToGround(){return this._camera.getCenterClampedToGround()}calculateCameraOptionsFromTo(e,t,n,r){return r==null&&this.terrain&&(r=this.terrain.getElevationForLngLat(n,this._camera.transform)),this._camera.transform.calculateCameraOptionsFromTo(e,t,n,r??0)}resize(e,t=!0){if(this._lostContextStyle.style!==null)return this;this._resizeInternal(t);let n=!this._camera._moving;return n&&(this.stop(),this.fire(new R(`movestart`,e)).fire(new R(`move`,e))),this.fire(new cr(`resize`,e)),n&&this.fire(new R(`moveend`,e)),this}_resizeInternal(e=!0){let[t,n]=this._containerDimensions();if(this._clampedPixelRatio=this._getClampedPixelRatio(t,n),this._resizeCanvas(t,n,this._clampedPixelRatio),this.painter.resize(t,n,this._clampedPixelRatio),this.painter.overLimit()){let e=this.painter.context.gl;this._maxCanvasSize=[e.drawingBufferWidth,e.drawingBufferHeight],this._clampedPixelRatio=this._getClampedPixelRatio(t,n),this._resizeCanvas(t,n,this._clampedPixelRatio),this.painter.resize(t,n,this._clampedPixelRatio)}this.style?.resize(),this._resizeTransform(e)}_resizeTransform(e=!0){let[t,n]=this._containerDimensions();this._camera.transform.resize(t,n,e),this._camera._requestedCameraState?.resize(t,n,e)}_getClampedPixelRatio(e,t){let{0:n,1:r}=this._maxCanvasSize,i=this.getPixelRatio(),a=e*i,o=t*i,s=a>n?n/a:1,c=o>r?r/o:1,l=Math.min(s,c);return l<1&&Yt(`The canvas is larger than maxCanvasSize and is rendered at a lower pixel ratio to fit. Increase maxCanvasSize, within MAX_TEXTURE_SIZE, to render at full resolution.`),l*i}getPixelRatio(){return this._overridePixelRatio??devicePixelRatio}setPixelRatio(e){this._overridePixelRatio=e,this.resize()}getBounds(){return this._camera.transform.getBounds()}getMaxBounds(){return this._camera.transform.getMaxBounds()}setMaxBounds(e){return this._camera.applyTransformChange(t=>t.setMaxBounds(kb.convert(e))),this._update()}setMinZoom(e){if(e??=-2,e>=-2&&e<=this._camera.transform.maxZoom){let t=this._camera.transform.zoom;return this._camera.applyTransformChange(t=>t.setMinZoom(e)),this._update(),t!==this._camera.transform.zoom&&this.fire(new R(`zoomstart`)).fire(new R(`zoom`)).fire(new R(`zoomend`)).fire(new R(`movestart`)).fire(new R(`move`)).fire(new R(`moveend`)),this}throw Error(`minZoom must be between -2 and the current maxZoom, inclusive`)}getMinZoom(e=!1){let t=this._camera.transform;return e?t.applyConstrain(t.center,t.minZoom).zoom:t.minZoom}setMaxZoom(e){if(e??=22,e>=this._camera.transform.minZoom){let t=this._camera.transform.zoom;return this._camera.applyTransformChange(t=>t.setMaxZoom(e)),this._update(),t!==this._camera.transform.zoom&&this.fire(new R(`zoomstart`)).fire(new R(`zoom`)).fire(new R(`zoomend`)).fire(new R(`movestart`)).fire(new R(`move`)).fire(new R(`moveend`)),this}throw Error(`maxZoom must be greater than the current minZoom`)}getMaxZoom(){return this._camera.transform.maxZoom}setMinPitch(e){if(e??=0,e<0)throw Error(`minPitch must be greater than or equal to 0`);if(e>=0&&e<=this._camera.transform.maxPitch){let t=this._camera.transform.pitch;return this._camera.applyTransformChange(t=>t.setMinPitch(e)),this._update(),t!==this._camera.transform.pitch&&this.fire(new R(`pitchstart`)).fire(new R(`pitch`)).fire(new R(`pitchend`)).fire(new R(`movestart`)).fire(new R(`move`)).fire(new R(`moveend`)),this}throw Error(`minPitch must be between 0 and the current maxPitch, inclusive`)}getMinPitch(){return this._camera.transform.minPitch}setMaxPitch(e){if(e??=60,e>180)throw Error(`maxPitch must be less than or equal to 180`);if(e>=this._camera.transform.minPitch){let t=this._camera.transform.pitch;return this._camera.applyTransformChange(t=>t.setMaxPitch(e)),this._update(),t!==this._camera.transform.pitch&&this.fire(new R(`pitchstart`)).fire(new R(`pitch`)).fire(new R(`pitchend`)).fire(new R(`movestart`)).fire(new R(`move`)).fire(new R(`moveend`)),this}throw Error(`maxPitch must be greater than the current minPitch`)}getMaxPitch(){return this._camera.transform.maxPitch}getAnisotropicFilterPitch(){return this._anisotropicFilterPitch}setAnisotropicFilterPitch(e){if(e??=20,e>180)throw Error(`anisotropicFilterPitch must be less than or equal to 180`);if(e<0)throw Error(`anisotropicFilterPitch must be greater than or equal to 0`);return this._anisotropicFilterPitch=e,this._update()}getRenderWorldCopies(){return this._camera.transform.renderWorldCopies}setRenderWorldCopies(e){return this._camera.applyTransformChange(t=>t.setRenderWorldCopies(e)),this._update()}setTransformConstrain(e){return this._camera.applyTransformChange(t=>t.setConstrainOverride(e)),this._update()}project(e){return this._camera.transform.locationToScreenPoint(Q.convert(e),this.style&&this.terrain)}unproject(e){return this._camera.transform.screenPointToLocation(b.convert(e),this.terrain)}isMoving(){return this._camera.isMoving()||this._handlers?.isMoving()||!1}isZooming(){return this._camera.isZooming()||this._handlers?.isZooming()||!1}isRotating(){return this._camera.isRotating()||this._handlers?.isRotating()||!1}_createDelegates(e,t,n){if(e===`mouseenter`||e===`mouseover`){let r=!1;return{mousemove:i=>{let a=t.filter(e=>this.getLayer(e)),o=a.length===0?[]:this.queryRenderedFeatures(i.point,{layers:a});o.length?r||(r=!0,n.call(this,new fr(e,this,i.originalEvent,{features:o}))):r=!1},mouseout:()=>{r=!1}}}if(e===`mouseleave`||e===`mouseout`){let r=!1;return{mousemove:i=>{let a=t.filter(e=>this.getLayer(e));(a.length===0?[]:this.queryRenderedFeatures(i.point,{layers:a})).length?r=!0:r&&(r=!1,n.call(this,new fr(e,this,i.originalEvent)))},mouseout:t=>{r&&(r=!1,n.call(this,new fr(e,this,t.originalEvent)))}}}{let r=e=>{let r=t.filter(e=>this.getLayer(e)),i=r.length===0?[]:this.queryRenderedFeatures(e.point,{layers:r});i.length&&(e.features=i,n.call(this,e),delete e.features)};return{[e]:r}}}_addDelegatedListener(e,t){this._delegatedListeners||={},this._delegatedListeners[e]||=[],this._delegatedListeners[e].push(t);for(let e in t.delegates)this.on(e,t.delegates[e])}_removeDelegatedListener(e,t,n){if(!this._delegatedListeners?.[e])return;let r=this._delegatedListeners[e];for(let e=0;e<r.length;e++){let i=r[e];if(i.listener===n&&i.layers.length===t.length&&i.layers.every(e=>t.includes(e))){for(let e in i.delegates)this.off(e,i.delegates[e]);r.splice(e,1);return}}}on(e,t,n){if(n===void 0)return super.on(e,t);let r=typeof t==`string`?[t]:t,i={layers:r,listener:n,delegates:this._createDelegates(e,r,n)};return this._addDelegatedListener(e,i),{unsubscribe:()=>{this._removeDelegatedListener(e,r,n)}}}once(e,t,n){if(n===void 0)return super.once(e,t);let r=typeof t==`string`?[t]:t,i={layers:r,listener:n,delegates:this._createDelegates(e,r,t=>{this._removeDelegatedListener(e,r,n),n.call(this,t)})};return this._addDelegatedListener(e,i),this}off(e,t,n){if(n===void 0)return super.off(e,t);let r=typeof t==`string`?[t]:t;return this._removeDelegatedListener(e,r,n),this}queryRenderedFeatures(e,t){if(!this.style)return[];let n,r=e instanceof b||Array.isArray(e),i=r?e:[[0,0],[this._camera.transform.width,this._camera.transform.height]];if(t||=(r?{}:e)||{},i instanceof b||typeof i[0]==`number`)n=[b.convert(i)];else{let e=b.convert(i[0]),t=b.convert(i[1]);n=[e,new b(t.x,e.y),t,new b(e.x,t.y),e]}return this.style.queryRenderedFeatures(n,t,this._camera.transform)}querySourceFeatures(e,t){return this.style.querySourceFeatures(e,t)}setStyle(e,t){return t=P({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle,globalState:this._initialGlobalState},t),this._styleUrl=typeof e==`string`?e:null,t.diff!==!1&&t.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&e?(this._diffStyle(e,t),this):(this._localIdeographFontFamily=t.localIdeographFontFamily,this._updateStyle(e,t))}setTransformRequest(e){return this._requestManager.setTransformRequest(e),this}_getUIString(e){let t=this._locale[e];if(t==null)throw Error(`Missing UI string '${e}'`);return t}_updateStyle(e,t){if(this._diffStyleRequest?.abort(),this._diffStyleRequest=null,t.transformStyle&&this.style&&!this.style._loaded){this.style.once(`style.load`,()=>this._updateStyle(e,t));return}let n=this.style&&t.transformStyle?this.style.serialize():void 0;if(this.style&&(this.style.off(`error`,this._onStyleError),this.style.setEventedParent(null),this.style._remove(!e)),e)this.style=new Ak(this,t||{});else return this._frameRequest&&=(this._frameRequest.abort(),null),this.style?.projection?.destroy(),delete this.style,this;return this.style.setEventedParent(this,{style:this.style}),this.style.on(`error`,this._onStyleError),typeof e==`string`?this.style.loadURL(e,t,n):this.style.loadJSON(e,t,n),this}_lazyInitEmptyStyle(){this.style||(this.style=new Ak(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.on(`error`,this._onStyleError),this.style.loadEmpty())}async _diffStyle(e,t){if(this._diffStyleRequest?.abort(),typeof e==`string`){let n=e;this._diffStyleRequest=new AbortController;let r=this._diffStyleRequest;try{let e=await this._requestManager.transformRequest(n,`Style`);if(r.signal.aborted){this._diffStyleRequest=null;return}let i=await Qn(e,r);this._diffStyleRequest=null,this._updateDiff(i.data,t)}catch(e){this._diffStyleRequest=null,wn(e)||this.fire(new I(mt(e)))}}else typeof e==`object`&&(this._diffStyleRequest=null,this._updateDiff(e,t))}_updateDiff(e,t){try{this.style.setState(e,t)&&this._update(!0)}catch(n){Yt(`Unable to perform style diff: ${mt(n).message}. Rebuilding the style from scratch.`),this._updateStyle(e,t)}}getStyle(){if(this.style)return this.style.serialize()}getStyleUrl(){return this._styleUrl}_getStyleAndImages(){return this.style?{style:this.style.serialize(),images:this.style.imageManager.cloneImages()}:{style:null,images:{}}}isStyleLoaded(){if(!this.style){Yt(`There is no style added to the map.`);return}return this.style.loaded()}addSource(e,t){return this._lazyInitEmptyStyle(),this.style.addSource(e,t),this._update(!0)}isSourceLoaded(e){let t=this.style?.tileManagers[e];if(t===void 0){this.fire(new I(Error(`There is no tile manager with ID '${e}'`)));return}return t.loaded()}setTerrain(e,t={}){if(this.style._checkLoaded(),e&&_l(this,fl.terrain,{value:e},t))return this;if(this._terrainDataCallback&&this.style.off(`data`,this._terrainDataCallback),!e)this.terrain&&this.terrain.destroy(),this.terrain=null,this.painter.renderToTexture=null,this.painter.destroyRTTResources(),this._camera.setTerrain(null);else{let t=this.style.tileManagers[e.source];if(!t)throw Error(`cannot load terrain, because there exists no source with ID: ${e.source}`);this.terrain===null&&t.reload();for(let t in this.style._layers){let n=this.style._layers[t];n.type===`hillshade`&&n.source===e.source&&Yt(`You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.`),n.type===`color-relief`&&n.source===e.source&&Yt(`You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.`)}this.terrain&&this.terrain.destroy(),this.terrain=new JP(this.painter,t,e,this._terrainSkirtLength),this.painter.renderToTexture=new eF(this.painter,this.terrain),this._camera.setTerrain(this.terrain),this._terrainDataCallback=t=>this._handleTerrainDataEvent(t,e.source),this.style.on(`data`,this._terrainDataCallback)}return this.style.triggerSymbolPlacement(),this.fire(new gr({terrain:e})),this}_handleTerrainDataEvent(e,t){if(e.dataType===`style`){this.terrain.tileManager.releaseAllRTT();return}let n=e.sourceId===t;if(n&&(this.terrain.resetElevationCache(),this.style.triggerSymbolPlacement()),n&&e.tile&&(this.painter.markTerrainDepthDirty(),this._camera.applyTerrainChange()),e.tile){if(e.source?.type===`image`){this.terrain.tileManager.releaseAllRTT();return}this.terrain.tileManager.releaseRTT(e.tile.tileID)}}getTerrain(){return this.terrain?.options??null}areTilesLoaded(){let e=this.style?.tileManagers;for(let t of Object.values(e))if(!t.areTilesLoaded())return!1;return!0}removeSource(e){return this.style.removeSource(e),this._update(!0)}getSource(e){return this.style?.getSource(e)}setSourceTileLodParams(e,t,n){if(n){let r=this.getSource(n);if(!r)throw Error(`There is no source with ID "${n}", cannot set LOD parameters`);r.calculateTileZoom=EE(Math.max(1,e),Math.max(1,t))}else for(let n in this.style.tileManagers)this.style.tileManagers[n].getSource().calculateTileZoom=EE(Math.max(1,e),Math.max(1,t));return this._update(!0),this}refreshTiles(e,t){let n=this.style.tileManagers[e];if(!n)throw Error(`There is no tile manager with ID "${e}", cannot refresh tile`);t===void 0?n.reload(!0):n.refreshTiles(t.map(e=>new Fb(e.z,e.x,e.y)))}addImage(e,t,n={}){this._lazyInitEmptyStyle();let r=this._createStyleImage(t,n);return r?(this.style.addImage(e,r),r.userImage?.onAdd&&r.userImage.onAdd(this,e),this):this}setMissingStyleImageResolver(e){return this._missingStyleImageResolver=e,this.style?.setMissingImageResolver(e),this}_createStyleImage(e,t={}){let{pixelRatio:n=1,sdf:r=!1,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c}=t;if(e instanceof HTMLImageElement||rn(e)){let{width:t,height:l,data:u}=kn.getImageData(e);return{data:new Mf({width:t,height:l},u),pixelRatio:n,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c,sdf:r,version:0}}if(e.width===void 0||e.height===void 0)return this.fire(new I(Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))),null;{let{width:t,height:l,data:u}=e,d=e,f=T_(d.data);return{data:f?new Mf({width:t,height:l}):new Mf({width:t,height:l},new Uint8Array(u)),pixelRatio:n,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c,sdf:r,version:0,isWebGLImage:f,userImage:d}}}updateImage(e,t){let n=this.style.getImage(e);if(!n)return this.fire(new I(Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));let{width:r,height:i,data:a}=t instanceof HTMLImageElement||rn(t)?kn.getImageData(t):t;if(r===void 0||i===void 0)return this.fire(new I(Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(r!==n.data.width||i!==n.data.height)return this.fire(new I(Error(`The width and height of the updated image must be that same as the previous version of the image`)));if(n.isWebGLImage=T_(a),n.isWebGLImage)n.userImage=t;else{let e=!(t instanceof HTMLImageElement||rn(t));n.data.replace(a,e)}return this.style.updateImage(e,n),this}getImage(e){return this.style.getImage(e)}hasImage(e){return e?!!this.style.getImage(e):(this.fire(new I(Error(`Missing required image id`))),!1)}removeImage(e){this.style.removeImage(e)}async loadImage(e){let t=await nr.getImage(await this._requestManager.transformRequest(e,`Image`),new AbortController);if(!t.data)throw Error(`Could not load image ${e}: the response is empty`);return t}listImages(){return this.style?.listImages()??[]}addLayer(e,t){return this._lazyInitEmptyStyle(),this.style.addLayer(e,t),this._update(!0)}moveLayer(e,t){return this.style.moveLayer(e,t),this._update(!0)}removeLayer(e){return this.style.removeLayer(e),this._update(!0)}getLayer(e){return this.style?.getLayer(e)}getLayersOrder(){return this.style?.getLayersOrder()??[]}setLayerZoomRange(e,t,n){return this.style.setLayerZoomRange(e,t,n),this._update(!0)}setFilter(e,t,n={}){return this.style?.setFilter(e,t,n),this._update(!0)}getFilter(e){return this.style.getFilter(e)}setPaintProperty(e,t,n,r={}){return this.style?.setPaintProperty(e,t,n,r),this._update(!0)}getPaintProperty(e,t){return this.style.getPaintProperty(e,t)}setLayoutProperty(e,t,n,r={}){return this.style.setLayoutProperty(e,t,n,r),this._update(!0)}getLayoutProperty(e,t){return this.style.getLayoutProperty(e,t)}setGlyphs(e,t={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(e,t),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}setFontFaces(e){return this._lazyInitEmptyStyle(),this.style.setFontFaces(e),this._update(!0)}getFontFaces(){return this.style.getFontFaces()}addSprite(e,t,n={}){return this._lazyInitEmptyStyle(),this.style.addSprite(e,t,n,e=>{e||this._update(!0)}),this}removeSprite(e){return this._lazyInitEmptyStyle(),this.style.removeSprite(e),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(e,t={}){return this._lazyInitEmptyStyle(),this.style.setSprite(e,t,e=>{e||this._update(!0)}),this}setLight(e,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(e,t),this._update(!0)}getLight(){return this.style.getLight()}setSky(e,t={}){return this._lazyInitEmptyStyle(),this.style.setSky(e,t),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(e,t){return this.style.setFeatureState(e,t),this._update()}removeFeatureState(e,t){return this.style.removeFeatureState(e,t),this._update()}getFeatureState(e){return this.style.getFeatureState(e)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let e=0,t=0;return this._container&&(e=Math.floor(this._container.clientWidth)||400,t=Math.floor(this._container.clientHeight)||300),[e,t]}_shouldHandleInitialResize(){if(!this._container?.clientWidth||!this._container.clientHeight)return!1;let[e,t]=this._containerDimensions();return e!==this._camera.transform.width||t!==this._camera.transform.height}_setupResizeObserver(){let e=!1,t=IN(e=>{this._trackResize&&!this._removed&&(this.resize(e),this.redraw())},50),n=this._ownerWindow.ResizeObserver??ResizeObserver;this._resizeObserver=new n(n=>{!e&&(e=!0,!this._shouldHandleInitialResize())||t(n)}),this._resizeObserver.observe(this._container)}_resolveContainer(e){if(typeof e==`string`){let t=document.getElementById(e);if(!t)throw Error(`Container '${e}' not found.`);return t}if(e instanceof HTMLElement||e&&typeof e==`object`&&e.nodeType===1)return e;throw Error(`Invalid type: 'container' must be a String or HTMLElement.`)}_setupContainer(){let e=this._containerDimensions(),t=this._getClampedPixelRatio(e[0],e[1]),n=this._container;n.classList.add(`maplibregl-map`);let r=this._canvasContainer=F.create(`div`,`maplibregl-canvas-container`,n);this._interactive&&r.classList.add(`maplibregl-interactive`),this._canvas=F.create(`canvas`,`maplibregl-canvas`,r),this._canvas.addEventListener(`webglcontextlost`,this._contextLost,!1),this._canvas.addEventListener(`webglcontextrestored`,this._contextRestored,!1),this._canvas.setAttribute(`tabindex`,this._interactive?`0`:`-1`),this._canvas.setAttribute(`aria-label`,this._getUIString(`Map.Title`)),this._canvas.setAttribute(`role`,`region`),this._resizeCanvas(e[0],e[1],t);let i=this._controlContainer=F.create(`div`,`maplibregl-control-container`,n),a=this._controlPositions={};for(let e of[`top-left`,`top-right`,`bottom-left`,`bottom-right`])a[e]=F.create(`div`,`maplibregl-ctrl-${e} `,i);this._container.addEventListener(`scroll`,this._onMapScroll,!1)}_cleanupContainer(){this._canvas.removeEventListener(`webglcontextrestored`,this._contextRestored,!1),this._canvas.removeEventListener(`webglcontextlost`,this._contextLost,!1),this._canvasContainer.remove(),this._controlContainer.remove(),this._container.removeEventListener(`scroll`,this._onMapScroll,!1),this._container.classList.remove(`maplibregl-map`)}_resizeCanvas(e,t,n){let r=Math.round(n*e),i=Math.round(n*t);this._canvas.width=r,this._canvas.height=i,this._canvas.style.width=`${r/n}px`,this._canvas.style.height=`${i/n}px`}_setupPainter(){let e={...this._canvasContextAttributes,alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0},t=null;this._canvas.addEventListener(`webglcontextcreationerror`,e=>{t=e},{once:!0});let n=this._canvas.getContext(`webgl2`,e);if(!n)throw new FN(e,t);this.painter=new PN(n)}migrateProjection(e,t){this._camera.migrateProjection(e,t),this.fire(new _r({newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(e){return this.style?._loaded?(this._styleDirty||=e,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(e){return this._update(),this._renderTaskQueue.add(e)}_cancelRenderFrame(e){this._renderTaskQueue.remove(e)}_render(e){let t=this._idleTriggered?this._fadeDuration:0,n=this.style.projection?.transitionState>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),this._removed)return;let r=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let e=this._camera.transform.zoom,n=jn();this.style.zoomHistory.update(e,n);let i=new Dl(e,{now:n,fadeDuration:t,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),a=i.crossFadingFactor();(a!==1||a!==this._crossFadingFactor)&&(r=!0,this._crossFadingFactor=a),this.style.update(i)}let i=this.style.projection?.transitionState>0!==n;this._camera.transform.setTransitionState(this.style.projection?.transitionState),this.style&&(this._sourcesDirty||i)&&(this._sourcesDirty=!1,this.style._updateSources(this._camera.transform)),this.terrain?(this.terrain.tileManager.update(this._camera.transform,this.terrain)&&this.terrain.resetElevationCache(),this._camera.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom)),!this._camera.elevationFreeze&&this.getCenterClampedToGround()&&this._camera.transform.setElevation(this.terrain.getElevationForLngLat(this._camera.transform.center,this._camera.transform))):(this._camera.transform.setMinElevationForCurrentTile(0),this.getCenterClampedToGround()&&this._camera.transform.setElevation(0)),this._placementDirty=this.style?._updatePlacement(this._camera.transform,this.showCollisionBoxes,t,this._crossSourceCollisions,i);let a=this.style.projection,o=a?.transitionState??0;this.painter.render(this.style,this._camera.transform,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:t,symbolFadeChange:this.style.placement.symbolFadeChange(jn()),variableOffsets:this.style.placement.variableOffsets,showPadding:this.showPadding,anisotropicFilterPitch:this.getAnisotropicFilterPitch(),projectionTransition:o,isRenderingGlobe:o>0,projectionShaderVariant:a?{name:a.shaderVariantName,define:a.shaderDefine,prelude:a.shaderPreludeCode}:void 0,useSubdivision:a?.useSubdivision??!1,pixelRatio:this._clampedPixelRatio,light:this.style.light?.getEvaluated(),sky:this.style.sky?.getEvaluated()}),this.fire(new cr(`render`)),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new cr(`load`))),this.style&&(this.style.hasTransitions()||r)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();let s=this._sourcesDirty||this._styleDirty||this._placementDirty||this.painter.renderToTexture?.needsFollowUpFrame;return s||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new cr(`idle`)),this._loaded&&!this._fullyLoaded&&!s&&(this._fullyLoaded=!0),this}redraw(){return this.style&&(this._frameRequest&&=(this._frameRequest.abort(),null),this._render(0)),this}remove(){this._hash&&this._hash.remove();for(let e of this._controls)e.onRemove(this);this._controls=[],this._frameRequest&&=(this._frameRequest.abort(),null),this._renderTaskQueue.clear(),this._diffStyleRequest?.abort(),this.painter.destroy(),this._handlers.destroy(),this.setStyle(null),typeof window<`u`&&this._ownerWindow.removeEventListener(`online`,this._onWindowOnline,!1),nr.removeThrottleControl(this._imageQueueHandle),this._resizeObserver?.disconnect();let e=this.painter.context.gl.getExtension(`WEBGL_lose_context`);e?.loseContext&&e.loseContext(),this._cleanupContainer(),this._removed=!0,this.fire(new cr(`remove`))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,kn.frame(this._frameRequest,e=>{this._frameRequest=null;try{this._render(e)}catch(e){if(!wn(e))throw e}},()=>{},this._ownerWindow))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(e){this._showTileBoundaries!==e&&(this._showTileBoundaries=e,this._update())}get showPadding(){return!!this._showPadding}set showPadding(e){this._showPadding!==e&&(this._showPadding=e,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(e){this._showCollisionBoxes!==e&&(this._showCollisionBoxes=e,e?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(e){this._showOverdrawInspector!==e&&(this._showOverdrawInspector=e,this._update())}get repaint(){return!!this._repaint}set repaint(e){this._repaint!==e&&(this._repaint=e,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(e){this._vertices=e,this._update()}get version(){return nF}getCameraTargetElevation(){return this._camera.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(e){return this._lazyInitEmptyStyle(),this.style.setProjection(e),this._update(!0)}},aF={showCompass:!0,showZoom:!0,visualizePitch:!1,visualizeRoll:!0},oF=class{constructor(e){this._updateZoomButtons=()=>{let e=this._map.getZoom(),t=e===this._map.getMaxZoom(),n=e===this._map.getMinZoom(!0);this._zoomInButton.disabled=t,this._zoomOutButton.disabled=n,this._zoomInButton.setAttribute(`aria-disabled`,t.toString()),this._zoomOutButton.setAttribute(`aria-disabled`,n.toString())},this._rotateCompassArrow=()=>{let e=this._map.getPitch(),t=this._map.getRoll(),n=this._map.getBearing(),r=1/Math.cos(un(e))**.5;if(this.options.visualizePitch&&this.options.visualizeRoll){this._compassIcon.style.transform=`scale(${r}) rotateZ(${-t}deg) rotateX(${e}deg) rotateZ(${-n}deg)`;return}if(this.options.visualizePitch){this._compassIcon.style.transform=`scale(${r}) rotateX(${e}deg) rotateZ(${-n}deg)`;return}if(this.options.visualizeRoll){this._compassIcon.style.transform=`rotate(${-n-t}deg)`;return}this._compassIcon.style.transform=`rotate(${-n}deg)`},this._setButtonTitle=(e,t)=>{let n=this._map._getUIString(`NavigationControl.${t}`);e.title=n,e.setAttribute(`aria-label`,n)},this.options=P({},aF,e),this._container=F.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._container.addEventListener(`contextmenu`,e=>e.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton(`maplibregl-ctrl-zoom-in`,e=>this._map.zoomIn({},{originalEvent:e})),F.create(`span`,`maplibregl-ctrl-icon`,this._zoomInButton).setAttribute(`aria-hidden`,`true`),this._zoomOutButton=this._createButton(`maplibregl-ctrl-zoom-out`,e=>this._map.zoomOut({},{originalEvent:e})),F.create(`span`,`maplibregl-ctrl-icon`,this._zoomOutButton).setAttribute(`aria-hidden`,`true`)),this.options.showCompass&&(this._compass=this._createButton(`maplibregl-ctrl-compass`,e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})}),this._compassIcon=F.create(`span`,`maplibregl-ctrl-icon`,this._compass),this._compassIcon.setAttribute(`aria-hidden`,`true`))}onAdd(e){return this._map=e,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,`ZoomIn`),this._setButtonTitle(this._zoomOutButton,`ZoomOut`),this._map.on(`move`,this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,`ResetBearing`),this.options.visualizePitch&&this._map.on(`pitch`,this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on(`roll`,this._rotateCompassArrow),this._map.on(`rotate`,this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new sF(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){this._container.remove(),this.options.showZoom&&this._map.off(`move`,this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(`pitch`,this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off(`roll`,this._rotateCompassArrow),this._map.off(`rotate`,this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(e,t){let n=F.create(`button`,e,this._container);return n.type=`button`,n.addEventListener(`click`,t),n}},sF=class{constructor(e,t,n=!1){this.mousedown=e=>{this.startMove(e,F.mousePos(this.element,e)),window.addEventListener(`mousemove`,this.mousemove),window.addEventListener(`mouseup`,this.mouseup)},this.mousemove=e=>{this.move(e,F.mousePos(this.element,e))},this.mouseup=e=>{this._rotatePitchHandler.dragEnd(e),this.offTemp()},this.touchstart=e=>{e.targetTouches.length===1?(this._startPos=this._lastPos=F.touchPos(this.element,e.targetTouches)[0],this.startMove(e,this._startPos),window.addEventListener(`touchmove`,this.touchmove,{passive:!1}),window.addEventListener(`touchend`,this.touchend)):this.reset()},this.touchmove=e=>{e.targetTouches.length===1?(this._lastPos=F.touchPos(this.element,e.targetTouches)[0],this.move(e,this._lastPos)):this.reset()},this.touchend=e=>{e.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),delete this._startPos,delete this._lastPos,this.offTemp()},this.reset=()=>{this._rotatePitchHandler.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=t;let r=new oP;this._rotatePitchHandler=new tP({clickTolerance:3,move:(e,r)=>{let i=t.getBoundingClientRect(),a=new b((i.bottom-i.top)/2,(i.right-i.left)/2);return{bearingDelta:mn(new b(e.x,r.y),r,a),pitchDelta:n?(r.y-e.y)*-.5:void 0}},moveStateManager:r,enable:!0,assignEvents:()=>{}}),this.map=e,t.addEventListener(`mousedown`,this.mousedown),t.addEventListener(`touchstart`,this.touchstart,{passive:!1}),t.addEventListener(`touchcancel`,this.reset)}startMove(e,t){this._rotatePitchHandler.dragStart(e,t),F.disableDrag()}move(e,t){let n=this.map,{bearingDelta:r,pitchDelta:i}=this._rotatePitchHandler.dragMove(e,t)||{};r&&n.setBearing(n.getBearing()+r),i&&n.setPitch(n.getPitch()+i)}off(){let e=this.element;e.removeEventListener(`mousedown`,this.mousedown),e.removeEventListener(`touchstart`,this.touchstart),window.removeEventListener(`touchmove`,this.touchmove),window.removeEventListener(`touchend`,this.touchend),e.removeEventListener(`touchcancel`,this.reset),this.offTemp()}offTemp(){F.enableDrag(),window.removeEventListener(`mousemove`,this.mousemove),window.removeEventListener(`mouseup`,this.mouseup),window.removeEventListener(`touchmove`,this.touchmove),window.removeEventListener(`touchend`,this.touchend)}},cF;async function lF(e=!1){if(cF!==void 0&&!e)return cF;if(window.navigator.permissions===void 0)return cF=!!window.navigator.geolocation,cF;try{cF=(await window.navigator.permissions.query({name:`geolocation`})).state!==`denied`}catch{cF=!!window.navigator.geolocation}return cF}function uF(e,t,n,r=!1){if(r||!n.getCoveringTilesDetailsProvider().allowWorldCopies())return e?.wrap();let i=new Q(e.lng,e.lat);if(e=new Q(e.lng,e.lat),t){let r=new Q(e.lng-360,e.lat),i=new Q(e.lng+360,e.lat),a=n.locationToScreenPoint(e).distSqr(t);n.locationToScreenPoint(r).distSqr(t)<a?e=r:n.locationToScreenPoint(i).distSqr(t)<a&&(e=i)}for(;Math.abs(e.lng-n.center.lng)>180;){let t=n.locationToScreenPoint(e);if(t.x>=0&&t.y>=0&&t.x<=n.width&&t.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e.lng!==i.lng&&n.isPointOnMapSurface(n.locationToScreenPoint(e))?e:i}var dF={center:`translate(-50%,-50%)`,top:`translate(-50%,0)`,"top-left":`translate(0,0)`,"top-right":`translate(-100%,0)`,bottom:`translate(-50%,-100%)`,"bottom-left":`translate(0,-100%)`,"bottom-right":`translate(-100%,-100%)`,left:`translate(0,-50%)`,right:`translate(-100%,-50%)`};function fF(e,t,n){let r=e.classList;for(let e in dF)r.remove(`maplibregl-${n}-anchor-${e}`);r.add(`maplibregl-${n}-anchor-${t}`)}var pF={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},mF=`#3FB1CE`;function hF(e,t,n=[]){let r=F.createNS(`http://www.w3.org/2000/svg`,e);for(let e in t)r.setAttributeNS(null,e,t[e]);for(let e of n)r.appendChild(e);return r}var gF;function _F(){return gF||(gF=hF(`svg`,{display:`block`,height:`41px`,width:`27px`,viewBox:`0 0 27 41`},[hF(`g`,{"fill-rule":`nonzero`},[hF(`g`,{transform:`translate(3.0, 29.0)`,fill:`#000000`},[[`10.5`,`5.25002273`],[`10.5`,`5.25002273`],[`9.5`,`4.77275007`],[`8.5`,`4.29549936`],[`7.5`,`3.81822308`],[`6.5`,`3.34094679`],[`5.5`,`2.86367051`],[`4.5`,`2.38636864`]].map(([e,t])=>hF(`ellipse`,{opacity:`0.04`,cx:`10.5`,cy:`5.80029008`,rx:e,ry:t}))),hF(`g`,{fill:mF},[hF(`path`,{d:`M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z`})]),hF(`g`,{opacity:`0.25`,fill:`#000000`},[hF(`path`,{d:`M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z`})]),hF(`g`,{transform:`translate(6.0, 7.0)`,fill:`#FFFFFF`}),hF(`g`,{transform:`translate(8.0, 8.0)`},[hF(`circle`,{fill:`#000000`,opacity:`0.25`,cx:`5.5`,cy:`5.5`,r:`5.4999962`}),hF(`circle`,{fill:`#FFFFFF`,cx:`5.5`,cy:`5.5`,r:`5.4999962`})])])]),gF)}function vF(e){return e.firstElementChild.children[1]}var yF=class extends or{},bF=class extends or{},xF=class extends sr{constructor(e){if(super(),this._onClick=e=>{this.fire(new bF(`click`,{originalEvent:e}))},this._onKeyPress=e=>{(e.code===`Space`||e.code===`Enter`)&&this.togglePopup()},this._onKeyDown=e=>{if(!this._defaultMarker||!this._draggable||!this._map||!this._lngLat||e.composedPath()[0]!==this._element||e.altKey||e.ctrlKey||e.metaKey)return;let t=pF[e.key];if(!t)return;e.preventDefault(),e.stopPropagation();let n=e.shiftKey?10:1,r=this._map.project(this._lngLat);this.setLngLat(this._map.unproject(new b(r.x+t[0]*n,r.y+t[1]*n))),this._keyboardDragActive||(this._keyboardDragActive=!0,this.fire(new yF(`dragstart`))),this.fire(new yF(`drag`))},this._onKeyUp=e=>{pF[e.key]&&this._endKeyboardDrag()},this._onBlur=()=>{this._endKeyboardDrag()},this._onMapClick=e=>{let t=e.originalEvent.target,n=this._element;this._popup&&(t===n||n.contains(t))&&this.togglePopup()},this._updateCoveredUnthrottled=()=>{let e=this._map?.terrain;if(!e||!this._isInViewport())return;let t=this._isCovered(e);t&&this._popup?.isOpen()&&this._popup.remove(),this._element.style.opacity=t?this._opacityWhenCovered:this._opacity,this._element.classList.toggle(`maplibregl-marker-covered`,t)},this._updateCovered=IN(this._updateCoveredUnthrottled,100),this._update=e=>{if(!this._map)return;this._lngLat=uF(this._lngLat,this._flatPos,this._map._camera.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map._camera.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let t=``;this._rotationAlignment===`viewport`||this._rotationAlignment===`auto`?t=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===`map`&&(t=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let n=``;this._pitchAlignment===`viewport`||this._pitchAlignment===`auto`?n=`rotateX(0deg)`:this._pitchAlignment===`map`&&(n=`rotateX(${this._map.getPitch()}deg)`),!this._subpixelPositioning&&e?.type!==`move`&&(this._pos=this._pos.round()),this._element.style.transform=`${dF[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${n} ${t}`,this._updateOpacity()},this._onMove=e=>{if(!this._isDragging){let t=this._clickTolerance||this._map._clickTolerance;this._isDragging=e.point.dist(this._pointerdownPos)>=t}this._isDragging&&(this._pos=e.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=`none`,this._state===`pending`&&(this._state=`active`,this.fire(new yF(`dragstart`))),this.fire(new yF(`drag`)))},this._onUp=()=>{this._element.style.pointerEvents=`auto`,this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off(`mousemove`,this._onMove),this._map.off(`touchmove`,this._onMove),this._state===`active`&&this.fire(new yF(`dragend`)),this._state=`inactive`},this._addDragHandler=e=>{this._element.contains(e.originalEvent.target)&&(e.preventDefault(),this._positionDelta=e.point.sub(this._pos).add(this._offset),this._pointerdownPos=e.point,this._state=`pending`,this._map.on(`mousemove`,this._onMove),this._map.on(`touchmove`,this._onMove),this._map.once(`mouseup`,this._onUp),this._map.once(`touchend`,this._onUp))},this._anchor=e?.anchor||`center`,this._color=e?.color||mF,this._scale=e?.scale||1,this._draggable=e?.draggable||!1,this._clickTolerance=e?.clickTolerance||0,this._subpixelPositioning=e?.subpixelPositioning||!1,this._isDragging=!1,this._roleManaged=!1,this._tabIndexManaged=!1,this._keyboardDragActive=!1,this._state=`inactive`,this._rotation=e?.rotation||0,this._rotationAlignment=e?.rotationAlignment||`auto`,this._pitchAlignment=e?.pitchAlignment&&e.pitchAlignment!==`auto`?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e?.opacity,e?.opacityWhenCovered),e?.element)this._element=e.element,this._offset=b.convert(e?.offset||[0,0]);else{this._defaultMarker=!0,this._element=F.create(`div`);let t=_F().cloneNode(!0);t.setAttributeNS(null,`height`,`${41*this._scale}px`),t.setAttributeNS(null,`width`,`${27*this._scale}px`),vF(t).setAttributeNS(null,`fill`,this._color),this._element.appendChild(t),this._offset=b.convert(e?.offset||[0,-14])}if(this._element.classList.add(`maplibregl-marker`),this._element.addEventListener(`dragstart`,e=>{e.preventDefault()}),this._element.addEventListener(`mousedown`,e=>{e.preventDefault()}),fF(this._element,this._anchor,`marker`),e?.className)for(let t of e.className.split(` `))this._element.classList.add(t);this._popup=null}addTo(e){return this.remove(),this._map=e,this._defaultMarker&&!this._element.hasAttribute(`aria-label`)&&this._element.setAttribute(`aria-label`,e._getUIString(`Marker.Title`)),this._updateAccessibilityRole(),e.getCanvasContainer().appendChild(this._element),e.on(`move`,this._update),e.on(`moveend`,this._update),e.on(`terrain`,this._update),e.on(`projectiontransition`,this._update),e.on(`idle`,this._update),this._element.addEventListener(`click`,this._onClick),this.setDraggable(this._draggable),this._update(),this._map.on(`click`,this._onMapClick),this}remove(){return this._map&&(this._map.off(`click`,this._onMapClick),this._map.off(`move`,this._update),this._map.off(`moveend`,this._update),this._map.off(`terrain`,this._update),this._map.off(`projectiontransition`,this._update),this._map.off(`idle`,this._update),this._map.off(`mousedown`,this._addDragHandler),this._map.off(`touchstart`,this._addDragHandler),this._map.off(`mouseup`,this._onUp),this._map.off(`touchend`,this._onUp),this._map.off(`mousemove`,this._onMove),this._map.off(`touchmove`,this._onMove),delete this._map),this._element.removeEventListener(`click`,this._onClick),this._element.removeEventListener(`keydown`,this._onKeyDown),this._element.removeEventListener(`keyup`,this._onKeyUp),this._element.removeEventListener(`blur`,this._onBlur),this._element.removeEventListener(`keypress`,this._onKeyPress),this._keyboardDragActive=!1,this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=Q.convert(e),this._pos=null,this._update(),this._popup&&this._popup.setLngLat(this._lngLat),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(`keypress`,this._onKeyPress)),e){if(!(`offset`in e.options)){let t=13.5/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[t,(24.6+t)*-1],"bottom-right":[-t,(24.6+t)*-1],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=e,this._element.addEventListener(`keypress`,this._onKeyPress)}return this._updateTabIndex(),this._updateAccessibilityRole(),this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}_endKeyboardDrag(){this._keyboardDragActive&&(this._keyboardDragActive=!1,this.fire(new yF(`dragend`)))}getPopup(){return this._popup}togglePopup(){let e=this._popup;if(this._element.style.opacity===this._opacityWhenCovered)return this;if(e)e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map));else return this;return this}_updateOpacity(){if(!this._isInViewport())return;let e=this._map?.terrain,t=this._map._camera.transform.isLocationOccluded(this._lngLat);if(!e||t){let e=t?this._opacityWhenCovered:this._opacity;this._element.style.opacity!==e&&(this._element.style.opacity=e,this._element.classList.toggle(`maplibregl-marker-covered`,t));return}this._updateCovered()}_isInViewport(){let{width:e,height:t}=this._map._camera.transform;return!!this._pos&&this._pos.x>=0&&this._pos.y>=0&&this._pos.x<=e&&this._pos.y<=t}_isCovered(e){let t=this._map._camera.transform,n=e.getElevationForLngLat(this._lngLat,t),r=Math.max(0,-this._offset.y)/t.pixelsPerMeter,i=Math.sin(this._map.getPitch()*Math.PI/180)*r;return t.isLocationOccluded(this._lngLat,e,n+i)}getOffset(){return this._offset}setOffset(e){return this._offset=b.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._element.classList.toggle(`maplibregl-marker-draggable`,this._draggable),this._map&&(e?(this._map.on(`mousedown`,this._addDragHandler),this._map.on(`touchstart`,this._addDragHandler)):(this._map.off(`mousedown`,this._addDragHandler),this._map.off(`touchstart`,this._addDragHandler))),this._defaultMarker&&(this._draggable?(this._element.addEventListener(`keydown`,this._onKeyDown),this._element.addEventListener(`keyup`,this._onKeyUp),this._element.addEventListener(`blur`,this._onBlur)):(this._element.removeEventListener(`keydown`,this._onKeyDown),this._element.removeEventListener(`keyup`,this._onKeyUp),this._element.removeEventListener(`blur`,this._onBlur),this._endKeyboardDrag())),this._updateTabIndex(),this._updateAccessibilityRole(),this}isDraggable(){return this._draggable}_updateTabIndex(){this._popup||this._defaultMarker&&this._draggable?this._element.hasAttribute(`tabindex`)||(this._element.setAttribute(`tabindex`,`0`),this._tabIndexManaged=!0):this._tabIndexManaged&&=(this._element.getAttribute(`tabindex`)===`0`&&this._element.removeAttribute(`tabindex`),!1)}_updateAccessibilityRole(){if(!this._defaultMarker||this._element.hasAttribute(`role`)&&!this._roleManaged)return;let e=this._draggable||this._popup?`button`:`img`;this._element.setAttribute(`role`,e),this._roleManaged=!0}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||`auto`,this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!==`auto`?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,t){return(this._opacity===void 0||e===void 0&&t===void 0)&&(this._opacity=`1`,this._opacityWhenCovered=`0.2`),e!==void 0&&(this._opacity=String(e)),t!==void 0&&(this._opacityWhenCovered=String(t)),this._map&&this._updateOpacity(),this}},SF={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0,zoomToUserAccuracy:!0},CF=0,wF=!1,TF=class extends or{},EF=class extends or{},DF=class extends or{},OF=class extends sr{constructor(e){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e)){this._setErrorState(),this.fire(new EF(`outofmaxbounds`,e)),this._updateMarker(),this._finish();return}if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case`WAITING_ACTIVE`:case`ACTIVE_LOCK`:case`ACTIVE_ERROR`:this._watchState=`ACTIVE_LOCK`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active`);break;case`BACKGROUND`:case`BACKGROUND_ERROR`:this._watchState=`BACKGROUND`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-background`);break;default:throw Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!==`OFF`&&this._updateMarker(e),(!this.options.trackUserLocation||this._watchState===`ACTIVE_LOCK`)&&this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove(`maplibregl-user-location-dot-stale`),this.fire(new EF(`geolocate`,e)),this._finish()}},this._updateCamera=e=>{let t=new Q(e.coords.longitude,e.coords.latitude),n=this._map.getBearing(),r={geolocateSource:!0};if(!this.options.zoomToUserAccuracy){let e=P({},this.options.fitBoundsOptions,{center:t,bearing:n,zoom:this._map.getZoom()});e.linear?this._map.easeTo(e,r):this._map.flyTo(e,r);return}let i=e.coords.accuracy,a=P({bearing:n},this.options.fitBoundsOptions),o=kb.fromLngLat(t,i);this._map.fitBounds(o,a,r)},this._updateMarker=e=>{if(e){let t=new Q(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(t).addTo(this._map),this._userLocationDotMarker.setLngLat(t).addTo(this._map),this._accuracy=e.coords.accuracy,this._updateCircleRadiusIfNeeded()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onUpdate=()=>{this._updateCircleRadiusIfNeeded()},this._onError=e=>{if(this._map){if(e.code===1){this._watchState=`OFF`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background-error`),this._geolocateButton.disabled=!0;let e=this._map._getUIString(`GeolocateControl.LocationNotAvailable`);this._geolocateButton.title=e,this._geolocateButton.setAttribute(`aria-label`,e),this._geolocationWatchID!==void 0&&this._clearWatch()}else if(e.code===3&&wF)return;else this._setErrorState();this._watchState!==`OFF`&&this.options.showUserLocation&&this._dotElement.classList.add(`maplibregl-user-location-dot-stale`),this.fire(new DF(`error`,e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._onMoveStart=e=>{if(!this._map)return;let t=e?.[0]instanceof ResizeObserverEntry;!e.geolocateSource&&this._watchState===`ACTIVE_LOCK`&&!t&&!this._map.isZooming()&&(this._watchState=`BACKGROUND`,this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this.fire(new TF(`trackuserlocationend`)),this.fire(new TF(`userlocationlostfocus`)))},this._setupUI=()=>{this._map&&(this._container.addEventListener(`contextmenu`,e=>{e.preventDefault()}),this._geolocateButton=F.create(`button`,`maplibregl-ctrl-geolocate`,this._container),F.create(`span`,`maplibregl-ctrl-icon`,this._geolocateButton).setAttribute(`aria-hidden`,`true`),this._geolocateButton.type=`button`,this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){Yt(`Geolocation support is not available so the GeolocateControl will be disabled.`);let e=this._map._getUIString(`GeolocateControl.LocationNotAvailable`);this._geolocateButton.disabled=!0,this._geolocateButton.title=e,this._geolocateButton.setAttribute(`aria-label`,e)}else{let e=this._map._getUIString(`GeolocateControl.FindMyLocation`);this._geolocateButton.disabled=!1,this._geolocateButton.title=e,this._geolocateButton.setAttribute(`aria-label`,e)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(`aria-pressed`,`false`),this._watchState=`OFF`),this.options.showUserLocation&&(this._dotElement=F.create(`div`,`maplibregl-user-location-dot`),this._userLocationDotMarker=new xF({element:this._dotElement}),this._circleElement=F.create(`div`,`maplibregl-user-location-accuracy-circle`),this._accuracyCircleMarker=new xF({element:this._circleElement,pitchAlignment:`map`}),this.options.trackUserLocation&&(this._watchState=`OFF`),this._map.on(`zoom`,this._onUpdate),this._map.on(`move`,this._onUpdate),this._map.on(`rotate`,this._onUpdate),this._map.on(`pitch`,this._onUpdate)),this._geolocateButton.addEventListener(`click`,()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on(`movestart`,this._onMoveStart)}},this.options=P({},SF,e)}onAdd(e){return this._map=e,this._container=F.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._setupUI(),lF().then(e=>this._finishSetupUI(e)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off(`movestart`,this._onMoveStart),this._map.off(`zoom`,this._onUpdate),this._map.off(`move`,this._onUpdate),this._map.off(`rotate`,this._onUpdate),this._map.off(`pitch`,this._onUpdate),this._map=void 0,CF=0,wF=!1}_isOutOfMapMaxBounds(e){let t=this._map.getMaxBounds(),n=e.coords;return t&&(n.longitude<t.getWest()||n.longitude>t.getEast()||n.latitude<t.getSouth()||n.latitude>t.getNorth())}_setErrorState(){switch(this._watchState){case`WAITING_ACTIVE`:this._watchState=`ACTIVE_ERROR`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active-error`);break;case`ACTIVE_LOCK`:this._watchState=`ACTIVE_ERROR`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`);break;case`BACKGROUND`:this._watchState=`BACKGROUND_ERROR`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-background-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`);break;case`ACTIVE_ERROR`:case`BACKGROUND_ERROR`:break;case`OFF`:case void 0:break;default:throw Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadiusIfNeeded(){let e=this._userLocationDotMarker.getLngLat();if(!this.options.showUserLocation||!this.options.showAccuracyCircle||!this._accuracy||!e)return;let t=this._map.project(e),n=this._map.unproject([t.x+100,t.y]),r=e.distanceTo(n)/100,i=2*this._accuracy/r;this._circleElement.style.width=`${i.toFixed(2)}px`,this._circleElement.style.height=`${i.toFixed(2)}px`}trigger(){if(!this._setup)return Yt(`Geolocate control triggered before added to a map`),!1;if(this.options.trackUserLocation){switch(this._watchState){case`OFF`:this._watchState=`WAITING_ACTIVE`,this.fire(new TF(`trackuserlocationstart`));break;case`WAITING_ACTIVE`:case`ACTIVE_LOCK`:case`ACTIVE_ERROR`:case`BACKGROUND_ERROR`:CF--,wF=!1,this._watchState=`OFF`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background-error`),this.fire(new TF(`trackuserlocationend`));break;case`BACKGROUND`:this._watchState=`ACTIVE_LOCK`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new TF(`trackuserlocationstart`)),this.fire(new TF(`userlocationfocus`));break;default:throw Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case`WAITING_ACTIVE`:this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active`);break;case`ACTIVE_LOCK`:this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active`);break;case`OFF`:break;default:throw Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState===`OFF`&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.setAttribute(`aria-pressed`,`true`),CF++;let e;CF>1?(e={maximumAge:6e5,timeout:0},wF=!0):(e=this.options.positionOptions,wF=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.setAttribute(`aria-pressed`,`false`),this.options.showUserLocation&&this._updateMarker(null)}},kF={maxWidth:100,unit:`metric`},AF=class{constructor(e){this._onMove=()=>{jF(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,this._map&&jF(this._map,this._container,this.options)},this.options={...kF,...e}}getDefaultPosition(){return`bottom-left`}onAdd(e){return this._map=e,this._container=F.create(`div`,`maplibregl-ctrl maplibregl-ctrl-scale`,e.getContainer()),this._map.on(`move`,this._onMove),this._onMove(),this._container}onRemove(){this._container.remove(),this._map.off(`move`,this._onMove),this._map=void 0}};function jF(e,t,n){let r=n?.maxWidth||100,{width:i,height:a}=e._camera.transform,o=a/2,s=i/2,c=e.unproject([s-r/2,o]),l=e.unproject([s+r/2,o]);if(!c||!l)return;let u=Math.round(e.project(l).x-e.project(c).x),d=Math.min(r,u,i),f=c.distanceTo(l);if(n?.unit===`imperial`){let n=3.2808*f;n>5280?MF(t,d,n/5280,e._getUIString(`ScaleControl.Miles`)):MF(t,d,n,e._getUIString(`ScaleControl.Feet`))}else n?.unit===`nautical`?MF(t,d,f/1852,e._getUIString(`ScaleControl.NauticalMiles`)):f>=1e3?MF(t,d,f/1e3,e._getUIString(`ScaleControl.Kilometers`)):MF(t,d,f,e._getUIString(`ScaleControl.Meters`))}function MF(e,t,n,r){let i=PF(n),a=i/n;e.style.width=`${t*a}px`;let o=`${i}\u00a0${r}`;e.textContent!==o&&(e.textContent=o)}function NF(e){let t=10**Math.ceil(-Math.log(e)/Math.LN10);return Math.round(e*t)/t}function PF(e){let t=10**(`${Math.floor(e)}`.length-1),n=e/t;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:NF(n),t*n}var FF=class extends or{},IF=class extends sr{constructor(e={}){super(),this._onFullscreenChange=()=>{let e=window.document.fullscreenElement||window.document.webkitFullscreenElement;for(;e?.shadowRoot?.fullscreenElement;)e=e.shadowRoot.fullscreenElement;e===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,this._pseudo=e.pseudo??!1,e?.container&&(e.container instanceof HTMLElement?this._container=e.container:Yt(`Full screen control 'container' must be a DOM element.`)),`onfullscreenchange`in document?this._fullscreenchange=`fullscreenchange`:`onmozfullscreenchange`in document?this._fullscreenchange=`mozfullscreenchange`:`onwebkitfullscreenchange`in document?this._fullscreenchange=`webkitfullscreenchange`:`onmsfullscreenchange`in document&&(this._fullscreenchange=`MSFullscreenChange`)}onAdd(e){return this._map=e,this._container||=this._map.getContainer(),this._controlContainer=F.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._setupUI(),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){let e=this._fullscreenButton=F.create(`button`,`maplibregl-ctrl-fullscreen`,this._controlContainer);F.create(`span`,`maplibregl-ctrl-icon`,e).setAttribute(`aria-hidden`,`true`),e.type=`button`,this._updateTitle(),this._fullscreenButton.addEventListener(`click`,this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let e=this._getTitle();this._fullscreenButton.setAttribute(`aria-label`,e),this._fullscreenButton.title=e}_getTitle(){return this._map._getUIString(this._isFullscreen()?`FullscreenControl.Exit`:`FullscreenControl.Enter`)}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(`maplibregl-ctrl-shrink`),this._fullscreenButton.classList.toggle(`maplibregl-ctrl-fullscreen`),this._updateTitle(),this._fullscreen?(this.fire(new FF(`fullscreenstart`)),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new FF(`fullscreenend`)),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){this._pseudo?this._togglePseudoFullScreen():window.document.exitFullscreen?window.document.exitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._pseudo?this._togglePseudoFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle(`maplibregl-pseudo-fullscreen`),this._handleFullscreenChange(),this._map.resize()}},LF=class{constructor(e){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove(`maplibregl-ctrl-terrain`),this._terrainButton.classList.remove(`maplibregl-ctrl-terrain-enabled`),this._map.terrain?(this._terrainButton.classList.add(`maplibregl-ctrl-terrain-enabled`),this._terrainButton.title=this._map._getUIString(`TerrainControl.Disable`)):(this._terrainButton.classList.add(`maplibregl-ctrl-terrain`),this._terrainButton.title=this._map._getUIString(`TerrainControl.Enable`))},this.options=e}onAdd(e){return this._map=e,this._container=F.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._terrainButton=F.create(`button`,`maplibregl-ctrl-terrain`,this._container),F.create(`span`,`maplibregl-ctrl-icon`,this._terrainButton).setAttribute(`aria-hidden`,`true`),this._terrainButton.type=`button`,this._terrainButton.addEventListener(`click`,this._toggleTerrain),this._updateTerrainIcon(),this._map.on(`terrain`,this._updateTerrainIcon),this._container}onRemove(){this._container.remove(),this._map.off(`terrain`,this._updateTerrainIcon),this._map=void 0}},RF=class{constructor(){this._toggleProjection=()=>{let e=this._map.getProjection()?.type;e===`mercator`||!e?this._map.setProjection({type:`globe`}):this._map.setProjection({type:`mercator`}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{this._globeButton.classList.remove(`maplibregl-ctrl-globe`),this._globeButton.classList.remove(`maplibregl-ctrl-globe-enabled`),this._map.getProjection()?.type===`globe`?(this._globeButton.classList.add(`maplibregl-ctrl-globe-enabled`),this._globeButton.title=this._map._getUIString(`GlobeControl.Disable`)):(this._globeButton.classList.add(`maplibregl-ctrl-globe`),this._globeButton.title=this._map._getUIString(`GlobeControl.Enable`))}}onAdd(e){return this._map=e,this._container=F.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._globeButton=F.create(`button`,`maplibregl-ctrl-globe`,this._container),F.create(`span`,`maplibregl-ctrl-icon`,this._globeButton).setAttribute(`aria-hidden`,`true`),this._globeButton.type=`button`,this._globeButton.addEventListener(`click`,this._toggleProjection),this._updateGlobeIcon(),this._map.on(`styledata`,this._updateGlobeIcon),this._map.on(`projectiontransition`,this._updateGlobeIcon),this._container}onRemove(){this._container.remove(),this._map.off(`styledata`,this._updateGlobeIcon),this._map.off(`projectiontransition`,this._updateGlobeIcon),this._globeButton.removeEventListener(`click`,this._toggleProjection),this._map=void 0}},zF={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:``,maxWidth:`240px`,subpixelPositioning:!1,locationOccludedOpacity:void 0,padding:void 0},BF=[`a[href]`,`[tabindex]:not([tabindex='-1'])`,`[contenteditable]:not([contenteditable='false'])`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`].join(`, `),VF=class extends or{},HF=class extends sr{constructor(e){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._map._camera.transform.isLocationOccluded(this.getLngLat())?this._container.style.opacity=`${this.options.locationOccludedOpacity}`:this._container.style.opacity=``)},this.remove=()=>(this._content&&this._content.remove(),this._container&&(this._container.remove(),delete this._container),this._map&&(this._map.off(`move`,this._update),this._map.off(`move`,this._onClose),this._map.off(`click`,this._onClose),this._map.off(`remove`,this.remove),this._map.off(`terrain`,this._update),this._map.off(`projectiontransition`,this._update),this._map.off(`idle`,this._update),this._map.off(`mousemove`,this._update),this._map.off(`mouseup`,this._update),this._map.off(`drag`,this._update),this._map._canvasContainer.classList.remove(`maplibregl-track-pointer`),delete this._map,this.fire(new VF(`close`))),this),this._update=e=>{let t=this._lngLat||this._trackPointer;if(!this._map||!t||!this._content)return;if(!this._container){if(this._container=F.create(`div`,`maplibregl-popup`,this._map.getContainer()),this._tip=F.create(`div`,`maplibregl-popup-tip`,this._container),this._container.appendChild(this._content),this.options.className)for(let e of this.options.className.split(` `))this._container.classList.add(e);this._closeButton&&this._closeButton.setAttribute(`aria-label`,this._map._getUIString(`Popup.Close`)),this._trackPointer&&this._container.classList.add(`maplibregl-popup-track-pointer`)}this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=uF(this._lngLat,this._flatPos,this._map._camera.transform,this._trackPointer);let n;if(e&&`point`in e&&e.point&&(n=e.point),this._trackPointer&&!n)return;let r=this._flatPos=this._pos=this._trackPointer&&n?n:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&n?n:this._map._camera.transform.locationToScreenPoint(this._lngLat));let i=this.options.anchor,a=UF(this.options.offset);if(!i){let e=this._container.offsetWidth,t=this._container.offsetHeight,n=WF(this.options.padding),o;o=r.y+a.bottom.y<t+n.top?[`top`]:r.y>this._map._camera.transform.height-t-n.bottom?[`bottom`]:[],r.x<e/2+n.left?o.push(`left`):r.x>this._map._camera.transform.width-e/2-n.right&&o.push(`right`),i=o.length===0?`bottom`:o.join(`-`)}let o=r.add(a[i]);this.options.subpixelPositioning||(o=o.round()),this._container.style.transform=`${dF[i]} translate(${o.x}px,${o.y}px)`,fF(this._container,i,`popup`),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=P(Object.create(zF),e)}addTo(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on(`click`,this._onClose),this.options.closeOnMove&&this._map.on(`move`,this._onClose),this._map.on(`remove`,this.remove),this._map.on(`terrain`,this._update),this._map.on(`projectiontransition`,this._update),this._map.on(`idle`,this._update),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on(`mousemove`,this._update),this._map.on(`mouseup`,this._update),this._container&&this._container.classList.add(`maplibregl-popup-track-pointer`),this._map._canvasContainer.classList.add(`maplibregl-track-pointer`)):this._map.on(`move`,this._update),this.fire(new VF(`open`)),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=Q.convert(e),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on(`move`,this._update),this._map.off(`mousemove`,this._update),this._container&&this._container.classList.remove(`maplibregl-popup-track-pointer`),this._map._canvasContainer.classList.remove(`maplibregl-track-pointer`)),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off(`move`,this._update),this._map.on(`mousemove`,this._update),this._map.on(`drag`,this._update),this._container&&this._container.classList.add(`maplibregl-popup-track-pointer`),this._map._canvasContainer.classList.add(`maplibregl-track-pointer`)),this}getElement(){return this._container}setText(e){return this.setDOMContent(document.createTextNode(e))}setHTML(e){let t=document.createDocumentFragment(),n=document.createElement(`body`),r;for(n.innerHTML=e;r=n.firstChild,r;)t.appendChild(r);return this.setDOMContent(t)}getMaxWidth(){return this._container?.style.maxWidth}setMaxWidth(e){return this.options.maxWidth=e,this._update(),this}setDOMContent(e){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=F.create(`div`,`maplibregl-popup-content`,this._container);return this._content.appendChild(e),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(e){return this._container&&this._container.classList.add(e),this}removeClassName(e){return this._container&&this._container.classList.remove(e),this}setOffset(e){return this.options.offset=e,this._update(),this}toggleClassName(e){if(this._container)return this._container.classList.toggle(e)}setSubpixelPositioning(e){this.options.subpixelPositioning=e}setPadding(e){this.options.padding=e,this._update()}_createCloseButton(){this.options.closeButton&&(this._closeButton=F.create(`button`,`maplibregl-popup-close-button`,this._content),this._closeButton.type=`button`,this._closeButton.innerHTML=`&#215;`,this._closeButton.addEventListener(`click`,this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let e=this._container.querySelector(BF);e&&e.focus()}};function UF(e){if(!e)return UF(new b(0,0));if(typeof e==`number`){let t=Math.round(Math.abs(e)/Math.SQRT2);return{center:new b(0,0),top:new b(0,e),"top-left":new b(t,t),"top-right":new b(-t,t),bottom:new b(0,-e),"bottom-left":new b(t,-t),"bottom-right":new b(-t,-t),left:new b(e,0),right:new b(-e,0)}}if(e instanceof b||Array.isArray(e)){let t=b.convert(e);return{center:t,top:t,"top-left":t,"top-right":t,bottom:t,"bottom-left":t,"bottom-right":t,left:t,right:t}}return{center:b.convert(e.center||[0,0]),top:b.convert(e.top||[0,0]),"top-left":b.convert(e[`top-left`]||[0,0]),"top-right":b.convert(e[`top-right`]||[0,0]),bottom:b.convert(e.bottom||[0,0]),"bottom-left":b.convert(e[`bottom-left`]||[0,0]),"bottom-right":b.convert(e[`bottom-right`]||[0,0]),left:b.convert(e.left||[0,0]),right:b.convert(e.right||[0,0])}}function WF(e){return e?{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}:{top:0,right:0,bottom:0,left:0}}var GF=y;function KF(e,t){return pE().setRTLTextPlugin(e,t)}function qF(){return pE().getRTLTextPluginStatus()}function JF(){return GF}function YF(){return lb.workerCount}function XF(e){lb.workerCount=e}function ZF(){return Vn.MAX_PARALLEL_IMAGE_REQUESTS}function QF(e){Vn.MAX_PARALLEL_IMAGE_REQUESTS=e}function $F(){return Vn.WORKER_URL}function eI(e){Vn.WORKER_URL=e}async function tI(e){await _b().broadcast(`IS`,e)}var nI=`/assets/maplibre-gl-worker-Bh1S--WG.js`,rI=Uint8Array,iI=Uint16Array,aI=Int32Array,oI=new rI([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),sI=new rI([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),cI=new rI([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lI=function(e,t){for(var n=new iI(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new aI(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},uI=lI(oI,2),dI=uI.b,fI=uI.r;dI[28]=258,fI[258]=28;var pI=lI(sI,0),mI=pI.b;pI.r;for(var hI=new iI(32768),gI=0;gI<32768;++gI){var _I=(gI&43690)>>1|(gI&21845)<<1;_I=(_I&52428)>>2|(_I&13107)<<2,_I=(_I&61680)>>4|(_I&3855)<<4,hI[gI]=((_I&65280)>>8|(_I&255)<<8)>>1}for(var vI=(function(e,t,n){for(var r=e.length,i=0,a=new iI(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new iI(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new iI(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[hI[d]>>c]=l}else for(s=new iI(r),i=0;i<r;++i)e[i]&&(s[i]=hI[o[e[i]-1]++]>>15-e[i]);return s}),yI=new rI(288),gI=0;gI<144;++gI)yI[gI]=8;for(var gI=144;gI<256;++gI)yI[gI]=9;for(var gI=256;gI<280;++gI)yI[gI]=7;for(var gI=280;gI<288;++gI)yI[gI]=8;for(var bI=new rI(32),gI=0;gI<32;++gI)bI[gI]=5;var xI=vI(yI,9,1),SI=vI(bI,5,1),CI=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},wI=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},TI=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},EI=function(e){return(e+7)/8|0},DI=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new rI(e.subarray(t,n))},OI=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],kI=function(e,t,n){var r=Error(t||OI[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,kI),!n)throw r;return r},AI=function(e,t,n,r){var i=e.length,a=r?r.length:0;if(!i||t.f&&!t.l)return n||new rI(0);var o=!n,s=o||t.i!=2,c=t.i;o&&(n=new rI(i*3));var l=function(e){var t=n.length;if(e>t){var r=new rI(Math.max(t*2,e));r.set(n),n=r}},u=t.f||0,d=t.p||0,f=t.b||0,p=t.l,m=t.d,h=t.m,g=t.n,_=i*8;do{if(!p){u=wI(e,d,1);var v=wI(e,d+1,3);if(d+=3,!v){var y=EI(d)+4,b=e[y-4]|e[y-3]<<8,x=y+b;if(x>i){c&&kI(0);break}s&&l(f+b),n.set(e.subarray(y,x),f),t.b=f+=b,t.p=d=x*8,t.f=u;continue}if(v==1)p=xI,m=SI,h=9,g=5;else if(v==2){var S=wI(e,d,31)+257,C=wI(e,d+10,15)+4,w=S+wI(e,d+5,31)+1;d+=14;for(var T=new rI(w),E=new rI(19),D=0;D<C;++D)E[cI[D]]=wI(e,d+D*3,7);d+=C*3;for(var O=CI(E),k=(1<<O)-1,A=vI(E,O,1),D=0;D<w;){var ee=A[wI(e,d,k)];d+=ee&15;var y=ee>>4;if(y<16)T[D++]=y;else{var te=0,ne=0;for(y==16?(ne=3+wI(e,d,3),d+=2,te=T[D-1]):y==17?(ne=3+wI(e,d,7),d+=3):y==18&&(ne=11+wI(e,d,127),d+=7);ne--;)T[D++]=te}}var re=T.subarray(0,S),ie=T.subarray(S);h=CI(re),g=CI(ie),p=vI(re,h,1),m=vI(ie,g,1)}else kI(1);if(d>_){c&&kI(0);break}}s&&l(f+131072);for(var ae=(1<<h)-1,oe=(1<<g)-1,se=d;;se=d){var te=p[TI(e,d)&ae],ce=te>>4;if(d+=te&15,d>_){c&&kI(0);break}if(te||kI(2),ce<256)n[f++]=ce;else if(ce==256){se=d,p=null;break}else{var le=ce-254;if(ce>264){var D=ce-257,ue=oI[D];le=wI(e,d,(1<<ue)-1)+dI[D],d+=ue}var de=m[TI(e,d)&oe],fe=de>>4;de||kI(3),d+=de&15;var ie=mI[fe];if(fe>3){var ue=sI[fe];ie+=TI(e,d)&(1<<ue)-1,d+=ue}if(d>_){c&&kI(0);break}s&&l(f+131072);var pe=f+le;if(f<ie){var me=a-ie,he=Math.min(ie,pe);for(me+f<0&&kI(3);f<he;++f)n[f]=r[me+f]}for(;f<pe;++f)n[f]=n[f-ie]}}t.l=p,t.p=se,t.b=f,t.f=u,p&&(u=1,t.m=h,t.d=m,t.n=g)}while(!u);return f!=n.length&&o?DI(n,0,f):n.subarray(0,f)},jI=new rI(0),MI=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&kI(6,`invalid gzip data`);var t=e[3],n=10;t&4&&(n+=(e[10]|e[11]<<8)+2);for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(t&2)},NI=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},PI=function(e,t){return((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&kI(6,`invalid zlib data`),(e[1]>>5&1)==+!t&&kI(6,`invalid zlib data: `+(e[1]&32?`need`:`unexpected`)+` dictionary`),(e[1]>>3&4)+2};function FI(e,t){return AI(e,{i:2},t&&t.out,t&&t.dictionary)}function II(e,t){var n=MI(e);return n+8>e.length&&kI(6,`invalid gzip data`),AI(e.subarray(n,-8),{i:2},t&&t.out||new rI(NI(e)),t&&t.dictionary)}function LI(e,t){return AI(e.subarray(PI(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function RI(e,t){return e[0]==31&&e[1]==139&&e[2]==8?II(e,t):(e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31?FI(e,t):LI(e,t)}var zI=typeof TextDecoder<`u`&&new TextDecoder;try{zI.decode(jI,{stream:!0})}catch{}var BI=Object.defineProperty,VI=Math.pow,HI=(e,t)=>BI(e,`name`,{value:t,configurable:!0}),UI=(e,t,n)=>new Promise((r,i)=>{var a=e=>{try{s(n.next(e))}catch(e){i(e)}},o=e=>{try{s(n.throw(e))}catch(e){i(e)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(a,o);s((n=n.apply(e,t)).next())});HI((e,t)=>{let n=!1,r=``;return new(L.GridLayer.extend({createTile:HI((t,i)=>{let a=document.createElement(`img`),o=new AbortController,s=o.signal;return a.cancel=()=>{o.abort()},n||=(e.getHeader().then(e=>{e.tileType===1||e.tileType===6?console.error(`Error: archive contains vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details.`):e.tileType===2?r=`image/png`:e.tileType===3?r=`image/jpeg`:e.tileType===4?r=`image/webp`:e.tileType===5&&(r=`image/avif`)}),!0),e.getZxy(t.z,t.x,t.y,s).then(e=>{if(e){let t=new Blob([e.data],{type:r}),n=window.URL.createObjectURL(t);a.src=n}else a.style.display=`none`;a.cancel=void 0,i(void 0,a)}).catch(e=>{if(e.name!==`AbortError`)throw e}),a},`createTile`),_removeTile:HI(function(e){let t=this._tiles[e];t&&(t.el.cancel&&t.el.cancel(),t.el.src&&window.URL.revokeObjectURL(t.el.src),t.el.width=0,t.el.height=0,t.el.deleted=!0,L.DomUtil.remove(t.el),delete this._tiles[e],this.fire(`tileunload`,{tile:t.el,coords:this._keyToTileCoords(e)}))},`_removeTile`)}))(t)},`leafletRasterLayer`);var WI=HI(e=>(t,n)=>{if(n instanceof AbortController)return e(t,n);let r=new AbortController;return e(t,r).then(e=>n(void 0,e.data,e.cacheControl||``,e.expires||``),e=>n(e)).catch(e=>n(e)),{cancel:HI(()=>r.abort(),`cancel`)}},`v3compat`),GI=class{constructor(e){this.tilev4=HI((e,t)=>UI(this,null,function*(){if(e.type===`json`){let n=e.url.substr(10),r=this.tiles.get(n);if(r||(r=new vL(n),this.tiles.set(n,r)),this.metadata){let n=yield r.getTileJson(e.url);return t.signal.throwIfAborted(),{data:n}}let i=yield r.getHeader();return t.signal.throwIfAborted(),(i.minLon>=i.maxLon||i.minLat>=i.maxLat)&&console.error(`Bounds of PMTiles archive ${i.minLon},${i.minLat},${i.maxLon},${i.maxLat} are not valid.`),{data:{tiles:[`${e.url}/{z}/{x}/{y}`],minzoom:i.minZoom,maxzoom:i.maxZoom,bounds:[i.minLon,i.minLat,i.maxLon,i.maxLat]}}}let n=new RegExp(/pmtiles:\/\/(.+)\/(\d+)\/(\d+)\/(\d+)/),r=e.url.match(n);if(!r)throw Error(`Invalid PMTiles protocol URL`);let i=r[1],a=this.tiles.get(i);a||(a=new vL(i),this.tiles.set(i,a));let o=r[2],s=r[3],c=r[4],l=yield a?.getZxy(+o,+s,+c,t.signal);if(t.signal.throwIfAborted(),l)return{data:new Uint8Array(l.data),cacheControl:l.cacheControl,expires:l.expires};let u=yield a.getHeader();if(u.tileType===1||u.tileType===6){if(this.errorOnMissingTile)throw Error(`Tile not found.`);return{data:new Uint8Array}}return{data:null}}),`tilev4`),this.tile=WI(this.tilev4),this.tiles=new Map,this.metadata=e?.metadata||!1,this.errorOnMissingTile=e?.errorOnMissingTile||!1}add(e){this.tiles.set(e.source.getKey(),e)}get(e){return this.tiles.get(e)}};HI(GI,`Protocol`);var KI=GI;function qI(e,t){return(t>>>0)*4294967296+(e>>>0)}HI(qI,`toNum`);function JI(e,t){let n=t.buf,r=n[t.pos++],i=(r&112)>>4;if(r<128||(r=n[t.pos++],i|=(r&127)<<3,r<128)||(r=n[t.pos++],i|=(r&127)<<10,r<128)||(r=n[t.pos++],i|=(r&127)<<17,r<128)||(r=n[t.pos++],i|=(r&127)<<24,r<128)||(r=n[t.pos++],i|=(r&1)<<31,r<128))return qI(e,i);throw Error(`Expected varint not more than 10 bytes`)}HI(JI,`readVarintRemainder`);function YI(e){let t=e.buf,n=t[e.pos++],r=n&127;return n<128||(n=t[e.pos++],r|=(n&127)<<7,n<128)||(n=t[e.pos++],r|=(n&127)<<14,n<128)||(n=t[e.pos++],r|=(n&127)<<21,n<128)?r:(n=t[e.pos],r|=(n&15)<<28,JI(r,e))}HI(YI,`readVarint`);function XI(e,t,n,r,i){return i===0?r===0?[n,t]:[e-1-n,e-1-t]:[t,n]}HI(XI,`rotate`);function ZI(e,t,n){if(e>26)throw Error(`Tile zoom level exceeds max safe number limit (26)`);if(t>=1<<e||n>=1<<e)throw Error(`tile x/y outside zoom level bounds`);let r=((1<<e)*(1<<e)-1)/3,i=e-1,[a,o]=[t,n];for(let e=1<<i;e>0;e>>=1){let t=a&e,n=o&e;r+=(3*t^n)*(1<<i),[a,o]=XI(e,a,o,t,n),i--}return r}HI(ZI,`zxyToTileId`);function QI(e){let t=3*e+1;return t<4294967296?31-Math.clz32(t):63-Math.clz32(t/4294967296)}HI(QI,`tileIdToZ`);function $I(e){let t=QI(e)>>1;if(t>26)throw Error(`Tile zoom level exceeds max safe number limit (26)`);let n=e-((1<<t)*(1<<t)-1)/3,r=0,i=0,a=1<<t;for(let e=1;e<a;e<<=1){let t=e&n/2,a=e&(n^t);[r,i]=XI(e,r,i,t,a),n/=2,r+=t,i+=a}return[t,r,i]}HI($I,`tileIdToZxy`);var eL=(e=>(e[e.Unknown=0]=`Unknown`,e[e.None=1]=`None`,e[e.Gzip=2]=`Gzip`,e[e.Brotli=3]=`Brotli`,e[e.Zstd=4]=`Zstd`,e))(eL||{});function tL(e,t){return UI(this,null,function*(){if(t===1||t===0)return e;if(t===2){if(globalThis.DecompressionStream===void 0)return RI(new Uint8Array(e));let t=new Response(e).body;if(!t)throw Error(`Failed to read response stream`);let n=t.pipeThrough(new globalThis.DecompressionStream(`gzip`));return new Response(n).arrayBuffer()}throw Error(`Compression method not supported`)})}HI(tL,`defaultDecompress`);var nL=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Mvt=1]=`Mvt`,e[e.Png=2]=`Png`,e[e.Jpeg=3]=`Jpeg`,e[e.Webp=4]=`Webp`,e[e.Avif=5]=`Avif`,e[e.Mlt=6]=`Mlt`,e))(nL||{});function rL(e){return e===1?`.mvt`:e===2?`.png`:e===3?`.jpg`:e===4?`.webp`:e===5?`.avif`:e===6?`.mlt`:``}HI(rL,`tileTypeExt`);var iL=127;function aL(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=r+n>>1,a=t-e[i].tileId;if(a>0)n=i+1;else if(a<0)r=i-1;else return e[i]}return r>=0&&(e[r].runLength===0||t-e[r].tileId<e[r].runLength)?e[r]:null}HI(aL,`findTile`),HI(class{constructor(e){this.file=e}getKey(){return this.file.name}getBytes(e,t){return UI(this,null,function*(){return{data:yield this.file.slice(e,e+t).arrayBuffer()}})}},`FileSource`);var oL=class{constructor(e,t=new Headers,n=void 0){this.url=e,this.customHeaders=t,this.credentials=n,this.mustReload=!1;let r=``;`navigator`in globalThis&&(r=globalThis.navigator?.userAgent??``);let i=r.indexOf(`Windows`)>-1,a=/Chrome|Chromium|Edg|OPR|Brave/.test(r);this.chromeWindowsNoCache=!1,i&&a&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(e){this.customHeaders=e}getBytes(e,t,n,r){return UI(this,null,function*(){let i,a;n?a=n:(i=new AbortController,a=i.signal);let o=new Headers(this.customHeaders);o.set(`range`,`bytes=${e}-${e+t-1}`);let s;this.mustReload?s=`reload`:this.chromeWindowsNoCache&&(s=`no-store`);let c=yield fetch(this.url,{signal:a,cache:s,headers:o,credentials:this.credentials});if(e===0&&c.status===416){let e=c.headers.get(`Content-Range`);if(!e||!e.startsWith(`bytes */`))throw Error(`Missing content-length on 416 response`);let t=+e.substr(8);o.set(`range`,`bytes=0-${t-1}`),c=yield fetch(this.url,{signal:a,cache:`reload`,headers:o,credentials:this.credentials})}let l=c.headers.get(`Etag`);if(l!=null&&l.startsWith(`W/`)&&(l=null),c.status===416||r&&l&&l!==r)throw this.mustReload=!0,new fL(`Server returned non-matching ETag ${r} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(c.status>=300)throw Error(`Bad response code: ${c.status}`);let u=c.headers.get(`Content-Length`);if(c.status===200&&(!u||+u>t))throw i&&i.abort(),Error(`Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.`);return{data:yield c.arrayBuffer(),etag:l||void 0,cacheControl:c.headers.get(`Cache-Control`)||void 0,expires:c.headers.get(`Expires`)||void 0}})}};HI(oL,`FetchSource`);var sL=oL;function cL(e,t){let n=e.getUint32(t+4,!0),r=e.getUint32(t+0,!0);return n*VI(2,32)+r}HI(cL,`getUint64`);function lL(e,t){let n=new DataView(e),r=n.getUint8(7);if(r>3)throw Error(`Archive is spec version ${r} but this library supports up to spec version 3`);return{specVersion:r,rootDirectoryOffset:cL(n,8),rootDirectoryLength:cL(n,16),jsonMetadataOffset:cL(n,24),jsonMetadataLength:cL(n,32),leafDirectoryOffset:cL(n,40),leafDirectoryLength:cL(n,48),tileDataOffset:cL(n,56),tileDataLength:cL(n,64),numAddressedTiles:cL(n,72),numTileEntries:cL(n,80),numTileContents:cL(n,88),clustered:n.getUint8(96)===1,internalCompression:n.getUint8(97),tileCompression:n.getUint8(98),tileType:n.getUint8(99),minZoom:n.getUint8(100),maxZoom:n.getUint8(101),minLon:n.getInt32(102,!0)/1e7,minLat:n.getInt32(106,!0)/1e7,maxLon:n.getInt32(110,!0)/1e7,maxLat:n.getInt32(114,!0)/1e7,centerZoom:n.getUint8(118),centerLon:n.getInt32(119,!0)/1e7,centerLat:n.getInt32(123,!0)/1e7,etag:t}}HI(lL,`bytesToHeader`);function uL(e){let t={buf:new Uint8Array(e),pos:0},n=YI(t),r=[],i=0;for(let e=0;e<n;e++){let e=YI(t);r.push({tileId:i+e,offset:0,length:0,runLength:1}),i+=e}for(let e=0;e<n;e++)r[e].runLength=YI(t);for(let e=0;e<n;e++)r[e].length=YI(t);for(let e=0;e<n;e++){let n=YI(t);n===0&&e>0?r[e].offset=r[e-1].offset+r[e-1].length:r[e].offset=n-1}return r}HI(uL,`deserializeIndex`);var dL=class extends Error{};HI(dL,`EtagMismatch`);var fL=dL;function pL(e,t){return UI(this,null,function*(){let n=yield e.getBytes(0,16384);if(new DataView(n.data).getUint16(0,!0)!==19792)throw Error(`Wrong magic number for PMTiles archive`);let r=lL(n.data.slice(0,iL),n.etag),i=n.data.slice(r.rootDirectoryOffset,r.rootDirectoryOffset+r.rootDirectoryLength),a=`${e.getKey()}|${r.etag||``}|${r.rootDirectoryOffset}|${r.rootDirectoryLength}`,o=uL(yield t(i,r.internalCompression));return[r,[a,o.length,o]]})}HI(pL,`getHeaderAndRoot`);function mL(e,t,n,r,i,a){return UI(this,null,function*(){let o=uL(yield t((yield e.getBytes(n,r,a,i.etag)).data,i.internalCompression));if(o.length===0)throw Error(`Empty directory is invalid`);return o})}HI(mL,`getDirectory`),HI(class{constructor(e=100,t=!0,n=tL){this.cache=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return UI(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,n.data;let r=yield pL(e,this.decompress);return r[1]&&this.cache.set(r[1][0],{lastUsed:this.counter++,data:r[1][2]}),this.cache.set(t,{lastUsed:this.counter++,data:r[0]}),this.prune(),r[0]})}getDirectory(e,t,n,r,i){return UI(this,null,function*(){let a=`${e.getKey()}|${r.etag||``}|${t}|${n}`,o=this.cache.get(a);if(o)return o.lastUsed=this.counter++,o.data;let s=yield mL(e,this.decompress,t,n,r,i);return this.cache.set(a,{lastUsed:this.counter++,data:s}),this.prune(),s})}prune(){if(this.cache.size>this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed<e&&(e=n.lastUsed,t=r)}),t&&this.cache.delete(t)}}invalidate(e){return UI(this,null,function*(){this.cache.delete(e.getKey())})}},`ResolvedValueCache`);var hL=class{constructor(e=100,t=!0,n=tL){this.cache=new Map,this.invalidations=new Map,this.pendingFetches=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return UI(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,yield n.data;let r=new Promise((t,n)=>{pL(e,this.decompress).then(e=>{e[1]&&this.cache.set(e[1][0],{lastUsed:this.counter++,data:Promise.resolve(e[1][2])}),t(e[0]),this.prune()}).catch(e=>{n(e)})});return this.cache.set(t,{lastUsed:this.counter++,data:r}),r})}trackSignal(e,t,n){t.refs++,n.addEventListener(`abort`,()=>{--t.refs<=0&&this.pendingFetches.get(e)===t&&(t.controller.abort(),this.cache.delete(e),this.pendingFetches.delete(e))},{once:!0})}getDirectory(e,t,n,r,i){return UI(this,null,function*(){let a=`${e.getKey()}|${r.etag||``}|${t}|${n}`,o=this.cache.get(a);if(o){o.lastUsed=this.counter++;let e=this.pendingFetches.get(a);return e&&this.trackSignal(a,e,i??new AbortController().signal),yield o.data}let s=new AbortController,c={controller:s,refs:0};this.trackSignal(a,c,i??new AbortController().signal),this.pendingFetches.set(a,c);let l=new Promise((i,o)=>{mL(e,this.decompress,t,n,r,s.signal).then(e=>{this.pendingFetches.delete(a),i(e),this.prune()}).catch(e=>{o(e)})});return this.cache.set(a,{lastUsed:this.counter++,data:l}),l})}prune(){if(this.cache.size>=this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed<e&&(e=n.lastUsed,t=r)}),t&&this.cache.delete(t)}}invalidate(e){return UI(this,null,function*(){let t=e.getKey();if(this.invalidations.get(t))return yield this.invalidations.get(t);this.cache.delete(e.getKey());let n=new Promise((n,r)=>{this.getHeader(e).then(e=>{n(),this.invalidations.delete(t)}).catch(e=>{r(e)})});this.invalidations.set(t,n)})}};HI(hL,`SharedPromiseCache`);var gL=hL,_L=class{constructor(e,t,n){this.source=typeof e==`string`?new sL(e):e,this.decompress=n||tL,this.cache=t||new gL}getHeader(){return UI(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(e,t,n,r){return UI(this,null,function*(){let i=ZI(e,t,n),a=yield this.cache.getHeader(this.source);if(r?.throwIfAborted(),e<a.minZoom||e>a.maxZoom)return;let o=a.rootDirectoryOffset,s=a.rootDirectoryLength;for(let e=0;e<=3;e++){let e=yield this.cache.getDirectory(this.source,o,s,a,r);r?.throwIfAborted();let t=aL(e,i);if(t){if(t.runLength>0){let e=yield this.source.getBytes(a.tileDataOffset+t.offset,t.length,r,a.etag);return{data:yield this.decompress(e.data,a.tileCompression),cacheControl:e.cacheControl,expires:e.expires}}o=a.leafDirectoryOffset+t.offset,s=t.length}else return}throw Error(`Maximum directory depth exceeded`)})}getZxy(e,t,n,r){return UI(this,null,function*(){try{return yield this.getZxyAttempt(e,t,n,r)}catch(i){if(i instanceof fL)return this.cache.invalidate(this.source),yield this.getZxyAttempt(e,t,n,r);throw i}})}getMetadataAttempt(){return UI(this,null,function*(){let e=yield this.cache.getHeader(this.source),t=yield this.source.getBytes(e.jsonMetadataOffset,e.jsonMetadataLength,void 0,e.etag),n=yield this.decompress(t.data,e.internalCompression),r=new TextDecoder(`utf-8`);return JSON.parse(r.decode(n))})}getMetadata(){return UI(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(e){if(e instanceof fL)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw e}})}getTileJson(e){return UI(this,null,function*(){let t=yield this.getHeader(),n=yield this.getMetadata();return{tilejson:`3.0.0`,scheme:`xyz`,tiles:[`${e}/{z}/{x}/{y}${rL(t.tileType)}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[t.minLon,t.minLat,t.maxLon,t.maxLat],center:[t.centerLon,t.centerLat,t.centerZoom],minzoom:t.minZoom,maxzoom:t.maxZoom}})}};HI(_L,`PMTiles`);var vL=_L,yL=t(n(),1),bL=yL.createContext(null);function xL(e,t){let n=Array.isArray(e)?e[0]:e?e.x:0,r=Array.isArray(e)?e[1]:e?e.y:0,i=Array.isArray(t)?t[0]:t?t.x:0,a=Array.isArray(t)?t[1]:t?t.y:0;return n===i&&r===a}function SL(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!SL(e[n],t[n]))return!1;return!0}if(Array.isArray(t))return!1;if(typeof e==`object`&&typeof t==`object`){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!t.hasOwnProperty(r)||!SL(e[r],t[r]))return!1;return!0}return!1}function CL(e){return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),elevation:e.getCenterElevation?.()??0,padding:e.getPadding()}}function wL(e){return{longitude:e.center.lng,latitude:e.center.lat,zoom:e.zoom,pitch:e.pitch,bearing:e.bearing,padding:e.padding}}function TL(e,t){let n=t.viewState||t,r={};if(`longitude`in n&&`latitude`in n&&(n.longitude!==e.center.lng||n.latitude!==e.center.lat)){let t=e.center.constructor;r.center=new t(n.longitude,n.latitude)}return`zoom`in n&&n.zoom!==e.zoom&&(r.zoom=n.zoom),`bearing`in n&&n.bearing!==e.bearing&&(r.bearing=n.bearing),`pitch`in n&&n.pitch!==e.pitch&&(r.pitch=n.pitch),n.padding&&e.padding&&!SL(n.padding,e.padding)&&(r.padding=n.padding),r}function EL(e,t,n,r){return e.min===t.min&&e.max===t.max?!1:(e.min>=t.min?(e.max!==t.max&&r(e.max),e.min!==t.min&&n(e.min)):(e.min!==t.min&&n(e.min),e.max!==t.max&&r(e.max)),!0)}function DL(e,t,n){return EL(t,n,t=>e.setMinZoom(t),t=>e.setMaxZoom(t))}function OL(e,t,n){return EL(t,n,t=>e.setMinPitch(t),t=>e.setMaxPitch(t))}var kL=[`type`,`source`,`source-layer`,`minzoom`,`maxzoom`,`filter`,`layout`];function AL(e){if(!e)return null;if(typeof e==`string`||(`toJS`in e&&(e=e.toJS()),!e.layers))return e;let t={};for(let n of e.layers)t[n.id]=n;let n=e.layers.map(e=>{let n=null;`interactive`in e&&(n=Object.assign({},e),delete n.interactive);let r=t[e.ref];if(r){n||=Object.assign({},e),delete n.ref;for(let e of kL)e in r&&(n[e]=r[e])}return n||e});return{...e,layers:n}}var jL={version:8,sources:{},layers:[]},ML={minZoom:0,maxZoom:22,minPitch:0,maxPitch:85,maxBounds:[-180,-85.051129,180,85.051129],projection:`mercator`,renderWorldCopies:!0},NL={mousedown:`onMouseDown`,mouseup:`onMouseUp`,mouseover:`onMouseOver`,mousemove:`onMouseMove`,click:`onClick`,dblclick:`onDblClick`,mouseenter:`onMouseEnter`,mouseleave:`onMouseLeave`,mouseout:`onMouseOut`,contextmenu:`onContextMenu`,touchstart:`onTouchStart`,touchend:`onTouchEnd`,touchmove:`onTouchMove`,touchcancel:`onTouchCancel`},PL={movestart:`onMoveStart`,move:`onMove`,moveend:`onMoveEnd`,dragstart:`onDragStart`,drag:`onDrag`,dragend:`onDragEnd`,zoomstart:`onZoomStart`,zoom:`onZoom`,zoomend:`onZoomEnd`,rotatestart:`onRotateStart`,rotate:`onRotate`,rotateend:`onRotateEnd`,pitchstart:`onPitchStart`,pitch:`onPitch`,pitchend:`onPitchEnd`},FL={wheel:`onWheel`,boxzoomstart:`onBoxZoomStart`,boxzoomend:`onBoxZoomEnd`,boxzoomcancel:`onBoxZoomCancel`,resize:`onResize`,load:`onLoad`,render:`onRender`,idle:`onIdle`,remove:`onRemove`,data:`onData`,styledata:`onStyleData`,sourcedata:`onSourceData`,error:`onError`},IL=[`maxBounds`,`projection`,`renderWorldCopies`],LL=[`scrollZoom`,`boxZoom`,`dragRotate`,`dragPan`,`keyboard`,`doubleClickZoom`,`touchZoomRotate`,`touchPitch`],RL=class e{constructor(e,t,n){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=e=>{let t=this.props[FL[e.type]];t?t(e):e.type===`error`&&console.error(e.error)},this._onCameraEvent=e=>{if(this._internalUpdate)return;e.viewState=this._propsedCameraUpdate||wL(CL(this._map));let t=this.props[PL[e.type]];t&&t(e)},this._onCameraUpdate=e=>this._internalUpdate?e:(this._propsedCameraUpdate=wL(e),TL(e,this.props)),this._onPointerEvent=e=>{(e.type===`mousemove`||e.type===`mouseout`)&&this._updateHover(e);let t=this.props[NL[e.type]];t&&(this.props.interactiveLayerIds&&e.type!==`mouseover`&&e.type!==`mouseout`&&(e.features=this._hoveredFeatures||this._queryRenderedFeatures(e.point)),t(e),delete e.features)},this._MapClass=e,this.props=t,this._initialize(n)}get map(){return this._map}setProps(e){let t=this.props;this.props=e;let n=this._updateSettings(e,t),r=this._updateSize(e),i=this._updateViewState(e);this._updateStyle(e,t),this._updateStyleComponents(e),this._updateHandlers(e,t),(n||r||i&&!this._map.isMoving())&&this.redraw()}static reuse(t,n){let r=e.savedMaps.pop();if(!r)return null;let i=r.map,a=i.getContainer();for(n.className=a.className;a.childNodes.length>0;)n.appendChild(a.childNodes[0]);i._container=n;let o=i._resizeObserver;o&&(o.disconnect(),o.observe(n)),r.setProps({...t,styleDiffing:!1}),i.resize();let{initialViewState:s}=t;return s&&(s.bounds?i.fitBounds(s.bounds,{...s.fitBoundsOptions,duration:0}):r._updateViewState(s)),i.isStyleLoaded()?i.fire(`load`):i.once(`style.load`,()=>i.fire(`load`)),i._update(),r}_initialize(e){let{props:t}=this,{mapStyle:n=jL}=t,r={...t,...t.initialViewState,container:e,style:AL(n)},i=r.initialViewState||r.viewState||r;if(Object.assign(r,{center:[i.longitude||0,i.latitude||0],zoom:i.zoom||0,pitch:i.pitch||0,bearing:i.bearing||0}),t.gl){let e=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=e,t.gl)}let a=new this._MapClass(r);i.padding&&a.setPadding(i.padding),t.cursor&&(a.getCanvas().style.cursor=t.cursor);let o=a;typeof o.setTransformCameraUpdate==`function`?o.setTransformCameraUpdate(this._onCameraUpdate):o.transformCameraUpdate=this._onCameraUpdate,a.on(`style.load`,()=>{this._styleComponents={light:a.getLight(),sky:a.getSky(),projection:a.getProjection?.(),terrain:a.getTerrain()},this._updateStyleComponents(this.props)}),a.on(`sourcedata`,()=>{this._updateStyleComponents(this.props)});for(let e in NL)a.on(e,this._onPointerEvent);for(let e in PL)a.on(e,this._onCameraEvent);for(let e in FL)a.on(e,this._onEvent);this._map=a}recycle(){this.map.getContainer().querySelector(`[mapboxgl-children]`)?.remove(),e.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){let e=this._map;e.style&&(e._frame&&=(e._frame.cancel(),null),e._render())}_updateSize(e){let{viewState:t}=e;if(t){let e=this._map,n=e.getCanvas();if(t.width!==n.clientWidth||t.height!==n.clientHeight)return e.resize(),!0}return!1}_updateViewState(e){let t=this._map,n=CL(t);if(!t.isMoving()){let r=TL(n,e);if(Object.keys(r).length>0)return this._internalUpdate=!0,t.jumpTo(r),this._internalUpdate=!1,!0}return!1}_updateConstraints(e,t){let n=DL(this._map,{min:e.minZoom??ML.minZoom,max:e.maxZoom??ML.maxZoom},{min:t.minZoom??ML.minZoom,max:t.maxZoom??ML.maxZoom}),r=OL(this._map,{min:e.minPitch??ML.minPitch,max:e.maxPitch??ML.maxPitch},{min:t.minPitch??ML.minPitch,max:t.maxPitch??ML.maxPitch});return n||r}_updateSettings(e,t){let n=this._map,r=!1;for(let i of IL)if((i in e||i in t)&&!SL(e[i],t[i])){r=!0;let t=i in e?e[i]:ML[i];n[`set${i[0].toUpperCase()}${i.slice(1)}`]?.call(n,t)}let i=this._updateConstraints(e,t);return r||i}_updateStyle(e,t){if(e.cursor!==t.cursor&&(this._map.getCanvas().style.cursor=e.cursor||``),e.mapStyle!==t.mapStyle){let{mapStyle:t=jL,styleDiffing:n=!0}=e,r={diff:n};`localIdeographFontFamily`in e&&(r.localIdeographFontFamily=e.localIdeographFontFamily),this._map.setStyle(AL(t),r)}}_updateStyleComponents({light:e,projection:t,sky:n,terrain:r}){let i=this._map,a=this._styleComponents;i.style?._loaded&&(e&&!SL(e,a.light)&&(a.light=e,i.setLight(e)),t&&!SL(t,a.projection)&&t!==a.projection?.type&&(a.projection=typeof t==`string`?{type:t}:t,i.setProjection?.(a.projection)),n&&!SL(n,a.sky)&&(a.sky=n,i.setSky(n)),r!==void 0&&!SL(r,a.terrain)&&(!r||i.getSource(r.source))&&(a.terrain=r,i.setTerrain(r)))}_updateHandlers(e,t){let n=this._map;for(let r of LL){let i=e[r]??!0;SL(i,t[r]??!0)||(i?n[r].enable(i):n[r].disable())}}_queryRenderedFeatures(e){let t=this._map,{interactiveLayerIds:n=[]}=this.props;try{return t.queryRenderedFeatures(e,{layers:n.filter(t.getLayer.bind(t))})}catch{return[]}}_updateHover(e){let{props:t}=this;if(t.interactiveLayerIds&&(t.onMouseMove||t.onMouseEnter||t.onMouseLeave)){let t=e.type,n=this._hoveredFeatures?.length>0,r=this._queryRenderedFeatures(e.point),i=r.length>0;!i&&n&&(e.type=`mouseleave`,this._onPointerEvent(e)),this._hoveredFeatures=r,i&&!n&&(e.type=`mouseenter`,this._onPointerEvent(e)),e.type=t}else this._hoveredFeatures=null}};RL.savedMaps=[];var zL=[`setMaxBounds`,`setMinZoom`,`setMaxZoom`,`setMinPitch`,`setMaxPitch`,`setRenderWorldCopies`,`setProjection`,`setStyle`,`addSource`,`removeSource`,`addLayer`,`removeLayer`,`setLayerZoomRange`,`setFilter`,`setPaintProperty`,`setLayoutProperty`,`setLight`,`setTerrain`,`setFog`,`remove`];function BL(e){if(!e)return null;let t=e.map,n={getMap:()=>t};for(let e of VL(t))!(e in n)&&!zL.includes(e)&&(n[e]=t[e].bind(t));return n}function VL(e){let t=new Set,n=e;for(;n;){for(let r of Object.getOwnPropertyNames(n))r[0]!==`_`&&typeof e[r]==`function`&&r!==`fire`&&r!==`setEventedParent`&&t.add(r);n=Object.getPrototypeOf(n)}return Array.from(t)}var HL=typeof document<`u`?yL.useLayoutEffect:yL.useEffect;function UL(e,t){let{RTLTextPlugin:n,maxParallelImageRequests:r,workerCount:i,workerUrl:a}=t;if(n&&e.getRTLTextPluginStatus&&e.getRTLTextPluginStatus()===`unavailable`){let{pluginUrl:t,lazy:r=!0}=typeof n==`string`?{pluginUrl:n}:n;e.setRTLTextPlugin(t,e=>{e&&console.error(e)},r)}r!==void 0&&e.setMaxParallelImageRequests(r),i!==void 0&&e.setWorkerCount(i),a!==void 0&&e.setWorkerUrl(a)}var WL=yL.createContext(null);function GL(e,t){let n=(0,yL.useContext)(bL),[r,a]=(0,yL.useState)(null),o=(0,yL.useRef)(),{current:s}=(0,yL.useRef)({mapLib:null,map:null});(0,yL.useEffect)(()=>{let t=e.mapLib,r=!0,c;return Promise.resolve(t||i(()=>import(`./maplibre-gl-DFcSGTFJ.js`),[])).then(t=>{if(!r)return;if(!t)throw Error(`Invalid mapLib`);let i=`Map`in t?t:t.default;if(!i.Map)throw Error(`Invalid mapLib`);UL(i,e),e.reuseMaps&&(c=RL.reuse(e,o.current)),c||=new RL(i.Map,e,o.current),s.map=BL(c),s.mapLib=i,a(c),n?.onMapMount(s.map,e.id)}).catch(t=>{let{onError:n}=e;n?n({type:`error`,target:null,originalEvent:null,error:t}):console.error(t)}),()=>{r=!1,c&&(n?.onMapUnmount(e.id),e.reuseMaps?c.recycle():c.destroy())}},[]),HL(()=>{r&&r.setProps(e)}),(0,yL.useImperativeHandle)(t,()=>s.map,[r]);let c=(0,yL.useMemo)(()=>({position:`relative`,width:`100%`,height:`100%`,...e.style}),[e.style]);return yL.createElement(`div`,{id:e.id,ref:o,style:c},r&&yL.createElement(WL.Provider,{value:s},yL.createElement(`div`,{"mapboxgl-children":``,style:{height:`100%`}},e.children)))}var KL=yL.forwardRef(GL),qL=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function JL(e,t){if(!e||!t)return;let n=e.style;for(let e in t){let r=t[e];n[e]=Number.isFinite(r)&&!qL.test(e)?`${r}px`:r}}function YL(e,t){if(e===t)return null;let n=XL(e),r=XL(t),i=[];for(let e of r)n.has(e)||i.push(e);for(let e of n)r.has(e)||i.push(e);return i.length===0?null:i}function XL(e){return new Set(e?e.trim().split(/\s+/):[])}var ZL=t(r(),1),QL=(0,yL.memo)((0,yL.forwardRef)((e,t)=>{let{map:n,mapLib:r}=(0,yL.useContext)(WL),i=(0,yL.useRef)({props:e}),a=(0,yL.useMemo)(()=>{let t=!1;yL.Children.forEach(e.children,e=>{e&&(t=!0)});let n={...e,element:t?document.createElement(`div`):void 0},o=new r.Marker(n);return o.setLngLat([e.longitude,e.latitude]),o.getElement().addEventListener(`click`,e=>{i.current.props.onClick?.({type:`click`,target:o,originalEvent:e})}),o.on(`dragstart`,e=>{let t=e;t.lngLat=a.getLngLat(),i.current.props.onDragStart?.(t)}),o.on(`drag`,e=>{let t=e;t.lngLat=a.getLngLat(),i.current.props.onDrag?.(t)}),o.on(`dragend`,e=>{let t=e;t.lngLat=a.getLngLat(),i.current.props.onDragEnd?.(t)}),o},[]);(0,yL.useEffect)(()=>(a.addTo(n.getMap()),()=>{a.remove()}),[]);let{longitude:o,latitude:s,offset:c,style:l,draggable:u=!1,popup:d=null,rotation:f=0,rotationAlignment:p=`auto`,pitchAlignment:m=`auto`}=e;(0,yL.useEffect)(()=>{JL(a.getElement(),l)},[l]),(0,yL.useImperativeHandle)(t,()=>a,[]);let h=i.current.props;(a.getLngLat().lng!==o||a.getLngLat().lat!==s)&&a.setLngLat([o,s]),c&&!xL(a.getOffset(),c)&&a.setOffset(c),a.isDraggable()!==u&&a.setDraggable(u),a.getRotation()!==f&&a.setRotation(f),a.getRotationAlignment()!==p&&a.setRotationAlignment(p),a.getPitchAlignment()!==m&&a.setPitchAlignment(m),a.getPopup()!==d&&a.setPopup(d);let g=YL(h.className,e.className);if(g)for(let e of g)a.toggleClassName(e);return i.current.props=e,(0,ZL.createPortal)(e.children,a.getElement())}));function $L(e,t,n,r){let i=(0,yL.useContext)(WL),a=(0,yL.useMemo)(()=>e(i),[]);return(0,yL.useEffect)(()=>{let e=r||n||t,o=typeof t==`function`&&typeof n==`function`?t:null,s=typeof n==`function`?n:typeof t==`function`?t:null,{map:c}=i;return c.hasControl(a)||(c.addControl(a,e?.position),o&&o(i)),()=>{s&&s(i),c.hasControl(a)&&c.removeControl(a)}},[]),a}function eR(e){let t=$L(({mapLib:t})=>new t.NavigationControl(e),{position:e.position});return(0,yL.useEffect)(()=>{JL(t._container,e.style)},[e.style]),null}var tR=(0,yL.memo)(eR),nR=t(o(),1);eI(nI),Un(`pmtiles`,new KI().tile);var rR=({style:e,position:t,zoom:n})=>(0,nR.jsxs)(KL,{mapLib:l,mapStyle:e,initialViewState:{...t,zoom:n},cooperativeGestures:!0,style:{width:`100%`,height:`100%`},children:[(0,nR.jsx)(tR,{showCompass:!1}),(0,nR.jsx)(QL,{latitude:t.latitude,longitude:t.longitude,anchor:`bottom`,children:(0,nR.jsx)(c,{"aria-hidden":!0,className:`size-8 fill-primary text-primary-foreground drop-shadow`,strokeWidth:1.5})})]});export{hx as $,eI as A,AP as At,jb as B,M as C,jn as Ct,YN as D,Mb as Dt,YF as E,MP as Et,cr as F,c as Ft,pr as G,yF as H,ur as I,DP as J,CP as K,OF as L,tI as M,Mn as Mt,lr as N,I as Nt,NP as O,Pn as Ot,oF as P,XF as Pt,_r as Q,vr as R,rR as RecordMap,Vn as S,kb as St,dr as T,FN as Tt,yP as U,Nn as V,Sx as W,EF as X,Dx as Y,EP as Z,UP as _,mr as _t,VF as a,pO as at,Wm as b,xP as bt,ZF as c,_P as ct,LN as d,iF as dt,HF as et,KF as f,ix as ft,JF as g,mx as gt,sr as h,gr as ht,fr as i,l as it,QF as j,Ak as jt,IF as k,AF as kt,RF as l,_b as lt,qF as m,mb as mt,QL as n,bF as nt,Un as o,pb as ot,$F as p,or as pt,DF as q,KL as r,TF as rt,R as s,hr as st,tR as t,Wn as tt,LF as u,yr as ut,WP as v,b as vt,Q as w,FF as wt,Kn as x,xx as xt,Wb as y,xF as yt,jP as z};